星期五, 12月 29, 2006

因果難辨

生活中許多事情,很難辨別哪些東西是原因、而哪些又是結果。

近日在早餐時段閱讀《柏拉圖靈丹》,覺得它有許多內容頗合自己的口味。例如,今早看到(作者在進行哲學諮商輔導的某個個案中,當事人得出的結論)「承諾並不是失去自由,反而是自由的實踐」這樣的話語後,就覺得頗有感觸。

曾聽人說起,結婚後就失去大半的個人自由;而有了小孩後,就更是處處受限,沒有自己的生活。這些話看起來是很合理的:因為在事實上,結婚、有小孩之後,一個人必須花費相當多的時間精力來維護家庭;如此一來,自己的個人時間自然減少,甚至感覺蠟燭兩頭燒,在時間分配的調控上捉襟見肘、怎樣也感覺不夠。

然而,換一個角度來看,其實也正是因為那個人希望信守婚姻與家庭的承諾,願意將時間與精力投注在婚姻與家庭中,所以他才無法分配更多的時間給自己。這樣的承諾,確實佔據了個人的時間,但這樣並不是失去自由,反而是自己「選擇把時間投注在家庭上」的自由實踐。

另一方面,這幾天也不知怎麼回事,一直沒有上網看好友們的 Blogs 文章。是因為忙碌,所以抽不出閱讀的時間;還是因為沒有抽出「這麼一點點」的時間,悠閒欣賞 Blogs 文章,所以才更加深忙碌的感覺?也或許,它們之間的交互作用其實相當複雜,甚至互為因果?

還好的是,雖然日子過得匆忙,但內心卻似乎還頗平和。不管怎麼說,能夠擁有不算短的早餐閱讀時間,就應該算是一種幸福吧。

星期一, 12月 25, 2006

小傢伙的畫作:爸爸和姑姑們

最近的時間,似乎總被各種生活瑣事所佔據。

工作上,光是處理繁瑣的 THDL 資料,就經常讓自己卻步。例如,最近學妹寄給我一份「岸裡大社」的詮釋資料 (metadata)。我寫程式處理一陣子後,才發現它們與文字檔案的對應間,存有許多完整性 (integrity) 的問題。自己的個性不喜歡將就問題隨便進行,但是又實在懶得寫程式去檢驗或更正,於是就只能先擱著,等自己心情好的時候再說。

感覺起來,小朋友的日常生活,雖然也可說是平凡瑣碎,但似乎就有趣得多。這是因為自己的童心比較重;還是因為自己的生活重心,其實已經擺在小孩的身上呢?

右邊的圖,看起來就頗具趣味性。它的題名是「爸爸和姑姑們」。

星期五, 12月 22, 2006

囫圇吞棗

用心與小朋友相處,經常可以發現自己的不足處。

小朋友很喜歡聽故事。自己沒有編故事的能力,只好在坊間挑了幾本彩色的故事書,在睡前講一兩則給她聽。有時,我並不會很喜歡某則故事,也很懷疑她是否聽得懂;但小朋友卻總是很入神地聽著,有時還會問一些問題。

昨天,當我講到「光榮」這個詞彙的時候,她就問我:「爸爸,光榮是什麼意思啊?」一時之間,我語塞了,不知道該怎樣解說。我只好跟她亂說一通,然後說,我會找時間查辭典,之後再向她說明。

剛剛上網查了一下,「光榮」的字義是「光采榮譽」或「光耀榮顯」的意思。可是,什麼是「榮譽」,到底「榮」是什麼意思?「」本身的字義有「富貴顯達」的意思,但光榮呢?「光耀、顯達」真的是合適的解釋嗎?

印象中,小傢伙問的詞彙,我幾乎有一半都回答不出來。不知道該怎樣向小孩子說明詞彙的意思,或許就暗示了,自己在語文類的求學與認知過程中,大概都是似懂非懂、含含糊糊地矇混過去,大概都是囫圇吞棗地用概括或想像去了解。

要能夠精準地掌握語彙的意義與使用方式,應該需要很深的語文功力吧。對我而言,這是相當困難、深具挑戰的一件事呢。

星期一, 12月 18, 2006

塞車

今早起得有些晚,高速公路又遇到罕見的大塞車,花了約平常三倍的時間,才到達學校。

或許是因為思緒靜不下來,也沒能好好地看些閒書。事實上,這幾個星期以來,似乎沒有閱讀什麼有益心靈的書,而幾乎都是在看技術相關的文章,想一些系統或者程式相關的東西。或許,也是因為這一陣子書看得少,覺得自己「面目可憎」,因而認為在時間的調配上「輕重不分」吧。

實驗室還是和半年前類似,空蕩蕩地。在網際網路普及後,研究生們出現在實驗室的時間,似乎比十年前少了許多(不過,許多研究生是下午或晚上才會到實驗室,因此我這樣說其實也是偏頗了些)。電腦們倒是都開著機。寒冷的天氣,襯托著嗡嗡的風扇聲,格外令人感覺孤單、甚至有些寂寞。

星期五, 12月 15, 2006

輕重不分

最近似乎花太多時間在 THDL(台灣歷史數位圖書館)的資料處理與系統開發上。

雖然說,自己原先設定的目標,就是寫一兩篇論文,並且開發 THDL 的雛形系統。雖然也知道,雛形系統會隨著時間演進,而且開發到某個地步後,就應該與現實接軌;但現實的狀況是,從上游接收到的資料一團亂,從編碼到儲存格式,什麼奇怪的狀況都有。為了讓系統能夠像個樣子,自己通常得一邊寫程式來做 integrity check,一邊修正系統的 bugs。

自己寫程式有個毛病,那就是常常覺得「只差臨門一腳就完成了」。從事後的角度來分析,只差「一腳」的情況不是沒有,但一般說來都「需要很多腳」:修完了這個部分,就發現另一個問題;解決這個問題後,又發現另一個有趣的嘗試。結果就是,整天都在寫程式,弄得身心俱疲。

看起來,自己是有些輕重不分,甚至本末倒置了。許多事情,急也急不來,甚至也不是自己該去著急的(皇帝不急,卻急死太監?)。是該讓自己多休息,並且將時間精力多投注在「應該在意」的事情上才好。

星期一, 12月 11, 2006

馬齒徒長

什麼是理想,什麼是抱負?

前些時日,MPH 在他的 Blog 中提到他對「有志青年」的一些看法與建議。不過,在後續的討論中,感覺他所說的「有志青年」似乎並不是「有理想、有抱負的時代青年」,而是比較保守的「有為青年」。

覺得自己是在「沒有什麼特定理想與抱負」的狀況下度過四十寒暑。回顧起來,「若是歲月可以倒流」,我會希望自己做些什麼呢?

很可惜,自己從來都沒有認真地思考過這個問題;因此,就算時光可以倒流,自己仍然擁有年輕的歲月與活力,但若要談理想、說抱負,得到的恐怕依舊是缺乏創意主見的庸碌之言。

有番大事業、賺很多錢?自己似乎從來都不曾強烈地有這種念頭。前些年有段時日,還真想賺多一點錢;然而,現實殘酷、時機不對、歷練不足、加上努力或許也嫌不夠,賺錢似乎就變成貓所說的「為五斗米折腰的工作」了。

那麼,難道世界上真的不存在「理想與實踐」這檔事嗎?不,當然不是。聽說過馬文仲與希望小學的故事嗎?另外,看看這一期的商業周刊,提到 2006 年諾貝爾和平獎得主尤努斯,為了讓祖國孟加拉的一般民眾脫離貧窮,而成立窮人銀行的故事。我覺得,這些就是能夠實踐的理想與抱負。

只是,不管怎麼說,遠離了輕狂的歲月,自己應該已經沒有多少的幻想了。在還沒有找回自己的理想前,就只能踏實地緩步前行,順著自性去發展,並於途中多看些他人的成長故事,多思考自己的人生價值意義。

此外,總還是希望能夠在家庭與工作間,取得令自己感覺舒適的平衡區。也祝福大家,在人生的道路上,旅途愉快且滿足。

星期六, 12月 09, 2006

小傢伙的頭足人

小朋友的繪畫,通常都頗有其趣味性。

據說小朋友畫畫,一開始的人長得都是頭大大,身體只有手腳的「頭足人」。由一個大圓圈代表頭,二條直線連接在此圓圈下面象徵雙腳。

據說,小孩子是很有創意的,而且他們具有「一般成人所欠缺」的大膽作風。小傢伙畫人物,就是這樣畫:一個圓圈畫頭,再畫一個 W 形的身體與雙腳,然後是雙眼與笑彎的嘴巴,再加上兩條雙手細線,就算是完成了。

 

上面這兩張圖,左邊的題名是「兔子」,右邊是「很多住在泡泡裡的人」。

星期三, 12月 06, 2006

資料處理的取捨

生活中時常需要選擇,選擇就免不了得做取捨。

就拿「淡新檔案」的資料處理來說吧。明知道人工處理的步驟很容易出差錯、也的確在許多地方發現資料整合的問題,但面臨的選擇是:自己究竟該投入多少時間精力,又該將它們投注在什麼地方?

貓說的是有道理:「有錯就改,怎麼可以矇上眼睛假裝看不到」、「有辦法寫程式去修改,沒辦法就花錢找人去修改」、「不然你自己一筆一筆慢慢改」。問題是,自己不想假裝看不到、有寫程式去偵測一些錯誤、卻沒有足夠的資源請專家常常修改。此外,許多地方自己雖然知道有錯誤,卻不知道正確的結果應該是什麼啊!

於是,必須先做些取捨、對現實妥協。我採用的做法是,暫時把有錯誤的部分擱在一旁,並取出正確的部分來構成出初期的系統內容。這樣的「有缺陷的系統」當然不夠實用,但把目標設定在 prototype,拿這個雛形作為系統發展中的溝通工具,卻應該有相當好處的。

事實上,當我整合全文檢索、文字內容、詮釋資料與照片圖檔後,自己真還覺得「似乎完成」一個重要的階段任務呢。(至少,自己認為這樣的系統應該比目前「淡新檔案網路資料庫」的檢索系統實用得多。)

只是,整合的過程,充滿了「資料格式轉換」與「中文編碼」的問題,也時時得留意資料的完整性 (data integrity)問題。回想起來,資料處理還真的充滿瑣碎的步驟、真的需要有放下身段,保持耐心,一步一步地前行呢。

星期六, 12月 02, 2006

欲速則不達

說的總是比做的容易,說的總是比做的多。

想在資料庫裡先行計算出統計資訊。由於關聯式資料庫在處理樹狀結構上並不在行,SQL 語法也沒能處理類似 transitivity closure 的問題,自己必須先建構許多「輔助」的表格,然後慢慢地把想要的資訊計算出來。

但是,程式寫著寫著,就會想省下幾個步驟,想要「精簡」地把結果計算出來。然而,缺乏事先周密的思考,貿然貪快的結果,就是最後計算出錯誤的資訊,必須重新來過。

按耐煩躁的心,多花些時間思考到底需要那些步驟、每個步驟的目的和結果又是什麼。如此一步一步前行,終於取得一些初步的結果。

我想,或許僅是為了節省時間,或許是因為低估了問題的複雜性與困難度,人就是會有衝動,想一次處理掉很多事情。只是,欲速則不達,貪快通常只會讓自己學到另一次失敗的經驗。

星期三, 11月 29, 2006

資料處理的完整性問題

莫非定律中,有一條是這麼說:凡是可能出錯的事,準會出錯。

在資料處理的流程中,有人力介入的地方,就可能會出錯 -- 而且通常都真的會出錯。例如說,用人力處理資料時,就很難維護資料的完整性(Data Integrity,或譯為資料的整合性)。

資料的完整性並不等同於資料的完備性(Completeness)。用 Google 可以在網路上找到許多不同的解釋,而我在此是想用這個詞彙來強調「資料物件之間的連結正確無誤」的特性。

例如說,網頁有個圖檔的連結,但是這個連結在點選後卻找不到正確的內容,這就是完整性出了問題。或者,應該以某種規則來指定檔案的名稱,但是卻發現了例外。又或者,資料庫的某特定欄位應該儲存「地理」資訊,事後卻發現它含有「年齡」的資料。

要檢驗資料物件之間,是否連結完整並正確,通常需要很高的人力成本。然而,如果系統從設計規劃時,就開始重視資料的完整性,我們就可以利用電腦工具來檢驗、防止錯誤,從而降低維護的成本。

沒有控管資料完整性,會增加後續處理的困難。例如,目前處理「淡新檔案」的詮釋資料,就有發現某個欄位填寫有誤(連結所提供的資訊不正確)。碰到這樣的狀況,自己是該假裝沒看見,放任它繼續出錯,還是自行將它更正?如果自己只知道它出錯,卻沒有能力更正,那又該怎麼辦呢?若要有效率地利用流程更正錯誤,或許該「彙整可疑的狀況」批次處理。只是,自己真有興趣、真有時間精力去做這件事情嗎?

資料間缺乏完整性,最終也會破壞系統所能提供的服務品質。

星期一, 11月 27, 2006

大量資料的呈現難題

自己一直都很關心「大量資料該如何呈現」的問題。

以文件檢索來說,就是將這些資料以「文件」作為單位,得到檢索結果後,該如何呈現文件、以及文件內容的問題。而「大量資料的呈現問題」在此就可以說是「大量文件的呈現問題」。

傳統的人機介面(Human-Computer Interface,HCI)對此似乎沒有多少著墨。不過,如何緩解超量資訊所造成的過載,似乎也是因為近幾年來 Web content 大量湧現,才顯得更為迫切。或許在幾年前,大量資料的呈現,也根本算不上是什麼重要的問題呢。

但我覺得這個問題並沒有乍看之下那麼容易。它牽涉到如何用較低的成本,來展示資料並提供互動,更關係到人類注意力有限的先天事實。

一個常見的處理方式,是將資訊分層別類地組織起來,然後提供一個瀏覽環境來讓使用者由上而下地找出想找的文件。例如,我們可以將 Windows 下的每個檔案視為一份文件,而「檔案總管」就是一個這樣的瀏覽環境。

接下來,就是提供「全文檢索」或類似的工具,讓使用者輸入關鍵字詞、指定檔案大小或最後存取的時間,然後系統將符合的文件「列表」出來。

那麼,還有沒有其他「或許更好」的方式?

合併分類瀏覽與查詢,提供「多維度」的檢索方式,曾經是我想探究的一個主題。不過,理論上說起來容易,在實作上,就經常碰到實際的問題:如何有效率地歸類或分群,如何快速地統計、過濾、彙整、計算出所需的資訊?此外,螢幕的解析度就這麼大,該怎麼把計算出的結果,有系統、有組織、易理解、易操作地呈現出來呢?

星期五, 11月 24, 2006

再談淡新檔案的文件檢索

約莫三個星期前,我提到了一個關於「淡新檔案」的檢索問題

試著重述一下手頭有的東西。首先,台大圖書館有具歷史意義與價值的「淡新檔案」資料。希望利用電腦來處理這些資訊,前提是這些資訊必須數位化。於是,經過繁複的數位化處理後,我們將那些資料以「件」的方式來儲存(通常一個「件」就是一份公文,儲存為一個檔案)。

現在問題來了:歷史學者並非獨立地看待每個「件」。解讀歷史,必須鑑古識今,參考時代的脈絡與環境,才能得出有價值的解析。淡新檔案中,其實是以「案」來作為「有價值資訊」的單位,每個「案」是由多個「件」所組成,而時間則可能貫穿數十年之久。

套用流行的資訊檢索方式,是可以將「件」視為檢索的文件單位。使用者輸入查詢後,檢索結果是符合查詢條件的所有「件」的列表。

是可以用後處理(Post-Query Processing)的方式,將檢索結果分類(例如,利用阿尼說的「文件夾」概念,或者我從前論文所建議的 multi-dimensional spotlights),然後將「同個案之下的相關件」彙整在一起。但是,既然「案」才是有意義的解讀單位,而且每一個「件」其實都沒有多少(通常只有幾百)個字;那麼把「案」視為文件單位,是不是更為自然、而且便利呢?

於是,寫了一些程式,粗略地實作了將「案」視為文件單位的想法。除了因為淡新檔案裡只有一千多個「案」,彰顯不出系統的威力(從大量文件中,快速地搜尋出符合條件子集的能力)外,初步的感覺還不錯。

只是,如果真的把「案」視為文件單位,那麼如何組織與呈現一個「案」下的所有「件」,甚至整合每個「件」的「詮釋資料」(metadata),就帶出更多有待探討與解決的問題了。或許,這也是一個值得關注、思考的研究主題呢。

星期三, 11月 22, 2006

從兒童繪畫,到美術欣賞

帶小朋友到「蘇荷」學畫畫。

最初是太太的朋友介紹,我只是想讓小傢伙在尚未接受正規教育之前,有段愉快的學畫經驗。然而,上過幾次課後,我發覺除了小朋友樂在其中(我們是上晚上的課程,小傢伙一早醒來就會很期待去學畫),自己其實也頗認同蘇荷的一些教育理念與實踐方式。

或許,是因為在自己的經驗裡,總覺得台灣的教育方式太過僵化死板。教給學生的內容相當充實豐富,但重點卻似乎是在強調快速地讓學生「學」到經過組織的資訊與技巧,而不是給學生充裕的時間去感覺、摸索、嘗試、乃至領悟。此外,對於學生或小孩,我們似乎也很少給予發自內心的讚賞與與鼓勵。

有意思的是,小朋友在教室裡玩耍、學著用各式各樣的材料和色彩發揮想像,蘇荷教室也為家長們安排了藝術欣賞的課程。在一系列的幻燈片講解中,我似乎漸漸明白繪畫美學的一些原理,也似乎漸漸能夠欣賞一些看不懂得現代藝術畫。

欣賞的課程中,有時我會對人類如何表達生的喜悅而感到驚喜與震撼。有些時候,我似乎也能感受到,藉著各種嘗試與創新,藝術家試圖超越人類極限的掙扎與努力。

我很喜歡這樣的課程。

星期六, 11月 18, 2006

告狀的時間

伴小朋友成長,每個階段都有不同的樂趣。

雖然我放在小傢伙的心思並不算太多,自己還是經常陶醉在陪伴小孩的甜蜜時光裡。我應該沒有什麼「炫耀」的用意(或許貓真人會說,我潛意識裡是這麼想 :p);主要還是想趁著記憶猶新,把一些有趣、純真的日常瑣事記錄下來。

 告狀的時間 
前幾個月,小傢伙還不會自己上廁所尿尿,需要有大人抱著她到洗手間小解。我在家裡的時候,若她尿急,就會看到她以很著急的語氣說:「尿尿、尿尿、我要尿尿!」

然後,我就趕緊放下手邊的事情,衝過去帶她去小解。之後,我幫她穿好褲子,她會很高興地跑到太太那兒,說:「告狀的時間到了!」

原來,我幫她穿衣服褲子,經常穿得不甚整齊,需要她媽媽再幫她整理一次。看著她那麼興奮地跑去「告狀」,那麼天真的模樣,有時真會有一種難以形容的感動。

最近她漸漸學會自己去上廁所、自己穿褲子了。我想,這樣的有趣時光,或許很快地就會遠離,而被另一種成長喜悅所取代。

 我冷得發抖了啦~ 
前兩天的一個傍晚,我在家裡,小傢伙在不遠處的外婆家。

接到一通電話,是小傢伙撥來的。在電話裡,她說:「爸爸你快點拿外套來給我」。我問怎麼回事,她說:「你快點來啦,我冷得發抖了啦~」

聽到她這樣說,我趕忙拿了一件外套,小跑步到岳母家,卻發現她已經穿了好幾件衣服,不應該會覺得冷。我說,妳穿這麼多,還會冷得發抖?小傢伙說:「我是跟你開玩笑的啦。」

原來,她就是想要快點看見爸爸,所以就編織了這樣的一個理由。告訴她不可以騙人(雖然現今的政治處處可見自欺欺人的行為),告誡她「放羊的小孩」故事,卻也不禁為四歲小娃娃的聰明伶俐感到讚嘆。

星期二, 11月 14, 2006

推卻一個工作機會

經過一番內心交戰,傍晚打電話推卻一個「天上掉下來的工作機會」。

起因是這樣的。大約半年前,項老師說某家公司急缺技術人員的頭頭,要我到那家公司談談。我和對方約好見面,談得也算愉快,但回家後就一直沒有收到對方的通知。項老師後來問起,我說,對方可能並不是真的很急吧。

誰知道,上週四接到一通行動電話,約我週五過去吃頓午餐。席間,他們表示公司經過一番整頓,希望邀請我擔任產品研發主管。遊說的人是總經理特助,業務出身。緊迫盯人的言談,讓我不知該如何應對,就只好回答說,看看該公司能夠提供怎樣的薪資福利吧。

由於時間上,也差不多該找下一份工作了,因此我本來是有些心動的。然而,今天夜半醒來,竟然再也睡不著覺,腦袋裡盡是關於是否該到該公司工作的考量。最後,我決定推掉這份工作,原因是:
  • 太太憑直覺,認為我接下那份工作會很辛苦、吃力不討好。
  • 他們提供的薪資福利與配套,其實也不突出。
  • 他們希望我馬上就可以去上班,如此倉促讓我覺得事有蹊蹺(更何況,半年前的經驗,讓我覺得不怎麼舒服)。
  • 該公司將產品研發部門定位為利潤中心,但企畫及業務都是由其他部門負責 -- 這相當於產品的上下游都由其他部門負責,如此將很難訂定合適的績效評估方式。
  • 若去那兒任職,短期內的狀況,恐怕就是在收拾一個爛攤子。該公司似乎是採用傳統的瀑布式流程開發,而 top managers 卻覺得這樣的開發模式非常好(但... 許多模組都只安排一個星期的 coding 時間耶。更何況,該部門的人員,看起來程式設計與寫作的能力都不夠呢。那麼,程式出 bugs 時怎麼辦?)。
決定推辭這個工作機會之後,心情突然輕鬆許多,有種如釋重負的感覺。

星期一, 11月 13, 2006

珍惜得之不易的悠閒

差不多一個月前,就很希望能夠痛快地悠閒一下

說起來似乎不困難:就我目前的 post doctor 工作而言,自己能調控的時間相當有彈性,項老師(老闆)也沒有施加額外的壓力。不過那篇 post 寫後沒幾天,我就發覺要想痛快地睡午覺,其實也沒有想像中那麼容易。

怎麼會這樣呢?首先,需要的時間遠比想像來得多(要想舒服地睡個一小時,大概需要三個小時的空檔)。要想舒服地躺在牀上睡午覺,我最好趕在下午兩點半之前就回到家裡,簡單盥洗之後入睡才舒服。然而,若為了避開人潮,通常午餐後就已經一點半,回實驗室後處理一下雜務,通常就已經兩點多了。

接下來,就是個人的的生活習性不易調整。即使告訴自己,不要老是惦念著系統有那些地方該加強,不要一直在那邊斟酌各種模型的優缺點;但一旦有多餘的時間,自己就是會忍不住開始把玩起來。結果就是,雖然對系統與程式又多認識了一些,卻錯失了好好睡覺的機會。

最後,有了時間,通常自己還會想做些其他的事情:到書店晃晃、幫小朋友買買文具或讀物、到賣場添購家用品,或是待在家裡整理一下房間、把書籍分類整理一番。

結果,一個月下來,我沒有一天能夠睡到那麼痛快的午覺。於是自己也了解到:即使是時間有彈性,要真能享受悠閒時光,依舊是說來容易做來難。

然而,或許也正是因為如此,昨天早上有機會睡個回籠覺,醒來後的感覺竟也如此舒暢;下午找時間帶小朋友到大安森林公園,遊玩之間也更加感覺幸福。

星期五, 11月 10, 2006

「瞎子摸象」的故事

發覺自己的表達能力不佳之後,有時心裡會浮現一些小時候就聽過的成語。

「瞎子摸象」就是其中的一個。它的故事內容是什麼呢?
從前印度有六個瞎子。有一天,他們坐在路旁休息,正好有人牽著一隻象走過來。他們聽說是隻象,就都站起來,齊聲嚷著請求牽象的人停住,讓他們摸摸這隻象,好知道是什麼樣子。

第一個瞎子摸到象的身子,他說:「喔!象像一堵牆。」第二個瞎子摸到象的牙,他嚷著說:「你錯了!象又圓又尖的,像一支槍。」第三個瞎子摸到象的鼻子,他叫著說:「你們都錯了!象簡直像一條蛇。」第四個瞎子抱住了象腿,他說:「啊!象明明像一棵樹。」第五個瞎子個子高,剛巧摸到象的耳朵,他哼了一聲,說:「你們說的都不對!象的的確確像一把扇子。」第六個瞎子恰好摸到象的尾巴,他笑了一聲,喊著說;「你們這些笨瓜!象其實像是一根繩子。」

