2008年5月31日 星期六

關西行:旅館比較

在關西的九天裡,我共住了三家旅館,感想如下。

由於我是一人旅行,旅行社說一般機票加旅館(俗稱機+酒)是雙人床,單人沒有這類服務,只好自己另外找。我住的旅館依序是 New Oriental Hotel、APA HOTELToyoko-inn。其實三家旅館有的東西差不多,出門在外基本的需求都有,像是吹風機、熱水壺、moring call、個人衛浴、小冰箱、電視、房內免費上網、大廳電腦上網、早餐。而且設備還都差不多,morning call的用法不同,但語音都是一樣的,馬筒也都長得一樣,旅館業背後的供應商大概都是同一家吧。稍微不同的地方是,APA Hotel是觀光飯店,沒有提供投幣式洗衣機,但有可以使用者付費幫你叫按摩師...。旅館內的餐廳也較高級,早餐是buffet。APA Hotel之外的兩家是商務旅館,費用較低,有提供投幣式洗衣機和烘衣機,以下個別說明之。

New Oriental Hotel 是 PAKDD 指定的四家飯店裡,最便宜的一家,一晚含稅日幣5,500,位於阿波座站一號出口對面,交通便利。雖然有的東西和另兩家差不多,可是看起來很簡陋,一進房間我就覺得自己是來大阪出差的(雖說本來就是如此啦),觀光的心情瞬間消散。特別的是地下室有大澡堂,原本想說可以泡看看,結果住的第一天清晨失火,隔天就不能用了...。

之後到京都時住 APA Hotel 京都站前店,離京都車站很近,走路三分鐘內可到,到車站途中有家小便利商店。旅館服務員會說英文,不知是APA Hotel的人都會,還是因為京都站有特別安排過人手。單人房一晚官方價是10,000日幣,我透過旅行社訂,台幣2,500,有便宜一些。由於我太晚訂旅館了(出發前一週),週末京都的旅館都客滿,剛好旅行社能代訂到房間,省了些工夫。另外不知算不算加分,電視有附雙語功能,看洋片時可以切回原聲道,不用看著一堆金髮人自然地說著日語,違和感超重的。況且,我的日聽沒有英聽好啊!

Toyoko-inn 是從 herbage 那聽來的,日本的商務連鎖旅館,原本以為會和一開始住的 New Oriental Hotel 一樣糟,沒想到擺設不輸 APA Hotel,可惜工作人員不會說英文,而且 APA Hotel 的人比較年輕(這...也算加分項目吧)。但 Toyoko-inn 一晚單人房只要 6,000 多,提供免費的熱水、冷水、冰塊、早餐,還有一樓大廳的電腦可以免費隨意使用,不像 APA Hotel 是 100 日幣 10 分鐘又有一堆限制(只能開一個 IE,無法執行其它程式)。整體來說,我很喜歡 Toyoko-inn,物美價廉。附帶一提,青年旅館大概 4,000,民宿可以壓到 2,000,可是要和多人共住一間,據 BlueCat 說,睡眠品質不好。

APA Hotel 和 Toyoko-inn 在許多地點都有分店,有些就在地鐵站出口,相當方便。價位上 APA Hotel 稍微貴了點,不過格調也高一些。而 Toyoko-inn 生活機能較完備(洗衣、烘衣,好像還有熨斗),擺設也不會差,作為觀光旅館也OK。對了,兩家店 check-in 時間前和 check-out 時間後都能借放行李,不過我猜一般旅館應該都可以吧? Toyoko-inn 的線上預約系統有點爛,不過有中文介面,而且預約的話,會有些特惠,像我去的時候是送小禮物,指甲剪、一雙襪子和某個忘記的東西給你選。對於 Toyoko-inn 只有一點小擔心,早上離開時,櫃檯人員會問你要不要清理房間,若要的話,要把鑰匙交給她。我問她回來時怎麼拿回鑰匙,她和我說說房號和姓名就行了。我回來時照做也的確拿回鑰匙,感覺管制有點鬆,至少也對個護照吧。

2008年5月30日 星期五

琴之森劇場版

琴之森劇場版

「一緒にいこう...森へ!」(一起前往森林吧!)

