誌做了什麼 · 試過什麼 · 否決了什麼 · 留下了什麼
一個人的開發現場紀錄。依時間切片,寫下每個專案當時在想什麼、哪些概念實驗留了下來、哪些做到一半被自己否決。
自己架一台訊令 relay,降低柴米帳對公共 Nostr relay 的依賴。六個階段全部做完之後,又讓 AI 回頭做了一次完工稽核,正式站上真的抓出一個會永久鎖死的漏洞。
AbstractSelf-hosted a WebRTC signaling relay to cut dependence on public Nostr relays. After all six build phases were marked done, a self-triggered completion audit caught a real production bug that could permanently lock the service.
同一年做的兩個東西都拒絕把資料放到雲上,也都用 WebRTC。可是把連線架構攤開並排,形狀幾乎沒有一處相同。
AbstractTwo projects from the same year, both refusing to put data in the cloud, both on WebRTC. Laid side by side, almost nothing about their architectures matches.
客棧裡加了廣播聊天。多人連線遲早要有語音跟視訊,可是初期用文字最好,社交連結強一點,又不會過度暴露隱私。
AbstractAdded broadcast chat to the inn. Multiplayer will eventually want voice and video, but text is the right place to start: it strengthens the social link without exposing much of anyone.
連線亂鬥做出來了。沒有中央伺服器,所以房主掉線這件事得自己解,最後的做法是讓剩下的人繼位。
AbstractOnline melee shipped. With no central server, a host dropping out is a problem you have to solve yourself, and the answer turned out to be letting a remaining player take over the room.
第三個分類是方法。它跟小說有一個根本的差別,小說有原文可以校對,方法類的東西沒有。
AbstractThe third category is methods. It differs from fiction in one fundamental way: fiction has a source text to check against, and method writing does not.
那時候快過年,系統一直崩潰。我做了一個能在 Telegram 上定位問題、緊急處理的機器人。它到今天都沒有接大模型,而理由跟能力無關。
AbstractRight before Chinese New Year our system kept falling over. I built a bot that lets me locate faults and run emergency ops from Telegram. It still has no LLM behind it, and the reason has nothing to do with capability.
一週把站蓋起來。真正花時間的不是版面,是想清楚內容要怎麼產出。
AbstractA week of scaffolding. The layout was the easy part — the real work was designing how the content gets produced.
一代是規格先行,二代我一份規格都沒寫。這篇講那個轉變,以及五十二天六百多個 commit 之後,第一階段為什麼算完成了。
AbstractThe first version started from a spec. This one started from a README and nothing else. Here is why that inversion happened, and why after 52 days and 610 commits I consider phase one done.
從 commit 生成日誌這件事我試了,結果是一坨流水帳。改成讓工具生成「該問的問題」。
AbstractAuto-generating posts from commits produced filler. The tool now generates recall questions instead, and the writing happens in a Q&A pass.
圍棋做進來了,第三個棋類。然後是兩天的收尾稽核。里程碑不是功能做完,是我自己打磨得差不多,該給別人玩了。
AbstractAdded Go, the third board game in the project, then spent two days on a hardening audit. The milestone is not a feature list. It is that I have polished as far as solo testing can take me.
色票整組從 super-reversi2 的宣紙主題搬過來,實算對比度之後發現有三顆在長文站上不能直接用。
AbstractReused the ink-wash palette from super-reversi2, but three values failed WCAG contrast once measured against every paper surface.
第二個分類是語彙。素材是我手上一份互聯網體制內的高大上詞彙,AI 批評它過時,我就讓它更新一版。
AbstractThe second category is vocabulary. The source material was a list of Chinese corporate-speak I had lying around. The AI called it dated, so I had it produce an updated version.