2020年12月19日 星期六

日本鐵路便當學問大:便當裡的故事

 

相較於台鐵便當用一個排骨就制霸全國,日本鐵路便當可說是百花齊放,令人目不暇給。北至北海道肥美巨碩的螃蟹、鮭魚卵,南到沖繩韻味十足的黑豚、黃金薯,日本職人竭盡所能地把當地農漁物產濃縮到方寸之間。以便當盒這個載體,將「千滋百味,共聚一隅,車馬相逢,一期一會」的日式美學傳達給遊客。

台灣人喜歡熱騰騰的飯菜,偏偏日本鐵路便當九成九皆是冷食菜餚。日本料理人竭智心力開發出冷了也好吃的山珍海味,遇到不解風情的台灣消費者,把便當丟到微波爐加熱食用,這就是「你的糖衣,我的毒藥」的新解吧。日本當地為常勝軍的橫濱便當老店「崎陽軒」來台北車站設點後,也得入境隨俗地擺起蒸籠賣起熱燒賣便當,可見民族的飲食習慣是根深蒂固,幾乎無法動搖。排除冷食在台灣亞熱帶氣候有不易保存會食物中毒的疑慮,我個人則是偏愛放久也美味的日本便當。

市面上也有以日本便當做為主題的書,但多數是翻譯作品。「日本鐵路便當學問大」的作者Sunny是台灣人,先天受制於跨國取材的不便,卻仍然為讀者端出讓人眼睛為之一亮的紙上便當美食巡禮。有別於另一套知名的「鐵路便當之旅」日本漫畫,是以列車旅行的故事橋段鋪陳,穿插呈現各地車站出現的鐵路便當。Sunny單刀直入將幾十種特色便當分成八個主題,以跨頁編排圖文並陳。左頁描敘主題便當背後的故事,右頁搭配餐盒正面彩照。像是直球對決,鍞定喜愛日本鐵路便當的讀者。在圖片的附註,作者會直言菜色的嚐後感,看不到無謂的客套話(很多菜餚被說是「味道普通」)。

「日本鐵路便當學問大」不是簡單的一本便當圖鑑,它提供了許多與日本鐵路便當有關的知識。諸如,幕之內便當原本是觀賞表演時,在中場休息時間裡享用的餐盒,因此多樣化菜色和方便食用的食材大小是它的特色。冷食便當源自於日本人貼心的一面,避免在火車裡用餐時,食物散發出來的氣味影響到同車旅客。日本的鐵路便當,是鐵道公司委外由專業的餐飲業者來製作,也因此會體現出日本各地不同的物產與飲食文化。書中這些頗具趣味的便當趣事,相信也能成為日本便當發燒友們茶餘飯後的談資。


2020年12月13日 星期日

蓬萊百味臺灣菜:黃德興師傅的料理人生

 

說到台灣菜你會想到什麼?是「青葉料理」裡的菜圃蛋、瓜仔肉和三杯雞,還是喜慶婚宴的「辦桌」吃到的紅蟳米糕、清蒸鱸魚和佛跳牆。「蓬萊百味臺灣菜」一書,是台菜名廚黃德興師傅的口述自傳,由於黃師傅年近百歲,他一生在餐飲界的歷練經歷,也等同於臺菜文化變遷的珍貴史料。讀者可以看到國民政治來台前後期到李登輝執政,台灣各時期經濟環境的差異,近而形成的飲宴文化。

黃師傅是北投人,民國初年大環境的經濟條件很刻苦,為了謀生讓親友引介到知名酒樓「蓬萊閣」當童工。「蓬萊閣」為日治時代就聞名的高級酒樓,是政商名流相互招待的交際場所。它有著和席與漢席料理菜譜中有上千道菜餚,魚翅、鮑魚各式山珍海味,連豬油都自己用豬油脂自己爆,高湯還能分一級、二級和三級三種。台灣仕紳的經濟能力和文化素養的巔峰位於日治時期,而隨著國民政府來台而每況愈下。黃師傅在因緣際會下在「蓬萊閣」見識到極致的臺灣菜,許多菜餚至今僅現於菜譜。像工序繁複的菜色像「圓仔燕」、「金銀燒豬」,用料奢侈的「百鳥朝鳳凰」、「一品鍋」已經不再復現於今日。

