给自己的备忘录
- 发刊词
从《101 忠狗》里那个每次失败都拿出录音笔反思的女反派说起——哪有那么多主角,所以这是:给自己的备忘录。
- 十年之后,重新开一个博客
2015 年我在 GitHub Pages 上搭过一个博客,写了 8 篇备忘就弃更了。十年之后重新开站,这篇交代它从哪来、打算写什么。
- 按下 Fn 就说话:一个 macOS 语音输入工具的三个坑
把「切输入法、双击 Option」压缩成一个 Fn 键:CGEventTap 静默禁用、输入法假切换、修饰键状态残留,三个深水区问题的排障记录。
- 把丢帧时长占比降下来:双列信息流的流畅度优化
以 HTR 为核心指标建评估、找劣化、做优化,再把问题左移到合码前:记录今日头条双列信息流性能专项的方法与结果。
- AI 辅助的 iOS 到 KMP 代码迁移实践
把 Objective-C 代码迁移到 Kotlin Multiplatform,AI 转写能做到什么程度?一次真实模块迁移的流程、迭代记录与适用边界。
- 评测的尺子:设计 AI 评测的几个原则
给 Agent 的 Skill 做 with/without 对照评测、给知识库问答建评测集的过程中,我确立了几个原则:统一 Q&A 协议、锁定 judge 版本、只评语义不评形式、结果可重放可审阅、复核结论改回源头。
- 像管理代码一样管理提示词:QuickGPT 的设计
介绍我的开源 Raycast 扩展 QuickGPT:用 HJSON 文件和 Git 管理 300 多条提示词,用占位符系统把提示词变成随处可调用的工具。
- 从人工到自动化:用 LLM 筛选值得复盘的 CR 评论
AI 初筛加人工复核:靠对话式的上下文组织和数据集化的批量调优,把 CR 评论复盘的人工筛选工作量减少约三分之二的实践记录。
- Code Review 只找真问题
AI 参与编码之后,Code Review 的一些老原则反而更重要了。这篇写我的评审方式:先刷新基线再看 diff、只找真实风险、清理 AI slop、核验 AI 意见后再采信,不为凑数量制造意见。
- 规则、参考、工作流:团队知识该放在哪
Agent 时代,团队知识怎么组织才能被 AI 和人同时用好?我的答案是一个三分法:规则进 AGENTS.md,参考资料进 Wiki,标准工作流写成 Skill。
- 关于
曾凯:AI 应用工程师、iOS 客户端基础技术。职业时间线与正在做的事。
- 随心记(Vibetaking)
打开即写的 iOS 速记应用,配套 macOS 菜单栏接收端:手机上写,文字实时出现在 Mac 的任意输入框里。
- 人工也是一种功能。
- 本分:隔离外力,先想清楚什么是「做对的事情」,再坚持「把事情做对」。
- 每个团队里都有对 AI 敏感的人。给他们 30 分钟能做出小工具的基础能力,比集中开发更快。
- Sub2API
自托管的个人 OpenAI 兼容网关:把手上的模型订阅统一包装成一个接口,供所有个人工具复用。
- 过度的帮助是一种剥夺。
- 大脑不需要更多信息,需要的是恰到好处的结构。
- 编程的本质:抽象,加上形式化的符号表达。
- 沟通时保持「公开可接受」。
- 豆包语音输入助手
把「切输入法、双击 Option」压缩成一个 Fn 键的 macOS 语音输入桥,从 Hammerspoon 脚本重写为原生菜单栏应用。
- 「这还是不对。退一步想想——约翰·卡马克会怎么做?」
- 复杂性守恒(Tesler 定律):复杂度不会消失,只会转移——问题是谁来承担。
- 好东西至少看三遍。
- 到处都是强调,等于没有强调。
- 错误提示先说现象,再给可做的下一步。
- 不要提问,提行动。
- 解决行动力问题:不要等别人来实现自己的想法,哪怕先用粗糙的方式自己做。
- 你的一个想法比一篇文章更重要——对你自己而言。
- 好的个人知识管理工具应该是对大脑的模拟,而不是对图书馆的模拟。
- 清晰大于优美,准确大于华丽,真诚大于技巧,有力大于面面俱到。
- 指差确认法:用「手、口、眼」协同打断自动驾驶式的操作惯性。
- FinderLink
本地文件的快速入口层:Quick Open、搜索与历史、Open With 和自定义 URL 动作,把「找到文件、送进工具」压缩成一次按键。
- Focus Keeper
macOS 菜单栏专注计时工具:专注不能暂停、没有提前完成入口,历史里只显示完成的专注。
- Chat Any
把选中文本、剪贴板、文件和文件夹一键聚合成 context.md 并唤起 Cursor 的 Raycast 扩展。
- 读书派(TextReader)
面向中文长文本的 iOS 阅读与听书应用:导入、分页、TTS 后台朗读、全文搜索和 AI 提问模板,纯本地、零数据收集。
- QuickGPT
用 HJSON 文件和 Git 管理提示词、在调用瞬间用占位符注入真实上下文的开源 Raycast 扩展,2023 年写到现在。
- 先把事情做了,就能拿到时间的复利了。
- 要读最好的材料。即使读不那么好的材料,也只是为了理解最好的材料。
- ZZStoryboardReference
iOS 9 之前 Storyboard Reference 的替代实现:用占位 ViewController 加命名约定实现跨 Storyboard 跳转,并让场景跳转可以被单元测试守护。