我是個很宅的人。不知從什麼時候開始,「出門」對我來說已經變成一個陌生的詞。我常常整整一個月只在必要時出門,就算出門,過的也是那樣的生活,而且多半還是坐車。仔細想想,我已經很久沒有真正離開過室內了。在經歷過 AI 時代的泡沫與焦慮之後,我染上了一個壞習慣——常常在凌晨寫程式,好像已經和自己生活的這個世界不在同一個「時區」了。今天早上也一樣,一直拖到十二點多才起床,一天只吃兩餐,醒來就坐進書房,打開電腦開始寫。寫程式本來是件很好玩的事,但 AI 時代的寫程式已經不是了。盯著螢幕一直盯到下午,什麼都寫不出來,沒有任何設計靈感,覺得一切都不完美。

外面?

這個時候,腦中突然冒出一個久違的念頭:「外面」。不是什麼具體的地方,只是一種很模糊的感覺,彷彿記憶裡曾有過那麼一種東西:陽光、風、草地,卻又說不清楚了。說不清楚這件事本身讓我有點在意。正好今天天氣也不錯,Claude 也達到了工作階段上限,於是我闔上筆記型電腦,戴上耳機,隨手抓了一瓶水就出了門。對,我帶著 MacBook Air 出去了。大概只是想換個地方接著寫,也許還能找點靈感?

出了社區大門,沿著街道走到大馬路的路口,兩棟大樓之間的風突然灌了進來。我站在那裡愣了一下,「風」!? 多久沒有感受過這種東西了;不是冷氣的風,不是電風扇的風,而是那種毫無規律、帶著溫度又有些柔和、從很遠的地方吹過來的風,有聲音的風;伴隨著城市街道喧囂的風。當時我戴著 AirPods 聽音樂,置身戶外的感覺竟讓我下意識地關掉了降噪。我就這樣左手拿著水,右手夾著筆電,沿著大馬路往江邊走。這次出門我沒有盯著手機螢幕看,也不知道為什麼,就是想先走到江邊再說。

看不見

走了大概一兩百公尺就到了江邊。人行道旁邊的石欄杆有一點寬度,剛好能放下一台筆電。我其實不是真的想在這裡寫程式——就是到了江邊嘛,很久沒出來了,先拿手機拍了張照。拍完發現好像戶外的感覺好像還行於是順手把 MacBook 掏出來架在欄杆上,解鎖螢幕後就是一堆編輯器和終端機。不知道為什麼,我當時就想發一條推,大概就是那種有人在雪山上、在釣魚的時候打開 MacBook,螢幕上全是 IDE 和 Terminal,然後配一句 "what can stop you coding like this",但是我很快放棄了,因為 25 款 MBA 的 LCD 螢幕激發亮度真的太低了...

一張照片,一台打開的黑色筆記型電腦擱在花崗岩欄杆柱上,下方是一條寬闊的、泥沙般褐色的河流;螢幕是暗的,只映出眼前泛起漣漪的水面。對岸是一道低矮的綠色樹林線,籠罩在平坦的白色薄霾下,左邊有一群淺色的公寓大樓和一座建築吊車,右邊則有更多樓房和一座長長的公路橋;一個紅色的小航道浮標孤零零地立在水中。近處,一道金屬扶手和一盞低矮的路燈勾勒出往右延伸的堤岸步道,邊緣露出佈滿藻類條紋的灘塗。光線瀰漫而無影,是陰天或霧霾下的正午,整個畫面看起來像是有人帶著工作用的機器在河邊駐足,而不是真的在使用它。

打開螢幕的那一刻我就知道完了。的螢幕亮度在戶外根本不夠看。我試了各種角度,背光、順光,甚至把自己挪到和太陽同一條線上,怎麼調都看不清楚。老實說,挺可憐的。在室內還覺得自己是個程式設計師,到了戶外才發現連螢幕都點不亮。算了,這程式碼不寫也罷。但我還是不死心,闔上筆電,決定去馬路對面的樹蔭裡碰碰運氣。離開欄杆之前,我又往江面看了一眼。遠看其實還行,多雲帶陽光的天氣下,水面看起來還是記憶裡的那個樣子。可只要稍微低頭,把視線壓向岸邊,就能看見水面上浮著一層東西——水藻、樹葉、零零碎碎的漂浮物。不多,但江水已經不清了。水面比記憶中更靜,岸邊卻明顯早就沒人打理了。「早幾年疫情的時候我其實就出來看過,從那時候起就已經是這樣了。」但每次走過還是有些感慨。

