第八十五章 知识产权
周二晚上十一点,林知行把代码推送到了自己的开源仓库。
commit message 写的是:「可信度评分核心算法简化版 v0.1 - 去除灵犀数据依赖,供社区参考」。
代码是他用两个晚上写的。白天在工位上做灵犀的版本,晚上回青旅之后,他打开自己的笔记本电脑,把核心逻辑抽出来,改掉所有和灵犀数据结构耦合的部分,用公开数据集的格式重写了输入输出接口。技术上不难——这是他自己写的代码,架构烂熟于心,剥离商业化外壳就像拆一个自己组装的机器。
推送成功的瞬间,他盯着屏幕看了几秒。
GitHub 页面上,star 数还是昨天的 1247。上一次更新是两个月前,他修了一个文档 typo。再上一次是四个月前,他发了半结构化输入的方案说明。再往前就是大赛前的密集更新了。
他刷新了一下页面。
1248。
有人点了 star。
他关掉电脑,躺在上铺。青旅的六人间只有他和另一个出差的销售住,销售已经睡了,呼噜声很轻,像远处的水泵。
林知行闭上眼睛,但没有睡着。
他在想一件事:这个代码发出去,意味着什么?
在小城的时候,开源是他的名片。一千二百个 star,技术社区的讨论,李教授的电话,沈渡的邮件——所有这些都始于那个仓库。开源让他被看见。被看见让他拿到了灵犀的入场券。
但入场券用完之后呢?
他在灵犀做了四个月,写了几万行代码,全在内部系统里。外部能看到的只有他的工牌颜色和食堂补贴金额。开源仓库两个月没动静,star 数从 1247 慢慢涨到 1248,像一个快停的心跳。
他需要做点什么。
不是为了 star 数。是为了证明自己还在做东西——不是为灵犀做,是为自己做。
这个念头在他脑子里转了好几天。今天晚上他终于动手了。
第二天早上七点半,林知行被手机震醒。
他摸到手机,眯着眼看屏幕。GitHub 的通知图标亮着,一串数字。
他点开。
star 数:1463。
一夜涨了两百多个。
他坐起来,揉了揉眼睛,又看了一遍。没错。仓库主页的通知栏里刷出来十几条新的 star 记录,时间从凌晨两点到早上七点,分布得很均匀,像有人在海外社区转发了。
他打开浏览器,搜了一下自己的项目名。
果然。一个英文技术论坛上有人发了帖子,标题是:「Interesting simplified version of credibility scoring algorithm - worth a look」。帖子里贴了他的 commit message 和代码片段,下面有三十多条回复,讨论算法的优劣。
林知行读了几条。有人说这个简化版比灵犀内部版本更干净,有人说去除数据依赖是正确的方向,有人问有没有更详细的文档。
他放下手机,靠在床头。
窗外的天刚亮,青旅的走廊里传来拖鞋的声音和水龙头的哗哗声。上铺的销售已经出门了,被子揉成一团堆在角落。
林知行拿起笔记本电脑,打开仓库,看了看代码的 diff。确认没有灵犀的内部数据结构、没有内部 API 调用、没有公司标识。干净的。
他松了一口气。
然后他看到邮箱里有一封新邮件。
发件人:沈渡。
发送时间:今天早上 7:15。
标题:「你的开源仓库」
正文只有一句话:「今天上午来我办公室一趟。九点。」
林知行在工位上坐到八点五十,然后站起来往沈渡的办公室走。
走廊里人不多,大部分工位还空着。灵犀的弹性工作制让早到的人显得特别少。他的脚步声在地毯上闷闷地响,像拍在棉花上。
沈渡的办公室在走廊尽头,门关着。他敲了两下。
「进。」
推开门,沈渡坐在办公桌后面,面前摊着一台笔记本电脑。他穿着一件深灰色的毛衣,头发梳得很整齐,但眼睛下面有淡淡的青色——没睡好,或者起得太早。
「坐。」沈渡抬了一下下巴,示意对面的椅子。
林知行坐下。办公室不大,一张桌子、两把椅子、一个书架、一面白板。白板上画着架构图,和他上次来的时候不一样了——有几个模块被红笔圈了起来,旁边写着日期。
沈渡没有寒暄。他伸手把笔记本电脑的屏幕转过来,对着林知行。
屏幕上是 GitHub 的页面。林知行的仓库。
「你昨晚发的代码,」沈渡说,「我看了。」
他的声音比平时低了两度,不是压着嗓子,是那种从胸腔里发出来的沉。
「核心逻辑和灵犀的内部版本,」沈渡说,「有七成重合。」
林知行的手指在膝盖上按了一下。
「沈总,」他说,「这个思路是我之前开源项目的延续。灵犀的版本是在此基础上的商业化迭代。核心框架——可信度分层、解释权重、场景适配——这些是我在小城做排课系统时就验证过的。」
「我知道,」沈渡说,「我看过你的提交历史。灵犀版本的初始 commit 引用了你的开源项目。这不是抄袭。」
他顿了一下。
「但你知道这意味着什么吗?」
林知行没有接话。
「意味着,」沈渡说,「你发出去的代码,和灵犀正在开发的核心模块,在技术层面高度相似。如果有人拿着你的开源版本和灵犀的内部版本做对比——不需要代码,只需要架构——就能看出它们来自同一个人。」
他把笔记本电脑的屏幕合上。
「法律上,你可能是对的。代码是你写的,思路是你的,开源版本去除了所有灵犀的数据依赖。如果打官司,你未必输。」
林知行盯着沈渡的眼睛。沈渡的眼神很平静,像在讲一个和他无关的技术问题。
「但在公司里,」沈渡说,「可能是对的和不被追究,是两件事。」
办公室里安静了几秒。窗外的阳光从百叶窗的缝隙里照进来,在地毯上切出一道一道的亮纹。
「沈总,」林知行说,「这个仓库我做了两年多。灵犀的版本是在这个基础上做的。如果我不能继续在自己的仓库里更新代码,那等于——」
「等于什么?」沈渡问。
林知行想了一下。「等于我失去了对自己的技术的控制权。」
沈渡点了一下头。那个点头的幅度很小,但林知行看懂了——他在确认,不是在同意。
「知行,」沈渡说,「我问你一个问题。你做开源,是为了什么?」
林知行愣了一下。这个问题他没想过。或者说,他想过,但从没用一句话总结过。
「为了……让更多人能用。」他说。
「让更多人能用,」沈渡重复了一遍,「然后呢?」
「然后……」林知行顿了顿,「然后技术可以被验证,被改进。开源的意义在于透明和协作。」
「好,」沈渡说,「那我再问你一个问题。你现在发出去的这个版本,有多少人会真正用它?」
林知行没有回答。
「你的开源仓库有一千四百多个 star,」沈渡说,「但你知道这些 star 里有多少是真正的用户,多少是收藏党?你有没有看过你项目的 fork 数和实际部署数?」
林知行没有看过。他只看 star。
「我帮你查过,」沈渡说,「fork 数 89,实际部署——也就是有人真正拿去用了的——不超过十个。大部分 star 是技术社区的点赞,不是用户。你的开源项目,在小城的时候是一个活的工具,现在是一个技术名片。名片可以帮你拿到机会,但它不是产品。」
林知行的手指在膝盖上攥紧了。
「知行,」沈渡说,「你在灵犀做的可信度评分,是产品。它有真实用户——教育AI的教师和学生。它有数据——七十万条交互记录。它有迭代——每周都在根据反馈优化。这些东西,你的开源仓库给不了。」
他往前倾了一下身体。
「你现在能做开源,是因为灵犀给了你平台和数据。你在灵犀接触到的场景、踩过的坑、拿到的反馈——这些是你写代码的基础。离开这些,你的开源连个浪花都翻不起来。」
林知行的喉咙动了一下。他想说话,但说不出来。
因为沈渡说的是对的。
在小城的时候,他的开源项目有十七家商户在用,有三家在付费,有王老板每月少亏两千块的反馈。那是活的。现在他的开源仓库只有 star 数,没有用户,没有数据,没有迭代。代码是死的。
「我让你撤下来,」沈渡说,「不是要打压你。是在保护你。」
他看着林知行。
「你现在是外包。你的灰色工牌意味着你和灵犀的关系是临时的、可替代的。如果你和公司产生知识产权纠纷,不管你能不能赢,你在这个行业里的口碑就毁了。没有公司会要一个和前东家打过官司的外包。」
林知行的呼吸停了一秒。
「周睿已经注意到你的仓库了,」沈渡说,「昨天下午他在技术群里转发了那个英文论坛的帖子。没有评论,只是转发。但你知道这意味着什么。」
林知行知道。周睿转发,意味着他在标记。标记意味着他在等一个理由。
「今天之内把代码撤下来,」沈渡说,「commit history 可以保留,但代码本身要删掉。star 数会掉,但会回来。代码没了可以重写,口碑没了就真的没了。」
他顿了顿。
「知行,我不是在命令你。我是在告诉你现实。」
林知行从沈渡办公室出来的时候,走廊里已经全是人了。工位上的人在敲键盘、打电话、小声讨论。空气里有咖啡的味道和打印纸的油墨味。
他回到自己的角落工位,坐下,打开电脑。
程浩的工位在他对面,人不在,椅子推到桌子下面。显示器旁边还摆着那张塑封的高潜人才证书,加粗的名字在日光灯下反着光。
林知行打开浏览器,登录 GitHub。
仓库页面上,star 数已经涨到了 1502。通知栏里还在刷出新的 star 记录,间隔越来越短,像在加速。
他点进代码页面。昨天推送的那些文件——README、核心算法、测试用例、文档——整整齐齐地列在那里。
他把鼠标移到仓库设置页面。
滚动到最下面。
「Delete this repository」。
红色的按钮。
他的手指放在鼠标上,没有点。
中午他没有去食堂。他在工位上坐了一个小时,然后打开终端,输入了一行命令:
git rm -r --cached .然后他打开 GitHub 的网页,在仓库设置里点了「Delete this repository」。
系统弹出一个确认框,要求他输入仓库名字。
他一个字一个字地打进去。
确认。
页面跳转。仓库没了。
404。
他刷新了一下。还是 404。
他打开之前收藏的那个英文论坛帖子。帖子还在,下面的讨论还在继续,有人在问为什么代码访问不了了。没有人回答。
他关掉浏览器,靠在椅背上。
手机震了一下。是 GitHub 的通知邮件:「Your repository has been deleted」。
他把手机扣在桌上。
晚上回到青旅,林知行没有开电脑。
他躺在上铺,盯着天花板。天花板上有一块水渍,形状像一个不规则的多边形,边缘发黄。
销售还没回来。房间里只有他一个人。窗外的路灯亮着,橘黄色的光从窗帘的缝隙里渗进来,在墙上投下一道模糊的影子。
他想起方小满上周说的那句话:「你在北京学到的东西,比我们那个产品值钱吗?」
他当时没有回答。
现在他想回答了。
在灵犀学到的东西——写周报、做PPT、理解两派之争、看懂灰色操作、知道谁在什么时候展示真实——这些东西有用吗?有用。它们帮他在这个系统里活下来。
但它们让他失去了什么?
他打开手机,看了看开源仓库的页面。404。一千五百多个 star 没了,代码没了,英文论坛上的讨论还在,但指向的是一具尸体。
开源的理想不是被公司杀死的。
是被他自己亲手撤下的。
因为沈渡说的是对的。法律上他可能是对的,但在公司里,可能是对的和不被追究是两件事。他是外包,他的工牌是灰色的,他和灵犀的关系是临时的、可替代的。如果周睿拿着这个事做文章,他在这个行业里的口碑就真的毁了。
他不是在坚持理想。
他是在用「开源」这个标签给自己续命。续的命不是生存的命,是「我还是那个做开源的林知行」的身份认同。
但身份认同不值钱。代码也不值钱。值钱的是产品——有用户、有数据、有迭代的产品。
而产品在灵犀手里。
不在他手里。
他把手机放在枕头旁边,闭上眼睛。
沈渡最后说的那句话还在耳边:「知行,你现在能做开源,是因为灵犀给了你平台和数据。离开这些,你的开源连个浪花都翻不起来。」
他想起在小城的时候,王老板的水果店因为他们的系统每月少亏两千块。那时候他的开源是有浪花的。
现在浪花没了。
不是因为浪花消失了。
是因为他把生成浪花的石头,自己扔掉了。
(本章完)