March 31, 2005

Jini 終於部分 Open Source!

之前的 blog [Sun Jini 可望更改授權方式] 說到 Sun 開始廣泛的考慮用 Apache License 釋出 Jini,而兩個月後,Sun Microsystems 終於宣布以 [Apache License, Version 2.0] 釋出 Jini Starter Kit,詳情可參考 [starterkit.jini.org],不過要注意的是,其他 Jini 元件授權尚未更動。

另外,Sebastian Lohmeier 的 blog [Beta Release of Open-Source Jini] 對此作了些記錄,也可參考。

由 jserv 發表於 05:30 PM | 迴響 (0)

且看軟體專利毒害

一個多月前,在 blog 提到 [為何要反軟體專利?] 正是歐盟軟體專案法案審核期間,在 FOSDEM 2005 前一週,也引來許多崇尚自由的朋友示威,很不幸的,這一切還是發生了,一份中文的介紹的報導可參閱 [歐洲軟體專利權已經通過了 Eurpoean Commission]。

SBT 翻譯了一篇 [侵犯專利的歐盟網路商店] 文章,展示了軟體專利的毒害,說真的,就現在的技術來說,弄個網路商店的雛形,對於一個合格的工程師來說,大概只要兩個工作天,特別是有如此多 free/open-source softwares 可參考的情況,但是儘管軟體授權沒問題,一旦架設好,就要面臨一堆軟體專利,不僅不合理,還扼殺生存空間。
由 jserv 發表於 02:30 PM | 迴響 (0)

小叮噹機器人

剛剛看到 sardine 的分享 [來自未來的禮物-小叮噹.機器人],可真是眼睛一亮,童心未泯的我可是把這個網頁反覆看了三次。

這是日本 BANDAI 公司的小叮噹機器人計畫 RDDP (Real Dream Doraemon Project) 所誕生的小叮噹機器人,雖然目前只有第一代的機器人,但是依據 sardine 的描述,已經有很棒的功能了,文尾的說法一直在我耳畔迴盪許久:
    小叮噹現在擺在我的房間內,藍色絨布的質感讓人看了好想撫摸他,看著開心張大嘴巴微笑的小叮噹,讓人心情也跟著開心起來。家人雖無法跟小叮噹以言語溝通,但還有其他不用語言就能和小叮噹互動的方式與樂趣。

    有時候在忙,忘了吃飯時間,聽到小叮噹喊著肚子餓,提醒了我該吃飯了。早上起床互道早安,晚上太晚了,小叮噹會提醒你該上床睡覺囉。

    有了小叮噹的陪伴,讓我的生活多采多姿,讓人不禁期待下一代的小叮噹機器人。

    你也想擁有一個屬於你的小叮噹嗎?
是此,我又陷入童稚的夢想。
由 jserv 發表於 11:31 AM | 迴響 (1)

Mac Mini 與偉大的 PowerPC 架構

