每日HackerNews RSS

## Bun vs. Node.js:Trigger.dev 的 5 倍性能提升 Trigger.dev 在其对延迟敏感的“Firestarter”服务(一个处理数千个长轮询 HTTP 连接的预热连接代理)中用 Bun 替换了 Node.js,从而实现了 **5 倍的吞吐量提升**。初步分析显示 Node.js 实现存在瓶颈:缓慢的 SQLite 查询、过多的 Zod 解析以及低效的头部转换。 第一阶段消除了 SQLite 数据库,用复合键 Map 替换它,实现 O(1) 查找,吞吐量翻倍,延迟减半。第二阶段切换到 Bun 的原生 `bun.serve()` API,进一步将性能翻倍。随后的分析(第三阶段)识别并修复了与 Zod 验证、头部处理和调试日志记录相关的热点,将 CPU 使用率提高了 40%。最后,编译成单个二进制文件(第四阶段)又将吞吐量提高了 14%,并将镜像大小从 180MB 减少到 68MB。 一个关键发现是 Bun 的 HTTP 模型中存在内存泄漏:来自断开连接的客户端的未解决的 Promise。修复此问题稳定了内存使用并进一步提高了性能。该团队强调分析的重要性,在每个步骤进行基准测试,并理解 Bun 独特的 HTTP 生命周期。他们还为常见的 Bun 问题创建了一个调试技能。

对不起。

最近的研究正在揭示阴蒂的奥秘,这个器官由于社会禁忌和解剖学挑战,历史上一直研究不足。研究人员利用同步加速器的先进X射线技术,首次在微米级别上创建了阴蒂神经的详细三维图像。 发表在bioRxiv上的研究表明,阴蒂背神经(DNC)有力地延伸到阴蒂龟头,广泛分支并连接到周围组织,如耻骨区域。这与先前的神经逐渐变细的假设相矛盾。 这种详细的解剖学图谱具有重要意义。它可以改善针对女性生殖器切割术后患者的重建手术,并帮助外科医生在其他盆腔手术中避免神经损伤。专家强调,随着性别肯定治疗的进步,人们对生殖神经重要性的认识日益增强,并强调需要进一步研究以开发针对相关疾病的更好疗法。该团队计划扩大研究范围,纳入更多样化的捐赠者。

这个黑客新闻的讨论围绕着LiveScience最近重新发布的一篇文章,该文章详细介绍了对阴蒂神经的首次完整绘制。用户最初将帖子标记为重复,并指出通过HN的搜索功能很难找到原始提交——这是最近几位评论者遇到的问题。 对话很快演变成一系列关于HTTP错误代码(404、403、502、411、420、402)的玩笑,利用了文章敏感的主题以及令人沮丧的搜索问题。几位用户指出,这些错误代码与主题相关的幽默之处,其中一人建议使用“420 Enhance your calm?”的回应。这个帖子既突出了科学发现,也突出了HN搜索功能的怪癖,以及社区略显尴尬但轻松的反应。

👍 1人点赞 👎 1人踩 😄 1人笑 🎉 1人欢呼 😕 1人困惑 ❤️ 1人爱心 🚀 1人火箭 👀 1人眼睛。 你现在无法执行该操作。

对不起。

``` /research "GraphQL性能特征" 收集证据,读取你的代码库,搜索网络,并记录发现的内容。每个发现都有一个类型(事实、风险、预估)和一个证据等级——从“声明”(有人说)到“测试”(原型验证)。 r001 [事实|文档] GraphQL消除了移动客户端的过度获取,减少了40-60%的负载大小。 r002 [事实|网络] GraphQL N+1查询问题需要DataLoader或等效的批量处理层。 r003 [风险|文档] 现有的REST缓存(CDN、HTTP)无法直接应用于GraphQL,需要自定义解决方案。 ```

一个黑客新闻的讨论围绕着人工智能生成工具和网站的激增,特别是名为“wheat”的一个工具,它迫使LLM通过CLI来解释它们的答案。 许多评论者表示怀疑,一些人认为这些工具是“无用的垃圾”,认为直接与LLM交互足以完成简单的任务。 还有人指出这些网站的重复性和糟糕的设计,并提到烦人的“淡入”效果是明显的标志。 然而,一些用户发现像“wheat”这样的工具很有价值,尤其是在与Claude等模型进行长时间会话时,并指出在代码合并方面提高了生产力。 讨论凸显了人们对不断涌现的人工智能工具的日益疲劳,以及关于它们是否真正解决了问题,还是仅仅增加了不必要的复杂性的争论。

