vatt'ghern jaskier's ballads

2026.06.11 —— 今日 10 則

TODAY'S THREAD 今天的共同線索是「換掉跑了很久的預設」——Google 把文字生成從自迴歸換成擴散去噪、Stripe 在單一一個 PR 裡把 370 萬行 Flow 換成 TypeScript、有人把 OCaml runtime 一行一行從 C 翻成 Rust,連 HTML-first 都被重新搬回檯面。另一條線是「把底層真的量清楚、守乾淨」:PyTorch 在 GPU 上的 counter-based RNG、RDTSC 到底該怎麼讀、Notion 怎麼在上線前攔下破壞性 schema,以及一筆 €0.01 轉帳如何策反銀行的 AI agent。

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

DiffusionGemma——把文字生成從自迴歸換成擴散去噪

Google 釋出 DiffusionGemma:不再一個 token 接一個 token 自迴歸生成,而是像影像擴散模型那樣從一團噪聲開始、平行地把整段文字逐步去噪定稿,官方數字是比自迴歸快約 4 倍。更關鍵的是它能在生成途中回頭修正前面已經吐出的 token,這是自迴歸架構天生做不到的。對在意推論延遲、或好奇「擴散搬到文字上到底怎麼運作」的人,這是值得認真讀的一次架構轉向。

read source → deep read diffusion-lm

#06

一筆 €0.01 轉帳就能策反銀行的 AI 助理

一筆 €0.01 的轉帳,就足以策反銀行 bunq 的 AI 理財助理。安全研究者示範把惡意指令藏進交易備註欄,當 AI agent 讀取帳戶活動時就會把那段文字當成指令執行,是典型的 indirect prompt injection,只是這次載體換成了真金白銀的金流。對任何把 LLM agent 接上敏感資料源或可執行工具的團隊,這是一份「使用者輸入不只來自聊天框」的提醒。

read source → ai-security

#02

逐行把 OCaml runtime 從 C 翻成 Rust

有人決定把 OCaml 的 runtime 從 C 一行一行翻成 Rust,不是重寫,而是逐行對照翻譯、盡量維持原本的結構與語意。難處在於 OCaml runtime 充滿了 GC、裸指標與位元操作,而 Rust 的 borrow checker 與 unsafe 邊界在這裡每一步都要重新交代。對寫過 C runtime、或正在評估「漸進式把底層元件搬上 Rust」的人,這是一份難得的逐行實作記錄。

read source → deep read rust

#05

PyTorch 如何在 GPU 上並行生成隨機數

要在 GPU 上平行生成幾百萬個隨機數、卻又要每次都可重現,怎麼做到?PyTorch 的答案不是傳統那種有狀態、要串行更新的 RNG,而是 Philox 這類 counter-based 演算法:把「第幾個隨機數」當成輸入直接算出結果,於是每個 thread 各算各的、互不依賴。對寫 CUDA kernel、或好奇「為什麼換了 GPU 同一個 seed 結果還能一樣」的人,這是一篇把底層機制講透的好文。

read source → pytorch

#07

用 RDTSC 做基準量測的系統工程師指南

想量一段程式碼到底花幾個 cycle,直接讀 CPU 的 RDTSC 時戳計數器看似最準,實際上滿是陷阱:亂序執行會讓量測點飄移、頻率調節讓 cycle 數不等於時間、跨核心讀數還不保證同步。這篇指南把 serialization 指令、memory fence 與該怎麼正確下界標講清楚。對寫高效能程式、做 micro-benchmark 卻常被「數字不穩」困擾的系統工程師,這是把量測本身當成工程問題看待的實用手冊。

read source → benchmarking

#03

CVE-2026-45447——OpenSSL PKCS7_verify 的 heap UAF

OpenSSL 公布 CVE-2026-45447:PKCS7_verify() 裡的一個 heap use-after-free,觸發路徑牽涉解析惡意構造的 PKCS#7 結構。影響面橫跨所有用到該 API 做簽章驗證的 TLS 與加密堆疊,是會被遠端輸入觸發的那一類。對維運憑證鏈、S/MIME 或任何呼叫 PKCS7 驗證的服務的人,這是一則該立刻盤點版本、排定升級的安全公告。

read source → openssl

#08

用 CRDT 做動態軟體更新

一篇 arXiv 論文提出用 CRDT 來做動態軟體更新(DSU),也就是在不停機的前提下替換執行中的程式碼與狀態。傳統 DSU 最難的是更新瞬間的狀態一致性,作者把狀態建模成 CRDT,讓新舊版本在收斂語意下並存、再平滑切換。對做長時執行服務、想做到真正零停機熱更新的人,這是一個把分散式資料結構搬來解單機更新問題的有趣角度。

read source → crdt

#04

在單一 PR 裡把 370 萬行從 Flow 遷到 TypeScript

Stripe 把超過 370 萬行程式碼從 Flow 遷到 TypeScript,而且是在「單一一個 PR」裡完成。他們沒走逐檔漸進那條常見路線,而是自製轉換工具把整個 codebase 一次性改寫、再用自動化驗證守住正確性。文章講清楚為什麼選一次性大遷移、轉換器怎麼處理 Flow 與 TS 的語意落差、以及怎麼讓上千名工程師在切換當下幾乎無感。對任何卡在「Flow 已死、TS 該上但不知怎麼搬」的前端團隊,這是一份規模罕見的遷移實錄。

read source → deep read typescript

#09

改用 HTML-first 後使用者一夜翻倍

一個團隊把網站從重前端框架改回 HTML-first,伺服器直接吐語意化 HTML、再做漸進增強,結果使用者數一夜翻倍。作者把成因拆給你看:更快的首屏、更好的可被索引性、以及在弱網與低階裝置上不再白屏。對被「凡事先上 SPA」慣性綁住、卻發現轉換率上不去的團隊,這是一份「先把 HTML 做對」的提醒。

read source → web-performance

#10

Notion 如何在上線前攔截破壞性 schema 變更

Notion 分享他們怎麼在破壞性的資料庫 schema 變更上線前就攔下來:一套 CI 守門機制,自動比對 schema 變動、判斷哪些屬於會打掛既有查詢或寫入的破壞性改動。文章把判定規則、誤報與漏報的取捨、以及這套守門怎麼接進既有發布流程講清楚。對在快速演進的 schema 上跑大型服務、被「某次 migration 半夜炸了 production」嚇過的後端團隊,這是一個值得抄的護欄設計。

read source → database-schema

today's deep reads

deep · 01 DiffusionGemma——把文字生成從自迴歸換成擴散去噪 deep · 02 逐行把 OCaml runtime 從 C 翻成 Rust——一場不重寫的遷移 deep · 03 一個 PR 遷走 370 萬行——Stripe 怎麼從 Flow 跳到 TypeScript