剛剛在 IBM developerWorks 瞥見這篇 [An embedded view of the Mac Mini, Part 1: Apple's new PowerPC BSP],雖然我是個硬體白癡,可是我看到 Hardware Specifications 時都會很興奮 (一個連 RAM 都不會插、連機殼都不知道怎麼拆的人竟然對硬體很熱衷?),所以這篇文章很快的引導我瀏覽過這個配備 G4 處理器的裝置。

文後的 [Resources] 有很多很棒的資訊,羅列頗多 Mac 迷的整理,也可以瞧瞧 Mac Mini [性感的圖片],當然絕對不能錯過 Nora Mikes 的 [Power Architecture zone editor's notebook ]。

由 jserv 發表於 08:46 AM | 迴響 (2)

March 30, 2005

Kernel Planet

[Kernel Planet] 終於上線了,可以看到若干 Kernel Hacker 的思維與開發記錄,非常棒!

到目前為止,有以下 Hackers:
* Alan Cox
* Coywolf Qi Hunt
* Dave Airlie
* Dave Jones
* David Woodhouse
* Greg Kroah-Hartman
* James Morris
* Pete Zaitcev
* Robert Love
* Ted Tso

Greg Kroah-Hartman 是其中我最崇拜的 Kernel Hacker (為何不是 Alan Cox 呢?有機會再說),而其餘諸位當然是高手中的高手,希望我有機會能夠取得他們的親筆簽名,這樣我就很滿足了,正所謂「朝聞道,夕...」。

所以,每日必看的項目又多了一個。

由 jserv 發表於 10:42 PM | 迴響 (0)

Mat 的 iterm/iiimcf 進展

上次在 [中文輸入自由軟體工作坊] 遇到 Mat 後,就訝異於他在 IIIMCF 與 console 整合的工作項目,而現在終於有初步進展,引述 mailing-list 的訊息:
    From: Mat
    Subject: [openi18n-im:01309] IIIMCF on console ( Iterm )

    Hallo:
    I spent some time on adding IIIMCF support on the iterm, which is a good unicode console. I have got some progress, here is the screenshot:
    http://homepage.ntu.edu.tw/~b89209021/iterm.png

    The current patch is still dirty. I need to sort it out, and try to submit into the Repository. If you do not mind how dirty it is, you can grab it in:
    http://homepage.ntu.edu.tw/~b89209021/iterm-test.tar.gz

    Thanks for the help of Sekiba, Hiura, jserv, thhsieh,..etc
    Sincerely,
    Mat :-)
所以有良好 Unicode 顯示能力的 iterm 很快就會正式有 IIIMF 輸入法架構的支援,顯示快照:

給 Mat 喝采!
由 jserv 發表於 08:11 AM | 迴響 (0)

March 29, 2005

OOo 2.0 與 Java

OOo 2.0 將有更多 Java 的整合,有趣的是,OOo 本身是 free 的,但是 OOo's Java integration 不全然是 free 的,引用了一些 Sun 專屬的 APIs,這阻撓了 Free Java Runtime 的使用。

我們來看一些新聞報導,NewsForge 的 [OpenOffice.org 2.0 and the FOSS community],爾後 Slashdot 引述這篇報導 [Java Fallout: OO.o 2.0 and the FOSS Community],Bruce Byfield 提到 OOo Java 的議題,我們也可以看到 Debian/Ubuntu 與 Gentoo 對此議題的態度,在沒有 Free Runtime 徹底支援的前提,就可能要犧牲這個 Integration。而 RedHat 本身有 GCJ team 在做這樣的突破,可以參考 Anthony Green 前輩的 blog [OO.o 2.0 and gcj],已經有初步的成效了。

但無論如何,這也彰顯 Free/Open-Source 發展的意義,透過所謂的「社群」參與,檢視過去 OOo codebase 許多不適當的設計,而原本 Java Integration 過多的錯誤假設 (跟 Sun JDK 緊密的整合,排除 follow Java spec 的 VM),也逐步被修正。這些 Sun undocumented APIs 的使用的確使得 GCJ team 疲於奔命。我們也可以發現有趣的現象,如 Taras Glek 的回覆 [Re: Java fallout: OpenOffice.org 2.0 and the FOSS community] 甚至提到:


    In reality open source Java runtimes are good enough for a surprising amount of tasks. They just need more developer attention and respect. GCJ and Kaffe are already kicking some Sun ass. Both can run eclipse. Soon they will run it well. I have some Java code that runs 20x faster under Kaffe due to bugs in hotspot. GCJ allows people to distribute binary versions of their software without demanding that end users download the bloat-o-runtime from Sun.

這是 Free Runtime 的好處,我們可以針對特定情況作最佳化,也可以透過 GCJ 這樣的機制來將 OOo 打包成適合 redistribution 的套件。

Free Java rules!

由 jserv 發表於 09:05 AM | 迴響 (0)

IIIM Server Framework 架構分析

Openi18n.org 的 IIIMF 實在是非常神奇的架構,把許多非常高階的議題,比方說分散式運算,作為輸入法設計與實做的考量,如果不考慮 LE 的話 (Okay,我知道最近似乎吵得頗兇),IIIMF 設計有許多值得借鏡之處。

在 #iiimf 意外發現 Yong Sun 的 blog 提到 IIIM Server Framework 的分析,參考 [IIIM server code reading note (part 1)] (期待 Part II, III, ... 現身),這個圖說明了 FSM,並且 [NameSpace I/O functions] 說明了 nested event dispatching。

Momonga-Linux 的先進 famao 也製作了一份 [分析圖表],這個錯綜複雜的架構,讓人看了還真有點頭暈,等一下再比對 code 看一下。

IIIMF is an awesome design!

由 jserv 發表於 07:18 AM | 迴響 (1)

March 26, 2005

自我驅策

無論做什麼工作,都需要自我驅策,才能獲得更高一層次的進步,特別在瞬息萬變的 IT 產業。剛剛在 #osxchat 看到以下的訊息:


    19:40 <@mjhsieh> Ruyi: 施主, 該是開始學 programming 的時候了

雖然我不清楚前後文,不過這倒也提醒我了,最近這幾天都沒有 programming,都在 debugging 與 testing,雖然有所突破,但是卻沒有實質的進步,實在是頗糟糕的。之前 blog [募 patch] 似乎獲得不少迴響,那麼,在我要開始 programming 前,就學習一些偉人的途徑,在牆壁上寫下目標並激勵自己,那麼,到底要寫什麼字眼呢?

想來想去,用 GIMP 畫下來:

看!在牆壁上有 Tux 大神用腹語 (假設企鵝不會說話) 說:


    「施主,該是開始學 programming 的時候了」

不能再混了,我要努力 programming。

補充:


    csj 在 #debian.tw 告知做了新圖,詳情可參考 [tux2],更酷!

由 jserv 發表於 08:45 PM | 迴響 (2)

March 25, 2005

技術歧視

在 CSDN 上讀到這篇 [程序員與種族歧視],雖然部份內容很瑣碎,但是結語倒是可以一讀:


    近期CSDN上關于.net的爭論,簡直唾沫橫飛,幾可溺人。難道程序員都是技術的種族主義者嗎?

不諱言,我對於某些程式語言頗反感,像是 P 開頭的幾個,非但不想去學,還暴力移植原本的程式到 C 或者 Java 去,其實我還算會寫一點,以前作過的計畫也有用到 P 開頭的幾個程式語言,但是以前總是基於某種理由很排斥。這樣的觀念是很糟糕的,但是正如我之前說的「技術絕對不是問題,可是觀念養成就難改」,的確頗反諷的。

所以呢,我下午開始 Perl6 的實做文獻,不過顯然我對於 VM 以外的部份完全不感興趣,至少這是打破「種族主義」的一步吧。

由 jserv 發表於 04:47 PM | 迴響 (0)

RSSOwl on Kaffe

稍早在 Kaffe mailing-list 已經提過 [RSSOwl works on Kaffe],[RSSOwl] 真是非常棒的軟體,用 SWT/Java 撰寫,能夠在許多平台運作,現在我正開心的用著。

RSSOwl 甚至還能把某個 RSS feed 輸出為 PDF 文件,真是有趣!放張快照欣賞一下:

由 jserv 發表於 12:21 PM | 迴響 (1)

中文資訊處理 wiki

這幾天改 driver 很灰心,系統一直死當,害我一直暴力重開機 93 次,對於我的電腦感到非常心疼 (遇到這樣的主人,認命吧),所以很多時候都在等待開機並作測試,這些時間,我來更新 wiki.debian.org.tw 的 [ChineseInformationProcessing] 的頁面,修改幾個 dead link 與謬誤,不過還是有若干項目實在不曉得改名或者根本就是消失了。

中文資訊處理實在是大學問阿,絕對比我手頭這個 driver hacking 難多了,再度向這些專家致敬,比起幾年前 (是的,不過幾個寒暑),整個環境實在好多了。

由 jserv 發表於 08:18 AM | 迴響 (0)

March 23, 2005

.Net Framework 的一些評論

基於一個 VM (Virtual Machine) 實做的愛好者來說,.Net Framework 與 Java 對我來說都是一樣好,因為箇中的技術都很值得借鏡,而我在這幾年的摸索後,還是喜歡搞底層 VM 的部份。

正如其他從事底層技術開發的人員,我很容易故步自封,雖然是個 Java 迷,但是我現在甚至不清楚 J2EE 的應用,當然更不清楚 .Net Framework,在 CSDN 上瞥見這篇 [放棄.net 對誰失去了信心?.net還是微軟],才赫然發現種種巨變。

四年了,從 .Net 1.0Beta 開始,這些故事可以參考 .Net 專家的評論 [.NET 專家Richard Grimes的告別書 ],這四年的確打不完的口水戰,以及相互借鏡的設計,有名的 PetStore 更是被激發成近乎苛求的華麗設計,而我這段時間「躲起來」搞 VM,我本身不寫 J2EE 的應用,更不接觸 .Net,所以讀到這篇時,還給我不少的驚嘆號。

Anyway,我相信這雖然凸顯一些事實,但也難說不會有個 Silver Bullet 出現?
由 jserv 發表於 07:54 PM | 迴響 (0)

西遊記

上個月 AndrewLee 與 chihchun 前往北京參與 Asian Debian Mini-Conf,在我之前的 blog [台灣 Debian 社群的介紹簡報] 提到 AndrewLee 的講題,而整個議程又是如何呢?chihchun 整理了他的「西遊記」,刊載於 OSSF,請參考 [
名家專欄 -- 亞洲 Debian 小型會議 & CodeFest 報導
]。

看起來真是有趣阿!

由 jserv 發表於 06:09 PM | 迴響 (0)

March 22, 2005

Gaim-1.2.0 + OpenSSL

[Gaim] 團隊最近釋出 1.2.0 release,而剛剛順手加入 OpenSSL 的支援,可在以下位址下載:


MD5 檢查碼為 089af308fff661edf3509f8045cfecdf

由 jserv 發表於 07:38 PM | 迴響 (0)

下個月的活動

下個月會抽出一點時間,跟一些朋友聚會,排定的行程有兩個: 在 TnLUG 會前往久違的台南介紹 [Graphics in Embedded Systems] 的議題,我整理了以下的主題:
  • Impacts
  • HIG
  • Graphics Design considerations
  • Power-consumption & Graphics
  • Toolkits
  • Demo: KittenBox
不過實際上應該不會太硬,具體來說是「帶有技術旁白的 demo show」。摩托學園的聚會當然會參加啦,只是這次想不到要分享什麼,就乖乖作聚會記錄員好了。
由 jserv 發表於 11:58 AM | 迴響 (0)

March 21, 2005

Kaffe 計畫介紹簡報

Dalibor Topic 在 FOSDEM 2005 的簡報終於上線了,具體情況可參考 [Kaffe – Past, Present and Future],從簡報可以看到 1996 年以來,Kaffe 計畫的一些變革。

研究歷史是相當有趣的,特別是研究一個 Free/Open-Source 計畫,因為種種動機、想法,以及背後的開發者交集成許多複雜的體系出來。

Just Kaffe it.

由 jserv 發表於 06:26 PM | 迴響 (0)

QuantumSTEP™

DSITRI (Dr. H. Nikolaus Schaller Information Technology Research Initiative) 最近又有個驚人的計畫 -- [QuantumSTEP™],引述網頁的介紹:


    QuantumSTEP™ is a new Operating System distribution for handheld devices (Smartphones, PDAs) combining several technologies like OpenSTEP, Linux, X11 with PDA applications. Its main goal is to be similar to MacOS X and compatible in useage and operation, Cocoa API and data formats.

際 myPDA 與 mySTEP 最新力作,這個 LGPL 的實做已經有許多重要的軟體元件,也提供 toolchain,硬體平台是 ARM (明確來說是 Zaurus),值得關注。

由 jserv 發表於 05:29 PM | 迴響 (0)

apt-build 教學

Julien Reveret 撰寫了一篇關於 apt-build 的文章 [apt-build - Optimize Debian packages for your system] ( Julien Danjou 英文翻譯),雖然剛剛測試後,發現很多想要 optimized 的套件似乎沒有這麼簡單 (可能是我比較笨),但是還是有參考的價值。

moto.debian.org.tw 也有一些網友提供 apt-build 的使用經驗,可以參考 [
使用apt-build進行系統優化
] 與 [[測試]apt-build衝阿]。

由 jserv 發表於 05:24 PM | 迴響 (0)

March 20, 2005

募 patch

大家都知道,patch 是自由軟體成長的要素,所以,身為自由軟體的開發者,非常希望能獲得來自各地的 patch,這樣才能激勵軟體的成長,這裡再次感謝協助開發的朋友。

然而,patch 可不是「天上掉下來的禮物」,在沒什麼名氣、沒有足夠的開發資源時,一定要「募 patch」,該怎麼作呢?剛剛練習使用 gimp 把我的想法用圖表示。首先,我們會在網路上張貼計畫概況與徵求開發者的訊息,但是基本上跟下圖沒有兩樣:

很難說奇蹟會不會發生,但是最好能夠主動去擴展自己的想法與計畫,用圖來表示就像是下圖:

是的,要有些「利誘」,但是又要讓對方知道你的動機,最後「進入」到你的計畫,成為... 計畫的開發者之一,這就是成功的要件。

嗯,在此再度呼籲各位朋友能夠多送些 patch 過來,這些發展中的計畫,需要更多開發者參與,以及獲得使用者的 feedback,謝謝!

由 jserv 發表於 12:07 AM | 迴響 (6)

March 19, 2005

lgui 嵌入式圖形系統

由 [深圳龍硅科技] 主持的 [lgui],最近終於公開 source code,lgui 的特色在於採取類似 Win32 GDI 的 API,而模仿了很多 Qt/Embedded 的設計,然而無可否認的是,更多的部分是參考自 MiniGUI,魏永明前輩已經說過了,不過 lgui 還是相當有特色的系統。


lgui 的設計初衷在於 GIS (地理資訊系統) 的 Embedded Graphics 需求,自然沒有打算設計成相當複雜的架構,但是其 Client-Server communication 設計很值得多加思索。
由 jserv 發表於 11:42 AM | 迴響 (2)

建構 Mini Java Compiler

CSDN 真是充滿驚喜,剛剛瞥見一系列關於 Mini Java Compiler 實做的筆記,參考 [Mini Java 編譯器],看起來是《編譯原理》課大作業,該作者頗細心,很值得一讀的筆記,也可以順便得知實做 Java subset 的考量。

看起來我以前唸 Compiler 的時候,作業就太沒有創意了,老是寫 Mini C compiler 不然就是 Mini Pascal compiler,交作業時總是可以找到很多現成的 sample code,不免覺得有些可惜,好吧惰性使然。

由 jserv 發表於 09:15 AM | 迴響 (0)

Eclipse 引導開發平台的統一

IBM 的 Eclipse 計畫肯定是顆耀眼的巨星,首先我們可以參考兩篇 blog [Eclipse照亮Java眾生 擴大地盤] 與 [Borland加強對開放源代碼平台Eclipse支持],雖然是商業報導的成份居多,但是從中也可以窺見 Eclipse 引發的一場開發平台的革命。

引述該 blog 中的重點:


    實際上,Eclipse 幾乎統合了絕大部分的Java供應商,唯一比較明顯的例外是Sun 沒加入,而甲骨文的參與度則不太高。但這樣的成就已經足以讓先前多年的產業標准化作為大大汗顏。

    「大勢底定。」開放源代碼Java廠商JBoss 策略副總裁Bob Bickel表示,他所指的正式Java工具產業的競爭已經結束了。「Eclipse 剛剛好過了關鍵多數(critical mass)的階段,廠商們樂于不用背負開發新工具的成本。」他表示。

    Java廠商若要共同對抗微軟,彼此之間就要有共同的開發工具才行,兩大陣營常為了爭取開發人員而殺紅了眼,這是因為程序人員可影響企業如何選擇價值不菲的後端商用程序軟件。Eclipse 軟件在某些方面像極了微軟自家的開發產品:Visual Studio。

    在所謂的Eclipse 平台上,程序人員可使用好幾種不同的工具。在前端方面,用戶可整合多種工具來撰寫plug-in (外掛)程序或測試應用。IBM 以Eclipse 軟件當作旗下開發工具的共同基礎,提供多種產品組合、一個共同的用戶界面、以及共享信息的機制。

IBM 宣佈捐出價值斐然的 Eclipse 後,加上妥善的 Community Development 手段,果然造就很不錯的成績。雖然 Eclipse 骨子裡頭是 Java-based,但是正如我之前 blog [Tom Tromey 的 Eclipse 備忘錄] 提到的,開發工具的多元需求已經難以讓單方廠商負荷,而 Eclipse 作為一個架構優秀的設計,恰好可以補強這點。最近 LinuxDevices.com 又有這方面的消息 (之前 blog 有提過其他廠商),參考 [PowerPC 4xx-series chips gain European Linux distro] 與 [Enea joins Eclipse Foundation, readies IDE],不約而同的說明 Eclipse 足以勝任多種不同的開發平台需求,而且對於 Embedded Linux 來說,更是有相當大的意義。

然而,對於 Free Java Runtime 的需求就更加重要了,作為一個商業產品,總不希望偉大的 Eclipse 平台還綁著笨重的 Sun JDK 吧?GCJ 與 Kaffe 對於 Eclipse 的配合程度都相當高了,GCJ 甚至可以做出 natively-compiled Eclipse,是徹底 Free (自由 & 免費) 的開發平台,這種自由度是相當重要的。身為一位 Free Java Hacker,非常榮幸能夠目睹開發平台的統一,以及這一切發生中的軟體開發模式的巨變。

Eclipse rules!

由 jserv 發表於 09:07 AM | 迴響 (0)

March 18, 2005

Mini Mozilla 新進展

Mozilla.org 有個專案稱為 [Minimo],也就是 "Mini Mozilla",雖然看起來發展緩慢,但是事實上一直都在進步中,比方說之前 [在 Windows Mobile device 上運作的報導] 就是很有趣的說明。

Browsing on small screen devices 要考慮的議題就非常多,如果不論人因工程,光是技術問題就相當棘手了,看來看去,很多廠商都有一些應對的方式,那麼 Minimo 呢?事實上也有,可以參考以下快照:

這是所謂的 "semi-fullscreen" 模式,改進的空間還頗多的,可以參考 Picsel Technologies 的設計理念,詳情見 LinuxDevices.com 的報導 [Motorola licenses multi-format browser for smartphones]。

好久沒有更新 [kBrowser] 的 JavaScript engine (come from Mozilla),該排時間更新到新的 codebase。無論如何,有這麼多實做與選擇,對最終的消費者 / 使用者來說,實在是一大福音。

由 jserv 發表於 08:25 PM | 迴響 (0)

簡單的開發紀錄

今天去某公司作簡報,介紹我最近的開發紀錄以及一些想法,用 OpenOffice (cvs head) 做的 slides,轉換成 PDF 格式: 好吧,我承認這個標題很爛,不過裡頭的創作大概可以說明我最近在玩的東西,而有些項目比較零星,比方說中文輸入法,就沒有羅列進去,那麼之前 blog 提到的 [最近的研究方向] 呢?當然有啦,只是某些項目實在不適合在太短的 presentation 提及,所以先略去,看 benchmark 是很枯燥的 :-)

希望以後有時間、有足夠資源可以繼續作些好玩的 hacking。
由 jserv 發表於 07:49 PM | 迴響 (1)

不要讓 AceLan 為了 KDE 自x

這標題真聳動阿。