## 软件版本控制:为什么重要以及如何正确实施 最近的一次生产事故暴露了软件版本控制中的一个关键缺陷:无法*精确*知道正在运行的代码是什么。尽管快速识别出潜在的修复方案,但由于缺乏对构建版本和发布的可见性,仍然浪费了数小时。这促使我们重新审视最佳实践,并回忆起十多年前在 i3 窗口管理器中实施的一种解决方案。 核心问题在于令人惊讶的低版本控制标准——即使是家用电器也具有详细的版本信息!有效的软件版本控制需要三个步骤:**标记它!**(包含源代码修订版),**连接它!**(确保此信息在构建和打包过程中不会丢失),以及**报告它!**(在日志、用户界面甚至 HTTP 标头中显示版本信息)。 最有价值的信息是 VCS(版本控制系统)修订版。虽然 Go 现在可以自动使用此数据标记构建,但将其集成到 Nix 等打包系统中可能很复杂。像 `stapelberg/nix/go-vcs-stamping` 这样的叠加层可以弥合这一差距。 最终,优先考虑“版本可观测性”——在整个系统中一致报告 VCS 修订版——是一个高影响、低成本的项目,可以在事件响应期间节省大量时间和压力。不要满足于基本的版本号;要知道*精确*正在运行的代码是什么。

对不起。

## Sheets:终端电子表格 Sheets 将电子表格功能带到你的终端。你可以启动它来直接读取通过 stdin 管道传入的 CSV 数据,或者打开现有的 CSV 文件。导航侧重于键绑定,允许使用 `h, j, k, l` 在单元格之间移动,并使用 `gg`(顶部)或 `B9`(单元格 B9)等命令快速跳转到特定位置。 Sheets 支持通过直接赋值 (`B7=10`) 和插入模式 (`i`) 修改单元格。强大的功能包括搜索 (`/`)、标记 (`ma`)、跳转列表 (`ctrl+o`) 和视觉选择 (`v`),用于复制、剪切和粘贴。公式可以在视觉模式下使用 `=` 插入。 保存、打开其他文件和退出都通过激活 `:` 的命令提示符来完成。安装很简单,可以使用 Go (`go install...`) 或下载预构建的二进制文件。该项目采用 MIT 许可,并欢迎用户反馈。

## 终端电子表格:Hacker News 汇总 Hacker News 的讨论重点介绍了新的基于终端的电子表格工具“Sheets” ([github.com/maaslalani](https://github.com/maaslalani))。 这篇文章引发了对类似项目的兴趣,揭示了在终端界面中可用的电子表格功能选项数量惊人。 几位用户推荐了 **VisiData** 和 **visidata (vd)**,称赞它们的速度以及处理大型数据集的能力,甚至可以抓取网站上的表格数据。 还有人指出 **Oleo** 及其现代分支 **NeoLeo**,这是一个更小、基于 C++ 的版本,具有 Tcl 绑定以进行自定义和独特的查询语言。 **lnav** 也被提及为强大的 CLI 数据工具。 对话转向怀旧,回忆了早期的电子表格程序,如 **Lotus 1-2-3**、**Quattro Pro** 和 **Visicalc**,其中一些至今仍可使用模拟器运行。 一个共同的主题是对结合电子表格和笔记本功能的工具的渴望,像 **TreeSheets** 和 Obsidian 插件提供了部分解决方案。 虽然许多人欣赏基于终端的工具的简单性和强大功能,但与现代电子表格格式(如 .xlsx)的兼容性仍然是更广泛采用的关键挑战。

## Gemma Gem:您的本地AI助手 Gemma Gem 是一款 Chrome 扩展程序,它将强大的 AI 助手直接带入您的浏览器,由 Google 的 Gemma 4 模型提供支持。它完全在您的设备上运行——无需互联网连接或 API 密钥——利用 WebGPU 进行快速、私密的处理。 安装后(需要下载约 500MB),Gemma Gem 可以阅读网页、与元素交互(点击按钮、填写表单),甚至执行 JavaScript。您可以通过浏览器中的图标访问它,并通过聊天界面进行交互。 该扩展程序通过内容脚本、服务工作线程和托管模型的离屏文档系统工作。它提供截图捕获、文本提取和页面滚动等工具,所有这些都可以通过自然语言控制。 用户可以自定义 AI 的“思考”过程,并管理上下文清除和特定站点禁用等设置。提供开发版本和生产版本,详细日志可通过 Chrome 的扩展程序检查工具访问。

## Gemma Gem:浏览器中的人工智能 一个名为 **Gemma Gem** 的 Chrome 扩展程序将谷歌的 Gemma 4 (2B) 人工智能模型直接带入您的浏览器,无需 API 密钥或云连接。由 ikessler 开发,它允许模型通过读取内容、截取屏幕截图、点击元素,甚至运行 JavaScript 与网页互动,可通过聊天叠加层访问。 虽然对于简单任务有效,但复杂操作可能不可靠。该项目的代码是开源的,允许进行实验和潜在的独立使用。讨论强调 Chrome 的 **Prompt API** 是一种类似的方法,以及未来利用操作系统级 LLM 的原生 Web 功能的可能性。 有人对安全性(授予 JS 执行权限)和状态持久性(浏览器崩溃)提出了担忧,但评论员指出现有的 Web 安全措施和浏览器存储选项。该项目被认为对隐私、离线使用以及作为本地 LLM 应用程序的构建模块很有价值,可能简化了处理敏感数据的开发人员的集成。

