每日HackerNews RSS

## Rust 的一致性与生态系统演进 – 摘要 Rust 的设计,特别是其一致性规则,给生态系统发展带来了挑战。一致性规定一个 trait 对于给定类型只能有一个实现,而“孤儿规则”限制了这些实现可以定义在 *哪里*。这使得演进基础 crate(如 `serde`)变得困难:任何替代的序列化库都需要使用原始库的 *每个* crate 都添加支持,这是一项巨大的工程。 这个系统偏向于已经建立的 crate,即使出现更好的替代方案,因为分叉和修补通常比广泛的重新实现更容易。核心问题在于语言本身,而不是单个库。 虽然一致性确保了类型安全,但放宽规则的提议(如二进制 crate 免除、延迟一致性或一致性域)尚未完全解决“生态系统演进问题”——替换已建立 crate 的困难。 一种潜在的解决方案是将 trait 实现视为具有显式命名和选择的 *值*,允许重叠的实现,并可能完全移除一致性。这将需要重大的语言更改,但可以释放更大的灵活性和创新,尽管迁移和保持健全性方面的挑战仍然存在。最终目标是在 Rust 的优势与对更具适应性的生态系统的需求之间找到平衡。

## Rust 的一致性辩论与生态系统问题 一篇最近的博文引发了 Hacker News 上关于 Rust 复杂性以及其严格一致性规则(通常称为“孤儿规则”)潜在弊端的讨论。虽然许多人喜欢 Rust 的安全性和性能,但一些人越来越担心复杂的语法使其可访问性降低,并阻碍了生态系统的发展。 核心问题在于扩展在外部 crate 中定义的类型。Rust 的规则阻止你在没有复杂变通方法的情况下向你未拥有的类型添加功能(如序列化)。这与 Scala 等提供更多灵活性的语言形成对比。人们担心这会强制进行不必要的 fork 和重复劳动,尤其是在尝试与广泛使用的 crate(如 `serde`)集成时。 评论者争论这是否是根本缺陷,还是为了 Rust 的稳定性和防止冲突实现而必须做出的权衡。一些人指出了 C++ 自身的复杂性,而另一些人则强调了成功的变通方法,例如包装类型。一个关键点是 Rust 是否变得过于理论化,可能会疏远那些想要一种实用、易于理解的系统编程语言的开发者。最终,讨论的中心是平衡 Rust 的雄心勃勃的目标与可用性,并促进一个繁荣的生态系统。

## 测绘的局限与科学发现的未来 豪尔赫·路易斯·博尔赫斯关于一个帝国创建一张与领土本身一样大的地图的寓言,说明了知识领域的一个关键挑战:过多的细节可能变得不切实际,并掩盖真正的理解。虽然当今的AI擅长创建庞大的“地图”——例如,在海量数据集上训练的大型语言模型或预测蛋白质结构系统——但仅仅*更多*的信息不足以实现真正的科学进步。 文章认为,真正的突破需要范式转变,而不仅仅是在现有框架内进行更精确的预测。就像哈里·贝克重新设计的伦敦地铁地图一样,科学有时需要一个根本不同的“示意图”,一个更简单、更统一的原理。目前专注于最小化预测误差的AI,难以实现这种概念上的飞跃。 为了避免“超常态科学”——预测能力提高但缺乏新的探索——我们需要设计能够生成*新的*概念词汇的AI,而不仅仅是分析现有的词汇。这需要理解范式转变*如何*发生,可能通过将科学机构作为一个系统来研究,并利用AI探索不同的研究条件。最终,加速科学发展不仅仅是扩大计算规模,而是要刻意地创造破坏性发现的条件。

## LocalStack 更新与概述 LocalStack 是一个强大的框架,用于在本地开发和测试 AWS 应用程序,在一个 Docker 容器内模拟 Lambda、S3 和 DynamoDB 等云服务。 这加速了开发并简化了测试,无需连接到远程云提供商。 **重要更新:** 为了提高可靠性和简化开发,LocalStack 团队已整合到一个统一的镜像中。 原始仓库现已存档并变为只读,所有资源都集中在核心 LocalStack 体验上。 现有的贡献备受重视,并仍然是项目未来的重要组成部分。 **入门:** LocalStack 可以通过 Brew、二进制下载或 pip 安装。 `localstack-cli` 管理 Docker 容器,而 `awslocal` 与模拟的服务交互。 详细的文档和用户指南可在网上找到。 Pro 版本提供扩展的 API 支持和高级功能。 您可以在官方 LocalStack 网站上找到更多信息,包括发行说明和贡献指南。

