檢查程式碼是否符合 PSR-2 的工具:PHP_CodeSniffer (phpcs)

PHP_CodeSniffer 是套檢查 PHP 程式碼是否符合規範的工具。


WordPress 3.8.1 的 index.php 跑 PSR-2 測試。

想要測試的人可以用 Vagrant 安裝測試,我用 Docker 弄了老半天弄不起來,就跑去用 Vagrant 測試了...

(話說回來,Vagrant 與 Docker 真的是測試的神器,反正要弄一個 Ubuntu 平台上測試就是拿這兩個東西出來測...)

由於系統內的 PHP_CodeSniffer 不一定夠新,舉例來說,Ubuntu 12.04 的 php-codesniffer 只有 1.1.0,而掃 PSR-1 的程式出現在 1.3.5,PSR-2 出現在 1.4.0

安裝 c9s 所維護的 phpbrew 通常是還蠻常見的選擇。裝完後再用 pear install PHP_CodeSniffer 裝進去就有 phpcs 可以用了。

phpcs 預設是用 PEAR standard,可以指定 --standard=PSR2 強迫他使用 PSR-2 規則:

phpcs --standard=PSR2 foo.php

也可以直接強迫換成 PSR-2,然後再看設定有沒有改成功:

phpcs --config-set default_standard PSR2
phpcs --config-show

除了可以檢查單一檔案外,也可以丟路徑進去整個檢查:

phpcs foo/

Linux kernel 內的資料結構與演算法...

Theoretical Computer Science Stack Exchange 上,有人問到有沒有哪些軟硬體的 source code 是可以跟學生說明某些經典演算法的重要性:「Core algorithms deployed」。

下面就有人列了 Linux kernel 內的演算法,以及對應的程式碼。相當長的一份列表...

除了 Linux kernel 外,也還有其他大型 open source 專案用到的資料結構與演算法...

不過看到 Bubble sort 是怎樣呢... XD

各種 credential 儲存的方式 (像是連到資料庫的密碼)

John Resig (現在在 Khan Academy) 在月初的時候發表了「Keeping Passwords in Source Control」討論要怎麼儲存 credential。

這不只是開發者的問題而已,這跟 code deploy 機制也很有關。目前沒有完美的方案,不同的解法都是在不同的環境與限制下而誕生出的產物。

NASA 用雷射光傳送「蒙娜麗莎」圖片到月球上...

NASA 用雷射光將灰階「蒙娜麗莎」傳送到月球軌道上的 LOLA (Lunar Orbiter Laser Altimeter,看起來是台描繪地表用的儀器?):「NASA Beams Mona Lisa to Lunar Reconnaissance Orbiter at the Moon」。

Lunar Orbiter Laser Altimeter

傳輸速度是 300bits/sec (這數字讓人真感動 XD),傳送 152x200 的 4096 灰階圖片。這次測試其中一個目的是了解地球大氣層對光訊號的影響,可以看到左邊的 raw data 與右邊靠 2/3 RS code 修正的結果:

To clean up transmission errors introduced by Earth's atmosphere (left), Goddard scientists applied Reed-Solomon error correction (right), which is commonly used in CDs and DVDs. Typical errors include missing pixels (white) and false signals (black). The white stripe indicates a brief period when transmission was paused.

不過好像沒提到用多大台的雷射打到月球上... (雷射砲?)

429 Too Many Requests

剛剛在「Apache HTTP ServerをRFC6585の"429 Too Many Requests"に(とりあえず)対応させるパッチ」看到的... 429 Too Many Requests 是在四月才被提出來的 (RFC 6585),雖然還不是 Standard (目前是 Proposed Standard),但看起來不錯啊...

一定要放一張經典畫面...

Kaspersky Internet Security 程式碼流出

Kaspersky Internet Security 程式碼流出 (可能是某個 beta 期間的):「Kaspersky Source Code In the Wild」,目前的版本是 2011。

程式碼是 2008 年由某個離職員工 copy 出去,在黑市尋找買家而流出的。雖然是 2008 年的版本,但對於寫惡意程式及病毒的人來說仍然是個重要的資料...