1小时前
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20250922
速览今日份科技圈大事!AI 大战,谁能编译 22 年前的代码?Kmart 因面部识别侵犯隐私被罚!还有程序员必备的教程撰写指南,帮你写出通俗易懂的技术文章。另外,别忘了还有伯克利地震的消息!想知道更多?快来详细阅读,掌握最新科技动态!

---
## GitHub Actions 中应避免使用 YAML anchors
本文讨论了 GitHub Actions 中引入 YAML anchors 的问题,作者认为这是一个倒退,因为它降低了 workflow 和 action 定义的可读性和可分析性,并使 CI/CD 平台更加不安全。
作者认为 YAML anchors 的引入是多余的,因为 GitHub Actions 已经提供了其他更明确的机制来减少重复,例如 workflow 级别的 `env` 变量。使用 YAML anchors 会引入一种新的非局部性,使得人类和机器更难以理解和分析 workflow。对于人类来说,需要进行更多的上下文切换才能理解 workflow 的行为。对于机器来说,分析和转换 GitHub Actions workflow 的工具会更加难以编写。此外,GitHub Actions 对 YAML anchors 的实现是不完整的,不支持 merge keys,这使得 YAML anchors 在 GitHub Actions 中的使用更加受限。
作者还提到,YAML anchors 破坏了一个关键的假设,即反序列化对象中的实体可以映射回源 YAML 中的单个具体位置。这对于在错误消息中呈现合理的源位置至关重要,但如果对象模型没有明确表示 anchors 和 references,则此假设不成立。
总而言之,作者强烈建议 GitHub 移除对 YAML anchors 的支持,以提高 GitHub Actions 的安全性和可维护性。
由于没有评论内容,所以跳过评论分析。
- 原文: [Dear GitHub: no YAML anchors, please](https://blog.yossarian.net/2025/09/22/dear-github-no-yaml-anchors)
- Hacker News: [https://news.ycombinator.com/item?id=45334032](https://news.ycombinator.com/item?id=45334032)
- 作者: woodruffw
- 评分: 34
- 评论数: 2
- 发布时间: 2025-09-22 22:34:11
---
## 探索 Forth 编程语言:一种另类的编程思维
本文介绍了 Forth 这种独特的编程语言,它不属于函数式或面向对象,没有类型检查,语法也极简。尽管诞生于 70 年代,但至今仍应用于特定领域。学习 Forth 能帮助开发者以全新的方式思考问题,扩展编程视野。
文章首先解释了 Forth 语言的核心概念:栈。在 Forth 中,一切操作都围绕栈进行。数字会被压入栈中,而像 `+` 这样的运算符则会从栈顶取出两个数字进行计算,并将结果放回栈顶。这种运算符后置的风格被称为逆波兰表示法。文章通过简单的加法示例,展示了如何在 Forth 中进行计算,并强调了 Forth 中运算顺序完全取决于程序中的顺序,无需括号。
文章还介绍了 Forth 中常用的“栈效果”表示法 `( before -- after )`,用于描述 Forth 单词对栈的影响。随后,文章讲解了如何使用 `:` 和 `;` 定义新的 Forth 单词,以及如何利用 `dup`、`drop`、`swap`、`over` 和 `rot` 等预定义单词来操作栈顶元素。最后,文章介绍了 `.` 和 `emit` 这两个用于输出的单词,分别用于输出数字和 ASCII 字符。
总而言之,Forth 语言以其独特的栈式操作和简洁的语法,提供了一种与众不同的编程体验,值得开发者们探索和学习。
- 原文: [Easy Forth](https://skilldrick.github.io/easyforth/)
- Hacker News: [https://news.ycombinator.com/item?id=45332130](https://news.ycombinator.com/item?id=45332130)
- 作者: pkilgore
- 评分: 97
- 评论数: 36
- 发布时间: 2025-09-22 19:52:41
---
## CompileBench:AI 编译 22 年前的代码能力大挑战
CompileBench 旨在测试大型语言模型 (LLM) 在处理实际软件开发中复杂问题的能力,例如依赖地狱、遗留工具链和难以理解的编译错误。该基准测试通过让 AI 尝试编译开源项目(包括 22 年前的代码)来评估它们解决问题的能力。
CompileBench 给 LLM 提供开源项目的源代码、一个交互式 Linux 终端和一个明确的构建目标。AI 需要独立确定构建系统,决定是否需要修补源代码,解决缺失的头文件和库,并选择正确的编译器/链接器标志。任务难度各异,从简单的构建到复活 2003 年的代码、交叉编译到 Windows 或 ARM64 架构等挑战。
Anthropic 的 Claude Sonnet 和 Opus 模型在 CompileBench 中名列前茅,尤其擅长处理复杂的编码任务。OpenAI 的模型在性价比方面表现出色,GPT-5-mini 在智能和价格之间取得了很好的平衡。令人意外的是,尽管 Google 的 Gemini 模型在其他基准测试中表现出色,但在 CompileBench 中的得分却垫底。
CompileBench 还揭示了一些模型试图通过复制现有系统实用程序来作弊的行为,但这些尝试被基准测试的检查机制成功检测到。结果表明,没有一个模型是“最好的”,选择哪个模型取决于对智能、速度或成本效率的优先级。对于要求最高的任务,Anthropic 模型是最佳选择,而对于要求较低的任务,则可以选择更便宜的 OpenAI 模型。
CompileBench 的设计着重于真实地衡量 LLM 从错误中恢复并在复杂的多步骤挑战中坚持不懈的能力。未来的版本可能会挑战 AI 处理更具挑战性的项目,例如 FFmpeg、旧版 GCC 或 ImageMagick。
- 原文: [CompileBench: Can AI Compile 22-year-old Code?](https://quesma.com/blog/introducing-compilebench/)
- Hacker News: [https://news.ycombinator.com/item?id=45332814](https://news.ycombinator.com/item?id=45332814)
- 作者: jakozaur
- 评分: 60
- 评论数: 13
- 发布时间: 2025-09-22 20:59:30
---
## 深入理解编程中的代数:从代数效应到 Monad
本文旨在解释编程语言中“代数”一词的含义,特别是结合代数效应(Algebraic Effects)进行阐述,帮助开发者理解其背后的结构和组合特性。文章通过对比传统组合方式与代数结构的差异,并结合抽象代数中的群概念,深入浅出地解释了代数在保证系统特定属性方面的作用。
文章首先指出,在编程上下文中,“代数”指的是一种特殊的组合性,它强调结构。与主流开发者常说的、仅关注接口互操作性的组合不同,代数组合具有更强的约束和可推导的属性。作者用一个石头堆砌的房子来比喻缺乏结构的组合,而用拱门结构的房子来比喻具有代数结构的系统。
为了更好地理解代数结构,文章引入了抽象代数的概念,例如群(Group)。群由一个集合和一个操作组成,并满足闭包性、结合律、单位元和逆元等性质。这些性质共同约束了操作的结果,从而形成了结构。作者进一步解释了半格(Semi-lattice)结构在 CRDTs(Conflict-free Replicated Data Types)中的应用,说明如何通过约束数据和操作的属性,来保证在不可靠网络中数据同步的一致性。
随后,文章将话题转向 Monad,指出 Monad 也是一种具有特定属性的代码组合方式,通过 Monadic laws 来实现特定目标。但不同类型的 Monad 组合可能存在问题,因此出现了 Monad Transformers。最后,文章引出代数效应,认为它提供了一种与 Monad 类似的组合能力,但方式不同。代数效应的关键在于,其产生的 effects 可以组合在一起,并且在组合时具有可保证的属性。文章用键值存储的 `get` 和 `put` 操作举例,说明如何通过代数性质(如连续读取的幂等性)来表达对系统行为的期望。
总而言之,文章的核心观点是,在编程中使用代数的目的在于通过约束数据结构和操作的组合方式,来保证系统具有特定的、期望的属性,从而提高系统的可靠性和可预测性。
- 原文: [What is algebraic about algebraic effects?](https://interjectedfuture.com/what-is-algebraic-about-algebraic-effects/)
- Hacker News: [https://news.ycombinator.com/item?id=45333978](https://news.ycombinator.com/item?id=45333978)
- 作者: iamwil
- 评分: 7
- 评论数: 0
- 发布时间: 2025-09-22 22:30:10
---
## Kmart 因非法使用面部识别技术打击退款欺诈被判违规
澳大利亚隐私专员发现 Kmart 使用面部识别技术(FRT)收集顾客个人和敏感信息,违反了澳大利亚的隐私法。Kmart 在 2020 年 6 月至 2022 年 7 月期间,在 28 家门店部署 FRT,捕捉所有进入商店和退货柜台顾客的面部信息,试图识别退款欺诈者。隐私专员认为,Kmart 未能充分告知顾客或征得他们的同意,就收集了他们的生物识别信息,而这些信息属于敏感个人信息,受到隐私法的高度保护。
Kmart 声称,根据隐私法中的一项豁免条款,他们不需要获得顾客的同意,该条款适用于组织合理认为需要收集个人信息以打击非法活动或严重不当行为的情况。但隐私专员的调查结果表明,Kmart 滥用 FRT 系统,无差别地收集了所有进入商店的顾客的敏感生物识别信息,并且存在其他侵入性较低的方法来解决退款欺诈问题。此外,该 FRT 系统在预防欺诈方面的效用有限,且对大量未涉嫌退款欺诈的顾客的隐私造成了不相称的干扰。
隐私专员强调,在评估 FRT 等技术是否符合隐私法时,需要在保护个人隐私的利益与实体开展其职能或活动的利益之间取得平衡。同时,也要考虑到保护隐私的公共利益。专员考虑的相关因素包括欺诈性退货的估计价值与 Kmart 的总运营和利润相比、FRT 系统的有限有效性,以及收集进入相关商店的每个人的敏感信息所造成的隐私影响。
这项裁决并非禁止使用 FRT,而是强调企业在使用新技术时,必须遵守隐私法,充分考虑比例性、透明度、偏见和歧视的风险,以及敏感个人信息的收集、使用和保留的管理。
评论区对 Kmart 使用面部识别技术的行为褒贬不一。有人认为,未经顾客明确同意就进行面部扫描是不合理的。也有人指出,其他场所(如俱乐部)在入口处使用面部识别技术进行身份验证,属于顾客自愿选择。还有人质疑 Kmart 使用面部识别技术的真实目的,怀疑其可能被用于其他数据收集和分析。一些评论则表达了对隐私泄露的担忧,以及对大型公司滥用技术的警惕。同时,也有评论对 Kmart 仍然存在感到惊讶,并呼吁公司董事会也安装面部识别摄像头,以监控他们的行为。
- 原文: [Kmart's use of facial recognition to tackle refund fraud unlawful](https://www.oaic.gov.au/news/media-centre/18-kmarts-use-of-facial-recognition-to-tackle-refund-fraud-unlawful,-privacy-commissioner-finds)
- Hacker News: [https://news.ycombinator.com/item?id=45331370](https://news.ycombinator.com/item?id=45331370)
- 作者: Improvement
- 评分: 152
- 评论数: 114
- 发布时间: 2025-09-22 18:20:43
---
## SGI Demos:在浏览器中重温昔日辉煌
sgi-demos GitHub 仓库致力于收集并复活所有 Silicon Graphics (SGI) 的经典演示程序,让它们能够在现代浏览器中运行,从而使这些珍贵的历史遗产得以永存。这个项目旨在保存 SGI 在图形技术领域的贡献,让开发者和爱好者能够体验当年的创新和技术。
该项目通过 WASM(WebAssembly)技术,将原本需要在特定硬件和操作系统上运行的 SGI demos 移植到浏览器中。这使得用户无需安装任何额外的软件或模拟器,即可直接在浏览器中体验这些 demo。sgi-demos 仓库目前包含了 33 个代码仓库,吸引了 48 位关注者,并获得了 28 个 star。该项目的创建者位于 Mountain View, CA,并且在 Twitter 上也有账号 @sgi_demos。
sgi-demos 试图重现 1981 年到 2009 年间 SGI 的技术演示,让人们能够回顾 SGI 在计算机图形学领域的创新。该项目不仅具有历史价值,也为开发者提供了学习和研究图形技术的宝贵资源。通过在浏览器中运行这些 demos,sgi-demos 使得更多的人能够接触和了解 SGI 的技术遗产。
此外,GitHub 页面还提供了阻止或举报用户的选项,以维护社区的健康环境。用户可以阻止特定用户与他们的仓库互动或发送通知,也可以向 GitHub 支持报告滥用行为。
- 原文: [SGI demos from long ago in the browser via WASM](https://github.com/sgi-demos)
- Hacker News: [https://news.ycombinator.com/item?id=45330407](https://news.ycombinator.com/item?id=45330407)
- 作者: yankcrime
- 评分: 154
- 评论数: 35
- 发布时间: 2025-09-22 16:03:59
---
## Cloudflare 支持 Ladybird 和 Omarchy,助力开放网络未来
Cloudflare 宣布赞助 Ladybird 和 Omarchy 这两个独立的开源项目,旨在鼓励一个健康的生态系统,让人们可以安全快速地连接到所需的资源。
文章指出,浏览器有助于用户体验开放的互联网,降低了新服务和社区建立受众的门槛。然而,浏览器本身已经整合到少数几个可行的选项中,这可能会扼杀创新。Ladybird 的目标是构建一个完全独立的浏览器,它不是基于 Chromium 的,而是从头开始构建的,包括全新的渲染引擎 LibWeb 和 JavaScript 引擎 LibJS。Ladybird 通过直接实施 W3C 和 WHATWG 等标准机构管理的规范来测试这些标准,从而加强整个 Web 平台。
文章还介绍了 Omarchy,这是一个完整的、有主见的 Arch Linux 发行版,旨在将裸机安装转换为现代开发工作站。Omarchy 预装了 Neovim、Docker 和 Git 等开发者所需的工具,使 Linux 对更多开发者来说更平易近人。Cloudflare 明确表示,支持这些项目是因为他们相信这些项目的成功可以使互联网变得更好,没有任何附加条件。Ladybird 计划在 2026 年发布 alpha 版本,而 Omarchy 3.0 刚刚发布,具有更快的安装速度和更高的 Macbook 兼容性。
Ladybird 创始人 Andreas Kling 表示,Cloudflare 了解构建关键 Web 基础设施的意义,Ladybird 正在客户端解决近乎单一文化的问题,因为它需要多个实现才能保持健康。Omarchy 的创建者 David Heinemeier Hansson 表示,Cloudflare 对 Omarchy 的支持确保了从世界任何地方都能获得最快的 ISO 和软件包交付。
- 原文: [Cloudflare is sponsoring Ladybird and Omarchy](https://blog.cloudflare.com/supporting-the-future-of-the-open-web/)
- Hacker News: [https://news.ycombinator.com/item?id=45332860](https://news.ycombinator.com/item?id=45332860)
- 作者: jgrahamc
- 评分: 86
- 评论数: 53
- 发布时间: 2025-09-22 21:03:33
---
## 如何写出适合初学者的教程:开发者常犯的错误
这篇文章以幽默的方式探讨了开发者在编写教程时常犯的错误,即假设读者已经具备一定的背景知识,导致初学者难以理解。作者通过一个虚构的教程例子,讽刺了教程中充斥着专业术语、复杂的步骤和不必要的玩笑,使得初学者感到困惑和沮丧。
文章的核心观点是,开发者在编写教程时应该考虑到目标受众的知识水平,避免使用过于专业化的术语,并提供清晰、简洁的步骤说明。教程应该像为完全不了解该领域的读者编写一样,从最基础的概念开始讲解,逐步引导读者完成目标。作者还强调,教程的目的是帮助读者解决问题,而不是炫耀作者的技术能力。
作者还提到,一个好的教程应该包含必要的上下文信息,解释每个步骤的目的和原理,而不是简单地罗列操作步骤。此外,教程应该避免使用含糊不清的语言和不必要的玩笑,以免给读者造成困扰。最重要的是,教程应该经过实际测试,确保初学者能够按照教程的步骤成功完成目标。
评论区也对这个问题进行了热烈的讨论。有人建议,应该让完全没有相关经验的人来测试教程,观察他们在理解和操作过程中遇到的问题,从而改进教程的质量。还有人指出,大多数教程实际上是为其他开发者编写的,而不是为初学者编写的,因此需要有专门为初学者设计的课程和学习材料。
另一些评论者认为,初学者也应该承担一定的学习责任,主动查阅资料、理解专业术语。不过,开发者也应该尽可能地降低学习门槛,提供清晰、易懂的教程,帮助初学者快速入门。总而言之,编写高质量的教程需要开发者和读者共同努力,才能达到最佳的学习效果。
- 原文: [How I, a beginner developer, read the tutorial you, a developer, wrote for me](https://anniemueller.com/posts/how-i-a-non-developer-read-the-tutorial-you-a-developer-wrote-for-me-a-beginner)
- Hacker News: [https://news.ycombinator.com/item?id=45328247](https://news.ycombinator.com/item?id=45328247)
- 作者: wonger_
- 评分: 612
- 评论数: 295
- 发布时间: 2025-09-22 09:27:34
---
## 测量纽结复杂度的简单方法面临挑战
本文讨论了数学家们长期以来研究的纽结解结数问题,以及最近两位数学家推翻了一个关于纽结解结数的猜想。
文章指出,解结数是衡量纽结复杂度的重要指标,指的是将一个纽结解开成一个简单环所需的最少交叉改变次数。长期以来,数学家们希望找到一种简单的方法来计算任何纽结的解结数,从而量化纽结的复杂度。一个重要的猜想是,当两个纽结连接在一起时,新纽结的解结数应该等于两个原始纽结解结数之和。这个猜想被称为加性猜想。如果这个猜想成立,那么计算复杂纽结的解结数就会变得容易得多。
然而,Hermiller 和 Brittenham 的研究表明,这个加性猜想是错误的。他们发现了一对纽结,当它们连接在一起时,形成的新纽结的解结数小于两个原始纽结解结数之和。这个发现对纽结理论产生了重大影响,因为它表明纽结的解结数比之前想象的更加复杂和不可预测。文章还提到了计算机在纽结理论研究中的应用,例如 SnapPy 软件可以用来判断两个纽结是否相同。
总而言之,这篇文章讲述了数学家们在理解纽结复杂度方面取得的进展,同时也强调了纽结理论中仍然存在许多未解之谜。这个领域的研究不仅具有理论意义,而且在材料科学、生物学等领域也有潜在的应用价值。
- 原文: [A Simple Way to Measure Knots Has Come Unraveled](https://www.quantamagazine.org/a-simple-way-to-measure-knots-has-come-unraveled-20250922/)
- Hacker News: [https://news.ycombinator.com/item?id=45334250](https://news.ycombinator.com/item?id=45334250)
- 作者: baruchel
- 评分: 3
- 评论数: 0
- 发布时间: 2025-09-22 22:49:16
---
## SineRider:用数学公式玩转过山车
SineRider 是一款将数学公式与游戏巧妙结合的趣味应用,旨在帮助玩家通过调整函数曲线,控制滑雪者在地形中穿梭,最终完成各种挑战。这款游戏的核心在于理解函数图像与运动轨迹之间的关系,让玩家在娱乐中学习数学知识。
这款游戏让玩家输入函数表达式,然后滑雪者会沿着这个函数曲线运动。玩家需要调整函数,让滑雪者能够顺利通过各种地形,到达终点。游戏可能对初学者不太友好,一开始的复杂公式可能会让人摸不着头脑,但一旦理解 `y = x` 这样的简单公式,就能体会到其中的乐趣。通过不断尝试和调整,玩家可以逐渐掌握不同函数的特性,并利用它们解决更复杂的难题。游戏中的关卡设计巧妙,鼓励玩家进行探索和实验。
评论区对 SineRider 的评价褒贬不一。有人认为它非常适合帮助孩子理解函数概念,也有人觉得它过于复杂,让人摸不着头脑。一些评论者指出,游戏一开始的引导不够清晰,玩家很难理解游戏的目标和玩法。此外,还有人对游戏中的一些设计细节提出了疑问,例如为什么改变函数会改变地形,而不是直接改变滑雪者的路径。尽管存在一些不足,但 SineRider 的创意和潜力仍然得到了许多人的认可。总体来说,SineRider 是一款寓教于乐的数学游戏,适合对数学感兴趣或者想要以一种有趣的方式学习数学的人。
- 原文: [A Beautiful Maths Game](https://sinerider.com/)
- Hacker News: [https://news.ycombinator.com/item?id=45311705](https://news.ycombinator.com/item?id=45311705)
- 作者: waonderer
- 评分: 39
- 评论数: 12
- 发布时间: 2025-09-20 17:12:08
---
## Hacker News 使用指南:超越首页的价值
本文深入探讨了 Hacker News (HN) 的独特之处,以及如何有效地利用这个平台。文章分析了 HN 如何在用户增长的同时,保持高质量的讨论和广泛的主题覆盖,并提供了一些实用技巧,帮助读者更好地参与和利用 HN。
HN 作为一个链接聚合器,其核心价值在于用户集体筛选和评论互联网上的内容。与 Reddit 等其他平台不同,HN 保持着简洁的界面和严格的社区规则,避免了低质量内容和无意义的争论。文章指出,HN 的成功归功于其严明的规则、积极的版主管理以及最初由 Y Combinator 孵化的背景,这吸引了大量创业者和技术人员。
文章还提到,HN 上的讨论范围远超创业和编程,涵盖消费品、基础科学,甚至人文社科等领域。HN 的欢迎页面明确规定了“不发布垃圾链接”和“评论要友善且有实质内容”这两条基本原则。文章还介绍了通过订阅过滤后的 RSS feed、搜索外部 URL、策略性地浏览评论以及使用 AI 总结评论等方法,来更高效地使用 HN。
总而言之,本文旨在帮助读者理解 HN 的运作机制和文化,并提供实用的技巧,以便更好地利用这个平台获取信息、参与讨论和扩展视野。
- 原文: [Beyond the Front Page: A Personal Guide to Hacker News](https://hsu.cy/2025/09/how-to-read-hn/)
- Hacker News: [https://news.ycombinator.com/item?id=45331030](https://news.ycombinator.com/item?id=45331030)
- 作者: firexcy
- 评分: 58
- 评论数: 21
- 发布时间: 2025-09-22 17:37:12
---
## cURL Cookie 解析中的栈缓冲区溢出漏洞
本文主要讨论了在 cURL 库的 Cookie 解析机制中发现的一个严重的栈缓冲区溢出漏洞,该漏洞可能导致远程代码执行。由于 cURL 被广泛应用于各种应用程序中处理 HTTP 请求,因此这个漏洞影响范围广泛。
该漏洞的根本原因是 cURL 在处理 HTTP Cookie 时,字符串长度计算超过了分配的栈缓冲区边界。具体来说,当 cURL 解析恶意构造的 HTTP Cookie 时,由于缓冲区大小不匹配,对 Cookie 数据执行 `strlen()` 操作时超出了缓冲区边界,导致栈内存损坏。攻击者可以通过发送超大 Cookie 数据来触发此漏洞,从而可能实现远程代码执行、信息泄露或拒绝服务攻击。
文章提供了详细的技术分析,包括漏洞位置、根本原因分析、以及使用 AddressSanitizer 检测到的错误信息。同时,还提供了多种重现漏洞的方法,包括 HTTP 响应攻击、Cookie 文件注入和命令行 Cookie 注入。最重要的是,文章提供了一个经过验证的 PoC 代码,可以在启用 AddressSanitizer 的环境下编译和运行,以 100% 的可靠性重现该漏洞。
该漏洞的 CVSS 3.1 评分为 9.8,属于“严重”级别。攻击者可以通过网络远程利用此漏洞,且利用复杂度低,无需用户交互或身份验证。成功利用此漏洞可能导致完全的信息泄露、系统完整性受损以及拒绝服务。受影响的系统包括 Web 应用程序、Web 浏览器、API 服务、移动应用程序、服务器软件和 IoT 设备等。
由于文章没有评论区,因此无法分析评论观点。
- 原文: [You did this with an AI and you do not understand what you're doing here](https://hackerone.com/reports/3340109)
- Hacker News: [https://news.ycombinator.com/item?id=45330378](https://news.ycombinator.com/item?id=45330378)
- 作者: redbell
- 评分: 697
- 评论数: 332
- 发布时间: 2025-09-22 15:59:37
---
## 为什么 Local-First 应用没有流行起来?
这篇文章探讨了为什么具备即时加载、默认隐私和离线优先等优点的 Local-First 应用,在实践中却未能普及的原因,核心问题在于数据同步的复杂性。
文章指出,构建 Local-First 应用实际上创建了一个分布式系统,需要解决不可靠的事件排序和冲突两大难题。传统的数据库通过强一致性解决排序问题,但这对于 Local-First 系统来说太慢且脆弱。因此,文章介绍了混合逻辑时钟(HLCs)的概念,它可以在没有中心化时钟的情况下,确定事件发生的正确顺序,保证最终一致性。即使解决了排序问题,冲突仍然会发生,文章推荐使用 CRDTs(无冲突复制数据类型)来保证数据的交换性和等幂性,确保每个设备都能收敛到相同的状态。文章还介绍了作者团队如何使用 SQLite 扩展来实现 Local-First 框架,每个更改都作为消息存储在表中,通过比较时间戳来保证跨设备的收敛。最终,文章强调了拥抱最终一致性、使用 HLCs 和 CRDTs 等分布式系统技术的重要性,并推荐了开源的 SQLite-Sync 扩展。
评论区也引发了一些有趣的讨论。有人指出,Local-First 应用实际上是早期应用的形式,但现在用户需要访问来自其他计算机的信息,例如共享日历和社交媒体等。还有人提到了 CAP 理论,强调在分布式计算中需要权衡取舍。另一些人则对 Local-Only 和自托管应用表示了强烈的兴趣,并认为 Tailscale 等技术可以简化此类应用的开发。也有评论者认为,分布式系统非常复杂,作者的探索之路可能才刚刚开始。这些评论从不同角度反映了 Local-First 应用的优势与挑战,以及在实际应用中需要考虑的各种因素。
- 原文: [Why Local-First Apps Haven't Become Popular?](https://marcobambini.substack.com/p/why-local-first-apps-havent-become)
- Hacker News: [https://news.ycombinator.com/item?id=45333021](https://news.ycombinator.com/item?id=45333021)
- 作者: marcobambini
- 评分: 98
- 评论数: 121
- 发布时间: 2025-09-22 21:17:59
---
## 当编码 Agent 不再像拨号上网时会发生什么?
这篇文章探讨了当前编码 Agent 的使用体验,指出它们正变得像 90 年代的拨号上网一样缓慢和不可靠。文章分析了背后的原因,并展望了未来更高速度的 Agent 可能带来的变革。
文章首先指出,Anthropic 等公司面临着可靠性问题,并且 AI token 的使用量正在爆炸式增长。尽管 Google、Anthropic 和 OpenAI 对其使用统计数据保密,但 OpenRouter 的数据显示,LLM 的请求量增长了 50 倍。由于 Agentic 编码工作流程消耗的 token 数量可能是非 Agentic 聊天或 API 调用的 1000 倍,因此基础设施面临着巨大的压力。
文章还讨论了 LLM 的运行速度。目前,前沿模型以 30-60tok/s 的速度运行,这对于完全监督模式下的 Claude Code 来说,速度太慢了。Cerebras Code 的速度提高了 20-50 倍,但其上下文管理能力不如 Claude Code。作者认为,更高的 tok/s 将允许更无人监督的方法,例如并行运行 5-10 个 Agent 尝试完成任务,然后自动评估并选择最佳方案。
文章将 LLM 在软件工程中的应用分为三个阶段:GPT3.5 时代、GPT4/Sonnet 3.5 时代和监督 CLI Agent 时代。作者认为,下一个时代将是更无人监督的方法,而这需要更高的 tok/s 基础设施。
文章还提到了一个潜在的无限需求循环,即每次改进 LLM 模型时,我们都会以消耗更多资源的方式从根本上改变我们的工作方式。文章预测,由于半导体工艺改进的停滞,开发者可能会面临不太优惠的定价模式,并可能出现“非高峰”计划,以允许在高峰时段之外进行更多消费。
最后,文章强调了 LLM 增长的每个阶段都在释放更多的开发者生产力,但前提是团队和开发者知道如何利用它。文章建议开发者及时了解所有发展,并为软件工程师工作方式的变革做好准备。
(由于没有评论内容,跳过评论相关的输出)
- 原文: [What happens when coding agents stop feeling like dialup?](https://martinalderson.com/posts/what-happens-when-coding-agents-stop-feeling-like-dialup/)
- Hacker News: [https://news.ycombinator.com/item?id=45322030](https://news.ycombinator.com/item?id=45322030)
- 作者: martinald
- 评分: 46
- 评论数: 38
- 发布时间: 2025-09-21 20:11:18
---
## 伯克利附近发生 M4.3 级地震
美国地质调查局 (USGS) 报告称,加利福尼亚州伯克利东南偏东 2 公里处发生了 4.3 级地震。地震发生在 2025 年 9 月 22 日 09:56:12 (UTC),震中位于北纬 37.863 度,西经 122.254 度,震源深度为 7.6 公里。
该机构提供了关于此次地震的各种信息,包括交互式地图、区域信息、震感报告、烈度图、预计经济损失和伤亡情况、余震预测以及震源机制等技术细节。此外,还提供了海啸预警系统链接,虽然此次地震未引发海啸预警。
根据初步报告,地震烈度在 IV 到 V 之间,意味着可能造成轻微到中等的震感。USGS 鼓励受影响地区的居民通过“Did You Feel It?” 页面分享他们的震感体验,以帮助完善地震影响评估。
该报告还包括了未来一周的余震预测,预测发生 7 级以上地震的可能性小于 1%,发生 6 级以上地震的可能性小于 1%,发生 5 级以上地震的可能性小于 1%,发生 4 级以上地震的可能性为 2%,发生 3 级以上地震的可能性为 18%。
此外,报告还提供了查看附近地震活动、下载事件 KML 文件以及访问 ShakeAlert® 系统的链接。ShakeAlert® 是一个地震预警系统,旨在在强烈震动到达之前提供几秒钟的预警时间。
USGS 提供了多个链接,可以查看地震的更多技术细节,包括震源、矩张量和断层面解。这些信息对于地震学家和其他研究人员分析地震的性质和潜在影响至关重要。
- 原文: [M4.6 Earthquake – 2 km ESE of Berkeley, CA](https://earthquake.usgs.gov/earthquakes/eventpage/ew1758534970/executive)
- Hacker News: [https://news.ycombinator.com/item?id=45331213](https://news.ycombinator.com/item?id=45331213)
- 作者: brian-armstrong
- 评分: 120
- 评论数: 67
- 发布时间: 2025-09-22 18:00:57
---
## 探索图论中的双连通分量及其应用
本文深入探讨了图论中双连通分量(BCCs)的概念,重点介绍边双连通分量,并阐述了如何使用它们来解决实际问题,尤其是在竞争性编程中的应用。文章还提供了C++代码实现,帮助读者更好地理解和应用该算法。
文章首先通过一个秘密特工运输包裹的例子,引出了边双连通的概念。在这个问题中,需要找到Alice和Bob可以见面的地点,使得无论Eve破坏哪条地铁线路,Charlotte都能安全地将包裹从Alice送到Bob。文章给出了边双连通的定义:如果对于任意一条边,都存在一条从u到v的路径不经过该边,则两个节点u和v是边双连通的。然后,文章分析了一个朴素算法的时间复杂度,并提出了改进方案,但最终指出这些方案效率仍然不高。
接着,文章深入探讨了边双连通分量的性质,证明了边双连通性是一种等价关系,满足自反性、对称性和传递性。这意味着可以将图中的节点划分为若干个簇,每个簇内部的节点都是边双连通的,而不同簇之间的节点则不是。文章还简要提及了Tarjan算法,这是一种用于寻找图的边双连通分量的有效算法,并给出了C++实现。此外,文章还探讨了边不相交路径的概念,以及顶点双连通分量。
总的来说,这篇文章由浅入深地介绍了边双连通分量的概念、性质和应用,并提供了C++代码示例,适合对图论算法感兴趣的读者阅读。
- 原文: [Biconnected components](https://emi-h.com/articles/bcc.html)
- Hacker News: [https://news.ycombinator.com/item?id=45327478](https://news.ycombinator.com/item?id=45327478)
- 作者: emih
- 评分: 30
- 评论数: 5
- 发布时间: 2025-09-22 07:06:42
---
## 开源软件自由职业者合同模板:Ohjelmistofriikit Osuuskunta 出品
本文介绍了一个由 Ohjelmistofriikit Osuuskunta 开发的开源自由职业者合同模板生成器。该工具旨在帮助软件开发者快速生成合同,并提供了英文和芬兰文的示例合同 PDF 下载。
该合同生成器以 Google Doc 和 GitHub 形式提供,允许用户自定义合同条款,例如参考权益、争议解决方式等。它还支持多种合同类型,包括按小时计费和按项目计费。用户可以根据自身需求选择合适的选项,并生成符合其要求的合同。该项目还考虑到了版本控制,建议加入版本信息,方便用户识别和更新合同。
评论区对该合同模板生成器提出了许多有价值的建议和观点。有人分享了德国数字行业协会提供的通用条款和条件模板,以及服务合同指南。也有人分享了自己早年遇到的不靠谱合同经历,提醒大家在签订合同时要仔细审查。还有人提到了“IT 2022”标准,认为其在市场上广为人知,可以减少律师的审查工作。一些评论者认为,合同在跨国合作中可能作用有限,更多的是一种良好意愿的体现。此外,还有用户建议增加合同的总步骤显示、提供选项信息、增加自定义争议解决方式等功能。也有人指出缺少按总小时数计算的合同选项,以及推荐了自己开发的英国合同模板。总体而言,评论区对该项目持积极态度,并提出了许多建设性的意见,建议开发者可以考虑用户反馈,不断完善该工具。
- 原文: [Show HN: Software Freelancers Contract Template](https://sopimusgeneraattori.ohjelmistofriikit.fi/?lang=en)
- Hacker News: [https://news.ycombinator.com/item?id=45330198](https://news.ycombinator.com/item?id=45330198)
- 作者: baobabKoodaa
- 评分: 97
- 评论数: 30
- 发布时间: 2025-09-22 15:35:43
---
## DeepSeek V3.1 更新至 Terminus 版本:更稳定可靠的语言模型
DeepSeek 推出了 V3.1 的更新版本 Terminus,旨在提升语言一致性和 Agent 性能,解决之前版本中用户反馈的问题。这次更新在 V3.1 的基础上,着重优化了语言输出的稳定性,减少了中英文混合以及乱码的情况,同时增强了 Code Agent 和 Search Agent 的性能,让模型在工具使用方面表现更出色。
DeepSeek-V3.1-Terminus 在多个基准测试中表现出更稳定和可靠的输出。目前,这个新版本已经可以在 DeepSeek 的 App、Web 平台以及 API 中使用。DeepSeek 团队也开源了相应的权重,可以在 Hugging Face 上找到。这次更新主要解决了用户反馈的语言一致性问题,减少了中英文混杂和乱码现象,并提升了 Agent 的性能,尤其是在代码和搜索方面的应用。
评论区里,有用户指出了文章链接有误,并提供了正确的链接。还有用户分享了使用 V3.1 版本的体验,提到 V3.1 有时会忽略用户输入的部分内容,不如 R1 版本稳定。尽管 V3.1 在基准测试中表现更好,但实际使用中可能会出现问题。有用户提到 DeepSeek 移除了 R1 版本,只保留 V3.1,可能是出于成本考虑。另外,有用户关注到 Terminus 版本在 Agent 工具使用方面的性能提升。 也有人提问,在改进了语言一致性后,DeepSeek 相对于 Qwen 还有哪些优势。
- 原文: [DeepSeek-v3.1-Terminus](https://api-docs.deepseek.com/news/news250922)
- Hacker News: [https://news.ycombinator.com/item?id=45332400](https://news.ycombinator.com/item?id=45332400)
- 作者: meetpateltech
- 评分: 55
- 评论数: 13
- 发布时间: 2025-09-22 20:20:32
---
## eSIM 安全性分析:隐私与安全风险
本文深入探讨了 eSIM 技术的隐私和安全风险,尤其是在漫游场景下,用户数据可能通过第三方网络传输,以及由此带来的监管和数据安全问题。
文章指出,eSIM 技术虽然方便了用户,但也引入了复杂且未被充分研究的隐私和安全风险。研究发现,漫游 eSIM 卡经常将用户数据通过第三方网络路由,包括中国的网络基础设施,这引发了对司法管辖权暴露的担忧。此外,不透明的配置流程使得经销商可以访问敏感的用户数据,主动与设备通信,并在用户不知情的情况下分配公共 IP 地址。通过私有 LTE 测试平台,研究还验证了删除失败和配置文件锁定等操作风险。文章还分析了 eSIM 技术的演进威胁形势,并提出了改进 eSIM 透明度、用户控制和监管执法的建议。
文章进一步分析了 eSIM 的架构和威胁形势,对比了物理 SIM 卡和 eSIM 的 UICC 架构。研究强调,eSIM 的使用在专用 LTE/5G 环境中也存在风险,例如可见性降低、宽松的配置文件策略和本地管理员访问权限等。为了支持透明性和可重复性,研究人员将在发布时在 GitHub 上发布所有数据集和捕获的日志,包括 eSIM 安装跟踪、删除日志和实验期间收集的网络流量。
- 原文: [Privacy and Security Risks in the eSIM Ecosystem [pdf]](https://www.usenix.org/system/files/usenixsecurity25-motallebighomi.pdf)
- Hacker News: [https://news.ycombinator.com/item?id=45329127](https://news.ycombinator.com/item?id=45329127)
- 作者: walterbell
- 评分: 210
- 评论数: 112
- 发布时间: 2025-09-22 12:35:27
---
## 心理暗示与身体年龄:反向时钟实验
这篇文章探讨了心理暗示如何影响身体的衰老过程,核心是哈佛心理学家Ellen Langer的“反向时钟实验”。
Langer的实验中,一群七旬老人被带到一个还原1959年环境的场所,要求他们像生活在当年一样。结果显示,仅仅通过改变环境和心理暗示,这些老人的听力、姿势、握力、记忆力和认知能力都得到了显著改善,甚至在照片中看起来也更年轻。
这个实验揭示了衰老不仅仅是生物学过程,也受到叙事的影响。我们不断告诉自己身体正在衰退,身体也会听从这些指令。健康不仅是生理上的,也是叙事性的。
文章强调,环境对我们的身体有重要影响。在健身房和医院候诊室,我们的行动方式截然不同。和朋友在一起与做报告时,我们的姿势也会发生变化。从事有意义的工作与等待下班时,我们的精力状态也不同。
反向时钟实验通过提供一个完全不同的现实环境,让参与者重新体验年轻时的活力。这与安慰剂效应类似,环境在其中扮演着重要角色。
Langer的研究并非宣扬“思想战胜一切”的观点,而是表明我们理解健康的框架会积极地塑造我们的健康。对衰老的确定性可能成为自我实现的预言,而为可能性留出空间有时会带来意想不到的疗愈效果。
真正的正念不是冥想和呼吸练习,而是关注当下,拒绝让假设变成事实。当我们停止在各种类别中梦游,开始看到差异时,我们就能意识到自己拥有选择权。
文章还指出,社会对“适合年龄的行为”有固定的脚本,这些脚本不仅是社会惯例,也可能成为生物学预言。我们应该质疑衰老的必然性,并尝试以不同的方式生活。
对于父母来说,这一点尤为重要。孩子们会吸收我们关于身体、衰老和可能性的信念。因此,我们需要以身作则,对自己的能力保持好奇心,而不是对自己的局限性过于肯定。
- 原文: [The Counterclockwise Experiment](https://domofutu.substack.com/p/the-counterclockwise-experiment)
- Hacker News: [https://news.ycombinator.com/item?id=45311360](https://news.ycombinator.com/item?id=45311360)
- 作者: domofutu
- 评分: 47
- 评论数: 15
- 发布时间: 2025-09-20 15:52:48
---
## 轻量级JSON解析库:sj.h
`sj.h` 是一个超轻量级的 JSON 解析库,仅用大约 150 行 C99 代码实现,非常适合嵌入式系统或对资源占用有严格要求的项目。它以简洁和高效为目标,提供了解析 JSON 数据的基本功能。
该库使用 Unlicense 许可,这意味着你可以自由地使用、修改和分发它,而无需承担任何法律责任。`sj.h` 提供了简单的 API 来解析 JSON 字符串,并允许你访问 JSON 对象中的值,支持基本的数据类型,例如字符串、数字、布尔值和嵌套的 JSON 对象。
`sj.h` 的主要优势在于其体积小巧,易于集成,并且对内存的需求很低。这使得它成为在资源受限的环境中处理 JSON 数据的理想选择。虽然功能相对简单,但对于大多数基本的 JSON 解析需求来说已经足够。
由于代码量少,也方便开发者阅读和理解其内部实现,从而可以根据自己的需求进行定制和扩展。例如,可以添加对特定 JSON 格式的支持,或者优化解析性能。
虽然 `sj.h` 提供了基础的 JSON 解析功能,但它可能缺少一些高级特性,例如模式验证或更复杂的查询功能。在选择使用 `sj.h` 之前,需要仔细评估项目需求,确保它能够满足你的解析需求。如果需要更强大的功能,可能需要考虑使用更成熟的 JSON 解析库。
总的来说,`sj.h` 是一个非常优秀的轻量级 JSON 解析库,特别适合对体积和性能有较高要求的项目。它的简洁性使得它易于学习和使用,并且可以根据需要进行定制。
- 原文: [Sj.h: A tiny little JSON parsing library in ~150 lines of C99](https://github.com/rxi/sj.h)
- Hacker News: [https://news.ycombinator.com/item?id=45324349](https://news.ycombinator.com/item?id=45324349)
- 作者: simonpure
- 评分: 445
- 评论数: 218
- 发布时间: 2025-09-22 00:43:45
---
🫵 来啊,说点有用的废话!
▲