4小时前
|
|
|
111
## 今天 Hacker News 社区聊了啥? NO.20250701
嘿,科技迷们看过来!这期日报内容超丰富,带你上天入地玩转科技圈!想知道如何用核动力和太阳帆飞向遥远星系吗?想体验用LLM重写网页的终端浏览器吗?还有帮你搞定Stripe迁移的神器,以及提升碳纤维强度的秘密武器!更有AI新趋势、开源硬件新玩法等你来探索。快来一起看看,别掉队啦!

---
## 探索柯伊伯带天体:核动力与太阳帆飞向赛德娜的可行性研究
本文探讨了使用核动力和先进太阳帆技术前往柯伊伯带天体赛德娜的可能性,重点分析了两种推进方式:基于D-³He热核聚变的直接聚变驱动(DFD)火箭引擎和利用涂层热脱附的太阳帆。研究评估了从地球到赛德娜的单程任务的关键参数,包括有效载荷能力、旅行时间和潜在的科学回报。
DFD引擎假定为1.6兆瓦系统,具有恒定的推力和比冲,而太阳帆则考虑通过热脱附加速,并借助木星的引力辅助。任务分析包括四个关键阶段:出发、行星际加速、行星际巡航和会合。赛德娜预计在2075-2076年通过其轨道的近日点,然后再次远离太阳。考虑到所涉及的距离,针对该天体的任务需要“相对”较快地启动,特别是如果使用传统的推进系统,这可能需要长达30年的深空旅行。
研究结果表明,DFD可以在大约10年内到达赛德娜,其中1.5年用于推力,而太阳帆在木星引力辅助下,可以在7年内完成旅程。文章还考虑了科学有效载荷的容纳能力、电力可用性和通信限制,为未来的深空任务规划提供了比较基础。这项研究为未来探索太阳系边缘天体提供了新的思路和技术参考。
- 原文: [Feasibility study of a mission to Sedna - Nuclear propulsion and solar sailing](https://arxiv.org/abs/2506.17732)
- Hacker News: [https://news.ycombinator.com/item?id=44434062](https://news.ycombinator.com/item?id=44434062)
- 作者: speckx
- 评分: 20
- 评论数: 2
- 发布时间: 2025-07-01 22:08:11
---
## Spegel:使用 LLM 重写网页的终端浏览器
Spegel 是一款概念验证性质的终端 Web 浏览器,它利用 LLM(大型语言模型)处理 HTML 内容,并在终端中直接以 Markdown 格式呈现结果。它旨在通过个性化的视角浏览网页内容,用户可以自定义提示来简化页面或突出显示关键操作。
Spegel 的工作流程很简单:它首先获取 HTML 内容,然后使用配置文件中存储的提示,通过 LLM 处理这些内容,最后输出通过 Textual 渲染的 Markdown 格式。用户可以在浏览会话期间实时调整提示和视图。该工具使用 pip 安装,并通过命令行指定 URL 运行。作者提到,现代网站通常依赖 CSS 和 JS,这使得它们在小型终端窗口中显得杂乱。Spegel 试图消除这些干扰,提供更符合用户需求的内容。
评论区对 Spegel 的看法不一。有人认为,Spegel 提供了一种绕过 SEO 优化内容的方式,尤其是在提取食谱等信息时非常有用。也有人批评它是在已经破碎的系统上增加抽象层,原本简单的 HTML 经过多次格式转换才能在终端浏览器中显示。还有人将其与 Browsh 进行比较,后者尝试直接在终端中渲染 HTML,而不使用 LLM。另有评论者认为,Spegel 的潜力在于将任何模型接受的输入(如 PDF、ZIP 文件、JSON 文件)渲染成用户自定义的视图,而不仅仅是 HTML。有人建议将其命名为“镜头”或“过滤器”,更准确地反映其转换信息的本质。还有用户希望它能应用于 Facebook 或 LinkedIn 等页面,以实现无干扰的信息搜索。
- 原文: [Show HN: Spegel, a Terminal Browser That Uses LLMs to Rewrite Webpages](https://simedw.com/2025/06/23/introducing-spegel/)
- Hacker News: [https://news.ycombinator.com/item?id=44433409](https://news.ycombinator.com/item?id=44433409)
- 作者: simedw
- 评分: 108
- 评论数: 52
- 发布时间: 2025-07-01 20:49:42
---
## 通过自制 Discord 机器人重塑友谊社交结构
本文讲述了作者如何通过构建一个简单的 Discord 机器人,来改善朋友之间的线上社交互动,并意外地促进了更频繁的交流和联系。
作者的朋友们分散在世界各地,疫情期间大家更多地依赖 Discord 进行游戏和聊天。然而,Signal 群组消息过多,重要的游戏邀请信息容易被淹没。为了解决这个问题,作者开发了一个 Discord 机器人,当有人加入语音频道时,机器人会自动在文字频道发送通知。这个机器人基于 `discord.py` 库的 `on_voice_state_update` 功能,并使用 Supabase 存储用户加入 Discord 的数据。最初,朋友们对此褒贬不一,但后来发现这个机器人不仅减少了组织游戏的消息,还成为了朋友们随意聊天的“蝙蝠信号”。数据显示,大家加入 Discord 更多是为了聊天,而不是仅仅为了玩游戏。作者还分享了他们每年一度的“Discord Wrapped”活动,回顾大家在 Discord 上的活动数据,增加了趣味性。未来,作者计划增加更多功能,例如根据一起 hangout 的人颁发成就,以及开发一个 IoT 设备,通过 RGB 灯光提示朋友上线。
评论区中,有用户表示不太能理解这种随时在线聊天的模式,更喜欢有计划的线下聚会。也有用户回忆起 AIM/ICQ 时代,在线状态本身就是一种聊天邀请,认为现在的线上交流缺少了这种信号。总的来说,评论反映了不同人对于线上社交方式的偏好差异,以及对早期互联网交流方式的怀念。
- 原文: [I built something that changed my friend group's social fabric](https://blog.danpetrolito.xyz/i-built-something-that-changed-my-friend-gro-social-fabric/)
- Hacker News: [https://news.ycombinator.com/item?id=44403988](https://news.ycombinator.com/item?id=44403988)
- 作者: dandano
- 评分: 276
- 评论数: 119
- 发布时间: 2025-06-28 19:49:35
---
## Stripe Move:轻松迁移 Stripe 账户,告别数据丢失
Stripe Move 旨在帮助用户在不同国家/地区之间无缝迁移 Stripe 账户,解决跨境迁移的痛点。该工具可以完整迁移客户、订阅、产品、优惠券和支付方式等数据,无需手动操作,并且通过并行迁移系统,确保业务零中断,客户支付不受影响。
该工具提供三种定价方案:Basic($299/迁移,适合小型企业,最多 500 个客户)、Startup($499/迁移,适合成长型企业,最多 2500 个客户)和 Enterprise(定制方案,适合大型组织)。创始人 Felipe 和 Lucas 都是经验丰富的开发者,他们希望通过 Stripe Move 简化 Stripe 迁移流程,为其他创业者和企业提供可靠的解决方案。他们曾亲身经历过 Stripe 账户迁移的困难,因此致力于将整个过程自动化。
评论区主要围绕商标问题和迁移体验展开。有用户指出,在名称中使用 "Stripe" 可能会引发商标侵权问题,并贴出了 Stripe 的商标使用规范链接。也有用户分享了五年前的经验,当时 Stripe 的客服帮助他们完成了数据迁移。还有用户表示,之前没有意识到切换国家/地区会如此麻烦,并收藏了该工具以备将来之需。评论整体上对 Stripe Move 的实用性表示认可,同时也提出了潜在的法律风险。
- 原文: [Show HN: I built the tool I wished existed for moving Stripe between countries](https://www.stripemove.com/)
- Hacker News: [https://news.ycombinator.com/item?id=44433429](https://news.ycombinator.com/item?id=44433429)
- 作者: felphos
- 评分: 16
- 评论数: 7
- 发布时间: 2025-07-01 20:52:50
---
## 通过人脉找工作:Jobs by Referral
Jobs by Referral 是一个分析你的 LinkedIn 关系网络,帮你寻找你的人脉所在公司的工作机会的工具。它旨在帮助你通过熟人内推,从而显著提高获得面试机会的可能性。
这个工具的使用方法很简单。首先,你需要从 LinkedIn 下载你的数据档案。在 LinkedIn 的设置中,选择“获取你的数据副本”,然后选择“下载更大的数据档案”。务必选择完整的数据档案,因为只有这样才能获得包含人脉信息的 Connections.csv 文件。下载请求提交后,大约一个小时左右,你会收到一封包含下载链接的电子邮件。
如果你还没有 LinkedIn 数据,或者想先体验一下,可以使用 Jobs by Referral 提供的示例数据集。下载示例 CSV 文件后,你可以直接上传 LinkedIn 数据压缩包、解压后的 Connections.csv 文件,或者示例 CSV 文件到 Jobs by Referral 网站,然后就可以开始使用了。
评论区有用户指出,LinkedIn 本身也提供了类似的功能,可以通过筛选“在你的关系网络中”来查找工作。这表明,虽然 Jobs by Referral 提供了一个专门的工具,但用户也可以在 LinkedIn 平台上找到类似的功能。这可能意味着 Jobs by Referral 需要提供更独特的功能或更便捷的体验,才能在市场上脱颖而出。
- 原文: [Show HN: Jobs by Referral: Find jobs in your LinkedIn network](https://jobsbyreferral.com/)
- Hacker News: [https://news.ycombinator.com/item?id=44433386](https://news.ycombinator.com/item?id=44433386)
- 作者: nicksergeant
- 评分: 22
- 评论数: 1
- 发布时间: 2025-07-01 20:47:06
---
## 美国有史以来最大规模蜜蜂死亡事件的罪魁祸首被科学家锁定
一项新的研究揭示了导致美国有史以来最大规模蜜蜂死亡事件的罪魁祸首,为解决这一生态危机提供了关键线索。科学家们发现,蜜蜂的大量死亡与特定类型的杀虫剂有关,这些杀虫剂对蜜蜂的神经系统产生负面影响。
这项研究详细分析了美国各地蜜蜂种群的数据,并将蜜蜂的死亡率与农药的使用情况进行了对比。结果显示,一种名为新烟碱类的杀虫剂与蜜蜂的大规模死亡事件存在显著相关性。新烟碱类杀虫剂广泛应用于农业生产中,用于防治多种害虫,但它们对蜜蜂等非目标生物也具有毒性。蜜蜂在接触到这些杀虫剂后,会出现神经系统紊乱、方向感丧失、免疫力下降等症状,最终导致死亡。
研究人员还发现,不同地区的蜜蜂种群对新烟碱类杀虫剂的敏感程度存在差异,这可能与蜜蜂的遗传背景、环境条件等因素有关。此外,研究还强调了多种因素共同作用对蜜蜂种群的影响,包括栖息地丧失、气候变化、病虫害等。
这项研究的发现为制定保护蜜蜂的政策提供了科学依据。科学家们呼吁采取更加严格的农药管理措施,限制新烟碱类杀虫剂的使用,并推广更加环保的农业生产方式。同时,加强对蜜蜂种群的监测和保护,改善蜜蜂的栖息环境,提高蜜蜂的抗病能力,也是保护蜜蜂的重要措施。蜜蜂在生态系统中扮演着重要的角色,它们的生存直接关系到农业生产和生态平衡。保护蜜蜂,就是保护我们自己的未来。
- 原文: [Scientists identify culprit behind biggest-ever U.S. honey bee die-off](https://www.science.org/content/article/scientists-identify-culprit-behind-biggest-ever-u-s-honeybee-die)
- Hacker News: [https://news.ycombinator.com/item?id=44432467](https://news.ycombinator.com/item?id=44432467)
- 作者: pseudolus
- 评分: 37
- 评论数: 15
- 发布时间: 2025-07-01 18:35:23
---
## 软件供应链:开发者并非供应商
本文探讨了软件供应链的概念,指出将开源软件开发者视为传统意义上的供应商是存在误导的。文章强调了开源贡献者与商业公司之间缺乏传统的商业关系,并对将供应链管理规则强加于开源社区提出了质疑。
文章首先解释了软件供应链的概念,它指的是现代软件项目中广泛使用的开源库及其依赖关系。随后,文章对比了传统制造业中的供应链,在传统行业中,公司与其供应商之间存在明确的商业关系,需要紧密合作以确保生产的顺利进行。然而,在软件领域,开源软件的开发者通常是志愿者,他们免费提供代码,并不对下游用户承担任何义务。
文章指出,近年来,由于开源库中出现的问题(例如 Leftpad 事件、OpenSSL 和 Log4J 的安全漏洞),公司开始关注软件供应链的安全。他们希望通过建立规则来规范开源开发者的行为,以降低风险。然而,文章作者认为,这种做法忽略了开源的本质。开源开发者不是供应商,他们不提供“商品”或“服务”,因此不应被要求承担供应商的责任。开源许可协议中的“按原样提供”条款明确表示,用户需要自行承担使用开源软件的风险。
文章最后强调,如果公司希望开源开发者按照特定的方式工作,那么他们需要建立正式的商业关系,例如付费赞助或雇佣。否则,将开源开发者视为供应商并强加规则是不合理的。
- 原文: [I am not a supplier (2022)](https://www.softwaremaxims.com/blog/not-a-supplier)
- Hacker News: [https://news.ycombinator.com/item?id=44434355](https://news.ycombinator.com/item?id=44434355)
- 作者: wofo
- 评分: 11
- 评论数: 0
- 发布时间: 2025-07-01 22:41:48
---
## C 语言中实现类型安全的泛型数据结构
本文介绍了一种在 C 语言中实现类型安全的泛型数据结构的方法,该方法使用联合体将类型信息与泛型数据结构相关联。文章通过实现一个基本的链表来阐述这个思想,并逐步改进,最终实现类型检查。
文章首先介绍了使用宏来实现泛型数据结构的方法,虽然这种方法可以实现泛型和类型安全,但存在一些缺点,例如难以查找类型和函数的定义,代码完成可能无法很好地处理它们,以及会因复制相同的函数而导致二进制文件大小膨胀。
接着,文章讨论了使用 `void *` 实现泛型数据结构的方法。虽然这种方法更简单,但不是类型安全的。为了解决这个问题,文章提出了使用内联存储的方法,将数据直接存储在节点内部,避免了额外的内存分配和缓存未命中。
最后,文章介绍了如何使用联合体和宏来实现类型检查。通过定义一个包含 `payload` 成员的联合体,可以在编译时检查添加到列表中的数据类型是否正确。这种方法可以有效地防止类型错误,并提高代码的安全性。
```c
#define List(type) union { \
ListNode *head; \
type *payload; \
}
List(Foo) foo_list = {0};
List(int) int_list = {0};
```
```c
// Note: leading underscore add to the
// function name since only the macro should call it
void _list_prepend(ListNode **head,
void *data,
size_t data_size);
#define list_prepend(list, item) \
_list_prepend(&((list)->head), \
(1 ? (item) : (list)->payload), \
sizeof(*(list)->payload))
List(Foo) *foo_list = NULL;
Bar bar = {5, 6};
list_prepend(&foo_list, &bar); // error!
```
总而言之,文章提供了一种在 C 语言中实现类型安全的泛型数据结构的有效方法,该方法结合了联合体、宏和内联存储等技术,可以在编译时检查类型错误,并提高代码的性能和安全性。
- 原文: [I write type-safe generic data structures in C](https://danielchasehooper.com/posts/typechecked-generic-c-data-structures/)
- Hacker News: [https://news.ycombinator.com/item?id=44425461](https://news.ycombinator.com/item?id=44425461)
- 作者: todsacerdoti
- 评分: 363
- 评论数: 144
- 发布时间: 2025-07-01 00:55:20
---
## 用单音节词讲述的伊索寓言
这篇文章介绍了一本独特的儿童文学作品——《用单音节词讲述的伊索寓言》,这本书的特别之处在于,除了标题外,全文都使用单音节词汇写成。作者露西·艾金(笔名玛丽·戈多芬)是19世纪一位关注儿童教育的英国历史学家、诗人和女权主义者。
这本书是“单音节”系列的一部分,该系列旨在让儿童更容易阅读经典故事。书中收录了99个伊索寓言,包括“狼来了”和“狐狸与葡萄”等经典故事。虽然有些著名的寓言,比如“龟兔赛跑”和“蚂蚁和蚱蜢”没有收录,可能是因为作者找不到合适的单音节词来代替其中的一些词汇,但书中仍然充满了乐趣。这本书的出现,体现了19世纪儿童文学从说教到寓教于乐的转变。
评论区里,大家对这本书的看法不一。有人觉得用单音节词来教育孩子意义不大,因为偶尔出现多音节词并不会造成阅读障碍,而且作者有时还会使用连字符来“作弊”。也有人觉得这是一种有趣的文字游戏,并提到了兰道尔·门罗对简易英语的痴迷。还有人分享了更多关于“单音节”系列书籍的信息,指出该系列的其他作品为了满足单音节的要求,也使用了连字符。总的来说,评论区呈现了对这本书作为教育工具和文字游戏的不同看法。
- 原文: [Aesop in Words of One Syllable](https://blog.pgdp.net/2025/07/01/aesop-in-words-of-one-syllable/)
- Hacker News: [https://news.ycombinator.com/item?id=44433843](https://news.ycombinator.com/item?id=44433843)
- 作者: sohkamyung
- 评分: 7
- 评论数: 6
- 发布时间: 2025-07-01 21:41:15
---
## AI 新趋势:从 Prompt 工程到上下文工程
文章指出,AI 领域正在从关注“Prompt 工程”转向更广泛的“上下文工程”。重点在于为 LLM 提供完成任务所需的完整上下文,而不仅仅是优化 Prompt。
文章详细解释了什么是上下文,它包括:指令/系统 Prompt、用户 Prompt、状态/历史(短期记忆)、长期记忆、检索信息(RAG)、可用工具和结构化输出。文章强调,构建有效的 AI Agent 的关键在于提供高质量的上下文,而非复杂的代码。通过对比“廉价 Demo”Agent 和“神奇”Agent,展示了丰富上下文的重要性。前者只看到用户的请求,而后者会扩展上下文,包括日历信息、历史邮件、联系人列表和可用工具,从而生成更智能的回复。文章将上下文工程定义为设计和构建动态系统,以在正确的时间、以正确的格式提供正确的信息和工具,使 LLM 能够完成任务。这意味着上下文不仅仅是一个静态的 Prompt 模板,而是一个动态的系统,它会根据任务的需求进行调整,并确保模型不会遗漏关键信息。文章最后总结说,构建强大而可靠的 AI Agent,关键在于上下文工程,而不仅仅是找到一个神奇的 Prompt 或模型更新。
评论区也引发了一些有趣的讨论:
* **@JohnMakin:** 质疑上下文工程与 Prompt 工程的根本区别,认为如果“正确”的信息定义为“能够产生足够准确答案的信息”,那么这与 Prompt 工程并无本质不同,仍然是一种“尝试和观察”的方法。
* **@niemandhier:** 将 LLM Agent 比作电影《记忆碎片》中的角色,指出 Agent 无法改变内部状态,因此通过向外部系统注入信息来弥补其不变性。
* **@bgwalter:** 觉得这些讨论越来越像游戏玩家讨论游戏策略,只有圈内人才能理解。
- 原文: [The new skill in AI is not prompting, it's context engineering](https://www.philschmid.de/context-engineering)
- Hacker News: [https://news.ycombinator.com/item?id=44427757](https://news.ycombinator.com/item?id=44427757)
- 作者: robotswantdata
- 评分: 747
- 评论数: 415
- 发布时间: 2025-07-01 04:53:55
---
## Qualcomm/Snapdragon 设备 USB 端口中的隐藏 JTAG
本文介绍了 Qualcomm 近期开放的 EUD(Embedded USB Debug)源码,这是一个内置于 2018 年之后几乎所有 Qualcomm SoC 中的调试接口。EUD 允许开发者通过 USB 接口直接进行 SWD 调试,无需外部工具或焊接,极大地简化了内核和 U-Boot 的调试过程。
文章详细解释了 EUD 的工作原理,它通过 USB 接口模拟一个 7 端口的 USB Hub,其中一个端口提供 EUD 控制接口,另一个端口暴露 SWD 接口。开发者可以使用 OpenOCD 等工具连接到该接口,进行断点设置、寄存器检查、单步执行等调试操作。
文章还提到了 Qualcomm 在 CodeLinaro 上发布的 OpenOCD 分支,该分支集成了 EUD 支持,但之前依赖于一个专有的 EUD 库。随着 Qualcomm 开放 EUD 库,该分支也得到了更新。作者尝试使用该库时遇到了一些编译问题,并提供了修复方案,已提交到 Qualcomm 的代码仓库。
此外,作者还对 Qualcomm 的 OpenOCD 代码进行了 rebase,使其与最新的 OpenOCD 版本兼容,并添加了 Hexagon 调试支持。最后,作者分享了在 Snapdragon 845 上测试 EUD 的经验,并提供了快速入门指南。EUD 的实际应用包括 U-Boot 调试以及在 OpenEmbedded 中调试 TF-A、OP-TEE 和 U-Boot 等。Linaro 团队对 EUD 在垂直集成的 BSP 调试中的潜力特别感兴趣。除了 SWD 外,EUD 还提供 COM (UART) 和跟踪外设,但尚未进行深入研究。
- 原文: [The hidden JTAG in a Qualcomm/Snapdragon device’s USB port](https://www.linaro.org/blog/hidden-jtag-qualcomm-snapdragon-usb/)
- Hacker News: [https://news.ycombinator.com/item?id=44426428](https://news.ycombinator.com/item?id=44426428)
- 作者: denysvitali
- 评分: 209
- 评论数: 32
- 发布时间: 2025-07-01 02:34:27
---
## Noloco 在巴塞罗那招聘创始人助理
Noloco 正在巴塞罗那寻找一位创始人助理,这个职位为期全职,年薪在 3.5 万到 5.5 万欧元之间,需要 1 年以上的工作经验。这个职位能让你直接与 YC 资助的优秀初创公司的创始人建立联系,深入了解 SaaS 业务的各个方面。
Noloco 是一家旨在帮助企业无需编写代码即可构建定制软件的公司,他们的使命是赋能企业构建真正定制化的软件,而创始人助理将直接与 CEO 合作,推动这一使命。该职位的工作内容涵盖内部运营、战略研究以及各种特殊项目,旨在减轻 CEO 的工作负担,发现潜在问题,并为团队创造更大的价值。具体工作包括管理财务、协调团队活动、撰写报告、协助招聘以及收集数据以支持战略决策。公司强调自主、速度和关怀的企业文化,鼓励团队成员充分发挥自主性并承担责任。
理想的候选人应具备 1-3 年在初创公司、咨询或风险投资领域的工作经验,对技术充满好奇,精通电子表格,并具备基本的编码知识。此外,他们还应具备出色的沟通能力、解决问题的能力以及积极主动的工作态度。公司为员工提供有竞争力的薪资、股票期权以及 25 天的年假。成功入职后,3 个月内需要接管核心内部运营并策划首次团队线下活动,6 个月内需要简化跨部门报告并撰写首份投资者更新,12 个月内需要独立运行高影响力项目并成为 CEO 的可靠伙伴。
- 原文: [Noloco (YC S21) is hiring a founder's associate in Barcelona](https://www.ycombinator.com/companies/noloco/jobs/K7q02eV-founders-associate)
- Hacker News: [https://news.ycombinator.com/item?id=44431314](https://news.ycombinator.com/item?id=44431314)
- 作者: darraghmckay
- 评分: 1
- 评论数: 0
- 发布时间: 2025-07-01 15:01:07
---
## RP2350pc:开源一体化电脑,复古情怀与教育的完美结合
Olimex 发布了 RP2350pc,这是一款开源硬件一体化电脑,专为复古电脑爱好者和教育领域设计。它集成了 RP2350B 双核 ARM/RISC-V 处理器,并配备了丰富的接口和功能。
RP2350pc 内置 520KB RAM、8MB PSRAM 和 16MB Flash,提供充足的存储空间。它还拥有四个 USB 端口、两个 UEXT 接口、DVI/HDMI 输出以及音频编解码器,方便用户连接各种外设。此外,它还具备音频麦克风输入、耳机输出、带外置扬声器的音频放大器、SD 卡槽、LiPo UPS(支持 LiPo 电池供电)、USB-C 供电和编程接口以及电源开关。
这款电脑非常适合构建基于 ARM/RISC-V 的复古电脑,连接键盘和电视即可畅玩游戏和学习。Veselin Sladkov 正在开发的 Reload 模拟器将支持 RP2350pc,使其能够模拟 Apple ][、Oric Atmos 和 Puldin 601 等经典电脑。Paul Robson 也在开发 RP2350pc API,旨在创建一个统一的 API (BIOS),方便编译器和操作系统开发。
总而言之,RP2350pc 是一款功能强大、用途广泛的开源硬件电脑,无论是复古游戏爱好者还是教育工作者,都能从中找到乐趣和价值。
- 原文: [RP2350pc Open Source Hardware all in one computer](https://olimex.wordpress.com/2025/07/01/rp2350pc-open-source-hardware-all-in-one-computer-with-rp2350b-8mb-psram-16mb-flash-four-usb-host-dvi-hdmi-output-and-audio-codec-for-retro-computer-emulation-and-education/)
- Hacker News: [https://news.ycombinator.com/item?id=44433222](https://news.ycombinator.com/item?id=44433222)
- 作者: AlexeyBrin
- 评分: 25
- 评论数: 3
- 发布时间: 2025-07-01 20:27:31
---
## 模拟揭示增强碳纤维强度的秘密
橡树岭国家实验室(ORNL)的研究人员通过模拟发现,使用聚丙烯腈(PAN)纳米纤维薄层增强碳纤维复合材料,可以使其抗拉强度提高一倍。这项研究利用 Frontier 超级计算机进行分子动力学模拟,揭示了原子尺度上的增强机制。
碳纤维复合材料由嵌入聚合物基体中的细碳纤维组成。虽然碳纤维本身强度很高,但其与周围聚合物的结合相对较弱。研究人员通过在碳纤维和聚合物基体之间加入 PAN 纳米纤维层,将应力从碳纤维转移到周围的聚合物中,从而改善了载荷分布,提高了复合材料的整体强度。
该增强过程涉及一种称为静电纺丝的技术,该技术使用电场和旋转鼓来制造直径仅为 10 纳米的 PAN 纳米纤维。研究团队使用 LAMMPS 模拟了直径在 6 到 10 纳米之间的 PAN 纳米纤维,发现直径约为 6 纳米的纤维性能最佳。更细的纤维在界面处排列更均匀,从而提高了机械强度和应力传递。
由于碳纤维的制造和测试成本高昂,ORNL 的研究团队利用 Frontier 超级计算机强大的计算能力,模拟了包含 500 万个原子的碳纤维复合材料模型。该模型以前所未有的分子水平揭示了将材料结合在一起的基本力。Frontier 超级计算机的峰值性能为每秒 2 百亿亿次浮点运算,是世界上最强大的开放科学超级计算机。这项研究成果发表在《先进功能材料》杂志上,有望为飞机、车辆以及其他需要更轻、更强材料的制造应用领域带来新型超耐用材料。
- 原文: [Simulations reveal the secret to strengthening carbon fiber](https://www.ornl.gov/news/simulations-reveal-secret-strengthening-carbon-fiber)
- Hacker News: [https://news.ycombinator.com/item?id=44399838](https://news.ycombinator.com/item?id=44399838)
- 作者: gmays
- 评分: 11
- 评论数: 3
- 发布时间: 2025-06-28 04:08:24
---
## 抽象边界即优化边界
这篇文章探讨了抽象边界与优化之间的关系,尤其是在数据库查询优化方面。作者提出,通过提升抽象边界,例如将 ORM 融入编程语言本身,可以实现更高级别的优化。
文章首先以 N+1 查询问题为例,说明了抽象泄露可能导致的性能问题。通常的解决方案是降低抽象边界,显式地告诉 ORM 如何批量获取数据。但作者进一步思考,如果将 ORM 提升为语言的一部分,编译器就能理解 ORM 的行为,从而进行优化,例如将 N 个查询合并为一个查询。Haskell 的 stream fusion 就是一个例子,它通过 rewrite rule 优化列表操作。这种方法之所以可行,是因为 Haskell 是声明式的,底层操作语义对程序员是隐藏的,因此可以进行优化。作者认为,提升抽象边界的同时,也提升了优化边界。
评论区对此展开了热烈的讨论。
* **@cogman10:** 认为编译器永远无法做到作者期望的优化,因为编译器不了解数据的存储方式和状态。例如,数据可能存储在哈希表中,并且很少写入,这时 N+1 查询可能是避免数据库过度读取锁的正确方式。数据库的索引也会随时变化,RDBMS 为了优化会建立大量的统计信息,这些信息都需要编译器 JIT 到应用程序中才能实现类似的性能。
* **@wavemode:** 认为不需要将查询作为语言的一部分来提升边界。以 Django ORM 为例,如果函数返回单个数据库记录,循环调用该函数会导致 N+1 查询。但如果返回 QuerySet,则可以延迟计算,让调用者选择立即计算查询(当只需要一个记录时)或将多个 QuerySet 合并为一个查询,从而给调用者更多的控制权和优化机会。
* **@mrkeen:** 指出抽象边界也是一致性边界。如果在 ORM 中使用 if 语句进行更新操作,if 语句的结果在更新之前可能已经过期。如果跳过 ORM,直接在 where 子句中使用 if 语句,则可以减少这个问题。SQL 是声明式的,而 ORM 不是。
* **@discarded1023:** 提到 Haskell 可以在模块(抽象)边界之间进行优化,并列举了 Debray 在链接时优化、JVM 以及 whole-of-program 编译器等方面的工作。经典的数据抽象允许根据使用情况选择或优化实现。
- 原文: [Abstraction boundaries are optimization boundaries](https://blog.snork.dev/posts/abstraction-boundaries-are-optimization-boundaries.html)
- Hacker News: [https://news.ycombinator.com/item?id=44404831](https://news.ycombinator.com/item?id=44404831)
- 作者: delifue
- 评分: 37
- 评论数: 5
- 发布时间: 2025-06-28 22:12:10
---
## Proton 参与诉讼,指控 Apple 损害开发者和消费者权益
Proton 宣布加入针对 Apple 的集体诉讼,指控其 App Store 政策具有反竞争性,损害了开发者和消费者的权益。Proton 认为 Apple 的行为违反了美国反垄断法,并希望通过诉讼促使 Apple 改变其 App Store 政策,从而改善整个互联网的生态环境。
Proton 指出,Apple 对 iOS 设备上软件分发的垄断控制导致了一系列问题。App Store 政策偏袒 Meta 和 Google 等公司的“监控资本主义”商业模式,这些公司通过用户数据获利,侵犯用户隐私。同时,Apple 对所有开发者收取年费,并对通过 iOS 应用进行的支付抽取 30% 的佣金,这对于那些通过订阅模式盈利的隐私优先公司来说是一个巨大的障碍。
此外,Apple 对 App Store 的控制使其能够决定哪些应用可以在不同市场分发,这使其成为审查和压制言论的工具。Proton 举例说明,Apple 曾应专制政府的要求删除或审查应用,例如在中国 App Store 中下架了大量 VPN 应用和新闻应用。Proton 强调,Apple 的行为不仅损害了开发者的利益,也损害了消费者的自由和民主。
Proton 计划将从诉讼中获得的任何赔偿捐赠给致力于争取民主和人权事业的组织,以确保 Apple 从专制政权国家获得的利润能够用于促进自由。Proton 希望通过参与诉讼,能够促使 Apple 改变其反竞争行为,从而为消费者、开发者和整个互联网创造一个更加公平和开放的环境。
- 原文: [Proton joins suit against Apple for practices that harm developers and consumers](https://proton.me/blog/apple-lawsuit)
- Hacker News: [https://news.ycombinator.com/item?id=44426128](https://news.ycombinator.com/item?id=44426128)
- 作者: moose44
- 评分: 503
- 评论数: 512
- 发布时间: 2025-07-01 01:58:38
---
## First-Class Models:缺失的生产力革命
本文探讨了在编程和计算机系统中,一等模型(First-Class Models)及其分支和合并功能所蕴含的巨大生产力和表达能力潜力,而这些潜力目前几乎未被利用。文章指出,尽管我们拥有精心设计的数据库和操作,但用户在进行假设性探索时,仍然面临着无法直接在系统中操作和导航不同模型状态的局限性。
文章设想,用户应该能够查看系统的任何先前状态,并将其作为可扩展和修改的活动分支,而不仅仅是只读历史记录。用户还应该能够在不更改权威状态的情况下创建模拟分支,例如,通过分支公司的当前会计状态来模拟下个月的业绩,并进行比较、差异分析和选择性合并。这种方法类似于程序员使用 Git,但应用于所有系统状态,并对普通用户开放。
文章还强调了统一不同同步方法的必要性,例如 CRDT、Git 和数据库复制,以创建可组合的同步原语,其中用户驱动的分支和自动冲突解决是相同底层数学运算的不同表现形式。通过这种方式,可以解决用户将数据复制到 Excel 进行探索的“电子表格逃逸”问题,使用户能够在系统中维护语义关系,并将探索结果选择性地集成回主状态。
文章最后总结,当建模成为一等系统能力时,决策者可以像程序员编写代码一样严谨地探索场景,而无需编程技能。一等模型为用户提供了计算支持,将假设探索从痛苦的例外变成系统工作的自然组成部分。
### 评论区观点分析
评论区主要围绕一等模型的实际应用和用户接受度展开了讨论。
* **@rorylaitila** 提到,尽管他经常进行回顾性分析和前瞻性规划,并使用 SQL 构建可重用模型,但他仍然依赖 Excel 进行探索,因为在探索阶段,领域知识尚未明确,保存和构建数据没有价值。此外,他认为最大的挑战在于跟踪复杂模型的各个分支和数据沿袭。
* **@jdvh** 则从用户接受度的角度出发,认为复杂性每增加 10%,潜在用户群就会减少一半。他指出,人们倾向于使用他们已经熟悉的工具,即使存在更强大的工具,他们也不愿意学习。因此,像 Hypercard 和 Git 这样的系统未能成为主流。
总的来说,评论区既肯定了一等模型的潜力,也指出了其在实际应用中面临的挑战,例如用户习惯和复杂性管理。
- 原文: [First-Class Models: The Missing Productivity Revolution](https://frest.substack.com/p/first-class-models-the-missing-productivity)
- Hacker News: [https://news.ycombinator.com/item?id=44405565](https://news.ycombinator.com/item?id=44405565)
- 作者: surprisetalk
- 评分: 15
- 评论数: 8
- 发布时间: 2025-06-28 23:48:11
---
## Cloudflare 推出 AI 爬虫付费服务:内容所有者的新选择
Cloudflare 宣布推出一项名为 "Pay per crawl" 的新服务,旨在让内容创作者能够向抓取其内容的 AI 爬虫收费,从而改变目前要么完全开放要么完全封闭的二元选择。
这项服务允许网站所有者通过 HTTP 402 状态码来控制 AI 爬虫对其内容的访问,并从中获利。内容发布者可以设置三种模式:允许免费访问、收费访问或完全阻止。即使爬虫没有与 Cloudflare 建立账单关系,发布者仍然可以选择“收费”,这实际上相当于网络级别的阻止,但能告知爬虫未来可能存在合作机会。
Pay per crawl 与现有 Web 基础设施集成,利用 HTTP 状态码和已建立的身份验证机制,为付费内容访问创建一个框架。当 AI 爬虫请求内容时,它可以通过请求标头呈现付款意图以成功访问(HTTP 200 响应代码),或者收到带有定价的 "402 Payment Required" 响应。Cloudflare 充当 Pay per crawl 的记录商,并提供底层技术基础设施。
为了防止爬虫身份被欺骗,Cloudflare 采用了 Web Bot Auth 方案,要求爬虫生成 Ed25519 密钥对,并通过 HTTP Message Signatures 对每个请求进行签名。爬虫可以通过两种方式访问付费内容:被动式(先发现)和主动式(先声明意图)。被动式是指爬虫先请求 URL,收到 402 响应后,再附带 `crawler-exact-price` 标头重试。主动式是指爬虫在初始请求中包含 `crawler-max-price` 标头,表明愿意支付的最高价格。
在财务结算方面,爬虫运营商和内容所有者需要在 Cloudflare 账户中配置支付详细信息。Cloudflare 会记录每次爬虫发出带有付款意图的身份验证请求并收到带有 `crawler-charged` 标头的 HTTP 200 级别响应的事件,然后汇总所有事件,向爬虫收费,并将收益分配给发布者。
这项服务目前处于私测阶段,标志着内容控制方式的技术转变,旨在让内容创作者在 AI 时代更好地掌控自己的作品。
- 原文: [Cloudflare to introduce pay-per-crawl for AI bots](https://blog.cloudflare.com/introducing-pay-per-crawl/)
- Hacker News: [https://news.ycombinator.com/item?id=44432385](https://news.ycombinator.com/item?id=44432385)
- 作者: scotchmi_st
- 评分: 318
- 评论数: 160
- 发布时间: 2025-07-01 18:20:27
---
## 《森喜刚2》中的开放总线Bug
《森喜刚2》在老式SNES模拟器ZSNES中存在一个著名的bug,导致某些关卡中的旋转桶无法正常工作。这个bug是由ZSNES未模拟开放总线行为引起的。
开放总线行为是指在SNES等老式平台上,从无效内存地址读取数据通常不会导致程序崩溃,而是会重新读取上次放在数据总线上的值。在《森喜刚2》中,当玩家进入旋转桶时,游戏会读取B3银行中的$2000和$2001地址。在某些银行中,这些地址会映射到卡带或RAM,但在B3银行中,它们未映射到任何内容,因此读取它们是开放总线行为。
以下是执行开放总线读取的游戏代码的反汇编:
```assembly
; initial state:
; DBR (data bank) = $B3
; D (direct page) = $0000
; M and X flags both clear (16-bit registers and memory)
; X = $0E9E
; Y = $0DE2
lda $48,x
clc
adc $0028,y
sta $32
eor $48,x
and $2000 ; 16-bit open bus read!
beq continue
; this part of the routine will never execute if open bus reads always return 0
lda #$0000
sta $0028,y
lda $32
clc
adc #$1000
and #$e000
sta $48,x
rts
continue:
lda $32
sta $48,x
rts
```
这段代码访问了$0000-$2001范围内的一些内存地址。其中一些是通过使用当前数据银行$B3的绝对寻址模式访问的,而另一些则使用始终访问银行$00的直接页面寻址模式。B3和00银行对于此$0000-$2001地址范围具有相同的内存映射。在银行$00-$3F和$80-$BF中,$0000-$1FFF始终映射到控制台128 KB工作RAM(WRAM)的前8 KB。$2000-$20FF完全未映射,因此`and $2000`指令是开放的。
由于ZSNES未正确模拟开放总线行为,因此`and $2000`指令始终返回0,导致旋转桶无限旋转。Snes9x通过硬编码特定地址以返回游戏依赖的值来修复了此错误,而不是正确模拟开放总线。ZSNES中从未修复此错误,该项目现已废弃。
- 原文: [Donkey Kong Country 2 and Open Bus](https://jsgroth.dev/blog/posts/dkc2-open-bus/)
- Hacker News: [https://news.ycombinator.com/item?id=44424194](https://news.ycombinator.com/item?id=44424194)
- 作者: colejohnson66
- 评分: 244
- 评论数: 60
- 发布时间: 2025-06-30 23:01:12
---
## 使用 Claude Code Hooks 定制你的 AI 助手
Claude Code Hooks 允许开发者通过自定义 shell 命令,在 Claude Code 的生命周期中的特定节点执行,从而实现对 Claude Code 行为的更精细控制。
文章介绍了 Claude Code 的 Hooks 功能,它允许用户在 Claude Code 的不同生命周期阶段执行自定义的 shell 命令。这些 Hooks 可以用于多种用途,例如发送通知、自动格式化代码、记录命令执行情况、提供代码规范反馈以及自定义权限控制。通过将规则编码为 Hooks,而不是依赖提示指令,可以将建议转化为应用程序级别的代码,确保每次在预期运行时都能执行。文章提供了一个快速入门指南,演示如何添加一个 Hook 来记录 Claude Code 运行的 shell 命令。配置 Hooks 涉及设置匹配器(例如,针对 Bash 工具调用)和指定要执行的命令。Hooks 可以配置在用户设置、项目设置或本地项目设置中。
文章详细解释了不同类型的 Hook 事件,包括 PreToolUse(在工具调用之前运行)、PostToolUse(在工具成功完成后运行)、Notification(在 Claude Code 发送通知时运行)和 Stop(在 Claude Code 完成响应时运行)。每种 Hook 事件都接收 JSON 格式的输入数据,包含会话信息和事件特定数据。Hooks 可以通过退出代码或 JSON 输出来返回输出到 Claude Code,从而控制是否阻止操作以及向 Claude 和用户提供反馈。文章还介绍了如何使用 Hooks 与 Model Context Protocol (MCP) 工具集成,并提供了一些示例,例如自动格式化代码和自定义通知。最后,文章强调了使用 Hooks 的安全注意事项,指出由于 Hooks 会执行任意 shell 命令,因此存在一定的风险。
- 原文: [Claude Code now supports hooks](https://docs.anthropic.com/en/docs/claude-code/hooks)
- Hacker News: [https://news.ycombinator.com/item?id=44429225](https://news.ycombinator.com/item?id=44429225)
- 作者: ramoz
- 评分: 287
- 评论数: 124
- 发布时间: 2025-07-01 08:01:15
---
## GPEmu:用于加速和降低深度学习系统研究原型设计的 GPU 模拟器
本文介绍了一种名为 GPEmu 的 GPU 模拟器,旨在以更快的速度和更低的成本进行深度学习系统研究的原型设计和评估,而无需使用真实的 GPU。GPEmu 的目标是解决深度学习研究中由于 GPU 成本高昂和可用性有限而导致的问题。
GPEmu 具有四个创新特性:时间模拟、内存模拟、分布式系统支持和共享支持。它支持超过 30 个深度学习模型和 6 种 GPU 模型,是目前支持规模最大的模拟器。时间模拟通过睡眠方法来模拟 GPU 相关步骤的时间成本,包括模型计算、数据传输和数据预处理。内存模拟则关注计算峰值、模型持久性和预处理 GPU 内存使用等关键指标。GPEmu 还支持在单节点和分布式环境(如 Kubernetes)中运行,适用于深度学习训练工作负载。
该模拟器的设计重点在于模拟计算时间、预处理时间、数据传输时间和 GPU 内存消耗等多个方面,以确保模拟结果的准确性。GPEmu 旨在支持各种深度学习模型、GPU 和批量大小,并支持分布式训练、作业调度和 GPU 共享。作者通过成功重现九篇最新出版物的主要结果,并轻松地对三个新的微优化进行原型设计,展示了 GPEmu 的强大功能。
GPEmu 的目标包括:专注于深度学习训练工作负载,广泛支持模拟各种模型、GPU 和批量大小,有效地揭示模拟期间的深度学习系统瓶颈,并快速展示新系统优化在各个研究领域中的优势。GPEmu 通过 Python 库与 PyTorch 等流行的深度学习框架集成,方便用户使用。
- 原文: [GPEmu: A GPU emulator for rapid, low-cost deep learning prototyping [pdf]](https://vldb.org/pvldb/vol18/p1919-wang.pdf)
- Hacker News: [https://news.ycombinator.com/item?id=44428674](https://news.ycombinator.com/item?id=44428674)
- 作者: matt_d
- 评分: 61
- 评论数: 11
- 发布时间: 2025-07-01 06:37:06
---