每日HackerNews RSS

ScriptPlan是一个高精度、分钟级项目调度引擎,专为强大的资源分配和依赖管理而设计。它使用熟悉的TaskJuggler (.tjp) 文件格式,方便现有用户采用。该引擎以JSON或CSV格式将报告输出到标准输出,支持Unix风格的管道,可与`jq`和`csvkit`等工具无缝集成。 主要特性包括精确的时间物理(处理时区、闰年和夏令时)、复杂的资源约束管理(每日/每周限制、层级结构)以及先进的调度模式,如ASAP和ALAP,并具有优先级抢占功能。ScriptPlan擅长处理具有原子任务、间隙约束和零缓冲同步的复杂工作流程。 在内部,它采用整数运算以避免浮点数漂移,确保即使对于复杂的计划也能保持精度——通过成功调度跨越闰年边界的500个具有质数持续时间的任务来证明。它构建可靠,提供安全的并发执行和SHA256报告ID用于内容验证。ScriptPlan是开源的(Apache 2.0),并且是Highway Workflow Engine的一部分。

一个名为“Mission Critical Advanced Scheduling”(github.com/rodmena-limited)的新项目在Hacker News上引发了讨论。该项目是在周末快速开发完成的,主要通过LLM辅助移植和修改现有的开源项目TaskJuggler(从Ruby到Python)。由于移植代码的再授权,人们担心可能违反GPL许可协议。 该项目旨在成为一个超可靠的工作流编排引擎,利用PostgreSQL提供“银行级”可靠性。 幕后公司Rodmena Limited最近成立,由Revolut前工程负责人领导。 评论者质疑该项目“机场级”和“任务关键”认证的说法,指出缺乏支持证据。 许多人还认为该项目的文档不清晰,目的定义模糊,而另一些人则批评GPL许可协议在人工智能驱动的代码重用时代的效果。

《强殖舰队2》经过大规模优化,文件大小减少了85%——从154GB降至仅23GB,这得益于与Nixxes Software的合作。 这一显著减少是通过移除重复的游戏数据实现的,最初是为了改善老式机械硬盘(HDD)的加载时间。 开发者发现他们最初对HDD加载时间的预估不准确,这一更改只会为仍然使用HDD的11%玩家增加几秒钟的加载时间。重要的是,在《强殖舰队2》中,大部分加载时间实际上是由关卡生成造成的,而非资源加载。 PC玩家可以通过Steam的beta更新访问更小的“精简”版本,所有进度和购买将保留。 这一举措树立了一个积极的先例,鼓励其他开发者优先考虑PC游戏的存储空间优化。

印度已经撤销了此前要求智能手机制造商在所有新设备上预装政府运营的“Sanchar Saathi”网络安全应用程序的命令。最初的指令要求该应用程序不可卸载,引发了网络安全专家对隐私和监控的担忧,并遭到了苹果和三星等主要公司的抵制。 政府将此举解释为验证手机真伪和打击欺诈的一种手段——该应用程序的下载量和欺诈报告近期激增——但批评人士认为这侵犯了用户隐私。尽管通讯部长声称该应用程序不构成监控风险,但由此引发的强烈反对最终导致该命令被撤销。 政府以该应用程序的“日益普及”为撤销原因,但数字倡导团体仍持谨慎乐观态度,正在等待该决定的完整法律细节。

## 2013年的Rust:回顾 最近研究了最初的2013年Rust教程(版本0.5/0.6),发现它与今天的Rust语言大不相同。安装是手动进行的,依赖于tar包、Python 2.6,甚至Windows上的MinGW——与如今`rustup`的便捷性形成了鲜明对比。 “Hello, world!”程序展示了一个更简单的模块系统,其中核心模块全局可见,并且缺少`alloc` crate,这意味着向量位于`core`中。 早期的Rust缺乏有用的编译器错误,并且`fmt!`用于字符串格式化时不够直观。所有权和借用,现代Rust的基石,尚未完全发展,重点主要在于语法。引用 (`&T`, `@T`, `~T`) 复杂,管理有效性和所有权,而不是像现在这样防止别名。这些引用以及独特的生命周期系统,创造了一个具有挑战性的借用模型。 值得注意的是,Rust尝试过“push迭代器”甚至带有消息传递的绿色线程。由于Cargo的缺失,crate元数据存储在`.rc`文件中。虽然核心宏系统仍然出奇地相似,但整体体验要复杂得多。Rust的演变,特别是借用的简化和Cargo的引入,显著提高了其可用性,并为它目前的成功铺平了道路。