象牽走以後,他們仍舊在那兒爭論,每個人都覺得自己的意見是最正確的。

(文轉載自國語日報社出版「三百字故事」)

細細品味這個故事,總會讓我感覺若有所悟(主要是「若有」的感覺,其實離「悟」還差得遠啦)。瞎子們應該都是聰明人(因此能夠根據經驗推理、以具象的實物來類比,也有與他人辯論的能力),但從「明眼人」(這裡就是指看故事的讀者吧?)的角度來觀看,他們都有「以偏蓋全」的毛病啊。

據說,這個故事出自於《大般涅槃經.卷32》。我覺得這個故事另外還有個有趣的地方:「象牽走以後,他們仍舊在那兒爭論」。想出這個故事的人,好像隱隱還想告訴聽者許多人生智慧,只可惜我自己慧根與歷練都不夠,還無法感悟其中的奧妙。

人生中的許多事,都沒有標準答案、都可以有多種思考方向。每個人都可以有自己的觀點和角度,但很可能大家都沒有「對」的答案。

星期一, 11月 06, 2006

重新認識人生

即使可能只是一場夢,仍覺得自己似乎正在重新認識人生。

說「可能是場夢」,是懷疑它或許只是「自我催眠」的結果。不過,就好似某人說的,人生之所以有趣,部分也在於當你認為洞澈它時,一個全新的體驗,卻又讓你捉摸不透。因而,能夠放下從前的自我,學習從更開闊的角度觀看世界,總是有趣的人生成長歷程。

嗯,回想一下,是從什麼時候,開始感受到自己的心境,起了微妙的變化呢?

其實,工作了數年後,每隔一陣子,心裡就會有股強烈的「自我失落感」。一年多前,前任公司急速縮編,加上自己已年近四十,更讓這些問題浮上枱面:為什麼要工作得如此疲憊?我究竟想要什麼、想做些什麼?

於是,離職後,找了個壓力比較小的 post doctor 工作,希望能夠整理出曾經吸引我的一些有趣主題、希望能夠寫些文章。不過,這個工作做了一陣子,就發現有兩件「對自己算有趣、也頗有意義」的事情可做:開發 THDL prototype,以及完成一篇多年前起意的論文。只是,自己分身乏術、處理事情的能力也不怎麼樣,因此只好「頗有遺憾」地暫且擱下寫文章的想法。

轉眼間,這份 post doctor 工作也經歷一年了。這段期間閱讀了一些書籍,深深地感覺到自己這十年(或者,這二十年吧)來,除了追逐網路科技的新技術、除了工作經驗有所增加外,似乎沒有什麼長進。

那麼,這一年我得到了什麼呢?自己其實也說不清楚。大致上,應該都是些老生常談,都是些生活與實踐相關的感觸。或許比較強烈的一些字眼,是「藝術是個動詞」、「愛,是個動詞」、乃至「生活,也是個動詞」。動詞,指的就是必須在生活中去實踐,而不僅是表面的感覺、不僅是存於腦袋中的思考。

或許,人生本就是一場修行的歷程。誠摯地希望自己,能夠放開心胸,「活在當下」地觀看時空的深邃奧妙、感受生命的活潑躍動,進而深深地被感動、並逐漸地將感悟融入日常生活來實踐。

星期四, 11月 02, 2006

一個淡新檔案檢索問題

最近又回頭檢視古文書檢索的一些問題。

檢索的基本單位是「文件」。也就是說,檢索系統會將一份文件視為一個獨立的單位,而我們可將檢索的結果視為「多份文件的列表」。

那麼,到底什麼是「一份文件」呢?在 Web 上,通常是將一個網頁視為一份獨立的文件(來加以做索引處理)。例如,若把一本書的每一頁內容,都獨立地賦予一個 URL 來存取;那麼這本書如果有 100 頁,檢索系統就會將其視為 100 篇獨立的「小文件」。

但是這樣一來,檢索出來的前幾份文件,就有可能通通都是這本書的各個頁面。這時,如果使用者想要的,其實是另外一本書,他就很可能會覺得這樣的檢索結果「重覆太多」,認為檢索的效果不佳。

一種解決的方式,是把「具有某些共同索引特徵」(例如,同個網站的某個相同目錄)的頁面,整合起來視為一個群聚 (cluster)。檢索結果若含有多份屬於一個群聚的文件,系統可以只呈現出其中的一份。(我想,許多使用中的應用系統,都應該處理過類似的問題吧。)

最近處理古文書的檢索,也遇到 granularity 的問題。一篇很長的文章,或者一本厚厚的書,應該被切分到怎樣的程度,才算是「一份文件」?文章太長或太短,似乎都不好 -- 那麼,是不是有怎樣的準則,來判定文件合適的大小與段落?

一個例子是關於「淡新檔案」的檢索。淡新檔案的內容,是清代地方衙門裡的經年累積所成的公文卷宗,總共有1143「案」,19281「件」。因此,至少在理論上,合適的最小文件單位應該是「件」,而由多件來組成一個「案」。

問題是,歷史學者檢視淡新檔案的內容,需要看的通常不是「件」,而是一整個「案」-- 因為這樣子才有機會完整地了解分析事件的來龍去脈。想想看,當我們檢索到某本書的某一頁內容後,是不是也會想看到這本書的整體結構呢?於是,在檢索上,以「案」來做為文件單位,會不會反而比較合適呢?

不過,在基礎的資料的建構上,我覺得以「件」為單位應該是好事。或許,日後會有人嘗試運用自動的方法,尋找「件」與「件」之間的關連。例如說,以現在的「案」與「件」之間的階層關係作為標準答案,來探討把相關的「件」組合成「案」的演算法,那或許也會是一項有趣的研究呢。

星期一, 10月 30, 2006

皺眉頭妹妹

昨晚小小傢伙喝了幾口奶,就停下來不吃了。


她看著媽媽,嘴裡發出伊伊呀呀的聲音,眉頭卻皺著,好似想吐露內心的不滿(就像她姊姊常說的:「都沒有人陪我玩」;小小傢伙可能是想說:「都沒有人陪我說話」吧?)。

我想起多年前,項藍(項老師的女兒)曾稱呼我「皺眉頭叔叔」,意思大概是說,看見我的多半場合,我都皺著眉頭,看起來一副愁眉苦臉的樣子吧。現在小小傢伙會皺眉,我有時笑著稱呼她「皺眉頭妹妹」。

小小傢伙似乎天生就會皺眉 -- 她姊姊可從來不會這樣子呢。不知道「皺眉」是不是真的會遺傳;而我會被稱呼為「皺眉頭叔叔」,會不會也是因為基因遺傳的緣故啊!

星期四, 10月 26, 2006

清晨的甜蜜負擔

清晨六點,發現小傢伙緊緊抓著我的手臂。

怎麼了呢?「爸爸不要去上班,我要爸爸在家陪我。」

「不行,跟爸爸說 bye bye。」一旁的媽媽說。小傢伙不依,很快地就流出了眼淚。

坦白說,很難招架女兒的這種柔情攻勢,很想多抱抱她,答應她的請求。但雖然今天自己是可以選擇陪她一個早上,卻有些擔心她會逐漸養成「想要,不然就哭」的習慣,所以我沒有答應(其實,我心裡是有些動心,自己也想再多睡一陣子呢)。

在媽媽扮演黑臉的狀況下,最後小傢伙只得噙著眼淚說,「爸爸你要打電話給我,你要想我喔~」

再過數年,小傢伙漸漸長大後,應該就不會這麼黏人了罷。然而,說不定我那時候,反而會懷念這種甜蜜的負擔呢。假使能夠,我真的希望能好好地珍惜保存這份令人心動的美好回憶。

星期一, 10月 23, 2006

三談資料模型的架構圖

最近發現先前的「資料模型架構圖」,在釐清觀念的溝通上,確實頗有幫助。

或許先前許多溝通上的困難,扣除掉(其實是最重要的)情感因素後,大致可說是:每個人關心的子問題與重點各有不同,理解的深度與焦距也不一樣,但卻使用類似的詞彙或語言。大家都使用自己所認知的詞彙,卻沒有注意到討論很可能是「雞同鴨講」,以致結果類似於「一個中國、各自表述」。

討論後,隱隱覺得先前的架構圖中,好像還漏了些什麼,使用的詞彙也不怎麼好(哎,對目前使用的詞彙,其實也仍然不滿意啦)。修正了一下,新的架構圖長得像這樣:


有了資料模型的架構圖,對於每個人的提問與質疑,可以藉著定位(將問題大致歸屬於某個區塊)來釐清重點。例如,當討論的重心是在「抽象模型」時,其實我們不必太在意資料建構或實作時,一定會碰到的成本或效率問題。而當討論的重心是在「資料建構模型」或「實作模型」時,就必須考慮現實面的可行性。

此外,也可以將項老師所關心的「模型、語言、推理機制」,用這張架構圖來說明它們的位置。例如:
  • 「模型」應該可以對應到這裡的「問題抽象模型」,但最後應該可以有簡潔漂亮的數學或邏輯表達方式。

  • 「語言」與「推理機制」,在思考或討論時,都運作在抽象模型上。但是,因為我們希望最後實作出「實際可用」的東西,因此可以將「語言」視為「使用者介面模型」的一種,將「推理機制」視為「實作模型」中必備的功能區塊。

  • 每個模型中,都還可能有不同層次的模型。例如,即使是「抽象模型」,也依然可以區分為「理想中的抽象模型」(例如,假設每個歷史事件的日期都應該是明確的)與「現實環境下的抽象模型」(實際上,取得的時間描述通常有其模糊性)。

註:為了自己參考方便,整理一些相關的先前 posts:
資料模型的溝通再談資料模型官職表:行政組織與任職人員官職表的模型問題來自史料的想像

星期四, 10月 19, 2006

讓自己悠閒幾天

昨天交出論文的初稿後,我打算讓自己悠閒幾天。

今天提早離開實驗室,到街上逛了逛。買了些閒書,也買了些幼教光碟。然後,拎著一個大袋子到咖啡廳喝咖啡、看書聽音樂。最後,則是開車回家,舒服地睡了一覺。

就像幾天前的 post,我發覺自己若能悠閒地在家睡個午覺,醒後就會很有飽足感,就會有點幸福的感覺。

真想讓自己多擁有幾個這樣悠閒的日子!要達到這個目的,應該不會太困難吧?

星期三, 10月 18, 2006

得意忘形

今天有些得意忘形,以致於又流露出積習難改的一些毛病。

雖然今天達成了幾件頗值得高興的事:寫好論文初稿、大致確認項老師的「歷史資訊學初步模型」與自己所想的差不多、也多少讓項老師同意「資料模型的架構圖」有助於溝通與焦點定位;但興奮過度,甚至得意忘形,就值得警惕了。

感謝學弟妹的提醒。

論文難寫

寫論文,對我來說還真是一件困難事。

經過兩個多月的努力與掙扎,終於將論文的初稿完成,在今天拿給項老師審閱。看看自己最後決定的論文標題,與多年前投稿失敗的那一篇,相似度高到只差了幾個用字有了改變(而自己甚至還在斟酌是否先前的用字才更恰當)。那麼,為什麼還會需要這麼長的時間?

表面上的差異,或許是在於多舉了幾個例子,重組了論述的條理,並且修改英文的語句。但重寫論文期間,苦思該如何表達自己的想法與意見,卻也真的讓自己更能釐清想說的重點。

當然啦,自己也還是知道,許多地方論述似乎仍然不是那麼自然有力。此外,在英文語句的表達、以及去除冗餘的說理與造句上,這篇論文也應該還有「很多」的問題。我甚至預計,之後還會至少需要一次「大改」、以及數次的「小改」呢。

而說「論文難寫」,是在於自己雖然已經知道要述說的內容,也很努力地去寫,但平均每天生產的數量,竟然連半頁都不到。只是,每個人認為困難的事,真的都不一樣。我覺得寫論文難,有人覺得生小孩難,也有人覺得養小孩更難。

事後回顧,寫論文之所以如此困難,或許是因為自己年輕時並沒有接受足夠的訓練、沒有足夠好的英文表達能力、同時也並沒能釐清許多觀念之間的條理關係。但不管怎樣,寫完初稿總也算達到一個階段性目標,總也是令人感到高興的一件事。

星期日, 10月 15, 2006

笨蛋,就是溝通的問題!

前兩天項老師找我和學妹討論「歷史資訊學」(hisinformatics) 中的模型、語言、以及推理機制。

學妹跟老師說,她和我對老師所說的「語言」,聽到的重點與理解上都有差異。由於「語言」必須具有足夠的表達能力,她似乎傾向於往 meta-language 的角度思考。然而,我卻覺得,若是把重點擺在 meta-language,那麼做出來的結果,很可能是 too general to be useful,這應該不是老師所想要的。

於是,老師試著把他的想法,說得更清楚些。他一邊解釋、一邊思考,最後很高興地說,「啊,這樣我們就有歷史資訊學了。」學妹對老師的興奮感到不解,但其實項老師這幾年忙著行政工作,很難有時間好好地思考「歷史資訊學」該建構於怎樣的理論模型上。能夠看見理論模型的曙光,我的回答又是「非常同意」,老師當然很高興。

老師說,我從前都沒有說過「非常同意」這樣的話。我事後想了想,我的理解其實和從前幾乎沒有什麼不同。只是,在從前,看到的是不一樣的地方;但現在,重視的卻是意見相同之處。因此,以前會急著強調自己與老師想法不同之處(甚至想表現出,自己想法應該比較好),但現在卻對相同的想法給予掌聲。至於想法不同的地方怎麼辦?以後「自然」會有機會表達啊。

所以,這其實應該就是溝通上的問題。就像前一篇 post 所說的,不管自己的想法有多獨特,在溝通時也不應讓別人覺得他是被強迫接受的。而從這樣的角度觀看,多給他人肯定,其實也是對自己有信心的表現呢。

星期五, 10月 13, 2006

一本談溝通的小書

最近對於薄薄的小書特別感興趣。

不知道是不是為了擴充版面賺稿費,現在的書籍大半都是厚厚的一大本。如果是經典著作,那也就算了;但是我總覺得很多書籍的內容,其實並沒有豐富到需要那麼多頁面來說明與闡釋。

前些時日在書店看到一本講溝通的小書:「五座燈塔教我的事」。全書只有 109 頁,字體字距都不小,中間還有一些不錯的插圖。心想這一陣子自己似乎頗關心溝通問題,看看專業的書籍或許會有幫助吧。

書中嘗試以第一人稱的故事,敘述他從五座燈塔裡思考體悟到的五項溝通關鍵:
  1. 傳遞的訊息要強而有力
  2. 善用譬喻讓人印象深刻
  3. 使用聽者聽得懂得語言
  4. 常注意聽者的各種反應
  5. 以邀請來代替強迫信服
這些要領,乍看下還真都像老生常談呢。這說明了我對於這類條理敘述的方式,感知其實已經麻木了。或許,重點是在於切身去實踐,並從實踐中體悟到溝通的要領或真理吧。

書中有一句話,倒是頗令人回味:生活是與心靈共生,而不是與腦袋共存。似乎在很久的從前,就有某些人曾經提醒過這句話。只可惜,當時的自己似乎太重視道理的論辯,因而忽略生活是有溫暖與情感的。

註: 隔天後,我覺得這本書的主旨,應該是「演講、演說」的五項關鍵,而非「溝通」的五項關鍵(不知道是不是自己的感覺有偏差,還是翻譯的人弄錯了)。只是,閱讀時自己還是一直被譯文帶著走,也分不清「溝通」、「演說」之間,應該是有相當差異的。

星期一, 10月 09, 2006

睡午覺

相信許多人都度過一個愉快的五天假期吧。

從某種角度來說,放不放假對我而言並沒有什麼差異。由於項老師並不會要求我每天都出席,做 post doctor 工作其實跟唸博士班差不了太多。寫論文這回事,其實多半都是自己內心的要求,放不放假影響應該不會太大。

但這兩天我是真有覺得享受,原因是「能夠在家裡,舒舒服服地睡午覺」。

小朋友長大,漸漸懂事了。雖然她自己不想睡午覺,卻也會說,「爸爸睡覺,我在旁邊看書、玩玩具」。我看著她可愛的臉龐,心裡有著幾分感動。

曾幾何時,能夠舒適慵懶地睡午覺、睡到自然醒,感覺竟然也如此幸福美妙。

星期四, 10月 05, 2006

可愛的貓造型圖片

昨天實驗室會議,無意間瀏覽到五年前存下來的一些圖檔。

貓咪造型的電話?看了就覺得很可愛。

貓咪伸懶腰造型的烤麵包機,很有一副慵懶的味道。右邊這個是貓咪造型的郵筒嗎?被小狗一口咬住尾巴,應該很痛吧,眼睛瞪大得像銅鈴。

在疲倦忙碌的日子裡,撥出些時間看看這些可愛逗趣的圖片,有時還真有調劑心情的功效呢。

星期二, 10月 03, 2006

小天使

小傢伙已經四歲,講話也充滿了童趣。

昨天晚餐時,她問說,「爸爸你一百歲就要到天上當小天使了,對不對?」

然後,她又說,「你到天上當小天使,那我就看不到你了,嗚嗚嗚...」

我說,爸爸就算到天上當小天使,她也可以在夢裡跟爸爸見面說話啊。

她想了想,問說,「爸爸,天上的電話號碼是幾號啊?」

又遇編碼問題

原本以為對文字編碼問題已經相當了解,沒想到最近又碰上一個狀況。

一直以為,Unicode 比 Big5 收錄更多的中文字元,因此從 Unicode 轉碼到 Big5,可能有部分字集無法轉換;但從 Big 轉碼到 Unicode,則不應該會碰到轉碼失敗的狀況。

但上週試圖從 Big5 編碼的網頁擷取內容時,PHP 的 iconv() 函式卻回報轉碼失敗的警告訊息。比較轉碼前後的檔案,發現原來是「恒春」的「恒」轉碼失敗了。

啊,怎麼會這樣?這下子怎麼辦呢?

想不出什麼好方法,只好先用 Windows VBScripting 將儲存下來的檔案,從 Big5 編碼轉成 Unicode,然後直接用 PHP 來讀取 Unicode 檔。比較耐人尋思的是,或許是因為資料處理的流程發生改變,即使是如此簡單的修改,也讓自己著實花了好一番工夫才完成。

事後,我試了一下,Java 程式也可以正確地轉換「恒」的文字編碼。那麼,為什麼 PHP 就不行呢?查閱相關文件,PHP 的 iconv() 好像是採用 GNU 的 libiconv 來執行編碼轉換的。下載 libiconv 來試試,它真的沒有辦法成功轉換「恒」這個字!

唉,看來連 GNU 的軟體,在中文處理上的可信賴度都沒有想像來的高呢。真是只能用嘆氣來形容自己的感覺了。

星期六, 9月 30, 2006

回鍋週年雜感

很快地,回鍋到實驗室擔任博士後研究,已經滿一年了。

這一年中,經歷了不少心情的起伏,也漸漸地了解感受,每個人都有每個人精彩的人生要奮鬥。起初,是由於公司未來走向不明,趁著縮編的機會求去;接下來,是思考自己是怎樣特色的一個人,究竟想要做些什麼事;然後,在看了許多書、在想找回自我的途中,因緣際會地漸漸懂得欣賞人生。

此外,第二個寶寶出生後,似乎更可以感受到,自己並不很想將時間都放在工作上。然而,有許多工作,其實是需要投注相當的時間精力,才能夠獲致比較良好的進展,因此經常還是感覺力不從心。

接下來,寫好論文之後,應該就得找尋下一份、「希望是自己喜歡」的工作吧。只是,年紀已經接近四十,很多產業都只想找年輕的小伙子呢。看來,競爭力不夠,是很難在產業界生存的。

這應該算是幸福的一年。真的十分感謝,這一年來太太與家人的支持。

星期四, 9月 28, 2006

再談資料模型

早上突然又對「資料模型」有了些「或許更加清晰」的感覺。

或許是因為昨天的實驗室會議後,我覺得將資料模型做這些分類,真的對溝通有幫助。雖然學弟仍然被老師數說了一頓(因為他在一些沒有想清楚的地方硬拗),但將資料模型分成幾類,因為可以縮小溝通的範疇,在我看來確實有助於「寫投影片內容者」與「看投影片思考者」之間的討論。

於是,對原先的資料模型做了些修改。新的圖長得像這樣:


「數學世界」提供了抽象模型的描述基礎,而「物理世界的問題」則對抽象模型該有哪些特性提供來源。一個好的抽象模型,應該可以解決一群性質類似的問題(稍微差的模型,通用性就比較弱)。

例如,物理世界所關心的問題,用抽象模型代表後,其模型中具有某些特性的元素,其間可能有代數系統的關係(例如,彼此間有 transitivity 的性質),或可能形成一個樹狀的階層結構。

而這些性質與結構如何被實作,在討論抽象層的通用性時,通常不是那麼重要。但對抽象模型有了清楚的認知後,對於「實作模型」的設計、「建構模型」該提供那些不可或缺的材料、以及「應用模型」的限制,都能夠提供具有建設性的觀點。

星期二, 9月 26, 2006

太過抽象

早上在麥當勞遇到 Ankh,聊了些最近的情形。

聊什麼呢?他說,我昨天的 post,講得太抽象啦。看到我那樣的句子,他會直接聯想到波柏(Karl Popper)與孔恩(Thomas Kuhn)關於科學哲學的論辯。然後,他說,我寫這樣的 post,沒有人會回應的 --- 因為沒有人知道該怎樣回應。

我說,我沒有那種偉大的企圖啦。但... 他說的也有相當部分是實情。大概是思考或者溝通上的「壞習慣」,我總是想要追溯一些「比較形而上」的東西。想探究這些起源或背後原因,應該不是件壞事,但壞就壞在自己其實沒有能力去「清楚地說明這些東西是什麼」。如此一來,就只是片面地企盼聽眾能夠「了解、領會」,溝通當然不容易成功了。

不過,後來談論到前些日子的 post「資料模型的溝通」,他倒是相當有興趣去釐清我說的「資料的抽象模型」與「數學模型」、「物件導向模型」之間的差異。我說,我其實也只是有一些直覺或感覺;我或許可以整理出一些自己認為的差異點,但聽眾卻不見得能夠認同我所說的差異。

Ankh 說,這或許是因為「缺乏適當語言」的緣故。討論「數學模型」時,可以使用數學的語言;討論「物件導向模型」時,可以用實作上所通用的語言。但是「資料的抽象模型」呢?大家都好像只有模模糊糊的感覺,卻找不到合適的例子或類比呢。

不得不佩服 Ankh 的博學、觀察、與評論。他就是能夠看到、說出一些我看不到、說不出的東西。或許,這也正是他特有的天賦才能吧。

星期一, 9月 25, 2006

搬弄論文的英文造句

必須承認,自己很不會寫論文;或者說,很不會用論文形式來表達自己的想法。

這兩個月來,項老師已經多次詢問,我論文寫的進度如何。我猜項老師也不想嘮叨地問,他的詢問其實是表達他的關心;但我的進度實在太遲緩,弄得連自己都覺得很不舒服。

從內容來看,論文想陳述的主題與結果,三分之二都是多年前做博士研究時,就已經獲得的。上個月去西雅圖參加研討會,發表的會議論文其實大致也就是這些內容。那麼,到底是什麼問題,讓我一直寫不出完整的論文?

一個原因是,自己不但英文不好,論述的組織與造句能力也都不佳。但更深層的原因,或許是因為自己其實並沒有「真的」弄清楚自己想要表達些什麼。

例如說,經過了幾天的醞釀,我重新組織了一些論述的順序,並想用一句「過去一些合理的假設,今日並不見得合理」來連結兩個段落。起初,我寫出來的英文句子像這樣:

Reasonable assumptions made in the past may not be so reasonable today.

幾天後,想想覺得不對勁,「合理的假設」怎麼會隨時間變得不合理呢?應該是「過去看似合理的假設,今日不見得合理」吧?於是,把句子改成:

Assumptions plausible in the past may not be so reasonable today.

今天早上,想想還是覺得不對勁。這個句子的內容太具有一般性了,套在那兒都說得通;加上這個句子,對於了解論文內容其實並沒有什麼幫助(也就是說,它是一句「廢話」)。於是,又修改了一下:

These assumptions are plausible in simplified cases, but they may not be so reasonable in practice...