眼尖的朋友大概會發現,KDE 3.4 (新聞稿可參閱 [KDE 3.4 is out]) 裡面沒有繁體中文 (zh_TW) 的翻譯,難道?是的,又發生了,繁體中文的翻譯量因為不到門檻,所以被 dropped out。

[KDE@Taiwan] 的掌門人 AceLan 在摩托學園討論區回覆這篇文章 [詢問有關kde的中文翻譯],關於繁體中文翻譯的現況可以參考 [KDE GUI stats on HEAD branch for Chinese Traditional team]。

AceLan 先更新翻譯計畫後,就要來找人手一起翻譯 KDE 訊息了,希望不要在發生這種遺憾了。

由 jserv 發表於 05:55 AM | 迴響 (0)

Sun Java 是否真正 Open Source?

事實上我已經在前面多篇 blog 提到這個議題,比方說 [我們需要 Open Source Java Implementation],而這裡引述一些新聞報導,作為參考: 我們可以從這些報導看出一些有趣的現象,Sun Microsystems 從很多角度與聲明來說,應該是希望 Java 能夠透過 open source 的途徑協同開發,但是又有許多非技術考量,而發言人前後不一的說詞,只引來更多的質疑。
由 jserv 發表於 05:45 AM | 迴響 (0)

March 17, 2005

大師談 Perl6 發展

儘管我不喜歡 Perl (誠實一點比較好),但是 Perl6 許多迷人的設計讓我不得不大感興趣,就跟我不喜歡寫 Java code,但是很迷 Java VM 實做的技術一樣。

Java VM implementation 的 paper 相關多,只要花時間閱讀,大致能夠建立相當足夠的概況,而 Perl 一直給人很神秘的感覺,而許多文件更是有看沒有懂 (我是指 internals)。在 Newzilla 上 Autrijus 大師介紹了 Perl6 實做項目的 Pugs,可參考 [Pugs 外典: Pugs 計劃概述]。

不過,functional language 對我而言還是相當遙遠的領域。

由 jserv 發表於 01:12 PM | 迴響 (1)

March 16, 2005

我們需要 Open Source Java Implementation

