2008年2月27日

FOSDEM 2008

FOSDEM 的全名是 Free and Open Source Software Developers' European Meeting,姑且譯作「開源碼開發者歐洲會議」。這是歐洲最大的開源碼年會。由於工作關係,公司願意派人參加。第一次加入西方的此類會議,對我算是頗為新奇的經驗。
今年 FOSDEM 是在比利時布魯塞爾舉行。當地英文不是主要語言,而是以法語、德語為主。一出機場,英文就看不見了,只在旅館等屬於觀光客的地方才有。好在大眾運輸系統標示相當清楚,就算是文盲,憑著拼字以及圖示猜測,還是正確地火車轉捷運抵達旅館。年會歷時一個週末,從周五晚上開始,到周日下午結束。周五晚開場的活動是Beer event,「啤酒聚會」,在 Delirium Café 舉行,20歐元的費用就隨你喝到爽。比利時啤酒天下第一,吧台光是新鮮的加壓啤酒大概就有20多種,景象頗為壯觀,啤酒們口味濃淡各自不同,不過酒精濃度都比普通的高些,一般在7%甚至到15%左右。經過親身試驗,忙著聊天的結果只嘗試了五六種,全都很好喝。在這暖身活動就見到不少人物,除了之前幾位合作的舊識之外,也看到一些名人,總之就是些大鬍子、光頭,不是很胖就是很瘦,諸如此類。不過由於 FOSDEM 已經屬於比較商業的活動,許多人都是公司付錢來參加,據同事說,氣味比較不像之前他去過的 CCC 那麼嬉皮,大部分人看起來都正常多了。
例如席間跟新認識的 Mark Brown 聊天,此人自我介紹是 Debian zlib 以及其他幾個 package 的維護者,類似如此的小驚奇層出不窮,很容易就會認識到原本在某某專案中看過的名字。這可說是開源碼相當令人興奮的特色之一,就是個人名譽。這對於做開源碼的個人生涯有非常大的相關,只要你有顯著貢獻,財務上會有穩定保障,可繼續專心發展軟體。聊著聊著,話題不知怎麼的,帶到開源碼的工程師待遇問題,我說在臺灣這邊的公司,有許多人是放棄了更加高薪的職位,為了想發展開源碼而加入的。他的反應頗大,指出其實這問題很普遍,他個人也是同樣情況。當然為了這種信仰,人們會願意放棄一些金錢上的好處,但我想繼續尋求更佳的開源碼獲利方式,才是皆大歡喜的策略。
FOSDEM 正式舉行的場地當然不是酒吧,而是 Université Libre de Bruxelles (ULB),布魯塞爾自由大學。接下來兩天正式的活動大概分成兩大類,其一是演講類,其中又分在大間教室舉辦的較一般性的大演講,以及所謂的 lightening talk,每人15分鐘的時間發揮。還有在各小間教室舉行,針對比較特定族群的演講,例如 Mozilla, gnome, kde, x.org 以及 embedded 等等。另一類是專案攤位,例如耗去我大部分時間的 OpenEmbedded 攤位,旁邊就是 PostgreSQL,另一邊則是 Debian 等等不同專案的地盤。這些攤位主要目的是公關,海報、傳單、紀念品,以及向有興趣的人介紹、推廣自身 project。會場氣氛相當熱烈,不論是在演講中提出的問題,以及在各攤位、走廊間,四處都可見到三五成群的各色人等,操著不同口音的各種語言,討論充滿奇怪名詞以及縮寫字的議題。雖說各類網路溝通工具都已經相當發達,但目前這種面對面討論以及演講等等所傳達的訊息濃度,仍是無法取代的。原本只是網路上暱稱的人們聚集一處,互相認識,對於日後合作也會有相當助益。

技術方面就這次參與到的部份簡單敘述一些比較有趣的:OpenEmbedded(OE)的發展看來仍然很不錯,最近的技術 package staging 如果能夠發展成熟,將能顯著減少系統編譯的時間。一般來說,嵌入式系統困難的部份在於軟硬體的整合,這部份搞定之後,就是系統其他部份要添加血肉。而一般開發者要進入嵌入式領域,cross compiling (抱歉,此專有名詞不翻譯比較好)通常是個門檻,而且經常在重新創造輪子,解決已經有人解掉的問題。OE 原本做得最好的就是這部份,但相對的,動輒數十 GB 的磁碟消耗量以及編譯消耗的時間,還有陡峭的學習曲線等,都是問題。這次修改應該對磁碟消耗量以及編譯時間有相當的幫助,但在學習曲線部份,就沒什麼助益。希望隨著專案日益穩定,以往由於本身瑕疵造成的學習困難可以日漸減少。

