Refactoring English(《重構英文》):第 16 個月
一句話總結
接近終點線
重點回顧
- 我用一篇文章登上了Hacker News 首頁,那篇文章是我一口氣寫完的。
- 我預期未來幾年軟體安全將會相當險峻。
- 我已經完成了家庭照片分享 App 的第一個里程碑。
目標評分
每個月月初,我都會宣告本月想完成的事。以下是達成狀況:
完成 《重構英文》
- 結果:發表了新的一章,但仍未完稿
- 評分:C
我知道要在一個月內完成最後三章是個很宏大的目標,但我覺得做得到。結果三章只完成了一章,不過這本書已經接近完成了。
《重構英文》數據
| 指標 | 2026 年 2 月 | 2026 年 3 月 | 變化 |
|---|---|---|---|
| 不重複訪客 | 7,788 | 6,932 | -856 (-11%) |
| 預購收入 | $886.20 | $725.80 | -$160.40 (-18%) |
本月的造訪量和銷量略有下滑,不過即使沒有成功的宣傳活動,仍能看到穩定的讀者和顧客流量,我感到很欣慰。
本月唯一的宣傳是那篇名為「哪份設計文件是人類寫的?」的文章。它在Lobsters 上表現不錯,但在 Hacker News 上反應冷淡。/r/programming 版甚至以「AI 產生」為由退稿,即使我私訊版主澄清文章本身是人類撰寫的。
這篇文章的靈感來自上一堂《重構英文》線上課程。我們討論了 AI 是否足以撰寫 design docs(設計文件),我才意識到,要用 AI 另外生成幾個我剛手寫好的 design doc 的 AI 版本有多容易。閱讀大家對不同 design doc 的猜測很有趣,他們試圖找出哪些「線索」暴露了哪些是人類寫的、哪些是 AI 寫的。
發現一個效仿 Simon Willison(西蒙·威利森)的機會
西蒙·威利森過去三年來一直是 Hacker News 上最受歡迎的部落客。我最近寫過關於威利森那套少有人用卻很有效的部落格策略:
西蒙經常在封閉式平台(例如 TikTok、Twitter)中找到點子,然後直接把它們搬到開放網路上,讓 HN 更容易討論。他有些最受歡迎的文章只是短短的引言或連結加上一點評論。「我很擔心他們把 co-pilot 放進 Excel」只是他從 TikTok 影片中擷取的一句話。「電腦永遠不該被追究責任」則是西蒙對幾則推文的總結。
西蒙曾稱這種做法是「一種低投入、高價值,能對整體網路生活做出貢獻的方式」,我完全同意。
威利森策略中唯一困難的部分在於判斷何時該出手。如果你只是隨機摘要推文和 TikTok,大概不會引起太多迴響。你必須察覺到某些有趣的資訊被困在對網路不友善的格式裡,然後趁它還新鮮時把它搬到網路上。
上週,我看了 Nicholas Carlini(尼可拉斯·卡里尼)的「Black Hat LLMs」演講,意識到這正是運用威利森技巧的機會。
在演講中,卡里尼描述了他如何發現 Linux 核心中一個隱藏了 23 年、無人察覺且可被遠端利用的漏洞。令人驚訝的是,任何人其實都能做到卡里尼所做的事。他只是把 Claude Code 指向 Linux 核心原始碼中的每一個檔案,並要求它找出漏洞。
我在網路上搜尋關於卡里尼這項發現的討論,卻驚訝地發現幾乎沒人在談論。影片已經發布在 YouTube 上,也在 Hacker News 討論串中被提及,但關注度遠低於它應得的程度。大家都在大肆討論 Claude Code 為 FreeBSD 臭蟲撰寫攻擊程式,但我覺得這則消息更重要。
結果證明我是對的。
我用三小時一口氣寫完了那篇文章,比我平常花數週、耗時 10 到 30 小時的流程快得多。這篇文章至今已吸引了 4.1 萬名不重複讀者,在Hacker News 和Lobsters 上都獲得不錯的迴響。儘管我根本沒有把文章貼到 Twitter,仍有將近一半的讀者是透過 Twitter 找到它的。
過去,當我個人部落格上的文章爆紅時,許多讀者會進一步深入挖掘,進而發現《重構英文》。這次卻沒有發生,我猜是因為對 AI 感興趣的讀者,對一本教你不用 AI 寫作的書比較沒興趣。
未來幾年軟體安全將會很艱難
卡里尼的演講突顯了我這幾個月來一直在思考的事:未來幾年資安狀況會相當嚴峻。
過去,一般人對網路攻擊還有一定程度的保護,因為發掘安全漏洞的成本很高。
舉例來說,想像半年前你想駭入使用Syncthing(一套開源檔案同步工具)的使用者。除非你本身就是軟體安全專家,否則你得雇用具備以下條件的人:
- 擅長找出漏洞
- 願意收費將漏洞武器化
- 願意跟陌生人合作
假設你找到一個願意以 5,000 美元幫你找出並利用 Syncthing 漏洞的人。這仍然需要耗費大量時間與金錢。而且這還假設你雇用的人是真心幫忙,而不是詐騙。
而且就算你歷經千辛萬苦,每用一次這個攻擊程式就有可能「燒掉」它。如果有人發現自己的系統被入侵,並追溯到是 Syncthing 的問題,他們或許就能識別出你的攻擊手法並回報這個臭蟲,讓你的攻擊程式瞬間失效。
對比一下現在的情況。你只要花 100 美元/月訂閱 Claude Code,就能像卡里尼那樣找到重大漏洞。Claude Code 的防護機制會拒絕將漏洞武器化的請求,但用不了多久,你就能在沒有任何 AI 廠商阻擋你的情況下,用 open-weight models(開放權重模型)偷偷開發攻擊程式。
因此,開發攻擊程式的成本已大幅下降,但修補漏洞的價值卻維持不變甚至更低。由於 AI 產生的臭蟲回報數量過多,廠商甚至開始關閉他們的 bug bounty programs(漏洞懸賞計畫),讓誠實的研究人員拿不到任何報酬。
卡里尼的成果並非僥倖。我也複製了同樣的方法,沒花多少力氣就在一個熱門的程式碼庫中發現了一個尚未公開的 remote code execution vulnerability(遠端程式碼執行漏洞)。我很可能還能找到更多,但對我而言的財務報酬卻是負的,因為該專案沒有漏洞懸賞,我得花上數小時與廠商協調修補,卻拿不到半毛錢。
並不是哪家貪婪的億萬美元公司拒絕為我發現的漏洞付費。維護者只是個出於熱心、義務維護專案的普通人。這基本上就是xkcd 的〈Dependency〉那幅漫畫的情境。他也沒有錢可以支付漏洞回報,因為他自己也沒拿到報酬,儘管確實有許多億萬美元的公司正在使用他的程式碼:

