2025-06-19 Hacker News Top Stories #
- 《大脑袋开发者》通过幽默自嘲方式,主张用80/20法则简化代码、避免过早抽象,并提出“中间测试”比单元测试更实用。
- 作者意外复活失效的torrent追踪器后发现310万对等体,揭示中心化风险与法律隐患,最终因信用卡支付域名选择关闭服务。
- 开源健身平台Workout.cool以MIT许可证复兴废弃项目,支持本地部署,但部分用户报告加载错误,原作者呼吁合作。
- Anthropic建议构建AI代理时优先使用基础LLM API和简单模式,强调理解底层代码并避免在简单场景中过度依赖框架。
- Scrappy允许用户通过拖拽对象和少量JavaScript快速制作个人应用,主张回归直接操作而非AI代码生成。
- 伊朗指控WhatsApp泄露用户信息并要求删除该软件,但Meta强调端到端加密,专家指出元数据仍存风险。
- 纽约市审计长Brad Lander因在移民法庭外陪同被ICE拘留者引发争议,联邦指控缺乏证据,事件被指标题误导。
- Rust重写的bzip2库实现压缩解压速度提升5-15%,消除C语言编译复杂性,或成Linux官方实现替代方案。
- MiniMax-M1开放权重模型参数达4560亿,支持100万token上下文,运行需多H200 GPU,量化后成本可降至1万美元内。
- 文章类比Google翻译与编程领域,指出LLMs虽能处理代码结构,但难以应对文化语境和抽象隐喻,需经历“AI寒冬”突破局限。
The Grug Brained Developer (2022) #
《Grug Brained Developer》是一本关于软件开发的幽默指南,由自称为“小脑瓜”的开发者 Grug 撰写。Grug 虽然不认为自己很聪明,但多年的编程经验让他学到了一些宝贵的教训。这本书旨在以轻松幽默的方式,为年轻的开发者提供易于消化的知识和建议,同时也帮助 Grug 自己记住那些重要的事项,比如早餐吃了什么或者是否穿了裤子。
书中首先讨论了软件开发中永恒的敌人——复杂性。Grug 将复杂性比作一个恶魔,它悄悄地潜入代码库,使得原本清晰的工作变得混乱和危险。Grug 认为,对抗复杂性的最好武器是学会说“不”,即拒绝那些不必要的功能和抽象,以保持代码的简洁。虽然这可能不利于职业发展,因为“是”是获得更多奖励和领导地位的魔法词,但 Grug 坚持认为“不”是他的魔法词。
有时候,妥协是必要的,特别是当没有足够的资源时。在这种情况下,Grug 建议使用“好吧”这个词,并寻找 80/20 的解决方案,即用 20% 的代码实现 80% 的功能。这样的解决方案可能不够完美,但足以满足大部分需求,同时避免复杂性的恶魔。
书中还讨论了代码的分解(或称为“因素分解”)。Grug 认为,不应该过早地分解应用程序,因为项目初期一切都是抽象的,很难把握。他建议先让系统“成形”,然后再寻找合适的分解点。一个好的分解点应该与系统的其他部分有狭窄的接口,能够隐藏内部的复杂性。
Grug 还提到了测试的重要性。虽然他尊重测试,但他对一些测试实践持怀疑态度,比如在编写代码之前就要求编写测试。他更喜欢在原型阶段之后编写测试,当代码开始稳定时。Grug 强调,这时候必须非常自律,不能因为“在我的机器上工作”就不写测试,因为这样的代码没有保证在其他机器或未来也能工作。
最后,Grug 认为理想的测试既不是单元测试也不是端到端测试,而是介于两者之间的测试。单元测试虽然有用,但随着实现的变化容易破裂,使得重构变得困难。端到端测试虽然能展示整个系统的运作,但当它们失败时很难理解原因,有时开发者会选择忽略它们。Grug 建议,测试应该在项目初期帮助启动项目,但不要期望它们能长期提供价值。
HN 热度 1010 points | 评论 496 comments | 作者:smartmic | 1 day ago #
https://news.ycombinator.com/item?id=44303542
- 在小公司和大型科技公司中,很多人仍然使用打印语句进行调试,而不是使用调试器。
- 学习使用调试器是一项小超能力,可以更容易地理解系统。
- 一些经验丰富的程序员倾向于使用打印语句和自我检查代码,而不是调试器。
- 调试器在对问题领域理解不足时最有用,而打印调试在对代码非常了解时更有用。
- 游戏开发与 Web 开发在调试上有所不同,游戏开发更依赖于调试器,而 Web 开发由于其分布式特性,更适合使用日志。
- 理解两种调试方法,并在适当的情况下大胆使用它们。
- 即使在复杂的 AAA 游戏中,如果代码是自己写的,通常不需要使用调试器。
- AAA 游戏不可能由一个人从头开始编写。
- 在复杂、长期存在的可变状态、精确的内存管理和视觉渲染领域,调试器可能更有帮助。
- 分布式环境也可以使用调试器,尽管需要一些额外的设置。
Resurrecting a dead torrent tracker and finding 3M peers #
https://kianbradley.com/2025/06/15/resurrecting-a-dead-tracker.html
Kian Bradley 在他的博客中分享了他复活一个已经死亡的 torrent 追踪器并发现 300 万对等体的经历。他开始时下载 Linux ISO 文件,但速度很慢,于是检查了 qBittorrent 中的追踪器标签页,发现大多数追踪器已经失效。这让他思考,如果接管这些失效的域名,会有多少客户端尝试连接?
他解释说,追踪器是 BitTorrent 协议的核心组件,它们指向其他对等体以共享 torrent 文件。没有追踪器,就没有人可以共享文件,这代表了 torrent 协议的一个主要中心化来源。如果追踪器不被维护或被迫下线,用户就会遇到问题。尽管有 Mainline DHT 这种更去中心化的对等体查找替代方案,但它并不完美,依赖于引导节点,容易受到 Sybil 攻击,并且在他的例子中,DHT 并没有找到任何对等体。
Kian 在检查标记为“主机未找到”的追踪器列表时,注意到 udp://open.demonii.si:1337/announce 域名可用。他通过 Dynadot 购买了域名,并启动了一个匿名 VPS。他将域名映射到 VPS,并设置了 opentracker,这是最广泛使用和健壮的 torrent 追踪器软件。他提供了在 Ubuntu 24.04 上安装和配置 opentracker 的详细步骤。
在启动 opentracker 之前,Kian 就看到了 UDP 端口 1337 上的大量流量。启动追踪器后,大约一个小时,它达到了约 170 万不同的 torrent 和 310 万对等体的高峰。他还提供了一个链接到 http://open.demonii.si:1337/stats?mode=everything,显示了详细的统计数据。
关于合法性,Kian 提到,当录音行业和其他诉讼组织追查 torrent 追踪器时,他们主要针对系统的公共部分。像海盗湾这样的网站的法律判决取决于它们如何突出流行电影、销售广告和提供.torrent 文件,这被视为诱导证据,即故意促进版权侵犯。他质疑,未经广告宣传地托管追踪器基础设施是否构成“诱导”?这是一个更难证明的案例。他意识到许多 torrent,无论是免费提供的还是受版权保护的,都使用这个追踪器。但他很快意识到自己已经犯了错误,因为他用信用卡支付了域名。在确认它有效后,他迅速关闭了 VPS 并删除了域名。
最后,Kian 提到这个域名现在又可用了,很容易找到像这样的未认领域名。如果你想为公众服务,open.demonii.si 等域名可以注册。
HN 热度 624 points | 评论 195 comments | 作者:k-ian | 1 day ago #
https://news.ycombinator.com/item?id=44301686
- 运行一个追踪器本身并不违法,关键在于如何处理合法的取缔请求和周围的基础设施
- 即使合法,也可能因为被起诉而遭受骚扰,诉讼费用高昂,对普通人不利
- 理论上可以起诉,但实际上诉讼费用昂贵,尤其是律师费用
- 即使赢了官司,也可能因为诉讼过程而遭受损失,因此最好避免诉讼
- 政府或有权势的人可以通过无尽的法律程序来惩罚你,即使他们知道会输
- 没有技术上的限制可以同时对一个人提起多少诉讼,但美国有反 SLAPP 法规
- 发送停止和终止信可能比诉讼更有效,因为许多黑客会迅速采取行动
- 版权法的寒蝉效应使得人们不敢从事完全合法的活动
- 媒体行业可能会因为声称的损失而获得巨额罚款,导致托管服务提供商不愿为客户辩护
- 公司可能会先尝试发送强硬的信件,以节省直接上法庭的费用
- 即使不宣布出去,也可能收到取缔通知,但诉讼需要声称损害
- 唱片业协会不需要诉讼就可以通过合法的律师信件使对方生活痛苦
- 将骚扰者告上小额索赔法庭可能是一个有效的策略,因为对他们来说成本更高
- 大多数情况下,人们不会采取行动,即使理论上可以
- 唱片业协会不会采取可能导致他们风险的行动,因此他们避免这种骚扰
- 寒蝉效应可以压制完全合法的言论,即使只是收到取缔通知也可能不采取行动
Show HN: Workout.cool – Open-source fitness coaching platform #
https://github.com/Snouzy/workout-cool
workout.cool 是一个全面的健身教练平台,允许用户创建锻炼计划、跟踪进度,并访问包含详细指导和视频演示的庞大练习数据库。
项目起源与动机: 该项目源于个人使命,旨在复兴并改进之前的健身平台。作为原始 workout.lol 项目的主力贡献者,作者见证了其旅程和被遗弃的过程。
workout.cool 背后的故事:
- 原始贡献者:作者曾是 workout.lol 的主要贡献者。
- 商业挑战:原始项目在建立练习视频合作伙伴关系时面临重大障碍,未能找到可靠的视频提供商。
- 项目出售:由于这些合作伙伴问题,项目被出售给另一方。
- 遗弃:新所有者很快意识到练习视频许可成本过高,开始生病并放弃了整个项目。
- 复兴尝试:在过去的 9 个月里,作者一直在尝试与新的利益相关者重新联系。
- 无回应:尽管尝试了 15 次,但没有收到任何回应。
- 新的开始:作者决定创建一个全新的、现代化的实现,而不是让这项有价值的工作消失。
为什么 workout.cool 存在: 有人必须站出来。开源健身社区应该得到比破碎承诺和被遗弃的平台更好的待遇。作者不是为了利润而建立这个平台。这不仅仅是复兴,而是一种进化。workout.cool 代表了原始项目本可以成为的一切,具有可靠性、现代方法和健身开源社区应得的维护。
从社区中来,为社区服务: 作者不仅是开发者,还是一个用户,他拒绝让我们的社区失望。作者亲身经历了看着心爱的工具慢慢消失的挫败感。像你们中的许多人一样,作者有保存的锻炼、跟踪的进度和围绕平台建立的例程。作者的使命是拯救和复兴。如果你是原始 workout.lol 社区的一部分,欢迎回来!如果你是新来的,欢迎来到健身平台管理的未来。
快速开始:
- 先决条件:Node.js 18+,Docker 或 PostgreSQL 外部数据库,pnpm。
- 项目页面还提供了关于如何开始使用该项目的指南,包括安装依赖、设置数据库、运行开发服务器等步骤。
项目架构、路线图、贡献、部署和资源: 页面还包含了项目的架构、未来的发展路线图、如何为项目做出贡献、部署指南以及相关资源的链接。
许可和赞助: workout.cool 项目采用 MIT 许可证,并提供了赞助该项目的选项,以支持其发展。
贡献者: 页面最后列出了对该项目做出贡献的人员名单。
HN 热度 519 points | 评论 163 comments | 作者:surgomat | 11 hours ago #
https://news.ycombinator.com/item?id=44309320
- 原作者 Vincenius 看到项目被重新维护感到高兴,并赞扬了 UI 的改进。
- surgomat 表示愿意与原作者 Vincenius 合作,欢迎他的回归。
- gnarlouse 认为 Workout.cool 可以集成到他的自动日历调度 API 中,用于规划生活和饮食。
- repeekad 猜测可能是行业内部人士购买 workout.lol 以阻止免费替代品流行,并担心 Workout.cool 的未来。
- koakuma-chan 认为帖子内容是 AI 生成的,并且点击继续时不工作。
- surgomat 解释说服务器可能因为 HN 的高流量而无法处理,建议克隆仓库并自行运行。
- xeromal 对整个讨论表示轻蔑。
- minimalist 提到了 wger 项目和 body.build 项目,认为它们是 FLOSS AGPL 许可的自托管健身/锻炼/营养管理器。
- Kovah 尝试了 Wget 但因为用户体验差和移动应用问题而放弃,现在使用 LiftLog。
- riedel、gonzalohm、ElijahLynn 和 lucasverra 报告了“加载练习错误”。
- toyetic 认为 Workout.cool 适合初学者,并建议开发移动应用和保存特定锻炼作为长期跟踪的例程。
- gavmor 建议增加在不同用户界面之间导出和共享数据的功能。
Building Effective AI Agents #
https://www.anthropic.com/engineering/building-effective-agents
这篇文章由 Anthropic 于 2024 年 12 月 19 日发布,讨论了在不同行业中构建大型语言模型(LLM)代理的成功实践。文章指出,成功的实施往往不是依赖复杂的框架或专用库,而是使用简单、可组合的模式。文章分享了与客户合作和自身构建代理的经验,并为开发者提供了构建有效代理的实用建议。
什么是代理? 代理可以有多种定义。一些客户将代理视为完全自主的系统,它们可以独立运行较长时间,并使用各种工具完成复杂任务。其他人则用这个术语来描述更规范的实现,这些实现遵循预定义的工作流程。Anthropic 将所有这些变体归类为代理系统,但在工作流和代理之间画了一条重要的架构分界线:工作流是通过预定义的代码路径编排 LLM 和工具的系统,而代理则是 LLM 动态指导自己的流程和工具使用的系统,控制完成任务的方式。
何时(以及何时不)使用代理 在构建 LLM 应用程序时,建议找到最简单的解决方案,并只在需要时增加复杂性。这可能意味着根本不构建代理系统。代理系统通常为了更好的任务性能而牺牲延迟和成本,因此需要考虑这种权衡是否合理。当需要更多复杂性时,对于定义明确的任务,工作流提供了可预测性和一致性,而代理在需要灵活性和模型驱动的决策时是更好的选择。
何时以及如何使用框架 有许多框架可以使代理系统更容易实现,包括 LangChain 的 LangGraph、Amazon Bedrock 的 AI 代理框架、Rivet(一个拖放式 GUI LLM 工作流构建器)和 Vellum(另一个用于构建和测试复杂工作流的 GUI 工具)。这些框架通过简化调用 LLM、定义和解析工具以及链接调用等标准低级任务来简化入门。然而,它们经常创建额外的抽象层,这可能会掩盖底层的提示和响应,使调试变得更加困难。它们还可能诱使人们在更简单的设置就足够的情况下增加复杂性。建议开发者直接使用 LLM API:许多模式可以用几行代码实现。如果使用框架,请确保理解底层代码。对底层代码的错误假设是客户错误常见的来源。
构建块、工作流和代理 文章接下来探讨了在生产中看到的代理系统的常见模式。从基础构建块——增强型 LLM 开始,逐步增加复杂性,从简单的组合工作流到自主代理。
基础构建块:增强型 LLM 代理系统的基本构建块是增强了检索、工具和记忆等增强功能的 LLM。当前的模型可以积极使用这些能力——生成自己的搜索查询、选择合适的工具以及确定要保留的信息。建议关注实现的两个关键方面:将这些能力定制到特定用例,并确保它们为 LLM 提供简单、文档丰富的接口。虽然有许多方法可以实现这些增强功能,但一种方法是通过最近发布的 Model Context Protocol,它允许开发者通过简单的客户端实现与不断增长的第三方工具生态系统集成。
工作流:提示链 提示链将任务分解为一系列步骤,每个 LLM 调用处理前一个调用的输出。可以在任何中间步骤上添加程序检查(下图中的“门”),以确保过程仍在正确轨道上。提示链工作流适用于任务可以轻松且清晰地分解为固定子任务的情况。主要目标是通过使每个 LLM 调用变得更容易来交换延迟以获得更高的准确性。
工作流:路由 路由对输入进行分类并将其引导至专门的后续任务。这种工作流允许分离关注点,并构建更专业的提示。如果没有这种工作流,针对一种类型的输入进行优化可能会损害其他输入的性能。路由工作流适用于复杂任务,其中存在可以单独处理的不同类别,并且分类可以由 LLM 或更传统的分类模型/算法准确处理。
工作流:并行化 LLM 有时可以同时在任务上工作,并将它们的输出以程序方式聚合。这种工作流,即并行化,有两种主要变体:分割和投票。分割是将任务分解为独立子任务并行运行。投票是多次运行同一任务以获得多样化的输出。并行化在可以为速度并行化划分的子任务有效,或者当需要多个视角或尝试以获得更高信心结果时有效。
工作流:指挥者-工作者 在指挥者-工作者工作流中,一个中心 LLM 动态地分解任务,将它们委托给工作者 LLM,并综合它们的结果。
HN 热度 500 points | 评论 85 comments | 作者:Anon84 | 1 day ago #
https://news.ycombinator.com/item?id=44301809
- 文章清晰定义了“AI 代理”的含义,即动态指导自身流程和工具使用的系统。
- 区分了“代理”和“工作流”,并描述了一些有用的工作流模式。
- 有作者通过视频分享了文章内容,反响良好。
- 有人认为不使用框架从头构建系统是个好的教育尝试,但好的框架可以方便地尝试不同的 LLMs。
- 有人认为更换 API 并不是瓶颈,而是模型之间的行为问题或能力差异。
- 框架通常会增加复杂性、不透明性和 API 不一致性。
- 有人认为在获得足够的可观察性、实验性等功能后,是否应该默认使用框架成为一个真正的问题。
- 有人建议如果不是完全的初创公司,最好直接使用 API 来启动 V0 产品。
- 有人觉得用未类型化的语言构建复杂系统令人费解,尤其是当唯一的 AI 或 ML 是 API 调用时。
- 有人强调测试中更换 API 是一个巨大的痛苦,使用一套可以更换密钥和变量的设置可以大大简化这个过程。
- 有人推荐使用提供不同 LLMs 抽象的库(而不是框架)。
- 框架如果具有可观察性、评估、部署、云安全等结构,也可以帮助准备生产。
- 文章对工作流的定义被认为不准确,现代引擎的工作流并不采取预定义的代码路径。
- 有人认为工作流和代理之间的区分在于“引导程度”,工作流结构和规则更多,而代理更自由。
- 有人通过一个语言标记的工作流示例强调了 LLMs 在没有“脚手架”的情况下不够可靠。
- 有人认为现代系统中的工作流通常不可预测,它们经常根据前一个调用(例如 LLM 调用)的响应执行一组工具中的一个。
Scrappy – Make little apps for you and your friends #
https://pontus.granstrom.me/scrappy/
这篇文章由 John Chang 和 Pontus Granström 撰写,讨论了自制软件的概念和潜力。文章介绍了他们共同开发的一个研究原型工具——Scrappy,这是一个用于制作仅供个人及其朋友使用的“简陋”应用程序的工具。他们希望通过分享这个工具和一些用它制作的应用程序示例,来具体化自制软件可能的样子。
Scrappy 是什么? Scrappy 允许用户创建“Scrapps”,即针对特定需求的应用程序。文章通过几个例子来说明 Scrappy 的应用场景,包括为小学生练习算术、本地活动参与者计数器、会议成本时钟以及每周家务追踪器等。这些应用程序虽然可能不够精致或引人注目,但它们是根据个人喜好制作的,并且能够满足特定的需求。
制作 Scrappy 应用程序的体验 Scrappy 提供了一个无限的交互式对象画布,其工作流程类似于 Figma、Miro 或 Google Slides。用户可以在画布上拖动对象,如按钮、文本字段和标签,并通过检查器面板修改对象属性。例如,按钮对象有“点击时”属性,其中包含 JavaScript 代码。当按钮被点击时,会运行该代码,比如将文本字段的内容记录到作为日志的标签上。用户可以逐步构建应用程序,调整和重新排列对象,并为它们附加少量代码。
文章中还提供了视频,展示了作者如何制作一个活动参与者计数器。视频展示了添加数字字段、按钮、场地容量字段以及当人数过多时显示警告的过程。Scrappy 应用程序是多人在线的,应用程序状态被持久化和同步,类似于在线文档如 Google Sheets 或 Figma。此外,Scrappy 应用程序始终处于活动状态,编辑和运行之间没有区别,用户可以在朋友使用时编辑应用程序。用户还可以选择性地分享应用程序的特定部分,例如只分享进出人数的部分。
为什么制作 Scrappy? 该项目的驱动力是重新构想软件的创建和使用。作为“小计算”、“休闲编程”和“家常菜软件”运动的一部分,作者希望解放最终用户,让他们能够在不需要成为专业程序员的情况下表达自己。他们希望将世界从大众市场、工业化生产的软件转向更个人化、甚至一次性的工具,这些工具可以为特定的社会环境设计并容易修改和适应。他们受到 Notion、tldraw 和 mmm.page 等工具的简单性的启发,但希望赋予人们更丰富的交互性和编程能力。
Scrappy 的目标用户是谁? 在原型设计过程中,Scrappy 的理想用户并不明确。随着系统的构建,一些潜在的用户画像逐渐显现出来。这些用户包括希望使用软件改进业务流程的过程优化者、教师和学生,以及像作者这样的专业程序员,他们不喜欢编程,因为编程过程中的复杂性增加了摩擦。
文章最后提到,尽管他们认识到基于 AI 的系统利用 LLMs 进行代码生成的能力,但他们有意识地选择将设计重点放在直接操作和用户控制上。
HN 热度 408 points | 评论 130 comments | 作者:8organicbits | 18 hours ago #
https://news.ycombinator.com/item?id=44306859
- 有人喜欢 Scrappy 的精神,但认为其作为一个托管解决方案,依赖于 SaaS 工具,不适合长期使用。
- 有人倾向于使用 HTML/CSS/JS 和 PHP 等基本技术来构建个人项目,因为它们不依赖于浏览器,且维护成本低。
- 有人提出 TiddlyWiki 的概念,认为它是一个完整的 Web 应用程序,可以自复制,适合小规模个性化需求。
- 有人正在构建一个受 TiddlyWiki 启发的自修改 HTML 运行时环境,允许用户在单个 HTML 文件中构建“HTML 应用程序”。
- 有人询问这种技术是否与超媒体方法相一致,并探讨了是否有相关书籍或工具来支持这种技术。
- 有人提到 TiddlyWiki 的“写入原地”功能,强调其在家庭维护维基/手册中的终极生存能力。
- 有人希望有一个框架,能够像 TiddlyWiki 那样自我复制,但更简单,并且能够更好地集成 Markdown 和 HTML。
- 有人对 Hyperclay 的无应用安装需求表示赞赏,认为它结合了 TiddlyWiki 的简单性和共享网络的优势。
- 有人对需要运行服务器来共享 TiddlyWiki 表示疑虑,认为这对普通用户来说并不简单。
Iran asks its people to delete WhatsApp from their devices #
https://apnews.com/article/iran-whatsapp-meta-israel-d9e6fe43280123c9963802e6f10ac8d1
伊朗国家电视台于 2025 年 6 月 18 日呼吁民众从智能手机上删除 WhatsApp,声称该应用在未经具体证据的情况下收集用户信息并将其发送给以色列。WhatsApp 对此表示关切,认为这些虚假报道可能成为封锁其服务的借口,特别是在民众最需要其服务的时候。WhatsApp 强调其使用端到端加密技术,确保消息只有发件人和收件人能够读取,而中间的服务提供者无法解读。
WhatsApp 在声明中表示:“我们不追踪用户的确切位置,不保留每个人的消息记录,也不追踪个人之间发送的消息。我们不会向任何政府提供批量信息。” 不过,康奈尔大学的网络安全专家 Gregory Falco 指出,WhatsApp 的元数据并不加密,这意味着可以获取有关用户如何使用该应用的信息。此外,数据主权也是一个问题,因为 WhatsApp 的数据中心并不一定位于用户所在的国家,这使得数据安全和信任变得更加复杂。
伊朗在过去几年中曾多次封锁社交媒体平台,但许多人通过代理和虚拟私人网络(VPN)绕过限制。在 2022 年因一名女性在道德警察拘留期间去世而爆发的大规模抗议活动中,伊朗曾封锁 WhatsApp 和 Google Play,但去年底这一禁令已被解除。WhatsApp 曾是伊朗最受欢迎的消息应用之一,除了 Instagram 和 Telegram。
HN 热度 341 points | 评论 467 comments | 作者:rdrd | 1 day ago #
https://news.ycombinator.com/item?id=44302752
- Meta 的声明用词巧妙,实际上可能在追踪一般位置、记录群组消息,并在请求时向政府提供特定信息。
- 如果 Meta 秘密向某些情报机构提供后门访问权限,就像微软对 PRISM 计划或 AT&T 对 641A 计划那样,可能没有人会发现,因此 Meta 没有实际的不利后果。
- Meta 在其他事情上也撒谎,没有理由现在不撒谎,因为他们被抓到撒谎后似乎并没有受到太大惩罚。
- 有人质疑 Meta 是否曾经故意撒谎,并要求提供例子。
- 欧洲委员会发现 Facebook 在 2014 年收购 WhatsApp 时提供了“误导性信息”,特别是关于用户数据共享的问题。
- 有人提到 Meta“不小心”重置用户隐私设置是一种撒谎行为。
- 有人认为企业广告中的“高达 50% 的折扣”是一种技术性的真实说法,但实际上大多数产品只有很小的折扣。
- 有人认为最好的律师为这些大公司工作,他们擅长起草条款和条件,使得公司即使有不当行为也不会在法庭上被抓住撒谎。
- 有人认为在 GDPR 下非法的 Android 本地主机网络到应用跟踪可能算作 Meta 的撒谎行为。
- 有人指出,即使人们发现了 Meta 的不当行为,也没有什么实质性的后果。
- 有人强调,即使在发现不当行为后,也没有人真正关心。
- 有人认为,尽管媒体被少数人控制,但仍有很多人关心隐私、健康保险、环境等问题。
Brad Lander detained by masked federal agents inside immigration court #
https://www.thecity.nyc/2025/06/17/brad-lander-arrest-ice-immigration-court/
这篇文章报道了纽约市审计长 Brad Lander 在曼哈顿的一个移民法庭外被联邦特工拘留的事件。Brad Lander 同时也是下周二民主党初选中的市长候选人。事件开始于 Lander 在移民法庭的最新访问,他试图陪同一名男子离开法庭。
Lander 在被拘留超过四小时后,最终在纽约州州长 Kathy Hochul 的干预下被释放,没有受到任何指控。他在获释后对支持者表示,虽然他知道自己会得到公正的审判和权利保护,但与他一同被拘留的移民 Edgardo 将被关押在 ICE 的拘留设施中,失去了公正审判的权利。
Lander 此前已经第三次观察联邦移民听证会,并陪同移民离开例行的法庭听证。在中午时分,他与 Edgardo 手挽手离开移民法庭,拒绝放手,即使联邦特工试图将他们分开。在混乱的场面中,Lander 反复要求特工出示司法令状,并声称“你们没有权力逮捕美国公民”,随后被戴上手铐。
联邦特工将他带进电梯,他的一名纽约警察局安全小组成员也陪同在旁。有记者听到一名特工在 Lander 被捕前对另一名特工说:“你想逮捕审计长吗?”
联邦当局确实想要逮捕他。国土安全部助理秘书 Tricia McLaughlin 在声明中表示,Brad Lander 因攻击执法人员和妨碍联邦官员而被逮捕,并强调“没有人可以凌驾于法律之上,如果你攻击执法人员,你将面临后果”。官方的国土安全部 X 账户在推特上也发表了同样的言论,并指责寻求更高职位的政治人物破坏执法安全以获得病毒式传播的时刻。
报道中提到,THE CITY 的视频显示 Lander 紧抓着 ICE 逮捕的人,但没有显示他攻击任何人。Lander 的逮捕引起了广泛的愤怒,许多民选官员和市长候选人聚集在 26 联邦广场,要求立即释放他。其中包括共同支持 Lander 竞选市长的议员 Zohran Mamdani。
州长 Kathy Hochul 在社交媒体上表示:“这是胡说八道”,并在当天下午晚些时候亲自前往 26 联邦广场,拥抱了 Lander 的妻子,然后进入大楼。她告诉记者,她来这里是为了支持 Lander 和所有处于这种情况的人,并表示这是不可容忍的。
市长 Eric Adams 的发言人 Kayla Mamelak Altus 在 Lander 被捕四小时后发表声明,表示“今天不应该关注 Brad Lander”,而是要确保所有纽约人——无论他们的文件状态如何——都感到足够安全,能够使用公共资源,如拨打 911、送孩子上学、去医院或出庭,而不是躲在阴影中。在此之前,至少有两位 Adams 的政治盟友在网上嘲笑了 Lander,包括前市长幕僚长 Frank Carone,他嘲笑这是一场“奥斯卡奖”表演。
HN 热度 323 points | 评论 295 comments | 作者:sjsdaiuasgdia | 1 day ago #
https://news.ycombinator.com/item?id=44301501
- 文章标题与实际内容不符,Hacker News 上的标题被修改过。
- 没有证据表明那些是联邦特工,因为他们拒绝透露身份。
- 人们可能会因为误以为被绑架而拔枪。
- 现在任何人都可以伪装成 ICE 特工在法院逮捕关键证人,而不受法律约束。
- 他实际上是因为要求查看搜查令而被逮捕的。
- 他被指控妨碍联邦执法行动和攻击官员。
- 要求查看搜查令被视为妨碍联邦执法行动。
- 现在我们生活在一个“后真相社会”。
- 媒体制造假新闻是为了吸引点击、煽动情绪、销售产品或糟糕的新闻报道。
- Hacker News 的标题已经更新为与实际故事相符。
- 媒体制造假象是为了掩盖事实的缺失,而不是创造虚假事实。
- 我们生活在一个超现实的世界里,其中每个符号都是一个掩盖事实缺失的模拟。
- 没有所谓的好新闻或坏新闻,一切都是模拟。
- 人类经验是复杂的,不能简单地将“事实”与“模拟”对立起来。
- 鲍德里亚并不是后结构主义者或后现代主义者,他反对后结构主义,并与后现代主义保持距离。
Bzip2 crate switches from C to 100% Rust #
https://trifectatech.org/blog/bzip2-crate-switches-from-c-to-rust/
这篇文章由 Folkert de Vries 在 2025 年 6 月 17 日发表,主题是关于 bzip2 数据压缩算法的一个重大更新。文章宣布了 bzip2 版本 0.6.0 的发布,这个版本默认使用了 Rust 实现的 bzip2 算法,即 libbz2-rs-sys。这个更新使得 bzip2 crate(Rust 的包管理器中的一个包)在性能上有所提升,并且更容易进行跨平台编译。
文章首先提出了一个问题:为什么还要在今天关注这个 90 年代的算法,尽管它现在使用得很少?作者解释说,许多协议和库仍然需要支持 bzip2 以符合它们的规范,因此许多项目在其依赖树的深层仍然依赖于 bzip2。作者利用在 zlib-rs 项目中的经验,对 bzip2 的实现进行了现代化改造。
文章接着详细介绍了 Rust 实现相对于 C 实现的性能改进。在压缩方面,Rust 实现通常比 C 实现更快,尽管在某些情况下两者性能相当。对于 bzip2,压缩级别指示使用的内存量,但对性能影响不大。文章提供了一些具体的性能对比数据,显示了在不同压缩级别和文件类型下,Rust 实现在压缩和解压缩方面的性能提升。
文章还提到了跨平台编译的优势。使用 C 依赖的 Rust 项目通常可以开箱即用地进行跨平台编译,但如果出现问题,错误可能难以调试。通过移除 C 依赖并使用 Rust 代码,编译 C 的复杂性消失了,使得跨平台编译变得简单,尤其是在编译到 WebAssembly、Windows 或 Android 时。
此外,文章提到了默认情况下 libbz2-rs-sys 不导出符号,这意味着它不会与其他依赖项冲突。如果 Rust 项目需要导出符号,可以通过一个特性标志来启用。
文章还提到了使用 MIRI 运行测试的好处,MIRI 是一个 Rust 的实验性运行时,可以运行包含 unsafe 代码的程序。这不仅对 bzip2 实现本身有益,也使得使用 bzip2 的更高级别的库或应用程序能够运行在 MIRI 上。
最后,文章提到了审计结果,审计发现了一个逻辑错误(一个偏移量错误),并修复了 fuzzer 的一些限制。除此之外,没有发现重大问题。
文章以对参与项目的个人和组织的感谢结束,包括 Alex Crichton、Radically Open Security 和 NLnet Foundation。
HN 热度 323 points | 评论 171 comments | 作者:Bogdanp | 1 day ago #
https://news.ycombinator.com/item?id=44303361
- Trifecta Tech 的 bzip2 实现有可能取代 Linux 发行版中使用的官方实现。
- 官方 bzip2 实现自 2019 年以来没有更新,可能意味着项目已经完成。
- 10-15% 的压缩速度提升和 5-10% 的解压缩速度提升是一个吸引人的新特性。
- 代码优化提高速度的同时可能会牺牲代码可读性。
- 将现有代码库翻译成 Rust 可能会使事情变得更复杂。
- Ubuntu 已经开始使用 Rust 编写的 sudo,表明这种转变是可能的。
- 有人需要做工作来实现 C ABI 兼容的版本。
- uutils 项目旨在重写 GNU 工具。
- 有人希望这些工具能成为默认工具。
- 有人认为 MIT 许可证是一个错误,因为这意味着不能将 GPL 许可的代码移植到 MIT 许可的项目中。
- 有人不喜欢 GNU 工具的复杂性,认为从头开始重写是一个特性。
- 有人希望工具性能得到提升。
- 有人提到 ripgrep 和 tokei 相比它们替代的工具性能提升很大。
- 有人认为将工具称为“替代品”是不恰当的,因为它们并没有完全取代原有工具。
- 有人指出 GNU 工具本身就是对 BSD 工具的替代,而 BSD 工具是对 AT&T 工具的替代。
- 有人对 bash 表示满意,认为它不是过时的项目。
- 有人同意“X 但用 Z 重写”是一种糟糕的营销方式。
MiniMax-M1 open-weight, large-scale hybrid-attention reasoning model #
https://github.com/MiniMax-AI/MiniMax-M1
MiniMax-M1 是一个全球首个开放权重、大规模混合注意力推理模型。该模型采用混合专家(MoE)架构和闪电注意力机制,基于之前的 MiniMax-Text-01 模型开发,包含 4560 亿参数,每个 token 激活 459 亿参数。与 MiniMax-Text-01 一致,M1 模型原生支持 100 万个 token 的上下文长度,是 DeepSeek R1 的 8 倍。MiniMax-M1 的闪电注意力机制使得测试时计算效率得到提升,例如在生成 100K 个 token 时,M1 消耗的 FLOPs 仅为 DeepSeek R1 的 25%。这些特性使得 M1 特别适合处理需要长时间输入和深入思考的复杂任务。
MiniMax-M1 通过大规模强化学习(RL)训练,涉及从传统数学推理到基于沙盒的真实世界软件工程环境的多样化问题。开发了一个高效的 RL 扩展框架,突出了两个视角:(1)提出了 CISPO 算法,该算法剪裁重要性采样权重而非 token 更新,表现优于其他竞争 RL 变体;(2)混合注意力设计自然提高了 RL 的效率,解决了在混合架构下扩展 RL 时的独特挑战。训练了两个版本的 MiniMax-M1 模型,分别具有 40K 和 80K 的思考预算。在标准基准测试中,这些模型在复杂软件工程、工具使用和长上下文任务上超越了其他强大的开放权重模型,如原始的 DeepSeek-R1 和 Qwen3-235B。凭借测试时计算的高效扩展,MiniMax-M1 为下一代语言模型代理提供了强大的基础,以推理和应对现实世界的挑战。
在核心基准测试中,MiniMax-M1 的性能如下:
- 数学:在 AIME 2024、AIME 2025 和 MATH-500 等任务中,MiniMax-M1-80K 和 MiniMax-M1-40K 的表现均优于 Qwen3-235B-A22B 和 DeepSeek-R1-0528。
- 通用编码:在 LiveCodeBench 和 FullStackBench 任务中,MiniMax-M1 的表现同样优于其他模型。
- 推理与知识:在 GPQA Diamond、HLE(无工具)和 ZebraLogic 等任务中,MiniMax-M1 的成绩领先。
- 软件工程:在 SWE-bench Verified 任务中,MiniMax-M1 的得分高于其他模型。
- 长上下文:在 OpenAI-MRCR(128k 和 1M)和 LongBench-v2 任务中,MiniMax-M1 的表现优异。
- 代理工具使用:在 TAU-bench(航空公司和零售)任务中,MiniMax-M1 的得分也超过了其他模型。
- 事实性:在 SimpleQA 任务中,MiniMax-M1 的得分较低。
- 通用助手:在 MultiChallenge 任务中,MiniMax-M1 的表现与其他模型相当。
所有模型均在温度为 1.0、top_p 为 0.95 的条件下进行评估。SWE-bench 方法论报告了从无代理脚手架得出的结果,采用了两阶段定位过程(不使用任何基于嵌入的检索机制):首先是粗粒度文件定位,然后是细粒度定位到特定文件和代码元素。模型的值是基于 n=486 个验证任务的子集计算得出的。
HN 热度 316 points | 评论 68 comments | 作者:danboarder | 17 hours ago #
https://news.ycombinator.com/item?id=44307290
- 运行 MiniMax-M1 模型需要 8 个 H200 141GB 的 GPU,成本约为 25 万美元
- 可以在配备 512GB 内存的 Mac Studio 上运行该模型,成本约为 8500 美元
- 通过 Q4 或 Q8 量化可以在不到 1 万美元的设备上运行该模型
- 重度量化的模型性能可能不如未量化的模型,但比同样大小的未量化模型要好
- Q8 量化几乎没有质量下降,Q4 量化的质量下降是可测量的,但不是实际问题
- 基准测试可能不代表真实使用场景,因此难以评估模型性能
- 通过添加大量稀疏化处理,该模型应该可以在树莓派上运行
- MiniMax-M1 模型已经从 150T 参数模型中进行了稀疏化处理
- 150 万亿参数是指人类大脑中突触的数量
- 六个月后可能会发现购买 H200 GPU 的人被诈骗了 25 万美元,因为只需要特定的量化和一些优化就可以本地运行模型
- 除了全量化外,没有运行任何模型的必要
- 量化是有效的,不应该被质疑
- MiniMax-M1 模型大约有 4560 亿参数,大约有 460 亿参数在任何时候都是活跃的
- MiniMax 公司在“发布周”发布了 M1 和 Hailuo 2 模型,技术报告值得一读
- MiniMax M1 让人联想到苹果的 M1 芯片
- MiniMax 是一个中国公司,他们的视频生成器有一个非常明显的中文名字(Hailuo)
- 人们不期望公司在项目页面上提及他们的国家
- 公司在其官方网站上不一定会公布他们所在的国家
- 通常需要努力才能找到初创公司的所在地
- OpenAI 在其使用条款中提到了他们的地址和注册地
What Google Translate can tell us about vibecoding #
https://ingrids.space/posts/what-google-translate-can-tell-us-about-vibecoding/
这篇文章讨论了大型语言模型(LLMs)对计算机编程的影响,并将其与翻译领域中机器翻译技术的发展进行了比较。作者认为,尽管有关 LLMs 将导致程序员失业的讨论很多,但这些讨论往往缺乏细微差别。文章通过分析 Google 翻译的发展,特别是自 2016 年转向神经机器翻译(NMT)以来的变化,来探讨这些观点。
作者指出,尽管有人认为 Google 翻译的出现意味着翻译和口译职业的终结,但实际上翻译和口译的工作机会却在增加。这是因为机器翻译技术虽然在某些方面做得很好,但它并不能像人类翻译者那样处理上下文、模糊性和文化敏感性。例如,尽管挪威语和英语非常相似,但挪威语缺乏礼貌用语,这在翻译时需要特别注意。Google 翻译可能会直接翻译出听起来傲慢的挪威语句子,而一个好的口译者会根据上下文提供更敏感的翻译。
文章还提到,即使是在翻译领域,机器翻译技术也不能完全取代人类翻译者。作者认为,程序员可以被视为翻译者,他们将人类的需求和文化细微差别翻译成计算机可以理解的代码。尽管编程语言中不断创造新的抽象概念,使得机器翻译在编程语言中的应用比自然语言稍晚,但现在已经有了很大的进步。
作者最后表示,虽然未来的 AI 可能能够像人类一样处理上下文和模糊性,但我们至少还要经历一个 AI 冬天才能达到那个水平。同时,作者也提到,尽管 LLMs 的工具有其局限性,但它们的负面外部性可能超过了它们的实用性。总的来说,文章强调了在技术发展中保持谨慎和对细微差别的认识的重要性。
HN 热度 277 points | 评论 160 comments | 作者:todsacerdoti | 1 day ago #
https://news.ycombinator.com/item?id=44302870
- Google Translate 无法处理翻译中的上下文、模糊性和文化敏感性问题,但 LLMs 在给定足够上下文的情况下可以处理
- LLMs 在翻译日语和英语时表现出色,尤其是经过适当提示后
- 通过多模型翻译系统,可以生成比单一模型更好的翻译结果,甚至接近顶级专业人类翻译水平
- 对于非面对面的口译工作,人类翻译者可能暂时还不需要担心被取代
- LLM 翻译工具可以挑选最佳模型进行翻译,并由最终评判模型进行批评、比较和合成最佳翻译
- 翻译时选择正式程度的功能很重要,Google Translate 倾向于使用过于正式的语言
- 瑞典语默认使用非正式语域
- 提供额外上下文、提出后续问题和对文本进行推理对于翻译非常重要
- 翻译时需要足够长的提示,以减少歧义
- 翻译应用的目的是指导不熟悉翻译问题和细节的人获得更好的翻译结果
- 对于需要翻译的长文本,需要一种方法来处理上下文窗口过长的问题,可能需要对之前内容的总结和关于如何处理特定名称和术语的注释