2026 08 21 HackerNews

2026-08-21 Hacker News Top Stories #

  1. 一个讽刺性网站倡导不要直接复制粘贴AI回复,而应加入自己的理解,用自然语言回应。
  2. OpenRouter与Stripe合并,保持原有使命和产品,继续为开发者提供400多个AI模型和市场服务。
  3. AliExpress网站通过静默WebAudio指纹识别技术破坏蓝牙多点连接功能,可通过屏蔽特定脚本解决。
  4. Google违反GPLv2,将Android源码Git标签替换为Google Drive压缩包,并故意压缩历史记录,增加获取难度。
  5. Go 1.27发布,带来泛型方法、性能优化、新标准库如encoding/json/v2等多项改进。
  6. 作者训练了1.25亿参数Transformer模型,实现设备端实时钢琴自动续写,并集成到免费应用RollTab中。
  7. 恶意Rust包arrayref被篡改,添加远程执行负载的依赖,影响广泛,已被crates.io移除。
  8. 功能请求建议Claude Code支持AGENTS.md文件,作为现有CLAUDE.md的补充,获得大量支持但已关闭。
  9. Windows因防伪全息图等设计被用户误解为不雅图像,微软反复修改,反映测试者的心理投射。
  10. 编程中使用“圈”代替弧度可简化代码、提高精度,许多数学库已支持基于半圈的三角函数。

1. 不要只是粘贴 AI 回复 (Don’t paste the AI, please) #

https://dontpastetheai.com/

这个网页是一个讽刺性工具站,核心内容是倡导人们不要直接复制粘贴 AI(如 ChatGPT)生成的文字来回答别人的问题。网站指出,快速扔一个 AI 生成的“墙一样的文本”虽然方便,但并不真正有用,因为对方也能自己用 AI 得到相同答案。它鼓励用户在借用 AI 帮助后,加入自己的理解、判断和精简,用三句话或更自然的表达来回应。网站还提供了向他人发送这个链接的功能,用于委婉提醒别人“不要只是粘贴 AI 回复”。整体风格幽默但态度明确。


HN 热度 984 points | 评论 535 comments | 作者:pjerem | 15 hours ago #

https://news.ycombinator.com/item?id=49371857

  • 直接复制粘贴 AI 回复会加重他人的理解负担,也让自己失去思考机会。
  • 应用自己的语言表达,即使借助 AI 整理思路,最终也要自己写出来。
  • 语音消息(尤其是长语音)强迫他人花时间听完,不如文字方便。
  • 在西班牙等国家,WhatsApp 语音消息很常见,但可能是一种文化习惯。
  • 有人用语音转录或倍速收听来处理长语音。
  • 语音消息应优先使用语音转文字,而不是直接发语音。
  • 文化差异影响沟通方式,比如长语音、不排队、习惯性迟到等被视为“不好”的习惯。
  • 半文盲倾向可能使一些人讨厌 AI,但 AI 生成文字常冗长、空洞、信号噪声比低。
  • 可通过调整提示词让 AI 输出更简洁,但他人粘贴的 AI 文本仍然低效。
  • 阅读快的人也能快速识别 AI 写作的劣质,认为那是在浪费他人时间。

2. OpenRouter 与 Stripe 合并,助力全球下一波 GDP 增长 (OpenRouter is joining Stripe) #

https://openrouter.ai/blog/announcements/openrouter-is-joining-stripe/

OpenRouter 宣布与 Stripe 合并,以推动全球下一波 GDP 增长。

OpenRouter 是首个且最大的模型市场与网关,每天处理超过 10 万亿个 token,支持 400 多个 AI 模型,拥有超过 1000 万开发者与公司用户。自成立以来,推理量每年增长至少 10 倍。

合并后,OpenRouter 将继续保持原有使命、名称、产品和路线图,用户集成无需任何更改。路由决策仍以用户利益为唯一导向。

OpenRouter 的使命是构建一个多模型共存的健康 AI 生态,避免单一模型因惯性成为默认选择。与 Stripe 合作将加速实现这一目标。

Stripe 是全球顶尖的金融基础设施平台,其 API 是开发者产品的标杆。两家公司都致力于为开发者提供简洁、可靠的抽象层,并专注于质量、规模和用户承诺。Stripe 在客户网络、业务增长数据和欺诈管理方面具有优势,有助于 OpenRouter 更快发展。

未来,OpenRouter 的产品、使命和承诺不变,团队将加速创新,并欢迎更多志同道合的人加入。交易预计在未来几周内完成。


HN 热度 941 points | 评论 479 comments | 作者:rvz | 1 day ago #

https://news.ycombinator.com/item?id=49364559

  • OpenRouter 不仅仅是模型选择和路由端点,还提供默认路由到最便宜供应商、广播分析到 ClickHouse/S3 等、提示注入检测和 PII 检测等实用功能。
  • 模型路由器作为提示注入预防工具时缺乏足够上下文,如消息来源和应用层已执行的清理,建议仅在有重大风险暴露时使用自动编辑或阻止模式。
  • 路由功能会降低缓存命中率,但可以通过固定供应商来避免。
  • OpenRouter 主要受独立开发者欢迎,不适合企业环境,因为存在延迟增加、容量池共享、安全风险、缺乏私有云支持、无地理围栏保证、无知识产权法律赔偿等问题。
  • 对于初创团队,OpenRouter 提供了快速切换模型的便利,而企业应使用 LiteLLM 等私有代理或直接使用 AWS Bedrock、Azure Foundry 等超大规模提供商。
  • OpenRouter 的优势在于通过单一 API、注册和支付机制访问大量模型,便于评估不同供应商在特定任务上的表现。
  • 任何实验室(如 xAI)都可以在周末复制 OpenRouter 的功能,但用户不会信任这些实验室,因为它们可能偏向自己的模型或窃取数据。

3. AliExpress 会运行无声的 WebAudio 指纹识别,从而破坏蓝牙多点连接功能 (AliExpress runs silent WebAudio fingerprinting that breaks Bluetooth multipoint) #

https://blog.laserphile.com/2026/08/aliexpress-webpage-keeping-multipoint.html

最近,我遇到了一个奇怪的问题,涉及我的蓝牙耳机。这款耳机支持多点蓝牙音频,因此可以同时连接到我的电脑和手机。通常情况下,电脑优先播放音频,手机在没有播放音频时也能播放。然而,当我在 Firefox 或 Chrome 浏览器中打开 AliExpress 网页时,手机的音频播放会突然停止。关闭 AliExpress 标签页后,问题立即解决,静音标签页、Firefox 或 Windows 也无法解决此问题,因为网页上并没有可见的视频、音乐或其他播放。

我的第一反应是怀疑网页上是否有自动播放的视频或广告,因此我检查了常见的可疑元素,如

我通过包裹 AudioContext 构造函数来记录何时创建了音频处理上下文,最终找到了问题所在:AliExpress 首页在空闲期间创建了两个 AudioContext 对象,并且两个上下文均连接了音频目标。在这期间,仍然没有音频或视频元素,没有媒体播放调用,且没有可听的声音。这些上下文的创建出现在两个脚本中:collina.js 和 fireyejs.js,这两个脚本属于 Alibaba 的浏览器安全和反滥用工具,且代码经过高度混淆。