一張從河濱步道拍攝的照片,越過一大片平坦的灰褐色水面,望向遠方的城市天際線。光線瀰漫而朦朧——陰天或霧霾的日子,看不見太陽——因此對岸的高樓群與兩座細長的塔樓,在一帶低矮的枯樹之上顯現為淺淡的剪影,倒影在水中淡淡地暈開。前景中,在一道金屬纜索欄杆與兩根灰色燈柱下方,大片深色的漂浮雜物與植物聚積在近岸邊,其間夾雜著幾片淺色的垃圾碎屑,而一艘紅色小船獨自停在河中央。這似乎是都市河川沿岸水面污染或漂浮物堆積的證據,天際線則顯示此處位於一座大型且正快速發展的城市。

最初的回憶

走過馬路,對面的綠化帶裡有一小片鋪著石磚的地方,就在街道和廣場的轉角上。遠看像個還不錯的休息區,只是遠遠就能看見,頂不知什麼時候已經被拆掉了;走近才發現更不對勁,這地方早就不是那麼回事了。我小時候來過這裡,可現在棚子的頂已經拆得乾乾淨淨,只剩幾根混凝土柱子立著,牆也裂開了。地上的石板旁其實是有幾棵樹的,但樹下早就圍了一圈落葉,沒人掃,也沒人來。能坐的地方倒還有,只是石板上蒙了一層灰,看著就不太想碰。我還是隨手找了點東西墊上,挑了塊看起來最乾淨的坐下,又打開電腦,還是想寫點什麼。也許這也算 AI 時代的好處吧:vibe coding 的時候,其實並不需要真的坐下來好好寫了,用 Typeless、Wispr Flow 這類語音輸入法就行,CLI 裡有個 Agent 幫你寫完就是了。我已經懶到一個字都不想打,保守派的底線也早丟了,「bypass permissions」一按就了事。連寫程式都開始了。

Typeless , www.typeless.com, 在新分頁開啟
一張 macOS 應用程式 Typeless 的到達頁面截圖,以純白色背景呈現,左上角有文字商標與一個深色小圖示,中央是 Manifesto、Pricing 與 About 的導覽列,右上角則是一顆寫著「Download for macOS」的黑色膠囊按鈕。主標題以極大字級置中排列——近黑色的「Speak,」後接中灰色的「don't type」——下方是兩行副標,混用灰色與黑色字重來強調重點:「Speak naturally, and Typeless will turn your words into polished messages, emails, and documents that read like you carefully typed them - in real time. 4x faster than typing.」文案下方另有一顆更大的同款黑色「Download for macOS」按鈕,畫面下半部則是一片留白。 這看起來是行銷用 hero 區塊的參考截圖——一款以速度與輸出精緻度為賣點的口述/語音轉文字產品——可能是作為設計或文案範例而保存。

扯遠了,但還是不行。MBA 的液晶螢幕第一次讓我切實感受到了它的硬傷,到這裡,我徹底放棄了在戶外寫程式這件事。也許明年的我就會放棄對輕薄的追求,也許下一台電腦如果還是筆記型電腦,就會是 MBP。其實到這裡我已經打算回去寫了,偶爾出來透透氣也就夠了。既然都已經走出來了,那就換到沿江馬路的另一邊走回去吧。可走著走著,我又有點不想回去了。倒也不是有什麼目的地,只是體驗到了一種久違的感覺:室外本身好像對我仍有一點吸引力,一種我也說不清的吸引力。可當我真的試著去感受時,又覺得周圍的一切都已經和記憶脫節了。哪裡都不對,早已和那些模糊的記憶對不上了……

林中小徑