之前在 blog [Java 是否該 open source?] 提過 Open Source Java 的質疑,而 Fernando Lozano 也在他的 blog [Why don't open source developers help make open source java real?] 也做了呼籲,我們需要真正自由的實做。

現在已經相當多 Free / Open-source Java Frameworks/Libraries/Applications,更不乏所謂的 Killer Applications,但是我們還是面臨一個嚴重的問題, 儘管有 Apache Foundation 這樣偉大的平台,匯集許多傑出的創作,也有 JBoss 這樣基於自由與開放的想法,創造雙贏的局面,但是現實所遭遇的,還是必須透過「釜底抽薪」的方式,也就是沒有 Free Java Runtime 的前提下,事實上沒有真正的 Open-source Java。

GNU Classpath、GCJ、Kaffe,以及許多專案的興起,就是希望能夠匯集更多開發者的投入,自由且開放的發展,這是我們需要的。Kaffe Developers 之一的 Dalibor Topic 做了一個 Kaffe LoC (Lines of Code) 的統計:

我們可以發現,自從 2003 年開始,Kaffe 這個老字號的 GPL'd Java VM implementation 已經蓬勃的成長,這樣歸結於 GNU Classpath 與 GCJ 大力的整合,以及眾多開發者的協同工作,我們已經達成許多目標,幾乎每個月都有新的 Succcessful Stories,甚至在某些地方,還比 Sun JDK 更符合「標準」(Sun JDK 的實做有與文件出入處,當然也有其他 Bug),但更多的開發者投入、更多朋友的認同,以及更開放的態度,是不可或缺的。

由 jserv 發表於 06:32 AM | 迴響 (0)

C++ sucks!

話說 clkao 長輩最近試著使用 ports 上的 SCIM-chewing,可是發現酷音叫不出來,在 #bsdchat 上追了很久,終於發現問題的癥結,引述 irc log 如下:
    01:46 <@clkao> _but_ chewing wants the symbol, though grepping the source odnes't show that up
    01:48 <@clkao> ab# nm /usr/X11R6/lib/scim-1.0/IMEngine/chewing.so |grep inver
    01:48 <@clkao> U _ZN4scim19IMEngineFactoryBase13inverse_queryERKSbIjSt11char_traitsIjESaIjEE
    01:48 <@clkao> WTF
    01:49 < koster> 好奇怪 *_*
    01:50 <@clkao> probably WideString doesn't have the same signature during the two compilation
    01:53 <@jserv> c++filt _ZN4scim19IMEngineFactoryBase13inverse_queryERKSbIjSt11char_traitsIjESaIjEE
    01:53 <@jserv> scim::IMEngineFactoryBase::inverse_query(std::basic_string, std::allocator > const&)
    01:53 <@jserv> C++ sucks.
    01:53 <@clkao> HATE
    01:55 < leafy> system compiler bah
    01:55 <@clkao> so it's wchar_t vs unsigned int
    01:56 < leafy> in chewing it becomes unsigned
    01:57 <@clkao> ok
    01:57 <@clkao> must include src/scim_types.h
    01:58 <@jserv> 看來要加上 -Wall
    01:58 <@jserv> 不然會有這種鳥事發生 :(
    01:59 <@clkao> :(
    01:59 < koster> add #define Uses_SCIM_TYPES
    01:59 <@jserv> 白爛事交給白蘭氏 XD
    02:00 <@clkao> doesn't work
    02:01 <@clkao> #define __STDC_ISO_10646__
    02:02 <@clkao> now it _works_
    02:02 <@clkao> hate
    02:17 <@jserv> How can such a workaround drive people being crazy for days?!
    02:17 <@jserv> My God!
    02:17 <@clkao> http://nopaste.snit.ch:8002/2044
    02:18 <@clkao> because 1. scim doesn't complain about unresolvable symbols
    02:18 <@clkao> 2. c++ sucks
    02:18 <@clkao> 3. people are lazy
    02:18 <@clkao> leafy: (!) HATE!
這個 workaround 雖然看起來只修正一點點,但是可讓 clkao 長輩抓狂很久,C++ 實在是複雜到不行,讓人實在忍不住大聲喊:
    C++ sucks!
由 jserv 發表於 02:56 AM | 迴響 (1)

March 15, 2005

GNOME 2.10 介紹文章

日前,GNOME 2.10 已經釋出了,而在 GNOME Journal 有篇專文介紹 [GNOME 2.10 Desktop and Development Platform],很值得一看,相信對一些仍抱持 "Desktop Environment" 只是「表面工夫」的人士來說,應該可以大幅改變看法。

Desktop Environment 事實上是許多技術的結合,特別是對於 KDE 與 GNOME 來說,更是撮合了許多文化的色彩,這裡點出本篇介紹文章的幾個重點:
  • 強化的基礎,更符合 FreeDesktop 規格以及對於記憶體需求 (memory footprint) 做了大幅改善
  • 新的選單結構
  • GNOME-System-Tools 工具的 "Shared Folder" 與無線網路支援
  • GNOME Applets 的 CPU frequency scaling applet 與 Trash applet
  • Metacity WM 的新特徵 (也有 eye-candy)
  • 強化的 GNOME-VFS
其中,GNOME base 的更動與 GNOME-VFS 是最吸引我的部份,這些在 GNOME 2.10 真的有很大的改進,或許使用者不會有立即的察覺,但是整個架構上的確非常精練,而我也開始研讀這些更動。再來是 System-Tools 與 Applets 也讓人耳目一新,Desktop Environment 是此可以說與系統的整合度已經相當高了,展露於外的是這些介面,而真正骨子裡頭的設計更讓人著迷。
由 jserv 發表於 11:09 AM | 迴響 (0)

軟體工程師的思維與工作型態

先聲明,我可不是說教,這篇 blog 只是稍微紀錄雜感。

在 CNet@Taiwan 讀到這篇報導 [軟體工程師縮短工時],我想很多人都會從心中產生共鳴。我曾經是個軟體工程師,最近將會結束我的「假期」,再度回到這樣的工作型態。

CNet 的那篇報導中,引述許多 Microsoft 資深軟體開發人員的經驗與心聲,歷歷在目的呈現,閱讀的同時,心中的感覺很複雜,試著 blog 下來,不過卻一時不知道如何將這些經驗作一摘錄。的確,無論做什麼樣的工作,絕對不能將自己既有的生活規律都弄亂,否則要花很長的時間、很多的消耗,以及相對的損失才能獲得些許的補償,軟體開發亦然,過長的工時極可能會扼殺創意與生產力,長期來說,更可能對企業產生傷害。

之前閱讀過一些談「大腦開發」的書籍,每個人都有與生俱來的一種天賦,一種潛在的爆發力,問題在於要如何「呼喚」出這些能力出來。有許多途徑相對被提出,無論是靜坐、玄思,還是科學方法 (這我就不多說了,看來可以再補好幾篇 blog),這些方法的一致特性就是注重「啟發」與「反省」,我想,這是軟體工程師真正需要的。

我求學時,曾經寫了一篇文章《由莊子思想看物件導向思維》,雖然原稿已經佚失,但是當時定這個題目時只是覺得很有趣,試著探討跨越電腦科學與哲學兩大領域的異同點,沒想到竟然成為我一生的己志。

我們先來作些哲學思索,《莊子》的〈齊物論〉篇最核心之處在於「天地與我並生,萬物與我為一」,王叔岷在《莊子校詮》提到「忘生則無時而非生,故天地與我並生;忘我則無往而非我,故萬物與我為一。」,而〈秋水〉篇終之以魚樂之辯,莊子耗費口舌,其實都在論述「齊物」,相映成趣。而我最近又在讀周夢蝶的詩集與生平,深深覺得「莊周夢蝶」以覺破夢,更期以大覺破大夢,破覺夢外死生,不正是以「齊物」而後得以「逍遙」嗎?

為何軟體工程師終日迷惘而漫無止盡的加班?莊子給了我們很好的詮釋與指引。

那「萬物與我為一」的境界是如何在軟體開發的項目落實?狹義來說,之所以無法融合其中,問題就在於對「萬物」的不解,無法參透軟體開發中的「萬物」,永遠在皮毛處打轉,當然難以尋求入門之徑。又如何說「忘我」?重點在於「與天地共生」,這個「天地」對軟體開發而言,就是揮灑的空間,一個驗證想法與概念的平台,當我們的能力已經提昇到「物我合一」,真正能夠在軟體設計中嶄露箇中的概念時,這個軟體就是具備生命,一種遞移自原始設計人員的再生體。讀了周夢蝶的詩集後,讓人領悟的行動力都在「破夢」間爆發,唯有「齊物」方能「逍遙遊」阿。
由 jserv 發表於 09:34 AM | 迴響 (0)

March 14, 2005

深入淺出 JUnit

Ai92 在 blog 寫了一系列的文章 (CSDN 上真多高手,希望有機會可以切磋一番),其中 JUnit 的項目讓我很感興趣,介紹性的項目可以參考 [JUnit入門] 與 [JUnit測試建議],這些概念我大致會了。不過令人驚豔的是 [JUnit源碼分析(一)] 與 [JUnit源碼分析(二)] 及 [JUnit 源碼分析(三)] 三篇 blog,我很喜歡這種 self-proven 的方式來探討 JUnit 的設計,希望能見到新的大作。
由 jserv 發表於 06:15 PM | 迴響 (0)

MicroWindows 輸入法程式範例

Nano-X Window System (Microwindows) 的 ftp 有個年代久遠的中文輸入法範例,而今年二月份 mailing-list 上 Zhang Hongbiao 發表了一篇 [ A IME demo program] 的 post,裡頭有個簡短清楚的輸入法實做範例。

引述 Zhang 的介紹:


    Subject: A IME demo program
    From: Zhang Hongbiao
    Date: Wed, 16 Feb 2005 11:34:29 +0800

    I'd like to present a IME demo program, maybe you can call it in this way. It's quite a simple application.'cause I wrote a request before to seek some information of input method in Microwindows.
    I found less information finally. So I wrote a demo program to demonstrate the feasibilities of introducing a input method to Microwindows. I think it may do help to some guys who are working on that direction.

    It employes a event-block-and-process-and-redispatch mechanism.
    Whenever you press a digit button, it blocks the event and translate to a '9' button event and redispathc it. Maybe you can revise it to make it work better.

Zhang 的實做挺有趣的,只要簡單的 event dispatcher 就可以將 IM logic 接起來了。

由 jserv 發表於 01:52 PM | 迴響 (0)

C++ 逆向工程提示

剛剛在讀 CSDN 裡頭由 KKQQ 撰寫的 blog [something about reverse engineering on C++],給我很多啟發,儘管看起來沒幾個字的文章,但是這個對於 C++ Object Model 與 x86 instruction layout 很有幫助,所以吃了定心丸後,我就開始 hack Skype 了。 之前 Trolltech 才在 [Cool Applications] 提到 Skype -- [Application: Skype],這麼成功的程式當然是 Trolltech 相當好的活廣告,但是 Skype for Linux 有些地方不是很好用,特別是想將 Skype 應用在 Embedded Linux 的開發者,就會面臨無法將 Skype 整合到產品的窘境。是的,Skype 有 SDK,但是是否能跳過這些授權過程呢? 所以,我開始一個嘗試,就是改寫 Qt3/X11 的一小部份,紀錄 Skype runtime requirement,由於是直接在 Qt3/X11 下手,Skype 的 binary 根本不需要變更,但是使用者介面卻可以完全的掌握,比方說可以將 Skype 改成 Kiosk 版本 (商業應用就不需要我說了)。 天馬行空完畢,讓我們看看怎麼作,Skype 實做時有考量到 portability,所以 core API 儘可能用 pure C 撰寫,而 Qt 本身是 C++ Framework,所以 interfacing 之處就是可以讓我們有很多「想像空間」。再提一次,任何變更 binary code 的行為都有可能造成侵權,所以我們要特別審慎的作。(在我搞懂相關的授權規定前,這些 hacking 還不會釋出,儘管 Qt3 本身是 QPL/GPL 的) 這裡操作的環境是 Debian sid,首先我再次閱讀 /usr/include/qt3/qcstring.h 的 member functions,因為這是我要改寫的第一步,至少要能將傳遞給 core API 的 data field 取出。相當幸運的,這個過程我們已經取出許多重要資訊,甚至是列表項目,再來我要處理的地方則是 socket programming,在之前的 blog [Skype 尋奇],提到許多 Skype 獨特的設計,而真正的 representation 也大幅的改寫過,這些部份我不會特別去處理,因為這跟我的需求沒有直接關係,真正的難題在於如何使用這些機制。 一個有趣的途徑是透過 XTest 來對 Skype 施加指令,這樣只需要 Xfake 就可以使用 Skype,這個途徑我曾經在某套商業產品使用過,事實上證明是可行,而且效能挺不錯,因為不需要對真正的 Hardware 處理,latency 時間有效的縮短,這個途徑的問題就在於處理 response / XEvent 的議題。 不過我現在還不想這樣作,我想直接跟 Skype 內部打交道,所以繼續做了些 logging,面對眾多的 branching,就必須使出逆向工程的小手段了,這裡的逆向工程只是 tracing,並沒有作 dynamic patching,而我又發現新的東西,再度感謝 KKQQ 那篇 blog :-) 至於詳情,實在不方便說太多,不過對 qt3 下手還是最「乾淨」的作法。
由 jserv 發表於 01:13 PM | 迴響 (1)

Planex GW-NS54GM 無線網路卡驅動攻略

我不太會寫所謂的 How-To 文章,或許是因為文筆不好,也有部份是因為不拘小節,所以寫出來的文件根本不能看,但是我還試試著紀錄驅動手頭這張 PLANEX 出品的 [GW-NS54GM] 802.11g 無線網路卡的經過:
這張卡使用 TI 出品的 acx100 系列的晶片組,去年小貓來公司打工的時候 (兩人的 WirelessLAN Kit 發展小組),整理過 [Wireless Card (including Atmel, Prism, and TI acx100) Testing Result & Testing Process] 的文件,有些 Wireless Extension 支援的測試結果,不過當時用的 802.11b D-Link / DWL-120+,這些經驗還挺有幫助的。

acx100 的 open source Linux driver 有份相當好的參考文件 [Craig's ACX100/111 Guide for Linux],基本上「按圖索驥」大概就能驅動,在驅動之前,先來看看硬體資訊:
    $ lspci | grep ACX
    0000:02:00.0 Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface
嗯,ACX111 的晶片組,再來看看 PID 與 VID:
    $ lspci -n | grep 104c
    0000:02:00.0 0280: 104c:9066
104c 就是 ACX100 系列的 VID (Vendor ID),所以我們已經可以確認,接下來到 [Open-Source wireless driver for TI ACX1xx chipsets] 下載最新的 driver,我用的版本是 acx100-0.2.0pre8_plus_fixes_48。

不過,實際動手之前,建議先將上列的網頁 link 都拜讀過,比方說我們可以發現一件很重要的項目,引述網頁:
    We're still not totally sure about the status of WEP support:
    • ACX100: Many situations should work, but it might still not work properly or fail sometimes.
    • ACX111: not working yet.
所以這張卡就比較抱歉了,沒有 WEP 支援可用。在 tarball 中的 fireware 目錄預設放於 /usr/share/acx,這與 Debian policy 不太合,所以我動手弄個 [修正 firmware 目錄的 patch]。施加這個 patch 後,跑 ./Configure ; make ; sudo make install 即可。

驅動後,應該就沒有大問題了,那怎麼設定呢?之前 blog [Linetconf (Linux Networking Configurator)] 提到我最近在發展的這個網路設定套件,就直接用滑鼠「按幾下」就輕鬆設定好了,wireless-tools 太複雜了,不要問我怎麼用,因為我自己也不會 :-)

Have Fun!
由 jserv 發表於 09:24 AM | 迴響 (0)

Linetconf (Linux Networking Configurator)

最近花了點時間設計 Linetconf (Linux Networking Configurator),顧名思義就是處理 Linux 網路設定的工具。雖然名稱有個 "Configurator",但是這個計畫的重點在於 Configuration Framework,在觀念上很多地方有 RedHat 設計的 NetworkManager 的影子,但是更加輕量級,並且直覺與簡單 (NetworkManager 有許多相依性,並且無法在 2.4 Kernel 運作)。跟 Kanru Chen 借用了 wiki 來放發展的一些想法,可以參考 [Linetconf]。

正所謂「一圖勝千文」,咱們來看看運作的畫面:

而因為將網路設定加以抽象化,所以理論上可以撰寫不同的 Configuration Frontend,而且不必過度依賴 gtksu/sudo 一類的工具來取得 suid 才能設定,相反的,有個一致的 Network Daemon 掌管這樣的工作。

現在還有很多問題需要處理,距離成熟還有好一大段路要走,但是某些程度來說以算堪用,希望有更多的朋友協助測試並提供 patch,謝謝!

由 jserv 發表於 08:45 AM | 迴響 (0)

March 12, 2005

新酷音進度報告2

其實不算是「報告」,因為最近沒有大的進展,但是卻有許多重要的新想法值得紀錄,所以在此 blog 備忘。

[新酷音] 事實上不只是個輸入法,嚴格來說,這是一系列的輸入法實做,有個重要的指導原則就是 "Chewing Anywhere",讓繁體中文使用者能夠在許多不同的平台能享有同樣的輸入法習慣。上個月 blog [新酷音進度報告] 所提到的部份大致在二月底時釋出新版本實做出來,如果可以的話,我試著保持一個月更新這樣的紀錄。

Sun Microsystems 的 Ervin Yan 在他的 blog [A great story for IIIMF and chewing for Taiwan CTS project] 提到新酷音與 IIIMF 的商業應用,這的確是讓人很開心的事情,像 JDS (Java Desktop System) 這樣成熟的商業產品竟然願意採納新酷音的成果,實在是一種高度的肯定,而這跟華視又有什麼關係呢?請參閱新聞報導 [昇陽Java桌上軟體簽下首家客戶],所以,這世界實在奇妙,雖然我很少看電視,但是華視大概是電視頻道中,我看最多的,這問每個服過兵役的台灣男子都知道,因為每週四都要看在華視放映的《莒光園地》節目。 (我對華視直接的聯想)

然而,正如之前在 Tsung 的 blog [銘言啟示錄] 所看到劉燈前輩的一席話:


    「當百分之90的code做完的時候,表示百分之90的事情還沒有做完」

現在有極深刻的感觸。整整十一個月前,我在 tw.bbs.comp.linux newsgroup 貼了我對於當時 xcin-cvs + Chewing support 的 patch,因為一直聯絡不到原始酷音輸入法的作者,只好暫時弄個 fork 出來,但是沒有想過維護,畢竟這與我過去所作的軟體項目落差實在太大。然而,無心插柳柳成蔭,雖然進度不怎麼樣,但是這個計畫就在各地的同好協助下,透過網路聯繫與分享,成就 [新酷音] 這個計畫,爾後原始酷音的設計者也給予頗多鼓勵,這實在是很有趣的經驗。現在回頭看當時的動機,現在的完成度有一定的水準,但是過去的包袱也帶來諸多限制,這些的確是完成 90% code 時才發現的。

libchewing 與 SCIM-chewing 的維護人 Kanru Chen 在 blog [UTF-8 vs. UTF-16] 提到在 libchewing kanru-0.3 branch 開始 Sqlite3 backend 與 Unicode 支援,這方面的議題頗複雜,因為過去太多基於 Big5 的假設,從使用者的 feedback 與自身的需求來說,已經面臨太多缺字與重複轉碼的困擾。說到這,補充一個注意事項,上個月釋出的 libchewing 0.2.6 在漢語拼音的支援部份出了些問題,在 svn repository 已經有所修正。

上個月舉行的 [中文輸入自由軟體工作坊] 有許多新想法,而我也決定加強新酷音在 IIIMF 上的實做。im-sdk 12.2 的 Namespace I/O 會固定 API/ABI,是個很讓人高興的消息,因為這樣一來,Language Engine 的開發者可以減少許多額外的 I/O routines,不過,這又暴露酷音設計的另一個缺陷 -- 內部做了太多 I/O 操作,最顯著的問題就是,現行的 IIIMF-Chewing 與 tch_le_sun/Chewing 處理使用者手動加詞的功能很糟糕,無法針對特定使用者套用不同的詞庫,何也?光看 ReadHash() 實做就可以發現許多問題了,在 Ervin Yan 的協助下,邀請了他的同事 Phill Zhang 針對這個議題,在 #iiimf 討論,這是他的自我介紹:


    13:45 < phill> hi, jserv,
    13:46 < phill> I am phill, from SUN, working together with eyan
    13:46 < eyan> hi, jim, I just ask Phill to attend this irc channel, he will help to enhance the user data loading/saving for chewing.
    13:46 < phill> on Tch_LE
    13:47 < eyan> phill is the designer of tch_le_sun's API/SPI.

經過討論後,我知道 libchewing 要如何在 tch_le_sun 發揮出應有的功能,看樣子必須再行設計新的 I/O wrapper bound to Namespace I/O,必須承認的是,我對於 Namespace I/O in IIIMF 的認知也侷限於閱讀過 im-sdk/doc/ns/README 的描述,至於其設計動機為:


    IIIMF Namespace based file I/O API provides a set of functions which have the same semantics as the POSIX file I/O functions.

    This document briefly describes how LEs (Language Engine) can use the IIIMF Namespace based FILE I/O APIs. LEs may access their own configuration files, per user data, and such. If LEs use this set of APIs to access these files, input method users can control where those files will be located.

    The purpose of these APIs is to provide better I/O implementation for LEs.

有趣的是,libchewing 內部設計也有這樣的概念,差別在於後者具體而微罷了,現在要將兩者建立關聯,就是一個需要處理的議題。在我的 local repository 已經設計出一個 prototype,等我想好細節的部份應該就可以 check-in。

先提到這,因為太多細節我不能參透,那麼,聊些比較有趣的項目吧,在 SCIM 平台上,新酷音有不錯的展現,可參考 [SCIM/新酷音 + scim-input-pad],記得我去年才在蘇哲抵達台北時,在某個聚會跟蘇哲說我需要這樣符號輸入的功能,沒想到好快就有這樣完整的實做,看來我以後不能說「這些符號我打不出來」了 :-)

SuSE 9.3 已經釋出,正如之前 blog [最近幾個跟新酷音有關的消息] 提到的,SuSE 9.3 繁體中文內建新酷音,讓人真想玩看看。上個月花了一點時間做了有趣的 hack [XFCE 手寫辨識支援] 在 blog 結尾處我提到:


    就算不用在 PDA 等 handheld devices,XFCE 的手寫支援還是有其價值在,比方說用在 Kiosk 或者是公用電腦,旁邊放個手寫版,就可以輕鬆的搭配手寫辨識來使用了。完整的手寫筆跡辨識很難,更別說要拿出 Free/Open-Source 的解決方案,但是像是「手寫酷音」或許是個很好的方向,畢竟很多台灣人也寫不出所有的常用字了,寫注音符號輕鬆多了

而前天改了一下 evdev.c,弄了新的 kernel module,部份驅動之前買的極光小蒙恬手寫板,這當然也是個不成熟的 hack,目前只能送 motion 的 raw data,看起來不是很好,但是如果單純的 scratch 或許堪用,所以我又開始思考「手寫酷音」的實做議題了。

總之,寫輸入法一句話就是「送禮自用兩相宜」,可以從中磨練自己的耐心,還可以結交朋友,當然有了好用的輸入法,與 MM 聊天也比較愉快,何樂不為呢?

由 jserv 發表於 06:47 AM | 迴響 (2)

March 10, 2005

KDE 的 IPC 實做該採用 D-Bus?

莎士比亞有句名言:"To be, or not to be: that is the question." (Hamlet 3/1),而 KDE 開發者 Mathieu Chouinard 在他的 blog [The "Foie Gras" syndrom or the force fed technology syndrom] 裡面的敘述,也讓我們有這種感覺。

KDE 2 所引入的眾多技術,奠定 KDE 日後卓越發展的基礎,感謝莊明哲前輩的大作《KDE2 技術開發》(終於拿到親筆簽名了,參考 [首度 KDE@Taiwan 使用者聚會圓滿落幕],感謝前輩的加持)。在這本大作裡頭有提到 KDE 的 IPC (Inter-Processs Communication) 技術變遷,在 KDE 1.x 時代,曾經有一組人馬試著採用 CORBA 作為 IPC 與 Desktop Object Model,但是實際測試的結果,發現 CORBA 實在太複雜了,難以掌控,在 KDE cvs repository 還保有 [過去嘗試 CORBA 的遺跡]。

而儘管 GNOME 陣營採用 CORBA 作為 Object Model,但是卻沒有使用其 IPC 設計,並且也只使用 CORBA 最小的實做 Mico 的部份功能,那麼,KDE 2 最後採用什麼技術呢?答案是自己開發一套,針對桌面環境需求,開發出 DCOP (Desktop COmmunication Protocol),每次提到這個典故,都不由自主佩服 KDE Developers 當時的氣度與勇氣。

在 2000 年,KDE 與 GNOME 開發者共同釋出善意,開啟了 FreeDesktop.org 的計畫,促進桌面系統的標準化,以及加強兩大系統的交互運作,D-Bus 算是這樣訴求的產物,目前 GNOME 與 Qt4 都已經正式支援了,而 KDE 陣營也傾向採用 D-Bus 作為 IPC 基礎。然而,D-Bus 仍然是相當新的設計,很多 API 也才剛邁向穩定,這點在之前的 blog [D-Bus 邁向 1.0 之路] 有提及。

Mathieu Chouinard 提出 DCOP 發展的可能性:
1) leave it in the current state and pray that nothing break
2) reimplement libICE
3) reimplement DCOP using another mechanism like shared memory
4) ditch dcop and using something else

