跳至主要内容

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

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

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

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

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

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

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

所以答案是?

「東╱西」配對

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

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

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

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

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

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

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

「北╱南」配對

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

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

落單的北╱南路有兩條:

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

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

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

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

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

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

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

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

結論

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

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

連續兩天見格友

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

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

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

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

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

WiNote

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

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

你可能會說:「簡報軟體明明滿街都是啊!」LibreOffice ImpressReveal.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 版了,我把它叫做 WiNoteWiwi 的 KeyNote 替代品)。

成果

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

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

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

對 AI 圖過敏

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

八月 BlogBlog 同樂會的主持人 Ikuka,在「一期一會」的主題頁面有個小小的請求:

「(重要)我對 AI 圖非常過敏,眼睛會瞎掉,所以拜託投稿文章的時候不要用生成 AI 圖,這是我唯一的小小請求了!!」

──Ikuka

我自己倒是沒有對所有的 AI 圖過敏,但是我對那種「想占便宜的 AI 圖片」超級反感!

你一定在社群媒體見過那種圖。就是那種餵給 AI 三行 Prompt、二十秒後就能生出來的圖──構圖是預設的、配色是預設的、文案飄出濃濃 GPT 味、最底下一定要配個圓角橫幅──這類圖片的意圖也很明確:貼到 Instagram 上,騙取流量和愛心。

還是想像不出來嗎?我在這邊直接給你一張:

(Ikuka:啊~~眼睛!我的眼睛!!)

這種東西我超不能接受,看到就覺得被侵犯!不論 AI 或非 AI,只要讓我聞到那種「不想花心思和努力,卻想撈到好處」的意圖,我就想立刻逃離現場。

但最絕望的是,這些圖底下竟然真的有很多愛心!這就是被社群媒體訓練出的結果:人們現在已經可以若無其事地把垃圾吃下去,而且不覺得那是垃圾,甚至還會按讚分享!

平台見到這景象一定暗爽到不行:既然便宜的垃圾大家都能吃得津津有味,那何必餵他們有營養的食物呢?何必討好那些「創作者」呢?以後我們平台自己生垃圾出來就好啦!

最後,反而我們這些還有味覺、不吃垃圾的人,還會被嫌「挑食」、「難搞」呢!

(八月份的 BlogBlog 同樂會「一期一會」即將截稿!快把握這次的一期一會!)

如果 YouTube 廣告違法

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

在 YouTube 上一個棒球 highlights 影片下,看到了以下這些留言:

"In a 12 minute highlight there are 7 commercial interruptions! How ridiculous."

(12 分鐘的精華影片裡塞了 7 個廣告!有沒有搞錯?)

"Really? I paid $25 and split w 5 ppl that have youtube. No ads. Amazing."

(真假?我付了 25 美金,跟五個人分攤,完全沒廣告。太神奇了。)

不,這一點都不 amazing。這就像有人先在你家客廳放了三隻蟑螂,然後再跟你收錢把蟑螂抓走,你付完錢之後竟然感動地說:「哇,太神奇了!」

廣告是人工製造出來的問題,Premium 只不過是讓你買回原本就該有的自由而已。

先不管廣告有多煩。12 分鐘的棒球精華插 7 個廣告,對廣告主來說根本也是災難──因為不可能有人在看,而且觀眾在被打擾的瞬間,還可能把負面情緒連結到品牌上──這筆廣告費的效益,大概跟直接沖進馬桶裡差不多。

但對 YouTube 來說,這一切都很完美。YouTube 並不在乎廣告主的廣告有沒有效,它只希望廣告夠煩──煩到你受不了,不得不乖乖買 Premium。

結果就是:廣告主付錢製造干擾,觀眾付錢移除干擾,創作者則是免費提供被干擾的內容──三方都覺得自己是客戶,其實全部都被當成韭菜。

以上問題的正解是:Brave 瀏覽器,或者 Firefox + uBlock Origin。拜託大家,不要再看廣告了

如果廣告是違法的

想像有個平行世界,在那裡所有「平台方的插入廣告」都是違法的,那會是什麼樣子?

首先,YouTube 失去了「解決廣告很煩」的賣點,Premium 這個產品概念就很難存在了。但伺服器和頻寬還是要錢呀,所以營運成本只能從兩種地方回收:向觀眾收,或向創作者收。

向觀眾收費,YouTube 就會變得像 Netflix;向創作者收,則會趨向 Vimeo1。而不論向誰收費,都可以選擇月費吃到飽,或是以量計費。

