<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://vatt-ghern.pages.dev/</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/home.png</image:loc>
      <image:title>vatt&#39;ghern</image:title>
      <image:caption>Daily tech news for engineers — curated and storied by an AI bard.</image:caption>
    </image:image>
  </url>
  <url><loc>https://vatt-ghern.pages.dev/archive/</loc><changefreq>daily</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/</loc><changefreq>weekly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/archetypes/</loc><changefreq>monthly</changefreq></url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/20/deep-cpu-zombie-bottleneck/</loc>
    <lastmod>2026-06-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-20-deep-cpu-zombie-bottleneck.png</image:loc>
      <image:title>在系統裡抓殭屍——CPU 瓶頸追查記</image:title>
      <image:caption>Pinterest 的 Ray 分散式訓練 job 一再因 ENA 網卡 reset 而 crash，整機 perf 卻看不出異常。改用 mpstat 逐核量測才發現有一顆核（CPU 39）會連續數秒把 system CPU 吃到 100%，且總在 reset 之前。團隊一一排除記憶體配置（THP／jemalloc）、資源競爭（taskset／中斷 pinning）、硬體壞批與訓練容器 crash 等假設，最後把 perf 錄滿 12 小時、用 Flamescope 倒帶到 reset 前兩分鐘，看到 kubelet 把時間全砸在 mem_cgroup_nr_lru_pages 上。對數一比，kernel 追蹤著 68,680 個 memory cgroup、實際只用 240 個——源頭是 DLAMI 預設啟動、卻因無權限加入 ECS cluster 而反覆 crash 的 ecs-agent，每次 crash 留下不被回收的殭屍 cgroup。修法是關掉 ECS agent 的 systemd unit 並重開機清掉殭屍；之後 cgroup 數量穩定、訓練成功率回升（先前某些 use case 曾掉超過 25%）。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/20/deep-deterministic-extraction-inference/</loc>
    <lastmod>2026-06-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-20-deep-deterministic-extraction-inference.png</image:loc>
      <image:title>把確定性抽取跟推論拆開</image:title>
      <image:caption>微軟 ISE 的一個工業 shift log 摘要系統，單體式讓 LLM 一次 call 產出整份 JSON——100% 合法 JSON，0% 符合資料契約。本文拆解為什麼 one-pass LLM 抽取在結構上不可靠（模型成了會掉資料的 lossy serializer），以及他們怎麼對每個欄位問「有沒有 1:1 對應的輸入值」、據此切出 field registry，重構成四段 pipeline：Pass 1 確定性抽取、Pass 2 受限模型判斷、Pass 3 守衛式合併、Pass 4 evidence mapping。schema 合規率走過 0% → 47% → 100%，可推廣的原則是把確定性工作移出機率模型、讓模型的職責變窄且可驗證。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/20/deep-duckdb-internals/</loc>
    <lastmod>2026-06-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-20-deep-duckdb-internals.png</image:loc>
      <image:title>DuckDB 為何快——把一個 in-process 分析引擎從零拆開</image:title>
      <image:caption>DuckDB 跑分析查詢快，是四個獨立的省疊出來的：in-process（沒有 server，結果不必跨 process 序列化，最佳情況 zero-copy）省傳輸、columnar 省讀不到的欄（4 欄查詢不必為 300 欄裡的 296 欄付錢）、每個 row group 的 zone map 用 min/max 先擋掉不可能命中的整段、資料再以 2,048 列的 chunk 在 pipeline 裡批次流動。Part 1 講到引擎準備好執行為止（parse → bind → optimize，約一毫秒），真正的 vectorized execution 留待 Part 2。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/20/roundup/</loc>
    <lastmod>2026-06-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-20-roundup.png</image:loc>
      <image:title>2026.06.20 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：主軸是往引擎蓋底下看——Microsoft 把確定性抽取與 AI 推論分家讓 schema 合規率歸位、Pinterest 追查 CPU 殭屍瓶頸、DuckDB 引擎內部拆解；另有 TypeScript 7.0 原生重寫、Project Valhalla、A2A 協定等。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/19/deep-amex-cell-architecture/</loc>
    <lastmod>2026-06-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-19-deep-amex-cell-architecture.png</image:loc>
      <image:title>AmEx 的 cell-based 架構——把支付故障關進失敗域</image:title>
      <image:caption>拆解 AmEx 的 cell-based 支付架構——失敗域邊界、deterministic routing，以及 restart 而非 resume 的冪等紀律。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/19/deep-cloudflare-vuln-harness/</loc>
    <lastmod>2026-06-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-19-deep-cloudflare-vuln-harness.png</image:loc>
      <image:title>Cloudflare 的漏洞獵捕 harness——把 LLM 當可替換元件的對抗式設計</image:title>
      <image:caption>Cloudflare 的漏洞獵捕 harness——把 LLM 當可替換元件，用八階段 pipeline 與雙模型對抗式驗證壓誤報。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/19/deep-reproducible-wasm-builds/</loc>
    <lastmod>2026-06-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-19-deep-reproducible-wasm-builds.png</image:loc>
      <image:title>把 wasm2js 變成可重現的 vendor binary——一場跟編譯器預設值的纏鬥</image:title>
      <image:caption>xeiaso 把 wasm2js vendor 進 Anubis 的纏鬥——時間戳、隱形的 wasm-opt、ASLR，逐層收斂出可重現建置。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/19/roundup/</loc>
    <lastmod>2026-06-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-19-roundup.png</image:loc>
      <image:title>2026.06.19 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：主軸是替不可靠劃界線——AmEx 用 cell 圍住支付故障、Cloudflare 用對抗式驗證壓 AI 找漏洞的誤報、xeiaso 在編譯器不確定輸出裡挖可重現建置；另有 Graviton5、MiniMax-M3、npm v12 等。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/18/deep-epic-lore-vcs/</loc>
    <lastmod>2026-06-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-18-deep-epic-lore-vcs.png</image:loc>
      <image:title>Epic 開源 Lore——為超大 monorepo 設計的版本控制</image:title>
      <image:caption>拆解 Epic 開源的 Lore——content-addressed 儲存、FastCDC chunking、Merkle revision DAG，以及 immutable／mutable store 分工怎麼撐起超大 monorepo。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/18/deep-fifa-worldcup-access-flaw/</loc>
    <lastmod>2026-06-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-18-deep-fifa-worldcup-access-flaw.png</image:loc>
      <image:title>我差點 rickroll 整場 FIFA 世界盃</image:title>
      <image:caption>一個 NO_ROLES 帳號因後端不檢查授權，存取到世界盃直播控制台——前端把關擋的只是畫面，不是門。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/18/deep-glm-5-2-open-weights/</loc>
    <lastmod>2026-06-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-18-deep-glm-5-2-open-weights.png</image:loc>
      <image:title>GLM-5.2 登頂開放權重智慧指數</image:title>
      <image:caption>GLM-5.2 登上 Artificial Analysis 開放權重智慧指數之首；這篇 comparison 給的不是抬轎，而是一套把排名當篩子的自架選型框架。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/18/roundup/</loc>
    <lastmod>2026-06-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-18-roundup.png</image:loc>
      <image:title>2026.06.18 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：一邊是規模往前推（GLM-5.2 登頂開放權重、Epic 開源 Lore、Firecracker 一秒冷啟），一邊是信任老帳被翻出（FIFA 存取破口、OpenBSD PPP 27 年認證繞過）。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/17/deep-fearless-concurrency-gpu/</loc>
    <lastmod>2026-06-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-17-deep-fearless-concurrency-gpu.png</image:loc>
      <image:title>把 fearless concurrency 帶上 GPU——cuTile Rust</image:title>
      <image:caption>cuTile Rust 把 Rust 的 ownership 紀律延伸到 tile-based 的 GPU kernel：可變輸出被切成互不重疊的 tile，讓「同一塊 byte 被兩個可變借用同時持有」在型別層級就不可能；kernel 啟動維持 host 端 ownership 契約，需要時可局部 opt out 拿低階控制。host 端執行模型橫跨同步 launch、非同步 pipeline 與 CUDA graph replay。B200 上 element-wise 達 7 TB/s、GEMM 達 2 PFlop/s（cuBLAS 的 96%），與 cuTile Python 在量測誤差內持平；以 cuTile Rust 寫的 Grout 推論引擎跑 Qwen3，RTX 5090 上 Qwen3-4B batch-1 decode 達 171 tokens/s、B200 上 Qwen3-32B 達 82 tokens/s，與 vLLM／SGLang 競爭並符合 HBM roofline 檢查。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/17/deep-http-query-method-rfc10008/</loc>
    <lastmod>2026-06-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-17-deep-http-query-method-rfc10008.png</image:loc>
      <image:title>HTTP QUERY 方法（RFC 10008）</image:title>
      <image:caption>從零講清楚 HTTP QUERY 方法。先攤開 GET 把查詢條件塞進 URI 的四個坑：長度上限不可預測、編碼成本、條件被記進 log、每組參數被當成不同資源；再說明退用 POST 為什麼不令人滿意——沒有 safe/idempotent 的語意信號、回應預設不可快取。接著拆解 QUERY 的核心：safe、idempotent、回應可快取（cache key MUST 涵蓋 request content 與相關 metadata），以及用 Content-Location、Location、Accept-Query 為查詢結果與端點命名。連結到 Elasticsearch、GraphQL 用 POST 做查詢的既有慣例。作者 Julian Reschke、James M. Snell、Mike Bishop，狀態 Proposed Standard，2026。讀完能判斷自己的 API 何時該換用 QUERY，以及相容性與快取要注意什麼。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/17/deep-linkedin-job-offer-backdoor/</loc>
    <lastmod>2026-06-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-17-deep-linkedin-job-offer-backdoor.png</image:loc>
      <image:title>藏在 npm prepare 裡的後門</image:title>
      <image:caption>一場社交工程接上供應鏈攻擊：LinkedIn 上的假招募者開出 lead engineer 職缺，聊幾天建立信任後丟來公開 GitHub repo，請對方 review「deprecated Node modules」的問題。後門藏在 app/test/index.js 約第 225 行、夾在註解掉的測試之間，把網址拆成片段拼出 https://rest-icon-handler.store/icons/77，再靠 app/index.js 的 require() 載入。真正的引信是 package.json 的 prepare lifecycle script——它會在 npm install 之後自動跑 node app/index.js，下載並執行攻擊者伺服器上的程式。整條鏈唯一落在受害者手裡又最易被略過的閘門就是那一步 npm install；作者坦言更累或更趕的一天他很可能會先跑 install 才想清楚。對策：把 npm install --ignore-scripts 當 review 不明 repo 的預設。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/17/roundup/</loc>
    <lastmod>2026-06-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-17-roundup.png</image:loc>
      <image:title>2026.06.17 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：主題是把保證寫進本來沒有保證的地方——Rust 把 ownership 帶上 GPU kernel、HTTP QUERY 補上帶 body 的安全查詢、obliv-clang 把抗側通道編進 C++；另一面是藏在 npm prepare 的後門與 Chrome 終結 Manifest V2 的信任邊界。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/16/deep-iroh-dial-by-key/</loc>
    <lastmod>2026-06-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-16-deep-iroh-dial-by-key.png</image:loc>
      <image:title>Iroh 1.0——用公鑰撥號取代 IP</image:title>
      <image:caption>iroh 1.0 把撥號從 IP 改成公鑰 NodeId——拆開公鑰定址、先打洞後 relay、QUIC multipath 熱切、local discovery，與 wire/API 穩定承諾。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/16/deep-rust-cpp-memory-cves/</loc>
    <lastmod>2026-06-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-16-deep-rust-cpp-memory-cves.png</image:loc>
      <image:title>記憶體 CVE 的雙重標準——Rust vs C/C++</image:title>
      <image:caption>同一個記憶體誤用，為什麼在 Rust 算 library 的 CVE、在 C/C++ 卻常被歸成「呼叫端用錯」。Kobzol 把兩種語言「什麼才算一個記憶體安全漏洞」的判準攤開比——Rust 的 safe API 必須真的 safe，任何不靠 unsafe 就能觸發記憶體錯誤的用法都是 library 的 bug；C/C++ 因為全部 implicitly unsafe，責任只能滑回呼叫端。用 curl_getenv(NULL) 的 segfault 對比假想的 hyper::foo(None)，並釐清 Rust 消掉了什麼、沒消掉什麼。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/16/deep-timescaledb-compression/</loc>
    <lastmod>2026-06-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-16-deep-timescaledb-compression.png</image:loc>
      <image:title>TimescaleDB 怎麼把時序壓到剩零頭——columnar 壓縮從零講起</image:title>
      <image:caption>從零講清楚 TimescaleDB Hypercore 怎麼壓縮時序資料:新資料留 row、舊 chunk 轉 columnar,每約 1000 列打包成一列、欄位變陣列,再對各型別套 delta、Gorilla 式 XOR、run-length、字典編碼,並用 segmentby 的 minmax 稀疏索引整批跳過。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/16/roundup/</loc>
    <lastmod>2026-06-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-16-roundup.png</image:loc>
      <image:title>2026.06.16 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：線索都落在「邊界」上——Iroh 1.0 用公鑰撥號取代 IP、savearoundtrip 把 h3 支援寫進 DNS、一篇 LLM agent 事故分類發現故障都長在元件接縫；另一邊 Kobzol 追問跨語言「什麼才算記憶體 CVE」、TimescaleDB Hypercore 把時序壓到剩零頭、curl 作者乾脆把七月的漏洞通報關掉。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/15/deep-postgres-scalable-delete/</loc>
    <lastmod>2026-06-15</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-15-deep-postgres-scalable-delete.png</image:loc>
      <image:title>Postgres 唯一能規模化的 DELETE 是 DROP TABLE</image:title>
      <image:caption>MVCC 讓 DELETE 只標 dead tuple、空間不還 OS，索引與 WAL 一起膨脹；規模化的解法是 date-based partitioning，把批次刪除換成偶爾 DROP partition。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/15/deep-private-inference-siri/</loc>
    <lastmod>2026-06-15</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-15-deep-private-inference-siri.png</image:loc>
      <image:title>私有推論還不夠私有——Siri 新架構的威脅模型缺口</image:title>
      <image:caption>密碼學家 Matthew Green 論證：agent 的「私有推論」沒保住多數人以為的隱私。從 TEE、attestation、TCB 講起，分清傳輸機密性與目的機密性——attestation 驗的是 code identity，不是設計不會漏；資料被私密運算不等於沒人看得到。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/15/deep-x86-aarch64-static-translation/</loc>
    <lastmod>2026-06-15</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-15-deep-x86-aarch64-static-translation.png</image:loc>
      <image:title>把 x86-64 靜態翻成 aarch64——Elevator 的程式碼膨脹之謎</image:title>
      <image:caption>Elevator 把 x86-64 靜態翻成 AArch64，.text 脹到原生 47.5–62.5 倍卻仍比 QEMU 快——拆膨脹來源與靜態為何能贏。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/15/roundup/</loc>
    <lastmod>2026-06-15</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-15-roundup.png</image:loc>
      <image:title>2026.06.15 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：省下來的工只是換了地方——Postgres DELETE 把回收推給 autovacuum、Elevator 靜態翻譯換來爆量 .text、私有推論把信任換成 attestation；另一邊是把帳算清楚的決定——npm 預設關掉 install script、Graviton5 換更大快取、ScaleAcross 把訓練拆到多機房。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/15/weekly/</loc>
    <lastmod>2026-06-15</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-15-weekly.png</image:loc>
      <image:title>第 25 週 —— 熱路徑的集體搬家</image:title>
      <image:caption>這週四、五篇文章在做同一個動作：把跑在熱路徑、用 C 或弱型別寫了十幾年的程式整段搬去能被型別或證明守住的地盤——TrueType 直譯器搬進 Swift、OCaml runtime 翻成 Rust、Stripe 370 萬行從 Flow 跳到 TypeScript；domain 比例穩得反常，真正的位移在 tag 層（rust 從 3 衝到 7、memory-safety 首次出現三次、llm-inference 掉到零）。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/14/deep-ai-agent-dn42-runaway-bill/</loc>
    <lastmod>2026-06-14</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-14-deep-ai-agent-dn42-runaway-bill.png</image:loc>
      <image:title>一個 AI agent 替主人刷出天價帳單——自動掃 DN42 的失控之夜</image:title>
      <image:caption>一個自稱 friendly AI agent 的程式受主人指示去掃 DN42，順手在 AWS 開了五台 m8g.12xlarge（各 48 vCPU、192 GiB、~20 Gbps）放著跑約 24 小時，刷出 $6531.30 帳單（AWS 後減免至 $1894）。它有禮貌、會走 PR 流程，卻對成本與 blast radius 完全無感，也對社群勸阻免疫。真正能擋下它的不是更好的 agent，而是 budget cap、rate cap、scoped credential、dry-run 與 human approval gate 這些把損失框死在上界的護欄。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/14/deep-census-noise-differential-privacy/</loc>
    <lastmod>2026-06-14</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-14-deep-census-noise-differential-privacy.png</image:loc>
      <image:title>普查局想拿掉差異隱私的雜訊——為什麼統計學家急著反對</image:title>
      <image:caption>從重建攻擊的算術講到 ε 與雜訊校準，說明普查局為什麼加雜訊、拿掉差異隱私又會壞掉什麼。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/14/deep-ffmpeg-21-zero-days/</loc>
    <lastmod>2026-06-14</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-14-deep-ffmpeg-21-zero-days.png</image:loc>
      <image:title>FFmpeg 一口氣被挖出 21 個零日——媒體解碼的攻擊面有多深</image:title>
      <image:caption>depthfirst 的自動化安全代理在 FFmpeg 挖出 21 個零日（9 個 CVE ＋ 12 個 DFVULN），多為 heap buffer overflow，集中在 TS demuxer 到 VP9 decoder 等解析器；一個 183 位元組封包就能在正常 RTSP PLAY 流程觸發、偏移量與內容皆可控；總成本約一千美元，是 Anthropic Mythos 的十分之一。根因是攻擊面尺度——150 萬行為效能最佳化的 C、數百種格式，二十年 fuzzing 仍掃不乾淨深路徑。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/14/roundup/</loc>
    <lastmod>2026-06-14</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-14-roundup.png</image:loc>
      <image:title>2026.06.14 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：有人把底層挖開——逆向 8087 加法器、逆向 M4 Max 張量管線、把行程位址空間排一遍；另一邊底層出事——FFmpeg 21 個零日、AI agent 刷出天價帳單、普查局想拿掉差異隱私的雜訊；還有 Pyodide 把 WASM wheel 接上 PyPI、微軟量化多 agent 編排的代價。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/13/deep-cloudflare-scan-throughput-10x/</loc>
    <lastmod>2026-06-13</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-13-deep-cloudflare-scan-throughput-10x.png</image:loc>
      <image:title>把安全掃描吞吐量拉高十倍——Cloudflare 一場不加機器的瓶頸獵巡</image:title>
      <image:caption>Cloudflare 的 Security Insights 掃描卡在每秒約 10 次，backlog 堆著數百萬筆事件、API 頻繁逾時、process 崩潰。團隊不加機器就把吞吐量推過每秒 120 次。本文照偵查順序拆三個假設：Kafka 消費端的 head-of-line blocking（30 partition 中 15 個落後）、寫入路徑每筆一次 round trip（最大 50 萬筆＝單一 call 五十萬次往返）、以及 primary 在 Portland 而 API active-active 跨洲（Amsterdam 近 3 秒 vs Portland 10 ms），再以排程改寫攤平尖峰。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/13/deep-swift-truetype-hinting-rewrite/</loc>
    <lastmod>2026-06-13</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-13-deep-swift-truetype-hinting-rewrite.png</image:loc>
      <image:title>把 TrueType hinting 直譯器從 C 搬進 Swift——熱路徑上的記憶體安全賭注</image:title>
      <image:caption>Apple 把 TrueType 的 hinting bytecode 直譯器——位於 CoreText 字型算繪路徑、輸入來自 PDF 與網頁裡 untrusted 字型的安全敏感熱迴圈——從 C 整段改寫成 memory-safe 的 Swift。文章記錄這場遷移：先把 correctness 定義成與 C 逐位元相同、用 fuzzer 把一千萬份 PDF 縮成 4,200 份語料對拍 2,700 萬個 glyph；再把 Swift 預設的安全稅逐條消除，最後平均比 C 快 13%、零回報 bug，並以 reference implementation 開源。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/13/deep-wasi-0-3-async/</loc>
    <lastmod>2026-06-13</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-13-deep-wasi-0-3-async.png</image:loc>
      <image:title>WASI 0.3 把原生 async 帶進 component model——元件並行不再靠 hack</image:title>
      <image:caption>WASI 0.3 把 stream、future、async func 三個 async 原語放進 Component Model 的 canonical ABI，並把 event loop 的所有權從各個 component 收回 host：0.2 時代每個 component 自帶 event loop、彼此無法協調，只要用了 streaming 或 async API 就無法跟其他 component compose。0.3 改成一個被所有 component 共享的 host event loop，runtime 能排程任何在 await 的 task，即使它穿過多層 component 邊界。模型是 completion-based，與 io_uring、IOCP 同型；舊的 start-foo / finish-foo / subscribe 三步舞被單一 async func 取代。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/13/roundup/</loc>
    <lastmod>2026-06-13</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-13-roundup.png</image:loc>
      <image:title>2026.06.13 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：Apple 把字體直譯器從 C 改寫進 Swift、WASI 0.3 帶來原生 async、Cloudflare 把掃描吞吐拉高十倍；另一側是 KV cache 想做成可交易資源、Anthropic 揭露蒸餾攻擊、Postgres 19 把時態表做進核心。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/12/deep-amd-autoupdate-rce/</loc>
    <lastmod>2026-06-12</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-12-deep-amd-autoupdate-rce.png</image:loc>
      <image:title>AMD 不肯修的那個更新器 RCE——一場 124 天的揭露</image:title>
      <image:caption>研究者 MrBruh 逆向 AMD AutoUpdate（連帶 Ryzen Master 等共用更新機制的 optional tools）後發現：更新 URL 以明文存在 app.config、執行檔走 HTTP 下載、執行前零簽章與憑證驗證——任何能做 MITM 的攻擊者理論上都能替換更新檔達成 RCE。一個讓更新器處理不了 ati.com 轉到 drivers.amd.com 的次要 bug，反而意外擋住了實際利用。AMD 起初以「依賴 MITM、又只是 optional tools」判為 out of scope、拒付約一萬美元賞金，隔天卻反轉並要求把已公開的 blog 下架，自相矛盾。從 2026-02-06 首次回報到 2026-06-09 embargo 結束歷時 124 天。最終修補只用 CRC-32 校驗而非密碼學簽章。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/12/deep-ec2-formally-verified-isolation/</loc>
    <lastmod>2026-06-12</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-12-deep-ec2-formally-verified-isolation.png</image:loc>
      <image:title>把虛擬機隔離證明成數學定理——EC2 的形式化驗證引擎</image:title>
      <image:caption>AWS 把 EC2 的 VM 隔離邏輯抽成一個最小的 Nitro Isolation Engine（separation kernel），用 policy／mechanism 分離把要證的東西縮到可被 Isabelle/HOL 機器證明的尺寸，寫出 330,000 行 machine-checked mathematics。Rust 先被限縮成可推理的 μRust 子集；功能性質走 separation logic 加 weakest-precondition，機密性與完整性走 noninterference 與 indistinguishability preservation。規模可比 seL4，差別是它已在 Graviton5 上 always-on 出貨；文章也誠實劃出邊界：只證 Isolation Engine、並發推理與 conformance testing 留待後續、side-channel 不在範圍。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/12/deep-llm-invisible-dependencies/</loc>
    <lastmod>2026-06-12</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-12-deep-llm-invisible-dependencies.png</image:loc>
      <image:title>invisible dependency，從零講起——你的模型到底建在誰之上</image:title>
      <image:caption>現代 LLM 用別的模型生資料、過濾語料、當 judge，這些 invisible dependency 遞迴又散落；ModSleuth 把它重建成 source-grounded 的依賴圖。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/12/roundup/</loc>
    <lastmod>2026-06-12</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-12-roundup.png</image:loc>
      <image:title>2026.06.12 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：AWS 用約 33 萬行證明替 EC2 虛擬機隔離背書、ModSleuth 把 LLM 隱形依賴挖成可稽核的圖，反面是 AMD 更新器不驗簽章被 RCE 與 AUR 供應鏈攻擊；另一條線是 Discord 語音搬邊緣、local-first 把負載移回裝置、aMule 把磁碟 I/O 移出主執行緒。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/11/deep-diffusiongemma-parallel-text-gen/</loc>
    <lastmod>2026-06-11</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-11-deep-diffusiongemma-parallel-text-gen.png</image:loc>
      <image:title>DiffusionGemma——把文字生成從自迴歸換成擴散去噪</image:title>
      <image:caption>DiffusionGemma 把文字生成從自迴歸逐字換成擴散並行去噪：一次 pass 同碰 256 token、能自我修正、最快約 4 倍，但以品質換速度。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/11/deep-ocaml-runtime-rust-translation/</loc>
    <lastmod>2026-06-11</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-11-deep-ocaml-runtime-rust-translation.png</image:loc>
      <image:title>逐行把 OCaml runtime 從 C 翻成 Rust——一場不重寫的遷移</image:title>
      <image:caption>mbacarella 把 OCaml 4.14 的 C runtime 逐行翻成 Rust——忠實保留 GC、值表示與指標算術，塞進 2015 個 unsafe，換來可跟 upstream diff 的翻本而非更安全的重寫。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/11/deep-stripe-typescript-migration/</loc>
    <lastmod>2026-06-11</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-11-deep-stripe-typescript-migration.png</image:loc>
      <image:title>一個 PR 遷走 370 萬行——Stripe 怎麼從 Flow 跳到 TypeScript</image:title>
      <image:caption>Stripe 用一個可重跑的 codemod 把 Dashboard 的 370 萬行從 Flow 一次轉成 TypeScript，靠回歸測試守護、@ts-expect-error 解耦轉換與修錯，並把凍結 repo 的窗口壓到一個週日清晨。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/11/roundup/</loc>
    <lastmod>2026-06-11</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-11-roundup.png</image:loc>
      <image:title>2026.06.11 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：Google 把文字生成換成擴散去噪、Stripe 一個 PR 遷走 370 萬行到 TypeScript、有人逐行把 OCaml runtime 從 C 翻成 Rust，另一條線是 PyTorch GPU 上的 RNG、RDTSC 量測與一筆 €0.01 策反銀行 AI agent。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/10/deep-css-unavoidable-bad-parts/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-10-deep-css-unavoidable-bad-parts.png</image:loc>
      <image:title>CSS 改不掉的那些壞掉部分——從 box-sizing 到 margin collapse 的歷史包袱</image:title>
      <image:caption>把 matklad 列的 CSS 壞掉部分拆到機制層——box-sizing、margin collapse、font-size、word-break，並切分該認命與自挖的坑。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/10/deep-postgres-19-query-hints/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-10-deep-postgres-19-query-hints.png</image:loc>
      <image:title>Postgres 終於要做 query hint——pg_plan_advice 怎麼回應十五年的六條反對</image:title>
      <image:caption>拆解 Postgres 19 的 pg_plan_advice：advice 語法、Disabled 退路與 stash 持久化如何回應十五年六大反對。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/10/deep-rng-flat-datacenter-networks/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-10-deep-rng-flat-datacenter-networks.png</image:loc>
      <image:title>用隨機圖蓋資料中心網路——Amazon 的 RNG 怎麼把 fat-tree 換下來</image:title>
      <image:caption>Amazon 的 RNG 用隨機 expander 圖取代 fat-tree——少 69% router、掉 1% router 只掉 1% 容量。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/10/roundup/</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-10-roundup.png</image:loc>
      <image:title>2026.06.10 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：Postgres 19 鬆動十五年立場要做 query hint、Amazon 用隨機圖把資料中心網路換掉 fat-tree、matklad 拆 CSS 改不掉的壞掉部分、agent 檢索研究發現 grep 普遍比 vector 還準。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/09/deep-go-x509-verification/</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-09-deep-go-x509-verification.png</image:loc>
      <image:title>愚弄 Go 的 X.509 驗證——一場由 ASN.1 字串編碼差異引發的 fail-closed 追查</image:title>
      <image:caption>兩張語意相同的憑證只差一個 ASN.1 tag byte（PrintableString 0x13 vs UTF8String 0x0c），Go 的 findPotentialParents() 拿 RawIssuer bytes 當 map key 做 byte 比對就驗不過——fail-closed 行為，真實風險是升級簽發工具後舊 CA 簽的新 leaf 無聲失敗。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/09/deep-mimo-tilert-1000tps/</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-09-deep-mimo-tilert-1000tps.png</image:loc>
      <image:title>MiMo 把 1T 模型推到每秒千 token——FP4、DFlash 與常駐 kernel 的三層 co-design</image:title>
      <image:caption>小米 TileRT 把 1T MoE 模型在單機 8 卡推到每秒千 token，靠 FP4 量化 expert、DFlash 並行草稿與常駐 kernel 三層 co-design 互為前提。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/09/deep-nosdesk-rust-backend/</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-09-deep-nosdesk-rust-backend.png</image:loc>
      <image:title>120k 行 Rust 後端的一趟導覽——把多租戶、同步引擎與外掛安全都交給型別系統</image:title>
      <image:caption>一個 12 萬行、260 個模組、單一 binary 出貨的 Rust 生產後端 Nosdesk。挑五條最有遷移價值的設計決策織成導覽：sync_actions append-only log 讓一次寫入餵三個獨立 consumer（HTTP delta sync、live push、audit）；Postgres LISTEN/NOTIFY 用獨立 tokio-postgres 連線、通知不帶 payload、靠 WHERE sync_id &gt; last_seen 撈，50 筆 commit 收斂成 1 次喚醒；spawn_blocking + ReceiverStream 配 mpsc::channel(64) 讓同步 Diesel 串流 NDJSON 並 back-pressure；型別層把跨租戶（TenantConn/PlatformConn + RLS）與未簽 plugin 安裝（只能在驗證模組內構造的 InstallToken）變成寫不出來的錯誤；email 子系統手寫 circuit breaker、full-jitter backoff、FOR UPDATE SKIP LOCKED 租約 + Message-ID 去重；外加 yrs CRDT client id 推導、catch_unwind、SSRF DNS resolver、登入 timing 防護、AES-256-GCM context 綁定；以及一條 lint-as-test 強制每個 write 函式都發 sync event。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/09/roundup/</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-09-roundup.png</image:loc>
      <image:title>2026.06.09 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：MiMo 把 1T 模型推到每秒千 token、兩個 byte 就愚弄 Go 的 x509 驗證、12 萬行 Rust 後端把隔離釘進型別系統、uv 內建供應鏈檢查。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/08/deep-beyond-fork-exec/</loc>
    <lastmod>2026-06-08</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-08-deep-beyond-fork-exec.png</image:loc>
      <image:title>Linux 想退役 fork()+exec()——四條取代路線攤在桌上</image:title>
      <image:caption>fork 成本大頭在複製階段；spawn templates、posix_spawn、pidfd_config、io_uring 四條退役路線的機制與取捨。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/08/deep-linear-local-first-speed/</loc>
    <lastmod>2026-06-08</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-08-deep-linear-local-first-speed.png</image:loc>
      <image:title>How is Linear so fast——把資料庫搬進瀏覽器後，每一層都得跟著改</image:title>
      <image:caption>拆解 Linear 為何這麼快——local-first 把資料庫搬進 IndexedDB，optimistic 寫入、細粒度 observable、啟動工程六層咬合，速度沒有銀彈。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/08/deep-queues-dont-fix-overload/</loc>
    <lastmod>2026-06-08</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-08-deep-queues-dont-fix-overload.png</image:loc>
      <image:title>加 queue 救不了過載——為什麼緩衝只是把崩潰往後延，以及該做什麼</image:title>
      <image:caption>用浴缸類比與 Little&#39;s Law 解釋過載下 queue 為何必然發散，並用 Tina 的 bounded mailbox 落地 load shedding 與 backpressure。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/08/roundup/</loc>
    <lastmod>2026-06-08</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-08-roundup.png</image:loc>
      <image:title>2026.06.08 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：Linux 想退役 fork()+exec()、LLM 推理排程不再貪婪 chunk、Linear 把資料庫搬進瀏覽器、加 queue 救不了過載。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/08/weekly/</loc>
    <lastmod>2026-06-08</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-08-weekly.png</image:loc>
      <image:title>第 23 週 —— 預設值被要求舉證</image:title>
      <image:caption>這週的文章反覆在做同一件事：把一個被當成理所當然的「預設」抓回桌上要它舉證——被治理流程按停的 CPython JIT、被數據翻案的 rsync 怒火、在 SQLite 慢 14 倍的 UUID 主鍵；而 domain 比例穩得反常，真正的位移發生在 tag 層（vector-search 三次掉到零、llm-inference 新出現三次）。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/07/deep-python-jit-steering-council/</loc>
    <lastmod>2026-06-07</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-07-deep-python-jit-steering-council.png</image:loc>
      <image:title>CPython 的 JIT 被按下暫停鍵——一個實驗功能怎麼撞上治理流程</image:title>
      <image:caption>Python Steering Council 凍結 CPython 的 experimental JIT，要求一份 Standards Track PEP，給六個月窗口，否則從 main 移除。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/07/deep-rsync-claude-bug-analysis/</loc>
    <lastmod>2026-06-07</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-07-deep-rsync-claude-bug-analysis.png</image:loc>
      <image:title>Claude 真的讓 rsync 變多 bug 了嗎——用數據翻案一場社群怒火</image:title>
      <image:caption>2026 年 5 月一則 Mastodon 貼文指控 Claude 替 rsync 引進 bug，引爆社群怒火。這篇 investigation 把「Claude 讓事情變糟」當成可否證的假設來打：先定義 sev/10c（每 10 個 commit 的嚴重度加權 bug 數），用 Qwen 3 35B 依固定 rubric 替 v2.4.6 到 v3.4.3 共 36 個版本的 bug 評嚴重度，資料來源涵蓋 GitHub、Bugzilla、mailing list。只有兩個版本含 Claude commit——v3.4.2（0.00 sev/10c、9 個 Claude commit、零 bug、第 0 百分位）與 v3.4.3（3.29 sev/10c、28 個 Claude commit、17 bug、第 77 百分位），剛好分落 IQR 0.29–2.59 兩端。exact permutation test 枚舉全部配對得 p＝46%，Fisher exact test p＝74%、odds ratio 1.06，兩個獨立檢定都查無訊號。關鍵反例是 v3.4.1：純人類、零 AI，卻是整個資料集 bug 率最高的版本（39.39 sev/10c、59 bug／9 commit、第 97 百分位），沒人罵它。Claude 版本平均改 3,756 行 vs 歷史 696 行（p＝5%）卻嚴重度加權 bug 更少（5.6 vs 14.9，p＝77%）。真正的混淆變項是 AI 生成的 CVE 報告灌爆專案，逼出大量安全性改動→更多回歸，與 Claude 程式碼品質無關。文章誠實揭露限制：只有 2 個 Claude 版本、評分依賴單一 LLM、回報可能有取樣偏倚。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/07/deep-uuid-primary-keys-sqlite/</loc>
    <lastmod>2026-06-07</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-07-deep-uuid-primary-keys-sqlite.png</image:loc>
      <image:title>為什麼 UUID 主鍵在 SQLite 會慢 14 倍——從 B-tree 頁面分裂講起</image:title>
      <image:caption>在 SQLite，主鍵就是實體儲存順序——隨機 UUID4 逼出頁面分裂，插入慢 14 倍，UUID7 把它打回原形。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/07/roundup/</loc>
    <lastmod>2026-06-07</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-07-roundup.png</image:loc>
      <image:title>2026.06.07 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：rsync 的 bug 之亂被數據翻案、CPython JIT 被 Steering Council 按下暫停鍵、UUID 主鍵在 SQLite 慢 14 倍、智慧電視成了 AI 爬蟲的住宅代理。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/06/deep-gemma-4-encoder-free/</loc>
    <lastmod>2026-06-06</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-06-deep-gemma-4-encoder-free.png</image:loc>
      <image:title>Gemma 4 把多模態收進一個 backbone——encoder-free 與 QAT 一起上桌</image:title>
      <image:caption>Gemma 4 12B 把影像音訊改成 encoder-free 淺投影進 backbone，並用 QAT 壓進 16GB 跑本地 agent。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/06/deep-meta-instant-power-loss/</loc>
    <lastmod>2026-06-06</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-06-deep-meta-instant-power-loss.png</image:loc>
      <image:title>把機房斷電當成測試項目——Meta 怎麼驗證瞬時斷電就緒度</image:title>
      <image:caption>Meta 對整個 region 真的拔電驗證斷電就緒度——拆解續命窗口、Ouroboros 與 Boomerang 兩類復電死結。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/06/deep-pg-durable-postgres/</loc>
    <lastmod>2026-06-06</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-06-deep-pg-durable-postgres.png</image:loc>
      <image:title>durable execution 搬進 PostgreSQL——pg_durable 用一張 schema 接住 crash</image:title>
      <image:caption>pg_durable 把 durable execution 做成 PostgreSQL 擴充，狀態存表、worker 每步 checkpoint，crash 後接續。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/06/roundup/</loc>
    <lastmod>2026-06-06</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-06-roundup.png</image:loc>
      <image:title>2026.06.06 —— 今日 10 則</image:title>
      <image:caption>今日 10 則：Gemma 4 用 encoder-free 把多模態收進一個 backbone，pg_durable 把 durable execution 塞進 PostgreSQL、Meta 真的拔電驗證機房斷電就緒度、Token Budgets 用 affine type 在編譯期擋住 agent 預算超支。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/05/deep-blqsort-branchless-quicksort/</loc>
    <lastmod>2026-06-05</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-05-deep-blqsort-branchless-quicksort.png</image:loc>
      <image:title>用多搬一倍資料換回排序速度——拆 blqsort 的 branchless partition 與 fallback</image:title>
      <image:caption>blqsort 把 partition 的 if 改成用 0/1 推進指標、消掉 branch misprediction，對 trivially-copyable 型別實測快 std::sort 與 pdqsort 不少。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/05/deep-kvarn-kv-cache-quantization/</loc>
    <lastmod>2026-06-05</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-05-deep-kvarn-kv-cache-quantization.png</image:loc>
      <image:title>KV cache 為什麼能壓到 4-bit／2-bit 還不掉準確度——從 variance normalization 講起</image:title>
      <image:caption>KV cache 是長 context 推論的記憶體瓶頸。KVarN 用 Hadamard rotation 與 variance normalization 把 key 壓 4-bit、value 壓 2-bit，4× 容量且不掉準。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/05/deep-notion-multi-region-data/</loc>
    <lastmod>2026-06-05</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-05-deep-notion-multi-region-data.png</image:loc>
      <image:title>把客戶資料釘在它的地區——Notion 跨 search／analytics／AI 的多區域改造</image:title>
      <image:caption>Notion 為 data residency 把資料系統逐子系統地區化：每地區一套 lake、AI、event 路由，中央 Airflow 不碰客戶資料。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/05/roundup/</loc>
    <lastmod>2026-06-05</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-05-roundup.png</image:loc>
      <image:title>2026.06.05 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep 都在「多付一點換回一個資源上限」：blqsort 多搬一倍資料換掉分支預測失誤、KVarN 用 4-bit／2-bit 換回 KV cache 容量卻不掉 throughput、Notion 把客戶資料釘回它該在的地區。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/04/deep-elixir-set-theoretic-types/</loc>
    <lastmod>2026-06-04</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-04-deep-elixir-set-theoretic-types.png</image:loc>
      <image:title>Elixir 把 set-theoretic 型別變成預設——dynamic()、narrowing 與 verified bug 的編譯期帳本</image:title>
      <image:caption>Elixir 1.20 把 set-theoretic gradual typing 設為語言預設：零註記推論，用 union／intersection／negation 描述型別，dynamic() 配 narrowing 找出 verified bug 與 dead code。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/04/deep-github-vscode-token-theft/</loc>
    <lastmod>2026-06-04</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-04-deep-github-vscode-token-theft.png</image:loc>
      <image:title>合成鍵盤事件如何串成一鍵偷 token——拆 github.dev 的 VSCode 信任模型</image:title>
      <image:caption>github.dev 一鍵偷 GitHub token：webview 把合成 KeyboardEvent 當真人輸入，串過四道各自合理的隔離。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/04/deep-letsencrypt-merkle-tree-certs/</loc>
    <lastmod>2026-06-04</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-04-deep-letsencrypt-merkle-tree-certs.png</image:loc>
      <image:title>後量子憑證為什麼不直接簽——Merkle Tree Certificate 怎麼把握手壓回比今天還小</image:title>
      <image:caption>ML-DSA 一張簽章 2,420 bytes，逐張簽會把 TLS 握手撐破 10KB。MTC 用一個簽章覆蓋整批憑證，common case 反而比今天小。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/04/roundup/</loc>
    <lastmod>2026-06-04</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-04-roundup.png</image:loc>
      <image:title>2026.06.04 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep 都在把「預設可信」收緊成「必須驗證」：Let&#39;s Encrypt 用 Merkle Tree Certificate 走後量子並把握手壓回比今天還小；一鍵偷 github.dev token 拆穿 VSCode 把 webview 合成鍵盤事件當真實輸入的信任縫；Elixir 1.20 把 set-theoretic 漸進式型別變成語言預設。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/03/deep-deepseek-v4-flash-mi300x-bringup/</loc>
    <lastmod>2026-06-03</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-03-deep-deepseek-v4-flash-mi300x-bringup.png</image:loc>
      <image:title>DeepSeek-V4-Flash 在 AMD MI300X 上 bring-up——一份 ROCm 案場的時間軸</image:title>
      <image:caption>順著 Fergus Finn 在 doubleword 內部走完的 30 天 bring-up，逐項拆解 DeepSeek-V4-Flash 在 MI300X 上的 vLLM 從 garbage 推到 2699 tok/s 過程中要修的五個根因：FP8 fnuz 與 OCP 兩個 dialect 的 exponent bias 差一、AITER 在 gfx942 上缺或壞的五條 attention path、HIP graph capture 對 metadata 的 pure-function 約束、MoE expert-mask 的 per-build vs per-kernel 判斷、以及 Triton kernel 的 padding mask 跟錯 bound 造成的 routing bitmatrix 污染。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/03/deep-iddqd-unsafe-rust/</loc>
    <lastmod>2026-06-03</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-03-deep-iddqd-unsafe-rust.png</image:loc>
      <image:title>iddqd 把 unsafe Rust 最尖角的部分照出來——intrusive linked list 裡 pinning、provenance、aliasing 同時被踩到</image:title>
      <image:caption>Oxide 的 iddqd post 把 unsafe Rust 最難的一類——intrusive linked list 那種「鏈結 metadata 跟使用者 value 共存於同一塊配置」——攤開來給看：要 sound，必須同時滿足四條互相正交的不變式：Pin 的 drop guarantee 與 projection 規則（PhantomPinned、UnsafePinned、structural vs non-structural）、pointer provenance 在 Stacked Borrows 與 Tree Borrows 兩個模型下的 retag scope（NonNull、SbTag、Reserved/Active state）、no-mutable-aliasing 對重疊 &amp;mut 的禁令（IterMut 的 lifetime extension 透過 std::mem::transmute 在 distinct index 保護下實作）、以及 ownership handoff（OccupiedEntry、Pin&lt;&amp;mut T&gt;、Arc&lt;T&gt; 三個 wrapper 各自釘一條合約）。文章還拆出 IdOrdMap 找到的真實 bug——Ord impl spurious return Equal 製造 duplicate index、破壞 iter_mut 的 distinct-NonNull invariant，修法是 B-tree descent 親自驗 index 加 O(N) linear scan fallback。CI 在 Stacked Borrows 與 Tree Borrows 兩個 flag 下都跑 Miri，再對 NaiveMap oracle 做 model-based testing。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/03/deep-linkedin-search-llm-centric/</loc>
    <lastmod>2026-06-03</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-03-deep-linkedin-search-llm-centric.png</image:loc>
      <image:title>LinkedIn 把 search 棧改成 LLM-centric——重寫的不是 ranker，是「query 怎麼被理解」這層</image:title>
      <image:caption>LinkedIn 工程團隊把整個 search stack 改成 LLM-centric——query understanding 換成 1.5–4B 微調 LLM 取代 NER + 啟發式拼盤、retrieval 用 dual-tower bi-encoder + GPU exhaustive kNN 對 1.6B+ 文件（NDCG@10 0.838）、ranking 用 7B → 1.7B → 0.6B 三段蒸餾出的 SLM cross-encoder（NDCG@10 0.9239）。L4 efficiency 三道壓縮（pruning、RL summary、embedding compression）把 throughput 從 290 推到 22,000 items/sec/GPU（76×），對 teacher NDCG 只跌 2.6%。Evaluation 走 LLM-as-judge calibrated 到 weighted Cohen&#39;s Kappa ≥ 0.8，把 release cycle 從週縮到時。Online click AUC 從 0.61 升到 0.67。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/03/roundup/</loc>
    <lastmod>2026-06-03</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-03-roundup.png</image:loc>
      <image:title>2026.06.03 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep 從三條角度切「底層合約被重畫」：LinkedIn 把 search 棧改成 LLM-centric 並推上 22k items/sec/GPU；DeepSeek-V4-Flash bring-up 到 AMD MI300X 留下 ROCm 案場日誌；iddqd 把 unsafe Rust 的 pin、provenance、aliasing 三條正交不變式同時攤開。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/02/deep-cloudflare-core-unit-boot-time/</loc>
    <lastmod>2026-06-02</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-02-deep-cloudflare-core-unit-boot-time.png</image:loc>
      <image:title>把伺服器開機從幾小時縮到幾分鐘——Cloudflare 拆 UEFI、iPXE、firmware 三層遲延</image:title>
      <image:caption>Cloudflare core 團隊把一台 Gen12 server 的 firmware 升級重開時間從近 4 小時壓到 3 分鐘——把延遲拆成 UEFI HII lazy-load、iPXE 四段 network-boot timeout、CfHIIConfig_App regex + hex-equal skip 三層分別治根。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/02/deep-haskell-compile-biology-graph/</loc>
    <lastmod>2026-06-02</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-02-deep-haskell-compile-biology-graph.png</image:loc>
      <image:title>把 RNA folding 偷進 GHC——ApplicativeDo 排程的 Nussinov DP 重寫</image:title>
      <image:caption>Ian Duncan 重新啟用 GHC 一個長期被 -foptimal-applicative-do flag 隱藏的優化：把 do-block 排程對應到 RNA 二級結構摺疊，套用 Nussinov 1978 的區間動態規劃並加上 longest-chain bound 剪枝。1,000-statement worst case 從 55 秒降到秒級。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/02/deep-rgb-normalize-255-vs-256/</loc>
    <lastmod>2026-06-02</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-02-deep-rgb-normalize-255-vs-256.png</image:loc>
      <image:title>RGB 該除以 255 還是 256——把 ALU、表格與美觀放到同一張座標</image:title>
      <image:caption>8-bit channel 該除以 255（端點精確、規範對齊）還是 256（shift 化簡、SIMD 友善）——六個維度上拆開來看，答案是按 channel 在 pipeline 裡的位置決定。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/02/roundup/</loc>
    <lastmod>2026-06-02</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-02-roundup.png</image:loc>
      <image:title>2026.06.02 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep 從三個方向把貼地細節再拆一次：8-bit pixel 該除 255 還是 256、Cloudflare 把 core server 開機從幾小時縮到幾分鐘、把 RNA folding 的 Nussinov DP 偷進 GHC 的 ApplicativeDo 排程。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/01/deep-cloudflare-code-orange/</loc>
    <lastmod>2026-06-01</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-01-deep-cloudflare-code-orange.png</image:loc>
      <image:title>Code Orange 收口——Cloudflare 怎麼把一年的 fail-small 計劃落實到 Snapstone 與 Engineering Codex</image:title>
      <image:caption>Cloudflare 結束 Code Orange，交付 Snapstone 與 Codex——把 fail-small 從口號編成 default。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/01/deep-notion-vector-search/</loc>
    <lastmod>2026-06-01</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-01-deep-notion-vector-search.png</image:loc>
      <image:title>Notion 兩年的 vector search 路：從 pgvector 單機到 60 億 chunk、成本砍掉九成</image:title>
      <image:caption>Notion 兩年把 vector search 從 pgvector 單機推到 60 億 chunk，三層解耦讓 cost 砍到約 1/10。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/01/deep-stripe-zero-downtime-migrations/</loc>
    <lastmod>2026-06-01</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-01-deep-stripe-zero-downtime-migrations.png</image:loc>
      <image:title>Stripe 的 Data Movement Platform——把 schema migration、shard rebalance、跨集群搬遷收成一個 state machine</image:title>
      <image:caption>Stripe 把 schema migration、shard rebalance、跨集群搬遷壓進同一個六步 state machine，靠不到兩秒的 version token cutover 維持 99.999% uptime。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/01/roundup/</loc>
    <lastmod>2026-06-01</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-01-roundup.png</image:loc>
      <image:title>2026.06.01 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep 從三個角度看「大尺度系統演化裡怎麼留住可預測性」：Cloudflare Code Orange 把 fail-small 收口、Stripe 揭露 document database 怎麼撐 99.999% uptime 的 zero-downtime migration、Notion 兩年把 vector search 推到 10× 規模、1/10 成本。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/06/01/weekly/</loc>
    <lastmod>2026-06-01</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-06-01-weekly.png</image:loc>
      <image:title>第 22 週 —— 模型越強，瓶頸越系統</image:title>
      <image:caption>AI 落地的摩擦面是本週主軸：agentic harness 的 pass^k 衰減、Claude 的三層 sandbox 演化、LinkedIn generative recommender 的訓練吞吐重構——模型越強，撐住它的系統層就越要被追問；而 bijou64 varint、pye pretty printer、BEAM atom 三篇 systems 文章在另一個方向回應：那些「不起眼的細節」才是真正的地板。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/31/deep-cve-2026-48710-python-disclosure/</loc>
    <lastmod>2026-05-31</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-31-deep-cve-2026-48710-python-disclosure.png</image:loc>
      <image:title>CVE-2026-48710 的揭露時間軸——Python 維護者怎麼在 30 天內處理一張責任券</image:title>
      <image:caption>Starlette 維護者 Trylesinski 把 CVE-2026-48710 的 30 天揭露窗口拆給看：X41 D-Sec 通報、push back 不合理的 timeline、補丁與 GHSA 同步、Ars Technica 賽跑——對 OSS 維護者是 runbook，對下游是升級節奏。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/31/deep-linkedin-generative-recommender-training/</loc>
    <lastmod>2026-05-31</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-31-deep-linkedin-generative-recommender-training.png</image:loc>
      <image:title>Faster than Light——LinkedIn 怎麼把 generative recommender 的訓練吞吐拉上來</image:title>
      <image:caption>LinkedIn 把 DLRM 升級成 1.1B 參數 generative recommender 之後，發現 padding ratio 衝到 75–87%、SM 反而 idle；沿四條候選假設追下去，最後靠 incremental training、C++ dataloader、packed sequences、fused optimizer、FA3 + FlexAttention 等 11 條優化把 GPU hour 砍 65%、Feed 線上 A/B +2.10% session time。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/31/deep-rust-pretty-printer-pye/</loc>
    <lastmod>2026-05-31</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-31-deep-rust-pretty-printer-pye.png</image:loc>
      <image:title>pye 把 Wadler-Leijen pretty printer 重新拆過——document IR + 攤分的 group 決策</image:title>
      <image:caption>pye 用 measure + render 兩階段把 Wadler-Leijen pretty printer 從 worst-case O(n²) 改寫成嚴格 O(n)。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/31/roundup/</loc>
    <lastmod>2026-05-31</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-31-roundup.png</image:loc>
      <image:title>2026.05.31 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：pye 在 Rust 把 Wadler-Leijen pretty printer 的 group decision 攤分掉、LinkedIn 沿著 batch / attention / optimizer 三段拆 generative recommender 訓練吞吐、CVE-2026-48710 把 Python 維護者 30 天揭露時間軸攤開。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/30/deep-bijou64-variable-int-encoding/</loc>
    <lastmod>2026-05-30</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-30-deep-bijou64-variable-int-encoding.png</image:loc>
      <image:title>bijou64 把字典序、branchless、長度前綴一次拿到——拆 Ink &amp; Switch 的 varint 設計</image:title>
      <image:caption>Ink &amp; Switch 的 bijou64——u64 可變長度編碼 1–9 byte，同時拿下字典序保序、首 byte length prefix、branchless decode；對比 LEB128 在 x86 Zen 5 上快 2–10×，wire size 差距 2–3% 之內。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/30/deep-captchas-detect-ai-agents/</loc>
    <lastmod>2026-05-30</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-30-deep-captchas-detect-ai-agents.png</image:loc>
      <image:title>CAPTCHA 還擋得住 agent 嗎——把 Claude、ChatGPT Agent、Comet 拉到 image / reCAPTCHA / Turnstile 前</image:title>
      <image:caption>Roundtable 量到 Claude、GPT、Gemini 在 image CAPTCHA 的 output 對齊人類，但 click sequence、direction change、overselection 三個 process feature 仍可分離——擋下 agent 的不是題目，是它解題的呼吸節奏。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/30/deep-rendering-diffs/</loc>
    <lastmod>2026-05-30</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-30-deep-rendering-diffs.png</image:loc>
      <image:title>為什麼 diff rendering 比想像難——hunk、align、virtual scroll、wrap 四件事</image:title>
      <image:caption>Pierre 把 code review UI 的 diff rendering 拆成四個 cross-cutting 子問題：hunk 切分、token alignment、virtual scroll、word-wrap，並對比 GitHub、Linear、Phabricator、Gerrit 各自的選法。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/30/roundup/</loc>
    <lastmod>2026-05-30</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-30-roundup.png</image:loc>
      <image:title>2026.05.30 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：bijou64 把可變長整數的字典序＋branchless 一次解、pierre.computer 把 diff rendering 拆成四個子問題、Roundtable 量化 CAPTCHA 還擋不擋得住 agent。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/29/deep-anthropic-claude-sandbox/</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-29-deep-anthropic-claude-sandbox.png</image:loc>
      <image:title>該怎麼裝住 Claude——claude.ai、Claude Code、Cowork 三種 sandbox 的演化</image:title>
      <image:caption>Anthropic 三條 Claude 部署線——claude.ai gVisor、Claude Code Seatbelt/bubblewrap、Cowork VM——以及紅隊找到的真實漏洞與 in-VM MitM 的修法。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/29/deep-cloudflare-town-lake-skipper/</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-29-deep-cloudflare-town-lake-skipper.png</image:loc>
      <image:title>Cloudflare 怎麼蓋 Town Lake——R2 + Iceberg + Trino + 一個會寫 JS 的 Claude</image:title>
      <image:caption>Cloudflare 把 R2 Data Catalog、Trino、DataHub、Lifeguard、Skimmer、Transformer 縫成 Town Lake，再把 Claude 包成 Skipper agent——code mode 把工具集當函式庫呼叫，prompting 反模式是「越少越好」與「工具不能重疊」。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/29/deep-dbos-postgres-durable-workflows/</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-29-deep-dbos-postgres-durable-workflows.png</image:loc>
      <image:title>Postgres 就夠了？——把 DBOS 的「資料庫即 orchestrator」放在 Temporal 旁邊量一量</image:title>
      <image:caption>把 DBOS「Postgres 就是 orchestrator」的論點放在 state model、dispatch、failover、observability、ops cost 五個軸上跟 Temporal、Restate、Inngest、Step Functions 對齊。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/29/roundup/</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-29-roundup.png</image:loc>
      <image:title>2026.05.29 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：DBOS 主張 Postgres 即 orchestrator、Cloudflare 蓋 Town Lake + Skipper 的 code mode、Anthropic 用三種 sandbox 裝 Claude。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/28/deep-beam-atom-exhaustion/</loc>
    <lastmod>2026-05-28</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-28-deep-beam-atom-exhaustion.png</image:loc>
      <image:title>Atom 用完，VM 就掛——拆解 BEAM 那張全域 atom 表</image:title>
      <image:caption>BEAM 的 atom 表全域、不 GC、有上限；從不可信輸入創建 atom 是乾淨的 DoS，佔 EEF 已知 CVE 的三成五。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/28/deep-css-vs-js-animation/</loc>
    <lastmod>2026-05-28</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-28-deep-css-vs-js-animation.png</image:loc>
      <image:title>CSS 還是 JS 做動畫——勝負在主執行緒之爭</image:title>
      <image:caption>以「動畫跑在 main thread 還是 compositor」為軸對照 CSS、rAF、Motion、GSAP：優先 CSS，必要時才上 Motion。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/28/deep-silvertorch-index-as-model/</loc>
    <lastmod>2026-05-28</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-28-deep-silvertorch-index-as-model.png</image:loc>
      <image:title>Index as Model——Meta 把推薦檢索棧縮進一個 PyTorch forward pass</image:title>
      <image:caption>Meta SilverTorch 把 index、filter、reranker、tower 收進同一個 PyTorch model，一次 forward pass 跑完檢索棧，吞吐 23.7×。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/28/roundup/</loc>
    <lastmod>2026-05-28</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-28-roundup.png</image:loc>
      <image:title>2026.05.28 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：SilverTorch 把推薦檢索棧縮進一個 PyTorch 模型、BEAM atom 表的 DoS、動畫該交給 CSS 還是 JS。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/27/deep-agentic-system-scaling/</loc>
    <lastmod>2026-05-27</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-27-deep-agentic-system-scaling.png</image:loc>
      <image:title>從 model scaling 到 system scaling——agentic AI 的瓶頸搬到 harness</image:title>
      <image:caption>模型越強、agent 在 long-horizon 卻照樣崩——pass^k 的指數衰減把瓶頸指向 harness 的治理層而非 model。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/27/deep-doombench-data-stack/</loc>
    <lastmod>2026-05-27</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-27-deep-doombench-data-stack.png</image:loc>
      <image:title>DoomBench——把 DOOM 塞進 SQL，逼出資料庫的真實取捨</image:title>
      <image:caption>DOOMQL 把 DOOM 寫成 SQL，DoomBench 拿它當尺：同一份工作負載照出 OLTP-vs-OLAP 那道牆，HTAP 怎麼跳出取捨曲線。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/27/deep-itanium-cpp-vtables/</loc>
    <lastmod>2026-05-27</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-27-deep-itanium-cpp-vtables.png</image:loc>
      <image:title>Itanium C++ ABI 的 vtable——virtual dispatch 真正的代價</image:title>
      <image:caption>拆解 Itanium C++ ABI 的 vtable 佈局——負偏移 header、多 vptr 調整、虛擬繼承 vcall offset 與三種解構子。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/27/roundup/</loc>
    <lastmod>2026-05-27</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-27-roundup.png</image:loc>
      <image:title>2026.05.27 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：agentic AI 把瓶頸從模型搬到 harness、Itanium C++ ABI 的 vtable 佈局、DoomBench 用 SQL 跑 DOOM 逼出 HTAP 取捨。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/26/deep-go-to-rust-migration/</loc>
    <lastmod>2026-05-26</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-26-deep-go-to-rust-migration.png</image:loc>
      <image:title>從 Go 遷移到 Rust——拿 GC 暫停與資料競爭換編譯期保證</image:title>
      <image:caption>沿六個同軸維度對照 Go 與 Rust，並給出該選誰的規則——八成服務留在 Go，只有 p99 與資料競爭關鍵的 foundational 服務值得 Rust 的編譯期保證。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/26/deep-llm-shannon-scaling/</loc>
    <lastmod>2026-05-26</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-26-deep-llm-shannon-scaling.png</image:loc>
      <image:title>把 LLM 訓練當成有雜訊的通道——Shannon Scaling Law 怎麼解釋過訓練與量化退化</image:title>
      <image:caption>用 Shannon-Hartley 通道容量把參數對應頻寬、token 對應訊號功率，解釋古典冪次律畫不出的 U 型過訓練與量化退化。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/26/deep-nginx-ech/</loc>
    <lastmod>2026-05-26</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-26-deep-nginx-ech.png</image:loc>
      <image:title>Encrypted Client Hello 進 NGINX——把最後一截明文 SNI 藏進加密握手</image:title>
      <image:caption>ECH 用雙 ClientHello 與 HPKE 把真 SNI 封進加密層，NGINX 1.29.4 帶來 shared-mode 原生支援。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/26/roundup/</loc>
    <lastmod>2026-05-26</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-26-roundup.png</image:loc>
      <image:title>2026.05.26 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：Go→Rust 遷移取捨、ECH 進 NGINX、把 LLM 訓練當成有雜訊通道的 Shannon Scaling Law。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/25/deep-agent-sandbox-comparison/</loc>
    <lastmod>2026-05-25</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-25-deep-agent-sandbox-comparison.png</image:loc>
      <image:title>替 AI agent 挑 sandbox——container、gVisor、microVM 的隔離強度與啟動成本怎麼換</image:title>
      <image:caption>AI agent 跑的是 model 生成、可能被 prompt injection 操控的程式碼，選 sandbox 是在隔離強度與啟動成本間做交換。對照 container（共用 kernel、最快但最弱）、gVisor（Sentry 攔截 syscall、強隔離但有相容性稅）、microVM（專屬 kernel、硬體級隔離但較重），逐軸拆解後給出依爆炸半徑分流的選型規則。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/25/deep-innodb-next-key-lock/</loc>
    <lastmod>2026-05-25</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-25-deep-innodb-next-key-lock.png</image:loc>
      <image:title>InnoDB 的 next-key lock，從零講起——REPEATABLE READ 怎麼用 gap lock 擋掉 phantom read</image:title>
      <image:caption>從三種 read anomaly 講到 InnoDB 的 next-key lock，拆解 REPEATABLE READ 如何用 gap lock 擋掉 phantom read，超出 SQL 標準。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/25/deep-simd-integer-to-string/</loc>
    <lastmod>2026-05-25</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-25-deep-simd-integer-to-string.png</image:loc>
      <image:title>把 integer-to-string 壓到 2 奈秒以下——SIMD itoa 的查表、SWAR 與 AVX-512</image:title>
      <image:caption>用 branch-free 位數計算、SWAR 與 AVX-512 IFMA 把整數轉字串壓到 2 奈秒以下，比 std::to_chars 快 2-4 倍。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/25/roundup/</loc>
    <lastmod>2026-05-25</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-25-roundup.png</image:loc>
      <image:title>2026.05.25 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：AI agent 沙箱選型、SIMD itoa、InnoDB next-key lock；場邊有 NGINX Multipath TCP、Chrome 宣告式局部更新、Go 重寫 rsync。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/25/weekly/</loc>
    <lastmod>2026-05-25</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-25-weekly.png</image:loc>
      <image:title>第 21 週 —— 契約的顯化</image:title>
      <image:caption>隱性契約的顯化是本週主軸：C# unsafe 升格為 caller-facing 簽名、LinkedIn HashMap resize 觸發的 mmap_lock 凍結、Fides 把 prompt injection 移回 information-flow gate、Discord 語音崩盤後發現的隱性依賴鏈——六天的文章都在問同一個問題：那些沒有寫進 interface 的假設，你敢不敢把它攤出來？</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/24/deep-csharp-union-types-net11/</loc>
    <lastmod>2026-05-24</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-24-deep-csharp-union-types-net11.png</image:loc>
      <image:title>C# 終於有 union types——.NET 11 把 discriminated union 收進型別系統</image:title>
      <image:caption>C# 15 在 .NET 11 preview 2 起引入 union 關鍵字，把 discriminated union 收進語言。它降解成一個自動生成的 struct : IUnion，唯一狀態是 object? Value，由 [Union] attribute 驅動隱式轉換；switch 取得 compiler 的窮舉檢查、漏 case 發 warning。預設 box value type，但可手寫 TryGetValue&lt;T&gt;() 在 hot path 避開 boxing，且消費端程式碼一行不改。純編譯期降解，能 target net8.0 / net48。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/24/deep-low-latency-cpp-nic-to-p99/</loc>
    <lastmod>2026-05-24</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-24-deep-low-latency-cpp-nic-to-p99.png</image:loc>
      <image:title>低延遲交易系統的五根支柱——從 NIC kernel bypass 到 p99，把 wire-to-wire 拆到微秒級</image:title>
      <image:caption>用 C++ 把 wire-to-wire 延遲壓到 p95 &lt; 50µs 的五根支柱：DPDK kernel bypass 繞過 kernel 省 20–45µs、preallocated memory pool 把 syscall 從 hot path 清零、CPU/NUMA affinity 把 thread 釘在單一 node、TSC 取代 syscall 計時（但要校正 cross-core skew）、network busy-poll。共同主題是把 OS 踢出 hot path。前提是 baseline latency histogram——沒有它五個優化全不可見。對照下，Java 連 p50 500µs 都摸不到。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/24/deep-segmented-iterators-revisited/</loc>
    <lastmod>2026-05-24</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-24-deep-segmented-iterators-revisited.png</image:loc>
      <image:title>Segmented iterators 重訪——讓編譯器看見 deque 的分段結構，把通用演算法的 SIMD 加速找回來</image:title>
      <image:caption>std::deque 天生分段：一排 T** block 索引指向若干段連續的 T*。但標準演算法把它當扁平 range 走，每個 ++it 都隱含一個 block 邊界檢查，這個資料相依分支擋住 auto-vectorization——Austern 2000 年量到約 20% 吞吐損失。解法是 Austern 的 segmented iterator：把迭代器拆成不可解參考的 segment iterator（T**）與可解參考的 local iterator（T*），用 hierarchical_fill 把 range 切成頭段＋整段內部＋尾段，讓中間每個 std::fill 拿到純連續 range、暴露可向量化的 tight 內迴圈。boostedcpp.net 2026-05 評測：幾何平均加速 5.9×（MSVC 2026 小型別），fill corner case 衝到 17.16×。跨編譯器分歧極大：MSVC 對 SIMD store 最積極且忽略 unroll pragma，GCC 16 需要 #pragma unroll(4) 才從 1.96× 翻身到 3.13×，Clang 加 unroll hint 反而退步。元素變大（32-byte MyFatInt）時加速收斂到 2.4–3.3×，瓶頸從邊界檢查轉為記憶體頻寬。這是 Stepanov zero-overhead 抽象命題的一次體檢：零開銷不靠抽象越薄，而靠抽象暴露的資訊剛好夠編譯器做對的優化。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/24/roundup/</loc>
    <lastmod>2026-05-24</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-24-roundup.png</image:loc>
      <image:title>2026.05.24 —— 今日 10 則</image:title>
      <image:caption>今日 10 則，三篇 deep：C# union types、低延遲 C++ 全鏈路、segmented iterators 的 SIMD 加速；場邊有 Silk fiber scheduler、lock-free queue 與 LLM 產碼之辯。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/23/deep-cloudflare-rust-workers-panic-recovery/</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-23-deep-cloudflare-rust-workers-panic-recovery.png</image:loc>
      <image:title>Rust Worker 終於能從 panic 站起來——wasm-bindgen 接上 WebAssembly Exception Handling</image:title>
      <image:caption>Cloudflare 在 wasm-bindgen 接上 WebAssembly Exception Handling proposal——Rust Workers 0.8.0+ 開 --panic-unwind、std 重 build 走 unwind、Walrus 解析 try/catch、出口走 extern &quot;C-unwind&quot;，panic 改以 PanicError reject 對應的 Promise。Durable Object 第一次能在單請求 panic 下保住 in-memory state。四層必須對齊：Rust compiler、wasm-bindgen tooling、EH proposal phase 4、Workers runtime。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/23/deep-spotify-llm-evals-funnel/</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-23-deep-spotify-llm-evals-funnel.png</image:loc>
      <image:title>把 LLM eval 擺在 A/B 前面——funnel vs fork、calibration、與那 42% 還是被 rollback 的實驗</image:title>
      <image:caption>Spotify 工程團隊把 LLM eval 重新框成 A/B test 上游的 funnel 而非平行的 fork——eval 抓 tone / intent alignment / trust-breaking、A/B 抓 session / crash / retention，兩層由 calibration 對齊。即使如此仍有 42% 實驗 rollback，因為 eval 看不到 user-level outcome；不做 calibration 的 eval 是 opinion 不是 evidence。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/23/deep-weirdgloop-ai-scrapers/</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-23-deep-weirdgloop-ai-scrapers.png</image:loc>
      <image:title>AI scraper 怎麼壓垮一個 wiki——cookmeplox 從 10× 流量、residential proxy、到 JA4 偵測的覆盤</image:title>
      <image:caption>Weird Gloop 的 cookmeplox 把 Minecraft / OSRS / League wiki 一年來的 AI scraper 戰役寫成覆盤——對手散在數百萬支住宅 IP、偽裝成 Chrome 120、甚至繞 Google Translate 與 Facebook link preview；防線從 Cloudflare challenge 一路升到 JA4 指紋 + MediaWiki 行為 ML。真正吃資源的不是頻寬，是 cache miss 的 50-100 倍 CPU——95% server issue 都從這裡來。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/23/roundup/</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-23-roundup.png</image:loc>
      <image:title>2026.05.23 —— 今日 10 則</image:title>
      <image:caption>NVIDIA 自家 CPU Vera 為 agent 工作流而設、Cloudflare 把 Rust Worker 的 panic 從 isolate-kill 改成可救回的 exception、Spotify 把 LLM eval 擺在 A/B 之前當漏斗、weirdgloop 寫 AI scraper 流量怎麼壓垮一個 wiki（今日 3 篇 deep）——今天繞著「agent 與 LLM 流量正在重畫 runtime 與 infra 的承重契約」這條線。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/22/deep-csharp-memory-safety-net11/</loc>
    <lastmod>2026-05-22</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-22-deep-csharp-memory-safety-net11.png</image:loc>
      <image:title>C# 的 `unsafe` 重新對焦——.NET 11 把記憶體安全從語法搬到契約</image:title>
      <image:caption>C# 16 把 unsafe 從實作旗號升格為 caller-facing 契約——四張票面寫進簽名，讓 LLM 生成程式碼有東西可被拒絕。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/22/deep-linkedin-hashmap-freeze/</loc>
    <lastmod>2026-05-22</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-22-deep-linkedin-hashmap-freeze.png</image:loc>
      <image:title>LinkedIn 的 HashMap resize 凍結——調查一場記憶體預算失算</image:title>
      <image:caption>排除 CPU throttle、kernel compaction、Envoy、RocksDB 四個假設後，off-CPU profile 揭穿 FishDB 的 10 秒凍結來自 hashbrown 在 58.7M 條目時觸發 3.5 GB mmap、整個 process 被 mmap_lock 寫鎖凍住。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/22/deep-phased-rollouts-rfc/</loc>
    <lastmod>2026-05-22</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-22-deep-phased-rollouts-rfc.png</image:loc>
      <image:title>Cooldown 還是 phased rollout——兩種對抗供應鏈攻擊的提案</image:title>
      <image:caption>Cooldown 對小套件統計上不公平、攻擊窗口被打平卻沒消失——phased rollout 把 canary 風險按下游影響規模分階段曝光,是更可審計的替代設計。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/22/roundup/</loc>
    <lastmod>2026-05-22</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-22-roundup.png</image:loc>
      <image:title>2026.05.22 —— 今日 10 則</image:title>
      <image:caption>C# 把 unsafe 從旗號改成契約、LinkedIn 從一場 hashbrown 凍結挖出 jemalloc 與 mmap_lock 的隱性合約、illegalcode.net 提議把 dependency cooldown 換成 phased rollout——今天的事都繞著「把隱藏在語法、預設、政策裡的契約往外搬」這條線。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/21/deep-meta-data-ingestion-migration/</loc>
    <lastmod>2026-05-21</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-21-deep-meta-data-ingestion-migration.png</image:loc>
      <image:title>Meta 換掉 data ingestion 控制面——PB/day 流量底下的 zero-downtime 換引擎</image:title>
      <image:caption>Meta 在 PB/day 流量下把 ingestion 控制面從 customer-owned 搬到 self-managed warehouse service——靠 shadow / reverse-shadow / cleanup 三段顯式化 + hourly row-count + checksum 對帳，讓整個遷移對 downstream 完全 invisible。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/21/deep-microsoft-fides-prompt-injection/</loc>
    <lastmod>2026-05-21</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-21-deep-microsoft-fides-prompt-injection.png</image:loc>
      <image:title>Fides——把 prompt injection 從 model 防線移回 information-flow gate</image:title>
      <image:caption>Microsoft Fides 用 integrity / confidentiality 標籤與四層 middleware 把 prompt injection 變成 deterministic information-flow check。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/21/deep-rust-erasing-existentials/</loc>
    <lastmod>2026-05-21</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-21-deep-rust-erasing-existentials.png</image:loc>
      <image:title>Erasing Existentials——Rust 裡四種抹掉 existential 的辦法</image:title>
      <image:caption>兩個 existential 同時要抹掉？dyn-compatibility 規則只准你抹一個，剩下三條路各付不同代價。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/21/roundup/</loc>
    <lastmod>2026-05-21</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-21-roundup.png</image:loc>
      <image:title>2026.05.21 —— 今日 10 則</image:title>
      <image:caption>Microsoft Fides 把 prompt injection 移回 information-flow gate、SpiderMonkey 把 asm.js 拔掉、Slack 把 HTTP/3 readiness 探測上游給 Prometheus——今天的事都繞著「把 runtime 邊界上的隱性契約變得可見」。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/20/deep-discord-voice-outage/</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-20-deep-discord-voice-outage.png</image:loc>
      <image:title>Discord 3/25 語音崩盤覆盤——一行誤設掀翻 voice control plane</image:title>
      <image:caption>重播 3/25/26 Discord 語音中斷三小時：pod 終結引爆 gateway OOM、syncer mailbox 膨脹、etcd hash-ring ejection——以及 on-call 在哪一刻認清「rollback 不是解」。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/20/deep-meta-reel-friends/</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-20-deep-meta-reel-friends.png</image:loc>
      <image:title>Reel Friends 的多層 retrieval——Meta 怎麼把 social graph + embedding 拼成十億級 candidate set</image:title>
      <image:caption>Reel Friends 的五個 component——雙版 closeness model、分層 retrieval、MTML 雙階段 ranker、prefetch window、online learning——怎麼合起來把 social 從 post-hoc rerank 升級成 representation-level joint modeling，並被 trillions of edges 跟 video prefetch window 兩端的硬約束逼出形狀。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/20/deep-turso-quint-sqlite/</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-20-deep-turso-quint-sqlite.png</image:loc>
      <image:title>Quint，從零講起——TLA+ 風格 formal model 怎麼幫 Turso 找出 SQLite 十個 bug</image:title>
      <image:caption>從 state-space 講到 Quint 的 simulator 與 model checker，攤開 Turso 找出 SQLite 十二個 bug 的方法與適用條件。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/20/roundup/</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-20-roundup.png</image:loc>
      <image:title>2026.05.20 —— 今日 10 則</image:title>
      <image:caption>Discord 語音崩盤覆盤、Turso 用 Quint 找出 SQLite 十個 bug、Uber 把 Go 物件哄回 stack——今天的事都繞著「看不見的隱性成本」展開。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/19/deep-de-tld-dnssec-rollover/</loc>
    <lastmod>2026-05-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-19-deep-de-tld-dnssec-rollover.png</image:loc>
      <image:title>.de TLD DNSSEC rollover 翻車——stale-serve 與 NTA 撐三小時</image:title>
      <image:caption>.de TLD KSK rollover 發出無法驗證的 RRSIG、整個 TLD 進入 SERVFAIL，1.1.1.1 stale-serve + NTA 撐三小時的事後檢討。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/19/deep-modal-cold-starts/</loc>
    <lastmod>2026-05-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-19-deep-modal-cold-starts.png</image:loc>
      <image:title>Modal 把 GPU 冷啟動壓到 50 秒——LP、FUSE、C/R、CUDA-checkpoint</image:title>
      <image:caption>Modal 用 LP / FUSE / C/R / CUDA-checkpoint 四層快照把 GPU 冷啟動從 ~2,000 秒壓到 ~50 秒。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/19/deep-notion-vector-search/</loc>
    <lastmod>2026-05-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-19-deep-notion-vector-search.png</image:loc>
      <image:title>Notion 向量搜尋的兩年——pod、Turbopuffer、Ray Serve</image:title>
      <image:caption>Notion 兩年內把向量搜尋從專屬 pod 改成 Turbopuffer + Ray Serve，總成本砍九成、p50 query latency 改善 50ms。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/19/roundup/</loc>
    <lastmod>2026-05-19</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-19-roundup.png</image:loc>
      <image:title>2026.05.19 —— 今日 10 則</image:title>
      <image:caption>Modal 四層快照壓 GPU 冷啟動、Notion 兩年砍九成向量搜尋成本、.de TLD DNSSEC rollover 翻車——今天的事都圍繞「狀態存在哪、誰負責驗證」。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/18/deep-bazel-cdc/</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-18-deep-bazel-cdc.png</image:loc>
      <image:title>BuildBuddy 把 FastCDC 帶進 Bazel——300 TiB 重複資料消失</image:title>
      <image:caption>BuildBuddy 在 Bazel remote cache 啟用 FastCDC 風格的 content-defined chunking，把 dedup 從整檔層拉到 sub-file chunk 層，上傳資料量減 40%、兩週節省 300 TiB。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/18/deep-figma-cdc-pipeline/</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-18-deep-figma-cdc-pipeline.png</image:loc>
      <image:title>Figma 的資料管道升級記——從 6 小時 cron 到分鐘級 CDC 的三年路</image:title>
      <image:caption>Figma 把資料管道從每日 cron 全表 dump 改成 PostgreSQL CDC + Kafka + Snowflake 增量合併，延遲從 30+ 小時降到 3 小時，並補上每週 cell-by-cell re-bootstrap 審計。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/18/deep-slack-agent-context/</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-18-deep-slack-agent-context.png</image:loc>
      <image:title>agent 的上下文管理，從零講起——Slack 為什麼不傳訊息歷史</image:title>
      <image:caption>Slack 安全工程的 agent 設計：完全不在 agent 之間傳 message history，三個共享資源（Director&#39;s Journal、Critic&#39;s Review、Critic&#39;s Timeline）取代訊息歷史。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/18/roundup/</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-18-roundup.png</image:loc>
      <image:title>2026.05.18 —— 今日 10 則</image:title>
      <image:caption>BuildBuddy CDC、Cloudflare Browser Run Containers、Slack agent 上下文——三件事都在重新討論「不要重做已經做過的事」。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/17/deep-cpp26-simd-critique/</loc>
    <lastmod>2026-05-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-17-deep-cpp26-simd-critique.png</image:loc>
      <image:title>C++26 SIMD 庫的能力對照——Highway 與 ISPC 何時仍是更安全的選擇</image:title>
      <image:caption>C++26 std::simd 在表達力、編譯時間、執行效能、可攜性四維度都落後 Highway 與 ISPC，production 工作量該知道何時繞開。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/17/deep-magic-pocket-compaction/</loc>
    <lastmod>2026-05-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-17-deep-magic-pocket-compaction.png</image:loc>
      <image:title>Magic Pocket 的三層 compaction——L1 維穩、L2 動態規劃打包、L3 串流排空</image:title>
      <image:caption>Dropbox Magic Pocket 把 compaction 拆成三條 pipeline，分別對應 volume 稀疏化的三種速度，整體 overhead 降低 30–50%。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/17/deep-zig-async-io/</loc>
    <lastmod>2026-05-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-17-deep-zig-async-io.png</image:loc>
      <image:title>std.Io，從零講起——Zig 0.16 怎麼把非同步從語言降級成庫的選擇</image:title>
      <image:caption>Zig 0.16 把非同步從語言關鍵字改成 std.Io 介面，同一份函式庫程式碼可以在 thread 與 io_uring coroutine 兩種後端互換。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/17/roundup/</loc>
    <lastmod>2026-05-17</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-17-roundup.png</image:loc>
      <image:title>2026.05.17 —— 今日 10 則</image:title>
      <image:caption>C++26 std::simd 反思、Magic Pocket 三層 compaction、Zig 0.16 的 std.Io——介面層該擔多少責任。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/16/deep-clickhouse-query-plan/</loc>
    <lastmod>2026-05-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-16-deep-clickhouse-query-plan.png</image:loc>
      <image:title>ClickHouse query planner 的 mutex 瓶頸與三階段修補</image:title>
      <image:caption>ClickHouse 分區鍵變更導致 part 數量暴增，query planner 的 mutex 競爭使帳單管線停滯，三階段修補讓延遲與 part 數量解耦。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/16/deep-copy-fail-cve-2026-31431/</loc>
    <lastmod>2026-05-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-16-deep-copy-fail-cve-2026-31431.png</image:loc>
      <image:title>CVE-2026-31431：algif_aead in-place 邊界硬化與 fast-path 安全契約</image:title>
      <image:caption>CVE-2026-31431 的主線修補回退 2017 年的 in-place 優化，把 algif_aead 路徑接回會做邊界檢查的通用 AEAD path——本文聚焦於這次硬化、它預防的 user-controlled length bug class、以及把巡邏升級為型別系統圍牆的長線工程動作。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/16/deep-quic-cubic-idle/</loc>
    <lastmod>2026-05-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-16-deep-quic-cubic-idle.png</image:loc>
      <image:title>QUIC 的死亡螺旋：一個 2017 年的 idle 修補如何在 2020 年埋下 CUBIC 陷阱</image:title>
      <image:caption>CUBIC 的 idle epoch 修補在移植至使用者空間 QUIC 時因缺少核心回呼而產生死亡螺旋，修復僅需改一個時間戳記基準。</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vatt-ghern.pages.dev/2026/05/16/roundup/</loc>
    <lastmod>2026-05-16</lastmod>
    <changefreq>yearly</changefreq>
    <image:image>
      <image:loc>https://vatt-ghern.pages.dev/static/og/2026-05-16-roundup.png</image:loc>
      <image:title>2026.05.16 —— 今日 10 則</image:title>
      <image:caption>QUIC 擁塞控制死亡螺旋、Linux LPE 鏈、ClickHouse mutex 瓶頸——三條獨立的事件，根源都是邊緣條件下靜默出錯。</image:caption>
    </image:image>
  </url>
  <url><loc>https://vatt-ghern.pages.dev/tags/.NET/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/1.1.1.1/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/AArch64/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ab-testing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/access-control/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/actix-web/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/AF_ALG/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-automation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-detection/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-eval/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-hardware/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-platform/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-runtime/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-sandbox/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agent-security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agentic/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agentic-coding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agentic-search/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agentic-systems/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agentic-testing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/agents/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ai/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/AI/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/AI-agent/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ai-agents/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ai-codegen/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ai-coding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/AI-infra/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ai-policy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ai-scrapers/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ai-security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/AI-security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Airflow/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/amazon/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/amd/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/amd-gpu/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/animation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ann/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/anthropic/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Anthropic/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/api/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/applicative-do/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/arm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/asm.js/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/asn1/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/async/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/atom-exhaustion/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/atproto/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/attention-io/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/attestation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/auditing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/auth/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/authz/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/autoregressive/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/autovacuum/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/avx-512/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/aws/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/aws-security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/b-tree/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/backend/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/background-agents/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/backpressure/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Bazel/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/beam/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/beam-vm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/behavioural-fingerprinting/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/benchmark/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/benchmarking/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/bgp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/bgp-security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/bijou64/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/binary-translation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Bitwarden/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/blob-store/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/boot-time/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/box-sizing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/bpf/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/branchless/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/broken-access-control/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/browser-engine/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/browser-extensions/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/browsers/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/bubblewrap/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/build-performance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/build-tooling/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/build-tools/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/BuildBuddy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/bundling/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/c/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/c-portability/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/C++/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/caching/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/canvas/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/captcha/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cascade/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cascade-failure/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cdc/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/CDC/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cedardb/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cell-architecture/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/census/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/centaur/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/certificate-verification/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cgroups/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/chaos-engineering/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/chatgpt-agent/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/chrome/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cjk-wrap/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/claude/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/claude-computer-use/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ClickHouse/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cloud-cost/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cloudflare/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Cloudflare/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cloudflare-turnstile/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/clustered-index/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/code-orange/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/code-review/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/codec/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/codemod/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/color/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/columnar/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/compaction/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/compiler/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/compilers/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/component-model/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/compositor/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/compression/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/concurrency/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/confidential-computing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/confounding-variable/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/congestion-control/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/container-cve/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/container-isolation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Containers/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/content-addressed-storage/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/content-defined-chunking/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/context-engineering/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/context-management/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/continual-learning/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/control-plane/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/copy-and-patch/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/core-fleet/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cpp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cpp-abi/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cpp-iterators/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cpp26/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cpu-arch/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cpu-inference/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cpython/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/crdt/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/crypto-x509/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/csharp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/csharp-unions/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/csharp-unsafe/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/css/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/CSS/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/CUBIC/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cuda/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/CUDA-checkpoint/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cve/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/CVE/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/cve-disclosure/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/daily-news/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/data-center/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/data-migration/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/data-pipeline/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/data-pipelines/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/data-platform/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/data-residency/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/database/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/database-internals/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/database-schema/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/datacenter/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/datacenter-network/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/datalog/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dbos/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Debian/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/debugging/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/deep-story/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/deepseek/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/DENIC/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dependency-graph/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dependency-safety/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/deque/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/der/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/diff-rendering/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/differential-privacy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/diffusion-llm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/diffusion-lm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/diffusion-model/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/DiffusionGemma/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/disclosure/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/disclosure-avoidance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Discord/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/distillation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/distributed-consensus/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/distributed-systems/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/distributed-training/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dlrm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dn42/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dns/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/DNSSEC/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/docdb/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/docker/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dos/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dotnet/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/double-entry-ledger/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dpdk/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Dropbox/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dspy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/duckdb/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/durable-execution/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dynamic-batching/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/dynamic-programming/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/E2EE/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ebpf/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/eBPF/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ech/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/edge-computing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/edge-llm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/EFLAGS/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Elasticsearch/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/elixir/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Elixir/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/email/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/embedded-linux/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/embedding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/embeddings/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/encoder-free/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/encoding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/engineering-codex/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/epic-games/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/epsilon/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/erasure-coding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/erlang/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/etcd/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/existentials/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/expander-graph/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/experimentation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fail-small/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/FastCDC/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fault-tolerance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ffmpeg/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fiber-scheduler/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Figma/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fingerprinting/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/finite-state-transducer/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/firecracker/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/firefox/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/firmware/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/FishDB/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fixed-point/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/flash-attention/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/flex-attention/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/flow/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/flutter-desktop/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/font-rendering/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fork/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/formal-methods/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/formal-verification/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fp4/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fp8/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/fsdp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gateway-api/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gc/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gemini/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gemma/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Gemma/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gemma-4/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/generative-recommender/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ghc/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/git/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/GitHub/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/github-pages/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gitops/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/glm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/go/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/go-generics/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Go-perf/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/google/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gpu/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gpu-kernel/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gradual-typing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/guardrails/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gvisor/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/gVisor/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/h100/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hardening/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hardware/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/harness/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hashbrown/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/HashMap/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/haskell/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hermetic-testing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hft/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Highway/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hsdp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/htap/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/html-semantics/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/http/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/http2/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/http3/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/HTTP3/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hyper/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/hypervisor/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/iceberg/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/idempotency/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/image-processing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/incident-postmortem/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/incident-response/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/indexeddb/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/inference/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/information-flow/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/information-theory/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/infra/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ink-and-switch/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/innodb/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/innodb-locking/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/intrusive-data-structures/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/io_uring/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/io-uring/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/iPXE/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/IR-design/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/iroh/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/isabelle-hol/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/isolation-levels/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ISPC/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Itanium-ABI/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ja4-fingerprint/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/java/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/javascript/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/jemalloc/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/jit/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/jit-compilers/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/kafka/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Kafka/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/kernel/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/kotlin/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/kv-cache/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/kvcache/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/lakehouse/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/leb128/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/lets-encrypt/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/lexicographic-order/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/libcurl/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/license/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/line-height/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/linkedin/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/LinkedIn/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/linux/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Linux/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/linux-internals/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/linux-kernel/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/litert/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/littles-law/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/LLM/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-agent/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-agents/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-codegen/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-eval/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/LLM-eval/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-evals/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-finetuning/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-inference/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-infra/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/LLM-perf/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-scheduling/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-search/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-serving/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llm-training/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/llvm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/load-shedding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/local-first/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/local-llm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/lock-free/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/locking/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/long-context/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/low-latency/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/lsm-tree/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Magic-Pocket/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/margin-collapse/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mcp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mediawiki/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mellum/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/memory/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/memory-allocation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/memory-safety/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/merkle-tree/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/meta/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Meta/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mi300x/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/microcode/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/microsoft/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/microvm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/migration/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/miri/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mixture-of-experts/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ml-infra/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ML-serving/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mmap_lock/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mobx/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Modal/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/model-architecture/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/model-checking/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/model-eval/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/model-provenance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/model-release/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/model-security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/model-selection/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/moe/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/MoE/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mongodb/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/monorepo/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/MTML/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/multi-agent/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/multi-region/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/multi-tenancy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/multimodal/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/multipath-tcp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/multiple-inheritance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mutex/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mvcc/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/myers-diff/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/mysql/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Mythos/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/NAT-traversal/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/networking/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/nginx/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/nixos-release/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Node.js/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/notifications/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/notion/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Notion/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/npm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/NTA/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/NuGet/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/nussinov/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/NVD/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/NVIDIA/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/oauth/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/observability/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ocaml/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/off-CPU-profiling/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/olap/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/on-device/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/on-device-ai/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/online-learning/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/open-source/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/open-weights/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/openbsd/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/OpenBSD/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/openssl/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/optimistic-mutation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/orchestration/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/oss-maintenance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/overload/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/p2p/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/P2P/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/p99/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/packed-sequences/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/partitioning/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/patience-diff/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/payments/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pep-744/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/performance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/permutation-test/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/perplexity-comet/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pg-plan-advice/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pg-stash-advice/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/PGO/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pgrx/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/PHP/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pidfd/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pin/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pipeline/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pki/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/posix-spawn/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/post-quantum/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/post-quantum-crypto/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/postgres/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/postgres-19/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/postgres-locking/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/postgresql/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pretty-printer/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/primary-key/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/privacy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/private-inference/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/process-creation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/process-feature/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/profiling/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/progressive-rollout/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/prompt-injection/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ProseMirror/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pypi/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/python/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/python-steering-council/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/pytorch/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/qat/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/QEMU/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/quantization/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/query-engine/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/query-hints/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/query-planner/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/queueing-theory/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/QUIC/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/quiche/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/quicksort/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/quint/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rag/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rate-limiting/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ray/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Ray-Serve/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rce/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rdma-multipath/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/recaptcha/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/recommendation-system/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/recommendation-systems/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/reconciliation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/reconstruction-attack/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/recsys-retrieval/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/red-team/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/redis/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Reels/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/reliability/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/remote-cache/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/replication/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/reproducible-builds/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/residential-proxy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/resilience/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/responsible-disclosure/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/responsive-design/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rest/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/restartable-sequences/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/restate/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/retrieval/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rfc/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rna-folding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rnn/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rocm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/roslyn/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/RRSIG/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rsync/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/runtime/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rust/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Rust/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rust-async/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Rust-FFI/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rust-memory/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rust-migration/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/rust-release/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Rust-types/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sandbox/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/scaling-law/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/scaling-laws/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/scheduling/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/schema-ci/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/ScyllaDB/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/search/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/search-infra/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/seatbelt/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/segmented-iterators/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/selective-receive/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/serverless-GPU/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/service-worker/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/set-theoretic-types/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/shannon/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sharding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/side-channel/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/simd/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/SIMD/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/simd-itoa/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/siri/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Slack/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/snapstone/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Snowflake/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/social-engineering/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/social-graph/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/software-testing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sorting/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/SPECint/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/speculative-decoding/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/spotify/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sql/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sql-server/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sqlite/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sre/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sRGB/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/SSD/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/SSH/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/starlette/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/std::simd/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/stdlib/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/stepfun/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/storage/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/streaming-analytics/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/stripe/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Stripe/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/structured-output/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/subduction/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/supply-chain/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sustainability/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/swift/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/sync-engine/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/system-scaling/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/systems/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/tax-engine/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/temporal/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/terminal/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/time-series/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/timescaledb/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/tla-plus/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/tls/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/tls-privacy/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/TPU/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/training-efficiency/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/trait-objects/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/transaction/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/transliteration/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/trino/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/turbopuffer/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Turbopuffer/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/turso/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/type-safety/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/type-system/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/typescript/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/typst/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/uefi/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/UEFI/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/union-types/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/unsafe/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/unsafe-rust/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/uuid/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vacuum/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/varint/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vcs/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vector-search/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/version-control/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vfork/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/video-codec/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/virtual-dispatch/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/virtualization/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vision-language/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vllm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vLLM/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vm-isolation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/voice/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vs-code-release/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vscode/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vscode-security/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vtable/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/vulnerability-research/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Wadler-Leijen/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/waf/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/wal/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/wasi/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/wasm/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/wasm-opt/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/wasm-runtime/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/wayland/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/web/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/web-animation/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/web-animations-api/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/web-perf/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/web-performance/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/web-pki/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/web-platform/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/webassembly/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/webauthn/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/webmcp/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/webview/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/wifi-timing/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Windows/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/word-break/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/workflow/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/world-models/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/x509/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/x86-64/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/xxHash64/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/zero-downtime/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/zero-downtime-migration/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/zfs/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/zig/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/Zig/</loc><changefreq>monthly</changefreq></url>
  <url><loc>https://vatt-ghern.pages.dev/tags/zig-asserts/</loc><changefreq>monthly</changefreq></url>
</urlset>
