简短的想法、公告、备忘录、一些我的悄悄话、一切不足以写成文章的碎片。
AI 能做出好看的图表,但不是以你想的方式
最新的文章做了一些 Excalidraw 图表,如果您注意力惊人,就会发现它还是 Catppuccin Macchiato 配色的,与博客结合很协调。
我首先写了一些描述图表的“代码”,基本就是逐行的文本和一些字符箭头 <- / ->,没有深究语法的严谨性,普通的 LLM(和人类)都能理解。
接着让 LLM 据此生成 Mermaid 图表代码,这是 LLM 擅长的领域,就和让它们生成 Markdown 一样。生成 Mermaid 而非其他图表(甚至图片)的好处是,您可以获得一个结构确定的图表描述,方便检查逻辑和二次修改。(所以您想生成 D2 也是可以的,只是相较起来 LLM 不擅长它。)
不过 Mermaid 很丑,我用了 mermaid-to-excalidraw 将其转换为 Excalidraw 图表,并手动调整布局和连线。这已经很好看了,但还不足够,是的,好看很重要,我就是那种会把课堂笔记做成手账的人。
Excalidraw 图表实际就是 JSON 文件,这点还挺方便的。我把 Catppuccin 配色表给 LLM,让它修改 JSON 中的配色,在商量几次颜色与形状的含义后,就得到了现在的结果,这可比自己手动复制色值方便多了。
据我所知,Obsidian 的 Excalidraw 插件可以导入调色板,所以再花一些功夫制作调色板,也许您还能更方便地修改图表。
现在 AI 相关的工具链能力越来越强,「加载各种 SKILL,调用各种 Agent,帮我生成各种图表」兴许能做到同样的效果。但我就是没法信任它们,就和我没法从根本上信任 LLM 对 JSON 字段中 X/Y 坐标值的理解一样。
每一环都有足够的人工参与才有资格称 AI 为“工具”。
Saya 和它的编译器
有关 Saya Lang 有很多积压着的文章和代码 TODO。前段时间完成了它的 bindgen,其中有不少有趣的部分,本该有一篇文章。可是写代码时没有实时记录,如果要回头总结(就像博客里大部分文章一样)就觉得疲倦、缺乏兴趣了。
更何况接下来 Saya 还有很多事要做,比如类型推断和类型转换,实现之后可以简化 saya-bindgen 生成的 Saya 代码,也能让自己使用舒服一些。
尽管畅想未来需要许多现实前提,而它们还都是 TODO,我还是提前设想了标准库设计和内存管理方案。做一个普通的 GC 应该不会太难,打算只把它作为可选项;如果要手动管理内存,有个 defer 来帮忙应该还不错。
顺带一提,C 的 Defer 规范已经完成可用了,也许您感兴趣。
晚上好
零碎的想法不断涌出,时刻分散我的注意力,同时也增加记忆负担,整理记录是我与之抗衡的手段。现在,我愿意与您分享一部分,换句话说,我们终于可以在「碎片」相聚了。
这里的氛围虽不一定轻松愉快,但也至少更加随意,如果非要形容,我想这些文字是“混乱”的,携带着各种时刻的情绪。
而为了不让这里只是自言自语,我也会放一些近期的见闻或简短的公告。比如这次就是告诉您「碎片」上线了,同时上线的还有特殊 404 界面,您可以去看看。
特意去 404 页面就好像故意迷路一样。