我換到江邊馬路的另一側往回走,拐進了一條緊挨著住宅樓的小路。說是林間小徑,其實談不上:樹種得稀稀落落,旁邊一牆之隔就是樓房。小路是柏油鋪的,岔路口接了一小段帶涼亭的木棧道。柏油那一段已經龜裂了,裂縫裡長出了草,路面上散著小樹枝和落葉。同一段路上看得出兩種顏色,有一半明顯翻修過,但那個「新」看起來也至少是三五年前的事了,接縫處照樣頑強地鑽出了幾小草?應該也算不上「」了,是幾排雜草。

一張與視線同高拍攝的照片,畫面沿著一條寬闊的水泥步道向遠方延伸,穿過住宅開發區旁一段景觀綠帶。路面滿是灰塵,散落著掉下來的細枝和乾枯落葉,雜草從每一道接縫和路緣石邊冒出來。步道左側是茂密蔓生的灌木和一排樹籬,後方有一道金屬圍欄,圍欄之後是兩棟外牆淺色、帶有深色玻璃窗帶的高層公寓大樓,聳立在明亮的陰天天空中;右側則是樹幹刷白的幼樹,立在修剪過的草地上,步道在中景處轉彎消失,那裡可見一座低矮的花架或棚架結構。光線平淡而朦朧,低斜且帶有冬日感,在鋪面上投下長而柔和的影子,也讓那兩棟大樓顯得有些泛白。整體看來像是一份平實的行走紀錄,記下一處新建卻已疏於維護的社區綠帶。

走上木棧道,在涼亭前停了下來。涼亭的地板是木頭鋪的,有幾塊已經缺了,踩上去時木板會翹起,發出那種讓人不太放心的聲響;釘子大概早就斷在裡面了。木棧道的頂棚是透明的,可能是玻璃,也可能是壓克力?但其中一大半早已堆滿了東西,不太透光了。周圍原本是草坪,或者說是大約一公尺高的灌木叢,但現在已經長到快兩公尺高,站在裡面竟真的有種置身叢林的錯覺——要不是視線還能瞥見樓房的話。靠近主要道路那一側的植栽還看得出曾被修剪成方形的痕跡,但邊緣已經長圓了;時間讓它慢慢回到一株植物原本應該長成的模樣。

一張以旋轉九十度方式儲存的照片,畫面中一條飽經風霜的木棧道自鏡頭向遠方延伸,上方是一座鏽蝕的鋼構花架,其裸露的樑柱與纜索欄杆有一半被垂懸的竹叢與灌木吞沒。低角度的陽光自一側斜掠過灰化的木板,投下長長的條狀陰影,並讓乾枯的落葉與零星雜草積聚在板縫之間;植物生長茂密且未經修剪,在更遠處覆蓋了整條步道。透過畫面盡頭的一處缺口,一棟高層辦公大樓的玻璃帷幕與混凝土外牆在蒼白朦朧的天空下拔地而起,明確地將這條雜草叢生的高架步道置於城市之中,而非公園裡。

我蹲下來,摸了摸從缺失木板間長出的那叢草。它看起來和普通的草沒什麼兩樣,但摸上去很乾,土質似乎也不太好,可它還是從木板的縫隙裡長了出來。這裡平時大概也不會有人來吧……其實走在這些地方時,大腦早就放空了,沒有什麼具體的念頭,只是覺得過了很久很久,那些平時怎麼也想不起來的事物和細節,那些模糊的記憶,彷彿一走到那個地方就會自行浮現,變得無比清晰。然後你就會感慨,這裡變了,那裡也變了。記憶中的那個地方早已不復存在,時間帶走了這一切。

一張近距離俯視風化戶外木棧道的照片,灰白褪色的木板由左下往右上斜向延伸,在平淡無影的陰天光線下鋪滿整個畫面。許多木板已經裂開、翹曲或整片斷裂,末端腐朽脫落後留下暗黑的縫隙與參差的破洞;釘頭凸出於木材表面,其中一塊木板更完全脫離了原本的排列。在左上方一道寬大的裂口下方,稀疏的綠草、枯葉與細枝從裸露的泥土中冒出,畫面最上緣則隱約可見一小段鋪面。

這張影像呈現出一條疏於維護、並不安全的步道——腐朽、缺失的木板以及穿透而出的植被,顯示它已經好幾季沒有進行維修了。

城中