## Rust:从2012年至今 - Hacker News 讨论总结 一个由一篇2012年关于Rust的观察引发的Hacker News帖子,反思了该语言的演变。最初的讨论集中在早期接触Rust的经历上,Mozilla员工Steve Klabnik回忆说那是他第一次见到该语言的时刻。用户们争论设计选择,例如从Erlang风格的绿色线程转向零成本抽象。 对话涉及了Rust的异步特性持续存在的挑战,一些人认为它们冗长且未完成,与Go或Elixir中的解决方案相比。另一些人强调了自2015年Rust 1.0发布以来的稳定性改进,指出那个时代的的代码通常今天仍然可以编译,解决了对长期可维护性的担忧。 尽管Rust目前已被广泛采用于大型科技公司和关键基础设施,但仍有一些人批评Rust的语法,认为它“丑陋”且过于复杂。然而,许多人认为Rust目前是最接近“完美”的语言,即使承认仍有改进的空间。该帖子展示了一个积极参与讨论Rust的过去、现在和未来的社区。

HBO Max备受期待的《广告狂人》4K“修复”版存在严重质量控制问题。观众没有获得更好的观看体验,反而发现了明显的错误——最引人注目的是,原本被数字特效隐藏的拍摄设备显露出来。 早期观众注意到,在一段著名场景中,可以看到用于制造呕吐效果的“呕吐管”以及操作它的技术人员,揭示了原始的、未编辑的素材。这并非像《老友记》或《宋飞正传》修复版中那样简单的画面比例问题;《广告狂人》最初就是为宽屏格式制作的。 这些错误不仅限于这一场景,缺失的视觉效果也暴露了伪装成20世纪60年代纽约的现代洛杉矶拍摄地。最初,第一季的剧集标题和顺序也被打乱,但HBO Max正在积极纠正这些问题。讽刺的是,这次失败的修复反而提供了一种独特的幕后视角,展示了该剧后期制作过程以及数字操纵的程度,即使对于以风格现实主义而闻名的剧集而言。

编译器具有显著的代码优化能力,即使代码编写方式复杂也能有效优化。 这通过几个不同的ARM汇编例程展示,包括一个递归函数,它们都旨在简单地将两个数字相加 (x + y)。 尽管它们采用了不同的方法,编译器始终将它们简化为单个高效指令 `add w0, w1, w0`。 这种优化并非通过“愚蠢代码”模式数据库实现的。 相反,编译器将源代码转换为中间表示——一种简化、抽象的形式。 这使其能够识别数学等价关系,例如有效地递增值的 `while` 循环,并将不同的代码模式转换为标准“规范”形式。 在代码生成时,所有变体对优化器来说都看起来相同,从而实现强大且出人意料的转换。 本系列文章“编译器优化之旅2025”将深入探讨这一过程。

启用 JavaScript 和 Cookie 以继续。

关于 新闻 版权 联系我们 创作者 广告 开发者 条款 隐私政策和安全 YouTube 工作原理 测试新功能 © 2025 Google LLC

