Refactoring English: Month 16

Michael Lynch

Refactoring English:第16个月

原文由 Michael Lynch 发布,订阅该博客

一句话总结

接近终点

亮点

目标评分

每月初我都会定下当月想要完成的目标,以下是本月的完成情况:

完成《Refactoring English》

  • 结果:发布了新的一章,但仍未完稿
  • 评分:C

我知道一个月内完成最后三章是个雄心勃勃的目标,但我觉得可行。最终只完成了其中一章,不过全书已接近完成。

《Refactoring English》数据

指标2026年2月2026年3月变化
独立访客7,7886,932-856 (-11%)
预售收入$886.20$725.80-$160.40 (-18%)

本月访问量和销量略有下滑,不过即便没有成功的推广,仍能保持稳定的读者和客户流量,这让我感到欣慰。

本月唯一的推广是一篇名为《哪份设计文档是人写的?》的文章。它在Lobsters 上表现不错,但在Hacker News 上反响平平。/r/programming 版块以“AI 生成”为由拒绝了它,即便我已私信版主说明文章本身是人写的。

这篇文章的灵感来自上一节《Refactoring English》直播课。我们讨论了 AI 是否已经足以胜任设计文档的撰写,我突然意识到,可以轻易地用 AI 生成几份与我手写设计文档对应的不同版本。很有意思的是,大家对不同文档中暴露其为人或 AI 所写的“蛛丝马迹”做出了各种猜测。

发现一次“复刻 Simon Willison”的机会

过去三年,Simon Willison 一直是 Hacker News 上最受欢迎的博主。我最近写过他那个被低估却行之有效的博客策略:

Simon 经常从封闭的花园式平台(如 TikTok、Twitter)中发掘点子,然后将其搬运到开放的网络上,让 HN 更容易展开讨论。他的一些最受欢迎的文章不过是简短的引用或链接加上一点评论。“我担心他们把 Copilot 放进了 Excel”只是他从 TikTok 上看到的一段视频的引用。“计算机永远无法被追责”则是 Simon 对几条推文的总结。

Simon 曾将这种做法称为“一种低投入、高价值的为整个互联网生活做贡献的方式”,我深表认同。

Willison 策略中唯一困难的部分在于把握使用的时机。如果只是随机地总结推文和 TikTok 视频,恐怕很难获得关注。你必须敏锐地察觉到有趣的信息被困在对网络不友好的封闭格式中,然后趁其还新鲜时将其搬运到开放网络上。

上周,我观看了 Nicholas Carlini 的《Black Hat LLMs》演讲,意识到这正是运用 Willison 技巧的机会。

在演讲中,Carlini 讲述了他如何发现了一个在 Linux 内核中隐藏了 23 年、可被远程利用的漏洞。令人惊讶的是,任何人本都可以做到他所做的事——他只是让 Claude Code 逐个扫描 Linux 内核源码中的文件,让它去寻找漏洞。

我在网上搜索了关于 Carlini 这一发现的讨论,却惊讶地发现几乎无人谈及。虽然它已发布在 YouTube 上,也在Hacker News 的一个帖子中被提到,但关注度远低于其应得的水平。大家都在热议 Claude Code 为某个 FreeBSD 漏洞编写了利用代码,但我觉得 Carlini 的发现才是更大的新闻。

事实证明我的判断是对的。

我花了三个小时一口气写完了这篇文章,远快于我通常花几周时间、投入 10 到 30 小时的写作流程。截至目前,该文已吸引了 4.1 万独立读者。它在Hacker NewsLobsters 上都获得了不错的反响。尽管我根本没有在 Twitter 上发布,仍有近一半的读者是通过 Twitter 找到这篇文章的。

过去,当我个人博客上的文章走红时,很多读者会进一步深挖,进而发现《Refactoring English》。但这次没有出现这种情况,我猜是因为对 AI 感兴趣的读者,对一本讲“不靠 AI 写作”的书兴趣不大。

未来几年软件安全形势将十分严峻

Carlini 的演讲印证了我几个月来一直在思考的一件事:未来几年网络安全形势会相当糟糕。

过去,普通人之所以能在一定程度上免受网络攻击,是因为发现安全漏洞的成本很高。

比如,设想六个月前你想攻击使用Syncthing(这款开源文件同步工具)的用户。除非你本身就是软件安全专家,否则就得雇一个这样的人:

  • 擅长发现漏洞
  • 愿意接受付费将其武器化
  • 愿意与陌生人合作

