每日HackerNews RSS

像 Opus 4.8 和 Sonnet 5 这样较新的 Anthropic 模型出现了一种退化问题:它们经常在工具调用中注入“幻觉”键(如 `type`、`id`、`matchCase`),导致调用无法通过验证。虽然旧版本模型能妥善处理自定义工具模式,但最新版本却表现得力不从心——讽刺的是,它们在遵循非标准模式方面反而“变差”了。 作者推测,这是 Anthropic 内部闭源工具“Claude Code”进行强化学习(RLHF)所产生的副作用。由于 Claude Code 具有极高的容错性——能够静默修复格式错误的工具调用、过滤未知键并支持别名——模型被训练得预期处于一个“对错误宽容”的环境中。因此,这些模型对 Claude Code 所使用的特定编辑模式形成了强烈的固定偏见,导致它们难以适应其他定义严格的模式。 这表明工具模式已不再是“中立”的协议,而是受到模型训练后环境隐藏偏见的影响。作者总结认为,开发者可能需要依赖严格的语法约束解码来确保可靠性,因为现代模型正日益针对某种特定的、未公开的工具生态进行优化。

这篇 Hacker News 的讨论凸显了先进大语言模型(LLM)与其交互“工具/代理”(harnesses)之间日益紧张的关系。 核心问题在于,模型在调用工具时往往难以处理语法,频繁插入“冗余内容”或虚构字段。用户提出了三种主要的应对策略: * **稳健的错误处理:** 开发者不应让系统静默失败,而应提供清晰、可操作的错误提示,引导代理在下一次尝试时纠正特定错误。 * **确定性钩子(Deterministic Hooks):** 许多参与者主张用“钩子”代替传统的技能调用。通过将逻辑卸载到 LLM 之外确定性运行的代码中,开发者可以确保可靠性、降低成本并强制执行护栏(例如在提交更改前运行测试)。 * **系统性担忧:** 许多评论者怀疑,前沿模型正针对专用环境(如 Claude Code)进行专门的强化学习调整,这导致它们在独立或自定义环境中使用时表现得“草率”。 归根结底,大家的共识是:开发者必须停止将代理视为万无一失的黑盒。相反,应将工具交互视为一个标准的 UI/UX 设计问题,优先考虑清晰的反馈和确定性的约束,以弥合模型“智能”与可靠输出之间的鸿沟。

**.splat4d** 格式是一种高性能、可流式传输的动态 4D 高斯溅射(Gaussian Splatting)容器,其压缩率比原始文件高出 16–58 倍。通过将静态背景与动态运动分离,并采用 H.265 风格的“闭合 GOP”数据块,它支持通过 HTTP Range 请求直接从标准对象存储(如 S3/GCS)进行即时跳转和低延迟播放。 主要技术特性包括: * **误差界限量化(Error-Bounded Quantization):** 保证点对点的确定性精度(例如位置误差在 ±2mm 以内),确保 Rust 和 JavaScript 解码器在重建时位一致。 * **高效流式传输:** 元数据头允许客户端仅获取必要数据,在约 150 毫秒内渲染关键帧。 * **优化:** 使用 Morton 排序、时间死区跟踪和 Zstd 压缩,以实现接近最优的熵压缩。 * **原生 Web 支持:** 由 WebGPU 渲染器驱动,支持在浏览器中以 60fps 流畅播放复杂的动态场景。 该格式专为易用性设计,无需服务器端逻辑或复杂的清单文件,仅需静态托管即可。它非常适合需要极高压缩率和快速随机访问流式传输的高保真交互式 4D 内容。

抱歉。

