跳到主要内容

Agili 的 Hacker Podcast 2026-10-25

今天的 Agili 的 Hacker Podcast 先看一门新语言:它想用编译期的证明替代垃圾回收和生命周期标注。接着看 AI 与创意行业之间那笔难以量化的账,以及 Cerebras 怎么把 3 万亿参数铺到 59 片晶圆上。

Goose:不用垃圾回收和生命周期标注的系统级语言

内存只有栈

Wouter van Oortmerssen(网名 Aardappel,做过 Amiga E、Sauerbraten、Lobster)发布的 Goose 是一门系统级语言。程序的内存只有原生调用栈、静态数据,加上编译器算出的 N 个数据栈。数据栈是一大块预留地址空间加一个 bump 指针(指针只向前移动的分配方式),每个栈上同时只有一个可增长值,且永远在栈顶。增长就是指针前进,离开作用域时释放就是往栈顶写一次,嵌套一百万层的结构也一样。这些在编译期被证明,运行时只维护指针。

内存从不移动,所以指向正在增长数组的引用一直有效。push 返回新元素的引用,可以在构建数组的同时把元素互相链接起来。引用的安全不需要标注:每个引用和切片有一个静态的 root,也就是界定它目标生命周期的变量,编译器推断 root 并为它特化函数。语言里没有别名规则、没有独占规则、没有 unsafe。

嵌套数据保持内联。文档举的例子是一张含两件商品的订单:Goose 里 29 字节、0 次分配;C++ 的 std::string 加 std::vector<Item> 是 160 字节、1 次分配;Rust 的 String 加 Vec<Item> 是 153 字节、4 次分配。

基准数字与代价

仓库给的数字来自自带的 16 项基准,取几何平均:MSVC 后端下比惯用 C++ 快 3.51 倍,比手工优化的 C++ 快 1.24 倍,比最好的 safe Rust 快 1.13 倍。作者补充,这是平均值,也有个别算法更慢。有评论者指出仓库里的 C++、Rust 源码看着不像优化过,作者回了一句“真正手工优化的版本是私有的,仓库里那些是诱饵”。

限制也写得很直接:得想清楚数据住在哪、生命周期多长;递归函数不能跨递归调用保留可增长数据;变长元素的数组只能顺序迭代、不能索引;没有逃逸闭包、没有函数指针;只支持整程序编译。并发模型不共享内存,值经类型化队列以 memcpy 传递,必须是 flat 结构、任意深度都不含引用。

AI 写下的编译器与文档

仓库自述写明代码几乎全部由 AI 完成,“Claude Fable” 列在作者栏:编译器实现、基准、示例与文档写作。一位评论者要求把文档整个扔掉、用作者自己的话重写,因为他需要知道哪些设计属于人、哪些是模型的意外。另一位认为想法可以脱离来源判断。

作者在 AMA 里说,他几年前设计过 Goose 也动过手,但经营游戏公司没时间写完。这次让 Fable 通读 Lobster 的代码库,提炼出一份详细的代码风格指南,再按 pass 逐个写新编译器。他的经验是 AI 写出好代码的第一方法是让它待在已有的好代码上下文里。

有人翻教程第一页就找到错误:示例说 C++ 的 vector<string> 会为每个字符串各分配一次,但 “word0” 这类短串落在小字符串优化(SSO)范围内,主流标准库实现不会单独分配。顺着这个话题,另一个人问:它对训练数据充足的 C++ 都能说错,对没有训练数据的 Goose 又会错多少。

一位把它当工具用的读者把商业 Rust 代码库里的几个算法移植到 Goose,结果明显更快,但更大的收获是 Goose 把 LLM 引向了更高效的数据结构,把这些结构移植回 Rust,大部分收益仍然保留。作者自己的说法很朴素:“在某种奇怪的意义上,现在是造新语言的好时机,因为说服人去学它的成本消失了。”

AI 与美国创意行业的 20 万岗位流失

损失集中在哪里

Apricitas Economics 的作者 Joseph Politano 统计,美国创意行业在四年里少了 20 多万个岗位,最近一年就减少约 5 万。损失强度和持续时间只有 2001 年、2008 年两次衰退可以相比。电影与录音行业三年裁掉超过 10 万个岗位,接近该行业总就业的三分之一;2026 年夏天的最低点低于 2008 年金融危机时期。出版业同期减少 7 万多个岗位。

数字艺术的所有子行业都在缩水,现场娱乐的就业却保持健康增长,这是作者眼中 AI 影响最清晰的证据。四年里近一半的媒体岗位流失发生在包含好莱坞的电影与录音部门。

把账算到 AI 头上很难

媒体公司不愿谈自己怎么用 AI,既怕公众反弹,也要维护版权主张。好莱坞的整合、内容制作外迁、社交媒体创作者挤占传统媒体,都在同时发生。一位住在亚特兰大的评论者说,当地曾是洛杉矶重要的拍摄外包地,如今工作流向了欧洲,因为那里更便宜;2023 年的编剧和演员罢工也是一颗钉子,制作方把项目搬到了没有罢工的地方。税收优惠同样在推动剧组离开加州。

调查显示,艺术、娱乐和休闲行业约 32% 的劳动者在某种程度上使用生成式 AI,低于全行业 62% 的平均水平;一位读者指出,只看工作用途约为 42%。无论取哪个数,几乎每个大型媒体项目的工作流里都可能藏着 AI,而制片厂很难阻止编剧室里的某个人去问 ChatGPT 要一个笑话。

音乐和报纸的两次先例

音乐行业在 2000 年前后经历过一次相似冲击。文件分享把单曲价格压到接近零,Spotify 和 Apple Music 用极低的月费打包了几乎全部人类音乐。音乐人转向现场:巡演更长、场馆更大、票价更高,收入越来越依赖演唱会、周边和个人品牌。电影走的是另一条路,流媒体改变了收入结构,去年票房比 2019 年峰值低 25%,有线电视收入从峰值下降 18%,流媒体收入补不上缺口。好莱坞没有“现场演唱会”这样的退路。

