Skip to main content
Shaun Li
/projects
/blog
/bookmark
/tags
Menu
/projects
/blog
/bookmark
/tags
Home
Blog
Blog
27 posts
Downloads Do Not Measure the App
2026-08-23 · 13 min
QR Code Manager Is a Wallet, Not a Scanner
2026-08-23 · 11 min
Ten Million Rows In, One Hundred Out
2026-08-22 · 10 min
Every SaaS Shipped an MCP Server. None of Them Shipped an Identity.
2026-08-22 · 10 min
Against GNOME and KDE — and Why Every Desktop Converges on Them Anyway
2026-08-22 · 9 min
Hyprland Gives You a Compositor, Not a Desktop
2026-08-22 · 8 min
The Agent Runtime Problem: Four Things a while-Loop Doesn't Give You
2026-08-22 · 15 min
gpui and the Mail Client Problem: A Text Field Costs 778 Lines
2026-08-20 · 27 min
Omarchy 4.0: The Distro Is Mostly a Migration Runner
2026-08-18 · 18 min
X's Phoenix Ranker: A Transformer That Cannot See Its Own Batch
2026-08-17 · 33 min
Pi's Durable AgentHarness: An Agent Loop That Survives kill -9
2026-08-11 · 18 min
Bun's Zig→Rust Rewrite in 11 Days: The Loop, Not the 64 Claudes
2026-08-07 · 23 min
herdr Joins Y Combinator: A Rust Agent Runtime, Not Another tmux
2026-08-07 · 14 min
Cloudflare Wallets and cloudflare.pay: Identity and Payments for AI Agents
2026-08-05 · 18 min
x402 Native Payments: HTTP 402 Protocol for AI Agents
2026-08-05 · 20 min
simpleconf: A Go Config Service for When etcd Is Too Much
2026-08-05 · 11 min
我的第一個 npm 套件:2011 年的 Node 模板引擎 jst
2026-08-05 · 6 min
svelte-router: Svelte 3–5 SPA Routing Without SvelteKit
2026-08-05 · 8 min
alpinejs-router: HTML-first Client-side Routing for Alpine.js
2026-08-05 · 7 min
十大微服務反模式
2025-06-09 · 10 min
Globish 学会这 1500 个英语单词走遍全世界
2018-10-12 · 53 min
HTTP/1.x 的链接管理
2017-02-05 · 6 min
用 Python 实现每秒处理 120 万次 HTTP 请求
2017-02-04 · 6 min
Swift 语言快速入门
2014-06-09 · 15 min
必看 8 分钟 5 步优化 MongoDB 以及其它数据库
2014-06-09 · 3 min
关于 Swift
2014-06-03 · 2 min
PHP 的使用者们
2014-05-31 · 5 min