在用 Rust 重构其 JavaScript 引擎解析器时,作者发现了一个罕见的编译器错误:Rust 编译器(`rustc`)中一个“p-critical, i-miscompile”级别的错误。 问题出现在作者优化 `consume_test` 方法时,他将标准的条件分支比较改为了 `bool as u32` 强制类型转换并随后进行加法运算。解析器随即无法处理简单的 for 循环。在检查了生成的汇编代码后,作者发现编译器实质上“吞掉”了一个必要的增量操作,违背了代码逻辑。 由于怀疑是真正的编译错误而非用户代码问题,作者创建了一个最小复现用例并提交了错误报告。Rust 社区反应迅速,该问题被确认为关键错误,团队成员在 18 小时内编写并合并了修复程序。这次经历凸显了一个罕见的事实:即使在内存安全的语言中,编译器错误也可能破坏程序员与语言之间的契约。最终,作者成功指出了编译器的一个缺陷,证明了有时候,“真的是编译器的问题”。

此次讨论围绕一篇关于 Rust 编译器“错误编译”(miscompile)的博文展开。这是一类罕见且关键的缺陷,指编译器对代码进行了错误的优化,从而可能破坏 Rust 的“安全”保证。 Hacker News 讨论帖中的核心要点包括: * **严重性:** 用户指出,“p-critical, i-miscompile”类别的缺陷非常危险,因为它们违反了程序员与编程语言之间的核心契约。尽管这类缺陷数量很少,但它们突显了激进编译器优化所固有的复杂性和风险。 * **优化权衡:** 评论者就优化的本质展开了辩论。有人建议编译器应优先提供警告,而非进行静默且复杂的转换。另一些人则认为,现代优化(如 LLVM 中的优化)对于性能至关重要,且在针对多种架构时,很难通过可读的源代码手动实现同等效果。 * **编译器可靠性:** 资深程序员分享了一些关于“不是编译器的问题”这一经验法则的轶事,并指出虽然通常情况确实如此,但编译器——即便是在成熟的编译器中——也是复杂的系统,同样可能出错。 总而言之,此次讨论提醒我们,编译器级别的缺陷虽然罕见,却是软件工程中一个根本性的风险,即便是“安全”语言也无法完全消除。

位于威克洛郡的波斯考特酒店取消了一场由美国科技亿万富翁彼得·蒂尔共同创立的受邀制团体“对话”所举办的备受瞩目的“秘密”会议。据报道,该活动原计划讨论核能及“第三次世界大战”准备工作等议题,但因涉及帕兰泰尔公司而遭到强烈抵制,该公司因与以色列军方的战略伙伴关系而备受批评。 此次取消是在亲巴勒斯坦活动人士、反对派政客以及波斯考特庄园本身的巨大压力下做出的,庄园方面对这一决定表示宽慰。以“放弃对话”为旗号组织抗议活动的运动人士称赞此举是“人民力量”和直接行动的胜利。 尽管该活动将不再在波斯考特举行,但活动人士警告称,他们将密切关注该会议是否有意转移至爱尔兰的其他场地。他们向其他酒店发出了明确警告,要求避免接待该团体,倡导者们强调,此类集会与爱尔兰社会在声援巴勒斯坦问题上的强烈民意相悖。

抱歉。

人工智能从根本上改变了软件开发,它并没有减少代码的总量,而是将编程从一种专门的职业转变为一项通用能力。 尽管软件行业的整体就业人数保持稳定,但“初级”程序员——即那些受雇按规范编写代码的人——的市场已经崩溃。数据显示,22至25岁人群的入门级招聘和就业人数急剧下降。相反,数以百万计的非工程师正在利用人工智能开发软件,这导致了代码仓库创建数量破纪录,以及 App Store 提交应用数量的激增。 传统的软件工程师“晋升阶梯”已经断裂:由于人工智能现在可以处理初级任务,过去用于培养未来高级开发人员的学徒模式已经消失。尽管一些公司正在尝试新的初级岗位,但整个行业仍面临严峻挑战。随着编程从一个具体的职位演变为一种通用技能(类似于打字),行业必须建立一种培养高级判断力的新方法。如果不能为人才创造新的“入门通道”,当前软件创作的繁荣将因缺乏经验丰富的专业人员来监督所生成的代码,从而在未来面临不稳定的风险。

