文章
技术笔记与项目复盘,共 64 篇,按时间倒序。支持 RSS 订阅。
- Mac 上点不动的分段控件——Catalyst 不会把点击投递进 List 的 section header
- 不能读源码的协议实现——把 mosh 从抓包里重新推导一遍
- mosh 卡得要死,我差点怪罪自己刚做的架构取舍
- 你到底打了多久——把练习时长做成确定、防篡改、可复现
- 离线也能玩,联网不丢分——幂等 outbox 加一条 Worker 边界流水线
- 只同步权威源,派生态各端自己重建——AI 对话的跨栈同步
- 命令片段库:把「点按即执行」改成「先查看再执行」
- 没有服务端合并、没有账号,存档还能多设备收敛——G-Counter 加 CAS
- 排行榜显示你的城市,却不知道你在哪——匿名地区标签
- 解析不出命令名,就别放行——命令解析是 AI Agent 的安全边界
- 一套同步协议,两个技术栈——以及一个被 zlib 逼改的契约
- 一段可以随便拍照的配对码——因为口令不在里面
- 让阿里云 OSS 真的当 S3 用——「S3 兼容」不是契约
- 删了又活过来——一个会自己写回数据库的对象
- 「尝试重新启动」不是「撤销」——不经 shell 的重启与崩溃恢复账本
- 宁可漏报,不可误杀——一个 fail-closed 的清理分级引擎
- 停一个随时在变的进程——清理动作里的 TOCTOU 与连续检查点
- 从资源监视器到「收尾助手」——当安全成为产品本体
- 双语站的 <head> 里到底该放什么——canonical、hreflang 与结构化数据
- 不接生图服务,用 headless Chrome 给站点做 OG 分享图
- 一个密钥五台 Mac,名额怎么才不会悄悄漏光
- 一个人的站群怎么做 SEO——同源 sitemap、域名资源与一条 308 陷阱
- 公证通过,双击即死——一个 entitlement 的线上事故
- Pier 2.0 开始收费——价格由你定
- 终端里的两处乱码——vim 粘贴卡死与远程中文变问号
- 键道 KeyDo——一个 CRT 街机风的打字道场
- 三份订阅,一个端点——开源了 LLM-Bridge
- 让 AI 开个会——开源了 Open Council
- 客户端算的成绩,凭什么信——排行榜的服务端底线
- 搜到了,却跳不过去:一条消息的两个身份
- 在别人的终端里开一扇门:VibeTrail resume 的四次降级
- 建站记:这个网站是怎么搭的
- 在 React 里跑一个命令式游戏循环——单词雨
- 让 AI 在你的服务器上敲命令——Shellby 的三级审批门与五道护栏
- 让 AI Agent 的上下文不随步数膨胀——缓存断点、历史折叠与流式首字
- 凭证不能上云——Shellby 的双轨同步
- 把 ripgrep 链接进应用:VibeTrail 的无索引全文搜索
- 一个音频文件都不用的打字音效
- 不装 agent,一条命令采全服务器指标——Shellby 的监控
- 隧道只有一种——Shellby 的端口转发
- ref 存真相,快照交给 React——一个逐字符打字引擎
- 一条看起来还活着的死连接——Shellby 的心跳令牌
- 400 万个文件教我的事:Diskly 扫描器性能复盘
- 一套 SwiftUI 代码,三端不同的手——Shellby 的多会话适配
- 让 macOS 不再每次连接都弹钥匙串授权——一次 Keychain 选型
- 一个 reasoning_effort,翻译给三种后端
- 不走 App Store:macOS 应用的签名、公证与自更新
- 砍掉 OAuth,只留两种协议——一次接入收敛的取舍
- 一个功能的生与死:Pier 每进程网速的四次重写
- 扫描时分组卡片一直闪——三层非确定性和一个 epoch 分箱
- 不搭一行后端的许可证系统
- 为一次登录做两套 SSH 栈——Shellby 的后端抉择
- App 假死三次,同一个凶手:别阻塞 Swift 协作线程池
- 菜单栏上的一颗红点——LaunchAgent 的被动监控
- 子进程的三条不变量——别把 CLI 跑成僵尸
- lsof 只告诉你 node,不告诉你是哪个项目
- 不上传一张照片:Flick 的本地相似照片检测
- 让数据库约束当哨兵:三个被约束「抓现行」的 bug
- 辩论太长喂不进去——综合前的一次压缩
- 三重防护杜绝超售:一个排座系统的并发控制
- 一个 OpenAI 端点,后面三种完全不同的进程
- 所有中文关键词都是死代码——路由、角色与一个正则坑
- 抽 token 是条死路——个人 AI 网关的合规红线
- 共识度 0.82 是怎么算出来的——多模型互评的量化