跳至主要内容

自言自語

· 閱讀時間約 2 分鐘 ┊ 純文字版

檸檬卷前幾天家族旅遊去日本玩,我沒跟,自己一個人在家。

一個人在家最棒的地方,就是你可以大聲自言自語。那些平常只在頭腦裡跑的句子,現在全部都可以用嘴巴講出來,沒人會在旁邊覺得你是瘋子。

把正在想的事情講出來,思考真的會清楚很多耶!那幾天我在家玩 Slay the Spire 2,一邊打一邊像是體育主播一樣,把腦內活動播報給自己聽:

「要先打 Bash 嗎?不要,讓我先 Shrug It Off 抽牌好了!Yes,抽到 Tremble,讓我先給你 Vulnerable,然後再 Strike!靠,不對,我在耍笨嗎?我有 Orichalcum 啊,根本不用出格檔牌就可以有 block 了,我在幹嘛?我要記得我有 Orichalcum,我有 Orichalcum⋯⋯」

(沒玩 Slay the Spire 的人,以上你全部看不懂也沒關係,不重要。)

⋯⋯就這樣一直碎念,我竟然連續過了兩個之前一直過不了的關卡!

這其實就是軟體開發者常說的「黃色小鴨除錯法」(Rubber duck debugging)──把一隻黃色小鴨放在桌子上,對著它一步一步解釋你的程式在幹嘛,講到一半你的問題自然就解開了!

超級有用,推薦大家試試看!把你正在煩惱的事情,對著空氣(或黃色小鴨)大聲講一遍,搞不好這樣就解決囉!

剛剛應該那樣說的

· 閱讀時間約 3 分鐘 ┊ 純文字版

面對威脅時,人類有兩種直覺反應:戰(fight)或逃(flight)1。但如果大腦運算跟不上狀況,可能就會陷入最糟的第三種反應──呆住(freeze)。

  • 例如,在超市突然被插隊,一瞬間大腦呆掉不知道該怎麼做,等意識到「欸這個人是不是插了我的隊」時,對方已經結完帳了。
  • 或是,被路邊的推銷員攔下來,聽完一分鐘廢話才後悔剛才幹嘛停下來。
  • 又或者,在飯局上被酸了一句,當下不知如何回應,只好尷尬地傻笑;直到回家洗澡時才驚覺:「我那時候應該回嗆他那句的!」這時候突然就好想再重吃一次飯局、再被酸一次,只為了用上這句完美的回嗆

法文甚至有一個專門的字 L'esprit de l'escalier2(樓梯機智)在形容這個狀況──意思大概是說,人都走下樓梯、離開現場了,才突然想到完美的回擊之詞。

預設值

要解決這個問題,邏輯其實跟看和弦代號一樣。

我的鋼琴學生常問,為什麼我可以一看到和弦代號就瞬間「算」出好聽的配置?答案是:我根本沒有「算」啊,我只是「取出」頭腦中已經計算好的結果而已。

樓梯機智也是這樣,你需要給自己一個預設值,訓練自己在第一時間套用,而不要計算。

不過,我個人倒是建議把「逃」而不是「戰」當作預設值。這並不是要你每次都認輸、傻傻被欺負,而是要盡可能用最快速、最低成本的方式結束互動

那些在心裡總是預設要「戰」的人,會潛意識地開始尋找「戰」的機會,就像拿著鐵鎚的人看什麼都像釘子一樣。結果就是,每天都懷疑身邊的人想欺負你,也因為想要「戰」贏,反而更容易遇到鳥事、捲入沒必要的衝突之中。

其實,當個 I 人躲在家裡寫部落格、把留言區關掉,就再也不會有被插隊、被推銷、在飯局上被酸的鳥事啦!這才叫從根本解決問題

Footnotes

  1. https://en.wikipedia.org/wiki/Fight-or-flight_response

  2. https://en.wikipedia.org/wiki/L%27esprit_de_l%27escalier

