给带屏幕的键盘写 macOS 驱动:为什么 1297 行 Swift 里只有 1 个功能敢开放写入
AJAZZ AK35i V3 Max 离开 Windows 后屏幕时钟永远停在出厂时间。在 Alpine 容器里逆向 28.9MB 厂商驱动,用 Swift 和 IOKit 写出原生控制中心与 CLI。7 个功能页面锁了 5 个,为什么在看懂 33 字节包结构后依然坚持白名单写入,以及 macOS HID 报告多出的那一个 0 字节是怎么把时间写错的。
共 6 篇相关记录。
AJAZZ AK35i V3 Max 离开 Windows 后屏幕时钟永远停在出厂时间。在 Alpine 容器里逆向 28.9MB 厂商驱动,用 Swift 和 IOKit 写出原生控制中心与 CLI。7 个功能页面锁了 5 个,为什么在看懂 33 字节包结构后依然坚持白名单写入,以及 macOS HID 报告多出的那一个 0 字节是怎么把时间写错的。
扫码点菜是技术教程里最容易被轻视的 Demo,但真要支撑一次不翻车的堂食体验,防线比想象中深得多。从 32 位随机桌台 token 到服务端整数分防重,从五集合双遍 EJSON 导出到用完即删的 4 个临时特权函数,以及为什么我们在 320 个测试全绿之后,依然坚决停在体验版、绝不点击正式发布。
因为不知道 cc-switch 每次切换到底动了哪些文件,我自己写了一个 Claude Code 的 provider 切换工具。看起来只是改 settings.json 里三个键,最后写成 2285 行 POSIX shell 和 114 个测试——多出来的不是功能,是 Claude Code 本身的四条行为约束。这篇记录那些技术决策、AI 协作的三笔隐性成本,以及第十七天把我配置改乱的为什么是我自己跑的 review agent。
凌晨写完一份五章的 PRD,十小时后上线 493 行代码。这篇逐条对照计划和交付:PRD 里最聪明的那个功能为什么被它要对照的规则文本否决了,唯一没写进 PRD 的原创设计为什么也是唯一没被检查的分支,三阶段路线图为什么被按「哪一步更好生成」而不是「哪一步更值钱」执行,以及 493 行里唯一能证明有人真的用过它的证据。
用手机在 Telegram 里指挥 Claude Code,从 2026 年 2 月写到 6 月。为什么选短进程而不是长驻终端,tmux 抓屏怎么一步步走进死胡同、最后该换的为什么是数据源而不是解析器,一个专门做日志脱敏的模块怎么把有效密钥泄漏在了自己的测试里,以及我在哪一步决定停下来。
在 Claude Code 中实现 /blog skill,期间 team worker 失联,单人串行完成 4 个 Lane 的设计、实现与测试,最终 64 个 bats + 27 个 pytest 用例全部通过。