每日HackerNews RSS

© 2025 Valve Corporation. 版权所有。所有商标均为其各自所有者在美国和其他国家/地区拥有。 增值税已包含在所有适用价格中。 隐私政策 | 法律 | 无障碍访问 | Steam 订阅者协议 | 退款 | Cookies 查看移动网站

## 异步代码中的死锁问题 最近的 Oxide 播客讨论了“futurelocks”——一个涉及异步代码的复杂 Rust 错误——促使人们更深入地研究一个长期存在的问题:由终结器(或 future)与受互斥锁保护的共享资源交互引起的死锁。 核心问题在于*协同地*运行终结器(如析构函数)——希望它们能快速完成——与主程序在同一线程上。 如果终结器尝试获取主程序已经持有的互斥锁,就可能导致死锁,如一个简化的 Python 示例所示。 根本原因并非新问题;几十年 ago,像 Hans Boehm 这样的研究人员就指出了终结器需要访问共享状态的危险。 一致的解决方案是在*单独的线程*上运行终结器,从而消除争用的可能性。 Rust 异步代码中的 futurelocks 共享这个问题:异步运行时希望 future 能够合作,但当一个 future 需要另一个 future 锁定的资源时,可能会导致死锁。 虽然异步代码提供了一些保障,但交错执行和对合作的依赖仍然是潜在问题。 作者对 futurelocks 的完美解决方案表示悲观,认为异步调度的固有复杂性使得完全预防变得困难,并倾向于传统线程的可靠性,尽管它有开销。

## 异步与终结器死锁:总结 一则Hacker News讨论集中在Python中使用`__del__`(终结器)的危险性,尤其是在异步代码中。核心要点是:**避免在`__del__`中编写复杂的逻辑**。理想情况下,它应该仅作为诊断工具,提醒开发者资源是否未显式关闭(例如,使用`.close()`或`with`语句)。 复杂的终结器可能导致死锁,如Redis客户端中的问题所示。问题在于,当终结器尝试与全局状态交互或获取锁时,可能会阻塞其他异步任务。 多位评论者建议了缓解这些风险的策略:将`__del__`限制为简单的诊断,使用单独的类专门用于资源管理,以及采用单线程、多进程的异步模式以完全避免锁。讨论还涉及其他语言中的类似问题(Java删除终结器,Rust的`futurelock`问题),并强调了仔细的设计和纪律对于防止并发问题的重要性。

© 2025 Valve Corporation. 版权所有。所有商标均为其各自所有者在美国和其他国家/地区拥有。 增值税已包含在所有适用价格中。 隐私政策 | 法律 | 无障碍访问 | Steam 订阅者协议 | 退款 | Cookies 查看移动网站

## Helm 4.0.0:首个稳定版本 Helm 团队发布了 Helm 4.0.0,这是一次重要的版本更新,引入了显著的改进。主要功能包括:重新设计的插件系统,支持 Web Assembly;服务器端应用;增强的资源监控;本地缓存;以及通过 `slog` 改进的日志记录。SDK API 已更新,支持多个图表 API 版本,包括实验性的 v3 版本。 虽然在 CLI 标志和输出方面与 v3 不兼容,但团队旨在使过渡比 v2 到 v3 的转变更加平滑。现有的 v2 图表仍然受支持,并且大多数工作流程*应该*继续正常运行。**鼓励测试**以确保兼容性。 未来发布计划于 2025 年 12 月 10 日(补丁版本 3.19.3 & 4.0.1)和 2026 年 1 月 21 日(小版本 3.20.0 & 4.1.0)。 在此处下载 Helm 4.0.0 并查找安装指南:[https://helm.sh/docs/overview/](https://helm.sh/docs/overview/) 团队对充满活力的社区的贡献和支持表示感谢。