即使是开发人工智能工具的公司,如微软的Copilot、OpenAI的模型以及xAI的产品,也在告诫用户不要盲目信任其输出结果。 他们的服务条款明确指出,这些人工智能容易出错,不应被用于重要决策。 微软目前正在向企业推广Copilot,最初包含免责声明,将该工具标明“仅供娱乐”,并建议用户“自行承担风险”。 他们承认这种措辞已过时,并计划更新。 同样,OpenAI和xAI也警告不要将他们的人工智能的回复视为绝对真理或事实信息。 这些免责声明强调了一个关键点:虽然人工智能正在迅速发展,但它仍然存在缺陷,需要对生成的内容进行批判性评估——这种观点与怀疑论者*和*人工智能开发者本人不谋而合。

## 微软的Copilot:“仅供娱乐” 一篇最近的TechCrunch文章,在Hacker News上讨论,强调了微软的使用条款中声明Copilot“仅供娱乐”的免责声明。 这引发了用户们热烈的争论。 许多评论者指出,将一个工具命名为“副驾驶”——暗示协助——同时又声明其不可靠,这其中的讽刺意味。 有人开玩笑说,*所有*微软服务都可以这样描述,并提及过去的问题和公司的销售策略。 讨论还涉及更广泛的AI领域,一些人预测“AI寒冬”并认为大力投资AI的公司可能犯了错误。 另一些人则反驳说,完全否定AI是目光短浅的,并将之比作早期对手机的怀疑态度。 用户们还分享了一些有趣的观察,例如AI可能帮助冰淇淋店(或者不能!),以及微软内部“Copilot”品牌产品的激增。 人们对该工具的实用性和潜在滥用提出了担忧,尤其是在代码建议和生成潜在有害内容方面。

## Modo:一个开源、规划优先的AI IDE Modo是一个基于VS Code的Void编辑器构建的桌面IDE,旨在通过优先考虑*规划*而非直接执行来增强AI辅助编码。与典型的“提示-生成代码”工具不同,Modo通过明确的工作流程来构建开发过程:**提示 → 需求 → 设计 → 任务 → 代码。** 用户在`.modo/specs`中定义功能或错误修复,为需求、设计和实现任务创建markdown文件。然后,AI代理填充这些内容,允许审查和迭代完善。任务是持久的,并且可以从IDE中一键执行。 主要功能包括通过markdown规则进行项目指导,通过JSON钩子实现自动化操作,以及为复杂任务并行生成代理。它支持多种LLM,并与OpenAPI规范等工具集成。一个切换开关允许在自主“自动驾驶”模式和监督模式之间切换。 Modo是完全开源的(MIT许可证),并且高度可定制,提供专用主题、自定义命令以及通过可安装的“能力”进行扩展。虽然目前由社区维护,但它为寻求更结构化的AI驱动编码方式的开发者提供了强大的基础。 [https://github.com/modoeditor/modo](https://github.com/modoeditor/modo)

对不起。

## 开源软件的可移植性价值 本文论述了开源社区中日益增长的对软件可移植性的敌对态度。作者反驳了常见的将移植到“旧”或不太流行的架构(如Alpha、MIPS、PowerPC或32位系统)视为无意义的观点,以及对字节序(大端与小端)的担忧。 作者认为,支持不同的架构并非沉溺于过去,而是承认活跃的社区兴趣并提高软件质量。移植可以发现隐藏的错误——一个安全漏洞甚至是通过在旧硬件上测试Linux内核发现的。大端和小端系统都有其价值,而字节序安全的代码就是*更好*的代码。 同样,32位支持仍然相关,尤其是在资源受限的环境中,甚至可以在64位系统上提高效率。最终,接受社区驱动的移植表明了对用户的尊重,并促进了更健壮、经过充分测试的代码库。作者提倡协作方法,敦促维护者拥抱贡献,即使是针对意想不到的平台,将其视为项目蓬勃发展和有价值的标志。

## 黑客新闻讨论总结:字节序与软件可移植性 一篇关于字节序(字节在内存中存储顺序)的文章引发了黑客新闻的讨论,结果显示,开源项目普遍不倾向于优先支持不太常见的架构。核心论点集中在**维护负担和机会成本**上。开发者认为,接受对大端系统等架构的移植会带来持续的测试和调试需求,但用户收益有限。 许多评论者强调,维护者没有义务支持所有可能的平台,尤其是在资源有限的情况下。他们提倡,如果用户需要特定支持,应该**分叉项目并自行维护**。 还有一种担忧是,最初的移植贡献者经常消失,导致维护工作落到原始作者身上。 虽然有些人欣赏大端在调试方面的作用,但共识倾向于优先考虑**小端**,因为它具有效率和普及性。有人建议使用**QEMU**等工具在不同架构上进行测试,但也指出了在模拟器中设置和调试的困难。最终,这场讨论凸显了一种务实的观点:专注于广泛使用的架构能为大多数用户带来最大价值。

更多

联系我们 contact @ memedata.com