#side-project

寫作時只寫一個 [[slug|說法]] remark plugin 在 build 時展開 ① 內文連結 讀者順著文脈跳到對的段落(支援標題錨點) ② 對方文末的「🔗 被引用於」 反向連結自動生成,還依引用所在章節分組 ③ 知識圖譜的一條邊 /graph/ 頁把全站文章畫成一張互動網絡圖 寫一次,長三個地方——文章寫得越多,舊文章越值錢

這個部落格本身,就是一個作品:把寫作做成一條產線

· tech · 約 5 分鐘

寫了 旅遊分帳 和 GitCrisp 的介紹之後,發現漏了一個最常被使用的作品——你現在正在看的這個網站。它不是「架個 blog」:一百六十多篇文章、十幾個系列、一排小工具的背後,是一個 Astro …

#side-project#automation#ai

presentation — PySide6 main window · graph delegate · MD3 theme tokens application commands / queries(薄薄一層 use-case) domain entities(純資料類) ports(Protocol 介面) 零框架依賴 infrastructure pygit2 composite 十個 ops mixin: branch / commit / diff / stage merge-rebase / stash / tag remote / submodule / worktree + subprocess(git apply) 實作 ports 依賴指向內圈:presentation → application → domain ← infrastructure

GitCrisp:我和 AI 一起寫了一個 Git 桌面客戶端

· tech · 約 6 分鐘

GitCrisp 是一個桌面版的 Git 客戶端:視覺化 commit graph、逐 hunk staging、互動式 rebase、衝突解決介面、多倉庫管理,Python + PySide6(Qt…

#side-project#system-design#ai

手機 A localStorage 手機 B localStorage 電腦 C localStorage Apps Script /exec doGet / doPost LockService:鎖內合併 Google 試算表 trips 表(JSON) 明細分頁(唯讀鏡像) 同一組行程代碼 同步循環:① GET 拉雲端 → ② 本機合併 → ③ POST 推回 → ④ 伺服器鎖內再合併,回傳權威版本

旅遊分帳:把 Google Sheet 當後端,寫一個不會把帳弄丟的分帳工具

· tech · 約 6 分鐘

每次跟朋友出國,分帳都是同一個劇本:有人先墊機票、有人刷了租車、晚餐又是另一個人付——回國後對著一堆收據算「誰欠誰多少」,算到懷疑人生。市面上的分帳 App 不是要每個人都註冊帳號,就是要大家都裝同一…

#side-project#system-design#distributed-systems