## 持续集成:价值在于失败
持续集成 (CI) 是一种在代码提交后、部署*之前*自动运行检查的过程。虽然看似简单,但它的真正价值并不在于成功“通过”——那只是开销——而在于当存在错误时**“失败”**。
如果没有 CI,错误只会*在*部署后才会暴露,导致回滚和潜在损害。CI 缩短了反馈循环,尽早发现问题并防止问题影响用户。然而,CI 无法捕获*所有*错误,只能捕获一部分,因此尽早检测至关重要。
有趣的是,如果没有错误发生,CI 会增加不必要的摩擦,减慢部署速度而没有提供任何好处。“不稳定的 CI”——重新运行后就能解决的失败——破坏了对系统的信心。
最终,CI 的价值只有在它*阻止*错误部署时才能体现。将“失败”重新定义为积极的结果——一个问题被阻止的信号——可以帮助开发者更好地理解它在维护代码质量和稳定性方面的作用。下一步是优化 CI,使其更早地失败,直接在开发者的机器上。
医疗设备制造商史赛克目前正应对一场“严重”的全球网络攻击,导致全球系统中断。伊朗黑客组织Handala声称对此负责,称这是对伊朗美国轰炸的报复。
据悉,此次攻击始于美国东部时间凌晨3:30左右,涉及篡改登录页面以显示Handala标志,并在超过20万台服务器、系统和员工设备上部署了一种擦除数据的恶意软件。员工报告称系统普遍中断,无法访问账户,以及从注册公司计划的个人设备中丢失数据。
史赛克是美国军方的主要供应商,与国防物流局签订了重要合同,正在努力恢复系统并已激活业务连续性计划。此次中断影响了史赛克的全部笔记本电脑和联网系统,影响了其全球56,000名员工,并可能影响患者护理。这起事件与过去被归因于伊朗、俄罗斯和朝鲜的擦除器攻击相呼应,凸显了针对关键基础设施和与地缘政治冲突有关联的公司,具有破坏性的网络攻击日益增长的威胁。
## Axe:命令行 LLM 代理编排
Axe 是一款 CLI 工具,用于构建和运行专注、可组合的 LLM 驱动代理,它采用了不同于典型聊天机器人中心化 AI 工具的方法。它将代理视为 Unix 程序——每个代理都设计用于单一任务,在 TOML 配置文件中定义,并通过命令行执行,数据输入并输出结果。
主要特性包括支持多种 LLM 提供商(Anthropic、OpenAI、Ollama)、声明式代理定义、子代理委托、持久化内存以及用于可重用指令的技能系统。Axe 可以无缝集成到现有的工具中,如 cron、git 钩子和 CI/CD 管道,避免了专用守护进程或 GUI 的需要。
代理配置有系统提示、模型选择以及对沙盒化工具的访问,用于文件操作和命令执行。Axe 优先考虑简单性和控制力,提供诸如干运行模式、JSON 输出和内存垃圾回收等功能。它可以通过 `go install` 或从源代码构建获得,并提供 Docker 镜像以进行隔离执行。
## 系统编程中的动态类型:摘要
本文探讨了在静态类型系统中表示不同类型数据的技术,并借鉴了GNU Emacs、现代C++和其他实现中的经验。核心挑战是高效处理多态性——当单个变量需要持有不同数据类型时。
详细介绍了三种主要方法:**带标签的联合体**(如`std::variant`),为最大可能的类型分配空间;**胖指针**,在指针旁边添加额外空间来存储类型信息;以及**带标签的指针**,利用指针对齐中未使用的位来存储类型标签。Emacs 独特地使用带标签的指针来处理核心类型,并使用“简陋的继承”(结构体嵌入)来扩展类型表示,超越有限的标签空间,从而在资源受限的环境中优化性能和内存使用。
有趣的是,像LLVM这样的现代系统正在*重新发明*类似的技术,绕过标准的C++ RTTI以实现更快的编译时类型检查。这些标记策略也出现在其他系统,如Linux内核和JavaScript引擎(V8)中,证明了它们持续的相关性。这些方法之间的选择取决于在内存占用、性能和类型层次结构的复杂性之间取得平衡。
## 稀疏化:见证数据的新视角
本文探讨了“稀疏化”,这是一种在依赖类型理论中经常遇到的数学对象,但其应用范围不止于此。稀疏化充当**见证数据**——简化问题解决的信息,通常可以提高效率或清晰度。可以将满足赋值视为 SAT 问题可解性的见证。
具体来说,稀疏化解决了“子列表”问题(在更大的列表中找到一个序列)。它们可以被可视化为元素之间的非重叠路径,表示为位向量,并通过德布鲁因提升/降低等操作生成(类似于置换由交换生成)。至关重要的是,稀疏化可以被*组合*——顺序应用——提供一种强大的视角转变。
作者通过 Python 示例演示了这一点,展示了如何不仅*找到*一个列表是否是子列表,而且*生成一个证书*(稀疏化本身)来证明它。验证此证书通常比找到它更快。
这个概念与 lambda egraphs、并查集,甚至 Prolog 的证明搜索等领域相关联。稀疏化可以被视为一个范畴,继承诸如组合和单位元之类的属性。它们还与德布鲁因索引等概念相关,并可能为自由变量分析和高效数据结构提供一种新颖的方法,从而可能改进诸如哈希常量和名义统一之类的技术。最终,作者认为稀疏化对于良好作用域的项是基础的,超越了 lambda 演算,扩展到其他绑定器,如求和和积分。