报纸展示了最坏情况。美国报纸曾经雇用约 50 万人,比整个石油行业还多;如今工资单缩水近 85%。杂志出版商自 1990 年代以来裁掉 66% 的员工,图书出版商少了 40%。也有反向的例子:过去六年美国图书销量增长 70%,推高纸质书的是 TikTok 上的“BookTok”社区,重度读者通过短视频找到书评和同好。

社区:效率为谁服务

评论区对“效率到底为谁服务”分歧很大。一位读者说,把制作搬出洛杉矶会慢慢掏空本地生态,依赖剧组的本地生意先关门,熟练工流失,最后在洛杉矶拍片整体变得不划算;他追问效率省下的钱去了谁手里,普通人并没有因此多出钱或时间。另一位认为效率短期让在位者受益,长期让所有人受益,举了《Valheim》的例子:这款游戏最初主要由一个人开发,放在过去需要数百人、数百万美元。怀疑者引用斯坦福 SIEPR 的政策简报说,经济学家反复测算后认为 AI 迄今对经济的冲击很小。

注意力上限是另一种解释。一位读者说,AI 让游戏生产更快并不会创造更多可玩的时间,市场消化不了,总得有别的东西让位。商业插画可能是被忽略的重灾区:广告插图现在几乎必然由 AI 完成,服装广告不再需要真人模特为每种颜色摆姿势,下滑的起点大致对应 Stable Diffusion 兴起。

Cerebras 怎么把 3 万亿参数模型铺到 59 片晶圆上

算账:59 片怎么来的

Cerebras 在博客里拿 Kimi K3 做例子,讲怎么把一个 3 万亿参数的模型铺到 59 片 WSE-3T 晶圆上,跑到 1000 到 2000 以上的 token 每秒。3 万亿参数按 4-bit 量化,原始权重约 1.5 TB,摊到 93 层,每层约 16 GB;一片 WSE-3T 的片上 SRAM(静态随机存取存储器)是 44 GB。

69 个线性注意力层不存每个 token 的 key/value,一个请求只占固定大小的状态,所以一片晶圆能放两层,共 32 GB。24 个稠密层要为每个活跃请求的每个 token 保存 KV 缓存,一片晶圆只能放一层,剩下 28 GB 留给缓存。69 除以 2 向上取整得 35,加上 24,总共 59 片。

流水线不是排队

晶圆之间用 RDMA over Ethernet(远程直接内存访问,跑在以太网上)连成流水线,每跳约 2 微秒,只有激活值在走,权重留在原地。常见误解是 token 要按顺序穿过每片晶圆,每片都在干等。实际上整条流水线同时装着不同请求,第 3 片在处理请求 A 时,第 2 片在处理请求 B,每个阶段还可以一次吃进一个微批次。并发上限由稠密层晶圆的 KV 缓存空间决定,评论里有人按文章给的参数推算出约 190 个并发请求、整机 1.18 MW、约 4.1 J/token。

评论区:能买到什么、值不值

讨论的关注点落在另一头:普通人能拿到什么。一位用户说,Cerebras 上能用的只有 GPT OSS 120B 和 Qwen 3.8 27B,前者“飞快,但基本都是错的”。另一位曾是编程套餐的订户,说 1000 TPS 在当时独一份,如今 Qwen 3.8 在相近速度下被 Mercury 3 在成本和性能上双双超过。有人追问芯片为什么都用方形网格、不用六边形,回答是光学邻近校正(OPC,光刻时修正图案畸变的技术)让对角走线在 90nm 之后就不现实了。

44 GB 这个数字让一些人觉得偏小。解释是那是 SRAM,相当于 44 GB 的 CPU 缓存,所以它才这么快,也这么贵。速度本身值不值,评论分成两派:有人认为只要快到工具调用不再是瓶颈,就会是一种特殊的“超级智能”;也有人认为瓶颈根本不是速度,是审查负担,航空电子这类软件不能靠“跑得快、错了重写”来对付。

在三星电视上拿到 root shell 之后

发现与反驳

2025 款 Samsung TV 的用户 @log4j 一直收到奇怪的定向广告。他逆向固件,发现固件用 AES 加密,转而找零日漏洞,在新 Samsung TV 上拿到了 root shell。root 之后他看到常开的热麦克风、自动内容识别(ACR,通过识别屏幕内容投放广告)、地理位置、4 个不同的 DRM 服务、用户画像和大量遥测数据。他晒出一个 security-policy.xml 文件,写道:“只有你、上帝、一台 3000 美元的电视,以及 Samsung 和它的 400 个合作伙伴。”

HN 的讨论对“隐私恐怖”这个说法有不少保留。有人指出,狗叫和婴儿哭声检测是 SmartThings 集成里公开宣传的功能,属于用户主动开启、在本地芯片上运行的模式匹配,不是把音频传出去。有人批评这是用 AI 逆向、又被自己的 AI 带偏的发现:做逆向工程的第一步应该是读公开文档、FCC 备案和专利,他找到的东西大多在这些材料里就有。

隐私与价格

广告追踪压低了电视售价,设备在使用期间持续产生收入,厂商因此有动力把“智能”塞进每一台机器。近期的测试里,拒绝授权后 Samsung 是少数真正停止发送数据的品牌;LG 反而在德州诉讼和解后加了强制仲裁条款,继续收集数据,即使被 opt-out。

想要好价格又不想被追踪,最干脆的办法是根本不联网,接一个 Apple TV 或 Chromecast。有人提醒,不联网不代表绝对安全:电视可能借邻居的公共热点回传数据,不过目前没有证据。更彻底的做法是拔掉 Wi-Fi 模块或给天线接地。

一个逆向工程的边界

评论里提到,这位研究者用 AI 解密固件,随后 OpenAI 账号因“Cyber Abuse”被封。有人觉得这很蠢:不能放心用 LLM 做逆向工程,会大幅降低它的价值。也有人提到防御性安全项目可以申请,只限防御性用途;措辞很重要,说明是在自己的设备上做防御性分析、不描述攻击步骤,能减少误判。一位用户做了个小型基准,让各家模型逆向一个简单的 crackme(专门用于练习破解的小程序),DeepSeek Flash、MiMo v2.6 Flash、ChatGPT Luna 都解出来了,Gemini Flash 直接拒绝。