xkcd 第 2347 號〈Dependency〉
最終,我們會回到一個平衡點,屆時 AI 安全工具會像今天的 static analysis tools(靜態分析工具)一樣便宜又方便。廠商會在漏洞進入正式環境前就用 AI 攔截安全問題。
短期內,有大量漏洞突然變成了唾手可得的低垂果實;對攻擊者而言有利可圖,對想修補問題的正直研究人員卻沒什麼價值。
達成 Little Moments 的第一個里程碑
早在去年 12 月,我就宣布要打造一款免費、開源的寶寶照片分享 App,因為我受夠了現有的選擇。
我原本以為這個 App 可以輕鬆地用 vibe coding(氛圍式開發)完成,但後來我意識到這正好是練習撰寫 design doc 的好機會。我一直在為《重構英文》撰寫設計文件流程,卻已經快十年沒有真正寫過一份完整篇幅的 design doc 了。
對我來說,要寫一份 design doc 很不容易,因為短期內 vibe coding 的滿足感要高得多。這就是為什麼從 12 月拖到現在,但我終於專心把我的 App——Little Moments——的 design doc 寫完了。design doc 一完成,剩下的事就輕鬆了。
目前,你可以匯入透過從 TinyBeans 匯出的資料,並在本地端呈現。我不想公開真正的私人家庭照片,所以建立了測試用的假資料:
即使只是這樣最精簡的版本,我也覺得非常令人興奮,迫不及待想把它完成。
如果你從沒用過 TinyBeans 或 PhotoCircle,可能會覺得我對這麼陽春的原型如此興奮有點奇怪,但我再怎麼強調那些 App 的使用者體驗有多糟都不為過。
就連「查看下一張/上一張照片」這種基本流程,在 TinyBeans 上都無法正常運作。如果你正在看一張照片,必須先返回照片索引頁,再去找下一張照片。而且這還是在行動 App 上的情況。在網頁版上,你甚至無法依序瀏覽照片,只能透過月曆去找。再加上到處都是廣告和推銷,整個體驗慢到讓人抓狂。
Little Moments 速度非常快,我還加入了鍵盤快速鍵和行動裝置滑動手勢,讓瀏覽更加輕鬆。我很期待完成這個 App,徹底擺脫 TinyBeans。
收尾
完成了哪些事?
- 發表了〈Claude Code 發現了一個隱藏 23 年的 Linux 漏洞〉
- 發表了〈哪份設計文件是人類寫的?〉
- 發表了《重構英文》中〈幫助讀者達成目標〉一章
- 完成了我對 Firefox 的首次貢獻:一個防止處理異常 Ogg 檔案時當機的小修正。
經驗教訓
- 未來幾年資安將會很艱難
- 對惡意行為者而言,找出漏洞從未如此容易,而對想修補問題的正直研究人員,報酬卻越來越少。
下個月的目標
- 完成《重構英文》的撰寫
隨機一篇部落格