另外在系統安全的部份,SELinux 或許已經可以決定是個失敗的嘗試,因為實在太難用了。這次聽到的 Tomoyo Linux 至少很容易懂,但相對來說比較新,還有不少功能沒做進去。等到都進去之後是不是還這麼好懂,以及由於是日本人做的專案,宣傳上沒有西方人這麼強,日後的發展,拭目以待。Tomoyo Linux 的演講者 Toshiharu Harada 相當有趣,日本腔很重,一開始就很有禮貌的給每個人名片及測試光碟,讓大家可以直接拿來開機嘗試。首張投影片就說 FOSDEM 是歐洲人的聚會,但他是日本人,為了要推廣 Tomoyo,公司花了很多錢讓他飛了很遠來到這裡介紹。我好像也飛了很遠,而且當時整個 FOSDEM 裡頭只有我跟他兩張亞洲面孔,真是心有戚戚焉哪。

我想 embedded 系統很值得關注的部份,應該是手持裝置的領域。之前我不知道 smartphone 以及 pda 在歐洲極度普及,歐洲朋友告訴我,如果是白領階級,使用 smartphone 且隨時收發 email 已經成為常態。這跟臺灣的狀況明顯不同,所以很容易忽略這塊是多麼可怕的市場。由於手持式裝置的天性,許多組織,包括公家機關、企業等等,會希望能夠對軟體取得更多的控制,做出組織專屬的客製化手機。而一般使用者也會希望對應用軟體有更多選擇,這點可由 iPhone installer[1] 的成功看出。此類需求隱約與自由精神相合,故開源碼在這應該是很有機會的。OpenMoko 目前是唯一的開放平台,軟硬體都公開,所以仍然獲得許多專注目光,可惜專案公司本身似乎不太確定之後的腳步該怎麼走,跟社群的連繫也不佳,導致希望幫忙的人不得其門而入。
iRex 所出產的裝置之前只聞其名,這次真正見識,令人印象深刻。撇開裝置本身輕薄不談,最驚人的是螢幕,僅有黑白兩色,顯示細緻、清晰,在陽光下的表現更加清楚,品質已經直追紙張,真正達到易讀的目的。螢幕上的字母不像一般液晶顯示器,反而有紙張印刷的質感。另外有專用的觸控筆,除了專用筆以外的東西接觸螢幕,就不會感應,行為與筆記本相同,避免此類裝置在背包或口袋中胡亂感應的問題。或許在將來的大學,會人手一本也說不定。

參加此類聚會,個人有一深刻感覺,就是談理論的不多,大部分都是談實作。這再次碰觸到經常被忽略的一點,即電腦科學與電腦工程師是相當不同的領域。電腦科學家偏向數學,事實上僅需要紙筆就可以發展,僅需要實作來證明。但對工程師來說,實作才是真正重點,因為理論僅發展一次,其後都是各種應用,這就需要工程師來填補。對科學家而言,理論是研究的目標,但對工程師而言,其在電腦科學的素養經常只是為了理解理論,進而應用。我們在學校所受的訓練,經常著重理論教育,對各種程式庫 API 熟悉、對通訊協定熟悉、對現有軟體架構熟悉,往往不會被視為真正的成就。但一旦真正進入業界,才會知道這些才是真正把東西做出來的能力,反而理論方面,只要熟習現有的東西,並且靈活運用,就已經非常足夠。我認為在現今電腦教育中,加入更多專案,以開源碼、Google summer of code 等等為目標,由真正會寫程式的助教或老師來帶領,對學生們會是非常有用的。

在會議將近結束時,發生一件有趣的小插曲。一位看起來非常熱血模樣的年輕人,操著歐洲口音很重的英文,衝向我們詢問有沒有 Debian 的使用者。我回答有,他立刻抽出一台華碩 Eee PC,開機,嘴巴喃喃念著說他有個問題不知道怎麼解決,希望我能幫忙。開機開到一半,他激動的指著一行錯誤訊息說,他的電腦在這裡發生問題,會停頓兩秒鐘才繼續開機。他不能容許他的機器在開機的時候停下來兩秒,他一定要把他修好!我問他有沒有試過直接開到 shell 下執行相關的 init scripts 來找出問題出在哪個 script,進而找出是哪個指令,然後再追蹤下去就行了。他嘴中唸唸有詞,手中打字打個不停,然後指著螢幕說,哈,找到了,這個我可以修!

我正以為可以開始打包閃人的時候,他繼續發問。我無辜的開始念一些我只是剛好坐在這其實不是 Debian 攤位的人之類的話,他才不管,他說他希望得到 Debian 同伴們的支持。好吧。這次是有關 tty1 的問題,看來他不喜歡 tty1 的 login,但卻不知道該在哪裡控制,upstart 的地方他又找不到。看來他是從 Ubuntu 開始轉到 Debian 的。我把 /etc/inittab 列給他看,他高興得很,謝了大家就愉快的走了。這時我有點傻眼,同伴說,他記得以前第一次參加這類開源碼會議的時候,他請一位不認識的人幫他安裝 Linux,那人先設定了網路安裝,幾個命令就開始動了。他說他當時覺得那人真是太神奇了,好想知道自己什麼時候才能做一樣的事情。真是值得回憶的熱血年代啊。

在法蘭克福到香港的飛機上敲著鍵盤,此時若要對 FOSDEM 做個總結,那就是覺得自己實在太過渺小,對太多東西都還不懂,寫程式的量也實在太少了。臺灣受限於語言與地理位置,要跟上世界發展的腳步,只有充分利用 Internet,訓練英文,直接參與最上游的互動以及吸取資訊才最有效。