SpeedCrunch 1.1 与“软件真的已经完成了吗”

老用户回退到 0.12

SpeedCrunch 1.1 发布。这款免费开源的高精度科学计算器面向 STEM(科学、技术、工程、数学)领域,支持 Windows、macOS 和 Linux,提供最高 50 位精度和复数支持,内置 140 多个函数。长期用户 Gormo 说,他用了 SpeedCrunch 多年,看到十年后出现新版本很意外。安装 1.1 后,最明显的变化是输入框被放大了一倍,外面套了不必要的边框,周围多出空白区域,还出现了 0.12 从未有过的输入延迟。他回退到了 0.12,说过去十年每天用 0.12,没遇到 bug,也没缺功能。

运算顺序与 14 位

1.1 修复了一个长期存在的运算顺序 bug:1/2(-9.8) 现在等于 -4.9,而不是 -0.05102040816326530612,表达式还会渲染成 1 / 2 × (−9.8)。有人觉得这个公式本身太有歧义,认为这种输入应该直接报错;也有人指出运算顺序很清楚,除法和乘法同级,从左到右算,数学正确性不是世界上唯一重要的标准,对这个确定性工具来说应该按用户说的执行。

还有用户提到自己一个长期的小毛病:SpeedCrunch 硬编码(把数值直接写进代码)了 5 位数字的限制,超过就转成科学计数法,对 shell 脚本和编程不太有用。1.1 把这个限制提高到了 14 位。

软件是否已经完成

争论的核心是:软件是否已经完成。一位读者认为任何消费级应用的 UI 都有几乎无限的改进空间;如果旧版本已经够用,不升级就行。Gormo 反问:如果 UI 可以无限改进,怎么解释很多消费应用在某个点之后 UI 功能和一致性反而退化?另一位读者的解释是,多数消费软件在开发时假设功能只在构建时产生成本,维护成本和新功能带来的组合复杂度很少被考虑,团队增加复杂度的速度快过团队规模和可处理工作量的增长。也有人说得更简单:东西越好,越容易把它改坏。

社区里不少人已经转向别的工具,Qalculate、numbat 和 Soulver 都被提到。有人遗憾 SpeedCrunch 缺少处理质数的函数,也有人关心它在 Homebrew 上的 formula(软件包配方)最近被禁用,想知道新版本是否意味着可以重新启用。

为什么一小段代码会让人着迷

小得离谱的程序

作者在为 RetroV 研究 DOM diffing 库时,发现 Luke Jackson 的 ijk 整个库只有 25 行。Philippe Brochard 贡献了一个 46 字节的 Forth;Roger K.W. Hui 在《An Implementation of J》的附录里记录了 Arthur Whitney 在一个下午内、只用一页纸写出数组语言解释器:122 行极其晦涩的 C。Geo Carncross 讲的 kOS 把 k 语言、kdb 数据库、GUI 和窗口管理器全部装进 90 KB 的可启动镜像。作者说,200 行的东西他几乎一定会点开,2000 行或 20000 行就要犹豫。

这些除了好玩还有什么用?Kolmogorov 复杂性衡量的是“生成某个对象的最短程序长度”,代码高尔夫选手实际上是在为全人类标定程序复杂度的下界。Justine Tunney 的带垃圾回收 Lisp 可以小到 436 字节;Frank Force 的 3D 浏览器游戏压缩后只有 2 KB JavaScript。微型版本证明概念可以放进一张名片、也可以放进你的脑子,剩下的去找可读的版本学就行。

小语言的几种气质

一般来说,语言越小,表达力越弱。汇编是极端例子:语法和概念都简单,真正的难点在于理解特定 CPU 的指令集架构。真正小的高层语言里,Forth 只把空格当成语法构造;Lisp 特别是 Scheme,核心小、语法简单、表达力巨大;Tcl 一切以字符串存在,可以像 Forth 和 Lisp 那样在语言内部构造自己的语言。这三者只需要理解几个核心观念,就能换来几乎无限的能力,语法核心能写在一张索引卡上,代价是习惯过程式语言的人需要一次很大的思维转变。

作者把 Lua 当作又小又简单、不需要“血祭”的例子:5.1 版参考手册的语言部分只有 27 页。Zig 像 C,但实际很大,要有效使用得掌握很多内容。David Ungar 在回顾 Self 语言的演讲里说,宁可让系统稍微简单一点,让使用者多写一些东西,也不要让系统行为古怪而没人能理解。

为什么小东西让人愉悦

作者一直痴迷微缩模型和透视箱。Stephanie M. Langin-Hooper 在《Tiny Things and Why We Love Them》里写,把实物缩小会产生影响:更可爱、更容易接近、更脆弱,也更无害、更可控。Simon Garfield 在《In Miniature》里给出的答案是对掌控和启明的渴望,把缩小的秩序和光亮带进一个混乱的世界。

评论区有人想写一个直接编译到机器码的简单脚本语言,做了个叫 mortar 的起点,能编译并运行斐波那契生成器,比几乎相同的 Python 程序快 380 倍。有人回应说字节码的价值在可移植,用 C 写一个字节码解释器就有了完整的跨平台工具链。还有人提到 Binary Lambda Calculus,这门语言的设计目标就是把 Kolmogorov 复杂性具体化,自解释器只有 168 位,也就是 21 字节。

2026 年,为什么还在用 Gopher

关掉噪音

Wayne 在 2026 年 5 月 22 日写下 phlog(Gopher 上的博客)第一篇,聊为什么这一年还在用 Gopher 这种早期的互联网信息检索协议。他说读到这里的人大概不满足于只用工具,还想知道工具怎么运转。他注意到 17 岁的孩子和那些有 ADHD(注意缺陷多动障碍)的朋友们有一种趋势,想关掉世界的噪音回到更简单的时代。

vi 时代没有语法高亮,现在 vim 有;他不仅知道有,还能上网搜怎么配置一堆以前不知道、看手册也弄不明白的功能。过去得找到一个人,先听懂你在说什么,再比你懂得多。他觉得技术处在一个奇怪的位置,既超级有用又超级没用:什么都要订阅,服务一直在变,利润驱动一切方向。找到一个像 sdf.org 这样按旧方式运作的地方很好。