黃金二十年

· 閱讀時間約 2 分鐘 ┊ 純文字版

網路自我出版變得相當容易,大概是 2005 年前後的事情。在那之前,想要讓全世界看到你的作品,得先經過一堆「守門者」的審核──不論是出版社、唱片公司、電視台,還是政府機關。

接著,部落格、Podcast、YouTube 等出版管道一個一個冒出來,守門人的權力一夕之間崩塌,創作者終於自由了!在這段期間,只要你有能力做出還不錯的東西,被看到的機率是很大的──畢竟做東西太花時間了,而各大平台也還沒學會怎麼壓榨創作者

到了 2025 年,AI 寫作與生成工具正式成熟。現在雖然出版依然容易,但問題是,產生「乍看還可以的內容」變得太容易了。於是,各種什麼都不懂的阿貓阿狗紛紛自稱「創作者」,每天朝網路空間傾倒垃圾,內容市場又重新回到了很混亂的狀態。而守門者也回歸了,這次它叫做「演算法」,而且比以前更難取悅。

現在回頭看,那段「生產很難,但出版容易」的年代,大概只有短短二十年(2005-2025)。

我覺得自己超幸運,職業生涯的前二十年剛好就落在這個黃金年代。如果我現在才從零開始,第一天起就要跟 AI 和演算法搏鬥,一定比二十年前還要痛苦得多吧!

現在這個年代最困難的事情,大概就是:你有沒有勇氣遠離主流,不當演算法的奴隸?

「守門者」的存在,就是要用來被打破的。就像 2005 年時我們打破了傳統出版的枷鎖一樣,現在我們也可以再次用獨立網站、E-mail、RSS,甚至面對面的實體交流,再加上一套不依賴流量的商業模式,去突破新的演算法守門人!

波浪卡製作教學

· 閱讀時間約 1 分鐘 ┊ 純文字版

想把你的信用卡改造成漂亮的波浪造型嗎?

把它放在褲子口袋裡,一起丟到洗衣機裡就可以囉!

打造自己的工具

· 閱讀時間約 3 分鐘 ┊ 純文字版

前幾天開始,我開始開發自己專用的純文字動畫軟體 WiNoteWiwi 的 Keynote 替代品),目標是取代 Keynote,並讓我有一天能完全脫離 macOS。最近我大部分的空閒時間,都花在這個上面了。

雖然程式碼是 AI(Claude Opus)寫的,但我覺得要把它做好還是很不容易。整個開發過程中,還是需要許多人類的規劃、測試和品味;例如,光是「字怎麼跳動看起來比較爽」就是一個很需要品味的事情。

關於開發的細節,之後的貼文再說,這篇只是想講一些心得。

開發 WiNote 的過程讓我意識到:現在每個人都有能力擺脫「以前認為絕對擺脫不了」的數位依賴。

以我自己為例,我因為要用 Keynote 做動畫,所以必須用 macOS;因為必須用 macOS,所以必須買蘋果的電腦。以往的想法是:「不然呢?我總不可能自己寫一個 Keynote 吧?」

結果,現在我真的在自己寫一個 Keynote──而且就我個人的用法而言,它比原本的 Keynote 好用多了!

當然 WiNote 本身還是有依賴,但它依賴的是 Node、Chromium、Puppeteer、FFmpeg 等自由軟體。就算是用來寫它的 Claude,我也可以隨時換成別家的模型。這樣的依賴,比起被封閉的蘋果生態系綁架,來得舒服多了。

只要能移除越多依賴,或至少換成更自由的版本,生活就可以越靈活、越有底氣。例如:

  • 🍲 如果自己會煮菜,就不依賴外食了
  • 💇 如果自己會剪頭髮1,就不依賴設計師了
  • 🪴 如果自己有果菜園,就不依賴超市了
  • 🔋 如果自己有太陽能發電機,就不依賴台電了