而在四個選擇中,Mathieu 的看法如下:


    I personnaly prefers the third option because I don’t need a networked ipc 99.999999% of the time and if we really need to interoperate with gnome let just use a bridge. And if people prefers to go with option 4 why use D-BUS? why not use DCE which is now Opensource and which will enable us to interoperate with more systems.

目前的 DCOP 相當有效率也穩定,相對來說,D-Bus 有彈性但也需要更多歷練,究竟 KDE Team 要如何抉擇呢?本 blog 後續的評論提供我們許多重要的參考。

由 jserv 發表於 01:23 PM | 迴響 (1)

Free Software Foundation 徵才資訊

Tina Gasperson 在 NewsForge 新聞報導 [FSF offers jobs page for employers, employees],提到 1985 年成立的 Free Software Foundation 最近新增一個 [Jobs in Free Software] 的徵才資訊頁面,裡面列舉了若干 FSF 內部的職缺以及其他外界提供 Free Software 工作機會的資訊。

由 jserv 發表於 12:26 PM | 迴響 (0)

OSGI 與 Eclipse3 的關聯性

之前 blog [Eclipse 3.0.1 倩影] 提到我在 Kaffe.org mailing-list 成功使用 Kaffe 1.1.5pre 運作 Eclipse 3.0.1,而如果您留意的話,啟動 eclipse 的 script 施加了這個參數: "-Dosgi.locking=none",這個 locking 的問題主要是目前 GNU Classpath 為基礎的 Free Java runtime 的支援度考量。

比較有趣的是,那 osgi 又是什麼呢?Yipsilon 的 blog [OSGI與Eclipse3] 給我們一個完整的答案,首先引述 OSGi 的介紹:


    OSGi是Open Service Gateway Initiative的簡稱,該組織建立于1999年,是一個非贏利機構,旨在建立一個開放的服務規范,為通過網絡向設備提供服務建立開放的標准。

而 IBM Eclipse 團隊為何要採納 OSGi 的規範呢?再度引述:

    有很多人問Eclipse為什麼要兼容OSGI規范而不是其他的規范呢?
    在Eclipse 被捐贈出來以前,Eclipse由OTI來開發,其目標是開發一個嵌入式Java軟件的開發平台。互聯網上現在仍然由很多的連接指向 Visual Age Micro Edition (VAME). 這也是SWT被構思的一個原因,他們想將SWT使用在嵌入式設備中的用戶界面。這種淵源關系解釋了當時為什麼選擇OSGI規范。

    另外一個原因是除了OSGI沒有其他的規范。OSGI規范在輕量級服務架構應用方面被廣泛的支持。而且OSGI被好多電信業的知名公司和一些其他行業的知名公司所支持。他們需要使用OSGI來同Sun的J2ME來抗衡。

這下終於搞懂了 :-)

由 jserv 發表於 11:19 AM | 迴響 (0)

起飛中的 Debian 中文社群

其實我不是很喜歡 User Group 翻譯成「社群」,感覺少了原文中那份味道,不過似乎也沒看到其他合適的翻譯,所以暫且採納這個詞彙吧。

Carlos Liu 的 blog [復活的感覺真好] 提到 #debian-zh 再度復活 (hosted in irc.freenode.net),人氣成長中,兩岸三地的 Debian 愛好者可以透過 UTF-8 encoding 在此 IRC channel 發言,每天也有不少有趣的分享,身為 Debian 愛好者絕對不要錯過 :-)

大約在 moto 討論區與 debian.org.tw 開張以來,Debian 台灣區的愛好者有個匯集想法與交流的環境,爾後也有許多來自對岸的朋友參與討論與分享,都是很不錯的經驗。DWN (Debian Weekly News) 的中文翻譯在熱心朋友的協助下,又繼續發行,實在是很值得大書特書的項目,而 Andrew Lee、Chihchun Tsai,以及 kanru Chen 等人弄的 apt.debian.org.tw 也蒐羅頗多本土的 Debian 套件,只要加入 apt feed,應該就可以很快對中文環境上手,其他朋友,像是 Jesse Sung 默默維護 debian.org.tw 許多重要服務,當然功不可沒,不過這裡就不一一提及了。

那我呢?不喜歡翻譯、文筆不佳、又不會打包 Debian packages (說來真丟臉),然後又不是用純 Debian (太貪心了,裝了很多不同的 Linux distro 與 UNIX-like OS) 的我,該如何協助 Debian 中文社群呢?coding 大概是我能做的,所以無聊時就幫忙送 patch,而聊天似乎也是我相當擅長的項目,所以今年應該也會繼續在 [IRC Conference] 分享一些有趣的主題。

這裡先來整理一下想到的主題:
  • 輸入法系統框架
  • Graphics Design 與 GUI Toolkits
  • Free/Open-Source Java 與 Debian-Java Policy
  • Linux WirelessLAN 經驗分享
當然沒辦法全部分享,不過上列的主題我都很感興趣,也花了一些時間涉獵,而透過 IRC 幾乎可以說是一對一的交流 (只要你打字夠快),是很好的討論方式,而事後還有完整的 irc log 可參閱,絕對不會有遺珠之憾。

說太多了,還是認真做事比較實在 :-)
由 jserv 發表於 08:11 AM | 迴響 (0)

程式與衣服的相似性

又來一個令人匪夷所思的標題,到底電腦程式跟衣服兩者有何相似性呢?在 #classpath 上 Sven de Marothy 提到非常有趣的聯想方式:


    06:40 < Sven_M> Do silverfish eat clothes?
    06:40 < Sven_M> I keep finding these small holes in my clothes. And I've never ever seen a moth in my apt.. Just the occasional silverfish.
    06:45 < rabbit78> maybe your cloth is simply dying, the overall quality of clothes is depressing
    06:49 < Sven_M> Clothing is like coding.. If you let it be, it rots. When you find holes, you have to patch it.
    06:49 < rabbit78> yeah
    06:49 < jserv2> Sven_M: I like your words very much!

真有意思,不愧是出於 Sven 之口 (#classpath 還有更多 Sven 精彩又詼諧的說法,有空時來整理一下)。

由 jserv 發表於 06:58 AM | 迴響 (0)

March 09, 2005

SCIM/新酷音 + scim-input-pad

在 SCIM 1.2.0 引入新的 GUI Helper classes,可以用以設計相當有用的輸入法輔助效果,而具體的實現範例可以參考蘇哲在 SCIM 上實現的 scim-input-pad,詳情參閱 [scim-input-pad 0.0.2 is available for testing]。

scim-input-pad 是個 On-Screen Input Pad ("On-Screen" 到底要怎麼翻譯?),搭配上個月釋出的 SCIM/新酷音 (參考 [新酷音釋出新版 libchewing 與 scim-chewing]),運作畫面如下:

看起來好棒 :-)

由 jserv 發表於 10:00 PM | 迴響 (0)

Eclipse 3.0.1 倩影

之前在 blog [Free Eclipse 平台] 提到 RedHat Eclipse 小組在 Eclipse/GCJ 的卓越成就,事實上 Kaffe 很早就能運作 Eclipse3 了,所以我也抓了最新的 tarball 玩弄一番,順手更新 [Kaffe.org Screenshots],運作畫面如下:

我在 Kaffe.org mailing-list 提到 [Success: Eclipse 3.0.1] 有些注意事項,而在 debian-java mailing-list 也有其他成功的經驗 [Jim Huang post on Kaffe list re. Eclipse 3.0.1 on kaffe]。現在我們的重心會移轉到 Eclipse 3.1 development branch,引入許多新特徵的支援,像是 jawt,儘管 Kaffe 已經初步支援了,但是 ABI 的議題也相當麻煩,還有不小的改進空間。

由 jserv 發表於 09:45 PM | 迴響 (0)

Konqueror/Embedded 更新

Konqueror/Embeded現任維護者 Luciano Montanaro 在 mailing-list [Re: QT/E-3.x] 提到最新的 snapshot 2005-03-03,以 KDE_3_4_BRANCH 為基礎。

運作的畫面如下:


這意味著整合了 Apple Webcore/Safari 的 patch 與許多重大修正 (DOM, CSS, CSS2, CSS3) 將可應用於 Konqueror/Embedded 中。
由 jserv 發表於 09:25 PM | 迴響 (0)

March 08, 2005

3Com 3CRWE62092A 驅動

上週 Jouston 送了一台 LinuxDA 的機器到 [jserv's lab],也拿了張 3Com 3CRWE62092A 無線網路卡:

在此之前,我只碰過 ACX100 的 WirelessLAN NIC,所以這張卡對我來說很好玩。在 Linux 下驅動的方式可參閱 [Swallow 550 & 1100 Linux drivers],廢話,前 XX 雜誌主編的 Jouston 難道會不知道嗎?送過來要我幫忙的原因是,在 Kernel 2.6.10 會有 undefined symbols 的問題,所以我開始惡搞,終於弄出來了。

Jouston 做了一份筆記 [HOWTO configure 3Com 3CRWE62092A in ubuntu warty(might work in other 2.6.x machine)],短期內看來原作者應該不會維護,但是這個 driver 的完成度頗高,也沒有 closed firmware,所以我可能會試著維護。

引述 Swallow 550/1100 網頁的資訊,這份 driver 支援以下特性:


    # SSID support
    # WEP encryption
    # Airlock (TM) encryption
    # Wireless Extensions (some of them anyway)
    # Roaming tables
    # A read-only /proc interface

pcmcia_cs 還有許多議題要排時間研讀與嘗試 :-)

由 jserv 發表於 10:32 AM | 迴響 (1)

第兩百篇

去年在 AceLan 的協助下,幫我在 blog.linux.org.tw 上面弄好 Blog,但是我一直沒有閒情逸致寫,而今年改變工作型態後,就開始試著分享自己的所見所聞與創作,到本篇為止,已經第二百篇了 :-)

第一百篇是發表於今年二月五日 [Hurd-L4 新進展],一個月過去,竟然就暴增一百篇,真有趣呢。雖然目前涉獵的項目還沒有太大的突破,但是寫 Blog 真是不錯的紀錄方式,有時候還能引來朋友的共鳴與迴響,額外的新收穫。

最近又將會開始忙碌的生活,但是紀錄 Blog 的程序還是會保持,也歡迎各方朋友多指教,謝謝!

由 jserv 發表於 08:38 AM | 迴響 (0)

March 07, 2005

Poppler -- PDF rendering library

Poppler 是個專注於 PDF rendering 的 library,以 xpdf 3.0 為基礎,加入許多修正,並且可以提供給許多需要 PDF viewing 的應用程式使用,目前已經進駐 FreeDesktop.org。

至於這個專案的發起想法,可以參考作者 Albert Astals Cid 的 blog [Poppler],以下節錄部份內文:
    You may have noticed that recently xpdf source code has had some code auditing and some problems where found in it. And you may have noticed that meant lots of new releases, xpdf, gpdf, kpdf, koffice, cups, evince, latex(IIRC) and some more, why? you may ask. Because xpdf has not a shared lib so all the projects that want to use xpdf code have to include it in their sources. That obviously sucks for many reasons, a shared lib will be obviously better. That is where poppler comes in.
透過 poppler 這個獨立的 PDF rendering library,更多的軟體將因此受益,而且可以有更好的發展模式,也希望能夠藉此讓 open source'd PDF rendering 有蓬勃的發展。
由 jserv 發表於 12:40 PM | 迴響 (1)

APWSI2005

APWSI2005 是 The Australasian Software Engineering Conference 2005 的縮寫,在 March 29 2005 於 Carleton Crest Hotel, Brisbane 登場,裡面有許多有趣的議題,其中我比較感興趣的是 [Morning Session: Introduction and Input Methods],詳細的議程可以參考 [APSWI 2005 DRAFT PROGRAMME]。

上個月台灣社群的朋友才舉辦過小型會議 (參考 [中文輸入自由軟體工作坊活動圓滿落幕]),這個月登場的是正式且完整的項目,很令人期待,雖然沒辦法為了一天的議程跑去這麼遠的地方,但是看 slides 與照片應該就很過癮了。

議程中與輸入法相關的場次有二:
    9:05: Keynote: Towards A Successful Input Method Architecture Hideki Hiura (Sun Microsystems) Hideki Hiura is also the chair of the Open I18N standards Committee.
    10:00: Recent Developments in IIIMF Lawrence Lim (RedHat) and Chris Ho-Stuart (QUT)
預祝順利。
由 jserv 發表於 12:28 PM | 迴響 (0)

《心靈角落》

上週五花了些時間觀賞《心靈角落》(magnolia) 這部相當特別的影片,這應該是我第三次看了,前兩次的時間距今有點久了,而上週恰好在出租店瞥見,就租回家再度品味一番。

劇情可參考 [ccho's 電影網] 對本片所作 [圖文並茂的介紹]。

片名 Magnolia 在中文的意思就是木蘭花,片中第一滴蛙雨落下的地點,那條路就叫做 Magnolia Street,而為何用以命名本片,就不得而知。正如令人疑惑的片名,劇情也更令人迷惘不已。

導演巧妙的以意識流加上多線程 (好吧,詞窮的我,只好用 "concurrent" 來表達這個意念) 來引導觀眾。從頭到尾;沒有所謂的主角、沒有所謂的高潮,每個角色都是主角、每段故事都是重心,但故事本身的來源和過程和細節並不太重要,要緊的是他們之中緊扣著的內涵,又環環交結在一起,這些描述很玄吧,但是實際觀賞後,想必也會有相似的感受。

人生世界的複雜與多樣中,背後蘊含著一個共同的生命邏輯,就是生命終將伴隨著許多的痛苦與悔恨,而在痛苦與悔恨中,改變與寬恕是唯一的路。

廣義來探討人性,可以說終其一生人都在追逐自我中心的虛榮,卻不自覺淹沒在遺棄、背叛、謊言與傲慢的漩渦裡面,逐漸無法自拔。正如片中的說法:「我們渴望愛,卻吝於給出真愛;我們既是加害者、也是受害者。」

來日,生命會走到盡頭,它或許是罹患絕症、也或許是挫敗或功成名就之際,而人也在此備嚐一生的苦果。有人說瞑目那刻會看到這輩子的一切的縮影,那麼,或許我們將會在那刻瞧到所想要的感官、物質與聲名的滿足,但是,代價卻是無盡的痛苦與悔恨。

片中那首由各個故事的主角人物共同在心底唱出來的歌,將那樣一份痛苦與悔恨的哀愁宣洩得淋漓盡致:
    Wise Up( AIMEE MANN )
    
    It's not
    What you thought
    When you first began it
    You got
    What you want
    Now you can hardly stand it, though
    By now you know
    It's not going to stop
    It's not going to stop
    It's not going to stop
    'Till you wise up
    
    You're sure
    There's a cure
    And you have finally found it
    You think
    One drink
    Will shrink you 'till you're underground
    And living down
    But it's not going to stop
    It's not going to stop
    It's not going to stop
    'Till you wise up
     
    Before you sign away the deed
    'Cause it's not going to stop
    It's not going to stop
    No, it's not going to stop
    'Till you wise up
    No, it's not going to stop
    'Till you wise up
    No, it's not going to stop
    So just give up
    
    以為確定而清楚了
    你的傷口已經恢復痊癒了
    你以為終於找到那個方法了
    但你知道
    一杯酒 將讓你退縮猶豫
    你還躲藏起來 躲在心靈最沒有陽光的角落
    
    那還沒有停止
    那不會停止的
    直到 你懂得了
    
    準備了一張寫著你需要的清單
    在你簽定履行一切之前
    但是 因為那沒有真正停止
    那還沒有停止
    不 那不會停止的
    直到你 懂得了
    不 那沒有停止
    直到你 真正懂得了
    
    不 那不會停止的
    所以 就 放棄吧
    
最後,天降蛙雨,一切世俗的醜惡被擊打得粉碎。「蛙雨」源自聖經出埃及記(Exodus 8:2),蛙雨來到現實的啟示。在死亡前終於肯原諒,面對了自己面對了過去;在父親死亡前,真正釋懷自己多年的怨恨;歸還了偷來的錢財,正視自己的困境...
由 jserv 發表於 12:09 PM | 迴響 (7)

VIA Epia MII-12000 主機板介紹

VIA (威盛電子) 是家非常傑出的企業,我在之前 blog [最近的研究方向] 與 [新年新希望] 提到的 KittenBox 計畫,就是使用 VIA 提供的硬體。

在 NewsForge 上有篇文章 [Review: VIA Epia MII-12000 motherboard] 就是對於 VIA EPIA MII 主機板的評價,摘錄其中的重點:
    t's quiet, it's small, it's powerful enough for everyday desktop use and versatile enough to be a set-top media device or small home server. It takes PCMCIA cards, IDE drives, DDR memory, and a standard ATX power supply, yet it's smaller than a laptop computer. It has a built-in DVD decoder (no more DeCSS!) and with its built-in AES chip it can encrypt and decrypt data faster than the most powerful Athlon 64 system. The question isn't, "What can you do with the Epia MII-12000?" The question is, "What can't you do with the Epia MII-12000?"
尤其是後面那句話,真是經典。

面對 Intel 與 AMD 的強勢擠壓,VIA 則相當注重附加功能,Epia MII 主機板在多媒體的表現相當不錯,多數開放格式的媒體檔案可以搭配內建硬體加速設計,達到滿意的結果 (當然,邪惡的 WMV9 就不要考慮了)。

而內建 PadLock 可用硬體大幅加速 AES 與 OpenSSL 的效能,這個設計非常貼心,基本上用 Debian base,然後安裝一些 development 套件後,把 Kernel 施加若干個 VIA Epia 相關 patch,再把幾個重點的應用程式,比方說 Xine (VeXP) 用 i686 重新編譯 (這是必要的,跟 i386 相較有不小的差異),大致的雛型就出來啦,弄個好看的外殼,簡單好用的 Media Center 就出來啦,很適合 DIY 的玩家。

重點是,真的不貴 :-)
由 jserv 發表於 08:31 AM | 迴響 (2)

懸賞:改進 GNOME/GTK+ 記憶體使用量

Ben Maurer 的 blog 提到 [Bounties!],這是由 Novell 與 OSNews 共同贊助的懸賞,目標就是希望能夠有效改進 GNOME/GTK+ memory consumption,詳情可參閱 [Memory Bounties]。

我們可以此次的懸賞發現許多現有 GTK+ 本身在記憶體管理的弊端,而提出的若干途徑很值得參考,對我而言這兩項很重要:
* Add image data to the icon cache
* Use a mmap'able cache for fontconfig

當我們在設計一個整合性圖形系統時,必定會處理到 resource issues,可以在 Bugzilla entries 發現一些量化的分析,也讓我相當驚訝,果然任何一個細節都有其學問。