翻譯成中文是:「這些假設,在簡化的狀況下看似合理,但實際上卻可能並非如此。」但它真的就是我想說的嗎?連自己都不敢百分百地確定啊。(想到日後重整文章的段落時,很可能還會刪去這些「醞釀苦思許久」的文句,就更覺得悲情。)

對我來說,寫論文真的是件耗費時間精力的事。明明內容與結果都有了,想不到「把它們清楚地說出來、寫出來」竟也是如此困難。有時,甚至會覺得自己像是在搬弄英文造句的小丑呢。

但不管怎樣,總是認為自己應該「盡力去寫好一篇論文」。雖然就目前的狀況來看,終究還是寫不出怎樣的好論文;但能夠感受到寫論文的困難,對於日後欣賞好的論文,並敬佩能夠寫出好論文的人,應該都有相當幫助吧。

星期四, 9月 21, 2006

只看見自己想看的

曾經多次聽到「人只看得見自己想看的」。

這句話本身就很耐人尋味。從理論的角度來看,這句話「當然」是對的。自己不想看見的,雖然可以出現在眼簾;但因為不想看見,人卻可以「有意無意地」忽略它的存在。

但將這句話引入生活,卻經常可以令自己有煥然一新的不同感受。半年前也曾片段地提到,紐約時報的一篇報導裡,兩個人之間的對話:「You see what you want to see」與「You don't see what you don't want to see」。人與人之間溝通的困難,或許有一大部分就是在於,「只看得見自己想看的、看不見自己不想看的」。

最近從書櫃裡找出一本書「名牌得很厲害」。不曉得是否因為自己最近就是想看這類東西,雖然連前三章都還沒看完,我對作者的一些話語,卻頗能產生聯想與共鳴:
  • 如果是新開發的品牌,就必須構思出確切的定位;如果是現有品牌,則必須了解原有的定位,並且抓出未來的走向。

  • 「為新品牌憑空創造一句響亮的廣告詞」,或者「重新塑造既有品牌的形象」,那一件事比較困難?真要爭論的話,給你一千年也辯不完 ...
先有雞還是先有蛋?即使用一千年的時間去爭辯,這個問題可能也依然無解。而若將「品牌」換成「產品」或「模型」,以上的兩句話似乎也都說得通呢。這是不是表示,這類的情事即使有不同的表象,核心深處也依然存有某些類似、重要的共通性呢?

星期一, 9月 18, 2006

資料模型的溝通

必須承認,自己在溝通方面的表現實在很差勁。

早在幾個月前,我就曾談過了一些自己對於「官職表資料模型」的看法(可參考 官職表:行政組織與任職人員官職表的模型問題)。我也曾嘗試與老師、實驗室成員溝通自己的想法,但很可惜地都不怎麼成功。

隨著時間的流逝,慢慢地實驗室終於有人必須面對資料模型的問題。八月底的實驗室會議,學弟被老師罵到臭頭,在我看來也是因為溝通不良的緣故。

溝通本來就不是一件容易的事。但是為什麼連學術殿堂上的專業溝通,都顯得如此吃力呢?我漸漸地認為,一個頗重要的原因,是在於「溝通者所關注的焦點不同,卻使用類似的語彙」。

什麼意思呢?且讓我嘗試用以下的圖來解釋(這裡套用的詞彙,是自己左思右想後,覺得比較合適的。雖然我覺得,應該早就存在類似的圖表來解說 data modeling 的問題,但手頭實在也找不到這樣的資訊,就先誇大地說是自己的發現吧)。


項老師在理論方面(Abstract Model 的部分)非常拿手。在主導 THDL(台灣歷史數位圖書館)計畫多年後,他也明瞭資料建構的困難(人工建置、修訂 metadata 的成本極高)。但麻煩出在,即使有了抽象模型,也建構了適當的基礎資料;但一碰上實作,還是會產生很多系統開發、效能、以及後續維護改進的問題。

學弟挨罵的原因,是因為資料庫儲存地名資訊的每一列,id 都是用 a.b.c.d 這樣的編碼方式,來表示地名間的階層關係。老師認為,將階層關係直接寫在資料庫裡,將會失去資料建構的彈性:如果以後發現在節點 b 與 c 之間,還有一個節點 x,那麼不是整個資料表都需要重新建置嗎?

換句話說,項老師以為,資料表是由 Excel 之類人工建立的表單(contruction model)直接對應產生。因此,「將階層資訊編碼在 id 欄位」,就表示在 Excel 的表單裡,每一列都需要人工建置這樣的階層編碼。

但其實,階層編碼不必然都是由人工所產生的。如果有良好的建構模型,我們可以寫程式(上圖齒輪的部分),在彙整建構模型所提供的資訊時,自動產生這樣的編碼。

此外,實作上用關聯式資料庫來處理階層資訊,有時反而必須在效率上付出代價。因此若階層資訊是靜態的,深度也並不大,直接把階層資訊編碼在欄位裡,或許反而是合宜的處理方式呢。

於是,結果是溝通時大家關心不同的地方,但都用同樣的「模型」一詞(沒有區分各種模型),以致類似「雞同鴨講」了。老師關心資料建構的問題,但學弟只展示系統的運作方式 (application model),以及秀出資料庫的資料表 (implementation model),卻並沒有好好地說明建構的模型(原始資料該用什麼格式儲存有什麼欄位、該如何將這些資訊彙整入資料庫)!

上星期五我花了許多時間,利用上面的圖表,向兩位學弟說明「官職表」與「地名沿革」的資料模型問題。最後,他們表示同意我的想法與觀點。最近對於自己的溝通能力已經沮喪到不行,能夠得到一些正面的回應,還真很令人感到高興呢。

星期五, 9月 15, 2006

Internal Server Error?

怪怪,怎麼都連不上 MPH、貓、與 LYR 的 Blog 網頁?

得到的訊息都是 HTTP 500 (Internal Server Error)。是因為自己太疲倦,連 Computer + Networks 都想欺負,還是 Blogger beta 真的有太多 bugs?

更怪的是,自己的 Blogger site 竟然還可以連線,還可以寫這篇 post...

星期四, 9月 14, 2006

即將跨入另一個階段

小寶寶即將滿月。今天太太就要離開月子中心,而生活也將跨入另一個階段了。

佩服施明德的勇氣與毅力,也佩服 Ankh 仍然有勇氣「想做出讓人感動的東西」。自己呢?除了變得比較樂觀、除了努力照顧小朋友之外,有沒有勇氣探尋其他有價值、有意義的人生目標?

說的還是比做的多,說易行難。現實面是,論文進度依然遲緩。雖然自己也明白,回鍋做 post doctor 已經快滿一年,應該想想下一份工作是什麼;但我最近似乎越來越關心實驗室的進度,與學弟妹們討論問題時,也經常越講越激動。

是怎麼回事呢?

星期二, 9月 12, 2006

在困難中找尋機會

日子過得快,從西雅圖回來也將近一個月了。

第二個寶寶的出生,讓自己的日常生活顯得十分忙碌。也因親身體驗,心裡著實佩服那些能夠自己帶寶寶、照顧好家庭、又能在工作上發揮才能的人。

貓說,選擇當個好爸爸的同時,也就放棄了許多東西;他也多次建議,嘗試雇個保母來帶小朋友。這樣可以讓我擁有更多自由的時間,而工作上也就比較能夠有進展。然而,我總覺得,現在應該還不到需要找保母的時候。

能夠自己帶寶寶是一種幸福。時下許多父母因為工作忙碌而無法親自帶小孩,其實是很可惜的。看著大寶寶在一個月內,不論是講話或者玩耍,都成長了許多,心裡真的有股難言的感動。幸福,或許是在持續地對他人付出關愛後,才能成長、才能獲得的。

今天在轉寄來的信件裡,看到一句黑幼龍講的話:「不成熟的人在機會中找困難,成熟的人在困難中找機會」。過去會覺得這類的話是在搬弄文采,是老生常談;但現在卻對此頗有感觸。能夠放開心胸,用不同的角度來看待問題,就真的能有不一樣的想法與行動。

即使認為自己有所成長、認為自己變得比較樂觀,現實卻不會因不同觀點而改變。家家都依然有本難唸的經,而生活中也依然處處充滿了困難與挑戰。這一個月的工作進度遲緩,應該就是接下來該面對的問題與挑戰。

星期五, 9月 08, 2006

忙碌但幾乎沒有產能

最近或許因為睡眠不太夠,比較容易感到不耐煩。

照顧寶寶,本來就很難空出一段比較長的時間。通常,是在她睡覺後、起床前,才能夠做些自己的事情。而有些時候,會找不到合適的親人來帶,只好自己在家裡陪她玩耍。

工作上,應該也算是遇到些許困難:論文「寫不太出來」。不是想不出內容,內容主體很早就已經知道,甚至寫得差不多了。主要是不知道該如何組織好文章段落,適度地「添加說明、表達想法、引徵論證」,並用英文寫出來。這是不是因為「腹笥甚窘」的緣故呢?

此外,Blogger 的 beta 升級版又弄得很爛,經常搞得自己火氣大。登入時,需要鍵入好幾次密碼,這也就算了。回應別人時會遇到困難(上回已經吐槽一次了,但今早還是遇到一樣的問題)、「應該是成功回應」後訊息竟然還會不見,就更令人感到不舒服了。

我想,貓說得對:整合真的不是一件簡單的事。軟體系統的整合不容易,日常生活的整合也是如此。

星期一, 9月 04, 2006

令人煩躁的 Blogger 改版

最近真的被 Blogger 的「升級版」弄煩了。

不曉得是不是只有我才遇到這樣的怪狀況。現在登入 Blogger,或者要回應別人的文章,手續都非常麻煩(要登入好幾次,有時網頁會被轉來導去,最後還是無法回應);雖然也有嘗試要把舊的 Profile 轉移到新版 (beta),但試了幾次都只收到「轉移失敗」的訊息,煩都煩死了。

也不知道 Google 是怎麼想的。我總是覺得,要有好的產品與服務,除了需要好的開發(軟體)人才,也應該有關心使用者感受的人才。如果因為軟體沒有寫好,無法讓使用者順利轉移到新版上,也應讓使用者能夠繼續使用舊版軟體(服務)才是。前幾天經過冗長的登入手續,我還能回應別人的 posts,但怎麼今天一直失敗呢?

浪費了許多時間後,實在很想講些氣話:只用一個「beta」的訊息,就想將所有問題推給使用者,這樣似乎是太小看使用者、也太沒有大企業風範了。

:登入 Blogger 過程中,可以看到這樣的訊息:
Unfortunately, you cannot post a comment on a non-beta blog or claim a mobile blog using your Google Account. These features are coming soon.
這樣的訊息,是不是就是針對我所遇到的狀況?

星期五, 9月 01, 2006

巧事不巧

我出席實驗室的頻率應該算頗高的了,但似乎經常碰到老朋友想找我,卻找不到的情況。

之前 MPH 回系所辦事,順道來找我,就似乎有過幾次這樣的經驗。今天 LYR 遠從台中來,想找我聚一聚,打手機和我聯絡,卻發現我在照顧寶寶,沒能到實驗室。

我原本是打算請家人代為照顧小傢伙的,但不巧大家都有要事在身,最後只好自己在家帶小朋友。此外,據說素瑜今天也有到實驗室找我。這麼多巧事發生在同一天,還真是不巧呢。

後記:原本我的標題很短:「不巧」。但 Ankh 反應,他多次把「不巧」看成「不朽」了。想想這兩個字型的確太像,還是加上幾個字,改為「巧事不巧」好了。

星期四, 8月 31, 2006

昨天的實驗室會議

感覺起來,在昨天的 Lab Meeting 裡,報告的學弟被項老師罵得很慘。

這位學弟的所做的研究,是處理「明清到近代台灣行政區域沿革」,希望能夠建立模型與系統,來幫助(例如,進行一些簡單的推理)使用者檢索相關文件,並提供閱讀上的參考連結。

他這幾天相當認真,因此應該也期望能夠得到正面的回饋。可惜,老師才看了幾張投影片,問了幾個學弟無法精確回答的問題,就開始發飆了。

我猜老師是希望,學弟先努力地想好資料模型,讓系統不但能夠提供合適的功能,還能減輕日後資料維護的困難。因為手頭擁有的歷史資料,本身可能並不完備(缺乏某些時期的資料)、也可能不一致(資料的訊息產生衝突),因而日後應該需要慢慢補齊與更正。如果缺乏良好的模型,每次處理就可能都需要「重頭來過」,那麼處理起來就很令人沮喪了。

不過,我覺得老師昨天的詰問,似乎失去了準頭。雖然他所強調的重點是正確的,但是學弟所做的,其實也沒有偏離那些原則太遠。

然而,當我嘗試替學弟說明,並提到「模型與實作的差異」時,老師卻說「你們不要用那種憐憫的眼光看著我,好像我什麼都不懂似的...」。

我很確定自己並沒有「用憐憫的眼光看老師」。那老師為什麼會這樣說呢?我猜想,或許是因為老師心底深處,對於理論與實作之間的鴻溝,有著矛盾與不安。老師對於理論很在行,但是實作方面的經驗卻不是很充分。他聽多了「實作上會有 ... 困難」這樣的話,卻又無法分辨提出困難的人是否只是在推託搪塞,最後乾脆一竿子打翻一船人。

於是,情況就是:即使遭遇困難的人努力溝通,但因缺乏實際的經驗,老師怎樣也無法感受困難之處究竟在那兒。溝通本來就不是一件容易事,學生們又很難用精確的話語描述那些是心裡想的、那些是實際上做到的,因而就惹得老師不耐煩了。

那麼,模型與實作之間,真的會有很大的差異嗎?有寶寶的人或許可以說,這就像是育兒書的內容,與實際帶小朋友長大之間,就是會不一樣、甚至「差很多」。

看育兒書,上相關網站看別人如何照顧寶寶、如何善用時間,這就類似於理解「模型、理論」。打理照顧大寶寶、到實驗室寫論文與修改程式、並抽空到月子中心陪太太,這就類似於「實作」。兩者之間的差異?因人因事因時因地而有不同。重點是,只看書了解理論,很容易低估「實際動手做」的困難處,而這或許就是所謂的「知易行難」吧。

星期二, 8月 29, 2006

樂觀

說來也頗奇妙,自己近來在許多地方似乎變得樂觀許多。

有人說,看到杯子裡剩下半杯的水,樂觀的人高興於還剩半杯,但悲觀的人會憂傷於只剩半杯。我從前確實會感傷消逝的部分,並一直惦念著剩下的半杯水;但最近回想起這個問題,卻發現自己似乎已漸漸接受少了半杯水的事實,並且感恩(雖然這聽起來像是宗教用詞)剩下的部分。

同樣的外在客觀條件,或許也會導致類似的外在行為(例如,珍惜這剩下來的半杯水),但中間微妙的不同處,就在於不同的心境。

心境的轉化,似乎無法強求。然而,憑藉著自己的本心,真誠地面對自己,時候到了,似乎就可以看見轉機,似乎就能夠超越過去的自己,達到另一層的高度,用另一種角度來看待這個世界與人生。

就自己來說,是什麼時候開始產生這樣微妙的變化呢?

我也不是很清楚。回想起來,應該是在這一年內閱讀了許多好書,並努力打開心靈的窗口,因而在潛移默化裡,讓自己有了這樣的轉變吧?

當然啦,抱持著懷疑論的角度,或許我這樣的自白,只不過是潛意識被「催眠」了,只不過是「自欺欺人」的一種表現。我的確無法確認自己是否「真的」變得樂觀許多,也無法確認自己是不是身處夢中。然而,我對那半杯水的感覺,卻那麼明顯地和從前有了不同,這真是奇妙啊。

星期一, 8月 28, 2006

從餵食母乳談起

我很喜歡看寶寶含著媽媽的乳頭,滿足地吃奶的模樣。那是種很難說清楚的奇妙感覺。

剛出生的嬰兒,幾乎所有時間都在睡覺。如果醒來了,不是因為尿布濕,就是因為肚子餓了想要喝奶。聽太太說,月子中心裡,似乎也只有她不願讓護士用湯匙或奶瓶餵寶寶,似乎也只有她夜半會起身來餵寶寶吃奶。

我想起數年前,在中興醫院的月子中心,我也只看到太太與另一位媽媽,會在夜半起身抱寶寶到哺乳室。雖說近年來,台灣也開始鼓勵媽媽們哺餵母乳,但或許是因為當今雙薪家庭多、或許是因為親自哺乳很辛苦(爸爸是無法代勞的),使用配方奶粉的媽媽佔了大多數。

寶寶每天大約要吃十次奶,每次大概要吃半個鐘頭。寶寶吃過奶後,太太還得用擠乳器把多餘的奶水擠出來(否則會溢出而弄髒衣服與床具),這樣又需要另外半個小時。扣除吃飯、泡盆的時間後,能夠睡覺休息的時間,當真也不多。

所以,產後的媽媽如果不能適當地宣洩鬱悶的心情,或許就容易有憂鬱傾向。我想,身為爸爸的人,是真的該多了解、體貼媽媽們的辛苦才好。

星期四, 8月 24, 2006

用 PHP 處理中文

用電腦處理中文,經常是件瑣碎又麻煩的事。

先前(例如,談古契書資料處理:之一)曾經提過,光是中文編碼,就有可能讓程式設計者忙昏頭又倍感沮喪。PHP 有一個「也算是令人感到麻煩」的地方,就是它的系統是被假設在 ISO-8859-1 編碼下運作的。

另一方面,現在「比較先進」的系統架構或程式語言,內部的編碼似乎都傾向於使用 Unicode(通常是 UTF-16,至於是大印地安 Big Endian 或者小印地安 Little Endian,則似乎還是涇渭分明,各有擁護者)。或許,有相當大的一部份原因,就是希望能夠減少程式的開發與維護時,處理各種編碼轉換的複雜性吧。

那麼,要用 PHP 來處理中文,該怎麼做呢?我想,程式設計者只能自己處理編碼的問題了。

好在 PHP 有提供轉碼的函式,使用上還算方便。一般來說,採用 UTF-16 或者 UTF-8 來處理字串,應該都是可行的。例如,假設我們的輸入與輸出字串都是以 BIG-5 的方式編碼,但是想要用 regular expression 找出字串中符合樣式的子字串,那該怎麼做呢?以下是一種方法:
<?php
mb_internal_encoding('UTF-16LE');
mb_regex_encoding('UTF-16LE');

function mb_utf16($s) {
return iconv('BIG-5', 'UTF-16LE', $s);
}

function utf16_to_big5($s) {
return iconv('UTF-16LE', 'BIG-5', $s);
}

$s = "雖然感覺上像是藉口,但實際上感覺的東西,很難說清楚。";
mb_ereg_search_init(mb_utf16($s), mb_utf16('感覺|藉口'));
while ($match = mb_ereg_search_regs()) {
print utf16_to_big5($match[0]) . "\n";
}
?>
它可以成功地比對出三個子字串:「感覺」、「藉口」、「感覺」。當然啦,如果要進行字串的取代,PHP 也提供了 mb_ereg_replace() 這樣的函式。

「麻煩囉唆」的地方,就在於必須反覆地呼叫 mb_utf16()utf16_to_big5() 這類函式,這讓程式(至少看起來)一下子變得複雜許多。只是,相較於物件導向的程式語言,經常需要建立一堆物件來處理(正規表達式的字串比對),我還是覺得 PHP 在使用上比較簡單些。

另外,值得一提的是,要在網路上找到使用 mb_ereg_serach_init()mb_ereg_search_regs() 的範例程式,竟然比想像中來得困難許多。因為不知道合適的查詢字串長得什麼樣貌,我只能混用這幾個關鍵字,加上 example、source code 之類的字彙來查詢。然而,用 Google 搜尋的結果,找到的幾乎都是 PHP manual 的內容 --- 而很不幸的是,目前 PHP manual 沒有列出使用的範例。

這或許也是搜尋引擎的限制:當多數網頁都含有「並非使用者想要」的類似內容,而搜尋引擎又認為這些網頁是「相關網頁」時,很容易讓使用者感到挫折。通常,解決的方式是將問題推給使用者,希望使用者能夠自己找到更合適的查詢字串。但問題是:使用者該怎樣做,才能找到合適的查詢字串呢?

星期一, 8月 21, 2006

生活雜感

雖然感覺上像是藉口,但實際上似乎又不是。

第二個寶寶出生了。太太去月子中心,我則儘量在家帶小傢伙。陪伴小孩子的時間過得相當快,轉眼幾天就過去了。清晨醒來才驚覺,這幾天都沒有看 New York Times,都沒有在早餐時間看書,都沒有在心裡掛念著一些想做該做的事。

我是還沒有到「一日不讀書言語無味,三日不讀書面目可憎」的地步,但時間過得如此迅速,心裡的感覺卻始終難以形容。帶點不安,有些徬徨,也感到迷惑。

古人四十而不惑,但自己呢?這一年來,看書比較有強烈感受的,幾乎都是與找尋自我有關。據說,能夠清楚地認識自我,就能夠活在當下,不以物喜,不以己悲。

雖然覺得這一年來,在人生的認識與態度上頗有長進,但還是會覺得「如果十年、二十年前就知道該如何讀書,知道人生該學些什麼、該怎樣去生活」,那有多好。但換個角度來說,光從這樣的感嘆,就可以知道,自己的修養還是差得多了。

帶小孩子的時光,雖然因為平凡而容易感到無趣,但有時卻是最溫暖美好的。小孩子,就是未來的希望。

星期五, 8月 18, 2006

迎接新生命的到來

貓和 Ankh 很機敏,知道我從網路上消失了幾天,是因為第二個寶寶出生了。

說實在的,這兩個星期真的過得很「充實」。先是行程緊湊的西雅圖研討會,接下來是忙於處理太太生產的相關雜事。

寶寶是 15 日凌晨出生的,轉眼三天就已經過去,必須辦理出院,轉到月子中心。雖然許多媽媽到月子中心,是希望能夠好好地休息一下,讓月子中心的護士幫忙照護寶寶,但為了讓寶寶更健康,為了更增添親自哺育的情感,我和太太都支持餵食母乳。

我真的覺得,當媽媽的人很辛苦。生寶寶時必須忍受痛楚;產後得復健,還必須每三個小時就起身餵一次奶。連夜半都得爬起來餵奶,如此怎能得到充分的休息呢?

而自從當上爸爸之後,我似乎更能體會到,天下父母心、「父母都希望小孩健康活潑」的那種微妙感覺。

也曾聽人家說,當上父母之後,人會變得更成熟。我想,在這裡「成熟」應該多少與人生、環境的認知有關。有了寶寶,就會事事替寶寶著想(而不僅只是顧著個人的感受),就會有愛(這裡「愛」是個動詞,表示對小孩做應該做的事情。為了讓小孩有自己豐富的人生,願意犧牲父母的一些個人利益,努力培養教育她)。

偶而有一些些空閒時間,還是會想要寫些感興趣的東西,想要整理 PHP Programming 的一些東西(很難說清楚目的是什麼,就先當成是想出一本書好了)。但照目前情形來看,這幾天恐怕還是僅能先想想,只能先處理一些比較簡單、比較獨立的部分。

哎,說的、想的總是比做的多。要能腳踏實地、亦步亦趨地實踐,還真不是件容易事呢。

星期一, 8月 14, 2006

西雅圖之行:回顧

這是相當充實的一趟短期旅程。

主要的目的,是參加小型的論文發表會議。由於某些因素,我並沒有計畫在西雅圖好好地玩上幾天。但也正是因為行程緊湊又難以妥善安排,讓我自己有機會能夠充分利用在西雅圖的三天時光,嘗試了數種交通工具。從坐機場巴士、搭市區公車、到自己租車,我的破英文在溝通上倒是發生了一些小趣事。

例如,搭機場巴士 (Grey Line Airporter) 到下榻旅館時,我問櫃臺服務的小姐,她卻表示沒有聽說過我住的那家旅館;我說我在網路上看到有轉乘 (Connector) 服務,可以接送到我住的那家旅館 (Quality Inn & Suites);她看了看電腦,就給我一張車票,然後嘰哩咕嚕說了一堆話。我沒聽懂,大約只理解到「從那個門走出去,...,一個大大黃色的東西 (a Big Yellow one)」,就拉著行李離開了。走了一段路,實在看不到什麼 Big Yellow one,只好再回去詢問那位有些年紀的女士。這回我記得詢問要在那條號碼線上等,才聽懂原來是她的意思,是「在 line 14 through 16 等候一台大大的黃色巴士」。