这些脚本的音频代码创建了一个 WebAudio 图形,包含一个锯齿波振荡器、一个分析节点、一个脚本处理节点、一个增益节点(设置为零),最终连接到 AudioContext.destination。尽管增益设置为零,用户听不到声音,但该图形仍然连接到系统音频目标,导致浏览器主动处理该图形。这与常见的自动播放视频不同,因为没有媒体元素供浏览器的正常标签静音控制来停止。对于浏览器而言,它似乎是在进行实时音频处理。

在我的情况下,这似乎足以使 Firefox 或 Windows 保持蓝牙音频通道的活动,从而防止我的多点耳机顺利切换回手机。

通过检查代码,我发现这些脚本还测量了许多其他信息,包括画布渲染、WebGL 渲染器信息、音频振荡器和分析器输出、设备的像素比、硬件并发性和设备内存等。这种浏览器和设备的指纹识别是全面的,可能用于识别设备或评估欺诈和机器人活动。

AliExpress 有的理由去区分正常的购物者与自动化或可疑的客户,并跟踪用户的浏览习惯它们必须处理账户被盗、假账户、购买、支付欺诈、评论操控和优惠券滥用等问题。使用指纹而非 cookie 能够提供更可靠的识别,因为 cookie 可以被清除或替换。

个人来说,我不希望一个购物主页在未征得我同意的情况下,悄然利用我的音频、图形、WebRTC 等来追踪行为,尤其是这影响了音乐播放。

为了解决这个问题,我测试了阻止这两个脚本的请求。在 Firefox 中,我使用了 uBlock Origin 扩展,添加了特定规则来阻止这两个脚本。阻止后,AliExpress 首页仍然可以正常渲染创建任何 AudioContext 对象。

然而,阻止这些脚本可能会导致额外的验证码出现或在登录和结账时出现问题,但目前为止,普通浏览体验没有受到影响。

总的来说,AliExpress 首页在悄悄创建两个运行中的 WebAudio 图形,作为更大浏览器指纹的一部分。这些图形生成并分析波形,且连接到系统音频目标,导致用户的耳机无法顺利切换到手机。通过阻止这些脚本,我能够在浏览 AliExpress 时畅地听音乐,而不再受到干扰。


HN 热度 842 points | 评论 277 comments | 作者:emctech | 14 hours ago #

https://news.ycombinator.com/item?id=49372583

  • 希望浏览器能对静音音频播放显示图标,但目前浏览器并未这样做,因为静音音频播放是常见行为,浏览器可能选择分析音频流内容而非简单显示图标。
  • 静音音频播放可能让网站在移动浏览器后台持续运行,例如在 iOS Safari 中,播放媒体是少数能让标签页保持活跃的方式之一。
  • Chrome 请求访问本地网络设备的权限时,无法确定是哪个标签页发起的,希望有图标提示。
  • 拒绝本地网络访问权限后,会阻止对 localhost 等本地地址的导航,影响访问 NAS 等设备。
  • 在 macOS 上,Chrome 将 0.0.0.0 视为本地地址,导致频繁弹出权限请求,可通过返回 NXDOMAIN 解决。
  • Chrome 需要本地网络权限用于 WebRTC、Cast 等功能,即使没有网站访问本地网络也会触发。
  • 本地网络扫描可能是为了发现 Chromecast 设备,也可能是用于指纹识别或恶意广告活动。
  • 浏览器应默认阻止静音音频播放,并像摄像头、麦克风一样要求用户授权,而不是让网站随意访问音频设备。
  • 在 Firefox 中,静音音频播放会触发音频图标,甚至让 KDE 误以为正在播放音频,导致系统性能轻微上升。
  • 浏览器不应成为通用系统 SDK,将麦克风、摄像头等 API 随意交给网站开发者,这是个人计算史上的最大错误之一。
  • 浏览器在桌面端率先实现了麦克风和摄像头的权限管理,比 Windows 系统更早。
  • 用户可以在 Firefox 设置中将自动播放默认设为“阻止音频”,并通过快捷键管理每个网站的权限。
  • 静音音频播放仍会为浏览器指纹识别提供额外数据点。

4. Google 已停止为部分 Android 源代码推送 Git 标签 (Google has stopped pushing Git tags for some Android source code) #

https://grapheneos.social/@GrapheneOS/117057099753905023

GrapheneOS 官方账号发文批评 Google 违反 GPLv2,将 Android 源代码的 Git 标签替换为通过 Google Drive 提供压缩包,且处理请求缓慢(从几小时变为数周)。Google 还故意压缩历史记录为单个提交,增加获取难度。GrapheneOS 表示这些变化不影响与摩托罗拉的合作,计划 2027 年推出搭载 GrapheneOS 的旗舰设备,并可能自建 Git 仓库或 Gerrit 来托管代码。其他用户讨论了 Google 的动机、开源驱动限制以及未来设备价格等。


HN 热度 787 points | 评论 305 comments | 作者:Animux | 1 day ago #

https://news.ycombinator.com/item?id=49364745

  • Google 停止推送 Pixel 内核和用户空间驱动仓库的标签到 AOSP,只保留年度版本和 QPR2 版本,导致 GrapheneOS 转向与摩托罗拉合作。
  • 谷歌将源码分发改为手动通过 Google Drive 和表单请求,响应时间从几小时延迟到几周甚至几个月,违反 GPL 合理时间要求。
  • 缺失提交历史的 tarball 不是 GPL 定义的“优选修改形式”,谷歌实际上没有分发源码。
  • 这些变化促使消费者取消 Pixel 订单,转而等待摩托罗拉设备。
  • 如果以前能在几小时内响应,现在也应保持同样速度,延迟是故意增加摩擦。
  • 源码必须在二进制分发之前就已存在,用户购买手机时就应该能获得源码。
  • 谷歌最终可能转向 Fuchsia 系统以摆脱 GPL 义务。
  • 手动处理请求可以自动化,但谷歌选择不这样做,以增加难度。
  • 谷歌的敌对行为已导致其失去实际商业机会,如 Sidewalk 项目。
  • 可能需要法律诉讼来迫使谷歌遵守 GPL,法院对合理时间可能有不同解释。
  • 谷歌不向所有国家销售 Pixel,如巴西无售,但英国、澳大利亚、欧洲部分国家有售。

5. Go 1.27 正式发布 (Go 1.27) #

https://go.dev/blog/go1.27

Go 1.27 正式发布,带来多项语言、工具链、运行时和标准库的重大改进。

语言方面:支持泛型方法;结构体字面量中允许直接初始化嵌套或嵌入字段的键;泛型函数类型推断扩展到所有赋值上下文。

工具改进:go fix 新增多个现代化重构;go doc 支持按版本查询文档;go mod tidy 自动合并 require 块。

性能与运行时:针对小对象(<80B)的内存分配优化,性能提升约 1%;goroutineleak 性能分析功能正式可用,可自动检测永久阻塞的 goroutine。

标准库新增:encoding/json/v2 提供可配置的高层 JSON 处理,底层由 jsontext 支持;crypto/mldsa 实现后量子签名方案 ML-DSA;uuid 原生支持 UUID 生成与解析;simd 实验性 SIMD 支持;net/http/httptest 新增 NewTestServer。


HN 热度 736 points | 评论 257 comments | 作者:database64128 | 1 day ago #