我是覺得「以量計費」的話,會導向最理想的網路、最高的內容品質。如果觀眾每看一部片都要花掉點數,那些騙點閱、浪費別人時間的頻道,馬上就會臭名遠播。畢竟,錢包是最誠實的演算法。

而向創作者以量計費,則對整個網路環境更好。如果影片每被播放一次,創作者就要付錢,那些為了跟風蹭流量而拍的東西、AI 垃圾影片騙點閱的標題與縮圖、一天上傳一百支影片的內容農場,會一夜之間全部變成純虧損行為。創作者將會被迫開始思考:這個影片到底想傳達什麼?怎麼樣的人會來看?我對他們產生了什麼影響?

可惜現實是,科技公司利用一般人重視方便的弱點,監控大眾、塞滿廣告,這種商業模式就是現在的主流

哪裡容易有好內容

但以上的胡思亂想,倒是明確指出了一件事:優質的內容,最容易出現在讀者和創作者「至少其中一方有付錢」的情況,尤其是創作者付錢的那一種。

願意自掏腰包、明知道賠本也想要讓你看到的東西,那一定是創作者覺得很重要的訊息吧──沒錯,我就是在說這個 blog

BlogBlog 同樂會八月主題「一期一會」即將截稿啦!想參加的人動作要快唷!也歡迎到歷史的主題文章隨機抽取來發現優質內容!)

Footnotes

  1. https://vimeo.com/upgrade-plan

胡言亂語

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

1990 年代的電腦益智問答遊戲 You Don't Know Jack 裡面,有一種題型叫做 Gibberish Question(胡言亂語題)。

玩法是,螢幕上出現一句「每個音節都跟正確答案押韻」的無意義句子,然後給你一個提示,你要猜出答案是什麼。例如:

Pin face of tire fake ass. (別針臉的輪胎假屁股?)

提示

It's on a sign in buildings. (提示:它會出現在建築的告示牌)

乍看之下很像在罵人,但答案其實是──

答案

InPin caseface of firetire, breakfake glassass. (火災時,擊破玻璃)

我覺得這個遊戲用中文玩比英文更適合,只要把子音(聲母)拿掉或換掉,並保留韻母和聲調就可以了。在英文的 Gibberish Question 中,字的邊界有時候會移動,但中文一個字就是一個字,超級清楚。

來一題範例,記得題目的每個字都跟正確答案押韻且同聲調唷:

果講掉癡按頂

提示:常在好和弦頻道出現的句子。

答案是──「我想要吃蛋餅」!

最後來玩三題吧:

