## 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 扩展,并专注于简单性和增量开发。它旨在成为一种强大而易于接近的语言,适用于前端和后端项目。