## LocalStack 转变方向,引发争议 LocalStack,一款流行的本地模拟AWS服务的工具,已经将其GitHub仓库存档,并且现在需要账户才能运行,这在技术社区内引发了讨论。虽然代码仍然可用,但许多人认为这是对开源原则的背离,并且在受益于社区贡献之后的一次“地毯式拉扯”。 用户对失去一个免费可用资源以及开发者寻求替代方案可能导致碎片化表示担忧。争论的中心在于公司利用开源工作获利是否合乎道德,即使遵守了许可条款。一些人认为,无限期地维护开源项目是不可持续的,而另一些人则强调诚信和透明度的重要性。 MinIO、rustfs、Moto和Proxymock等替代方案正在被讨论,但每个方案都有局限性。这种情况凸显了开源模式与商业利益之间日益增长的紧张关系,类似于最近MinIO和Tailwind等项目的类似事件。这一事件引发了关于在没有保证持续支持的情况下依赖开源项目的长期可行性的问题。

如果您是授权合作伙伴、《世界报》订阅者,或希望获得访问此内容的授权,请联系:licensing[@]groupelemonde.fr,并附上包含您的IP地址和请求ID (RID) 的此错误页面的副本。 英文版:您的流量已被识别为自动化(机器人活动)。如果您是授权合作伙伴、《世界报》订阅者,或希望请求访问此内容的权限,请联系:licensing[@]groupelemonde.fr,并附上显示您的IP地址和请求ID (RID) 的此错误页面的副本。 IP:47.245.80.60 RID:a12c3984f47d46b29d12000000000001

## 美国停止海上风电项目,向道达尔能源支付10亿美元 美国政府正在向道达尔能源支付近10亿美元以停止两个海上风电项目的发展。这一决定引发了网络上的强烈不满,与政府支持化石燃料的立场有关,特别是前总统特朗普因苏格兰高尔夫度假村的纠纷而对风力涡轮机产生的个人恩怨。 评论员们对美国作为能源投资伙伴的可信度表示担忧,并强调了对脆弱化石燃料供应链的潜在依赖,特别是对少数几个燃气涡轮机制造商的依赖。许多人批评这一决定目光短浅,指出了环境成本以及可再生能源可能比化石燃料更具可行性的潜力。 讨论还涉及更广泛的地缘政治问题,一些人担心美国全球影响力下降,并转向依赖中国等国家。虽然一些人对美国的未来表示极度悲观,但另一些人强调持续的政治参与和投票以促成变革的重要性。

## 正则表达式引擎中长期存在的缺陷 数十年以来,正则表达式引擎一直错误地宣传了查找*所有*匹配项的线性时间复杂度。虽然单次匹配的性能可以是线性的,但迭代所有匹配项会引入隐藏的二次方时间复杂度(O(m*n²)),这个问题早在 1970 年代就被发现。这是因为当引擎在搜索多个重叠匹配项时,可能会陷入重复扫描输入的困境——例如,将 `.*a|b` 模式应用于一串 ‘b’ 字符。 这个问题影响了几乎所有引擎(RE2、Go、Rust 的 regex crate、.NET),并且即使在那些旨在避免回溯的引擎中仍然存在。一种解决方案是限制搜索范围——在第一次匹配后停止可以恢复线性时间,但会改变预期的行为。 作者的项目 RE# 旨在解决这个问题。它采用两遍扫描方法:反向扫描以标记潜在的匹配起点,然后进行正向扫描以确定每个点的最长匹配项。一种“加固”模式即使在面对恶意输入时也能保证线性时间,但会降低简单模式的性能。RE# 的性能与现有引擎相媲美或超越现有引擎,尤其是在复杂模式上,利用了跳跃加速和高效 DFA 构建等技术。 虽然 RE# 目前不支持捕获组和惰性量词,但它提供了布尔运算符和独特的流处理方法,使其成为真正高效可靠的正则表达式匹配的重要一步。