當然,即便能自給自足,我們依然可以選擇吃外食、找設計師、逛超市或用台電;但只要心中知道「就算沒有這些東西,我自己來也行」,使用它們的姿態就不一樣了。

我超級推薦你也想想看:你的生活裡──尤其是數位生活──有什麼依賴是你有可能移除的呢?今天就試著砍掉其中一個吧!

如果一時想不到,我建議你從「移除串流音樂服務」開始。因為這最簡單:直接購買你喜歡的專輯來支持藝人2,把喜歡的音樂全部下載到自己的裝置上,從此以後你就可以跟串流音樂說掰掰啦!

Footnotes

  1. 疫情的時候,我真的自己剪頭髮剪了一年!雖然剪得很醜。

  2. 他沒出專輯?別忘了還有 yt-dlp

侵蝕

· 閱讀時間約 2 分鐘 ┊ 純文字版

就算自認意志堅定、不會被影響,但其實只要「暴露」在網路噪音之中,大腦就會被慢慢侵蝕。

表面上,是內容在侵蝕你:

  • 看到別人買名牌包、開新車、吃大餐、每年換新手機。即便對這些東西完全不感興趣,潛意識依然會偷偷地將「擁有這些東西」視為常態。
  • 看到各種談論冥想、健身、閱讀、斜槓、生產力、個人品牌的內容。就算不打算照做,這些過度包裝的生活方式,依然在默默校準你對「理想日常」的定義。

但其實連格式本身都在侵蝕你:

  • 貼文、短影音滑滑滑,只要三秒鐘沒有刺激就換下一個──注意力正在不知不覺被侵蝕。
  • 吵鬧的綜藝音效、五顏六色的字卡,加上那 9:16 的反人類長寬比──就算你不喜歡,甚至還會說它醜,但只要你還在看,審美觀就在被侵蝕。

「不同意」或「不喜歡」一樣東西,並不代表就能「免於被它侵蝕」。只要讓噪音在大腦裡佔到了位置,噪音就贏了。網路上的許多噪音,都在嘗試把你的現實扭曲成他們想要的樣子。快閉上眼睛、看都別看、趕快逃走

反抗的方式很簡單:擁抱 RSS獨立網站;建立自己的荒島筆電╱圖書館╱遊樂園;嚴格挑選每天的輸入,只用那些「信任的、喜歡的、真心想被它影響的東西」來灌溉自己的大腦。

(諷刺的是,我寫了這篇貼文來批評噪音,正好證明了這些噪音已經在我的大腦裡佔到了位置。而讀到這篇的你,也因為這篇貼文再次被提醒到了噪音的存在。可惡,噪音又贏了!)

創作者的 Unix 哲學

· 閱讀時間約 5 分鐘 ┊ 純文字版

Eric S. Raymond 在 The Art of Unix Programming 這本書裡,列出了 Unix 程式設計的 17 條哲學。

但我覺得這根本不是在講程式設計,而是寫給所有創作者的行為準則啊!以下只挑一些我特別有共鳴的來講,有興趣讀完整 17 條原文的,按下方展開。

按這裡展開原文
  1. Rule of Modularity: Write simple parts connected by clean interfaces.
  2. Rule of Clarity: Clarity is better than cleverness.
  3. Rule of Composition: Design programs to be connected to other programs.
  4. Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
  5. Rule of Simplicity: Design for simplicity; add complexity only where you must.
  6. Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
  7. Rule of Transparency: Design for visibility to make inspection and debugging easier.
  8. Rule of Robustness: Robustness is the child of transparency and simplicity.
  9. Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.
  10. Rule of Least Surprise: In interface design, always do the least surprising thing.
  11. Rule of Silence: When a program has nothing surprising to say, it should say nothing.
  12. Rule of Repair: When you must fail, fail noisily and as soon as possible.
  13. Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
  14. Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
  15. Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
  16. Rule of Diversity: Distrust all claims for "one true way".
  17. Rule of Extensibility: Design for the future, because it will be here sooner than you think.