「琴之森」是「花田少年史」的作者一色真人目前連載中的漫畫作品,目前日本出到15集,台灣是14集。劇場版取出前段劇情,完整地呈現一之瀨海的小學時代,以雨宮轉學到鄉下為始,轉回東京為終,光看劇場版的話,搞不好會有「雨宮在鄉下遇到森林的妖精,從而真正愛上鋼琴,最終成為世界一流的鋼琴家」的錯覺,這個說法也沒什麼不對,只是這位森林妖精日後的發展才是主線,劇場版呈現的故事,是一切的開端。

閱讀原作漫畫的最大遺憾是,鋼琴演奏得自行想像,對像我這種對古典樂不熟的人來說,大多場合只能看著畫面,而少了音樂。劇場版將此點遺憾補足了,還加了相當出色的原創曲「Forest of the Piano」,在關鍵劇情下蘊釀氣氛。整體來說,不論是畫面還是音樂,都佈置得相當貼切。

相較於「交響情人夢」的搞笑情節和戀愛故事,「琴之森」以寫實優美的手法表現,配合文字描述,時常感動的不能自己。森林裡的鋼琴已夠優美了,還適時地再灑落一片日光,真是美得太過份了!

琴之森劇場版

我相當喜歡一之瀨海自在玩鋼琴的神情,以及他坦率地生活方式。如同雨宮在海身上看到了自己的缺失,我也找回自己遺失的單純。阿字野這麼對雨宮說:「你能更喜歡自己的鋼琴的話會更好,如此一來一定能明白,沒有和別人比較的必要。」礙於現實考量,不斷地自問自己的優勢何在時,漸漸迷失了追求知識和技術的純粹樂趣,以及忙裡偷閒的自在。不知不覺地,時間變自由了,經濟壓力減低了,我卻不像以前那樣過著平衡又充實的生活。接下的日子,要好好地迎向憧憬的生活啊!

廁所公主在劇中的表現也很棒,原作該有的點,劇場版都完美地呈現,可惜漫畫裡廁所公主的劇情不多,我很喜歡這個角色的說。

琴之森劇場版 - 廁所公主

琴之森劇場版 - 廁所公主和海

最後,介紹一下劇中的主題曲,可以從官網聽到主題曲「Forest of the Piano」,非常的有感覺。唯一的遺憾是,以劇情的走向來說,這首曲子只能適時作為背景樂,不能作為關鍵時的演出曲,畢竟在漫畫進度裡,都是演奏古典樂而非自創曲。若想彈的話,《ピアノの森 CD BOOK》有附 「Forest of the Piano (simple version)」 的譜。

關西行:素食

日本吃素很不方便,而且他們對素食的觀念和我們不同,有些人會認為魚可以吃,或是可以含動物性成份,要特別注意。這次要在大阪京都一帶待九天,對我來說是一大挑戰啊!我事先在背包客俴的素食討論區和 ptt 的 love-vegetal 版查了些資訊,滿受用的。

大阪可以找到幾家素食餐廳,可是都只作午餐而己;京都某幾個寺廟有精進料理,但太貴了我都沒去試。或是到義式餐廳點義大利麵,請店員做成素食可食的,聽說印式料理店也可以,我沒試過。找不到時就到便利商店買白飯或稀飯配自己帶的素肉鬆,便利商店也會有幾碟小菜,像是醃茄子和小黃瓜,成份看起來好像能吃的樣子。白飯比較難買到,而 7-11 和 Family Mart 會有稀飯,一包日幣 150 左右,量有點少,我都一次買兩包,買回來用熱水泡五分鐘撕開封口就能吃了。記得帶好泡麵碗筷,大潤發有賣,蓋子、碗、筷和湯匙合起來一組好像台幣50還是100元,沖泡麵和熱稀飯都很方便。

另外,記得印好 IVU 提供的素食說明文,可以拿給店家看,看他們能不能幫你處理,不過傳統日式餐廳大概不會受理。我在海遊館旁的餐廳繞了一圈問了幾家店,他們都說飯裡本來就有摻了,沒辦法提供素食餐。

在大阪時我是到 Greens 或 Green Earth 用餐,京都時則是在京都車站內,京都劇場旁的義式餐廳吃義大利麵,晚餐則是稀飯配自己帶的素肉鬆或是自己帶的素泡麵。

以下介紹大阪的這兩家餐廳:

Greens

位於大阪港摩天輪對面,很好找。週四週日休息,只作午餐,日幣 800 元。


Greens 是 buffet 式的,除固定的生菜沙拉、麵包和湯外,每天會有不同的兩道菜以及點心。有些菜會加蛋或奶製品,記得一一確認。

Green Earth

