## 编程语言中数组与函数的对应关系 作者反思了Haskell文档中将数组定义为基于整数域的函数的惊人洞察力。最初认为这种定义过于正式,但现在它突出了数组和函数之间的一种基本联系——一种值得为语言设计探索的联系。 核心思想是利用这些数据结构之间的相似性,并非通过类型统一(这会带来性能挑战),而是通过共享的语法和抽象。K和Dex等语言已经尝试过这种方法,Dex使用提示性的语法(`a -> b` 用于函数,`a => b` 用于数组)来鼓励统一的思维模式。 作者考虑将此应用于Futhark,并注意到切片表示法和保持性能保证方面的挑战。虽然完全统一不可行,但探索共享的抽象——例如将两者都视为支持 `fmap`、`scan` 和 `reduction` 等操作的函子——可能是有益的。最终目标不是单一类型,而是一种允许操作无缝地应用于数组和“类似数组”函数的语言,从而可能解锁新的编程范式。作者设想未来可以将矩阵乘法等操作甚至应用于函数。
## 使用 Helm 管理 Kubernetes 部署
将应用程序部署到具有不同需求(规模、正常运行时间、功能)的多个 Kubernetes 环境可能很复杂且成本高昂。Helm 通过充当 Kubernetes 的包管理器来简化此过程,允许您定义应用程序“图表”——带有可配置值的蓝图。
健壮部署的关键在于验证。**`helm lint`** 检查 YAML 语法和最佳实践,而 **`helm template`** 渲染图表以验证正确的清单生成。这类似于前端模板,将复杂性抽象在可配置参数之后。
为了进一步确保正确性,**`helm unit test`**(一个插件)允许根据不同的值配置断言预期的输出,防止资源缺失等错误。**原生 `helm test`** 提供 Kubernetes 集群*内部*的集成测试,非常适合验证应用程序功能(例如,将 HTTP 重定向到 HTTPS)。
最后,**`helm-docs`** 会自动从图表值和注释生成人类可读的文档,使配置易于理解。
一个完整的流程包括 linting、templating、单元和集成测试、文档生成,以及在您的 CI/CD 管道中自动化这些步骤,以实现可靠且经济高效的 Kubernetes 部署。
## AI聊天机器人能耗:细致分析
近期分析表明,个人使用像ChatGPT这样的AI聊天机器人对个人电力和用水的影响微乎其微。对于普通用户来说,每日提问消耗的资源在其总体足迹中占比可以忽略不计——低于一秒的淋浴时间。然而,对于大量使用编码代理的软件开发者等“重度用户”来说,情况则大不相同。
一项对Claude Code会话的分析估计,每次会话消耗约41Wh,是典型查询的138倍。全天使用此类代理进行编码,其能耗相当于运行洗碗机或小型冰箱。虽然这种影响仍然可能很大,但这并不一定是避免使用AI的理由,而是呼吁支持向可再生能源过渡,为这些计算提供动力。
作者认为,他个人的使用情况值得向推广AI绿色能源的组织捐款,例如ClimateAction.tech。重要的是,这些计算依赖于估计值,因为AI实验室缺乏关于能耗数据的透明度——他们应该优先考虑透明度。最终,通过更广泛的生活方式改变来减少整体碳足迹,对于大多数用户来说仍然更有效。
## Fence:安全运行不受信任的代码
Fence 是一个为 CLI 设计的沙箱工具,旨在以受控的访问权限运行潜在的风险代码——例如包安装、构建脚本或来自 AI 代理的代码。它**默认阻止所有网络访问**,并根据可配置的规则限制文件系统操作和命令。
您可以定义允许的域名、可写目录和禁止的命令,或使用**预构建模板**(例如 npm/pypi 的“code”)。Fence 跨平台工作(macOS 和 Linux),使用原生沙箱技术。
主要功能包括:
* **网络隔离:** 除非明确允许,否则阻止所有出站连接。
* **文件系统控制:** 限制对特定路径的读/写访问。
* **命令阻止:** 防止执行危险命令。
* **监控模式:** 识别和记录尝试的违规行为。
Fence 可作为 CLI 工具或 Go 包使用,其灵感来自 Anthropic 的 sandbox-runtime,为执行不受信任的代码提供了一层宝贵的安全性。