19小时前
|
|
|
111
## 今天 Hacker News 社区聊了啥? NO.20250626
这期日报内容超丰富!从 Google 开源 AI 代理 Gemini CLI,到神奇的单稳态金字塔,再到波多黎各太阳能微电网的硬核表现,信息量爆炸!还有 AI 代码审查工具的优化经验、PNG 格式的史诗级更新,以及非阿片类止痛药的突破性进展。想知道如何用 280 字符建模世界?想了解费曼解决问题的哲学?速速下滑,一网打尽本周科技热点,保证你跟上时代的步伐!

---
## Gemini CLI:你的开源 AI 代理
Google 发布了 Gemini CLI,这是一个开源的 AI 代理,旨在让开发者能够直接在终端中使用 Gemini 模型。这个工具的发布,为开发者提供了前所未有的个人访问权限,让他们能够更方便地集成和利用 Gemini 的强大功能。
Gemini CLI 的核心在于其开源特性,这意味着开发者可以自由地查看、修改和分发代码,从而促进创新和社区协作。通过命令行界面,开发者可以快速地与 Gemini 模型进行交互,执行各种任务,例如代码生成、文本摘要、翻译等等。这种直接的访问方式,极大地简化了开发流程,提高了开发效率。
此外,Gemini CLI 还支持自定义配置,开发者可以根据自己的需求调整模型的参数和行为,以获得最佳的性能和效果。Google 强调,Gemini CLI 的目标是让 AI 技术更加普及和易用,让更多的开发者能够从中受益。这个工具的发布,标志着 Google 在开源 AI 领域迈出了重要的一步,也为未来的 AI 应用开发带来了更多的可能性。开发者现在可以下载并开始使用 Gemini CLI,探索其无限潜力。
文章中还嵌入了用户调查问卷, 旨在了解用户对 Google AI 工具(如 Gemini 和 NotebookLM)的使用频率,以及如何改进文章内容。调查问题包括用户使用频率(每日、每周、每月、几乎不使用、不确定)和改进建议(更简洁、更详细、更容易理解、包含更多图片或视频、保持现状)。
- 原文: [Gemini CLI](https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/)
- Hacker News: [https://news.ycombinator.com/item?id=44376919](https://news.ycombinator.com/item?id=44376919)
- 作者: sync
- 评分: 1305
- 评论数: 701
- 发布时间: 2025-06-25 21:10:46
---
## 新型金字塔状物体始终以同一面着陆
数学家们制造出了一种新型四面体,它只能稳定地停留在其中一个面上,证实了一个存在了几十年的猜想。这个四面体由轻质碳纤维和高密度碳化钨制成,重 120 克,最长边长 50 厘米,必须精确到十分之一克和十分之一毫米以内才能正常工作。
文章介绍了数学家们如何通过计算机搜索,找到满足特定重量分布时可以制成单稳态四面体的顶点坐标。他们发现,任何单稳态四面体中,三个连续的边都需要形成钝角,以确保一个面悬在另一个面上,使其倾倒。此外,他们还计算出,为了使其中一种“坠落模式”起作用,需要构建四面体的特定部分。这项研究展示了实验和游戏在数学研究中的重要作用,并具有潜在的实际应用,例如在自扶正航天器的设计中。
该团队通过计算机搜索,考虑了单稳态四面体可能倾倒在其稳定面上的各种方式。他们发现,不同的四面体可能遵循非常简单的路径,例如面 A 倾斜到面 B,面 B 倾斜到面 C,面 C 倾斜到面 D。但不同的四面体,面 A 可能会倾斜到面 B,面 B 和面 D 都会倾斜到面 C。为了使这些“坠落模式”中的一种起作用,他们需要构建四面体的特定部分。
文章还引用了其他数学家的观点,例如北卡罗来纳州立大学的 Dávid Papp 认为,这项研究让数学家们“真正意识到我们有多少不知道的东西,以及我们现在的理解有多么透彻”。
- 原文: [A new pyramid-like shape always lands the same side up](https://www.quantamagazine.org/a-new-pyramid-like-shape-always-lands-the-same-side-up-20250625/)
- Hacker News: [https://news.ycombinator.com/item?id=44381297](https://news.ycombinator.com/item?id=44381297)
- 作者: robinhouston
- 评分: 506
- 评论数: 131
- 发布时间: 2025-06-26 04:01:07
---
## MUVERA:让多向量检索像单向量搜索一样快
本文介绍了 Google Research 提出的 MUVERA 算法,旨在解决多向量模型在信息检索中面临的效率挑战,目标是使多向量检索的速度接近单向量检索。多向量模型(如 ColBERT)虽然在信息检索任务中表现出色,但其计算成本较高。
MUVERA 通过构建查询和文档的固定维度编码 (FDE),将多向量检索转换为更简单的单向量最大内积搜索 (MIPS) 问题。这种方法允许利用高度优化的 MIPS 算法来检索初始候选集,然后使用精确的多向量相似度对这些候选集进行重新排序,从而在不牺牲准确性的前提下实现高效的多向量检索。
多向量模型为每个数据点生成多个嵌入,通常每个 token 一个嵌入。查询和文档之间的相似度通常使用 Chamfer 匹配计算,该方法测量每个查询嵌入与最接近的文档嵌入之间的最大相似度,然后将这些相似度在所有查询向量上相加。虽然多向量表示具有改进的可解释性和泛化等优点,但也带来了巨大的检索挑战,例如嵌入数量增加、复杂且计算密集型的相似度评分以及缺乏有效的亚线性搜索方法。
MUVERA 的解决方案是将多向量相似度搜索简化为单向量 MIPS,从而加快复杂多向量数据的检索速度。MUVERA 的核心思想是将一组多向量压缩成一个单一的、更易于处理的向量,即 FDE。比较这些简化的 FDE,其结果与比较原始的、更复杂的多向量集的结果非常接近。
MUVERA 的工作流程主要分为三个步骤:FDE 生成、基于 MIPS 的检索和重新排序。FDE 转换不依赖于特定数据集,使其既能适应数据分布的变化,又适用于流式应用。此外,与模型生成的单向量不同,FDE 保证在指定的误差范围内逼近真实的 Chamfer 相似度。
MUVERA 的理论基础源于概率树嵌入中使用的技术,并对其进行了调整,以适用于内积和 Chamfer 相似度。FDE 生成的核心思想是将嵌入空间划分为多个部分。如果来自查询和文档的相似向量落入同一部分,则可以有效地近似它们的相似度。
)
- 原文: [Muvera: Making multi-vector retrieval as fast as single-vector search](https://research.google/blog/muvera-making-multi-vector-retrieval-as-fast-as-single-vector-search/)
- Hacker News: [https://news.ycombinator.com/item?id=44385981](https://news.ycombinator.com/item?id=44385981)
- 作者: georgehill
- 评分: 32
- 评论数: 1
- 发布时间: 2025-06-26 18:29:34
---
## 波多黎各的太阳能微电网在停电中表现出色
这篇文章主要讲述了在波多黎各,太阳能微电网如何在全岛停电期间维持电力供应,展现了其在应对自然灾害和电力系统脆弱性方面的优势。
文章指出,由于飓风等自然灾害频发,波多黎各的电力系统一直面临挑战。传统的集中式电力系统容易受到破坏,导致大范围停电。而太阳能微电网通过分布式发电和本地能源存储,提高了电力系统的韧性。即使主电网瘫痪,微电网也能独立运行,为关键设施如医院、学校和社区中心提供电力。文章还强调了微电网的经济效益,长期来看,太阳能发电可以降低能源成本,减少对化石燃料的依赖。此外,微电网的建设也促进了当地就业,推动了可再生能源产业的发展。文章还提到,政府和私营部门正在加大对微电网的投资,以提高整个岛屿的电力可靠性。未来,波多黎各计划进一步扩大微电网的覆盖范围,构建一个更加安全、可持续的电力系统。通过这次停电事件,太阳能微电网的价值得到了充分体现,为其他易受自然灾害影响的地区提供了借鉴。
由于文章中没有评论内容,因此无法进行评论观点的总结和分析。
- 原文: [Puerto Rico's Solar Microgrids Beat Blackout](https://spectrum.ieee.org/puerto-rico-solar-microgrids)
- Hacker News: [https://news.ycombinator.com/item?id=44382834](https://news.ycombinator.com/item?id=44382834)
- 作者: ohjeez
- 评分: 228
- 评论数: 115
- 发布时间: 2025-06-26 07:41:16
---
## 构建 AI Agent 的经验教训:Cubic 的代码审查工具优化之路
本文主要探讨了 Cubic 如何改进其 AI 代码审查 Agent,以减少误报并提高开发人员的信任度和工作效率。Cubic 通过三次架构迭代和大量离线测试,成功将误报率降低了 51%,同时保持了召回率。
文章详细介绍了 Cubic 在构建 AI 代码审查 Agent 过程中遇到的问题和解决方案。最初,他们采用了一个单一的、试图完成所有任务的 Agent,但这种方法导致了大量的误报,降低了用户信任度,并且推理过程不透明。为了解决这些问题,Cubic 采用了以下策略:
1. **显式推理日志**:要求 AI 在提供反馈之前明确说明其推理过程,这有助于追踪决策过程,鼓励结构化思考,并为诊断和解决根本原因奠定基础。
2. **更少、更智能的工具**:简化了 Agent 的工具集,只保留了必要的组件,减少了干扰,提高了精度。
3. **专业化的微型 Agent**:将大型 Agent 拆分为多个专门处理特定任务的微型 Agent,例如 Planner、Security Agent、Duplication Agent 和 Editorial Agent。这种方法可以保持上下文的专注,提高效率和精度。
这些改进带来了显著的成果,包括误报率降低 51%,每个 Pull Request 的评论数量减少一半,以及团队报告的更流畅的审查流程。此外,噪音的减少还显著提高了开发人员的信心和参与度,使审查更快、更有效。文章总结了三个关键经验教训:显式推理提高清晰度,简化工具集,以及使用专业化的微型 Agent。
评论区主要围绕 AI 代码审查工具的有效性和潜在问题展开了讨论。一些评论者认为,文章跳过了某些非显而易见的动机示例,例如注释掉 CI 测试套件,这可能是一个需要审查的有效问题。还有人对误报率的降低是否真正提高了真阳性率表示怀疑,尤其是在安全领域。另有评论提到了其他 AI 代码审查工具的策略,例如使用大型的系统提示。总的来说,评论反映了对 AI 代码审查工具的实用性和局限性的不同看法,以及对如何平衡精度和召回率的持续关注。
- 原文: [Learnings from building AI agents](https://www.cubic.dev/blog/learnings-from-building-ai-agents)
- Hacker News: [https://news.ycombinator.com/item?id=44386887](https://news.ycombinator.com/item?id=44386887)
- 作者: pomarie
- 评分: 73
- 评论数: 24
- 发布时间: 2025-06-26 20:45:04
---
## PNG 迎来重大更新:支持 HDR、动画及更多
PNG 格式在停滞 20 年后终于迎来了重大更新,新规范在 HDR 支持、动画以及 Exif 数据等方面进行了增强,让这个经典图片格式重新焕发活力。这次更新并非创造一种“新格式”,而是对现有格式的完善,并保持了良好的后向兼容性,旧程序也能尽可能加载新 PNG 文件。
新 PNG 规范主要包含以下几个亮点:首先是**真正支持 HDR**,使用 4 字节即可实现,并具有前瞻性。其次是**正式认可 APNG 动画**,此前 APNG 已被 Firefox 等浏览器广泛支持。此外,新规范还**官方支持 Exif 数据**,可以存储版权信息、相机镜头参数和 GPS 位置等额外信息。最后,本次更新还对规范进行了**整理**,修复了勘误,并进行了澄清。
这次更新的推动力来自于 W3C 定时文本工作组对 PNG 中 HDR 支持的需求。包括 Adobe、Apple、BBC、Comcast / NBCUniversal、Google 和 MovieLabs 等公司都参与了此次更新。目前,Chrome、Safari、Firefox、iOS/macOS、Photoshop 和 DaVinci Resolve 等软件已经支持新的 PNG 规范。后续的 PNG 更新计划包括改进 HDR 和 SDR 的互操作性,以及研究更好的压缩算法。
评论区里,作者 ProgramMax 亲自回复,强调了本次更新的兼容性。有开发者分享了将 JSON 数据作为注释嵌入 PNG 的技巧。也有人认为 JPEG-XL 已经提供了类似的功能,PNG 的更新略显迟缓,但也有人认为 PNG 的优势在于其广泛的兼容性。还有开发者担心支持过多编码和色彩空间会阻碍推广,希望编码/解码库能提供更简洁的 API。总的来说,评论区对 PNG 的更新持积极态度,同时也存在一些关于必要性和未来发展方向的讨论。
- 原文: [A new PNG spec](https://www.programmax.net/articles/png-is-back/)
- Hacker News: [https://news.ycombinator.com/item?id=44365754](https://news.ycombinator.com/item?id=44365754)
- 作者: bluedel
- 评分: 604
- 评论数: 552
- 发布时间: 2025-06-24 21:01:17
---
## 代码行数的迷思:回顾 "负2000行代码" 的故事
这篇文章讲述了 Lisa 软件团队在 1982 年面临的挑战,以及 Bill Atkinson 如何通过优化 Quickdraw 的区域计算引擎,减少了 2000 行代码,并因此对代码行数作为衡量软件开发进度的标准提出了质疑。这个故事强调了软件开发的真正目标应该是编写尽可能小而快的程序,而不是追求代码行数。
文章中,管理者试图通过追踪工程师每周编写的代码行数来衡量开发进度。Bill Atkinson 认为这种做法很荒谬,因为它鼓励编写冗余、臃肿和有问题的代码。他通过重写 Quickdraw 的区域引擎,使用更简单、更通用的算法,使区域操作速度提高了近六倍,并且减少了大约 2000 行代码。当他填写管理表格时,他填写了“-2000”,以此表达他对这种衡量方式的抗议。最终,管理者停止要求 Bill 填写该表格。这个故事说明了代码行数不应作为衡量软件开发效率的唯一标准,更重要的是代码的质量和性能。
评论区里,大家分享了各自删除大量代码的经历,进一步印证了代码行数减少并不代表效率降低。
* **@bironran** 分享了自己通过算法优化,用 5k 行代码替换了 60k 行代码的经历,强调了算法在优化代码中的重要性。
* **@jfengel** 讲述了在大学期间删除大量重复和低质量代码的经历,揭示了代码质量的重要性。
* **@impostervt** 分享了重构和重写大型 Web UI 项目的经验,通过使用 Web Components 和现代框架,大幅减少了代码量。
* **@runfaster2000** 提到了移除 C# + WinRT 互操作支持,减少了 64k 行代码的案例,说明了在特定情况下,移除不必要的特性可以简化代码库。
这些评论都指向一个共同的观点:代码的价值不在于数量,而在于质量、效率和可维护性。一味追求代码行数可能会导致代码臃肿、难以理解和维护,而通过优化算法、重构代码和删除不必要的功能,可以显著提高代码的质量和效率。
- 原文: [-2000 Lines of code](https://www.folklore.org/Negative_2000_Lines_Of_Code.html)
- Hacker News: [https://news.ycombinator.com/item?id=44381252](https://news.ycombinator.com/item?id=44381252)
- 作者: xeonmc
- 评分: 432
- 评论数: 168
- 发布时间: 2025-06-26 03:53:13
---
## 使用服务端渲染(SSR)构建个人化 RSS 阅读器
本文介绍了一种使用服务端渲染(SSR)技术构建个人化 RSS 阅读器的方法,作者分享了自己尝试客户端方案失败后,如何利用博客的构建流程来创建并维护一个简单的、基于链接列表的 RSS 阅读器。
作者提到,传统的 RSS 阅读器功能过多,他只需要一个通知功能,以便在自己喜欢的浏览器中阅读文章。最初尝试的客户端方案由于 CORS 限制而失败,因为客户端 JavaScript 无法直接从其他域获取 RSS 源。为了解决这个问题,作者将 RSS 阅读器的构建集成到自己的博客构建过程中。
具体来说,作者维护一个 `blogroll.txt` 文件,其中包含他关注的博客链接。通过 Deno 脚本定期抓取这些链接的 RSS 源,提取最新的文章,并将它们渲染成 HTML 页面。这个页面(`blogroll.html`)托管在他的博客上,可以从任何设备访问。这种方法的优点是不需要维护已读/未读状态,并且可以利用 GitHub Actions 自动更新。代码示例展示了如何使用 `@rss` 库解析 RSS 源,以及如何将数据转换为 HTML。作者还分享了一个维护常用链接列表的类似方案。
评论区有读者表示没有理解作者想要实现的目标。总的来说,这篇文章提供了一个独特的视角,展示了如何利用服务端技术构建一个轻量级的、个人化的 RSS 阅读器,绕过了客户端的一些限制。虽然可能不适合所有人,但对于那些寻求简单、可定制的 RSS 阅读方案的开发者来说,具有一定的参考价值。
- 原文: [RSS Server Side Reader](https://matklad.github.io/2025/06/26/rssssr.html)
- Hacker News: [https://news.ycombinator.com/item?id=44386637](https://news.ycombinator.com/item?id=44386637)
- 作者: Bogdanp
- 评分: 13
- 评论数: 1
- 发布时间: 2025-06-26 20:11:52
---
## Snow:经典 Macintosh 模拟器
Snow 是一款用 Rust 编写的开源经典 Macintosh 模拟器,它旨在提供硬件级别的精确模拟,支持多种经典 Mac 机型。
该模拟器模拟基于 Motorola 680x0 的经典 Macintosh 电脑,并提供图形用户界面和强大的调试功能。与通过 ROM 补丁或拦截系统调用的模拟器不同,Snow 致力于尽可能在硬件层面上模拟 Macintosh。目前,它支持 Macintosh 128K、512K、Plus、SE、Classic 和 II 等型号。Snow 采用 Rust 编写,并以 MIT 许可证开源发布。
用户可以下载 bleeding edge 版本,这些版本会随着模拟器开发的进展自动生成,支持 Windows、macOS 和 Linux 平台。项目提供了在线演示,但功能有限。详细的设置和使用信息可以在在线文档中找到。开发者鼓励用户通过 GitHub issues 提交 bug 报告,或加入 Discord 频道进行交流。
评论区里,有人提到了 BasiliskII 模拟器,虽然它有一些强大的功能,例如支持超高分辨率和与主机文件系统的无缝集成,但不如 Snow 准确。另有评论指出,Snow 的重要性在于它是一款便携、用户友好且硬件级别的经典 Mac 模拟器,这在过去 Mac 模拟领域是比较少见的。
还有用户询问 ROM 的获取方式,以及 ADB to USB 适配器是否可以映射到模拟器中。也有人希望看到 Flatpak、Snap 或 Scoop 版本的 Snow。此外,还有用户表达了对苹果公司设计风格的看法,希望恢复白色菜单栏背景和彩色 Logo。有人补充说明了 Snow 的新闻价值,强调其硬件级别的精确模拟和对多种经典 Mac 机型的支持。最后,有评论指出了项目的实际链接和 GitHub 仓库地址。
- 原文: [Snow - Classic Macintosh emulator](https://snowemu.com/)
- Hacker News: [https://news.ycombinator.com/item?id=44385562](https://news.ycombinator.com/item?id=44385562)
- 作者: ColinWright
- 评分: 96
- 评论数: 34
- 发布时间: 2025-06-26 17:08:00
---
## 加速音频转录:OpenAI 按分钟收费,缩短音频时长是关键
本文介绍了一种通过加速音频来降低 OpenAI 音频转录成本和时间的技巧。核心思路是利用 ffmpeg 等工具,在不明显降低转录质量的前提下,将音频速度提高 2-3 倍,从而减少音频时长和 token 数量,最终节省费用。
作者最初是为了快速总结 Andrej Karpathy 的一个 40 分钟的演讲,尝试使用 OpenAI 的 API 进行转录。但由于 OpenAI 对音频时长有限制,作者便尝试加速音频。结果发现,加速后的音频不仅能够成功转录,而且转录质量几乎没有下降。作者进一步研究发现,OpenAI 的转录服务是按照音频 token 收费的,而 token 数量与音频时长成正比。因此,加速音频可以直接减少 token 数量,从而降低成本。
文章还提到了人脑和 AI 在处理信息时的一些相似之处,例如,人脑可以自动纠正拼写错误,AI 模型也能容忍音频中的一些噪声和失真。这使得加速音频成为一种可行的优化手段。作者通过实验验证了该方法的有效性,并提供了一个结合 yt-dlp、ffmpeg 和 llm 的脚本,方便读者快速实现音频加速和转录。这个脚本可以从 YouTube 视频中提取音频,加速音频,然后将其发送到 OpenAI 进行转录,最后使用 LLM 对转录文本进行总结。
总而言之,这篇文章提供了一个简单而有效的技巧,可以帮助开发者和科技爱好者在使用 OpenAI 进行音频转录时节省时间和金钱。通过加速音频,我们可以在不牺牲太多质量的前提下,显著降低转录成本,提高工作效率。
- 原文: [OpenAI charges by the minute, so speed up your audio](https://george.mand.is/2025/06/openai-charges-by-the-minute-so-make-the-minutes-shorter/)
- Hacker News: [https://news.ycombinator.com/item?id=44376989](https://news.ycombinator.com/item?id=44376989)
- 作者: georgemandis
- 评分: 637
- 评论数: 184
- 发布时间: 2025-06-25 21:17:25
---
## Apptainer:为 Linux 提供可移植、可复现的应用容器
Apptainer(前身是 Singularity)旨在简化容器的创建和执行,确保软件组件的封装性,从而实现可移植性和可复现性。它通过单文件 SIF 容器格式,实现了从工作站到 HPC 再到边缘的可复现构建、共享和归档工作负载。
Apptainer 允许非特权用户使用容器,并禁止容器内的权限提升,确保用户在容器内外身份一致。它与 Docker 具有最大的兼容性,允许用户从 Docker Hub 拉取、运行和构建大多数容器,而无需进行更改。此外,Apptainer 还提供容器加密功能,并与 Vault 等密钥管理平台集成,以保护应用程序、模型和数据。
评论区对 Apptainer 的讨论呈现出多样的观点。
一些用户在使用 Apptainer 时遇到了实际问题,例如容器之间无法相互调用(例如 Make 和 GCC 位于不同的容器中),输出工件依赖于容器内部的资源,以及 PATH 环境变量配置混乱等问题。这些问题导致他们最终放弃使用 Apptainer,转而使用传统的 TCL 或 Lua 模块。
另一些用户则认为 Apptainer 在某些场景下优于 Docker 和 Podman 等其他容器方案,例如需要在单个容器中运行多个活动、HPC 环境、单文件分发模型、加密签名 SIF 文件以及强大的 GPU 支持等。
还有用户指出 Apptainer 与 Singularity 的关系,以及它们在共享集群环境中的应用情况,并分享了在使用 Singularity 时遇到的时区 Bug,以及 Apptainer 如何修复该 Bug 的经验。
此外,也有评论质疑 Apptainer 的“可加密”特性,认为这可能是在向不了解容器工作原理的人推销产品。还有人认为 Apptainer 的命名不够好。
最后,一些开发者分享了他们自己开发的、使用 Podman 来隔离不同开发项目的工具,并邀请大家测试其安全性。也有人提问 Apptainer 与 Flatpak 的区别,以及 Apptainer 的目标是桌面还是服务器。这些评论反映了用户对 Apptainer 的不同看法和使用场景。
- 原文: [Apptainer: Application Containers for Linux](https://apptainer.org/)
- Hacker News: [https://news.ycombinator.com/item?id=44385742](https://news.ycombinator.com/item?id=44385742)
- 作者: cl3misch
- 评分: 82
- 评论数: 49
- 发布时间: 2025-06-26 17:45:21
---
## 探索算法音频景观:Ambient Garden
Ambient Garden 是一个算法生成的音频景观,它使用户可以通过互动来探索和体验独特的音乐氛围。这个项目利用算法生成音频和视觉元素,创造出一个沉浸式的环境,用户可以通过拖动鼠标来环顾四周,点击屏幕来移动位置,还可以随时切换自动驾驶模式,轻松享受这个美妙的数字花园。
这个项目的核心在于其开放源代码,包括生成音频的代码,这为开发者提供了深入了解和定制的可能性。特别值得一提的是,所有生成的音乐都基于纯律(just intonation),这不仅是为了编程的便利,也引导作者深入探索了和谐的奥秘。作者目前正在开发下一个版本,计划加入节奏元素,将音乐体验提升到新的层次。虽然环境音乐的特性允许在同步方面有一定的自由度,但作者希望通过加入节奏,进一步探索空间中和谐的布局。
评论区里,大家对 Ambient Garden 赞不绝口,很多人觉得它非常棒,有人建议加入空间音频以增强沉浸感。作者也积极回应,分享了项目的开源地址和纯律音乐的细节。还有人将其与 teamLab Planets 的体验相比较,认为它带来了相似的沉浸感。另外,有人提到了 Generative.fm,一个由 Alex Bainter 创建的类似项目,甚至建议同时播放两个项目,创造出更加丰富的听觉体验。一些用户还分享了与 Ambient Garden 相似的艺术作品和游戏,例如 Mike Oldfield 的 Tres Lunas 和 Maestro,以及游戏 Proteus,这些都为喜欢此类体验的听众提供了更多选择。甚至有用户分享了如何通过修改代码来调整飞行速度,让探索更加自由。总的来说,评论区充满了积极的反馈和有价值的建议,展现了大家对这种算法生成艺术的浓厚兴趣。
- 原文: [Ambient Garden](https://ambient.garden)
- Hacker News: [https://news.ycombinator.com/item?id=44358148](https://news.ycombinator.com/item?id=44358148)
- 作者: fipar
- 评分: 162
- 评论数: 28
- 发布时间: 2025-06-24 01:38:08
---
## 使用 LangChain 和 Llamafile 实现结构化输出
本文介绍了如何使用 LangChain 框架和 Llamafile 在本地环境中实现结构化输出,例如 JSON 格式。
文章指出,虽然像 OpenAI 这样流行的模型已经内置了 `with_structured_output` 方法,但 Llamafile 目前还不支持。Llamafile 是一个可执行的 LLM,它结合了 `llama.cpp` 和 Cosmopolitan Libc,可以在多种架构上运行。文章使用 `Llama-3.2-1B-Instruct-Q8_0.llamafile` 模型,并提供了在本地启动 Llamafile 服务器的步骤,包括下载模型、赋予执行权限以及运行命令。
为了让 Llamafile 能够生成结构化输出,文章使用了 LangChain 的 `JsonOutputParser` 和 `PromptTemplate`。首先,定义了一个 Pydantic `BaseModel` 的子类 `Answer`,用于表示期望的 JSON 输出结构,并添加了一些额外的属性。然后,将这个新的 answer 类型提供给 `JsonOutputParser`。接着,定义一个 `PromptTemplate`,将 parser 的格式指令注入其中。最后,将 prompt、llm 和 parser 这三个 Runnable Interface 实现链接起来,形成一个链。文章还展示了如何调用这个链,打印输出结果,以及在出错时如何处理。
文章强调,输出结果会因使用的 LLM 而异,但应该符合预期的 JSON 格式。作者提供了一个 GitHub 仓库链接,其中包含了完整的源代码。总而言之,这篇文章提供了一个在本地使用 Llamafile 生成结构化输出的实用指南,并利用 LangChain 简化了流程。
- 原文: [Structured Output with LangChain and Llamafile](https://blog.brakmic.com/structured-output-with-langchain-and-llamafile/)
- Hacker News: [https://news.ycombinator.com/item?id=44348415](https://news.ycombinator.com/item?id=44348415)
- 作者: brakmic
- 评分: 15
- 评论数: 6
- 发布时间: 2025-06-23 01:01:10
---
## Better Auth 获 500 万美元融资:一款由埃塞俄比亚自学成才开发者打造的身份验证工具
Better Auth,一个由埃塞俄比亚自学成才的开发者创建的身份验证工具,成功获得了来自 Peak XV 和 YC 的 500 万美元融资。
这款名为 Better Auth 的工具,由来自埃塞俄比亚的自学成才程序员 Bereket Engida 打造,旨在简化开发者管理用户身份验证的方式。它提供了一个开源框架,让身份验证过程更加便捷。
Bereket Engida 是一位来自非洲的单人创始人,这在开发者基础设施工具领域并不常见。他的创业公司 Better Auth 提供的开源框架,旨在简化开发者管理用户身份验证的方式,因此受到了知名投资者的关注。
Better Auth 最近获得了来自 Peak XV 等机构的约 500 万美元种子轮融资。该工具的目标是简化开发者处理用户身份验证的流程。
- 原文: [Better Auth, by a self-taught Ethiopian dev, raises $5M from Peak XV, YC](https://techcrunch.com/2025/06/25/this-self-taught-ethiopian-dev-built-an-authentication-tool-and-got-into-yc/)
- Hacker News: [https://news.ycombinator.com/item?id=44380185](https://news.ycombinator.com/item?id=44380185)
- 作者: bundie
- 评分: 186
- 评论数: 141
- 发布时间: 2025-06-26 02:07:02
---
## 使用 280 个字符建模世界:代码高尔夫的艺术
本文介绍了图形程序员 Xor 如何使用不超过 280 个字符的 GLSL 代码创建令人惊叹的视觉效果,并分享了他的创作过程和动机。文章深入探讨了“代码高尔夫”的概念,即在保持功能的同时尽可能缩小代码,并解释了着色器(特别是片段着色器)的基础知识。
Xor 解释说,他编写这些微型着色器的动机源于好奇心、学习、挑战和社区参与。他喜欢 Twigl 这样的工具,因为它降低了期望,让他可以快速开始涂鸦。在约束条件下工作迫使他以不同的方式思考问题,并通过优化代码大小,他经常找到简化或近似的方法。他甚至将一个体素 DDA 光线追踪器与边缘检测功能塞进了 190 个字符中。
文章还介绍了着色器的基本概念,着重介绍了片段着色器(也称为像素着色器),它在每个像素上运行,并根据输入坐标输出颜色和不透明度。Xor 解释了如何使用片段坐标、输出颜色“o”以及诸如分辨率“r”、时间“t”等 uniform 输入来创建简单的颜色渐变。
Xor 透露,他通常直接以紧凑的形式编写着色器,而不是先编写扩展形式再进行缩减。他认为代码高尔夫需要在代码大小、渲染性能、艺术吸引力、设计和数学函数之间找到适当的平衡。他还分享了创作“Milky”星系着色器的过程,首先确定了创建星系的想法,然后从居中和缩放开始,最后添加粒子、三角函数和正弦波来实现视觉效果。
总而言之,这篇文章深入探讨了代码高尔夫的迷人世界,展示了在极小的空间内创造惊人视觉效果的可能性。
由于没有评论内容,这里就省略了评论分析部分。
- 原文: [Modeling the World in 280 Characters](https://tympanus.net/codrops/2025/06/23/modeling-the-world-in-280-characters/)
- Hacker News: [https://news.ycombinator.com/item?id=44354032](https://news.ycombinator.com/item?id=44354032)
- 作者: OuterVale
- 评分: 54
- 评论数: 7
- 发布时间: 2025-06-23 18:02:10
---
## AccessOwl 招聘 Elixir 高级软件工程师
AccessOwl 正在寻找一位 Elixir 高级软件工程师,负责开发 SaaS 访问管理平台,地点不限,但需要在柏林时区 ±3 小时内。该公司旨在简化 SaaS 访问、支出和合规性管理,取代 Okta 等传统方案。
AccessOwl 是一家 YC 孵化的初创公司,致力于通过 RPA 和 AI 工作流解决 SaaS 领域的效率问题。作为高级软件工程师,你将负责迭代新产品功能,维护代码库,构建核心集成,并参与云基础设施的建设。你需要具备 5 年以上的 Web 软件开发经验,熟悉 Elixir 语言,并能积极使用 AI 提高开发效率。该公司推崇现代工程原则,如 TDD、结对编程和持续交付。AccessOwl 提供有竞争力的薪资、股票期权、远程工作环境和年度团队旅行。他们寻找的是能够积极参与团队协作、解决客户问题并持续学习的工程师。
由于没有评论内容,此处略过评论分析。
- 原文: [AccessOwl (YC S22) is hiring an Elixir Engineer to connect 100s of SaaS](https://www.ycombinator.com/companies/accessowl/jobs/1shGwy2-senior-software-engineer-elixir-focus)
- Hacker News: [https://news.ycombinator.com/item?id=44384913](https://news.ycombinator.com/item?id=44384913)
- 作者: mathiasn
- 评分: 1
- 评论数: 0
- 发布时间: 2025-06-26 15:00:43
---
## Linux 设备驱动开发入门:以 Nanoleaf Pegboard Desk Dock 为例
本文介绍了如何从零开始编写 Linux 设备驱动,以 Nanoleaf Pegboard Desk Dock 为例,一步步探索 USB 设备的驱动开发过程。文章详细讲解了如何通过 `lsusb` 命令查看设备信息,理解 USB 协议中的配置、接口和端点等概念,以及如何利用现有的 HID 通用驱动或 libusb 编写用户空间驱动。
文章首先介绍了作者购买 Nanoleaf Pegboard Desk Dock 的背景,该设备仅支持 Windows 和 macOS,因此需要开发 Linux 驱动。令人惊喜的是,Nanoleaf 官方提供了设备通信协议的完整描述,这为驱动开发提供了极大的帮助。作者从零开始,使用 `lsusb` 命令查看设备信息,发现内核已经识别了该设备,但只是作为一个通用的 HID 设备。
为了更好地理解 USB 设备的工作原理,作者简要介绍了 USB 协议中的配置、接口和端点等概念。一个 USB 设备可以有多个配置,每个配置可以有多个接口,每个接口可以有多个端点。对于 Nanoleaf Pegboard Desk Dock 来说,它只有一个接口,并且被识别为 HID 设备。由于没有针对 RGB LED 设备的 HID 规范,该设备被识别为一个通用的 HID 设备,内核无法直接控制它。
接下来,作者提出了两种解决方案:一是编写内核驱动,二是编写用户空间驱动。编写内核驱动需要遵循内核标准,并将每个 LED 灯暴露为 `/sys/class/leds` 下的三个设备(每个颜色一个)。然而,作者认为这种方式不太适合 RGB LED 灯,并且将小众产品的驱动合并到内核中也存在挑战。因此,作者倾向于使用 libusb 编写用户空间驱动,从而可以自定义驱动的实现方式。
总而言之,这篇文章深入浅出地介绍了 Linux 设备驱动开发的基础知识,并以 Nanoleaf Pegboard Desk Dock 为例,展示了如何从零开始编写 USB 设备的驱动。对于想要入门 Linux 设备驱动开发的开发者来说,这是一篇非常有价值的参考资料。
- 原文: [Writing a basic Linux device driver when you know nothing about Linux drivers](https://crescentro.se/posts/writing-drivers/)
- Hacker News: [https://news.ycombinator.com/item?id=44345681](https://news.ycombinator.com/item?id=44345681)
- 作者: sbt567
- 评分: 334
- 评论数: 46
- 发布时间: 2025-06-22 18:29:42
---
## ebtree、cebtree 和 rbtree 的真实性能对比
本文对比了 ebtree、cebtree 和 rbtree 三种树形数据结构在实际应用中的性能表现,并分析了不同场景下它们的优劣。文章使用 ops-time 工具,通过模拟定时器、缓存、会话 cookie、IPv4 地址和 User-Agent 等真实用例,测试了这三种数据结构的插入、查找和删除操作的耗时。
文章首先介绍了测试的原理,包括生成具有特定分布的键,然后将这些键插入树中,测量后半部分的插入时间,接着查找所有键,最后删除所有键,测量前半部分的删除时间。测试用例包括:u32/u64 定时器类型的键的插入/删除(模拟调度器)、64 位随机数的插入/查找/删除(模拟缓存)、短字符串(模拟会话 cookie 和 UUID 查找)、真实 IPv4 地址以及真实 User-Agent。这些测试用例覆盖了不同的数据分布和操作模式,旨在更全面地评估三种树的性能。
文章还详细介绍了参与测试的三种树的实现:ebtree 使用稳定分支 6.0,节点占用 40 字节,插入 O(logN),删除 O(1);cebtree 使用 master 分支,节点占用 16 字节,插入 O(logN),删除 O(logN);rbtree 使用 pvachon 的实现,节点占用 24 字节,插入 O(logN),删除均摊 O(logN)。测试在 Arm-v9 设备和 Xeon W3-2435 设备上进行,结果显示模式基本相同,只是由于缓存大小和频率不同,拐点有所差异。
文章展示了插入时间、查找时间、删除时间和替换时间(删除 + 插入)的图表。单头模式使用实线,256 头模式使用虚线,65536 头模式使用点线。通过使用多头模式,可以构建更健壮的哈希表,降低查找成本。
总的来说,这篇文章深入探讨了不同树形数据结构在真实场景下的性能表现,为开发者在选择合适的数据结构时提供了有价值的参考。
- 原文: [Real-world performance comparison of ebtree/cebtree/rbtree](http://wtarreau.blogspot.com/2025/06/real-world-performance-comparison-of.html)
- Hacker News: [https://news.ycombinator.com/item?id=44361633](https://news.ycombinator.com/item?id=44361633)
- 作者: misonic
- 评分: 16
- 评论数: 1
- 发布时间: 2025-06-24 08:27:51
---
## 首个非阿片类止痛药 Journavx (suzetrigine) 的诞生
本文讨论了 FDA 批准的首个非阿片类止痛药 Journavx (suzetrigine),它为术后疼痛治疗带来了新的希望,并详细介绍了其作用机制和研发历程。
阿片类药物虽然止痛效果显著,但其成瘾性和副作用一直困扰着医学界。Journavx 的出现,为解决这一问题带来了曙光。它通过选择性阻断外周伤害感受器上的 NaV1.8 钠离子通道,从源头上阻止疼痛信号的传递,而非像阿片类药物那样作用于中枢神经系统,从而避免了欣快感和成瘾风险。
文章深入剖析了阿片类药物的作用机制,它们通过激活大脑中的 μ 阿片受体来抑制疼痛信号,同时刺激多巴胺释放,产生欣快感,长期使用会导致耐受性和成瘾。相比之下,Journavx 不与大脑发生显著交互,因此不会引起这些副作用。
研发非阿片类止痛药的道路漫长而艰辛,因为疼痛涉及复杂的生理通路,与血压、免疫反应和呼吸等重要生理功能密切相关,很难找到一个能够有效阻断疼痛而不造成其他损害的靶点。文章还提到了 TRPV1 抑制剂的例子,虽然它能有效缓解疼痛,但会干扰体温调节,导致患者体温过高。
Journavx 的成功在于其靶向的 NaV1.8 通道主要存在于外周伤害感受器上,而不在中枢神经系统中,从而避免了对大脑的影响。这一突破性的进展,为未来的止痛药研发开辟了新的方向,有望彻底改变疼痛管理领域。
总而言之,这篇文章深入浅出地介绍了 Journavx 的作用机制、优势和研发背景,强调了其在解决阿片类药物成瘾问题上的重要意义,并展望了非阿片类止痛药的未来发展前景。
- 原文: [The first non-opoid painkiller](https://www.worksinprogress.news/p/the-first-non-opioid-painkiller)
- Hacker News: [https://news.ycombinator.com/item?id=44385612](https://news.ycombinator.com/item?id=44385612)
- 作者: ortegaygasset
- 评分: 182
- 评论数: 119
- 发布时间: 2025-06-26 17:16:53
---
## 费曼的建议:解决你能解决的问题
理查德·费曼在给一位前学生的信中,分享了他对科研选题的深刻见解,他鼓励学生关注那些能够真正解决的问题,即使这些问题看起来很平凡。费曼认为,重要的是能够做出贡献并获得成功的喜悦,而不是一味追求宏大的、看似高深的问题。
费曼在信中提到,他自己也曾从事过许多看似不起眼的研究,例如研究抛光表面的摩擦系数、晶体的弹性性质、电镀金属与塑料的粘合等。虽然有些研究最终失败了,但他仍然乐在其中,因为他能够从中获得成就感。他强调,不要因为觉得问题太小而不去尝试,只要能够真正解决问题,即使是帮助同事解答一个简单的疑问,也是有价值的。费曼还反思了自己曾经的错误,他指出,不应该强加给学生研究方向,而应该让他们自己去发现感兴趣并有能力解决的问题。
费曼鼓励学生不要妄自菲薄,要认清自己在世界上的位置,并做出公正的评价。他认为,每个人在家庭和同事眼中都是有价值的,不要让自己迷失在虚无的理想中。最重要的是找到自己能够有所作为的领域,并享受解决问题的乐趣。
评论区也引发了热烈讨论,许多人对费曼的观点表示赞同,认为在快节奏的社会中,人们常常忽略了小问题的价值。有人分享了自己的职业经历,表示虽然从事着高薪的软件工程工作,但却缺乏激情。他们常常思考是否应该追求更有意义的事业,但最终还是选择了安于现状。另一些人则从心理学的角度分析了费曼的建议,认为解决问题需要适当的自信,但过度的自我膨胀也会导致负面情绪。总的来说,费曼的信引发了人们对自身价值和职业选择的深刻思考。
- 原文: [What Problems to Solve (1966)](http://genius.cat-v.org/richard-feynman/writtings/letters/problems)
- Hacker News: [https://news.ycombinator.com/item?id=44379606](https://news.ycombinator.com/item?id=44379606)
- 作者: jxmorris12
- 评分: 412
- 评论数: 52
- 发布时间: 2025-06-26 01:08:44
---