关于人工智能是否已经“摧毁”了初级程序员就业市场的 Hacker News 讨论揭示了行业内巨大的分歧。许多专业人士证实,初级职位的招聘已显著放缓甚至完全停止,因为企业现在更倾向于雇佣能够利用 AI 工具替代整个初级团队产出的资深开发人员。 反对“唯 AI 论”的观点则认为,由于市场调整以及 2021 年至 2024 年招聘热潮中涌入的大量不合格候选人,初级就业市场早已处于衰退之中。一些招聘经理表示,应聘者技术能力不足,且对软件工程缺乏真正的热情,这让他们感到沮丧。 另一方面,一些参与者认为这种转变是编程的“平民化”,非开发人员现在也可以为各自的领域构建工具。然而,经验丰富的工程师们普遍持悲观态度:他们认为,如果没有入门级岗位,培养未来资深人才的渠道就会被切断。尽管有人建议 AI 可以加速初级人员的学习,但大多数专业人士坚持认为,实践经验和指导是早期职业生涯中无可替代的部分。

以下是上述内容的中文翻译: 此摘要涵盖了 2026 年上半年 Zig 语言的主要进展: **编译器架构与构建系统** 最重要的变化是将 `zig build` 过程拆分为“配置器”(用户脚本)和“构建器”(构建系统)。这实现了构建配置的缓存,显著提升了性能,并允许构建系统在优化模式下运行。包管理现已移至构建器进程中,简化了依赖项处理。此外,全新的原生 ELF 链接器实现了快速的增量构建。 **语言与工具链增强** * **SPIR-V:** 后端进行了重大改进,包括新增 `@SpirvType` 内置函数、多线程代码生成以及更好的链接器集成。 * **@bitCast:** 重新定义了基于逻辑的语义,提高了跨平台的一致性,并支持了性能优化。 * **类型解析:** 内部经过重构,提升了编译器性能,并优化了错误提示(特别是在处理循环依赖时)。 * **Windows:** Zig 正逐步增加对原生 `ntdll` API 的支持,以替代 `kernel32`,旨在减少冗余并提高可靠性。 * **Libc:** 该项目持续使用原生 Zig 实现替换现有的 C 代码,从而提高了编译速度并减小了二进制文件大小。 * **I/O:** 基于用户态栈切换(“纤程/fibers”)的实验性 `std.Io.Evented` 支持正在开发中。

Zig 最近将所有的包管理功能从编译器中剥离,并整合进其构建系统中。这一设计变更在 Hacker News 上引发了热烈讨论。 支持者认为,将包管理与编译器解耦提升了架构清晰度,并符合该语言的长期目标。然而,一些用户对由此产生的复杂性表示不满,将其比作“从油箱里抽出冷却液”——并质疑这些功能当初为何会被耦合在一起。 讨论的很大一部分集中在使用 WebAssembly (WASM) 来沙盒化构建脚本的可能性上。支持者认为这将提供一种安全且可审计的方式来处理第三方依赖,但怀疑论者认为,只要构建系统最终需要与外部工具交互,真正的安全性就难以实现。 讨论还触及了编程语言开发的宏观哲学,用户赞扬了 Zig 相比于人工智能生成的替代方案,其“健康”且以人为本的方法。归根结底,这一讨论反映了业界在集中式包管理、构建系统安全性以及构建高效跨平台工具的持续挑战之间,所存在的广泛分歧。