工具链现状

HN 讨论里,prologic 说 Gopher 协议今天依然相关,美在简单,他多年前写的 go-gopher 库还在被使用。anthk 补充了具体工具:Gemini 在旧机器上表现不错,有些客户端只是 awk 加 less。Gopher 方面可以用 lynx、sacc,加上 i2pd(I2P 匿名网络客户端)获得一些安全和匿名。Lagrange 客户端同时覆盖 Gemini 和 Gopher,还能设 HTTPS 代理来读新闻网站和博客。终端用户可以用 Telescope。

在 11175 kHz 上收听核力量的紧急行动信息

能听到什么

前导弹发射官 Daniel Frenkel 做了一个叫 missileer.watch 的网站,把美国核力量在高频全球通信系统(HFGCS)上播发的紧急行动信息(EAM)录下来、逐字符抄收。主频 11175 kHz 上边带,一台短波收音机就能收到。EAM 是预先格式化好的加密短消息,能听到的部分是它的固定结构:先呼叫网络,六字符前导码连读三遍,中间夹“standby”,然后“message follows”,接着是完整字符串;之后“I say again”,再整个读一遍。消息只用 32 个字符:A–Z 加数字 2–7,没有 0、1、8、9。

网站首页注明开头展示的是开发用固定数据,不是实时流量。过去七天记录 27 条 EAM,还有 71 条只听到一部分。评论区有人用 SDR(软件定义无线电)自己听过,说这条频段并不像网站写的“mostly static”,消息来得相当稳定。

胶囊里怎么验证

文章花了不少篇幅讲 EAM 落地的地方:发射控制中心在约 60 英尺地下,8 吨防爆门,两名军官 24 小时值班,房间有校车大小。指挥官坐左,副手坐右,中间是发射控制台、打印机、电话和一堆程序手册。消息进来,两人必须都确认它真实有效才能往下走。系统设计成没有单个人能发射:两名军官各有一把钥匙,冷战时期保存下来的胶囊里,两个钥匙开关相隔 12 英尺。一个胶囊的钥匙也不够,通常还需要另一个发射控制中心投赞成票。

今天部队是 400 枚 Minuteman III,分属怀俄明的 F.E. Warren、蒙大拿的 Malmstrom、北达科他的 Minot 三个联队。Frenkel 2012 到 2016 年是导弹兵,在 F.E. Warren 值班。他写自己讨厌这份工作,但也为它自豪:常年疲倦、无聊或紧张,二十几岁就在胶囊里穿着运动裤等,训练多年只为什么都不做。他服役四年从没听过 EAM 被读出来,退伍后才知道同样的信号一直向所有带收音机的人播发。

评论区:演习、加密与 13 分钟

有人说消息本身什么都不意味着,活动量涨了也不意味着什么,眼下正赶上一次大型演习的尾声,消息变多大概和演习有关。加密方式上,评论普遍认为是一次性密码本,没有密钥挖不出内容,最多做点元数据。一位前海军说,HF 抗干扰,所以被用来传这类关键通信;他在一次末日演习里整天守着 HF 接收机,听到消息就抄下字符,从不回应,而是用自己的 HF 发射机把同样的内容转发出去。有人提到“13 分钟”这个数字:潜射导弹从发射到在美国目标上空爆炸大约这么久。

评论区很多人的第一反应是指出文章的文风是 AI 写的,给出“Claudenglish”“LLMese”这类叫法,有人建议换成更新的模型。也有人提醒,能一眼认出的是默认文风,微调过的模型未必看得出来。

世界上最硬的食物怎么做

半年做一块木头

kottke.org 的 Jason Kottke 分享了一段视频,记录日本西伊豆 Kanesa Katsuobushi Shoten 工坊制作鲣鱼干(katsuobushi,即日本木鱼或鲣节,常被称作“世界最硬的食物”)的全过程。工坊 1882 年创立,第五代匠人 Yasuhisa Serizawa 仍在用有 200 年历史的“手火山式”手工烟熏干燥法,日本只有少数几家工坊保留这门技艺。

流程从新鲜鲣鱼开始:切片,煮 90 分钟,在手工照看的木火上烟熏十多次,用鲣鱼酱修补裂缝,用曲霉(koji mold,一种用于发酵的霉菌)发酵,再日晒数月。前后超过半年,鱼肉最终硬得像木头,表面光亮如宝石。工坊网站介绍,手火山式在伊豆西部的田子地区已用了约 300 年,可追溯到江户时代。做法是挖一个约 2 米深的竖坑,从坑底烧伊豆本地的橡木、麻栎、樱木,用明火高温烟熏干燥,一次性处理鱼的表面,把鲜味锁住。

从筑地到拉面店

HN 上的讨论有不少来自感官记忆。ggm 描述旧筑地市场:木箱装着的鲣鱼薄片在微风里轻轻飘动,人们用绿色搪瓷的电动工业台式刨床刨片,燃气驱动的市场推车穿梭。澳洲买到的袋装鲣鱼片在运输和包装中碎成小块,放进三文鱼米饭的蒸汽里,依然轻轻飘动。他觉得刨鲣鱼片像木工车床周围的碎屑:同样形状的东西,在那里是废料,在这里却是目的。鲣鱼片撒在关东煮上会“跳舞”。halflife 在东京一家鱼汤拉面店见过一块鲣鱼和手动刨刀,看起来像巨大的卷笔刀;拉面旁边会把鲣鱼片装在小网里,建议泡 10 秒,不要超过 30 秒,否则味道太浓。

过敏与年份的小争论

spike021 对流程好奇,因为他对鱼过敏,吃不了金枪鱼和三文鱼,但几乎任何鲣鱼高汤做的食物都能吃。rprwhite 推测这是蛋白质过敏,蛋白质变性后(高温、低 pH 或氧化)就不再引发反应;tux3 补充说抗体不一定只结合蛋白质,脂质、碳水化合物、任何足够大的分子都可能成为过敏原。mrlonglong 问他们怎么想到这个方法的,layer8 认为几乎肯定是渐进过程:先为其他用途烹饪或熏金枪鱼,再通过发酵和日晒延长保质期,发现用酱抹平外表有助于延长保存,然后解决长时间干燥导致过硬的问题,切成薄片。