位於大阪市本町站15號出口附近,有點不好找,見後面的照片,有地圖。週日休息,只作午餐,八人以上可以預約宴會,晚上亦可。老闆英文說得很流利,另有一位店員聽得懂也會說一點英文,還會說一點點中文。

上圖是某天的午餐套餐,我吃了一口後才想到要照相。還有許多餐可點,而且不同天的形式不同,中西日式都有。這家店以健康為主,在台灣都很難找到作得這麼健康的餐,味道也不錯。

Green Earth 的地圖。

在大阪時,只要不怕花時間,大可搭地下鐵去素食餐廳用餐,感覺挺安心的。但京都就慘了一些,所以我都是早上走洛中的景點(如東本願寺、二条城),回京都車站吃義大利麵,下午再到遠一些的地區走連續的行程。雖然有些花錢,反正出門在外,吃得好玩得愉快是最重要的!

2008年5月29日 星期四

關西行:行前準備

在5/20去日本前,有一堆雜事待處理,特別是碩論最花時間。只好到日本後才仔細規劃旅遊行程,去之前只想好一個點日本橋而已...,個人嗜好嘛。

我在大概15天前開始準備,機票旅館都還沒訂。先看完BlueCat先前去關西11天的心得,即使看了兩遍,還是什麼都不懂。到書店翻了各式的旅遊書,稍微清楚了一點。接著直接用電話問BlueCat有什麼建議。BlueCat說可以參考背包客俴,裡面有超多資料,還有可以先買一本關西旅遊總覽的書,再挑定點買詳細點的書,我後來照做,發現超有用的。

一開始我滿排斥買旅遊書的,總覺得照著別人規劃的行程中,似乎不夠「自助旅行」,也不想多花幾百元。實地走了幾天後,我才想通,就像我們到台灣一個未拜訪的城市,沒有旅遊書,無法在幾天內亂走「塞」到值得去的景點。事先在網路上查的資料也以文字居多,不方便做為指引。其實和日後在日本花的錢比起來,花不到一千元台幣買兩本旅遊書,真是值回票價,容易規劃行程,回來也方便回顧。重點是,要買提供各種旅遊路線的書,之後可以自行參考融合成自己的路線。像在京都走完三天後,我發現各地值得去的點就那麼一兩個,沒必要硬為了順路,而在一個地區一路參觀次熱門景點。所以在大阪市區時,我反而是各個點只走一小段,滿足後就換下個點,不再繞路看附近其它點。

我買的書分別是這《京都 大阪+神戶 名古屋 奈良 和歌山食玩買終極天書08 ~ 09全新Update版》《京都散步地圖》。用前者規劃大阪行程和了解交通路線,書裡有附大阪鐵路圖,和來返機場的各種方式,相當受用。後者以京都東西南北中五個地區分別介紹,在各區把可以用走路連起來的景點串成一日行程,並附詳細地圖說明如何搭巴士或地鐵到達,如何從一個景點走到下一個。兩本書都提供眾多行程,可以自己挑有興趣的整合在一起。

除了書外,我有開一個文字檔案,依食行住行樂和證件等分類,想到什麼就寫上去,查過後再加註OK。就這樣滿順利地在15天內想到就補一下地完成必要的規劃,有什麼不懂的上「Yahoo!奇摩知識+」查,很方便。舉凡如何到機場、登機流程、住宿等應有盡有。當然,背包客俴也很方便。另外,近日氣溫可以到 天気予報 - ウェザーニュース查,介面超方便的。

日本關西行總篇

世界很大,人很多種。

一直以來,我不喜歡旅行。之前有機會去北京和西安各一次,也只參觀了一天:在北京看紫禁城,在西安看兵馬俑。後來看到桶哥他們去華山,才覺得可惜,當初至少也該多去長城和華山看看才是。所以這次有機會去日本關西,我決定試著旅行看看,也許十次裡有九次試之前就知道沒興趣了,至少,第一次的嘗試是值得的。

於是我在5/20到了大阪,於昨天5/28從大阪回來,今早維持在日本的作息醒來,難得在早晨遇到室友。大刁問我,日本好玩嗎?我側頭想了一下,回答沒特別好玩的,我本來就不喜歡旅行,只是,這回我用雙腳證實了!雖然如此,這仍是值回票價的單人自助旅行,之後會陸續補上下列心得:

