2026.05.30 —— 今日 10 則
TODAY'S THREAD 今天反覆出現的問題是「對的底座」——bijou64 把可變長整數的字典序、branchless 解碼、長度前綴一次做完,省下未來十年 LSM 與 columnar store 自己再造一輪;Andrew Quinn 把 3 GB SQLite 字典換成 7 MB finite-state transducer,把 query 從毫秒壓到微秒;obeli.sk 把 Temporal 那套 durable workflow 拆回 SQLite + WAL,三套底座都在說「現有東西先試一次」。AI 角度則是 Roundtable 拿 Claude Computer Use、ChatGPT Agent、Comet 真的去解 CAPTCHA,量化出哪一種題型還擋得住、哪一種已經破。剩下還有 inkandswitch、pierre.computer、Liquid AI、Sigma Star 的細活。
CAPTCHA 還擋得住 agent——Roundtable 真的把 Claude、ChatGPT Agent、Comet 拉去解
Roundtable Research 把幾個近期 agent——Claude Computer Use、ChatGPT Agent、Perplexity Comet——當受試者,讓它們去通過 image-grid CAPTCHA、reCAPTCHA、Cloudflare Turnstile,量化各自的通過率與失敗模式。意外發現:純視覺題(找紅綠燈)agent 仍會被字體扭曲與背景雜訊絆倒,真正的高門檻反而是 Turnstile 的 server-side timing / fingerprint 那一層——agent 的 click pattern 在毫秒尺度上「太整齊」,當下就被分流到 hard mode。
Liquid AI 釋出 LFM2-5 8B-A1B——MoE 算力與 38T token 預算的取捨
Liquid AI 端出 LFM2-5:總參數 8B、每 token 只激活約 1B(A1B)的 mixture-of-experts,預訓練吃了 38 兆 token。文章拆 expert routing 用的 sparse-mixture-of-experts gating、KV-cache 在 active-params-only 下的記憶體曲線、以及為什麼這條配方在消費級 GPU 上推論可以一秒餵 100+ token。對想跑「能塞進 24GB 記憶體、又有 8B-class 能力」的隊伍,這份 release 是新的天花板。
OpenRouter 排行榜第一是匿名的 Hy3——minimaxir 拆使用量加權的陷阱
最近 OpenRouter 模型排行榜的第一名是來歷不明的 Hy3。minimaxir 翻它的 token 使用量曲線、router 內部的 fallback rule、與 cost-per-token 的設定,指出真正讓它衝上第一的不是品質,是被某個高流量 router 設定為預設 fallback:使用量=排名的設計把「便宜又夠用」放大成 #1。文章順帶提醒「公開排行榜」這件事在 LLM 評測上多脆。
bijou64——把可變長整數的字典序、branchless 解碼、長度前綴一次解決
Ink & Switch 推出 bijou64:一個把 unsigned 64-bit 整數壓成 1–9 byte 的可變長度編碼。設計約束三條同時拿到——編碼字典序與原值字典序一致、解碼 branchless、長度可從首 byte 前綴讀出。對 LSM-tree key、columnar store row id、CRDT log seq 三種「整數而且要排序」的場景,bijou64 把 SQLite varint、Protobuf varint、ULEB128 各自缺的那一條一次補齊。文章同時跑了與 SQLite varint、Protobuf 的 micro-benchmark。
3 GB SQLite 換成 7 MB FST——finite-state transducer 把全文字典壓到能 mmap 的尺寸
Andrew Quinn 在 TIL 紀錄一次把 3 GB SQLite 全文字典換成 finite-state transducer 的實驗:用 Rust 的 fst crate 把 6 千萬條 (key, payload) 重新建成 minimized FST,落地 7 MB,全部 mmap 進記憶體。query 從 SQLite B-tree 的毫秒級壓到 sub-100 微秒。文章順手拆 FST 的兩件關鍵事——node 共享、output suffix share——讓對「為什麼壓得這麼狠」的人有個入口。
「你其實不需要 Yocto」——Sigma Star 列舉 Buildroot、Debian cross 何時就夠
Sigma Star 的 embedded Linux 維護者把 Yocto 的痛——layered metadata、cross-build 時間、SDK 的長尾依賴——攤平講,再列出三種「其實不需要 Yocto」的場景:單一硬體型號(Buildroot 已經夠快)、目標就是跑 Docker(直接 Debian 或 Alpine)、要 OTA 但只有兩三個 service(mender / swupdate 配 systemd 即可)。對 SoC vendor 強推 Yocto BSP 而後續維護沒人接手的隊伍,這份比較整理得很實用。
Azure Chaos Studio 把 e2e test 做成 hermetic——Aspire.Hosting.Testing 起一份再拆一份
Chaos Studio 團隊把跨 4 個 service 的端到端測試從共享 staging 拉回每個 PR 一份 hermetic stack:在 Aspire orchestrator 裡用 in-process side car 把外部 dependency 全 mock 起來,跑完整個拓樸就拆。前提是 Aspire.Hosting.Testing 已經把「啟動順序」與「服務之間的 wiring」抽象成可程式設計的 fixture。對任何被「PR 之間互踩測試環境」折磨過的隊伍,這套 hermetic-per-PR 的設定值得抄一抄。
怎麼把 diff 渲染好——pierre.computer 拆 GitHub、Linear、Phabricator 三家的招
Pierre 從 code review 工具的差異入手:syntax-aware 對齊、word-level fallback、unified vs split 視圖下游標 input 的怪行為、100k 行 patch 怎麼還能滾得順。文章把 diff rendering 從「兩欄並排」拆成四個獨立子問題——hunk 切分、token-level align、virtual scroll、word-wrap 對齊——並對比 GitHub、Linear、Phabricator、Gerrit 各自的選法。對自家想做 review UI 的隊伍是少有的 cross-cutting 整理。
VS Code 1.122——Copilot tool 加 per-invocation sandbox、terminal protocol v2 換掉 PTY
May 2026 主版本加了三件結構性的事:Copilot chat 每次 tool call 都跑一個獨立 sandbox(file write、shell exec 都被 prompt 過)、terminal protocol v2 把舊 PTY 的 scrollback 不可靠問題收掉、remote container 多了 vsock backend。release notes 同場記 18 個 perf patch。對重度跑 Copilot agent 的隊伍,這把「tool 寫亂 workspace」的風險拉低。
SQLite 也夠用——obeli.sk 把 durable workflow 收進單 writer 的 WAL
Obelisk 把 Temporal、Cadence 的 durable workflow 模式重新貼到 SQLite:WAL + 單 writer + idempotent task 表,外加一張 retry-with-backoff 的 sweeper。號稱單機 millions of workflows/day。文章對比 Postgres 的 row lock 在高 throughput 下的等待曲線,並拆「single-writer 怎麼還能水平擴」——靠 partition by workflow_id 與 read replica 分流。和昨天的 DBOS 主張形成對照:兩個都把 orchestrator 收回資料庫,差別在底座選 SQLite 還是 Postgres。
today's deep reads
bijou64 怎麼把字典序、branchless、長度前綴一次拿到——拆 Ink & Switch 的設計取捨
SQLite varint 用 7-bit / 1-bit continuation,解碼要走迴圈;Protobuf varint 排序順序不等於原值順序;ULEB128 也排不對。bijou64 用首 byte 的 leading-zeros 一次告訴你長度、剩餘 byte 採 big-endian 拼回,三條約束同時拿到的方法到底是什麼?跟 SQLite varint、Protobuf 的 micro-benchmark 看起來怎樣?LSM-tree、columnar、CRDT log 三種使用場景各自獲利多少?
為什麼「兩欄並排」這件事這麼難——把 diff rendering 拆成 hunk、align、virtual scroll、wrap 四個子問題
render diff 看起來只是「左邊舊的、右邊新的」,實際上 hunk 怎麼切、token-level 怎麼對齊、100k 行怎麼還能順、CJK / 寬字元的 wrap 怎麼跟對面對得上,四件事任何一件做不好都會讓整個 review 體驗崩。GitHub、Linear、Phabricator、Gerrit 各自選了哪一條路?為什麼 syntax-aware align 看起來像對的方向卻不流行?
CAPTCHA 還擋得住 agent 嗎——把三個近期 agent 拉到 image puzzle、reCAPTCHA、Turnstile 前面,哪個還行
Claude Computer Use、ChatGPT Agent、Comet 三個近期 agent 都被拿去解三家主流 CAPTCHA:image-grid puzzle、reCAPTCHA v2/v3、Cloudflare Turnstile。視覺題的失敗率是多少?timing fingerprint 為什麼比視覺辨識更難繞?為什麼 Turnstile 對「太準時」的 click pattern 反應比預期更敏感?防 agent 的最後一道牆,到底還能撐多久?