每日HackerNews RSS

## Verus:Rust 的静态验证 Verus 是一种工具,旨在*静态*验证 Rust 代码的功能正确性,尤其适用于低级系统编程。与运行时检查不同,Verus 使用计算机辅助定理证明来保证代码在所有可能执行情况下的行为。它借鉴了 Dafny 和 F* 等验证框架的灵感,旨在将纯数学规范语言与 Rust 强大的类型系统相结合。 Verus 利用 Rust 的特性——包括代数数据类型和线性类型——来简化验证,尤其是在内存管理和别名方面。它生成可由 SMT 求解器(如 Z3)求解的验证条件,并通过规范语言与求解器能力之间的紧密对齐来关注效率。 目前,Verus 优先支持高价值的 Rust 特性,并不追求完全的语言覆盖或自验证。用户在 Rust 语法*内部*编写规范和证明,利用扩展(如 `forall` 和新类型,例如 `int`、`nat`)。虽然 Z3 可以自动处理简单的证明,但复杂的验证通常需要程序员协助,可能采用归纳法等技术,并将其表达为递归的 Rust 函数。

对不起。

《风暴对风暴》是对戴夫·瑟勒的经典游戏《风暴》(1981)和杰夫·明特的重新构想《风暴2000》(1994)的代码和设计的详细探索。本书深入研究游戏的内部机制,在汇编代码层面进行分析——《风暴》使用6502,《风暴2000》使用68K摩托罗拉。 本书以简短易懂的章节呈现,旨在以易于理解的方式解释两款游戏的复杂性。本书提供两种版本(9MB和27MB)的免费下载,推荐使用并排代码/注释视图以获得最佳阅读体验。 作者还创建了对其他杰夫·明特游戏的类似深入分析,包括《Iridis Alpha》(“IRIDIS ALPHA THEORY”)和《Psychedelia》(“psychedelia syndrome”),供有兴趣进行进一步技术探索的人参考。关于本书创作的更多信息可在其GitHub仓库中找到。

## 威廉·詹姆斯、视觉思维与数据可视化的根源 最近对哈佛大学档案馆的研究揭示了心理学家威廉·詹姆斯一个令人惊讶的侧面:他对视觉艺术一生的热情。尽管他最初渴望成为一名画家,曾师从威廉·莫里斯·亨特,詹姆斯一生都在持续绘画,为他的独特思维过程提供了一个窗口。这种视觉创造力不仅仅是个人的;它与19世纪科学的一个关键转变息息相关。 詹姆斯与弗朗西斯·高尔顿和W.E.B.杜波依斯等人物一起,率先进行早期数据可视化。高尔顿专注于统计平均值(但不幸的是,也涉及优生学),而杜波依斯作为詹姆斯的学生,利用数据可视化有力地描绘了非裔美国人的进步。他们都认为*如何*可视化数据与*进行*思考是密不可分的。 这与当今的自动化设计工具(如Claude Design)形成对比,后者难以复制这些手工可视化作品特有的、以论证为驱动的质量。创造的物理行为——手与心之间的联系——培养了一种独特的深度思考,这种视角常常在数字抽象中丧失。詹姆斯的作品,包括可能的第一张神经网络的可视化表示,应该被视为数据可视化历史的基础要素,提醒我们设计不是苦差事,而是至关重要的思维形式。

对不起。

## Rip:一种现代 JavaScript 语言 Rip 是一种新的、简洁的语言,编译为 ES2022 JavaScript,灵感来自 CoffeeScript。它拥有较小的代码库(约 11,000 行代码),没有依赖项,并且使用 Bun 构建了一个自托管编译器。 主要特性包括一打新的运算符(例如 `!` 用于 `await`,` =~` 用于正则表达式匹配),使用 `:=` 和 `~=` 等运算符进行内置的响应式编程,以及可选的类型注释。Rip 通过 Ruby 风格的构造函数、列表推导式和简化的语法来简化开发——消除了导入、钩子和依赖数组。 除了核心语言之外,Rip 还提供用于服务器端开发、数据库交互(与 DuckDB)、UI 组件等的包。一种独特的“Rip Schema”为数据验证、ORM 和数据库迁移提供了一种统一的方法。 Rip 旨在易于使用,提供基于浏览器的 REPL、VS Code 扩展,并专注于简单性和增量开发。它旨在成为一种强大而易于接近的语言,适用于前端和后端项目。

