Agili 的 Hacker Podcast

Hacker News 每日播报 2025-07-18


Listen Later

Hacker News 每日播报,带你探索从颠覆隐私的全同态加密,到 AI 编写日志的奇思妙想,再到经典“蝴蝶”键盘的复古情怀,以及在帆船上实践的低技术生活哲学。

全同态加密:开启真正私密的互联网黎明

全同态加密(Fully Homomorphic Encryption, FHE)是一项可能彻底改变互联网隐私格局的技术。我们已经习惯了数据在“静止时”(如磁盘加密)和“传输中”(如 HTTPS)的加密保护,但当数据在服务器内存中被 CPU“使用时”,它通常是明文状态,这正是当前数据安全的“阿喀琉斯之踵”。FHE 的魔力在于,它允许服务器直接在加密数据上进行任意计算,而无需解密。这意味着,你的数据可以从头到尾保持加密状态,服务提供商在处理你的请求时,看到的也只是一串无法理解的密文。

技术愿景与挑战

FHE 的愿景是构建一个“默认隐私”的互联网。想象一下,你向搜索引擎发送一个加密的查询,得到加密的结果,而搜索引擎本身却完全不知道你问了什么,也不知道返回了什么答案。这将从根本上颠覆依赖用户数据收集的商业模式。

然而,FHE 尚未普及的主要原因是其巨大的性能开销,计算速度比明文操作慢上千倍。但令人兴奋的是,FHE 算法正经历着“FHE 摩尔定律”式的发展,性能每年提升约 8 倍,预示着一个计算拐点即将到来。其底层技术基于“格密码学”,被认为是能抵抗量子计算机攻击的,因此具有天然的前瞻性。通过精巧的“自举”(Bootstrapping)技术,FHE 解决了计算过程中噪声累积的问题,理论上可以实现图灵完备的任意计算。

未来展望与讨论

对于 FHE 的未来,技术社区充满了期待与审慎的思考。一方面,隐私倡导者认为它是解决数据泄露和滥用问题的终极方案,能催生出在保护隐私前提下的新应用,如加密医疗诊断和保密智能合约。

另一方面,现实的挑战也不容忽视。巨大的性能瓶颈、实现的复杂性、以及如何将其无缝集成到现有系统,都是巨大的工程难题。此外,虽然技术本身安全,但实现中的漏洞、侧信道攻击或不当的密钥管理仍可能引入风险。FHE 的普及不仅是技术问题,更会深刻影响现有的商业模式,并引发关于数据监管和伦理的新讨论。尽管挑战重重,但许多人相信,FHE 成为互联网的默认加密方式,只是时间问题。

AI 的新宠:用人工智能编写日志

在软件开发中,编写高质量、信息丰富的日志是一项枯燥但至关重要的工作。最近,一个新颖的想法引起了开发者们的广泛兴趣:利用 AI 来自动化和优化日志的编写过程。这不仅能将开发者从繁琐的任务中解放出来,更有可能大幅提升软件的可维护性和可观测性。

AI 如何重塑日志编写