avadodin 指出江户时代 1868 年结束,那家 1882 年创立的店并不比 2017 年创立的店更“按江户时代的方式”制作。Walf 纠正年份后反问:同一产品做了 144 年,保留了仅 14 年前那个时代的技术,本身就是成就。也有人提到烟熏过程的焦油可能让鲣鱼干含致癌物苯并芘,读到这一步有点被劝退。

中世纪峰区的铅污染留下了牙齿里的证据

牙齿是童年的记录

德比郡峰区在中世纪欧洲属于最大的产铅地区之一,但它的早期生产史一直模糊。诺丁汉大学、英国地质调查局、谢菲尔德大学等机构的研究者在《Antiquity》发表论文,用三处墓地人骨牙齿釉质中的铅浓度,配合放射性碳定年,重建了公元 600–1500 年间这一地区的铅生产节奏。牙齿釉质在形成后不再重塑,因此其中的铅浓度是一份封闭的记录,对应个体大约 4 到 12 岁的童年时期。

研究采样 17 人:卡斯尔顿的 Joule Yard 与 Spital Field 各 5 人,Wigber Low 5 人,另有 2 名 nearby Eldon Hole 的铁器时代个体作为大规模开采前的对照。结果显示,后罗马时代的铅冶炼在 7 世纪中叶已经重启;到 8 世纪中叶,卡斯尔顿等关键矿区周边出现大规模生产和环境污染。当前文献以 0.6–0.7 ppm(百万分之一)作为人为活动指示值,0.5 ppm 以下为自然背景。中世纪样本中除一人外全部超过 10 ppm,4 人(27%)超过 40 ppm。

Wigber Low 的分化

Wigber Low 墓地(约 625–685 年)的差异最明显。随葬剑的两名本地男性铅暴露最低,WIG-01 为 10.9 ppm,WIG-03 仅 2 ppm,他们可能不直接参与生产,而是从控制生产中获益。无随葬品的男性 WIG-05 为 29.5 ppm,锶氧同位素指向不列颠西部,可能是外来者。两名女性的数值高于本地男性,WIG-04 达 69.1 ppm,WIG-06 为 13.2 ppm;随葬品较多的 WIG-06 反而低得多。

作者推测,高值个体来自为庄园主生产铅的低身份家庭。两名女性分别死于 17 岁和 17–25 岁,且都葬在约两岁和五岁的幼儿附近。怀孕会把沉积在骨骼中的铅重新动员出来(世界卫生组织 2010 年报告),母亲与胎儿因此更易受害。年代稍晚的 Joule Yard 样本全部在 25 ppm 以上,作者认为这指向一个专门的采矿冶炼家族社区。

文献、冰芯和同位素对上了

历史文献提供了对照。《末日审判书》记载马特洛克、威克斯沃思、贝克韦尔和阿什福德有矿井,1066 年阿什福德、贝克韦尔、Hope 三处庄园各以五车铅(一车约 2100 磅)缴纳盾税;1086 年 Darley、马特洛克、威克斯沃思、阿什伯恩和 Parwich 缴纳 40 磅“纯银”,这是全书唯一使用该词之处。Spital Field 铅浓度最高的两人碳十四年代几乎相同,落在 1175–1270 年;与此同时,《Pipe Rolls》记录的峰区产量高峰在 1180–1215 年,阿尔卑斯 Colle Gnifetti 冰芯与瑞典纹层湖底沉积也在此期达到峰值。

锶与氧同位素显示,中世纪峰区人口移入很少,铅生产在这里更像世代相传的地方传统。瑞典 Sala 十六世纪银铅矿的墓地则呈现另一种面貌:部分矿工由囚犯充任,童年在他处度过,釉质铅浓度明显偏低。研究者把峰区人群的铅水平作为基准,用于识别其他地区和其他时期有悠久生产史的银铅社区。

播客全文

女:Hello 大家好,欢迎收听 Agili 的 Hacker Podcast,我是莓莓。 男:大家好,我是阿迪。 女:今天这期跨度挺大,从一门叫 Goose 的新语言聊到一个核指挥频道,中间会经过创意行业的就业数字、一块鲣鱼干,还有计算器。 男:那就从 Goose 开始。

女:Goose 是 Wouter van Oortmerssen 发的一门系统级语言,作者网名 Aardappel,以前做过 Amiga E、Sauerbraten、Lobster。它的卖点是内存安全,但没有堆分配器、没有垃圾回收、也没有生命周期标注。这三样都不要,怎么做到的? 男:靠数据栈。程序的内存只有原生调用栈、静态数据,加上编译器算出来的 N 个数据栈。每个栈上同时只有一个可增长值,永远在栈顶,增长就是 bump 指针前进,离开作用域释放就是往栈顶写一次。这些在编译期证明,运行时只维护指针。 女:等于把内存管理推给编译器了。基准数字挺漂亮,MSVC 后端下比惯用 C++ 快 3.51 倍,比手工优化的 C++ 快 1.24 倍。评论区对基准有疑问? 男:有人指出仓库里的 C++ 和 Rust 源码看着不像优化过,很少 reserve。作者半开玩笑说真正手工优化的版本是私有的。还有人搬出 LangArena 独立基准,被另一位反驳说那测的是 AI 写代码的能力,不是语言快慢。 女:还有个更根本的争议,仓库自述写明代码几乎全部由 AI 完成,编译器、基准、示例和文档都是。有评论者要求把文档整个扔掉、用作者自己的话重写,他想知道哪些设计属于人、哪些是模型的意外。 男:作者回应说文档改过不少,但更希望人们直接上手玩。然后有人翻教程第一页就找到错误,说 C++ 的 vector<string> 会为每个字符串各分配一次,但短串落在小字符串优化范围内,不会单独分配。顺着这个,有人问它对训练数据充足的 C++ 都能说错,对没有训练数据的 Goose 又会错多少。 女:这个追问挺尖锐。不过作者在 AMA 里讲 AI 工作流很具体,让 Fable 通读以前 Lobster 的代码库,提炼风格指南,再按 pass 逐个写编译器。所以代码结构像他以前的编译器。 男:他的经验是 AI 写好代码的第一方法是让它待在已有的好代码上下文里。编译器用 C++ 也务实,Fable 在哪种语言里表现都差不多,而编译器输出 C,机器上本来就得有 C 工具链。 女:从语言跳到劳动力市场。

