一年前的今天,我在大理一间月租六百块的民宿里醒来,泡了一壶普洱茶,准备回复德国客户的一个 issue。然后 GitHub 没了。连同我那两千三百四十七颗星,以及一个叫“JavaKit”的名字。
今天我在湖南老家的书房里写这篇文章。窗外是县城的塔吊和新楼盘,桌上的茶早就凉了,保温杯上多了一行用记号笔描过的字。一切都不一样了。
那个早晨
我记得很清楚。浏览器刷新了三遍,重启了路由器,甚至用手机开了热点——github.com 像一个被抹掉的单词,干干净净,连个像样的错误提示都不给。我的第一个念头不是“我的代码没了”,而是“我的客户怎么办”。沙特银行、日本的两个外包项目、德国那家对我信任有加的技术公司——他们依赖的 JavaKit 仓库,那个我维护了五年的项目,就在那个早晨变成了一个白色的 404。
四天后,我搬离了大理。走的时候没回头。我以为自己能扛住,但在收到德国客户那封终止合作的邮件时,手还是抖了。年收入从十五万归零,只用了不到一周。
名字之殇
后来我尝试在 Gitee 上重建。审核系统告诉我:getJavaVersion 包含敏感字符串,因为 av 不能挨在一起。我把方法名改成了 getLanguageVersion,然后坐在椅子上笑出了声。笑完了继续改,改到第三十七个方法名的时候,我写下了《自我审查备忘录》。
有人问我恨不恨那个审核系统。我说不上来。它只是个被训练坏的 AI,就像那个把 GH 理解成 Go Home 的系统一样——是的,后来我们都知道了,GitHub 的消失只是因为一个工程师的周报里写了“GitHub (GH)”,AI 判定为“回家”,然后一个半梦半醒的运维点了批准。这是后话,但每想一次,我就觉得这个世界比任何代码都荒诞。
保温杯上的字
去年生日,我给自己买了个保温杯,上面印着“Keep Calm and Code On”。那是从一个技术论坛的周边商店买的,很便宜,但我喜欢那句话。404 日之后,我在下面用记号笔加了一行字:“And Kill the Dragon.”
那时候我还不知道自己要面对的是什么。没经历过在 Minecraft 里同时打凋零和末影龙,没经历过和方块鱼、小岑、Wei 他们一起在网吧里吼叫的夜晚。那行字只是一个寓言,提醒自己不要停下来。但后来,寓言变成了真实的战斗。
数字 2,347
很多人问我为什么对那两千多颗星那么执着。星标不是代码,不能运行,不能卖钱。但那是五年里四百一十七条 issue 的讨论、七十六个 PR 的评审、三千多个生产依赖的信任累积出来的一个数字。它是我作为独立开发者唯一的信用凭证。当面试官说“能打开你的项目让我看看吗”,而我只能回答“链接已经死了”的时候,那个数字就成了我整个职业生涯的一个空洞。
所以当微软宣布用 Minecraft 挑战来恢复数据时,我没有任何犹豫。那不是一场游戏。那是我对那个空洞的最后一次填充。
GH
到今天我仍然会在终端里习惯性地敲 git push origin main,然后想起 origin 已经不在那个域名下了。但我也习惯了新的 remote,新的协议,新的分布式节点。SourceWeave 的测试网已经跑起来了,方槐在德国做了欧洲区的第一个镜像节点。陈小满那小子上个月在 SourceWeave 上建了个仓库,把他小学四年级写的 vbs 弹窗脚本传了上去,commit message 是:“这是我的第一行代码。它曾经用来恶作剧,现在它是一个种子。”
一年了。我们失去了一个平台,但夺回了平台的定义权。
如果你问我现在看到 GH 这两个字母会想到什么——一年前是 GitHub,今天是 Go Home。不是回家躺平,是回到原点,重新出发。回到代码本身,回到创作者手里,回到那个没有任何 AI 可以替你决定什么字母能挨在一起的自由里。
“Keep Calm and Code On. And Kill the Dragon.”
—— 陆鸣,2027年8月11日,湖南老家书房。
保温杯里的茶又凉了。但我在杯底贴了个标签:GH = Go Home。
又及:2028年4月2日,我们真的屠了那条龙。
评论 (9)