AI 在此场景下的核心价值在于其强大的模式识别和内容生成能力。它可以根据代码上下文、变量状态和函数调用,自动生成结构化、信息全面的日志。这能带来多方面的好处:

  • 提升质量与一致性:AI 可以确保所有日志都遵循预设的格式和标准,避免人为疏忽导致的信息缺失。
  • 减轻开发者负担:开发者无需再花费心力斟酌日志内容,AI 可以作为智能助手实时建议或自动插入日志语句。
  • 改善调试效率:由 AI 生成的、包含丰富上下文的日志,能帮助开发者在复杂的分布式系统中更快地定位问题。
  • 机遇与挑战并存

    这个想法获得了许多开发者的支持,他们认为这正是 AI 在软件工程中务实且高效的应用。然而,理性的探讨也揭示了潜在的挑战。

    首先是“垃圾进,垃圾出”的问题。如果 AI 无法准确理解代码意图,它生成的日志可能会产生误导,甚至比没有日志更糟糕。其次是信任与控制的平衡,开发者是否能完全信任 AI 的产出,以及当日志出错时,如何区分是代码逻辑问题还是 AI 的“幻觉”。此外,AI 服务的性能开销、成本以及数据隐私也是需要审慎考虑的因素。一些观点认为,最好的日志往往包含开发者对业务逻辑的独特洞察,这是 AI 难以捕捉的。过度依赖 AI 也可能削弱开发者自身编写高质量代码和日志的能力。

    归根结底,利用 AI 编写日志是一个充满潜力的方向,但如何在享受其便利的同时,规避潜在风险,将是开发者需要持续探索的课题。

    造轮子还是引依赖?错误的依赖比“非我发明”成本更高

    在软件开发中,“不要重复造轮子”是一条金科玉律,我们大量使用第三方库和框架来提高效率。然而,一篇文章尖锐地指出,引入错误的依赖,其成本可能远高于“非我发明”(Not Invented Here, NIH)自己动手实现。

    依赖的隐性成本

    文章认为,依赖并非“免费的午餐”,它们伴随着巨大的隐性成本:

    • 学习成本:理解和正确使用一个复杂的库可能非常耗时。
    • 维护成本:依赖的破坏性更新(breaking changes)可能迫使你进行昂贵的代码重构。
    • 部署复杂性:为了管理依赖,我们常常引入复杂的容器化或打包方案,这本身就是在创造一个与核心业务无关的“新轮子”。
    • 文章以金融数据库 Tigerbeetle 的“零依赖”策略为例,强调了对于基础架构软件而言,最小化依赖能有效避免供应链攻击、安全风险和性能问题。

      如何明智地选择依赖

      为了更科学地评估依赖,作者提出了一个五维框架:

      1. 普及性 (Ubiquity):它是否普遍存在于目标环境中?
      2. 稳定性 (Stability):它的 API 和功能是否稳定,变更是否频繁?
      3. 深度 (Depth):它背后封装了多少复杂性?自己实现有多难?
      4. 人体工程学 (Ergonomics):它的接口是否易于使用?
      5. 水密性 (Watertightness):它的抽象是否会“泄漏”,让你不得不关心底层实现?
      6. 这场关于依赖的讨论,核心在于开发效率、长期维护性与可控性之间的权衡。许多开发者分享了被“错误依赖”拖累的惨痛经历,认为对于核心业务逻辑,保持最小依赖是明智之举。但也有观点认为,完全的 NIH 并不现实,关键在于如何进行严格的依赖审查,明智地选择那些真正能提升效率且稳定可靠的库。这篇文章提醒我们,在享受便利的同时,必须警惕依赖带来的潜在成本。

        当 Root 遇上不可变:用 OpenBSD chflags 防止日志篡改

        在系统安全领域,确保日志的完整性至关重要,尤其是在攻击者获得 root 权限后。一篇技术文章深入探讨了 OpenBSD 系统如何利用其内置的 chflags 命令和 securelevel 机制,实现“连 root 都无法篡改”的日志保护。

        OpenBSD 的安全魔法

        这个方案的核心是利用 chflags 命令为日志文件设置两个特殊的标志:

        • sappnd (system append-only):文件只能追加新内容,不能修改或删除已有内容。
        • schg (system immutable):文件完全不可变,无法写入、删除或重命名。
        • 最关键的一点是,一旦这些标志由 root 用户设置,并且系统进入了更高的安全级别(securelevel > 0),即便是 root 用户自己也无法清除这些标志。这提供了一种超越传统 root 权限的保护层。

          实现方案巧妙地结合了系统启动脚本 /etc/rc.securelevel。该脚本在系统提升安全级别之前运行,它会暂时移除文件的不可变标志,执行日志轮换和归档,然后立即重新设置这些标志。一旦系统正常启动,日志文件就变得坚不可摧,除非攻击者能重启系统进入单用户模式。

          讨论与比较

          这种优雅的“Unix-y”方案引发了广泛讨论。虽然它并非绝对的“root-proof”(例如,拥有物理访问权限的攻击者仍可绕过),但对于远程攻击者而言,它极大地提高了篡改日志的难度。

          许多人将其与 Linux 的 chattr 命令进行比较。虽然 chattr 也有类似功能,但 Linux 的 root 用户可以随时撤销这些属性,缺乏 OpenBSD securelevel 机制提供的强制性保护。这也引出了关于其他日志保护方案的探讨,例如将日志实时发送到独立的、受保护的远程日志服务器,这仍然是企业环境中最常见的最佳实践。尽管如此,OpenBSD 的方案展示了其独特的安全设计哲学,即利用操作系统内置的简洁工具,实现强大的安全保障。

          CP/M 创作者 Gary Kildall 回忆录免费发布

          个人电脑历史上的传奇人物、CP/M 操作系统之父 Gary Kildall 的回忆录草稿《计算机连接》(Computer Connections)第一部分,近日由计算机历史博物馆免费向公众发布。这份珍贵的历史文献为我们提供了一个窥探早期个人电脑产业先驱思想的窗口。

          Kildall 在 1994 年去世前一年撰写了这份手稿。据其子女介绍,这部分公开的内容展示了 Kildall 和他的妻子 Dorothy 如何从零开始,开创了早期的创业文化。他们的成功观非常独特,将发明、思想和对生活的热爱置于商业利润之上。

          这份回忆录不仅记录了技术发展的轨迹,也揭示了这位天才工程师的个人价值观。不过,文章也提到,涉及 Kildall 与个人生活挑战斗争的后续章节将不会被公开。

          这份文献的发布,无疑会引发科技爱好者对早期个人电脑历史、CP/M 的技术遗产,以及关于 Kildall 与微软之间那段著名公案的再次讨论,让我们得以更全面地理解这位对行业产生深远影响,却又充满悲剧色彩的技术先驱。

          科学研究证实:裸盖菇素可显著缓解癌症患者的抑郁与焦虑 (2016)

          一篇 2016 年发表于《精神药理学杂志》的研究,为迷幻药在精神健康领域的治疗潜力提供了强有力的证据。这项由约翰霍普金斯大学进行的研究发现,裸盖菇素(Psilocybin,“神奇蘑菇”的活性成分)能够显著且持久地降低癌症患者的抑郁和焦虑。

          严谨的科学验证

          面对传统抗抑郁药物效果有限的困境,研究人员对 51 名伴有抑郁或焦虑症状的癌症患者进行了一项严谨的随机、双盲、交叉试验。研究结果非常鼓舞人心:

          • 效果显著:单次高剂量的裸盖菇素就能大幅度降低患者的抑郁和焦虑水平。
          • 效果持久:在 6 个月的随访中,约 80% 的参与者依然保持着症状的显著减轻。
          • 提升生活质量:患者在生命意义感、乐观情绪和生活满意度方面均有显著提升。
          • “神秘体验”与“情境”的重要性

            研究的一个关键发现是,治疗效果与患者在服药期间经历的“神秘体验”(mystical-type experience)强度密切相关。这表明,不仅仅是药物的生化作用,更是其诱导的深刻心理和精神体验在发挥治疗作用。

            此外,整个治疗过程在专业治疗师的全程陪伴和舒适、受控的环境下进行,即所谓的“设置与情境”(set and setting)。这被认为是确保积极治疗效果和最小化风险的关键,与娱乐性使用有着本质区别。

            这项研究的发表,极大地推动了迷幻辅助疗法的复兴。它不仅为面临生存危机的患者带来了新的希望,也促使科学界和公众重新审视这些曾被污名化的物质,并探讨其在治疗创伤后应激障碍(PTSD)、成瘾等其他精神疾病方面的巨大潜力。当然,相关的法律法规、安全性和长期效果仍是未来需要持续研究和讨论的重要议题。

            lsr:用 io_uring 重塑 ls 命令,性能提升显著

            一个名为 lsr 的新项目在开发者社区引起了关注,它使用 Linux 内核最新的异步 I/O 接口 io_uring 重新实现了我们日常使用的 ls 命令。结果令人惊叹:在处理大量文件时,lsr 不仅速度更快,其系统调用(syscall)次数更是比标准 ls 少了一个数量级。

            性能背后的秘密

            ls 命令的工作主要分为收集数据和打印数据。lsr 的核心优化在于,它将所有 I/O 操作,如打开目录、获取文件元数据(stat),都通过 io_uring 进行批处理。这使得内核可以一次性处理大量请求,极大地减少了用户空间和内核空间之间昂贵的上下文切换次数,从而实现了系统调用次数的急剧下降。

            基准测试显示,在列出 10,000 个文件时,lsr 的系统调用次数仅为 848 次,而 GNU ls 高达 30,396 次。这种效率提升展示了 io_uring 在 I/O 密集型应用中的巨大潜力。

            实用性与未来的思考

            这场关于 lsr 的讨论,也引发了对性能与实用性的思考。一方面,追求极致性能的工程师对 io_uring 的强大能力感到兴奋,并探讨其在数据库、网络服务器等领域的应用前景。

            另一方面,也有观点认为,对于日常使用的 ls 命令,微秒级的性能提升对普通用户感知不强。此外,io_uring 是 Linux 特有的,这限制了其跨平台兼容性。现代 ls 替代品(如 eza)提供的丰富特性(如颜色、图标、Git 状态)在用户体验上可能更具吸引力。

            尽管如此,lsr 作为一个出色的技术演示,成功地展示了如何利用现代内核特性来重新思考和优化基础工具,为未来系统编程的发展方向提供了宝贵的参考。

            回顾 IBM 1995 年昙花一现的“蝴蝶”键盘 ThinkPad

            在笔记本电脑的设计史上,IBM 1995 年推出的 ThinkPad 701 及其“蝴蝶”键盘(TrackWrite)无疑是一个令人难以忘怀的工程奇迹。这款设备在闭合时是一台紧凑的子笔记本,但当你打开屏幕时,键盘会像蝴蝶翅膀一样优雅地向两侧展开,形成一个舒适的全尺寸键盘。

            创新与陨落

            在那个笔记本屏幕普遍较小的年代,ThinkPad 701 的设计巧妙地解决了在小机身内容纳全尺寸键盘的难题。这项创新在当时赢得了无数赞誉,登上了大银幕,并被纽约现代艺术博物馆收藏。

            然而,它的生命周期却异常短暂。其迅速停产的原因是多方面的:首先,它搭载的 486 芯片在发布时已显落后;其次,更重要的原因是显示技术的飞速发展。很快,制造商就能在轻薄的机身中集成更大的屏幕,从而自然地容纳下全尺寸键盘,使得“蝴蝶”这种复杂的机械结构变得不再必要。

            不朽的传奇

            尽管 ThinkPad 701 已经成为历史,但它在技术爱好者和复古计算社区中依然是传奇般的存在。许多人致力于修复和改造这些经典机器,甚至为其换上现代的主板和高清屏幕,让这只“蝴蝶”在数字时代重获新生。ThinkPad 701 的故事提醒我们,在技术发展的浪潮中,一些最具创造力和“魔力”的设计,有时恰恰诞生于技术限制的夹缝之中,并因此成为永恒的经典。

            Hundred Rabbits:在帆船上环游世界的低技术生活

            Hundred Rabbits 是一个由 Devine 和 Rek 夫妇运营的独特项目,他们选择了一种非传统的生活方式——居住在名为“Pino”的帆船上环游世界,同时进行软件和艺术创作。他们的核心理念是追求数字极简主义和技术上的自给自足,以此作为对现代技术过度复杂化的反思与实践。

            Uxn:极简计算平台

            他们的许多项目都构建在一个名为 Uxn 的自制虚拟机之上。Uxn 是一个极简的计算平台,旨在实现高度的可移植性和极低的资源消耗,使其能够在资源受限的旧硬件甚至自制设备上运行。基于 Uxn,他们开发了现场编码环境 Orca、各种游戏和小型图形工具。这种对底层技术的完全掌控,使他们即使在远离大陆、网络不稳定的航海生活中,也能保持高效的创作。

            技术与生活的融合

            他们的生活是技术与航海的完美融合。日常除了编写代码、设计游戏,还包括大量的船只维护工作,如清洁船底、修复设备。他们还创建了分享航海知识、应急准备和食谱的项目,将生活经验转化为实用的数字工具。

            这种“逃离内卷”、在实践中创造价值的生活方式,引发了人们对工作与生活平衡、技术的可持续性以及个人幸福的深刻思考。Hundred Rabbits 不仅展示了一种另类的生活可能,也通过他们的开源项目,为我们提供了一个重新审视技术与创造力关系的宝贵视角。

            从 XOR 技巧到数十亿行数据:深入了解可逆布隆过滤器

            在处理海量数据时,如何高效地找出两个集合之间的差异是一个常见的挑战。一种名为“可逆布隆过滤器”(Invertible Bloom Filter, IBF)的巧妙数据结构,为这个问题提供了优雅的解决方案。它可以看作是我们熟悉的、用于查找单个缺失数字的 XOR 技巧的强大扩展。

            IBF 的工作原理

            IBF 的核心思想与标准布隆过滤器类似,使用多个哈希函数将元素映射到一个单元格数组中。但与只记录存在性的标准布隆过滤器不同,IBF 的每个单元格包含三个累加器:

            1. idSum:所有映射到该单元格的元素 ID 的 XOR 和。
            2. hashSum:所有映射到该单元格的元素哈希值的 XOR 和。
            3. count:映射到该单元格的元素数量。
            4. 当需要比较两个集合 A 和 B 时,可以分别构建它们的 IBF,然后进行“相减”操作。由于 X ^ X = 0,两个集合中相同的元素会相互抵消,最终得到的 IBF 中只剩下两个集合的对称差(即只存在于 A 或只存在于 B 的元素)。

              最关键的一步是“解码”。通过迭代地寻找那些只包含一个元素的“纯净”单元格,IBF 可以逐个“剥离”出差异元素,并将其从其他单元格中移除,最终恢复出所有的差异。

              空间效率的巨大优势

              IBF 最显著的优势在于其空间效率。它的存储大小只与两个集合的差异大小成正比,而与集合本身的总大小无关。这意味着,即使要比较两个包含数十亿行数据的表格,只要它们之间的差异不大,IBF 也能以非常紧凑的方式完成任务。这使其成为数据库同步、网络协议和分布式系统数据一致性检查等场景下的理想工具。

              相关链接:

              • Fully homomorphic encryption and the dawn of a private internet
              • My favorite use-case for AI is writing logs
              • NIH is cheaper than the wrong dependency
              • When root meets immutable: OpenBSD chflags vs. log tampering
              • CP/M creator Gary Kildall's memoirs released as free download
              • Psilocybin decreases depression and anxiety in cancer patients (2016)
              • lsr: ls with io_uring
              • A look at IBM's short-lived "butterfly" ThinkPad 701 of 1995
              • Hundred Rabbits – Low-tech living while sailing the world
              • Extending That XOR Trick to Billions of Rows
              ...more
              View all episodesView all episodes
              Download on the App Store

              Agili 的 Hacker PodcastBy Agili 的 Hacker Podcast