最後一天租車的情況也類似。我從櫃臺的先生那兒,隱約只理解到「右轉直走到 601 ... 搭電梯到六樓,那兒會有其他的服務員 ... 離開時需要這張票」。走出 Hertz,剛好門牌的號碼是六百多號,我以為 601 指的是門牌號碼,要到門牌 601 號處取車。結果門牌號碼 601 是一間辦公大樓,怎麼看都不對勁。再回租車櫃臺詢問,才知道是「右轉後進門可以看到電梯,搭到六樓後,在 601 停車格取車」。

在麥當勞點餐,也遇到類似的「有聽沒有懂」狀況。雖然知道點餐後,服務生都會詢問是否要在店內用餐(for here or to go,有時是 to go or for here),但倉促下往往沒聽懂,以為服務生是聽不懂我想點什麼,所以會重覆一次點餐的內容。後來學乖了,點了餐後自己加上「to go」或「for here」,才減少了應對上雞同鴨講的尷尬。

三天的行程裡,花在交通上的時間很多。其中,光是花在步行上的時間,加起來應該就有十幾個小時。西雅圖的氣溫相當涼爽,很適合走路。華盛頓大學的校園相當漂亮,走走逛逛,感覺也是很好。然而,由於在行車的路徑上事先沒有做太多功課,開車起來相當累人。西雅圖市區車輛眾多,且幾乎都是單行道;而停車費一小時大概都要美金 $1.50,又找不太到加油站休息。開車逛街一兩個小時,很快地就感到疲倦了。

最後,還是該記錄一下與 workshop 相關的一些感想。雖然自己的 paper 內容與 workshop 多數成員所關心的的主題間,似乎有著一段距離,但我還是取得一些與會成員的意見回饋。有人問說,有沒有考慮投到更相關的其他會議。有人(應該是 Doug Cutting 吧?)覺得論述 convincing,但詢問說,除了理論方面的探討外,是否有打算用實際的資料來做更深入地檢視。此外,Hugo Zaragoza 問了數個問題,也在休息時間的討論裡,說論文很好,內容相當有趣。(這兩位都跟 workshop 論文發表者比較無關;他們都是 workshop 最後 panel discussion 的 panelists。)

星期五, 8月 11, 2006

疲累的一天

今天是 workshop presentation 的日子。

時差不易調整,早上還是四點半就醒過來了。怎樣也睡不著,只好閉著眼睛儘量休息。

吃過早餐後,依照昨天探勘的路線搭公車到華盛頓大學門口,走路穿過校園到 workshop 會場。奇怪的是,怎麼還是沒有看到任何關於 workshop 的標誌?

等了十幾分鐘,心想是不是 workshop 改地方,還是自己弄錯時間了?想用筆記型電腦上網查詢,連外的網頁卻都被鎖住了,需要有 ID 與密碼。這下怎麼辦呢?只好衝進大樓裡,找個「看起來知道怎麼回事」的人問問看了。

好不容易知道會場確實是在這棟大樓的 251 室,走進去詢問是否在這兒報到,才又被告知,報到的位置改在一棟叫做 Mary Gates Hall 的建築裡。匆匆趕去報到,拿到名牌後,服務人員告訴我 Proceedings 已經沒貨;也就是說,我預購的 Proceedings 賣光了。她說,沒有預料到如此,但會退費到信用卡帳戶。哎,怎麼會搞出這麼多烏龍啊?

後來才知道,許多人也遇到類似的問題。於是,workshop 開始的時間被迫順延半個小時(原本預定在早上 8:30 開始)。

雖然英文講來仍不順暢,但有一兩位聽眾似乎頗感興趣。其中一位 Hugo Zaragoza 還看出我投影片中,隱約暗示論文的結果,應該也能應用在 closed document repositories。我在休息時間向他請益,他稱讚我說做得相當好。

這個 workshop 從 8:30AM 開到 5:00PM,參加人數不多,自己也不好開溜。起得早又睡得少,報告完了之後精神鬆懈下來,其實自己已經頗有盹意。只好趁休息時間喝些可樂來提神,讓自己能夠從頭聽到尾。

結束一天的會議後,搭公車到市區,徒步走回旅館,並順道買份麥香雞堡來當作晚餐。市區的麥當勞賣得特別貴,但這時因為太過疲累,也顧不了這麼多。回旅館後,趁著還有些氣力,胡亂地寫下一些今天的遭遇與感想。

這真是累壞人的一天啊。

星期三, 8月 09, 2006

初至西雅圖

西雅圖的天空,層層地疊起多片雲層,看起來頗有美感。

到旅館把行李卸下後,看看時間還早(下午五點左右,西雅圖到九點才天黑)。背上背包,徒步到旅館四處逛逛,看看一下旅館四周的景色,也了解一下它們在地圖上的位置所在。

雖然從網路上,已經知道旅館距離有名的西雅圖針塔 (Space Needle) 相當近;但隨便走過兩個 blocks,針塔就在眼前,還是讓自己小小地吃了一驚。

不過,可能是因為先前聽說西雅圖很漂亮,以致於心裡產生過高的期望,當我看到街道不算是太乾淨時,心裡其實是有些失落感的。

我想探勘一下公車的路線,因為明天自己必須試著搭公車去 workshop 會場。循著地圖往商業區走去,比起台北來,路上的行人數量不算多,但汽車的密度卻差不多。我沒有把握明天就學會搭乘這裡的公車,心想,如果到時候迷路了,就坐計程車吧。

沒能像阿尼那般自在瀟灑。除了想到上台用英文報告會緊張,連交通行程自己都還是走一步算一步。雖然有從網路上取得一些資訊,但真槍實彈地搭公車轉乘,還是會擔心自己錯過站。

不過,旅遊的一部份趣味,正是在於小小地探險。因此,用半生不熟的英語問路,有時也會變成旅遊的有趣回憶。這也是為什麼我會試著從機場搭 Airporter Shuttle 到旅館 --- 除了省些錢外,還可以讓自己詢問櫃臺小姐與司機,該如何乘坐到下榻的旅館。(我其實也不是一開始就自願要這樣問路的。主要的原因,是自己並沒有在網路上租到便宜的汽車,而在西雅圖機場租車,價格卻是市區的兩倍左右。)

雖然許多行李是由太太幫忙打點,但這可是自己第一次,一個人出國「半自助旅遊」呢。因此,即使是「問路」這種小問題,都還是會讓我的神經緊繃。雖然事後看起來還頗有意思,但身在其中,就很容易感到緊張煩躁了。

星期二, 8月 08, 2006

參加 Workshop 前夕

我覺得,最近總感覺不到太多悠閒,即將出國參加 workshop 應該也是一大原因。

從辦理美國簽證、機票、旅館住宿、甚至該如何到旅館、如何到 workshop 場地(是否要租車),都頗為繁瑣。努力地想省些錢,最後卻經常發現很難省到,令自己平添一股怨氣。

此外,希望能夠做好投影片,希望自己上台報告時不要太出醜。光是想儘量給一份可聽可看的 presentation,就會讓自己悠閒感盡失。

其實,英文非自己母語,聽說能力不好,也不能說太丟臉(只能說自己過去努力不足)。能夠將論文投上 workshop,多少已經表示論文有些內容,因此也不必覺得內容羞澀無法見人。此外,workshop 應該也練習學術溝通的好機會,既然是練習,偶而出醜也是難免,真的也不需看得太重。

然而,說的還是比做的容易。閒暇時,三不五時就會想起投影片某個地方的英文用字不妥,因而持續對投影片做小修改。基本上,由於了解自己英文報告的能力不佳,「策略上」我都嘗試把要講的東西儘量寫在投影片上,讓聽眾可以「用看的就懂」,而不需要聽我的口頭報告。

會對參加 workshop 感到緊張煩躁,多少表示自己還是頗重視這樣的場合吧。出國報告,可是得花費一筆不小的費用哪。只可惜,因為寶寶就要出生了,我這回的行程排得像是在「出差」,時間相當緊湊,沒有任何觀光旅遊的餘裕。

也或許,時間的過去,就是任務的完成。就是把這樣的機會,當作一場不錯的學習經驗罷。

星期一, 8月 07, 2006

十年前的軟體系統

週末幫別人安裝、設定一台需要執行 ET + dBASE 的電腦。

MS-DOS 6.22?倚天?別開玩笑了,這個年頭,大家都已經習慣用 Windows XP + M$ Office 2000+ 了,誰還在用這些老掉牙的軟體啊?

但還是有這樣的需求。被取代的,是一台已經有十年以上機齡的電腦。最近因為這台機器老舊,開始出現一些狀況,因而需要重新安裝一台新的電腦。舊機器上的許多軟體,因為經常在使用、且已經習慣使用,因而最好能在新機器上執行。

為了把系統移植到新的機器上,我著實花了不少時間。理論上,新的電腦應該可以吃舊的硬碟格式,新版的 Windows 也可以用相容模式執行舊版的軟體,但...實際上就是會出些狀況。

例如,在新電腦上若同時置入新的(至少數十 GB 容量)硬碟與舊的(只有 1GB 容量)硬碟,必須將它們放在不同的 IDE channel 上,否則就會聽到「嗶、嗶」的警示聲。但即使放在不同的 IDE channel 上,用新硬碟執行 Windows 系統,把舊電腦的內容拷貝出來時,系統會相當不穩定,很容易當機(系統自動重新啟動)。

然後,為了讓新的硬碟是可以開機的,我必須在硬碟上安裝 MS DOS 6.22 的開機系統,這樣又花了不少力氣。再來,就是測試倚天系統與 dBASE,反覆弄了好幾趟才成功。

印象深刻的,是舊的硬碟上,含有 ET + dBASE + Windows 3.1 + M$ Office 5.x 的軟體,壓縮起來後,總共竟然只需要 100+ MB 的容量。相較起現在動不動就是幾百 MB 的軟體,真令人不禁懷疑,那些儲存空間究竟是被什麼怪物吃掉了。

範本檔案損壞了?

學弟說,我的網誌在 IE 上觀看,左邊的 sidebar 會看不見。

我試了一下,果真是如此。奇怪啊,雖然我已經習慣使用 Firefox,但先前似乎也曾用 IE 來檢視過。怎麼會(什麼時候開始)出現這種狀況呢?

調出 Blogger 的範本,意外地發現,範本檔好像有些毀損。奇怪啊,自己應該有一陣子都沒有動過範本檔了,難道是 Blogger 想幫我修改些什麼,卻意外地把範本檔案弄壞了?

好吧,只好從新建構一個範本。可是,我早已忘卻,如何在左方的 sidebar 加上「最近 post 的一些網誌」了(之前好像是 MPH 告訴我怎麼弄的,但這類的設定最好能夠找到參考資料,否則每次都會忘卻)...

星期四, 8月 03, 2006

PHP 的字串處理

喜歡 PHP 的另一個原因,是因為它提供許多方便的字串處理函式。

文件上說,PHP 這個程式語言,是採擷 Perl、C、以及 Java 的一些優點所形成。Perl 的優點是什麼呢?我覺得,主要就是提供一套強大的處理函式,可以利用正規語言表達式 (Regular Expression,或可直接譯為「正規表達式」) 來對字串進行比對與取代。

雜事做多了,就自然能夠感受 Perl 或 PHP 那些處理字串函式的優點。例如,很常見的一項雜務,就是一個「a,b,c,d,e」這樣的字串,用逗點切分,放在陣列中供後續處理;或者反過來,將一個陣列的內容一個個地傾印出來,但是在兩項內容間,加入一個分號。PHP 的 explode() 與 implode(),就可以做這樣的事情:

$s = "a,b,c,d,e";
$array = explode(",", $s);
$t = implode(";", $array);

就像是 Perl,PHP 也提供了更強大方便的 regular expression 的字串處理函式(事實上,PHP 支援了 Perl-Compatible 與 POSIX-Extended 兩種正規表達式的處理標準)。例如,由於 HTML tag 的屬性值,可以用雙引號、單引號、或甚至「沒有引號」來標示,我們可能會想將一篇文件的 href 統一用雙引號來框住。也就是說,會想將

<a href='www.yahoo.com'>Yahoo</a>
<a HREF=www.google.com>Google</a>

這樣的字串們取代為

<a href="www.yahoo.com">Yahoo</a>
<a href="www.google.com">Google</a>

在 PHP 裡,要達到這樣的功能是頗容易的:

$pattern = "/<a href=(['\"]?)(.+?)\\1>/i";
$replaced_by = "<a href=\"$2\">";
$t = preg_replace($pattern, $replaced_by, $s);

只要大家嘗試用一般的字串處理函式來實作,吃過苦頭(因為麻煩又無趣)後,應該就會同意,正規表達式在字串處理上的的威力與優點。

雖然,現今廣用的程式語言幾乎都有提供 regex.Matcher 與 regex.Pattern 之類的物件,可以依循正規表達式處理字串;但我覺得,繼承了 Perl 的優點後,PHP 在正規表達式的使用上,還是比那些物件導向語言,來得自然、方便太多了。

星期一, 7月 31, 2006

從「先苦後樂」談起

仔細想想世間事,還真讓人不明白。

本來對「先苦後樂」這句話並沒有想太多。但今天早上在丹堤閱讀「學習,就是一種享受」,看到作者把「先苦後樂」視為錯誤的神話,卻突然有些話想說。


「現在努力工作,不久之後就會有獎賞」、「你只要把家庭作業做完,就可以出去玩」。在我們的求學過程以及之後的生涯裡,諸如此類的命令與信仰一直影響著我們。因此,退休之後的那幾年,才是一個人的「黃金時期」...


記不記得,童話故事裡,在草地裡唧唧吟唱整個夏天的蚱蜢最後被餓死;而在塵封穀倉裡辛勤工作的螞蟻卻得到回報?從前的年代裡,似乎將「先苦後樂」視為理所當然。但是,如果年老體衰後才退休、而退休後才是一個人的黃金時期,那樂趣又在那兒呢?

曾經寫下一篇 Stop improving yourself and start living。算算從這篇網誌到現在,已經接近一整年了(好可怕!)。我當初想表達的,是不是就是反對一廂情願的「先苦後樂」?

大姊曾似頗感擔心地說,她的小孩好像都是把作業留到最後再做 --- 這跟我們從前先把作業趕完,然後再玩的作風完全不同。而令我咀嚼再三的,卻是她接下來的一句話:「這樣也好,免得最後累死了,也沒有輕鬆到。」

每個人都有每個人的命性,每個人也都有自己的風格。或許,認識自己,就能夠在「先苦後樂」與「莫待無花空折枝」之間微妙地拿捏,就能夠在生活中知足常樂。但這裡其實有個困難處,那就是自己實在很難認清自己!

星期四, 7月 27, 2006

PHP 的陣列

就 prototyping 而言,我相當喜歡 PHP 的陣列。

上回提到,PHP 的 array 其實是用 Hash table + Double Linked List 實作的。因此,要存取 $array[100],實際上是用 "100" 作為雜湊表 $array 的鍵值 (key),然後傳回表中所儲存的值。

所以,在實際的應用上,使用 PHP 的陣列,效能會比「一般程式語言的陣列」慢上許多(因為需要計算 hash key,有時也必須處理 hash collision 的問題)。

即使有著這麼大的效能缺陷,我還是相當喜歡 PHP 的陣列。為什麼呢?

因為,除了「一般陣列」的處理方式外,我們還可以很簡單地利用 PHP array 來實作出基本的資料結構(像是 linked list、stack、queue、tree 等等),而 PHP 也內建了許多有用的函式,可以讓我們方便地操作陣列的內容。例如,我們可以
  • 用 array_push() 與 array_pop() 來實作出堆疊 (stack) 的行為。

  • 用 array_shift() 與 array_push() 來實作簡單的佇列 (queue)。

  • 用 array_push()、array_pop()、array_shift()、array_unshift()來實作雙向佇列 (dqueue)。傳統的人工智能 (artificial intelligence) ,有許多問題相當著重於「狀態空間搜尋」(state space search);傳統的課本裡,也經常會以一些「玩具問題」 (toy problems) 來介紹這樣的解題概念。之前解傳教士與食人族的程式、解數獨的程式、解 Pentominoes的程式,都是利用狀態空間搜尋的例子。

    狀態空間的搜尋,大致上類似於樹狀結構的巡走 (tree traversal)。利用雙向佇列,可以很容易地實作出廣度優先 (breadth-first) 或深度優先 (depth-first) 搜尋。

  • 用 array_merge()、array_intersect()、array_diff() 來實作集合之間的聯集、交集、以及差集。

  • 用多重陣列實作樹狀結構 (tree)。也就是說,可以直接利用 PHP 的多重陣列來實作像是 parse tree 般的階層結構。

  • 其他還有許多「有時會顯得很方便」的內建函式,像是 sort() 可以對陣列排序,usort() 可以呼叫自己定義的另一個函式來對陣列內容排序,shuffle() 可以打亂陣列內容的順序(不必自己寫一小段程式來做洗牌的動作),array_fill()、array_pad() 與 range() 可以填滿一個陣列... 等等。
有時,我甚至會覺得,PHP array 所提供的便利性,有些接近傳統人工智能常用的語言(像是 LISP 或者 Prolog)呢。

星期一, 7月 24, 2006

從 Pentominoes 程式談起

對於一些年幼時期所玩過的益智遊戲,似乎總有著一股濃濃的情感。

Pentominoes 是一種拼圖益智遊戲,用十二片面積相等的不同拼塊,填滿一個 6x10 的長方形。下圖是一個拼好的例子:


印象中,國小時期曾經玩過這個益智遊戲,並且好像拼出兩百多個不同解。十多年前,在美國讀碩士班時,為了因應無聊的日子,曾用 Power Basic 寫過一個程式來解這個拼圖遊戲。記得當時的主機,還是 Intel 386。66M Hz 的 CPU,跑出所有 2339 組解,需要整整一天的時間。

曾幾何時,電腦硬體的進展飛速;同樣一支程式,在我現在的 1.73G Hz 的 Notebook 上執行,竟然只要 200 秒的時間。(我是有稍微改進了一些冗餘的程式迴圈,但沒有這些改進,依然可以在幾分鐘內跑完所有的解答。)

前些日子,想整理一些曾經感興趣的程式設計問題。很自然地,也想重新檢視一下這個解 Pentominoes 的程式。

溫故也該知新。回頭整理從前的東西,似乎也應檢視一下先進們的成果。用 Google 查了一下 Pentominoes,可以找到許多相關的網頁與程式。其中有一個 Gerard's Polyomino Solution Engine,竟然可以在 18~19 秒內,就跑出所有的解答!

坦白說,我當時是覺得有些氣餒。執行速度,怎麼會差這麼多呢?

前兩個月想開了些(不必要求完美 --- 即使自己的演算法或程式效能比較差,但應該也還是能藉此介紹一些有趣的東西),還是決定用 PHP 重新改寫自己的 Pentominoes 程式,順便改用 bit operations 來改善一些執行效能。很不幸地,執行後發現,竟然需要將近兩個小時的時間,才能跑出所有的解答!這當然也讓自己頗感訝異:雖然早知道 PHP 屬於 interpretive language,但... 似乎也跑得太慢了吧?

後來做了一些簡單的實驗,閱讀相關文件後,漸漸了解其實這是因為 PHP array 並不是像傳統的陣列,被配置在連續的記憶體區塊內。它是使用 hash table + double linked list 來實作的,因此執行 $array[$i],實際上並不該被解譯為「取出 $array 區塊第 $i 個項目的內容」,而是「用 $i 作為 $array 雜湊表的 hash key,然後取得相對應的值」。如此一來,執行的速度當然就會慢上許多。

幾個星期前,突然想用 Java 來實作看看,了解一下自己的程式究竟比 Gerard 的程式慢上多少。大概是自己寫程式的習慣還不錯,從 PHP 改寫為 Java,含除錯竟然只需要幾個小時的時間。初步執行的結果是,需要 57 秒的時間。

哦,只需要不到一分鐘的時間!這下子精神來了,花上一個星期左右的時間來優化實作的方式,最後終於可以在 17~18 秒內,就把 2339 組解答都找出來。

於是,允許自己得意十七秒鐘,就當作是一個星期辛苦地優化程式的犒賞吧 :p

星期四, 7月 20, 2006

一切都是從夢幻開始

「神奇寶貝樂園在台北開幕了!」

小傢伙從電視上看到廣告後,可以將這句台詞朗朗上口,可見神奇寶貝的威力無窮。我答應她,只要她連續十天的表現都是「O」(沒有亂哭鬧;不會拖延不肯去刷牙、吃飯、洗澡),就帶她去玩。

前天她達到了要求(雖然太太覺得我有放水的嫌疑;但我的目的,其實是要小傢伙學會克制自己不好的行為。她應該是有進步不少,因此我認為該實踐約定)。恰好神奇寶貝樂園推出「夜間雙人星光票」,票價便宜許多;再加上晚上氣溫較低,不必在太陽下曬得渾身冒汗,所以我們決定昨晚就帶她去玩。而小傢伙,當然一路上都非常興奮!

樂園的門口,有一隻大大的皮卡丘。主題歌曲重覆地播放,很有歡樂的氣氛。服務人員態度非常好,讓人覺得,台灣若真的要學習日本的服務精神,其實也是做得到的。

或許是因為非假日的晚上,人潮並不多。比起熱門時段,動不動就要排隊一個小時(網路留言如此說),我們可是玩得相當盡興。在三個半小時內,我們玩了三次「皮卡丘之森」、四次「神奇寶貝的刺激狩獵之旅」、三次「神奇寶貝旋轉木馬」、兩次「皮丘兄弟頑皮列車」,也看了「神奇寶貝3D電影」、被「水躍魚的滑水道冒險之旅」濺得右半身幾乎全溼。不要說小傢伙非常高興,連我都覺得票價相當值得。

下圖左方是樂園門口的巨大皮卡丘,右方是小傢伙坐在皮卡丘之森的皮卡丘上。


再來一些照片:下圖左方是星光票的票根,右方是小傢伙在狩獵之旅所獲得的神奇寶貝證書。


就像是樂園裡的某個標語:一切都是從夢幻開始。且讓我們洗滌蒙塵的童心,坐上頑皮列車、戴上 3D 眼鏡,陪小朋友一起去尋找夢幻吧!

星期二, 7月 18, 2006

永遠不夠的時間

大概是年紀到了某個階段,最近經常覺得時間過得太快。

前一陣子在網誌裡發洩了煩躁的狀況後,白天裡心情似乎逐漸恢復平和;但是,晚上卻仍會覺得某些地方不對勁。

我想了想,一個主要的原因,似乎是在於,自己想寫寫一些文章,卻越來越覺得路途遙遠(光陰短暫)而不可及。光是為了準備素材,就花去相當多的時間;而文章本身,卻怎樣也寫不出來。這是否表示,「整理一些心得、寫寫文章、甚至出本書」的目標,對自己來說是太高、太過不切實際了些?

如果確實是「不切實際」的目標,那麼我不該去追求,應該要放棄它。但是,令人困擾的是,我自己內心似乎仍然想去做,似乎仍覺得應該嘗試、似乎仍鼓勵自己勇敢地向前行。只是,為什麼「看透不切實際而放棄」,與「積極努力、一步一腳印地前行」之間的界線,感覺起來是那麼地模糊、那麼地令人困惑呢?

星期四, 7月 13, 2006

「迴紋針換到房子」的故事

CNET 有篇頗有意思的文章:「Blog 傳奇:一根迴紋針換到一棟房子」。

這是真實、卻令人難以相信的故事:在一年內,經由十四次的交易,可以讓人用一根紅色的迴紋針,換到一棟兩層樓房子。

以事後諸葛的角度,大家或許可以說,這是經由網路與大眾行銷等等的推波助瀾,才能達成這項「不可能的任務」。但令我印象深刻的,卻是在 CNET 的採訪裡,主角 MacDonald 說的一些話語。

MacDonald 說,『一開始我也很擔心,因為一說出來,大家都會覺得你瘋了』。這是現實社會對「違反社會常態」crazy idea 的反應。『於是情況類似於,你慢慢靠近游泳池,周遭的人一直喊著:跳下去,跳下去。然後你就鼓起勇氣跳下去...』,這是讓自己在勇氣不足的情況下,卻仍然能夠「走不一樣的路」的一種方式吧?

然後,MacDonald 說,『幾個月前,我有一度很擔心,覺得大概不太可能達成這個目標』、『在交易的過程中,我的確有一陣子很不確定。我不是沮喪,而是覺得有點厭倦了,我覺得自己一直付出,但卻沒什麼收穫』。這似乎是任何「走不一樣的路」的人,都必須承擔的困頓,必須面對與解決的問題?

MacDonald 還有一些話語也頗有意思:
  • 『一開始當我選擇迴紋針做為起點,這就注定了我必須很有創意才行』
  • 『你必須走出戶外,真實去面對你的交易對象』
  • 『從很小的地方開始,把目標放遠,然後就好好地玩吧』