一个黑客新闻的讨论围绕着一个视频,该视频展示了将时间可视化而非地理空间——具体来说,是显示旅行时间的等时线地图。 用户分享了相关的工具,如Traveltime,它可用于根据通勤时间查找地点,尤其是在人口稠密的城市中。一个关键点是,由于速度和交通方式之间的连接不同,准确地将旅行时间表示为空间距离本质上是困难的;视频的方法虽然在视觉上很有趣,但通过“量化”问题引入了不准确性。 几位评论员讨论了通勤的个人经历,包括在巴黎等城市开车和停车的挑战,以及优化汽车/公共交通组合路线的应用程序的想法。最后,一位用户表达了对谷歌地图无法按旅行时间对搜索结果进行排序的沮丧,尽管它已经具备了估算能力。

## 多线程 Vulkan 渲染器:TBB 与 C++26 执行器 本文详细介绍了一项实验,比较了用于加速 Vulkan 渲染器项目启动的多线程方法。作者在优化《Stellaris》等游戏启动时间方面经验丰富,旨在利用多线程进行资源加载——具体来说是着色器编译和纹理解压缩——在渲染器开发期间。 最初,该过程是串行的。作者通过并行化着色器编译和纹理处理,对比了 TBB(线程构建块)实现,并取得了显著的速度提升。TBB 可预测的线程池以及与分析工具(Optick)的集成被证明很有价值。 接下来,作者测试了即将推出的 C++26 执行器(使用 NVIDIA 的 `stdexec` 实现)。虽然声明式、流水线风格的语法很有吸引力,但初步结果令人失望,任务串行执行。需要使用 `continues_on()` 解决方法来强制并行执行,这表明可能存在错误或可用性问题。 最终,作者发现 C++26 执行器比 TBB 更冗长和复杂,并担心隐藏的性能陷阱和编译时间增加。他们质疑如此复杂的功能是否应该直接包含在标准中,建议采用库优先的方法可能更明智,类似于 `unique_ptr` 和 `optional` 等功能的成功标准化。目前,他们计划继续使用 TBB 进行生产代码。

## C++26 执行器:摘要 一场 Hacker News 的讨论围绕着 C++26 执行器展开,这是一项旨在改进异步编程的提案。其核心思想是通过一系列步骤将同步函数转换为异步操作:添加一个延续,咖喱化函数,最后通过一个“发送者”对象引入另一轮评估。 虽然有望带来潜在的好处,例如减少内存分配(尤其是在与协程结合使用时),但评论员们对由此产生的代码的复杂性和可读性表示担忧。一些人指出,实际实现通常需要类型擦除和更高级别的抽象,这可能会抵消分配优势。 讨论还涉及跟上现代 C++ 不断发展的语法和概念的更广泛挑战,以及对代码理解和构建时间的影响。多位用户强调了基准测试和理解编译输出的重要性,而另一些人则提倡坚持更简单、更旧的 C++ 标准以提高可维护性。最终,该提案被认为功能强大,但对于许多用例而言可能过于复杂。

Codeberg 服务状态 抱歉,您似乎没有启用 JavaScript,或者您的浏览器不支持 JavaScript。本网站需要 JavaScript 才能正常运行。请在浏览器设置中启用 JavaScript 以继续。

## Codeberg 中断与讨论总结 Codeberg,一个日益流行的 Git 软件仓库,最近吸引了 Zig 等项目,经历了一次中断,引发了 Hacker News 的讨论。 最初的问题是 CI 失败,但迅速升级为一次长时间的停机,原因是 DDoS 攻击。 用户注意到 Codeberg 的透明度,提供实时状态页面,与 AWS 等大型提供商形成了鲜明对比。 对话扩展到关于 GitHub 和 GitLab 替代方案的更广泛讨论。 Sourcehut 被提及,但对其用户界面和所有者有争议的立场提出了担忧。 GitLab 最近的股价表现也被提及。 许多人强调了分布式版本控制和自我托管的好处,以减轻对集中式服务的依赖。 Codeberg 的法律结构是德国非营利组织 (e.V.),这使得被收购和以盈利为导向的变更不太可能。 虽然一些人推测中断是由于新用户增加的流量造成的,但另一些人认为这是一次持续的攻击。 这起事件引发了关于较小、独立平台是否需要强大的 DDoS 保护的争论。

更多

联系我们 contact @ memedata.com