29天前
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20250725
想知道Red Bull F1网站还有哪些优化空间?DE9和DB9到底哪个叫法才专业?最新LLM API价格战打响,谁家更划算?还有超安全的安卓系统GrapheneOS深度测评!当然,别忘了还有AI Agentic IDE、Lisp项目推荐、以及关于内存安全与线程安全的重要讨论,满满干货,等你来挖!

---
## F1 网站性能分析:Red Bull 网站的优化空间
本文是 F1 网站性能分析系列的第三篇,聚焦 Red Bull 网站,探讨其在加载速度和用户体验方面的优化空间。虽然 Red Bull 网站在图形丰富度和互动性上表现出色,且相较于 2019 年有了显著提升,但仍然存在一些性能瓶颈。
文章指出了 Red Bull 网站存在的几个主要问题:首先,不必要的内联导致内容渲染延迟 3 秒。大量的 CSS 代码被内联到 HTML 中,但利用率不高,造成资源浪费。作者建议针对首屏内容定制内联代码,其余部分通过外部资源加载。其次,主图像加载延迟 10 秒,这是由于 JavaScript 响应式图像实现方式不当造成的。文章建议使用真实的响应式图像,并避免额外的连接,将图像和字体资源放置在同一服务器上。
此外,文章还提到主图像优化不足,关键图像通过 JavaScript 加载导致延迟 40 秒,以及 Cookie 弹窗延迟显示等问题。针对这些问题,作者提出了具体的优化建议,例如使用 AVIF 格式处理带 Alpha 通道的图像,避免使用 JavaScript 加载图像,以及优化图像质量等。通过解决这些问题,Red Bull 网站的性能可以得到进一步提升,从而改善用户体验。
总而言之,Red Bull 网站在性能方面仍有改进空间,通过优化图像处理、减少不必要的资源加载和采用更高效的编码方式,可以显著提升网站的加载速度和响应能力。
- 原文: [Who has the fastest F1 website (2021)](https://jakearchibald.com/2021/f1-perf-part-3/)
- Hacker News: [https://news.ycombinator.com/item?id=44682932](https://news.ycombinator.com/item?id=44682932)
- 作者: tosh
- 评分: 84
- 评论数: 20
- 发布时间: 2025-07-25 21:30:54
---
## 技术正名:为什么是 DE9 而不是 DB9?
本文探讨了我们常说的 "DB9" 串口连接器的正确名称应该是 "DE9",并解释了名称背后的技术原因。
文章指出,D-sub 连接器的命名规则中,第一个字母 "D" 代表 D-subminiature 系列,第二个字母代表连接器外壳的尺寸。"A" 代表 15 针,"B" 代表 25 针,"E" 代表 9 针。因此,9 针 D-sub 连接器的正确名称应该是 DE9。之所以出现 "DB9" 这种误称,是因为早期的 IBM PC 使用 DB25 连接器,当 9 针串口出现后,人们习惯性地沿用了 "DB" 的叫法,并更改了数字。SparkFun 决定在其新产品中使用正确的 DE9 命名,旨在提高技术准确性,并为社区提供学习机会。虽然 "DB9" 已经成为约定俗成的叫法,但从技术角度来看,DE9 才是正确的。SparkFun 认为坚持正确的命名方式,能够帮助纠正这个存在了几十年的错误。
评论区也对这个话题展开了讨论,观点各异:
* 有人认为,比起使用标准机构定义的术语,更重要的是使用大家都懂的术语。在文档中,可以同时使用标准术语和常用术语,例如 "8P8C (commonly RJ45)"。
* 有人好奇为什么外壳尺寸和针脚数量要分开指定,也许最初的计划是在相同尺寸的外壳中使用更少的针脚。
* 有人表示自己总是直接称其为串口,因为记不住 DB9。
* 有人指出 VGA (DE-15) 以及键盘鼠标 (Mini DIN #6) 的命名也不符合这个规则。
* 有人认为,重要的是实用性,没有人会因为 "DB9" 这个叫法而被搞糊涂。
* 有人觉得 DB9 更容易发音,而且大家都明白意思,所以会继续使用 DB9 这个叫法。
* 有人质疑文章中 "DE9 是正确的技术名称" 这一说法,并引用维基百科的解释,认为 "D" 是系列名称,后面的字母代表外壳尺寸,这种说法似乎更合理。
总的来说,虽然技术上 DE9 是正确的,但 DB9 已经成为广泛接受的术语。在实际应用中,选择使用哪个名称取决于具体语境和沟通对象。重要的是确保信息的准确传递,而不是一味追求技术上的正确性。
- 原文: [It's DE9, Not DB9](https://news.sparkfun.com/14298)
- Hacker News: [https://news.ycombinator.com/item?id=44682964](https://news.ycombinator.com/item?id=44682964)
- 作者: jgrahamc
- 评分: 46
- 评论数: 19
- 发布时间: 2025-07-25 21:35:09
---
## LLM API 价格一览:PricePerToken.com 追踪最新模型价格
PricePerToken.com 汇总了 OpenAI、Anthropic、Google 等主流 LLM API 的最新价格,方便开发者比较不同 AI 模型的成本,找到最划算的方案。该网站列出了每个模型的输入和输出成本(每百万 tokens),并会每周更新 LLM 定价变化和新模型信息。
网站数据来源于官方渠道,但需要注意的是,不同提供商计算 token 的方式可能不同,一般来说,一个 token 相当于 3-4 个字符。开发者应参考各提供商的文档,了解具体的 token 化方法。网站还提供了一个图表指标,展示了不同模型的定价。表格中列出了 OpenAI、Google 和 Anthropic 等公司的各种模型,包括 GPT-4.1-nano、Gemini 2.0 Flash、Claude Haiku 3 等,并详细列出了它们的输入和输出成本。
该网站旨在解决开发者需要访问各个供应商网站才能获取最新模型价格的不便之处,将所有信息集中在一个地方。未来,该网站还计划增加图像模型的价格比较。
评论区对该网站提出了不少有价值的建议和反馈。有人指出,数据可能存在错误,例如 Google Gemini 2.5 Flash-Lite 的价格与官方文档不符。还有人认为,除了价格,用户体验还受到其他因素的影响,比如不同提供商对速度、成本等参数的优化,以及模型量化、批量定价等因素。
一些评论者建议增加 OpenRouter 的价格信息,或者添加时间维度,跟踪价格随时间的变化。还有人指出,不同提供商和模型之间的 token 并不等价,因此更重要的是了解特定查询或答案的成本。有人希望能够比较不同方案的成本,例如使用 Copilot Pro 与直接使用 Claude 的成本对比。总的来说,评论区认为该网站很有价值,但也存在改进空间,例如更准确的数据、更全面的比较维度和更友好的用户界面。
- 原文: [Up to date prices for LLM APIs all in one place](https://pricepertoken.com/)
- Hacker News: [https://news.ycombinator.com/item?id=44682465](https://news.ycombinator.com/item?id=44682465)
- 作者: alexellman
- 评分: 93
- 评论数: 61
- 发布时间: 2025-07-25 20:39:41
---
## dwl:基于 wlroots 的 Wayland 窗口管理器
dwl 是一个基于 wlroots 的 Wayland 窗口管理器,旨在 Wayland 世界中填补 dwm 在 X11 中的角色,特别是在功能和理念方面。它像 dwm 一样,易于理解、修改和通过补丁扩展,由一个 C 源文件(或少量文件)组成,并通过 `config.h` 进行配置,并且尽可能减少外部依赖。
dwl 的主要特点包括:与 dwm/Xlib 提供的功能类似,例如简单的窗口边框、标签、键盘绑定、客户端规则、鼠标移动/调整大小;可配置的多显示器布局支持,包括位置和旋转;可配置的 HiDPI/多 DPI 支持;空闲抑制协议,允许 mpv 等应用程序禁用空闲监视;通过 stdout/stdin 向外部状态栏提供信息;通过 xdg-activate 协议提供紧急提示;通过 ext-session-lock-v1 协议支持屏幕锁定器;各种 Wayland 协议;由 wlroots 提供的 XWayland 支持(可以在 `config.mk` 中启用);零闪烁;Layer Shell 弹出窗口(由 Waybar 使用);以及由场景图 API 提供的损坏跟踪。
要构建 dwl,你需要安装 libinput、wayland、wlroots(使用 libinput 后端编译)、xkbcommon 和 wayland-protocols 等依赖项。如果启用 XWayland 支持,还需要 libxcb、libxcb-wm 和 wlroots(使用 X11 支持编译)。配置通过编辑 `config.h` 并重新编译来完成。dwl 可以在 wlroots 支持的任何后端上运行,包括 X11 或 Wayland 会话中的单独窗口,以及直接从 VT 控制台运行。可以使用 `-s` 选项在启动时自动运行脚本或命令。
文章还提到,dwl 并非旨在提供所有功能,而是坚持那些必要、简单且易于实现的特性。它鼓励用户分享他们创建的补丁,并提供了一个 dwl-patches 仓库。此外,文章还提供了一些有用的资源链接,帮助用户从 X 迁移到 Wayland。
- 原文: [Dwl: Dwm for Wayland](https://codeberg.org/dwl/dwl)
- Hacker News: [https://news.ycombinator.com/item?id=44683011](https://news.ycombinator.com/item?id=44683011)
- 作者: theycallhermax
- 评分: 34
- 评论数: 14
- 发布时间: 2025-07-25 21:40:19
---
## Programming Vehicles in Games: A Deep Dive
这篇文章主要介绍了在游戏中编程车辆所需的基本原理,并探讨了如何通过操纵现实来传递驾驶体验。文章强调游戏不是物理引擎,而是体验,并分析了从《马里奥赛车》到《Assetto Corsa》等不同游戏中车辆模拟方式的差异。
文章首先指出,游戏中的车辆体验范围非常广泛,关键在于理解游戏不是单纯的物理引擎,而是要传递某种体验。 赛车游戏尤其会刻意操纵现实来达成这种体验。作者以自己的游戏 AV Racer 为例,讲述了从最初简单的牛顿模型到最终通过各种“hack”手段来模拟驾驶感觉的迭代过程。AV Racer 的早期版本感觉像是在冰上滑行的机器人冰球,而不是一辆真正的汽车。作者通过添加非线性曲线、平滑函数、夸张的漂移等方式,不断调整参数,最终实现了 snappy、responsive 和 fun 的驾驶体验。作者强调,如果目标是捕捉驾驶体验,即使没有真实的物理模拟,也能取得一定的进展,但最终会遇到瓶颈。
文章还提到,人们对车辆的期望不仅仅来自亲身经历,还受到电影、游戏等流行文化的影响。因此,在游戏中实现车辆时,关键问题不是“需要模拟哪些真实的物理”,而是“想要传达什么样的体验”。作者认为,模拟车辆的挑战在于连接体验和机器这两个复杂的世界,需要理解两者,才能决定如何以及在哪里打破规则。
由于没有评论内容,这里跳过评论分析。
- 原文: [Programming Vehicles in Games](https://wassimulator.com/blog/programming/programming_vehicles_in_games.html)
- Hacker News: [https://news.ycombinator.com/item?id=44683682](https://news.ycombinator.com/item?id=44683682)
- 作者: Bogdanp
- 评分: 10
- 评论数: 0
- 发布时间: 2025-07-25 22:41:03
---
## 蒙大拿迷你计算机:一个可视化的学习平台
蒙大拿迷你计算机(MTMC-16)是一个虚拟计算机,旨在以有趣和可视化的方式展示数字计算的工作原理。它融合了PDP-11、MIPS、Scott CPU、Game Boy和JVM的设计理念,构成一个相对简单的16位计算机,可以完成基本的计算任务。
该计算机通过Web界面展示,包括控制台、显示器等所有I/O设备,以及计算机状态的可视化表示。此外,还内置了一个代码编辑器,用于构建和调试计算机软件。你可以下载jar文件,并通过快速入门指南开始使用。
MTMC-16具有16位架构、字节寻址、4KB内存、16个寄存器和一个160x144的2位灰度显示器。它还包括一个用于文本输入/输出和命令的控制台,以及一个操作系统(MTOS)。核心数据类型为有符号16位整数和字节。
该项目还提供了丰富的文档,包括快速入门指南、计算机规格、汇编语言指南和常见问题解答。如果你对计算机体系结构、汇编语言或虚拟计算机感兴趣,这是一个值得探索的项目。
## 评论区观察
评论区里,一位来自Bozeman的居民,同时也是蒙大拿州立大学(MSU)的校友,表达了对母校的项目登上HN首页的惊喜和赞赏。另一位用户分享了一个有趣的事实,即可以将起始模式传递到Life程序中,并推荐了一个名为galaxy.cells的模式。还有一位用户对是否可以下载或在线互动该项目表示好奇。
- 原文: [Show HN: The Montana MiniComputer](https://mtmc.cs.montana.edu/)
- Hacker News: [https://news.ycombinator.com/item?id=44683490](https://news.ycombinator.com/item?id=44683490)
- 作者: recursivedoubts
- 评分: 10
- 评论数: 6
- 发布时间: 2025-07-25 22:25:53
---
## 使用自然语言和 SQL 查询 Apple Health 数据的 MCP 服务器
这个 GitHub 项目 `apple-health-mcp` 提供了一个 MCP (Message Control Protocol) 服务器,允许开发者使用自然语言和 SQL 语句来查询 Apple Health 数据。这意味着,你可以用更直观的方式访问和分析你的健康数据,而不需要深入了解 Apple HealthKit 的底层 API。
该项目由 neiltron 开发,旨在简化 Apple Health 数据的访问过程。通过这个服务器,开发者可以构建各种应用,例如个性化健康分析工具、健康趋势可视化界面等。该项目目前有 89 个 star 和 2 个 fork,表明社区对这个项目有一定的兴趣。
这个工具的核心价值在于它提供了一个抽象层,使得与 Apple Health 数据的交互更加简单和灵活。开发者不再需要编写复杂的代码来处理 HealthKit 的数据格式和查询逻辑,而是可以通过自然语言或 SQL 语句来表达他们的需求。这大大降低了开发难度,并提高了开发效率。
此外,该项目还具有一定的扩展性。开发者可以根据自己的需求,定制查询逻辑和数据处理方式。例如,可以添加自定义的自然语言解析规则,或者使用 SQL 语句进行更复杂的数据分析。
虽然该项目目前还没有 issue 或 pull request,但它提供了一个有潜力的解决方案,可以帮助开发者更好地利用 Apple Health 数据。随着健康数据应用的普及,这类工具的需求将会越来越大。
- 原文: [Show HN: Apple Health MCP Server](https://github.com/neiltron/apple-health-mcp)
- Hacker News: [https://news.ycombinator.com/item?id=44661673](https://news.ycombinator.com/item?id=44661673)
- 作者: _neil
- 评分: 72
- 评论数: 18
- 发布时间: 2025-07-24 01:23:23
---
## AI技术成熟的量化评估与透明度
Terence Tao的这篇帖子讨论了随着AI技术的发展,评估标准需要从定性成就转向更精确的量化指标,并强调了资源消耗和透明度在AI大规模应用中的重要性。
文章指出,早期技术发展侧重于“谁第一个实现”这类里程碑式事件,但成熟技术更关注成本、效率、安全性和可扩展性。类比航空业的发展,从莱特兄弟的首次飞行到如今安全经济的航空旅行,依赖于持续的量化改进。作者认为,AI正处于从定性到定量的过渡阶段,需要关注成本效益、安全性和可扩展性,而不仅仅是证明可行性。因此,在报告AI成果时,必须公开资源成本,包括失败案例,以更准确地评估成功率。即使成功案例中没有实际触发人工干预,但如果需要专家监督,这也应计入成本。
作者还提到,不同规模的AI模型有各自的用武之地。他以Equational Theories Project为例,说明了“廉价”AI可以处理大部分任务,而“昂贵”AI则用于最后阶段,并与人类协同工作。他强调,未来需要标准化的基准和竞赛,预先披露资源使用和方法,以准确衡量量化进展。作者总结道,AI应该像早期飞行里程碑一样,过渡到衡量单位认知劳动力的可靠性和效率。
评论区主要观点集中在以下几点:
* 有人认为,更重要的是时间效率,例如Lean、Coq等工具如何压缩时间。
* 有人赞同作者的观点,认为在证明可行性之后,经济性变得至关重要,并提到了ARC-AGI的评估方法,该方法同时考虑了得分和价格。
* 有人简化了作者的观点,认为应该使用较小的模型处理大部分工作,而较大的模型处理精细细节。
* 有人指出,Terence Tao的观点不仅仅是大小模型的问题,更重要的是不要只发布“我的模型很棒”的结果,而忘记报告训练成本。
- 原文: [Quantitative AI progress needs accurate and transparent evaluation](https://mathstodon.xyz/@tao/114910028356641733)
- Hacker News: [https://news.ycombinator.com/item?id=44680308](https://news.ycombinator.com/item?id=44680308)
- 作者: bertman
- 评分: 167
- 评论数: 78
- 发布时间: 2025-07-25 14:47:07
---
## GrapheneOS:一个强化安全的安卓构建版本
本文介绍了 GrapheneOS,一个基于 Android 开源项目 (AOSP) 的安全强化型 Android 系统,旨在提升用户隐私和安全性。GrapheneOS 通过移除不必要的代码并添加大量安全增强功能,试图打造一个更值得信赖的移动操作系统。
GrapheneOS 的核心目标是加强 Android 系统对抗各种威胁,并更好地服务于用户的隐私需求。它基于 AOSP,但移除了大量代码并添加了许多更改。这些更改包括强化 `malloc()` 库和使用额外的控制流完整性功能,这些改进在后台默默运行,旨在提升系统的整体安全性。然而,这些修改有时可能会导致应用程序出现兼容性问题。
GrapheneOS 对硬件支持非常严格,目前仅支持 Google Pixel 6 到 Pixel 9 设备,以及部分 Pixel 4 和 5 设备。官方强烈推荐使用较新的 Pixel 设备,因为它们提供更长的支持周期(至少 7 年)以及硬件内存标记等先进安全功能。硬件内存标记可以有效防止针对操作系统和兼容应用程序的漏洞利用。
文章作者分享了自己安装 GrapheneOS 的经历,他购买了一台 Pixel 9 设备来体验 GrapheneOS,希望它能替代原生的 Android 系统。安装过程分为网页安装和命令行安装两种方式,作者最初尝试了命令行安装,但未能成功。最终,通过网页安装方式顺利完成了 GrapheneOS 的安装。
初次启动 GrapheneOS,会发现它与预装大量应用程序的普通 Android 系统截然不同。GrapheneOS 预装的应用程序非常少,只有浏览器、相机、PDF 阅读器和应用商店等基本应用。其中,浏览器是 Chromium 的一个分支,名为 Vanadium,它启用了严格的站点隔离,并添加了许多代码强化功能。GrapheneOS 相机应用程序默认会移除 Exif 元数据,并且位置元数据需要单独启用。
GrapheneOS 预装的应用商店只提供少量应用程序,但用户可以安装 Accrescent 应用商店,它是一个专注于安全和隐私的替代应用仓库。Accrescent 提供了几十个额外的应用程序,包括 Organic Maps、Molly (Signal 的一个分支) 和 IronFox (Firefox 的一个强化版本)。
- 原文: [Graphene OS: a security-enhanced Android build](https://lwn.net/SubscriberLink/1030004/898017c7953c0946/)
- Hacker News: [https://news.ycombinator.com/item?id=44676691](https://news.ycombinator.com/item?id=44676691)
- 作者: madars
- 评分: 597
- 评论数: 348
- 发布时间: 2025-07-25 05:48:53
---
## 庆祝 MDN 成立 20 周年:Web 开发者的重要里程碑
MDN 迎来了 20 周年纪念,这篇文章回顾了 MDN 从最初的社区驱动 Wiki 发展成为 Web 开发者最值得信赖和全面的资源的过程。文章强调了 MDN 在帮助各个技能水平和背景的人构建更好的 Web 方面所发挥的关键作用,并感谢了所有贡献者和合作伙伴。
MDN 最初是为了帮助开发者应对快速发展的 Web 技术,重点关注 Web 标准。 如今,MDN 拥有近 14,000 页文档、超过 33,000 篇本地化文章以及近 18,000 项功能的兼容性数据。Mozilla 收到了来自 Microsoft 和 web.dev 团队的特别蛋糕,以庆祝这个特殊的日子。文章还鼓励用户在社交媒体上分享他们与 MDN 的故事,并参与到 MDN 的文档编写中来。MDN 已经帮助人们构建了一个开放的生态系统,数十亿人使用它来工作、学习、购物、社交和分享他们的作品。
评论区对 MDN 的贡献和价值表示赞赏,但也提出了一些改进建议。
* **idoubtit** 指出 MDN 在记录复杂的现代 Web 技术方面做得很好,但也提到了一些内容质量问题,例如过时的框架教程和 WebExtension 文档的不足。
* **susam** 分享了他使用 MDN 的 Canvas API 和 OscillatorNode 文档创建 Space Invaders 游戏的经历,表达了对 MDN 的感谢。
* **Doohickey-d** 对 MDN 团队在 2020 年被裁员后是否重新组建表示疑问,并对 MDN 依然存在并保持更新表示赞赏。
* **nonhaver** 不理解为什么有人在周年纪念帖子里抱怨这个免费服务,他认为 MDN 是一个宝贵的资源,可以促进探索。
* **miiiiiike** 认为 MDN 在解释开发者不熟悉的特性方面存在不足,有时难以理解其用途和解决的问题,希望 MDN 能像《CSS:权威指南》一样清晰易懂。
* **donatj** 询问是否有直接捐赠给 MDN 的方式,而不是捐赠给整个 Mozilla 组织。
* **vorgol** 形容发现 MDN 就像潜入巫师的圣地阅读秘密卷轴。
* **dwoldrich** 表示过去 15 年里,他每个月至少使用一次 DuckDuckGo 的 `!mdn Array` 命令。
总的来说,评论区对 MDN 的价值表示肯定,同时也提出了改进内容质量、更新速度和解释清晰度等方面的建议。
- 原文: [Celebrating 20 Years of MDN](https://developer.mozilla.org/en-US/blog/mdn-turns-20/)
- Hacker News: [https://news.ycombinator.com/item?id=44678512](https://news.ycombinator.com/item?id=44678512)
- 作者: soheilpro
- 评分: 269
- 评论数: 36
- 发布时间: 2025-07-25 09:40:11
---
## 警惕!谷歌邮箱遭遇 DKIM 重放攻击技术分析
本文深入剖析了一起利用 DKIM 重放技术伪造谷歌官方邮件的网络钓鱼攻击,旨在提醒广大用户和开发者提高安全意识,防范此类欺诈行为。
攻击者首先获取一封真实的谷歌邮件,提取包括 DKIM 签名在内的完整邮件内容。由于 DKIM 签名在邮件内容未被修改的情况下仍然有效,攻击者便利用 Outlook 等邮箱服务,通过中间转发服务器(如 Jellyfish SMTP 和 Namecheap 的 PrivateEmail)发送伪造邮件。这些邮件通过了 DKIM 和 DMARC 验证,最终成功进入用户的 Gmail 收件箱,极具迷惑性。邮件内容通常声称用户的谷歌账户因法律原因需要提取内容,并诱导用户点击链接访问伪造的谷歌 Sites 页面,窃取用户凭据。
攻击者利用 Google Sites 搭建虚假页面,原因是 Google Sites 允许任何拥有 Google 账户的用户创建网站,并托管在 `sites.google.com` 域名下。攻击者可以利用这一点,创建看起来非常真实的虚假登录页面或支持页面,诱骗用户输入用户名和密码。由于域名是 `google.com`,许多用户可能会放松警惕,从而上当受骗。因此,即使域名看起来是合法的,也务必仔细检查内容是否真实。
此外,文章还强调了安全的重要性,建议用户不要轻易点击可疑邮件中的链接,更不要在不明网站上输入个人信息。如不确定邮件的真伪,应寻求专业人士的帮助,在沙盒环境中进行分析。
(由于您没有提供评论内容,因此跳过评论分析部分。)
- 原文: [Google spoofed via DKIM replay attack: A technical breakdown](https://easydmarc.com/blog/google-spoofed-via-dkim-replay-attack-a-technical-breakdown/)
- Hacker News: [https://news.ycombinator.com/item?id=44679854](https://news.ycombinator.com/item?id=44679854)
- 作者: frasermarlow
- 评分: 219
- 评论数: 79
- 发布时间: 2025-07-25 13:28:40
---
## `tree` 命令的 JSON 输出与文件描述符的那些事
文章讨论了 `tree` 命令 2.0.0 版本中引入的通过文件描述符 3 输出 JSON 数据的特性,以及后续版本因兼容性问题做出的修改。最初的设想是,如果文件描述符 3 存在,`tree` 就会自动输出 JSON 格式的数据。然而,开发者很快发现许多脚本会随意地向程序传递文件描述符,导致这一特性引发混乱。
为了解决这个问题,`tree` 2.0.2 版本引入了环境变量 `STDDATA_FD`,只有当该变量存在并设置为指定的文件描述符时,才会输出 JSON 数据。文章作者认为,尽管最初的设想存在问题,但通过 `STDDATA_FD` 输出结构化数据仍然是一个很酷的功能。文章还展示了如何结合 `nushell` 使用 `tree` 命令,将 JSON 数据转换为表格形式。通过设置 `STDDATA_FD=1`,`tree` 命令的输出可以通过管道传递给 `from json` 命令,从而在 `nushell` 中以表格形式展示文件目录结构。
评论区对 `tree` 命令的这一特性展开了热烈讨论。有人认为使用环境变量 `STDDATA_FD` 相比直接使用文件描述符 3 更好,因为它降低了冲突的可能性,但仍然存在潜在的问题。另一些人则认为,通过管道传递结构化数据是值得称赞的尝试,类似于 PowerShell 的对象传递方式。还有人指出,POSIX 标准在文件描述符处理方面存在不足,导致相关操作过于复杂。此外,还有人提到了 C shell 在文件描述符处理上的限制,以及对使用更合理的协议(如 CBOR)的建议。
- 原文: [3-JSON](https://rgbcu.be/blog/3-json/)
- Hacker News: [https://news.ycombinator.com/item?id=44633648](https://news.ycombinator.com/item?id=44633648)
- 作者: RGBCube
- 评分: 71
- 评论数: 28
- 发布时间: 2025-07-21 18:39:29
---
## 摄影术的早期发展:迷恋、痴迷与危险
这篇文章回顾了摄影术的早期发展,聚焦于19世纪那些推动这项革命性技术的艺术家和创新者。作者Anika Burgess在《闪光时刻》一书中,带我们重温了摄影术诞生之初的迷恋、痴迷,以及潜藏的危险。
文章指出,当今社会对摄影的普遍使用,引发了人们对社交媒体驱动下“前所未有”的自恋文化的抱怨。人们常常被鼓励活在当下,而不是通过相机记录生活,并因追求美化自我的自拍或吸引眼球的背景而受到指责。
然而, Burgess的书带领读者回到摄影术的早期,展示了那些为我们今天所认为理所当然的技术奠定基础的人物。书中讲述了早期摄影师面临的挑战,例如笨重的设备、漫长的曝光时间和有毒化学品。同时,也揭示了早期摄影带来的社会影响,包括它如何改变了人们看待世界的方式,以及它如何被用于科学、艺术和社会记录。
这本书还探讨了早期摄影的伦理问题,例如对肖像权的侵犯和对现实的操纵。通过讲述这些故事, Burgess提醒我们,摄影不仅仅是一种技术,更是一种文化和社会力量,它塑造了我们对世界的理解。
文章最后提到,摄影术的早期发展充满了创新、实验和冒险精神, Burgess的书是对那些为我们今天所享受的摄影技术做出贡献的先驱者的致敬。
这篇文章没有评论区内容。
- 原文: [When photography was born, fascination, obsession, and danger followed](https://www.washingtonpost.com/books/2025/07/12/flashes-brilliance-history-early-photography-anika-burgess-review/)
- Hacker News: [https://news.ycombinator.com/item?id=44666032](https://news.ycombinator.com/item?id=44666032)
- 作者: prismatic
- 评分: 17
- 评论数: 10
- 发布时间: 2025-07-24 09:51:04
---
## Meta 暂停在欧盟的 Facebook 和 Instagram 上投放政治广告
Meta 宣布将停止在欧盟的 Facebook 和 Instagram 上投放政治广告,原因是即将出台的欧盟法规要求其遵守政治广告透明度规则。 这项决定引发了关于社交媒体平台在政治领域中所扮演角色的讨论。
Meta 认为,新的欧盟法规给他们带来了不必要的负担,使其难以有效地管理政治广告。他们表示,与其投入大量资源来遵守这些规定,不如完全停止投放政治广告。 这项举措可能会对欧洲的政治竞选活动产生重大影响,因为 Facebook 和 Instagram 是政治家和政党接触选民的重要渠道。
一些人认为,Meta 的决定是对政治广告透明度监管的一种抵制,并可能导致其他平台也效仿。 另一些人则认为,这可能促使政治广告转向其他渠道,例如新闻网站和播客。 还有人担心,这一举措可能会减少选民获取政治信息的渠道,从而影响民主进程。
该事件也引发了关于社交媒体平台在塑造公众舆论方面所扮演角色的更广泛讨论。 一些人认为,平台应该对在其平台上发布的政治广告内容负责,并采取措施防止虚假信息的传播。 另一些人则认为,平台应该保持中立,不应该审查政治言论。
Meta 的决定无疑将在未来一段时间内继续引发激烈的辩论。 重要的是要考虑这项决定的潜在影响,并探讨如何确保社交媒体平台以负责任和透明的方式被用于政治目的。
- 原文: [Meta to stop running political ads on Facebook and Instagram in the EU](https://www.euractiv.com/section/tech/news/meta-to-stop-running-political-ads-on-facebook-and-instagram/)
- Hacker News: [https://news.ycombinator.com/item?id=44683148](https://news.ycombinator.com/item?id=44683148)
- 作者: aquir
- 评分: 42
- 评论数: 31
- 发布时间: 2025-07-25 21:53:51
---
## 使用 asciinema 轻松录制和分享终端会话
Asciinema 是一款免费开源的工具,旨在以轻量级的方式录制终端会话,并方便地在网络上分享。它避免了传统屏幕录像的模糊和体积庞大,提供了一种基于文本的录制方案。
使用 asciinema 非常简单,只需运行 `asciinema rec demo.cast` 即可开始录制,按下 `ctrl+d` 或输入 `exit` 即可结束。录制的内容可以方便地复制粘贴,因为本质上就是文本。此外,asciinema 还支持嵌入到博客、文档或演示文稿中。
Asciinema 的工作原理是记录终端中的文本输出和时间戳,然后将这些数据以特定的格式存储。播放器会根据这些数据,在终端中重新呈现录制时的场景。
评论区里,用户们分享了各自的使用场景和经验。
* **dmayle** 推荐了 carbonyl,一个命令行 Web 浏览器,可以把网页渲染到终端里,并用 asciinema 记录下来。
* **minishlink** 在自己的网站首页使用了 asciinema,并提到可以通过编辑 `.cast` 文件来编辑不想暴露的信息。
* **azemetre** 询问是否有将 asciinema 录像转换为 SVG 格式的插件推荐,以便在静态网站上使用,减少带宽消耗。
* **kragen** 分享了自己用 asciinema 录制的一些实验性 Emacs 命令、计算机代数系统等,并提醒用户注意,在没有指定文件名的情况下录制,默认会上传到 asciinema 网站,即使没有创建账户。
* **Roark66** 希望能将录制的内容转换为文本文件,显示运行的命令和预期输出,方便用户重现操作,而无需观看视频或手动复制粘贴。
* **stevengoodwin** 用 asciinema 展示了他 2002 年版本的 ASCII Pacman 游戏。
* **theraven** 推荐了 vhs,一个类似的工具。
* **pi_22by7** 认为 asciinema 对于文档编写非常有用,基于文本的方式比屏幕录像更具优势,但对自动上传的隐私问题表示担忧。
* **userbinator** 觉得 asciinema 的名字容易让人联想到 "ASCII Enema"。
* **taoh** 提到他们使用 asciinema 录制 CLI 工具的终端,并将录像作为 SVG 添加到 README 中,也用于 CI 流程。
总体来说,Asciinema 得到了用户的广泛认可,被认为是一个轻量、方便的终端录制和分享工具,尤其适合用于文档编写和演示。同时也存在一些改进建议,例如增加语音支持、提供更多格式转换选项等。
- 原文: [Asciinema: Record and share your terminal sessions](https://asciinema.org)
- Hacker News: [https://news.ycombinator.com/item?id=44679048](https://news.ycombinator.com/item?id=44679048)
- 作者: phendrenad2
- 评分: 193
- 评论数: 51
- 发布时间: 2025-07-25 10:50:32
---
## 每日Lisp项目推荐:探索开源Lisp生态
本文主要介绍了一个名为 "Lisp Project of the Day" 的项目,旨在每日推荐一个有趣的开源 Lisp 项目。这个项目通过网站和 RSS 订阅的方式,为 Lisp 开发者和爱好者提供了一个发现新工具和库的平台。
该项目已经持续一段时间,涵盖了各种各样的 Lisp 项目,从文档生成工具到网络编程库,再到图形处理和数据科学应用。每个项目都有简短的介绍和相关的标签,方便用户根据自己的兴趣进行筛选。
文章列出了一系列的项目,包括 litterae、declt、atdoc、cl-api、eazy-documentation、cl-gendoc、codex、mgl-pax 等文档生成工具,以及 cl-pdf、tesseract-capi 等图形处理相关的项目。此外,还有涉及异步编程、网络通信、解析、数据库、Web 开发等领域的项目。
这个项目对于想要了解 Lisp 生态系统,或者寻找特定领域 Lisp 库的开发者来说,是一个非常有价值的资源。通过每日推荐的方式,它能够帮助开发者持续发现新的工具,并促进 Lisp 社区的活跃。
总的来说,"Lisp Project of the Day" 是一个致力于推广 Lisp 语言和其生态系统的优秀项目,它通过每日推荐的方式,让更多的开发者能够接触到 Lisp 的各种应用,并为 Lisp 社区的发展做出贡献。如果你对 Lisp 感兴趣,不妨关注一下这个项目,也许会发现一些意想不到的惊喜。
- 原文: [Lisp project of the day](https://40ants.com/lisp-project-of-the-day/index.html)
- Hacker News: [https://news.ycombinator.com/item?id=44681950](https://news.ycombinator.com/item?id=44681950)
- 作者: perihelions
- 评分: 17
- 评论数: 4
- 发布时间: 2025-07-25 19:23:51
---
## 高速有机发光二极管实现4Gbps通信
本文主要探讨了基于二萘基芘(dinaphthylperylene)的高速有机发光二极管(OLED),并展示了其在4Gbps通信中的应用。研究人员利用二萘基芘材料,成功开发出一种能够实现高速数据传输的OLED器件。
文章详细介绍了这种新型OLED的结构设计和性能特点,强调了二萘基芘材料在提高器件速度和效率方面的关键作用。通过优化器件结构和材料特性,研究团队成功实现了高达4Gbps的数据传输速率。
这项研究的突破在于克服了传统OLED在速度上的限制,为OLED在高速通信领域的应用开辟了新的可能性。该成果对于开发更快速、更高效的光通信技术具有重要意义,并有望推动OLED在数据传输、显示技术等领域的进一步发展。
由于没有评论内容,这里就不进行评论分析了。
- 原文: [High-speed organic light-emitting diodes achieving 4-Gbps communication](https://www.spiedigitallibrary.org/journals/advanced-photonics/volume-7/issue-03/036005/High-speed-organic-light-emitting-diodes-based-on-dinaphthylperylene-achieving/10.1117/1.AP.7.3.036005.full)
- Hacker News: [https://news.ycombinator.com/item?id=44640143](https://news.ycombinator.com/item?id=44640143)
- 作者: domofutu
- 评分: 12
- 评论数: 0
- 发布时间: 2025-07-22 04:40:42
---
## 我的网站是一个二进制文件 (2022)
这篇文章探讨了作者为了创建一个符合自己价值观的网站,最终选择使用 Go 语言编写一个单二进制文件来托管网站的历程。作者强调了对系统可理解性、可维护性和可靠性的重视,并详细解释了为什么传统的静态网站生成器 (SSG) 框架,如 Hugo,虽然流行,但并不适合他的需求。
作者认为,像 Hugo 这样的 SSG 框架虽然看起来简单,但实际上引入了大量的依赖,包括项目本身、社区、插件生态系统,甚至编程语言本身。这些依赖使得作者感到对系统失去了控制,不符合他追求的自主性和可靠性。
在尝试了手动编写 HTML 后,作者发现这种方式虽然简单可靠,但效率低下,难以维护。最终,作者选择了使用 Go 语言编写一个单二进制文件来托管网站。Go 语言具有易于维护、依赖少、编译速度快等优点,并且可以方便地生成静态编译的二进制文件。
作者认为,动态生成的网站实际上比静态生成的网站更简单。动态生成允许在服务器端实时生成内容,而无需复杂的构建过程和外部依赖。例如,获取用户 IP 地址在动态网站中只需要几行代码即可实现,而在静态网站中可能需要依赖 JavaScript 和其他外部工具。
总而言之,作者通过构建一个单二进制网站,实现了对自己网站的完全控制,并创造了一个既简单、可靠又易于维护的系统。这种方法激发了他的创造力,并让他对自己的网站感到满意。
- 原文: [My website is one binary (2022)](https://j3s.sh/thought/my-website-is-one-binary.html)
- Hacker News: [https://news.ycombinator.com/item?id=44681740](https://news.ycombinator.com/item?id=44681740)
- 作者: smartmic
- 评分: 20
- 评论数: 10
- 发布时间: 2025-07-25 18:47:07
---
## 加拿大航空归还丢失行李箱,却发现里面有刀具和不明物品
加拿大航空将一位女士丢失的行李箱归还,但里面不仅缺少了价值数百美元的个人物品,还多了刀具、洗漱用品和机票扫描仪等不属于她的东西,这让她感到震惊和气愤。
Linda Royle 在多伦多皮尔逊国际机场中转时,她的手提行李箱丢失。当行李箱被归还时,她发现鞋子、书籍、药物和衣服等物品不见了,取而代之的是两个旧的剃须包,里面有指甲刀、小剪刀、剃须用品、梳子、沐浴露、牙线和牙膏等个人卫生用品,甚至还有一把刀和一张 2020 年 4 月的男士登机牌,以及一个类似于机场用于检查登机牌的扫描设备。Royle 认为,可能是加拿大航空的员工在多伦多中转时没有正确扫描她的手提行李箱,导致行李箱没有登上飞往圣约翰斯的飞机,并且可能无人看管了好几天,任何人都可以翻看她的个人物品。
Royle 向加拿大航空提出了索赔,但遭到拒绝,理由是她无法提供丢失物品的收据来证明自己拥有这些物品。加拿大航空最初拒绝赔偿,但在 CBC 新闻联系他们后,他们重新审查了她的案件,并表示将联系 Royle 以“最终确定她的索赔”。Royle 估计损失价值约为 950 美元,她只收到了一张下次乘坐加拿大航空的 15% 的促销代码。
## 评论区观点分析
评论区有用户认为,丢失的行李箱会被打开、清点并记录在计算机系统中,如果航空公司重视,应该很容易追踪到。一种可能性是,在行李箱即将离开失物招领处时,有人发现里面有贵重物品,于是用一些不值钱的东西替换了贵重物品。这种替换要么发生在行李箱被清点之前,要么发生在行李箱即将离开时,因为验证行李箱内物品是归还丢失行李的关键步骤。如果替换发生得太早,“我在找一个装满鞋子的包”的说法就不会有任何结果,因为鞋子已经被垃圾替换了。也有用户简单表达了对加拿大航空服务的不满。
- 原文: [Air Canada returned lost bag, it now had knife,toiletries, ticket scanner inside](https://www.cbc.ca/news/canada/newfoundland-labrador/air-canada-mystery-baggage-1.7592756)
- Hacker News: [https://news.ycombinator.com/item?id=44683447](https://news.ycombinator.com/item?id=44683447)
- 作者: andy99
- 评分: 15
- 评论数: 6
- 发布时间: 2025-07-25 22:22:35
---
## AMD CEO 谈 TSMC 美国工厂芯片成本
AMD 的 CEO 苏姿丰表示,台积电 (TSMC) 在美国工厂生产的芯片,成本预计会比在其他地区生产的芯片高出 5% 到 20%。 这意味着在美国本土制造芯片的成本可能更高,这会影响到 AMD 产品的定价和竞争力。
文章指出,虽然美国政府通过《芯片法案》提供补贴,旨在鼓励半导体企业在美国设厂,但实际运营成本仍然是一个需要考虑的重要因素。 成本的增加可能会抵消部分补贴带来的好处,使得在美国生产芯片的吸引力降低。 苏姿丰的表态也暗示,AMD 可能会在芯片采购方面更加谨慎,并可能寻求多样化的供应链,以降低成本风险。 这也给其他考虑在美国设厂的芯片企业敲响了警钟,需要仔细评估各项成本因素。
目前文章没有评论区内容。
- 原文: [AMD CEO sees chips from TSMC's US plant costing 5%-20% more](https://www.bloomberg.com/news/articles/2025-07-23/amd-ceo-su-sees-chips-from-us-tsmc-plant-costing-5-to-20-more)
- Hacker News: [https://news.ycombinator.com/item?id=44663074](https://news.ycombinator.com/item?id=44663074)
- 作者: mfiguiere
- 评分: 378
- 评论数: 658
- 发布时间: 2025-07-24 03:34:56
---
## Qwen3-235B-A22B-Thinking-2507:更强推理能力的开源模型
Qwen3-235B-A22B-Thinking-2507 是 Qwen3-235B-A22B 的升级版本,在过去三个月中,其思维能力得到了显著提升,包括推理的质量和深度。 这个新版本在逻辑推理、数学、科学、编程以及需要人类专业知识的学术基准测试中都取得了最先进的成果,尤其是在开源思维模型中表现突出。
该模型不仅在推理任务上表现出色,而且在指令遵循、工具使用、文本生成以及与人类偏好对齐等通用能力方面也有显著提升。 此外,Qwen3-235B-A22B-Thinking-2507 增强了 256K 长文本理解能力,使其能够处理更复杂的推理任务。
该模型总共有 2350 亿参数,其中激活了 220 亿参数,拥有 94 层,注意力头数为 64 (Q) 和 4 (KV),专家数量为 128,激活专家数量为 8,原生支持 262,144 的上下文长度。需要注意的是,该模型只支持思考模式,默认的聊天模板会自动包含 `<think>` 标签,所以模型输出可能只包含 `</think>` 而没有显式的 `<think>` 标签。
在性能方面,Qwen3-235B-A22B-Thinking-2507 在多个基准测试中都取得了优异的成绩,例如 MMLU-Pro、MMLU-Redux、SuperGPQA、AIME25、HMMT25 和 LiveCodeBench v6 等。
快速上手方面,Qwen3-MoE 的代码已经集成到最新版本的 Hugging Face `transformers` 中,建议使用最新版本。 可以使用提供的代码片段来加载模型,并根据给定的输入生成内容。
对于部署,可以使用 `sglang>=0.4.6.post1` 或 `vllm>=0.8.5` 来创建一个与 OpenAI 兼容的 API 端点。 如果遇到内存不足的问题,可以考虑将上下文长度减少到一个较小的值,但建议尽可能使用大于 131,072 的上下文长度,因为模型可能需要更长的 token 序列来进行推理。
- 原文: [Qwen3-235B-A22B-Thinking-2507](https://huggingface.co/Qwen/Qwen3-235B-A22B-Thinking-2507)
- Hacker News: [https://news.ycombinator.com/item?id=44681565](https://news.ycombinator.com/item?id=44681565)
- 作者: tosh
- 评分: 98
- 评论数: 25
- 发布时间: 2025-07-25 18:16:26
---
## Amazon Kiro:Agentic IDE 新体验
Amazon 推出了名为 Kiro 的 Agentic IDE,旨在通过 AI 代理提升开发效率,改变开发者编写代码的传统方式。
Kiro 并非简单的 VS Code 分支,而是一款从底层设计上就支持复杂、多步骤工作流的 IDE。它鼓励开发者在编写代码之前,花更多时间思考和明确需求,制定高层次的软件架构方案。在使用过程中,开发者可以向 Kiro 描述想要构建的内容,创建详细的计划,然后让它自主执行,填充实现细节。与以往的 AI 辅助工具不同,Kiro 能够更好地理解和遵循规范,减少了开发者不断纠正和重新解释上下文的需求。
作者通过实际案例分享了使用 Kiro 的体验,例如在几个小时内从零开始构建了一个 TanStack Start 组合网站,并且几乎没有编写任何代码。他还利用 Kiro 为开源项目贡献了大量的 pull requests,其中大约 80% 的实现由 Kiro 生成。此外,Kiro 还在帮助作者快速上手复杂的 Spring Boot + Angular 项目以及开发内部命令行工具方面发挥了作用。
然而,Kiro 并非万能。它在处理复杂问题时可能会陷入循环,有时会选择变通方法而不是根本原因分析,并且偶尔需要明确指示才能解决问题。因此,开发者需要掌握何时放手让 Kiro 自主运行,何时进行干预或接管控制。
总的来说,Kiro 代表了 IDE 发展的一个新方向,它让开发者能够以更高的抽象层次进行思考,将更多精力放在需求分析和架构设计上,而不是陷入繁琐的代码编写细节中。虽然 Kiro 仍处于早期阶段,存在一些不足之处,但它无疑为未来的开发工具指明了一个方向。
- 原文: [Developing with Kiro: Amazon's New Agentic IDE](https://yehudacohen.substack.com/p/developing-with-kiro-amazons-new)
- Hacker News: [https://news.ycombinator.com/item?id=44634469](https://news.ycombinator.com/item?id=44634469)
- 作者: cebert
- 评分: 50
- 评论数: 57
- 发布时间: 2025-07-21 20:44:59
---
## 内存安全与线程安全:为何线程安全是内存安全的基础
本文探讨了内存安全和线程安全之间的关系,认为一个线程不安全的语言无法真正提供内存安全。文章的核心观点是,我们真正需要的程序属性是“不存在未定义行为”。
文章通过一个 Go 语言的例子,展示了如何在存在数据竞争的情况下破坏内存安全。Go 语言虽然通常被认为是内存安全的,但由于其对数据竞争的处理方式,可能导致程序崩溃或产生不可预测的行为。这个例子利用了 Go 接口类型的实现细节,通过并发地修改全局变量的类型,导致在读取时发生类型混淆,最终触发内存错误。文章指出,Java 等语言为了保证即使在存在数据竞争的情况下程序也能保持良好定义,付出了巨大的努力,而 Go 在这方面做得不够。
文章进一步分析了语言在处理并发问题时可以采取的两种策略:一是确保任意并发程序都能维持类型约束和关键语言不变性,二是使用足够强大的类型系统来完全排除大多数数据竞争。Go 选择了最简单的方案,但将其与真正解决了数据竞争问题的语言相提并论,是对其安全性的误导。因此,作者认为,线程安全是内存安全的基础,缺乏线程安全的语言无法真正保证内存安全。
- 原文: [There is no memory safety without thread safety](https://www.ralfj.de/blog/2025/07/24/memory-safety.html)
- Hacker News: [https://news.ycombinator.com/item?id=44672003](https://news.ycombinator.com/item?id=44672003)
- 作者: tavianator
- 评分: 416
- 评论数: 400
- 发布时间: 2025-07-24 23:35:39
---
## 优化汇编代码的教训:随机数据基准测试的陷阱
本文讲述了作者在优化 Java 数据序列化中的 VarInt 编码时,因使用随机数据进行基准测试,导致耗费数周优化后的汇编代码在实际生产环境中毫无效果的经历。作者原本通过手写汇编代码,实现了比 Java 实现快 4 倍的性能提升。
然而,当应用到实际生产环境时,优化效果却消失了。原因是作者在基准测试中使用的是随机数,而实际应用中的数字通常很小,VarInt 编码的优势在于对小数字的编码效率高。随机数导致基准测试集中在算法的最坏情况,掩盖了实际应用场景下的性能表现。最终,作者不得不回滚了优化,并将这次经历视为自定义 JIT 优化的概念验证。这个故事提醒开发者,基准测试数据的选择至关重要,必须贴近实际应用场景,才能有效评估优化效果。VarInt 编码是一种用字节高效地编码任意整数的方法,常见于 Protocol Buffers、Thrift 和 WASM 等格式中。作者原本希望通过自定义 JIT 优化,将手写汇编代码直接嵌入到 JVM 指令流中,绕过 JNI 的开销。
评论区也提到了类似的故事,强调了选择具有代表性的使用场景进行优化和微基准测试的重要性。有人指出,即使是看似简单的数组搜索,数组的内容和长度也会对优化结果产生巨大影响。还有人分享了在 CUDA 加速块密码算法时,发现之前的学术研究通过专门对零字节进行基准测试来获得惊人加速的例子,而使用随机数据进行基准测试则会得到非常不同的结果。另有评论提到 Java 中非原始类型都是装箱对象,这也会影响性能。
- 原文: [I wasted weeks hand optimizing assembly because I benchmarked on random data](https://www.vidarholen.net/contents/blog/?p=1160)
- Hacker News: [https://news.ycombinator.com/item?id=44632674](https://news.ycombinator.com/item?id=44632674)
- 作者: thunderbong
- 评分: 363
- 评论数: 141
- 发布时间: 2025-07-21 15:40:01
---
🫵 来啊,说点有用的废话!