https://news.ycombinator.com/item?id=49365405

  • 浮点数解析和格式化使用了 Russ Cox 的 uscale 算法,但未在发布说明中提及。
  • Russ Cox 虽不再领导 Go 团队,但仍持续贡献,其博客文章值得阅读。
  • 有评论者曾与 Russ Cox 合作,认为他非常酷和友好。
  • Russ Cox 回复过关于 Plan9 论文字体的邮件,提供了 Lucida Sans Unicode 字体信息。
  • 对 uscale 算法与 zmij 等算法的性能比较感兴趣,有详细讨论。
  • uscale 算法的优势在于简单性、同时处理格式化和解析,且使用约 11KB 的表格。
  • 较新的方法如 yy、xjb、zmij 的核心更简单,但复杂度可选以挤压纳秒性能。
  • 后量子密码学方面,Go 团队积极,发布了 crypto/mldsa 包,Filippo Valsorda 呼吁部署。
  • 关于后量子密码迁移的时机讨论:有人认为 NIST 早在 10 年前就呼吁,但当时没有明确标准;有人反驳说 2016 年已有选项。
  • 关于“bold-faced lie”和“bald-faced lie”的用词讨论,以及语言演变。

6. Show HN: 我训练了一个 1.25 亿参数的模型,可在设备端实现钢琴自动续写 (Show HN: I trained a 125M model to autocomplete piano on-device) #

https://simedw.com/2026/08/20/midi-autocomplete/

Simon Edwardsson 训练了一个 1.25 亿参数的 Transformer 模型,用于实时钢琴自动续写(类似 GitHub Copilot 但针对钢琴)。该模型在 iPhone 15 上每秒可生成约 108 个音符,已集成到名为 RollTab 的免费应用中。

为了高效建模,作者放弃了传统的 note-on/note-off 表示,而是采用复合 note 表示:每个音符包含音高、相对前一个音符的起始时间偏移、时长、力度五个字段,各字段独立嵌入后求和作为模型输入,避免音符“漂移”和上下文窗口浪费。踏板信息被预处理为音符的延长时长,简化了生成。

训练数据来自公开的古典钢琴 MIDI 文件,经过清洗、去重、筛选,最终集包含约 3 亿个音符。训练时使用五个输出头的交叉熵损失,并加入全局移调、速度缩放、力度抖动等数据增强。作者发现数据质量比数量更重要,扩大 5 倍数据反而导致模型性能下降。


HN 热度 474 points | 评论 104 comments | 作者:simedw | 12 hours ago #

https://news.ycombinator.com/item?id=49373456

  • AI 钢琴自动续奏类似于古典作曲家训练中的“即兴续写”传统,如 Gjerdingen 的公式化作曲技法,以及四位俄国作曲家在 19 世纪晚期的晚餐游戏证明的谱面听觉想象能力。
  • 古典音乐即兴创作在浪漫主义后期逐渐衰落,因为作曲家开始将“音符神圣不可修改”视为准则,例如贝多芬以即兴演奏彻底压倒同时代的 Steibelt 的故事。
  • AI 生成工具使“创作”成本趋零,剩下的关键在于品味,而品味很大程度上来源于探索和淘汰无效可能性,这类模型能帮助更快找到死胡同或偶然生成佳作。
  • 关于贝多芬的《致爱丽丝》1822 年修订版本,有人认为其加花版本过于花哨不如 1810 年的简洁平衡,但也有人觉得这个版本听感愉悦。
  • 该项目最有趣的部分在于探索过程本身,而非最终成品,训练数据量为几十万 MIDI 文件、约 3 亿个音符事件。
  • 该作品让人联想到通过算法生成所有可能的旋律以对抗音乐版权诉讼的项目(如 allthemusic.info)以及 2003 年使用分层马尔可夫模型的 Continuator 系统。
  • 听到《致爱丽丝》开头被 AI 走向完全不同的方向会令人感到不安,但另一些人却觉得这种 AI 的意外延伸令人耳目一新且有趣。
  • 回忆起早期通过 MIDI 文件下载音乐的年代,受限于拨号上网和简陋合成音色,而 MIDI 至今仍在专业音乐制作中广泛使用。

7. 恶意 Rust 包 Arrayref 运行构建时负载 (Malicious Rust crate Arrayref runs a build-time payload) #

https://safedep.io/arrayref-proc-macro1-rust-build-time-malware/

2026 年 8 月 20 日,流行的 Rust 包 arrayref 的 0.3.10 版本被恶意篡改,其添加了对一个形似拼写错误的包 proc-macro1 的依赖。

该恶意包的构建脚本会在项目编译时下载并运行远程二进制文件。其通过劫持开发者账号、下架旧版本等方式诱导开发者升级,最终触发了构建时的恶意负载。受影响包还包括 internment、append-only-vec 等。

攻击使用 base64 编码隐藏服务器地址,在不同系统下释放并运行恶意脚本或可执行文件。该事件波及广泛,因为 arrayref 是众多 Rust GUI 框架的间接依赖,累计下载量巨大。相关恶意包已被 crates.io 团队移除。


HN 热度 368 points | 评论 349 comments | 作者:abhisek | 10 hours ago #

https://news.ycombinator.com/item?id=49374269

  • GitHub 需要更精细的处理,而不是假装仓库从未存在过。
  • 坏版本从 crates.io 消失,没有 yanked 指示或安全公告,crates.io 对安全事件准备不足。
  • 被入侵的包应该被删除而非 yanked,但应明确指示删除状态并链接原因。
  • 应保留被入侵的包用于分析,但阻止常规下载,引入“exploited”状态,允许通过标志强制下载用于取证。
  • 包可能因法律原因被删除,需要元数据通知用户是否被入侵,且法律删除的包也应能构建但需认证。
  • 法律原因如泄露秘密或个人信息,不应保留任何副本。
  • “deleted”状态是必要的,因为包可能包含非法内容,恶意软件应归入此类,历史分析应通过版本控制。

8. 功能请求:支持 AGENTS.md (Feature Request: Support AGENTS.md) #

https://github.com/anthropics/claude-code/issues/6235

该页面是 GitHub 上 anthropics/claude-code 仓库中的一个 Issue,标题为“Feature Request: Support AGENTS.md.”(功能请求:支持 AGENTS.md),编号 #6235,由用户 DylanLIiii 于 2025 年 8 月 21 日发起。

核心诉求: 用户希望 Claude Code 能够支持业界正在标准化的 AGENTS.md 文件,而不仅是现有的 CLAUDE.md。理由是 Codex、Amp、Cursor 等工具已开始采用 AGENTS.md 作为统一的智能体说明文件,CLAUDE.md 过于绑定 Claude Code,不利于与其他开发者协作。

提议方案: 采用双文件回退机制:

  • 优先查找 CLAUDE.md,若存在则加载并忽略 AGENTS.md(保持向后兼容)
  • 若不存在 CLAUDE.md,则查找并加载 AGENTS.md,作为通用项目上下文
  • 可选:加载 AGENTS.md 时向用户提示可创建 CLAUDE.md 以定制更针对性的指令

讨论反馈: 该提议获得大量支持(👍 4926),也有部分反对(👎 11)。有评论指出 “agents.md” 的命名可能与 Claude Code 中的 “subagents” 概念混淆,但更多人认为这是一个非破坏性、能显著提高互操作性的改进。Issue 已被标记为 enhancement(新功能请求)和 area:core(核心区域),目前状态为已关闭(Closed)。