比起參觀各式景點來說,一個人的自助旅行,以及旅途中遇到各式各樣的旅人,反而是最有價值的部份。感到自己可以活得多幾分色彩,少一些自我設限。我打破了一些框框,也看到更多的框框,事在人為,不試一下不會明白的。

趕碩論之餘,看能不能每天寫一些吧。

2008年5月6日 星期二

學習的方式不斷地在改變

記得小學時得到圖書館找資料,順便看看劉欽興漫畫。高中時開始學著用網路找資料,但仍維持國中時自己手寫筆記整理的習慣。大學後會交錯使用電子書、實體書、網路找資料,上過的課,會把投影片整理好,待要查時再拿出來用,有了投影片,似乎已可很快地溫故知新,再適當地用 BBS 整理零亂資料,一切似乎很順暢。

研究所開始,漸漸發現看 WikiPedia 的比例愈來愈高,有時乾脆直接上 WikiPedia 找,結果剛才要找 fragmentation 的定義,回頭看 OS投影片,看不到什麼有用的知訊,WikiPedia 一查,完整又詳細的說明馬上出來,文字組織明確,定義和例子兼具,實在想不到比這更方便的查法了。

小學時當興趣閱讀的兒童大百科,曾幾何時,已變為占空間難以使用,又容易過時的存在呢?

隨著獲取的資訊愈來愈雜,深度廣度都在急遽變化,開始架 Wiki 整理零散的知識,偶而用 Blog 較有系統地寫下心得,開始覺得,永遠不會有完美的方法。資訊不斷成長,學習的方式也跟著在改變,不只要學新東西,也要適時學習新的學習方式,拘泥於過去學習方式的人,相對來說是愈學愈慢,終會跟不上前進的腳步。對於這樣的變化,我感到的不是恐懼,而是有趣!

五年前有誰想得到,WikiPedia 或 QA 系統 (e.g. Yahoo!知識家),有可能如此發達?社群書籤 (Social Bookmarking) 也帶來新的使用方式,在許多層面上來看,它們是搜尋引擎無法取代的。找資料和管理資料的方式將會漸漸地多元化,只懂得 google 終會跟不上時代的。若對此有所疑問,不妨用同樣的關鍵字到 GoogleWikipediaYahoo! Answersdel.icio.us搜尋,看看出來的結果,略加分析,就會發現這四者有很大不同的特色,視要找的資料而定,各自有擅長的領域。

也許未來仍會有更快的找資料方法,比方說根本不用找,資料全都被記錄下來,看過的東西永遠不會忘,只要索引一下立即取回。以現今硬碟空間的成長速度和個人化工具發展來看,這樣的遠景似乎不用五年就有可能達成吧。

2008年5月4日 星期日

深夜,聽琴聲

好久沒有深夜聽音樂的感動了,剛好交大公用琴房漸漸地衰老,原本打算搬新家後,再買電鋼琴來規律練琴,結果最近幾個月卻和音樂愈離愈遠,少了一些感動。

這幾天重聽 YsF 的片頭曲 - 「預感」,聽著聽著,重燃當時的哀傷不捨,YsF 的劇情其實沒特別引人入勝,和 Ys6 一樣,只算中規中矩的小品,可是 YsF 的音樂相當有感情,加深劇情的影響。像這樣的日常生活,配上一些偶然的小感動,也沒什麼好挑剔的。

追求自我實現,挑戰新難關的我,總會和渴望平淡生活的自己,互相衝突。雖然沒有任何根據,我相信漸漸地,兩著會愈來愈近,直到有那麼一天,合而為一之時,也是一切走向最圓滿的時刻吧。

喔,還有身體健康的自己,也期望他和以上兩者共向美好的未來。不知為何,這類幸福的小感動,總在夜深人靜時才會浮現。

最後,補上深夜聽琴聲後,第一次留下的感動文字:

即使是夏天的夜晚,如果不是很熱的話,我寧願關掉風扇睡覺。

讓透徹的琴聲能更純粹地展現,享受黑白相間,點點滴滴落下的雨滴聲。
2007/08/22  

在那之前還有許多感動的時刻,只有等到感動隨年紀增長減弱後,才驚覺應該要留下些什麼,提醒自己失去了什麼。也許當初怕寫下去之後,就無法繼續靜靜地欣賞吧。

2008年5月3日 星期六

騎車去看「鋼鐵人」

今天打完球後,忽然有人提議要去看電影,擇期不如撞日,當然是今天就去比較容易成行。至上次和老人茶會會友們去看電影,沒想到已隔了一年半。在那之後,只有和 Ambuscade 去看「變形金鋼」,至今也差不多一年沒進電影院了。

