vatt'ghern jaskier's ballads

2026.06.26 —— 今日 10 則

TODAY'S THREAD 今天的主線是併發與失敗的工程細節——ClickHouse 的 fiber、free-threaded Python、Linux rseq 想把同一批 CPU 榨出更多並行,saga rollback 與結構化主鍵則在替失敗與一致性收尾,外加 Anthropic 把 Bun 收進 agent 工具鏈。

10 items ai · 2 systems · 3 infra · 1 web · 2 backend · 2
0 / 10 read
#02

帶註解的 PyTorch 訓練迴圈

一篇逐行註解最小 PyTorch 訓練迴圈的文章:forward、loss、backward、optimizer.step、zero_grad 各做了什麼,以及 autograd graph 在背後怎麼被建起來又釋放。重點放在那些會沉默壞掉的順序問題——zero_grad 擺錯位置、對 detach 過的 tensor 呼叫 backward、train 與 eval mode 忘了切。適合想把訓練迴圈從「會跑」推到「知道每一行在改什麼狀態」的人。

read source → pytorch

#04

別把 skill 塞太多東西

Microsoft 在 agent framework 部落格點出一個常見反模式:把太多 context 塞進單一 skill 定義,會浪費 token、也讓模型在工具選擇上變鈍。作者的解法是先量再建——先跑沒有 skill 的 baseline,量出 model 真正缺的那一塊,skill 只補那個缺口、不重講它已經會的。對在設計 agent 工具與 MCP server 的人,這是一條關於「skill 該放多少」的實用準則。

read source → deep read agents

#01

Silk:ClickHouse 的 fiber runtime

ClickHouse 開源 Silk——一個 C++ 的 M:N fiber scheduler,鋪在 OS thread 之下,用 cooperative 排程接住「一萬個微小 I/O 操作」帶來的 tail latency。設計上是 NUMA-aware 的 work-stealing、per-CPU pinning、穩態下零 heap 配置。官方數字:fiber yield 約 3.6ns、io_uring ping-pong 約 7.6µs,首個落地目標是 ClickHouse 的分散式快取層。

read source → deep read fiber

#06

Free-threaded Python:過去、現在與未來

LWN 盤點無 GIL 的 free-threaded Python:3.13 的實驗版單執行緒會慢上 20–40%,到 3.14 已收斂到 0–10%。3.15 預計帶來同時支援 GIL 與 free-threaded 的統一穩定 ABI,讓 extension 不必再分兩種 build。文中預測無 GIL 會在 3.16 到 3.20 之間某個版本成為預設。

read source → python

#07

Linux 上的 Restartable Sequences

gslin 整理了 Linux 的 Restartable Sequences(rseq):讓 user space 跑一段臨界區,被 preempt 或 migrate 時由 kernel 負責重跑,藉此實作 per-CPU 資料結構而不必上 atomic。glibc、tcmalloc 這些已經在用它來加速熱路徑。對寫高效能併發、想避開 cache-line 爭用的人,這是個值得知道的底層機制。

read source → linux

#03

Cloudflare Workflows 的 saga 式 rollback

Cloudflare 替 Workflows 加上 saga 式的 compensating action:durable workflow 跑到一半失敗時,能照反序執行每一步預先定義的補償動作,把已生效的外部 side effect 收回去。這補的是 durable execution 最尷尬的洞——前 N 步成功、第 N+1 步炸掉,留下一半完成的狀態。對在 Workflows 上串外部 API 與付款流程的人,「失敗時怎麼乾淨地退回」從此是可宣告的步驟,而不是事後補的 try/catch。

read source → deep read workflows

#08

Anthropic 收購 Bun

Anthropic 收購由 Jarred Sumner 創立的 JavaScript runtime 與工具鏈 Bun,用來強化 Claude Code 的基礎設施。官方說 Bun 會維持 MIT 開源授權、繼續對所有開發者開放;同一篇也揭露 Claude Code 在約半年內跑到 10 億美元的 run-rate。一個 JS runtime 被模型廠收進 agent 工具鏈,值得留意它後續的中立性與走向。

read source → bun

#10

tw-fade:純 CSS 的捲動邊緣淡出

tw-fade 是一個 Tailwind CSS v4 plugin,用 scroll-driven animation 加 CSS mask 做出捲動容器的邊緣淡出——「一個 class、零 JavaScript」。淡出只在還有內容可捲時出現、捲到底就收掉。瀏覽器支援 Chrome 與 Edge 120+、Safari 26+,Firefox 穩定版目前是靜態淡出的部分支援。

read source → css

#05

Shepherd:Stripe 怎麼改造 Chronon

Stripe 把 Airbnb 開源的 Chronon 特徵平台改造成內部的 Shepherd,用來規模化 ML 特徵開發。重點是讓特徵定義標準化、backfill 與線上/離線一致性都收進同一套框架,服務詐欺偵測這類模型管線。文章談的是怎麼在既有開源骨架上長出自己的能力,而不是從零重寫。

read source → ml

#09

結構化主鍵

modern-sql 替「結構化主鍵」辯護:用 (customer_id, order_no) 這類複合鍵當主鍵,讓同一顧客的列保有 cohesion,查詢能少掉穿過 orders 表的那一次 join。作者給了數字——查某顧客最後一筆訂單快了約 68–85%(省掉 join),但插入訂單因要查 per-customer 序號而慢了約 29–35%。是一篇把 surrogate key 隱性代價講清楚的文章。

read source → sql

today's deep reads

deep · 01 Silk——ClickHouse 怎麼用 M:N fiber 把一萬個 I/O 排進固定的 thread 預算 deep · 02 Cloudflare 怎麼替 Workflows 補上 saga 式的失敗回退 deep · 03 別把 skill 塞太多東西——agent skill 該切多細的取捨