## Hacker News 讨论:正则表达式性能与复杂度 一场 Hacker News 讨论围绕正则表达式(regex)匹配的性能,特别是寻找*所有*匹配项时可能出现的二次时间复杂度问题。原始帖子 (iev.ee) 强调了这个问题并探讨了解决方案。 用户讨论了各种方法,包括基于 NFA 的引擎,如 `@bablr/regex`,它们避免了复杂度膨胀,但可能耗尽内存。另一些人指出,仅验证*没有*匹配项时,通常可以达到线性时间性能。一个关键点是回溯的影响以及通过类似数据库查询规划或编译器重写的技术进行优化的潜力。 对话还涉及正则表达式功能与性能之间的权衡,建议限制功能可以保证更好的时间复杂度。为不受信任的输入,建议使用时间和/或内存限制来沙箱化正则表达式执行。最后,一些用户指出线性时间引擎(如 Hyperscan)的潜力,以及考虑最左最长匹配语义的重要性。作者确认帖子是人工撰写,并借助 LLM 润色措辞。

启用 JavaScript 和 Cookie 以继续。

## 自动研究总结 这次Hacker News讨论围绕ykumards的“自动研究”实验——使用LLM代理(Claude Code)自主改进机器学习模型。核心思想是循环改进代码、运行训练、评估结果和记录进展。 虽然该代理成功识别并修复了一个bug并优化了超参数,但评论员们争论其新颖性和成本效益。 许多人指出现有的AutoML框架,如Optuna和贝叶斯优化技术,可以实现类似的结果。 然而,潜力在于代理能够持续运行实验,即使无人值守,并可能探索超越简单超参数调整的架构变化。 关键要点包括:强大的评估指标的重要性、实验的高成本(尤其是在云基础设施上)以及LLM代理在真正*创新*研究与优化方面的当前局限性。 许多人认为自动化繁琐的任务(如bug修复和超参数搜索)具有价值,从而解放人类研究人员进行更高层次的思考。 讨论还强调了将这种方法应用于其他软件项目的潜力。

## Digs:一个简单的Discogs唱片库浏览器 对官方Discogs应用程序在移动设备上浏览的局限性感到沮丧,一位开发者创建了**Digs**,一个为黑胶唱片收藏家设计的精简移动应用程序。Digs专注于快速且*离线*访问您现有的Discogs唱片库,组织方式与您在文件夹中的结构完全一致。 该应用程序会将您的Discogs库同步到您的手机,允许您按文件夹浏览、搜索,甚至有一个“随机选择器”来重新发现唱片。它优先考虑速度和简洁性,省略了诸如愿望单管理和市场访问等功能。 Digs使用React Native、TypeScript和SQLite构建,利用巧妙的“令牌桶”速率限制器来规避Discogs的API限制。一个关键的设计原则是“本地优先”架构,确保所有数据都直接从手机数据库读取,以实现即时访问。开发者利用Claude Code进行快速代码生成,但强调产品决策和完善花费了最多的时间。 Digs目前在App Store上免费提供,没有广告或跟踪。

对不起。

## 理想的衰落:对现代计算的批判性审视 本文认为备受赞誉的“Unix哲学”——强调简洁、单一用途工具和可组合性——在很大程度上已经消亡,而现代计算则是一个复杂且常常设计糟糕的“垃圾堆”。作者认为,这种哲学的模糊性(存在多种解释)使其能够方便地适应,最终侵蚀了其核心原则。 虽然欣赏精简工具和shell脚本的*理念*,但作者指出现实世界的例子——例如令人惊讶的复杂的`cat`命令和多功能的`curl`——违背了该哲学的原则。这种趋势超出了Unix世界;Windows和GUI软件优先考虑集成、功能丰富的体验,而不是简约的、链式工具,常常牺牲效率来换取用户友好性。 核心问题不在于技术,而在于社会。开发者过度概括,寻求“一刀切”的解决方案,而这些解决方案不可避免地无法满足多样化的需求。此外,开源最初的反叛精神已被稀释,变得越来越公司化和顺从。作者提倡批判性思维,拥抱多样性,并优先考虑可修改性,敦促读者定义自己的原则,而不是盲目地追随趋势或意识形态。最终,认识到计算的内在复杂性是构建更好系统的关键。

