我正在发布Lunar,一个全新的Lua 5.1编译器和虚拟机,完全用Go语言编写。它包括标准库、协程,并支持Lua 5.2风格的goto。
嵌入API避免了Lua C API基于栈的接口,转而采用类型化的Go值和回调框架。库和脚本文件的访问是可选的,因此宿主可以明确控制Lua代码的访问权限。
根据我目前的基准测试和使用案例,Lunar的速度通常比GopherLua和Shopify的go-lua快约1.5到2倍。然而,它最大的改进在于内存使用:加载一个9 MB的CBOR派生对象图(数十万个表)时,分配约107 MB,而使用GopherLua时则为785 MB,垃圾回收后保留的内存大约为72 MiB,而GopherLua则为542 MiB。
公共API仍在稳定中,我特别希望能收到关于嵌入设计和Go接口的反馈。
(请注意,这个项目最初是在另一个仓库中启动的,当时我仍希望将我的一些更改移植回现有的其他库。)
返回首页
一周热榜
我认为是时候远离那些具有人工智能功能的软件或工具了。<p>首先,找到一款足够好的没有人工智能的网页浏览器。<p>这里所说的“没有人工智能”,是指完全没有人工智能功能,而不是可以关闭人工智能功能的选项。<p>因为使用人工智能或添加人工智能功能可能会影响软件的许多方面(决策、理念、用户界面、细节、对用户的态度、隐私、安全等)。
我不断听到我们必须赢得这个比赛。我们?奖杯是他们的,结果也是一样。天网。赢家?
嗨,HN,我是Shailendra和Karan。我们正在构建一种快速且安全的方式,让编码代理能够实时调试生产环境中的问题。
当生产环境出现故障时,它允许Cursor、Claude等在你的运行代码中安全地插入虚拟断点或探针,并提取日志中没有的确切变量值。
这一切都为工程师节省了时间和精力,否则他们需要翻阅日志和追踪信息,或者通过控制台日志或打印语句重新部署,直到找到根本原因。
这里是一个解释这一过程的视频链接:<a href="https://www.youtube.com/watch?v=ivV7I--ta5c" rel="nofollow">https://www.youtube.com/watch?v=ivV7I--ta5c</a>
现在,代理编写了我们大部分的代码。这缩小了工程师调试AI编写代码所需的有效上下文,而AI在同一代码中添加的有限遥测并没有帮助解决这个问题。
因此,当生产环境出现故障时,工程师的第一反应是打开日志或将其发送给你的代理。但如果你要查找的行不在其中,代理将开始根据不存在的数据猜测根本原因,迫使你添加日志并重新部署。
这种基于现有数据的代理分析推理循环并不便宜,消耗了大量的令牌。而添加日志和重新部署的周期又慢又痛苦,使得工程师对值班工作感到厌烦。
我们的方法让代理能够在故障发生的确切时刻和位置按需捕获遥测,打破了日志-重新部署的循环,并在消耗更少令牌的同时获得最准确的根本原因分析(RCA)。
显然的问题是如何在运行中的服务上实现这一点。你无法像在笔记本电脑上暂停调试器那样暂停一个实时服务。安全地从运行过程获取值,而不暂停线程或减慢主机的速度是一个挑战。我们正在实现这一目标。
在此之前,我在一个100人的团队中负责工程工作。然后Karan和我花了三年时间开发HyperTest,这是一个测试工具。
在HyperTest中,我们使用OpenTelemetry将生产流量转化为集成测试。这也是生产仪表化。我们学习到的困难部分是如何在不破坏运行服务的情况下提取真实的运行时状态。
我们还以艰难的方式学到了一些其他教训。HyperTest试图通过更好的测试来防止错误,而每次采用都是一场斗争。由于团队在处理生产问题,通话不断被取消。测试只是卫生,而生产故障则是火上浇油。这使我们看到了优先级所在。
这催生了构建一个真正自主的值班代理的想法,即一个能够在几分钟内接收警报、探测、诊断并修复问题的代理。但目前的工作方式是这样的:
你可以像往常一样与编码代理对话。告诉它哪里出错了:“结账返回200,但一些用户看到他们的订单失败,找出原因。”它会在你的本地代码中找到相关行,通过MCP与我们连接,并在运行服务的那一行插入探针。探针是只读的,直到真正的流量到达之前一直处于休眠状态。当被触发时,它会捕获调用栈每一帧的本地变量。然后将这些变量交给代理,代理利用真实数据进行诊断。
这个过程有两个部分。一个在你的服务内部运行的SDK,以及一个你的编码代理与之通信的MCP服务器。SDK使得在不重新部署的情况下设置探针(虚拟断点、日志或指标)成为可能。在Node和Python中,它是进程内挂钩的。在Java中,它作为JVM代理附加,在字节码级别进行仪表化。无论哪种方式,服务都保持运行并处理流量。没有任何暂停。
当你的代理想查看某一行时,它会调用MCP服务器,后者告诉SDK在该行放置一个探针。当请求到达该行时,SDK会捕获探针所请求的内容,在进程中进行清理,并通过MCP将其流回代理。
这可以在生产环境中运行,因此探针可以读取该变量中的任何值。我们确保在进程中进行数据脱敏,确保在任何数据传输之前完成。像密码、令牌、授权、社会安全号码和信用卡等关键数据默认会被脱敏,你也可以添加自己的脱敏规则。
此外,探针只能读取而不能写入,如果你希望捕获的状态永远不离开你的网络,你可以在你的基础设施中自托管服务器、代理,甚至数据库。
关于开销:在空闲时,SDK增加的内存几乎可以忽略不计,对吞吐量和响应时间几乎没有影响。探针只有在主动捕获时才会产生费用。此外,捕获是有界限的。一个单独的监控器实时观察,并在开销激增时拉取每个活动探针。
每个日志和追踪工具都向代理提供已经存在的数据,并要求其推理出可能发生的情况。我们认为,给代理提供对运行代码的“眼睛和耳朵”更有用,这样它们可以在需要时捕获所需的信息,正好在故障发生的时刻。
这似乎是调试生产事件最简单和最快的方法。
我们希望社区能够在任何环境中尝试这一方法,通过与编码代理聊天来调试任何已知或未知的问题。并告诉我们你需要哪些更多功能,以使其成为一个真正自主的值班代理。
支持的平台:NodeJs、Java、Python。
我的合作伙伴经常审核大量的P&ID(管道和仪表图)及相关文件(如Excel、Word、PDF、acd/l5x等)。在他的公司,这些通常是在Bluebeam中完成的。
很难查看差异并跟踪这些迭代所产生的所有修订。他们最终会存储像“rev3_final_redlined.pdf”这样的文件。我们一直在寻找类似Github的工具来进行这些审核,但还没有找到一个足够简单的工具,适合没有命令行经验的人使用(如果你知道其他工具,欢迎推荐)。
因此,我创建了withkord.com,旨在帮助进行修订和二进制文件的差异比较。欢迎任何反馈。
我在一个在线游戏开发社区工作,这个社区的文化反对使用人工智能进行任何事情,甚至是编码。这个社区围绕一个开源的游戏开发软件工具链以及其他用于分发、玩耍、评审和讨论这些游戏的网络应用程序建立。
我过去曾对开发软件工具链提交过拉取请求(PR),但这个工具链相当复杂(包括用多种编程语言编写的工具),我一直很难理解它,因此通常不太愿意去尝试。
到了2026年,使用大型语言模型(LLM)修复这个工具链中的错误变得容易多了。LLM在切换编程语言、添加调试跟踪以追踪错误在每一层的流动、生成自动化测试以重现错误,然后正确修复错误方面毫无问题。
当然,问题在于:我该如何说服团队合并一个完全由LLM生成的代码的PR,而这显然是违反他们政策的?
我选择的答案是:我撒谎说我写了这段代码。
但为了“卖”这个谎言,我首先请LLM详细解释错误修复的过程,然后我非常仔细地审查生成的代码(确保它的写法与我自己写的一模一样,尤其是注释),最后我完全手动撰写所有的提交信息和PR描述。
我发现这种方法极具教育意义。我学到了很多关于工具链中编程语言的知识,以及开源游戏开发工具的内部工作原理。在许多情况下,我更深入的理解让我能够真正审查LLM生成的代码,发现其中的问题,然后让LLM进行修复。
我确信,如果我只是点击一个按钮让LLM生成提交信息和PR描述,我绝对不会发现那些问题。而且显然我也不会学到这么多。
我不能以自己的名义写任何关于这件事的内容,但我现在真心推荐使用LLM来提交开源PR,但绝不要使用LLM生成提交信息或PR描述。即使开源项目明确允许LLM生成PR,也要假装是自己写的代码。
如果你对代码的理解不够深入,无法撰写提交信息或PR描述,可以请LLM为你生成一个,但随后要用自己的语言从头重写一遍。这部分是为了避免描述中有人工智能的味道,同时也是为了确保你对代码有足够的理解,以解释它的功能以及为什么这段代码是正确的做法。
假装这段代码真的是我的代码,迫使我深入学习这段代码,以便能够真正掌握它。我对自己在这方面撒谎感到羞愧,但我为通过这样做所学到的知识和取得的成就感到自豪。
我在寻找一个工具,用于为基于网页的软件创建互动演示和引导。令我惊讶的是,许多公司为一些相对基础的功能收取超过每月1000美元的费用。
我制作了这个工具,目前对我来说效果很好。你可以将其指向一个网站,让AI(使用你的OpenAI或Anthropic密钥)自动录制并润色整个过程,或者你也可以手动完成(或者两者结合)。
以下是一个互动演示的示例:
<a href="https://runnit.io/demos/i-want-you-to-create-a-demo-of-from-the-dashboard-clickin/" rel="nofollow">https://runnit.io/demos/i-want-you-to-create-a-demo-of-from-...</a>
免责声明:这是一个对我有效的工具,可能对你也有效,但它并不是生产级软件,请自行承担风险。你可以扩展它、分叉它或出售它,随你所愿。
HN是一个出色的独立黑客/单人创始人社区。<p>我们热爱透明度、数据和对自筹资金企业的分析。<p>你目前的(单人)项目是什么?每月经常性收入是多少?分享你的成功、失败和技术栈。