## Helm 4.0 与 Kubernetes 复杂性 - 摘要 Helm 4.0 的发布引发了 Hacker News 的讨论,主要集中在 Helm 和 Kubernetes 部署的复杂性上。许多用户对 Helm 复杂的模板语言以及由此产生的“复杂地狱”表示沮丧,通常认为它对于简单的需求来说功能过于丰富。人们对初学者学习的困难和缺乏清晰的文档表示担忧。 Terraform、Kustomize、CUE,甚至直接使用原始 Kubernetes 清单等替代方案被提出。Terraform 被视为可行的替代品,尤其是对于已经使用它的用户而言。Kustomize 提供了一种更简单的定制方法,而 CUE 旨在实现更结构化、类型安全的配置。一些人提倡使用 Python 或 Go 等语言编写自定义解决方案,以获得更大的控制权。 一个反复出现的主题是对超越 Helm 模板的更强大的抽象工具的需求,一些人指出 CDK(云开发工具包)是一种更易读且功能更强大的解决方案。最终,这场讨论凸显了对更简单、更易于维护的 Kubernetes 部署管理方式的探索,并质疑 Helm 的复杂性是否在许多用例中是合理的。

## NetHack 4:设计理念 NetHack 4 最优先考虑**灵活性**——玩家能够以多种方式达成目标,甚至包括非预期的途径。 与一些专注于适应有限资源的roguelike游戏不同,NetHack 旨在让玩家*做*他们想做的事情,从而培养创造力和即兴发挥。 游戏既能满足寻求直接体验的休闲玩家,也能满足追求具有挑战性的自我限制(“行为规范”)的老玩家。 可重玩性源于这种自由; 即使在获胜后,玩家也可以探索新的策略和解决方案。 设计避免惩罚实验,即使是看似无用的选项,因为相信发现和非寻常的解决问题是享受游戏的关键。 为了支持这一点,NetHack 专注于清晰的信息和玩家控制。 界面改进旨在确保行动与意图一致,并且角色发展是健全的,提供诸如许愿魔杖之类的工具。 游戏避免过度的重复劳动,并通过奖励冒险和在整个游戏中提供有意义的战略选择来鼓励探索。 最终,NetHack 4 努力成为一款始终可以获胜的游戏,*同时* 呈现新鲜且引人入胜的问题,重视玩家的主动性和发现感。

## 老技术,新花样:在20年前的PowerBook上运行AI 如今,苹果的M系列芯片占据了头条,但该公司之前曾使用PowerPC处理器。 近期,复古计算爱好者Andrew Rossignol证明了这些旧芯片并未过时,他成功地在2005年的PowerBook G4上运行了一个大型语言模型(LLM)。 尽管这台机器存在局限性——1.5GHz处理器和仅1GB的内存——Rossignol将一个开源LLM推理引擎(llama2.c)和TinyStories模型适配到了PowerPC的大端架构。 这需要大量的软件修改和手动内存管理。 性能较慢,文本生成速度为每秒0.77个token,而现代Intel Xeon为6.91个。 然而,利用PowerPC的AltiVec向量处理扩展,将其提升到每秒0.88个token。 这项实验表明,通过巧妙的优化,即使是二十年前的硬件也能参与到现代AI中,推动了旧技术可能性的边界。

## PowerPC 与 LLM:复古计算的复兴 一篇最近的 Hackster.io 文章展示了在 PowerPC G4 笔记本电脑上运行 Llama 大型语言模型,这在 Hacker News 上引发了热烈讨论。发帖者和其他人透露,他们成功地在各种“奇特、老旧的系统”上运行了 LLM(包括 llama.cpp 和 qwen3.c),包括 SPARC、PA-RISC、RISC-V、Alpha、POWER 9 以及各种 x86/ARM 平台。 对话突出了旧硬件令人惊讶的能力,一位用户分享了一段 SGI 系统运行 LLM 的视频。讨论还涉及苹果公司通过与 IBM 和摩托罗拉的 AIM 联盟在 PowerPC 的创建中所扮演的角色,明确了他们尽管没有直接制造芯片,但参与了工程设计。 许多评论者表达了对旧款苹果 PowerPC 笔记本电脑(如 iBook G4)设计质量的怀旧之情,并分享了即使在今天将其用于日常任务的经验,通常依赖远程浏览器解决方案来克服网络兼容性问题。该帖子强调了人们对利用旧硬件进行现代应用(如人工智能)的兴趣日益增长,利用高效的矩阵运算。