HN 热度 350 points | 评论 214 comments | 作者:fg137 | 1 day ago #

https://news.ycombinator.com/item?id=49367350

  • 用户 DannyBee 抱怨 Anthropic 近期频繁做出对开发者不友好的改动,例如强制 Claude Code 使用 bash 而非标准工具,且未作任何文档说明,导致其决定停止使用 Claude Code 并取消订阅。
  • 用户 eknkc 认为 Anthropic 正在毁掉之前积累的开发者好感,是一家充满敌意的公司,并希望其“使命”失败。
  • 用户 brookst 指出技术社区总是喜新厌旧,Claude 早期作品更好,现在变差了。
  • 用户 unrented7977 讽刺 Anthropic 总是“从不放过错过机会的机会”,像 AMD 一样擅长自毁前程。
  • 用户 lelanthran 认为 Claude 产品几乎完全由算法驱动,缺乏人类判断和关怀,结果可想而知。
  • 用户 eknkc 进一步批评 Anthropic 在有人类参与时也不见得好,例如隐藏降级、限制订阅、封号、不开放模型、烧书等,甚至让 OpenAI 都显得管理更好。
  • 用户 cmrdporcupine 惊讶于许多人仍把 Claude Code 当作唯一可行工具,自己早已转向 Codex,并提醒用户应意识到还有其他选择。
  • 用户 sanderjd 认为整个生态系统还不成熟,每种工具都有缺点,自己更喜欢 Code,但怀念 Claude Code 的无脑集成和按订阅而非用量计费。
  • 用户 e12e 指出 Anthropic 在处理 shell 方面一直有问题,并附上相关 GitHub issue 链接。
  • 用户 pie_flavor 感谢 DannyBee 的解释,表示自己之前不知原因,被迫降级到 Opus 4.8。
  • 用户 vikramkr 抱怨 Claude Code 突然出现大量权限错误和工具调用失败,浪费了大量 token,原来是因为系统提示更新。
  • 用户 XYen0n 指出 Google 也不允许用户用自己的订阅使用其他工具链。
  • 用户 cedws 询问 Anthropic 为何鼓励使用 bash 而非专用工具,DannyBee 猜测是为了节省上下文 token,但认为有更明显的解决方案。
  • 用户 MintPaw 猜测是为了让蒸馏和外部分析更困难。
  • 用户 Wowfunhappy 分享了通过 BUN_OPTIONS 注入自定义 JavaScript 的方法,并询问是否能让 Claude Code 识别 AGENTS.md。
  • 用户 nullbio 呼吁停止给 Anthropic 送钱,称其为敌对公司。
  • 用户 fallingbananna 感慨人们态度变化之快,之前还因 OpenAI 与国防部合作而转向 Anthropic。
  • 用户 marand23 指出不同人有不同观点,不必一概而论。
  • 用户 voisin 认为所有 AI 公司都充满敌意。
  • 用户 verdverm 推荐 Fireworks 和 OpenCode 等优秀的开源模型,并倾向于支持开放公司而非封闭公司。
  • 用户 areoform 将此事类比为 Reddit 杀死第三方客户端。

9. Windows 让每个人都成了罗夏测试(2003) (Windows brings out the Rorschach test in everyone (2003)) #

https://devblogs.microsoft.com/oldnewthing/20030825-00/?p=42803

Windows 95 包装盒上的防伪全息图因婴儿未穿衬衫被某国政府投诉“裸体儿童”,微软被迫更换为穿衬衫和背带裤的版本,但因此取消了手臂动画。Windows XP 也遭遇类似投诉:默认壁纸“红月沙漠”被指像臀部;用户账户控制面板中的人物形象被指像希特勒;切换用户对话框的卡通形象被指像不雅身体部位。微软逐一修改,作者感叹这反映了测试者的心理投射。


HN 热度 336 points | 评论 128 comments | 作者:luu | 17 hours ago #

https://news.ycombinator.com/item?id=49371006

  • Raymond Chen 的文章是技术传说的宝贵财富,其中关于飞行模拟器地图错误层层上报到比尔·盖茨的故事是个人最爱。
  • 喜欢“墙和梯子”的经典帖子,用日常比喻解释技术内容,有时比喻会变得离奇甚至噩梦般。
  • 这些故事精彩地解释了 Windows 为何如此古怪,正是这种特点让人喜爱。
  • 因为不想花一百美元买 Windows,给父亲装了 Ubuntu(Intrepid Ibex),他唯一不满是壁纸上的骷髅头太前卫。
  • Ubuntu 早期版本因封面人物穿内衣引发争议,现在才突然理解了 Ubuntu 标志的含义。
  • 批评 ZDNet 网站自动播放带音频的视频,这种无视用户体验的做法反映了集体无能现象,令人恐惧。
  • 可以用非广告公司的浏览器来阻止自动播放音视频。
  • SGI 公司曾有“瘦黑客”文化,他们裸体坐在电脑终端前的照片被用于公开出版物的纹理贴图,体现了独特的工程追求。

10. 圈比弧度更好(2022) (Turns are Better than Radians (2022)) #

https://www.computerenhance.com/p/turns-are-better-than-radians

这篇文章讨论了在编程中使用“圈”(turns)替代弧度(radians)来表示角度,可以使代码更简单、快速和精确。

作者指出,大多数代码中,程序员将值乘以 π 或 τ(2π)来转换为弧度,然后调用三角函数,而三角函数内部又会立即除以 π。这导致了不必要的计算和精度损失。使用圈(0 到 1 表示一个完整圆)可以避免这种转换,因为像 0.25(90 度)这样的常见角度在圈表示中是精确的浮点数,而弧度表示则无法精确。

文章还提到,一些数学库(如 CUDA 的 sincospi)已经支持基于半圈(half-turn)的三角函数,可以直接使用。作者认为,放弃弧度,改用圈或半圈,能让代码更清晰、高效,并减少 π 和 τ 常量的使用。


HN 热度 332 points | 评论 198 comments | 作者:mayoff | 22 hours ago #

https://news.ycombinator.com/item?id=49369408

  • 使用 turns 会导致欧拉公式和导数性质变得复杂,弧度在数学上具有天然优势。
  • 作者讨论的是将数学移植到代码,turns 便于计算周期,实际编程中常用。
  • 代码应与数学保持一致,否则质量差。
  • 导数在实际代码中很少需要,通过单位转换可以处理(如内部用 turns,显示用弧度)。
  • 在机器学习、机器人轨迹等场景中需要导数,弧度更便捷。
  • 库函数内部已使用 turns,从弧度来回转换浪费性能。
  • 常见角度在弧度下是无理数,在 turns 下是整数,更方便。
  • 可以通过调整公式(如 e^{2π i x} = cos x + i sin x)来兼容 turns,但需明确单位,否则会造成指数与三角函数角度不一致。

Hacker News 精彩评论及翻译 #

Google has stopped pushing Git tags for some Andro… #

https://news.ycombinator.com/item?id=49369163