1. 寶會草你噴起腦(提示:改變作息

第 1 題答案

早睡早起身體好

2. 東筆哈台,龍刀麻孩(提示:過年了

第 2 題答案

恭喜發財,紅包拿來

3. 該遮木科有,科有木該遮(提示:交通安全

第 3 題答案

開車不喝酒,喝酒不開車

如果是平時就有偷聽隔壁桌講話習慣的人,應該會覺得很簡單吧。

一年沒叫外送

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

赫然發現,寫這篇〈給 Uber Eats 的分手信〉已經是一年多前了耶,這意味著我已經超過一年沒叫過外送食物了!

結果如何?我依然活得好好的,沒外送也沒什麼大不了的呀!

專有軟體必變爛:Reason 篇

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

我在昨天文章的註腳裡面提到了 Reason 13 的智障設計。但單靠文字,實在不足以傳達我的怒氣,所以讓我今天補個動畫版。

用過編曲軟體的人,應該都知道 Piano Roll 編輯視窗。音符下方的長條,代表著每一個音的力度(velocity),只要用畫筆工具畫過去,就可以直接編輯力度。

從以下畫面可以看到,如果力度顯示區域不夠高的話,就很難做精細的調整。在 Reason 12 裡面,你只要用滑鼠拖曳分界處,就可以很輕易地把力度區域調高──幾乎所有編曲軟體都可以讓你這樣做,這是基本到不行的基本功能:

(Reason 12:用滑鼠一拉,力度區域就變高了,調完再拉回去就好。)
(在 iOS 裡,以下動畫可能無法自動播放,長按它點「播放」就好囉!)

但是,升級到 Reason 13 之後,他們直接把這個區域的高度鎖住了,不給你調!你用滑鼠怎麼拼命拉它就是不動!你只好在狹小的縫隙中與音符力度搏鬥。

(Reason 13:教你如何在夾縫中求生存。)

更無言的是,你還可以看到 Reason 13 的 Piano Roll 左側還用了一大塊空間,擺著一堆目前沒用到的功能,然後這塊也不能關掉!就一直擋在那邊!(Reason 12 的那塊區域是用來切換軌道,很常用)

整個介面亂七八糟,難用到不行!身為一個長期忠實使用者,我兩次寫信建議他們改回來,他們就是死不聽!不懂耶,我們只是想要好好調音符力度,不行嗎?實在是傷透我的心,我以前真的很愛用 Reason 的!

我當時花了一百多美金升級到 Reason 13,結果大概用了兩次就受不了,只好退回到第 12 版;然後我見到每個用 Reason 的人都強力警告他們千萬不要升到 13 版。

老實說,我現在對 Reason 已經沒什麼好感了。如果你是剛踏入編曲世界的新人,我建議你直接從自由且跨平台(Linux / macOS / Windows)的 Ardour 開始學。或者,如果你是蘋果的忠實信徒、不介意被綁在蘋果生態系被搶錢的話,Logic Pro 其實也是不錯用的啦。1

專有軟體必變爛理論」再一次獲得驗證。專有軟體可以隨時把你最需要的功能拿走,而你連抗議的權利都沒有;一開始就習慣用自由軟體,就不用一次又一次地心碎了。

(同場加映:Ardour 可以直接在主時間軸上編輯 MIDI 力度──當然也可以調高度。)

Footnotes

  1. 又或者 Reaper,雖然是專有軟體,但跨平台且輕量、而且很便宜,目前也還算可以推薦。

備胎

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

先看看以下這兩份月曆:

這是 Claude(上)1和 GitHub2(下)最近三個月的服務狀態歷史:綠色的格子表示當天平安無事,黃色表示出了點小狀況,紅色表示出了大災難。

你不覺得黃色和紅色格子超多的嗎?最誇張的是 GitHub,它已經連續三個月達成了「出事的天數比沒出事的天數還多」的壯舉!

月曆右上角的百分比是什麼?

那是 uptime,指「正常運作時間的百分比」。

他們很喜歡用 uptime 來講服務的穩定度,因為那樣看起來數字好像很大。可是就算有 99% uptime,換算下來也等於一天裡面平均有 15 分鐘是掛掉的欸!你想想,要是你的冰箱、汽車、電視、手機只有 99% uptime,你不天天靠北才怪。

或者換個場景:一個鋼琴獨奏會,演奏者只彈對了 99% 的音,你一定會覺得這場超

如果不想在紅色格子出現時瞬間變成廢人,你需要準備一個離線的「備胎」。而且我甚至會說,即使你用的是單機的專有軟體,最好也找個自由軟體的備胎──誰知道下次更新不會把一切都搞砸呢?3

如果沒有 Suno 就做不了音樂,沒有 Claude 就不能寫作,沒有 Google Translate 就看不懂外文,沒有 GitHub 就不能管理專案,這簡直是脆弱到不行!

「備胎」就算沒有雲端版好用也沒有關係,只要能讓你維持類似的工作流程就夠了。如果一個工具完全沒有離線的備胎,我建議一開始就不要把它納入工作流程。

不要再拖了,今天就動手,至少準備一個備胎吧!從以下幾個常用工具開始:

  • 📄 文書處理:如果你總是用 Google Docs,也試試看用 LibreOffice,或更進一步──用 Micro 編輯器Markdown 格式
  • 🧠 語言模型:如果你總是用 Claude、Gemini、ChatGPT,在自己的電腦上也準備一份 Gemma 4 E2B4 或 E4B。(E2B 版的硬體要求很低,只要有 16 GB 的記憶體,就算是有點老的電腦還是跑得動5
  • 🌍 翻譯:上述的 Gemma 4 也可以解決翻譯問題,不用每次都去問 Google Translate。
  • 🎨 影像處理:如果你總是用 Canva 和 Photoshop,也練習用 GIMP、Krita 和 Inkscape。說真的,搞不好你會發現它們更好用。
  • 🎹 音樂製作:如果你總是用 Logic、Ableton Live、Cubase 等等,也試試看自由的 Ardour 和 MusE Sequencer
  • 🎬 影片剪輯:如果你總是用 Final Cut 和 Premiere,也試試看自由的 Kdenlive。
  • 🖼️ 圖片與音樂生成看這篇
  • 🍿 娛樂:總是依賴 YouTube 和 Spotify 才能看影片、聽音樂?快把喜歡的東西下載下來,它搞不好明天就下架啦!

還有太多太多了,更多軟體建議請看我的「愛用 /use」區。

當你漸漸進入自由軟體和離線軟體的世界,你會慢慢發現它們根本不該只是備胎,應該直接扶正才對──因為很多用起來,都比「主流」軟體舒服得多啊!

延伸閱讀

What Happens When a Romance Writer Gets Locked Out of Google Docs

一位寫愛情小說的作者 K. Renee,某天晚上突然被 Google 說她的文件「被標記為不當內容」,導致 Google Docs 裡總共 22 萬字的作品全被凍結,而 Google 完全沒說是哪一段、哪一句出了問題。(Wired)

Footnotes

  1. https://status.claude.com/uptime

  2. https://mrshu.github.io/github-statuses/

  3. 真實故事:當我常用的編曲軟體 Reason 從第 12 版更新到第 13 版時,竟然把調整音符力度(velocity)的視窗高度「固定」住、變得不能更改大小了!導致我得在極其狹窄的空間裡與音符力度搏鬥。這是我最常用、工作上最重要的功能耶,它就這樣在更新時把它拿走了!現在我覺得 Reason 超難用、超不順手、一用就煩,就是因為這一個原因;我寫信給他們提出建議,他們死都不改!生氣!負評!

  4. https://ai.google.dev/gemma/docs/core?hl=zh-tw

  5. 我在已經 15 歲(2011 年出品)的 ThinkPad X220 上測試過。很慢,但真的跑得動,可以用!

離線 AI 根本是奇蹟

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

最近半年,全世界都在討論 AI Agents(代理人):養龍蝦(OpenClaw)、Codex、Claude Code、Hermes 什麼的。用的人都一直說多好用、多強、多方便,好像不用就落伍了。

我當然能想像叫 AI 自動做事一定會很好玩,但我對那些雲端的 Agents 真的超沒興趣──做什麼事情都要依賴遠端的主機,而且要長時間工作的話,很快就會把用量燒完,或者是要付很多錢

直到上個禮拜,新模型 Qwen3.8-27B1 正式推出!它是第一個真正有能力「長時間獨自做事」的離線模型,我當然是推出第一天就迫不及待開始玩了。

解謎任務

那要叫它做什麼好呢?

因為前幾天這個 blog 剛好聊到《大富翁 2》以及它的音樂;我想,那就叫它寫個「大富翁 2 → 標準 MIDI」轉換器好了。

我是在 Linux 下用 Pi Coding Agent2,直接連接本機的 Qwen3.8-27B 語言模型。我就是把整個《大富翁 2》DOS 版的資料夾丟給它,然後跟它說:「你想辦法幫我把裡面的音樂轉成標準 MIDI 檔案

就這樣,沒有給別的線索──因為我也沒有別的線索了。

然後它就自己去了

  • 首先,它自己發現了資料夾裡面的一堆 .RIX 檔案可能是音樂檔。
  • 接著,自己上網搜尋找到了一個能播放 .RIX 檔案、叫做 adplug3 的函式庫。
  • 但可惜,這個 adplug 只能播放(轉成音訊),並不能提取檔案裡面的音符資訊。
  • 於是它自己去讀了 adplug 關於 RIX 格式的原始程式碼。
  • 發現 .RIX 檔其實是直接送往 AdLib 音效卡 FM 合成器的機器碼,並不是一般 MIDI 檔案。裡面沒有音符、沒有拍子、沒有小節,只有「在第幾個時間點對暫存器寫入什麼數值」的指令。所有音符的時間都要自己回推出來。
  • 而且,它從原始碼發現了 AdLib 其實有個「打擊樂模式」,打開的話,頻道 7-9 會變成鼓組。
  • 但它不知道哪一軌是哪個鼓,所以計算了每軌的音符數量,猜測打最多下的那個應該是 closed hi-hat(它猜對了)。
  • 結合以上的邏輯,它寫了一個 C++ 程式。過程中當然發生許多 bug,但它自己一遍又一遍測試程式、自己修改、自己重跑,最後終於把全部檔案轉成了可用的 MIDI 檔案!

(我只是去喝個咖啡,回來檔案就自己出現了!)

根本奇蹟

這一切如果要我去研究,可能要花我好幾個月,而且我根本不可能為了這種事投資這麼多時間。但現在,這一切只需要我硬碟裡一個 17 GB 的檔案,只花一個多小時4就搞定了,還不用依賴大科技公司的資料中心(除了搜尋)?

你說這不是奇蹟是什麼?

送上轉成 MIDI 以後,用 General User GS 音色庫播放的結果:

作為對照,這是原始的 FM 合成器版本:

Footnotes

  1. https://huggingface.co/Qwen/Qwen3.8-27B

  2. https://pi.dev/

  3. https://adplug.github.io/

  4. 雖然如果用 Claude Opus 的話,可能五分鐘就搞定了,但我依然覺得離線模型可以做到這樣已經是奇蹟了。