偶然間讀到了柯裕棻的短文 〈行路難〉。〈行路難〉一文,主要在講從一位嚴重缺乏社會經驗的研究生,突然就要變成要教學生傳播是什麼、社會學是什麼的大學教授,如何一路單身品嚐孤獨的滋味云云;對此不予置評。但是呢,當你看到像這樣的句子的時候,就不得不皺眉。
…我彷彿是鏡花緣裡的人物,意外地遊了龍宮,回到世上,打開寶盒,光陰的無限意涵在那一刻全部顯現,在瞬間如電光一閃,荏苒百年。
李汝珍的鏡花緣裡頭的人物不可勝數(其實要數也該是數得出來,但是我不想數),在這邊說「彷彿鏡花緣裡頭的人物」,也不知道是像唐敖、唐閨臣、林之洋、多九公還是哪一位。
鏡花緣的故事大概是這樣的,有天武則天命令,不管哪種花朵的季節或花期如何,要在她一聲令下百花齊開,牡丹仙子、芍藥仙子等百花仙子為了武則天的命令開花,就違背天庭,私自開花,於是被打入凡間,化為百位才女,流落各地。多年後,落第書生唐敖屢試不上,灰心之下跟著親戚林之洋與船夫多九公一同出海經商貿易,一路上陸續遇到百花仙子化身的才女,而剛好武后大開先例,舉辦女性科舉,機緣之下,諸位才女也就一同結伴,從海外回到中土,進京趕考…。
如果從國外的研究生變成國內的大學教授,像是這些才女從海外流落,到最後及第登科,倒是有這麼些類似之處,不過,這種比喻,也就同時暗示自己是謫仙轉世之類的。但是,去遊龍宮,從龍宮裡頭拿到寶盒,打開寶盒就突然百年過去,這個故事-分明是浦島太郎吧?
這種常識級的問題都弄錯,讓我不禁好奇:
台灣這些歸國學人,到底在國外到底念了些什麼書啊?
台灣這些寫小說的人,自己到底有沒有在讀小說啊?
我們最近又修改了 OpenVanilla 專案的程式碼的一些地方,包括:
1. 新的偏好設定工具
我們最近整個重寫了 Mac OS X 版本的偏好設定工具。新的偏好設定中,一方面外觀有所不同,另一方面也簡化了各項設定的操作方式。比方說,我們將原本散落在三個 tab 中的各項設定,精簡集中在同一個 tab 上;如果您移除了、或是從來沒有安裝過某些模組,例如藏文輸入法等,也便不會顯示在設定頁面中。
在設定用來切換輸入法或啟用/停用輸出轉換模組的快捷鍵時,也改用像是「系統偏好設定」中設定快速鍵的方式,只要直接按下鍵盤上的按鍵組合便可完成設定,而不用從下拉選單中慢慢選擇某組設定。
2. 程式碼的重整
我們重新整理了 Mac OS X 版本的模組載入器(Loader)以及 CocoaVanilla Framework 的程式碼,大幅改寫了原本不安全的部份。例如,我們在呼叫外部應用程式時(例如叫出偏好設定程式),我們改呼叫 Cocoa 提供的 API,而不是呼叫 system() 函式。
3. 文件工作
因為許多開發者的需求,我們也開始著手撰寫開發者文件。因為這個專案主要使用 C++ 與 Objectve-C 語言開發,所以我們使用 headerdoc 作為我們的文件工具。
我們已經在 OpenVanilla.h 這個檔案中加入了相當的註解-OpenVanilla.h 是 OpenVanilla 專案最重要的一份定義,包括撰寫一套 OpenVanilla 模組所需要使用的各種物件定義與函式。如果您使用 Mac OS X、安裝了 Xcode,也從我們的 svn repository 中取得了一份 OpenVanilla 的程式碼,便可以直接使用 headerdoc2html,從各個 header file 中,產生 HTML 格式的說明文件。
4. 開發環境與工具
接下來,我們會只使用 Mac OS X 10.5 SDK 以及 Xcode 3 或是更新版本的 Xcode,開發 OpenVanilla。我們會開始使用一些原本在 10.4 SDK 所沒有的 API 以及檔案格式,例如,前述的新版偏好設定工具,介面上就全部使用 xib 檔案,而不是使用 nib 檔案。
我們還是會繼續推出供 10.4 使用的版本,但是,如果您想要自行編譯 OpenVanilla,或是加入開發行列,您必須在 Mac OS X 10.5 Leopard 使用 Xcode 3,而無法使用 Xcode 2.5 或是其他較早版本開啟專案檔案。
沒有完成的事情還有太多太多,但是我們是會繼續努力。
Recent changes of the OpenVanilla project.
Recently we made some changes on the the source code of the OpenVanilla project. These changes include:
1. A new preference tool.
We wrote a new preference tool for Mac OS X. The new preference tool offers not only a new look and but a simplified user experience. Unlike the old one, we integrated the settings from three tabs in the old one into one tab. And if you never install or remove some input method modules such as the Tibetan keyboard and so on, the settings of these modules would not be shown in the preference tool.
BTW, you can now set the shortcut key to switch to a input method module or toggle a output filter module in the way like hot-key setting in the system preference. We can just press on the keys on your keyboard instead of selecting an option from a drop down menu.
2.Code refactoring.
We refactored the codes of the OpenVanilla loader for Mac OS X and the CocoaVanilla framework. We rewrote the unsafe codes, such as we call the Cocoa APIs instead of calling the system() function when calling an external application.
3. Documentation.
We started working on the developer documentation to satisfy the developers’ needs. We used headerdoc as our documentation tool, because we use C++ and Objective-C as our primary programming language in the project. It works great with C++ and Obj-C.
We have added comments in the most important header file, OpenVanilla.h. You can see that all the important classes and methods to write an OpenVanilla module are defined in the header file. If you are working on Mac OS X , have installed Xcode and have a copy of the source codes from our svn repository, you can use the headerdoc2html tool to generate document in HTML format from the header files.
4. Developer tools and environment
In the future, we will only use Xcode 3 or newer version and Mac OS X 10.5 SDK for the development the OpenVanilla project. We will change the project file settings, and we will start to use APIs and file formats not available in the 10.4 SDK. For example, the new preference tool uses the .xib format instead of the .nib format.
We will still release builds which run on Tiger, however, if you want to build OpenVanilla by your self, or participate the development of OpenVanilla, Leopard and Xcode 3 are minimal required, and you will not be able to open the project file with Xcode 2.5 or other previous versions.
There are still many things to do, we will keep on working.
昨天傍晚,蘋果開放了供線上購買 iPhone 以及 iPod Touch 軟體的軟體商店平台 AppStore,如果您打開 iTunes 軟體,也可以在 iTune Music Store 首頁下方的下拉選單中,看到屬於台灣的 AppStore。我們的兩人小公司也在 AppStore 上開賣我們的第一套 iPhone 軟體-TapExpense。
TapExpense 是一套輕巧的記帳軟體,供您在 iPhone 等平台上可以快速輸入手邊的開支。主要功能包括:
- 可以使用多種不同貨幣記帳,內建單位包括美元、英鎊、歐元與新台幣四種。可以自行添加其他貨幣種類。
- 具有開支項目的分類功能。也可以自行新增或刪除分類。
- 可以將目前的帳目記錄,轉換成 CSV 檔案,再以電子郵件方式寄出。便可以匯入到如 Excel 等程式中。
- 目前提供英語以及繁體中文兩種語系。
使用畫面可以參考 TapExpense 網站。目前在 ITMS 上可以看到的版本為 1.0,而前兩天已經上傳了一個修正版本,不過看起來蘋果還沒有幫我們把新的版本上架;應該一兩天之後便可以看到了。
另外,我前陣子個人寫了一個供 iTunes 平台使用的簡單 RSS Parser,位於 Google Code 上:http://zonble.googlecode.com/svn/trunk/iPhone/SimpleRSS/。這段程式以 BSD License 釋出,有需要的話,歡迎使用。
「墘」這個字也可以作為現在中文電腦上中文資料之錯亂的一個例證。
根據教育部國語辭典,這個字出自於閩南方言,或許就因為如此,於是出現一個奇妙的現象:在生活中其實算是常用字-在台北縣板橋有個地方叫做埔墘,如果我打算走光復橋到市區的話,就會經過這個地方;但另一方面卻又完全像是個罕用字-我手上的幾本字典(康熙字典、東方書局字典、正一書局字典),都沒收錄這個字。
教育部國語辭典中,「墘」這個字在國語中的發音是「ㄑㄧㄢˊ」(qian2),在日常生活中也的確唸作這個音。可是呢,一、二十年前的注音輸入法的設計者,卻又不知道是根據什麼地方的資料,將這個字標上了「ㄑㄧˊ」(qi2)這個音,一直到現在,無論是微軟新注音或是「ㄅ半」注音輸入法,都只能夠透過這個音輸入,用「ㄑㄧㄢˊ」是打不出來的。
最莫名其妙的,還是 Mac OS X 上面的字元面板中的資料:注音標為「ㄑㄧˊ」,但是拼音卻是「qian2」,同一個字的注音與拼音資料,居然會是不一樣的發音。
竊以為,「言行不當」、「社會負面示範」老實說都是藉口,以現在的大學運作來看,討好新總統也不見得就可以拿到比較多的資源。以政大這所學校的行事風格,以及更為現實的利害來看,之所以會不續聘莊國榮,第一個要看的指標資料,該是莊過去幾年的期刊論文發表數。
你也知道,政大在過去幾年追求全校期刊論文點數,幾乎到了病態的程度。就連要聘任新的體育老師的時候,就算應徵者是國手也不聘用,而是要聘用體育博士,而且體育老師也要負責撰寫體育方面的論文,提昇論文點數。
政大這種病態的傾向是從什麼時候開始的?就是在鄭瑞城任政大校長時,杜正勝特意公布、並且攻擊政大的論文數是全國大學第四十八名的那個時候。
根據政大公共行政系的網頁資料,莊過去幾年只有發表一篇期刊論文,而且還是在《師友》這種非公共行政領域的刊物上,發表一篇〈告別體罰─培養未來在等待的人才〉,莊國榮顯然對於政大的論文點數沒什麼幫助。
教育部過去幾年一邊借調政大的人事,這個人又不寫論文,等於是佔用並且消耗掉一份可以生產論文的戰鬥力,同時教育部卻又拿期刊論文數做政大的文章,等於是拿自己的資源讓別人整自己。-好吧,如果你是政大,在政權輪替、借調人員不當政務官要回任的時候,你會怎麼做?
要說是秋後算帳也沒錯,不過,政大算的是論文數四十八名這筆帳,而要不要算帳,也要端看算了這筆帳之後有什麼利益上的損失,但現在看來,莊國榮對政大的用處實在不大。實際的好處是,拔掉一個在論文數上沒有貢獻的冗員,相對的,就可以多出職缺,從其他學校挖角過去幾年頻繁發表的師資。
姑且不論鄭瑞城擔任部長後是不是還會繼續沿用杜正勝的這個完全量化的標準,但是從幾年前的事件後,一朝被蛇咬,政大還是不會在論文數上掉以輕心。所以,如果莊國榮過去幾年,可以每年發表個十篇期刊論文,想來什麼「小孬孬」、「乾女兒與幹女兒」,政大也不會如何。
《中國時報》上, 〈學仕相輔 更能凸顯學術價值〉這篇新聞分析寫的很輕鬆:「從政學者重返教職,相對能帶回實務經驗,增加學術廣度。大專院校單純以缺乏學術著作為由,封殺公職回任教職人員,無疑自貶學術價值。」-也不想想當初是誰造的孽。
莊國榮現在的反應是,七月一日起他要在總統府前絕食,這種表現,我看只會讓政大更難接受,因為這樣更是不能切合政大的利益。-在沒有教學與行政事務的暑假,正是教師從事研究的黃金時期,而你要怎樣在烈日下絕食的同時,一邊做研究?
上週一 WWDC 開幕時,蘋果便宣布、並提供了新版本的 「那個裝置」的SDK,裡頭也包含了新的「那個裝置」的模擬器。除了拿來寫點小程式當做練習之外,同時也把玩了一下新版模擬器中所包含的中文手寫辨識輸入。辨識效果還算不壞,就算故意把字寫得龍飛鳳舞,系統也可以辨識一二。
不過,用了一下還是稍微有些抱怨,一是蘋果似乎以為這套手寫系統不需要任何解說就可以使用,所以,像中文標點符號不是靠直接寫出標點的形狀,而是要透過寫一個小短橫,然後從畫面右側選擇各種標點符號,這種我花了一些時間才試出來的使用方式,就沒有看到有相關解說;二是,有幾個字-如「很」、「上」等,我寫下之後,怎麼都辨識不出來,怪的是,我同事測試的時候,卻沒有這個問題。
比較之後,才發覺我和我同事在寫這幾個字的時候,使用的筆順是不同的,而筆順一旦不一樣,「那個裝置」也就不認得了。從網路上查了一下教育部的筆順標準,也才發現原來我用的不是教育部的標準筆順。在寫「上」這個字的時候,教育部標準是「豎橫橫」,而我寫成「橫豎橫」,是先寫又上角的那一橫,才繼續其他筆劃;在寫「很」時,在寫到右半部的「艮」時,教育部標準是先從右上角的一橫一豎開始寫,我的寫法則是先寫左邊的那一豎,而且在那一豎的尾部也不勾起來。
同事問我小時候是不是在小學課堂習字之外,另外有學過鋼筆字帖-他以前便注意到鋼筆字帖的筆順與官方標準不同;鋼筆字帖我沒練過,倒是十歲左右,家母曾經將我和舍弟送去眷村裡一位先生那邊胡亂學了兩年的柳公權,到現在還依稀記得《玄秘塔碑》的前幾個字是「唐故左街僧錄內供奉三教談論…」,想來我寫字的筆順與習慣,就是那時候開始變成今天這樣,另外還有一些筆劃形狀的小細節,如,我在寫「我」這個字的第一筆,不是右上左下的一撇,而是左上右下的一點,或是偶而寫成一橫。說起來小時候糊里糊塗被送去學字,現在看來也沒什麼用途,姑且不論這年頭誰還會看你寫字寫得如何,而且這樣學了一陣子,字還是寫得不怎麼樣,只有一些習慣改變了,變成「那個裝置」不認得的那種。
做出一套中文輸入法後,最常被拿來討論的就是正確率,這種討論屢見不鮮。但在看到這方面討論的時候,往往可以看到幾個有趣的地方,其一是,既然是討論「正確率」,「正確率」是個「率」,該是個統計問題,但是往往可以看到,討論的是稍微試打之後對於結果的直覺反應,或是舉出幾個極端的個案,但是就是沒有什麼真正拿出統計數字的比較;再者,在討論拿輸入法打中文可以多正確這個問題的時候,又牽涉到一個統計不能解決的根本前提-什麼才是正確的中文?或,語言這種事情,有沒有可能有完全的「正確」?-我寫「上」的時候,不是寫成「豎橫橫」,而是「橫豎橫」,就算是錯的嗎?
不管怎樣,拿政府標準,總是一個便宜行事的方式,但是真的接觸到這方面資料的時候,又總是納悶,怎麼政府標準也是一堆錯誤,或是與你所知道的常識差這麼多。
在台灣在做輸入法,你大概會用到中研院、研考會還有教育部的資料,你可能會花上十萬元買一套中研院拿納稅人的錢編製的一套 語料庫,從裡頭抽出詞彙、詞彙出現的頻率與上下文關係的統計資料,然後發現裡頭盡是一堆錯字,比方說,你要打「哈密瓜」,但是這套語料庫裡頭出現的是「哈蜜瓜」。
而如果你要做注音與倉頡輸入法,則是必要參考研考會中文全字庫專案,就以全字庫專案提供的注音輸入法表格來說,前後出了許多版本,在之前的幾個版本中,就有一些明顯的錯誤,比方說,在「ㄙㄨ」(su)這個讀音的列表中,居然有「薊」(ㄐㄧˋ,ji4)這個字,而「薊」怎麼也不該讀成「ㄙㄨ」;研考會後來的版本修正了這個錯誤,但又實在讓人覺得沒辦法放心。而在目前坊間許多輸入法軟體中,還是會打「ㄙㄨ」跑出「薊」,而讓人覺得又莞爾又無奈的是,當各家輸入法在比較正確率的同時,其實都是根據錯誤的政府資料,做出了錯誤的輸入法。
而同一個字出現在不同的詞彙中,又往往會有不同的讀音,而要確定一組詞彙的讀音,則是要參考教育部國語辭典。照理說教育部國語辭典應該是台灣最具公信力的資料,所以教育部在調整中文標準的時候,輸入法軟體也應該做出一些對應的修正-比方說,過去在提到「汙染」、「汙穢」的時候,用的是「污」這個字,但是官方標準是「汙」,在教育部國語辭典上,現在用「污」是找不到東西的;但是放眼過去幾年,教育部似乎又把國語辭典搞得很沒有公信力。也姑且不論現代中文中到底有沒有像「白雪公主症候群」,在讀音這方面的資料,有時還真是讓人手足無措。
比方說,你可以查到「廁身」與「廁身其間」兩個詞條,而兩個詞條的意思是一樣的,都是「混雜、混跡在什麼之中」的意思,但是兩者的「廁」字居然讀音不同,前者唸作「ㄘˋ」(ci4),後者唸作「ㄘㄜˋ」(ce4),為什麼讀音不同?百思不得其解。
而「廁」這個字又有一個完全超出常識之外的讀音,「茅廁」這個詞條唸作「ㄇㄠˊㄙ.」(mao si5)-這種念法不知道出自哪裡,中國之大,說不定是哪個地方的土話,但是就我個人使用現代漢語的習慣,我連「ㄙ」要怎麼念輕聲都不太清楚;而且,幸虧在現代的漢語中,可以用其他說法代替「茅廁」,要不然,哪天你去光華商場買東西的時候,問店家「茅廁在什麼地方」,得到的回答說不定是「放在鍵盤旁邊」,或是人家以為你在講「卯死啦」之類的。而在這個地方,教育部國語辭典又表現出了不一致,明明「茅廁」的「廁」唸作「ㄙ.」,在「廁」這個字單獨的解釋中,卻又沒有這個音。
這些是你不知道到底是什麼鬼標準的標準,而另外某些標準呢,則是你就算知道是標準,但是也不太想要支援的標準。比方說,「姊妹」的「姊」這個字,平常大家都唸作「ㄐㄧㄝˇ」(jie3),教育部說,這是通俗的語音,至於讀音呢,則統一為「ㄗˇ」(ci3)-試想,倘使有天你真的在用教育部的標準讀音打字,你可能在用注音輸入法的時候不小心按錯一個鍵,或用的是一套不需要輸入調號的拼音輸入法,當你在 MSN 還是哪套即時通訊軟體中,想要打一句「表姊你好」這樣的親切問候的時候,天曉得會跑出什麼結果出來…。
而最後的問題,又是,就算你自以為是依據了一定的標準,但你永遠也不會想到,用輸入法的人,操的又是一種中文。
做輸入法這種工作最基本、也最麻煩的地方就在於相容性,當你開始做了輸入法之後,弄個一個線上討論區,你會看到最多的問題、也是讓你最為無力的問題,也就是相容性。
就像你做個網站,先不管網站上的內容如何功能如何,你會遇到的最基本的問題是怎樣在 Internet Explorer、Firefox、Safari、Opera 等不同瀏覽器中,都可以看到相同的頁面;而當你開始做一套輸入法,也先不要說輸入法的功能如何,第一個要求就是怎樣可以在各式各樣的應用程式中-辦公軟體、通訊軟體、美工軟體、線上遊戲,都可以打出字,都可以正確出現選字窗等輸入法所需要的使用介面,還有,因為輸入法基本上屬於每個應用程式都會載入的外掛程式,你也不能夠讓各個應用程式在載入了你這個輸入法外掛之後因此當機。
如果你想要靠單打獨鬥或是光是仰仗社群,光是相容性這份本分,就不知道可以消磨掉多少熱情。文書或是辦公軟體,如果是使用系統的文字元件,或是規規矩矩的按照系統規格實作,大多沒有問題,但是,你在 2008 年還在做輸入法,你就會發現,許多人的需求,並不是在辦公軟體中使用輸入法,或是用在所謂生產力的用途上,而輸入法最大的相容性問題,大多來自於-線上遊戲。
以 Windows 作業系統來說,微軟對於 DirectX 應用程式如何支援輸入法,可以說非常自由-或是放任。這一套遊戲可以因為需要,所以完全不支援輸入法,另外一套遊戲可以允許輸入法使用原本的介面,再來一套遊戲則是為了整個遊戲的外觀與使用體驗,所以輸入法就算可以輸入,但是輸入法應該要關閉自己的介面元件,讓遊戲自己來幫你繪製輸入介面與選字介面(例如魔獸世界、楓之谷、跑跑卡丁車等),又一套遊戲則是雖然要求輸入法自己提供介面,但是遊戲自己在全螢幕模式下把自己放在所有視窗的最上層,甚至蓋過輸入法的介面…每一套遊戲之間,對於輸入法的支援,都可以完全不同。有的時候線上遊戲還會把不認識的輸入法當成是非法外掛,有的時候,嗯,是的,輸入法會把遊戲搞當。
因為相容性是輸入法的本分,需要解決相容性的軟體又遠多於其他,所以在整個團隊中,測試工作便顯得格外吃重-其實可以這麼說,以輸入法專案而言,測試人員的角色比開發者更重要。
如果你是真的要嚴肅而認真的做輸入法,你便必須要天天做這樣的事:功能寫到一定程度時,測試人員把新的測試版本輸入法裝起來,接下來逐一把常見的生產力工具打開,把輸入法功能全部用過一次,逐一關掉,再來,測試人員的電腦上面需要安裝各種會有玩家詢問相容性的線上遊戲,而這些線上遊戲的數目,相當於前述各種生產力工具的總和(試想:在 PTT BBS上的線上遊戲討論看板就有70個,巴哈姆特 BBS 上則有將近120個),每套遊戲動輒數 Giga 大小,而線上遊戲廠商在你裝了這個動輒數 Giga 的遊戲後,通常還不能夠讓你直接進入遊戲測試,還會要求你繼續下載數百 Mega、或是又是上 Giga 的 patch,你大概會花上個幾個小時下載,然後進去打個五分鐘的字。最棒的是,在測試線上遊戲的輸入法相容性時,你完全沒有辦法使用任何自動測試工具-你也知道在線上遊戲中跑自動測試是什麼意思。
輸入法相容性工作,又往往是這邊堵起來、另外一邊又漏水,往往是你針對某套軟體做了修正,這個修正又會造成另外一套軟體裡頭的問題,所以,每做一次修正,就必須所有測試項目全部從頭操作一次,才能夠真的比較確保輸入法沒有問題。而更讓人氣餒的是,有些軟體就是有問題,就是不管你怎麼修,就是不相容,或是當你把問題修正之後,這款軟體就改版了,但是就還是不斷會有人詢問-包括就算所有人都知道這一套不相容的軟體本身也在 beta 當中,你現在去改自己的程式,只會造成對方下一個 beta 版本,又會不相容,但是,就是會有人希望你有哪一個 beta 版本不相容,就應該全部因此多出一個修改版本。
再者就是你做自由軟體的價值問題。
你看到的是,一群人為了線上遊戲每個月去購買點數卡、去競標虛擬寶物,在詢問信件中,開頭是這樣寫,「感謝您的無私奉獻」,雖然是相當禮貌,但是為了這樣禮貌的感謝,是不是就值得花幾個小時下載你根本沒興趣玩的遊戲?是不是就值得幫沒有按照輸入法規格製作程式的遊戲廠商擦屁股?花上這樣的力氣對於你所投入的專案又有多少幫助?
而你又要怎樣與線上遊戲的玩家說所謂的自由軟體精神呢?這樣嗎?-「這是一個開放的專案,我們非常感謝您的寶貴意見,但是我們更期待的是您的熱心參與;對於您所回寶的線上遊戲,相信我們絕對不會比閣下更為熟悉,在我們的網站上可以看到我們所有的程式碼,如果閣下可以提供本軟體的相容性修正,我們一定會儘快放入下一個修正版本當中。」別鬧了,人家關心的才不是什麼自由,就是免費而已。
Dil Kya Kare?你該怎麼辦?你可以有幾種選擇,一是繼續寫你該寫的程式,然後繼續不斷接受這樣的騷擾。二是,但是反正你參與這個專案的時間已經長到足夠寫到個人 portfolio 上,大不了就拍拍屁股一走了之,當然嘛,這種專案本來就是你情我願、總是會人有來來去去的,不過你也可以做人做得更絕一點,你明明知道輸入法這種軟體天生就是每分每秒都可能與任何一套軟體不相容,但是你不管了,有問題都是團隊裡頭的其他人做爛了,但是就算被其他人做爛了,還是要吹噓一下,幾年前做過怎樣的調整,所以就算現在多麼不相容,軟體效能還是非常好喔-雖然這種吹噓怎麼看都是廢話,你用幾年前的技術、工具與方法寫出來的東西,在今天的電腦上當然跑得都很快。
再來一種可能是-你有沒有辦法將這種老實說沒有人期待軟體需要自由、卻又根本妨礙你手上的自由軟體發展的需求,這種完全就是在收拾爛攤子的工作,做一定的切割?
竊以為全台灣最應該自己出來做輸入法、或是支持輸入法開發的,實在莫過於華義或是遊戲橘子這些公司,你可以看到現在所有對於輸入法的需求,實在就是這些公司造的孽。約莫兩個月前有這麼個線上遊戲的電視廣告:「不要放棄試玩的機會,公測的時候,台北準備好了、高雄準備好了…安裝光碟準備好了、獎金準備好了、光纖與伺服器都準備好了!」什麼都準備好,你就是不知道,到底輸入法的支援有沒有準備好。
而實際發生的狀況相信很多人都已經知道了。某搜尋引擎以及入口網站業者去年時與 OpenVanilla 團隊的成員洽詢,之後我們也便著手與客戶合作,製作第二個以 OpenVanilla 為基礎的客製化版本,然後在實際計畫釋出日期的前一個月,還在測試中的軟體版本與網站就提前曝光…。
我們這位客戶之所以做這套產品的市場策略究竟為何,我們沒有辦法代替客戶發言,我們只能就 OpenVanilla 專案的立場發言:在合作過程中,我們確實感受到,我們的客戶極其重視這套產品與其他軟體、特別是線上遊戲的相容性(…雖然一開始在網路上散佈的測試版本是還有很多問題還沒修完、功能也還沒做完的版本),並投入了相當的資源解決相容性問題-而這正是 OpenVanilla 專案最需要解決的困境、要擺脫的泥沼。甚至在使用介面的設計上,也表現出了這一點-這個最近要推出第一版輸入法,選字介面之所以要做成黑色直式的,就是因為在魔獸世界、楓之谷、卡丁車等遊戲中,遊戲自己繪製的介面,就是黑色直式的。
客戶的 QA 部門「天天玩遊戲」,每天不斷重複前述負擔大到可怕的測試工作,找出許許多多在你腦袋裡從來沒有想過的問題-甚至包括,在 Windows 作業系統中,如果您使用 12pt 或是 10pt 的新細明體,微軟將「敪」(U+656A)與「敠」(U+6560)兩個不同的罕用字,在字體中造成同一個字(當然,這是微軟的問題)。然後,客戶撥了經費,買下 OpenVanilla 團隊的時間,除了製作客戶想要的功能外,就是逐一解決各個已經彙整完畢、可以依照一定步驟重現的問題,嗯,就當做是 job 在做。而各種會打斷開發者的相容性問題回報,也有客服人員可以幫忙(意思就是,我也不會也不能在這裡,就這個產品,代為回答我們這位客戶的客服人員應該解決與回答的問題)。
想拿非商業的鎚子去搥應該用商業的鎚子去搥的釘子,無非是「爽到你艱苦到我」,而且愈來愈離開 OpenVanilla 架構在幾年前發想時的初衷:OpenVanilla 的最初目的在於提出一套通用的架構,建立一套可以讓開發者擺脫平台相依問題,快速發展各種輸入法的工具,而 OpenVanilla 專案過去幾年做的事情,除了將諸多既有的中文輸入法移植到 Mac OS X 平台上,真的有讓文字輸入這件事情比較往前走的,還是在於開發出了新的台語羅馬白話字輸入、Unicode 藏文鍵盤與世界語鍵盤等。相容性問題對於輸入法而言固然重要,但是你手上這個自由軟體專案就只停留在能不能讓人組公會打怪、或是交易虛擬寶物,只會讓你錯過許多更重要的事情。
去年緬甸蕃紅花革命前後,有位緬甸青年朋友寫了一封典雅的英文信件給 OpenVanilla 團隊(收到信的時候,感到相當意外,老實說,平常從來沒有人會用上 noble 這類的字眼稱呼自己)。內容是,他正在從事緬甸語文輸入軟體的工作,而 OpenVanilla 跨平台的特性,該是可以有相當的幫助,不知道 OpenVanilla 是否有英文手冊以及 API 文件-你也知道,唉,沒有;而 OpenVanilla 團隊也不可能自己寫出一套緬甸文輸入法。之後就與這位朋友失去聯絡,你也不知道在緬甸風災之後,這位朋友的近況又是如何。
既然有人樂於討好線上遊戲玩家的輸入需求,OpenVanilla 團隊也樂於解套。而 OpenVanilla 專案接下來的發展方向會是:將合作過程中所發展出的改進,回饋到 OpenVanilla 的核心架構,在輸入法模組方面,重心不再會是自行發展、維護一堆模組,或許也會停止一些不應該繼續支援的模組,而是會投入更多心力,關心怎樣可以讓更多人更輕易的發展輸入法,照顧到更多到了 2008 年還沒被顧及的語言輸入需求,首先要開始的,就是前述的英文(不可否認,英文還是這年頭真正的世界語)文件工作。而之後的 OpenVanilla 釋出套件,也會與過去的發佈方式有所不同,你會看到的不會是一套像是輸入法產品的東西,而會像是一套剛裝好的新版 apache,陽春,但是更為穩定與強大,更具有新的可能。
在呱呱墜地的那一刻時,你的母親就透過她身體給了你的身體牙齒,這一系列的牙齒,我們可以稱為牙齒 1.0,而某個時候開始,大概是你身體的某些毛髮長齊了的時候,你的身體突然又莫名其妙的出現了幾顆牙齒,這些牙齒,我們可以稱之為牙齒 2.0。牙齒 1.0 都是直長的,牙齒 2.0 則是橫長的,牙齒 2.0 的發展,基本上是以戳入並動搖牙齒 1.0 的牙床、挖出牙齒 1.0 的神經、讓你的腮幫子腫脹行進。
而一根神經的疼痛訊息,就可以抵消所有口腔可以接受的歡樂。照理說在口腔中撕裂、磨碎使用熱油與大火處理過的大塊動物屍體,應該可以帶給你無比的快感,但是這種快感完全無法壓制神經末梢傳來的疼痛,你甚至不願意去想舌吻可以帶來怎樣的舒暢與酥麻。所以這種疼痛,像是遠比被熱帶風暴親吻的印度支那半島上或是被地震親吻的土地來得大大的真實。
由此可知,完全沒有必要對於 2.0 這樣一個版本號碼、這樣一個浮點數字,抱持任何期待;需要期待的是健保卡上又要添加多少電磁記錄與怎樣才可以除之而後快。
※※※
大學一年級選修歷史課的那位任課老師去世了。他的死訊上了報紙的頭條。
會上報的原因,很顯然,與你上過他的課一點關係都沒有。而不管他的死訊上了報紙這件事情,與你有沒有修過他的課一點都沒有關係,你還是會覺得,這位老師是位好人-怎麼說呢?光是從十多年後的現在,你試圖回想十多年前在課堂上到底是怎樣的一個光景,卻發現你根本什麼都想不起來,就可以得知。完全沒有印象,就代表說這位老師在課堂上從來沒有激怒你,而在認知與記憶上具有劣根性、最喜歡熱鬧看人家吵架如你,如果也真的沒有什麼其他的印象,想來顯然這位老師也沒有激怒過什麼人,或是,就算激怒過什麼人,也在很好的災難控制之下讓你不知道。由此說來,這位老師很會做人,在這個虛情假意的世界裡,還有什麼比小心謹慎認真做人更為誠懇,這位老師是位好人。
就是因為這位老師是位好人,所以當這位老師進入了新總統的內閣名單的時候,他的好似乎也就讓人忘記了,這位老師好像沒有什麼行政上的歷練,如你所知道,也如你從報紙上面看到,這位老師除了幹過教授教授歷史外,幾年下來幾乎都是擔任中國國民黨的黨職,報社的記者還特意強調這位老師年輕的時候也寫過幾部出色的鄉土小說-而這樣的歷練跟擔任內政部長之間有什麼相關呢?不過,他的好就是會讓人忘記追究這點,而且,現在也已經完全沒有追究的必要。完美的讓你完全沒有印象的完美的好,想來新政府的內閣職位也該算是對這樣的一份好的合理的好報償。
然後你這位沒有什麼印象的好老師在住處附近登山時莫名其妙的心肌梗塞,莫名其妙的簡直像是《死亡筆記本》那部玄怪漫畫的情節。
※※※
Jaipur。粉紅之城。
雖然你可以看到當地政府貼上了這樣的標語:「綠化的城市、乾淨的城市」(Green City、Clean City),以你的眼光倒是看不太出來哪裡有綠化以及哪裡乾淨就是了,不過倒也不是說不通,只是你要改用印度的標準。即使路上的行車也是亂到一個恐怖的局面,所有的交通號誌的用途甚至連參考都說不上,
不過,在這個城市裡,除了會有一種讓你身處在人類文明遺址中的感受,還有就是活生生的居民在歷史建築裡活潑的活動著的感受。城市座落在山谷中,在城市裡的任何一個角落,抬起頭,除了是印度斯坦的朗朗晴空,就是環抱城市四周的一圈土黃色小丘上,那座十六世紀時留下的巨大土黃色碉堡,還有在陵線上蜿蜒如長蛇的城廓。即使馬路上的行車多混亂、路邊有多少垃圾與閒晃的牛群,你還是可以從一排一排齊一的房舍,相同尺寸的門扉與招牌,看出這裡當初該是一個有設計過的城市-只是後來不知道到底是什麼地方出了錯-有人說這個地方其實只要再稍微整理一下,就可以是個不錯的地方,說來該是不假。
你可以去逛逛四百年前安珀王國所留下的種種,雖然假如去的時間不對-例如上個月就不是什麼好時間-你可能看到的更多會是整修中的鷹架,你去看水上宮殿的時候,可能看到的是湖邊的一整座鷹架,還有鷹架在水中的倒影,你去看風之宮殿的時候,你會比較想稱之為風之工地。但至少你還是可以沿著總是有畫了彩妝的大象在行走的道路,前往最富盛名安珀城市宮殿,你知道,今年初的寶萊塢歷史戰爭愛情大片 Jodhaa Akbar 就是在這裡取景拍攝,超級大美女 Aishwarya Rai(唉,為什麼她要變成 Aishwarya Bachchan 呢?)所化身的 Jodhaa 公主,就是來自這個王國、自幼住在這座宮殿。你所看到宮廷中的這座亭子,就算 Jodhaa 公主沒有在這裡待過,至少 Aishwarya Rai 也在這裡不但留下倩影、也留下電影-即便印度觀眾看這部乖違史實許多-Jodhaa 公主應該要嫁給 Akbar 國王的兒子,而不是 Akbar 國王-的電影時,可能跟你在看劉德華演趙子龍的感想差不多。
你在這裡,在夕陽西沉的時分,在旅館屋頂的露天座上,大啖香料羊肉,剛出爐熱烘烘表皮酥脆的烤餅與甩餅(兩者的差別還是要花上一點時間才能搞清楚),還有香蕉拉希,你還在這裡第一次知道印度人做的中國菜到底是怎麼回事:你從來沒有想過所謂的春捲用的不是春捲皮,而是用那種叫做 roti 的印度甩餅,你也沒有想過原來春捲裡頭可以包番茄與青椒。你的旅館房間在一樓,窗戶外面就是一片精心整理過的花園,而這樣一間兩人房一晚其實也才台幣四百多元。
你在這裡買了手工染製的長衫,也幫母親帶了一條赭紅色的羊毛披肩。從 MI 路穿過一條電器街後,是沿著城牆的一片市集,你在糕餅店買了帶有薑味而且甜到要死不活的甜點(印度糕點好像只能夠用這三個分類區分:很甜、非常甜、非常非常甜),你在拖鞋攤子挑選拖鞋,一邊看著旁邊少女們在雙手上繪滿了各式各樣的紋飾,你在這裡也順便買了大吉嶺的紅茶,然後你沒有想到其實大吉嶺也有不少的伯爵茶與綠茶。
你在這裡第一次走進印度的電影院,看了講述兄弟鬩牆的動作大片《Race》與喜劇《Krazy 4》,雖然語言的隔閡讓你無法掌握笑點,總之,你從來沒有想過印度隨便一家電影院的放映廳都這麼大,動輒便是七八百人的大廳,座位上可以讓你盡情舒展雙腳,椅背可以往後躺,你可以躺著看一部動輒兩個半小時以上的印度電影,而票價只相當於台幣五、六十元。
有時候你會覺得印度觀眾的反應甚至比電影還來得有趣-當歌舞 MV 亂入到電影情節的時候,在台灣的網站上的文字裡,你看到的種種反應都是對歌舞的不耐,但是在印度你看到的是觀眾開始喧囂、鼓掌、歡呼、吹口哨…你還可以看到有些觀眾紛紛拿出手機,將這段歌舞錄進手機中,歌舞結束的時候,甚至連後面的情節都不看了,而是仔細端看剛才手機裡頭到底錄了那些內容…。
這樣的一座城市也會莫名其妙的遭受連續炸彈攻擊。
八十人死亡,一百五十人受傷。而你無從得知這八十人當中有沒有幫你從美金兌換盧比的旅舍老闆、還是拖鞋店的商販、糕點店的師傅、在路邊一直問你要不要搭車的三輪車司機、還是一直跟在你背後,用像是他唯一學過的英語,問你有沒有盧比的小乞童。
去看,去假裝發愁
去喝一頓喜酒
去看新娘的穿著
去想,該包一千六?
還是應該要包上個三千六?
去算,去用禮金丈量朋友
去對著花圈呆坐
去看典禮的哀榮
去跟隨著司儀的動作
去向從來就不熟的長輩鞠躬
去看,去看西索米趕場的演奏
去讓死去的就此沉默
去跟還沒死去的繼續應酬
去看,去假裝發愁
去聞時間裡的腐臭
去厚顏無恥地在地球
繼續佔據一個角落
去通勤,去工作
去刷牙,去上廁所
去調整鬧鐘
去看,去假裝發愁
去尋找紅利點數與循環利息之間的賺頭
去比較標準扣除與列舉扣除
哪個省的比較多
去讓帳單叮嚀你
一個月又到了盡頭
去讓國稅局比你還懂
一年來有過哪些收穫
去看,去假裝發愁
去聞時間裡的腐臭
去厚顏無恥地在地球
繼續佔據一個角落
去通勤,去工作
去刷牙,去上廁所
去調整鬧鐘
去看,去假裝發愁
去看今天馬桶是阻塞還是暢通
去看今天垃圾車有沒有資源回收
去看日子如同壁癌般一片片剝落
去看日子裡只剩下麵包屑般的生活
去看今天自己又有多少貪婪的渴求
去看今天自己又被多少垃圾淹沒
去看今天自己又與多少人擦肩而過
去看自從你離開之後
已經過了多久
—總之
我,想要傷害你
因為我,也想要你來傷害我
我,想要傷害你
因為我,也想要你來傷害我
我,想要傷害你
因為我,也想要你來傷害我
約莫兩年多前開始,在網路上開始流傳一則笑話,笑話的大意是:有兩位網友剛認識,卻還不熟悉,在透過網路即時通訊軟體聊天的時候,其中一位因為使用微軟新注音輸入法,為了加快聊天速度,所以並沒有正確選字,就直接送出,用語中就出現了許多的性器官名稱,例如「韓劇跟西洋劇都一樣差勁」變成了「含巨根吸陽具一樣插進」,而造成了聊天的誤解。為什麼會造成這樣的誤解呢?就這篇笑話中表現的態度來看-那自然是微軟新注音輸入法的錯了。
而根據 Engadget 最近這篇文章:〈癮軟體:新酷音變更聰明了喔-新酷音共享詞庫080428更新〉,又提到了這個笑話,而且以這個笑話,直稱微軟新注音是一套「色情輸入法」。文中這麼說:「不用再擔心看到「肛潤睪丸」或「含巨根吸陽具都一樣插進」了Orz,好高興可以脫離色情輸入法的魔掌。 」
這就讓人相當好奇-用微軟新注音打字的正確率(或錯誤率)到底有多糟糕?
所以呢,做了一個簡單的小實驗。我們就以那則笑話中使用微軟新注音輸入法打字的網友所打的內容,根據其讀音,以目前 Windows 上面的幾家智慧型注音輸入法,在完全不打字的狀況下輸入一次,看看輸入的結果會有多少錯誤。實驗使用的文本如下,共 59 字。
就平時教鋼琴 禮拜六日在教會工作
就帶詩班 領詩之類的
其實我是這一年半才開始教詩班的 以前是做行政方面的事
韓劇跟西洋劇一樣差勁
這個小實驗大概依照以下規則進行:
- 在打字的時候,是一次打到斷行或是有空格時,才按下 Enter 按鍵送出。
- 測試的輸入法包括微軟新注音 2002、2003 以及 Vista 版本、漢音、倚天忘形 99、自然 8,以及最新版本的酷音輸入法 0.3.4.5 版本,同時測試酷音在使用共享詞庫前後的狀況。
- 測試的環境是 clean install 的、剛裝好第一次使用的 Windows。測試方法是準備 Windows XP 與 Windows Vista 的 VMWare Image,裝好之後馬上拍一個 snapshot,安裝(如果這套輸入法必須另外安裝的話)並測試完畢之後,立刻還原。
- 在這段文字中,「差勁」的「勁」是一個例外狀況。「勁」有兩種讀音,Jin與Jing,大多輸入法將「差勁」一詞標為 ChaJin,唯獨漢音輸入法、與新注音 VIsta 版本(新注音先後幾個版本的詞彙中,標上的注音還不一樣,是有那麼點奇怪),是標為 ChaJing。在這個地方就都以可以打出「差勁」一詞的注音輸入。
結果如下表。各種輸入法打出的結果附於文後。
| 錯字數 | 輸入法 |
|---|---|
| 6 | 新注音 Vista 新酷音輸入法 0.3.4.5 + 酷音共享詞庫 |
| 7 | 新注音 2003 |
| 9 | 新注音 2002 |
| 10 | 自然輸入法 8 漢音輸入法 5.02 |
| 11 | 倚天忘形 99 |
| 12 | 新酷音輸入法 0.3.4.5 |
雖然這個實驗的字數並不多,不算什麼可靠的實驗。不過,實際打打看這段讓新注音輸入法變成「色情輸入法」的文字,卻可以看到,用新注音輸入,錯字反而比自然、漢音、忘形少,錯字最多的是酷音。從 2003 版之後的新注音輸入法,在輸入「韓劇與西洋劇一樣差勁」這句話的時候,都是一字不差。
酷音的共享詞庫,像是有針對這段文字做過一定的調整,比方加入了「詩班」與「韓劇」兩個辭彙,但是錯字的數量也是與 Windows Vista 內建的新注音相當。而如果說酷音加上了這個共享詞庫,在某些狀況下就因此比較準確些,再拿來與新注音比較,那麼,要拿來比較的對象,應該是加上了這些詞庫的新注音-新注音同樣具備自訂詞庫,與詞庫匯入、匯出的功能。問題只是出在,有沒有人想要將這套共享詞庫轉換成新注音格式匯入而已。
微軟新注音的確稱不上好用。竊以為,新注音的最大問題莫過於使用 Shift 切換中英文,還有令人困擾的標點符號配置,而打字時需要輸入標點符號的機會並不小-使用 Shift 切換中英文這個行為,應該是北京微軟繼承拼音輸入法的行為而來,使用拼音時並不會用到 Shift 鍵,相反的,在標準注音鍵盤配置上,注音符號佔用了上方數字鍵以及逗號、句號按鍵;打字時如果需要輸入標點符號,往往需要按下 Shift,但如此一來卻切換到了英文模式,十分惱人。到了新注音 2003 版的時候,才可以透過設定,關閉這個行為。
在標點符號配置上,完全不知道這些人在想什麼:在 2002 版中,在中文模式下輸入 Shift + 1,會出現 1,如果你要輸入驚嘆號,你必須先切到英文模式,再切回中文繼續打字;從 2003 開始,又將許多標點符號按鍵,對應到 Ctrl 與其他按鍵的組合上-當你按下 Shift + , 出現的是小於符號「<」 ,而不是逗號,按下 Ctrl + , 才是,而逗號卻是最常使用的標點符號。相對來說,自然、漢音、酷音,對我而言也的確比較順手。
微軟新注音的設計問題不小,但如果要說新注音的內容正確率有問題,就得端看比較的標準是什麼,還有到底是拿什麼依據做如此的立論;在網路上面可以看到許多嘲弄新注音選字錯誤的故事,不過呢,可能頂多只能說明-新注音的使用人口最多。說來幾套注音輸入法的正確率,都並沒有多大的差異,如果拿來打唐詩、打古文,正確率都一樣差。
而新注音的另外一個行為,則是會把最近打過的字調整成比較容易出現,所以,如果之前就經常輸入那些充滿性器官名稱的詞彙,的確是可以把新注音調教成色情輸入法;不過呢,好色之徒搭配色情輸入法,也沒有什麼不好就是了。
而這些講注音輸入法選字錯誤的故事,倒是有個地方值得注意,就是:幾乎所有的笑話,都發生在使用即時通訊軟體的場合裡。不知道有沒有人做過這樣的統計-你一天當中使用輸入法時,有多少字是在文書軟體中繕造公文、撰寫文章,還是在打屁閒聊;而如果將輸入法用在正經的用途上,就沒有發現什麼問題,或許可以說,因為使用者在寫作的時候必須花在文字上的心思,足以克服輸入法正確率的不足,那麼,輸入法的設計,似乎需要的是對於不正經的用途方面調整。
比方說,目前各家輸入法,幾乎都是以報章新聞語料做為詞庫頻率統計的依據,但是,如果是倒進一大堆聊天記錄當做語料,對於使用者來說,還會更有用一些。
新注音 2002
就平時交鋼琴 禮拜六日在教會工作
就帶失班 領失之類的
其實我是這一年半才開始焦屍班的 以前是做行政方面的是
函據跟西洋據一樣差勁
新注音 2003
就平時交鋼琴 禮拜六日在教會工作
就待失扳 領失之類的
其實我是這一年半才開始交詩般的
以前是做行政方面的事
韓劇跟西洋劇一樣差勁
新注音 VIsta
就平時教鋼琴 禮拜六日在教會工作
就代詩班 領失之類的
其實我是這一年半才開始焦屍斑的 以前是做行政方面的是
韓劇跟西洋劇一樣差勁
倚天忘形 99
就平實教鋼琴 禮拜六日在教會工作
就帶師般 領師之類的
其實我是這一年半才開始教師般的 以前世做行政方面的是
含據跟西洋據一樣差勁
自然輸入法 8
就平時交鋼琴 禮拜六日在教會工作
就代師班 領師之類的
其實我是這一年半才開始教師般的 以前是做行政方面的是
含具跟西洋具一樣差勁
漢音輸入法 5.02
就平時教鋼琴 禮拜六日在教會工作
就帶師班 領師之類的
其實我是這一年半才開始教師般的 以前視作行政方面的是
含據跟西洋據一樣差勁
酷音輸入法 0. 3.4.5
就平時教鋼琴 禮拜六日在教會工作
就代屍斑 領師之類的
其實我是這一年辦才開始教師搬的 以前試作行政方面的是
含具跟西洋具一樣差勁
酷音輸入法 0.3.4.5 + 詞庫
就平時教鋼琴 禮拜六日再教會工作
就帶詩班 領濕之類的
其實我是這一年辦才開始教詩班的 以前試作行政方面的事
韓劇跟西洋據一樣差勁




