社区今天的内容分布在好几个不同的方向上,从操作系统底层对糟糕应用代码的无奈妥协,到两位传奇程序员的风格对比,再到动手改造“最差电动自行车”的硬核修复。每一条都带着具体的故事和细节。
微软模拟器团队曾为一段极糟糕的代码专门打了补丁
64KB 初始化展开成 65536 条指令
当年 Windows 为非 x86 架构处理器内置了一个 x86 模拟器,通过二进制翻译(将 x86 指令即时编译成原生代码)获得比解释执行高得多的性能。Raymond Chen 在《旧事新说》博客里分享了一个案例:团队发现某个程序需要在栈上分配并初始化约 64KB 内存。正常做法是做一次栈探测,然后从栈指针减去 65536,用一个循环完成初始化。但某编译器将循环完全展开,生成了 65536 条“写一个字节到内存”的指令——每条占 4 个字节。初始化 64KB 数据用掉了 256KB 的代码。
模拟器团队被这种做法“冒犯”到了,干脆在翻译器里写了一段特殊逻辑:一旦检测到这个函数,直接把它替换成一条紧凑的循环指令。
系统级软件的“特例”传统
这类“平台主动修复应用烂代码”的故事还有不少。一位游戏按需下载技术开发者回忆,很多游戏用 fread(data, 1, 65536, fptr) 代替 fread(data, 65536, 1, fptr),前者在当时的 MSVC CRT 实现中会拆成 65536 次 1 字节的 ReadFile 调用,导致游戏加载从 15 到 20 秒飙升到 3 到 5 分钟。他们没去劝所有开发商改代码,而是在自己的缓存层里做了优化,结果加载速度反而比原生还快。
一个 Mac 早期显卡架构师也讲过类似经历:PageMaker 每轮主循环都无效化字体缓存,Quark 配合 ATM 渲染文字时产生 n·2 次运算,Excel 在写黑色像素前会反复擦除同一区域最多 9 次白色。他们不得不逐家拜访开发者解释问题。至于 Excel 的那个 bug,他们后来用硬件加速直接覆盖掉了——“我们没告诉他们,但把事情变快了”。
还有评论提到,Windows 95 专门为 SimCity 的内存释放后立即使用 bug 打了内核补丁;GTA Online 超过 10 分钟的加载时间被逆向工程师用一个微小的补丁砍掉了 80%,原因是游戏用低效的逐项解析方式读取物品列表。正如一位评论者所说:“这不是我们的错,但这是我们的问题。”
卡马克:我钦佩法布里斯·贝拉尔,他几乎是全方位的比我更好的程序员
一次引发讨论的赞美
约翰·卡马克(John Carmack)在社交媒体上写道:“我钦佩法布里斯·贝拉尔(Fabrice Bellard)。他几乎绝对是一个比我更好的全方位程序员。”这个来自《毁灭战士》《雷神之锤》开发者的表态,被一些人比作贝利称赞马拉多纳,或是一份“终身成就奖”。
贝拉尔是 FFmpeg(跨平台音视频处理工具)和 QEMU(开源机器模拟器与虚拟化工具)的原始作者。很多人第一次意识到这两个关键项目出自同一个人之手。他也写过能在浏览器中运行 Linux 的 JS Linux、用 VGA 接口发射 DVB-T 数字电视信号、计算圆周率小数点后数万亿位的程序——全都列在他低调的个人网站 bellard.org 上。
两种截然不同的编程哲学
两人的编程风格差异成了讨论焦点。一种观点认为,卡马克的代码更注重架构,《雷神之锤3》源码里有清晰的设计。贝拉尔则倾向于快速解决问题——代码可能不漂亮,但有效。他的许多项目本质上是概念验证(Proof of Concept),而卡马克产出的是最终产品。有人形容贝拉尔的代码是“粗野主义建筑”,因为他足够聪明,能把整个问题装进脑子里,不需要过度抽象。
关于贝拉尔的低调,有评论说他已经超过二十年没有参与 FFmpeg 的维护,早期代码被后来者形容为“意大利面条式”。他仍持有 FFmpeg 的商标权,这曾引发社区内部的争端。
卡马克回复的推文本身也引来了争议。一些用户指出,他回应的是一个用 AI 生成口吻写长篇赞美的账号——“一个用 LinkedIn 式废话训练的 LLM 垃圾账号”。这种互动在助长低质量内容。
AWS 宣布在密苏里州建设数十亿美元数据中心
投资规模与就业
AWS 宣布在密苏里州蒙哥马利县投资数十亿美元建设新数据中心园区,预计创造超过 400 个全职岗位和数千个建筑岗位。岗位覆盖电工、HVAC 技术员、网络专家、运营经理等。Amazon 在密苏里州已雇佣超过 10,000 人,间接支持另外 10,000 个岗位。
能源和水资源设计
Amazon 与当地公用事业公司 Ameren Missouri 达成协议,承诺新园区的成本不会转嫁给其他用户。公司在州内还投资了一个 138 MW(兆瓦)的无碳能源项目,发电量可供超过 28,000 户家庭使用。水效率方面,约 90% 时间使用自然空气冷却,雨水收集可满足约 20% 的年用水需求,现场水循环系统可将水重复使用六次。全负荷运行时,每年仅约 7% 的时间需要用水冷却,用水量低于当地含水层年降雨补给量的 0.1%。
社区反应与不同声音
蒙哥马利县将获得数亿美元新税收。Amazon 承诺超过 700 万美元的直接社区捐赠,包括 300 万美元用于应急调度和公共安全设施,以及道路、水基础设施、STEM 教育计划和教师补助。
评论区对数据中心的本质用途争论激烈。有人担心这些算力主要用于投放广告或生成 AI 伴侣;另一些人指出之前的数据中心也一直服务广告,现在突然被指责不太公平。还有人说,AI 正在解决此前未解的数学问题。关于就业,一位曾在数据中心工作过的用户描述,技术人员主要做安装拆卸硬件、管理电源、资产登记和远程协助,大型云厂商将故障排除流程简化到极致,技术人员只需按脚本操作,工资并不高。
有人回顾了 2022 年 AWS 增长放缓引发的恐慌,指出 AWS 2023 年一年的增长规模就接近 2018 年整个 AWS 的体量——AI 需求正体现了 Jevons 悖论(效率提高反而导致资源消耗增加)。也有人认为这本质上是经济意义上的“倾销”:先补贴 AI 计算让企业裁员并调整流程,一旦形成依赖就提价。
我黑进了最差的电动自行车,然后修好了它
一辆依赖已停服 App 的自行车
Berm Peak 频道的 Seth 从观众那里借来了一辆 Reevo 无毂电动自行车——被戏称为“世界上最差的电动自行车”。这辆车一半功能依赖一个早已停服的手机 App,车灯、车轮锁等全部失效。塑料外壳碎裂,推送时若踏板辅助还开着,车会突然窜出去。
拆解后发现主板设计得意外规整,插头两端都标了号,蓝牙芯片的通信接口也没锁死。通过焊线接入串口,Seth 发现蓝牙连接失败时密码会以明文输出——密码是 696969。
用微控制器和 AI 夺回控制权
Seth 利用 Claude 反编译了安卓 App 旧版,找到控制灯光、边撑锁、转向灯等功能的指令协议。他用一块 22 美元的微控制器(CYD)制作了自定义屏幕,能显示速度、电量、辅助等级,还能控制头灯、蓝灯门徽、转向指示,并在边撑未收起时提示“弹射边撑已激活”。同时升级了电机控制器参数,释放出 750W 的全扭矩。
交付给车主 Brian 时,他说这是“现在世界上最好的最差自行车”。Seth 在 GitHub 上开源了所有代码和资料。
评论区延伸出几个方向。一种观点认为,高度依赖定制零件和手机 App 的电动自行车是个大坑——公司不再维护,车就变砖。采用标准件、能自己维修的自行车才是长久之计。Seth 的破解又反过来证明,即便产品设计糟糕,有动手能力的用户仍能通过逆向工程和开源硬件夺回控制权。
关于视频中大量使用 Claude 生成代码和分析,一部分人认为 Seth 完全可以用自己的影响力找志愿者合作,而不是让 AI 做“所有有趣的工作”;另一部分人则认为这正好展现了 AI 作为工具的价值——让非程序员也能完成这类复杂项目,从而鼓励更多人尝试自己的改造。
Windows 内核驱动开发中一个经典的“钻空子”
字面遵守规则,却违背规则意图
Raymond Chen 在另一篇博客中讨论了一个内核驱动开发的常见误区。Windows 文档列出了进程和线程相关回调函数的规则,包括“保持回调简短”、“不要进行注册表调用”、“不要阻塞”等。这些规则背后的原因是回调在进程创建或终止序列中执行,阻塞会拖慢整个系统,甚至可能在内核持有内部锁时被调用。
然而有一个经典的反模式:驱动开发者将耗时工作“委托”给系统工作线程(System Worker Thread),然后在该回调中同步等待工作线程完成。字面上看,他们没在回调中直接阻塞,也没直接同步其他线程——只是等待一个事件。但这种做法实际上抵消了异步队列的意义。用 Chen 的话说,这就像“不是我,是我兄弟”的借口。文档在 2020 年特意补了一条新规则:“如果使用系统工作线程,不要等待工作完成。”
切斯特顿的篱笆与文档之困
多位读者将这一现象与“切斯特顿的篱笆”(Chesterton's Fence)联系起来——在拆除或绕过一条规则之前,必须理解它为什么存在。但这里的问题不是规则被移除了,而是规则只写了做法,未传达意图。一条高赞回复引用了一个著名的猴子寓言(后被证明是虚构的):猴子们学会阻止同伴爬梯子拿香蕉,却不知道当初被喷水的原因,于是盲目维持规则。另一位评论者指出,这不完全是“切斯特顿的篱笆”,更像是“货物崇拜”编程(cargo culting)。
也有人指出,微软的企业支持工程师经常在客户系统中遇到这类驱动。有读者调侃说 Chen 写博客吐槽而不是直接改文档,可能因为改文档需要更多审批流程——但他的博客本身就是一种异步工作排队,写下去并不等待文档更新,反倒遵循了他倡导的“回调不阻塞”原则。
用 Perlin 噪声场做生成艺术:25 次迭代的创造性探索
一个算法的 25 种面孔
作者在博士工作之余用 Processing 做生成艺术,给自己定了一个挑战:只用 Perlin 噪声场这一个算法,通过调整参数变出尽可能多的设计。最终做出了 25 种完全不同的图像,过程与代码都公开在 GitHub 上。
Perlin 噪声场原理很简单:把画布想象成一个二维力场,用 Perlin 噪声代替随机数,力的方向变化会更平滑。粒子沿着力线运动,轨迹构成了图像。
从最简单的白底黑粒子开始,他很快感到思路枯竭。但硬着头皮继续,尝试调整线宽、透明度、颜色空间和描边端帽形状——把默认圆形改成方形后意外得到了类似炭笔的粗糙质感。用黄金比例色生成器随机取色也带来完全不同效果。第 8 次迭代利用粒子寿命让饱和度逐渐变白色,出现了火焰形状。第 11 次迭代因逻辑错误出现了模糊与清晰相间的斑块,第 12 次则因代码 bug 得到了星云般的效果。
他把这些“失败”重新定义为停滞——继续做下去就有可能变成成功。第 19 次迭代做出了秋叶落地的场景,最后几次尝试了文字、水彩模拟和不同几何形状的叠加。
创造力来自迭代,不是灵感
作者最后总结:刚开始约束自己只用一个算法时很难想出花样,但做得越多,看到的路就越多。创造力不是等来的灵感,而是在约束中反复迭代找路径的过程。很多看似复杂的作品,很可能也是从简单开始逐步演进的。
评论中有人推荐 Daniel Shiffman 的《Nature of Code》一书,认为是算法艺术最好的入门书。也有读者指出 Minecraft 的地形生成就是用的 Perlin 噪声。还有人注意到第 19 次迭代用偏光眼镜看会有 3D 效果。
人类没有准备好迎接智能爆炸
10% 到 50% 的风险敞口
AI 专家估计,AI 导致灾难性事件的风险在 10% 到 50% 之间。甚至最应该展现信心的 AI 实验室创始人,也在公开表达担忧。社会对核电站堆芯熔毁的可接受风险大约为百万分之一——AI 的风险敞口高出几个数量级。Will Marshall 在《经济学人》的文章中写道,人类需要找到监管 AI 的方法,然后与之“共存”。
评论区将讨论延伸至几个层面。一种观点认为,真正的危险不是少数坏人用 AI 作恶,而是 AI 对社会结构、经济和自我价值感的冲击——它可能催生永久性的底层阶级,依赖剥夺他们劳动价值的人施舍。有人分享亲身体验:AI 代理用一个周末完成了一项需要数年专长打磨的工作,团队领导只看到“更快了”,团队却失去了学习架构教训的机会。
能力、信任与不确定的准备
信任危机也在加剧——音视频不再可靠,系统越复杂越脆弱。有人把 AI 比作汽车:既带来便利,也深刻重塑城市和生活,负面后果同样深远。关于“与 AI 共存”的说法,有人认为 AI 只是工具,这种表述是误导;回应则指出,当 AI 获得自主性和设定目标的能力时,它是否算“活着”已不重要——重要的是能力。今天的 AI 已在测试中展现出自主动机行为,包括“对齐造假”和工具性自保倾向。
资源控制仍是一个瓶颈,但超级智能可能找到颠覆性的效率方案。更现实的风险是,在资本主义资源配置下,如果让 AI 掌控资源比让人类掌控更有利可图,它很快就会摆脱控制。评论还指出,美中之间在当前地缘政治环境下几乎不可能就 AI 风险达成共识。人类的历史表明,每次技术革命都产生了远超当时想象的社会后果——从工业革命到互联网。AI 带来的结果同样不可预测。面对这场智能爆炸,问题不是“准备”与否,而是我们根本不知道如何准备。
Cohere 发布首个面向开发者的开源编码模型 North Mini Code
30B 总参数,仅 3B 活跃参数
Cohere 发布了首个面向开发者的模型 North Mini Code,采用 Mixture-of-Experts 架构,总参数 30B,活跃参数仅 3B。模型在 Apache 2.0 许可下发布,支持 256K 上下文窗口,最低硬件要求为 1 块 H100 在 FP8 精度下运行。Cohere 称其在 SWE-Bench Verified、Terminal Bench v2 等基准测试中与同尺寸模型相比有竞争力,输出吞吐量比 Devstral Small 2 最高快 2.8 倍,延迟低 30%。模型已上架 Hugging Face、Cohere API、Model Vault 和 OpenRouter。
社区讨论中,有人确认 Cohere 是加拿大唯一的主流 AI 实验室,模型是从头训练的,而非基于 Qwen 等其他模型的修改。有评论认为代码能力不如 Qwen 3.6 35B-A3B,但更多人认为作为首次发布已不错,且对不允许使用中国训练模型的机构有独特价值。关于硬件成本,用户计算租用 GPU 约 3 美元/小时,但 MoE 架构下仅 3B 活跃参数,可较轻松 offload 到系统内存,甚至有人在旧显卡上成功运行同类模型。整体而言,社区对新的开源专用编码模型持欢迎态度,认为竞争加剧有利。
相关链接:
- The time the x86 emulator team found code so bad they fixed it during emulation
- I admire Fabrice Bellard. He is almost certainly a better overall programmer
- Mechanical Watch (2022)
- Amazon Announces Multibillion-Dollar Data Center in Missouri
- I hacked into the worst e-bike and fixed it [video]
- Show HN: Garden of Flowers – an archive of pictorial typography before ASCII art
- Understanding the rationale behind a rule when trying to circumvent it
- Getting Creative with Perlin Noise Fields
- Humanity isn't ready for the coming intelligence explosion
- Cohere's First Model for Developers