大約任何一個軟體開發者都可能碰到詭異的 undocument API 、噁爛的架構,或者碰到設計有問題的硬體,大約都會情不自盡的爆粗口。偶爾,你甚至會被其他莫名其妙的開發者惹火,例如未充分溝通就擅改程式碼包成套件的情境。

前些時候,quodlibet 的 Debian 套件維護者 Sebastian Dröge 因為誤解了 quodlibet 所使用 GStreamer 中的一個 API 相容問題,於是直接擅改程式碼中的一段,以便可以於新版的 GStreamer 中使用。但是這樣的行為卻未事前於 quodlibet 開發者 Joe Wreschnig 溝通,而那其實算是 GStreamer 的問題,並非 quodlibet 的錯誤。

於是,Joe Wreschnig 惱怒之下,身為一個上游開發者,就在 quodlibet 中也改了一段因應 GStreamer API 更改的措施。而且順便戳了 Sebastian Dröge 一下,要他去死一死吧。於是身為一個 Debian Developer,自然的解決方式當然是發一個 Bug Report。而且解決的討論很自然就往 DFSGDebian Policy 發展。所幸,最後 Tristan Seligmann 另外改了程式碼,並做了一份新的壓縮檔,算是解決了這個幼稚問題。

有趣的是 Joey Hess 在討論中,順便彙整了過去 Debian 修改紀錄中,曾經出現的粗口表,非常好笑,只能說 Software 真是 Sucks。XD

另外一個好玩的研究是 Vidar Holen 研究了 Linux 核心中有多少詛咒粗口,Linux kernel swear counts。我們可以拿程式碼中的髒話平均數量當作判斷品質的一個參考值嗎? :-p

Firefox 3 正式發行了!快去下載吧!

新版的 Firefox 速度比 Firefox 2 快上好幾倍,由於使用了新的 PGO 編譯技術以及新的 XPCOM Cycle Collector 實做,因此系統不會莫名的吃掉好幾倍的記憶體,以至於行為緩慢。同時在介面上也做了眾多的改善,包含新的「收藏庫」可以用以瀏覽歷史與書籤管理、書籤功能則大幅改善操作方式,並新增了標籤功能、新的下載介面、外掛程式介面、與安全保護機制,終端使用者在瀏覽可能有惡意軟體的頁面時,也會被警告,避免無意瀏覽或下載有病毒的網頁。

諸多的新功能不彷參考 Firefox 3 預覽 (1) Firefox 3 預覽 (2)。或者參考 Mike Beltzner新功能簡介:

無論你是否曾經用過 Firefox, 現在都該立即試一試,快到網站上下載!成為破當日下載次數世界紀錄的一員!

DBpedia Mobile 是在 Christian Beckerblog 上讀到,基本上使用 DBPedia 的資料,以其中的經緯度資訊讓你可以透過手機瀏覽器瀏覽 DBPedia 中的資訊。系統後段使用 Marbles 作為使用 SPARQL 查詢的介面與呈現 Fresnel 形式資料。

因此你可以透過手機瀏覽器查詢以地理資訊附近的資料,目前 DBpedia 已有十萬筆經緯度資料,有機會與其他兩百萬筆人事物連結!你也可以透過網頁以地圖瀏覽 (網頁版,手機版) 北京附近的資訊,或者也可以用 Marbles 的資訊瀏覽器觀看在北京附近的後設資料,像是將北京作為首都的清朝

以上簡報是 Christian Becker 在 Linked Data on the Web (LDOW2008) 的演講。

Debian 的軟體套件原始碼通常包含幾個檔案,分別是 dsc, diff.gz 與 orig.tar.gz.