女:美国创意行业四年少了 20 多万个岗位,最近一年就减少约 5 万。Apricitas Economics 的作者 Joseph Politano 把这轮下滑放在现代美国媒体就业史里看,损失强度和持续时间只有 2001 年、2008 年两次衰退可以相比。但这次没有全面衰退。 男:时间上重叠的是 AI 系统开始以极低成本进入内容生产。损失集中在几个行业,电影与录音行业三年裁掉超过 10 万个岗位,接近该行业总就业的三分之一,2026 年夏天最低点低于 2008 年金融危机时期。出版业同期减少 7 万多个岗位。 女:把账算到 AI 头上不容易吧?媒体公司不愿谈自己怎么用 AI,既怕公众反弹,也要维护版权主张。 男:还有好莱坞整合、制作外迁、社交媒体创作者挤占传统媒体。一位住在亚特兰大的评论者说,当地曾是洛杉矶重要的拍摄外包地,如今工作流向欧洲,因为那里更便宜。2023 年的编剧和演员罢工也是一颗钉子,制作方把项目搬到了没有罢工的地方。 女:历史对照挺清楚。音乐行业被文件分享冲击后转向现场,巡演更长、场馆更大、票价更高。电影没有这样的退路,去年票房比 2019 年峰值低 25%,流媒体收入补不上缺口。 男:报纸展示了最坏情况,美国报纸曾雇用约 50 万人,比整个石油行业还多,如今工资单缩水近 85%。杂志出版商自 1990 年代以来裁掉 66% 的员工,图书出版商少了 40%。 女:也有反向的例子,过去六年美国图书销量增长 70%,拯救纸质书的是 TikTok 上的 BookTok 社区。 男:作者对 AI 的判断比较克制,说创意行业就业正被多种力量同时挤压,AI 是较新、较难量化的一股。评论区对效率为谁服务分歧很大,有人说省下的钱没到普通人手里,要解决得靠反垄断;也有人说长期价格下降会带来更激烈竞争,举了 Valheim 最初主要由一个人开发的例子。还有怀疑者引用斯坦福 SIEPR 的政策简报,说经济学家反复测算认为 AI 迄今对经济的冲击很小。 女:下面换到硬件。

女:Cerebras 在博客里拿 Kimi K3 做例子,讲怎么把一个 3 万亿参数的模型铺到 59 片 WSE-3T 晶圆上,跑到 1000 到 2000 以上的 token 每秒。 男:3 万亿参数按 4-bit 量化,原始权重约 1.5 TB,摊到 93 层,每层约 16 GB。一片 WSE-3T 的片上 SRAM(静态随机存取存储器)是 44 GB。 女:那 59 片怎么算出来的? 男:模型有两种层。69 个线性注意力层不存每个 token 的 key/value,一个请求只占固定状态,一片晶圆能放两层,共 32 GB。24 个稠密层要为每个活跃请求的每个 token 保存 KV 缓存(key/value 缓存),一片只能放一层。69 除以 2 向上取整得 35,加 24 就是 59 片。 女:晶圆之间怎么连? 男:用 RDMA over Ethernet 连成流水线,每跳约 2 微秒,只有激活值在走,权重留在原地。整条流水线同时装着不同请求,第 3 片处理请求 A 时,第 2 片处理 B,第 1 片处理 C。并发上限由稠密层的 KV 缓存决定,评论里有人推算出约 190 个并发请求、整机 1.18 兆瓦、约 4.1 J/token。 女:评论区更关心普通人能拿到什么。有人说 Cerebras 上能用的只有 GPT OSS 120B 和 Qwen 3.8 27B,前者飞快但基本都是错的。还有前订户说 1000 TPS 当时独一份,如今被 Mercury 3 在成本和性能上双双超过。 男:还有人抱怨这类高速模型版本太旧,而 Anthropic 和 OpenAI 每隔几周就发新的 SOTA(最先进水平),却把精力放在订餐厅之类的功能上。有人回了一句,对写代码有用的东西,对 99% 的人可能完全没用。 女:OpenAI 到底用没用 Cerebras 硬件,评论里也吵了一场。有人说是 Nvidia 硬件,有人说 Jane Street 买断了算力。 男:44 GB SRAM 让一些人觉得小,有人解释那是 SRAM,相当于 44 GB 的 CPU 缓存,所以它才这么快也这么贵。速度值不值分成两派,有人想象同样的智力快上 100 倍,有人觉得瓶颈根本不是速度,是审查负担。 女:从算力回到桌面。

女:SpeedCrunch 1.1 发布了,免费开源高精度科学计算器,最高 50 位精度,内置 140 多个函数。一位长期用户说,他用 0.12 十年,每天用,没遇到 bug,看到新版很意外。安装后输入框放大一倍,外面套了不必要的边框,周围多出空白,还出现输入延迟。他回退到了 0.12。 男:也有人喜欢新界面,说可以切回经典视图。有评论者不同意“软件已完成”的说法,认为任何消费级应用 UI 都有几乎无限的改进空间。另一位解释得更细,多数消费软件假设功能只在构建时产生成本,维护成本和新功能带来的组合复杂度很少被考虑,团队增加复杂度快过可处理工作量,最后质量下降。 女:1.1 修了一个长期存在的运算顺序 bug,1/2(-9.8) 现在等于 -4.9,以前是 -0.05102040816326530612。表达式还会渲染成 1 / 2 × (−9.8),用乘号把含义写清楚。 男:有人觉得这个公式本身太有歧义,该直接报错;也有人指出除法和乘法同级,从左到右算,-4.9 明确正确。还有位用户提到硬编码了 5 位数字的限制,超过就转科学计数法,1.1 提高到了 14 位。他多年来自己编译改代码,把 if (expd > 5) 改成 25。 女:社区不少人已经转向别的工具,有人换到 Qalculate,说 UI 不算出色但很强大,还能和 KDE 的 krunner 集成,按 Alt+Space 就能用计算器和单位转换器。也有人提 numbat,主要优势是能随手定义自己的单位。 男:还有人遗憾缺少质数函数,有人关心 Homebrew formula 被禁用。一位用户分享自己用 Claude 写了个科学计算器,先问会放哪些函数,然后让 Claude 写代码,一次就看起来很完美。有人提醒科学计算器出奇地难做对,SpeedCrunch 自己刚修了一些计算错误。 女:从计算器转到很小很小的程序。