回顧自己「希望能夠整理些什麼」的想法,顯然比這個「一根迴紋針換到一棟房子」實際許多。然而,自己卻仍深陷於能力、毅力、恆心不足的疑懼中。因此,就更佩服 MacDonald 能夠貫徹「不切實際」的想法、能夠持續以恆地達成他的目標了。

星期二, 7月 11, 2006

陪伴小傢伙的下午

今天下午在家裡帶小孩。

覺得帶三歲多的小孩,最需要的是耐性,陪小朋友玩的耐性。小傢伙一直要求我陪她玩,可是,陪她玩玩茶犬、神奇寶貝、堆堆積木、揉揉黏土後,自己很快地就覺得無聊、甚至疲倦了。

到床上小盹了半小時,醒來時竟已滿目瘡痍 -- 地上、床上堆滿了各式的玩具。(據教育部國語辭典,「滿目瘡痍」的意思是「映入眼中的都是殘破不堪的悲涼景象」,用在這裡作為誇大的比喻,應該還算合適吧?)

於是,相當佩服傳統的家庭主婦。帶小孩之外,她們竟然還能做那麼多家事,還能將家裡整理得乾乾淨淨。

在射雕英雄傳裡,郭靖曾提到他七師父常說:「看人挑擔不吃力,自己挑擔壓斷脊」。帶小孩雖不似挑擔,但道理卻也類似。要帶得好,當真不是件容易事呢。

星期六, 7月 08, 2006

煩躁

棄我去者,昨日之日不可留。亂我心者,今日之日多煩憂。

不知怎麼搞地,最近這一兩個星期,總是會覺得有些心煩。或許是天氣炎熱、或許是睡眠不足、或許是一些生活瑣事、也或許是自己「每隔一些時日就會發作的週期病」。算了算時間,距離上回發作,差不多有兩個半月(間隔好像太短了些,真糟糕)。

煩躁的原因,到底是什麼呢?我依然不確定。只是隱隱覺得好似有許多東西積壓在心裡,但卻又無法明確地指認,究竟是那些事物讓自己煩心。

因此,從這個角度來看,自己這一年來在心性與成熟度上的些許進步,其實是相當微不足道的。連自己的煩惱究竟是什麼,都不知道,怎能算有多少進步呢?

不過,自己倒是學會時時提醒自己,就算煩躁「發作」,也不該讓它擴大、不該讓它蔓延到家中的其他成員。畢竟,要克服自己內心的無明與煩憂,光靠嘴巴說是不夠的。

星期三, 7月 05, 2006

冬山河親水之旅

酷熱的盛暑。早上走過林蔭道,卻時時可以聽見悅耳的蟬聲。

經歷上回墾丁之遊後,小傢伙說她很喜歡在淺水池玩耍。我答應她,會再帶她去玩水。

而國道五號開通後,台北到宜蘭只需要不到一個小時的車程。因此,到羅東冬山河的親水公園玩玩水,來個半日或一日遊,應該是可行的。

所以,我和太太商量,應該趁著非假日的時段,帶著寶寶來趟戲水之旅。順道也走走國內最長的雪山隧道,感受一下隧道工程的艱辛與偉大。

小傢伙玩得很愉快。而自己在一旁看著、陪著她玩,心裡也是無比舒暢。好棒的感覺啊。

後記:報載雪山隧道在安全顧慮上,其實還有諸多問題。雖然自己算是提前享用到隧道工程縮短車程的便利,但我還是認為,行車人員的安全性應該比「趁早通車」來得重要。換句話說,大官們不應該為了「表面上的政績」,在尚未取得足夠安全性保證前,就倉促宣布通車。現在的政治人物,思考作為實在都令人看不下去。

星期二, 7月 04, 2006

「東山再起」

「東山再起」與「捲土重來」是同義詞嗎?

感覺起來,好像是吧。至少,我分不出它們在成語的使用上有著什麼樣的不同。然而,今早經由「公孫策說唐詩故事」的一篇解說,我才知道、才注意到它們在使用上,是有不同含意的。

「捲土重來」典故出自杜牧《題烏江亭》中,「江東子弟多才俊,捲土重來未可知」。詩人認為項羽自刎烏江,雖然悲壯(英雄氣短),但是若項羽 EQ 高些,當年能忍一時之氣,回到江東重整旗鼓,楚漢相爭鹿死誰手,還未可知。

「東山再起」指的是東晉時期,謝安接到朝廷徵召出來做官,卻始終不忘歸隱東山,因而當了一個多月的官之後,就掛印辭職了;之後,應當權的大將軍桓溫力邀,再度出來做官。這樣的故事歷程,被時人稱之為「東山再起」。

因此,公孫策特別說明,一個人失敗以後積極求勝,叫做「捲土重來」。不忮不求而由在位者力邀復出,才叫做「東山再起」。

喔,成語典故的使用,就是有著如許微妙的不同!

星期一, 7月 03, 2006

「注意力經濟」讀後感

又是一本「金玉其外,無趣其中」的企管論述書籍?

三年前在書店看到這本「注意力經濟」,就被這本書的一些外在特質所吸引。書本紙張的質感、印刷排版的舒適度、封面背頁的名人推薦、以及看起來頗有趣的書名(看到書名,很容易聯想到「注意力失焦」等因應資訊過載所產生的困擾),讓我當時毫不猶豫地將這本書買了下來。

「注意力經濟」這本書的基本觀察,其實是相當有趣的。由於資料、資訊不斷增加,且增加的速度遠超過人類基因(經由自然演化)所能適應,因此注意力就逐漸成為稀有財,而「資訊時代」也將逐漸過渡到「注意力時代」。

我同意作者們的這些觀察與推論。可是,類同於前些時日閱讀後,覺得表面上有趣,實質上深度不足的幾本書:資訊超載新消費者心理學A+的秘訣,這本「注意力經濟」的有趣內容,幾乎也只出現在第一章。閱讀到後來,越來越感覺作者們的論述似乎與「注意力經濟」沒有太大的關連。

簡單地說,有了「資訊超過人類所能負擔、人的注意力有其限制」這樣的觀察後,作者們將重點轉入「注意力管理」的問題。但既然人類天生無法處理資訊超載的問題,要「管理注意力」真是談何容易?於是,前兩個章節後,剩下來的長篇大論,建議就越來越顯得力不從心,論述也就越來越顯得牽強了。

其實,換一個角度來看,或許我不應該對這些書籍有如許多的批評。它們或許只是彰顯出,要寫一本立論有趣,內容又充實的書,是多麼困難的一件事。也或許,作者們本來就不期待它是一本怎樣的好書,而只是想藉著出版這樣的一本書,獲取社會上的注意力(名氣)與實質的回饋(金錢)呢。

星期四, 6月 29, 2006

公孫策說唐詩故事

小時候,我應該也是很喜歡聽故事的。

只是,隨著年歲漸長,越來越少看到精彩的故事,也漸漸地沒有了夢想。

然而,中國的歷史故事,其實是相當精采的。只是,在自己的求學時期,似乎很少碰到會講故事、會解說故事的老師。對於一般陳述歷史的書籍,自己通常看過了也沒有什麼特別的感受、看過了也摸索不到故事的精華。

前些時日,在書店看到一本「公孫策說唐詩故事」,隨手翻了幾頁,卻也因而喚起內心深處的渴望。雖然看過了之後,對許多書中介紹的唐詩還是「有看沒有懂」(這本書並沒有解說唐詩 --- 連翻成白話文都沒有!),但閱讀公孫策介紹說明的歷史故事(以及偶而加入的提示或評論)後,自己卻似乎對於人生的起落、戰爭或政治鬥爭的黑暗,隱隱有了更深一層體會。

對我來說,這是一本值得閱讀的書。它讓我再次回味許多「似曾相識」的歷史故事、再次旁觀古時名人將相的精彩人生(雖然許多故事的主角都是以悲慘的結局收場),也似乎讓自己對時局、環境、乃至生活際遇,感受到不一樣的厚度。

星期一, 6月 26, 2006

數獨 (Su DoKu) 的程式解

據說,靈長類的動物,都喜歡玩遊戲。

或許是出於天性,自己一直對於益智遊戲頗感興趣。而設計程式,不也是為了解決某個問題嗎?因此,從某種角度觀看,也可以將「不算複雜的程式設計」,當作一種益智遊戲。如此一來,程式設計與實作,就相當於發展出「如何找出遊戲答案」的方法了。

或許是由於媒體的炒作與推波助瀾,數獨 (Su DoKu) 在這幾個月裡,似乎吸引了不少閒暇排遣的大眾目光。上網路書店博客來查了一下,光是書名包含「數獨」的資料,就有 45 筆呢。

數獨的遊戲規則很簡單,就是在一個 9x9 的方陣中,給定一些 1~9 的數字;然後遊戲玩家必須在其他的空格裡填入 1~9 的數字,讓方陣的每一行、每一列、以及(將方陣切分為 9 個) 3x3 的小方陣裡,都不重覆地出現 1 到 9 的數字。

例如,下圖左方就是一個數獨問題的盤面,而右方則是這個問題的(唯一)解答。


解解數獨,就像是以往令人懷念的填字遊戲,可以在閒暇時鍛鍊自己的腦力。不過,對關心程式設計的人來說,怎樣寫出一個「能夠自動解數獨」的程式,或許才是有趣點。

這個問題並不難,網路上也已經有豐富的相關資源。用 Google 搜尋 Su Doku,很快就可以找到許多數獨相關的網站,有的提供線上遊戲,有的則連程式的原始碼都附上了。

但說實在地,在看過答案(程式原始碼)之前,自己思考、設計與實作這樣的程式,還是有趣得多(雖然,花時間做這樣的思考與實作,沒能得到什麼實質上的回饋)。而我不是也想整理些有趣的小程式嗎?數獨或許是一個不錯的主題吧。

因此,花了些時間,自己用 PHP 開發了一份解數獨的程式。貫穿程式的演算法,是 number-of-choices(可能的選擇數目;或者說是可能性)的想法,以及 backtracking(回溯)的機制。 Number-of-choices 的意思,是找出每個空格裡,有多少種可能的數字;而 backtracking 則是當程式發覺某條路走不下去時,回溯到先前的狀態,換另外一條路走。

對於上圖左方的問題,每個空格「可能出現的數字」總數(可能性),就如右圖紅色字體所示。例如,從左邊數來第三格、上邊數來第三格,原本可以填 1~9 的任意數字;但因為同一列 (row)已經出現數字 1, 2, 3, 7, 8,同一行 (column) 已經有數字 2, 3, 4, 5, 6,且同一個 3x3 子方陣已經填有 2, 3, 5, 7,因此這個格子裡,不可能填 1~8 的數字,它的可能性(用紅色數字表示)只剩下 1。

可能性為 1 的方格,表示已經可以決定這個方格內的數字。因此程式可以將這個數字找出來,填寫進去,然後產生一份新的盤面。接下來,重覆運用可能性的觀念,計算這個新盤面裡每個空格的可能性,可以算出更多可能性為 1 的方格數字;如此反覆計算,最後就可以得到解答。

困難些的數獨問題,會讓盤面裡的每個空格,可能性都超過 1。例如,下圖左方的盤面,每個空格的可能填寫的的數字總數,就都大於 1(用紅色字體標示於下圖右方):


遇到這樣的盤面,我的程式會尋找目前具有最小可能性的方格(如果有數個方格有相同的最小可能性,就選擇「填入數字後,能夠降低最多其他方格可能性」的空格來填),猜測一個可能的數字,然後看看填入這個數字後,是不是能夠找到解答。如果最後失敗了(有某個空格可能性小於或等於零,意味著找不到解答),就表示這個數字猜錯了;這時程式會退回猜測前的狀態,重新選一個數字,然後繼續找尋問題的答案。

有時,一個數獨盤面也可能得出多種解答。至於上圖那個「比較困難」的數獨問題,很容易用程式算出唯一解:


雖然想要藉由這類的益智問題,來介紹、討論程式設計的一些相關課題,但還是懷疑自己是否有足夠的能力、毅力、與恆心來完成。既然對自己這麼沒有把握,那麼先利用 Blog 記錄一些目前的想法與結果,或許也是個不錯的作法吧。

後記:原先我把 number-of-choices 寫成 degree-of-freedom(自由度)。雖然「有多少種可能出現的選擇」(number-of-choices) 多少也代表「可自由變化的程度」,但 degree of freedom 是一個廣被接受的 well-defined term,還是不要錯用、亂用比較好。

星期五, 6月 23, 2006

還是想整理些什麼...

這一份 post doctor 工作,轉眼已經從事將近九個月了。

回想當初,本來是想在四十歲左右,嘗試整理一些曾感興趣的程式設計題目、並寫寫相關的技術文章。然而,過沒多久,因為發覺這份工作有兩件值得去做的事情(寫一篇多年前未完成的論文、設計實作 THDL 檢索系統的 prototype),因而就把「想整理些有趣問題」的事情給忽略、耽擱了。

這一陣子,論文已經寫完一篇,prototype 也經設計、實作、並轉交給實驗室學弟妹們。此外,上個星期也度過一個愉快的旅遊假期。因此,似乎是是時候,想想自己接下來,該做些什麼了。

雖然工作上的正經事大致上都告了個段落,但最近自己其實也都沒有閒著。其中一件與實驗室相關的事,是「指導」學弟做研究。MPH 在他的 Blog「標準差」裡,曾提到他以一個局外人的身份,在口試當天發覺一位碩士畢業生對於基本觀念的誤解。他覺得頗不可思議(畢竟,台大資工還是執台灣學術界資訊領域的牛耳),但我卻覺得,類似的研究品質,目前應該是「相當普遍而常見」的。

對實驗室的某位學弟,雖然他的碩士論文已經撰寫了數十頁,而學校的畢業典禮也已經結束,但自己對那些「研究成果」實在看不太過去。因此,這兩個星期,藉由討論作為起點,我建議學弟從不同的角度來看待他的那些研究、「指導」他調整研究焦點與聚焦方式。

但一有空閒,整理「小而有趣的程式設計專題」的念頭,就還是會不時浮現出來。也因此,自己最近也花了不少時間,寫寫一些小程式。這些程式雖然體積不大,但撰寫除錯還是很耗時間與精神。有時,我真不禁懷疑,自己在寫程式上的「生產力」,是不是下降了許多呢。

星期一, 6月 19, 2006

收心

遊玩了一週,似乎是該收收心,回到日常生活(工作)了。

其實,把「幸福」和「收心」等等世俗貪戀與用語拿來記錄生活,就較高的理論層次來說,類似於「此地無銀三百兩」,可說是一種恐懼心理的反應。

就如同阿尼所說,「你放棄了一切希望,不再有目標和慾望,也不在口中談論幸福。此時, 世上的辛苦,都不在你心頭,你的心才得到歇息。」真正的幸福、實際的收心,是不需要說、也不需要寫的。

然而,或許世俗的人,就是需要世俗的提醒,才能夠在修習與實踐中,找到自我的覺醒。也就是說,我承認自己並沒有什麼自覺,也沒有什麼實踐力,因而偶而需要「賣弄」、需要「世俗羈絆」、需要經常的自我記錄與反省、更需要身邊親友的支持與鼓勵,才能夠讓自己的心靈,有著那麼些微不足道的提昇。

因此,「收心」也只是告訴自己,雖然上週的度假旅遊令人迷戀;但接下來,是該提醒自己,回頭專注日常工作的事務了。

星期六, 6月 17, 2006

墾丁四日遊

這幾天離開台北,來個四天三夜的墾丁遊。

不過,並沒有照片留下來,因為相機在海洋生物博物館遺失了。我懷疑是被扒走的 --- 坐在長凳上觀看大洋池餵食,坐姿幾乎都沒有改變,但在短短數分鐘內相機就不見了。這讓我花了許多時間才調適好心情,並繼續讓小傢伙在戶外的親水區戲水遊玩。(由於遺失相機,我問寶寶這下該怎麼辦。小傢伙說,再買一台就好啦。看來,她比我還看得開呢。)

因為現在的旅館幾乎都有提供無線上網,出門前曾考慮要不要帶筆記型電腦。最後,我還是決定把電腦留在家裡,因為這樣子可以讓自己與網路世界斷隔數天,因而更有休閒旅遊的感覺。

長途開車是有些累。更糟的是,對於初次到訪的旅客來說,台灣的高速公路號誌,還真是不友善。去程應該在高雄的五甲系統轉接 88 號快速道路,但一不留神就錯過了。此外,回程在台南附近也走錯了一小段路,因為號誌與出口離得太近,等看到號誌時,已經來不及切換車道了。

大致上,我覺得恆春半島的景致相當好,處處洋溢著南國的氣息。墾丁的天氣雖然炎熱,但卻不會覺得黏溼不舒服。此外,我們旅遊的時段屬於「非假日」,交通也相當舒暢。

今早一覺醒來,自己似乎還有著些微醺的奇妙感覺。旅遊,也是一種幸福。

星期一, 6月 12, 2006

幸福,可以是個動詞

幸福,要懂得把握,也值得珍惜。

記得當學生時,就聽老師們說過,當學生是人生最幸福的時期。從前聽不甚懂這些話,雖然同意學生的生活單純,但是單純就代表幸福嗎?

或許,學生們之所以幸福,是在於目標很單純。只要把書讀好(考試得到好成績?),就算是漂亮地完成任務。今早在報紙上,看到「威爾許談致勝」專欄裡,Jack Welch 說,「出人頭地之道,就是要超額付出... 過去老師交你只要回答問題就可以得到 A+,但在企業界要得到 A+ 的評語,你得突破公司期待,讓公司喜出望外;你要回答問題,還要回答老師沒想到的問題。」

說得真是漂亮!或許自己從前一直以為,以自己的想法來「做好事情」就好了,但其實這樣是不夠的。事情真的有被「做好」了嗎?自己是不是因為現實層面的各種牽絆,很容易就妥協、很容易就降低標準了呢?

真實生活的問題,通常複雜而難解。要看出複雜面向背後的一致性,並且了解如何利用這種一致性來取得大眾的認同,或許才更有價值。那麼,自己是真的能夠感受這些問題、分析過這些問題的各種面向、也腳踏實地去解決它們嗎?

這是否就是所謂的「活在當下」呢?過去的以如雲煙,未來卻遙遠而不可知,能夠把握的,就是現在而已。或許問題的癥結點,正在於「說的比做的多」,在於缺乏將思想轉為行動的勇氣,缺乏實踐的恆心毅力。

珍惜幸福的感覺,這幸福是個形容詞。然而,若用動詞的角度來詮釋,幸福其實也是需要去「做」、需要去實踐的。經過實踐,幸福才有生命,才流露世間溫暖、才彰顯人性光輝。

我覺得,幸福可以、也應該是個動詞。

星期五, 6月 09, 2006

當電腦介入生活

不知不覺間,自己的清醒時間,多半被電腦給佔據了。

電腦與軟體應用,真的已經深深地介入我的日常生活。早上帶著 Notebook 出門,工作時緊盯著螢幕看(寫程式、製作文件、上網瀏覽、檢查電子郵件),就連晚上回家的空閒時間,都似乎被電腦給綁住了。

這個情形,我想自己的寶寶最是清楚。她會說,「爸爸,陪我玩嘛,不要看電腦啦~」。雖然驚覺似乎不該如此,但卻仍難以抗拒「寫程式、製作文件、上網瀏覽、檢查電子郵件」的誘惑。

今早 Blogger 出現了一些狀況:


Blogger 服務出現網路壅塞,連線不上,已經是個「頗常碰到」的問題了。現在竟然還會刊登一份「unexpected technical problem」的訊息,強調「our engineer is working hard...」,這是不是也說明了「做好網路服務」的困難性(至少,軟體必須有足夠的容量與能力,來處理如此大量的訊息處理)?

習慣使用網路的服務後,對於軟體的品質的要求,似乎不知不覺提高了。Ankh 前些時日在他的 Blog 裡,聊到對於 Google 出現了一些負面聲音。在回應裡,我也提到最近 Gmail 在郵件編碼的處理上,似乎顯得不夠周全(對使用者的顧慮不足)。

能夠享有這些應用服務,其實是世界上很多人,經過長時間努力的結果。可是,人在適應後,往往會忘記應該對此「感恩惜福」。或許,在現今重視功利的資本主義下,人們因為激烈的社會競爭、因為承受著過度的資訊負載,早已不能(也無力)把這些服務視為「享受」了。只是,如此一來,我們的生活品質,真的有因為前人的努力,而得到良好的提升嗎?

星期三, 6月 07, 2006

古契書的亂碼問題

這一陣子比較空閒,幫實驗室繼續處理一些「古契書檢索應用」的工作。

去年十一月,在「談古契書資料處理:之一」與「談古契書資料處理:之二」的 posts 裡,我曾提到「古契書中文編碼」的一些問題。

當時的問題之一,是「編碼標準」的衝突:將古籍數位化的人員,寫程式的人員、MySQL 資料庫、M$ 資料庫...,經常使用不同的編碼格式(常見的格式是 Big5, Unicode Little Endian, Unicode Big Endian, 與UTF-8),因而造成後續資料處理的困難。

經過一些討論後,實驗決定統一用 UTF-16LE 來儲存「文件數位化後的純文字檔案」。因為我的 THDL Retrieval Prototype 當初所用的文獻集(corpus)只含「明清檔案」的部分,而明清檔案的內容不像古契書那麼「古怪」,所以制訂好儲存的編碼格式後,似乎就解決了一大部分的問題。

這兩天處理古契書,又遇到「亂碼」的問題 --- 某些文件中,大概有超過三分之一的亂碼。為什麼會有亂碼呢?一部份的原因,是有些古契書是用日文書寫的(不要忘了,日本人曾統治台灣許多年);而有些古契書裡用的字,在編碼表上找不到對應(像是台大八魚社,四條魚組成一個字,就好像找不到對應的編碼)。另外,還有一部份的原因,則是因為數位化的人員想保存契書的書寫樣式,因而引用了多個 Microsoft Word 的物件,讓自動擷取文字的工具「誤判」而產生亂碼。

看個例子好了(因為剪貼也會經過轉碼的處理,所以許多原本「更古怪」的亂碼,在此已經被轉成問號了):

立遺囑鬮分書字人陳金山娶業林氏生水兄弟七人長曰杉奇次曰賜਍ഀ
能三曰勳珍四曰允固五曰五港六曰六賽七曰七子□母續世□詣子凜਍ഀ
命營鶯俱以完娶各齊承受繩繩是心之所欣慰也有積餘資創建各਍ഀ
處等業但余罕਍ὔ浵䅥⑾停쵠ὓ챵饚粖ᑑ텎蚏鍏൱上進數被宗਍ഀ
□侵漁難以總理似應分爨爰請房親姻戚共相酌議將兄弟鬮分應਍ഀ
份及已置山場山茶水田物業先抽起਍඙贊業段又抽起長孫田業其餘山場茶਍ഀ
畬水田物業以及家□往來賬項公仝配踏作七房均分至公無私禱神拈鬮਍ഀ
為定各應安分照鬮掌管自今日既約之后務各立志恢宏永敦和睦各自經਍ഀ
營創建各業各管਍靎ⵟ睲ㆁ豙⍔䙬偏⦆⅓酱왡쭢空톐⹖ڛ൒
਍坦͛᥎}⍎歛ћ綾㡘恬몐杰㥱⪋螂푸ї啔䎆涅⹩ڛ鵒땨ᝫ๒蹦൝

亂碼就亂碼,有什麼好大驚小怪?問題出在,亂碼轉來轉去,經過多次處理後,會變得越來越莫名其妙(非常符合「Garbage in, garbage out」的原理),而這樣會增加檢索前置處理的困難(有時,經由 regular expression 處理後會產生「原本不預期」的結果;有時,MySQL 會拒絕寫入資料)。

看來,項老師想做 Histoinformatics 的研究,要走的路還頗長呢!

後記:回家後發現這兩天與「古契書」奮戰的結果是:眼睛疲倦、肩膀痠痛。咦,我不是想好好地休息一下嗎,這麼辛苦做什麼啊?

星期一, 6月 05, 2006

林間的岔路

自己雖然文學的素養不怎麼樣,但有時對詩文還是有著難以言喻的感觸。

前些時日收到書商的廣告信,推介一套中譯的詩集。心想家裡的書都已經堆到地上啦,怎麼還有空間置放數十本的詩集呢?正要把廣告信扔進回收桶,卻一眼瞥見佛羅斯特(Robert Forrester)一首有名的詩:

