Leak(22 屆台北文學獎散文首獎)

Leak(22 屆台北文學獎散文首獎)

本篇為 22 屆台北文學獎散文首獎,當時獲獎所用的筆名為ㄩㄐ。

本篇為 22 屆台北文學獎散文首獎,當時獲獎所用的筆名為ㄩㄐ。

加班想找出 App 記憶體問題。一進入特定頁面,記憶體用量就往上爬升一階。折線像是樓梯,一層一層,爬到頂端,程式就會 Crash。

閃退。崩潰。

我聽見垃圾車的聲音,知道已經是八點半了。那時我們還沒有找清潔人員,每個星期五要自己打掃辦公室,再把一週量的垃圾打包,拿給附近的阿婆丟。茶水間吧檯上,貼著一張一年份的值日生列表,是另外一位工程師用程式跑出來的。據說程式同時考量了公平與隨機,即使請假或換班,也能避免同一個人連續做兩週。不過新創公司也就那幾個人輪替。

我考慮了一下,還是沒有把垃圾包起來拿下去丟。我打算專心處理好眼前的問題。Memory Leak,記憶體洩漏。就像漏水,記憶體不斷流失;差別在於記憶體並不會憑空不見,而更像是被遺棄了。還記得小時候玩過的「紅綠燈」遊戲嗎?鬼快要抓到你時,可以拍手大喊一聲「紅!」。這時候鬼不能抓,你也不能動,直到有其他「綠燈」跑過來拍你一下。

但如果有一個小朋友,喊了紅燈之後,卻沒有人記得要解救他呢?

這就是 Memory Leak。當工程師分配了一塊記憶體,卻忘記在使用過後好好釋放,這塊記憶體就會永遠站在那裡,沒有人碰得著,直到程式結束。

據說不同地區,也有不同版本的紅綠燈。有的是抱胸而非拍手,還有一種叫閃電布丁——或閃電逼逼、閃電滴滴,這又是和地區有關了——可以隔空解救其他人的囚困狀態。

不過在程式的世界,工程師既是被遺忘的閃電,也是粗心大意的布丁。而現在,我是鬼,要去抓出到底問題出在哪裡。


租屋處大門信箱被貼上通知:用水量增加,請檢查用水設備是否損漏。

我遵照指示,發現馬桶漏水,便自己到 B&Q 買了止水皮回來換。省下一筆找水電的費用,房東開心地說那麼水費就不跟你們加收。

然而沒過幾天,竟然變成水壓不足。晚上回家吃完飯,女友才驚叫沒有水。打開蓮蓬頭,自來水軟弱無力,像是雨後屋簷的細流。我無計可施,只能求助女友在台北的爸媽,兩個人帶著衣物浴巾和待洗的餐具,騎機車跨過一座橋去洗澡。

我沒有想過,第一次見家長會是這樣的場景。

油頭、垢面、赤腳、短褲和一包內衣內褲。

輪到女友洗澡時,她媽媽坐在沙發上,問起是否考慮在台北買房——「怎麼可能買得起!」我笑著回答,光是頭期款,就遠遠超過我現在的存款。「工程師」頭銜極具誤導性,要是在科學園區,第二年就可能破百;受到矽谷影響,大學寫過幾個網站,參加幾個黑客松,剛畢業也能在台灣一些知名新創,拿到不可思議的高薪。

然而那不是我。我們公司,還要自己倒垃圾。

星期五下午,打包好搭電梯至一樓,摸黑穿過市場的小巷,把垃圾放在指定的水槽旁邊。像是賊。要是不巧遇上阿婆,還可能被抱怨怎麼這禮拜又這麼多,要加收錢。

由於垃圾一週只丟一次,我們得制定更多規則:吃的不能丟公司,否則會臭掉。咖啡渣要裝箱冰進冰箱,否則會發霉。

每當有人問起我們公司在做什麼,我會講些產品功能或市場前景,但是不提這些事。