分離原則

"4. Rule of Separation: Separate policy from mechanism; separate interfaces from engines."

(分離原則:把政策和機制分開;把介面和引擎分開。)

套用到創作上面,簡單來說就是把「你想講的話」跟「你用來講話的工具」分開。

不要特別為了平台,來量身訂做你想講的東西。當你開始想「開頭五秒要放什麼才不會被滑掉」、「什麼時候上傳觸及率比較高」、「這個詞會不會被黃標」、「這個演算法會推嗎」⋯⋯這時傳達的訊息就已經被工具改寫了。

訊息應該要凌駕於工具之上,而且隨時能被轉化成任何格式。

如果非要選一種「終極格式」,我想純文字是最好的選擇

節儉原則

"6. Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do."

(節儉原則:除非能證明別無他法,否則不要寫大程式。)

不要鋪張、不要搞一堆有的沒有的來擾亂自己。

你真的需要這麼複雜的企劃、這麼多人的團隊、這麼多攝影機角度、這麼繁複的剪輯嗎?如果無法證明「真的非得要這樣不可,沒有別的辦法」,那就把這些贅肉通通砍掉吧!

資料原則

"9. Rule of Representation: Fold knowledge into data so program logic can be stupid and robust."

(資料原則:把知識放進資料裡,所以程式邏輯可以又笨又耐用。)

讓「內容」去變化就好,而不是「流程」。流程要盡量簡單、耐用就好,不要每天變來變去。

例如這個部落格,我每天上傳的流程都是一樣的──寫一個 Markdown 檔案,丟進資料夾,npm run build,上傳──因為流程既無聊又簡單,我才能專注在每天寫的主題上,而不是跟流程搏鬥。

做音樂也一樣:只要有一台不錯的音源機,就能做出幾乎所有類型的音樂。不需要一直更新編曲軟體到最新版,也不需要下載 500 GB 的音色庫,更不需要糾結那十五種 compressor 的聲音到底差在哪裡。

沉默原則

"11. Rule of Silence: When a program has nothing surprising to say, it should say nothing."

(沉默原則:如果沒有有趣的東西可講,就不要講。)

現在的內容生態,根本是朝完全相反的方向運作──明明就沒有東西講,但每個人還是強迫自己一直發限動、刷存在感、餵演算法。

最佳化原則

"15. Rule of Optimization: Prototype before polishing. Get it working before you optimize it."

最佳化不是優化喔原則:先讓它能用,再慢慢打磨。)

這是許多新手創作者最常犯的錯誤:根本什麼都還沒開始做,就先擔心要買什麼鏡頭、哪隻麥克風、Logo 要找誰設計、紅了以後怎麼應付酸民⋯⋯想太多了啦,先把第一集拍出來再說好不好!

擴充原則

"17. Rule of Extensibility: Design for the future, because it will be here sooner than you think."

(擴充原則:為未來設計,因為未來來得比你想的還快。)

這點我太認同了!擁有自己的網站自己的網域、掌握作品的主權與跟讀者直接聯絡的管道,在未來只會越來越重要。

平台收割韭菜的速度,絕對比你想像中還要快。那日漸萎縮的觸及率,就是「未來」即將到來的徵兆呀!

晚上不睡覺 ✦BBP9✦

· 閱讀時間約 4 分鐘 ┊ 純文字版
BlogBlog Party(BBP)

這是我的「BlogBlog 同樂會 - 2026 年 9 月」的投稿文章。本月主題是「晚上不睡覺」,由 Jason Lai 主持。如果你有自己的部落格,歡迎一起來參加!如果沒有的話,就現在建一個,然後來參加!

一直到兩年半前,我都還是個超級夜貓。

以前正常的上床時間大概是半夜兩、三點,拖到清晨四、五點也是家常便飯。之所以能維持這種作息,主要是因為我是自由工作者──所有工作一律都排到中午以後,隔天要是沒有工作的話就一路睡到自然醒。

