我对“氛围编码”这一趋势稍显迟钝。虽然我曾经尝试过使用大型语言模型(LLMs)进行简单的脚本编写,但我并没有真正将它们融入我的工作流程中。不过,最近我有了一个需求,决定全力以赴。
我使用 Supernote A5X2 来做笔记,但找不到完美的点阵网格。我想要一个简单的——轻便、6mm 间距的点阵网格。我在网上找到的每一个生成器都有一个问题:要么在页面上加水印,要么在角落里强行放上他们的logo,或者根本就无法使用。
通常,构建一个自定义 PDF 生成器意味着要花一个小时查阅文档,找到合适的库并弄清楚坐标系统。但我没有时间奢侈,所以我给 Gemini 提供了一个提示,详细描述了我想要的内容:命令、参数,以及我期望得到的结果。
根据这些指示,它生成了一个使用 BeautifulSoup 的功能性 Python 脚本,我想是这样的(我没有原始的 Python 代码,Gemini 决定删除它)。效果非常好。经过几次后续提示来调整间距和点密度,我得到了一个几乎完美的 PDF。
这个脚本对我来说很好用,但我想与 Supernote 社区分享。大多数用户不会安装 Python 并运行终端命令来获取一个笔记本模板。我需要一个网络应用程序。但我不想运行一个服务器来生成 PDF。我想要一个静态文件,可以在 GitHub 上托管。
我再次向 Gemini 提出了一个新挑战:“给我构建一个纯 JavaScript 应用程序,完全在浏览器中生成这个 PDF。”
Gemini 使用客户端库生成了 HTML、CSS 和 JavaScript 文件。在经过几轮“打磨氛围”——调整用户界面和优化 PDF 输出后,我得到了我想要的效果。
你可以在这里查看最终产品 <a href="https://satran.github.io/grid-generator" rel="nofollow">https://satran.github.io/grid-generator</a>,源代码可以在 GitHub 仓库中找到 <a href="https://github.com/satran/grid-generator" rel="nofollow">https://github.com/satran/grid-generator</a>。
回顾过去,我最享受的并不是速度,而是框架的搭建。我不需要研究哪个 JS 库最适合 PDF 生成;LLM 选择了一个标准库并正确地实现了它。它创建了应用程序的结构“骨架”,让我可以专注于补充和完善细节,而不是编写样板代码。我从一个小烦恼变成了一个面向公众的工具,所花的时间远比传统方式少得多。我想我正式成为了信徒。这就是我想要的:我可以专注于代码的意图,让 LLM 处理语法。
返回首页
最新
AI 编程助手虽然速度快,但缺乏规范性。它们在没有明确规范的情况下,从构思跳到实现,文档与代码之间脱节。“最佳实践”变成了可选建议。
我创建了 govctl 来解决这个问题。它是一个有明确观点的治理命令行工具,强制软件开发遵循阶段性纪律:
```
规范 → 实现 → 测试 → 稳定
```
每个功能在实现之前都需要提交 RFC(请求评论)。各个阶段不能跳过,检查点是强制的,而不是建议的。
工作流程:
```
$ govctl new rfc "缓存策略" # 首先是规范
$ govctl finalize RFC-0015 规范 # 锁定规范
$ govctl advance RFC-0015 实现 # 现在可以编码了
$ govctl check # 验证一切
```
govctl 自我管理。命令行工具中的每个功能在编写任何代码之前都已在 RFC/ADR(架构决定记录)中进行了规范。这份仓库证明了这一模型的有效性。
并不适合所有人。如果你喜欢“快速行动,打破常规”的工作流程,这个工具可能不适合你。但如果你对 AI 生成的杂乱代码和不真实的文档感到沮丧,govctl 可能会有所帮助。
使用 Rust 编写,采用 MIT 许可证。
我一直热爱即时战略(RTS)游戏,并且想制作一款类似的游戏已经很久了。我想尝试围绕RTS中的资源采集元素构建一个迷你/益智游戏。
<p>目标:你在中心有一个基地,需要在尽可能短的时间内开采并“提炼”地图上的所有资源。</p>
<p>默认情况下,游戏会自动进行,但并不是最优(移动和购买升级)。你可以通过按钮禁用这个功能。你可以选择无人机,右键点击将它们移动到特定的资源点,并在获得升级点时购买升级。</p>
<p>我实现了三个不同的关卡和一些基本音效。我使用了Phaser作为游戏库(这是我第一次使用它)。在移动设备上运行效果不佳。</p>
我从零开始用VHDL构建了一个新的8位CPU(从指令集架构开始)。我觉得大多数教育用软核在抽象层面上隐藏了太多内容。例如,如果我可以通过一个调用优化过的算术库的单一赋值来完成a+b,那么我为什么要学习涟漪进位加法器呢?如果我可以像使用编程语言那样用一个简单的PROCESS语句来完成所有控制逻辑,那我为什么还要学习触发器呢?当然,抽象是硬件描述语言的主要卖点,但如果我严格保持结构性,只依赖于ieee.std_logic_1164,是否可行呢?
结果是可行的,并且效果很好。没有使用算术库,除了DFF组件外没有其他PROCESS。当然,与优化过的核心相比,这个设计在资源使用上有点“资源消耗大”(例如,内存是由触发器构建的,而不是利用FPGA内部存储器的块RAM),但你实际上可以实时追踪数据路径中的每个信号。
我还用C99编写了一个汇编器,没有使用外部库(请多包涵,我觉得我的代码非常原始)。我将Sci1(Scintilla)、GHDL和GTKWave打包成一个单一的安装程序,这样你就可以编写汇编代码并立即查看波形,而无需花费数小时配置模拟器。目前仅支持Windows,但我总有一天会在Linux上实现这个功能。我在Tang Primer 25K和Cyclone IV上进行了测试,并且包含了我的Gowin、Quartus和Vivado项目文件。这应该能让你在FPGA上轻松运行。
所有内容都遵循GPL3协议。
(编辑:我没有使用人工智能。对于VHDL来说,这并不是浪费时间,因为我的设计太新颖了——但即使是进行测试也会浪费我的时间,因为那些大型语言模型对于x86/ARM训练得太好了,而我的标志逻辑源自6502/6800,甚至我的涟漪进位加法器在减法时也不会翻转进位位。关键是——人工智能无法提供帮助。它只是一味抱怨我的汇编器的C代码不符合2026年的标准。)
我创建了一个包,使用 Raph Levien 的 Vello 作为在 WebGPU 上为 React 提供的超快速 2D 渲染器。它使用 WASM 连接到 Rust 代码。
ChunkHound的目标很简单:提供以本地为优先的代码库智能,帮助您按需获取深入的核心开发级见解,生成始终最新的文档,并能够从小型代码库扩展到企业级的单体代码库——同时保持免费、开源和与提供商无关(支持VoyageAI、OpenAI、Qwen3、Anthropic、Gemini、Grok等)。<p>我非常希望听到您的反馈,如果您已经提供了反馈,感谢您成为这段旅程的一部分!