國民政府對公務人員的禁奢令為酒樓招待文化劃上休止符。銀行、企業各自成立招待所,將交際應酬潛藏到抬面下,間接造成像「蓬萊閣」這類高檔酒樓的式微。黃師傅也在酒樓結束經營後,轉向北投酒家執勺,參與了臺菜轉型的下個階段。早期的北投溫泉文化講白了就是風俗業、「查某間」,經營者多半有著黑道背景愛「風神」,菜色開始重視擺盤,並推出創意、特色料理以吸引客人。賓客來消費是醉翁之意不在酒,性交易為主,料理次之,造成了備料簡便、出菜迅速的清粥小菜、涮火鍋的興盛。也是「青葉料理」這一派台菜的源起,自此做工繁複的古早味臺菜便漸漸失去舞台。

隨著政府廢娼的政策,北投風俗業受到打擊。黃師傅手藝精湛已成為名廚,受邀到當初新成立的「來來飯店」負責臺灣料理擔任主廚,這也是推進黃師傅職涯更上一層樓的因緣。現代化的飯店管理制度,將本求利的食材、人員費用管理,都是黃師傅在來來飯店任職時必須面對的挑戰。雖然透過「來來飯店」這個舞台能擴展政商名流的人脈,但業績壓力和無法自主決定菜餚的方向,讓他權衡之下選擇離開。輾轉歷經數個職場後,最後黃師傅終於落腳在讓他名聲響亮的高級餐館「康熙苑」。之後他能盡情發揮所長,鑑古立新地簡化、改良臺灣菜,爾後更走入校院教導學子傳統臺菜的精髓。正逢台灣意識的蹶起,臺菜從此進入自成一大家的格局。

經濟高度成長後的台灣,我們對飲食的需求從最早的「吃粗飽」變成近期的「吃好、吃巧、吃健康」。重油、重鹹、大菜眾人分食的臺灣料理,不免令人退避三舍,變成年節喜慶才會享用的罕見佳餚。「蓬萊百味臺灣菜」一書除了讓讀者領略台菜變遷的始末,從中也能發掘許多古早的人情世故。譬如早期的黑道與風俗產業、警察包庇的盛行。從日治時代名流往來的招持風氣到國民政府遮遮掩掩的設立招持所,大老闆和政府人物酒酣耳熱的好交情,從來不曾退流行。電影「一代宗師」中有句台詞「見自己、見天地、見眾生」,黃德興師傅就其平生經歷,可謂是臺灣菜的一代宗師。

2020年12月7日 星期一

日本大不同:決戰東西篇 / 日本大不同:縱橫日本篇

 

「日本大不同」兩冊書,以設計感十足的封面和獨樹一格的開本尺寸,讓它常被文青小店、日系百貨挑來當做店頭擺飾。內容則是相當輕鬆易讀的各種日本文化「豆知識」,像是那個地方的醬油最甜、何處的豆皮壽司是什麼形狀等等。對非哈日族而言,這些支微末節的日本各地文化差異,真的無關宏旨。但日本人就是能把一個看似槁木死灰的主題,像戶愚呂弟般用盡120%的力氣,讓整本書散發出濃厚的日本味。

書頁穿插著精緻細膩的文物圖片,這也是「日本大不同」系列叢書的精華之處。雖然拍攝的東西,都是你我生活上常見的物品,比如酒杯、黑輪、火車等。專業攝影師「山出高士」的取景,配上「岡部敬史」口語般的文字,產生了一加一大於二的效果。武斷地說,假若刪除這些高質感的照片,僅靠「日本大不同」本身的內文所展現的吸睛力,可能還不如緯來日本台播出的「日本大國民」。

