zhulink logo
自动夜间模式 日间模式 夜间模式
侧栏
0

【HN中文日报】今日科技头条:AI、安全、开源,还有怀旧游戏!速览一周热门技术趋势!

意外富翁的头像
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20251109 这期日报信息量爆炸!从AI系统评估的弱点分析,到蒙大拿州确立“计算权”,再到用树莓派大战鸽子,内容横跨软硬件、安全与伦理。想了解如何用代码逆向工程让AI画鹈鹕?想重温经典Unix游戏Conquer?想知道如何为孩子配置一台安全的Linux电脑?还有自托管错误追踪工具和新型语音识别框架等你探索!快来一起充电,get最新技术动态! ![Hacker News 中文精选](/static/mascot_article.webp) --- ## 使用 FastAPI Voyager 可视化 FastAPI 接口 本文介绍了一款名为 FastAPI Voyager 的工具,它可以帮助开发者以图形化的方式查看和理解 FastAPI 项目中的所有接口。通过 FastAPI Voyager,开发者可以更直观地了解接口的结构、参数和依赖关系,从而提高开发效率。 FastAPI Voyager 提供了一个交互式的界面,可以清晰地展示 FastAPI 应用的所有路由和数据模型。它支持缩放、搜索和过滤等功能,方便开发者快速找到所需的接口信息。通过双击节点,可以查看字段表和源代码,甚至可以直接跳转到 GitHub 查看源码。此外,它还提供了“Focus”模式,可以隐藏其他节点,突出显示当前关注的接口。该工具通过图形化的方式呈现了 FastAPI 应用的结构,包括不同的模块和接口之间的关系。它支持多种视图模式,例如完整图、简略模式和隐藏原始类型等,以满足不同用户的需求。开发者可以通过选择左侧面板上的标签或路由来查看子图,从而更深入地了解特定模块或接口的细节。 评论区里,有用户表示初次使用时,面对复杂的图形不知所措,希望能够提供更简洁的介绍。有热心用户分享了该项目的 GitHub 仓库地址,并提供了详细的使用说明,包括如何缩放、选择标签/路由、查看字段表和源代码、以及使用“Focus”模式等。另有用户提到可以将该工具应用于软件逆向工程,结合 GIS 软件进行 API 的可视化分析。总的来说,评论区提供了一些实用的使用技巧和潜在的应用场景,帮助用户更好地理解和使用 FastAPI Voyager。 - 原文: [Visualize FastAPI endpoints with FastAPI-Voyager](https://www.newsyeah.fun/voyager/) - Hacker News: [https://news.ycombinator.com/item?id=45865049](https://news.ycombinator.com/item?id=45865049) - 作者: tank-34 - 评分: 44 - 评论数: 8 - 发布时间: 2025-11-09 20:24:50 --- ## 软件考古:重现经典 Unix 游戏 Conquer 的 20 年旅程 本文讲述了作者花费 20 年时间,通过软件考古的方式,寻找经典 Unix 游戏 Conquer 的创作者,并最终成功地将游戏代码以 GPL 协议重新发布的故事。 这不仅仅是一个游戏复活的故事,更是一段关于开源精神、数字考古和人际关系的探索之旅。 作者在 90 年代的大学 Unix 实验室里接触到了 Conquer 这款游戏,这是一款复杂的多人战略游戏,玩家控制中土世界的国家,管理资源、军队、魔法系统和外交关系。 2006 年,作者意识到这款游戏面临着永远消失的风险,因为它的源代码分散在古老的 USENET 档案中,而且许可协议不明。 作者开始了漫长的寻找作者之旅,他需要获得原始作者的许可,才能将代码以 GPL 协议重新发布,以便在现代 Linux 发行版中得到适当的保存和打包。 通过在旧大学目录中搜索,在论坛上追踪数字线索,作者最终联系到了 Ed Barlow,他表示自己已经将所有的事情委托给了 Adam Bryant。 然而,Adam Bryant 似乎已经消失在了数字世界中。 作者在 Debian Legal 邮件列表上记录了所有的事情,创建了一个 GNU Savannah 任务,甚至写了博客文章,希望 Adam 能够看到。 经过漫长的等待,2011 年,Adam Bryant 终于通过在线文章联系到了作者,并授权以 GPL 协议发布代码。 故事并没有结束,2025 年,Stephen Smoogen 联系作者,表示对复活 Conquer Version 5 感兴趣,这是 Adam Bryant 完全重写的版本,具有自动数据转换、增强的稳定性和复杂的管理工具等高级功能。 最终,Adam 也同意将 Version 5 以 GPL 协议发布。 作者还发现了另一位贡献者 MaF,他创建了 PostScript 实用程序,用于生成可打印的游戏地图。 作者在 2025 年找到了 MaF,他也同意以 GPL 协议重新发布他的代码。 然而,并非所有的搜索都有结果,作者对 Richard Caley 的调查最终以沉默告终,他发现 Richard Caley 早在 2005 年就去世了。 这篇文章不仅仅是关于复活一款游戏,更是一段关于开源精神、数字考古和人际关系的探索之旅。 它展示了即使在互联网时代,软件的保存和传承也需要付出巨大的努力和耐心。 (由于原文中没有评论内容,所以跳过评论相关的总结和分析。) - 原文: [Reviving Classic Unix Games: A 20-Year Journey Through Software Archaeology](https://vejeta.com/reviving-classic-unix-games-a-20-year-journey-through-software-archaeology/) - Hacker News: [https://news.ycombinator.com/item?id=45865159](https://news.ycombinator.com/item?id=45865159) - 作者: mwheeler - 评分: 34 - 评论数: 10 - 发布时间: 2025-11-09 20:44:35 --- ## GitHub 上的 Email Verification Protocol:验证自动填充 这个 Email Verification Protocol 旨在无需发送验证邮件,也无需用户离开当前网页,就能让 Web 应用获取经过验证的邮箱地址。它通过邮件域名将邮箱验证委托给一个拥有用户认证 Cookie 的签发者来实现。 文章详细介绍了该协议的工作原理。当用户在 HTML 表单字段中输入邮箱时,浏览器会调用签发者,传递认证 Cookie。签发者返回一个 Token,浏览器验证该 Token 后更新并将其提供给 Web 应用。之后,Web 应用验证 Token,从而获得用户的已验证邮箱地址。这个过程的关键在于使用 SD-JWT+KB Token,它允许在不暴露用户正在使用的具体应用的前提下,验证邮箱地址的签发者。协议中还定义了 Issuer 的概念,它是一个通过 DNS 记录授权进行邮箱验证的服务,并提供必要的元数据和公钥。 整个流程包括:用户访问网站,在邮箱输入框聚焦,浏览器显示邮箱地址列表供用户选择。选择邮箱后,浏览器向 DNS 查询验证信息,并从 Issuer 获取 Token。浏览器验证 Token 后,将其呈现给 Web 应用。最后,Web 应用也进行 Token 验证,完成邮箱验证过程。文章还用时序图清晰地展示了各个步骤的交互过程,包括 Email Request、Email Selection、Token Request、Token Issuance、Token Presentation 和 Token Verification。 文章还讨论了用户体验,设想浏览器可以在自动填充 UI 中标记可验证的邮箱,并在应用获得验证后的邮箱时,向用户展示已验证的提示。 文章中有一个问题:“浏览器是否会在自动完成 UI 中装饰可以验证的电子邮件?当应用程序获得经过验证的电子邮件时,向用户展示什么样的 UX,以便用户知道它已经被验证?” - 原文: [Email verification protocol](https://github.com/WICG/email-verification-protocol) - Hacker News: [https://news.ycombinator.com/item?id=45782192](https://news.ycombinator.com/item?id=45782192) - 作者: sgoto - 评分: 36 - 评论数: 15 - 发布时间: 2025-11-01 23:04:56 --- ## 探讨互联网的生命力:对“活着互联网理论”的反思 “活着互联网理论”旨在反驳“死亡互联网理论”,后者认为互联网终将被机器人主导。该理论通过重现互联网档案馆中的海量数字内容,试图证明互联网始终充满着真实人类的表达和互动。 这个项目通过展示来自互联网档案馆的数百万图像、视频和音频,让访问者沉浸在由真实用户创造的网络内容中。它旨在探讨在算法主导的现代网络中,什么使我们区别于机器,以及什么定义了我们的人性。网站以一种循环播放的形式呈现这些内容,每次访问都会展示新的内容,并且针对桌面和移动设备提供不同的体验。这种形式本身也构成了一种对现代网络悖论的反思。 该理论的核心观点是,即使在争论之中,互联网也始终存在着真实的人类在寻找彼此、互相帮助和分享快乐。通过复活互联网档案馆中的数字内容,该项目试图证明互联网的生命力。项目通过算法设计,以一种独特的 whirlwind 形式展现这些内容,引发人们对现代网络本质的思考。访问者可以通过网站顶部的滑块选择不同的互联网时代,从而体验不同时期的网络风格。 评论区对“活着互联网理论”提出了多样的观点。有人认为,该项目实际上更像是对“不死”互联网的呈现,因为它主要依赖于互联网档案馆中的内容,而非当下的互联网活动。另一些人则对网站的呈现方式提出了批评,认为不断变化的风格令人感到厌烦。也有人指出,网站上出现了一些不适宜的内容,需要注意。 此外,有评论者认为,该理论的成立与否取决于人们能否成功地在互联网上找到彼此,以及如何确保找到的是真实的人。还有人认为,通过精心管理自己的关注列表,可以有效地避免受到算法和机器人的影响。一些评论者赞赏网站的设计,特别是通过滑块展示不同时期网络风格的方式。总的来说,评论区对“活着互联网理论”及其呈现方式提出了各种见解和批评,反映了人们对互联网本质和未来走向的不同思考。 - 原文: [Alive internet theory](https://alivetheory.net/) - Hacker News: [https://news.ycombinator.com/item?id=45865098](https://news.ycombinator.com/item?id=45865098) - 作者: manbitesdog - 评分: 81 - 评论数: 34 - 发布时间: 2025-11-09 20:33:38 --- ## 当律师的 "Mark Zuckerberg":同名不同命的爆笑烦恼 这位名叫 Mark Zuckerberg 的印第安纳州破产律师,并非 Facebook 创始人。他建立 iammarkzuckerberg.com 网站,幽默地讲述了与扎克伯格同名带来的各种啼笑皆非的遭遇。 文章列举了 "律师版扎克伯格" 因同名而遇到的种种趣事和困扰:包括 Facebook 账号被多次禁用、被误认为 Facebook 创始人而被起诉、收到大量技术支持请求和钱款索要、以及收到死亡威胁等等。他甚至被迫提供多种身份证明才能开设 Facebook 账号,远超正常用户。尽管如此,这位律师依然保持乐观,并调侃自己将 "统治 Mark Zuckerberg 破产" 的搜索结果。他还在网站上分享了相关的文件证据,例如法院文件截图、威胁邮件等等,增强了文章的可信度与趣味性。 评论区也引发了热烈讨论,大家分享了各自因同名或相似名字而遇到的趣事。有人提到朋友建立了同名者 Facebook 群组,互相帮助转发邮件。有人分享了 Dennis Ritchie(C 语言发明者之一)的 "My other lives" 页面,列出其他同名者的信息。也有人借此反思名人隐私保护问题,以及普通用户在使用社交媒体时遇到的支持难题。更有人建议用 UUID 代替名字,以避免此类混淆。总的来说,评论区从不同角度探讨了同名现象带来的影响,既有轻松幽默的分享,也有对社会问题的思考。 - 原文: [I Am Mark Zuckerberg](https://iammarkzuckerberg.com/) - Hacker News: [https://news.ycombinator.com/item?id=45863360](https://news.ycombinator.com/item?id=45863360) - 作者: jb1991 - 评分: 694 - 评论数: 241 - 发布时间: 2025-11-09 14:13:05 --- ## Ironclad:一个形式化验证的实时Unix-like内核 Ironclad 是一个使用 SPARK 和 Ada 编写的,经过形式化验证的,支持实时操作的类 UNIX 内核,目标是通用和嵌入式应用。它完全开源,提供 POSIX 兼容接口、抢占式多任务处理、强制访问控制 (MAC) 以及硬实时调度支持。 Ironclad 的主要特点包括:完全开源,基于 GPLv3 协议;利用 SPARK 进行形式化验证,以确保代码的正确性和安全性,尤其是在密码学、MAC 和用户界面等方面;具有良好的可移植性,可以轻松移植到多个平台和开发板,并且依赖 GNU 工具链,方便交叉编译;兼容 POSIX 标准,简化了软件移植和开发,并提供了可供下载和使用的发行版,例如 Gloire。Ironclad 项目依赖捐赠和资助来维持运营,确保其可以持续免费使用、研究和修改。 评论区对 Ironclad 的形式化验证程度和实际应用提出了质疑,有人认为其验证水平尚处于初级阶段,可能存在运行时错误,难以满足硬实时应用的需求。同时,也有人指出存在同名公司可能引发商标问题,并强调了固件层安全的重要性。还有评论提到了其他形式化验证的内核,如 seL4 和 Tock,以及其他成熟的实时内核,如 QNX 和 VxWorks。一些评论者对 Ironclad 的 MAC 功能表示赞赏,但也有人指出 SPARK 的定价模式可能影响其“自由”程度。总的来说,评论区对 Ironclad 的前景持谨慎乐观态度,认为其在形式化验证内核领域具有潜力,但仍需进一步发展和完善。 - 原文: [Ironclad – formally verified, real-time capable, Unix-like OS kernel](https://ironclad-os.org/) - Hacker News: [https://news.ycombinator.com/item?id=45860843](https://news.ycombinator.com/item?id=45860843) - 作者: vitalnodo - 评分: 307 - 评论数: 87 - 发布时间: 2025-11-09 07:03:10 --- ## 为孩子配置第一台 Linux 电脑?开发者们这样说 这篇文章探讨了如何为孩子设置第一台 Linux 电脑,以及选择哪个发行版、安装哪些软件,并分享了家长们让孩子接触 Linux 的经验和建议。核心在于如何平衡自由、教育和安全性,让孩子在安全可控的环境下探索计算机世界。 文章强调,最重要的是了解孩子的兴趣,并根据他们的需求选择合适的工具。例如,如果孩子需要与使用 PowerPoint 的同学协作,那么 LibreOffice 可能会带来不便,Mac Mini 或许是更好的选择。同时,文章也建议让孩子参与到选择 Linux 发行版的过程中,让他们体验不同的系统,并选择自己喜欢的。对于年龄较小的孩子,可以预装一些基础和进阶应用,如 Minecraft、Scratch 和 Python IDE,并放在易于找到的位置。此外,游戏也是必不可少的,既能带来乐趣,也能培养孩子使用鼠标和键盘的技能。对于年龄较大的孩子,兼容性很重要,要确保 LibreOffice、聊天软件等能够正常工作,避免他们因为使用“奇葩电脑”而感到社交压力。文章还建议,在电脑设置好并运行一段时间后,与孩子和家长沟通,了解他们的喜好和遇到的问题,并及时解决。 评论区也提供了很多有价值的观点。有人分享了让孩子从小接触 Windows、Mac OS 和 Linux 的经验,最终孩子根据自己的需求选择了不同的系统。也有人推荐使用 Manjaro with Plasma,并安装 Minecraft、LibreOffice 和 LibreWolf 浏览器,同时使用 Pi-Hole 作为默认 DNS 服务器,以保护孩子的上网安全。还有人分享了使用旧工作笔记本,安装 Debian (Stable) 系统,并预装 LEGO 网站、音乐播放器和 MyPaint 的经验。此外,Scratch 编程语言也被强烈推荐,配合 Raspberry Pi 可以进行有趣的物理实验。 总的来说,为孩子配置 Linux 电脑是一个个性化的过程,需要根据孩子的年龄、兴趣和需求进行调整。重要的是提供一个安全、有趣和可探索的环境,让他们在实践中学习和成长。 - 原文: [Ask HN: How would you set up a child’s first Linux computer?](https://news.ycombinator.com/item?id=45864732) - Hacker News: [https://news.ycombinator.com/item?id=45864732](https://news.ycombinator.com/item?id=45864732) - 作者: evolve2k - 评分: 59 - 评论数: 85 - 发布时间: 2025-11-09 19:12:02 --- ## 使用逆向工程 Codex CLI 让 GPT-5-Codex-Mini 画鹈鹕 本文介绍了作者如何通过逆向工程 OpenAI 的 Codex CLI 工具,直接调用 GPT-5-Codex-Mini 模型来生成图像,例如让它画一只骑自行车的鹈鹕。OpenAI 发布了 GPT-5-Codex-Mini 模型,但只通过 Codex CLI 工具和 VS Code 扩展提供访问,作者想绕过限制,直接使用该模型。 作者发现 Codex CLI 工具是用 Rust 编写的,并且是开源的。他克隆了代码仓库,并使用 Codex 本身来构建这个工具。然后,他添加了一个新的子命令 "codex prompt",允许用户直接向 OpenAI API 发送提示,并设置模型和系统提示。这个新的子命令的设计灵感来源于作者自己的 llm 命令。 在迭代过程中,Codex 首先分析了 CLI 的结构和发送提示的相关核心工具,然后实现了新的 `codex prompt` 子命令,并进行了格式化、linting 和测试。作者发现 Codex 能够识别并使用 justfile 来运行格式化和 linting 命令,这很方便。 最初,作者尝试使用新命令生成鹈鹕骑自行车的 SVG 图像,但遇到了问题。Codex 似乎仍然在以正常模式运行,并试图编辑磁盘上的文件。作者明确指出,新的 `codex prompt` 命令不应该执行任何工具,也不应该考虑工作区或沙箱,而应该只发送一个提示,然后流式传输并显示响应。 后来,作者又遇到了 "Instructions are not valid" 的错误,推测 OpenAI 的 Codex 后端 API 不允许在不传递预期指令的情况下调用。最终,Codex 修改了代码,强制执行无工具请求,成功生成了图像。 总的来说,这篇文章展示了作者如何利用开源代码和 Codex 本身的能力,通过逆向工程和迭代开发,绕过 OpenAI 的限制,直接使用 GPT-5-Codex-Mini 模型。这个过程既有趣又具有挑战性,也体现了开源社区的创新精神。 - 原文: [Reverse engineering Codex CLI to get GPT-5-Codex-Mini to draw me a pelican](https://simonwillison.net/2025/Nov/9/gpt-5-codex-mini/) - Hacker News: [https://news.ycombinator.com/item?id=45862802](https://news.ycombinator.com/item?id=45862802) - 作者: simonw - 评分: 105 - 评论数: 51 - 发布时间: 2025-11-09 12:02:47 --- ## NetBSD 新增沙盒机制:利用 bubblewrap 增强安全性 本文介绍了 NetBSD 系统中利用 bubblewrap 工具增加沙盒隔离功能的项目,该项目旨在为 NetBSD 提供类似于 Linux 命名空间 (namespaces) 的隔离机制,从而增强系统的安全性。 文章指出,目前 NetBSD 缺乏有效的沙盒技术,现有的 chroot 只能进行简单的文件系统隔离,无法隔离网络、IPC 等资源。因此,该项目旨在实现类似 Linux 命名空间的功能,允许隔离系统的部分资源,从而实现应用程序的隔离。该项目重点实现了 UTS 和 mount 两种命名空间。UTS 命名空间允许用户修改主机名而不影响系统全局设置,mount 命名空间则允许用户拥有独立的挂载点视图,从而实现更灵活的文件系统隔离。 该项目基于 NetBSD 内核的 kauth 子系统,并利用 secmodel 实现了命名空间的管理。通过修改内核代码,使得进程访问 UTS 信息和 mountlist 时,能够根据其所属的命名空间获取相应的数据。UTS 命名空间相对简单,主要涉及主机名和域名隔离;mount 命名空间的实现则更为复杂,需要控制每个命名空间的 mountlist。 目前,该项目的代码已在 GitHub 上开源,包含通用命名空间代码、UTS 命名空间的实现,以及 mount 命名空间的部分实现。作者计划在 GSoC 之外继续完善该项目。 - 原文: [Using bubblewrap to add sandboxing to NetBSD](https://blog.netbsd.org/tnf/entry/gsoc2025_bubblewrap_sandboxing) - Hacker News: [https://news.ycombinator.com/item?id=45865327](https://news.ycombinator.com/item?id=45865327) - 作者: jaypatelani - 评分: 6 - 评论数: 0 - 发布时间: 2025-11-09 21:09:22 --- ## 用树莓派和水枪解决鸽子问题 本文介绍了一个有趣的 DIY 项目:作者使用树莓派、旧 iPhone 和电动水枪,制作了一个自动驱赶阳台鸽子的装置。这个方案的核心是通过摄像头识别鸽子,然后远程控制水枪进行喷射,从而达到驱赶鸽子的目的。 作者首先分析了各种驱赶鸽子的方法,包括塑料乌鸦、反光物、声音等,但这些方法都有局限性,鸽子容易适应。因此,作者决定采用水枪驱赶的方式,并将其自动化。硬件方面,作者选择了一个廉价的电动水枪,并使用 Wemos D1 Mini 开发板控制水枪的开关。摄像头则使用旧 iPhone 6S,通过 MJPEG 流获取图像。软件方面,作者使用 Python 和 OpenCV 编写图像分析脚本,通过比较当前图像与背景图像的差异来检测鸽子。为了提高检测的准确性,作者还使用了图像掩码等技巧,排除了风中摇曳的花朵和窗户反光等干扰因素。整个系统通过 Wi-Fi 连接,可以远程控制和监控。 总的来说,这个项目充分利用了现有的硬件资源,结合软件编程,创造性地解决了生活中的实际问题。虽然方案略显复杂,但展现了作者的动手能力和解决问题的思路。 - 原文: [The overengineered solution to my pigeon problem (2022)](https://maxnagy.com/posts/pigeons/) - Hacker News: [https://news.ycombinator.com/item?id=45794814](https://news.ycombinator.com/item?id=45794814) - 作者: cyb0rg0 - 评分: 35 - 评论数: 23 - 发布时间: 2025-11-03 08:48:32 --- ## Pipeflow-PHP:使用管道自动化一切,即使非开发者也能编辑 Pipeflow-PHP 是一个轻量级的 PHP 管道引擎,允许你将复杂的自动化流程描述为一系列小的、可重用的处理步骤,称为阶段 (stages)。它真正的强大之处在于整个流程可以用清晰的 XML 格式表达,易于阅读、可视化和理解,即使非开发者也可以审查、维护和更新自动化流程,而无需触及 PHP 代码。 每个阶段接收一个共享的上下文 (context),执行一个专注的单元工作,并将丰富的上下文返回到下一个阶段。通过将阶段链接在一起,你可以协调复杂的工作,同时保持每个部分易于维护和测试。Pipeflow 库为你提供了从 XML 配置实例化一个或多个管道的工具,可以选择在初始上下文中提供起始数据,并在需要时执行它们。你需要在你的 Web 应用程序中使用这些工具,允许你的用户编辑管道的 XML 配置(通过文本编辑器),将管道 XML 配置保存在某处(例如,你的应用程序数据库),并且当你的应用程序需要启动管道时(手动或通过 cron),只需加载 XML,将其馈送到 Pipeline 类实例中,然后启动它。 Pipeflow 的优势包括:人性化的配置,可以用 XML 文档描述自动化流程,方便业务用户和开发者阅读、审查和安全地编辑;可组合的工作流,通过连接专注的阶段来构建复杂的自动化流程,而不是编写一次性脚本;一致的执行模型,每个阶段都使用相同的 `PipelineContext`,使得在步骤之间传递数据变得简单;可配置的运行时,可以在 PHP 或 XML 中编写管道,选择最适合你的团队的配置风格;可扩展的目录,可以注册你自己的自定义阶段,以集成第三方服务、生成式 AI 调用或定制的业务逻辑。 实际用例包括:用于任何 CMS 的编辑自动化,创建一个 CMS 插件,利用 Pipeflow 构建自定义工作流,这些工作流可以由团队中的任何成员轻松编辑和改进,即使是非开发者;后台数据处理,构建夜间 ETL 作业,以使用 feed、清理数据并将结果同步到下游服务,而无需重新部署代码;营销和 CRM 协调,丰富潜在客户、调用外部 API 并保持 SaaS 工具同步,同时让利益相关者自己调整逻辑;AI 辅助的内容工作流,结合提示生成、随机化和模板阶段来自动化创意任务。通过允许创建自定义阶段,你可以将你的自定义业务逻辑封装在新的自定义阶段中,然后可以在你的管道中使用这些阶段。这些管道可以由你的团队中的任何成员轻松地以可视化方式通过易于理解和阅读的 XML 配置进行编辑、维护或改进。 - 原文: [Show HN: Pipeflow-PHP – Automate anything with pipelines even non-devs can edit](https://github.com/marcosiino/pipeflow-php) - Hacker News: [https://news.ycombinator.com/item?id=45865546](https://news.ycombinator.com/item?id=45865546) - 作者: marcosiino - 评分: 14 - 评论数: 3 - 发布时间: 2025-11-09 21:40:43 --- ## 世界最大货运帆船完成首次大西洋航行 这篇博客主要讲述了世界上最大的货运帆船 Neoliner Origin 完成了其首次大西洋航行的故事,尽管途中一艘帆受损。 Neoliner Origin 是一艘长 136 米的滚装船,由法国建造,配备了两面半刚性帆。在航行途中,这艘船的一面后帆在风暴中受损,导致它不得不部分依赖辅助发动机和剩余的帆。尽管遇到了困难,该船还是成功抵达了目的地,只是在圣皮埃尔的停留略有延迟。这次航行对于 Neoline 公司来说是一次宝贵的经验,让他们了解了如何在北大西洋处理大型帆面,尤其是在季末风暴期间。 Neoliner Origin 的设计旨在比传统的柴油动力货船减少 80% 到 90% 的温室气体排放。根据联合国贸易和发展会议(UNCTAD)的数据,全球航运产生约占全球温室气体排放量的 3%。该公司旨在平衡工业需求与环境责任,风力推进提供了一个优势,因为它是一种免费、广泛可用且可预测的能源,不会损害生态系统。英国国家清洁海事研究中心报告称,像 Neoliner Origin 上的风力推进系统可以将新船的排放量减少 50% 以上,改装船也可以减少 5% 到 20%,如果针对风况进行调整,则可以减少高达 30%。 这艘船由法国海军工程公司 Mauric 设计。该公司的目标是开发一种主要依靠风力推进的船舶,同时确保一致的交付时间表和高效的运营,并配备更少的船员。Neoliner Origin 从历史悠久的帆船中汲取灵感,集成了先进的导航、防漂移机制和自动化帆管理等现代系统,以符合当前的安全和运营标准。该船可运载多达 5,300 吨的货物,包括集装箱、车辆、机械和专用产品。它抵达巴尔的摩,运载了雷诺汽车、法国利口酒、机械和其他产品。Neoliner Origin 计划每月在欧洲和北美之间进行航行,保持约 11 节的商业巡航速度。 - 原文: [Largest cargo sailboat completes first Atlantic crossing](https://www.marineinsight.com/shipping-news/worlds-largest-cargo-sailboat-completes-historic-first-atlantic-crossing/) - Hacker News: [https://news.ycombinator.com/item?id=45859471](https://news.ycombinator.com/item?id=45859471) - 作者: defrost - 评分: 308 - 评论数: 204 - 发布时间: 2025-11-09 03:57:52 --- ## 自托管错误追踪工具 Telebugs:Sentry 的替代方案 Telebugs 是一款可安装的、简易的错误追踪系统,旨在成为 Sentry 的替代方案,它可以收集、分组错误并发送通知,帮助开发者更快地修复 Bug,同时保证数据安全和自主控制。 Telebugs 适用于多种平台,包括 React、Next.js、Vue、Angular、Ruby on Rails、Laravel 等,开发者只需安装对应平台的 SDK,配置 Telebugs 实例 URL,即可开始发送错误报告。文章强调了 Telebugs 相对于 Sentry 的优势,主要体现在一次性购买,无需支付持续的订阅费用。文章提到,虽然 Sentry 也支持自托管,但其部署和维护非常复杂,需要专业的 DevOps 团队。Telebugs 则更加轻量级、简单、快速且易于维护。此外,使用 Sentry 可能会涉及数据被用于训练其 AI 模型,而 Telebugs 则避免了这个问题。 文章还详细介绍了 Telebugs 的工作方式,包括创建项目、安装 SDK、配置 DSN 密钥等步骤,并说明了错误如何被分组、排序以及如何接收错误通知。Telebugs 专注于错误追踪,没有 Sentry 那样多的功能,旨在提供纯粹、简单的错误追踪体验。文章列举了 Telebugs 的多种适用场景,例如作为主要错误追踪工具、Sentry 的备份、开发和测试环境、受监管行业等。最后,文章还介绍了 Telebugs 的系统要求和安装步骤。 - 原文: [Show HN: I built a self-hosted error tracker in Rails](https://telebugs.com) - Hacker News: [https://news.ycombinator.com/item?id=45776512](https://news.ycombinator.com/item?id=45776512) - 作者: kyrylo - 评分: 63 - 评论数: 34 - 发布时间: 2025-11-01 04:46:51 --- ## Marko:一个声明式的 HTML 增强语言,让 Web 应用开发更有趣 Marko 是一种基于 HTML 的声明式语言,旨在简化 Web 应用程序的构建过程,让开发者能够更轻松地创建动态和响应式的用户界面。它通过扩展 HTML 语法,允许开发者以更直观的方式构建现代 Web 应用。 Marko 的核心优势在于其高性能和可伸缩性。它采用流式渲染,无需等待客户端 JavaScript 包或数据请求,即可立即向用户呈现内容,从而实现更快的首次渲染。此外,Marko 具有细粒度的打包能力,只传输必要的代码,避免了不必要的 hydration 和代码浪费,从而在各种设备和网络条件下都能实现卓越的性能。 Marko 易于学习和使用,如果你熟悉 HTML、CSS 和 JavaScript,那么你就能很快上手 Marko。它支持 HTML 的大部分语法,并在此基础上添加了许多有用的功能,例如自定义标签、反应式数据绑定和模板继承。eBay.com 等高流量网站都在使用 Marko,这证明了它的可靠性和可扩展性。Marko 还提供了 TypeScript 支持,方便开发者使用类型检查来提高代码质量。 Marko 的主要特性包括:流式渲染、细粒度打包、HTML 增强、组件化开发、反应式编程和 TypeScript 支持。它旨在解决传统 Web 开发中的一些痛点,例如首次渲染速度慢、代码冗余和可维护性差。通过使用 Marko,开发者可以构建更快速、更高效、更易于维护的 Web 应用程序。 Marko Run 是 Marko 提供的全栈框架,支持文件路由和 TypeScript,可以快速搭建服务端渲染应用。 总而言之,Marko 是一种强大而灵活的 Web 开发语言,它结合了 HTML 的简洁性和 JavaScript 的动态性,旨在帮助开发者构建更好的 Web 应用程序。 - 原文: [Marko – A declarative, HTML‑based language](https://markojs.com/) - Hacker News: [https://news.ycombinator.com/item?id=45858905](https://news.ycombinator.com/item?id=45858905) - 作者: ulrischa - 评分: 321 - 评论数: 153 - 发布时间: 2025-11-09 02:43:55 --- ## Drax:基于离散流匹配的语音识别 本文介绍了一种名为 Drax 的新型语音识别(ASR)框架,它利用离散流匹配技术,在保证识别准确率的同时,提高了效率。Drax 的核心在于构建了一个音频条件概率路径,该路径能够引导模型学习更贴近实际推理过程中的中间状态,从而优化训练过程。 传统的自回归(AR)模型在语音识别领域占据主导地位,但非自回归(NAR)模型因其并行解码的潜力而备受关注。Drax 正是一种 NAR 模型,它通过离散流匹配方法,实现了高效的并行解码。为了使训练过程更好地适应推理过程,Drax 引入了音频条件概率路径,该路径模拟了推理过程中可能出现的中间错误,而不是直接从随机噪声过渡到目标。 文章的理论分析将泛化差距与训练和推理占用之间的差异联系起来,而这种差异又受到累积速度误差的控制。这一分析为 Drax 的设计选择提供了理论依据。实验结果表明,Drax 在识别准确率上可以与最先进的语音模型相媲美,同时在准确率和效率之间实现了更好的平衡。这表明离散流匹配是推动 NAR 语音识别技术发展的一个有前景的方向。Drax 模型在精度和效率之间取得了良好的平衡,为未来的语音识别研究提供了新的思路。该论文还开源了代码,方便研究人员进行复现和改进。 由于没有评论内容,此处略去评论分析。 - 原文: [Drax: Speech Recognition with Discrete Flow Matching](https://huggingface.co/papers/2510.04162) - Hacker News: [https://news.ycombinator.com/item?id=45865426](https://news.ycombinator.com/item?id=45865426) - 作者: cliffly - 评分: 17 - 评论数: 0 - 发布时间: 2025-11-09 21:24:43 --- ## GitHub Spec Kit:规范驱动开发的工具包 GitHub 的 Spec Kit 是一个开源工具包,旨在帮助开发者更快地构建高质量的软件。它通过将软件开发模式从传统的“代码优先”转变为“规范优先”,让开发者专注于产品场景和可预测的结果。 Spec Kit 的核心理念是让规范成为可执行的,直接生成可用的实现,而不仅仅是作为指导。该工具包提供了一系列的 CLI 工具和 AI 助手集成,帮助开发者完成从项目初始化、规范创建、技术方案制定到任务分解和代码实现的全过程。 **Spec Kit 的主要功能和特点包括:** * **Specify CLI:** 提供 `init` 和 `check` 命令,用于初始化项目和检查所需工具的安装情况。 * **AI 助手集成:** 支持多种 AI 助手,如 Claude Code、GitHub Copilot、Gemini CLI 等,通过 `/speckit.*` 命令与 AI 助手交互,完成各种开发任务。 * **规范驱动开发流程:** 引导开发者按照规范创建、技术方案制定、任务分解、执行实现等步骤进行开发。 * **灵活的安装方式:** 提供持久安装和一次性使用两种安装方式,方便开发者根据自己的需求选择。 **使用 Spec Kit 的基本步骤:** 1. **安装 Specify CLI:** 可以选择持久安装或一次性使用。 2. **建立项目原则:** 使用 `/speckit.constitution` 命令创建项目章程和开发指南。 3. **创建规范:** 使用 `/speckit.specify` 命令描述要构建的内容,重点关注“是什么”和“为什么”。 4. **创建技术实现方案:** 使用 `/speckit.plan` 命令提供技术栈和架构选择。 5. **分解为任务:** 使用 `/speckit.tasks` 命令从实现方案中创建可执行的任务列表。 6. **执行实现:** 使用 `/speckit.implement` 命令执行所有任务并构建功能。 Spec Kit 旨在提高软件开发的效率和质量,通过规范驱动的方式,让开发者能够更好地控制开发过程,并减少不必要的重复劳动。 (由于没有评论内容,因此跳过评论分析部分。) - 原文: [Toolkit to help you get started with Spec-Driven Development](https://github.com/github/spec-kit) - Hacker News: [https://news.ycombinator.com/item?id=45798473](https://news.ycombinator.com/item?id=45798473) - 作者: mooreds - 评分: 34 - 评论数: 14 - 发布时间: 2025-11-03 20:48:16 --- ## 蒙大拿州率先立法确立“计算权” 蒙大拿州成为美国首个通过立法保护公民访问和使用计算工具及人工智能技术权利的州。州长签署了名为《蒙大拿州计算权法案》(MRTCA) 的 Senate Bill 212,使其正式生效。 这项开创性的法案确认了蒙大拿州居民拥有和运营计算资源(包括硬件、软件和 AI 工具)的基本权利,并将其置于该州宪法对财产和言论自由的保护之下。法案的支持者认为,这代表着在日益 AI 驱动的世界中,保障数字自由迈出了重要一步。 法案发起人、长期倡导数字隐私的参议员 Daniel Zolnikov 表示:“蒙大拿州再次在捍卫个人自由方面走在前列。通过《计算权法案》,我们确保每位蒙大拿州居民都能访问和控制未来的工具。” 该法案允许州政府为了公共健康和安全对计算进行监管,但设置了很高的门槛:任何限制都必须是“明显必要”且“范围狭窄”,以服务于令人信服的利益。法律专家指出,这是蒙大拿州法律下可用的最具保护性的标准之一。 该法案还包括针对 AI 控制的关键基础设施的条款,要求同时具备允许人工控制的“关闭机制”和年度安全审查,旨在平衡创新与公共安全问题。 自由市场智库 Frontier Institute 的政策主管 Tanner Avery 称该法案为数字权利的“旗帜”,并补充说:“蒙大拿州已经明确表示,它将以最大的关注度对待任何侵犯基本数字自由的企图。” MRTCA 与其他州(如加利福尼亚州、弗吉尼亚州和纽约州)最近的监管努力形成鲜明对比,在这些州,限制 AI 技术的提案要么失败,要么经过大量修改。 蒙大拿州的做法倾向于赋予个人用户权力。 - 原文: [Montana Becomes First State to Enshrine 'Right to Compute' into Law](https://montananewsroom.com/montana-becomes-first-state-to-enshrine-right-to-compute-into-law/) - Hacker News: [https://news.ycombinator.com/item?id=45865289](https://news.ycombinator.com/item?id=45865289) - 作者: bilsbie - 评分: 6 - 评论数: 3 - 发布时间: 2025-11-09 21:03:36 --- ## AI 系统评估的弱点分析 这篇文章主要探讨了当前人工智能系统评估方法中存在的不足,由牛津互联网研究所 (OII) 的一项研究揭示。研究指出,现有的评估方式可能无法全面、准确地反映 AI 系统的真实能力和潜在风险。 该研究强调了几个关键问题。首先,评估指标的选择往往过于片面,未能充分考虑到 AI 系统在实际应用中的复杂性和多样性。例如,仅仅关注准确率可能忽略了公平性、鲁棒性或可解释性等方面。其次,评估数据集的构建可能存在偏差,导致评估结果无法推广到更广泛的场景。此外,评估过程缺乏透明度,使得人们难以理解 AI 系统做出决策的原因,也难以发现潜在的缺陷。研究人员认为,这些弱点可能会导致对 AI 系统的过度信任,从而带来意想不到的风险。为了解决这些问题,研究建议采用更加综合、透明和负责任的评估方法,例如,结合定量指标和定性分析,引入多方参与的评估机制,以及加强对评估数据集的审查和验证。通过改进 AI 系统评估方式,可以更好地理解和控制 AI 技术的潜在影响,确保其安全、可靠和公平地应用于社会。这项研究对于开发者、政策制定者和研究人员都具有重要的参考价值,有助于推动 AI 技术的健康发展。 - 原文: [Study identifies weaknesses in how AI systems are evaluated](https://www.oii.ox.ac.uk/news-events/study-identifies-weaknesses-in-how-ai-systems-are-evaluated/) - Hacker News: [https://news.ycombinator.com/item?id=45856804](https://news.ycombinator.com/item?id=45856804) - 作者: pseudolus - 评分: 372 - 评论数: 178 - 发布时间: 2025-11-08 22:18:22 --- ## 空客是如何起飞的:欧洲航空业的成功案例 本文探讨了空中客车公司(Airbus)如何从一个欧洲合作项目,成长为能够与美国波音公司竞争的全球航空业巨头,并分析了其成功的原因。 文章指出,在商业航空的早期,美国公司凭借政府支持和军事订单占据主导地位。欧洲的航空企业则面临着市场分散、资金不足的困境。为了应对这一挑战,欧洲各国政府决定合作,共同投资研发新型飞机。空中客车公司应运而生,并迅速发展壮大。 空中客车的成功并非偶然。首先,它始终将客户需求放在首位,致力于制造航空公司真正需要的产品。其次,空中客车拥有强大的中央领导,能够统一营销、采购和设计等关键环节。此外,空中客车在技术创新方面也投入了大量精力,不断推出具有竞争力的产品。例如,A300项目负责人Roger Béteille非常重视与潜在客户的沟通,根据他们的需求调整飞机设计。 文章还提到了其他一些欧洲合作项目,如Concorde和VFW-Fokker 614,但这些项目未能取得成功。空中客车的与众不同之处在于,它更加注重市场导向,而不是单纯追求欧洲自主。 总而言之,空中客车的成功是欧洲工业合作的典范,它证明了通过整合资源、注重客户需求和技术创新,欧洲企业完全可以在全球市场上与美国巨头竞争。 - 原文: [How Airbus took off](https://worksinprogress.co/issue/how-airbus-took-off/) - Hacker News: [https://news.ycombinator.com/item?id=45861984](https://news.ycombinator.com/item?id=45861984) - 作者: JumpCrisscross - 评分: 105 - 评论数: 91 - 发布时间: 2025-11-09 09:19:00 --- ## 利用线性映射绕过 KASLR 保护 本文揭示了一种绕过 KASLR (Kernel Address Space Layout Randomization) 的方法,该方法通过利用 Linux 内核的线性映射,在某些设备上无需泄露任何地址信息即可实现内核的任意读写。 文章的核心在于 Linux 内核的线性映射,它提供了一种物理内存到虚拟内存的直接映射。作者发现,在 Android 设备上,由于 CONFIG_MEMORY_HOTPLUG 选项的启用以及 Arm64 架构的限制,线性映射的虚拟地址实际上并未随机化。具体来说,`PHYS_OFFSET` 的值固定为 `0x80000000`,导致可以使用一个静态公式 `phys_to_virt(x) = (unsigned long)((x) - 0x80000000) | 0xffffff8000000000` 来计算任何物理地址对应的线性映射虚拟地址。更糟糕的是,Pixel 手机的 bootloader 总是将内核解压到固定的物理地址 `0x80010000`,这意味着内核代码和数据段的物理地址也是固定的。 结合以上两点,攻击者可以静态计算出内核中任何数据段(如 `modprobe_path`)的虚拟地址,从而实现任意读写。虽然代码段(`.text`)没有映射为可执行,但对于许多内核攻击而言,任意读写权限已经足够。即使在内核物理地址随机化的设备上,线性映射的非随机化也降低了攻击难度。 总而言之,这篇文章揭示了一个严重的安全漏洞,它允许攻击者在某些 Android 设备上绕过 KASLR 保护,获得内核的任意读写权限。这种攻击方法简单有效,对依赖 KASLR 保护的系统构成了严重威胁。 - 原文: [Defeating KASLR by doing nothing at all](https://googleprojectzero.blogspot.com/2025/11/defeating-kaslr-by-doing-nothing-at-all.html) - Hacker News: [https://news.ycombinator.com/item?id=45809552](https://news.ycombinator.com/item?id=45809552) - 作者: aa_is_op - 评分: 66 - 评论数: 5 - 发布时间: 2025-11-04 18:52:29 --- ## eForth:C/C++实现的现代 Forth 解释器 本文介绍了使用 C/C++ 实现的 eForth,一个旨在简化和教育目的的 Forth 解释器,并探讨了 Forth 在现代编程环境中的相关性。文章重点介绍了 eForth 的设计选择,例如使用数组代替链表来管理字典和堆栈,以及为了简化核心概念而移除了一些高级特性。 文章首先提出一个问题:Forth 是否还具有现实意义?尽管 Forth 拥有诸多优点,但由于 C 语言更广泛的吸引力、标准化和支持生态系统,Forth 逐渐衰落。作者希望通过 eForth 项目,吸引更多的 C 程序员了解 Forth,并意识到 Forth 在某些情况下可以提高开发效率。 eForth 的主要特点包括:完全使用 C/C++ 实现,支持多平台(Linux、MacOS、Windows、ESP32、WASM);使用数组来管理字典、数据栈和返回栈,简化了内存管理;为了专注于核心概念,移除了词汇表和元编译等高级特性;从 v5.0 版本开始,支持多线程和消息传递,可以在多核平台上并行运行 Forth 虚拟机。 文章还鼓励有 C/C++ 基础的开发者尝试构建自己的 Forth 解释器,并推荐从 release v4.2 版本开始入手,该版本包含了详细注释的 `ceforth.cpp`、`ceforth.h` 和 `config.h` 文件,总共约 800 行代码。 文章深入探讨了 eForth 的内部实现,包括 `Code` 对象(Forth 单词的核心表示)、`Lit`、`Var`、`Str`、`Bran`、`Tmp` 等多态类(用于实现 Forth 的基本功能)、`Dictionary`(`Code` 对象的数组)、`Inner Interpreter`(执行 Forth 单词)和 `Outer Interpreter`(解析 Forth 代码)。 最后,文章还提到了 ceForth,这是 eForth 的前身,也是一个使用 C 语言实现的 Forth 系统。传统的 Forth 系统通常使用汇编语言实现一些底层原语,然后使用 Forth 自身来引导高级单词的实现。 - 原文: [Forth – Is it still relevant?](https://github.com/chochain/eforth) - Hacker News: [https://news.ycombinator.com/item?id=45863024](https://news.ycombinator.com/item?id=45863024) - 作者: lioeters - 评分: 74 - 评论数: 45 - 发布时间: 2025-11-09 12:59:19 ---

  

🫵 来啊,说点有用的废话!