They stopped pushing tags for any of the Pixel kernel or userspace driver repositories to AOSP. They also stopped pushing AOSP releases specific to Pixels which is why AOSP now only gets yearly releases, QPR2 releases and security backports to both of those. Other OEMs use the yearly and theoretically also the QPR2 releases. Both the yearly and QPR2 releases get monthly security backports. Since they dropped Pixel support from AOSP, they don’t push the releases not shipped by other OEMs anymore.

These changes directly led to our Motorola partnership. One of their security people reached out to us after seeing our posts about this with the launch of Android 16. We haven’t talked about it much since then since we adapted to it during the several weeks it delayed our Android 16 port. We then continued adapting to it and have fully worked around it. It was an ongoing problem but not a new one and we had accepted we had to deal with it as the new normal.

They were previously responding to our kernel source requests within a day. It was often done without hours. Despite the archaic system, this part wasn’t that bad. Recently, they’ve been taking weeks or longer to get back to us for the requests which is ridiculous. It’s the direct result of purposely adding a lot of friction with manual handling of the requests even if the delays weren’t directly planned by management.

Weeks or months of delay is not reasonable for one of the largest tech companies in the world. GPL doesn’t set a standard time limit for providing the sources, but that doesn’t mean they can delay it indefinitely. They need to do it in a reasonable amount of time. What’s reasonable for one of the largest tech companies in the world in 2026 with current technology is not the same as what was reasonable 30 years ago. Google chose to come up with a archaic way of distributing the sources involving someone manually going through a list and sharing Google Drive access. It’s a deliberate way of making it painful. If they can’t keep up with it and it gets delayed for weeks or months then they’re not complying with the GPL by not providing it in a reasonable amount of time. Law is not code and a time limit not being explicitly written down doesn’t mean there isn’t a limit to what’s reasonable for compliance.

They’ll sell far fewer Pixels because of these overall changes. It pushes GrapheneOS and other projects towards other devices instead. For us, Pixels are being used due to security rather than ease of supporting them. It’s now a lot harder to deal with Pixels than it would be for many other devices but they’re currently still the most secure option. We’re working on changing that and have a lot less reason to contribute to improving Pixels. We helped them fix serious security weaknesses for Pixels including vulnerabilities being exploited in the wild by forensic data extraction companies. Pixel security with the stock OS would be worse without GrapheneOS.

grapheneos

他们已停止向AOSP推送任何Pixel内核或用户空间驱动仓库的标签,也不再推送针对Pixel的AOSP版本。正因如此,AOSP现在每年只获得一次版本更新、QPR2版本以及针对这两个版本的安全补丁。其他OEM厂商使用年度版本,理论上也会使用QPR2版本。年度版本和QPR2版本均会每月收到安全补丁。由于他们从AOSP中移除了对Pixel的支持,其他OEM未发布的版本已不再推送。

这些变化直接促成了我们与摩托罗拉的合作伙伴关系。在谷歌推出Android 16时,他们的安全人员在看到我们关于此事的帖子后主动联系了我们。当时我们用了数周时间适应这些变化,导致Android 16移植工作延迟,此后我们便未过多谈论此事。我们随后持续调整并完全适应了这一情况。这曾是一个持续存在的问题,但并非新问题,我们已接受将其视为新常态。

过去他们通常一天内就能响应我们关于内核源码的请求,甚至常常在几小时内完成。尽管流程老旧,但这部分尚可接受。然而最近,他们需要数周甚至更久才能回应我们的请求,这简直离谱。这直接源于刻意通过人工处理请求来增加摩擦——即便这些延迟并非管理层直接安排的。

对于全球最大的科技公司之一而言,数周或数月的延迟毫无合理性可言。GPL虽未规定提供源码的标准时限,但这不意味着他们可以无限期拖延,而必须在合理时间内完成。2026年全球顶尖科技公司在现有技术条件下应做到的"合理",与30年前的标准不可同日而语。谷歌选择了一种古老的方式分发源码——需要有人手动浏览列表并分享Google Drive访问权限。这种故意为之的方式令人痛苦。如果他们无法跟上节奏导致延迟数周乃至数月,那么未能以合理时间提供源码的行为,就不符合GPL要求。法律不是代码,未明确写明的时限不等于合规的合理期限不存在。

这些全面调整将导致Pixel销量大幅下滑。这反而促使GrapheneOS等项目转向其他设备。对我们而言,使用Pixel是基于安全考量而非易用性。如今处理Pixel设备比处理其他许多设备困难得多,但Pixel目前仍是最安全的选择。我们正在努力改变这一现状,为改善Pixel付出投入的理由已大为减少。我们曾帮助修复Pixel的严重安全缺陷,包括被法证数据采集公司在野外利用的漏洞。若没有GrapheneOS,搭载原生系统的Pixel安全水平会更差。


Google has stopped pushing Git tags for some Andro… #

https://news.ycombinator.com/item?id=49367035

If you’re like me and struggled to parse the title, my understanding is, “To obtain certain source code from Google, you could previously reference git tags, but now you have to fill out a form and wait for a human to give you a google drive link.”

hatthew

如果你和我一样觉得标题难懂,我的理解是:“以前要获取谷歌的某些源代码,你可以直接引用git标签,但现在必须填写表格,等人工给你一个谷歌网盘链接。”


Casio F-B100W-1A #

https://news.ycombinator.com/item?id=49367354

Newish Casio user here. From what I understand, it’s so that you can switch it to 24h after accidentally switching it to 12h and vice versa.

VPenkov

刚用卡西欧不久。据我所知,这样设计是为了让你在不小心切换到12小时制后能切回24小时制,反之亦然。


Aaron Swartz was prosecuted for scraping, while Me… #

https://news.ycombinator.com/item?id=49379781

The part that still bothers me so much about the US vs Swartz case is that JSTOR didn’t pursue civil litigation against Aaron. It was the US government that pursued him.

There was little for the government to lose in the case. In a case vs Meta, at the scale it has reached, it could have wide ranging economic implications limiting the investment in AI, which the US is absolutely not willing to pursue at this point in time (or possibly ever).

Basically, being a rich public company provides legal advantages when the US government has similar goals.

The whole thing is incredibly sad and exposes the hypocrisy of the US court system and government as a whole.

RIP Aaron.

milkytron

关于美国诉斯沃茨案,至今仍让我意难平的是,JSTOR并未对亚伦提起民事诉讼,真正追诉他的是美国政府。

此案中政府几乎没什么可损失的。但若是与Meta这样的巨头对簿公堂,以案件量级之巨,将可能对人工智能投资产生广泛的经济影响——而这绝对是美国当前(甚至未来)不愿触及的领域。

本质上,当美国政府与富有的上市公司目标一致时,后者便享有法律上的优势。

这整件事令人痛心至极,也彻底暴露了美国司法体系乃至整个政府的虚伪。

安息吧,亚伦。


Don’t paste the AI, please #

https://news.ycombinator.com/item?id=49372025

Heh. Just got done writing (by hand!) a Principles of AI Use document for my (ironically) AI enablement firm, the first of which is:

Write as yourself. You’re being paid for your expertise and insights. Communicate them directly to us. Copying and pasting Claude responses into Slack or an email directly shifts the burden of comprehension and understanding to everyone else, and worse, risks skipping that step for yourself. Even if you’re fundamentally using Claude to gather your thoughts or help you prepare a response, you need to be writing it yourself, in your own voice. Not having Claude ape your voice, or “make it sound less like AI”. You, directly. Doing this will further reinforce your own understanding of the state of things, the same way teaching someone is the best way to learn. As a guideline: for Slack and email comms, this should be near-universally written as you. For deliverables that are longer form and follow a template like proposals, roadmap/discovery work, etc., use of agents is expected but, see Principle #2. (Own the Output.)