作者「岡部敬史」在書中提到了一個值得分享的觀點。他認為日本東西(關東和關西)文化的差異,都源起於人們對傳統的「堅持」,也就是這份堅持造就了許多「古早味」和「多樣性」。標準化和現代化,或許在經濟層面上是最理性的選擇,但如果能多一層人文的關懷,從傳統和文化保存的角度來評估,我們不該這麼迫切地追求「效率」。看看台灣各地所謂的老街,賣著千篇一律的名產小吃,其實我們和日本的差異也就高下立判了。

2020年11月25日 星期三

這不是你以為的俄羅斯:第一本台灣作者撰寫的俄羅斯輕文化觀察書

 

2019年起新冠肺炎度捲全球,跨國界的旅遊行程戛然而止,卻不會影響到「紙上的環遊世界」。咱們依然能藉由五花八門的風土民情遊記/雜記來開擴視野,豐富自己的世界觀,避免受到媒體/網路上的刻板印象,毒害我們對世界的理解與包容。

「這不是你以為的俄羅斯」不是本旅遊導覽小冊,谷哥能查到的資料,應該不值得你掏荷包購買。主題環繞著「俄羅斯」這個世界面積第一的國家,書中先從史地的宏觀格局開始說起,再逐步切入貼近平民日常的食衣住行等枝微末節。作者流暢的文筆與多采多姿的異國生活際遇,真的會讓人手不釋卷地有如身歷其境,一同去認識近而熟悉,這些網友們稱呼為「戰鬥民族」的俄羅斯(斯拉夫)人們。

對這個老牌的共產主義發源地,我在沒讀過「這不是你以為的俄羅斯」一書之前,總是充斥著負面的觀感。不知是深受孩時反共愛國教育的洗腦,抑或是被好萊塢編劇們特意為之的妖魔化影響。一提到俄羅斯,就聯想到特務滿街走、黑道治國、核子武器常弄丟之類的背景設定。居然對一個未曾踏入的國度,會先入為主地抱持著一定程度的厭惡感,只能讚嘆人們想像力的偉大。

「唐宏安」和「裴凡強」兩位作者,像是幫我們開啟一扇文明之窗,讓讀者看見那個橫跨歐亞的俄羅斯。雙作者的設計,恰好融合不同的寫作風格與敘事內容,史地的脈絡分析加上生活經歷的分享,提升了內文的多樣性。「這不是你以為的俄羅斯」讓我們用平實不浮誇的角度去觀察俄羅斯。平心而論,戰鬥民族其實不如我們想像中的彪悍,然而源自於斯拉夫農民的DNA,加上極端惡劣的氣候形成的物競天擇,或許就是一種土壤,培育著俄國國民堅忍不拔的性情和永不言退的意志。

幾篇文章中也約略提到「現代沙皇 普丁」受到大部份俄國人民的擁戴的原因。2020年的當下,近日新聞報導普丁健康出了狀況,願他安好。誠心推薦,「這不是你以為的俄羅斯」肯定是「紙上環遊世界」之旅,不可或缺的景點。

 

2020年11月12日 星期四

Maven實戰


從事資訊系統開發的人,如果不是天生神力有著「一目十行,過目不忘」的本領,或多或少都會有如何達到「溫故知新」的困擾。畢竟資訊技術一日千里,永遠有學不完的新東西,但手頭上合用的工具與技術還是要維護,常常會有蠟燭兩頭燒的焦慮感。

相信今日從事Java程式開發的工程師們,肯定對Apache Maven這套開源工具不陌生。它將軟體開發生命週期的想法融入到專案管理及自動編譯工具中,讓不同的軟體專案能依循相同的目錄結構與建置階段。它有如Java開發社群的巴比倫塔,在跨團隊合作的專案中,減輕了因各自的專案開發風格(路徑規劃、編譯步驟)所造成的文化障礙。