经过16年的开发,Waymo现在将其自动驾驶出租车服务扩展到包括在旧金山、凤凰城和洛杉矶的高速公路驾驶。这标志着该公司的一个重要里程碑,可能将乘车时间缩短高达50%,并将其服务范围扩展到更广泛的郊区和机场,如SFO和圣何塞。 最初,高速公路乘车选项将通过Waymo应用程序中的偏好设置提供。此次扩展在旧金山半岛创造了260英里的服务区域,并包括在圣何塞和凤凰城机场的路边接送服务。 Waymo强调掌握自动驾驶高速公路驾驶的复杂性,需要大量的测试——包括道路测试和模拟测试——以确保安全性和可靠性。该公司还与加州公路巡警等安全官员协调,为此次扩展做准备。此举对于Waymo与竞争对手竞争并吸引需要更长距离、高效交通运输的更广泛用户群至关重要。

最初,作者们被公有云基础设施的易用性所吸引,但随后发现成本失控、支持不透明,且创新受到供应商的限制。他们发现 Kubernetes 提供了一种强大的替代方案:一个用于构建私有云的可编程基础。 Kubernetes 提供了与公有云相同的基础云功能——弹性计算、持久存储、托管数据库等——但*没有*供应商锁定。通过利用 Rook/Ceph 和 CloudNativePG 等开源工具,他们获得了对计算位置、数据驻留和可预测预算的控制权。 这种转变使团队能够掌控自己的路线图,并优先考虑弹性、合规性和成本效益。虽然管理基础设施需要对自动化进行投资,但成熟的工具(如基础设施即代码和 Operators)现在简化了这一过程。Kubernetes 并没有完全取代公有云,而是将其重新定义为一种*选择*,而不是必需品,使组织能够在他们真正控制的基础设施上构建。

经过238年,美国一美分硬币因铸造成本——几乎每个硬币四美分——而停止生产。特朗普总统在二月份宣布了这一决定,理由是财政效率低下。虽然一美分硬币仍然是法定货币,但其停用却出乎意料地造成了破坏。 零售商在现金交易中面临挑战,因为许多州要求精确找零。一些商家正在四舍五入价格,可能每年给消费者造成约600万美元的损失,而另一些商家则要求顾客提供一美分硬币。政府除了最初的社交媒体公告外,缺乏明确的指导,导致了“混乱”的局面。 此举甚至可能*增加*成本,因为生产更多的五美分硬币对铸币厂来说成本更高。像“美国共同一美分”之类的团体,由一美分硬币坯料制造商资助,正在倡导立法解决方案,以允许四舍五入并避免法律问题,特别是关于SNAP等项目。尽管一美分硬币的历史可以追溯到1787年,并且一些人对其怀有怀旧之情,但其使用量的下降导致公众对其停用的反应相对平淡。

《立即学习Prolog!》是一门面向初学者的课程,旨在介绍Prolog编程,提供在线版本(自2001年起)和书籍形式。其核心目标是为几乎没有或没有先验计算经验的人们提供一个自包含、易于理解的资源。 然而,该课程强调Prolog最好通过*实践*来学习。虽然文本提供了基础理解,但作者强烈鼓励读者积极练习,使用Prolog解释器并完成提供的练习——以及超越练习! 课程创建者欢迎反馈和建议,以不断改进课程的未来版本,旨在创建一个进入Prolog编程世界的有价值的入口。

更多

联系我们 contact @ memedata.com