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

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

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

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

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

香港開源年會 2013

居然沒跟到這個消息...

香港開源年會 2013」(第一屆!) 將於 10 月 19 日在香港城市大學邵逸夫創意媒體中心舉辦,現在訂機票有點晚,不過還是可以過去交流...

其實有些議程還蠻有興趣去交流的,不過剛好卡到員工旅遊啊... @_@

該來找日本的 conference 了?@_@

OpenZFS 成立...

好幾個新聞來源都有看到 OpenZFS 成立:「OpenZFS Project Launches, Uniting ZFS Developers」(Slashdot)、「OpenZFS launch announcement」。

OpenZFS 的正式公告在「Announcement」這邊,雖然沒有明講是要脫離 Oracle 的控制,但宣示對社群更公開這點其實就很清楚了 (To encourage open communication about ongoing efforts to improve open source OpenZFS, ...)。

隔壁棚 Oracle 前員工 (現在在 Fusion-io) 弄出來的 Btrfs 的進展也不差,兩邊都在進步...

英國政府將優先考慮 Open Source 應用

Slashdot 上看到的文章:「UK Government Mandates 'Preference' For Open Source」,引用的新聞是「Government mandates 'preference' for open source」,英國政府的說明原文則是在「Open source — Government Service Design Manual」。

第一段就馬上說明無論是作業系統、網路軟體、網站伺服器、資料庫,甚至是程式語言,都應該優先考慮 open source 方案,再考慮 closed source 替代方案:

Use open source software in preference to proprietary or closed source alternatives, in particular for operating systems, networking software, Web servers, databases and programming languages.

只有在少數狀況下才應該使用 SaaS 或是安裝非 open source 軟體替代:

Problems which are rare, or specific to a domain may be best answered by using software as a service, or by installing proprietary software.

不過這份 manual 還未定案,還可以看看會有什麼更新...

Google 發表與 zlib/deflate 相容的壓縮程式,再小 5%...

GoogleApache License, Version 2.0 發表了與 zlib/deflate 相容的壓縮程式:「Compress Data More Densely with Zopfli」。

與 zlib/deflate 相容代表現有的 browser 都不需要變動,而在 project 頁面上是這樣寫:

Zopfli Compression Algorithm is a new zlib (gzip, deflate) compatible compressor. This compressor takes more time (~100x slower), but compresses around 5% better than zlib and better than any other zlib-compatible compressor we have found.

比起現有的 zlib-compatible compressor 大約慢 100 倍 (XDDD),但對於靜態內容的幫助會很大,因為壓一次後就可以用很多次。

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

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

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

Twitter 的熱門搜尋演算法 (以及背後的機制)

昨天的 Twitter Engineering Blog 上說明了 Twitter 這陣子改善搜尋演算法背後的故事:「Improving Twitter search with real-time human computation」。

因為搜尋的量夠大,所以可以拿搜尋的 keyword 計算。

而系統會一直分析搜尋的關鍵字,當發現有詞彙在某個時間內超過設定的水位時,就發 API 到 AmazonMechanical Turk 讓真人分析 (分類),分析完成後就可以再回到自動化的流程進行後續的步驟...

Mechanical Turk 就是 crowdsourcing 類型的服務,這個服務因為法令限制,到現在還是只能讓美國的公司或是個人使用,是少數還沒玩過的服務,應該來找看看有沒有其他 crowdsourcing 服務可以玩...

MySQL HandlerSocket 的情況...

前幾天 jnlinOSDC.TW 2011 上面講了「HandlerSocket – A NoSQL Plugin for MySQL」,剛好 Percona 的 Ryan Lowe 也提到了「What’s up with HandlerSocket?」,試著分析 (並猜測) HandlerSocket 為什麼沒有被廣泛使用。

除了技術的問題外,最主要在於運作:Open Source 不是把程式丟出來就覺得沒事了,要僅可能讓使用者容易使用。

比較好運作方式是在重大的 bug 修掉之後就推出 minor version release,一方面讓一些願意整合的單位有「基準」可以整合 (像是 Percona 這樣的公司),另外一方面可以讓 community 感覺是個有在動的 project...

像是文章裡提到的兩個 bug,一個在今年年初已經修正 (write invalidate),另外一個大約兩個禮拜前修正了 (insert auto-increment),只是很多人不太清楚而已。

目前這個專案的感覺跟 Facebook 丟出來的 memcached 還蠻像的:「facebook / memcached」,Facebook memcached 的情況是很明顯「老闆說要 open source,我就丟出來吧」的感覺,原來的 community 也懶的理他,看一看有沒有可以用的 code 可以整合,然後繼續發展自己的...

Kaspersky Internet Security 程式碼流出

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

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