1作者: kavinsood1 天前原帖
嘿,HN, 我是一个重度使用 Obsidian 的用户。 最近,我对两种常见的同步方案感到厌倦: 1. 基于文件的同步(如 iCloud、Dropbox、Syncthing),需要等待更改传播,或者会出现“冲突副本”。 2. 自托管的设置(如 CouchDB),需要操作虚拟机和容器化数据库来同步 Markdown。 因此,我构建了 *YAOS*:一个以本地优先、实时同步为特点的 Obsidian 引擎。 自托管的开源软件应该提供更好的用户体验。 您可以一键将后端部署到自己的 Cloudflare 账户中。它适合 Cloudflare 的免费套餐(正常个人使用费用为 $0/月),并且完全不需要终端交互、SSH 或环境文件。 您现在可以试用: [https://github.com/kavinsood/yaos](https://github.com/kavinsood/yaos) *它的工作原理:* - 文本同步使用 Yjs CRDT。它实时同步按键和光标,而不是将保管库视为一堆待后续处理的文件。 - 每个保管库映射到一个 Cloudflare Durable Object,为您提供低延迟的单线程协调器。 - 后端在 Durable Object 的 SQLite 存储之上使用分块的 Checkpoint + Delta-Journal MVCC 存储引擎。 - 附件通过 R2 单独同步(这不是必需的——文本同步在没有它的情况下也能正常工作)。 这个项目最困难的部分是将 Obsidian 的同步 UI 和嘈杂的操作系统文件监视器与内存中的 CRDT 图进行桥接。我必须构建一个尾部快照排水系统,将快速的 IO 峰值(如执行全局查找和替换)合并为原子 CRDT 事务,以防止无限写入循环。 当前设计为每个保管库保持一个单一的 CRDT。这对于普通的个人笔记非常好,但有一个硬性的内存上限(约 50MB 的原始文本)。我选择了这个权衡,因为我更关心快速、可靠的实时使用体验,而不是无限的企业规模。 我还在 GitHub 上写了关于一些棘手部分的工程笔记(例如处理离线文件夹重命名冲突而不复活死文件)。 过去三周,我进行了严格的质量保证测试,以增强移动重连、IndexedDB 配额失败和离线分脑目录重命名的稳定性。 我非常希望能得到关于架构、代码或我所做权衡的反馈。我会在讨论中待着,回答问题!
1作者: pramodbiligiri2 天前原帖
我正在努力从概念上充分理解大型语言模型(LLMs),以便能够预测它们在生成代码方面的能力(和局限性)。这个目标合理吗?有没有好的资源推荐? 到目前为止,我查看了以下内容: 1. 《Vibe Coding》,作者:Steve Yegge 和 Gene Kim(https://www.amazon.in/Vibe-Coding-Building-Production-grade-Software/dp/1966280025)。这本书提供了一些实际示例和许多指导原则,但理论部分不多,似乎也没有从概念上解释大型语言模型。 2. 《Build an LLM from Scratch》,作者:Sebastian Raschka(https://www.manning.com/books/build-a-large-language-model-from-scratch)。这本书看起来很深入,但我并不想真正去“构建”一个大型语言模型。 3. 《AI Engineering》,作者:Chip Huyen(https://www.amazon.in/AI-Engineering-Building-Applications-Foundation/dp/1098166302)。这本书看起来很有前景,尽管它并不专注于编码。 也许类似于《How Claude Code Works》(https://code.claude.com/docs/en/how-claude-code-works),但内容可以更详细一些。 谢谢。