晚睡的習慣也不知道是怎麼開始的,大概就是想要爭取一段不被打擾的時間吧。而且我一直深信自己的創作力是越晚越強的,在半夜大家都睡了之後,自己一個人做音樂、研究東西的效率超級高的呀!

當然,熬夜也不全是為了正事。打電動、看動畫什麼的也是一定要的,尤其是以前自己一個人住的時候,很容易不知不覺玩一玩就天亮了。

老婆的醫療效果

英國 Warwick 大學曾經做了一個研究,他們追蹤了幾千個英國人,得到的結論是:結婚的人不只比較長壽,也比較有錢。他們估計,結婚平均可以讓人多活三年左右。

我覺得這個是真的!因為一個人生活時,沒有人會阻止你每餐都吃麥當勞配啤酒,或是在星期三凌晨三點,突然決定重玩一個某個十年前的遊戲。

有了老婆(指檸檬卷,不是之前那個可怕的)之後,如果亂吃或太晚睡的話就會被唸一下,然後就會不好意思繼續那樣做。兩個人互相監督,真的會健康很多──當然,前提是你要結對人啦,不然可能反而會早死不只三年。

變成早鳥族

2024 年有一天,我的聽力突然出問題,嚇到讓我決定重整生活習慣──完全戒酒,改成早睡,每天晨跑。到現在基本上都沒有間斷唷!

我現在大概 22:00-22:30 就會去睡了。就算真的不是很想睡,我也會躺去床上關燈聽 Podcast──開一個很小聲、快要聽不清楚的音量,大腦很快就會恍神睡著了。然後早上 06:00-06:30 左右起床,上傳部落格文章,然後去跑步。

夜貓族最常見的晚睡藉口是「有些人天生就是適合晚睡」,我之前也非常愛引用這個說法。但現在我可以用親身經歷跟你說:沒有這回事,你可以改過來

早上創作也不錯

原本發生在深夜的創作時間,現在被我搬到了早上八點到十二點。寫文章、更新網站、製作內容,大部分都在這個時段完成。

我覺得這樣的感覺更好耶!因為還沒到中午,我就常常有種「今天已經完成很多了,這樣應該就夠了吧」的感覺,然後接下來的時間就可以盡情地耍廢。比起以前夜貓時期,整個白天都會掛念「正事要等到深夜才能做」,反而壓力比較大。改成早起之後,心理狀態明顯健康多了。

怎麼早睡?

至於要怎麼改成早睡呢?很簡單:不管有沒有睡飽,先強制早起就好。不用幾天,你的身體就會自動想要早睡了。

還有,中午過後不要碰咖啡因很有幫助;戒酒也很有幫助。喝酒雖然會昏昏沉沉,但其實對睡眠品質是有負面影響的。

這篇寫著寫著就不小心變成推坑早睡早起文了。不過你看,連我這種一輩子夜貓的人都能改過來,如果你想要改變的話一定也可以!

白費

· 閱讀時間約 2 分鐘 ┊ 純文字版

「不然前面那些不就白費了?」是一個超級有害的想法,它會讓人做許多「明知道不開心,但還是每天照做」的事:

  • 📱 繼續玩一款早就不喜歡的手遊:累積了這麼多裝備,現在棄坑,前面的幾百小時不就白費了?
  • 😴 追一部越來越無聊的劇:都追到第四季了,不看完,前面三季不就白看了?
  • 💼 待在一份討厭的工作:累積了好幾年年資,現在從零開始,前幾年不就白熬了?
  • 📈 繼續用一套越來越難用、越來越貴的軟體:好不容易用習慣了,現在換掉,前面不就白學了?
  • 💔 繼續一段有毒的關係:都磨合這麼多年了,現在放手,之前的眼淚不就白流了?

