4作者: goldenCeasar7 个月前
嗨,HN, 我是 Kumi 的作者。Kumi 是一种声明式、静态类型、面向数组、编译型 DSL,用于构建计算系统(类似于电子表格)。它完全用 Ruby (3.1+) 实现,并进行静态检查,目标是面向数组的 IR,并编译成 Ruby/JS。在过去的几个月里,我一直在研究它,很想知道你们的看法。 链接的演示涵盖了金融场景、税务计算器、康威生命游戏(数组运算)以及一个快速的蒙特卡洛模拟演示,这样你就可以在实践中看到零运行时代码生成。(GOL 渲染位于支持的 React 应用程序中;Kumi 处理网格数学运算。) 最初的问题: Kumi 的最初想法来自于我之前工作中遇到的一个复杂的 IAM 问题。配置一个员工意味着要为每个目标系统应用数十条相互依赖的规则(基于角色、地点等)。问题更深层:即使是数据抽象也是基于规则的。例如,一个系统的“角色”可能只是对 Active Directory 组的特定解释,并通过某个函数映射到另一个系统,该函数作用于其属性。 这种逻辑也极不稳定;写下规则变成了一个发现过程,管理员需要实时更改它们。这一切都发生在系统之间同步数据的根本挑战之上。我当时的解决方案是在一个名为“蓝图”的组件中处理部分逻辑,该组件解释声明性规则并将此逻辑暴露给其他工作流程。 演变: 那个“蓝图”组件一直萦绕在我的脑海中。大约一年后,我决定用 Kumi 更根本地解决这个问题。我最初的尝试很脆弱——先是运行时 lambda,然后是一系列解释器。我知道什么是 AST,但不得不去了解编译器、IR 和形式类型/形状表示等概念。每次迭代都揭示了更深层次的问题。 核心问题是我的 AST 表示不够强大,迫使我陷入了不可验证的“运行时魔法”。我意识到解决方案是迭代地构建一个更具表现力的中间表示(IR)。这并不是一个单一的步骤:我花了两个月的时间构建并抛弃了大约 5 个不同的 IR,数万行代码。这个痛苦的过程迫使我了解了编译、表示复杂形状、规范化数据流和验证逻辑的真正含义。这段旅程促使静态类型检查成为一个必要的结果,而不仅仅是一个最初的目标。 这与核心挑战相结合:业务逻辑通常与复杂、嵌套和不规则的数据(数组、订单项等)有关。如果 DSL 无法原生处理对这些数据的循环,那就毫无意义了。这需要一个足够强大的 IR,以便进行内联和循环融合等优化,而这些优化在处理向量化数据时是出了名的难以推理。 你可以在这里尝试一个基于网络的演示:[https://kumi-play-web.fly.dev/?example=monte-carlo-simulation](https://kumi-play-web.fly.dev/?example=monte-carlo-simulation) 仓库在这里:[https://github.com/amuta/kumi](https://github.com/amuta/kumi)
1作者: yubozhao7 个月前
我们过去一年半以来一直在帮助中型市场公司,现在终于准备好向公众分享这个内部平台了。 Yansu (严肃) 是一个使用规范 + TDD 构建复杂软件项目的 AI 编码平台。它更像是一个标准操作程序 (SOP),而不是一个编码助手。我们专注于理解需求,并根据这些需求检查结果,同时根据测试迭代代码。 Yansu 试图尽可能多地学习行业知识。这些是你不会写在谷歌文档或 Notion 上的东西。Yansu 通过持续与用户交流,并从他们那里提炼学习来吸收这些知识。 它就像一个规范 + TDD 平台与 character.ai 结合的产物。 为什么关注需求?因为任何软件开发的 80% 都是理解需求以及我们到底想构建什么。我们还关注结果,这是唯一重要的事情。我们通过模拟场景并根据这些场景生成测试来交付令人满意的结果。我们的助手承担了代码中繁琐的测试部分,解放了其他人。 我们优先考虑准确性而不是延迟/成本,使用混合助手(不限于 CC、codex 等)来完成工作。然后,我们运行持续的测试生成流程,直到所有内容都通过。 Yansu 是什么意思?中文是“严肃”。就像我最喜欢的艺术家雷内·马格利特,穿着西装在他的厨房里作画一样。我想对我的编码给予尊重和关怀。 我们的目标是提升人们,从个人贡献者 (IC) 到技术负责人,让他们专注于规划、验证和教育等高杠杆率的工作。 我们制作了一个发布视频来庆祝建立在我们之前所有创意之上的工作。感谢 CinemaSings 促成了这件事。 请欣赏视频(链接在推文中)并了解 Yansu。
1作者: vitaly-pavlenko7 个月前
我设计了一种基于钢琴卷帘的相对乐谱。我使用了 12 种颜色,以特定方式排列,以可视化西方调性音乐的主要效果和对立关系。主音始终为白色,因此需要手动注释/解释每个 MIDI 文件。 所有和弦都是由三到四种颜色组成的“旗帜”。小调模式较暗,大调模式较亮。颜色以三度音程排列。 我将作品从简单的和声到复杂的和声进行了排序。我还写了一些文字来解释你可能会看到的内容。此外,还有一个结构语料库:标签的超链接,允许你在我的 2000 多首流行作品的语料库中找到相似的模式。 我的方法使和弦进行易于记忆,并在乐谱中一目了然。 这并非联觉,而是一种缺失的调性音乐脚本,它使和声上相同的事物看起来相同(或相似)。 我还用俄语录制了关于我的方法的讲座(<a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLzQrZe3EemP5pVPYMwBJGtiejiN3qtCce" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLzQrZe3EemP5pVPYMwBJG...</a>)。很抱歉,我还没有找到时间用英语重新录制。 我还草拟了一个更友好的介绍:<a href="https:&#x2F;&#x2F;vpavlenko.github.io&#x2F;d&#x2F;" rel="nofollow">https:&#x2F;&#x2F;vpavlenko.github.io&#x2F;d&#x2F;</a> 抱歉,如果你是色盲,这个东西就没有任何意义了。 它是开源的:<a href="https:&#x2F;&#x2F;github.com&#x2F;vpavlenko&#x2F;rawl" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;vpavlenko&#x2F;rawl</a>
15作者: alexsngai7 个月前
Sudocode 是一个轻量级的上下文管理系统,专为代码编写代理设计,存在于你的代码库中。它通过将用户意图捕获为持久的规范,并将代理活动跟踪为 issue,所有这些都通过 Git 进行版本控制,从而帮助组织人-工智能协作的混乱。这种“上下文即代码”的方法减少了代理的“失忆”,并加速了长期任务的开发。
3作者: davecarruthers7 个月前
嘿,Hacker News 的朋友们,我是 Zeeda 的联合创始人之一 Dave。<p>在将我上一家公司(Voxpopme)从零发展到 1000 万美元的年度经常性收入(ARR),并雇佣了 100 多人之后,我经历了招聘中最糟糕的部分:在 LinkedIn 上发布职位,收到 200 多份申请,淹没在简历的海洋中,其中 80% 根本不符合要求。<p>所以我们开发了 Zee - 一个 AI,它会与每位申请者进行 20-30 分钟的实际第一轮面试(不仅仅是筛选),然后为您提供一份值得您关注的候选人名单,这些人只占申请者的 5-10%。<p>我们还在 Zee 面试任何申请人之前就解决了利益相关者之间的意见不统一问题,他会与关键利益相关者讨论该职位,从而超越基本的职位描述。<p>很希望得到 Hacker News 社区的反馈,特别是来自也经历过这种痛苦的创始人。