OpenCode & OpenSpec:SDD 实践

作为一名程序员,还是会被近几年 AI 编程领域的突飞猛进吓一跳,印象中,有这么几个明显的阶段

  • LLM for Tab 补全:代码主要是程序员编写,LLM 只是会预测下一段要放什么。典型代表比如 TablineCopilot
  • 氛围编程(Vibe Coding):程序员不再逐行写代码,而是用自然语言描述需求,让 LLM 帮你做跨文件修改。典型代表比如 CursorClaude
  • Spec-Driven Development (SDD):氛围编程有许多毛病,比如上下文漂移、软件架构不稳定等,这导致它很难在生产环境中落地。因此社区乃至工业界都开始探寻超越 Prompt 工程的方法去让 LLM 可以长时间稳定生成可用的代码,而不是一堆 AI 垃圾(AI Slop)。SDD 就是目前看来很有希望的一个方向
Warning

事实上,在编程领域以外也存在这样的失败模式,但我们这里只关注 AI 编程领域

Drain: 简单有效的日志解析算法

很多云平台都有各种日志,但是并不是结构化的,但利用机器学习/数据挖掘从日志中挖掘信息的时候又希望输入是结构化数据

因此,如何从非结构化日志中提取结构化信息是一件很重要的事情,一个朴素的想法是:使用正则表达式自己做解析提取,但是这个方法有很多缺点1

  • 日志的量太多,肉眼看日志然后写正则表达式不可取
  • 日志来自系统里的每一个组件,每一个组件背后的开发者可能都有自己的写日志习惯,一个个适配太麻烦

在 Drain 算法被提出的时候(2017 年),很多日志解析手段都聚焦于离线批处理场景,但云平台的日志经常都是流式产生的,因此 Drain 算法聚焦在线流式处理场景,它可以自动从非结构化日志中挖掘日志模板,从而得到结构化数据

RIME 小鹤双拼极简配置:从零搭建

MacOS 自带的中文输入法只能说是勉强能用,有很多不舒服的点

  • 它没有第三方词库,很多流行的词都需要自己一个个字打
  • 好不容易自己打的词,多打几次希望它记住,但你会发现它经常记不住

诸如此类的吐槽我已经看到过很多,所以在这个 2026 的元旦假期,我决定做些改变——使用 RIME 输入法 🥳