disillusioned

呵。刚(手写!)完成了一份《AI使用原则》文档,给我的(讽刺的是)AI赋能公司,第一条就是:

做你自己。人家付钱买的是你的专业见解。直接告诉我们你的想法。把Claude的回答直接复制粘贴到Slack或邮件里,只会把理解和解读的负担甩给别人,更糟的是,你自己可能直接跳过思考这一步。就算你本质上在用Claude梳理思路或准备回复,你也必须自己动手写,用你自己的语言。不是让Claude模仿你的语气,或者“让它听起来不像AI”。是你,直接写。这样做能加深你自己对事务状态的理解,就像教别人是最好的学习方法一样。作为指导原则:对于Slack和邮件沟通,几乎都应自己写。对于较长篇幅且遵循模板的交付物(如提案、路线图/探索报告等),使用AI工具是预期的,但请参见第二条原则(对输出负责)。


A joke domain purchase turned in geopolitical warf… #

https://news.ycombinator.com/item?id=49364238

This was fascinating, thank you. I expected to read about legal threats against the folks collecting this data and am glad that those didn’t materialize.

Also I only realized after finishing the article what a breath of fresh air it was to read something that came straight from another human’s brain without LLM intermediation. Thank you to the author for that too.

monitron

这太有趣了,谢谢你。我原本以为会看到针对收集这些数据的人的法律威胁,很高兴这些并没有成为现实。另外,读完文章后我才意识到,读到直接来自另一个人大脑、没有经过大语言模型中介的文字是多么清新。也为此感谢作者。


I like ’em thick: an apology to my English teacher… #

https://news.ycombinator.com/item?id=49376987

As an old man I now think the art and humanities classes in school landed at the wrong time.

You need context to really understand a book or a work of art. You want to know what kind of environment produced it, what it’s talking to.

But when you’re in school, there isn’t time for that. You aren’t going to know a bunch of things about history to put things into context, because there simply isn’t enough time for it.

So you end up doing a bunch of weird commentary on say a book where you as a teenager have no idea where to place it. Like if you read Dickens, will you know enough about the industrial revolution, the condition of cities at the time, and such? Will you know what kind of thing the characters would care about?

How would you know what the characters in Pride and Prejudice are worried about if you don’t know how that society is?

So as a kid it just totally didn’t mean anything to me, it was just a strange torture where you are meant to comment on the motivations of the characters and how the writing style brings that out.

lordnacho

作为一个老人,我现在觉得学校里的艺术和人文学科课程安排在了错误的时间。

你需要背景才能真正理解一本书或一件艺术作品。你想知道是什么样的环境产生了它,它在与什么对话。

但当你在学校时,没有时间去做这些。你不会知道很多历史知识来把事物置于背景中,因为根本没有足够的时间。

所以你最终会对比如一本书做一堆奇怪的评论,而作为一个青少年,你完全不知道该如何定位它。比如如果你读狄更斯,你会对工业革命、当时城市的状况之类的事情了解得足够多吗?你会知道那些角色会关心什么样的事情吗?

如果你不了解《傲慢与偏见》里那个社会是什么样的,你怎么会知道那些角色在担忧什么?

所以作为孩子,那对我来说完全没有任何意义,那只是一种奇怪的折磨——你得评论角色的动机,以及写作风格如何把动机展现出来。


AliExpress runs silent WebAudio fingerprinting tha… #

https://news.ycombinator.com/item?id=49372995

I cannot ever imagine installing something like AliExpress as an app.

lukeify

我完全无法想象会把像全球速卖通这样的东西安装成应用。


CIA funding helped keep NeXT afloat in the 80s #

https://news.ycombinator.com/item?id=49377240

You know, when I see the phrase “CIA funding” I expect something like “the CIA put a backdoor in NeXT computers destined for Hungary” or something, not “NeXT made computers and the CIA bought and used them.”

jldugger

你知道吗,当我看到"CIA资助"这个词时,我期待的是类似"CIA在运往匈牙利的NeXT电脑里装了后门"这种内容,而不是"NeXT生产了电脑,CIA购买并使用了它们"。


Windows brings out the Rorschach test in everyone … #

https://news.ycombinator.com/item?id=49371925

Raymond Chen’s articles are true wealth of contemporary tech-lore. My favorite is the one where a user reported error on Flight Simulator map [0] and it escalated all the way up to Bill Gates & the then chief of FS division.

[0] https://devblogs.microsoft.com/oldnewthing/20170418-00/?p=95985

srvmshr

Raymond Chen的文章是当代技术知识的真正财富。我最喜欢的一篇是关于用户报告飞行模拟器地图错误[0],最终一路升级到比尔·盖茨和当时FS部门负责人的那个故事。

[0] https://devblogs.microsoft.com/oldnewthing/20170418-00/?p=95985


A joke domain purchase turned in geopolitical warf… #

https://news.ycombinator.com/item?id=49363706

I am part of the team which runs the OpenStreetMap.org infrastructure, we also get a lot of weird and wonderful requests / emails. .mil, .gov, .edu and GeoTLD variants.

I should really do a write-up sometime.

Firefishy

我是运行OpenStreetMap.org基础设施团队的一员,我们也收到很多奇怪又有趣的请求/邮件,涉及.mil、.gov、.edu以及各种地理顶级域名。我真的应该找个时间写篇文章总结一下。


Meta’s blockbuster trial draws parallels to big to… #

https://news.ycombinator.com/item?id=49356976

It took decades to clearly define gambling enough to regulate it as we do now. Note that pinball was banned in major cities for decades because it was too similar to gambling devices.

And even with those definitions things weren’t very clear. I used to work for financial traders here in Chicago. Every year there would be an unofficial snow futures market. It was a fancy way for all the traders and clerks to gamble on monthly snowfall at O’Hare.

But to my delight, the CME eventually created an actual, legal weather derivative for snow. What made one gambling and the other not? What makes any given bet a legitimate financial trade versus pure gambling? Let me know if you figure it out.

My point being that not having a clear definition won’t stop us from grappling with the harms. Nor should it. Figuring out what new things really mean is always a messy process.

wpietri

人类花费数十年才清晰界定赌博并建立起当下的监管体系。值得注意的是,弹球机曾因与赌博设备过于相似,在主要城市被禁长达数十年。

即便有了这些定义,界限依然模糊。我曾在芝加哥为金融交易员工作,每年都会出现非官方的降雪期货市场。这是交易员和职员们针对奥黑尔机场月度降雪量进行博彩的花哨方式。

但令我欣慰的是,芝加哥商品交易所最终推出了合法的降雪天气衍生品。为何一种被认定为赌博而另一种不是?如何界定某项赌注是正当金融交易还是纯粹赌博?若你参透其中玄机,请不吝赐教。

我的核心观点是:缺乏明确定义并不会阻止我们应对危害,也不该成为阻碍。理解新兴事物的本质从来都是混乱的过程。


Civic Hygiene – avoid building technologies that c… #

