The Old Blog Archive (Traditional Chinese), 2004-2009

iVanilla: 一個已經停止的 OpenVanilla 實驗

iVanilla 的想法是由 ycchang 於 2007 年十月的時候提出的。最早的想法是希望在 iPhone/iPod Touch 上利用當時的 “Toolchain” 製作出一個簡單的、作為概念實證 (proof of concept) 的 OpenVanilla 實作。所使用的方法也是當時各家 iPhone/iPod Touch 輸入法外掛所使用的 dynamic library insertion (透過 DYLD_INSERT_LIBRARIES 環境變數指定)。

對我們來說,iVanilla 的 code 主要還是在驗證 OpenVanilla 框架的可移植性。用 C++ 簡單撰寫的 “MinimalLoader” 實作了所有 OV 模組所需要的基本功能:對於組字區與選字列的操作。

這個實驗是在 2007 年 10 月至 11 月間進行的。ycchang 並於去年的 COSCUP 2007 中簡單討論過 iPhone/iPod Touch open source toolchain 的概況。我也在 ycchang 之後簡單介紹了符合 OpenVanilla 框架規格的 minimal loader 的實作方式。

不過,受限於我們各自的狀況,我們後來都無法繼續關注 Toolchain 的發展。另一方面我們傾向認為,使用非官方的工具開發這類型系統軟體,還是有不少潛在問題。(我個人並沒有在 iPod Touch 上輸入大量文字的需要,實驗的動機也因此偏向 OV 驗證更甚於實用)。「非官方」的 iPhone/iPod Touch 輸入法方案已經有相當多種,從許多消息來源觀之,Apple 官方也應該會推出自家的亞洲文字解決方案。

本次送進 OpenVanilla source repository 中的 iVanilla 是當時完成的 SimpleBPMFSimpleCJ,亦即簡單的傳統注音輸入法及倉頡輸入法。各自目錄中的 README.txt 有更詳細的說明。

由於我們都很久沒有在近期的 Toolchain 及 firmware 上編譯這個實驗,我們無法確定現在的 code 仍能使用。另外,我們也無法回答任何跟實驗有關的問題。本次釋出的 code 係以現狀提供 (“AS IS”)。請自負任何使用上的風險。

iVanilla 中所使用的 OpenVanilla 程式碼,以及 iVanilla 的 MinimalLoader、平台相依的本體部分,都以 OpenVanilla 的 New BSD License 授權方式釋出。如果你要將 iVanilla 使用在你的程式碼中,請遵守程式碼的授權。程式碼的著作權為作者群所有。

中和的永和路,Vista 64 的 System32,Cocoa 的 NSString

住台北縣的人可能聽過這一句

永和有永和路,中和也有永和路, 中和有中和路,永和也有中和路; 中和的中和路有接永和的中和路, 永和的永和路沒接中和的永和路; 永和的中和路有接永和的永和路, 中和的永和路沒接中和的中和路。

最近發現,世界上存在不少類似結構的東西,例如

Vista 64 有 System32 ,也有 SysWow64,System32 裡面裝的是 64-bit 的 binaries,SysWow64 裡面裝的是 32-bit 的 binaries。Vista 64 的 64-bit binaries 不能放進 Vista 64 的 SysWow64 裡,Vista 64 的 32-bit binaries 不能放進 Vista 64 的 System32 裡。

又或者

Cocoa 有 NSString,Carbon 有 CFString,Cocoa 的 NSString 可以接 Carbon 的 CFString,Carbon 的 CFString 可以接 Cocoa 的 NSString。Carbon 的 CFString 沒有 garbage collection,Cocoa 的 NSString 有也可以沒有 garbage collection。Carbon 的 CFString 可以接到 Cocoa 沒有 garbage collection 的 NSString 裡,Cocoa 有 garbage collection 的 NSString 不能直接接到 Carbon 的 CFString 裡。