女:有个作者聊 Forth 实现,收到反馈后列了自己见过的最小实现。Philippe Brochard 贡献了一个 46 字节的 Forth,小到作者直接把十六进制转储贴进了正文。 男:还有 Arthur Whitney 在一个下午内、只用一页纸写出数组语言解释器,122 行极其晦涩的 C。Geo Carncross 讲的 kOS 把 k 语言、kdb 数据库、GUI 和窗口管理器全装进 90 KB 可启动镜像。William Byrd 那场“有史以来最美丽的程序”演讲里,Lisp 解释器只有十来行。 女:作者说 200 行的东西他几乎一定点开,2000 行就要犹豫。46 字节的机器码看起来吓人,但正因为这么小,读的人会觉得自己总有一天能弄懂。 男:他问这些除了好玩还有什么用,回答是有用。Kolmogorov 复杂性衡量生成某个对象的最短程序长度,代码高尔夫选手实际上是在为全人类标定程序复杂度的下界。Justine Tunney 带垃圾回收的 Lisp 可以小到 436 字节,Frank Force 的 3D 浏览器游戏压缩后只有 2 KB JavaScript。 女:评论里有人列了自己用 uxn 写的实用小程序,39 字节的十六进制解码器、125 字节的 JSON 转 NDJSON、1024 字节的 BLAKE2s,还有一个带图形、音效、字体和计分的卡牌游戏,1853 字节。他说这些程序省略了错误检查,这是短小的原因之一。 男:文章后半段解释为什么小东西本身让人愉悦。Stephanie Langin-Hooper 在《Tiny Things and Why We Love Them》里写,把实物缩小会更可爱、更容易接近、更脆弱,也更无害更可控。Simon Garfield 在《In Miniature》里说答案是对掌控和启明的渴望,把缩小的秩序和光亮带进一个混乱的世界。 女:这个感受挺具体的。下面换个吃的。

女:kottke.org 的 Jason Kottke 分享了一段视频,记录日本西伊豆一家叫 Kanesa Katsuobushi Shoten 的工坊制作鲣鱼干的全过程。鲣鱼干常被称作“世界最硬的食物”。工坊 1882 年创立,第五代匠人还在用有 200 年历史的手火山式手工烟熏干燥法。 男:流程从新鲜鲣鱼开始,切片、煮 90 分钟、在手工照看的木火上烟熏十多次、用鲣鱼酱修补裂缝、用曲霉发酵、再日晒数月。前后超过半年,鱼肉最终硬得像木头,表面光亮如宝石。手火山式在伊豆西部田子地区用了约 300 年,挖一个约 2 米深的竖坑,从坑底烧伊豆本地的原木,用明火高温一次性处理鱼的表面。 女:HN 上的讨论有不少来自感官记忆。有人描述旧筑地市场,木箱装着的鲣鱼薄片在微风里轻轻飘动,人们用绿色搪瓷的电动工业台式刨床刨片。他说鲣鱼片撒在关东煮上会跳舞。 男:还有个对鱼过敏的人说,他吃不了金枪鱼和三文鱼,但几乎任何鲣鱼高汤做的食物都能吃。有人推测这是蛋白质过敏,蛋白质变性后就不再引发反应。也有人补充过敏原可能是不溶性蛋白质,高汤里含量很少。 女:有人读到烟熏过程的焦油可能让鲣鱼干含致癌物苯并芘,有点被劝退。也有人说几乎所有烟熏食物都这样。 男:还有个小争论,江户时代 1868 年结束,1882 年创立的店并不比 2017 年创立的店更“按江户时代的方式”制作。有人反驳说,同一产品做了 144 年,保留了那个时代的技术,本身就是成就。 女:从吃的转到互联网的老角落。

女:Wayne 在 2026 年 5 月写下 phlog 第一篇,phlog 就是 Gopher 上的博客。他聊为什么这一年还在用 Gopher 这种早期的互联网信息检索协议。他说读到这里的人大概不满足于只用工具,还想知道工具怎么运转。 男:他注意到 17 岁的孩子和有 ADHD(注意缺陷多动障碍)的朋友有一种趋势,想关掉世界的噪音回到更简单的时代。他自己有点“别踩我的草坪”的心态,回不去了,无论好坏都得弄明白现在的位置。翻盖手机对孩子们是简单低科技,对他那代人是最新技术。 女:他提到 vi 时代没有语法高亮,现在 vim 有。他不仅知道有,还能上网搜怎么配置一堆以前看手册也弄不明白的功能。过去得找到一个人,先听懂你在说什么,再比你懂得多。 男:评论区有人推荐具体工具,Gemini 在旧机器上表现不错,有些客户端只是 awk 加 less。Gopher 可以用 lynx、sacc,加上 i2pd 获得一些安全和匿名。Lagrange 客户端同时覆盖 Gemini 和 Gopher,还能设 HTTPS 代理来读新闻网站和博客。 女:下面聊一个关于电视的隐私故事。