黃樹林裡有兩條岔路,
很遺憾我不能都涉足。
我孤單地站立良久,
向其中一條極目望去,
看它彎沒在林蔭的深處。
多年後的某時某地,
我回憶此刻將輕聲嘆息。
樹林裡岔開兩條路。而我,
我走了人跡較少的那一條,
因此有了完全不同的人生。

這首詩寫景、寫實,卻又兼喻人生選擇的意境。每個人都有自己不同的人生、每個人也都有自己的路可以選擇。詩人選了人跡較少的路來走,但一般人多半難以抗拒社會的規範、渴望得到他人的認同,因而幾乎都是「跟著前人的腳步走」啊。

不同的林間路,有著不同的林間景致。不同的人生、工作選擇,會有著迥然不同的人生體驗。只是,此時此刻,自己的選擇,又是什麼呢?

星期五, 6月 02, 2006

「資訊超載」讀後感

這幾天重新閱讀一本多年前看過的書:「資訊超載」。

雖然中文的書名叫做「資訊超載」,但這本書的原文名稱是 "Data Smog",或許直譯為「資料煙霾」比較貼近原書的意旨。然而,如果譯者真的這樣直接翻譯,書名就顯得太過古板饒舌,無法吸引具有潛在興趣的閱書人罷。

這真是個飽食 (glut) 的年代啊。從許多年前,自己就深切地覺得,在現今的資訊社會下,龐大的資料與資訊,經常讓人注意力無法集中、讓人思考的品質下降。資訊過載 (information overload),就像是吃多了食物,自己不但感受不到餐點的精美、甚至被龐大的攝食量給噎到了。因此,會被這本書的書名所吸引,甚至在多年後重新溫習一遍,也似乎「有跡可尋」,而顯得理所當然。

坦白地說,我覺得這本書的論述,組織得並不是很好。不過,它的內容還是頗值得自己花些時間,靜靜地思考問題本質,與接下來的應對方式。

就像數個月前看過的「選擇的弔詭」,強調過多的選擇未必是件好事,「資訊超載」這本書也強調過多的資訊造成人們注意力不集中、鍛傷人們的理解力、危害人們思考的品質。資料與資訊的成長速度很快,但人類與生俱來的能力卻無法仿效莫爾定律,每一年半就成長兩倍。

大致上,這本書的論述,是在強調一些資訊超載所造成的問題:

  • 商人們藉著各類的「升級」來販賣資訊焦慮(不升級就無法處理新的檔案格式、不買就不上時代)。

  • 各門領域的專家大量發表結果衝突、讓人無所適從的研究報告(微波爐、基因改造食品是否有礙健康?廢止核四是否真的對台灣有利?)

  • 網際網路雖然有益於小眾媒體的興起,讓關心特殊議題的人們有聚集討論的場所,卻無法凝聚大眾的共識、無法增進大眾溝通的質與量。

  • 要能夠深入學習一項主題,需要的不是一連串的新聞快報,而是對情勢有詳細與周全的分析與評論。(因而,作者也建議媒體 -- 尤其是印刷媒體 -- 不僅要「告知」訊息,也要扮演「資訊守門員」的角色,甚至「教育」讀者。)

  • 所謂的「資訊窮人」,他們最需要的並不是網際網路,而是基礎的教育、以及好的老師。(這一點頗有趣,它似乎隱隱在說,US$100 的電腦其實並無法解決「資訊落後」地區的教育問題...)

或許是因為人類本就是在「未知前景的狀況下努力前行」,這本書最後所提的藥方,仍然離不開傳統的建議:追求簡單的生活、讓自己做自己的主人(不要過度信賴代理程式來過濾資訊)、關掉電視、每天多留一些時間看書...。看起來,要掙脫人類造成的資訊垃圾,需要的還是傳統的智慧,而不是「似乎越來越聰明」的軟體工具啊。

星期二, 5月 30, 2006

這幾個星期的回顧

按理說,這幾個星期應該是頗悠閒的,但事實卻非如此。

首先,幾個星期前,已經把 prototype 交接出去了。此外,論文一分為二之後,前半也整理後投稿了(後半則因自己「沒力」了,遲遲沒有重新整理與改寫)。因而,原本工作的重點,似乎都告個段落,應該是可以讓自己輕鬆一下。

那麼,自己在忙些什麼呢?這一陣子心血來潮,重新溫習了類神經網絡(Neural Networks)的一些基本概念,甚至寫寫一些小程式,實際演練一些教科書上的範例。理解、寫程式、除錯,光是這樣,就讓自己忙碌了好一陣子。

猶記得十年前,在台大唸博士班時,還曾經修過某人開的類神經網絡課程呢。雖然最後期末的成績似乎也還不錯,但除了記得那某人經常提的「MIT 有一個很大的魚箱,他常常站在那兒看魚兒游來游去,吐著大大小小的泡泡」之外,我似乎什麼也沒學到。修過課後,對 Neural Networks 依然一竅不通。

現在想來,我覺得台大許多研究所的課程,都不知道在講授些什麼。或許,研究所的課程,本來就傾向於「尚未完全明瞭的研究」,而不是「已成基本學理的知識」,因此也難期待老師能教導些什麼、難期待學生能夠學到些什麼。但是,修完課後只剩下魚箱的印象(ㄟ,魚箱和類神經網絡有什麼關係呢?還真是深奧啊),若非自己太混(我是覺得自己應該沒有那麼混啦),授課老師也應該負相當責任的。

這應該也是台灣研究所課程、台灣高等教育的某些樣貌吧。台灣的研究所,研究與教學似乎混雜而不明。有時我甚至覺得,或許連授課老師也不知道課程的主軸應該是什麼。然而,比起現今社會道德觀念淪喪,上位者貪瀆舞弊,教授們無心研究或教學,又算得了什麼呢?

星期五, 5月 26, 2006

官職表的模型問題

好的抽象模型,應該能夠貼切地表達出問題本身的特質。

前一陣子,在「官職表:行政組織與任職人員」裡,我提到「實驗室成員希望能在研究上,找到合適的官職表抽象模型」。

或許是因為「想趕快得到成果」,或許是因為「好的抽象模型本來就不是說說那麼容易」,許多人會直接由輸入(手頭有的資料)與輸出(想要達到的結果)來做對應 -- 畢竟,起點(輸入)與終點(輸出)都知道了,系統本來就是其間的黑盒子。在輸入輸出間,直接做對應,不是自然不過的嗎?

於是,若想發展出一個「formal model」,我們或許會從任職人員起迄時間的列表著手,將每一列對應到一個述詞 (predicate) inPosition(p, q, t1, t2) -- 也就是說,將任職人員起迄的資料,換成一個「看起來有點數學味道」的式子。而 inPosition(p, q, t1, t2)這個式子,就表示了「從時間 t1 到 t2,人名 p 擔任 q 這個職位」。

模型當然可以這樣設計。而且,將手頭的資料表示成邏輯式子的「規則」,想到有了這些規則後,可以應用證明論 (Proof Theory) 來進行推理,內心應該還是興奮的。

然而,我總覺得這樣「從手頭資料直接對應」所取得的模型,雖然因為形式化而具有邏輯味道,但稍嫌人造 (artificial) 且「複雜」。

怎麼會複雜?它不是很恰當地表示了「任職人員起迄時間」這樣的資訊嗎?

我的感覺是這樣的。我們之前提過,官職表除了「任職人員起迄時間」外,還有「階層式的組織圖」資訊。如果獨立地將這兩樣資訊個別模型化,然後再設計一些 relations 來串接它們之間的關係,最後得到的模型,就會是一堆邏輯述詞(而且經常頗為複雜)的集合,有相當的可能,會因此喪失了模型自己應該具備的「直觀、簡潔」特性。

此外,更重要的一點,是看待歷史資料的態度。用「邏輯式子」表達每一項歷史資料,基本上相當於將這些歷史資料看作「事實」。然而,我們也知道,歷史資料雖然有相當的信實性,但還是可能有錯誤,可能有不一致 (inconsistent) 的狀況,也可能有資料不完整的問題。

因此,我總覺得,應該回歸到歷史資料的「本質」上來思考,模型才比較實際。那麼,什麼才是「本質」、怎樣的模型才算是「直觀、簡潔」?坦白說,我也不甚明瞭。只隱隱覺得,那是要經由一番淬鍊、經由相當深入的探索與思考,所得到的直觀。(或許,很弔詭地,「眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處」。最後得到的結論,外觀竟也還是「獨立地將個別的資訊模型化,之後再整合」,也說不定呢。)

星期二, 5月 23, 2006

從「罄竹難書」談起

報載陳總統在 520 說了一句「志工偉業『罄竹難書』」,引發一陣議論。

議論的源由,是國家元首似乎錯用了這句成語。錯用也就算了,教育部長卻「硬拗」說,這樣用也不是不可以。

「罄竹難書」到底是什麼意思?字面上看,的確只是講述「用盡所有的紙張都寫不完」;因而陳總統這樣說,應該也沒什麼大礙。問題是,這個成語一般是用來比喻「罪狀之多,難以寫盡」。而就如余光中所言,成語是「不平常的用語,背後有千百年累積的傳統」,即使是國家元首、即使是教育部長,也不應恣意替成語加添新意義。

觀諸陳總統的言論,或許他也只是文化素養不足、語言能力不佳罷了。回想一下,之前他不是曾把「本因坊」錯唸成「本田坊」,而呂副總統也曾把「黑面琵鷺」唸成「黑面琵鷲」嗎?這或許只是彰顯出,許多人的語言表達能力,亟需改進加強。就像自己在前些日子的 post「隨波逐流」裡,也曾提及自己在語言上的運用能力,其實是很差的。

在現今的社會裡,要求政治人物必須有良好的文化素養、合宜的表達能力,似乎是稍嫌嚴苛了些。然而,教育部長的「護主」反應,看起來不但沒有知識份子的良知與骨氣,而且似乎還刻意地指鹿為馬(顛倒是非),就真的令人很感嘆息了。

星期一, 5月 22, 2006

哲學入門九堂課

我覺得,自己內心對於哲學以及哲學問題,應該都是相當感興趣、相當關心的。

自己是一個閱讀速度頗慢,卻也還頗喜歡買書、藏書(把書「藏」起來,這個詞彙還真的頗有趣味)的人。在書店閒逛時,如果發現一些「看似淺顯、自己或許有能力理解」的哲學書籍,經常會心動而把它們買回家。然而,因為消化(看書)的速度慢,這些書多半只能堆積在書櫃或者某處地板上,靜靜地等我那天心血來潮,再與它們邂逅。

哲學入門九堂課」這本書很薄(我猜這也是吸引我的一個主要原因),作者是應該相當有聲望的學術院士。我猜自己大約是三年前就買這本書了,在去年年底也看過一回(不過,應該是時機還不對,雖然花費了許多時間精力去看,卻沒有產生多少迴響)。或許是因為自己對哲學的興趣、或許是緣份、這幾天翻書櫃又看見它,因此趁著吃早餐後的閱讀時間,重新再把它簡略地看過。

雖然作者一開頭就說「這是一本哲學入門書,想要對這門學科有些基本認識的人都適合閱讀」,但是我覺得自己看起來還頗感吃力。除了內容相當「硬」之外,作者舉的例子也不算多,不似一般入門書籍,會嘗試使用許多實例,運用簡單的詞彙、從各種可理解的角度來引導讀者思考。

還好,這回的閱讀似乎產生了一些感覺。原來,這本書所提到的九堂課,就是九個困擾古今哲學家,沒有標準答案的基本問題。有意思的是,古今哲人何其多,畢生窮究心力想要釐清這些概念的學者也不知凡幾,但「這些被視為理所當然的一般觀念」,竟然還是沒有被明瞭、問題竟然還沒有被解決、甚至可能根本沒有所謂的答案!

作者介紹的的九個基本問題是:
  • 我們如何知道事物存在
  • 其他心靈(除了自我心靈具有意識之外,對於世界上那些生命具有意識,能夠真正知道的有多少?)
  • 心靈與身體的關係
  • 字詞的意義
  • 自由意志
  • 對與錯
  • 正義
  • 死亡
  • 生命的意義
或許,我們為了過日子、為了求生存,因而有意無意地強迫自己將這些問題視為理所當然。但是,若沒有對這些問題產生思考與反省,又如何能深刻地面對自己的存在與價值呢?

存在太多的疑問,存在太多的可能。或許,問題尋覓的過程,本身就是答案。或許,假如人類天生追求意義,生命不但可能毫無意義,更可能是一場荒謬(這本書最後的幾句話)。也或許,生命本就無常,必須有足夠的自覺,必須經由修行,不斷地鍛鍊自己的心性,才能夠逐漸地明瞭自身的意義。

星期四, 5月 18, 2006

Life is fun every day

小傢伙有一片 Disney 的 DVD,名稱叫做 "Magic English"。

她喜歡看片子,但更喜歡有人陪她一起看。這個系列的 DVD 裡,都有一個唱歌的單元,會剪接一些 Disney 經典動畫的片段,配上一段歌唱,教小孩子一些基本的英文。

前幾天陪小傢伙看,聽到 "I sleep, I eat, I work, I play. Life is fun every day" 時,心底產生一股很奇妙的感覺。它隱約告訴自己:生活就是這樣,每天重覆地睡、吃、工作、玩樂,但... 每一天都很有趣!

怪怪,每天單調地重覆,怎麼會有趣呢?

這應該牽涉到心境吧。有人說,在日常生活中找樂趣;樂趣是需要培養、需要主動去發掘的。有人說,無欲則剛,只要無所求,就能夠堅強、甚至感受到樂趣。「愛工作、更愛人生」這本書,則似乎是強調「追隨個人的志業」就能夠帶來無上的喜樂。

不知怎地,最近的一些心路歷程,似乎隱隱都與這些心境有著些許契合。或許,這也是選擇性思考的威力:我們只看得見想看的(另一方面,我們「看不見不想看的」,則往往有著奇妙的對照,而值得品味與深思)。最近我因著心性與思考角度的轉換,感受到人生的某些有趣樣貌,因而也對相關的情事產生共鳴。

即使從某種角度來看,生活確實頗為單調,但是若能明瞭這是「正常」的,或許就能轉換心境、知足常樂呢。而自己,雖然不明白近來的歷程是否表示有進步、更成熟,但比起從前,(感覺起來)最近心情似乎真的平和許多。

這樣,應該就已經足夠了吧。

星期一, 5月 15, 2006

Impact

最近項老師提到研究,經常談及「Impact」。

例如,他會說,有某某人寫了上百篇 journal papers,若再加上 conference papers,堆起來會比一個人還要高(嗯...我們常用「著作等身」來形容某人著作很多,但...「等身」是什麼意思呢?是不是「堆起來跟身高一樣」啊?)。只是,問及相關領域的專家,竟然沒有人知道此人是誰,他竟然沒有一點 impact!

就表面來看,項老師應該是對這種現象感到訝異(他似乎並沒有對此表達嘲諷的意圖)。是啊,這應該就「只是一個令人難以理解接受的既有現象」吧。

雖然我並不清楚項老師想要表達些什麼,但我心裡對於「沒有 impact」這句話,倒是有著些許嘀咕。怎麼會沒有 impact 呢?他應該帶有許許多多的學生吧。而這些學生,應該也從他那兒學到一些生產論文的技巧吧。再說,有這麼大量的論文產出,也是台灣目前的學術環境所鼓勵的,應該會成為許多人注目的焦點。怎麼會沒有影響呢?

或許,項老師說的「impact」,指的是相同的學術研究領域,學者彼此間 peer review 之後的影響力。或許想表達的是,他並不同意以大量生產的方式,來評估個人或團隊研究的成果。只是,如果評估的方式是「impact」,那麼「影響大的就必然表示研究好,影響小的就必然表示研究差」嗎?似乎也覺得不怎麼對勁啊。

也或許,這是在現代社會高度競爭下,必須管控生產與成本,所不得不採取的「科學管理」方式。一方面,我們想要求進步;另一方面,我們似乎也不知道進步的本質究竟是什麼。而大家競相套用「科學管理」的外衣,或許也只是想快捷地取得認同(至少不反對),並進而為自己的立場取得優勢吧?

星期三, 5月 10, 2006

視覺思考

今天看(本週聯合報附贈的)紐約時報,對其中一些敘述產生了聯想。

這篇文章叫做 "From Eels to Egos, Freud's Art Displayed",描述佛洛依德從早期研究鰻魚的解剖,到成為心理學家(深刻地影響精神醫學的觀點與研究,並開創了心理分析學派),雖然研究領域變遷,對於畫圖的執著始終不變。

讓我產生感覺的,是報導引述某位學者說:「愛因斯坦曾說,當他思考科學時,是透過視覺思考 (Thought Visually),將思維化為圖像 (Thought in Pictures),而佛洛依德似乎也是如此。」

猶記得數年前,貓曾經拿了一份 IBM 內部測驗一個人思考傾向的一些題目給我把玩。中間好像有些題目,就是問自己,是傾向於圖像式思考,還是抽象式(包含邏輯推論吧)的思考。我一直不清楚,自己究竟比較擅長哪一種。

現在看到這篇文章,忽然覺得,能夠讓自己印象深刻的一些學理,似乎都在心目中隱約地透露著些許圖像的面貌。我想,我應該不是很擅長抽象思考的。然而,自己是不是比較擅長於視覺思考?好像也不是呢(自己也不會畫圖,畫出來的東西通常又醜又呆板)。

最近一陣子,對於自己「表達能力欠佳」、「文筆不好」等,都感到有些遺憾(應該在年輕時多花些時間看書、練習的)。現在,對於自己不會「畫圖」,似乎也覺得有些傷心了。

星期日, 5月 07, 2006

小感冒

莫名其妙一場小感冒,讓自己心煩意亂了一陣。

MPH 說他有好多東西想寫。相對地,我總覺得自己「似乎有好多東西想寫,但一點也寫不出來」。

「似乎有好多東西想寫」,是因為自己覺得最近看待事物的角度,與從前似乎頗有不同,因此頗想抒發其間的差異;「一點也寫不出來」,一方面是因為自己的識見,實在還是很淺薄;另一方面是因為自己的文筆實在不怎麼樣,很容易在表達上造成「差之毫釐、失之千里」的結果。

即使是一場小感冒,也還是令自己喉嚨不舒服、嗜睡、感到疲倦、做什麼事情都不太對勁。因此,身體健康,真的很重要啊。

祝福大家身體健康、生活愉快。

星期四, 5月 04, 2006

一個多年前寫的動態網頁

最近心血來潮,整理出一些「多年前」(1999) 寫的動態網頁。

事隔多年,當我從繁雜的目錄檔案中找出它們時,還是對其中許多 DHTML Pages 感覺到相當的樂趣 --- 雖然當時寫的許多東西都是 "IE Only",只能在 M$ Internet Explorer 上正確地執行。

一個例子是「用 DHTML 做出放大鏡呈現的樣子」。50 行不甚精簡的 VBScript 程式碼,就能夠呈現出一個「放大鏡在某個圖形上移動」的範例,回想起來,仍有些難以言喻的心動。

當然啦,能夠用如此短的程式碼做到,主要是 IE 在自己獨有的 CSS 規格中,加入了一個 "filter"「視覺特效」的屬性與功能。可惜的是,即使在多年後的今天,W3C 的 CSS 2.1 仍然將這些「視覺特效」視為微軟專屬,Firefox 之類的瀏覽器也都不支援這類功能。

在自己粗淺的想法裡,HTML、CSS 與 DHTML 等,都屬於「為了網頁呈現」的語言(工具)。如果在標準規格裡,能夠加上這類視覺處理的功能(即使初期只是建議的選項),應該能夠讓許多人,更容易地利用 Web pages,來展現他們的想像與創意吧。

星期二, 5月 02, 2006

愛工作、更愛人生

最近似乎傾向於挑選與「人生、工作」有關的書籍來看。

這兩天看的,也是一本塵封已久的書:「愛工作、更愛人生」(The Money or Your Life)。才看了前幾章,就已身有感觸。

想起貓在半年前,曾經在 Blog 寫過一篇「要錢還是要命?」。這本書的標題也類似:你要追尋的,是金錢(事業),還是生活(志業)?

作者說得頗老實:無論選擇的是事業還是志業,都會有正反兩面的收穫。選擇事業,可以享有豐厚的經濟所得,但很可能一生都在體驗痛苦(包含感到才華虛擲、機會錯失、沒有人生意義)。選擇志業,物質生活恐怕不會太精彩,但可以享受到豐富、活力充沛、完美的人生。

重點是,你要選擇那一條路?(我從前通常會逃避這樣的問題,幻想可以「兩者得兼」 --- 卻不了解,兩者得兼,是因為選擇志業、又需有幸運女神的眷顧。)

p.s. 看中文翻譯書,經常有種缺憾,那就是譯者並不見得會把重要的詞彙原文附在譯文上。像是「志業」,我就頗想知道原文的單字究竟是什麼。

星期五, 4月 28, 2006

捨近求遠

人很奇怪,通常對已經擁有的東西認為理所當然,然後卻總想要擁有更多。

做研究似乎也經常是如此。一開始認為頗有挑戰性,也投入相當的時間精力,了解後才發現「解答遠在天邊、近在眼前」。更奇怪的是,就算發現這個解答,還經常會因為懷疑「會不會有更好的答案」而不懂得好好珍惜;仍然被外界的繽紛誘惑、仍然總覺得外國的月亮就是會比較圓。

雖然研究的特質,就是不斷發現問題、不斷找尋更好解答的歷程;但是「最終、最佳的完美解答」卻稀少而難得。因而實質上,我們「沒有必要」為了找不著完美解答而遺憾。

有趣的是,也經常出現一種「過頭」的現象。既然理性上知道捨近求遠並不恰當、知道外國的月亮不會比較圓,那麼就不如「聲稱並捍衛本國的月亮比較圓」。於是,很容易過度保護自己、膨脹所有。

於是,我們經常在這兩種極端間拉扯,只因找不著合適的平衡點。我猜想,尋找平衡點,雖然在理論上或可用數學模型來加以簡化處理,但本質上應仍然是種藝術。也或許,「成熟」的一種表現,就是我們知道如何感受、尋求這類平衡點,並適當地加以處理吧?

星期一, 4月 24, 2006

沒有必要

接近中午時,老師找了我去,告訴我一些論文該修改的地方。

延續著先前幾回 posts (畫蛇添足想的比做的快),論文有問題的地方都差不多,但這回因為整體上算是「寫完」、算是比較完整了,因此問題多半出現在「語意含混、詞不達意、或者定義不夠精簡明瞭」之上。

老師說,我在論文裡描述「負面的東西」太多了。重覆(即使用不同的角度)論說「某某既有方法的缺陷」,真的有那麼必要嗎?此外,要陳述自己的想法(新的方法),開頭就要能夠「精準明確地」說出自己等一下要論述些什麼。

最有趣的地方,是老師說,我在結論裡,述說正面的「論文總結、新方法之貢獻」竟然比屬於負面的「future work」少很多。「沒有必要這樣做的。」老師微笑道。

在一剎那間,我竟似乎聽懂了老師的意思。是啊,沒有必要為了表示自己考量周全,而讓論文再次失焦、讓論文顯得畫蛇添足啊。

「隨波逐流」

昨晚和貓閒聊,他半開玩笑地懷疑,我最近或許是放棄理想而「隨波逐流」了。

從未經深思的字感裡,我覺得「隨波逐流」的意思,似乎是「感受到無法改變大環境,因而隨著世事變化而浮沈」。但查了一下網路,這句成語出自《史記:屈原賈生列傳》,字面的解釋是「隨著波浪起伏,跟著流水漂蕩」;但由於「逐」字有追隨的意味,它其實是被拿來比喻「沒有堅定的立場,缺乏判斷是非的能力,只能隨著別人走」。

喔,看來用這個成語來形容自己最近「似乎稍微看開了」的心境變化,並不適切,也太嚴重了些。那麼,該用什麼樣的字眼,來形容這種「認清、接納現實,再保持理性的客觀」、這種頗有「柳暗花明」味道的成熟感覺?

我不知道。(但我相信一定有文學作家,曾用頗為貼切的文字來譬喻或描述。)

其實,近來經常覺得自己對文字語言的運用能力,似乎仍停留在國中、高中的階段。造成的結果,則是對各類用語囫圇吞棗並隨意亂用。詞不達意也就算了,錯把馮京當馬涼,甚而指鹿為馬,誤解就大了。

星期五, 4月 21, 2006

終於將 Prototype 告個段落

今天算是把 THDL Retrieval Prototype (v0.83) 的工作,告個明確的段落了。

