1小时前
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20251118
今天的新闻有点意思!先是Cloudflare全球网络又出幺蛾子,接着英国人民集体吐槽车灯太晃眼!想知道为啥?赶紧看文章!还有Ruby 4.0 preview2 发布,新特性等你来挖掘!另外,还有GoSign爆出RCE漏洞,意大利用户小心了!想了解更多?戳进来,保证你信息不落后!

---
## Cloudflare 全球网络服务中断及维护
Cloudflare 正在经历内部服务降级,部分服务可能会受到间歇性影响。同时,Cloudflare 也在进行计划性维护,可能会导致部分地区用户延迟增加。
Cloudflare 官方状态页面显示,2025 年 11 月 18 日 Cloudflare 正在调查内部服务降级问题,多个服务受到影响,包括应用服务。Cloudflare 正在努力恢复服务,并持续发布更新。受影响的服务可能包括 Cloudflare Access 和 WARP,伦敦地区的 WARP 访问已被禁用一段时间。Cloudflare 也在进行计划性维护,涉及圣地亚哥 (SCL)、塔希提 (PPT) 和亚特兰大 (ATL) 的数据中心。维护期间,流量可能会被重新路由,导致受影响地区的用户延迟略有增加。Cloudflare 建议 PNI/CNI 客户确保在此维护窗口期间,流量可以故障转移到其他地方。用户可以通过 Cloudflare 仪表板订阅这些通知,并通过电子邮件、PagerDuty 和 Webhooks 接收更新。
Cloudflare 的状态页面还列出了各项服务的运行状态,例如 Abuse Reports、Access、AI Gateway、Always Online 等都处于 Operational 状态。但 Bot Management、CDN/Cache 和 Firewall 处于 Degraded Performance 状态。
由于文章中没有评论内容,因此不包含评论分析。
- 原文: [Cloudflare Global Network experiencing issues](https://www.cloudflarestatus.com/?t=1)
- Hacker News: [https://news.ycombinator.com/item?id=45963780](https://news.ycombinator.com/item?id=45963780)
- 作者: imdsm
- 评分: 1669
- 评论数: 1154
- 发布时间: 2025-11-18 19:35:10
---
## 英国研究显示:近乎所有司机都认为车灯太亮
一项新的研究表明,几乎所有英国司机都觉得车辆的前大灯太亮,并且经常被迎面驶来的车辆晃到。英国政府已经开始关注这个问题,并计划更仔细地研究汽车和前大灯的设计。
这项由交通部 (DfT) 委托进行的研究发现,97% 的受访者表示他们经常或有时会被迎面驶来的车辆分散注意力,96% 的人认为大多数或部分前大灯太亮。伯克郡交通研究实验室 (TRL) 的 Shaun Helman 博士表示,这项研究提供了“令人信服的证据”,表明车灯眩光对英国司机来说是一个“真正的问题”。
政府即将出台的道路安全战略将包含新的措施,以应对这个问题。TRL 的数据显示,LED 和更白的前大灯可能与眩光有关,司机可能觉得它们的白色更难适应。调查显示,33% 的人表示,由于车灯问题,他们已经停止夜间驾驶或减少了夜间驾驶,另有 22% 的人表示他们想减少夜间驾驶,但别无选择。
RAC 的高级政策官员 Rod Dennis 表示,他们一直积极推动这项研究,并对研究结果表示欢迎,这些结果独立证实了司机们一直在反映的问题,即某些明亮的前大灯确实会导致眩光问题。他补充说,虽然司机们显然受益于高性能的前大灯,但重要的是不要因此让其他人遭受眩光的影响,因此需要找到一个平衡点。
光学学院的临床顾问 Denise Voon 认为,交通部应该立即采取可行的措施来支持司机,并委托进行更详细的研究,特别是关于如何改变前大灯法规。
总共有 1850 名司机参与了这项调查,他们的年龄和性别比例与该国持有驾照的人口比例相符。研究还指出,车辆使用的 LED 灯更亮、更集中,并且发出更多的蓝光,而人眼在夜间更难适应蓝光。
- 原文: [Nearly all UK drivers say headlights are too bright](https://www.bbc.com/news/articles/c1j8ewy1p86o)
- Hacker News: [https://news.ycombinator.com/item?id=45966251](https://news.ycombinator.com/item?id=45966251)
- 作者: YeGoblynQueenne
- 评分: 136
- 评论数: 108
- 发布时间: 2025-11-18 22:11:17
---
## 避免不必要的 Cloudflare:集中化风险与替代方案
本文探讨了在不需要的情况下避免使用 Cloudflare 的原因,指出其集中化特性可能导致单点故障,并建议采用更分散的架构来提高网站的可用性。文章的核心观点是,对于访问量不大的小型网站,DDoS 攻击的风险可能被过分夸大,而过度依赖 Cloudflare 反而会增加网站因 Cloudflare 自身问题而宕机的可能性。
文章进一步建议,如果真正担心服务器宕机,可以设置第二个站点,并通过 Round-Robin DNS 指向该服务器,以此实现冗余备份。作者鼓励大家直面风险,将服务直接部署到互联网上,即使偶尔宕机,也比因为 Cloudflare 的故障而受到影响要好。文章的重点在于强调去中心化的重要性,避免将所有鸡蛋放在同一个篮子里。
评论区对文章的观点存在分歧。有人认为,即使是小型网站也可能成为 DDoS 攻击的目标,而 Cloudflare 提供的防护是必要的,不能完全依赖“没人会攻击我”的侥幸心理。他们认为,DDoS 攻击的成本很低,即使是个人博客也可能因为某些言论而遭受攻击。 另一些评论者则认为,将静态资源放在 CDN 上,实际上是降低了单点故障的风险。他们更倾向于将网站的可用性交给拥有大量工程师的大公司来维护,而不是自己承担所有风险。还有人建议,位于美国境外的公司可以与本地 ISP 合作,利用他们强大的反 DDoS 设置,在遭受攻击时暂时屏蔽国外流量。也有评论指出,Cloudflare 相关的故障也可能是由本地问题引起的。此外,有评论者分享了使用 Cloudflare 的教训,建议将域名注册商、DNS 服务提供商和应用基础设施提供商分开,避免因 Cloudflare 故障而导致所有服务都无法访问。 一些评论者提到了 Cloudflare 在阻止恶意流量方面的作用,特别是来自大型公司的频繁请求,并询问在不使用 Cloudflare 的情况下,如何使用复杂的规则来阻止这些请求。 有人认为,使用 CDN 可以减少网站受到安全漏洞攻击的风险,因为 CDN 可以及时更新最新的安全补丁。 还有评论者认为,Cloudflare 已经成为了一个过于庞大的私有网络,不再是“真正的”互联网的一部分。
- 原文: [Do Not Put Your Site Behind Cloudflare If You Don't Need To](https://huijzer.xyz/posts/123/do-not-put-your-site-behind-cloudflare-if-you-dont)
- Hacker News: [https://news.ycombinator.com/item?id=45965060](https://news.ycombinator.com/item?id=45965060)
- 作者: huijzer
- 评分: 106
- 评论数: 70
- 发布时间: 2025-11-18 20:54:49
---
## Quake 如何获得 TCP/IP 协议栈支持
本文深入探讨了 1996 年发布的 Quake 如何在 DOS 和 Windows 95 两种操作系统上运行,并支持 TCP/IP 协议栈,重点分析了 id Software 如何利用 DJGPP 编译器和 DPMI 服务器,以及 Mpath 公司的技术支持,实现了在 Windows 95 下通过 Winsock 使用 TCP/IP 的功能。
文章首先介绍了 Quake 发布时面临的技术挑战,包括 3D 加速卡、互联网的兴起以及操作系统从 DOS 向 Windows 的转变。为了兼容 DOS 和 Windows 95,id Software 使用了 DJGPP 编译器,该编译器允许开发者编写 32 位程序,并通过 DPMI 服务器与操作系统交互。Quake 能够在 Windows 95 的 DOS 窗口中运行,这归功于 DJGPP 的 DPMI 客户端能够与 Windows 95 的 DPMI 服务器协同工作。
在 DOS 环境下,Quake 支持多种多人游戏协议,包括通过 COM 端口的调制解调器和 NullModem 电缆,以及 IPX 和 TCP/IP。然而,在 DOS 下使用 TCP/IP 协议栈非常困难,因为 DOS 本身不自带 TCP/IP 协议栈,并且当时唯一的 TCP/IP TSR 软件 BWNFS 价格昂贵。
为了解决这个问题,id Software 与 Mpath Interactive 合作,通过 `q95.bat` 脚本启动 Quake,该脚本建立了一个到 Winsock 的隧道,从而允许 Quake 在 Windows 95 下使用 TCP/IP 协议栈。Mpath Interactive 是一家专注于在线游戏的公司,他们为游戏公司提供技术支持,帮助他们发布支持互联网游戏的游戏。
总而言之,Quake 能够在 DOS 和 Windows 95 上运行,并支持 TCP/IP 协议栈,是 id Software 和 Mpath Interactive 共同努力的结果,展示了当时游戏开发者的技术实力和创新精神。
- 原文: [How Quake.exe got its TCP/IP stack](https://fabiensanglard.net/quake_chunnel/index.html)
- Hacker News: [https://news.ycombinator.com/item?id=45962654](https://news.ycombinator.com/item?id=45962654)
- 作者: billiob
- 评分: 284
- 评论数: 38
- 发布时间: 2025-11-18 16:18:35
---
## TypeScript 实验:默认不可变性
本文探讨了在 TypeScript 中实现默认不可变性的实验性方法,目标是让变量在默认情况下是不可变的,类似于 Rust 语言的行为。
作者通过修改 TypeScript 的内置库定义,尝试将数组和 `Record` 类型设置为默认不可变。首先,通过 `noLib` 编译选项禁用了所有默认的 TypeScript 库,然后创建了一个自定义的 `lib.d.ts` 文件,重新定义了 `Array` 和 `Record` 类型。对于数组,通过使用 `readonly [n: number]: T` 语法,实现了数组元素的只读访问,从而阻止了数组的修改。同时,为了支持可变数组,作者定义了一个 `MutableArray` 接口,继承了不可变的 `Array` 接口,并添加了可变操作的方法。类似地,作者也成功地为 `Record` 类型实现了默认不可变性。然而,作者在尝试将这种方法应用于普通对象时遇到了困难,未能完全实现默认不可变的目标。
总的来说,这个实验展示了在不修改 TypeScript 编译器本身的情况下,通过修改类型定义来实现部分默认不可变性的可能性。虽然该方案还不够完善,但为 TypeScript 的类型系统提供了新的思路,也突出了在 JavaScript 这种动态语言中实现静态类型约束的挑战。
- 原文: [Experiment: Making TypeScript Immutable-by-Default](https://evanhahn.com/typescript-immutability-experiment/)
- Hacker News: [https://news.ycombinator.com/item?id=45966018](https://news.ycombinator.com/item?id=45966018)
- 作者: ingve
- 评分: 20
- 评论数: 3
- 发布时间: 2025-11-18 21:56:21
---
## 探索“短小而困难”书籍的魅力
这篇文章探讨了那些篇幅不长,但因其形式、风格或结构而具有挑战性的书籍,并分析了阅读此类书籍的价值。
文章首先讨论了László Krasznahorkai的作品,他以冗长、密集的句子而闻名,引发了关于“困难文学”的讨论。作者认为,挑战自己是令人愉悦的,学习新技能和尝试新事物是人生的意义所在。与那些使用ChatGPT在爱好中作弊的人不同,作者认为“困难”书籍的价值在于它们提供的挑战。这些书籍通过风格、结构或形式上的创新,提供了不同的阅读体验。作者强调,故事与表达方式密不可分,将“困难”书籍简化会破坏其独特性。
作者随后介绍了Georges Perec的《The Art of Asking Your Boss for a Raise》,这是一部只有80页但只有一个句子的作品。这部小说是受到IBM的邀请,以计算机程序逻辑为灵感创作的,展示了一个员工如何要求加薪。作者还提到了Oulipo流派,该流派使用限制来创造新的文学形式,例如Perec的《A Void》,其中没有字母“e”。Raymond Queneau的《Exercises in Style》以99种不同的风格重述了一个平庸的故事。
此外,文章还提到了Italo Calvino的《Invisible Cities》,该书由55个虚构城市的描述组成,缺乏传统的情节和人物。Alejandro Zambra的《Multiple Choice》以标准化考试的形式呈现,而Olga Ravn的《The Employees》则以员工访谈记录的形式讲述了一个发生在宇宙飞船上的故事。这些书籍在形式上具有挑战性,以非传统的方式讲述故事。最后,作者提到了Thomas Bernhard的作品,他的小说通常是愤世嫉俗者的长篇独白,情节极简。这些“短小而困难”的书籍为读者提供了独特的阅读体验,挑战了传统的叙事方式。
- 原文: [Short Little Difficult Books](https://countercraft.substack.com/p/short-little-difficult-books)
- Hacker News: [https://news.ycombinator.com/item?id=45966435](https://news.ycombinator.com/item?id=45966435)
- 作者: crescit_eundo
- 评分: 15
- 评论数: 0
- 发布时间: 2025-11-18 22:23:18
---
## Ruby 4.0.0 Preview2 发布:Unicode 17.0 更新及 JIT 改进
Ruby 4.0.0 preview2 版本正式发布,本次更新主要包括 Unicode 版本升级到 17.0.0,以及对 JIT 编译器的一些改进和调整。此外,还涉及一些语言特性、核心类和标准库的更新。
本次 Ruby 4.0.0 preview2 的亮点包括:`*nil` 的行为调整,不再调用 `nil.to_a`,与 `**nil` 类似;`IO.select` 方法现在接受 `Float::INFINITY` 作为超时参数;String 类更新至 Unicode 17.0.0 和 Emoji 17.0,并应用于正则表达式。标准库方面,ostruct、pstore、benchmark、logger 等都进行了版本更新。
在 JIT 方面,YJIT 增加了 `mem_size:` 和 `call_threshold:` 选项,并对统计信息进行了调整。ZJIT 作为一个实验性的方法级 JIT 编译器被引入,但目前还不适用于加速大多数基准测试。RJIT 被移除,其实现将迁移到 ruby/rjit 仓库。
值得关注的是,Ruby 4.0 为了纪念 Matz 创建 Ruby 30 周年而发布。
评论区里,大家对 Ruby 4.0 的一些变化很感兴趣。有人好奇具体有哪些值得关注的更新,也有人关心 Fibres 和 Async 的进展。还有人惊讶 Ruby 竟然有三种不同的 JIT 编译器。
有评论提到 Ruby::Box 的潜在用途,认为它可以解决命名空间冲突的问题,并为 ractors 和 ruby 线程的简化提供可能。该评论还指出,在 rubygems.org 上,命名空间被抢占的问题可以通过 Ruby::Box 来解决,从而实现更清晰的所属关系。总的来说,评论区对 Ruby 4.0 的新特性和未来发展方向都表现出了浓厚的兴趣。
- 原文: [Ruby 4.0.0 Preview2 Released](https://www.ruby-lang.org/en/news/2025/11/17/ruby-4-0-0-preview2-released/)
- Hacker News: [https://news.ycombinator.com/item?id=45965664](https://news.ycombinator.com/item?id=45965664)
- 作者: pansa2
- 评分: 86
- 评论数: 25
- 发布时间: 2025-11-18 21:34:44
---
## 地方货币实验:奥地利小镇 Wörgl 的奇迹
本文讲述了奥地利小镇 Wörgl 在大萧条时期,通过发行地方货币成功解决失业问题的案例,以及之后美国罗斯福政府对类似尝试的禁止,并探讨了中世纪欧洲地方货币在建造大教堂方面的积极作用。
1932年,面对高达30%的失业率,Wörgl 市长 Michael Unterguggenberger 决定发行一种名为 "stamp scrip" 的补充货币。政府将镇上的资金存入银行作为担保,然后用发行的货币雇佣工人进行基础设施建设,包括道路重铺、安装路灯、扩展供水系统和植树等。这种货币流通速度很快,使得该镇的失业率迅速降至接近零。
在项目运行的13个月里,Wörgl 不仅完成了所有计划内的工程,还建造了新房屋、水库、滑雪跳台和桥梁。居民还用这种货币重新种植森林,以期获得未来的现金流。该实验非常成功,以至于法国总理 Édouard Daladier 亲自前往考察,周边六个村庄也纷纷效仿。
然而,奥地利中央银行担心失去对货币的控制,宣布禁止补充货币。尽管 Wörgl 居民提起了诉讼,但最终败诉。1934年,奥地利爆发社会动荡。1938年,希特勒吞并奥地利时,许多人将他视为经济和政治上的救星。
尽管 Wörgl 的实验最终失败,但它引起了美国著名经济学家 Irving Fisher 的注意。Fisher 认为,在美国推广这种货币可以迅速结束大萧条。他向罗斯福政府提出了建议,但罗斯福总统担心权力分散,禁止了补充货币。
文章还提到了中世纪欧洲地方货币的积极作用。在1040年至1290年间,西欧各地广泛使用地方货币,促进了经济繁荣和社会发展。例如,巴黎等城市通过发行地方货币,雇佣工人建造了巴黎圣母院等宏伟的大教堂。在那个时期,西欧建造了超过1000座大教堂、35万座教堂和数千座大型修道院。这些建筑并非由教会或贵族建造,而是由当地市民出资建造的。这些大教堂至今仍吸引着大量游客,为当地经济带来收入。
- 原文: [The Miracle of Wörgl](https://scf.green/story-of-worgl-and-others/)
- Hacker News: [https://news.ycombinator.com/item?id=45963583](https://news.ycombinator.com/item?id=45963583)
- 作者: simonebrunozzi
- 评分: 70
- 评论数: 35
- 发布时间: 2025-11-18 18:59:54
---
## GoSign Desktop 存在远程代码执行漏洞,影响意大利用户
GoSign Desktop <= 2.4.0 版本中发现了一个严重漏洞,攻击者可以通过不安全的更新和 TLS 绕过来执行任意代码。该漏洞利用了配置代理时 TLS 证书验证的停用,以及基于未签名清单的更新机制。
该漏洞的核心在于 GoSign Desktop 在配置代理服务器时,会禁用 TLS 证书验证,这使得中间人攻击成为可能。攻击者可以拦截并篡改流量,诱骗客户端安装恶意更新,从而控制用户机器。更具体地说,`libdgsapi.so` 和 `libcurl.so` 模块在启用代理时会调用 `SSL_CTX_set_verify(mode=SSL_VERIFY_NONE)`,完全取消了 TLS 握手期间的证书验证,从而破坏了 TLS 通道的真实性和机密性保证。此外,更新机制依赖于未签名的清单,这意味着安全性完全依赖于 TLS 层,而 TLS 层本身又存在问题。
研究人员验证了三种攻击场景:恶意软件安装(关键)、凭据窃取(高)和权限提升(高)。在恶意软件安装场景中,攻击者可以欺骗客户端安装虚假更新,从而获得运行 GoSign Desktop 用户的权限(Windows,macOS)或管理员权限(Linux)。在凭据窃取场景中,由于应用程序不验证服务器的身份,因此可以拦截访问信息(令牌,临时密码)。在权限提升场景中,与 GoSign Desktop 用户具有相同权限的本地攻击者可以启用代理设置并注入恶意更新以获得对系统的完全控制(Linux)。
该漏洞的 CVSS 3.1 评分为 8.2,向量为 AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H。涉及的 CWE 映射包括 CWE-295(不正确的证书验证)、CWE-347(不正确地验证加密签名)和 CWE-200(将敏感信息暴露给未经授权的参与者)。
供应商 Tinexta InfoCert 最初表现出合作态度,但在收到技术细节后停止了所有沟通,忽略了后续请求,并在未公开通知或承认研究人员的情况下发布了 2.4.1 版本。由于这种不透明的行为不符合负责任的披露最佳实践,因此进行了强制披露。
- 原文: [GoSign Desktop RCE flaws affecting users in Italy](https://www.ush.it/2025/11/14/multiple-vulnerabilities-gosign-desktop-remote-code-execution/)
- Hacker News: [https://news.ycombinator.com/item?id=45964835](https://news.ycombinator.com/item?id=45964835)
- 作者: ascii
- 评分: 33
- 评论数: 16
- 发布时间: 2025-11-18 20:36:54
---
## Gemini 3 Pro 模型卡片:下一代多模态推理模型
Gemini 3 Pro 是 Gemini 系列的下一代模型,它是一个高度强大的原生多模态推理模型,可以理解文本、音频、图像、视频和代码等多种数据源。该模型是 Google 目前最先进的复杂任务处理模型,可以处理大量数据集和具有挑战性的问题。
Gemini 3 Pro 基于稀疏混合专家 (MoE) 的 Transformer 架构,具有原生多模态支持。MoE 模型通过学习将 token 动态路由到参数子集(专家),从而激活每个输入 token 的模型参数子集。这使得他们能够将总模型容量与每个 token 的计算和服务成本分离。
该模型使用大规模、多样化的数据集进行预训练,包括公开的 Web 文档、文本、代码、图像、音频和视频。后训练数据集包括经过审查的指令调整数据,以及多模态数据、配对指令和响应、人类偏好和工具使用数据。Gemini 3 Pro 使用强化学习技术进行训练,可以利用多步骤推理、问题解决和定理证明数据。
Gemini 3 Pro 在各种基准测试中进行了评估,包括推理、多模态能力、代理工具使用、多语言性能和长上下文。评估结果表明,Gemini 3 Pro 在需要增强推理和多模态能力的各种基准测试中,明显优于 Gemini 2.5 Pro。
Gemini 3 Pro 适用于需要代理性能、高级编码、长上下文和/或多模态理解以及算法开发的应用。该模型的一些已知限制包括可能出现幻觉,以及偶尔出现速度慢或超时问题。
Gemini 3 Pro 通过 Gemini App、Google Cloud / Vertex AI、Google AI Studio、Gemini API、Google AI Mode 和 Google Antigravity 等渠道分发。
- 原文: [Gemini 3 Pro Model Card](https://pixeldrain.com/u/hwgaNKeH)
- Hacker News: [https://news.ycombinator.com/item?id=45963836](https://news.ycombinator.com/item?id=45963836)
- 作者: Topfi
- 评分: 283
- 评论数: 192
- 发布时间: 2025-11-18 19:40:01
---
## 编程中“快”与“慢”的无用性
这篇文章探讨了在编程领域中,由于数量级差异巨大,“快”和“慢”这两个词的相对性以及在选择技术栈时过度关注性能的误区。作者认为,在很多情况下,开发者对性能的关注点可能并不重要,选择更适合的工具和框架反而能提高效率。
文章首先指出软件工程的特殊性在于其跨越了巨大的数量级范围,从纳秒级的操作到在数千个核心上运行数月的计算。这种巨大的差异使得“快”和“慢”的概念变得模糊不清。例如,对于 Web 框架的选择,很多开发者只关注每秒请求数(RPS),但实际上,代码本身的性能往往才是瓶颈。即使是最慢的框架,其速度也可能超过了代码的处理能力。因此,选择 Web 框架时,应该更多地考虑其他因素,例如易用性和功能性。
文章还提到了数据库的实现语言选择。商业数据库对性能要求极高,每一纳秒都至关重要。作者认为,选择 Go 作为数据库的实现语言可能不是一个好的选择。虽然 Go 在静态编译语言中属于较快的,但在需要精细控制代码的场景下,它存在一些明显的弱点。
总而言之,文章强调在软件开发中,要根据实际情况权衡各种因素,避免过度关注不重要的性能细节,从而做出更明智的技术决策。在选择技术栈时,要考虑项目的具体需求,例如并发量、数据规模和性能要求,而不是盲目追求“最快”的方案。
- 原文: [The Uselessness of "Fast" and "Slow" in Programming](https://jerf.org/iri/post/2025/the_uselessness_of_fast/)
- Hacker News: [https://news.ycombinator.com/item?id=45895427](https://news.ycombinator.com/item?id=45895427)
- 作者: zdw
- 评分: 70
- 评论数: 36
- 发布时间: 2025-11-12 09:41:07
---
## 隐藏在 PlayStation 游戏中的秘密:开发者求婚彩蛋
这篇文章深入挖掘了 PlayStation 游戏《NCAA Basketball Final Four 97》和《World League Basketball》中隐藏的彩蛋,揭示了开发者 Scott Corley 藏在游戏中的求婚信息。通过特定的按键组合,玩家可以在游戏中找到一个特殊的 "PUZZLE" 选项,点击后会显示 "Melissa, will you marry me? Love, Scott" 的求婚信息,选择 "Yes, I will" 会显示 "And they lived happily ever after..."。
文章作者通过逆向工程,找到了触发这些彩蛋的代码和按键序列。除了求婚彩蛋,游戏中还隐藏了一个 "SECRET" 菜单,包含 "Half length"、"I-L-L / I-N-I" 切换、"Big Head Mode" 和 "Roll Credits" 等选项。其中 "Big Head Mode" 会让游戏中的球员变成大头,而 "Roll Credits" 则会播放游戏制作人员名单。作者发现,《World League Basketball》也使用了相同的按键代码来触发求婚彩蛋和 "SECRET" 菜单,但制作人员名单有所不同。作者联系了 Scott Corley,得知他最近想向儿子展示这个求婚彩蛋,却忘记了代码。幸运的是,他和 Melissa 确实过上了幸福的生活。
文章还提到了其他包含求婚信息的电子游戏,例如《Mortal Kombat 1》、《Marvel’s Spider-Man》和《Klax》,并鼓励读者分享他们所知道的其他案例。
评论区也分享了一些有趣的发现。有人提到 Scott Corley 向他儿子展示求婚彩蛋的温馨故事。另一些人分享了在科学文章中发现的求婚案例,以及有人通过 ROM Hack 《Chrono Trigger》来求婚的视频。这些评论为文章增添了更多背景信息和趣味性,拓展了讨论的范围,从游戏中的彩蛋延伸到了更广泛的求婚形式。
- 原文: [How many video games include a marriage proposal? At least one](https://32bits.substack.com/p/under-the-microscope-ncaa-basketball)
- Hacker News: [https://news.ycombinator.com/item?id=45916094](https://news.ycombinator.com/item?id=45916094)
- 作者: bbayles
- 评分: 278
- 评论数: 70
- 发布时间: 2025-11-13 23:33:51
---
## DigitalOcean 多项服务中断事故
DigitalOcean 多个服务受到上游供应商事件的影响,包括 GenAI 平台、App Platform、Managed Databases、Load Balancers 和 Spaces。用户可能会遇到性能下降或间歇性故障。
DigitalOcean 的工程师团队正在积极调查此问题,该问题由上游供应商的事件引起。受影响的服务包括一部分 GenAI 工具、App Platform、负载均衡器和 Spaces,以及新集群的配置或管理操作。现有集群不受影响。用户可能会在这些服务中遇到性能下降或间歇性故障。DigitalOcean 承认这可能造成不便,并正在努力恢复正常运行。恢复的迹象已经开始显现,大多数请求开始成功。他们将继续密切关注情况,并在获得更多信息时提供及时更新。
DigitalOcean 建议用户订阅更新,以便及时了解事件的进展情况。可以通过电子邮件和/或短信接收通知。
评论区主要围绕 DigitalOcean 服务中断的原因以及对其他服务的影响展开讨论。
有人指出 DigitalOcean 的负载均衡器并没有明确列出 Cloudflare 作为上游依赖项,这让人感到沮丧,因为用户可能会在不知情的情况下受到 Cloudflare 故障的影响。另一些人猜测此次中断可能与 Cloudflare 的故障有关,并指出 DigitalOcean Spaces CDN 实际上就是 Cloudflare。还有人表示,最近 Azure 也受到了影响,这是否意味着整个互联网基础设施都存在潜在的脆弱性。有人调侃说这是“多米诺骨牌效应”,并猜测下一个受影响的服务会是谁。一些用户确认他们的 Droplets 运行正常,表明并非所有 DigitalOcean 服务都受到了影响。总的来说,评论区反映了用户对服务中断的担忧,以及对云计算服务之间依赖关系的关注。
- 原文: [Multiple Digital Ocean services down](https://status.digitalocean.com/incidents/lgt5xs2843rx)
- Hacker News: [https://news.ycombinator.com/item?id=45964987](https://news.ycombinator.com/item?id=45964987)
- 作者: inanothertime
- 评分: 72
- 评论数: 24
- 发布时间: 2025-11-18 20:48:45
---
## 为女儿打造的合成器:一个充满爱的技术项目
本文讲述了作者为三岁女儿制作便携式步进音序合成器的过程,包含四个滑块控制循环序列中的四个音符,上下滑动调节音高。
作者最初的想法源于女儿对蒙台梭利活动板的喜爱,激发了他制作一个简单、触觉式、且富有创造性的音乐玩具的想法。这个项目也成为了他学习微控制器、CAD、PCB设计和3D打印的契机。
项目从一个15年前的Arduino Inventors Kit开始,目标是构建一个基本的MIDI控制器。作者使用电位器读取数值,将其映射到八度音阶中的12个离散值,并发出MIDI信息。为了听到输出,他编写了一个Python脚本,将MIDI信息转发到Mac的默认MIDI设备,通过Logic Pro播放。
随后,作者将音频合成从Logic转移到面包板上,使用了一个SAM2695合成器模块,并改用Elegoo Nano。他还添加了一个OLED屏幕,用于提供视觉反馈,并加入了一个跳舞的熊猫动画。为了方便移动开发,作者还使用了Wokwi微控制器模拟器。
在硬件方面取得进展后,作者开始设计外壳。他使用Fusion 360进行CAD设计,并用朋友的Bambu Labs A1 Mini 3D打印机打印外壳。第一个版本采用手工焊接,但不够坚固。因此,作者决定设计PCB,并使用Fusion 360的电子设计套件进行电路设计。PCB完成后,作者将其上传到JLCPCB进行制造。
最后,作者选择了使用4节AA电池供电,并使用Arduino的内置电压转换器提供稳定的5V电压。整个项目涵盖了硬件、软件和设计等多个方面,充分展现了作者的创造力和技术能力。
- 原文: [Show HN: I built a synth for my daughter](https://bitsnpieces.dev/posts/a-synth-for-my-daughter/)
- Hacker News: [https://news.ycombinator.com/item?id=45900425](https://news.ycombinator.com/item?id=45900425)
- 作者: random_moonwalk
- 评分: 1210
- 评论数: 203
- 发布时间: 2025-11-12 22:12:13
---
## 《数学与计算》:一本探讨技术与科学革命的理论书籍
这本书《数学与计算》由 Avi Wigderson 撰写,探讨了计算复杂性理论如何革命性地影响技术和科学。 该书深入研究了数学与计算之间的相互作用,以及计算复杂性理论的核心概念,例如 P 与 NP 问题。
书中首先介绍了计算、不可判定性以及数学知识的局限性,为后续章节奠定了基础。 随后,详细讲解了计算复杂性的基础知识,包括 P 类问题(可以在多项式时间内解决的问题)和 NP 类问题(可以在多项式时间内验证的问题)。 书中还讨论了 P 与 NP 问题的意义和重要性,以及 co-NP 类问题。
本书还探讨了 NP 完全性,解释了如何通过规约来理解计算难度的偏序关系。 此外,书中还涉及了 NP 内部和周围的问题和类别,如约束满足问题(CSPs)、平均情况复杂度、单向函数、陷门函数和密码学。
书中还深入研究了布尔电路,讨论了对 P 与 NP 问题的攻击,以及证明复杂性。 此外,本书还探讨了随机性在计算中的作用,包括随机性的力量和弱点,以及计算伪随机性和伪随机生成器。
最后,本书还介绍了抽象伪随机性,包括动机示例、一般伪随机属性、黎曼猜想、P 与 NP 问题、计算伪随机性和去随机化、拟随机图、扩展图以及结构与伪随机性之间的关系。 此外,还讨论了弱随机源和随机性提取器。
这本书适合对计算复杂性理论感兴趣的读者,包括数学家、计算机科学家和对技术与科学交叉领域感兴趣的学者。 它提供了对该领域核心概念和开放问题的全面而深入的介绍。
- 原文: [Mathematics and Computation (2019) [pdf]](https://www.math.ias.edu/files/Book-online-Aug0619.pdf)
- Hacker News: [https://news.ycombinator.com/item?id=45964816](https://news.ycombinator.com/item?id=45964816)
- 作者: nill0
- 评分: 10
- 评论数: 0
- 发布时间: 2025-11-18 20:35:13
---
## 告别互斥锁:更优的并发编程方式
本文探讨了在高并发环境下,传统互斥锁(Mutex)在管理共享状态时面临的挑战,并提出了更有效的替代方案。文章指出,随着多核CPU的普及,利用并行计算变得至关重要,但互斥锁在同步线程方面存在固有的问题。
文章通过一个银行账户转账的例子,生动地展示了数据竞争的危害。在并发的转账请求下,即使账户余额验证通过,也可能因为线程切换导致透支,造成数据不一致。作者强调,这种并发错误难以察觉,并且可能在看似无关的代码中引入严重bug,这对于软件开发来说是不可接受的。
为了解决数据竞争问题,传统的做法是使用互斥锁来保证对共享数据的独占访问。文章用“餐厅卫生间钥匙”的比喻,形象地解释了互斥锁的工作原理。然而,互斥锁依赖于程序员的自觉,如果忘记加锁,或者在`transfer`函数中在`withdraw`和`deposit`之间发生线程切换,仍然可能出现问题,导致系统状态不一致。互斥锁仅仅是概念上的锁,依靠程序员自觉遵守约定,这存在风险。
由于原文没有评论,因此无法进行评论分析。
- 原文: [Ditch your (mut)ex, you deserve better](https://chrispenner.ca/posts/mutexes)
- Hacker News: [https://news.ycombinator.com/item?id=45893592](https://news.ycombinator.com/item?id=45893592)
- 作者: commandersaki
- 评分: 102
- 评论数: 119
- 发布时间: 2025-11-12 06:11:43
---
## 《阿莱迪亚》与巫术复兴的起源猜想
这篇文章探讨了 Charles Godfrey Leland 在 1899 年出版的《阿莱迪亚》一书,以及它对现代威卡教(Wicca)的影响。文章提出一个有趣的猜想:作家、灵媒和女巫 Roma Lister 在《阿莱迪亚》的形成,以及威卡教这种新形式的异教中,可能扮演了关键角色。
《阿莱迪亚》被 Leland 描述为真正的巫术“圣经”,包含了以女神为中心的创世和救世叙事。Leland 声称,他从一位名叫 Maddalena 的托斯卡纳占卜师那里获得了这本书的原始材料,并认为这本书证明了异教自中世纪以来一直在意大利秘密存在。书中描述了女神 Diana 指示她的女儿 Aradia 拯救受压迫的民众,Aradia 教会他们巫术,使他们能够摆脱奴役并摧毁压迫的等级制度。书中还包含了一些咒语、仪式和诗歌,以及 Leland 的大量评论。
尽管 Leland 一生中经常打破传统和社会习俗,但他与《阿莱迪亚》的联系仍然引人注目。这本书与他之前所做的一切都不同,其充满活力、以巫术为中心和反权威的信息,显得格外特别。
《阿莱迪亚》在 Leland 生前并未引起广泛关注,但在 20 世纪 50 年代,它被“威卡教之母” Doreen Valiente 发现,Valiente 用它来改写了威卡教的仪式。Valiente 的重新利用,使得《阿莱迪亚》在很大程度上塑造了现代威卡教的哲学和美学景观。
尽管威卡教已成为增长最快且具有文化影响力的现代宗教之一,但《阿莱迪亚》中“福音”的真正来源仍然是个谜。一些学者认为,原始手稿可能是 Leland 撰写或与 Maddalena 共同撰写的。也有人认为 Leland 被 Maddalena 欺骗,Maddalena 将她的原创作品冒充为历史。文章提出,Roma Lister 可能是这本书的贡献者或共同创作者。
文章通过探索 Roma Lister 的生平和作品,揭示了她与 Leland 之间的联系,以及她可能对《阿莱迪亚》产生的潜在影响。文章认为,Lister 的巫术实践、对异教的兴趣以及与 Leland 的合作,都使她成为《阿莱迪亚》起源的一个重要人物。
- 原文: [Roma Lister, Aradia, and the Speculative Origins of a Witchcraft Revival](https://publicdomainreview.org/essay/roma-lister-aradia/)
- Hacker News: [https://news.ycombinator.com/item?id=45911386](https://news.ycombinator.com/item?id=45911386)
- 作者: Vigier
- 评分: 7
- 评论数: 0
- 发布时间: 2025-11-13 14:20:59
---
## Ruby 中的 Symbols 及其重要性
本文深入探讨了 Ruby 中 Symbol 的概念,解释了它们在 Ruby 语言中的作用和与其他语言的对比。文章通过代码示例,展示了 Symbol 在不同上下文中的行为,以及它们与方法、类和变量之间的关系。
文章首先指出,Symbol 是 Ruby 解释器中命名标识符的表示。即使在不同的上下文中,相同的 Symbol 对象也只有一个实例,这与字符串不同,字符串每次使用都会创建新的对象。文章通过一个例子展示了 `:Fred` 这个 Symbol 在不同的模块中,分别代表类、常量和方法,但它们的 `object_id` 却是相同的。
文章进一步解释说,Symbol 并非直接引用方法、类或变量,而是指向它们的名称。可以将 Symbol 视为一个名称标签,它本身不是对象,而是对象的名称。Ruby 使用 Symbol 将标识符转换为一等公民,这使得像 `send(:times)` 这样的元编程成为可能。
文章还对比了 Python 和 Ruby 在方法调用上的差异。Python 使用字符串来表示方法名,而 Ruby 使用 Symbol,这使得 Ruby 的代码更具表达力。Symbol 的设计灵感来源于 Smalltalk、Lisp/Scheme 和 Clojure 等语言。文章还提到了 Erlang 的 atoms,虽然 Ruby 的 Symbol 与之相似,但用途不同。Erlang 的 atoms 主要用于并发系统中的消息传递和模式匹配,而 Ruby 的 Symbol 主要用于元编程。最后,文章指出了 Ruby 和 Erlang 在动态创建 Symbol/atom 时可能存在的内存泄漏问题。
- 原文: [Ruby Symbols](https://tech.stonecharioteer.com/posts/2025/ruby-symbols/)
- Hacker News: [https://news.ycombinator.com/item?id=45900273](https://news.ycombinator.com/item?id=45900273)
- 作者: stonecharioteer
- 评分: 50
- 评论数: 32
- 发布时间: 2025-11-12 22:00:52
---
## Azure 遭受 15 Tbps DDoS 攻击,攻击源自 50 万 IP 地址
微软报告称,Azure 云平台近期遭受了一次大规模的 DDoS 攻击,峰值流量达到 15 Tbps,攻击源于一个名为 Aisuru 的僵尸网络,该网络利用了超过 50 万个独立的 IP 地址。 这次攻击规模巨大,突显了云服务提供商面临的日益严峻的网络安全挑战。
这次攻击的规模和复杂性表明,攻击者正在不断提升其技术水平。 利用如此庞大的 IP 地址池发起攻击,使得追踪和缓解变得异常困难。 微软的安全团队迅速采取行动,成功缓解了这次攻击,并确保了 Azure 服务的持续可用性。 这次事件也提醒了所有企业,需要加强网络安全防御,包括部署先进的 DDoS 防护系统,以及实施有效的流量过滤和监控措施。 此外,企业还应定期进行安全评估和漏洞扫描,及时发现和修复潜在的安全风险。 微软的报告强调了云安全的重要性,以及云服务提供商在保护客户数据和应用程序方面所承担的责任。 这次攻击事件也促使业界重新审视现有的 DDoS 防护策略,并积极探索新的防御技术和方法。
由于文章没有评论区,因此不包含评论分析。
- 原文: [Azure hit by 15 Tbps DDoS attack using 500k IP addresses](https://www.bleepingcomputer.com/news/microsoft/microsoft-aisuru-botnet-used-500-000-ips-in-15-tbps-azure-ddos-attack/)
- Hacker News: [https://news.ycombinator.com/item?id=45955900](https://news.ycombinator.com/item?id=45955900)
- 作者: speckx
- 评分: 418
- 评论数: 272
- 发布时间: 2025-11-18 01:39:15
---
## 放弃的益处:重新评估目标与成功
这篇文章探讨了在某些情况下,放弃可能带来的意想不到的好处,挑战了我们坚持不懈的传统观念。它鼓励我们重新评估目标,认识到何时放弃不再有益的努力,并转向更有价值的方向。
文章首先指出,社会通常将坚持视为一种美德,而放弃则被视为失败。然而,一味坚持可能会导致精疲力竭、资源浪费,甚至错失更好的机会。作者认为,明智地放弃需要勇气和自我意识,是一种战略性的决策。
文章进一步阐述了放弃的几个潜在好处。首先,放弃可以释放时间和精力,让我们专注于更有意义和更有可能成功的项目。其次,它可以帮助我们避免沉没成本谬误,即因为已经投入了大量资源而继续坚持一个注定失败的项目。第三,放弃可以促进创新和适应性,鼓励我们尝试新的方法和方向。
文章还强调了区分“坏的放弃”和“好的放弃”的重要性。“坏的放弃”是出于恐惧、懒惰或缺乏决心而放弃,而“好的放弃”是经过深思熟虑后,基于对现实的清醒认识而做出的决定。好的放弃需要诚实地评估自己的能力、资源和机会,并愿意承认自己的局限性。
最后,文章建议我们定期审查自己的目标,并问自己是否仍然对这些目标充满热情,是否仍然相信它们是可实现的。如果答案是否定的,那么放弃可能是一个明智的选择。放弃并不意味着失败,而是一种重新定位,为未来的成功创造机会。
- 原文: [The surprising benefits of giving up](https://nautil.us/the-surprising-benefits-of-giving-up-1248362/)
- Hacker News: [https://news.ycombinator.com/item?id=45961481](https://news.ycombinator.com/item?id=45961481)
- 作者: jnord
- 评分: 133
- 评论数: 113
- 发布时间: 2025-11-18 12:44:21
---
## 大规模反向代理的意外:从运营中吸取的惨痛教训
本文探讨了大规模反向代理在实际运营中遇到的各种问题,着重强调了优化、配置和监控在大型系统中的重要性。文章通过分享一些“战争故事”,揭示了在规模化场景下,看似微小的细节也可能引发严重的故障。
文章指出,优化是具有上下文的,在一个环境下有效的优化方案,在另一个环境下可能适得其反。例如,在高核心数量的服务器上,锁竞争可能导致性能下降。此外,文章强调了“平凡”的重要性,指出许多故障并非源于复杂的漏洞,而是源于配置错误、文件描述符限制等常见问题。保持核心路径的简洁至关重要,不要让异常或抽象污染主流程。文章还强调了度量的重要性,要相信数据而非理论,并通过性能分析来发现隐藏的CPU成本和依赖关系。最后,文章强调了人为因素,指出在紧急情况下,清晰的日志、简单的命令和可预测的行为比复杂的机制更为重要。
文章还提到了几个具体的案例,包括由于freelist锁竞争导致Apache Traffic Server (ATS)性能下降,以及Read-Copy-Update (RCU)模式在大规模下带来的内存churn问题。另一个案例是HAProxy的DNS解析器中的二次时间复杂度查找,在高负载下导致CPU飙升和崩溃。这些案例都说明了在小规模下可以忽略的问题,在大规模下可能会变得非常严重。
总而言之,文章强调了在设计和运营大规模反向代理时,需要关注细节、持续监控、并根据实际情况进行优化。
- 原文: [When Reverse Proxies Surprise You: Hard Lessons from Operating at Scale](https://www.infoq.com/articles/scaling-reverse-proxies/)
- Hacker News: [https://news.ycombinator.com/item?id=45914929](https://news.ycombinator.com/item?id=45914929)
- 作者: miggy
- 评分: 76
- 评论数: 7
- 发布时间: 2025-11-13 21:55:30
---
🫵 来啊,说点有用的废话!
▲