對,總歸一句話就是,不鬼打牆時候就不會覺得這樣的設計會鬼打牆,鬼打牆的時候就真的覺得這樣的設計真是鬼打牆……

上週六在 OSDC.tw 2008 的投影片

投影片在這裡

OSDC.tw 的邀請,上週六下午給了一個題目為「開放原始碼、開放資料與日常生活的語言應用」(Open Source, Open Data in Everyday Handling of Natural Languages)的分享。題目有點長,內容也有點雜。主要的企圖還是在區分日常生活語言問題的種類,以及圍繞在中文的核心問題──斷字──上面。

「問題意識」(problems)上,日常生活的語言問題,主要還是在怎麼將之編目索引檢索。除非你的應用程式本身就是語言應用(language-specific applications)。這個部分有一些地方跟 l10n/m17n/i18n 有重疊處,但這並不是同樣的兩件事。另外一個我試圖(但沒有很成功)想要講述的方向是,我們這些講中文的人應該試圖去處理中文以外的語言,切莫認為我們只需要處理中文就好(而且事實上中文也並非是如我們被教育成的,是一種均質的語言,「中文」本身諸元的差異或許就和中文與其他語言的差異一樣地多)。

在「方法論」(methods)的段落,我簡短介紹了兩種「正規」的方法,基於觀察中文構詞型態的MMSEG以及基於language model的方法。事實上相關的研究很多,implement說來比較偏工程問題。(中文自動選字)輸入法的問題其實只是其中的一種變體,把輸出改成音素,輸出改成可能的最佳句子就是了(用最化約的方法來說)。

在「工具」一段,所介紹的大多數工具仍是以 Perl 為主。Perl 在語言處理上仍然是最強大的語言之一,也是大多數相關工作的首選。我不熟 Python ,所以用 Python 寫的 NLTK 等工具,就無法多說什麼。Ruby 在這方面很弱。當我說「如果你用 C++ ,那沒有人救得了你」時,沒想到大家竟然反應熱烈地笑了。這句話,出自一個還是必須用 C++ 來解決問題的人嘴裡,其實是很辛酸的呀。

「資料」的問題,還是跟 Hans Rosling 在講公共衛生議題的相關 TED talks 的那句話一樣:資料就都在那邊,可是卻沒有辦法開放出來。

準備這次主題的一個額外的收獲是,我深深感受到日文相關軟體計畫,無論在規劃,募集資料、或者看問題的方法、甚或是 C library header file 的組織上,都有很多可以借鏡的地方。另一方面同樣看到的問題是,編碼的需要現代化(例如 anthy 仍是 Shift JIS-based)、程式語言的需要現代化(需要引進 C++ 來使得語言物件──音節、音素、unigram──等等可以被當做型別來操作)等等挑戰。

總之還有很多很多要努力的地方啊。

OpenVanilla捐款明細修正與更新

前次發佈的 OpenVanilla 2007 年年底明細有誤,已經發佈了新版到同一網址上。

同時我們於 2008 年 2 月 6 日收到一筆扣除 PayPal 手續費後為 USD 33.51 的捐款。我們在此也同時更新帳目明細。截至 2008 年 4 月 14 日止,OpenVanilla 捐款的新台幣餘額為 NTD 39,550,美金為 USD 1,439.35。

同時今年贊助 OpenVanilla 開發者(zonble)的 WWDC 入場券和機票款項也將撥出,屆時會再更新帳目明細。

再次謝謝所有捐助 OpenVanilla 的朋友。同時我也對於前次的登錄錯誤說聲抱歉。

我從電玩中學到的單字

有些其實影響是相當深遠的。

militia
phalanx
chariot
conscription
masonry
granary
republic
despotism
monarchy
anarchy
universal suffrage
internal combustion
nuclear fission

如果當初玩的是 l10n 過的版本,很可能就沒辦法對這些單字有這麼深的體驗了吧。:p

