启用 JavaScript 和 Cookie 以继续。
启用 JavaScript 和 Cookie 以继续。
## 苹果推出钱包中的数字身份 苹果公司宣布推出**数字身份**,这是一种新的安全方式,可直接在苹果钱包中存储和展示身份信息,利用美国护照的信息。 这扩展了身份验证选项,超越了驾照,为那些没有符合REAL ID标准的州身份证件的人提供了解决方案。 用户可以通过扫描护照与他们的iPhone,完成面部验证,并将数据安全地存储在他们的设备上,来创建数字身份。展示通过iPhone或Apple Watch使用Face ID或Touch ID进行身份验证,确保隐私——苹果无法访问展示数据。 最初,数字身份将在超过250个美国机场的TSA安检点进行国内旅行的测试。未来的扩展包括在企业和应用程序中用于年龄和身份验证。需要注意的是,数字身份*不能*替代实体护照用于国际旅行。 目前,驾照和州身份证件也在苹果钱包中提供,适用于12个州和波多黎各,最近在日本国际推出。
## 从零开始构建 CI/CD 流水线 Runner 本文详细介绍了使用 Python 创建 CI/CD 流水线 Runner 的过程,旨在揭示 GitLab Runner 和 GitHub Actions 等工具的内部工作原理。作者最初对这些工具的配置缺乏深入理解,为了在隔离环境中构建自定义解决方案,从而深入研究了其核心组件。 该 Runner 的构建分阶段进行,首先是在 Docker 容器中执行单个任务,然后是具有顺序执行的多阶段流水线,再到使用多进程并行执行任务。 重要的是,最终版本包含了依赖管理和任务之间的工件传递,从而模拟了真实的 CI/CD 功能。 核心组件包括:配置解析器、使用拓扑排序的依赖解析器、任务调度器和任务执行器。 虽然这个 Runner 演示了基本概念,但生产级别的工具会添加诸如分布式执行、缓存、Webhook 和强大的安全性等功能。 该项目是一个有价值的学习工具,可以深入了解 CI/CD 架构,并使开发者能够在必要时进行故障排除、自定义甚至构建自己的流水线。 进一步的开发可以包括诸如 Web UI、缓存机制和分布式执行能力等功能。
## FreeBSD 探索:初步观察 我一直在虚拟机上测试 FreeBSD,为将来在即将到来的 Framework 笔记本电脑上切换做准备(取代一台老旧的 X1 Carbon)。Framework 的 Linux/BSD 兼容性,加上 FreeBSD 基金会改进笔记本电脑支持的努力,使其成为理想的候选者。我的目标是在投入之前评估 FreeBSD 是否值得付出努力。 为什么选择 FreeBSD?它的吸引力在于更连贯的系统设计——统一的内核和用户空间——简化了贡献,并可能提供更大的稳定性以及充足的软件可用性。虽然我对 Fedora Silverblue 感到满意,但 FreeBSD 却提供了一个有趣的替代方案。 初步设置涉及在 M1 Mac Mini 上使用 ZFS 的虚拟机。网络需要进行一些配置调整(服务命令接口规范,DNSSEC 处理),并考虑了默认设置调整(ASLR,PID 随机化,安全功能)。`pkg` 包管理器速度很快,但缺乏并发下载,而且 FreeBSD 社区可能不太友好。 目前尚不清楚这些好处——统一的系统、ZFS、潜在的稳定性——是否超过了与 Linux 相比的怪癖和 CLI 差异。明确的评估需要在 Framework 笔记本电脑上进行测试,特别是评估 KDE 性能和硬件支持。最终,我需要确定 FreeBSD 是否提供了能够证明过渡的切实优势。后续文章将详细介绍我在物理硬件上的体验。
© 2025 Valve Corporation. 版权所有。所有商标均为其各自所有者在美国和其他国家/地区拥有。 增值税已包含在所有适用价格中。 隐私政策 | 法律 | 无障碍访问 | Steam 订阅者协议 | 退款 | Cookies 查看移动网站
## 异步代码中的死锁问题 最近的 Oxide 播客讨论了“futurelocks”——一个涉及异步代码的复杂 Rust 错误——促使人们更深入地研究一个长期存在的问题:由终结器(或 future)与受互斥锁保护的共享资源交互引起的死锁。 核心问题在于*协同地*运行终结器(如析构函数)——希望它们能快速完成——与主程序在同一线程上。 如果终结器尝试获取主程序已经持有的互斥锁,就可能导致死锁,如一个简化的 Python 示例所示。 根本原因并非新问题;几十年 ago,像 Hans Boehm 这样的研究人员就指出了终结器需要访问共享状态的危险。 一致的解决方案是在*单独的线程*上运行终结器,从而消除争用的可能性。 Rust 异步代码中的 futurelocks 共享这个问题:异步运行时希望 future 能够合作,但当一个 future 需要另一个 future 锁定的资源时,可能会导致死锁。 虽然异步代码提供了一些保障,但交错执行和对合作的依赖仍然是潜在问题。 作者对 futurelocks 的完美解决方案表示悲观,认为异步调度的固有复杂性使得完全预防变得困难,并倾向于传统线程的可靠性,尽管它有开销。
© 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/) 团队对充满活力的社区的贡献和支持表示感谢。
## 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中,推动了旧技术可能性的边界。