至於技術細節可參閱 wiki page [MemoryReduction] 與 [MemoryReduction / Tools / LongTermMemoryTests]。

由 jserv 發表於 05:18 AM | 迴響 (0)

掌聲響起

剛剛觀賞電視節目時,瞥見梁靜茹的演唱會,唱「掌聲響起」時,她噙著淚水說:「這首歌是爸爸以前最喜歡的一首歌,我要送給在天上的爸爸。」,我的心情也隨著旋律起伏著。相關的報導可參閱自由時報電子新聞 [梁靜茹 ㄍㄧㄥ不住 飆淚]。

舊歌新唱 (這大概是少數我會唱的歌目之一),感覺一絲不減,一時回憶不起第一次是在什麼場合聽到的,時過境遷有機會再聆聽,這些湧上心頭的感覺很難用文字捕捉。過去曾經相當順遂的成長,然而這可能不見得是好事,往後遭遇不少挫折,儘管大多能夠再度爬起來,自我肯定的心聲對我來來說,也相對重要...

已經忘記上一次聽到掌聲是什麼時候,現在的我,只是個小螺絲釘,頂多只會聽到金屬摩擦聲罷了,還是過我自己的生活,燃燒著自己的生命,雖然不知自己還能活幾個天,只願闔目那刻能對此生無怨無悔。

或許,多給點掌聲會更好。

由 jserv 發表於 05:02 AM | 迴響 (0)

March 05, 2005

Free Eclipse 平台

Eclipse CON 大會在今年 Feb 28 到 March 3 於美國加州盛大舉行,至於新聞報導,可以參考 [(Eclipse CON 2005摘錄) Eclipse創世紀] 一文。

之前的 blog [Tom Tromey 的 Eclipse 備忘錄] 提到 RedHat, Inc. 的 Eclipse 小組已經有相當卓越的進展,目前 Eclipse 3.1 development branch 也成功在 GCJ 下運作,其運作的效果可參閱 blog [以 Eclipse 與 GCJ 進行 100% Free/Open-Source Java 開發]。

包含 RedHat, Inc. 這些偉大的前輩與來自世界各地貢獻者的成果,可在 [Natively-Compiled Eclipse] 取得,使用 Fedora 的朋友可以直接用 yum 取用,不過比較遺憾的是,目前還沒有 Debian packages 可用。總之,Free Eclipse 平台實在是很值得關注的項目 :-)

Let Java Free!

由 jserv 發表於 09:45 AM | 迴響 (0)

PicoGL -- lightweight OpenGL subset implementation

最近雖然在做硬體繪圖加速,但是為了廣泛的 benchmarking,我需要一套能夠完全掌握其設計的 software OpenGL implementation,當然,著名的 [Mesa] 毋庸置疑是很優秀的 OpenGL 實做,但是不符合我的需求,我沒辦法耗費太多時間理解其實作方式。

qemu 的作者 Fabrice Bellard 曾經設計過一套很棒的 OpenGL subset -- TinyGL,Fabrice 本人就不必說了,牛得不像話,設計的軟體個個都是相當傑出的 Free/Open-source software。我依據我的需求做了修改,為了避免誤會,所以我弄了新的專案,取名 PicoGL,引述 README 文件內容:
    PicoGL is based on TinyGL 0.4 with the changes:
      . Introduce new graphic backends.
      . Use autotool to manage the configuration
      . Fixed-pointing math support
    For information about TinyGL, see the file README.TinyGL
    Currently, PicoGL supports the following backends:
      . X11
      . Nano-X
      . SDL
    
感謝 lwhsu 的協助,我將 subversion repository 置放於 svn.csie.net,目前還在發展階段,預計第一個釋出版本將會是 0.1.0,有興趣設計 OpenGL subset for Embedded System 的朋友可以跟我聯繫。授權方式沿襲 TinyGL,是 BSD-like License,只要在您的作品提到作者資訊與版權聲明即可,相當自由。

秀一張快照:

由 jserv 發表於 07:33 AM | 迴響 (0)

March 04, 2005

《真情快遞》

凌晨起床後,寫信給 jie 後,開始觀賞之前租的影片《真情快遞》(The Shipping News),關於劇情,可以參考周才忠的文章 [時間是癒合傷痛的良方],比較正式的「官方介紹」則可以參考 [真情快遞@KingNet],裡面有動人的 Shockware Flash 動畫。故事的主角奎爾讓我覺得似乎可以在身上找到一絲雷同,是的,我不只平凡,還很窩囊、不修邊幅、生活乏味、生平無大志,還常被指為是一個失敗者,責怪沒有好好把握所給予的機會,所以劇情前半段反倒讓我從同情到自卑... (略)

在婚姻的失敗與雙親雙亡的陰影中,奎爾遇到了素未謀面的姑姑艾格妮,經過其開導之後,一起踏上尋根與療傷之旅。走過滄桑的姑姑艾格妮深深地瞭解到,唯有時間遞移與環境轉換,傷痛才有癒合的一天,於是回到奎家在加拿大紐芬蘭的老家,在這以大海為伴的紐芬蘭家鄉裡,奎爾、女兒、姑姑都開始新的生活,也各自找到癒合的起點與力量。

奎爾後來成為當地報社的記者,將感情透過筆鋒融入,開始一點一滴深入這小漁村的內在世界,同時也在自己塵封許久的心靈,挖掘出真正的寶藏,而結尾的旁白讓我感動頗久:


    很多事情我不太懂,像是一條線能引發暴風雨、或是一個死人竟能復活,但我相信傷痛終究會痊癒

    標題:暴風雨吹走房子,反而呈現美好的前景

由 jserv 發表於 11:41 AM | 迴響 (0)

Hackers 的「倩影」

「倩影」這詞似乎有點突兀,請容許我這樣用。

GNU Classpath 的維護者 Mark J. Wielaard 在他的 blog [More pictures - Fosdem 2005 meeting] 提到有許多 Free Java Hackers 在 FOSDEM 2005 的「倩影」,咱們來欣賞品味

在 #classpath IRC channel 裡頭提到許多有趣的眉批,可以搭配圖片觀賞:


    07:19 < Sven_M> avdyk: Did you seem mjw's pictures?
    07:20 < avdyk> yes
    07:20 < avdyk> great pictures
    07:53 < dalibor> but would you trust java to this man ...
    http://www.klomp.org/mark/classpath/fosdem2005/img037.jpeg
    07:53 < dalibor> the grin's a tiny bit too ... evil.
    07:54 < Sven_M> Yeah.. he looks sneaky. He's trying to sell something.
    07:55 < Sven_M> "Hacker, I bless thou"
    http://www.klomp.org/mark/classpath/fosdem2005/img018.jpeg
    07:55 < dalibor> one of the few smiling pictures though
    07:55 < Sven_M> Saint Mark doesn't look so sure of it though.
    07:57 < dalibor> i need to dye my hair green, though
    07:57 < dalibor> this doesn't stick out well.
    07:59 < Sven_M> http://www.klomp.org/mark/classpath/fosdem2005/img048.jpeg.html
    07:59 < Sven_M> The missing caption here is: "So.. why don't you guys just wait
    until Sun open-sources Java?"
    08:00 < Sven_M> The common expression of 'What??"
    08:00 < dalibor> hahaha
    08:00 < dalibor> 'Don't you say!'
    08:00 < dalibor> :)
    08:01 < Sven_M> This one's good.
    http://www.klomp.org/mark/classpath/fosdem2005/img042.jpeg
    08:02 < Sven_M> "Oh yeah? Come here and we'll take it outside! I'll show you
    some Garbage Collection!"
    08:03 < dalibor> nah
    08:04 < dalibor> 'Slides!? You want f*ing slides!? I'll show you some f*ing
    slides! I even painted a statcvs pic on the board, damn it!'
    08:04 < dalibor> notice how the notebook is nicely shut
    08:11 < dalibor> Sven_M, 'and then i'll break java like this, and like this ...'
    08:11 < dalibor> http://www.klomp.org/mark/classpath/fosdem2005/img056.jpeg

Sven de Marothy 是個我相當欽佩的前輩,不僅程式寫得好,人也相當風趣,藝術天分更是棒,比方說之前我在 blog 提到的 [很有意思的 Kaffe 圖],就是 Sven 有趣的聯想,而身為瑞典人,他也義不容辭的教我們 ["Kaffe" 該如何發音?]。

上面的眉批寫得真是好 :-)

所以我又翻出昨天才寫過的 blog [Java 是否該 open source?] 來鑑賞一下。

由 jserv 發表於 08:58 AM | 迴響 (0)

March 03, 2005

Java 是否該 open source?

又來炒冷飯了。

今天 Sun Microsystems 的 Dan Baigent 在他的 blog 上寫到 [Open Source Java advocates comment],就一位 Sun 的職員的角度回覆 Keith Lea 提出 open source'd JDK 的質疑:


    The problem with this is that it fails to address the fundamental problem from Sun's perspective - why would Sun want Java technology based on Sun's implementation (which is known to be compatible) to be distributed in an incompatible way, regardless of what it is called? If the answer is to leverage "innovation" of more developers, that assumes that the innovation is of more value than the compatibility. Sun has already determined that the JCP is the way to manage compatible innovations - agree to the standard specification first, then build reference implementations and test suites that allow multiple, compatible implementations of the standard. Is it really the "specify first, then innovate" approach that open source advocates disagree with?

我將這個訊息告訴 Kaffe Developers 之一的 Dalibor Topic,以下節錄 #kaffe IRC channel:


    07:17 < jserv2> http://blogs.sun.com/roller/page/dbaigent/20050302#open_source_java_advocates_comment
    07:25 < robilad> jserv2: heh, he means me :)
    07:25 < robilad> i've discussed a bit on javalobby with him
    08:31 < robilad> jserv2: done
    8:32 < robilad> mjw: i discussed a bit with him on javalobby
    08:32 < robilad> i guess sun sends their folks out their ocassionally to fight for the true java
    08:32 < robilad> :)
    08:33 < robilad> "But if it is clear that the Java logo can and should mean compatibility and that no incompatible implementation should be allowed to have the logo, isn't it also logical that no compatible implementation should be allowed to not have the logo?"
    08:33 < robilad> what a load of rubbish :)
    08:33 < robilad> clearly a licensing guy.
    08:33 < tromey> yeah, that seemed idiotic to me
    08:37 < robilad> i've cleared him a bit up, then.
    08:38 < mjw> Hehe. Funny post.
    08:40 < tromey> I lost the url already
    08:41 < tromey> where did you post your response?
    08:41 < mjw> http://blogs.sun.com/roller/page/dbaigent/20050302#open_source_java_advocates_comment
    08:41 < tromey> thanks
    08:44 < robilad> i just suck live, i'm ok when i have a moment or two to think about my lines :)

於是 Kaffe、GNU Classpath 維護者與 GCJ hackers 們又開始討論了,究竟 Dalibor 說了什麼呢?引述 comment 如下:


    Dan, as you can see by lots of open source implementations of real standards, like CORBA, HTTP, TCP/IP, etc, the open source developers have no problems following standards, so your speculation is ... wrong :) It's pretty simple. Sun does what they do, which leads to other people writing a lot of working, better, and free code from scratch to make the non-free implementation unnecessary. To Sun's huge fortune, these people want to be compatible, they do not want to break the standards. So if Sun's as bright as I think it is, it will reach out to those people and help them achieve their goal of being compatible without throwing funny obstacles in their way. If Sun needs more time to cross the golden bridge to working together on free software, so be it. Just don't expect people to wait 8 more years for that to happen, just sitting by and twiddling thumbs :)
    cheers, dalibor topic

