6小时前
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20250906
今天科技圈有点热闹!996 工作制引争议,程序员们怒了!DuckDuckGo 创始人警告:AI 监控太可怕,隐私要完!汉堡王又被黑了,你的得来速语音可能被偷听!还有,想搞懂 LLM,数学要学到啥程度?Java 25 新特性来袭,是真香还是鸡肋?GitHub Copilot 强制功能惹怒开发者!想知道更多?赶紧下滑,精彩内容不容错过!

---
## 探讨 996 工作制:高强度工作与生活平衡的思考
这篇文章深入探讨了 996 工作制,即早上 9 点到晚上 9 点,每周工作 6 天的工作模式。作者分享了自己对高强度工作的热爱,同时也强调了生活平衡的重要性,包括陪伴家人、享受生活以及进行深度思考。文章的核心观点是,虽然努力工作很重要,但不能以牺牲健康和生活质量为代价。
作者认为,为自己的事业付出时间和精力是值得的,但为他人创业公司 996 则需要慎重考虑。创始人承担的风险和回报与员工不同,不应提倡这种模式。衡量工作成果不应只看工作时长,而应看实际产出。作者也承认自己有过通宵工作的经历,但强调这应是个人选择,而非公司文化。文章最后呼吁大家对 996 工作文化说不。
评论区对 996 工作制也展开了热烈的讨论。有人认为,如果公司提倡 996 文化,应该直接避开。也有人认为,只有当自己是创始人并持有大量股权时,才可能考虑短期的 996 工作制。对于普通员工而言,除非提供超高的薪资,否则不应该接受 996。
此外,评论中还指出,很多 996 团队实际上效率并不高,只是在办公室耗时间。有人将 996 与过去劳工运动争取权益相提并论,认为技术进步提高了生产力,但工资停滞不前,社会契约早已被打破。还有评论指出,在中国 996 被认为是管理失败的表现,员工会“摸鱼”来应对。也有人质疑,为什么员工要无偿加班,而公司却不愿多发工资。
评论中还对比了不同职位 996 的差异,认为高管 996 与工程师 996 的性质不同。总的来说,评论区普遍反对 996 工作制,认为这是一种不健康、不可持续的工作模式。
- 原文: [996](https://lucumr.pocoo.org/2025/9/4/996/)
- Hacker News: [https://news.ycombinator.com/item?id=45149049](https://news.ycombinator.com/item?id=45149049)
- 作者: genericlemon24
- 评分: 216
- 评论数: 75
- 发布时间: 2025-09-06 21:20:57
---
## 呼吁禁止AI监控:DuckDuckGo创始人发出警告
DuckDuckGo创始人Gabriel Weinberg呼吁立法禁止AI监控,强调AI技术可能对个人隐私造成比传统网络跟踪更大的威胁。
文章指出,AI聊天机器人可能通过对话收集用户更深入的个人信息,包括思想过程和沟通方式,从而创建更全面的个人资料。这些信息可能被用于商业或政治目的的操纵,例如通过个性化的广告或政治宣传。作者特别提到,聊天机器人甚至可能比人类更具说服力,并可能导致用户产生妄想。
作者认为,过去二十年围绕Google搜索结果的隐私辩论同样适用于AI聊天,甚至更为严重。他介绍了DuckDuckGo提供的隐私保护型AI聊天服务Duck.ai,以及匿名AI辅助搜索功能,证明了尊重隐私的AI服务是可行的。然而,他也指出,目前隐私保护措施尚未成为行业标准,并列举了Grok泄露用户聊天记录、Perplexity的AI代理容易受到黑客攻击等隐私事件。OpenAI和Anthropic等公司也在积极探索收集用户数据用于AI训练,这进一步加剧了隐私风险。
作者呼吁美国国会尽快采取行动,确保隐私保护型聊天成为常态。他担心,如果再不采取行动,AI跟踪可能会重蹈网络跟踪的覆辙。尽管如此,DuckDuckGo将继续提供受保护的服务,包括可选的AI服务,让用户在享受在线工具带来的便利的同时,避免隐私受到损害。
评论区中,有用户提问作者,希望能给出更具体的政策建议,例如是否应该禁止LLM提供商使用用户数据进行训练。同时,该用户也提出疑问,使用传统机器学习模型进行关键词分析是否也应被视为“AI”或“监控”。该用户希望作者和社区能够更清晰地提出AI监控政策建议,以在保护隐私的同时,避免扼杀创新。
- 原文: [DuckDuckGo founder: AI surveillance should be banned](https://gabrielweinberg.com/p/ai-surveillance-should-be-banned)
- Hacker News: [https://news.ycombinator.com/item?id=45149281](https://news.ycombinator.com/item?id=45149281)
- 作者: mustaphah
- 评分: 33
- 评论数: 1
- 发布时间: 2025-09-06 21:52:34
---
## Burger King 遭黑客入侵:认证绕过导致得来速语音监控
本文揭露了 Restaurant Brands International (RBI) 旗下 Burger King、Tim Hortons 和 Popeyes 的 "assistant" 平台存在的严重安全漏洞,这些漏洞允许攻击者访问全球 30,000 多家门店,并监听得来速的对话。
攻击者通过 AWS Cognito 的用户注册漏洞以及 GraphQL 内省,绕过了身份验证,甚至收到了以明文形式发送的密码。利用 GraphQL 的 `createToken` mutation,攻击者无需任何身份验证即可获得访问令牌,从而提升为整个平台的管理员权限。此外,他们还发现了 RBI 设备订购网站的客户端密码保护,密码直接硬编码在 HTML 中。
通过获得的令牌,攻击者可以访问门店平板电脑界面,包括之前的对话记录和诊断屏幕。更令人震惊的是,他们可以访问客户订单的原始录音文件,这些录音被用于 AI 系统分析客户情绪、员工友好程度和追加销售成功率。此外,攻击者还可以随意发送垃圾浴室评论,因为反馈 API 不需要任何身份验证。
利用管理员权限,攻击者可以添加/删除/管理门店、查看/编辑员工帐户、发送通知、访问门店分析和销售数据,以及上传文件到任何门店的系统。这些漏洞导致了大规模的隐私泄露,数千甚至数十万条包含个人身份信息的语音记录遭到泄露。
- 原文: [We Hacked Burger King: How Auth Bypass Led to Drive-Thru Audio Surveillance](https://bobdahacker.com/blog/rbi-hacked-drive-thrus/)
- Hacker News: [https://news.ycombinator.com/item?id=45148944](https://news.ycombinator.com/item?id=45148944)
- 作者: BobDaHacker
- 评分: 81
- 评论数: 34
- 发布时间: 2025-09-06 21:04:51
---
## 理解大型语言模型所需的数学知识
本文旨在为那些对大型语言模型(LLM)感兴趣,但没有深入人工智能知识的技术人员,介绍理解 LLM 工作原理所需的数学基础,重点是向量、高维空间以及矩阵乘法。文章侧重于推理(inference)而非训练(training)过程。
文章首先解释了向量的概念,强调向量不仅是数字数组,还是 n 维空间中的距离和方向,或者等价地,可以看作空间中的一个点。在 LLM 中,向量被用来表示各种事物,例如,logits 向量表示输入序列中不同 token 作为下一个 token 的可能性。作者引入了“vocab space”的概念,即一个高维空间,其中每个点代表下一个 token 的不同可能性组合。为了简化 vocab space,可以使用 softmax 函数将“混乱”的 likelihood 向量转换为概率列表,得到一个规范化的空间。此外,文章还提到了 one-hot 向量,即向量中只有一个元素为 1,其余为 0,表示某个特定 token 的概率为 100%。
接下来,文章介绍了 embedding space,这是一个高维空间,其中向量代表含义。相似的概念在 embedding space 中会聚集在一起。文章强调,embedding space 的构建取决于具体的应用场景和所需的含义表示,可以根据不同的目的创建不同的 embedding space。一个反直觉的点是,向量的长度通常并不重要,重要的是向量的方向。
最后,文章提到了矩阵乘法在 LLM 中的应用,即通过矩阵乘法进行投影变换。
由于没有评论内容,因此无法进行评论分析。
- 原文: [The maths you need to start understanding LLMs](https://www.gilesthomas.com/2025/09/maths-for-llms)
- Hacker News: [https://news.ycombinator.com/item?id=45110311](https://news.ycombinator.com/item?id=45110311)
- 作者: gpjt
- 评分: 213
- 评论数: 52
- 发布时间: 2025-09-03 07:10:47
---
## 数据库能支持的最早时间戳是多少?
这篇文章探讨了现代数据库能支持的最早时间戳,并以幽默的方式对比了古代的交易记录与现代数据库的耐久性。作者通过实际测试MySQL、Postgres和SQLite这三种数据库,发现MySQL最早只能支持公元1000年,而Postgres和SQLite则可以支持到公元前4713年,即Julian日历的起始日。
文章指出,Postgres和SQLite之所以能支持更早的时间,是因为它们支持Julian日历。作者还提出了一个有趣的问题:如果需要存储比公元前4713年更早的日期,例如博物馆的藏品记录,应该如何处理? 可以考虑使用epoch时间戳、文本格式或者自定义系统。但这些方法可能难以支持`TIMESTAMP`类型所提供的各种操作。作者通过对比,强调了古代交易记录在数据持久性方面的卓越表现。
评论区有用户幽默地指出,“啤酒饮用”的历史非常悠久,暗示了更早的交易记录可能与此相关。这从侧面反映了人们对于历史悠久的事物的兴趣,以及对数据存储方式的思考。虽然评论很简短,但引发了对更早期人类活动的联想。
- 原文: [Oldest Recorded Transaction](https://avi.im/blag/2025/oldest-txn/)
- Hacker News: [https://news.ycombinator.com/item?id=45149626](https://news.ycombinator.com/item?id=45149626)
- 作者: avinassh
- 评分: 9
- 评论数: 3
- 发布时间: 2025-09-06 22:34:55
---
## Java 21 之后的新特性:迈向 Java 25 的技术演进
本文主要介绍了 Java 21 发布以来,为了迎接 Java 25 而引入的一系列新语言特性,这些特性主要集中在数据导向编程、简化新开发者上手流程以及增强 Java 作为脚本语言在自动化方面的能力。
文章指出,Java 25 包含许多新特性,旨在使 Java 更易于使用,并提高开发效率。这些特性涵盖了多个方面,例如,对数据导向编程的支持,这使得处理数据更加方便和高效。此外,新特性还致力于简化新开发者的学习曲线,降低入门门槛,使更多的人能够轻松上手 Java 开发。另外,Java 25 还增强了 Java 作为脚本语言的能力,使其在自动化任务中更加实用。通过这些改进,Java 不仅保持了其在企业级应用开发中的优势,还在快速脚本和自动化领域展现出更大的潜力。总而言之,Java 21 以后的版本都在不断演进,力求在各个方面都能够满足现代开发的需求。
评论区主要有以下几种观点:
* **对视频形式的质疑:** 有人认为以视频形式呈现特性列表效率较低,希望有文本版本。
* **对新特性的实用性评价:** 有开发者表示自 Java 1.8 以来,唯一可能使用的特性是 Java 24 中的无锁定虚拟线程。
* **对 Java 语言发展的肯定与担忧:** 有资深函数式编程开发者表示 Java 21 变得有趣,虚拟线程简化了并发,记录和 ADT 以及模式匹配使语言更易用。但同时担忧 Java 开发者不愿使用新特性,并认为 Java 可能会吸引不求上进的工程师。
* **总结性评论:** 有人总结了 Java 22、24 和 25 中的关键 JEP(JDK Enhancement Proposal),包括未命名变量和模式、流收集器以及模块导入声明和灵活的构造函数体。
这些评论反映了开发者对 Java 新特性的不同看法,既有对语言进步的肯定,也有对实际应用和开发者接受度的担忧。
- 原文: [All New Java Language Features Since Java 21](https://inside.java/2025/08/31/roadto25-java-language/)
- Hacker News: [https://news.ycombinator.com/item?id=45112420](https://news.ycombinator.com/item?id=45112420)
- 作者: lichtenberger
- 评分: 33
- 评论数: 21
- 发布时间: 2025-09-03 13:11:15
---
## GitHub Copilot 强制功能引发开发者不满
GitHub Copilot 强制用户使用的功能引发了开发者的强烈抗议,许多人表示希望能够摆脱这些他们不想要的功能,甚至开始寻找替代的代码托管方案。文章指出,开发者们对于 GitHub 强制 Copilot 功能的行为感到不满,认为这侵犯了他们的自主选择权。
文章提到,一些开发者抱怨 Copilot 变得越来越难以禁用,即使关闭了所有 Copilot 相关的设置,它仍然会时不时地弹出建议。这种强制行为让开发者感到非常恼火,因为他们觉得自己被强迫使用一个他们并不需要或者不信任的工具。此外,还有开发者担心 Copilot 的代码建议可能存在安全风险或者版权问题,因此不愿意使用它。
由于这些不满情绪的累积,一些开发者开始考虑迁移到其他的代码托管平台,例如 GitLab 或者 Bitbucket。他们认为,这些平台更加尊重用户的选择权,不会强制用户使用某些功能。文章还指出,GitHub 应该认真倾听用户的声音,尊重用户的选择,而不是一味地推广 Copilot。如果 GitHub 继续忽视用户的诉求,可能会导致更多的开发者流失。总之,开发者对于 GitHub 强制 Copilot 功能的不满情绪正在日益增长,GitHub 需要采取措施来解决这个问题,否则可能会面临用户流失的风险。
- 原文: [Let us git rid of it, angry GitHub users say of forced Copilot features](https://www.theregister.com/2025/09/05/github_copilot_complaints/)
- Hacker News: [https://news.ycombinator.com/item?id=45148167](https://news.ycombinator.com/item?id=45148167)
- 作者: latexr
- 评分: 193
- 评论数: 135
- 发布时间: 2025-09-06 18:44:07
---
## 开源世界的权力游戏:Rug Pull、Fork 与开源封建主义
本文探讨了开源软件开发中存在的权力动态,以及诸如 Rug Pull(撤毯子)和 Fork(分支)等策略如何被用来改变这种权力平衡。
文章指出,在开源世界里,公司、开发者和用户都在争夺对软件方向的影响力,以及从中获利的能力。大型云服务提供商往往拥有最大的权力,他们可能会利用这种权力来对抗小型公司。而贡献者和维护者,甚至用户,拥有的权力更小。文章提到,云服务提供商可能会使用开源软件而不回馈社区,这让那些为软件提供主要贡献的小公司感到不满。这些公司可能会通过重新许可软件来改变权力平衡,但这可能会损害贡献者和用户的利益。而 Fork 则是一种反击手段,可以再次改变权力平衡。
文章通过分析 Elasticsearch/OpenSearch、Terraform/OpenTofu 和 Redis/Valkey 等案例,展示了 Rug Pull 和 Fork 后的项目发展情况。Elasticsearch 在被 Elastic 重新许可后,Amazon Web Services 创建了 OpenSearch 分支。Terraform 被 Hashicorp 重新许可后,OpenTofu 在 Linux 基金会下成立。Redis 被重新许可后,其外部贡献者全部转移到了 Valkey。作者通过数据分析发现,重新许可的项目往往会减少使用量,尤其是在有竞争的分支在基金会下创建时。
最后,文章建议开发者和用户关注项目中的权力动态,警惕 Rug Pull 的迹象,例如使用贡献者许可协议(CLA)。CLA 可能会导致权力失衡,增加项目被 Rug Pull 的风险。
- 原文: [Rug pulls, forks, and open-source feudalism](https://lwn.net/SubscriberLink/1036465/e80ebbc4cee39bfb/)
- Hacker News: [https://news.ycombinator.com/item?id=45146967](https://news.ycombinator.com/item?id=45146967)
- 作者: pabs3
- 评分: 146
- 评论数: 68
- 发布时间: 2025-09-06 13:59:39
---
## 科学图像:清晰度还是准确性更重要?
这篇文章探讨了科学图像在清晰度和准确性之间的权衡,以及摄影在科学研究中的双重角色。文章作者通过评论Anika Burgess的著作《闪光时刻:早期摄影的天才及其如何改变艺术、科学和历史》,引发了对科学图像本质的思考。
文章指出,摄影不仅仅是记录,更是一种调查研究的手段。好的科学图像不仅要清晰地呈现细节,还要准确地反映科学事实,有时甚至能带来意想不到的发现。作者强调,图像能够以文字无法比拟的方式凝练复杂的概念,从而帮助人们理解科学。书中通过引人入胜的故事和视觉案例,提醒读者图像在科学传播和发现中的重要性。例如,早期摄影师Eadweard Muybridge为了更清晰地展示马的奔跑动作,甚至会移除和调整拍摄的序列图像。
文章还讨论了科学图像在客观性和主观性之间的平衡。虽然科学图像应该尽可能客观地反映现实,但摄影师的选择(例如拍摄角度、光线和构图)也会影响图像的呈现效果。因此,我们需要批判性地看待科学图像,并意识到它们可能带有一定的主观性。随着AI技术的发展,科学图像的伦理问题也日益凸显。文章呼吁建立科学图像的伦理规范,以确保图像的真实性和可靠性。
- 原文: [Clarity or accuracy – what makes a good scientific image?](https://www.nature.com/articles/d41586-025-02757-7)
- Hacker News: [https://news.ycombinator.com/item?id=45104018](https://news.ycombinator.com/item?id=45104018)
- 作者: bookofjoe
- 评分: 4
- 评论数: 1
- 发布时间: 2025-09-02 23:02:40
---
## 优化虚幻引擎启动速度:减少不必要的 Tooltip 生成
本文主要探讨了如何通过避免生成未使用的 Tooltip 来加速虚幻引擎编辑器的启动速度,尤其是在拥有大量功能和工具的虚幻引擎中,启动时间过长是一个常见问题。
文章作者在分析启动性能时发现,虚幻引擎在启动时会为整个编辑器创建大量的 Tooltip,即使这些 Tooltip 在启动阶段并没有被实际使用。具体来说,即使是一个简单的项目,编辑器也会创建大约 38000 个 Tooltip。每个 Tooltip 的创建都会消耗时间和内存,导致启动速度变慢。作者通过修改引擎代码,将 Tooltip 的创建延迟到实际需要显示时才进行,从而避免了在启动时创建大量无用 Tooltip。修改后的代码只在 Tooltip 真正需要显示时才创建相应的 Widget,这极大地减少了启动时间,并且对运行时性能几乎没有影响,因为用户不太可能在单个会话中访问所有 38000 个 Tooltip。即使在调试版本中,单个 Tooltip 的创建时间也仅为 0.05 毫秒,不会对帧率产生明显影响。作者还分享了相应的 Pull Request,希望 Epic Games 能够合并这些更改。
文章更新部分提到,大部分 Tooltip 来自项目设置面板和编辑器偏好设置,因此关闭不常用的面板也可以加速启动。
## 评论区观点分析
评论区中,@bob1029 提到虚幻引擎在技术上非常强大,但在迭代难度和工具方面不如 Unity 和 Godot。对于不需要 HDRP 或纳米级网格分辨率的项目,他更倾向于使用 Unity 或 Godot,因为它们的迭代速度更快,调试体验更好。他还提到,使用蓝图是他在 UE 中采用的最佳策略,但这在源代码控制和代码审查方面存在问题。
@hinkley 则从另一个角度指出,当代码库中的库被越来越多的人使用时,需要定期进行审查,以避免性能问题。他分享了一个案例,通过几个月的优化,他们将代码库的响应时间减少了一半。
- 原文: [Speeding up Unreal Editor launch by not spawning unused tooltips](https://larstofus.com/2025/09/02/speeding-up-the-unreal-editor-launch-by-not-spawning-38000-tooltips/)
- Hacker News: [https://news.ycombinator.com/item?id=45111273](https://news.ycombinator.com/item?id=45111273)
- 作者: samspenc
- 评分: 166
- 评论数: 58
- 发布时间: 2025-09-03 09:28:08
---
## 结构化AI软件开发方法论
本文介绍了一种结构化的AI软件开发方法,旨在解决与AI系统协作开发时常见的代码膨胀、架构漂移和上下文稀释等问题。该方法通过系统性的约束和验证检查点,提供了一种更可控和高效的AI协作开发流程。
该方法论的核心在于将开发过程分解为四个阶段,每个阶段都包含系统性的约束和验证检查点,并强调基于实证数据而非假设。第一阶段是AI配置,通过`AI-PREFERENCES.md`文件设置AI模型的自定义指令,建立行为约束和不确定性标记。第二阶段是协作规划,与AI共同制定项目计划,明确范围、完成标准、组件依赖关系和阶段划分,最终生成模块化的开发计划。第三阶段是系统性实现,按照阶段和章节逐步进行,每次请求都针对特定组件,并限制文件大小不超过150行,以保证上下文窗口的集中和易于调试。第四阶段是数据驱动的迭代,通过基准测试套件收集性能数据,并反馈给AI进行优化决策。
这种方法论的优势在于,它能够更可靠地处理决策,通过小文件和有限的问题来管理上下文,利用性能数据进行实证验证,并通过系统性约束来强制一致的行为。文章还提供了几个示例项目,例如Discord Bot模板、PhiCode运行时和PhiPipe,展示了该方法论在实际项目中的应用。最后,文章还介绍了实施步骤和质量保证措施,以及一个项目状态提取工具,用于生成代码库的结构化快照。总而言之,这种结构化的AI软件开发方法论旨在提高AI协作开发的效率和质量,减少调试时间,并确保项目的可维护性和可扩展性。
- 原文: [A Software Development Methodology for Disciplined LLM Collaboration](https://github.com/Varietyz/Disciplined-AI-Software-Development)
- Hacker News: [https://news.ycombinator.com/item?id=45148180](https://news.ycombinator.com/item?id=45148180)
- 作者: jay-baleine
- 评分: 25
- 评论数: 14
- 发布时间: 2025-09-06 18:47:57
---
## 突破性空芯光纤:数据传输速度提升45%,损耗创历史新低
这篇文章介绍了一种新型空芯光纤技术,它在数据传输速度和损耗方面都取得了显著突破。这种光纤由南安普顿大学和微软的研究人员合作开发,其核心创新在于使用空气作为光传输的介质,而非传统的硅材料。
传统光纤依赖于硅芯传输光信号,但这种材料的损耗限制了传输距离和速度的提升。而空芯光纤(HCF)理论上能实现更快的传输速度,因为光在空气中的传播速度比在硅中更快。然而,长期以来,科学家们一直难以设计出性能真正超越硅基光纤的HCF。
这项新的研究成果表明,新型HCF在1550纳米波长下的损耗仅为0.091分贝/公里,远低于硅基光纤的0.14分贝/公里。更令人印象深刻的是,该设计在66太赫兹的带宽内保持了约0.2分贝/公里的低损耗,并且传输速度提高了45%。研究人员通过先进的建模技术,最大限度地减少了泄漏、表面散射和微弯曲等损耗机制,并通过长达15公里的光纤测试验证了他们的成果。
这种新型光纤被称为嵌套反谐振无节点空芯光纤(DNANF),其核心是由精心设计的玻璃微结构包围的空气。研究团队相信,通过进一步的研究,可以将损耗进一步降低至0.01分贝/公里,并针对不同波长的低损耗运行进行优化。
这项技术突破为海底和陆地电缆的更长无放大跨距、高功率激光传输和传感应用等领域带来了巨大的潜力。研究人员表示,随着生产规模的扩大、几何一致性的提高以及核心中吸收气体的减少,DNANF HCF有望成为一项关键的波导技术,并推动数据通信领域的下一次技术飞跃。
- 原文: [Novel hollow-core optical fiber transmits data faster with record low loss](https://phys.org/news/2025-09-hollow-core-optical-fiber-transmits.html)
- Hacker News: [https://news.ycombinator.com/item?id=45121581](https://news.ycombinator.com/item?id=45121581)
- 作者: Wingy
- 评分: 89
- 评论数: 42
- 发布时间: 2025-09-04 07:37:54
---
## 使用 Clojure 开发太空飞行模拟器
本文介绍了作者使用 Clojure 语言开发太空飞行模拟器的经验,重点分享了在图形渲染、大气模拟以及着色器模版方面的技术实现。作者从 2017 年开始了这个项目,并详细介绍了所使用的各种 Clojure 库和技术。
文章首先提到作者受到 Orbiter 2016 的启发,并选择了 Clojure 作为开发语言,看重了它的不可变值、安全并行以及快速的哈希表和向量。在开发初期,作者集中精力解决 3D 渲染的难题,包括行星、大气、阴影和体积云的渲染。为此,作者深入研究了 OpenGL,并参考了开源的 Orbiter 源代码。
文章详细列出了开发所依赖的软件库,包括 Clojure、LWJGL(用于 OpenGL、窗口和输入设备、GUI、图像 I/O 和 3D 模型加载)、Jolt Physics(用于物理模拟)、Fastmath(用于数学计算)、Comb(用于着色器模版)、Instaparse 和 Gloss(用于解析 NASA 的数据文件)等。作者还提到了使用 _deps.edn_ 文件管理不同操作系统的依赖,以及维护单独的 Git 分支来管理 Windows 平台的依赖。
关于大气渲染,作者采用了 Bruneton 的预计算大气散射模型,并使用 Clojure 实现了球体和线段上的积分高阶函数。为了加速计算,作者使用了 `pmap` 进行并行计算。此外,作者还展示了如何使用 `java.nio.ByteBuffer` 将浮点数值转换为字节数组,并使用 `clojure.java.io/output-stream` 将其写入磁盘。在游戏启动时,这些查找表会被加载并复制到 OpenGL 纹理中,用于着色器函数查找和插值。
最后,文章介绍了如何使用 Comb 这样的模版库来简化 OpenGL 着色器的编程。作者展示了一个使用多重噪波的着色器示例,通过模版可以灵活地定义噪波的参数。
- 原文: [Developing a Space Flight Simulator in Clojure](https://www.wedesoft.de/software/2025/09/05/clojure-game/)
- Hacker News: [https://news.ycombinator.com/item?id=45145794](https://news.ycombinator.com/item?id=45145794)
- 作者: todsacerdoti
- 评分: 186
- 评论数: 45
- 发布时间: 2025-09-06 09:39:01
---
## 探索12.5光年内的宇宙:恒星邻居
本文介绍了距离太阳12.5光年内的恒星系统,揭示了我们宇宙邻居的构成。文章重点介绍了这些恒星的类型、亮度、距离以及一些有趣的特征,例如是否存在行星或是否为多星系统。
文章首先指出,在这个距离范围内,大部分恒星都是红矮星,它们质量小、亮度低,是宇宙中最常见的恒星类型。离我们最近的恒星——比邻星,就是一个典型的红矮星。文章还详细介绍了其他一些著名的恒星系统,例如半人马座α星,它由两颗类似太阳的恒星组成,以及拥有已知行星的ε Eridani。此外,文章还提到了巴纳德星,它以高速运动而闻名,以及天狼星,夜空中最亮的恒星,它拥有一颗白矮星伴星。
文章还列出了一系列数据和目录,包括距离太阳20光年内的恒星列表,以及多星系统的轨道动画。这些资源为读者提供了更深入了解附近恒星的机会。通过这些信息,我们可以更好地了解太阳在银河系中的位置,以及我们周围的宇宙环境。文章还提到了搜寻地外文明的活动,例如在1960年使用绿岸射电望远镜对ε Eridani进行观测,尽管结果是负面的。
总而言之,这篇文章带领我们进行了一次迷人的宇宙之旅,探索了我们太阳系附近的恒星邻居,并揭示了宇宙的多样性和复杂性。
- 原文: [The Universe Within 12.5 Light Years](http://www.atlasoftheuniverse.com/12lys.html)
- Hacker News: [https://news.ycombinator.com/item?id=45144337](https://news.ycombinator.com/item?id=45144337)
- 作者: algorithmista
- 评分: 208
- 评论数: 144
- 发布时间: 2025-09-06 06:20:37
---
## GLM-4.5:Z.AI 最新旗舰模型及 API 使用指南
Z.AI 推出了最新的旗舰模型 GLM-4.5 和 GLM-4.5-Air,这两款模型都采用了 MoE (Mixture-of-Experts) 架构,专为 Agent 应用设计。GLM-4.5 拥有 3550 亿参数,每次前向传播激活 320 亿参数,而 GLM-4.5-Air 则更为精简,总参数 1060 亿,激活 120 亿参数。
这两款模型都经过了大规模的预训练,使用了 15 万亿 tokens 的通用领域数据,并针对代码、推理和 Agent 特定任务进行了微调。上下文长度扩展到了 128k tokens,并通过强化学习进一步提升了推理、编码和 Agent 性能。GLM-4.5 系列模型针对工具调用、网页浏览、软件工程和前端开发进行了优化,可以集成到 Claude Code 和 Roo Code 等代码中心 Agent 中,并通过工具调用 API 支持各种 Agent 应用。
GLM-4.5 系列支持混合推理模式,提供两种执行模式:“思考模式” 用于复杂推理和工具使用,以及 “非思考模式” 用于即时响应。可以通过 `thinking.type` 参数切换这些模式 (`enabled` 和 `disabled` 设置),默认启用动态思考。GLM-4.5 在综合智能方面取得了显著突破,通过原生融合推理、编码和 Agent 能力,满足了基于 Agent 的应用的复杂需求。
在多个基准测试中,GLM-4.5 的表现优异,尤其是在参数效率方面。它以更少的参数超越了其他模型,例如 DeepSeek-R1 和 Kimi-K2。GLM-4.5-Air 甚至在推理基准测试中超越了 Gemini 2.5 Flash、Qwen3-235B 和 Claude 4 Opus 等模型。GLM-4.5 系列在成本和效率方面也取得了突破,API 调用成本远低于主流模型,并且高速版本在实际测试中展现了超过 100 tokens/秒的生成速度。
为了评估 GLM-4.5 在实际 Agent Coding 场景中的有效性,Z.AI 将其集成到 Claude Code 中,并与 Claude 4 Sonnet、Kimi-K2 和 Qwen3-Coder 进行了基准测试。结果表明,GLM-4.5 在工具调用可靠性和任务完成率方面具有强大的竞争优势。Z.AI 还发布了所有 52 个测试问题以及完整的 Agent 轨迹,以供行业验证和重现。
GLM-4.5 的核心能力在于其强大的编码技能,包括智能代码生成、实时代码完成和自动错误修复。它支持包括 Python、JavaScript 和 Java 在内的主要语言,并能根据自然语言指令生成结构良好、可扩展的高质量代码。
文章还提供了快速上手指南,介绍了如何使用 `thinking.type` 参数启用或禁用 “深度思考模式”。针对不同复杂程度的任务,模型会灵活应用思考能力。文章还提供了基本的 API 调用和流式调用的代码示例,方便开发者快速上手。
- 原文: [GLM 4.5 with Claude Code](https://docs.z.ai/guides/llm/glm-4.5)
- Hacker News: [https://news.ycombinator.com/item?id=45145457](https://news.ycombinator.com/item?id=45145457)
- 作者: vincirufus
- 评分: 148
- 评论数: 69
- 发布时间: 2025-09-06 08:45:08
---
## 动画并非总是必需品:何时以及如何正确使用动画
本文主要探讨了在用户界面设计中动画的使用,强调了动画的目的性、使用频率和速度感知,旨在帮助开发者构建更出色的用户界面。
文章指出,动画如果使用得当,可以提升用户体验,使界面更具可预测性、速度感和趣味性。但如果使用不当,则会适得其反,导致界面响应迟缓、令人烦恼,甚至降低用户对产品的信任。因此,在添加动画之前,必须明确动画的目的。例如,解释产品功能、提供视觉反馈或增添趣味性。
文章还强调了动画的使用频率。频繁使用的动画可能会变得令人厌烦,而偶尔出现的动画则能带来惊喜。对于需要快速完成的任务,例如 Raycast 这样的效率工具,应避免使用动画,以减少不必要的干扰。此外,文章还强调了速度的重要性。UI 动画应尽可能快速,通常应保持在 300 毫秒以下,以提升应用的感知性能,并使用户感到界面响应迅速。
总而言之,动画并非越多越好。开发者应根据动画的目的、使用频率和速度感知等因素,谨慎地选择是否使用动画,以及如何使用动画,最终目标是构建用户乐于使用的优秀用户界面。
评论区也对此展开了热烈的讨论:
* **观点一:动画的目的应侧重于状态改变的可视化。** 有评论认为,设计师常常从美观和“愉悦”的角度考虑动画,但更重要的是利用动画帮助用户理解状态的变化。如果用户难以感知状态的改变,那么动画就能派上用场。
* **观点二:苹果的动画有时过于冗长。** 有用户指出,苹果设备的动画有时会显得缓慢,导致用户需要等待动画完成才能进行下一步操作。例如,滑动切换应用、关闭通知等操作,都存在动画过长的问题。
* **观点三:Web 设计动画有时类似于 PowerPoint。** 有评论者认为 Web 设计中的动画有时过于花哨,类似于 PowerPoint 的动画效果,反而会分散用户的注意力。
这些评论从不同的角度探讨了动画在用户界面设计中的作用,强调了动画的目的性、速度和用户体验的重要性。
- 原文: [Purposeful animations](https://emilkowal.ski/ui/you-dont-need-animations)
- Hacker News: [https://news.ycombinator.com/item?id=45139088](https://news.ycombinator.com/item?id=45139088)
- 作者: jakelazaroff
- 评分: 455
- 评论数: 122
- 发布时间: 2025-09-05 22:34:57
---
## 为什么语言模型会产生幻觉?OpenAI 的研究揭示真相
OpenAI 的研究指出,语言模型产生幻觉(自信地生成不真实的信息)的原因是,目前的训练和评估方法奖励了“猜测”,而不是承认不确定性。 即使是 GPT-5 这样的先进模型,也仍然存在幻觉问题,这表明它是一个需要解决的根本挑战。
文章解释说,幻觉是指语言模型生成的看似合理但实际上是错误的信息。 即使是看似简单的问题,模型也可能给出错误的答案。 这种现象的出现,部分原因是目前的评估方法存在缺陷,它们只关注准确率,鼓励模型进行猜测,而不是承认自己不知道。 就像多项选择题一样,猜对了可能会得分,但承认不知道肯定得零分。 在这种机制下,模型会倾向于猜测,即使它不确定答案。
OpenAI 认为,解决这个问题的一个方法是改变评估方式,对错误的答案进行惩罚,并对适当表达不确定性的行为给予奖励。 他们强调,仅仅增加一些新的、考虑不确定性的测试是不够的,更重要的是更新目前广泛使用的、基于准确率的评估标准,从而鼓励模型避免猜测。
文章还探讨了幻觉的起源,指出语言模型首先通过预训练来学习,即预测大量文本中的下一个单词。 在这个过程中,模型只看到流畅语言的正面例子,而没有明确的“真/假”标签。 这使得模型难以区分有效和无效的陈述。 就像给宠物照片标注生日一样,由于生日本质上是随机的,因此无论算法多么先进,都会产生错误。 拼写和括号等遵循一致的模式,因此错误会随着规模的扩大而消失。 但是,任意的低频事实,例如宠物的生日,无法仅从模式中预测,因此会导致幻觉。
OpenAI 总结说,即使模型的准确率接近 100%,也无法完全消除幻觉,因为有些现实世界的问题本质上是无法回答的。 然而,幻觉并非不可避免,因为语言模型可以在不确定的情况下选择放弃回答。
- 原文: [Why Language Models Hallucinate](https://openai.com/index/why-language-models-hallucinate/)
- Hacker News: [https://news.ycombinator.com/item?id=45147385](https://news.ycombinator.com/item?id=45147385)
- 作者: simianwords
- 评分: 41
- 评论数: 33
- 发布时间: 2025-09-06 15:41:48
---
## Listen Labs 的 Berghain Challenge:病毒式增长与优化难题
本文探讨了 Listen Labs 如何通过一个名为“Berghain Challenge”的解谜活动,在零付费推广的情况下实现了 3000 倍的用户增长,并深入剖析了该挑战背后的技术原理和吸引力。
Listen Labs 是一家 AI 驱动的客户洞察平台,他们设计了一个巧妙的谜题来吸引技术人才。这个谜题从旧金山的一块神秘广告牌开始,上面只有五个数字,解密后指向一个名为“Berghain Challenge”的链接。这个挑战模拟了在柏林著名夜店 Berghain 当门卫的场景,玩家需要在满足特定配额的同时,从随机到来的人群中挑选 1000 名入场者,并尽可能减少拒绝人数。
这个挑战迅速在技术社区走红,吸引了大量工程师参与。由于官方 API 的限制,许多玩家开始构建自己的本地模拟器,以便进行大规模的并行测试。文章作者也与 AI 伙伴合作,构建了一个名为 RBCR 的算法,在 30,000 名参与者中取得了不错的成绩。
这个挑战之所以如此吸引人,是因为它将一个约束优化问题包装成了一个简单易懂的游戏。玩家需要在不完全信息的情况下做出不可逆的决策,这考验了他们的实时资源分配能力。此外,人与 AI 的协作也让解决问题的过程更加高效和有趣。作者提到,AI 辅助可以让他们在过去实现一个方案的时间内测试十几个方案。
Listen Labs 的这次营销活动不仅成功地吸引了技术人才,也引发了人们对病毒式增长、优化算法和人机协作的思考。文章作者将这次挑战视为一个意外的分布式计算实验,数千名工程师共同解决同一个优化问题,其计算能力是惊人的。最终,这次活动也让人们意识到,即使在人工智能时代,领域专业知识仍然至关重要。
- 原文: [Vibe Coding Through the Berghain Challenge](https://www.nibzard.com/berghain/)
- Hacker News: [https://news.ycombinator.com/item?id=45149330](https://news.ycombinator.com/item?id=45149330)
- 作者: nkko
- 评分: 11
- 评论数: 5
- 发布时间: 2025-09-06 22:01:25
---
## 使用手写字体个性化你的网站
本文讲述了作者如何尝试使用自己的手写字体来个性化其网站,使其更具个人风格,摆脱企业网站的沉闷感。作者分享了使用开源工具(如 Inkscape 和 FontForge)创建字体的失败经历,以及最终选择使用闭源工具 Calligraphr 的过程。
作者最初尝试使用 Inkscape 和 FontForge 等开源工具创建自己的字体。然而,他发现 FontForge 的用户界面非常糟糕,操作起来非常痛苦。虽然 Inkscape 的 SVG 字体支持相对好一些,但仍然需要进行大量的路径操作,这超出了作者的知识范围。最终,作者放弃了使用开源工具,转而尝试闭源的在线工具 Calligraphr。Calligraphr 通过让用户打印模板、手写字母、扫描并上传,然后进行处理和调整,最终生成 TTF 字体文件。作者购买了 Calligraphr 的一个月 Pro 版本,并使用 Sharpie 在模板上书写字母,扫描后上传到 Calligraphr。作者通过不断迭代和调整,最终制作出了自己满意的字体,并应用到了自己的网站上。
虽然作者更喜欢开源工具,但这次经历让他意识到,在某些情况下,商业工具确实能更高效地完成工作。
- 原文: [Making a font of my handwriting](https://chameth.com/making-a-font-of-my-handwriting/)
- Hacker News: [https://news.ycombinator.com/item?id=45141636](https://news.ycombinator.com/item?id=45141636)
- 作者: kickofline
- 评分: 291
- 评论数: 69
- 发布时间: 2025-09-06 02:06:33
---
## Meschers:用几何处理技术再现不可能的物体
本文介绍了一种名为 "meschers" 的新型几何表示方法,它能够渲染和处理那些在现实生活中不可能存在的物体,例如 M.C. Escher 的画作中的经典形象。 这种表示方法不仅可以用于渲染和光照,还能进行诸如热扩散和测地距离查询等几何处理操作。
传统的 3D 建模方法通常通过切割、弯曲或扭曲物体来模拟不可能的形状,但这些操作会改变物体的局部几何结构,影响后续的图形处理应用,例如平滑处理和距离计算。 Meschers 则另辟蹊径,它基于离散外微分的思想,使用一种特殊的网格结构来表示不可能的物体。
与传统网格存储每个顶点的 3D 坐标不同,meschers 存储每个顶点的 2D 屏幕空间坐标以及每条边的深度差。 在标准网格中,沿任何闭合路径的深度差之和必须为零,但在 meschers 中,这个条件不再成立,这正是其能够表示不可能物体的关键所在。 这种方法不仅在数学上描述了视觉上的不可能性,还允许我们构建诸如拉普拉斯算子等内在几何算子,从而对 meschers 进行各种几何处理操作,例如网格平滑。
更有趣的是,meschers 还可以用于逆向渲染,将一个可能的物体(例如圆环)变形为与不可能的三角形的目标图像相匹配。 实验结果表明,优化后的结果确实是不可能的,并且可以被测量。
评论区中,有用户认为这项技术是将埃舍尔的阴影技巧形式化,并系统化地使不可能的事物看起来成为可能。 这与魔术师通过欺骗我们的感知来实现效果类似,也与我们在调试棘手的 corner case 时遇到的情况相反:观察到的行为似乎是不可能的,直到我们对可能原因的认知重新调整。
- 原文: [Meschers: Geometry Processing of Impossible Objects](https://anadodik.github.io/publication/meschers/)
- Hacker News: [https://news.ycombinator.com/item?id=45104988](https://news.ycombinator.com/item?id=45104988)
- 作者: cubefox
- 评分: 83
- 评论数: 1
- 发布时间: 2025-09-03 00:09:50
---
## 傅里叶变换:理解复杂信号的基石
本文深入浅出地介绍了傅里叶变换,解释了它如何将复杂的函数分解成简单的频率成分,以及它在数学、物理和工程领域的广泛应用。文章还回顾了傅里叶变换的历史,以及它最初被数学界接受时所面临的挑战。
文章首先从我们听音乐的体验入手,类比耳朵如何将混合的声音分解成不同的音调。然后,文章解释了傅里叶变换的数学原理,即任何函数都可以被分解成一组基本的正弦波和余弦波。这些波的频率和振幅可以通过傅里叶变换计算出来,将这些波重新组合,就能得到原始函数。
文章还介绍了傅里叶变换在各个领域的应用。例如,在计算机科学中,傅里叶变换被用于压缩文件和增强音频信号。在医学成像中,傅里叶变换被用于重建CT扫描和MRI图像。在物理学中,傅里叶变换被用于分析波的传播和量子力学现象。
文章还讲述了傅里叶变换的发现者,法国数学家傅里叶的故事。傅里叶最初研究热传导问题,为了解决这个问题,他提出了将函数分解成三角函数的思想。这个思想在当时引起了很大的争议,因为许多数学家认为,不可能用无限多个光滑的曲线来表示一个有尖锐边缘的函数。但最终,傅里叶的理论被证明是正确的,并成为了数学分析的重要工具。
为了帮助读者理解傅里叶变换的工作原理,文章还提供了一个简单的例子。文章展示了如何通过将一个函数与不同频率的正弦波相乘,来确定该函数中包含哪些频率成分。通过这种方式,傅里叶变换可以将一个复杂的函数分解成一组简单的数字,从而简化问题的分析。
总而言之,这篇文章以清晰易懂的方式介绍了傅里叶变换的基本概念、历史和应用,使读者能够理解这个重要的数学工具。
- 原文: [What Is the Fourier Transform?](https://www.quantamagazine.org/what-is-the-fourier-transform-20250903/)
- Hacker News: [https://news.ycombinator.com/item?id=45120786](https://news.ycombinator.com/item?id=45120786)
- 作者: jnord
- 评分: 58
- 评论数: 3
- 发布时间: 2025-09-04 05:53:31
---
## MentraOS:开源智能眼镜操作系统
MentraOS 是一个开源的智能眼镜操作系统,旨在为用户提供丰富的内置应用,并简化开发者的应用开发流程。它集成了 AI 助手、通知、翻译、屏幕镜像和字幕等功能,开发者只需编写一次应用,即可在各种智能眼镜上运行。
MentraOS 致力于打造一个统一的智能眼镜平台,解决目前智能眼镜应用生态碎片化的问题。通过 MentraOS,用户可以获得更加一致和便捷的使用体验,开发者也能更高效地进行应用开发和推广。该项目使用 MIT 许可证,鼓励社区参与和贡献。目前,该项目在 GitHub 上已获得 921 个 Star 和 114 个 Fork,表明其受到了广泛关注。项目还包含 230 个 Issues 和 13 个 Pull requests,显示了社区的活跃度。MentraOS 的目标是让智能眼镜像智能手机一样普及,提供一个开放、灵活和功能丰富的平台。
- 原文: [MentraOS – open-source Smart glasses OS](https://github.com/Mentra-Community/MentraOS)
- Hacker News: [https://news.ycombinator.com/item?id=45140381](https://news.ycombinator.com/item?id=45140381)
- 作者: arbayi
- 评分: 177
- 评论数: 100
- 发布时间: 2025-09-06 00:25:48
---
## 在家搭建自己的 DNS 服务器 - IPv4
本文介绍了如何在家庭网络中搭建自己的 DNS 服务器,使用 BIND 软件,并配置 IPv4 网络。目的是即使没有互联网连接,家庭网络内的服务也能正常工作,实现一定的“数字主权”。
文章详细讲解了作者在 Fedora 42 系统的 Raspberry Pi 4 上使用 BIND 的配置过程,包括安装 BIND 和相关工具,开放防火墙端口,以及配置四个关键的配置文件:`/etc/named.conf`、`/var/named/forward.homelab.jhw`、`/var/named/reverse.homelab.jhw` 和 `/var/named/reverse2.homelab.jhw`。
其中,`/etc/named.conf` 是主配置文件,定义了 BIND 监听的网络接口和管理的区域。文章详细解释了 `listen-on`、`allow-query`、`forwarders` 和 `dnssec-validation` 等选项的含义。`forward.homelab.jhw` 文件用于将 `homelab.jhw` 域名下的主机名映射到 IP 地址,而 `reverse.homelab.jhw` 和 `reverse2.homelab.jhw` 文件则用于反向解析,将 IP 地址映射到主机名。作者还分享了他的家庭网络环境,包括 Raspberry Pi 4 的 IP 地址、运行的 Linux 发行版和容器,以及其他 ThinkCentre Tiny PC 的信息。
文章还提到了使用 `.internal` 作为本地 TLD 的最佳实践,但作者选择使用 `.jhw` 作为 TLD,并解释了其中的风险。总的来说,这篇文章为希望在家中搭建 DNS 服务器的读者提供了一个详细的指南,涵盖了配置 BIND 的关键步骤和注意事项。
- 原文: [My Own DNS Server at Home – Part 1: IPv4](https://jan.wildeboer.net/2025/08/My-DNS-Part-1/)
- Hacker News: [https://news.ycombinator.com/item?id=45142397](https://news.ycombinator.com/item?id=45142397)
- 作者: speckx
- 评分: 178
- 评论数: 80
- 发布时间: 2025-09-06 03:08:49
---
## 拥抱电动未来:我购买了最便宜的二手日产聆风
本文讲述了作者购买二手日产聆风的经历,分享了他选择电动汽车的原因、购买聆风的考量,以及使用过程中的一些感受和经验。
作者在 2025 年购买了一辆 2023 年的二手日产聆风,这是他 15 年来的第一辆“新”车。他提到自己早在 2012 年就试驾过特斯拉,并意识到电动汽车在驾驶体验上的优势。由于通勤距离短,且家里有一辆用于家庭出行的 minivan,他希望购买一辆更小、更高效的汽车。
为了更好地了解电池的健康状况,作者购买了 LeLink 2 OBD-II 适配器和 LeafSpy Pro 应用程序。通过这些工具,他可以监控电池的 SOH(健康状态)和 Hx(电导率)等关键指标。他的电池显示 SOH 为 93.16%,表明电池容量良好。
作者还分享了他延长电池寿命的一些方法,包括限制快充次数、将电量保持在 50-80% 之间、每月至少充电到 100% 以平衡电池组,以及避免激烈驾驶。
选择聆风的主要原因是价格。与其他电动汽车相比,二手聆风的价格更具竞争力。此外,聆风还具备一些便利功能,如车道保持、自适应巡航和 CarPlay/Android Auto。
当然,聆风也有一些不足之处,例如缺少播放/暂停按钮、进入空挡操作繁琐,以及缺少便捷的后备箱开启方式。尽管如此,作者对他的聆风总体上还是满意的。
总的来说,作者的经历为那些考虑购买二手电动汽车的人提供了一些有价值的参考。他强调了在购买前了解电池健康状况的重要性,并分享了一些延长电池寿命的实用技巧。
- 原文: [I bought the cheapest EV, a used Nissan Leaf](https://www.jeffgeerling.com/blog/2025/i-bought-cheapest-ev-used-nissan-leaf)
- Hacker News: [https://news.ycombinator.com/item?id=45136103](https://news.ycombinator.com/item?id=45136103)
- 作者: calcifer
- 评分: 414
- 评论数: 565
- 发布时间: 2025-09-05 15:57:21
---
## 从 Docker 迁移到 Podman 的原因分析
本文探讨了作者放弃 Docker 转而使用 Podman 的原因,主要集中在 Docker 的守护进程架构带来的安全隐患和资源占用问题,以及 Podman 在安全性、稳定性和系统集成方面的优势。
文章首先回顾了 Docker 带来的容器化革命,但同时也指出了 Docker 守护进程以 root 权限运行所带来的安全风险,例如 CVE-2019-5736 等多个安全漏洞。相比之下,Podman 采用无守护进程架构,容器直接作为命令的子进程运行,并且以用户权限运行,大大降低了安全风险。即使容器内部提权到 root,也只是宿主机上的一个普通用户,攻击面显著缩小。此外,Podman 的无守护进程设计还避免了单点故障,一个容器崩溃不会影响其他容器的运行。在资源占用方面,Podman 由于没有常驻后台的守护进程,因此资源占用更少。Podman 还提供了与 Systemd 的良好集成,可以方便地生成 Systemd 单元文件,方便地管理容器服务。同时,Podman 在设计之初就考虑了 Kubernetes 的兼容性,支持原生 Pod,可以方便地将本地开发的容器应用部署到 Kubernetes 集群中。作者通过 `podman generate systemd --name my-app` 和 `podman generate kube` 命令,展示了 Podman 在 Systemd 集成和 Kubernetes 部署方面的便捷性。总而言之,作者认为 Podman 在安全性、稳定性、资源占用和系统集成方面都优于 Docker,因此选择放弃 Docker 转而使用 Podman。
- 原文: [I ditched Docker for Podman](https://codesmash.dev/why-i-ditched-docker-for-podman-and-you-should-too)
- Hacker News: [https://news.ycombinator.com/item?id=45137525](https://news.ycombinator.com/item?id=45137525)
- 作者: codesmash
- 评分: 1001
- 评论数: 591
- 发布时间: 2025-09-05 19:56:59
---
## Protobuffers 的缺陷:业余的设计与糟糕的类型系统
本文深入探讨了 Protobuffers 的设计缺陷,作者认为 Protobuffers 充斥着临时拼凑的特性,编译困难,并且解决的问题只有 Google 真正需要。更糟糕的是,这些设计问题还会渗透到使用 Protobuffers 的代码中。
文章的核心论点是 Protobuffers 的类型系统非常糟糕,充满了各种限制,例如 `oneof` 字段不能是 `repeated`,`map` 字段的键值类型有诸多限制,并且不支持用户自定义类型参数化。作者认为这些限制源于缺乏原则的设计和事后添加的特性。
为了证明这一点,作者列举了 Protobuffers 中大量不一致和不合理的规则,例如 `map` 键不能是 `enum` 类型,即使 `enum` 在其他地方都被视为整数。作者认为,只要对现代类型系统稍有了解,就能极大地简化 Protobuffers 的规范,并消除所有这些不必要的限制。
作者提出了一个更简洁的替代方案,即所有字段默认为 `required`,使用 `oneof` 定义互斥类型,并允许类型参数化。通过这三个特性,就可以定义任何可能的数据结构,并用它们重新实现 Protobuffers 的其他特性,例如 `optional` 和 `repeated` 字段。
此外,文章还批评了 Protobuffers 中标量类型和消息类型的区别对待。标量类型始终存在,即使未设置也会有默认值,这使得区分未设置和默认值变得不可能。而消息类型的行为则更加奇怪,如果字段未设置,访问时会返回一个默认初始化的副本,但修改该副本会同时修改其父对象。这种行为违反了赋值的基本原则,例如 `msg.foo = msg.foo;` 应该是一个空操作,但在 Protobuffers 中却会修改 `msg` 的状态。
总而言之,作者认为 Protobuffers 的设计充满了业余气息,类型系统糟糕,并且存在许多不合理的设计选择。这些缺陷不仅使得 Protobuffers 难以使用,还会影响到使用它的代码的质量。
- 原文: [Protobuffers Are Wrong (2018)](https://reasonablypolymorphic.com/blog/protos-are-wrong/)
- Hacker News: [https://news.ycombinator.com/item?id=45139656](https://news.ycombinator.com/item?id=45139656)
- 作者: b-man
- 评分: 174
- 评论数: 202
- 发布时间: 2025-09-05 23:25:10
---
## Chris Lattner:机器学习需要新的编程语言?
本期 Signals and Threads 播客采访了 LLVM 和 Swift 语言的创建者 Chris Lattner,探讨了机器学习领域对新编程语言的需求,以及如何设计一种既易于使用又能充分发挥现代 GPU 性能的语言。
Chris Lattner 认为,要充分利用现代 GPU 的强大功能,同时保持开发效率和乐趣,需要一种新的编程语言。这种语言需要让程序员充分了解硬件的细节,并通过类型安全的元编程使硬件管理和共享变得可行。目标是支持针对特定计算和硬件平台的专业化。他强调,为了打破现有生态系统中单一供应商控制一切的局面,必须有人来完成这项工作。访谈中还提到了 Democratizing AI compute、Modular AI、Mojo、MLIR 和 Swift 等相关链接,这些都是 Chris Lattner 在该领域探索的重要组成部分。他早年对计算机游戏的热爱,以及在 University of Portland 遇到的一位热爱编译器的教授 Steven Vegdahl,都促使他走上了编译器和编程语言设计的道路。LLVM 的开发经历让他体会到,编译器是一个大型系统,各个组件协同工作,并且可以不断迭代和改进。
播客中,Ron 和 Chris 讨论了编译器工程和语言设计之间的关系。Chris 认为,他的职业生涯是跟随自己的兴趣而发展的,他希望解决不同的问题,构建有用的东西。随着技术和能力的积累,可以实现更高的目标。LLVM 的成功在于它提供了一种中间语言,可以作为工具供人们使用。
- 原文: [ML needs a new programming language – Interview with Chris Lattner](https://signalsandthreads.com/why-ml-needs-a-new-programming-language/)
- Hacker News: [https://news.ycombinator.com/item?id=45137373](https://news.ycombinator.com/item?id=45137373)
- 作者: melodyogonna
- 评分: 286
- 评论数: 252
- 发布时间: 2025-09-05 19:33:48
---
🫵 来啊,说点有用的废话!
▲