之前曾經提過,這次回鍋做 post-doctor,主要的工作有兩件事情:一個檢索系統的雛型、以及一篇評估檢索效果的論文。從某個角度來看,這兩件工作,其實都算是我數年前博士研究的延續(或者說,博士論文「偷懶沒有做完」的部分)。

因此,這幾個月的 Blog Posts 裡,經常可以看到我對這兩項工作的一些報告、感覺、與自省。今年二月初,在「修補程式的日子」裡,我原本以為,程式開發已經頗有模樣,應該可以在三月底告個段落。但緊接著,在二月底左右,在「交接與傳承」這份 post 裡,我就了解到,交接傳承、討論溝通、與工作收尾,都比想像中來得困難。而在三月初的時候,「想的比做的快」這篇 post,更將論文與 prototype 交接的預估時間,一舉延長到五月底。

其實,自己在最近 prototype 的「傳承會議」裡的表現,頗有虎頭蛇尾的味道。我覺得,主要的原因是,高估了學弟妹的能夠投入的時間與熱忱,低估了自己準備投影片等溝通資料所需的時間,也錯估了自己對於交接傳承所需投入的溝通技巧、熱忱、與耐心。

另一方面,學弟們則似乎漸漸進入狀況,能夠看懂、修改 prototype 程式,甚至討論設計實作的一些問題。這多少也表示,這兩個月的傳承會議,並沒有浪費、是有實際成果的。細細想來,或許這樣已經算是最佳的結果,也說不定呢。

兩項 post-doctor 工作中,論文的部分,看起來需要更長的時間才能完成。昨天老師告訴我,他還沒看完 -- 但有對部分定義做了些修改(讓論文內容能夠更簡潔明確)。而老師看過後,我大概還得花上一、兩個星期的時間修改吧。修改後,也應該還需要(最後一次?還是數次?)再修訂與校閱。因此,要在五月底完成論文,恐怕還是「很拼」的。

星期四, 4月 20, 2006

羅東二日遊

做 post-doctor 的好處之一,是「上班」的時間不需太固定,可以抽空出遊。

前天開車到羅東住了一晚。雖說主要的目的,是幫媽媽載一些較大的器物;但我多少也想帶寶寶到羅東的北成運動公園走走,也趁機讓自己「休息」一下。

一路上,三姊陪著寶寶玩,讓我和太太輕鬆許多。或許因為數年前,曾和太太到羅東運動公園騎腳踏車,我對這個公園的感覺極好。現在帶著寶寶,沒有能夠像從前那樣自由自在地騎腳踏車遊玩,但看著小傢伙精力旺盛地餵魚、跑跳、玩飛盤,就感覺很是舒適。之後,二舅請我們到「八味」吃日本料理,味道相當好,每個人都很愉快。

除了回程時,自己顯得比較沒有耐心(對自己缺乏耐心感到不滿意)外,我對這次的出遊,感到相當地滿意。那麼,為什麼我從前幾乎都沒能感受到這些美妙的經驗呢?我想,最主要的原因,或許不是物質上的享受,而是因為自己漸漸懂得去看待、感受、珍惜、參與這些生活上的美好面。

真該感謝家人、感謝社會,提供這樣好的機會與環境呢。我想起陳之藩的「謝天」:得之於人者太多,而出之於己者太少。這些話語,真是深厚而有韻味啊。

星期一, 4月 17, 2006

丹堤咖啡

嚐了一口苦澀的咖啡,舌尖麻麻地。

這幾個月來,習慣在丹堤咖啡吃早點。通常是喝拿堤 (Latte),配上厚片土司或者丹麥酥餅。解飢品味之外,就是強迫自己閱讀一篇紐約時報的報導,然後看一些「擺在架上多日、近來重拾興趣」的書籍。

喝拿堤的原因,主要是因為它的牛奶含量高(據說咖啡與牛奶的比例是 1:2),喝了比較不傷胃。丹堤咖啡用的牛奶又是(據稱最佳的)林鳳營牛奶,喝起來溫溫潤潤地,相當舒暢。

不過,今天心血來潮,改喝比較大杯、單位價格比較便宜的丹堤咖啡。自從(約一年前吧)套餐價格調漲後,我就沒有再喝這種咖啡了。

初嚐了幾口,還真是苦澀啊。頗難想像從前怎麼會覺得「丹堤咖啡喝起來感覺也不錯」。但我接著了解到,覺得咖啡難以入口,其實是因為自己的味覺標準提高了。味覺標準提高,如果表示「品味」也跟著提高,那倒也不錯;但困擾的是,享受的標準提高了,自己卻經常無法從中感受到它所帶來的樂趣啊。

我想起上週舊同事到福華喝下午茶聊天,大家多半覺得場地還不錯,但飲料普通,餐點也嫌粗糙。這是否也是因為大家都有工作賺錢的能力,也漸漸習慣比較高檔的「奢華」呢?

收拾背包,喝下最後一口咖啡。走出店門,在舌尖的苦澀外,喉頭間突然有些回甘的感覺。

星期日, 4月 16, 2006

官職表:行政組織與任職人員

之前隱約提過,項老師想要開創一門「歷史資訊學」(histoinformatics)。

我覺得這是個相當有趣、有潛力的研究主題(能夠感受其有趣點,或許也表示自己有了些長進吧)。雖然困難,但有可能性 (difficult but possible)。目前,實驗室是計畫以明清時期台灣相關的檔案文件為基礎,先建構「好用、合用」的檢索系統,然後利用資訊科技開發其他的模型或工具,來探索「歷史資訊學」可能的樣貌。

除了原始的文件資訊外,實驗室取得一些「應該很有用」的資料,其中有一項就是「官職表」。官職表是什麼呢?基本上,它是在描述某個時候,政府的組織架構與任職官員;除此之外,它經常也包含了組織的辦公地點、以及一些「備註式」的說明。例如,目前台灣的官職架構,就是有總統府、五院、一大堆部會等。每個職位,如果不是懸缺,都應該有人任職、負責相關的行政業務(例如,當前的總統是陳水扁、行政院長是蘇貞昌、立法院長是王金平等)。

這看起來稀鬆平常,不過若是想要建構一套「明清時期官職表模型」,似乎就不是那麼容易了。

不容易的一個原因,是我們通常會被「表象」所迷惑,忘了去探究隱藏其下的結構或意涵。我們看到的資訊,有一部份是類似下圖、有階層結構的的「組織圖」或「行政區域圖」:


我們手頭也會有「列成表格的歷任官職人員」資訊:


在輸出(希望系統能夠做到些什麼)方面,我們則希望從這些資訊裡,推導出類似「陳水扁曾是唐飛的上司」之類的結論(嗯,什麼是「上司」呢?或許可粗略說是有「任免權」、「管轄權」或「事物的交辦權」吧...)。

當然,組織結構可能會改變(重新劃分某些行政區域、調整某些職位功能),而歷史資訊有時殘缺不全(例如,可能知道某人的任官起始日期,卻不知到他在何時卸下官位),有時甚至可能會因失誤而產生不一致。我們也希望系統能夠「適當地處理」這類問題(不要因此讓系統無法運作、或者推導出錯誤的結論)。

那麼,是不是可以找到「簡潔、優美、自然」的抽象模型,能夠合適地描述這樣的「官職表」資訊,並進而指引系統的設計開發呢?

星期五, 4月 14, 2006

聰明反被聰明誤

近幾個星期,強烈地感覺自己對於文字的使用與表達,有著嚴重的缺陷。

說起來,或許還是因為自己對文字的感覺與運用,天賦不夠、要求不高、練習不足。呈現在現實面上,就是對於許多字詞的意思 -- 不管是聽到、看到、或是自己寫出來 -- 都很容易依「表面的感覺」胡亂地解釋或運用。

長久以來,一直也以為「聰明」是個正面的詞彙。不過,在「聰明反被聰明誤」這樣的句子裡,它似乎反而是負面的意涵比較強烈。那麼,「聰明」、或者「耳聰目明」到底是什麼意思呢?

手頭沒有好的中文字典(看起來,我是應該需要一本好的中文字典)。翻翻英文字典,很容易就能找到超過十個與「聰明」相關的形容詞。在許多時候,「聰明」似乎是表示「接收迅速、反應敏捷」,但我在聽到或看到這個詞彙時,是聯想到這樣的意涵嗎?自己在運用這個詞彙時,是想表達這樣的意思嗎?

有趣的是,像 clever 這個字,有時就會有負面的意涵。字典上說,「clever implies quick native ability or aptness and sometimes suggests a lack of more substantial qualities」。所以,「聰明反被聰明誤」的聰明,是不是指「cleverness」?

沒有能夠精準地描述感覺,在溝通、傳遞的過程就很容易失真。在學校裡,花費了大半的時間精力,想快速地找到「適合自己、甚至屬於自己」的一片天地,因而「自以為聰明地」跳過需要留意練習的基本文字運用工夫。如今看來,或許自己也真的是「聰明反被聰明誤」了 。

星期三, 4月 12, 2006

焦躁

這兩天不知怎地,心情頗為焦躁。

或許與天氣燠熱有關、或許睡眠也不是很夠、也或許是因為「post doctor 的兩件工作漸進尾聲,卻尚未找到下一步該做些什麼」的不明確性。

但我總隱隱覺得,想看、想學、想做...(想要?)的東西太多,自己卻沒有能夠達成「內心沒有說出的期望」,或許才是最重要的原因。

自己這半年來,似乎已漸漸了解,其實正是這種「不切實際的期望」,讓自己時而焦慮、困頓、沮喪、失落。只是,光是了解還不夠,能夠落實行動,來克制、化解、扭轉這種欲求,應該才是生活中更重要的事情。

星期一, 4月 10, 2006

一樣花木兩樣情

上週末偷懶了,沒有能夠持續寫出一些心得或感想。

我猜想部分原因,可能是因為自己突然「似乎聽得懂一些話中精妙處」,而高興得過了頭 :p

話說上週四,實驗室 meeting 時,我對學妹提到的使用者回應,學弟們的進度與論文報告、以及項老師在 meeting 時講的一些話,突然有「會意」的感覺。或許由於這種感覺實在頗微妙,以致於讓自己不知不覺在督促自己寫 Blog 上懈怠了(說實在地,這許多年來,自己似乎一直沒有什麼長進,因此一丁點「似乎頓悟了什麼」,就感到相當高興)。

同樣的客觀情事,在「似有領悟」的前後,感受竟然相差如許之多,幾乎可以用「一樣花木兩樣情」來譬喻了。我想,自己這些年來,應該也是「很努力希望求上進」的。然而,光有「努力」看起來是不夠的,更需要的是要找到自己的方向。而自己或許就是摸索不到適合自己的領悟角度(因為不敢面對這樣的大問題),因此一路跌跌撞撞、常覺得委屈不平衡、甚至憤世嫉俗吧。

很難寫出自己的領悟到底是什麼。或許也可以說,自己是「才剛入門、剛跨過一道門檻」。既然尚未登堂入室,當然也說不上有豐富的收穫與感想。

也許,這樣的領悟,能夠開啟自己「感受美好人生」的一扇門。我想,這半年回鍋做 post doctor,收穫還真是多呢。如果硬要自己說些「不滿意」的話,那就是懷疑自己怎麼到這樣的年紀,才能漸漸感受、了解到這些看似淺顯的道理呢?

星期二, 4月 04, 2006

領導人的逆思考:自由思考

最近沒有什麼新發展與收穫,所以我只能試著將看書的一些感想寫下來。

從嚴格些的角度看,這樣做似乎有些「灌水」的味道。但是換個角度想,一本書若是內容豐富,感想本來就不容易擠在一篇 post 裡充分描述。因此,分成多個篇幅,慢慢地消化,應該也不壞吧。

前兩天摘要地描述「領導人的逆思考」裡的「中性思考」。接下來,我對書中提到的另一個概念「自由思考」也頗有感觸。

書裡提到,有些人很鄉愿,專門澆人冷水。這是自由思考的最大障礙。當他們聽見新想法時,並不會想到成功的可能,而是直覺地搬出所有可能失敗的理由。他們或許衷心地認為,這樣大家就不會浪費時間去考慮愚蠢至極的爛點子了 --- 他還等於幫大夥兒一個忙呢。然而,這種人其實才是扼殺自由創意結晶得元凶。(我想到自己從前似乎也頗常潑大家冷水。而或許是最近比較「成熟」了,就算覺得某些想法成功率極低,似乎比較會從正面的角度去看待、描述、與討論。)

自由思考的關鍵,首先是讓自己思索最荒誕的想法,然後才想到實際執行的種種限制。多荒誕?作者舉了一個自己曾經設計過的電子控制系統迴路來作例子。作者說,在 1967 年,他想找出控制洗碗機的新方法,乃至「想破了頭」,強迫自己想一大堆亂七八糟的東西:乾草捆、大象、星球、瓢蟲、沙發、微生物、法國號... 等等,把它們以不同的方式相互組合在一起。這個練習相當不簡單,但是多做了幾次後,他的腦海中忽然浮現(與其他人完全不同的)系統迴路圖,因此造就了一個後來申請到專利,用在數千萬台家電用品上的新發明。(透過作者現身說法,真的有人曾因這樣「自由思考」而受益,感覺就很不一樣。)

這本書還說,大多數的新發明,其實只是既有成品或技術的新組合罷了。因此發明是否成功的關鍵,便在於想出既有元件的空前組合方式,以解決問題。這讓我想到,MPH 在他的 blog「膠水程式與膠水角色」裡,似乎將元件組合看成「為了讓某些東西勉強運作,因而不得不把元件用膠水黏起來」的苦悶差事(我從前也如此覺得罷),似乎太小看「元件組合,其實是多數新發明的根基」這件事情了。

作者說,真正的自由思考其實非常辛苦,通常得花上相當的工夫,還要有決心不讓它淪為白日夢或空想。然而,很多的創新都是這樣的:一旦被發現和製成後,一切便看似理所當然;然而在此之前,一切卻都是茫然而未知的。我想,或許我從前「不夠成熟」,就是因為不能深刻地體會、了解、感受這些(或可說是理論與現實的落差)吧。

星期日, 4月 02, 2006

領導人的逆思考:中性思考

上回提到「領導人的逆思考」,但只簡要地列出要點。

列出要點,通常是給「已經看過內容」的人來作事後的重點複習;對於沒有看過內容的人來說,經常產生不了什麼共鳴。因此,我覺得如果把一些自己頗有感觸的內容解釋一下(即使只是抄出原書的內容),應該也是很不錯的。

這本書提到,領導人要能作「中性思考」,對其所聽所聞並不會歸類為是真或假,而且無論是接受或拒絕 新觀念,他都能採取開放的態度。它也特別澄清,中性思考不是「批判性思考」,後者的態度是,不管聽到、看到什麼,都先認定是假的,除非累積了足夠的證據來證明事情的真偽,否則不會改變自己的想法。

作者說,真正的領導人,必須能延遲判斷,不要驟下斷語。大多數人下判斷都很快,而且傾向兩極化(這點,對於台灣動不動以政治傾向來看待、檢驗公共政策,應該最為明顯吧);也就是說,很快就會把事情分成好或壞、真或假、黑或白、友或敵。但真正成功的領導人,則需看清當下情勢的灰色地帶,才能為對策做出明智的抉擇。

值得特別一提的是,書中引用了 Fitzgerald 的話:「要測試一流人士的心智,便是看他如何能同時懷有兩種彼此抵觸的想法,卻又能讓心智正常運作。」--- 這句話,我之前在其他的書籍裡也有看到 --- 如果我們拿它來測試現在的一些「一流人士」,是不是能得到一些啟發呢?

而我喜歡「領導人的逆思考」這本書,有一個原因是在於:它會提醒你,許多事情,做起來並沒有想像中那麼容易。(一般的書籍,則多半喜歡自吹自擂,好像作者是天縱英明,所以事事能夠看得比讀者清楚。)

例如,作者會說,重點是中性思考並非人的天性,它是需要花工夫培養學習的。此外,他也會舉一些例子,來說明如何練習及養成延遲判斷的習慣。

我覺得,雖然書名已經多少強調「領導人」需要中性思考,但其實一般「不希望被別人牽著鼻子走」的人,應該也是需要有這樣的習慣與能力的。只是,知易行難,說起來容易,但真要培養這樣的習慣,似乎不是件容易事呢。

星期四, 3月 30, 2006

領導人的逆思考

這是一本值得推薦的書 --- 即使讀者並不想成為領導人,也應可受惠良多。

這幾個月來,看了幾本「閒書」。大致上,一開始會覺得「似乎頗有趣」,但看了幾個章節後,就會越來越覺得內容乏善可陳、說詞冗贅而煩悶。