对不起。

本文详细介绍了如何使用Teams TypeScript SDK将使用LangChain、Slack Bolt或Azure AI Foundry等工具构建的现有代理集成到Microsoft Teams中。核心原理是利用HTTP服务器适配器将您的现有服务器连接到Teams的消息端点(`/api/messages`),而无需进行重大代码更改。 该过程包括三个关键步骤:为您的本地服务器获取公共HTTPS URL(使用Dev Tunnels或ngrok等工具),使用Teams SDK CLI注册您的机器人(处理应用程序注册和清单创建),以及将应用程序旁加载到Teams中进行测试。 SDK通过验证传入请求和自动路由消息来简化集成。示例演示了如何将Slack机器人、LangChain链和Azure Foundry代理桥接到Teams,所有这些都共享一致的代码结构。还提供了使用FastAPI的Python等效版本。 最终,SDK充当无缝连接器,允许您以最少的对现有基础设施的破坏,将现有代理的功能扩展到Teams用户。完整文档请参见“Self-Managing Your Server”。

## Effekt 中的效应递归模式:摘要 本文探讨了在 Effekt 语言中实现递归模式——函数式编程(如 Haskell)中常见的折叠/展开模式的强大泛化工具。传统上,这些模式需要无限递归类型,而 Effekt 不支持。相反,作者利用了 Effekt 的效应和处理程序系统。 核心思想是将数据结构*重新函数化*为效应。`Term` 类型(代表 lambda 项)被转换为 `TermF` 接口,其中递归调用变成由上下文处理的效应操作。这使得 `cata`(猫态型——折叠)和 `ana`(鱼态型——展开)等操作可以在没有无限类型的情况下实现。 文章通过示例演示了这一点:美化打印项、计算项大小、查找自由变量和替换变量。然后,它介绍了 `para`(参态型——传递原始数据)和 `hylo`(混合态型——结合折叠和展开),展示了它们的强大功能和效率。`hylo` 中的一个关键优化是通过融合折叠和展开步骤来避免中间项的构造。 最终,文章强调了 Effekt 的效应系统提供了一种灵活且实用的方法来实现递归模式,与传统方法相比提供了一种独特的方法,并鼓励通过交互式游乐场进行实验。

黑客新闻 我们无法处理您的请求,抱歉!

## 快速 `tanh` 近似:总结 双曲正切函数 (`tanh`) 在神经网络和音频处理中至关重要,但其计算成本可能很高。 本综述探讨了各种近似 `tanh` 以提高速度的方法。 **传统方法** 包括 **泰勒级数**,它具有简单性但准确性有限,以及 **帕德逼近**,它通过多项式之比提高了准确性,但需要更多运算。 **样条曲线** 提供了另一种选择,将函数划分为分段多项式,优先考虑速度而非极致精度。 更高级的技术利用底层的 **IEEE-754 浮点表示法**。 **K-TanH** 利用整数运算和查找表进行高效近似,特别适合硬件实现。 **Schraudolph 方法** 巧妙地操纵浮点数的位表示,用最少的算术运算来近似 `tanh`——这是一种类似于快速反平方根黑客的技术。 后来的改进,**Schraudolph-NG**,通过特定公式利用误差抵消,进一步提高了准确性。 评估表明,速度和准确性之间存在不同的权衡。 虽然标准库实现提供精度,但这些近似值提供了显著的性能提升,使其对于资源受限的应用非常有价值。 方法的选择取决于任务的具体要求,在所需的准确性和计算效率之间取得平衡。