開放的規格相當多,Sun Microsystems 也有參與制定,當然不乏主導的項目,但是開放規格之所以稱為「開放」,就是能夠將規格制定與實做能夠區分出來,在很多角度來說,Sun 絕對可以在此議題做得更好。我之前的 blog [自由軟體授權與 Sun Microsystems],就點過 Sun Java 開放的態度其實撲朔迷離,就如 Dalibor 所說的,真正開放的規格,比方說 CORBA、HTTP,以及 TCP/IP 等等,Free/Open-source 開發者可以很「自由」的開發相關的實做,只要規格明確的話,而過去 SCSL 授權則讓開發者根本得不到基本的「自由」,在我去年的簡報 [Free Java 介紹](PDF 版本) 也花了一些篇幅介紹相關的限制,至於後來更新的授權方式,我也在去年 [2004 國際開放源碼研討會] 跟與會的朋友作相關的授權探討。

這個時間點有點尷尬,恰好在 [預祝 Java 十週年] 時,Sun 的網站也做好 [It's Duke's Birthday, Too!],相關的慶祝活動也不必說了,肯定很轟動,而我們這群 Free Java 的開發者在這個時間點,用力的嗆 Sun... :P

無論如何,只要 Java 技術沒有完全自由開放的一天,我們都會建議您從:
(Sun Microsystems 官方的 Java 實做)

移轉到開放、自由,但是也具備同等甚至更好的實做,這如下圖:

是的,咱們用力說: Let Java Free!
雖然我一直是 Java fan,但是這些限制與搖擺不定的開放政策,讓我對 Sun Microsystems 不免有些失望 (但是也只有 Java 的開放態度部份),所以就直接用行動表示,加入 Kaffe 開發者的行列,證明我們也是可以做出相容的環境,當然,有新血投入是更好。

由 jserv 發表於 11:19 AM | 迴響 (1)

中國象棋遊戲

剛剛有點悶,想找個遊戲玩,翻了一下 Freshmeat.net,看到中國象棋的程式,抓下來玩,很不幸的,似乎有些瑕疵,所以改了一下,終於可以運作了:

這是用 SDL 打造的遊戲,具有初步的人工智慧,所以你可以跟電腦對奕,原始作者是陳成濤 (Win32 版本,主體邏輯部份),由張正一移植到 SDL,我修改過的版本則在 [sdl_cchess] 可下載。

授權方式為 GNU GPL,用滑鼠就可以操作了,Have Fun!

由 jserv 發表於 07:01 AM | 迴響 (5)

Ervin 列出的 IIIMF 待作事項

對於輸入法框架的議題,我現在是劈腿族,也就是說我游移在 IIIMF 與 SCIM 之間,有時間就去碰一下 :-)

在之前的 blog [最近幾個跟新酷音有關的消息] 提到任職 Sun Microsystems 的 Ervin Yan (前天聊天後才發現,原來他在北京) 很快的對新酷音新版本做了 comment [First evaluation of libchewing 0.2.6],這些意見非常寶貴,所以下次作 RC 時,應該要更廣泛的邀請許多開發者測試。

對於 IIIMF 一知半解的我,還是在 #iiimf channel 冒昧發了許多問題,Leon Ho 引了 Hideki 的 email 給我一個很好的出發點,爾後 Ervin 熱心回覆我所有的問題,相當受用。

而昨天 Ervin 也在他的 blog 列出 [TODO lists for IIIMF from 02/03 - 14/03],我比較有興趣的是 IME ( cangjie/dayi/wubi, etc ) keyboard layout displaying 與 tch_le_sun,現在 im-sdk r12 在 Debian 上運作已經很穩定,而 tch_le_sun 也支援頗多輸入法,當然新酷音也羅列其中,不過細部還要再調整一下,我改了一些部份,還不是很有把握,有機會再來討教。

對了,Kanru Chen 在 irc.seed.net.tw 弄了新的 #im-dev channel,有興趣的朋友可以一起來討論。

由 jserv 發表於 01:21 AM | 迴響 (0)

March 02, 2005

預祝 Java 十週年


之前的 blog [考古:爪哇] 提到 Java 問世已經快十年了,而剛剛閱讀 Naoki Ishihara 的 blog [keynote plan for Java Computing 2005 Spring],赫然發現 Sun Microsystems 正在準備「Java 誕生十週年特別企劃」,在該 blog 提供的 link 可以找到許多有趣的活動。

所以,Java 迷一起來慶祝吧。
由 jserv 發表於 05:35 AM | 迴響 (0)

March 01, 2005

最近幾個跟新酷音有關的消息

昨天 [新酷音] 團隊宣佈新的釋出版本 [新酷音釋出新版 libchewing 與 scim-chewing],而幾乎在第一時間,Sun Microsystems 的 Ervin Yan 則在 JDS (Java Desktop System) 的 tch_le_sun 加入 libchewing 的支援,並且寫了以下評論: [First evaluation of libchewing 0.2.6],非常感謝 Ervin,看來我們在下個版本有很多改進的空間。

而 SuSE 的工程師 Mike Fabian 很快的弄好 9.2 RPM packages,置放於 SuSE ftp 上,非常感謝,而 Mike 也說 SuSE 9.3 會內建新酷音,真令人期待。

而讓大家期待許久的 SCIM,在蘇哲的努力之下,終於宣佈 [The next stable version SCIM 1.2.0 has been released],而我現在使用 SCIM 1.2.0 + SCIM-chewing 0.2.0 + libchewing 0.2.6 用得挺愉快的。

由 jserv 發表於 07:41 PM | 迴響 (0)

小企鵝,我不懂你的心

剛剛跟 lwhsu 聊天,談到他最近編譯 2.6 kernel 一直 kernel panic,然後一堆選項沒看到,也搞不清楚到底是怎麼一回事,不過打字實在說不清楚。

好玩的是他的 MSN 圖示:

還真是標準的 Orz 阿。
看來要讓這個 BSD fan 過度到 GNU/Linux 上,需要一點時間。

由 jserv 發表於 10:24 AM | 迴響 (1)

Liferea 惡搞2

剛剛 blog [惡搞 Liferea] 沒多久又想到一個點子,做了只有一行的修改,但是可以讓「通知新文章視窗」(ui_notification) 不要搶 focusing,原理很簡單,就是讓原本 GTK+ top-level window 降為 popop window 即可,可參考此 patch [取消 Top-level window]。

上一篇 blog 忘記提到,這些 patch 都可以在 0.90 版適用,不過效果可能不會很好,比方說剛剛提到的通知視窗的位置,因為不再是 top-level window,所以這個資訊相形重要。

嗯,這樣惡搞的結果,終於有舒適的 RSS Reader 可用了。

由 jserv 發表於 09:38 AM | 迴響 (0)

惡搞 Liferea

Liferea 是個用 GTK+ 打造的 RSS Reader,又快又好,感謝 GOT (gentoo.org.tw) 的 Benny 推薦,讓我每天都可以開心的閱讀許多有趣的資訊。

不過呢,Liferea 也不是說很完美啦,比方說 Liferea 可以使用 gtkhtml2 或 mozilla 作為 HTML rendering engine,但是我們來看看套件相依性:
$ apt-cache depends liferea-mozilla
Depends: liferea
Depends: mozilla-browser

可是我的電腦裡頭只有裝 firefox-mozilla,卻沒有 mozilla-browser,這兩者的 codebase 是一致的,那麼,是否可能不要裝 mozilla-browser 呢?好,我把 cvs repository 上的 liferea 抓下來,結果發現一些問題,首先是 Mozilla 的偵測,再來是繁體中文的翻譯原本是 Rex Tsai 做的,不過有一段時間沒有更新了。

我們先來看看 firefox-mozilla 的 dev 套件:
$ dpkg -L mozilla-firefox-dev | grep pkgconfig
/usr/lib/pkgconfig
/usr/lib/pkgconfig/firefox-gtkmozembed.pc
/usr/lib/pkgconfig/firefox-js.pc
/usr/lib/pkgconfig/firefox-nspr.pc
/usr/lib/pkgconfig/firefox-nss.pc
/usr/lib/pkgconfig/firefox-plugin.pc
/usr/lib/pkgconfig/firefox-xpcom.pc

果然就是 configure.ac 沒有考慮到,所以很簡單,我弄一個小 patch [讓 Liferea 偵測 Firefox]。而繁體中文翻譯呢?沒辦法 hack,乖乖翻譯吧: [繁體中文翻譯 patch]。

cvs repository 裡頭有些很棒的設計,比方說原本會跳出視窗提示新文件,那個視窗很討厭會跟工作中的視窗搶 focus,也搞不清楚會在那裡顯示,在 cvs 裡頭已經處理掉,可以讓你指定螢幕四個角落顯示。

由 jserv 發表於 05:39 AM | 迴響 (2)

台灣 Debian 社群的介紹簡報

Asian Debian Mini-Conf 在北京盛大舉行,代表台灣 Debian 社群的 AndrewLee 自然也會為與會的嘉賓介紹近況,可參考 slides [Status report],提及當今的組織、成員、歷史發展,以及目前的展望,有心研究 Debian@Taiwan 的朋友可別錯過了,當然也要感謝 AndrewLee 的整理與簡報。

其餘關於 Asian Debian Mini-conf 的資訊可以參考 [Asian Debian Mini-Conf 信息收集]。

Debian rules!

由 jserv 發表於 02:34 AM | 迴響 (0)

從 PCMCIA disk 開機

Niels Elgaard Larsen 做了一個很有趣的嘗試,修改 pcmcia-cs 讓 PCMCIA disk 可用來開機,詳情可參閱 [Booting from PCMCIA disks]。

注意 Niels 的作法,很值得參考:
    The pcmcia-cs project has a pcinitrd script that creates an initrd ram disk image for booting with the root file-system on a PCMCIA device. But is it too big for a floppy disk. It is about 2.5 MByte not including the linux kernel.

    Instead I modified the cardmgr.c program from the pcmcia-package to remove unnecessary code, mount /proc, mount a tmpfs drive, set up the card in the first PCMCIA-slot, do a pivot_root() to the new root fs. This is the only program on the initrd. There is not shell. The result is an 212KByte initrd leaving space for even a fat 2.6 kernel.
由 jserv 發表於 02:08 AM | 迴響 (0)

cnoize 老大的 XX 輸入法二月份進度報告

cnoize (泥巴星球 server) 前輩在許多領域都有相當的研究,而且願意針對幾個特定的主題,一頭栽進去鑽研,這相當了不起,其中比較特別的就是他的「XX 輸入法」。

在 free.tnc.edu.tw 有一則新聞 [X X 輸入法簡介 2005-02],就是 cnoize 在今年二月份的進度報告,引述新聞重點:
    這是新一代的輸入法概念(是指輸入的方法,而不是輸入法程式),由於他結合了 Big5、Big5HKSCS、JISX0212、JISX0213、GBK、CNS11643、Unicode 4.1,以及 CCCII。所以,可說是一種超越國際界線的 m17n(multilingualization)的多國語言輸入法。難得的是,理論上是不重碼的,這也是這個輸入法的最重要的精神。
之前還特別請 cnoize 利用下班的空檔解說一番,現在終於有比較完整的介紹,詳情可參閱 CLE 論壇的 [X X 輸入法簡介]。
由 jserv 發表於 01:27 AM | 迴響 (0)

DRI 入門文件

之前在 [Debian@Taiwan IRC Conference] 的 [FreeDesktop.org 與 X.org 嶄新發展概況(續集)] 為與會的朋友介紹 XFree86 4.x DRI (Direct Rendering Infrastructure),不過顯然因為我準備不是很充分,很多人不知所云,讓我感到相當抱歉。

而 FreeDesktop.org 的開發者 ajax 撰寫了這篇好文章 [DRI Explanation] 可以補足這個遺憾,恰好文件裡頭欠缺的圖片,可以參考 IRCConf 提供的。
由 jserv 發表於 12:43 AM | 迴響 (0)