跳至主要内容

黃金二十年

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

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

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

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

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

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

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

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

波浪卡製作教學

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

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

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

打造自己的工具

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

前幾天開始,我開始開發自己專用的純文字動畫軟體 WiNote(Wiwi 的 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 組配對:

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

落單的北╱南路有兩條:

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

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

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

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

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

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

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

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

結論​

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

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

連續兩天見格友

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

這兩天連續見了兩位 BlogBlog 宇宙的朋友。一個是遠從馬來西亞來的 Alex,另一個是遠從高雄來的 Ikuka!

(Ikuka 主持的本期 BlogBlog 同樂會「一期一會」明天截稿唷!想要投稿請趕快~)

Alex 去年就已經見過一次啦!Ikuka 則是初次見面。Ikuka 本人長得有點像愛莉莎莎耶,但可惜照片無法解碼,想看的話,你們只能自己約她了。

真心覺得我們的 BlogBlog 宇宙裡面充滿了優質的人類,就說寫部落格的大人值得認識吧!

WiNote

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

我之所以還無法完全離開 macOS,一個很大的原因是 Keynote。

你可能會說:「簡報軟體明明滿街都是啊!」LibreOffice Impress、Reveal.js,甚至 PowerPoint⋯⋯替代品明明超多的,為什麼一定要用 Keynote 呢?

我知道,但我根本沒把 Keynote 當簡報軟體,我是把它當「動畫軟體」在用的。

Keynote 對我來說最不可取代的地方是,它能輸出品質很好的 MP4 影片,更重要的是它的影片有動態模糊(motion blur)──就是物件快速移動的時候會自然地糊掉,配合每秒 24 格的設定,會有一種電影質感──輸出檔直接丟到剪輯軟體裡,就是漂亮的 B-roll。

好和弦頻道裡,大部分的動畫都是用 Keynote 做的。

完美的動畫軟體​

我已經尋覓 Keynote 的替代品很久,但各種動畫軟體,沒有一個完全符合我的需求。我也嘗試過用 AI 生成動畫,但叫 AI 做動畫就像是在抽獎,你永遠不知道按下「生成」按鈕後,出來的會是什麼東西。

我需要的是「文字花 0.8 秒從座標 (x1, y1) 移到 (x2, y2),等 1 秒,然後往右淡出」這樣超精確的控制。

我心目中完美的動畫軟體,是我可以打開純文字編輯器,打幾行類似這樣的東西:

bg photo.jpg // 背景圖片
text "這是標題" @[0.5,0.4] size:80 // 顯示文字,指定位置和字型大小
wait 1 // 等一秒鐘
text "這是標題下方文字" @[0.5,0.6] size:32 in:typewriter // 用打字機效果進來
wait 1 // 等一秒鐘

然後它就吐出一個超漂亮的 MP4 檔案給我,這樣該有多好?

自己做一個動畫軟體​

我發現了一個自由軟體專案叫 HyperFrames。它本來是設計讓 AI 做影片用的,我不想要 AI 的部分;但它的影片輸出引擎很不錯,而且直接可以拿來用。

於是我的計畫是:我寫一份語法規格書,然後叫 AI 幫我寫一個編譯器,把「我的簡單語法」翻譯成「HyperFrames 語法」。這樣一來,我就可以用簡單語法來做影片了!

HyperFrames 並沒有內建像 Keynote 一樣漂亮的動態模糊。但這個很好解決,只要輸出超高影格率(frame rate)的影片,再用世界上最重要的軟體 FFmpeg 來合成就行了。

昨天弄了半天,終於有一個能用的 0.1 版了,我把它叫做 WiNote(Wiwi 的 KeyNote 替代品)。

成果​

下面這個動畫,是完全靠手寫的純文字語法,交給 WiNote 輸出的成果,全程沒有用到其他簡報或動畫軟體,更不需要用滑鼠拖拖拉拉。而且它目前已經可以做到一些連 Keynote 都做不出來的靈活移動囉!

當然,目前還有一些 bug,也還有許多需要調校的地方。我可能要自己先用一陣子,等它變得比較成熟後再把原始碼放出來。

現在有 AI 真是太棒了,以後每個人都可以打造自己要用的工具,不用再被專有軟體綁住啦!