沒有「白費」這回事,「費」了就是「費」了!之前已經付出的時間╱金錢╱心力╱感情,不管接下來怎麼做都是拿不回來的,那不成立「應該繼續付出」的理由──繼續下去只是白費更多而已。

趕快發現這些沉沒成本(sunk cost),然後豪邁地忽略它們

有東必有西,有北必有南(除非你住士林)

· 閱讀時間約 4 分鐘 ┊ 純文字版

昨天跟 Ikuka 見面的時候,聊天中間她驚訝地說:「原來還有民權東路喔?」

她是高雄人,來台北坐捷運的時候只有看過「民權西路站」,所以從沒想過台北市還有另一條「民權東路」的存在。

我說,這不是當然的事情嗎?有「西路」就必定有「東路」呀,不然「西」是要跟誰比呢?如果沒有對應的東邊,就沒有必要加「西」字,直接叫「民權路」就好了呀──例如「仁愛路」和「信義路」就沒有分東西。

但這也是我憑直覺講的。所以讓我們來追根究底查查看,我說的到底是不是對的?(只看台北市的部分)

政府資料開放平臺上面,已經有整理好的全國路名資料 CSV 檔可以下載,所以要回答這個問題很簡單,搜尋一下即可。

所以答案是?

「東╱西」配對

先看「路」層級,「東路╱西路」總共有 13 組配對:

西備註
大東路大西路在士林,兩條沒有接在一起
北平東路北平西路
南京東路南京西路
和平東路和平西路
天母東路天母西路
德行東路德行西路
忠孝東路忠孝西路
愛國東路愛國西路
民族東路民族西路
民權東路民權西路
民生東路民生西路
長安東路長安西路
青島東路青島西路

落單的只有一條──士林區只有「士東路」,但沒有「士西路」。

至於「街」層級的,東西配對共有 4 組:

西兩條有連在一起嗎?
寧波東街寧波西街
安東街安西街沒有
小東街小西街沒有,但是在附近(士林區)
通河東街通河西街沒有,在基隆河的兩側(士林區)

而沒被配到的「單身東西街」就很多了:

但沒有
新東街新西街
港東街港西街
興東街興西街
葫東街葫西街
齊東街齊西街
華西街華東街
錦西街錦東街

「北╱南」配對

「北路╱南路」總共有 16 組配對:

備註
大北路大南路又是在士林,兩條沒有接在一起
中坡北路中坡南路
中央北路中央南路
中山北路中山南路
光復北路光復南路
延平北路延平南路
建國北路建國南路
復興北路復興南路
敦化北路敦化南路
新生北路新生南路
杭州北路杭州南路
林森北路林森南路
環河北路環河南路
西寧北路西寧南路
重慶北路重慶南路
金山北路金山南路

落單的北╱南路有兩條:

  • 士林區的「天母北路」沒有相對的「天母南路」。(又是士林)
  • 北投區的「文林北路」沒有相對的「文林南路」,南邊接到沒有方位字的士林區「文林路」。(還是士林)

「街」層級,北南配的只有兩組:

兩條有連在一起嗎?
紹興北街紹興南街
小北街小南街沒有,但在附近(士林區)

落單的北街或南街有三條:

但沒有備註
通北街通南街
敦南街敦北街跟「敦化南╱北路」不同唷
興南街興北街

看起來像落單,但其實不是的

以下這些不是真正的方位詞,所以不算落單:

路名說明
劍南路「劍潭山之南」之意,不是單純方位詞
指南路「指南」是地名(指南宮一帶),不是方位詞
濟南路取自中國城市「濟南」,不是方位詞
中南街「中南」是地名用法,不是方位
東南街方位複合詞,不是「東路配西路」的那種用法
江南街「江南」為地名典故,非方位詞

結論

所以「有東必有西、有北必有南、兩條必連接」基本上在全台北市的「路」層級都沒錯──除非你住在士林。

士林寧願讓「文林路」直接放棄那個「南」字,也不願意跟「文林北路」配對,也是滿有個性的。