2011/09/26

ICFP 2011

一樣搭凌晨五點半的 X70 到 Heathrow,在 BA007 上坐 12 個小時到東京羽田。飛機上幾乎沒睡到(日後幾天時差也調不太動,如 Jeremy 所預測,調完也差不多回去了)。降落時飛機竟然蛇行一陣,不過沒衝出跑道就好了。

到東京的時間是早上五點,出關大約六點,依照計畫直接前往東京電玩展。到機場的單軌電車站後先打開手機,卻悚然發現蓄電量不知為何只剩 3x%,代表我很可能面臨沒有 GPS 可用的窘境,幾張電車地圖也存在手機裡,但事到如今也只能硬著頭皮上了。依照 Wikitravel 等網站的建議先買了一張 Suica(上面圖案是 Q 版的單軌電車人),然後對照幾張地圖比對出我應該搭單軌電車到天王洲島、轉臨海線到新木場、再坐 JR 京葉線到海濱幕張站。在日本轉車是 nontrivial task,因為不同路線可能是不同公司經營,地圖上同一站實際上可能相距好幾百公尺,而且可能還得走到街上。電車很乾淨,那時還早沒什麼人,日文廣播有些許親切感(英文版很可愛),站名也都是漢字。駛過灑滿陽光的東京高樓之間,我還以為我身處第三新東京市 XD。(電車本身自然也完全就是 Eva 的經典場景之一。)

到新木場時,月台上已經有一群群一副宅樣的年輕人站在那兒等車,看來我沒走錯。抵達海濱幕張站時才七點,已經有些人潮,我只要跟著走就行。離會場愈近人愈多,過了當日票銷售據點後人龍出現了,但根據現場的排隊繩佈置來看,高峰期可能還會有四、五倍的人 — 幸好我早到!排隊的感覺有點像回到部隊,所有人擠在一塊跟著前面的人走。入口處有簡單的安檢(比方說不能帶刀劍形狀的東西進去),我完全聽不懂他們說什麼,可是好像也猜得八九不離十,反正看手勢、模仿前面的人就對了。稍後繞著會場外緣真正開始排隊時(剛才只是排安檢),有小販在隊伍外賣飲料,攤子擺在遠處,不會說日文又沒得比手畫腳,該怎麼跟她說我想買什麼呢?!幸好旁邊的人叫了 "ayataka",看起來是綠茶,我也就跟著說 "ayataka",獲得無糖綠茶一瓶。排了兩、三個小時,一開始艷陽高照,後來竟然下起暴雨,一陣下完再一陣,第二次還加狂風,讓我不禁回憶起成功嶺上這種天氣得穿異味極重的深藍色雨衣。十點十五分(開場後十五分鐘)終於進入會場,基本上就是廠商架起自己的「攤位」,但大廠商的攤位都相當誇張,是七彩舞台、巨型螢幕、試玩機台的綜合體,走上二樓往下看,只見萬頭攢動,滿滿的人潮真的如潮水一般在攤位間流動交融,中間穿插著 cosplayers 和 showgirls。我很快發現我確實對展出內容沒多大興趣,只想找到免費上網的地方,寄信給 scm 老師看能不能搞定晚餐。scm 老師很快就回信說可以一起吃,看來不用緊張了。這應該會是我唯一一次參觀東京電玩展,所以下午把握機會再進會場看一輪,有看到一些熱血機器人遊戲的廣告片,但沒有變形合體不能算真正熱血啊!

兩點鐘離開電玩展,坐 JR 京葉線到東京站接地鐵系統,四點入住 Hotel Villa Fontaine 神保町分店(所以確實有點距離)。房間比較小一點,但整潔程度令人讚嘆,特別浴室裡一切能發亮的東西都擦得閃亮亮全無水漬,讓我不太敢用。浴室裡另一個特點自然是日本特產免治馬桶,第一次試用稍微有點不習慣,但清潔效果極佳,剎時有搬一個回英國的衝動 XD。六點和 scm 老師和 WGP 另一個 co-chair Jaakko Järvi 一起去吃生魚片蓋飯,這是我第一次吃真的生魚片(在中辦的時候愛家炒麵有一次附素生魚片)和哇沙米,還滿不錯的 — 那時其實沒有很餓,但竟然還滿輕鬆地整碗吃完了。晚餐後又練習一下隔天的 talk,情況還不錯,剩下能準備的大概就只有睡飽一點了。