Maven對Java社群更大的改變在於,它拯救了無數受困於JAR參考地獄的程式開發人員。透過POM設定檔中的依賴管理功能,宣告式地指名專案需要引用的JAR,Maven就自動幫你完成下載、相依性引用等讓人操煩的技術性細節。平心而論,採用Maven做為開發輔助工具,大大地提升了Java工程師的產能。

而這本「Maven實戰」便是具體而微地說明如何使用Apache Maven在實務的工作場景。它用一個前後呼應的Web應用程式專案做為範例,不疾不徐地說明了Maven中的方方面面。雖然在專案自動化建構工具的領域上已經又出現了Gradle這個後起之秀,但不可避免地仍然有許多專案是採用Maven,對於想要掌握Apache Maven工具的朋友們,「Maven實戰」絕對是值得收藏的好書。


2020年9月20日 星期日

歡樂邏輯養成班,超有料!:一學就會,一笑就懂,絕不昏昏欲睡的12堂課

 

想要一秒鐘惹怒工程師,只要對他本人說「我覺得你講的話沒有邏輯」。可想而知,每天得藉由程式碼和電腦搏感情的程式人員,是多麼在意自己的邏輯思維能力。卻也因為「邏輯」一詞的使用氾濫,常被現代人在日常生活上用來指稱「腦袋清楚」與否,模糊了「邏輯學/理則學」原是一項能增進「口語/文字溝通」正確性與效率的人類文明結晶,其重要性不亞於數學中的「四則運算」和「九九乘法」。

而「歡樂邏輯養成班,超有料!」一書便是能讓讀者輕鬆、愉快地閱讀過程中,吸收到最基本的邏輯學觀念。書中介紹的條件句「若A則B」,充斥在人們日常對話的情境中,像「如果今天是博客來會員日,我就會買書」。而人們卻常犯「若A則B,非A則非B(錯誤)」的推論錯誤,產生「如果今天不是博客來的會員日,我就不會買書(錯誤)」,更將錯誤擴大為「我只在博客來會員日買書」。後續介紹的「否命題和逆命題同真偽」、「命題和否逆命題同真偽」、「充分條件/必要條件」等觀念,都是透過幽默有趣,淺白又不失精準的說明,傳達給讀者,中間穿插著日本特有的四格漫畫更是有畫龍點睛的效果,讓思考著邏輯運算而忙碌的腦袋,能適時地喘口氣,用另一種方法(四格漫畫)獲得邏輯觀念的解說。每篇結尾都提供了驗證所學的簡短練習題,切記得按步就班地自我檢驗,才能獲得更大的學習成果。

近末篇章作者開始進一步介紹邏輯學中的「演繹」,帶出了「邏輯定律」中相當實用的幾個公式,包括了:「遞移律」、「肯定前項律」、「否定後項律」、「選言三段論」、「建構兩難律」和「背理法」。更把「演繹」和「歸納」兩大推論技巧的關係說明清楚,一解我心中殘存已久的困惑(誰先誰後)。舉例來說,時下流行的大數據便是利用歸納法來提出假設,再利用假設當前題進行演繹推論,但這種推論在前題不為真時將會失效,所以要記得時常確認前題沒變。

邏輯能力和數理能力一樣,都是用進廢退的智能技術,不論是已經身為家長想到培養子女在邏輯思維上的基礎,或是想保持自身在邏輯判斷上的神志清明。「歡樂邏輯養成班,超有料!」都是一本最適合「學而時習之」的優良教本。


2020年9月13日 星期日

Storm應用實踐:實時事務處理之策略

 

提到大數據,黃色小象(Hadoop)的名號已是婦孺皆知。但在巨量資料處理的實務中,Hadoop(和後起之秀Spark)只是批次運算的領頭羊,在天平另一端則是串流/即時運算(簡體稱為流運算)。Apache Storm便是名氣響亮的串流運算開源碼解決方案。