(另外,其實我覺得那個能教會大家分辨 “republic” 與 “democracy” 或者 “monarchy” 跟 “despotism” 差別的遊戲,也很適合當公民與道德課的教材啊啊啊)

Flickr 的 Video Service

Flickr 也有 video 了。

雖然有很多評論者馬上拿來和 Google 的 YouTube 擺在一起比較,我倒是覺得,Flickr Video 跟 YouTube 完全是兩種概念的東西。Flickr 的 90 秒短片,一如 Flickr 員工自己說的,比較像 “moving pictures”。另外 Flickr 的 video 是圍繞在「個人」身上,也就是說那些影片跟作為上傳者的「你」是聯繫在一起的。YouTube,一定程度上,比較像一種脫個人化(de-individualized)的 video depot (影片倉儲)。同時你也很難從後者影片的留言串,跟他人建立關係。反之,Flickr 的 comment 很成功地把人跟人給拉在一起。

另外就是 Flickr 員工自己的社群經營囉。例如這個。很可愛不是嗎?

我主觀的欣賞這個新服務,當然有一些同樣主觀的因素啦。好比說,那一年去東京旅遊時,拿 Cybershot 拍的那些爛爛的 video,也終於找到了合適的地方上架。這種東西我不太可能搬到 YouTube 上。但是放在 Flickr 上卻合適極了。套用《空想科學讀本》的說法,適才適所,這樣不是很好嗎?(誤)

OpenVanilla捐款收支明細(2007年結算)發佈

最近一次的 OpenVanilla 捐款收支明細已經整理出來了。2007/12/31 的結餘為台幣 39,550 元,美金 1,378.06 元。2007 年度的新台幣捐款收入為 13,750 元,美金為 33.21 元。

明細表可於此處連結取得。

2007 年 OpenVanilla 獲得 ICOS 2007 傑出社群軟體計畫獎項,獲得的獎金 NTD 12,750 (稅後)作為 OV fund 使用。

2008 年度,在我們推出下一個 release 之前,應暫時不會有新一輪的募捐計畫。在支用部分,2006 年時 OV fundraising 的目標是讓開發者能參與輸入法相關開發者會議。我們今年希望能繼續這個目標,目前計畫是利用現有捐款,贊助 zonble (對 OS X 版本貢獻相當多的 OV team member)參與今年的 Apple WWDC 2008,贊助的項目包括了 WWDC 的門票,以及台北─舊金山的來回機票一張。

再次感謝所有支持 OpenVanilla 的每一位朋友!

最近的一個機車的心得

QuickSilver 的 source code 有用到 Carbon private API ,竟然可以從 window-server level 把鍵盤事件給遮斷搶過來用!你不知道我在說什麼沒關係,我只是想說,這一陣子我再次體會到那句名言不假:

如果你寫程式沒用undocumented API,
那一定是因為你的程式沒什麼了不起的功能

(註:undocumented API 不見得要是沒見光的,即使是 open source 的 framework 也經常暗藏秘技、邪惡的 higher-order techniques,或者是曲折離奇的 message sending path。有寫過鐵軌快寶裡任何活躍的唱片的外掛的朋友,一定知道我在說什麼。XD)

勸敗

我最近才終於體悟到為什麼勸敗是一件這麼歡樂的事。這個體悟是一個小小的單字,叫:schadenfreude。

這個字在英文是個外來語。有一點難翻譯。不如這樣,引一句黑白郎君(Oo Pe̍h Lōng Kun)的名言比較快:

Pa̍t-lâng ê sit-pāi, tioh sī gúa ê khùai-lo̍k
別人的失,就是我的快樂

突然想到這件事的原因是因為又看了一遍Helvetica,就覺得這部片真是好好看好好看好好看喔,想勸人趕快去買,這樣。

明けまして御芽出度う

一年的結束,一年的開始。這個 blog 也寫了整整四年了,往第五年邁進啦。

« Previous PageNext Page »