可惜晚上沒有真的睡好,所以隔天 WGP 即將開始時我已經有點想睡,只能希望待會腎上腺素多分泌一點。Jaakko 負責開場,scm 老師主持第一個 session,我是第二個講者(第一個是 Andres Löh)。Jaakko 才剛開始,房間內卻突然迴盪著來源不明的開場詞,原來是隔壁 ML workshop 的聲音也接到我們這裡了。狀況稍後排除,Andres 很快就講完(Q&A 的時候還幫我宣傳了一下)輪到我,講起來還算順,雖然有時候切換投影片不很順 — R800 好幾次按下去沒反應,一些連接詞/句也沒處理好。講了大約五分鐘,我想看一下剩餘時間,卻發現我忘了啟動 R800 的計時器,這下只好靠 scm 老師計時啦(我這時還是啟動計時,結果稍後 Venanzio Capretta 擔任我的討論人時,我放在桌上的 R800 振動起來嚇了他一跳)。講到高潮 ornament fusion 時,我按下按鈕把 sorted lists 和 vectors 融合成 sorted vectors 然後略為停頓,就在此時,隔壁 ML workshop 的人正好拍起手來,時間捉得剛剛好!(WGP 一些人也很捧場地笑了幾聲 XD。)單為這個點我就很想重看錄影 XD。我講完後 Venanzio Capretta 接手討論,問的第一個問題就是重點(用我的 framework 到底省了什麼力氣?),我猶豫一下之後決定召喚 DTP 的 backup slides 回應。第二個問題也很棒(如果有個 function 把 sorted list 轉成 search tree,用我的 framework 也可以把它升級成比較精確的版本嗎?),但也很容易回應。再來 Tim Sheard(此人稍後猛力攻擊一個 Utrecht 的 PhD student,說他一開始要解的問題根本不對,不過旁邊其他人幫那個學生圍剿他)想看 ornaments 實際上長什麼樣子,我也有 backup slides(本來有放在「正講」裡面,後來覺得很難講,改成 backup slides,雖然事後覺得其實還是應該放在正講裡面比較完整)。之後好幾個人都跟我說喜歡我的 talk,Oxford 方面 Dan 說他覺得我的 talk 是當天最好的,Jeremy 說他被我說服投影片用 transitions 是有意義的。所以算是(初步)成功了吧!我個人是覺得離完美還有不小的距離,就等錄影上網再研究修正嘍。午餐遇到 Oleg 和久仰大名的單中杰老師,晚上和他們一起去吃印度菜(單老師妙語如珠,果然名不虛傳)。

隔天 ICFP 正式登場。主辦人胡振江老師開場時超興奮,一直講 "ICFP two-thousand-one",我和 Oleg 一直笑 XD。稍後另一個 general co-chair(還是 local arrangement chair?我忘了)好心提醒大家日本地震頻繁,遇到不要驚慌,還有輻射量已經回到正常水準,不放心的話樓下有測量儀器。Invited talk 結束後就輪到 Jeremy 上場了。Jeremy 果然很會講,投影片也很優雅(最後還放了一張 Captain Kirk!)。讓我印象深刻的一個地方是 Jeremy 在講一條 monadic law,他說他不詳細講,但還是加了一小句關於發射飛彈的比喻,只那幾個字就讓我剎那間猜到那條 law 的意思,用字之精準有力令人瞠乎其後。三天下來不少 talks 都很有意思,講者功力也都有一定水準,雖然也有幾場讓人覺得是 trivial work 或是根本聽不懂在講什麼。Agda 出現在 ICFP 令人感到親切(內容是關於模擬 type classes 用的 instance arguments),幾場關於 modular composition 的 talks(包括 WGP 最後一場)讓我考慮 ornament framework 有沒有可能涵蓋這些例子,experience reports 有人用 Haskell 研究上古生物和音樂和聲,相當有趣。到第三天,會場隱隱瀰漫著一股不安氣氛 — 有颱風要來了!我下午精神不濟想溜走,但走到門口一看,外頭已經狂風暴雨,根本走不了。東京的公共運輸系統幾乎停擺,local arrangement chair 上台宣佈各線電車行駛狀況,只聽到暫停暫停暫停,大家只能留在會場等颱風過去。scm 老師說 Graham Hutton 把外頭情況錄下來想告訴家人沒什麼事,結果畫面裡樹枝亂舞,驚悚得很。會場外還吹倒了一棵不小的樹。事後得知這個洛克颱風是個超級強颱,略過台灣直撲日本,卻剛好被我撞上了。