反覆向女友的媽媽道謝,載著髒衣服回家。扭開水龍頭,水管噗噗吐出幾口氣,水又嘩啦嘩啦地流下來了。


留美的大學同學問:H 呢?H 現在在幹嘛?

我們約在公館易牙居。他們休假回台,說看到 10 美元的食物都覺得好便宜。區塊鏈、Neural Network 和更多我不能理解的詞彙在圓桌上飄。沒有人知道 H 的近況。

我說,前陣子聽他在美國的義大利餐廳當前菜廚師。「他甚至自創了一道菜,真的被放到菜單上,還被拍照貼到餐廳的 Instagram。」

關於我大學室友 H 的傳奇故事很多。比方說他高中曾經進入物理奧林匹亞選訓營,卻因為最後幾個月迷上電子學,而失常沒有入選國手;不能保送,索性就以第一名考進台大電機。比方說他大一就被教授問過要不要做專題,大三選修研究所最硬的數位電路設計並輕鬆拿到 A+,大學畢業就已經發表了三篇國際一流期刊論文。

他是那種我們會用「神」尊稱的同學。大神。H 神。

電機系神明眾多。但是其中一尊在美國的義大利餐廳當前菜廚師。

然而更早,H 告訴我,他的興趣轉向心理,自學讀精神分析,考上了英國的心理研究所。更早更早,他大學畢業直攻哈佛大學博士班,研究領域是 AI 的晶片設計。

另一個大學室友 C 說,天哪,也太扯了吧?

我說,對啊,不愧是 H 神。

C 剛從英國回來。辭掉上一份新創的工作後,被 Facebook 英國分公司獵中人頭,通過視訊面試,飛去倫敦現場面試。晚餐結束,公館捷運站的二號出口前,我閒聊間才知道 C 上一份薪水是我現在的兩倍。

然而沒什麼好抱怨的。一直以來,我都是一個很幸運的人。或者應該說,我們這些台大電機的,九成九都很幸運。國高中資優班,學測滿級分。我們都被賜予一顆很好的頭腦,一層一層爬到頂端。

我不確定身旁的人,有多少覺察這份幸運。Instagram 上,朋友們進入 Facebook、Google 工作,某一天貼文便開始變成英文。感恩、聖誕假期,開車繞過各個知名景點,甚至有即將結婚的班對學弟妹,包下一整座海灘吃一頓晚餐。

那是一個我碰觸不到的世界。是一個我早已經放棄的世界。我選擇加入一間台灣新創,跳過晚餐,想找出 App 的記憶體問題。

再次聽見垃圾車的聲音。九點半了。

我發現問題是出在 Retain Cycle。

如果在紅綠燈遊戲裡,所有人都喊了紅燈——那就是 Retain Cycle。每一個小朋友都需要另一個小朋友來救自己,卻沒有任何人可以移動。這時候鬼就贏了,遊戲結束。

當程式內兩個物件,互相持有對方,這時即使身為工程師的你,不想再使用這兩個物件了,系統也無法幫你自動回收記憶體——因為它們彼此佔用,系統每次檢查都會認為,還有人正在使用它們。

Retain Cycle 在計算機科學的定義裡,屬於一種 Deadlock。死鎖。雙方互相等待對方的資源被釋放,而被卡死,一動也不能動。

死鎖在日常生活中也很可能碰到。比如當你把機車鑰匙忘在家裡,卻把家門鑰匙鎖在機車後座。比如公司營收要成長,必須要投入資金行銷;但是營收沒有成長,就沒有資金可以行銷。

比如熬夜創作,加班 debug。兩件事彼此追逐,像是天蠍與獵戶。


同事慣常用「詩人」介紹我。「這位是我們的工程師,同時也是一名詩人。」可是他們並不曉得,我不希望自己「也是詩人」。每當客人來訪,他們會拿出公司的粉絲專頁:都是我們的詩人寫的。那是一些結合了科普知識與分行短句的圖文。