https://news.ycombinator.com/item?id=49363671

Harder than it looks. Everything is dual use. Certainly didn’t expect my game development telemetry[1] system used to improve artillery [2]…

[1] https://gdcvault.com/play/1012227/Development-Telemetry-in-Video-Games

[2] https://www.army.mil/article/85934/solution_to_weapon_development_problem_halo_mass_effect

gmerc

比看起来难。一切都是双重用途。当然没想到我的游戏开发遥测系统[1]被用来改进火炮[2]…

[1] https://gdcvault.com/play/1012227/Development-Telemetry-in-Video-Games [2] https://www.army.mil/article/85934/solution_to_weapon_development_problem_halo_mass_effect


Being ambitious and being a dad #

https://news.ycombinator.com/item?id=49354775

“Behind every great man there’s a great woman.” I thought I was killing it at work and as a dad when I was answering emails about complex bugs while hiking with my first kid riding in a backpack. But then I quit working to be a full-time dad for kid #2 and found out how much work my partner had been doing that I didn’t know about. I suddenly understood why so many of the men at my former workplace had been divorced. So be ambitious, but check in with your partner and make sure they are on the same page.

qooiii2

“每个伟大男人的背后都有一个伟大的女人。”我曾以为自己在工作和当爸爸方面都表现得很出色——背着第一个孩子徒步旅行时,还在回复关于复杂漏洞的邮件。但后来我辞职成为第二个孩子的全职爸爸,才发现伴侣一直在做多少我所不知道的事情。我突然明白了为什么前公司那么多男同事都离了婚。所以,要有野心,但也要与伴侣沟通,确保你们想法一致。


Watching TikTok and Instagram deactivates the cogn… #

https://news.ycombinator.com/item?id=49379412

dlPFC deactivation is observed in a lot of immersive tasks. There are a lot of tasks that do this. Playing video games, as one example https://link.springer.com/chapter/10.1007/4-431-26797-2_11

Interpreting fMRI results like this article does is almost always wrong. Different activities produce different patterns of brain activity. You could put someone in an fMRI machine, have them do virtually any activity, and then write a headline saying that doing that activity turns of key brain regions that are important for something. The trick is that all brain regions are important for something. Having them be less active during a task doesn’t imply that it’s good or bad. It just shows you which parts of the brain are involved in that task.

This blogspam article isn’t great. The study at https://www.sciencedirect.com/science/article/pii/S1053811926000406 has more details, like the fact that those brain regions come online while viewing other less-preferred videos. The results aren’t really indicative of anything by themself. It would have been more interesting if they compared to something, like watching a long involved movie or playing video games, but they didn’t.

Also this post is coming from a fresh account that only spams links to this blog. Maybe the mods will want to switch the link to the actual study instead: https://www.sciencedirect.com/science/article/pii/S1053811926000406

Aurornis

在大量沉浸式任务中都观察到dlPFC的失活。有很多任务会产生这种效果,比如玩电子游戏就是其中之一:https://link.springer.com/chapter/10.1007/4-431-26797-2_11

像这篇文章那样解读fMRI结果几乎总是错误的。不同的活动会产生不同的大脑活动模式。你可以把人放进fMRI机器里,让他们做几乎任何活动,然后写一个标题说做那个活动会关闭对某些事情很重要的大脑关键区域。问题在于,所有大脑区域都对某些事情重要。在任务中它们活动减少并不说明这是好是坏。这只是表明大脑的哪些部分参与了该任务。

这篇博客垃圾文章不怎么样。https://www.sciencedirect.com/science/article/pii/S1053811926000406 上的研究提供了更多细节,比如那些大脑区域在观看其他不太喜欢的视频时会变得活跃。这些结果本身并不能说明什么。如果研究能与某些东西进行比较,比如观看一部情节较长且引人入胜的电影或玩电子游戏,那会更有趣,但他们没有。

此外,这个帖子来自一个只发该博客链接的新账号。也许版主会想把链接换成实际研究:https://www.sciencedirect.com/science/article/pii/S1053811926000406


OpenRouter is joining Stripe #

https://news.ycombinator.com/item?id=49366396

Great product, been using it for a while.

Turns out even a proxy can be worth $8bn with the right business model behind it.

Users get an array of providers competing behind a single API, meaning they have to compete on price and quality not vendor lock-in. This encourages users to join OpenRouter over specific model vendors.

Providers get easy access to revenue (and data) and new customers with little to no ad spending, encouraging them onto the platform too.

And that’s all you need. Win win.

Well done and congratulations.

apexalpha

很棒的产品,我已经用了一阵子了。

事实证明,只要商业模式得当,连一个代理也能价值80亿美元。

用户可以通过单一API获得众多提供商之间的竞争,这意味着它们必须在价格和质量上竞争,而不是靠供应商锁定。这鼓励用户加入OpenRouter而非特定的模型供应商。

提供商则可以轻松获得收入(和数据)以及新客户,几乎不需要广告支出,这也鼓励它们入驻平台。

而你需要的就是这些。双赢。

做得很好,恭喜。


The August 17 outage, and the work ahead #

https://news.ycombinator.com/item?id=49379179

“Since April, monthly commits have grown from 1.4 billion to 2.9 billion. " Wow, that is some incredible growth in a really short time.

blakesterz

自4月以来,每月提交量从14亿增长到29亿。
哇,这短时间内增长真是惊人。


Devices with GrapheneOS support should be availabl… #

https://news.ycombinator.com/item?id=49361052

All the existing apps are on Android and iOS. Graphene lets you run them. You can’t have a bank account on a Linux phone* because they won’t let you, but you can on Android including on Graphene.

  • before replying snarkily that Android is Linux, please take a long walk off a short pier, thanks

inigyou

所有现有应用都在安卓和iOS上,Graphene能让你运行这些应用。你无法在Linux手机上开设银行账户*,因为银行不让你这么做,但在安卓系统(包括Graphene)上可以。

  • 在有人阴阳怪气回复说安卓就是Linux之前,建议你从短码头上跳下去走远点,谢谢

CIA funding helped keep NeXT afloat in the 80s #

https://news.ycombinator.com/item?id=49377553

Did you know about the CIA’s DECADES-LONG FUNDING of Coca-Cola? I have a hot tip from my good friend the soda machine technician that the CIA regularly funnels THOUSANDS OF DOLLARS a month into the pockets of BIG SODA when they restock their office kitchens and vending machines with Coca-Cola products!

This insidious relationship goes ALL THE WAY TO THE TOP, my friend!

AdmiralAsshat

你知道CIA数十年资助可口可乐的事吗?我从汽水机技术员好友那里得到内幕消息:CIA在给办公室厨房和自动贩卖机补货可口可乐产品时,每月定期将数千美元悄悄流入大汽水公司的腰包!

这种阴险关系直达最高层,朋友!


A faster way to calculate the day of the week #

https://news.ycombinator.com/item?id=49370357

Excellent article, and very useful for programming. For figuring out the day of the week in your head , there’s a different (and very useful) trick. It uses the month and day from the Gregorian calendar, rather than the day number, because 99% of the time that’s what you’ll be wanting: “Which day of the week will August 31st, 2026 be?”