该项目为 Apple Silicon Mac、iPhone 和 iPad 带来了《命令与征服:将军 – 零点行动》的原生性能。通过将 2003 年原始引擎源码编译为 ARM64 架构,并利用转换层(DXVK/MoltenVK),游戏无需模拟即可运行。它还针对移动端优化了触控操作,包括框选和双指缩放功能。 此版本基于 EA 开源的源码,并在 *GeneralsX* 移植的基础上增加了对 iOS/iPadOS 的支持以及关键的引擎修复。请注意,**不包含游戏资源文件**;用户必须拥有正版副本(例如通过 Steam),才能下载必要的数据。 该项目提供了适用于 macOS 和 iOS 的完整构建脚本,需要 Xcode 和特定的开发工具。尽管该移植版功能完善,但仍处于持续开发中,已知在 iOS 长时间运行期间存在内存管理方面的局限性。详细文档(包括技术“移植指南”和 AI 辅助开发过程的完整工程日志)可在仓库中查阅。 **核心资源:** * **源码:** [GitHub - Generals-Mac-iOS-iPad](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad.git) * **需求:** 原始游戏资源(需拥有 Steam 版)。 * **鸣谢:** 由 Ammaar Reshi 使用 Claude Code 工程化开发。

一位开发者近期宣布将《命令与征服:将军(零点行动)》原生移植到了 iOS 和 iPadOS 平台。尽管该项目被标榜为利用 Claude “Fable” 进行 AI 辅助开发的成功范例,但社区对此反应不一。 **讨论要点:** * **项目范围:** 该项目依赖于 EA 根据 GPL v3 协议发布的源代码以及现有的 *GeneralsX* 分支。后者此前已经完成了将游戏移植到 Linux 和 macOS 的大部分“重活”。AI 辅助贡献主要集中在添加 iOS/iPadOS 支持、触摸控制以及一些细微的引擎修复上。 * **“氛围编程”与现实:** 许多评论者批评标题有标题党之嫌,指出 AI 并非从零开始移植了整个游戏。批评者认为,AI 的作用被夸大了,旨在为 Anthropic 的工具制造炒作热度。 * **软件的未来:** 该帖子引发了关于“AI 代理”工作流程的更广泛讨论。支持者认为,大语言模型(LLM)使独立开发者能够复活被废弃的软件并更新老旧的代码库,有效地将经典的开源问题——“谁来维护这个项目?”——的答案从“一个团队”改写为“我和我的 AI 助手”。 * **担忧:** 持怀疑态度者仍对“劣质代码”(指难以理解的机器生成代码)、移植版本的高内存占用,以及当开发者不再完全掌握底层实现时可能导致的长期可维护性丧失表示担忧。

本文旨在提供多旋翼无人机物理与控制的技术概述,假设读者具备线性代数、微积分及力学背景。 **核心框架:** * **坐标系:** 使用北-东-地 (NED) 惯性坐标系及机体坐标系,并采用泰特-布莱恩角(偏航角、俯仰角、翻滚角)来定义姿态。 * **动力学:** 通过 12 个变量(位置、速度、姿态及角速度)来描述无人机状态。利用牛顿第二定律,并通过**输运定理 (Transport Theorem)** 来计算旋转参考系内的力和力矩。 * **推进系统:** 推力和力矩由电机转速推导而来,无刷直流 (BLDC) 电机动力学则通过电压、电流及摩擦力进行建模。 * **控制:** 控制过程分为两部分: 1. **控制分配:** 通过混合矩阵将所需的净力和力矩转换为各螺旋桨转速,通常利用分配矩阵的伪逆来实现。 2. **参考轨迹跟踪:** 使用级联 PID 控制器将航点误差转换为速度、姿态指令,最终转化为电机推力和力矩指令。 本文作为复杂无人机行为建模的入门指南,后续可应用于轨迹规划及自主飞行领域。