第二天晚上有不少節目,另起一段。Phil Wadler 頒獎給 ICFP'01 影響最深的論文(沒記錯的話應該是 Recursive Structures for Standard ML),我和 scm 老師完全猜錯;再來頒發程式語言軟體成就獎,由 Simon Peyton Jones & Simon Marlow 拿下,理由自然是 GHC。稍後 Simon Peyton Jones 在大會聚餐上發表感言,敘述 GHC 二十餘年來的歷史,包括他兒女覺得他比較愛 GHC 沒那麼愛他們、一開始效率怎麼打也打不過 Lennart Augustsson、GHC 曾經有過最有意思的 bug 是把有 type error 的檔案直接刪掉、以及一些經典笑話例如在 GHCi 打 fix error 之類的。在我們前往聚餐場地前,還有今年 ICFP programming contest 的報告和頒獎:這次題目是某種紙牌對戰遊戲,因為地震後有限電措施,沒辦法在東京的 clusters 上對戰,所以要找(印象中像是在)關西和北海道一帶大學的 clusters 幫忙。冠軍由牛津博士生(都是 Luke Ong 的學生)組成的隊伍拿下(YA!!),使用語言是 F#。前往聚餐地點一路上我死巴著 Jeremy,果然坐到舞台旁的搖滾桌(Phil Wadler 的 "application, abstraction, and variable" toast 和 Simon Peyton Jones 講 GHC 歷史我都得以近距離目睹),和 Graham Hutton、Tim Sheard、Andy Gill 同桌,稍後 Jeremy 又把 scm 老師的前老闆武市正人老師拉過來坐我旁邊。武市正人老師極其親切,說起英文來慢慢的、沒有難懂的日本口音,一直記得要跟我聊天。到後來,他突然說想問我一個可能很難回答的問題:你們這一代對日本的觀感如何?呃,其實一點都不難啊,我就說我們這一代都是看日本動漫長大,受日本文化影響滿多,對日本很有好感,像我到東京還覺得街景很熟悉親切。他提到他經歷二戰,我就說那對我們已經是上一代的事情了,他才一副放心的樣子。(我倒是不太敢問他問這個問題的動機。)席間不免要有日本傳統文化表演,幾位藝妓先在台上跳三支舞然後下場陪酒。那些舞相當 subtle,我看到最後一支舞才勉強看出(或以為看出)一些端倪。回旅館的路上和 Jeremy 聊女僕與獸耳(他無法體會獸耳的意義,覺得日本人很會做可愛的東西但有點過頭了 XD)。

因為機票價錢的關係,我在 Haskell Symposium 之後多留一天整體會比較便宜。Oleg 邀我去當天晚上的 delimited continuations tutorial,早上我就自己出去逛,目標是淺草寺和秋葉原,不過我一下就覺得無趣,草草離開:淺草寺不大,而且因為經過轟炸重建,建築看起來嶄新得不太自然,前面的購物街我不太逛(只買了人形燒來吃),宗教活動我也沒打算碰。下一站秋葉原也差不多,模型店逛過去清一色是不認識的東西。兩個小時以內(含通車時間)就覺得此行目的已經達成。看來以後如果自己一個人出門逛可以不用排太多時間 — 我自己對逛街提不起興趣,但和朋友一起逛又是另一回事了。

回程電車又是一番折騰。我從神保町站出發,但走進錯誤的入口,不能搭半藏門線,只好改沿新宿線坐一站、換千代田線坐一站接回半藏門線、再坐一站依原計劃轉銀座線、最後在上野站搭上京成線往成田機場的特急電車,總共搭了五條線,每轉一次都得走一段。即使是星期六,電車上還是有不少學生通勤(甚至 WGP 那個星期天路上也有學生)。Hm, 日本升學壓力也是很大啊。成功抵達成田機場之後就沒什麼了,已經自己旅行好幾次,機場一切流程都很熟悉。沒意外的話,以後還有數不清的獨自長途旅行吧。

--
我也是很會拖稿⋯

Labels: ,