The trick is to notice that in any year, leap year or not, the following dates will be the same day of the week in any year: 4/4, 6/6, 8/8, 10/10, and 12/12. (Whether you use the month/day style favored in America, or the day/month style that the rest of the world uses, either way those dates are the same, which is convenient). Which day of the week those dates are will vary from year to year: this year (2026) those are all Saturdays, last year they were all Fridays, next year they will all be Sundays. But in any given year, those dates are separated by 63 days, a multiple of seven, so they are always going to be the same day of the week.

And that’s not all: look at 5/9, 9/5, 7/11, and 11/7 — those are also that same day of the week! (Again, conveniently, this works whether you’re using the American calendar style or the rest of the world). Those odd-numbered dates can easily be remembered with the mnemonic phrase “a 9-to-5 job at 7-11”. And voila, you have memorized one “special” day in nine of the twelve months. (What you do for January, February, and March I will cover later).

Now I’ll pause and explain why this is useful. Many of you have already made the intuitive leap to figure this out, but it’s still useful to see it spelled out. If you’re trying to figure out what day of the week a certain date, let’s say August 31st, is going to be, then you find the “key” date for that month (August 8th), and remember that this year, those key dates are Saturdays. (I don’t yet have a good mnemonic for easily remembering which key date is which for each year; I’d welcome suggestions if you can think of one). So, 8/8 was a Saturday. Therefore, August 15th and 22nd and 29th are Saturdays. Therefore, August 31st will be a Monday this year. All of that is math you can easily do in your head in seconds.

Now, January, February, and March. March is always the same in every year: March 7th. 14th, 21st, and 28th are the “key days” that are the same day as 4/4 et al. But the way I prefer to memorize March is that “March 0th” (which isn’t actually in March, it’s the last day of February) is the “key day”. That still lets me do the mental math for March easily enough, but it also reminds me that Feburary 28th or 29th, depending on whether you’re in a leap year, is the “key day” for this year. Finally, for January, I use January 3rd in non-leap-years and January 4th in leap years as the “key day” that I memorize; the number 4 is strongly associated with leap years, so “leap year = January 4th” is easy to memorize, and I just have to remember that it’s one day less in non-leap-years, January 3rd.

And so I just have to memorize “January 3rd or 4th” and “March 0th”, plus the phrase “a 9-to-5 job at 7-11”. And I can easily figure out in my head what day of the week any day of the year will be. For example, December 25th will be a Friday this year: that took me three seconds to work out in my head without looking at a calendar.

rmunn

这篇文章非常出色,对编程也很有帮助。关于心算某天是星期几,有一个不同且非常实用的小技巧。它利用的是公历的月份和日期,而不是天数序号,因为99%的时候你真正想知道的是:“2026年8月31日是星期几?”这个技巧的核心在于,无论是不是闰年,下面这些日期在任何一年中都会是同一个星期几:4月4日、6月6日、8月8日、10月10日、12月12日。(不论你用的是美国流行的月/日格式,还是世界其他地区使用的日/月格式,这些日期都是相同的,这一点很方便。)这些日期具体是星期几会随年份变化:今年(2026年)它们都是星期六,去年都是星期五,明年则都是星期日。但在任何给定年份中,这些日期之间相隔63天,是7的倍数,所以它们总是同一个星期几。不仅如此:再看5月9日、9月5日、7月11日、11月7日——它们也是同一个星期几!(同样,无论你使用美国日历格式还是世界其他地区的格式,这一点都成立。)这些奇数日期可以用一句口诀轻松记住:“在7-11便利店做朝九晚五的工作”。瞧,这样一来你就记住了十二个月中九个月的一个“特殊”日子。(至于一月、二月和三月怎么处理,我后面会讲。)现在我先暂停一下,解释为什么这很有用。你们中的许多人可能已经直觉地想到了这一点,但把它明确写出来仍然有好处。如果你想知道某个日期是星期几,比如8月31日,那么你找到该月的“关键日期”(8月8日),并记住今年这些关键日期都是星期六。(我目前还没有一个好记的口诀来轻松记住每年的关键日期是星期几;如果你能想到什么建议,我非常欢迎。)所以,8月8日是星期六。那么8月15日、22日和29日都是星期六。因此,今年8月31日将是星期一。所有这些计算你都可以在几秒钟内心算完成。现在来说一月、二月和三月。三月在任何年份中都是固定的:3月7日、14日、21日和28日是与4月4日等日期相同的“关键日子”。但我个人更喜欢把“3月0日”(实际上并不存在,它指的是二月的最后一天)记作“关键日子”。这样我仍然可以轻松地对三月进行心算,同时它也提醒我,今年的“关键日子”是2月28日或29日,取决于是否是闰年。最后,对于一月,我在非闰年使用1月3日,在闰年使用1月4日作为我记住的“关键日子”;数字4与闰年有很强的关联,所以“闰年=1月4日”很容易记住,我只需要记住非闰年就少一天,即1月3日。因此,我只需要记住“1月3日或4日”和“3月0日”,再加上那句“在7-11便利店做朝九晚五的工作”。我就能轻松心算出一年中任何一天是星期几。例如,今年12月25日将是星期五:我三秒钟就在脑子里算出来了,压根没看日历。


Go 1.27 #

https://news.ycombinator.com/item?id=49366580

Not mentioned: Floating-point parsing and formatting now uses Russ Cox’s uscale algorithm.

https://research.swtch.com/fp

https://github.com/golang/go/blob/go1.27.0/src/internal/strconv/uscale.go

e4m2

未提及:浮点数解析与格式化现采用 Russ Cox 的 uscale 算法。

https://research.swtch.com/fp

https://github.com/golang/go/blob/go1.27.0/src/internal/strconv/uscale.go


Devices with GrapheneOS support should be availabl… #

https://news.ycombinator.com/item?id=49361132

.. obtaining source code via Google Drive …

Let this sink in. Google, this small tech company (correct me if I’m wrong), is peddling source code via tarballs on google drive.

Something the head of the Android ecosystem, Sameer Samat could be proud of on his CV: https://www.linkedin.com/in/sameersamat

felooboolooomba

…通过谷歌云盘获取源代码…

琢磨琢磨吧。谷歌,这家小科技公司(如果我说错了请纠正),正通过谷歌云盘上的压缩包兜售源代码。

这大概是Android生态系统负责人Sameer Samat能在简历上引以为傲的事:https://www.linkedin.com/in/sameersamat


Casio F-B100W-1A #

https://news.ycombinator.com/item?id=49364136

I spoke with a Casio engineer about this. It’s so that your bending wrist can accidentally switch it to 12h time when you actually really want it on 24h time or vice versa.

bushwart

我和一位卡西欧工程师聊过这个。这样当你弯曲手腕时,可能会意外地将时间切换到12小时制,而实际上你真正想要的是24小时制,反之亦然。


Children’s stunted lungs show recovery in ultra lo… #

https://news.ycombinator.com/item?id=49355650

Anecdata I was living very close to a busy highway, and my young daughter was wheazing when she had a cold, we had to give her medicine via a nebulizer. When we moved out to the country more, far away from any major roads, these issues all disappeared within a couple months.

ecshafer

根据个人经验,我曾经住得离繁忙的高速公路非常近,小女儿感冒时就会喘息,不得不通过雾化器给她用药。后来我们搬到更偏远的乡下,远离所有主干道,这些问题在几个月内就全部消失了。