我坐在旁邊,偶爾接話,回答諸如「怎麼這麼會寫」「小時候作文很好齁」一類的問題。適時微笑,像一支編碼妥善的程式。

幸好有時候相反。有時候我「也是工程師」。

「我們工程師就不要去搶他們的創作補助了。」另外一位「也是工程師」的朋友,在都是創作者的聚餐上對我說。我想起幾年前,一個補助計畫的說明現場,底下聽眾發問:你是工程師,為什麼來投補助?當時的我回答:只是希望有人,能用一本詩集的方式看完這些作品⋯⋯

好在後來那個補助沒上。「你應該知道,工程師賺多少錢。」也是工程師的朋友說。

一個月內,水壓的問題又出現了三次。房東並不開心,堅持一定是漏水導致。然而水電師傅檢查,是加壓馬達的問題。「所以才會有時候有水、有時候只有空氣。」他更換了壓力開關,水壓終於回復正常。房東嫌收費太高,終究還是付了錢,並指責我們太晚發現問題。

我沒有心力和房東吵架。新創公司人少,我除了也是詩人,也是行銷。我得負責寫文案、經營社群、投放廣告、策劃佈展,有時候還得發新聞稿及回覆客服。曾經有一段時間,我甚至也是視覺設計。因為上一任剛離職,人力暫時不足,我設計 DM、設計櫥窗,並為公司拿回一個國際設計獎項。我沒有怨恨過事情太多,或是分工不清。我很喜歡這樣多元的工作環境。

在這些「也是」裡,我非常快樂。

可是這麼多「也是」,常常讓我忘記自己本來是誰。


無漏高壓的生活過了幾個月,大門信箱再度被貼上用水量警示。

水電師傅又更換了馬桶內更多零件。我想起經典的形上學問題:如果一艘船的每一片木板都被拆下、換新,那還是不是原先那艘船?

幾天後,卻發現洗衣機旁地板濕了一片。

水龍頭正緩緩滲出水。我左右扭了幾下,試圖找出哪裡漏水,一道噴泉忽然直直上沖,擊中天花板,反彈打在我的身上。

水落進抽油煙機、瓦斯爐與塑膠地板的縫隙,迅速淹過廚房,蔓延到客廳、房間。地毯被完全浸濕,天花板的巨響塞滿我的耳朵。我試圖靠近止水,手卻一再被水柱沖開。

最近一次確認 H 的近況,他說前不久改拿碩士畢業,現在加入一間美國新創,做人工智慧專用的 GPU 設計。「因為簽證問題。我不能合法在餐廳工作。」想起一年前,H 返台到我家煮飯。那時他談著紐約的劇場、酒吧以及精神分析,像是整個人換新一遍。

水不斷淋濕我、再淋濕我。我看見幾秒後的我衝上頂樓,關閉水錶。看見我和女友接力,用畚箕把水掃到陽台。看見水電師傅再度前來,又換掉了一根水管。

我看見自己是鬼,穿梭在一群小朋友裡,他們都有張和我一樣的臉。那是程式的我、文學的我、行銷的我、設計的我⋯⋯每當我靠近,他們便笑著驚叫「紅!」,然後再也不動。

我看見他們全都變成紅燈,知道自己輸了。

頂端砸下來的水柱壓著我的肩膀,此刻的我一動也不能動。

黃昱嘉
黃昱嘉
新創 10 年經驗,擔任過軟體工程師、產品設計與行銷經理,也因此累積了前端、iOS、產品設計、UI/UX、社群行銷、廣告投手、平面設計⋯⋯等跨領域能力。
每週一篇科技商業觀察

訂閱《本質思維》電子報

每週我會寄送一封電子信,分享科技動態、商業趨勢與新創觀察。期望能與讀者一起,在高速變動的科技世界裡,找尋永恆不變的核心本質。

訂閱電子報
訂閱《本質思維》電子報