2025-07-04 Hacker News Top Stories #
- Collin Richards 将 tmux 从 C 语言移植到 Rust 语言,耗时 6 个月,手动翻译代码并分享了 bug 修复经历。
- 美国国家气候评估官方网站关闭,公众无法获取重要气候变化信息,科学家担忧此举可能加剧公众受害风险。
- AI 笔记记录者广泛应用于 Zoom 会议,部分人认为其减少人际互动,但也被视为提高效率的有用工具。
- 天文学家发现第三个星际物体 3I/ATLAS,速度最快,轨道异常,预计难以观测。
- Armin Ronacher 讨论了 MCP 的局限性,强调直接使用代码工具更高效,并展示了代码与 LLM 结合的实际应用。
- Couchers.org 正式结束 Beta 测试,推出 1.0 版本,提升沙发冲浪体验和社区安全性。
- 作者探讨了构建 AI 代理的挑战,指出上下文管理和可靠性问题,并呼吁更关注实际价值创造。
- 一篇文章讲述了在 Linux 内核中调试难以复现的 bug 的经历,详细介绍了调试过程和方法。
- 一位安全研究人员利用 GitHub API 扫描被删除的提交,发现了泄露的秘密,并强调即使删除提交秘密仍可被找到。
- 文章讨论了《龙与地下城》第五版中被称为“农民轨道炮”的理论战术,利用规则漏洞对敌人造成巨大伤害。
Introducing tmux-rs #
https://richardscollin.github.io/tmux-rs/
本文介绍了作者 Collin Richards 将 tmux 从 C 语言移植到 Rust 语言的过程。作者在大约 6 个月的时间里,将 tmux 的代码库从 C 语言转换为 Rust 语言,达到了 100% 的 Rust 代码。这个过程涉及到将大约 67,000 行的 C 代码转换为大约 81,000 行的 Rust 代码(不包括注释和空行)。
作者首先尝试使用 C2Rust 工具进行代码转换。C2Rust 是一个 C 到 Rust 的转译器,虽然设置起来有些复杂,但一旦运行起来,成功地将 tmux 的代码库转译为 Rust 代码。然而,生成的代码几乎无法维护,并且比原始的 C 代码大三倍。作者通过手动重构这些代码,但仍然需要频繁地查看原始的 C 代码以理解程序的意图。最终,作者放弃了 C2Rust 的输出,决定手动将所有文件从 C 语言翻译成 Rust 语言。
在构建过程中,作者首先需要理解 tmux 的构建方式,即 autotools。他学会了如何在 autogen.sh 中添加或移除文件,以及如何修改生成的 Makefile 以链接到由他的 Rust crate 创建的静态库。这个过程意味着构建过程并不像简单地运行 cargo build 那样简单。作者编写了一个小型的 build.sh 脚本,该脚本会调用 cargo,然后运行 make。这个过程中,作者尝试将项目分解为迷你 crate,但由于 crate 不能有循环依赖,以及在将多个 Rust 库链接到同一个二进制文件时可能会遇到链接问题,最终决定将所有内容放在同一个 crate 中。
作者最初是一次翻译一个文件,但在翻译一个大文件并陷入调试时,他改变了开发过程,改为一次只翻译一个函数,并在之间快速运行 build.sh 以确保一切正常。这个过程意味着需要在 C 代码中为原本是静态的函数添加额外的头文件。新的开发过程如下:复制 C 函数的头文件,注释掉 C 函数体,然后在 Rust 中实现该函数。只要函数具有#[unsafe(no_mangle)]属性 extern “C"注解和正确的签名,C 代码就会链接到 Rust 实现。
在翻译了大约一半的 C 文件后,作者开始思考当前的构建过程是否有些愚蠢。由于大部分代码现在都是 Rust 编写的,他应该构建一个 Rust 二进制文件,并链接到一个 C 库。这正是可以使用 cc crate 实现的。作者设置了一个 build.rs 文件,列出了需要编译的 C 文件,并使用 cc::Build::new().compile(“foo”)进行编译。
在代码翻译过程中,作者引入了许多 bug。他分享了发现和修复其中一些 bug 的过程。例如,一个简单的函数翻译后导致程序崩溃。通过调试,作者发现问题在于 C 代码使用了隐式声明,导致返回值类型错误,从而引发了段错误。通过添加正确的函数声明,问题得以解决。
HN 热度 546 points | 评论 191 comments | 作者:Jtsummers | 9 hours ago #
https://news.ycombinator.com/item?id=44455787
- tmux-rs 是一个基于 Rust 的 tmux 会话管理器,作者将其视为一个爱好项目,类似于园艺,但有更多的段错误。
- 有评论者认为,不一定需要有理由去构建新东西,爱好项目可能会带来意想不到的结果。
- 有人提到,不是每个项目都需要改变世界,重写
fzf
到 Rust 语言也是出于学习模糊搜索算法和 Rust 通道的兴趣。 - 有观点认为,Rust 可能使某些工具如
fzf
变得更好,因为 C 语言重写的fzy
虽然快,但在搜索 bash 历史时结果不够有用。 - 评论中提到,人们出于乐趣做很多事情,这是我们学习和探索世界的方式。
- 有评论者引用 Knuth 的话,认为让计算机科学家自由地做他们想做的事情是推动领域进步的方式。
- 有人认为,过度思考个人项目和使用的语言阻碍了他们作为初级软件工程师的成长。
- 评论中提到,做“只是因为”的事情可能会让你学到一些重要的技能或信息。
- 有人认为,问“为什么”可以是一个合理的问题,而“为了乐趣”也可以是一个合理的答案。
- 有观点认为,不同的娱乐方式对他人的价值不同。
- 评论中提到,不一定需要一个理由去用其他语言重写软件,例如 tmux。
- 有评论者好奇,为什么 tmux 比 screen 获得了更多的关注,screen 可能只是名字起得不好。
- 评论中提到,在 Rust 中使用
unsafe
可能是因为 C 语言允许的一些操作在 Rust 中无法编译,如指针的数学运算和类型转换。
Websites hosting major US climate reports taken down #
2025 年 7 月 1 日,报道显示,美国国家气候评估的官方网站似乎已经关闭,这让州和地方政府以及公众难以获取有关气候变化的信息。这些气候评估报告是根据法律规定制作的,旨在帮助各级政府和公众了解气候变暖的影响及应对措施。科学家们指出,这些经过同行评审的权威报告能够节省资金和挽救生命。
在报道中提到,负责这些评估的白宫表示,相关信息将存放在 NASA 以遵循法律,但没有提供进一步的细节。尽管搜索 NASA 网站仍未找到相关评估报告,NASA 和国家海洋和大气管理局(NOAA)对此未作出回应。
亚利桑那大学的气候科学家 Kathy Jacobs 对此表示担忧,认为如果国家气候评估不再可用,这是对科学信息和公众获取信息的严重干扰,可能增加人们因气候变化而受害的风险。前总统奥巴马的科学顾问、哈佛大学的气候科学家 John Holdren 也指出,气候评估对各级官员非常有用,帮助他们做出基础设施建设的决策。
气候科学家 Katharine Hayhoe 表示,这些国家评估比联合国每七年发布的国际气候报告更有用,因为它们更具地方性和详细性。国家评估不仅经过其他科学家的同行评审,还由国家科学院和联邦机构进行准确性审查。Jacobs 强调,隐藏这些报告就是在审查科学,这是对国家的危险。
此外,报道还提到,特朗普政府在春季通知气候评估的志愿作者不再需要他们的服务,并终止了与负责协调网站和报告的私人公司的合同。NOAA 的主要气候网站最近也转向了另一个网站,社交媒体和博客的内容被削减或删除。
总之,这一事件被科学界认为是对科学基础设施的严重破坏,科学家们呼吁公众关注这一问题,以确保能够安全应对气候变化带来的挑战。
HN 热度 529 points | 评论 353 comments | 作者:geox | 1 day ago #
https://news.ycombinator.com/item?id=44448868
- 这个政府在压制言论、削减研究资金、削减社会项目、增加驱逐力度和强度、因政治关系驱逐人员、经济政策不必要地破坏性以及普遍的无能、撒谎和腐败等方面有很多红旗。
- 特朗普政府的回报是更白的美国和女性回归厨房,目标明确。
- 美国有官方的集中营商品,回报是种族灭绝和奴隶制的重建。
- 特朗普政府在种族灭绝和奴隶制方面是公开的,美国国务院现在有一个“再移民办公室”。
- 特朗普政府的种族灭绝和奴隶制政策是夸张的,没有迹象表明他们正在实施或计划种族灭绝或奴隶制。
- 种族灭绝和奴隶制有明确的定义,不应该因为情绪化的指责而淡化。
- 特朗普政府的驱逐政策是驱逐,不是大规模奴隶销售。
- 种族灭绝可能在合法政策的掩护下秘密进行,如果现在有种族灭绝,可能大多数人不知道,甚至可能隐藏在众目睽睽之下。
- 种族灭绝和种族清洗的概念需要理解,然后可以从各种媒体中选择信息。
- 种族清洗对我来说听起来像卢旺达或南斯拉夫,这在美国还没有发生。
- 有些人可能希望将“种族灭绝”保留给最糟糕的情况,而其他人则希望使用一个更广泛的术语,包括种族灭绝。
- 有些人还试图推动使用“种族文化灭绝”这个术语,用于不涉及大规模杀戮的情况。
- 根据当前的驱逐(我反对的)既不是种族灭绝也不是种族清洗。美国没有基于种族试图移除国家的拉丁裔人口,尽管其对非法移民的驱逐做法非常粗暴,但远未达到任何合理定义的种族灭绝或种族清洗的程度。
AI note takers are flooding Zoom calls as workers opt to skip meetings #
https://www.washingtonpost.com/technology/2025/07/02/ai-note-takers-meetings-bots/
这篇文章讨论了人工智能(AI)在会议中替代人类记录员的现象。文章开头提到了一个名叫 Clifton Sellers 的人,他在上个月参加了一个 Zoom 会议,会议中机器人的数量超过了人类。他回忆说,包括他自己在内,会议中有六个人,而其他十个参与者是 AI 驱动的笔记应用程序,它们被用来记录、转录和总结会议内容。一些 AI 助手是辅助实际在场的人,而其他的则代表那些没有出现但发送了一个只能听不能说的机器人的人类。这种人类与机器的不平衡让 Sellers 担心,对 AI 驱动的优化的现代渴望可能开始阻碍人际互动。
文章中还提到了读者对 AI 笔记记录器在会议中的不同看法。一些用户对隐私表示担忧,担心 AI 可能会减少人际互动,以及如果只有 AI 参加会议,会议可能会变得毫无意义。而其他人则认为 AI 笔记记录器很有用。这些评论反映了人们对 AI 笔记记录器的怀疑和欣赏。
HN 热度 294 points | 评论 360 comments | 作者:tysone | 1 day ago #
https://news.ycombinator.com/item?id=44446916
- 会议信息密度低是因为人们懒得提前规划议程和分配会前作业,导致会议无法专注于解决问题和创造价值。
- 会议的真正目的在于关系管理,而非会议主题本身,因此专注于实际工作的人讨厌会议,而职业导向的人则喜欢。
- 有些人安排会议和电话通话是因为他们工作无聊,想要找人聊天。
- 亚马逊禁止会前作业,要求会议开始时所有人先阅读文档,以便讨论时大家都在同一起跑线上。
- 高级个人贡献者的角色令人悲哀,因为他们需要同时担任产品经理、项目经理和人员经理的角色,而专注的角色则在自我限制的领域内工作。
- 站立式定期会议基本上是无用的,如果会议不够重要,无法准备材料或议程,就应该取消。
- 为了使会议高效,参与者需要了解背景,会前“做作业”可以确保人们不会在会议中浪费时间等待某人第一次阅读报告或了解其他人已经知道的情况。
- 亚马逊的沉默阅读方式可以让人们在需要讨论的区域留下评论,这样会议就可以只关注这些点。
- 有时候会议的目的是为了让忙碌的副总裁听取某个提案并说“是”,这种情况下不可能因为某人没准备好就取消会议。
Astronomers discover 3I/ATLAS – Third interstellar object to visit Solar System #
天文学家发现了来自我们太阳系外的第三个星际物体。这个被命名为 3I/ATLAS 的物体很可能是一颗彗星,并且它的速度比之前发现的任何星际物体都要快。3I/ATLAS 正以大约每秒 60 公里的速度向我们的太阳飞来。据南昆士兰大学的天文学家 Jonti Horner 表示,这个物体以如此惊人的速度接近,太阳系内没有任何东西能造成这种情况。在我们已经观测到的三个星际物体中,这是迄今为止最快的一个。
此前,只有两个星际物体被追踪到进入我们的太阳系——“Oumuamua 和彗星 2I/Borisov。这个发现非常令人兴奋。当这个物体本周早些时候首次被探测到时,天文学界就开始讨论这个潜在的星际物体。由于相对较早地被发现,我们至少有八个月的时间来观测它。这个物体最初是由智利的 ATLAS 望远镜在 7 月 1 日探测到的。后续的观测确认了它的轨道非常不寻常,几乎不受太阳引力的影响。直到昨天,美国的小行星中心的科学家才确认这个物体是一个星际物体,并根据显示它有短尾巴的图像推测它可能是一颗彗星。需要进行更多的观测来确认这一点,并获取关于这个物体的更多细节。
目前估计,3I/ATLAS 将在 10 月底最接近太阳,然后在明年 3 月前返回木星外的外太阳系。不幸的是,当 3I/ATLAS 最接近太阳并且最亮时,地球将位于太阳系的另一侧,这使得我们更难看到它。如果我们在火星上,我们将能相当好地看到它。它不会非常接近火星,但它将比地球更接近火星。由于 3I/ATLAS 可能目前正在经历一次爆发——由物体释放的尘埃和气体引起的突然增亮——因此很难追踪它的大小。Oumuamua 是一个“雪茄”形状,使它不那么亮。Oumuamua 是一个相当小的物体,对 2I/Borisov 的大小估计从大约 1 公里到超过 16 公里不等。Jonti Horner 教授表示,这个物体可能更大一些,可能是几百米到一公里宽,也许比这还要大一些,这很大,但并不特别。
随着 Vera C. Rubin 天文台的第一张图像上周发布,我们可能会发现更多的星际物体。到目前为止,星际物体非常罕见,但随着像 Rubin 天文台这样更好的望远镜,我们可能会在这些物体到来时捕捉到更多。我们已经用现有技术在不到十年的时间里发现了三个星际物体。Rubin 天文台可能比寻找物体的能力高出一个数量级……这表明我们每年可能会发现几个这样的物体。在其运行的前 10 个小时内,天文台探测到了 2000 多个以前未知的小行星。这有点像是对未来的偷窥。
HN 热度 276 points | 评论 145 comments | 作者:gammarator | 21 hours ago #
https://news.ycombinator.com/item?id=44451329
- 3I/ATLAS 是第三个访问太阳系的星际物体,其轨道偏心率超过 6,远高于 1I 和 2I 的 1.2 和 3.3。
- 3I/ATLAS 目前还只是一个天空中的点,难以判断是否活跃,如果不是活跃的(如小行星),则直径可能在 8-22 公里之间。
- 如果 3I/ATLAS 是活跃的,那么它可能会因为尘埃脱落而看起来更大。
- 3I/ATLAS 不会特别接近任何行星,它将在万圣节前以 1.35 天文单位的距离最接近太阳,以 68 公里/秒的速度移动。
- 3I/ATLAS 的轨道是逆行的,对于星际物体来说,这是随机的。
- 接下来的几周对于研究者来说将是有趣的。
- 3I/ATLAS 最接近的接近日期是 2025 年 10 月 29 日,目前正在通过木星轨道。
- 空间的广阔难以想象,与地球上的任何参照物相比都是微不足道的。
- 通过海洋的广阔可以类比理解空间的浩瀚,但仍然无法真正理解。
- 太阳系的最佳描绘之一是 Josh Worth 的"If the Moon were only 1 pixel”。
- 太阳系的规模和距离可以通过光速旅行来更好地理解。
- 空间旅行可能像战争一样,长时间的无聊被短暂的极度恐惧打断。
- 行星轨迹是一种将行星轨道按比例缩小并放置在景观中的方法。
- 太阳系的模型可以通过美国足球场的比例来比较,太阳是最大的,内行星如沙子般大小。
- Primo Levi 的短篇故事描述了我们的语言和测量在描述宇宙时的不足。
- 海滩上的地平线大约只有 5 公里或 3 英里远。
- 生活在如此庞大的宇宙中,生命不能有比例感。
- 3I/ATLAS 的“活跃”指的是是否有彗发。
- 3I/ATLAS 的偏心率指的是其轨道的形状。
- 目前还没有足够的数据来确定 3I/ATLAS 的形状。
- 如果一个如此大小的物体以 90 公里/秒的速度撞击火星,后果将是灾难性的。
Tools: Code Is All You Need #
https://lucumr.pocoo.org/2025/7/3/tools/
Armin Ronacher 在他的博客中分享了他对 MCP(Model Context Protocol)的看法和思考。他首先表明,尽管他不反对 MCP 的理念,但他认为 MCP 在实际应用中存在两个主要问题:它并不真正可组合,大多数组合是通过推理实现的;它要求太多的上下文信息,每次工具调用都需要消耗比直接编写和运行代码更多的上下文。
他通过一个实验来说明这一点:尝试使用 GitHub 的 MCP 和 gh CLI 工具来完成一个 GitHub 任务,你会发现后者在上下文的使用上更为高效,并且能够更快地达到预期结果。
尽管有人认为 MCP 可能是未来的发展方向,Armin Ronacher 认为,根据他目前的数据分析,当前的 MCP 总是比编写代码更难使用,主要是因为它依赖于推理。他提到,目前推动工具数量增加的方法都包括一个过滤层,即将所有工具传递给 LLM(大型语言模型),并要求它根据手头的任务进行过滤。
他认为,即使在非编程、特定领域的任务中,代码生成也是更好的选择,因为它能够更好地组合。他以“用 shell 脚本替换自己”为例,说明了许多手工任务实际上是可以通过软件自动化的,挑战在于找到愿意编写软件的人。如果你在一个小众环境中工作,并且你自己不是程序员,你可能不会拿起一本编程书来学习如何编码,也可能找不到一个开发者愿意为你提供一个定制的软件来解决你的特定问题。
Armin Ronacher 还讨论了自动化的规模问题,强调自动化的关键是自动化那些会反复发生的事情。你不会去自动化一个永远不会再次发生的一次性更改。你会开始自动化那些机器真正能给你带来生产力提升的事情,因为你可能会做一次或两次,弄清楚如何让它工作,然后让机器重复它一千次。
他以自己的博客为例,最近他将整个博客从 reStructuredText 转换为 Markdown。他让 LLM 通过代码来执行这个转换,而不是直接进行转换。他要求 LLM 将 reStructuredText 解析为 AST(抽象语法树),然后将其转换为 Markdown AST,最后渲染为 HTML。这样,他就有了一个中间转换步骤和一个可比较的最终结果。然后,他要求 LLM 编写一个脚本来比较旧的 HTML 和新的 HTML,并在一些基本清理后执行差异比较。他要求 LLM 考虑哪些转换错误是可以接受的,并在脚本中对此进行补偿。最后,他要求 LLM 创建第三个脚本,以便他可以运行在数百个文件的输出上,分析差异,然后回到代理循环中进行另一次迭代。
通过这个过程,Armin Ronacher 最终信任了这个转换过程,因为他可以审查方法。他还尝试让另一个 LLM 评估另一个 LLM 编写的代码和变更,这给了他更高的信心,让他相信正在进行的过程不会丢失数据。他认为这是一个根本上正确的机械过程,他能够观察并进行抽查。最坏的情况是,回归是微小的 Markdown 语法错误,但文本本身不会被破坏。他还指出,由于推理相对恒定,这个过程中的推理成本随着迭代步骤和样本大小的增加而增加,但不取决于他想要转换的文档总数。最终,他让 LLM 始终运行在所有文档上,但运行 15 个文档与 150 个文档的努力差不多,因为最终基于 LLM 的分析步骤没有更多的东西需要审查(它已经跳过了文件中的所有小差异)。
HN 热度 261 points | 评论 194 comments | 作者:Bogdanp | 13 hours ago #
https://news.ycombinator.com/item?id=44453688
- 大型语言模型(LLM)的实际应用主要是填补两个固定接口之间的空白,其可靠性来自于接口本身而非模型的推断和生成。
- LLM 的价值取决于现有代码和工具对数据、逻辑和领域动作的建模能力。
- LLMs 可以类比 3D 打印机,在快速连接部件方面表现出色,但在可靠性和规模化方面需要更耐用和确定性的解决方案。
- 无人机和虚拟现实(VR)的炒作周期与 LLM 相似,实际应用范围更窄。
- 有人指出,AR(增强现实)而非 VR 是未来技术发展的趋势。
- 有人认为,智能手机可能是人类与数据交互的终极形式,我们可能无法做得更好。
- 人与人的交互比人与数据的交互更重要,这可能是 VR 难以超越智能手机的原因。
- 无人机在现代冲突中非常流行,其炒作并非虚假。
- 无人机和 VR 的实际应用可能还未达到顶峰。
- 有人认为,如果机会成本为零,那么“太早”就是错误的变体。
- 无人机交付和人们在 VR 中花费大量时间确实在发生,但规模远小于炒作。
- 采用 LLM 服务不需要前期硬件投资,这可能是许多公司迅速参与其中的原因。
- 存在一种观点认为,LLM 的大规模采用可能会变成大规模的责任问题。
- 有人认为,LLM 可能需要在其维护成本变得过高之前找到“杀手级应用”。
- 有人怀疑 LLM 是否与区块链一样,处于一个清晰的泡沫中。
- 有人认为,LLM 的实际应用可能与炒作相符,且被过度炒作为自古腾堡以来最重要的事情。
- 有人指出,如果 LLM 的应用规模没有达到预期,那么它实际上并没有发生。
Couchers is officially out of beta #
https://couchers.org/blog/2025/07/01/releasing-couchers-v1
Couchers.org 网站宣布正式结束 Beta 测试阶段,推出了 1.0 版本。经过五年的构建和发展,包括 Alpha 阶段和漫长的 Beta 阶段,平台和社区终于准备好进行大规模推广。这次发布标志着一个新的战略方向,一个重新设计的登陆页面,以及一系列新功能的推出,旨在提升核心沙发冲浪功能。
新战略的核心是致力于成为最安全、最健康、最活跃的沙发冲浪社区。这与最初的计划相比有所发展,更加明确了 Couchers 的立场,不再依赖于其他平台的影子。此外,新推出的登陆页面旨在更清晰地传达 Couchers 的价值观和特色,并向新老沙发冲浪者解释社区的内涵。
1.0 版本的发布意味着平台的核心功能已经清理完毕,准备就绪供所有人使用。几个月前的 0.9.9 版本中也进行了大量的清理工作。这次发布后,Couchers 将专注于平台的扩展和开发新功能,以帮助用户更好地与其他成员建立联系。
新功能包括:
- 重新设计的登陆页面:新页面清晰地传达了 Couchers 是什么,代表什么,以及注册后可以找到什么。这有助于吸引更多合适的成员。
- 改进的参考功能:用户现在可以表明是否与某人同住或接待(我们不会提醒你留下参考),并且可以通过参考流程向安全团队发送私人反馈(不显示在公共参考上)。这有助于安全团队更好地理解情况,保持平台安全。
- 更快地找到成员:重新设计的地图搜索页面,Nicole 花费数月时间重新构建,Aapeli 帮助构建了一些新的后端功能,显著加快了搜索速度。
- 新的通知推送:引入了通知推送,包括桌面和移动设备,以及为讨论中的嵌套回复和待处理的接待请求等添加了许多新的通知类型。
- 语言选择器和翻译:实现了语言选择器,并正在积极将平台翻译成除英语以外的其他语言。
- 安全与版主功能:推出了新的功能以提高平台的安全性,包括删除好友、阻止(和取消阻止)用户、为活动卡片添加报告标志等。
- 公共路线图:为了更好地沟通正在开发的功能和改进,Chris 领导了一个团队来制作和维护公共路线图,这是一个了解我们正在做什么以及期待什么的好资源。
- 活跃度探测系统:如果用户设置为接待状态但已经很久没有登录,系统会偶尔发送通知询问是否仍然有兴趣接待。这有助于减少冲浪者向从不阅读通知的接待者发送的精心准备的请求数量。
HN 热度 240 points | 评论 117 comments | 作者:laurentlb | 1 day ago #
https://news.ycombinator.com/item?id=44446917
- 有人因为不喜欢别人评论自己家的毛巾设计而停止了接待沙发客。
- 有人认为 Couchsurfing 在 2020 年变得商业化,不再免费,因此失去了吸引力。
- 有人认为 Couchsurfing 变成了一个以约会为目的的社区,吸引了不同的人群。
- Couchers 的联合创始人表示,他们的目标是恢复 Couchsurfing 最好的一面,并进一步发展。
- 有人认为,对于 Couchsurfing 这样的社区,应该在评论发布前进行更好的审核。
- 有人认为,接待沙发客的同时还要承担版主的责任,这让人望而却步。
- 有人认为,像 Airbnb 这样的平台也应该有类似的评论审核机制。
- 有人分享了自己作为 Airbnb 房东遇到的奇怪客人和不合理的差评。
- 有人认为,一些差评是出于个人的奇怪理由,而不是产品或服务本身的问题。
- 有人认为,对于 Couchsurfing 这样的非盈利服务,给予差评是不合适的。
- 有人认为,对于 Airbnb 这样的商业服务,给予差评是可以接受的。
- 有人提出了一个关于 Airbnb 的欺诈计划,但被指出实际上并不可行。
What to build instead of AI agents #
https://decodingml.substack.com/p/stop-building-ai-agents
作者提出了一个问题,即“机器学习是什么?”并简要介绍了机器学习的重要性。作者强调,尽管机器学习在许多领域都有应用,但许多人对其背后的原理和概念仍然知之甚少。
作者解释了机器学习的基本定义,即机器学习是一种使计算机能够从数据中学习和做出决策的技术。它涉及到算法和统计模型,这些算法和模型可以从数据中学习并做出预测或决策,而无需明确编程。
文章详细介绍了三种主要的机器学习类型:监督学习、无监督学习和强化学习。每种类型都有其特定的应用场景和优缺点。
- 监督学习: 监督学习涉及使用标记的训练数据来训练模型,以便模型能够预测输出。例如,通过分析过去的房价数据来预测未来的房价。
- 无监督学习: 无监督学习用于发现数据中的模式和结构,而不需要任何标记的数据。例如,聚类算法可以用来将客户分成不同的群体。
- 强化学习: 强化学习是一种学习策略,通过奖励和惩罚来训练模型,使其能够做出最优决策。这种学习方式在游戏和机器人领域特别有用。
作者列举了机器学习在不同行业的应用,包括医疗保健、金融、零售和自动驾驶汽车等。每个应用都展示了机器学习如何帮助解决复杂问题和提高效率。
文章讨论了机器学习面临的一些挑战,如数据隐私、偏见和可解释性。作者强调,尽管机器学习技术在不断进步,但这些问题需要通过跨学科合作和技术创新来解决。
最后,作者总结了机器学习的重要性,并鼓励读者进一步探索这一领域。作者认为,随着技术的不断发展,机器学习将在未来的许多领域发挥关键作用。
HN 热度 223 points | 评论 114 comments | 作者:giuliomagnifico | 1 day ago #
https://news.ycombinator.com/item?id=44450160
- 构建代理时存在“上下文工程”的严重问题,需要新思路来克服。
- 通过测试套件引导代理是一种强大的增强机制,希望新思维能扩展到代理所需的其他“软技能”。
- 花费更多时间与工具斗争而不是实际工作。
- 有时玩弄这些工具而不考虑生产力可能是有趣的。
- 一切都应该是关于完成工作和创造价值。
- 在自己的时间内玩弄工具是可以的,但工作时应该专注于创造价值。
- 价值并不总是以特定形式出现,过度追求生产力可能会阻碍创造有趣且具有长期意义的事物。
- 代理不是宠物而是工具,应该能够作为工具使用。
- 理解系统深入并构建它,同时信任它按预期工作是乐趣所在。
- 构建.md 文件时,清晰简洁、结构清晰的文档就足够了,不需要太多调整。
- 构建.md 文件时,需要考虑文件是否对大型语言模型(LLM)可读。
- 代理不可靠地阅读.md 文件,需要不断提醒。
- 通过代理维护文档可以减少查找次数,但需要不断管理上下文。
- 管理上下文是挑战,包括为并行和递归任务创建正确的上下文等。
- 依赖代理构建自己的上下文会“污染”它,需要不断策划。
- 代理可以增加工作量,但质量会降低,需要考虑这一点。
- 没有免费的午餐,LLMs 不能完全取代人类。
- 提示可能是新的抽象层次,但低努力的提示可能不会增加太多价值。
A Higgs-Bugson in the Linux Kernel #
https://blog.janestreet.com/a-higgs-bugson-in-the-linux-kernel/
这篇文章由 Nikhil Jha 撰写,发表于 2025 年 7 月 2 日,标题为“A Higgs-bugson in the Linux Kernel”。文章讲述了作者在调试一个难以复现的 Linux 内核错误(higgs-bugson)的经历,这个错误出现在一个名为 Gord 的关键系统中,该系统负责存储和分发公司的交易活动数据。文章详细介绍了 NFS(网络文件系统)与 Kerberos 的背景知识,并探讨了 Gord 系统在进行大文件复制时偶尔出现的-EACCES(权限拒绝)错误。
文章首先介绍了 NFS 协议,它允许通过网络访问常规的 POSIX 文件系统。NFSv3 的默认安全设置在不受信任的网络上几乎是“无安全”,服务器仅检查客户端是否从“特权”端口号(小于 1024)连接。如果客户端声称代表特定用户连接,服务器就会信任客户端。接着,文章讨论了 Kerberos 作为 NFS 的安全选项,它能够加密验证访问文件的用户身份。
文章描述了 Gord 系统在进行大文件复制时偶尔出现的-EACCES 错误,尽管文件系统权限设置正确。作者尝试通过关闭开发环境中的 Kerberos 来解决这个问题,发现关闭后复制操作从未失败,这暗示问题可能与 Kerberos 凭证有关。
接下来,文章解释了 Linux 内核如何获取 Kerberos 凭证。通常,使用 Kerberos 的用户空间程序会通过环境变量或配置文件找到 Kerberos 凭证缓存的位置。但是,使用 NFS 的应用程序不需要链接 libkrb5 或了解 Kerberos 的任何信息,它们只是像访问本地文件系统一样执行正常的文件 I/O 系统调用。内核通过一个名为 rpc_gssd 的根用户空间守护进程获取凭证。当应用程序执行第一个 I/O 系统调用到 NFS 上的文件时,内核会写入一个特殊挂载点的文件以与 rpc_gssd 通信。
作者在调试过程中查看了 rpc_gssd 的日志,发现内核已经有一段时间没有请求凭证了。这导致了一个死胡同。为了复现这个错误,作者尝试在周末运行一个慢速写入操作,希望通过长时间的运行来强制密钥过期,从而复现错误。然而,尽管在多个盒子上运行了这个操作,周一检查时并没有发现任何失败。
作者随后生成了一些大的(约 200GB)随机文件,将它们放在测试 NFS 挂载点上,并开始在更多的盒子上循环复制到另一个测试 NFS 挂载点。这些复制操作也没有失败。为了确保不是因为运气好而没有遇到问题,作者决定增加并行复制的数量。
为了使测试更加轻量级,作者考虑从本地磁盘复制到 NFS 而不是从 NFS 到 NFS。由于已经请求了小磁盘的盒子,作者决定创建一个完全在小测试机的内存中包含大随机文件的文件系统。作者使用了一个名为 fuser 的 Rust crate,这是一个 FUSE(Filesystem in USErspace)的类型化实现。大约 20 分钟后,作者创建了一个“包含”大文件的假文件系统。
最后,文章讨论了如何通过 Linux 内核的 eBPF(扩展 Berkeley Packet Filter)子系统在运行时插入任意代码,以及使用 bpftrace 工具来收集调试信息。作者编写了一个 bpftrace 脚本来监控几个看起来有趣的函数,并在返回 EACCES 时打印内核调用栈。文章最后提到了测试设置,包括运行 rsync 进程的作业、监控-EACCES 返回的 bpftrace 脚本,以及在返回-EACCES 时捕获 PCAP 的方法。
HN 热度 204 points | 评论 45 comments | 作者:Ne02ptzero | 1 day ago #
https://news.ycombinator.com/item?id=44447259
- 将 Linux 内核中的 bug 称为"Higgs-Bugson"并不恰当,因为 Higgs 粒子的发现困难在于其产生截面低、衰变信号难以从背景中分离、存在的能量尺度不明确以及建造 LHC 的困难和昂贵。
- 一个在生产环境中出现但在调试时消失的 bug 通常被称为 Heisenbug。
- NFS 被比喻为海洛因,起初看起来很棒,但最终会毁掉你的生活。
- 很多人选择使用 NFS 是因为他们没有清楚理解他们的根本问题。
- 网络化并发文件访问是一个难题,因为它试图在一个非常奇怪的层级解决问题。
- Google Docs 在正确的层级解决了问题。
- 通常你会期望内核是最后一个出现 bug 的地方,所以这表明 NFS 是经过实战考验的。
- 许多代码都有 bug,这个 bug 是有人忘记遵循 1997 年描述的实际行为,这是一个错误,错误是会发生的。
- CIFS 或 Ceph 也有 bug。
- 人们认为通常内核是最后期望出现 bug 的地方,因此显示出它是经过实战考验的。
- 现代趋势是构建庞大的数据平台,而 NFS 避免了这种复杂的架构。
- Linux 内核需要采用更好的测试方法,因为它们几乎完全依赖于人工云 CI 而不是可证明正确的代码和不变契约。
- Kerberos 管理起来很有趣,但也是一个持续的怪异行为源。
- 开发者应该关注内核的提交信息,这对于理解代码变更非常重要。
- “Higgs Bugson"这个术语比通常所说的 Heisenbug 更有趣。
- 所有行为都有其存在的地方,没有魔法。
- 有人觉得 Linux 内核在 2020 年代的发布质量有所下降,自 90 年代中期以来最差。
- NFS 通常只在混合 Linux/Windows 环境中使用,最简单的解决方案是避免使用 NFS,尤其是 Windows。
- NFS 可以在 TCP 或 UDP 上运行,并且确实在 UDP 上也有重传逻辑。
I scanned all of GitHub’s “oops commits” for leaked secrets #
这篇文章是由白帽黑客 Sharon Brizinov 撰写的客座文章,介绍了他如何扫描 GitHub 上所有被删除的“Oops Commits”以寻找泄露的秘密。文章首先简要介绍了背景,Sharon Brizinov 通常专注于 OT/IoT 设备的低级漏洞和利用研究,偶尔也会进行漏洞赏金狩猎。他最近发表了一篇关于在 GitHub 仓库中隐藏的秘密的博客文章,引发了热烈讨论。在与 Truffle Security 的 CEO Dylan 等人交流后,他决定探索新的大规模秘密狩猎方法,并创建了一个包含所有相关知识的项目、博客、想法和资源的思维导图。
文章概述了如何使用 GitHub Event API 和 GitHub Archive 项目扫描所有零提交的 Push-Events(被删除的提交)以寻找秘密。Sharon 解释了在 GitHub 上删除提交的含义,以及如何通过重置 HEAD 并强制推送来删除提交,尽管如此,GitHub 仍然会保留这些提交的记录。他通过一个教程展示了如何在自己的仓库中找到被删除的提交,并解释了为什么即使通过强制推送删除了提交,GitHub 仍然可以访问这些提交。
文章详细介绍了如何使用 GitHub Event API 来检索 GitHub 上发生的事件信息,这些事件包括推送代码、打开或关闭问题或拉取请求、创建仓库、添加评论、fork 仓库和 star 仓库等。作者指出,不需要 API 令牌或认证就可以使用这个 API,并且事件几乎是实时记录的。
接下来,文章讲述了如何构建自动化工具来寻找有影响的秘密。Sharon 通过扫描自 2020 年以来的所有零提交强制推送事件,发现了价值 25000 美元的 bug 赏金秘密。他与 Truffle Security 合作,开源了一个新的工具,可以帮助扫描你自己的 GitHub 组织中的这些隐藏提交。
最后,文章通过一个案例研究总结了如何防止大规模供应链妥协。Sharon 分享了他的研究和发现,以及如何利用这些知识来保护组织免受泄露秘密的风险。文章强调了即使在删除提交后,GitHub 仍然保留这些提交的重要性,并提供了一种新的方法来大规模寻找这些被删除的秘密。
HN 热度 187 points | 评论 105 comments | 作者:elza_1111 | 17 hours ago #
https://news.ycombinator.com/item?id=44452317
- GitHub 的“活动”标签页可以查看所有操作记录,包括强制推送隐藏的原型代码。
- 有用户表示从未听说过 GitHub 的“活动”页面。
- 一些项目的“活动”页面为空或只有少数几项,可能是最近才引入的功能。
- 活动页面没有 2023 年 3 月 7 日之前的数据,表明该功能可能只存在了 GitHub 17 年历史的 2 年中。
- 有用户分享了他们过去在部署中遇到的类似问题,类似于不小心将密码泄露到 bash 历史记录。
- 有建议通过删除整个仓库并重新上传来永久删除这些记录,只要没有 forks。
- 如果不小心推送了不想公开的内容,可以通过强制推送、立即轮换密钥、联系客服进行垃圾回收来最小化潜在的进一步损害。
- 有人认为,如果已经轮换了密钥,就不需要做其他事情,因为没有进一步的潜在损害。
- 有人指出,不是所有的秘密都可以轮换,比如家庭地址,而且即使可以轮换,也不能保证 100% 无效。
- 有人认为,清理泄露的秘密可以避免未来的误报,比如自动化扫描器或赏金猎人。
- 有人认为,挖掘项目以查看是否泄露秘密会鼓励一种反模式,导致组织害怕发布任何东西。
- 有人表示,有自动化工具可以扫描秘密,甚至 GitHub 也在做,这可以教育开发者更加小心和安全导向。
- 有人提醒,泄露 AWS 秘密可能会给组织带来巨大的成本,AWS 不会提供帮助。
- 有人认为,通过将代码推送到不重要的项目上,可以最快地发现自己有这个问题。
- 有人认为,没有内部审查和编码标准能捕捉到所有问题,只能希望通过被打击来建立肌肉记忆。
- 有人认为,一切都是安全 101,可以通过标准工具捕捉,不应该将其视为学习经验。
- 有人认为,每个公司都有免费的、高性能的、100% 准确无误报的 linter 连接到他们的构建管道是不现实的。
- 有人认为,程序员有责任学习和记住这些事情。
Peasant Railgun #
https://knightsdigest.com/what-exactly-is-the-peasant-railgun-in-dd-5e/
这篇文章由 Sawyer Bohannan 撰写,他是一位芝加哥的作家和资深地下城主(Dungeon Master,简称 DM)。文章讨论了在 D&D 5e(第五版《龙与地下城》)中被称为“Peasant Railgun”(农民轨道炮)的战术。这个概念起源于 2008 年金融危机末期,1d4chan 上的一个帖子提出了这个理论,引起了社区中 DM 和玩家之间的激烈讨论。
什么是 Peasant Railgun? Peasant Railgun 是一个理论上的战术,通过雇佣 2280 名农民,让他们排成一行,然后通过传递一个拆卸下来的梯子,对敌人造成 300d6(300 次 6 面骰)的伤害。这个过程只需要一轮战斗的时间,而且可以在 12 秒内重新装填并再次发射。
Peasant Railgun 的工作原理: 这个战术涉及到几个不同的规则,包括准备动作(Ready Action)、一轮战斗所需的时间、一个中等体型个体所占的空间,以及 5e 中的落物规则(Falling Object rules)。准备动作允许玩家在特定情况下使用反应动作,在这个例子中,玩家将梯子拆解并将木杆交给队尾的人,然后指导每个人准备将杆子传给前面的农民。战斗开始时,这一系列动作被触发,木杆在 6 秒内被传递两英里,相当于 1900 英里每小时的速度。
现实物理与规则之争: 文章提醒读者,虽然这个战术在规则上是可行的,但它并不符合现实物理定律。如果按照字面意思来执行,会很快遇到问题。例如,农民在以这种速度传递木杆时可能会受到严重伤害,而且普通人无法追踪以这种速度移动的物品,更不用说传递了。此外,即使木杆成功到达队列前端,农民也不一定能准确命中目标。
DM 是否会允许使用 Peasant Railgun? 作者认为,虽然“酷规则”是 DM 们常用的工具,但尝试使用 Peasant Railgun 可能会超出这个规则的适用范围。作者个人虽然认为这个战术可以作为一个有趣的一次性冒险(one-shot)的想法,但大多数 DM 可能不会允许玩家使用。
文章最后,作者推荐读者查看他们提供的其他内容,并提到这篇文章包含了一些联盟链接,如果读者通过这些链接注册或购买,作者可能会获得佣金。文章还提供了两个资源链接,一个是关于 Peasant Railgun 的 1d4chan 维基页面,另一个是 D&D Beyond 上关于战斗准备动作的基本规则页面。
HN 热度 179 points | 评论 140 comments | 作者:cainxinth | 10 hours ago #
https://news.ycombinator.com/item?id=44455222
- 玩家创造力产生的荒谬情节是 DnD 体验中最有趣的部分之一,但这些通常依赖于对规则的过度复杂或扭曲的解释,不符合规则的书面或意图。
- DM 应该仔细审查这些主张,找到玩笑解体的地方,DnD 作者也支持 DM,规则不应仅从模拟角度解释,而是为了帮助 DM 仲裁和协调战斗和互动。
- Peasant Railgun 案例中,规则没有说明传递的物品在从生物到生物传递时保留速度,物品在最终传递时的速度与第一次传递时相同。
- 投掷或发射的抛射物不算作“坠落”,如果弓箭手射出 100 英尺的箭,箭不会获得 100 英尺的“坠落伤害”。
- 如果 DM 想要鼓励和实现疯狂的恶作剧,那么他们完全有权这样做。
- TFA 的问题在于它是一个玩家描述他们想要尝试的事情,然后还描述了尝试是否成功以及确切的结果。
- 每个桌子和游戏都是独特的,它是社会的微观世界,对任何人都是一切,但对任何人都不是一件事。
- D&D 中每个人都对事物进行家庭规则,以至于大多数桌子唯一共同点是如何升级和使用哪些法术。
- 规则律师的概念不是在 D&D 桌旁发明的,但创造这个短语几乎肯定涉及到坐在桌旁。
- 在 D&D 中,寻找有趣和意外的规则互动是 D&D 的一部分,寻找明显破坏和无意的互动,纯粹作为智力运动,也是 D&D 的一部分。
- 期望 DM 表现得像一个有缺陷的电子游戏,并因为在游戏中找到了一个可利用的漏洞而给你终极力量,这在 D&D 中一直发生,但这并不值得称赞,也不在事物的精神中。
- D&D 机制是现实世界的简化,使用“拉弓”、“传递物品”和“喝药水”等原始元素,现实世界是分形深入的,使用“木板长度”和“夸克自旋”等原始元素。
- 因此,总会有现实世界和简化不匹配的地方,找到这些差距可能很有趣,但它不是利用。
- 我们玩的是简化的原始元素,而不是现实世界的物理。
- 存在三种事物之间的张力:内置于规则中的“战斗模拟器”、世界模拟和故事。
- “农民铁路炮”不幸地没有通过所有三个测试,它不是预期的战斗规则的一部分,当模拟世界时没有意义,并且可能不适合因为太奇怪而不适合战役的叙事。
- 如果玩家提出一些很酷的东西,符合世界的逻辑,并且也适合故事,那么会寻找方法使其发生。
- 不同的桌子喜欢不同的东西,所以这不是一劳永逸的建议。
- 足够多的农民应该是毁灭性的,对吧?得到几千个,至少有一些会在每一轮中产生暴击。滚动可能很难。对于足够装甲的敌人,可能更有意义只是做“每轮预期的暴击数量”或类似的事情。
- 我们甚至不确定“木板长度”和“夸克自旋”是否是原始元素。