对不起。

## Baochip-1x 的 BIO:一种基于 RISC-V 的 I/O 协处理器 BIO 是一种为 Baochip-1x 设计的 I/O 协处理器,Baochip-1x 是一款 22 纳米开源 SoC。作为树莓派 PIO 的替代方案,BIO 旨在将 I/O 任务从主 CPU 卸载,实现实时应用至关重要的确定性时序。 最初的探索涉及复制 PIO 的架构,但 FPGA 实现显示其资源消耗出乎意料地大——甚至超过了 CPU 核心的面积并影响了时序。这促使转向基于 RISC-V 的设计,利用四个紧凑的 RV32E 核心,并配备专门的寄存器队列用于核心间通信和 I/O 控制。 BIO 利用“快照到量子”机制实现精确的时序,并通过 BDMA 扩展支持 DMA。开发者可以使用汇编语言或利用基于 Zig 的新型 C 工具链来编程 BIO,从而实现更复杂的功能。与 PIO 相比,BIO 以牺牲峰值速度来换取面积效率,但它提供了一个更灵活且可能更具可扩展性的解决方案,可以舒适地适应 FPGA 约束,并在 ASIC 实现中实现更高的时钟速率。 代码和文档等资源可在 GitHub 上获取,Baochip-1x 可通过 Crowd Supply 购买。

Bunnie (bunniestudios.com) 推出 Bao I/O 协处理器 (BIO),这是一款专为 I/O 任务设计的微型处理器,引发了 Hacker News 的讨论。BIO 被定位为树莓派 Pico 的 PIO 的替代品,采用 RISC 架构并支持 C 编译。 讨论的关键点集中在 BIO 和 PIO 之间的性能比较上。虽然 PIO 由于其 CISC 设计和直接硬件控制在对时序要求严格的任务中表现出色,但 BIO 旨在通过 C 语言实现清晰度,并利用“量子延迟”进行同步。用户们争论效率问题,一些人指出 PIO 能够快速在核心之间传输数据。 Bunnie 澄清 BIO 的性能目标是 25MHz(宽松),但可以通过超频和优化实现更高的速度。BIO 的开源特性允许使用 Verilog 进行仿真以分析时钟周期。讨论还涉及潜在的应用,如 USB 仿真、CAN 总线接口,甚至复古游戏,同时也承认了在带宽密集型任务(如 DVI 输出)方面的局限性。最终,BIO 和 PIO 被呈现为不同的工具,具有独特的权衡,适用于不同的应用。

该网站正在使用安全服务来保护自身免受在线攻击。您刚才的操作触发了安全解决方案。 提交特定词语或短语、SQL命令或格式错误的数据等行为可能会触发此阻止。

## Trivy 遭受攻击:GitHub Actions 被攻破 Trivy,一款流行的漏洞扫描器,已多次被攻破,攻击者利用 GitHub Actions 工作流中的弱点。一名威胁行为者通过泄露的凭据获得了访问权限,并能够发布恶意 Docker 镜像,影响依赖 Trivy 进行安全检查的用户。这是该行为者发动的*第三次*成功的攻击,凸显了凭据管理和安全实践方面持续存在的问题。 核心问题在于能够在 GitHub Actions 中覆盖标签,允许攻击者用恶意版本替换合法的版本。虽然 GitHub 提供了不可变发布的特性,但默认情况下并未强制执行。讨论的重点在于安全(固定版本)与及时更新安全补丁之间的权衡,以及 GitHub Actions 中对更好的包管理原语的需求,例如官方 lockfile。 该事件强调了依赖第三方工具的风险以及采取健全安全措施的重要性,包括沙箱化、限制凭据访问和主动监控。许多评论员指出 GitHub Actions 以及更广泛的安全行业中存在系统性问题,复杂工具往往会引入新的漏洞。

更多

联系我们 contact @ memedata.com