这篇 Hacker News 讨论聚焦于一篇解释无人机飞行背后物理原理的文章。虽然作者将其定位为从零推导运动方程的基础学习资料,但一些用户认为其中的数学表达(涵盖线性代数、微积分和经典力学)过于晦涩。 讨论中强调了几个关键的技术要点: * **控制挑战:** 专家指出,文章忽略了四元数(quaternions),这是一种比文中提到的泰特-布莱恩角(Tait-Bryan angles)处理旋转更高效的方法。 * **无人机力学:** 讨论涉及为何四旋翼(四个转子)是实现稳定与控制的标准,以及它们如何应对“欠驱动”(under-actuation)状态。 * **飞行动力学:** 讨论中有很大一部分集中在快速垂直下降时“螺旋桨洗流”(prop-wash)和“涡环状态”(Vortex Ring State)带来的困难。用户争论了这些问题最好通过硬件设计、PID 调参,还是像“动力俯冲”(power dives)这样的飞行机动来解决。 * **仿真:** 对于有兴趣构建自己无人机仿真系统的用户,评论者推荐了 MuJoCo 等工具以及特定的电机数据库。 总的来说,该讨论串在学术物理与构建和驾驶无人机时往往需要直觉的实践现实之间,架起了一座协作的桥梁。

在开发 Game Boy Advance 游戏时,可以使用 mGBA 的内存映射日志寄存器来实现类似 `printf` 的调试功能。通过向特定的内存地址(`REG_LOG_ENABLE`、`REG_LOG_BUFFER` 和 `REG_LOG_SEND`)写入数据,你可以将调试信息直接输出到模拟器的日志窗口或终端。 要实现此功能,请创建一个辅助函数,用于格式化信息并将其写入这些寄存器。为方便起见,你可以结合 `vsnprintf` 来支持标准的 C 语言格式化(例如 `mgbalog(DEBUG, "x=%i", x);`)。 由于记录日志会产生性能和内存开销,因此应将其从最终版本中排除。你可以通过将日志实现代码包裹在 `#ifdef MGBALOG` 代码块中,并为 `mgbalog()` 函数使用预处理器宏来实现这一点。这样,你既可以在代码库中保留日志调用,又能确保在禁用 `MGBALOG` 标志时将它们完全从编译中剔除。这种简单的设置可以显著简化调试过程,且不会影响游戏的最终发布。

这个 Hacker News 帖子讨论了一篇关于实现 Game Boy Advance (GBA) 开发控制台日志的博文。 评论区主要有两点收获: 1. **手动编程的乐趣**:多位用户表达了对 GBA 和复古风格开发(如 Picotron 或 TIC-80)的热情。他们强调了一种日益增长的趋势:开发者在个人项目中刻意避开大语言模型(LLM),以重拾从零开始构建软件的满足感,这与他们依赖 AI 的职业工作形成了令人耳目一新的对比。 2. **技术最佳实践**:一位评论者为 C 语言开发者提供了一个关于宏定义的实用建议。虽然空宏在简单的日志记录中有效,但他建议使用 `do { ... } while (0)` 进行封装。这种技巧能确保宏表现得像单一的稳健语句,从而防止在 `if/else` 代码块中使用或开启严格编译器警告时出现语法错误或逻辑漏洞。

EndBASIC 0.14 现已发布,这是该项目迈向 1.0 版本的重要里程碑。与侧重性能的 0.13 版本不同,本次更新引入了多项旨在降低复古风格游戏开发门槛的新功能。 主要更新包括: * **新图形功能**:添加了三角形、多边形和区域填充的图元,并附带了新的交互式演示。 * **复古美学**:全平台统一采用经典的 IBM VGA 8x16 字体替代了 TTF 字体,以增强一致性和“复古”感。 * **声音支持**:新增 `BEEP` 和 `SOUND` 命令,支持通过现有的控制台框架进行音频播放。 * **执行优化**:增强了对在类 Unix 系统上作为独立脚本运行 EndBASIC 程序的支持,并支持使用类似“Emacs 风格”的属性行在文件内配置控制台设置。 * **错误修复**:解决了 macOS 上 SDL 图形控制台的线程问题,修复了关键的启动崩溃故障。 尽管在 macOS 上的二进制代码签名方面仍存在挑战,但此次发布实现了该项目 2020 年的初衷:让用户能够以 BASIC 语言的简洁性来创作小游戏。用户可在项目的 `NEWS.md` 文件中了解更多详细信息。

更多

联系我们 contact @ memedata.com