p.s.非認真的小心得:
  1. 歐洲正妹輕軟的說著法語... 很棒。
  2. Brussels 漂亮的不像話,不過生活費用也貴的不像話。我三天的時間花掉一萬臺幣左右,還不包括旅館錢!
  3. 歐洲服務業的態度很冷淡,台灣好多了。
  4. Lufthansa 德國航空的椅子難坐到爆炸。

[1] iPhone 是被一個升大學的男生利用暑假破解的。他把第一支破解的 iPhone 拿上網拍賣,最後交換了一台 Nissan 350Z 和好幾隻全新的 iPhone,還有幾間公司的顧問職務。很不錯吧?他在硬體方面先破解之後,軟體方面就簡單很多,最後由社群力量做出 installer,一個可以自由安裝各種社群開發程式的軟體。有 installer 之後,iPhone 可是比原來有趣多了。

2008年2月18日

溝通、溝通、溝通

相信許多人都有跟外國人合作的經驗。有些是公司對公司,有些是公司內不同部門,也有些更極端的例子,就是在每天的工作環境中跟外國人直接合作。合作的程度越高、越細,溝通的問題就會變得更加明顯。

台灣RD個性不喜歡自我宣傳,做了事情就平鋪直敘擺著,等著有人自己去看。尤其不喜指責,往往事情真相,只會在同事間私下閒聊才知,而非公開討論。彼此都是台灣人時,問題比較小,因為文化相同,會特別注意。觀者有慧眼、夠內行,對效益如何、做多做少,多半就有個底。不過對方是外國人時,沒講經常等於沒做,沒聽到就是不知道,事情經常就比較麻煩。

比如這陣子,老外大老闆(以下稱W先生)老是把人抓去review,也會檢查這段時間內工程師寫的程式碼。有位程度相當不錯的同事在接受review時,W下命令檢查他寫了多少行程式。這當然是件超級蠢的事情,尤其他平時對每人工作細節了解有限,似乎應該了解這些程式碼「做了什麼」比較有用。結果是這位同事心情相當不好,但也只是很委婉的表達,我很確定W根本不知道他有意見。

這當然很可能是誤會,也很可能是W真的就那麼草包。但是,在沒有明確表達的情況下,工程師得到了錯誤的評價,直接影響到自身職涯,W對情況也仍然不了解,問題完全沒有解決,所有人都輸。同樣一個W先生曾經在讀過我對一位外國人的回信之後,認為我過於間接、委婉,而寫了這樣一段話給我:

Remember you are talking to typical ignorant Westerners here. Unless they hear crystal clear that you think they delivered shit, they will still believe you must be the happiest man alive to be able to work with them.

「請記得你是在對典型的西方白痴講話。除非你很明確的告訴他,他做的是屁,不然他會認為,你覺得能跟他合作是世界上最棒的事情。」

同樣的話完全可以適用大部份外國人,包括w先生自己。如果對於這些傢伙有什麼意見,把話直接丟到他們臉上就是了。他們就是這樣受的教育,鼓勵表達意見。只要把握客觀、不情緒化的原則,直接了當的對話就是最好的。

2008年2月11日

好聲音

介紹右方點唱機的主角:Joanna Wang,在張弘毅的紀念音樂會上首次聽到她,一個赤足演唱的歌手,著實驚豔!

2008年2月10日

破病的新年

由於某種神秘的原因,我從2/4日凌晨起開始感冒,病勢在2/6除夕凌晨於寒冷的南下高速公路上達到巔峰。除夕整天都在發燒,直過了兩天才稍稍好些,直到現在仍然是喉嚨作痛,言語不便。因此之故,原本預定今天應該在陽光普照的清靜農場騎車出遊,卻變成在寒冷陰雨的台北市與電腦為伍,只能說時也,命也。

我實在很羨慕頭好壯壯、百病不生,生了也是幾天就好的人啊。

2008年2月5日

三十歲的五十肩

a.k.a. 如何用工作搞爛自己的身體

某天清晨由睡夢中醒來,一時還不知原因為何,傻了一會才發現是雙肩劇痛的緣故。洗了把臉,還是痛。決定不管,回去睡覺。起床後更是受不了,坐在椅上動彈不得。乾脆打電話請假,去看中醫。

才解釋幾句,醫生就開口說這是五十肩。之所以叫這名字,意味著好發於五十歲左右,卻在我這未滿(是的,未滿)三十歲的身上發作。直接原因是,睡覺時沒有著重肩部保暖;遠因則是,前陣子亞力山大歇業,我沒有晚上運動的時間壓力,加班過久。少運動又加班,等於是雙重損耗。

對程式員來說,放下做一半的工作是很困難的。我想做到一階段再放下應該是可以允許,然而必須注意叫自己不要繼續做上件工作中想到的附帶事項,轉而寫下摘要,留給明天。不然,搞到自己的career提早結束,也非想要的結果。