Agili 的 Hacker Podcast

Hacker News 每日播报 2025-11-23


Listen Later

Hacker News 每日播报带你探索 GCC 的历史性更新、用超声波“闻”气味的前沿科技、与垄断 ISP 的斗争、泰坦号的解密报告、TypeScript 的实用技巧、386 芯片的复古电路、Meta 的内部争议、Ubuntu 的超长支持、贝尔实验室的另一面,以及一个关于爱与秘密的感人故事。

GCC 喜迎老将:Algol 68 前端正式获批加入

对于许多程序员,尤其是那些对计算机科学史充满敬意的开发者来说,最近 GCC 邮件列表中的一则公告无疑是个激动人心的消息:GCC 指导委员会已正式批准将 Algol 68 的前端代码合并到主干开发分支。

Algol 68 是一门诞生于上世纪 60 年代的编程语言,以其严谨的类型系统、正交的设计和对并行处理的早期探索而闻名,对后世的许多语言产生了深远影响。如今,它将在现代编译器基础设施中获得新生。

不过,这次合并并非没有条件。为了确保不影响 GCC 的整体稳定性和发布节奏,Algol 68 前端将遵循以下原则:

  • 非默认构建:它不会成为标准 GCC 安装的一部分,需要用户在编译时特别指定。
  • 非发布标准:其开发状态不会影响 GCC 的正式版本发布,给予了开发者更大的实验空间。
  • 责任分离:核心 GCC 开发者无需为 Algol 68 前端引起的问题负责。
  • 维护承诺:如果该前端长期无人维护,出现“比特腐烂”(bitrot),将会被移除。
  • Jose E. Marchesi 已被任命为该前端的维护者,肩负起让这门经典语言在 GCC 中持续发展的重任。这一消息让 Algol 68 的爱好者们兴奋不已,他们认为这不仅是将一门旧语言带回聚光灯下,更是对编程语言历史遗产的一种尊重与传承。在一个技术日新月异的时代,对经典和历史的兴趣依然存在,并且有能力通过社区的努力被重新激活。

    用超声波“闻”到气味?一项脑机接口的嗅觉新突破

    一篇题为《我们用超声波诱导了嗅觉》的文章,为我们展示了一项可能颠覆感官体验的突破性研究。研究团队首次成功地使用聚焦超声波,以非侵入性的方式直接在大脑中创造出嗅觉感知。

    实验的巧思与挑战

    嗅球位于大脑深处,被空气填充的鼻腔环绕,这给超声波的精准传递带来了巨大挑战。研究人员巧妙地将探头置于前额,向下倾斜对准通过 MRI 定位的嗅球,成功绕开了障碍。他们的早期实验装置甚至充满了“黑客”精神,用胶带和一把塑料刀来固定探头。

    在确保远低于安全阈值的能量水平后,他们在两名受试者身上成功诱导出了四种不同的嗅觉:清新的空气、垃圾的腐烂味、臭氧味和燃烧木材的篝火味。更令人惊讶的是,仅仅几毫米的微调就能切换不同的气味,这暗示了超声波在神经刺激上可能具有前所未有的“超分辨率”。

    “嗅觉 VR”之外的深远意义

    这项研究的意义远不止于实现“嗅觉电视”(Smell-O-Vision)。嗅觉系统与大脑中负责记忆和情绪的核心区域直接相连,信号处理路径短而直接。这使得嗅觉可能成为一种高带宽、非侵入性的大脑信息写入通道。研究者甚至提出了一个大胆的设想:如果我们能控制所有 400 种嗅觉受体,或许未来我们能像理解文字一样,直接“闻”到信息的深层含义。

    这项充满创意的研究也引发了广泛的讨论。虽然其样本量较小,发布形式也非传统的同行评审论文,但其核心成果依然令人振奋。这项技术为嗅觉缺失症患者带来了重获嗅觉的希望,也为 VR/AR 游戏、电影等沉浸式体验打开了想象的大门。当然,这项“直接写入大脑”的技术也带来了伦理上的考量,关于技术滥用、隐私控制的担忧也随之而来,许多人呼吁这类技术应以开源的方式发展,以确保其透明和可控。

    当网络每天精准掉线 125 秒:与垄断 ISP 的漫长斗争

    一位 Xfinity 用户分享了他长达数月的痛苦经历:他的网络每天都会中断数次,每次不多不少,正好 125 秒。这篇详尽的记录,生动地描绘了在缺乏市场竞争的环境下,普通用户在面对基础设施问题时的无力感。

    作者通过 OPNSense 网关监控工具发现,这些中断并非随机故障,而是具有高度规律性的模式,每天发生 6-7 次,且集中在特定时间点。当他发现邻居也遇到同样问题时,他确信这是 Xfinity 上游基础设施的系统性问题。然而,他与 Xfinity 客服和技术人员的多次沟通都陷入了僵局,对方始终将问题归咎于用户的调制解调器或路由器,拒绝向上游追查。

    这篇文章引发了大量技术人员的共鸣,大家纷纷献计献策,总结出一套应对垄断 ISP 的“生存指南”。

    技术诊断:问题到底出在哪?
    • 检查调制解调器日志:许多经验丰富的用户指出,除了 Ping 测试,访问调制解调器自身的诊断页面(通常是 192.168.100.1)至关重要。作者更新后的日志显示了大量同步失败的严重错误,这直接指向了上游物理层的问题。
    • 解读“125秒”:这 125 秒很可能不是网络超时,而是调制解调器在检测到信号丢失后,完成重新扫描、同步、测距和获取 IP 地址的全过程所需的时间。故障的触发原因可能是运营商节点上某个自动化的维护任务导致了固件崩溃。
    • 排查干扰:也有观点认为,这种规律性中断可能源于外部电磁干扰,例如某个设备在特定时间定时开启。
    • 维权攻略:如何让 ISP 正视问题?
      • 寻求监管机构帮助:直接向 FCC(联邦通信委员会)或地方监管机构投诉被证明是极其有效的手段。通常,官方投诉能让问题直达 ISP 的高级支持团队,绕过无效的一线客服。
      • 团结邻里:让更多受影响的邻居一同报告问题,可以增加问题的权重,迫使 ISP 投入更多资源进行调查。
      • 升级服务等级:一个略显无奈但有效的方法是,临时升级到价格更高的商务服务。商务客户通常能获得更专业、更高级别的技术支持。问题解决后,再降级回消费者服务。
      • 归根结底,这场拉锯战的根源在于 ISP 的垄断地位。缺乏竞争使得服务提供商没有足够的动力去投资基础设施、优化客户支持流程,最终将解决问题的重担转嫁给了本应享受服务的用户。

        泰坦号潜水器摄像头解密报告:技术上的胜利与悲剧性的徒劳

        美国国家运输安全委员会(NTSB)发布了一份关于泰坦号潜水器摄像头数据恢复的详细报告,它既是一次高超技术操作的展示,也是一个令人扼腕的悲剧缩影。

        报告的核心是,调查人员从潜水器残骸中回收了一个由钛合金外壳保护的水下摄像头。尽管潜水器发生了灾难性的内爆,摄像头本体却奇迹般地保持完整。然而,内部的 SD 卡数据被一种基于 Linux dm-crypt 的自定义方案加密了,而解密密钥存储在事故中损坏的板载模块(SOM)上。

        NTSB 的工程师们与摄像头制造商合作,通过克隆受损模块的 NVRAM 内容并移植到新模块上,最终成功解密并恢复了 SD 卡上的 12 张静态图像和 9 段视频。

        然而,报告的戏剧性转折在于:尽管付出了巨大的努力,但恢复的数据中没有任何来自事故航次的内容。所有文件的最后修改时间都远早于事故发生日期。调查人员推测,在最后一次下潜时,摄像头可能被配置为将数据直接存储到潜水器的外部计算机上,而那台计算机已在事故中被压成一团无法识别的金属。

        这份报告被许多人视为泰坦号一系列工程失误的又一例证。这起悲剧的背后,是充满争议的碳纤维船体材料选择、对内部工程师安全警告的系统性忽视,以及一种将创新置于安全之上的危险企业文化。报告中一些“无效的涂改”(如试图遮盖 SD 卡品牌,但仍能被轻易识别)也似乎映射出该公司在处理专业问题上的某种天真和混乱。最终,这次技术上堪称胜利的数据恢复,却未能为解开悲剧的最后谜团提供任何线索,留下无尽的遗憾。

        TypeScript satisfies 操作符:在类型推断与约束之间找到完美平衡

        在 TypeScript 的世界里,satisfies 是一个非常实用但常常被忽视的关键词。它优雅地解决了类型推断和类型约束之间的一个常见矛盾。

        问题在于,当你想让 TypeScript 推断出最精确的类型(例如一个对象属性的具体字面量类型),同时又希望确保这个对象符合某个更宽泛的接口时,传统的显式类型注解(如 const user: User = ...)会覆盖掉 TypeScript 的精确推断。

        satisfies 操作符应运而生。它允许你告诉编译器:“请检查这个值是否满足某个类型,但请继续使用你推断出的最具体的类型。”

        例如,假设你有一个 Person 接口和一个只接受 isCool: true 的函数。通过 const me = { name: "Jerred", isCool: true } satisfies Person;,TypeScript 会:

        1. 检查 me 对象是否符合 Person 接口的所有要求。
        2. 同时,将 me 的类型推断为更具体的 { name: string, isCool: true },而不是宽泛的 { name: string, isCool: boolean }。
        3. 这样,你既获得了类型安全检查,又保留了精确的类型信息,使代码更加健壮和灵活。

          satisfies 的应用与 TypeScript 的争议

          在开发者社区中,satisfies 最广为人知的应用场景之一是在 switch 语句中进行穷尽性检查 (exhaustiveness check)。通过在 default 分支中写下 myVar satisfies never,你可以确保所有可能的联合类型成员都已被处理,否则编译器会报错。

          这场关于 satisfies 的讨论也延伸到了对 TypeScript 类型系统本身的思考。一些开发者认为,尽管 TypeScript 极大地改善了 JavaScript 的开发体验,但它并非完全“健全”(sound),在某些情况下,编译时通过的代码仍可能在运行时抛出类型错误。另一些开发者则反驳说,这些问题通常源于对 any 等“逃生舱”的滥用,而对于需要严格运行时验证的场景,可以结合 Zod 这样的库来使用。satisfies 的出现,正是 TypeScript 在灵活性与精确性之间不断寻求更佳平衡的体现。

          深入英特尔 386 芯片:标准单元逻辑中的“非主流”电路设计

          逆向工程大神 Ken Shirriff 的最新文章带我们穿越回 1985 年,深入探索了英特尔 386 处理器内部的微观世界,揭示了其在设计上的一些非同寻常的电路。386 芯片是英特尔首款采用“标准单元逻辑”(standard cell logic)设计的复杂处理器,这项技术通过自动化布局布线,极大地加速了拥有近 30 万晶体管的芯片的开发进程。

          在对 386 芯片的显微照片进行分析时,Shirriff 发现了一些打破常规的设计:

          巨大的多路复用器

          386 架构的复杂性要求其能以多种方式访问寄存器(如 32 位、16 位或 8 位)。为了实现这种灵活的控制,设计者使用了大量基于 CMOS 开关(在业界更常被称为“传输门”)构建的多路复用器。这种设计比传统的逻辑门实现性能更优,但也展示了在标准单元布局中实现复杂布线的挑战。

          “错位”的晶体管

          最有趣的一个发现是,在一个本应整齐排列的标准单元区域,出现了一个孤零零的晶体管,它被放置在两列单元之间的布线通道里。Shirriff 推测,这很可能是一个为了赶工而进行的“手动 Bug 修复”。与其花费大量时间重新生成整个芯片布局,工程师们可能选择了这种务实的方式,手动将这个缺失的晶体管“塞”进一个未使用的空间。

          “伪装”的反相器

          更令人惊讶的是,一些外观与标准反相器一模一样的单元,其内部连接方式却完全不同。它们的 NMOS 和 PMOS 晶体管被独立控制,实际上被巧妙地用作了多路复用器的独立分支。这种对标准单元的“二次利用”展现了当时工程师在资源和工具限制下的极致优化和创造力。

          这些发现不仅是对 386 芯片的一次精彩技术考古,也生动地展现了早期芯片设计中工程师们的智慧、实用主义和“黑客精神”。386 团队在当时冒险采用标准单元逻辑的决定,最终取得了巨大成功,为 x86 架构的长期主导地位奠定了坚实的基础。

          内部文件指控 Meta 掩盖社交媒体危害青少年的“因果”证据

          根据路透社的报道,最新披露的美国法院文件对 Meta 公司及其 CEO 马克·扎克伯格提出了一系列严重指控,核心是该公司被控刻意隐瞒其产品对青少年心理健康造成负面影响的“因果”证据。

          “Project Mercury” 与被掩盖的发现

          指控中最引人注目的是一个代号为“Project Mercury”的内部研究项目。据称,该研究发现,停用 Facebook 一周的用户普遍报告了更低的抑郁和焦虑水平。然而,Meta 非但没有公布这些发现,反而叫停了该项目,并声称结果受到了“媒体叙事”的污染——这一说法遭到了内部员工的质疑,甚至有人将其与烟草业掩盖香烟危害的行为相提并论。

          广泛的指控

          这起由美国多个学区提起的诉讼还包含了其他多项惊人的指控:

          • 安全功能形同虚设:Meta 被指故意设计无效的青少年安全功能,并阻止可能影响用户增长的安全测试。
          • 对性贩运的迟缓反应:据称,Meta 要求用户被捕获 17 次试图进行性贩运后,才会将其从平台移除。
          • 增长优于安全:尽管明知优化产品以增加青少年参与度会导致更多有害内容,但仍坚持此策略。
          • 扎克伯格的优先事项:文件中引述扎克伯格在 2021 年的短信,他表示儿童安全不是他的首要关注点,因为他更专注于“建设元宇宙”。
          • Meta 的发言人对此进行了反驳,称这些指控基于“断章取义的引述和不实信息”,并强调公司一直在努力提高产品安全性。

            这一消息在技术社区引发了强烈的道德愤慨。许多人认为,大型科技平台在追求增长和利润的同时,可能已经系统性地忽视了其对社会,尤其是对最脆弱群体的责任。这些指控,无论最终是否被证实,都深刻地指向了一个核心问题:在巨大的商业利益面前,科技巨头是否真正履行了其应有的社会契约?

            Ubuntu LTS 支持周期延长至 15 年,是稳定福音还是技术债的温床?

            Canonical 公司宣布了一项重大举措:通过其 Ubuntu Pro 的 Legacy 附加服务,将为 Ubuntu LTS(长期支持)版本提供长达 15 年的安全维护。这一消息在技术社区引发了关于“稳定”与“进步”的经典辩论。

            这项服务从 Ubuntu 14.04 LTS 开始,意味着这个发布于十年前的版本如今可以一直获得安全更新直到 2029 年。此举主要面向那些在高度监管、硬件依赖或拥有关键遗留系统的行业,对这些企业而言,频繁的系统升级不仅成本高昂,还可能带来巨大的兼容性风险和合规性挑战。

            为何需要超长支持:来自企业的真实呼声

            许多在大型企业或传统行业工作的开发者对此表示欢迎。在他们看来,生产环境中的操作系统首要任务是“稳定可靠,不要添乱”。对于运行着斥巨资购买且仍在支持合同期内的关键业务软件而言,操作系统升级带来的价值微乎其微,而停机和兼容性验证的成本却高得惊人。他们真正需要的,仅仅是“保持现有系统不变,但持续获得安全补丁”。

            “不升级”的代价:技术债与安全风险

            然而,另一派观点则认为,长期固守一个老旧的操作系统本身就是一种技术和组织的失败。他们认为,如果一个系统连每 2-3 年都无法升级,那么在 15 年后升级的可能性就更渺茫了。这无异于是在积累巨额的技术债,最终会导致一次成本更高、风险更大的“推倒重建”。而且,随着旧版本软件的用户基数减少,发现和修复漏洞的社区力量也会减弱,可能使其更容易成为攻击目标。

            Canonical 的这一举措,精准地抓住了特定企业市场的核心痛点,为他们提供了在稳定性和安全性之间的一个可行选择。但这同时也提醒我们,长期的稳定或许是一种“付费的舒适区”,决策者需要在眼前的便利与未来的技术债务之间做出审慎的权衡。

            贝尔实验室“无聊”的一面:撑起登月计划的日常琐碎与智慧

            当我们谈论贝尔实验室时,脑海中浮现的往往是晶体管、激光、Unix 系统等改变世界的发明。然而,一篇文章《贝尔实验室的无聊部分》通过对其员工后代的采访,为我们揭示了这个传奇机构中那些不那么光鲜,却同样至关重要的日常工作。

            文章挑战了我们将创新等同于“登月计划”的普遍认知。作者的父亲曾在贝尔实验室的霍姆德尔分部工作,该分部专注于应用研究,即支撑那些宏大发明的“平淡、磨人的工作”。这些工作看似“无聊”,却充满了解决实际问题的智慧:

            • 优化库存:通过运用排队理论中的库存控制模型,他为 PBX 维修技术人员优化了备用电路板的库存,既满足了需求,又为公司节省了大量成本。
            • 设计计算尺:在可编程计算器普及之前,他为销售人员设计了一把巧妙的硬纸板计算尺,利用分段线性回归原理,使其能够在客户现场快速估算出复杂的 PBX 系统成本。
            • 推广实验设计(DoE):他热衷于推广统计实验设计方法,通过更高效的实验来诊断工业生产中的复杂问题,以最小的成本获取最有价值的因果关系信息。
            • 这篇文章引发了人们对现代企业文化的深刻反思。许多人认为,这些所谓的“无聊”工作,恰恰是工程智慧和核心价值的体现。同时,贝尔实验室当年提供的“一年在校计划”(资助新员工脱产攻读硕士学位)在今天已几乎绝迹。这背后反映了企业价值观的转变:从将员工视为长期投资的“资产”,到如今更倾向于将员工作为短期雇佣的“资源”。在追求股东价值最大化和短期利润的压力下,许多公司不再愿意为员工的长期成长进行投入,这种短视行为或许正是当今许多企业缺乏深层创新动力的原因之一。

              父亲离世后,我们发现了他的情书和一个隐藏一生的秘密

              一篇极其个人化且感人至深的文章,讲述了作者在父亲去世后,通过他留下的情书,发现了一个隐藏了一生的秘密:她的父亲是一位同性恋者,并在生命的最后几年里,拥有了一段不为人知但充满爱与喜悦的恋情。

              作者与父亲的关系一直疏远而复杂。在传统中国家庭的压力下,父亲一生扮演着严肃、沉默的父权角色,与女儿之间鲜有亲密互动。然而,在整理遗物时,家人发现了父亲写给一位名叫爱德华的男士的情书。这些信件和爱德华后来的叙述,拼凑出了一段持续三年的深情故事。在与爱德华共同生活的照片中,父亲脸上洋溢着作者从未见过的、发自内心的灿烂笑容。

              这一发现给作者带来了巨大的冲击,既有为父亲一生大部分时间活在压抑与伪装中的痛苦,也有一种看到他最终找到真正幸福的“甜蜜的伤感”。最具讽刺意味的是,多年前作者曾向父亲出柜,当时父亲鼓励她“找到自己的幸福,不要活在别人的期待中”。这番话,如今听来,充满了父亲对自己未能实现的人生的深深遗憾。

              这个令人心碎的故事,深刻地提醒我们,强加于人的生活方式会带来怎样的悲剧。它呼吁我们给予他人更多的理解与空间,去追寻属于自己的幸福,而不是活在别人的期望之中。尊重每个人的选择和生活方式,是避免类似悲剧重演的唯一途径。

              相关链接:

              • GCC SC approves inclusion of Algol 68 Front End
              • We Induced Smells With Ultrasound
              • A monopoly ISP refuses to fix upstream infrastructure
              • NTSB report: Decryption of images from the Titan submersible camera [pdf] (2024)
              • `satisfies` is my favorite TypeScript keyword (2024)
              • Unusual circuits in the Intel 386's standard cell logic
              • Meta buried 'causal' evidence of social media harm, US court filings allege
              • Ubuntu LTS releases to 15 years with Legacy add-on
              • The Boring Part of Bell Labs
              • After my dad died, we found the love letters
              ...more
              View all episodesView all episodes
              Download on the App Store

              Agili 的 Hacker PodcastBy Agili 的 Hacker Podcast