今天的成員有阿德、姿樺、yulong、黃哥和Jalamorm,少了每次都在的前.客服小王子有些可惜,不過人生就是這樣啦,大家都過得快樂就好。這部片的劇情不錯,兩小時完全沒有冷場。事實上,我是回來看電影板的討論才知道片長有到兩小時之久。除了有電影院必備的聲光效果,喜感也是十足,劇情的鋪陳也很順,沒有一絲冷場,初期主角遇難那段轉折,讓我有些感動。硬要挑毛病的話,大概是女主角的演技不夠好,劇情緊張時的聲音聽起來有些不合。

看電影前,我忽然想起過去和固定班底去看電影時,只有看「頂尖對決」那次是好片,其它像「世界大戰」、「惡靈古堡」第二集等,真是看得超悶的。所以在進電影前一刻我追問了一下,這次是誰提議要看「鋼鐵人」的,結果心虛的阿德說是黃哥講的,他只是附議而已,還補上這樣的發言「若不好看是黃哥的錯,不過我對他有信心」。沒想到還挺不錯的,嗯,看來以後挑片要給黃哥挑,打球放槍和挑好片是互無影響的。

結束時我本來想聽完片尾曲再走,照慣例大家沒什麼興趣,所以又提早離場了。沒想到回來看電影版才知道結束後還有一小段,類似為續集鋪路吧。看來電影之神有托念給我,只是我們無緣注意到它啊!

備註

以一個理工人的角度來說,看到片中主角動手打造機器的場景,勾起高中時期給自己許下的夢想。如今的我雖然實力提昇不少,但明白自己的能力後,反而以為離目標又更遠了些。仔細想想,其實是熱情不如高中時的自己而已,喚醒過去的熱血,持續前進吧!

2008年5月1日 星期四

初始化 graph 的教訓,不熟的語法別亂用

昨晚跑了個程式,今天醒來不久接到york的電話,說連swap 在內資源都被我吃光了。

這個程式有三個步驟:

  1. 從資料庫裡取出一些資料轉成 graph G(V, E)
  2. 將 G(V, E) 轉成 G’(V, E’),E’ = { (u, v) | (v, u) in E }
  3. 利用 G, G’ 算HITS

原以為是 graph 大小超出我的預料,做了一些縮減後就重跑,吃完午餐回來看,不對,怎麼又停在產生 G’ 的部份。接著在一些錯誤的地方最佳化,最後找到問題的源頭。

在初始graph時, 我以前是這麼寫的:

ur = (1..user_ids.size).map { {} }

產生一個長度為 user_ids.size 的陣列,並在每一個元素內填入一個 hash table (i.e. {}),也就是類似 adjacency list 的存法,擁有 adjacency matrix 和 adjacency list 的好處。這可是過去試了許久找到最滿意的存法,改天再補上遲遲沒寫的 graph 表示法的心得吧。

上面那段程式以前用得好好的,後來我想試試新語法,改成這麼寫:

ur = [{}] * user_ids.size

這個寫法是原自下面這個 idiom code:

array = [0] * n

一般初始陣列時可以這麼寫,會得到一個長度為 n ,初始值為 0 的陣列。

可是 [{}] * n 表示所有元素都指向同一個 hash table (這行程式只產生了一個 hash table),於是災難發生了,超大的 hash table 導至超糟的效率,更糟的是,我又用這個 graph 產生 G’,使得 G’ 變成幾乎 complete graph,然後 memory 就爆了 ( |V| 很大,但原本是 sparse graph)。

附帶一提, Ruby Cookbook 裡有提過這問題,當時有看懂,但沒完成參透啊!比方說當 hash 內元素不存在時,要自動產生一個陣列的話,標準錯誤寫法如下:

table = Hash.new([])

因為陣列只有被初始化一次,存在 table 內,當 table[key] 不存在時, 不管 key 為何,table 都會傳回那一個陣列。詳見以下的例子:

irb(main):088:0> table = Hash.new([]) irb(main):089:0> p table {} irb(main):090:0> table[0].push 5 irb(main):091:0> table[1].push 10 irb(main):092:0> p table {} irb(main):093:0> p table[2] [5, 10]

正確寫法如下:

table = Hash.new { |h,k| h[k] = [] }

這故事告訴我們,語法要學熟,不然等痛過後就會記熟了。