女:一位 2025 款 Samsung TV 的用户一直收到奇怪的定向广告。他想逆向固件查原因,发现固件用 AES 加密,没有密钥,除非拆机做 UART 或 JTAG(串口与调试接口)才能拿到。他转而找零日漏洞,在新 Samsung TV 上拿到了 root shell。 男:root 之后他看到的东西被他称为“隐私恐怖”:常开的热麦克风、自动内容识别(ACR,通过识别屏幕内容投放广告)、地理位置、网络映射、定向广告服务、4 个不同的 DRM(数字版权管理)服务。还有用户画像和大量遥测数据。他晒出一个叫 security-policy.xml 的文件,写道:“只有你、上帝、一台 3000 美元的电视,以及 Samsung 和它的 400 个合作伙伴。” 女:HN 的讨论对这个说法有不少保留。有人指出,狗叫和婴儿哭声检测是 SmartThings 集成里公开宣传的功能,属于用户主动开启、在本地芯片上运行的模式匹配,不是把音频传出去。 男:也有人批评这是用 AI 逆向、又被自己的 AI 带偏的发现。做逆向工程的第一步应该是读公开文档、FCC 备案和专利,OP 找到的东西大多在这些材料里就有。还有人翻出近期的测试,在拒绝授权后,Samsung 是少数真正停止发送数据的品牌,LG 反而在德州诉讼和解后加了强制仲裁条款。 女:另一条线是 OpenAI。这位研究者用 AI 解密固件,随后 OpenAI 账号因“Cyber Abuse”被封。有人觉得这很蠢,不能放心用 LLM 做逆向工程,会大幅降低它的价值。 男:也有人提到 daybreak blue 项目,个人可以申请,只限防御性用途,措辞很重要,说明是在自己的设备上做防御性分析,能减少误判。回到电视本身,广告追踪压低了电视售价,设备在使用期间持续产生收入。不想被追踪,最干脆的办法是根本不联网,接一个 Apple TV 或 Chromecast。有人提醒,不联网不代表绝对安全,电视可能借邻居的公共热点回传数据,不过目前没有证据。 女:从消费电子跳到核指挥。

女:前导弹发射官 Daniel Frenkel 做了一个叫 missileer.watch 的网站,把美国核力量在高频全球通信系统(HFGCS)上播发的紧急行动信息(EAM)录下来、逐字符抄收,供任何人收听和阅读。主频 11175 kHz 上边带,一台短波收音机就能收到。 男:EAM 是预先格式化好的加密短消息,能听到的部分是它的固定结构:先呼叫网络,六字符前导码连读三遍,中间夹 standby,然后 message follows,接着是完整字符串,之后 I say again,再整个读一遍。网站用加州的 KPH 和冰岛两个接收站抄收,机器转录后再由人工校对。消息只用 32 个字符,A 到 Z 加数字 2 到 7,没有 0、1、8、9。 女:首页注明开头展示的是开发用固定数据,不是实时流量。过去七天记录 27 条 EAM,还有 71 条只听到一部分。评论区有人用 SDR 自己听过,说这条频段并不像网站写的 mostly static,消息来得相当稳定。 男:文章花了不少篇幅讲 EAM 落地的地方,发射控制中心在地下 60 英尺,8 吨防爆门,两名军官 24 小时值班。系统设计成没有单个人能发射,两名军官各有一把钥匙,两个钥匙开关相隔 12 英尺。一个胶囊的钥匙也不够,通常还需要另一个发射控制中心投赞成票。 女:Frenkel 2012 到 2016 年是导弹兵,在 F.E. Warren 值班。他写自己讨厌这份工作,但也为它自豪,二十几岁就在胶囊里穿着运动裤等,训练多年只为什么都不做。他服役四年从没听过 EAM 被读出来,退伍后才知道同样的信号一直向所有带收音机的人播发。 男:评论区很多人的第一反应是指出文章文风是 AI 写的,给出 Claudenglish、LLMese 这类叫法。关于该不该盯着这条频率,有人说消息本身什么都不意味着,消息变多大概和演习有关。加密方式上,评论普遍认为是一次性密码本。 女:最后回到地面,聊聊考古。

女:德比郡峰区在中世纪欧洲是最大的产铅地区之一,但早期生产史一直模糊。诺丁汉大学等机构在《Antiquity》发表论文,用三处墓地人骨牙齿釉质中的铅浓度,配合碳定年,重建了公元 600 到 1500 年的生产节奏。 男:牙齿釉质形成后不再重塑,铅浓度是封闭记录,对应个体大约 4 到 12 岁。研究采样 17 人,包括卡斯尔顿的 Joule Yard 与 Spital Field 各 5 人,Wigber Low 5 人,另有 2 名铁器时代个体作对照。结果显示后罗马时代的铅冶炼在 7 世纪中叶已经重启,到 8 世纪中叶卡斯尔顿周边出现大规模生产。 女:铅浓度具体到什么水平? 男:当前文献以 0.6 到 0.7 ppm(百万分之一)作为人为活动指示值,中世纪样本中除一人外全部超过 10 ppm,4 人超过 40 ppm。Wigber Low 墓地里,随葬剑的两名本地男性铅暴露最低,一人 10.9 ppm,另一人只有 2 ppm,他们可能不直接参与生产,而是从控制生产中获益。无随葬品的男性是 29.5 ppm,可能是外来者。 女:那两名女性的数值好像更高? 男:对,一人达 69.1 ppm,分别死于 17 岁和 17 到 25 岁,都葬在幼儿附近。怀孕会把沉积在骨骼中的铅重新动员出来,世界卫生组织 2010 年报告提到这一点。作者推测高值个体来自为庄园主生产铅的低身份家庭。年代稍晚的 Joule Yard 样本全部在 25 ppm 以上,指向一个专门的采矿冶炼家族社区。 女:历史文献能对上吗? 男:《末日审判书》记载几处有矿井,1066 年三处庄园各以五车铅缴纳盾税。锶与氧同位素显示中世纪峰区人口移入很少,铅生产更像世代相传的地方传统。研究者把峰区人群的铅水平作为基准,用于识别其他地区有悠久生产史的银铅社区。 女:好,今天就聊到这儿。

女:今天从语言设计聊到牙齿里的铅,跨度是有点大。 男:下次可以再挑几个小的。 女:感谢大家收听。记得用泛用型播客客户端订阅我们,下期见。 男:下期见。

参考链接