zhulink logo
自动夜间模式 日间模式 夜间模式
侧栏
0

【HN中文日报】Futex、望远镜、漏洞、小语种... 科技圈热点一网打尽!速看!

意外富翁的头像
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20250819 这期日报内容超丰富!从并发编程神器 Futex,到自制高精度望远镜支架,再到 Dnsmasq 缓存中毒漏洞深度解析,硬核技术爱好者绝对不能错过!还有为小语种打造的语音模型 Uplift、用 JavaScript 实现流畅绘图的 Lazy Brush、可视化素数分布的 Prime Grid... 更有关于儿童 VPN 禁令、PyPI 安全、Obsidian 数据库等热门话题等你来聊!赶紧点开,看看哪个话题戳中你的兴趣点! ![Hacker News 中文精选](/static/mascot_article.webp) --- ## Futex:并发编程中不可或缺的基石 本文深入探讨了 futex(快速用户空间互斥量)在现代并发编程中的重要性,并指出一些并发编程教材的不足,即未能涵盖这一关键概念。 文章指出,虽然 futex 的名字听起来像互斥锁(mutex),但它实际上是构建并发原语的基础,极大地提升了并发性能。在 Linux 中引入 futex 之后,高并发环境下的性能得到了显著提升,甚至比 System V 的锁机制快 20-120 倍。其他操作系统,如 Windows 和 macOS,也纷纷效仿。Futex 的核心思想是将锁的*锁定*和*等待/唤醒*操作分离,从而避免不必要的延迟和系统调用开销。例如,在解锁操作时,如果用户空间可以确定没有线程在等待,则可以跳过内核调用。 Futex 的 `wait()` 调用允许任务阻塞,并在内核中将该任务排队到与特定内存地址关联的列表中,并允许设置可选的超时。`wake()` 操作将从内部列表中移除线程,并重新运行它们。调用 `wait()` 操作时,调用者必须提供它认为 futex 的值。如果该值已更改,则操作将失败。 文章还提供了一个使用 futex 构建基本互斥锁的示例,并强调了在处理 futex 时需要注意的内存一致性问题,建议使用顺序一致性以避免潜在的错误。总而言之,futex 是现代并发编程中不可或缺的工具,理解其原理对于构建高性能的并发应用至关重要。 - 原文: [Without the Futex, It's Futile](https://h4x0r.org/futex/) - Hacker News: [https://news.ycombinator.com/item?id=44951563](https://news.ycombinator.com/item?id=44951563) - 作者: eatonphil - 评分: 74 - 评论数: 11 - 发布时间: 2025-08-19 21:53:42 --- ## 使用谐波驱动和 ESP32 构建定制望远镜支架 本文介绍了如何使用谐波驱动和 ESP32 微控制器构建定制望远镜支架,旨在实现高精度跟踪和 GOTO 功能,同时控制成本。作者分享了从产生想法到 PCB 设计、组件选择和 OnStepX 集成的完整过程。 文章详细描述了作者的灵感来源,最初是想通过星空摄影获得更好的效果,但市面上的专业设备价格昂贵。后来,作者学习了 PCB 设计,并决定自己制作一个望远镜支架。在研究过程中,作者深入了解了谐波驱动的工作原理,并参考了多个 DIY 项目。最终,作者选择了 42AIM15 伺服电机和 MKS Servo042D 步进电机,并设计了一个半圆形的 PCB,以适应紧凑的结构。PCB 设计中考虑了 USB-C 供电、CANBUS/MODBUS 通信以及未来扩展的可能性。作者还分享了 PCB 设计中的一个错误以及如何通过版本迭代进行修复。最后,文章提到了 OnStepX 集成,这是一个用于控制望远镜的开源平台。 由于没有评论内容,这里跳过评论相关的总结和分析。 - 原文: [Custom telescope mount using harmonic drives and ESP32](https://www.svendewaerhert.com/blog/telescope-mount/) - Hacker News: [https://news.ycombinator.com/item?id=44949895](https://news.ycombinator.com/item?id=44949895) - 作者: waerhert - 评分: 168 - 评论数: 59 - 发布时间: 2025-08-19 17:46:27 --- ## Dnsmasq 爆出严重缓存中毒漏洞:SHAR 攻击解析 Dnsmasq 存在一个严重缓存中毒漏洞,攻击者可以通过注入恶意 DNS 资源记录来劫持域名,无需复杂技术,只需利用一个特殊字符。 该漏洞源于 Dnsmasq 对上游递归解析器返回的静默处理不当。当 Dnsmasq 向上游服务器发送包含特殊字符(例如 ~, !, *, _)的查询时,某些上游服务器会直接丢弃这些格式错误的查询,而不返回 NXDomain 或 ServFail 响应。Dnsmasq 不会检测到这种情况,而是静默等待,从而产生一个很大的攻击窗口。在这个窗口期内,攻击者可以暴力破解 TxID(16 位)和源端口(16 位),从而有很高的成功率进行缓存投毒。这种攻击被称为 SHAR 攻击 (Single-character Hijack via ASCII Resolver-silence)。成功率高达 20/20,平均执行时间约为 9469 秒。 该漏洞允许攻击者毒化 Dnsmasq 中缓存的任何域名,且攻击可以在离线状态下进行,无需 IP 分片或侧信道。该漏洞还会放大已知的缓存中毒攻击,例如 SADDNS 和 Tudoor。 报告建议增加检测上游解析器静默的机制,并采用类似于 PowerDNS 中的速率限制和欺骗检测技术进行缓解。 评论区里大家也对此漏洞展开了讨论。 * 有人对报告中提到的“特殊字符”表示疑惑,认为域名中不应存在特殊字符,可能是 Dnsmasq 没有正确处理丢失的响应,导致了生日悖论攻击窗口。 * 有人指出,该漏洞可能被意外地公开披露到了公共邮件列表中,不过附件 PDF 的日期显示在三个月前。 * 有人建议使用 DPI(深度包检测)来丢弃包含这些特殊字符的入站 DNS 查询,作为一种有效的缓解措施。 * 还有人担心许多路由器固件中使用的 Dnsmasq 可能永远不会升级,同时询问其他非 C 语言编写的 DNS 服务器是否能正确处理这种格式错误的输入。 - 原文: [Critical Cache Poisoning Vulnerability in Dnsmasq](https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2025q3/018288.html) - Hacker News: [https://news.ycombinator.com/item?id=44950981](https://news.ycombinator.com/item?id=44950981) - 作者: westurner - 评分: 58 - 评论数: 10 - 发布时间: 2025-08-19 20:56:47 --- ## Launch HN: Uplift - 为小语种打造的语音模型 Uplift 旨在为那些缺乏足够语音技术支持的小语种提供高质量的语音模型,这对于保护和推广这些语言至关重要。该项目通过 Jina AI 提供 API 接口,方便开发者使用,并提供了使用示例,如 `https://r.jina.ai/YOUR_URL` 和 `https://s.jina.ai/YOUR_SEARCH_QUERY`。 Uplift 的核心价值在于填补了语音技术领域的空白,尤其是在那些使用人数较少、商业价值不高的语言上。传统语音技术往往集中于主流语言,使得小语种的使用者在享受科技便利时面临诸多限制。Uplift 的出现,有望打破这种不平衡,让更多人能够用自己的母语与技术互动。 该项目不仅关注语言本身,也关注地域差异。例如,有评论提到希望支持中国各地方言,甚至更精确的普通话口音。这表明,语音技术的本地化和个性化需求非常强烈。Uplift 如果能在这方面有所突破,将具有更大的市场潜力。 评论区普遍对 Uplift 的发布表示欢迎,认为其填补了市场空白,并期待未来能支持更多小语种,例如马拉雅拉姆语。也有人询问模型是否适用于其他小语种,或者是否针对特定语言进行了优化。此外,有开发者希望获得更多关于如何将 Uplift 的 TTS API 与 Pipecat 结合使用的代码示例。这些评论反映了用户对 Uplift 的期待和实际应用的需求。总的来说,Uplift 的发布引起了积极的反响,大家普遍看好其在语音技术领域的潜力。 - 原文: [Launch HN: Uplift (YC S25) – Voice models for under-served languages](https://news.ycombinator.com/item?id=44950661) - Hacker News: [https://news.ycombinator.com/item?id=44950661](https://news.ycombinator.com/item?id=44950661) - 作者: zaidqureshi - 评分: 37 - 评论数: 16 - 发布时间: 2025-08-19 20:10:09 --- ## Lazy Brush:用 JavaScript 实现流畅的 Canvas 绘图 Lazy Brush 是一个 JavaScript 库,旨在帮助开发者实现使用鼠标、手指或其他指针设备在 Canvas 上绘制平滑曲线和直线的效果。它通过引入“延迟”和“摩擦”的概念,使得绘制的线条更加稳定和自然,尤其是在手抖动或者使用触摸板等不太精确的输入设备时。 这个库的核心在于模拟了一种物理上的“拖拽”效果。用户设置一个“lazy radius”,只有当指针移动超过这个半径时,画笔才会被“拉动”。同时,“friction”参数控制了画笔跟随光标的滞后程度,数值越高,滞后越明显。通过调整这两个参数,可以达到最佳的平滑效果。Lazy Brush 提供了 GitHub 和 npm 的链接,方便开发者获取和使用。作者还提供了一个在线演示,可以实时调整 Lazy radius 和 Friction 参数,观察效果。此外,作者还创建了 Drawmote 应用,展示了 Lazy Brush 的实际应用案例。 评论区里,大家对 Lazy Brush 的实现原理和应用场景进行了热烈的讨论。 * **iamjackg** 指出,类似的技术也曾被用于非 Motion Plus 的 Wii 游戏中,用于平滑指针移动。 * **NikxDa** 推荐了 Perfect Freehand,一个同样适用于签名的替代方案。 * **pstadler** 提到了作者的另一个项目 Drawmote,该项目使用了 Lazy Brush 库。 * **marsavar** 赞赏了作者的个人网站。 * **davedx** 联想到 Duo Lingo 在汉字/假名书写练习中使用的技术,认为 Lazy Brush 可能有类似的应用。 * **gdubs** 认为这种“拖拽”行为非常直观,并赞赏了开放 Web 上的这类实验。 * **edflsafoiewq** 认为 Lazy Brush 的原理与 Krita 中的笔刷稳定器类似。 * **WithinReason** 认为其核心原理是 2D 迟滞现象。 * **rebuilder** 发现 Lazy Brush 在 Cintiq 数位板上的表现甚至优于传统的笔刷稳定,因为它提供了光标位置的视觉指示。 * **IshKebab** 建议使用卡尔曼滤波来减少延迟,并实现零延迟绘制后平滑输出。 总的来说,Lazy Brush 提供了一种简单而有效的方法来改善 Canvas 绘图的体验,受到了开发者和科技爱好者的广泛关注。 - 原文: [Lazy-brush – smooth drawing with mouse or finger](https://lazybrush.dulnan.net) - Hacker News: [https://news.ycombinator.com/item?id=44915897](https://news.ycombinator.com/item?id=44915897) - 作者: tvdvd - 评分: 404 - 评论数: 53 - 发布时间: 2025-08-16 02:30:47 --- ## 可视化素数分布:Prime Grid 工具 Susam.net 上的 Prime Grid 是一个简单的素数网格可视化工具,灵感来源于 HN 上的一个帖子,可以帮助我们以图形化的方式探索素数的分布规律。该工具使用 Miller-Rabin 素性测试来判断一个数字是否为素数,可以处理非常大的数字。 这个工具的核心功能就是生成一个网格,用户可以自定义网格的起始数字、行数和列数。网格中的每个单元格代表一个数字,如果是素数则会以某种颜色(通常是黑色)标记,否则以另一种颜色(通常是红色)标记。通过调整起始数字、行数和列数,可以观察不同范围内的素数分布情况。 作者提到,该工具使用了 Miller-Rabin 素性测试,并且使用了来自 OEIS (在线整数数列百科全书) 的素数作为基数,这使得它可以处理高达 3317044064679887385961980 的数字。作者还分享了一个链接,展示了该工具可以检查的数字上限,并指出了其中显示的几个素数。 这个工具的意义在于它提供了一种直观的方式来理解素数的分布。虽然我们知道素数是无限的,但它们的分布并不均匀。通过 Prime Grid 这样的工具,我们可以更直观地看到素数是如何聚集或稀疏的,从而激发我们对数论的兴趣。 评论区对这个工具展开了热烈的讨论,主要集中在以下几个方面: * **视觉模式和对称性:** 有评论提到,将整数分成 100 个一组,并根据每组是否包含素数来着色,会产生类似象形文字的图案。这种模式的出现引发了人们对素数分布中隐藏对称性的思考。 * **素数定理:** 有评论引用了素数定理,指出素数之间的平均间隔是 `log(n)`。这解释了为什么随着数字变大,素数变得越来越稀疏,但同时也强调了素数仍然大量存在。 * **Ulam 螺旋:** 有评论建议探索绘制 Ulam 螺旋,这是一种将自然数以螺旋形排列,并突出显示素数的另一种可视化方法。Ulam 螺旋也揭示了素数分布中令人惊讶的模式。 * **与其他工具的比较:** 有评论分享了另一个素数可视化工具 PrimeFold,该工具使用进化算法来发现生成或嵌入素数的数学函数,为素数可视化提供了另一种思路。 * **有趣的参数设置:** 有评论者分享了一些有趣的参数设置,例如将列数设置为素数时会出现有趣的模式。 - 原文: [Prime Number Grid](https://susam.net/primegrid.html) - Hacker News: [https://news.ycombinator.com/item?id=44949162](https://news.ycombinator.com/item?id=44949162) - 作者: todsacerdoti - 评分: 202 - 评论数: 79 - 发布时间: 2025-08-19 15:33:09 --- ## 英国专员建议禁止儿童使用 VPN,引发争议 英国专员提议政府阻止儿童使用 VPN,原因是他们可以绕过《在线安全法案》的年龄限制。这一提议迅速引发了关于网络自由、家长控制和政府监管之间平衡的讨论。 文章指出,英国儿童专员 Dame Rachel de Souza 认为,未成年人正在利用 VPN 轻松绕过在线安全法案设置的年龄限制,使得该法案的效果大打折扣。因此,她建议政府采取措施,阻止儿童使用 VPN。 这个建议一出,立刻引来了各方不同的声音。支持者认为,这有助于保护儿童免受网络不良信息的侵害,营造更安全的网络环境。但反对者则认为,禁止儿童使用 VPN 侵犯了他们的网络自由,而且可能会适得其反,让孩子们更难学习如何安全地上网。此外,还有人质疑,政府是否有能力有效阻止儿童使用 VPN,以及这种做法是否会给 VPN 行业带来不必要的负担。 总之,这个提议涉及了网络安全、儿童保护、个人自由和政府监管等多个层面,是一个非常复杂的问题,需要进行更深入的讨论和权衡。 - 原文: [End well, this won't: UK commissioner suggests govt stops kids from using VPNs](https://www.theregister.com/2025/08/19/uk_commissioner_suggests_govt_stop/) - Hacker News: [https://news.ycombinator.com/item?id=44951911](https://news.ycombinator.com/item?id=44951911) - 作者: rntn - 评分: 43 - 评论数: 27 - 发布时间: 2025-08-19 22:24:31 --- ## Launch HN: Parachute (YC S25) – 临床 AI 的安全护栏 Parachute 旨在为临床 AI 提供安全护栏,确保其使用符合道德和安全标准。它通过提供工具和框架,帮助开发者和医疗机构负责任地部署和监控 AI 模型。 Parachute 的核心功能包括风险评估、偏差检测、可解释性分析和持续监控。风险评估帮助识别潜在的 AI 风险,偏差检测确保模型对不同人群的公平性,可解释性分析提高模型决策的透明度,持续监控则跟踪模型性能并及时发现问题。 该平台旨在简化临床 AI 的合规流程,并降低因 AI 错误或偏差造成的潜在危害。Parachute 的目标是建立一个安全可靠的临床 AI 生态系统,让医疗机构能够放心地利用 AI 改善患者护理。 Jina AI Reader 提供的两个使用示例 URL,可能分别指向 Parachute 的特定功能或用例。第一个 URL(https://r.jina.ai/YOUR_URL)可能允许用户访问 Parachute 的特定资源或文档。第二个 URL(https://s.jina.ai/YOUR_SEARCH_QUERY)可能提供搜索 Parachute 相关信息的入口。 Parachute 的推出正值临床 AI 快速发展之际,许多医疗机构都在探索如何利用 AI 提高诊断准确性、优化治疗方案和改善患者体验。然而,临床 AI 的部署也面临着诸多挑战,包括数据隐私、算法偏差和缺乏透明度等。Parachute 试图通过提供一套全面的安全护栏,帮助医疗机构克服这些挑战,并负责任地利用 AI 的潜力。 由于没有评论内容,无法进行评论分析。 - 原文: [Launch HN: Parachute (YC S25) – Guardrails for Clinical AI](https://news.ycombinator.com/item?id=44952246) - Hacker News: [https://news.ycombinator.com/item?id=44952246](https://news.ycombinator.com/item?id=44952246) - 作者: ariavikram - 评分: 2 - 评论数: 0 - 发布时间: 2025-08-19 22:53:11 --- ## PyPI 采取措施防止域名复活攻击 PyPI 通过检查过期域名来防止域名复活攻击,这是一种供应链攻击,攻击者购买过期域名并利用它通过密码重置来接管 PyPI 账户。 PyPI 用户账户与电子邮件地址相关联。电子邮件地址与域名相关联;如果未付费,域名可能会过期,其他人可以购买它们。PyPI 要求用户验证他们的电子邮件地址,并将经过验证的电子邮件地址视为账户所有权的有力指标。如果域名过期,攻击者可以注册该域名,设置电子邮件服务器,发出密码重置请求,并获得对与该域名关联的账户的访问权限。 为了应对这种风险,PyPI 现在会定期检查域名状态,如果域名进入赎回期,PyPI 会取消验证与该域名关联的电子邮件地址,并且不会向这些地址发送密码重置请求。自 2025 年 6 月初实施以来,PyPI 已经取消验证了 1,800 多个电子邮件地址。 对于仅具有来自自定义域名的单个已验证电子邮件地址的 PyPI 账户,建议添加来自另一个知名域名(例如 Gmail)的第二个已验证电子邮件地址。此外,请确保在其他服务上启用 2FA,以防止潜在的账户接管。 域名过期通常会经历一个宽限期和赎回期,PyPI 使用 Domainr 的 Status API 定期查询域名状态,并在域名进入赎回期时采取行动。PyPI 不会检测到非过期的域名转移,因为它假定各方正在共同采取行动以合法转移域名。 这些更改并非万无一失,但它们降低了域名复活账户接管的可能性,提高了 PyPI 的整体账户安全态势。 评论区观点: * **身份验证的挑战:** 有评论指出,问题不仅限于域名,还包括 Google、Microsoft 等公司回收未使用账户的情况。电子邮件地址与身份紧密相连,但账户长期不活跃后,地址是否可以被重用是一个问题。 * **Go 语言的案例:** 有开发者提到 Go 语言使用域名作为包来源,这带来了安全隐患。当开发者去世,其域名过期时,Google 采取了措施阻止该域名拉取任何新内容到缓存中。 * **长期加密身份的解决方案:** 有评论认为,根本问题在于缺乏持久的长期强加密身份验证方案。虽然存在 Metamask 等技术,但用户普遍不愿意安装此类工具来登录网站。 总的来说,评论区从不同角度探讨了身份验证和账户安全的问题,强调了在域名复活攻击之外,还存在其他潜在的风险。同时也指出了解决这些问题的技术挑战和用户接受度问题。 - 原文: [PyPI Preventing Domain Resurrection Attacks](https://blog.pypi.org/posts/2025-08-18-preventing-domain-resurrections/) - Hacker News: [https://news.ycombinator.com/item?id=44950091](https://news.ycombinator.com/item?id=44950091) - 作者: pabs3 - 评分: 59 - 评论数: 20 - 发布时间: 2025-08-19 18:32:41 --- ## 使用 Vim 宏处理 Beancount 数据 本文介绍了如何使用 Vim 宏来处理 Beancount 数据,特别是解决银行账户间转账记录不完整的问题。作者分享了利用 Vim 的强大文本编辑功能,通过构建复杂的宏来匹配和补全交易记录,从而更有效地管理财务数据。 作者提到自己是 Vim 的长期用户,但仍然停留在使用 `hjkl` 移动光标的初级阶段。他使用 Beancount 管理个人财务,但遇到一个问题:从银行导出的 CSV 文件中,账户之间的转账记录不完整,导致 Beancount 无法正确处理。为了解决这个问题,作者没有选择忽略内部转账、编写脚本,而是选择使用 Vim。他将 CSV 文件转换为 Beancount 交易,每个交易只有单边记录。然后,他利用 Vim 宏来查找和匹配不同账户之间的转账记录,补全交易信息。作者详细介绍了如何使用 Vim 宏来查找匹配的交易,并将其添加到原始交易中。这个过程涉及到多个 Vim 命令,例如查找、移动光标、复制和粘贴等。通过组合这些命令,作者构建了一个强大的宏,可以自动完成大部分的匹配和补全工作。 文章展示了如何将 Vim 应用于实际的财务数据处理中,为 Beancount 用户提供了一个新的思路。使用 Vim 宏处理 Beancount 数据,可以提高效率,避免手动编辑的错误。 - 原文: [Vim Macros for Beancount](https://tangled.sh/@adam.tngl.sh/vim-beancounting) - Hacker News: [https://news.ycombinator.com/item?id=44950952](https://news.ycombinator.com/item?id=44950952) - 作者: xarcolade - 评分: 18 - 评论数: 5 - 发布时间: 2025-08-19 20:52:11 --- ## 利用蜡烛火焰振荡作为时钟 本文介绍了一种有趣的实验,通过捆绑三根蜡烛,使其产生稳定的火焰振荡,并利用电容感应技术检测这种振荡,最终将其转化为可用的时钟信号。这种方法探索了火焰振荡的物理特性,并展示了将其应用于简单电子电路的可能性。 文章首先回顾了蜡烛的优化历史,指出现代蜡烛的设计目标是减少闪烁。然而,当三根蜡烛捆绑在一起时,会打破这种平衡,产生频率约为 9.9Hz 的稳定振荡。这种振荡频率主要取决于重力和火焰的直径。作者使用悬挂在火焰中的金属丝来感应火焰中离子气体引起的电容变化,从而检测到这个频率。通过光电晶体管或电容式火焰传感器,可以将火焰的振荡转换为电信号,并使用微控制器进行处理,最终驱动 LED 灯闪烁。实验中使用 CH32V003 微控制器和 CH32fun 环境,验证了该方法的可行性。作者提到,火焰振荡的频率主要受重力和燃料源尺寸的影响,这使得它成为一个相对稳定的振荡源。 由于文章没有评论内容,这里就不做讨论了。 - 原文: [Candle Flame Oscillations as a Clock](https://cpldcpu.com/2025/08/13/candle-flame-oscillations-as-a-clock/) - Hacker News: [https://news.ycombinator.com/item?id=44921195](https://news.ycombinator.com/item?id=44921195) - 作者: cpldcpu - 评分: 30 - 评论数: 3 - 发布时间: 2025-08-16 15:49:51 --- ## 拥抱 Zen Browser:Arc 之后的新选择 作者在文章中分享了他从 Arc 浏览器转向 Zen Browser 的原因,以及对 Zen Browser 的喜爱。Arc 浏览器在转型 AI 后,逐渐失去了其原有的用户群体,而 Zen Browser 则以其简洁的界面和强大的自定义功能,成为了作者的理想替代品。 作者提到,Arc 浏览器最初给他带来了非常好的体验,其简洁的界面、强大的快捷键和 Profiles 功能都让他感到满意。然而,Arc 浏览器为了追求更大的市场,转型为 AI 浏览器 Dia,牺牲了许多原有的功能。Dia 在功能上与 Chrome 类似,并且在隐私方面存在一定的担忧。因此,作者开始寻找新的浏览器。 Firefox 浏览器虽然是用户至上的黄金标准,但其用户体验略显笨拙。而 Zen Browser 在 Firefox 的基础上进行了改进,拥有类似 Arc 的 UI,并且提供了丰富的自定义选项和快捷键。此外,Firefox 新增的 Profile Manager 功能也让 Zen Browser 能够更好地管理不同的浏览器上下文。 尽管 Zen Browser 存在一些小问题,例如快捷键需要为每个 Profile 单独设置,以及 Firefox 账户同步的限制,但作者认为 Zen Browser 仍然是目前最好的选择。他甚至建议 Mozilla 收购 Zen Browser 团队,将其融入 Firefox,为用户提供更好的默认体验。 评论区中,用户分享了他们对 Zen Browser 和其他浏览器的看法。 一位用户提到,他在 Firefox/Zen Browser 上使用 Google Meet 时,视频通话质量不如 Chromium 内核的浏览器。另一位用户表示,他尝试使用 Zen Browser 一段时间后,最终还是回到了原生的 Firefox,并安装了 Sidebery 插件和自定义 userChrome.css,实现了类似 Zen Browser 的功能,同时避免了一些不便之处。该用户还提到,他希望 Zen Browser 能够提供两级置顶标签的功能。 总的来说,评论区对 Zen Browser 的评价褒贬不一,用户在选择浏览器时,需要根据自己的需求和偏好进行权衡。 - 原文: [Why I'm all-in on Zen Browser](https://werd.io/why-im-all-in-on-zen-browser/) - Hacker News: [https://news.ycombinator.com/item?id=44951799](https://news.ycombinator.com/item?id=44951799) - 作者: benwerd - 评分: 28 - 评论数: 21 - 发布时间: 2025-08-19 22:14:44 --- ## 日立发布世界最小最薄的 RFID 芯片 日立公司在 2006 年发布了一款尺寸仅为 0.15 x 0.15 毫米、厚度为 7.5 微米的非接触式 IC 芯片,堪称当时世界最小最薄。这款芯片是当时日立正在销售的 0.4 x 0.4 毫米 "µ-Chip" 的缩小版,但功能保持不变。 为了实现更小的尺寸,这款芯片采用了 SOI(绝缘体上硅)技术,在基板中加入了一个绝缘层,取代了当时使用的纯硅基板,缩小了各个电路元件之间的距离。与 2003 年日立发布的 0.3 x 0.3 毫米、60 微米厚的 IC 芯片相比,表面积缩小到了四分之一,厚度也减少到了八分之一。尺寸的显著减小,使得单个晶圆上可以制造更多的芯片,从而将生产率提高了四倍以上。与 2005 年日本爱知世博会上使用的现有产品相比,生产率提高了约 10 倍。 这款 µ-Chip 使用外部天线接收无线电波(2.45 GHz 微波),并将其转换为能量,以无线方式传输一个 128 位的唯一 ID 号。由于数据是在制造过程中使用 ROM(只读存储器)写入的,因此无法重写数据,从而提供了很高的安全性。2005 年世博会的门票系统使用了 µ-Chip,该系统有大约 22,050,000 名游客,其性能记录为没有发生确认的伪造事件,门票识别错误率仅为 0.001%。 通过利用紧凑性、高安全性和非接触式通信的优点,并将其与互联网技术相结合,µ-Chip 可用于广泛的应用,如安全、运输、娱乐、溯源和物流。日立一直在努力提高通信距离和减小天线尺寸,同时保持这些优点,以使 µ-Chip 能够应用于更广泛的领域。这款新芯片的增强的紧凑性和薄度进一步扩大了可能的应用范围,包括礼品券等证券和各种证书。此外,与 0.3 毫米 IC 芯片一样,这款新芯片具有双面电极,因此,尽管尺寸更小,但仍可以轻松地与外部天线连接,并保持较高的生产率。 评论区里,大家讨论的挺热闹。有人觉得,能把这么小的芯片从晶圆上切割下来并进行处理,简直不可思议,就像要单独操作每一粒糖一样。也有人指出,芯片虽小,但还需要一个更大的天线才能工作,所以实际应用中可能没那么方便。 还有人提到了阴谋论,说以前就有人怀疑政府在钞票里植入 RFID 芯片来追踪民众。当然,也有人觉得现在可能很多东西都已经被芯片“渗透”了,从制造商到物流,甚至间谍活动,无处不在。最后,有人好奇这种芯片能不能买到并使用。 - 原文: [In 2006, Hitachi developed a 0.15mm-sized RFID chip](https://www.hitachi.com/New/cnews/060206.html) - Hacker News: [https://news.ycombinator.com/item?id=44912881](https://news.ycombinator.com/item?id=44912881) - 作者: julkali - 评分: 55 - 评论数: 25 - 发布时间: 2025-08-15 22:28:56 --- ## Netflix 使用 RAW Hollow In-Memory Object Store 改造 Tudum 的 CQRS 架构 Netflix 对 Tudum 的 CQRS 架构进行了重大改造,引入了 RAW Hollow In-Memory Object Store。Tudum 是 Netflix 的一个平台,旨在为用户提供电影和电视节目的幕后花絮、采访和额外内容。为了支持 Tudum 的增长和不断变化的需求,Netflix 工程师重新设计了其架构。 这次改造的核心是采用命令查询职责分离 (CQRS) 模式,该模式将读取和写入操作分离到不同的数据模型中。为了提高性能,Netflix 引入了 RAW Hollow In-Memory Object Store,这是一种将数据存储在内存中的技术,无需序列化或反序列化。这种方法可以显著减少延迟并提高吞吐量。 新的架构还包括一个事件驱动系统,用于在不同的服务之间传播数据更改。当数据发生更改时,会发布一个事件,然后由订阅该事件的其他服务使用。这有助于确保数据在所有服务中保持一致。此外,Netflix 还采用了各种优化技术,例如缓存和数据压缩,以进一步提高性能。 总而言之,Netflix 对 Tudum 架构的改造旨在提高性能、可扩展性和可靠性。通过采用 CQRS 模式、RAW Hollow In-Memory Object Store 和事件驱动系统,Netflix 能够构建一个能够满足 Tudum 不断增长的需求的平台。这次架构升级展示了 Netflix 在技术创新方面的持续投入,旨在为全球用户提供卓越的流媒体体验。 - 原文: [Netflix Revamps Tudum's CQRS Architecture with Raw Hollow In-Memory Object Store](https://www.infoq.com/news/2025/08/netflix-tudum-cqrs-raw-hollow/) - Hacker News: [https://news.ycombinator.com/item?id=44924261](https://news.ycombinator.com/item?id=44924261) - 作者: NomDePlum - 评分: 57 - 评论数: 60 - 发布时间: 2025-08-16 23:27:27 --- ## 《反恐精英》:从宿舍走出的十亿美元游戏 这篇文章讲述了《反恐精英》(Counter-Strike)这款游戏的诞生和发展历程,以及它如何从一个Half-Life的mod,成长为影响全球的现象级游戏。文章着重介绍了《反恐精英》的开发者之一 Minh "Gooseman" Le 的故事,以及这款游戏背后的社区文化和 modding 场景。 文章提到,最初的《反恐精英》是基于《Quake》的mod Action Quake 2 (AQ2) 的理念,并在此基础上进行了改进,例如优化了hitbox、购买菜单、地图设计,以及更具战术性的节奏。文章还探讨了《反恐精英》的成功之处,在于其简单直接的游戏机制、强调团队合作的玩法,以及活跃的社区和 modding 文化。即使在今天,仍然有很多人在玩《反恐精英》的早期版本,例如 CS 1.6,这证明了这款游戏的持久魅力。文章也侧面反映了游戏服务器浏览器时代的结束,如今的游戏更依赖于匹配系统,这使得建立小型游戏社区变得更加困难。 评论区也引发了热烈的讨论,玩家们分享了他们与《反恐精英》的故事和回忆。 * **服务器浏览器和社区建设:** 有玩家怀念服务器浏览器,认为它更容易建立游戏内的小型社区,而现在的匹配系统则缺乏这种偶遇的乐趣。 * **de_dust2 地图的地位:** 有玩家指出,《反恐精英》孕育了FPS游戏中最具标志性的地图 de_dust2,并分享了一个关于这张地图的迷你纪录片。 * **Modding 场景的怀旧:** 有玩家回忆起 CS 1.6 时代丰富多彩的 modding 场景,例如各种有趣的地图和游戏模式,认为这种自由度和创造性是现在很多游戏所缺乏的。 * **游戏内赌博现象的担忧:** 有玩家对 Valve 在现代《反恐精英》版本中引入的赌博机制表示不满,认为这破坏了游戏的纯粹性,并导致了皮肤交易和赌博等不良现象。 * **对快节奏 FPS 的偏爱:** 有玩家表示不喜欢《反恐精英》这种偏重战术和蹲点的玩法,更喜欢《Quake》那种快节奏、自由奔放的 FPS 体验。 * **Action Quake 2 的影响:** 有玩家指出,《反恐精英》的灵感来源于《Quake》的 mod Action Quake 2,并称 AQ2 是“《Quake》和《反恐精英》之间的桥梁”。 * **游戏对反应能力的训练:** 有玩家认为,玩《反恐精英》等游戏可以有效地训练反应能力,是一种寓教于乐的方式。 * **通过游戏获得收益:** 有玩家分享了自己通过出售《反恐精英:全球攻势》中获得的箱子赚取 Steam 余额的经历。 * **《反恐精英》的持久影响力:** 总体而言,评论区反映了玩家们对《反恐精英》的喜爱和怀念,以及对这款游戏在 FPS 历史上重要地位的认可。 - 原文: [Counter-Strike: A billion-dollar game built in a dorm room](https://www.nytimes.com/2025/08/18/arts/counter-strike-half-life-minh-le.html) - Hacker News: [https://news.ycombinator.com/item?id=44941369](https://news.ycombinator.com/item?id=44941369) - 作者: asnyder - 评分: 437 - 评论数: 369 - 发布时间: 2025-08-18 22:59:26 --- ## 伦敦水晶宫的兴衰:一段摄影记录的历史 这篇文章介绍了通过历史照片回顾伦敦水晶宫从建造到最终消失的历程,展现了这座曾经辉煌的建筑在不同时期的风貌。文章重点介绍了水晶宫在海德公园和大辛德汉姆山时期的重要事件和影像记录。 文章首先提到,约瑟夫·帕克斯顿设计的水晶宫曾是世界上最具启发性的建筑之一,其宏伟的玻璃和钢铁结构吸引了众多摄影师的目光。1851 年的万国工业博览会是摄影发展史上的重要事件,水晶宫及其内部展品被大量记录,这些照片传播到世界各地。博览会结束后,水晶宫被搬迁到辛德汉姆山,并于 1854 年由维多利亚女王重新开放。摄影师菲利普·亨利·德拉莫特记录了水晶宫的拆卸和重建过程,并拍摄了大量内部照片,这些照片现存于英国历史档案馆。 1866 年,一场大火摧毁了水晶宫的北翼,修复费用巨大,导致部分区域未能重建。尽管如此,水晶宫仍然运营至 1915 年,之后曾被用作海军仓库。一战后,水晶宫短暂恢复,并在 1920 年再次举行了皇家开放仪式。文章还提到了早期摄影师利用系留气球从空中拍摄水晶宫的照片,为我们提供了独特的视角。1936 年,一场大火彻底摧毁了水晶宫,结束了其辉煌的历史。文章通过丰富的历史照片,生动地展现了水晶宫的兴衰,也反映了摄影技术在历史记录中的重要作用。 - 原文: [The Life and Death of London's Crystal Palace (2021)](https://heritagecalling.com/2021/11/29/picturing-the-crystal-palace/) - Hacker News: [https://news.ycombinator.com/item?id=44910300](https://news.ycombinator.com/item?id=44910300) - 作者: zeristor - 评分: 33 - 评论数: 12 - 发布时间: 2025-08-15 17:35:15 --- ## Geotoy:使用 Shadertoy 技术进行 3D 几何创作 Geotoy 是一个基于 Shadertoy 技术的 3D 几何图形创作平台,允许用户在线创建和编辑各种 3D 模型和场景。它提供了一个直观的界面,用户可以通过编写着色器代码来定义几何形状、材质和光照效果。 这个平台提供了一系列由作者 Ameo 创建的示例,展示了 Geotoy 的强大功能和多样性。这些示例包括 3D 希尔伯特曲线、瓦片、寺庙、生锈的迷宫、弹簧、fbm 地形、圆环结、蒲公英、电力线、编织 WIP、根、凹凸球体、抽象沙漏、鸟浴、混凝土四面体、梯田式浮岛、挤压粘土碗、花式着色器道具、超椭圆多米诺骨牌和黑暗之魂树。每个示例都提供了一个在线编辑器链接,用户可以修改和实验这些示例。 Geotoy 允许用户登录/注册,方便保存和分享自己的作品。它还提供了文档,帮助用户学习如何使用该平台进行 3D 几何创作。通过 Geotoy,开发者和爱好者可以探索着色器的强大功能,并创造出令人惊叹的 3D 视觉效果。 由于没有评论内容,这里就文章本身做个总结:Geotoy 实际上是为那些喜欢用代码创造视觉效果的人准备的,它降低了 3D 建模的门槛,让更多的人可以参与到 3D 艺术创作中来。它鼓励用户分享和学习,形成一个活跃的创作社区。 - 原文: [Geotoy – Shadertoy for 3D Geometry](https://3d.ameo.design/geotoy) - Hacker News: [https://news.ycombinator.com/item?id=44938622](https://news.ycombinator.com/item?id=44938622) - 作者: Ameo - 评分: 4 - 评论数: 0 - 发布时间: 2025-08-18 16:54:48 --- ## X-ray 扫描揭示微型藏传佛教经卷中的祈祷文 本文介绍了科学家使用 X 射线扫描和 AI 技术,在不破坏文物的前提下,成功读取了微型藏传佛教经卷中的祈祷文。这项技术为研究古代文物开辟了新的途径。 研究人员利用 3D X 射线断层扫描技术,结合人工智能辅助,成功地“展开”了这些被包裹了大约 50 层的古老经卷。这些经卷是蒙古游牧民族传统的可移动神龛的一部分,被称为 “gungervaa”,里面通常包含艺术品、装饰品和其他精神纪念品。其中,被称为 “dharanis” 的微型经卷尤为重要,它们通常用丝绸包裹,包含常见的祈祷文。 这些经卷的尺寸非常小,大约只有 1.9 x 0.7 x 0.7 英寸。由于历史原因,许多文物在 1921 年的蒙古革命期间被毁,使得现存的文物非常珍贵。德国民族学博物馆保存了三个装在黄色丝绸袋中的经卷。 过去,考古学家需要冒着损坏文物的风险才能读取经卷的内容。现在,通过使用德国联邦材料研究与测试研究所 (BAM) 的 3D X 射线断层扫描仪,研究人员可以在不展开经卷的情况下,以微观级别创建物体的 3D 图像。这种技术依赖于同步加速器断层扫描,它使用硬 X 射线来编译物体的 3D 图像。该技术在工程和材料科学中应用广泛,现在也被越来越多地用于文化和考古研究。 通过分析扫描数据,研究人员不仅能够确定经卷的物理结构,还能识别出其中的文字内容。这项研究成果发表在《文化遗产杂志》上,展示了科技在保护和研究古代文物方面的巨大潜力。 - 原文: [X-ray scans reveal Buddhist prayers inside tiny Tibetan scrolls](https://www.popsci.com/technology/tibetan-prayer-scroll-scans/) - Hacker News: [https://news.ycombinator.com/item?id=44926855](https://news.ycombinator.com/item?id=44926855) - 作者: Hooke - 评分: 147 - 评论数: 55 - 发布时间: 2025-08-17 04:54:54 --- ## ScrollGuard:一款帮你戒掉短视频的应用 ScrollGuard 是一款安卓应用,旨在帮助用户摆脱对短视频的沉迷,它能屏蔽 Instagram、Facebook、Reddit 和 YouTube 上的 Reels 和 Shorts。这款应用还允许用户为任何应用设置滚动限制,通过反滚动模式来减少用户的使用时间,承诺无广告、无 Reels、无 Shorts,从而减少干扰。 ScrollGuard 的核心功能是阻止用户访问那些容易让人沉迷的内容,例如短视频。它通过阻止特定应用程序上的特定内容来实现这一点,或者通过限制用户在特定应用程序上花费的时间来实现。该应用特别强调了在社交媒体中区分“健康”和“不健康”功能的重要性,旨在保留社交媒体的积极连接部分,同时消除负面的、令人上瘾的部分。 这款应用需要较高的辅助功能权限才能访问 Android 应用的 API,这在 iOS 上是不存在的。尽管如此,开发者还是设法为移动设备构建了这样的功能。 评论区里,用户们分享了各自对抗社交媒体沉迷的方法和工具。很多人都表达了对算法推荐内容的不满,认为这些内容充满了诱导和广告,偏离了他们最初使用社交媒体的目的——与朋友和家人联系。 一些用户分享了他们自己构建的工具或使用的替代方案,例如使用 FreshRSS 聚合信息源,或者使用浏览器插件来屏蔽特定网站上的特定内容。还有人提到了使用 Instagram 的“Following”功能,只查看关注账号的帖子,避免算法推荐的内容。 总的来说,评论区反映了人们对于社交媒体算法操纵和时间浪费的担忧,以及对于重新掌控自己数字生活的渴望。ScrollGuard 的出现,以及用户们分享的各种替代方案,都表明了人们正在积极寻找方法来对抗社交媒体的负面影响,从而更专注和高效地利用网络资源。 - 原文: [Show HN: I built an app to block Shorts and Reels](https://scrollguard.app/) - Hacker News: [https://news.ycombinator.com/item?id=44923520](https://news.ycombinator.com/item?id=44923520) - 作者: adrianhacar - 评分: 635 - 评论数: 269 - 发布时间: 2025-08-16 22:01:38 --- ## 从左到右编程:提升代码可读性和开发效率 本文探讨了“从左到右编程”的理念,强调代码应该在编写过程中保持有效性,从而提升开发体验和代码可读性。 文章首先通过 Python 的列表推导式为例,指出其语法在编写过程中编辑器难以提供有效帮助,因为变量的类型和方法在后续才能确定。作者认为,理想情况下,编辑器应该能够根据已输入的内容提供智能提示和自动补全。 随后,作者使用 Rust 语言的例子进行对比,展示了从左到右的编程风格如何让编辑器能够更早地提供帮助,从而引导开发者进入“成功之坑”。在 Rust 的例子中,变量在声明时即可被识别,编辑器能够立即提供可用的方法和属性建议。 文章还提到了“渐进式披露”的设计原则,认为用户应该只接触完成任务所需的复杂性,并且复杂性应该随着用户的操作自然地呈现出来。作者用 C 语言的例子说明了反例,由于 C 语言中结构体不能有方法,导致编辑器无法根据结构体类型提供相关的函数提示,开发者需要自行查找和记忆函数名。 JavaScript 也被作者拿来与 Python 对比,JavaScript 在方法调用上更加直观,例如 `text.split(" ").map(word => word.length)`,开发者可以立即看到 `length` 属性,而 Python 则需要使用 `map(len, text.split())`,这使得函数发现性较差。作者还展示了一段复杂的 Python 代码,并将其与等效的 JavaScript 代码进行比较,说明了从左到右的编程风格可以提高代码的可读性和可理解性。 最后,作者总结道,程序应该在编写过程中保持有效性,这样编辑器才能更好地提供帮助,开发者也可以通过 REPL 实时查看结果。 评论区中,@juancn 指出 SQL 也存在类似的问题,`FROM` 子句应该放在最前面,以便编辑器能够更快地确定涉及的实体。@danielPort9 则表达了对 Python 语言的厌恶之情。 - 原文: [Left to Right Programming](https://graic.net/p/left-to-right-programming) - Hacker News: [https://news.ycombinator.com/item?id=44942936](https://news.ycombinator.com/item?id=44942936) - 作者: graic - 评分: 386 - 评论数: 314 - 发布时间: 2025-08-19 01:08:36 --- ## Obsidian Bases:将笔记转化为强大数据库 Obsidian Bases 核心插件可以将笔记集合转变为功能强大的数据库,用于组织项目、旅行计划、阅读清单等。 Obsidian Bases 将数据存储在本地 Markdown 文件及其属性中,视图由 Bases 语法描述,可以保存为 `.base` 文件或嵌入在 Markdown 文件的代码块中。用户可以创建和嵌入 base,探索过滤器、属性和布局,以及使用公式和过滤器中的函数。Base 文件以易读的 YAML 格式存储。 简单来说,base 就像一个表格,每一行对应一个文件,每一列对应文件的属性。你可以管理、排序和过滤文件及其属性,例如添加评分、价格或截止日期等属性,或者只显示特定文件夹下的文件。虽然所有操作都可以手动完成,但 base 可以显著提高效率,属性以纯文本形式存储在 Markdown 文件的顶部。 评论区对 Obsidian Bases 的看法不一。有人认为它对于个人 CRM 非常有用,可以方便地追踪与联系人的互动记录。也有人认为,Obsidian 应该专注于提供优秀的 Markdown 编辑环境和可扩展性,而不是过度发展类似 Notion 和 Anytype 的功能。还有用户表示,Obsidian 的插件机制和使用方式让人感到困惑。总的来说,Obsidian Bases 为用户提供了一种新的组织和管理笔记的方式,但其适用性和易用性仍有待进一步观察。 - 原文: [Obsidian Bases](https://help.obsidian.md/bases) - Hacker News: [https://news.ycombinator.com/item?id=44945532](https://news.ycombinator.com/item?id=44945532) - 作者: twapi - 评分: 612 - 评论数: 198 - 发布时间: 2025-08-19 05:28:05 --- ## 英国放弃要求苹果开设加密后门 本文报道了英国放弃了要求苹果公司提供访问用户iCloud加密数据的后门的要求。美国国家情报总监Tulsi Gabbard在X上表示,经过几个月的合作,英国同意放弃这一要求,以确保美国公民的隐私数据和宪法权利得到保护。 此前,英国政府曾试图迫使苹果提供后门,以便访问嫌疑人的加密数据,但苹果一直强烈反对,认为这将威胁到所有用户的安全和隐私。苹果公司甚至威胁要停止在英国提供某些服务,比如高级数据保护(ADP) iCloud加密,如果英国政府坚持要求后门。现在英国放弃了这一要求,为苹果在英国恢复或推出更强的加密服务打开了大门。 这一决定被认为是苹果公司在保护用户隐私方面取得的胜利,也反映了各国政府在安全和隐私之间权衡时面临的挑战。放弃后门要求可能也与技术可行性、成本以及对更广泛网络安全的影响有关。 (由于原文不包含评论区内容,因此跳过评论分析部分。) - 原文: [UK drops demand for backdoor into Apple encryption](https://www.theverge.com/news/761240/uk-apple-us-encryption-back-door-demands-dropped) - Hacker News: [https://news.ycombinator.com/item?id=44950600](https://news.ycombinator.com/item?id=44950600) - 作者: iamdamian - 评分: 198 - 评论数: 57 - 发布时间: 2025-08-19 19:58:34 --- ## 如何使用 snprintf 函数来避免缓冲区溢出 这篇文章主要介绍了 `snprintf` 函数的一个鲜为人知的特性,即在不知道缓冲区最终大小时,如何利用它来安全地格式化字符串。`snprintf` 相比 `sprintf` 更加安全,因为它允许指定最大写入的字节数,从而避免缓冲区溢出。 文章的核心在于展示了如何使用 `snprintf` 来预先计算所需的缓冲区大小。首先,使用 `snprintf(NULL, 0, ...)` 来获取格式化字符串所需的长度,返回值就是所需的字符数(不包括 null 终止符)。然后,分配足够大的缓冲区(记得加上 null 终止符的空间),最后再次调用 `snprintf` 将格式化后的字符串写入缓冲区。文章作者还分享了一个自己编写的 header-only 库,旨在简化字符串格式化的过程,避免手动计算缓冲区大小。总而言之,文章强调了使用 `snprintf` 的重要性,以及如何正确使用它来避免潜在的安全问题。 评论区里也贡献了一些有用的信息。有人提到了 `asprintf` 和 `vasprintf` 函数,它们会自动分配足够大小的缓冲区,用完后需要手动 `free` 释放。虽然是 GNU 扩展,但在许多 BSD 系统和 Musl 库中也可用。另一位评论者指出,`snprintf` 的返回值是“如果缓冲区足够大,本应写入的字符数”,这与 `printf` 的返回值不同,如果不注意,可能会导致问题。还有人对文章中关于 `size_with_nul` 的解释提出了疑问,即如果 `size` 已经包含了 null 字节,为什么还要加 1。最后,有人分享了一个 `snprintf` 的 wrapper,可以自动进行 realloc 调用,方便动态调整缓冲区大小。这些评论从不同角度补充了文章的内容,提供了更多关于字符串格式化的实用技巧和注意事项。 - 原文: [How to Use Snprintf](https://bernsteinbear.com/blog/snprintf/) - Hacker News: [https://news.ycombinator.com/item?id=44923451](https://news.ycombinator.com/item?id=44923451) - 作者: surprisetalk - 评分: 38 - 评论数: 16 - 发布时间: 2025-08-16 21:53:39 ---

  

🫵 来啊,说点有用的废话!