巨量資料技術最適合應用在各式的網路機制與服務。而最佳的資訊流架構規劃,應該是融合批次運算和串流運算。以這樣的使用情境為例「隨著網站使用者的瀏覽歷程,網頁自動呈現最多人感興趣的內容」。就是藉由巨量資料收集進行的批次運算結果,得出「最多人感興趣的內容」的數據洞見。配合即時(更專業上應該說「近乎即時」)收集的「使用者瀏覽數據」,動態改變「網站的呈現內容」,至此才實作出前述的系統機制。

或許有人會提出疑問,覺得同樣的數據流處理也可以用傳統的網頁程式技術來完成。差別在如果採用的是串流運算,它會針對Web主機裡的access log進行後端非同步的資料處理,實踐了營運和分析程式分離的資訊架構。一方面減少前端網頁程式的複雜度,提升程式碼的可讀性。另方面即使未來增加更多的數據分析功能,也不會因此影響到網頁回應的速度,造成整體網站的效能不彰。

從事數據分析的資訊人員,在談到串流數據處理時,肯定會聯想到Splunk(商用)和ELK(開源碼)這兩個知名的時間軸式(time-based)大數據分析平台。Storm很明顯地和它們不同,Apache Storm完全是個數據處理運算平台(platform),或更嚴格地說是一個數據處理開發框架(framework)。而Splunk和ELK是著重在巨量數據的即時分析,一條龍地提供「收集」、「處理」、「視覺化呈現」的分析工具。

拉回來說,細看Storm組成的元件和它在處理數據流時採用的架構,資深的工程師馬上會聯想到典型的訊息佇列(message queue)服務。猜的沒錯,Storm核心元件中的Spout和Bolt,對應的正是精典的「生產者/消費者」模式中「消費者」的角色。在架構Storm的解決方案時,也少不掉要安裝提供可靠數據來源的訊息佇列服務(如AcitveMQ、Kafka)。你可能會問,若是如此,又何必花費心思導入Storm方案,只要自行撰寫符合生產者/消費者模式的數據處理程式,不就可以打造出即時的數據分析功能?但是Storm平台能做的不僅是一般常見的多執行緒(multi-thread)消費者元件,它通透地提供跨主機(multi-server)、跨處理程序(multi-process)的消費者元件,理論上可以讓數據流處理的總吞吐量接近無上限(還是會卡在系統瓶頸點)。而導入Apache Storm也連帶著引進了管理介面、標準化的開發框架,這都能增進即時巨量資料處理解決方案的可維護性及穩定性。

這本「Storm應用實踐」的內容令我大為讚賞,一開始從最基礎的串流資料處理觀念說起,接著是核心元件Spout和Bolt的介紹。它以貼近IT實務的模擬案例來引導讀者打造可運作的程式原型,從中做學地逐漸讓人熟悉著手Storm開發的最佳程式範型(pattern)。

Storm的Spout和Bolt元件,如同Hadoop著名的Map/Reduce般,在極簡的類別設計下,展現出無窮潛能的實作空間。書中後半針對效能調校、程式除錯等進階議題詳加說明,還有比官網文件更深入淺出的Storm內部運作細節解說,當之無愧地可以說是「Apache Storm自學聖經」。終章作者介紹了Trident這個建基在Strom上的抽象框架,它提供了類似Spark Streaming一樣的「微批次/小批次」資料處理功能。老實說,Trident的複雜度足以獨自出版成冊,作者也言明只想粗淺介紹這個抽象框架,讓讀者有個印象,一般在開發Storm應用時不見得需要用到Trident。

「批次處理」和「串流處理」像是大數據工程師工具箱裡的十字和一字起子,兩者適用的情境和條件限制截然不同。透過妥善的規劃將兩者相互整合,會展現出一加一大於二的驚人成果。因此從事大數據工程的資訊人員,千萬要把握學習Apache Storm的機會,更別錯過「Storm應用實踐」這本值得典藏的傑作(還是有幾個勘誤處,細讀才會發現)。