.dsc 是一個文字檔,包含軟體的基本資訊、如版本、維護者資訊與原始碼檔名與驗證碼 (checksums) 資訊 。.diff.gz 是壓縮過後的差異檔,由於軟體套件都必須針對不同的套件系統進行調整,以便符合套件系統的規矩。而 Debian 的方式是保留由上游所發行的原始碼壓縮檔,也就是 .orig.tar.gz 檔案,並將所有的修改另外儲存於 .diff.gz 檔,包含 Debian 包裝軟體時特有的 debian/* 檔案。

於是,對於使用者/原開發者而言,可以清楚的分辨哪些碼是被 Debian 軟體套件維護者所修改,在除錯或維護上都可以比較清楚的區分。若想了解 Debian 包裝軟體的細節不妨參考我的 Debianziation HOWTO

至於所有原生套件與非原生的套件的差別,則在於是否有 .diff 檔案。若你所包裝的軟體原始碼中本來就含有所有 Debian 所需要的 debian/rules, debian/* 檔案,你在產生 .deb 安裝檔時,套件包裝軟體就不會/無法生成差異檔,而只會生成 .tar.gz 檔案。

通常包裝成原生軟體套件 (Native Package) 的狀況是維護者手誤所造成,大約是忘記將原始檔名改成正確的 .orig.tar.gz 名稱。但有些時候,是軟體套件維護者刻意製成。但是除非該套件是針對 Debian 所開發,不可能被移植到其他套件系統上,否則不應該包裝成原生套件。

有些開發者原本就使用 Debian 作為開發平台,偶爾為了方便也會直接在發行的壓縮檔案中置入 debian/* 檔案。但是這是不應該的,Debian Mentors FAQ 裡面有稍加解釋,事實上在原始檔壓縮檔中放入 debian/* 檔案,很容易造成誤解與困擾,特別是需要追蹤修改紀錄的狀況。另外還有如下的原因

  1. 其他套件系統沒有理由想要、需要 Debian 的特定東西。
  2. 所有為 Debian 所作的的修改,都會造成一次版本提交。結果莫名的影響其他套件系統都需要更新升級。
  3. 不只是 Debian 使用 debian/,其他延伸套件系統可能也需要修改其中檔案才能運作。否則要則他們必須修改原本的原始碼壓縮檔,或者以一個 patch 來修正你的 debian/ 檔案。
  4. 當有安全問題或其他因素需要作 NMUs 時,這個 debian 目錄會造成其他人難以維護追蹤的困擾。

與 Debian Developer 討論之得。

之前在研究相關的 RDF Store 時,讀到 Christian Becker 所作的一篇測試報告。他利用 DBpedia 的資料,塞進幾個不同的 RDF stores 中作效能測試。測試的資料庫包含 OpenLink Virtuoso Open-Source EditionSDB Beta 1OpenRDF Sesame 2.0

根據他的測試報告,OpenLink Virtuoso 的效能之傑出,而且只稍微做了設定調整,讓我不經想拿來測試一番。

DBpedia 的資料來源取於 Wikipedia,概念是從 Wikipedia 的文章中萃取出結構性的資訊 (structured information),並開放下載使用。因此你可取得上百萬件 Wikipedia 中描述的人、事、物的後設資料。

Christian 測試的資料庫包含 DBpedia 的 infobox templates, geo-coordinates 與 Wikipedia 外部連結。資料總數超過一萬六千筆。依據 Christian Becke 的數據,Virtuoso 載入一千五百萬 triples 大約只需兩小時而已,速度與其他的資料庫比起來快上幾倍。而查詢的速度,除了只對 Subject 進行的查詢比其他的方案慢之外,稍微複雜的 SPARQL 速度都遠比其他的方案快多了。

OpenLink SoftwareVirtuoso Universal Server 是一個相當複雜 (但有趣) 的軟體,他的核心基本是資料庫與中介軟體,混合提供各種功能,包含 ORDBMS, SQL (RDBMS), XML, RDF, Web Server 與檔案伺服器。單一的軟體包含了各種功能,配合底層使用的 OpenLink Data Spaces,你可以介接大量不同的第三方資料庫,再提供網頁或 Web Services 以便界接其他的軟體。甚至你可以將其他資料庫或檔案,轉成 RDF,因此可以當作 Federated database system 來用。

適用領域包含企業的知識庫系統、或者是 Semantic Web。功能如此強大的資料庫,操作也不特別容易,專案提供了完整文件,引出來要超過兩千頁啊啊。

還記得我寫過一篇「來亂者,去死!!」,詳細分析過戳樂 (Troller)。這裡有一個典型的 blog, Linux Hater’s Blog,言詞辛辣、諷刺,有些論點我無法同意,有些則犀利的點出問題。

如果你對 Linux 的各方面軟體開發、應用、文化,都具備一定程度的認知。你讀起此部落格肯定就像是讀幽默短文一樣哈哈大笑 (但別過度反應了,這可以算 Slashdot 上的長篇版機車留言)。

以下幾篇是我個人覺得夠諷刺,或值得思考的議題。

如果你要當一個 Troller, 至少也試著寫些具備觀點的文章。當個直言的真小人,比言之無物的偽君子實在來著有格調多了。