從小路走出來,已經離開了江邊街道的區域,沿著一段施工工地繼續往前走。城市的樓房我早就看膩了,尤其是這種二、三線城市的住宅樓,密密麻麻的,卻又沒有高樓大廈的感覺,毫無美感。所以我刻意不去拍它們,想拍點天空,卻發現這件事比想像中難。站在人行道上,把手機舉得很高,避開街道、避開路燈,鏡頭裡還是會擠進一點樹影和對面的住宅樓。它們蓋得太密了,你很難在這座城市裡找到一塊乾淨的天空。今天的天氣其實很舒服。有陽光,但不算強烈,更像是多雲。抬頭看,雲並不密,稀稀疏疏地散在那裡,有種煙霧繚繞的感覺,卻又留出了大片大片的淨空。雲很好看。就是那種你平時在「室內」絕對不會注意到的好看,但也不是日本動漫裡那種我喜歡的天空。「那種東西大概連現實中的日本也不存在吧。」

一張仰望天空的照片,望向淡藍灰色的白晝天空,其間散布著邊緣柔和的小片白雲——形似高積雲的雲場在畫面左上方變得濃密,到右下方則轉為疏朗的晴空。沿著右側邊緣,一根多葉枝條的末梢自畫面外伸入,纖細的細枝與尖頭的複葉在明亮天空的映襯下幾近全黑,不過有幾片葉子接收到足夠光線而顯出綠意。光線瀰漫而略帶薄霧感,天空的亮度朝著布滿雲的那一角遞增,暗示太陽就位於畫面外的那一側。整體看來像是一張隨手向上仰拍的快照,很可能是在一棵樹下拍攝的。

再往前走,就走進了一片施工工地。說是工地,其實上面已經沒有工人了。這片區域兩極分化得很嚴重,一半的樓已經蓋好,甚至開始招商,也有了租戶;另一半卻只剩下骨架,圍籬拆了一半,剩下的還圍著,但看樣子也沒人打算繼續動工了。這幾年中國的房市不太好,房價一直在跌,大概這片建案還沒蓋好,價格就已經跌得比施工進度還快了。建商不是跑了,就是耗在那裡不動了。但也正因如此,沒鋪路的那一段被圍籬擋著,平時沒什麼人走進來,反而留下一大片草地。這是我今天出門以來第一次看到大面積的草。遠看的時候,心裡還有一點點好心情,這才是記憶裡該有的樣子;但是走近了,又覺得不對。草已經不綠了,夾雜著許多枯黃的葉子,不知道是從哪裡吹來的,因為附近根本沒有樹。草本身也長得歪歪扭扭,摸起來又硬又乾;但我終究還是躺了下去。

一張由上往下拍攝的地面特寫照片,整個畫面填滿了草——細細的綠色草葉與大量蒼白乾枯、稻草色的莖稈交纏在一起,這片枯草層佔據了畫面中央與左側。散布其上的是褪色泛黃與轉褐的落葉,左下角附近有幾片顏色較深、帶著濕氣的葉子,那裡露出了裸露的土壤,而畫面中間附近有一對小小的鏽橘色葉子,是整張照片中唯一飽和的顏色。一根細長光禿、銀白色且分叉的枯枝,斜斜地橫躺在偏右的位置,光線平淡、天色陰沉,看不到任何陰影。這看起來像是一張隨手拍下的地面質地照片,那種為了記錄草坪或路邊草地在晚秋或早春狀態而拍的照片——此時新生的嫩草正從上個季節的枯草層中冒出來。

才剛躺下就知道不行。地面硬得像水泥,表面只鋪了一層草,完全沒有緩衝。平常躺在草地上時,你不會希望草地太濕,但也不該這麼乾、這麼硬。土壤已經徹底板結,從幾公尺外看和普通草坪沒有什麼差別,但身體的感受不會騙人。甚至連蚊蟲都沒有大概連蟲子都不願意來這種地方。躺在那裡,閉上眼睛,聽見的也不是什麼自然的聲音,全是城市的喧囂:燃油車的引擎聲——雖然這幾年電動車多了不少,在馬路上還是避不開;遠處行人的腳步聲;還有,這種小城市裡的車似乎都不太守規矩,時不時就會傳來一聲突兀又刺耳的喇叭聲。

城市喧囂

