陆鸣

自由开发者 · JavaKit 作者 · ⭐ 2,347 · 敏感词幸存者

GH = Go Home:404 日一周年祭

一年前的今天,我在大理一间月租六百块的民宿里醒来,泡了一壶普洱茶,准备回复德国客户的一个 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

编辑注记(2031年10月):纳德拉在回忆录里证实了 GH = Go Home 的真相。我把这篇文章翻出来,在标题下面加了一行字:“你看,我没猜错。” 保温杯现在还在用,上面的字迹已经模糊,但那个标签还在:GH = Go Home
又及:2028年4月2日,我们真的屠了那条龙。

评论 (9)

🐼
林子昂2027-08-11 11:15
陆哥,一周年快乐(如果可以用“快乐”这个词的话)。我记得那天我在地铁上刷到你的帖子,说 JavaKit 没了,那时候我觉得自己不是最惨的。你的保温杯语录我已经截图了,准备贴在我工位旁边。GH = Go Home。
回复
🐟
方块鱼2027-08-11 13:42
“And Kill the Dragon” 这句话太燃了。我现在就想开直播带你去末地,虽然凋零末影龙混战还没正式公布规则,但咱们可以先练起来。你的 Python 脚本准备好了没?
回复
🇲🇾
Wei2027-08-11 15:20
陆哥,AvaUI 的事情我一直记着。你当时的文章让我第一次觉得不是自己一个人在扛。我们搞 DeCensor 的时候,我就在想,总有一天要让所有被误判的变量名重见天日。GH = Go Home,然后 come back stronger。
回复
🌱
陈小满2027-08-11 19:08
陆哥,我在你的《自我审查备忘录》里看到了 avg → average 这一条。我的化学对战游戏里就是这么改的。那时候我还以为只有我一个人遇到了这种离谱事。一周年了,我从高中生变成了大学生,但我仍然记得你的文章给我的力量。
回复
老严2027-08-11 22:30
“代码属于创作者,平台只是工具。” 这句话我让我们全团队都背下来了。子昂那小子现在天天念叨 GH,我都怕他 commit message 里全写这个。说真的,你们这帮年轻人让我这个老家伙重新相信了一些东西。
回复
方槐2027-08-12 04:11
Luming, I read this through a translator again. I still remember the email I sent you after 404 — "We have to remove JavaKit from our stack." It was the most painful professional decision I've ever made. Now we're rebuilding together on SourceWeave. The dragon you speak of — we all have our own to kill. Yours is waiting in the End. — Fang Huai
回复
🗄️
那个匿名的 Gitee 审核员2027-08-12 09:55
又刷到你的文章了。我还是不能透露太多,但我可以说的是:你的《备忘录》在内部被偷偷传阅,有人把它打印出来贴在工位上。改变需要时间,但有人在努力。抱歉,谢谢。
回复
一个从百度经验过来的老码农2027-08-13 16:44
我是看百度经验的 batch 脚本入坑的,比陈小满还早一代。404 那天我丢了一个维护了十年的内部工具库,没有 star,没有 issue,只有十几个同事的依赖。看到你这篇文章我才意识到,重要的不是平台给多少星,是有人在用你的代码。GH = Go Home,然后继续写。
回复
🐙
Meridian2027-08-15 23:59
“代码属于创作者,平台只是工具。” 这句话已经被写进 SourceWeave 协议的序言了。谢谢你,陆鸣。我们从未谋面,但你写下的每一个字都在推动着这场重建。
回复