但這本「領導人的逆思考」(The Contrarian's Guide to Leadership) 的每個章節,卻都讓我頗有感觸、共鳴與收穫。

這本書的簡要內容,可以條列如下(書籍介紹裡就有這些內容,所以我只需要「拷貝」過來即可,不需自己打字):

  1. 中性思考:若非必要,先不要對觀念或人產生定見。

  2. 自由思考:想些最無稽的對策和解決方案,訓練自己超越傳統的腦力激盪法。

  3. 先聽,再開口;而且聽話的時候要有技巧。

  4. 專家可能對你有幫助,但絕不能取代你自己的批判思考和判斷。

  5. 特別小心掛著「無法推翻的事實」之名的「假科學」,或不容質疑的前人智慧結晶。這種東西對你自己,或你所帶領的組織的利益,多半毫無幫助。

  6. 當你的競爭對手埋首於業界刊物或其他速食刊物時,多從古代經典萃取精華。也可以請部屬向你報告真正重要的時事。

  7. 可以在合理情況下授權部屬做的決定,絕對不要攬上身。可以在合理情況下留到明天再做的決定,絕對不要今天做。

  8. 不要管過去付出的代價與錯誤。身為領導人,你做的決定只能影響未來,而非影響過去。

  9. 若非必要,不要羞辱你的手下敗將。

  10. 確定自己願意捐軀的山頭,也要了解,你的選擇可能在某個時候迫使你從周遭所有的山頭撤退。

  11. 為屬下服務。招募現有最好的人選,再把大部分時間與精力用來協助他們成功。

  12. 很多人都想「當」領導人,但很少人想「做」領導人。如果你不想「做」領導人,最好別打領導這一行的主意。

  13. 領導人無法實際「經營」組織,而只能帶領你的追隨者,讓他們集體為組織奉獻行動與才智。

  14. 別沉溺在人性本善或本惡的幻覺裡,重點是努力讓追隨者(和自己)發揮最好的那一面,同時將惡的那一面降到最低。

  15. 追求卓越的方式無法複製,真正的卓越只能透過原創思考與突破傳統而至。

我覺得這是一本好書。雖然裡面沒有嚴謹的理論,但從頭看到尾(除了最後一章,作者拿他當南加大校長的經驗來作實例時,為了討好支持者所放進去的一些言論,顯得比較老套),都感到頗有收穫。然而,很難直接寫出自己的感覺。我想,其實我是需要更多面向的觀察、反芻、思考、印證的。

而多年前會買這本書,或許是因為我的個性不願從眾、也有些叛逆,喜歡「與一般想法不同」的論點,因此才會被這本書的標題所吸引吧。

星期日, 3月 26, 2006

一本沒有什麼深度的書

差不多把「新消費者心理學」這本書看完了。

越到後面的章節,越覺得這本書其實並沒有什麼高見、沒有什麼深度的內容。因此,我似乎漸漸也學會,把認為無關緊要的章節,盡量快速地掃瞄過去(這對很多人來說是「一片蛋糕」(a piece of cake) 般地簡單,但對我來說,實際上頗有困難)。

這本書的內容,可以這樣總結(就像這本書自己提到的):

企業要在新經濟致勝的秘訣,就在於了解「新消費者購買偏好和動機」的這種敏銳能力。企業在提供產品或服務時,要考量到能替新消費者節省時間、減少注意力,還要能滿足新消費者追求信實感的渴望。

我覺得這其實是一種多方面觀察後的「淺」(shallow) 結論。即使作者在書中各處,似乎想用各種方式來佐證這項觀察,但那些論證感覺起來都不是很有深度,甚至有些斷章取義。因而,雖然書中提到的「authenticity」曾引發我的一些感觸,但接下來的章節,卻令人越來越覺得老套且乏味。

星期五, 3月 24, 2006

不矛盾的衝突

回鍋做 post doctor,參加實驗室多次 meetings 後,忽然有些感想。

項老師最近常說,他希望做「可以用、合用、好用」的真正系統,而不僅是「花拳繡腿」的玩具系統 (toy system)。此外,他也希望在系統裡,整合研究的成果,因為「研究」與「好用的系統」彼此應該是不矛盾(甚至相輔相成)的。

那麼,為什麼實驗室一直「做不出」或者「做不好」這樣的系統呢?

時機不夠成熟,當然是一項很重要的原因。然而,任何引用新研究成果的系統,在「實用、好用」前,面對的必然都是一大片待開拓的蠻荒地。因此,單純地把責任推給時機,似乎不是很合適。

我的感想是,研究與開發雖然在「最終結果」上彼此並不矛盾,但在「過程」中,卻是彼此衝突的。研究要留意的是如何發現處女地與其相關問題,如何把複雜的現實,從有趣的面向簡化出通用、簡單、合理的模型;但開發卻是「貨真價實」的開拓,需要顧及現實的可能性與各類成本,需要顧及終端使用者的需求與使用習慣。

換句話說,或許「研究」是科學性質導向的,而「開發」卻是工程性質優先。軟體工程師在做決策時,必須受許多複雜因素的限制,包括時間、成本、系統效能、可靠性、安全性、使用者需求等。軟體開發者甚至必須在開發早期,就得從繁多「彼此經常有衝突」、「可能具有潛力」的開發工具中,決定那些是系統所必須呢。

星期二, 3月 21, 2006

消費購物的信實感

最近在「工作」上似乎莫名其妙地忙碌。還好,工作的自由性讓我還能抽空來看些書籍。

自己看書的速度頗慢,看的又通常是已經在書櫃上擺了好些時日的書,因此就算是閱讀後有些感想,也只能算是「風潮過後的省思」。但即使如此,能夠抽出一些時間來閱讀,總也覺得是種幸福。

最近看的,是「新消費者心理學」這本書。這本書出版已經三年多了,內容主要是在強調,有別於傳統的消費者,現今的「新消費者」由於生活日漸優裕,購物從重視「便利性」漸漸轉到強調「真實性」(authenticity)。

我還沒有看完這本書。但看了前面的一些章節,就被「authenticity」這個詞彙所吸引。作者說,新消費者為了「authenticity」,有時會大老遠地開車去買自己急著想要的東西。他舉的例子,是一位發明家 James Dyson,他就為了想要取得自認為最純的橄欖油,寧可開一長段路去購買。

大老遠跑去買東西,有什麼不對嗎?這個年頭,「怪人」不是很多嗎?

這例子能引發我的興趣,其實是因為它讓我想起,前些日子太太為了想買一罐「應該沒有添加人工調味料」的純蜂蜜,還特別抽空開車到松山的某個商店去購買。我想,許多時候,一本書之所以「好」,或許就是因為書中的一些說明或舉例,能夠讓讀者引發各類程度不一的共鳴吧。

中譯本將「authenticity」翻譯為「真實性」,但我看過內容後,總覺得這個翻譯很容易讓人產生混淆(例如,會以為是「reality」)。其實,原書中也有提到,authenticity 在字典裡的意思是:「純正 (genuine)、確實、可靠、真實、實在、原創且有好評」。因此,我覺得翻譯為「信實感」似乎稍微好些。然而,自己的文筆本就普通,也沒有什麼翻譯的經驗,因而究竟該如何翻譯,才能保有 authenticity 的味道,對我而言也是很困難的一件事啊。

後記:我後來覺得,翻譯為「原味感」、「原真感」、「信實感」、甚至玩文字遊戲,翻譯為「實真性」,似乎都各強調出 authenticity 的某些面向。然而,問題依然存在:到底怎麼翻譯,才能更傳神呢?

星期六, 3月 18, 2006

行百里路半九十

這個星期的實驗室 meeting,項老師又「發飆」了。

這次的 meeting 內容,主要是兩位碩士班的學弟,報告碩士論文的內容。到底出了什麼問題,又讓項老師「不滿意」呢?

原因其實一直都沒變:老師認為 Presentation 就像在說故事,必須有連貫性,必須「make people understand what you are saying」。一般同學的報告,多半徒具形式,但動機不明、定義不清、想講的東西又太多太雜(多半是畫蛇添足)。同學報告時,老師若神智還清醒,聽過幾頁後就會開始因「看不懂、聽不懂」而質問投影片上的內容「到底是指什麼」。而現在一般的學生,很少受過嚴謹的訓練,因而多半無法「真的了解」自己在說些什麼。於是,老師就會因「受不了」而開罵了。

項老師很少循循善誘地教導學生。因而,要從老師身上學到東西,除了自己要很認真、多觀察、多思考之外,就是在 meeting 裡聽老師訓話了。我自己倒是覺得,除了被罵的人因為「身在其中」而常感挫折外,聽這些訓話通常都頗有收穫,值得反覆咀嚼。

這個星期,老師在訓話中,提到「行百里路半九十」,並且說,很多人都有這樣的毛病。他還特別提到,我的博士論文研究,其實做得很不錯,但缺點就是「沒有(好好)做完」。

我其實也了解,自己的博士論文,當初在收尾時,確實是有些草率的。事實上,多年後,我現在繼續寫的論文與檢索雛型,就是把博士論文的內容「繼續做完」(嚴格地說,光這兩項也還算是沒有做完,但總是「比較完整」了)。只是,當初如果真的要「好好收尾、好好做完」,那我或許得多待個三五年,才能夠畢業呢。

「行百里路半九十」語出《戰國策》,意思是說, 要走一百里路的人,把走了九十里只當走了一半,此言末段路之艱難。最近 prototype 接近尾聲,要進行交接,才發現連 prototype 的傳承,要做好也當真不是一件容易事。就是因為好的收尾是如此地困難,也難怪大多數的人都會為了順利畢業,而草草收尾了。

星期二, 3月 14, 2006

計算 pi 的小程式

多年以前,曾經對如何用電腦計算 π 的小數展開值感到興趣。

例如,要如何算出 π,精確到小數點後 1000 位的值呢?課堂上,似乎只知道可以運用數值方法(例如牛頓法),或者 π 的無窮級數展開式(Wikipedia 關於 π 的詞條,有列出數十個這樣的展開式)來計算。

Wiki 雖然有列出數學式,但很可惜沒有相對應的程式碼,因此總覺得有些遺憾。前些時日,在這裡找到一份 Tcl 寫的程式碼,可以計算出 π 的前 2400 個小數位數。

將程式碼轉為 PHP script 如下:
<?php
$digits = 2400;
$size = (int) ($digits * 14 / 4);

$e = 0;
for ($b=0; $b<=$size; $b++) {
$f[$b] = 2000;
}

for ($c=$size; $c>0; $c-=14) {
$d = 0;
for ($b=$c; $b>0; $b--) {
$g = 2 * $b - 1;
$d = ($d * $b) + ($f[$b] * 10000);
$f[$b] = ($d % $g);
$d = (int)($d / $g);
}
printf("%04d", $e + $d / 10000);
$e = ($d % 10000);
}
?>

頗難想像,計算 π 到 2400 位小數,竟然只需要如此簡短的程式碼。根據網頁上的說明,這份程式碼是依據 Stanley Rabinowitz 與 Stan Wagon 在 1995 年的論文寫成的,背後用到的數學式子是 π 的連分數展開式:
π = 2 + 1/3( 2 + 2/5( 2 + 3/7( ... ( 2 + k/(2k+1)(...)))))
我花了一些時間,嘗試了解程式是如何運用這個連分數展開式,來精確地計算出 π 的小數位數。可惜,直到現在,這份嘗試還是失敗的。或許,原始的論文有說明如何用程式實作;或許,我就是缺乏這樣的能力,能從數學展開式裡,直觀地看出如何漂亮地實作。

然而,有程式的原始碼與背後的數學式,可以跑出結果、程式碼也很簡短,但卻看不懂程式背後的演算法,說來是不是也有些諷刺呢?這是不是也暗示,程式如果失去了註解說明、失去了解讀的指引,那麼想要直接從原始碼來了解演算法,或許也還是一項艱困的事情?

星期四, 3月 09, 2006

想的比做的快

兩週前將論文的初稿拿給老師看,昨天取得回應。

令人高興的是,老師「竟然」看完了,還稍稍稱讚說內容頗有趣,寫得也不錯。但接下來說明缺點與該改進的地方,討論起來還是慘不忍睹。

老師說,我這文章前面寫得都不錯,但後來有些虎頭蛇尾的味道,而且「想的比做的快」,沒有好好想清楚主題與脈絡。

這些問題的根源,其實還是在於自己有「畫蛇添足」、「尾大不掉」的毛病。許多時候,覺得有些想法在心中悶得太久了,或者覺得有些觀點捨不得割愛,就會這裡講講理由,那兒說說感想,最後導致整篇文章失去簡潔與可讀性。

其他當然還有許多問題。例如有個式子的定義,我沒有把某些變量寫進數學式子的參數裡,導致老師在看的時候,必須猜測我這個定義「到底是什麼意思」。另外,文章裡也還是出現不少英文用字的錯誤,或者冗贅模糊的語句。

我說,老師以前從沒有「看超過三頁」呢。這回卻竟然真的看完了,著實令人感謝、感動。然而,取回初稿後,我卻覺得自己好似虛脫了般,竟然提不起勁來好好地修改這份初稿。

或許是因為最近忙著修改 prototype 程式,專心到忘記論文的「感覺」了。要好好地修改論文,應該需要好些時日,重新找回這份感覺吧。

只是,原先以為三月底就可以把論文與 prototype 結束,現在看來是過份樂觀了些。「收尾」竟是如此費心耗時的工作呢。依目前的狀況看,若五月底之前能夠收尾完成,或許就應該感到滿意了吧。

星期二, 3月 07, 2006

三歲半的純真

爸爸,今天星期幾?

即將三歲半的寶寶,這一陣子晚上會這樣問我。星期二,我說。

「那... 星期二過去呢?」星期三。「再過去呢?」星期四。「再來呢?」星期五。

「再來呢?」寶寶問。「妳自己說啊」,我回答。「星期六?」寶寶說。「對!」我回答。「耶,好棒,爸爸就可以陪我玩了」,她露出天真滿意的笑容。

小孩子長大、懂事變化的速度很快,許多令人回味無窮的動作或習慣,都只有在特定的時期才會出現。從三歲到三歲半,從分辨不出你我的差異,到了解週末可以在家裡陪她,小孩子時常在不經意間,透露出他們神奇的學習能力,讓父母們充滿著驚訝與感動。

我很珍惜這樣的對話,感受其中莫名的感動。有人說,在有了寶寶後,人才會真的變得成熟。或許,這是因為有了寶寶後,人才會更能體會、體諒他人,才會更懂得欣賞、讚嘆世間的美妙吧。

星期五, 3月 03, 2006

從患了流感談起

生病了,攪亂了原先看似規律的生活。

起初,只是覺得有些頭暈,在丹堤看報紙,看著看著就漸漸有昏睡的念頭。接下來半天,則是偶而會打個噴嚏。心想,大概是普通的感冒吧?吃吃成藥,休息個半天,應該就可以好轉。

可是狀況卻比想像來得糟。雖然服用了普拿疼,但全身開始痠軟無力,而且發起了高燒(約 38.5 度)。結果是,整整在家裡躺了三天,至今才勉強恢復行動力。

查了查相關書籍,應該是患了流行性感冒吧 --- 症狀比普通感冒來得快速且凶猛。矛盾的是,雖然早猜測是流感,期間卻幾度懷疑,「是不是得了其他更嚴重的病,否則怎麼會發燒那麼久都沒有退?」

人就是這樣,身陷棋局,才更明瞭「想的是一套」、「說的是一套」、「做的又是另一套」。要言行如一,著實不易;要言行始終如一,更是難上加難。嗯... 牽扯得似乎太遠了些,近來天氣多變,大家可要多注意身體健康啊。

這一週的紐約時報,有一篇「The Racial Divide, In Black and White」,大意是一部六集的紀錄片,藉由好萊塢的化妝術,將黑人扮成白人,白人妝似黑人,然後將一個黑人家庭與白人家庭「對調」,藉此觀察、突顯、討論膚色種族的問題。

有趣的是,在第一集,交換膚色體驗生活後,白人並不覺得膚色變黑後有太大的差異,但黑人卻覺得膚色換白後備受禮遇。白人認為黑人是在雞蛋裡挑骨頭,是「You see what you want to see」(只看見自己想看的),而黑人的回應是白人「You don't see what you don't want to see」(沒有看見自己不想看見的)。

真是精妙的應答啊。我還需要在腦子裡轉個幾下,才了解這兩句話的不同處呢。我想,在大多數時刻,我們都「只看見自己想看的」吧。然而,「沒有看見自己不想看見的」不也表示出,我們或許都是戴著有色的眼鏡在觀看、了解這個世界嗎?

星期二, 2月 28, 2006

來自史料的想像

在報紙上看到一篇「來自史料的想像」。

文章內容,提到台灣歷史的研究,因為政治立場而限制了歷史視野,眼界無從開展,想像無從飛揚。作者林載爵認為,目的性的解釋,忽略了歷史演進中,最有趣的幾個元素:流動、變異、交融、與混雜的多樣性。

他也認為,史料的閱讀,是當今台灣歷史與文化研究最大的弱點。並起提及台灣歷史史料:台灣文獻叢刊、台灣研究資料彙編、明清內閣大庫檔、還有對岸(可能是為了統戰吧)所出版的「台灣文獻匯刊」 --- 咦?這些不就是實驗室想要收集、提供檢索、並據以研究發展「歷史資訊學」的嗎?

由此看來,古文書的數位化、檢索、研究,雖然對學資訊技術的人來說,沒有流行科技的風光,但其實應該也是屬於「基礎工程」的。但是要如何更上一層樓,利用資訊科技來突破「文件檢索」的範疇?我猜想暗示應該就在於那些「流動、變異、交融、多樣性」等等有趣的元素裡。

說來也怪。生長在台灣,卻對台灣的歷史幾乎完全不了解、對台灣各地的風光,也是少有接觸。雖然還是覺得,到歐美日等先進國家旅遊,休閒的品質比較好,但其實應該多找機會,欣賞台灣的在地美。

星期六, 2月 25, 2006

交接與傳承

最近每天都在忙碌地修改程式、準備投影片,卻看不到系統有多大的改進。

怎麼會這樣?我想,是因為自己並不是真的了解體會,「收尾」的困難處。此外,因為我並不喜歡虎頭蛇尾的感覺,因此總想把「整件事情」做到比較能令自己滿意的地步。

很早以前,就已經打算把 prototype 在適當的時機傳承給其他人;半個月前,甚至已經找到相關的人力(就是實驗室的學弟妹啦)。然而,系統交接與傳承,如果只是把手頭的程式打個包,簡單地寫些文件,通常下場都是草草收尾,承接的人怨聲載道,恨不得重新開發一個系統。

系統的傳承中,我覺得應該包含了「溝通」。要傳交出去的人,應該讓承接的人,了解到他們想了解的系統背景、模型、架構、設計、與實作。以實驗室的例子來說,這些了解,甚至應該包含「當初為什麼要採取這樣的作法、從中間學到了什麼教訓」等等。

溝通可不是一件容易事 --- 至少,我一直都不擅長溝通。要充分溝通,除了彼此都需要投入許多時間與精力,他們之間更需要有相當的互信與尊重。不過,或許是因為現代人太追求快速,因此典型的交接,才會變成「打包」、「寫些文件交代程式各做些什麼」吧。

另一方面,在工作上「人員的流動頻繁」是項現實。我想,「流程標準化」之所以重要的原因之一,或許就是因為它有這樣的優點:傳與承、交與接的兩方,都對這項標準有者相當程度的共識,因而能夠有效降低交接傳承的成本。

星期二, 2月 21, 2006

寫程式與藝術創作

突然覺得,自己寫 THDL retrieval prototype 的心情,或許與藝術家創作類似。

這個 prototype 系統的輪廓,在模型上並沒有超越自己幾年前的論文。在實作上,我也只花了一個多月的時間,它就大致成形了。但是,算一算自己在寫程式所投入的時間,竟然已經有四個多月了 -- 那麼,為什麼我願意投入這麼多的時間,去修修補補、左看右瞧、反覆撥弄這個系統呢?

我想起去年年底,看紐約時報的一篇「Seeing through the distance」後,曾簡單地 post 一些感想。或許自己寫程式,就類似於創作一個藝術作品。藝術家心裡已經有了模型與底稿,花了許多時間雕塑出輪廓,但接下來的修飾,卻依然需要很長的時間,持續地思考、不斷地拿捏、無止盡地修正。

當然啦,把自己美化成一個藝術家,說來是相當冒昧、很大言不慚的。但是,我其實很難形容自己開發系統、設計模型、撰寫程式時,忽有所得的美妙心情。此外,也更難說明,為什麼自己每隔一陣子,就會想回顧從前的程式(作品)們,總想把許多「從前沒有寫好的程式」繼續完成。

有人說,生活即藝術。也或許,用藝術的角度來看待許多事情,可以讓人暫且遺忘工作賺錢的冷酷現實,讓人重新觀照、重視、欣賞天賦的潛能,讓人有找回自我的想望與動力。

星期六, 2月 18, 2006

「A+的秘訣」讀後感(下)

經過幾天的努力,終於把「A+的秘訣」也看完了。

不過,說老實話,我看到後來,覺得作者們有許多論點其實頗為牽強,因而感到有些乏味。許多受歡迎的管理類書籍,好像都有著些共通點,那就是 MPH 說的:「文章作得花團錦簇,其實是竹籃子打水」。文章天花亂墜,仔細省思後卻不過是一些單純的觀點或推論。

然而,這個年頭,若不極盡誇大能事,似乎就不能吸引廣大的讀者群。因此,有時我不禁懷疑,是不是由於資訊爆炸的威脅,讓讀者與作者的口味都變重了?

岔得太遠了,還是回到主題吧。就我的觀點,「A+的秘訣」這本書的內容,似乎主要是在說明多變社會下,消費者的消費價值觀確實也已經改變。而為了因應這些改變,企業必須從產品、價格、服務、可及性、與消費經驗等五個面向,來思考企業的競爭優勢。

雖說這類企管理論,多半是馬後放砲的歸納,但有時仔細想想,也似乎真能給自己一些啟發。想一想,這麼多年來,做生意的秘訣,似乎從來就不曾改變:「讓顧客滿意、他們才會再度上門」。但奇怪的是,很少企業能讓顧客完全滿意,不是嗎?

作者們認為,一個主要原因是,現今的消費者已經不再相信企業。傳統常見「訂高價再打折」的作法,讓消費者不再相信定價;對於特價商品,他們不但不領情,反而覺得平時價格根本就是剝削。就像 MPH 去年八月,在「令我作噁的icash」中所討論,總覺得特價品一定是把價錢攤加在其他地方,要不就是先加價再打折。

而現今的企業,或者因為商業環境複雜、或者因為競爭激烈,很容易失去自己該往哪裡走的方向、迷失自己該強調的商業特質。這本書的作者,就是經由各種產業實例,建議徬徨的企業們,在五項特質中,必須有一項傲視同儕、一項提供區隔、然後其他三項都保有業界的水準。

若要說這本書的觀點沒什麼「實際用途」,其實很簡單。只需如作者們自己所說:這些特質的標準,隨產業、地點、消費群特性等等而不同,就可以了。因此,這本書並非告訴大家「該怎麼做可以達到 A+」,而比較屬於「提供各種產業的成功典範、分析他們為什麼得到消費者信賴」的論述書籍。

前幾天,我走在校園裡,突然對這本書的立論背景(參考 讀後感(上)),產生了一些共鳴。是啊,現代人因為社會架構瓦解、個人時間壓縮、以及資訊與傳播科技興起,所以更希望能夠得到(家人、朋友、社會)關愛、了解、讚賞、與尊重。因而,應該會有許多公司,會藉著滿足這些人性需求,利用商業特質來區隔、取得消費市場吧。

星期三, 2月 15, 2006

「A+的秘訣」讀後感(上)

這幾天不管是在學校或家裡,事情都頗多,連寫寫網誌的時間都不夠。

不過,我覺得寫網誌有些像寫日記,不該拖太久、且需要有點恆心。因此,我還是強迫自己擠出一些時間,把最近看書的一些心得記一記。

最近在看一本擺在櫃上許久的書:「A+的秘訣」(The Myth of Excellence)。因為還沒有看完,所以只能抒發一下目前的感想。

大致上,這本書的立論背景是在於,現代人因為「社會架構的瓦解」、「個人時間的壓縮」、以及「資訊與傳播科技的興起」這三種轉變同時發生,促使消費者在交易時,看重的事物與以往有了不同。作者們強調,商機是來自於對人性、人性價值的關懷。

例如,在資訊爆炸的環境裡,消費者想要的,究竟是什麼?作者們認為,消費者要的,是清楚、簡單、明確和信任。他們需要值得信賴的人為其過濾資訊、簡化選擇(這讓我聯想起自己在另一個讀書心得:「選擇的弔詭」所提到,過多選擇所造成的困境)、並滿意自己的決定。

對我來說,一個有趣、且值得深入思考的主題是,作者所提到的五項商業特質:價格產品服務可及性、以及消費經驗。作者認為,這五項特質最完美的組合,是一項特質得到五分(掌控市場)、一項得到四分(市場區隔)、另外三項則得到三分(達到可接受的業界水準)。但要注意的是,只要有任何一項特質達不到三分,整體成績就不及格。

用這五項特質來觀察、評量、了解當前那些公司為何成功,應該是相當有幫助的。我也問問自己:「之前所待的公司,為什麼無法取得成功?」、「它在這五項特質裡,各得了多少分?」

不出所料,它們的整體成績都是不及格。但若再深入思考一下,其實也可以感受到,要取得「及格」是多麼地困難。因此,我似乎也更能體會,一家公司或者企業的成功,是多麼得之不易了。

星期六, 2月 11, 2006

修補程式的日子

這幾天都在忙著寫程式。

寫什麼程式?當然還是 THDL(Twiwan History Digital Library,台灣歷史數位圖書館)檢索系統的雛型。自從任務由 prototype 升級到 pre-β,日子就沒有一天悠閒過。

這也部分說明了,自己為什麼這一陣子都沒有什麼好內容可以 post 上來。並不是說,「寫程式」、「修改系統」就不會有什麼有趣的心得;而是說,寫程式經常可以讓人專注,進而不知不覺將時間耗盡(做不了別的事情)。

還好的是,已經有學弟妹們,要接下我的程式與系統了。因此,三月底之前,將這個 pre-β 系統交接出去,應該是有希望的。

而那篇「失散多年後,重新改寫的論文」,最近也接近尾聲,看起來也有機會在三月底前讓老師修改好。

我猜想,許多人為了取得博士學位,論文中都會割捨一些未能完成的想法、理論、系統、或研究。這兩件事(prototype 與改寫論文),也因為都像是在接續「數年前未完成的工作與緣分」,而讓我願意投入數個月的時間,盡全力去做好它們。

接下來呢?我是打算好好地休息(或者說,沒有特定目的地混日子吧)兩三個月。然後,就得努力找尋下一份「正式的工作」了。

星期二, 2月 07, 2006

談古文書文件檢索:之六

咦!等一下,標題是不是打錯字了。原本是「談古契書資料處理」,怎麼變成了「談古文書文件檢索」?

喔,原來這一陣子從 prototype 升級到 pre-β,處理的文件,應頭頭的要求改成了「明清檔案」,也就是明清時期,與台灣相關的文獻資料。古契書當然也算是一種古文書啦。

至於「資料處理」轉變為「文件檢索」,則是因為近日慢慢釐清,項老師想探索研究的「歷史資訊學」(histinformatics),其基本必備的功能就是檢索。如此一來,做先期的資料處理、data purification,也可以說是為了文件檢索。

所以,看來寫序列短文,有時也像軟體開發,會慢慢演化 (evolve)的 :)

那麼,處理古契書和更具一般性的古文書,有什麼不同的地方嗎?

理論上是有的。因為,古契書在不同的時空背景,有它特定的格式。如果能夠善用這些特徵,應該能夠提供使用者更好用的檢索工具,甚至可以應用某些人工智能 (AI) 或資料採礦 (Data Mining) 的方法,找出一些有趣的東西。

當資料量增多,資料種類增加時,單純的全文檢索,通常是不夠的。想一想,如果不是有相當大的需求,Microsoft 為什麼要花那麼大的力氣,開發新的 desktop 搜尋系統 WinFS,利用各種文件(或稱作「可檢索物件」)的特性,來組織、搜尋與共用各式各樣資料與資訊呢?

另一方面,實務上要利用到各種文件(尤其是一般人很少研讀的「古文書」)的特徵與相異性,通常得費相當大的功夫。M$ 有錢有勢,實驗室可沒有這種本錢。因此,若沒有想清楚背後的檢索、採礦模型,弄出來的東西恐怕只能是「玩具」(toy system),很難「實用」或甚至「好用」。

本來這一回是想談談古文書檢索中,關於 Query Syntax 的一些經驗的。不過,在這兒光是發發牢騷,就已經寫了好幾段文字 :p 因此,就留待下回,再抒發這部分的感想吧。

星期五, 2月 03, 2006

「叫花李」的行銷策略

信箱裡,收到「音速忍者龜」轉寄來的許多有趣信件。

「音速忍者龜」是傅國長的學弟,有一陣子也常到實驗室來;但後來不知何故,就沒有再見面了。只有電郵信箱裡,還經常能收到他轉寄來的信件。也真感謝他,願意花時間來將有趣的內容,轉寄給認識的朋友。

這回收到的信件裡,有一篇叫做「『叫花李』的行銷策略」的短文。寫得輕鬆風趣、卻又隱含行銷策略運用的道理;但信件不知怎地被截斷了,只收到部分內容。上網查了一下,原來「學習電子報」曾經刊載過,網址在這兒

這些日子,經常苦於自己的文學訓練、修養不足,寫不出像樣的句子與文章。因此,對於這篇短文的作者,我頗感佩服:他能夠流暢地設想出乞討這種極端的例子,用輕鬆詼諧的語調,深入淺出地介紹行銷的精髓(並加上許多現今流行的「藍海策略」、「差異化經營」、「注意力經濟」等用語),實在不容易呢。

星期一, 1月 30, 2006

實務造就流程

這幾天看了一本幾年前買的書:「資訊革命了什麼?

這本書的年代,應該還是在 Internet Bubble 的時期。大致上,作者是想強調,那些說「資訊萬能」、「新技術會終結報紙、媒體、中介者、公司與政府機構...」等等的論調,其實是很狹隘的直線式推論。

經過了泡沫的破滅,現在應該也沒有人會再說「資訊萬能」了吧。但是,在網路資訊當紅的時期,能夠提出異於主流的看法,並且加以論證(看了幾本書後,我發現這些作者都很會寫各式各樣的論述 --- 即使有時會覺得他們太囉唆)。

現在可以用比較平靜的心情,來看這本書。我覺得,自己最大的收穫,其實是來自於書中提到的「實務造就流程」(Practice Makes Process) 這個章節。作者們強調,流程對結合組織的各部門固然重要,可是終究要靠在組織工作的個人,來實現流程、並賦予流程意義。所謂實務,則是指為完成工作所進行的活動。

這類抽象的論述,在公司裡似乎常常可以聽到,感覺起來也沒什麼特別,那我的收穫在哪兒呢?

原來,要能夠合作,必須建立大家公認的詮釋架構。「每個人都有自己的想法,但觀念可以溝通」。而實務,就是建立順暢溝通的管道。例如,為什麼同樣的資訊,在不同的人身上,會產生相異的知識呢?從事的工作性質不同,所受的專業訓練有異,對資訊的反應就不一樣。是實務左右了如何消化知識。

所以,為什麼我總覺得系統設計與實作,在溝通上那麼辛苦呢?可能就是因為要溝通的人們,彼此並沒有相同、或者類似的實務經驗啊。「學習得到」(learn about) 與「學做、從做中學」(learn to be) 之間,差異竟是如此之大,以致於許多知識,只能乘著實務的翅膀來有效溝通呢。

也因此,我要將 prototype 或者 pre-β 轉交給學弟妹們,就不能只是強調理論與模型,而必須注意到實務的重要性。或許,必須讓承接的人員,經歷一些設計與實作上的磨練,才能夠經由「實務」,順利地溝通與移轉我在這部分的經驗與想法(知識)。

星期日, 1月 29, 2006

新年快樂

農曆上又過了一年,虛歲又多添一歲了。

不知怎地,總覺得這些年來,過年的氣氛一年不如一年。不過,或許是今年看得開了些,看看街頭人車都少了許多,也就覺得像是在過節了。

新年新希望。我希望家庭常保溫馨和樂,工作上也能夠順遂開心。人是很貪心的,我其實還有許多「小小」的想望呢。不過,或許那些該算是「奢望」或者「妄想」吧。

也祝福大家,身體健康,萬事如意。