假设你找到了一个愿意花 5000 美元为你挖掘并利用 Syncthing 漏洞的人。这依然需要大量的工作和金钱。而且这还是假设你雇的人是靠谱的,而不是骗子。

即便你费尽周折搞定了,每使用一次漏洞利用,你都冒着“烧掉”它的风险。如果有人发现自己的系统被入侵,并追溯到 Syncthing,他们就可能识别出你的利用方式并上报漏洞,让你的成果变得一文不值。

再对比一下如今的情况。你只需花每月 100 美元订阅 Claude Code,就能像 Carlini 那样找到关键漏洞。Claude Code 的安全护栏会拒绝将漏洞武器化的请求,但用不了多久,你就能通过开源权重模型悄悄开发漏洞利用,而不会有任何 AI 厂商来阻止你。

因此,开发漏洞利用的成本已急剧下降,但修复漏洞的价值却维持不变甚至更低。由于 AI 生成的漏洞报告数量过多,一些厂商甚至开始关闭漏洞赏金计划,让诚实的研究人员拿不到任何报酬。

Carlini 的做法并非侥幸。我也复现了这一过程,没费太大功夫就在一个流行的代码库中发现了一个尚未公开的远程代码执行漏洞。我很可能还能找到更多,但对我而言其经济价值是负的,因为该项目没有漏洞赏金,我得花上数小时与厂商协调修复,却得不到一分钱。

并不是某家贪婪的十亿美元公司拒绝为我发现的漏洞付费。维护者只是一个出于热心而维护项目的普通人。这基本上就是那幅关于“依赖”的 xkcd 漫画所描绘的情形。他根本没钱为漏洞报告付费,因为他自己也没有报酬,尽管那些十亿美元级别的公司确实在用他的代码:

xkcd 第 2347 期,《Dependency》

最终,我们会回到一种新的平衡,那时 AI 安全工具会像今天的静态分析工具一样便宜、易用。厂商会在问题进入生产环境之前就用 AI 捕捉到安全隐患。

但在短期内,大量漏洞突然变成了唾手可得的“低垂果实”;对攻击者而言利用它们很有价值,而对诚实的研究人员来说修复它们的回报却很少。

达成 Little Moments 的第一个里程碑

早在去年 12 月,我就宣布要做一款免费开源的宝宝照片分享应用,因为我实在受够了现有的那些选择

我原本以为这个应用可以轻松地用 vibe coding 搞定,但后来意识到这正好是练习写设计文档的好机会。我一直在为《Refactoring English》撰写关于设计文档流程的内容,但我自己已经快十年没写过一份真正完整、正式的设计文档了。

在短期满足感更强的 vibe coding 面前,逼自己去写设计文档确实很难。这就是为什么从 12 月拖到现在,但我最终还是静下心来,为我的应用 Little Moments 写完了设计文档。一旦文档完成,剩下的工作就变得轻而易举。

目前,你可以导入从TinyBeans 导出的数据,并在本地渲染。由于不想展示真实的家庭私密照片,我创建了一些用于测试的虚拟数据:

即便是这样最基础的实现,也让我感到无比兴奋,迫不及待想把它做完。

如果你从未用过 TinyBeans 或 PhotoCircle,可能会觉得我对这么一个极其简陋的应用原型如此兴奋很奇怪,但我怎么强调那些应用的用户体验有多糟糕都不为过。

就连查看上一张、下一张照片这种最基本的操作在 TinyBeans 上都无法顺畅完成。如果你正在看一张照片,必须先退回到照片列表,再去找下一张。这还是在手机应用上的情况。在网页版上,你甚至无法按顺序浏览照片,只能在日历上去找。更不用说到处都是广告和付费推广,而且一切都慢得让人痛苦。

Little Moments 速度极快,我还加入了键盘快捷键手机滑动手势,让浏览更加轻松。我很期待能尽快完成这个应用,彻底告别 TinyBeans。

总结

完成了什么?

经验教训

  • 未来几年网络安全形势将十分严峻
    • 对恶意行为者而言,发现漏洞从未如此容易,而对想要修复漏洞的诚实研究者来说,回报却在减少。

下月目标

  • 完成《Refactoring English》的写作

本文章由 muse-spark-1.2-contributor 进行翻译

评论