2天前
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20250816
速览今日科技热点!从AI如何重塑经济格局,到Git如何应对大型文件挑战,再到用头发修复牙齿的黑科技牙膏,硬核干货满满!更有OpenBSD和Linux的性能PK,以及初创公司早期增长秘籍。别错过还有2D编程语言Recto、深海淡化技术、VP.NET的隐私验证新思路等精彩内容,快来一起充电吧!

---
## 优秀系统设计的核心要点
本文探讨了优秀系统设计的本质,作者认为好的系统设计应该是低调且不引人注目的,着重强调了在构建系统时需要关注的关键原则和实践方法。
文章首先指出,优秀的系统设计通常表现为长期稳定运行,问题很少出现,让人觉得简单易用。复杂系统往往是缺乏良好设计的体现,虽然有时复杂性不可避免,但应尽可能从简单系统演化而来,避免一开始就构建过于复杂的系统。
文章强调了状态管理的重要性,认为软件设计的难点在于状态。无状态服务易于维护和修复,而有状态服务则容易出现问题。因此,应该尽量减少系统中状态组件的数量,将状态逻辑集中在一个服务中,避免多个服务同时写入同一张表。
数据库是存储状态的关键组件,因此数据库设计至关重要。在设计数据库 Schema 时,需要在灵活性和可读性之间取得平衡。Schema 应该具有一定的灵活性,以便适应未来的变化,但也不能过于灵活,否则会增加应用程序的复杂性。同时,应该为表添加适当的索引,以提高查询效率。
数据库访问通常是高流量应用的瓶颈。为了避免瓶颈,应该充分利用数据库的功能,让数据库完成尽可能多的工作,例如使用 `JOIN` 操作代替多次查询并在内存中拼接数据。同时,应尽量将读查询发送到数据库副本,以减轻主节点的压力。
评论区可能更关注具体的技术选型和架构模式,例如微服务、事件驱动架构等。这些技术可以用于构建复杂系统,但也需要根据实际情况进行选择和使用,避免过度设计。此外,评论区可能会讨论如何监控和诊断系统问题,以及如何进行容量规划和性能优化。
- 原文: [Good system design](https://www.seangoedecke.com/good-system-design/)
- Hacker News: [https://news.ycombinator.com/item?id=44921137](https://news.ycombinator.com/item?id=44921137)
- 作者: dondraper36
- 评分: 427
- 评论数: 172
- 发布时间: 2025-08-16 15:38:46
---
## 头发制成的牙膏:修复牙齿的新方法
这篇文章介绍了伦敦国王学院的一项创新研究,他们开发了一种由头发制成的牙膏,声称可以自然修复牙齿。这种牙膏利用头发中的蛋白质,促进牙根的再生,为牙齿健康带来新的希望。
研究人员利用头发中的角蛋白,将其转化为一种生物活性材料。这种材料能够刺激牙髓细胞,促进牙本质的再生,从而修复受损的牙根。与传统的牙科修复方法相比,这种新型牙膏具有生物相容性好、无毒副作用等优点。研究团队表示,初步实验结果显示,使用这种牙膏后,牙齿的再生速度和质量都得到了显著提升。他们希望在未来几年内,能够将这项技术推向市场,为更多的人带来福音。这项研究的重点在于利用生物材料进行牙齿修复,为牙科领域带来革命性的改变。这种牙膏不仅可以修复牙根,还可以预防蛀牙和牙周疾病,维护口腔健康。研究人员相信,通过进一步的研发和临床试验,这种牙膏将成为未来牙齿保健的重要工具。这项技术如果能够成功商业化,将对整个牙科行业产生深远的影响,为患者提供更安全、更有效的治疗选择。该研究强调了生物材料在医学领域的应用潜力,并为未来的研究方向提供了新的思路。
由于文章没有评论区内容,因此无法进行评论分析。
- 原文: [Toothpaste made from hair provides natural root to repair teeth](https://www.kcl.ac.uk/news/toothpaste-made-from-hair-provides-natural-root-to-repair-teeth)
- Hacker News: [https://news.ycombinator.com/item?id=44922571](https://news.ycombinator.com/item?id=44922571)
- 作者: sohkamyung
- 评分: 30
- 评论数: 13
- 发布时间: 2025-08-16 20:13:12
---
## 开发者需要注意的陷阱
本文总结了开发者容易误解并导致bug的一些不直观的陷阱,主要集中在HTML/CSS和Unicode/文本编码两个方面。
文章首先深入探讨了HTML和CSS中常见的陷阱。例如,`min-width: auto`的默认行为及其优先级,水平和垂直方向在CSS中的差异,以及块格式化上下文(BFC)的影响。此外,文章还详细解释了堆叠上下文(stacking context)的创建条件及其可能导致的行为,包括`z-index`失效、绝对定位的基准、粘性定位失效等。移动端浏览器上的`100vh`问题,以及`position: absolute`的定位基准,也是需要注意的点。文章还提到了`float`属性在`flex`或`grid`布局中的失效,百分比宽高在父元素未确定宽高时的失效,以及`display: inline`对宽高和margin的影响。Whitespace collapse(空白折叠)的各种情况,以及`text-align`对块级元素无效,`box-sizing`属性,Cumulative Layout Shift(累积布局偏移),文件下载请求在Chrome开发者工具中的隐藏,以及JS-in-HTML可能干扰HTML解析等问题,都进行了详细的阐述。
接着,文章深入探讨了Unicode和文本编码的复杂性。文章区分了代码点(rune)和字形簇(grapheme cluster)的概念,指出字形簇是GUI中的“字符”单位,一个emoji可能由多个代码点组成。文章还对比了不同编程语言(Rust、Golang、Java、C#、JS、Python、C++)在内存中处理字符串的不同方式,包括UTF-8、UTF-16等编码方式,以及字符串长度和索引方式的差异。最后,文章还提到了文本文件开头的字节顺序标记(BOM)。
由于没有评论内容,此处省略评论分析。
- 原文: [Traps to Developers](https://qouteall.fun/qouteall-blog/2025/Traps%20to%20Developers)
- Hacker News: [https://news.ycombinator.com/item?id=44922020](https://news.ycombinator.com/item?id=44922020)
- 作者: qouteall
- 评分: 71
- 评论数: 20
- 发布时间: 2025-08-16 18:34:35
---
## Git 如何应对大型文件:从 LFS 到原生支持的未来
这篇文章探讨了 Git 如何处理大型文件的演变,从最初的 Git LFS 到未来的原生支持方案,旨在解决大型文件给 Git 仓库带来的存储和性能问题。文章重点介绍了使用 Git partial clone 替代 Git LFS 的方法,并展望了 Git large object promisors 的未来。
文章首先指出,大型文件是 Git 的一个挑战,会增加存储负担,降低 `git clone` 的速度,并对 Git 造成影响。为了解决这个问题,GitHub 在 2015 年推出了 Git LFS,但它也带来了一些新的问题,比如增加了复杂性和存储成本。不过,Git 项目本身也在不断改进对大型文件的支持。文章介绍了一种名为 "partial clone" 的方法,它允许只下载需要的文件,避免下载整个仓库的历史记录,从而加快克隆速度并减少磁盘使用量。使用 `git clone --filter='blobs:size=100k' <repo>` 命令可以实现只下载小于 100KB 的文件。文章还对比了使用 partial clone 和不使用 partial clone 的克隆速度和仓库大小,展示了 partial clone 的优势。
文章还讨论了 Git LFS 的一些缺点,例如供应商锁定、成本高昂、难以撤销以及需要额外配置等。为了解决这些问题,Git 正在开发 "large object promisors" 功能,它允许将大型文件存储在单独的远程仓库中,从而减轻 Git 主仓库的负担。虽然 large object promisors 还在开发中,但它代表了 Git 处理大型文件的一个有希望的未来。
评论区中,有用户表示自己一直在使用 Git LFS 来管理和备份所有文件,包括媒体文件,感觉很方便,但也期待 Git 能够原生支持大型文件,这样就可以直接从一个设备推送大型对象到另一个设备,无需额外的 LFS 依赖。
- 原文: [The future of large files in Git is Git](https://tylercipriani.com/blog/2025/08/15/git-lfs/)
- Hacker News: [https://news.ycombinator.com/item?id=44916783](https://news.ycombinator.com/item?id=44916783)
- 作者: thcipriani
- 评分: 442
- 评论数: 211
- 发布时间: 2025-08-16 04:07:06
---
## AI 的独特之处与未来展望
本文探讨了人工智能(AI)与以往技术革命的不同之处,以及它可能对经济和社会带来的潜在影响。作者认为,AI 的发展速度和能力已经超越了人们的预期,如果 AI 持续发展并取代大量劳动力,现有的经济体系将面临严峻的考验。
文章指出,AI 系统在复制人类技能方面的能力令人印象深刻,即使不完美,几年前这些系统还只是科幻小说。由于大型语言模型(LLM)和深度模型尚未被完全理解,因此很难预测未来会发生什么。作者认为,如果 AI 能够避免停滞,并变得更加有用和独立于人类,那么这场革命将与过去的技术革命截然不同。然而,经济市场似乎仍然按照以往的模式来反应,认为 AI 也会创造更多的商业机会,但这并非唯一的结果。如果 AI 能够取代大量的工人,经济体系将面临巨大的挑战。此外,公司可能不愿意为内部 AI 可以处理或从头构建的服务付费。作者还提到,不能想象一个只有少数大型公司提供智能的系统,要么 AI 最终会成为一种商品,要么政府会采取行动。
文章最后总结道,未来可能会降低经济繁荣,并推动人类转向不同的经济体系。市场不愿接受这一点,即使经济预测不明确,战争正在破坏世界,AI 的时间难以预测,但股票仍在上涨。然而,股票在人类历史的广阔视角中是微不足道的,甚至那些持续时间比我们当前机构更长的系统最终也被社会和人类知识的根本变化所消灭。AI 可能就是这样一种变化。
评论区对 AI 的未来发展和影响提出了不同的观点:
* **AI 的局限性:** 有评论认为,即使 AI 在某些方面取代了人类,但“非 AI 驱动”可能会成为一种竞争优势。例如,如果“AI 制作”成为一个负面标签,那么 AI 生成的内容可能无法真正取代人类创作者。
* **就业机会:** 也有评论指出,以往的技术浪潮虽然取代了一些工作,但也创造了新的工作机会。然而,AI 可能会比人类更容易被训练来适应新的工作,这使得被取代的人类如何转型成为一个问题。
* **AI 的影响被夸大:** 一些评论者对 AI 的影响持怀疑态度,认为社交网络、移动计算和云计算对社会和日常生活的影响更大。他们认为,将 AI 视为“不同”仍然缺乏证据。
* **市场反应:** 有评论批评作者对市场的看法,认为市场只是表达集体意见,并不关心未来。
* **AI 的停滞:** 一些评论者认为 AI 可能会停滞不前,因为他们没有看到 AI 能力的持续提升。他们还担心,为了发布新模型,可能会出现为了迎合基准而进行游戏的行为。
* **AI 的威胁:** 另一些评论者则认为 AI 对人类的独特效用构成了生存威胁,因为如果人类不再需要维持生产力,他们可能会失去对专制政府的筹码。
* **AI 超越人类:** 还有评论者表示难以理解如果 AI 在所有领域都超越人类,市场应该如何反应。
- 原文: [AI is different](https://www.antirez.com/news/155)
- Hacker News: [https://news.ycombinator.com/item?id=44892283](https://news.ycombinator.com/item?id=44892283)
- 作者: grep_it
- 评分: 359
- 评论数: 551
- 发布时间: 2025-08-14 02:49:42
---
## Ada 实现 BZip2 编码器 Part 2:深入数据压缩流程
本文深入探讨了使用 Ada 语言编写 BZip2 编码器的实现细节,重点分析了 BZip2 压缩算法的核心步骤。文章旨在帮助读者理解 BZip2 格式的原理,并展示如何通过 Ada 语言实现高效的压缩。
文章详细介绍了 BZip2 压缩的主要流程,包括离线处理的 Run Length Encoding (RLE)、Burrows-Wheeler Transform (BWT)、Move To Front (MTF) 以及熵编码 (Huffman)。首先,文章解释了两种 RLE 变体,第一种 RLE 在输入数据前端使用,通过重复三次相同符号来触发 run。接下来,文章阐述了 BWT 的原理及其在数据压缩中的应用,BWT 的关键在于它可以将数据转换成包含长串重复符号的形式。随后,文章介绍了 MTF 算法,该算法通过重新排序符号,使得频繁出现的符号具有较低的索引,从而提高压缩效率。最后,文章提到了使用 Huffman 树进行熵编码,并指出 BZip2 格式的灵活性在于可以为每 50 个符号的字符串选择不同的 Huffman 树。文章还提供了 Ada BZip2 编码器的 Alire Crate 链接和源代码地址,方便读者学习和使用。
由于文章没有评论区,因此无法进行评论分析。
- 原文: [Writing a competitive BZip2 encoder in Ada from scratch in a few days – part 2](https://gautiersblog.blogspot.com/2025/07/writing-bzip2-encoder-in-ada-from.html)
- Hacker News: [https://news.ycombinator.com/item?id=44889163](https://news.ycombinator.com/item?id=44889163)
- 作者: ajdude
- 评分: 8
- 评论数: 0
- 发布时间: 2025-08-13 22:47:01
---
## Edka:在Hetzner上简化 Kubernetes 集群管理并降低成本
Edka 旨在帮助用户在自己的 Hetzner 账户上轻松部署和管理 Kubernetes 集群,目标是简化 Kubernetes 的复杂性,并降低云成本。该平台声称可以将云成本降低高达 70%,同时保持对基础设施的完全控制。
Edka 的核心优势在于它提供了一个轻量级的控制平面,用于简化 Kubernetes 集群的管理、升级、扩展和备份。用户可以直接以 Hetzner 的定价付费,通常比 AWS 或 GCP 便宜很多。Edka 提供简单的订阅模式,每个集群收取统一费用,并且始终免费提供一个集群。用户可以随时一键分离 Edka,工作负载将继续运行,所有资源仍然归用户所有。Edka 支持 GitOps 工作流、一键式插件和内置监控,从而实现 PaaS 的简单性,而无需牺牲灵活性。
一些用户案例表明,使用 Edka 可以显著降低成本。例如,Aicole 通过迁移到 Edka,实现了 64% 的运营成本降低。TROI Ticketing Solution 也通过 Edka 实现了 72% 的成本节约。
评论区对 Edka 提出了各种观点和疑问。有人将其与 kops 等现有工具进行比较,询问 Edka 的独特之处。也有人指出 Hetzner 云服务可能存在一些不稳定性,建议考虑使用 Hetzner 的裸金属服务器。还有人提到了使用 Terraform 和 Kube-Hetzner 在 Hetzner 上部署 k3s 的方案。一些评论者对 Edka 的公司信息透明度表示担忧,认为缺乏公司地址等信息。另一些人则希望看到在 Hetzner 的高性能裸金属实例上自动化 Kubernetes 的指南。还有人提到了 Raku 语言对 Hetzner API 的支持,以及在 Hetzner 上从小规模到中等规模的 Kubernetes 部署所面临的存储挑战。总体而言,评论区既有对 Edka 的兴趣,也有对其稳定性和透明度的担忧。
- 原文: [Show HN: Edka – Kubernetes clusters on your own Hetzner account](https://edka.io)
- Hacker News: [https://news.ycombinator.com/item?id=44915164](https://news.ycombinator.com/item?id=44915164)
- 作者: camil
- 评分: 378
- 评论数: 112
- 发布时间: 2025-08-16 01:34:54
---
## 随机性如何改进算法 (2023)
本文探讨了随机性在计算机科学中的重要作用,以及它如何帮助解决传统算法难以解决的问题。文章解释了随机算法在诸如素性测试、图论等领域的应用,并探讨了随机性为何能提高算法效率的深层原因。
文章首先介绍了随机性在计算机科学早期就已发挥作用,例如在模拟核过程、天体物理学、气候科学和经济学等领域。随后,文章聚焦于随机性在解决确定性问题上的应用,以素性测试为例,阐述了如何利用费马小定理和随机数来快速判断一个大数是否为素数。与传统的暴力破解法相比,随机算法在效率上具有显著优势。
文章还提到了计算机科学家对随机性本质的思考,以及Nisan和Wigderson在1994年提出的重要理论:要么所有能被随机算法高效解决的问题也能被确定性算法高效解决,要么许多公认的难题实际上很简单。尽管如此,随机算法由于其易于实现和高效性,至今仍被广泛应用。即使在找到确定性算法后,通常也是先从随机版本开始,然后再进行“去随机化”。
文章还介绍了随机性在图论中的最新突破,即一种用于寻找图中最短路径的快速算法,该算法通过随机删除某些线段来简化图,从而打破了自引用循环。最后,文章总结了随机性在密码学、博弈论和机器学习等领域的广泛应用,并强调了它在计算机科学中不可或缺的地位。
评论区中,用户 @EdwardCoffin 提出文章中存在未提及的内容,但没有具体说明是什么。
- 原文: [How randomness improves algorithms (2023)](https://www.quantamagazine.org/how-randomness-improves-algorithms-20230403/)
- Hacker News: [https://news.ycombinator.com/item?id=44898560](https://news.ycombinator.com/item?id=44898560)
- 作者: kehiy
- 评分: 22
- 评论数: 5
- 发布时间: 2025-08-14 17:43:53
---
## 美国山毛榉树面临致命疾病的威胁
本文主要探讨了山毛榉叶病(Beech Leaf Disease)的传播途径、对美国山毛榉树造成的威胁以及减少症状的方法。这种疾病已经蔓延到美国15个州和加拿大安大略省,对当地的生态环境和景观造成了严重影响。
文章指出,山毛榉树在美国东部地区的落叶林中扮演着重要的生态角色,为多种野生动物提供食物和栖息地。无论是本地的山毛榉还是欧洲山毛榉,都是景观中的重要组成部分。然而,山毛榉叶病的出现,使得这些树木的未来面临着巨大的不确定性。该病会导致树叶变色、坏死,最终可能导致树木死亡。文章还提到,园丁们经常使用铜叶欧洲山毛榉来美化景观,但这种疾病也威胁到了观赏性山毛榉树。目前,科学家们正在努力研究这种疾病的传播机制,并寻找有效的治疗方法,以保护这些重要的树木资源。
评论区主要表达了对这种疾病的担忧以及对其他树木病害的关注。有人提到了欧洲山毛榉与黑喇叭菌之间的共生关系,这种菌类通常在古老山毛榉树附近生长。另一个人分享了自家林地中的白蜡树因受到白蜡窄吉丁虫侵害而全部死亡的经历,表达了对树木病害快速蔓延的无奈。还有评论者简单地表达了对又一种树木疾病出现的震惊和担忧。这些评论反映了人们对环境保护和生物多样性的关注,以及对树木健康问题的重视。
- 原文: [A Race to Save a Signature American Tree from a Deadly Disease](https://www.nytimes.com/2025/08/13/realestate/beech-leaf-disease.html)
- Hacker News: [https://news.ycombinator.com/item?id=44923404](https://news.ycombinator.com/item?id=44923404)
- 作者: jgwil2
- 评分: 11
- 评论数: 3
- 发布时间: 2025-08-16 21:48:32
---
## ADHD 药物治疗与不良事件风险的关系研究
本文主要探讨了使用药物治疗多动症(ADHD)与自杀行为、药物滥用、意外伤害、交通事故和犯罪行为等风险之间的关系。研究发现,药物治疗与多种不良事件的发生率降低有关。
这项研究通过模拟目标试验设计,利用瑞典国家登记数据,对 2007 年至 2020 年间 6 至 64 岁新诊断为 ADHD 的人群进行了分析。研究比较了在诊断后三个月内开始药物治疗和未开始药物治疗的两组人群,并追踪了两年内首次和复发的不良事件。结果显示,药物治疗与首次发生的自杀行为、药物滥用、交通事故和犯罪行为的发生率显著降低相关。
具体来说,药物治疗组的自杀行为发生率为 14.5/1000 人年,非治疗组为 16.9/1000 人年(调整后风险比为 0.83);药物滥用发生率分别为 58.7/1000 人年和 69.1/1000 人年(风险比 0.85);交通事故发生率分别为 24.0/1000 人年和 27.5/1000 人年(风险比 0.88);犯罪行为发生率分别为 65.1/1000 人年和 76.1/1000 人年(风险比 0.87)。 然而,对于意外伤害,两组之间的差异不具有统计学意义(风险比 0.98)。
此外,研究还发现,对于既往发生过这些不良事件的个体,药物治疗带来的风险降低更为显著。在复发事件方面,药物治疗与所有五种不良事件的发生率均显著降低相关。最常用的起始药物是哌甲酯 (methylphenidate),占比 88.4%。
总的来说,这项研究表明,ADHD 药物治疗在降低自杀行为、药物滥用、交通事故和犯罪行为等风险方面具有积极作用,尤其是在预防复发事件方面。
- 原文: [ADHD drug treatment and risk of negative events and outcomes](https://www.bmj.com/content/390/bmj-2024-083658)
- Hacker News: [https://news.ycombinator.com/item?id=44912861](https://news.ycombinator.com/item?id=44912861)
- 作者: bookofjoe
- 评分: 281
- 评论数: 358
- 发布时间: 2025-08-15 22:27:44
---
## 突破人际关系的“电围栏”:主动连接,打破无形的障碍
这篇文章探讨了我们生活中那些阻碍人际连接的无形“电围栏”,这些围栏源于过去的负面经历和不合理的社会规则,让我们不敢主动与他人建立联系。文章鼓励我们勇敢地打破这些心理障碍,主动伸出友谊之手。
文章首先用一个生动的例子引入主题:一条被废弃的电围栏困住的狗。即使电围栏已经失效,狗仍然因为记忆中的不适而不敢越雷池一步。作者由此引申到人际关系中,指出我们常常被一些无形的“电围栏”所束缚,例如害怕主动联系别人会被认为“需求感太强”,或者认为别人没有主动联系自己就是不在乎自己。
文章强调,这些“电围栏”实际上早已失效,它们只是我们童年时期的拒绝、某些社会规则或者害怕付出更多而产生的恐惧的残余。文章鼓励我们勇敢地跨越这些障碍,只需“20秒的尴尬勇气”,主动发送一条问候短信,或者拨打一个电话。
文章进一步指出,主动联系的人并非弱者,而是发现了围栏已经失效,并自由奔跑的人。真正的突破不在于追求成功或自我提升,而在于克服那些不敢发送的信息、不敢拨打的电话和难以说出口的“我想你”。
## 评论区观点:打破围栏,拥抱连接
评论区中,许多读者分享了他们打破“电围栏”的经验和感悟:
* **主动联系,无需顾虑:** 有评论者分享说,他们会毫不犹豫地联系多年未见的老同学,就像昨天才一起吃过午饭一样。他们认为,正是那种小心翼翼、试探性的态度反而会让人感到不舒服。
* **克服童年阴影:** 也有评论者坦言,从小生活在“电围栏”中,长大后很难学会人际交往的规则,需要依靠别人来开启或维持对话。
* **创始人突破:** 一位创始人表示,过去很难主动寻求帮助和建议,后来逐渐意识到,主动寻求帮助并不会让别人看轻自己。
* **不要计较谁先联系:** 有评论者认为,不应该计较谁先联系谁,主动联系他人并不丢人。他们分享了与40年未见的中学同学重聚的经历,以及与25年前的同事保持联系的故事。
* **远离“白痴”:** 也有评论者从另一个角度出发,认为应该对那些会直接影响自己生活的人保持警惕,必要时竖起“电围栏”。
* **正视痛苦:** 有评论者指出,很多“电围栏”都与痛苦的回忆相关联,我们需要正视这些痛苦,才能打破思维的束缚。
总的来说,评论区观点多样,但都指向一个共同的主题:勇敢地打破人际关系的“电围栏”,主动连接,拥抱更广阔的世界。
- 原文: [The electric fence stopped working years ago](https://soonly.com/electric-fences/)
- Hacker News: [https://news.ycombinator.com/item?id=44913663](https://news.ycombinator.com/item?id=44913663)
- 作者: stroz
- 评分: 275
- 评论数: 113
- 发布时间: 2025-08-15 23:34:43
---
## OpenBSD 比 Linux 快 10 倍?一个有趣的性能对比
本文作者分享了一个有趣的基准测试,发现 OpenBSD 在特定场景下比 Linux 快 10 倍。这个测试主要涉及创建线程和 socket,作者原本是为了测试 Linux,结果发现 OpenBSD 速度太快,以至于需要修改测试程序才能进行测量。测试代码创建了一个额外的线程,然后两个线程都创建 256 个 socket。在 Linux 上,测试耗时约为 0.017 到 0.026 秒,而在 OpenBSD 上,耗时仅为 0.002 到 0.006 秒。作者认为这很有趣,因为通常看到的基准测试都是 OpenBSD 慢 10 倍。文章暗示问题可能与 RCU 相关,但并未给出明确解释,鼓励读者思考。
评论区对这个测试结果和 OpenBSD 的性能展开了讨论。有人认为这个测试过于片面,不能代表整体性能,并建议增加负载而不是修改测试本身。也有人指出,OpenBSD 的优势在于轻量级、简约和安全,而不是速度。还有人提到,Linux 通常在优化方面做得更好,因此通常更快。有人猜测测试结果可能与文件描述符分配开销有关。另外,有人分享了使用 `__rdtsc()` 指令进行更精确的微基准测试的建议。总的来说,评论区对这个测试的有效性和 OpenBSD 的性能表现出了不同的看法,认为需要更全面的测试才能得出结论。
- 原文: [OpenBSD is so fast, I had to modify the program slightly to measure itself](https://flak.tedunangst.com/post/is-OpenBSD-10x-faster-than-Linux)
- Hacker News: [https://news.ycombinator.com/item?id=44915824](https://news.ycombinator.com/item?id=44915824)
- 作者: Bogdanp
- 评分: 190
- 评论数: 145
- 发布时间: 2025-08-16 02:25:02
---
## 初期增长策略:做那些无法规模化的事情
本文主要探讨了初创公司早期阶段如何通过“无法规模化”的方式来获取和留住用户,强调了创始人需要主动出击,亲力亲为,以非常规手段赢得早期用户的认可。
文章指出,初创公司起步阶段,不能指望产品一上线就自动增长,创始人需要主动去招募用户。Stripe 就是一个很好的例子,即使他们解决的是一个迫切的需求,他们仍然积极地获取早期用户,甚至亲自帮用户安装配置。创始人往往因为害羞、懒惰或者觉得初期用户数量太少而忽略这种方式,但实际上,手动招募用户是初期增长的关键。文章用 Airbnb 的例子进一步说明,早期创始人需要采取非常规手段,比如亲自去纽约招募用户、帮助用户优化listing,这种程度的付出才能让公司度过最初的脆弱期。
文章还强调,不仅要获取用户,更要让他们满意。Wufoo 会给每个新用户手写感谢信,初创公司应该竭尽所能让早期用户觉得选择你是他们做过的最好的决定之一。工程师出身的创始人往往不重视客户服务,担心无法规模化,但早期阶段更应该关注如何让现有用户超级满意。作者鼓励创始人从解决自身问题出发,或者通过初步的试探性发布,找到最热情的用户群体,然后有针对性地招募更多类似的用户。
总而言之,文章的核心观点是,初创公司早期应该专注于做那些无法规模化的事情,比如手动招募用户、提供极致的客户服务,以此来赢得早期用户的信任和支持,为未来的规模化增长打下基础。
- 原文: [Do Things That Don't Scale (2013)](https://paulgraham.com/ds.html)
- Hacker News: [https://news.ycombinator.com/item?id=44913359](https://news.ycombinator.com/item?id=44913359)
- 作者: bschne
- 评分: 335
- 评论数: 103
- 发布时间: 2025-08-15 23:07:04
---
## 使用 CoreOS 和 Dokploy 搭建 DIY Serverless 平台
本文介绍了如何使用 CoreOS 和 Dokploy 搭建一个 DIY Serverless 平台,旨在提供一种介于 PaaS 和 EC2 之间的解决方案。Dokploy 通过 HTTPS 访问,简化了部署流程,让开发者能够更专注于应用本身。
文章提到 Dokploy 可以避免 Vercel 和 Netlify 等平台的高昂定价,并能快速部署 Nextjs 网站、Uptime Kuma 和 Umami 等应用。作者建议注意磁盘空间,并启用 Docker 自动清理功能。Dokploy 的目标是提供类似 Heroku 的开发体验,让开发者能够轻松部署和管理应用。它通过 Compose 文件进行管理,简化了容器的更新和重启。
评论区对 Dokploy 展开了热烈的讨论。有人指出 Dokploy 的许可协议可能存在问题,并提供了相关链接。另一些人则对 Dokploy 的安全性提出了质疑,认为仅仅依赖 HTTPS 并不能解决所有安全问题。还有人分享了替代方案,例如 Coolify,并指出 Dokploy 在某些功能上存在不足,例如缺少强制拉取最新镜像的按钮。此外,还有用户提到了 Docker Swarm 和 Portainer 等工具,认为它们是更好的选择。一些用户关心 Dokploy 是否支持 arm64 架构。当然,也有用户表达了对 Dokploy 的喜爱,认为它稳定可靠,带来了类似 Heroku 的体验。总体而言,评论区呈现了对 Dokploy 的各种观点,包括优点、缺点以及替代方案。
- 原文: [Dokploy is the sweet spot between PaaS and EC2](https://nikodunk.com/2025-06-10-diy-serverless-(coreos-+-dokploy))
- Hacker News: [https://news.ycombinator.com/item?id=44884077](https://news.ycombinator.com/item?id=44884077)
- 作者: nikodunk
- 评分: 42
- 评论数: 26
- 发布时间: 2025-08-13 10:24:18
---
## Launch HN: Embedder – 用于嵌入式软件的 Claude 代码
Embedder 是一个专门为嵌入式软件设计的 Claude 代码工具,旨在解决通用 LLM 在嵌入式开发中表现不佳的问题。它通过提供特定领域的模型,帮助开发者更高效地完成嵌入式相关的编码任务。
Embedder 的主要功能包括:根据用户提供的 URL 或搜索查询,快速检索和理解相关信息。它特别针对嵌入式开发的痛点,例如处理特定硬件和寄存器,以及理解不同公司对寄存器的不同描述方式。项目通过利用结构化数据(如 SFD 文件,一种描述寄存器及其位域的 XML 文件)来提高 LLM 的准确性,减少幻觉。开发者可以通过上传数据手册来消除幻觉,从而获得更可靠的代码生成结果。
该工具还考虑了在无头机器或远程机器上进行开发的场景,并试图提供无需浏览器的身份验证方式。Embedder 的目标是成为一个 MCP(插件)服务,可以被 Claude Code 等通用代理利用,从而为嵌入式编程提供更好的支持。
评论区对 Embedder 的反响褒贬不一,但总体上对解决嵌入式领域的特定问题表示欢迎。
* **领域特定模型的必要性:** 有评论指出,通用 LLM 在处理嵌入式开发任务时,由于缺乏足够的训练数据和领域知识,效果往往不佳。Embedder 这样的领域特定模型能够更好地满足嵌入式开发的需求。
* **数据隐私和 IP 泄露的担忧:** 有评论者担心,将原理图、源代码等敏感信息提供给第三方或 AI 模型提供商,可能存在 IP 泄露的风险。
* **数据手册的挑战:** 评论提到,不同公司对寄存器的描述方式差异很大,这给 LLM 带来了挑战。建议使用 SFD 文件等结构化数据来提高准确性。
* **消除幻觉的实现方式:** 有评论询问,如何通过上传数据手册完全消除幻觉。
* **对嵌入式领域 AI 的期待:** 评论普遍认为,目前的 AI 在嵌入式领域的表现还有待提高,希望 Embedder 能够带来突破。
- 原文: [Launch HN: Embedder (YC S25) – Claude code for embedded software](https://news.ycombinator.com/item?id=44915206)
- Hacker News: [https://news.ycombinator.com/item?id=44915206](https://news.ycombinator.com/item?id=44915206)
- 作者: bobwei1
- 评分: 102
- 评论数: 44
- 发布时间: 2025-08-16 01:38:05
---
## Recto:一种真正的二维编程语言
本文介绍了 Recto,一种以嵌套矩形作为核心语法的二维编程语言,旨在探索空间布局作为核心语法的编程方式。Recto 通过空间直接编码结构和递归,突破了传统线性文本的限制,为代码编写、解析和推理提供了新的思路。
文章首先提出了一个问题:语言是否必须是一维的?回顾了人类历史上使用空间表示进行思考的例子,例如早期的星图和中世纪图表。作者认为,现代语言的关键在于可理解性和可生成性,而没有固有的线性要求。Recto 的核心思想是利用二维空间中的矩形(rect)作为基本的语法和结构单元。通过矩形的嵌套和排列,可以表达程序的结构和递归关系。文章还提到了其他非一维语言的例子,如手语、Befunge、Fish、Piet 和 Heptapod B,以及可视化编程环境 Pure Data、Max/MSP 和 LabVIEW。但作者认为,这些语言或环境在结构和递归方面存在局限性,而 Recto 旨在弥补这些不足。Recto 的目标是设计一种既能支持结构和递归,又能充分利用二维空间特性的编程语言。
由于没有评论内容,这里跳过评论分析部分。
- 原文: [Recto – A Truly 2D Language](https://masatohagiwara.net/recto.html)
- Hacker News: [https://news.ycombinator.com/item?id=44877201](https://news.ycombinator.com/item?id=44877201)
- 作者: mhagiwara
- 评分: 130
- 评论数: 58
- 发布时间: 2025-08-12 23:06:08
---
## 深海淡化技术:从深海获取淡水资源
本文探讨了利用深海压力进行反渗透淡化的创新技术,旨在解决全球日益严峻的淡水短缺问题。这项技术通过将反渗透装置置于水下500米深处,利用巨大的水压自然地分离盐分和水分,从而大幅降低能源消耗和成本。
文章指出,与传统的陆基淡化相比,深海淡化具有诸多优势。深海环境稳定,微生物少,水质变化小,减少了预处理的需求。此外,设备置于水下也避免了陆地设施的“邻避效应”。然而,深海淡化也面临着成本高昂、对海洋生态系统潜在影响等挑战。尽管如此,一些公司已经在积极推进该技术的商业化,并在挪威、红海等地开展试点项目。文章最后强调,深海淡化要实现大规模应用,还需要政府、企业和金融机构的共同努力,以及技术的不断进步。
评论区中,用户 @amluto 认为,深海淡化的主要优势在于简化了海平面淡化过程中的复杂环节。传统的淡化工厂需要复杂的压力控制系统,而深海的自然压力可以大大降低这部分成本和复杂性。
- 原文: [Deep-Sea Desalination Pulls Fresh Water from the Depths](https://www.scientificamerican.com/article/deep-sea-desalination-pulls-drinking-water-from-the-depths/)
- Hacker News: [https://news.ycombinator.com/item?id=44883256](https://news.ycombinator.com/item?id=44883256)
- 作者: noleary
- 评分: 77
- 评论数: 43
- 发布时间: 2025-08-13 08:08:33
---
## TextKit 2:承诺之地?
本文深入探讨了 TextKit 2 的架构、实现以及实际应用中遇到的问题,作者分享了使用 TextKit 2 构建 STTextView 的经验,并指出了其存在的不足之处。
TextKit 2 旨在替代老旧的 TextKit 1,提供更简单、快速、更好的文本布局引擎。然而,作者在使用 TextKit 2 的四年经验中发现,它并非万能药。TextKit 2 的架构设计合理,组件抽象程度高,但在具体实现上却存在一些问题。例如,`NSTextContentManager` 理论上提供了抽象接口,但实际上只能使用 `NSTextContentStorage`,这限制了其灵活性。此外,`NSTextElement` 也必须继承自 `NSTextParagraph`,否则会导致运行时错误。作者认为,TextKit 2 的实现过于依赖 `UITextView`,这限制了其潜力。
文章还提到了 TextKit 2 中存在的 Bug,作者报告了许多 Bug,但有些已修复,有些仍未解决,甚至出现版本回归的情况。其中,最令人恼火的 Bug 之一是与“额外行片段”及其布局相关的问题。另一个主要问题是 Viewport 的管理。Viewport 通过仅关注可见区域来优化文本布局引擎的性能,但同时也引入了新的挑战。由于 Viewport 只对可见区域进行布局,文档的总高度是估计值,这导致 `NSTextLayoutManager.usageBoundsForTextContainer` 的值不稳定,从而引起滚动条的“跳动”。
总而言之,TextKit 2 在架构上有所改进,但在实现和稳定性方面仍有不足,尤其是在 Viewport 管理方面。虽然 TextKit 2 旨在提高性能,但其不稳定性可能会给用户带来不佳的体验。
- 原文: [TextKit 2 – The Promised Land](https://blog.krzyzanowskim.com/2025/08/14/textkit-2-the-promised-land/)
- Hacker News: [https://news.ycombinator.com/item?id=44917450](https://news.ycombinator.com/item?id=44917450)
- 作者: nickmain
- 评分: 91
- 评论数: 24
- 发布时间: 2025-08-16 05:26:53
---
## VP.NET 发布 SGX 后端源代码:隐私验证的新时代
VP.NET 发布了其 SGX 后端源代码,旨在让用户能够验证其隐私承诺,而非仅仅依赖信任。他们强调,与其相信 VPN 公司的“不记录日志”声明,不如通过实际测试来验证这一说法。
VP.NET 运行在 Intel SGX enclave 中,这是一个硬件支持的容器,能够隔离密钥和数据,防止服务器运营商访问。用户可以构建发布的代码,获取 enclave 的加密指纹 (mrenclave),然后向 VP.NET 服务器请求其报告的指纹,并进行比较。如果两者匹配,则表明服务器正在运行经过用户检查的完全相同的代码。这种方式避免了对 VPN 供应商的完全信任。
即使是定期的审计也只能反映特定时间点的系统状态,无法保证服务在更新后没有被修改。而 VP.NET 允许用户随时自行审计。代码仓库包含了 enclave 代码、流量混淆层和服务器逻辑,隐私保护措施都体现在可读的代码中,例如密钥仅存在于内存中并被显式清零,生产版本中不记录 IP 或会话标识符,以及使用随机路由、填充和定时批处理等技术来防御流量关联。
VP.NET 使用 SAFE 许可证发布代码,允许研究人员和审计人员检查代码,同时防止商业上的滥用。公司鼓励用户报告发现的安全问题,并提供支持邮箱解答疑问。VP.NET 旨在构建一种基于架构保证而非口头承诺的隐私模型。
评论区对 VP.NET 的这种做法褒贬不一。
一些评论者指出,即使使用 SGX,仍然需要信任 SGX 本身没有被攻破。此外,进出 SGX 的流量仍然可能被记录,例如 ISP 可以记录流量。对于 VP.NET 宣称的定时混淆技术,评论者认为 10 毫秒的间隔并不能有效地防止流量关联攻击。尽管如此,使用 SGX 和定时混淆仍然比不使用要好。
另一些评论者对 VP.NET 的技术基础表示赞赏,认为服务应该能够自证其运行的代码与用户检查的代码一致。但同时,他们也对创始人的背景表示担忧,认为这可能会影响用户对该服务的信任。
还有评论者质疑如何验证服务器报告的指纹是实际运行代码的指纹,而不是公开可用的指纹。他们认为,即使代码本身是可验证的,普通用户也很难判断 SGX 是否存在可能导致安全问题的漏洞。
一些用户对 VP.NET 的定价策略和支付方式提出了批评,认为 1 个月的订阅费用过高,而 2 年的订阅期限又太长。此外,他们认为 VPN 服务应该支持 Monero 等加密货币支付,以提供更好的隐私保护。
最后,有评论者指出该公司的首席隐私官是 Freenode 事件中的争议人物,这可能会影响用户对该服务的信任。
- 原文: [A privacy VPN you can verify](https://vp.net/l/en-US/blog/Don%27t-Trust-Verify)
- Hacker News: [https://news.ycombinator.com/item?id=44918060](https://news.ycombinator.com/item?id=44918060)
- 作者: MagicalTux
- 评分: 121
- 评论数: 104
- 发布时间: 2025-08-16 06:34:17
---
## 模型智能不再是自动化的瓶颈:关注意图和上下文工程
文章指出,当前AI模型在复杂数学问题上表现出色,但在企业日常任务中却表现不佳,这并非因为模型智能不足,而是因为人类在定义任务意图和构建上下文方面存在瓶颈。
文章深入探讨了任务解决所需的三个关键要素:问题规范、上下文和求解器。问题规范旨在精确传达任务的潜在意图,但常常存在“规范差距”,导致模型需要依赖全局先验知识和本地上下文进行推断。在数学等领域,问题规范通常完整,模型只需提升智能即可;但在现实世界中,任务规范模糊,上下文分散,反馈缓慢,因此提升模型智能的边际效益递减。文章将领域分为“简单目标”(如数学、编程)和“困难目标”(如产品战略、运营),指出当前AI的实际应用主要集中在“困难目标”,因此需要着重解决意图和上下文的问题。
文章进一步设想了一个由90%的AI代理和10%的人类组成的公司,并指出当前的技术水平难以实现这一目标,因为规范和本地上下文管道的工程化和维护需要大量的人力投入。为了实现高度自动化,文章提出了近期和远期的解决方案。近期,可以通过使上下文更易于访问、构建智能的中间层记忆系统以及增加上下文窗口长度来提高代理的自主性。长期来看,可以通过将本地上下文从提示转移到模型权重中来减少人为瓶颈,但这需要公司有效地捕获和构建内部上下文、廉价且安全地训练/微调定制模型、模型持续学习以及模型“脑外科手术”等方面的突破。总而言之,文章强调了在追求AI自动化的道路上,不应只关注模型智能的提升,更应重视意图的明确和上下文的构建。
- 原文: [Model intelligence is no longer the constraint for automation](https://latentintent.substack.com/p/model-intelligence-is-no-longer-the)
- Hacker News: [https://news.ycombinator.com/item?id=44913081](https://news.ycombinator.com/item?id=44913081)
- 作者: drivian
- 评分: 77
- 评论数: 96
- 发布时间: 2025-08-15 22:44:49
---
## G++ 编译器 12 年前的 Bug 如何导致 Solidity 崩溃
本文深入探讨了一个隐藏在编译器深处的 bug,它导致 Solidity 编译器在特定配置下崩溃。这个 bug 并非 Solidity 本身的问题,而是由 G++ 编译器中一个存在了 12 年之久的缺陷、C++20 的新特性以及 Boost 库的特定版本共同作用造成的。
文章详细剖析了问题的根源。首先,G++ 在重载解析方面存在一个 bug,它会错误地选择非成员函数而非成员函数,尤其是在涉及模板和类型转换时。其次,C++20 引入了对称比较特性,允许编译器隐式地定义反向参数的 `operator==`。最后,旧版本的 Boost 库中的 `rational` 类同时定义了成员函数和非成员函数的 `operator==`。当这三个因素结合在一起时,就会导致无限递归,最终导致栈溢出和编译器崩溃。具体来说,在 C++20 环境下,G++ 错误地选择了 Boost 库中的非成员 `operator==`,而 C++20 的对称比较特性又将 `a == b` 重写为 `b == a`,从而再次调用同一个函数,形成无限循环。
文章还提供了最小化的代码示例,可以重现这个 bug。这些示例清晰地展示了 G++、Clang 在处理重载解析时的差异,以及 C++20 对比较操作的影响。文章指出,这个问题已经在 Boost 1.75 版本中得到修复,但 Solidity 编译器默认使用的 Ubuntu 22.04 系统中的 G++ 11.4 和 Boost 1.74 仍然存在这个问题。因此,升级 Boost 库或者避免使用 C++20 可能是解决这个问题的方案。
- 原文: [Compiler Bug Causes Compiler Bug: How a 12-Year-Old G++ Bug Took Down Solidity](https://osec.io/blog/2025-08-11-compiler-bug-causes-compiler-bug/)
- Hacker News: [https://news.ycombinator.com/item?id=44872584](https://news.ycombinator.com/item?id=44872584)
- 作者: luu
- 评分: 153
- 评论数: 74
- 发布时间: 2025-08-12 13:04:21
---
## Arm 将神经加速器添加到 GPU,提升移动图形性能
Arm 发布了新的神经技术,旨在通过在 GPU 中加入专用神经加速器,为移动设备带来 PC 级别的 AI 驱动图形体验。这项技术将从 2026 年开始应用于 Arm GPU,并为未来的设备端 AI 创新奠定基础。
Arm 神经技术的核心是 Neural Super Sampling (NSS),这是一种 AI 驱动的图形放大技术,能够在每帧 4 毫秒的成本下,潜在地实现 2 倍的分辨率提升。这意味着开发者可以在不牺牲性能或电池寿命的情况下,提供更清晰、更细腻的视觉效果。
为了方便开发者尽早开始构建,Arm 还推出了业界首个神经图形开发工具包,其中包含 Unreal Engine 插件、模拟器以及 GitHub 和 Hugging Face 上的开放模型。这个工具包允许开发者将 AI 驱动的渲染集成到现有的工作流程中,从而在硬件可用之前就开始试验和优化。
Arm 神经技术不仅仅局限于游戏,它还可以应用于神经摄像头等工作负载,为开发者提供在设备端大规模实现图形效果的工具,例如图像放大和路径追踪。通过开放的 ML 扩展,开发者可以将 AI 直接集成到熟悉的渲染管线中,从而更轻松地将 AI 融入到移动渲染中。
NSS 作为 Arm 神经技术的一个重要应用,建立在 Arm Accuracy Super Resolution (Arm ASR) 的基础上,后者已经被 Fortnite 和 Infinity Nikki 等游戏采用。NSS 能够以较低的性能成本,实现接近原生质量的图像放大,从而帮助开发者节省 GPU 工作负载,并将其用于提高帧率或改善视觉质量。
展望未来,Arm 计划在 2026 年推出 Neural Frame Rate Upscaling 和 Neural Super Sampling and Denoising 等更多神经技术应用。这些技术将进一步提升移动设备的图形性能和能效,并为开发者提供更多创新空间。通过提供统一、开放的平台,Arm 致力于简化 AI 在各种设备端体验中的部署。
- 原文: [ARM adds neural accelerators to GPUs](https://newsroom.arm.com/news/arm-announces-arm-neural-technology)
- Hacker News: [https://news.ycombinator.com/item?id=44876346](https://news.ycombinator.com/item?id=44876346)
- 作者: dagmx
- 评分: 168
- 评论数: 37
- 发布时间: 2025-08-12 22:03:47
---
## Prime Grid:一个可调节的质数可视化工具
这个项目是一个简单的、可调节的网格,用于可视化质数的分布,通过调整行、列和缩放来观察有趣的视觉模式。开发者可以利用它来进行数学研究,或者寻找隐藏在质数中的秘密。
这个 Prime Grid 工具的核心功能在于它能够以网格的形式展示质数。用户可以自由调整网格的行数、列数和缩放级别,从而观察质数分布的不同形态。通过调整列数,可以发现一些有趣的旋转模式,例如,当列数达到一定数量时,会出现汇聚成单一节点的顺时针旋转。这个工具的灵感可能来自于 Ulam 螺旋,后者也是一种可视化质数分布的著名方法。此外,有人提出,通过调整列数,或许能发现隐藏的信息,甚至找到建造超光速宇宙飞船的秘密。
评论区里,大家分享了各自的发现和想法。有人提到,调整行和列的数值,可以观察到一些意想不到的模式。例如,当行数设置为 4000,列数设置为 546 时,会出现一些连续区间内没有质数的现象。还有人建议增加一些功能,比如反转网格,显示合数而非质数,或者筛选满足特定数学运算的质数,以便探索更多潜在的模式。这些建议都旨在扩展 Prime Grid 的功能,使其成为一个更强大的质数探索工具。
- 原文: [Show HN: Prime Number Grid Visualizer](https://enda.sh/primegrid/)
- Hacker News: [https://news.ycombinator.com/item?id=44888548](https://news.ycombinator.com/item?id=44888548)
- 作者: dduplex
- 评分: 106
- 评论数: 45
- 发布时间: 2025-08-13 21:59:23
---
## Bullfrog Productions:从《主题医院》看其被EA收购后的变迁
本文探讨了EA收购Bullfrog Productions后,这家英国游戏工作室的转变,并以《主题医院》为例,分析了这种变化对游戏设计理念的影响。
文章指出,EA收购Bullfrog后,虽然承诺保持其独立性,但实际上更倾向于利用已有的品牌效应,鼓励Bullfrog开发续作或与之前作品相关的游戏,例如《主题公园世界》等。这种策略在一定程度上限制了Bullfrog的创新精神。《主题医院》的诞生,正是在这种背景下,EA希望借助《主题公园》的成功,催生的一款主题模拟经营游戏。
最初,《主题医院》的开发者曾考虑真实地模拟医院运营,但在参观医院后,他们决定采用Bullfrog标志性的黑色幽默风格,将游戏设计得荒诞而有趣。游戏中充满了各种奇特的疾病和治疗方法,例如“胀气头”、“断裂风”和各种奇特的医疗设备。游戏虽然看似简单,但实际上非常复杂,玩家需要从零开始建造医院,雇佣员工,管理财务,应对各种突发事件。游戏的成功,很大程度上归功于其独特的幽默风格和深度模拟经营的玩法。
总的来说,文章认为《主题医院》是一款具有代表性的Bullfrog游戏,它既体现了Bullfrog的创新精神,也反映了EA收购后,工作室在商业压力下做出的妥协。对于喜欢模拟经营类游戏的玩家来说,《主题医院》无疑是一款值得尝试的经典之作。
- 原文: [Bullfrog in the Dungeon](https://www.filfre.net/2025/08/bullfrog-in-the-dungeon/)
- Hacker News: [https://news.ycombinator.com/item?id=44914149](https://news.ycombinator.com/item?id=44914149)
- 作者: doppp
- 评分: 138
- 评论数: 43
- 发布时间: 2025-08-16 00:10:18
---
🫵 来啊,说点有用的废话!