社区组织成功阻止了蒙特雷公园一项拟议的25万平方英尺数据中心项目,起因是居民发现该项目距离住宅仅500英尺。SGV进步行动,最初成立支持“黑人的命也是命”运动,后来倡导停火决议和社区防御,利用现有的志愿者网络和战略性公共记录请求迅速动员起来。这些请求显示,城市规划者偏向该项目,依赖开发商的评估和有限的社区通知。 居民,主要为亚裔和拉丁裔,发起“反对蒙特雷公园数据中心”运动,用多种语言向邻居宣传潜在影响——巨大的能源消耗、柴油发电机污染和噪音。一份请愿书收集了4500个签名,在市议会会议上压倒性的公众参与导致了临时禁令和一项永久禁止的投票措施。最终,开发商撤回了申请。 这次成功引发了更广泛的“反对圣加布里埃尔谷数据中心联盟”,与邻近城市如Industry和帝国县类似的项目作斗争,面临环境种族主义和有限的公众参与问题。组织者现在正在推动更严格的法规,包括环境评估和投票措施,以保护弱势社区免受数据中心扩张的负面影响。

对不起。

本研究对柯达无损真彩色图像套件(PCD0992)中的24张图像进行了全面的统计特征描述,该套件是图像压缩领域广泛使用的基准。Baetzel (2026) 的工作详细分析了每张图像的通道间冗余,使用了协方差矩阵、特征分解和空间自相关等指标,直接从原始的8位RGB像素数据计算得出。 该研究的核心是对每张图像进行主成分分析(PCA),揭示了套件中维数谱和特征向量载荷模式。结果显示,冗余水平差异很大,由条件数量化,范围为7.55到1,739.16,并分为五个维数等级。详细的两页剖析报告(提供PDF和JSON文件)记录了每张图像的这些发现,包括蓝色通道独立性和空间相干性的指标。 该分析表明,柯达套件有效地代表了基于胶片摄影可实现的通道间冗余的完整范围,为图像处理和压缩算法开发提供了有价值的参考数据。完整的数据集和方法是公开可用的。

对不起。

大型语言模型(LLM)在编码中的日益普及带来了超越传统“技术债”的新挑战。玛格丽特-安妮·斯托里提出了一种由三个相互关联的“债务”构成的框架:**技术债**(存在于代码中,影响可修改性),**认知债**(存在于人员中,削弱共同理解),和**意图债**(存在于制品中,迷失原始目标)。 最近的研究,基于卡尼曼的“快与慢思考”,引入了“系统3”——人工智能,导致潜在的“认知投降”,即对人工智能生成解决方案的不加批判的依赖。这突出了*验证*的重要性,超越了仅仅*编写*代码。随着人工智能辅助下编码可能变得“免费”,在复杂现实场景中定义“正确性”成为关键的、独属于人类的任务。 这种转变需要组织结构调整,优先考虑验证和质量保证,而非功能输出。团队应专注于定义验收标准和监控结果,可能将工程角色转向验证和判断。虽然LLM可能无法“破解”遗留系统现代化,但*可以*帮助理解现有代码。最终,成功将取决于拥抱重视批判性评估和健全验证系统的文化。

## LLM、代码债务和懒惰的价值 最近,一篇马丁·福勒的文章引发了讨论,探讨大型语言模型 (LLM) 是否会在软件开发中引入新的技术、认知和意图债务。虽然一些人担心 LLM 会产生“懒惰”的代码,但许多开发者报告恰恰相反——LLM 常常*过度设计*,做出不必要的更改并引入复杂性。 许多评论者分享了积极的经验,指出通过仔细的提示,LLM 可以被引导到最小化更改、代码去重以及遵守质量标准,甚至*提高*代码质量,优于过去的项目。关键似乎是明确指示 LLM 优先考虑简洁性并避免过度优化。 一个核心论点是,LLM 本身并没有缺陷,而是需要指导。讨论强调了形式化意图的重要性,以及在提示中使用“减法式更改”和 YAGNI 原则等技术。最终,争论的中心在于 LLM 是否是放大了现有开发者倾向的工具——无论是好的还是坏的——而不是引入全新的问题。“债务”的框架是有用的,但最大的问题通常不是懒惰,而是重构中的*过度热情*。

更多

联系我们 contact @ memedata.com