睜開眼,噪音還是噪音。抱著筆電躺了一會兒也累了,隨手把它放到旁邊。水也快喝完了,我把最後一點倒掉,又隨手把瓶子丟進垃圾桶。這一路上手機收到了很多則訊息,但我一直沒怎麼看,每次拍完照就把它塞回口袋。現在覺得是時候看一眼了,可幾個月前換的 17P 已經用上了 eSIM,最近也換成了 CMHK 和 3HK 的卡,在中國大陸漫遊卻只有 LTE,連 5G 的影子都沒有,而 Apple 的訊號又出奇地差。

一張深色模式的 iOS 螢幕截圖裁切,顯示行動網路設定中的「SIM 卡」區塊,畫面上是一張圓角深色卡片,內含兩個 eSIM 項目。第一個標記為「T1」,顯示「Travel - CMHK」,狀態為「開啟」;第二個標記為「T2」,顯示「Travel - Hutchison HK」,同樣為「開啟」,下方有一組香港號碼,開頭為「+852 51」、結尾為「77」,中間的數字被刻意模糊處理。卡片底部有一個藍色的「加入 eSIM」連結,每一列都有一個用於查看更多細節的箭頭符號。這證明該裝置同時裝有兩張啟用中的香港旅遊 eSIM,並在分享前先行截圖與遮蔽處理。

明明在市區,訊號卻只有兩格,推特刷不出來,音樂也一直卡頓,怎麼都載入不了,乾脆摘下 Air Pods 放回盒子裡,不聽了。通知中心倒是看得到有訊息,但點進去什麼都載入不了,這下連手機也沒得玩了。今天出門,筆電明明有電,卻因為螢幕不夠亮而寫不了程式碼;手機明明有訊號,卻刷不出內容,彷彿在網路時代短暫地斷了線。電子產品到了戶外,一個比一個不爭氣。那就回去吧。

一張昏暗地下停車場中裸露混凝土牆的照片,正面直拍。牆面下方的灰色色帶上,六個大型漢字以紅漆手寫,可見滴流痕跡:消防通道 严禁停车 ——「消防通道,嚴禁停車」。左側邊緣有一個壁掛式消防栓箱,玻璃門已龜裂,標示為 消火栓 / FIRE HYDRANT,由鍍鋅管路供水,管路向上延伸至天花板的線槽旁,一個小型方形排氣孔位於較高處的淺色上牆面。平淡無影的光線與空蕩、佈滿污漬的地面,顯示這是一張用手機拍攝的快照,用以記錄該通道暢通且已標示。

回去的時候我走了一條完全不同的路,從社區後門繞進去,經過地下停車場。小時候我常在停車場裡玩,後來搬過一次家,不知怎麼又搬了回來。停車場是我成長記憶裡唯一不常去的地方,它的樣子有沒有變我看不出來,但我記得它的味道。小時候停車場裡有一種很清新的氣息,有點像薄荷,很濃,卻沒有香味,只剩下一個可以形容,再夾著一點地下室特有的陰涼。我其實還滿喜歡那個味道的。但現在走進去,那股清氣沒有了,只剩下陰冷的濕氣,悶悶地貼在空氣裡。有車開過來,帶起一點風,大概是從入口灌進來的,但那陣風也不對,什麼都不對,哪裡都不對了。我已經想不起來它原來的樣子了,但那絕對是你站在那裡就能感受到的不同。

一小時

搭電梯上了樓,開門回了家。窗簾從白天起就拉著,因為我早就習慣了和我生活的地方不在同一個時區。屋裡的光不是陽光,而是燈管發出的那種亮白色,均勻、穩定、沒有溫度。出門大概不到一個小時。但走在外面的時候,總覺得過了很久很久,像做了一場很長的「夢」,裡面什麼都變了,卻又什麼都說不清楚。然後就醒了。從地下停車場的電梯裡走出來後,我又回到了這張桌前,回到了這塊螢幕前。陽光的溫度有時確實讓人覺得燥熱,但沒有它的時候,又會想念它的感覺。室內的一切雖然溫度、濕度剛好,但坐久了卻會生出一種莫名的疲憊。

一切都好像不真實,恍惚之間,又回去了,又好像早就已經回不去了