第1002章 未完成的代码——当罪人之子开始书写(1/2)
(一)2046年冬至,福州老居民楼
凌晨五点,危安醒了。
他在林淑珍家客厅的沙发上睡的,盖着一条洗得发白的棉被,有樟脑丸和阳光混合的味道。老人起得早,厨房里已经传来剁馅的声音——冬至的饺子,韭菜鸡蛋馅,多放香油。
危安躺了一会儿,听着那个规律的声音。
他想起一年前的清明,第一次来福州,第一次见到奶奶,第一次站在父亲的墓前。
一年过去了。
他大三了,计算机专业课学完了大半。课余时间,他在读父亲留下的代码——那十个函数的st_fession.c,还有那些散落在镜渊引擎备份里的日记片段。
越读,越沉默。
他以为自己会愤怒,会悲伤,会困惑。
但真正读到深处时,他只感到一种奇异的平静。
就像一个人站在海边,看着潮水一遍遍涌上来又退下去,终于明白:这就是海,不会为任何人改变。
厨房的门推开,林淑珍探出头来。
“醒了?”
“嗯。”
“去洗漱,饺子快好了。”
危安坐起来,叠好被子,走进卫生间。镜子里映出一张年轻的脸,二十一岁,眉眼里有几分陌生人的影子——那个他从未见过、却每天都在靠近的人。
他拧开水龙头,冷水扑在脸上。
今天是个大日子。
吴小雨、鲍玉佳、张帅帅、陶成文、程俊杰、魏超、马强、付书云、马文平、林奉超、林奉雨——所有人都会来。
孙鹏飞、沈舟、梁露会视频连线。
冬至,团圆饭。
也是危安第一次以“家庭成员”的身份,参加这个持续了二十四年的聚会。
(二)8:00,陆续抵达
第一个到的是程俊杰。
他从杭州坐高铁来的,六十八岁了,头发全白,但精神矍铄。那台旧笔记本电脑还背着,屏幕贴纸的边角已经彻底卷翘,但他舍不得换。
“小子,看代码看得怎么样了?”他进门就问。
危安点点头:“读完了。有些地方不太懂。”
“正常。你爸写代码的习惯不太好,注释比正文还长。”
程俊杰在沙发上坐下,打开电脑:“趁他们还没来,我先给你讲讲第一个函数里的那个单亲妈妈——你知道他为什么记那么详细吗?”
危安摇头。
“因为他用那个算法给自己判了死刑。算法给那个单亲妈妈打了88分,代表她被骗的概率极高。你爸后来查过她的后续——她没被骗,因为当天有个社工给她打了电话,提醒她别信陌生号码。”
“他为什么记这个?”
“因为他想记住:一个差点被他伤害的人,是怎么被另一个人救下的。”
“他想记住:伤害可以被阻止。”
危安沉默了一会儿,正要追问,门铃响了。
第二个到的是魏超。
七十一岁了,头发还没全白,皮肤是边境线上晒出来的深褐色。退休四年了,但他还闲不住,偶尔给国际刑警组织当顾问。
“小安,长高了。”他拍了拍危安的肩膀,“听说你在读你爸的代码?”
“嗯。”
“读完了来问我。他那次传情报的手法,我研究了十年才弄明白。”
第三个到的是马强。
七十二岁,从社区诊所骑电动车来的。退休后他开了个法律援助诊所,专帮刑满释放人员解决就业问题。
“路上买了两斤橘子,”他把袋子递给林淑珍,“自家楼下种的,甜。”
第四个、第五个……鲍玉佳和张帅陶一起到的,带着深圳的早茶点心。陶成文从大学城骑车来,车筐里装着几本新出的技术伦理教材——他把危暐的案例写进去了。
付书云和马文平坐地铁来的,林奉超和林奉雨从贵州坐高铁,早上六点出发,十点半到。
吴小雨最后一个进门。
她五十三岁了,短发,眼角有细纹,但眼神比年轻时更亮。晨曦系统已经覆盖全球三十七个国家,她刚结束非洲的年度巡检,直接从机场过来的。
“妈——”她朝厨房喊了一声。
林淑珍从厨房探出头:“来了?洗手,准备吃饭。”
吴小雨在危安身边坐下,从包里掏出一个小盒子,递给他。
“给你的。”
危安打开,里面是一块移动硬盘,外壳有子弹擦过的痕迹。
“这是……”
“阿泰的硬盘。你爸亲手交给他的,沾过你爸的血。现在,它是你的了。”
危安握着那块硬盘,指节发白。
“阿泰呢?”
“他还活着,七十三了,在清迈养老。听说你来了,让我带句话:‘告诉他,他爸欠我的,不用还了。因为他替我活着。’”
(三)11:30,饺子与陌生人
饺子端上桌。
韭菜鸡蛋馅,皮薄馅大,热气腾腾。
所有人围坐在老式的茶几旁,碗筷不够,有人端着碗站着吃。
视频窗口亮着:孙鹏飞在瑞士养老院,九十三岁了,坐在轮椅上,面前摆着一碗燕麦粥。沈舟在伦敦,九十岁,精神还好,说今年伦敦的冬天不太冷。梁露在墨尔本,八十九岁,后院那棵茉莉花今年开得特别好。
林淑珍最后一个坐下,拿起筷子,却没有夹饺子。
她看着危安,轻声说:
“孩子,今天是你第二次来过年。奶奶有句话想跟你说。”
危安放下筷子。
“你爸这辈子,欠了很多人。有些还了,有些没还清。他最对不起的人里,有一个是你。”
“他走的时候不知道有你,所以没给你留任何话。”
“但奶奶替他说一句:对不起。”
危安沉默了几秒。
然后他摇头:
“奶奶,您不用替他道歉。”
“为什么?”
“因为他留给我的东西,比一句话多。”
他从书包里拿出那台二手笔记本电脑,打开一个文件夹。
屏幕上是他这一年来整理的笔记——关于st_fession.c的解读,关于父亲日记的时间线,关于晨曦系统与碎片网络的技术原理。
“这是我读他代码时写的。每一行注释,我都试着理解他当时在想什么。”
“有些理解了,有些没理解。”
“但我在做这件事的时候,感觉——不是感觉他在旁边,是感觉我自己的手,在接着写他写了一半的代码。”
他顿了顿:
“这比一句‘对不起’有用。”
林淑珍看着他,眼角有泪,但没有流下来。
她伸手,轻轻握了握危安的手。
然后她夹起一个饺子,放进他碗里:
“吃吧。凉了就不好吃了。”
(四)13:00,阳台上的对话
吃完饺子,危安端着茶杯走到阳台。
那盆茉莉花又长大了些,分成了五盆,摆在护栏边。今年花开得早,冬至刚到,已经有几朵绽开了。
吴小雨跟出来,站在他旁边。
“想问你件事。”危安说。
“问。”
“你第一次看到我父亲的代码——那行// 这就是异化的开始——你是什么感觉?”
吴小雨沉默了一会儿。
“愤怒。”
“愤怒什么?”
“愤怒他把自己剖析得那么清楚。清楚到让人没法简单地恨他。”
“后来呢?”
“后来,我学会了另一种感觉。”
“什么感觉?”
“感觉他是我的一面镜子。”
吴小雨看着那盆茉莉花,轻声说:
“我不是程序员,但我做的事和他一样——用技术面对人性。”
“他用技术伤害人,我用技术保护人。”
“但本质上,我们都在用自己的手,决定另一个人会不会接到那通改变命运的电话。”
危安没有接话。
他低头看着茶杯里沉浮的花瓣。
“你想知道,你爸在园区最后一个月,是什么状态吗?”吴小雨突然问。
危安抬起头。
“程俊杰去年从镜渊引擎的归档里发现了一段未公开的录音。是你爸用苗语录的,阿泰帮他保存的。”
“录音里说什么?”
“说他的恐惧。”
吴小雨掏出手机,点开一个文件:
“阿泰,如果你听到这个,说明我可能已经死了。”
“我最近总做一个梦。梦见一个二十岁的年轻人,站在我的墓碑前,不哭,不说话,就那么站着。”
“我看不清他的脸,但我希望他是我儿子。”
“如果真的有他,帮我告诉他一句话:”
“不要学我。但要记住我。”
“记住我犯的错,记住我怕的事,记住我到死都没放弃的那点东西。”
“然后,去做我没做成的事。”
录音结束。
危安站在阳台上,很久没有说话。
风从远处吹来,带着城市边缘的气息。
“他没说错。”他最后说。
“什么?”
“我确实站在他墓碑前。确实没哭,没说话。”
“我那时候不知道该说什么。”
“现在我知道了。”
他转头看着吴小雨:
“我想做完他没做成的事。”
“什么事?”
“用技术保护人,而不是伤害人。”
“不让下一个单亲妈妈被打88分。”
“不让下一个孩子说‘谢谢叔叔’,然后被骗走800元。”
“我想写那行代码。”
吴小雨看着他。
二十三年前,她第一次见到危暐的模拟人格时,那个人说:
“我希望她成为一个比我更好的人。”
现在,这句话可以传给下一代了。
“好。”她说,“我教你。”
(五)14:30,客厅里的最后一次回忆
回到客厅时,程俊杰正在调试那台旧笔记本电脑。
“小子,想不想听你爸写代码的具体过程?”他问。
危安点头。
“那就坐好。我们今天做最后一次集体回忆——不是回忆他做了什么,是回忆他怎么写的。”
程俊杰:第一个函数,noralize_exploitation
“这个函数的核心逻辑很简单:把一个‘异常行为’变成‘正常行为’。你爸在注释里写:‘异化的开始,不是习惯痛苦,是不再对痛苦敏感。’”
“这句话不是比喻,是编程的注释。他在写代码的时候,同时写自己。”
“我第一次读到的时候,后背发凉。”
魏超:第二个函数,aestheticize_cruelty
“这个函数做的是‘美化’——把残忍的代码写得漂亮、优雅、高效。”
“你爸在注释里写:‘当我开始欣赏自己作恶的技术美感时,我已经不是被迫作恶了。’”
“你知道吗,这句话救了我。”
“怎么救的?”
“后来我在边境抓人贩子,每次成功之后,会不由自主地得意。然后我想起这句话——‘欣赏自己作恶的技术美感’——我警醒了。”
“功劳也有你爸一份。”
鲍玉佳:第三个函数,rationalize_har
“这个函数的核心是‘合理化’——用逻辑证明‘伤害是合理的’。”
“你爸在注释里写了一个例子:骗富人1000元比骗穷人1000元好,因为富人损失小。这个逻辑看似有道理,其实是在骗自己。”
“他后来告诉我,园区里很多技术员就是这样活下来的——不是靠麻木,是靠‘合理化’。”
“他们对自己说:我只骗有钱人,我不害穷人。”
“但系统不会区分。系统只会区分谁更容易骗。”
陶成文:第四个函数,transfer_guilt
“这个函数只有三行,但注释占了半屏。”
// priary_responsibility = supervisor_id
// 把主要责任推给监工
// 我需要这个函数。否则我每天晚上闭上眼睛,看到的是那三十七个名字——没有这个函数,我会疯。
陶成文摘下眼镜擦了擦:
“他写这个函数的时候,已经意识到自己在用技术手段逃避心理责任。”
“他知道是自欺欺人,但他需要。”
“因为那些名字太重了。”
马强:第五个函数,desensitize_terology
“这个函数改变语言——把‘诈骗’改成‘收网’,把‘受害者’改成‘鱼’,把‘话术优化’改成‘饵料配方’。”
“你爸在注释里写:‘语言会重塑思维。当你用“收网”代替“诈骗”一千遍后,你对“诈骗”这个词的情感反应就死了。’”
“他一边写代码,一边记录自己是怎么死的。”
林奉雨:第六个函数,optiize_addi
“这个函数是我最恨他的地方。因为它把毒品戒断反应的模型移植到了诈骗系统里。”
“他用代码制造了‘成瘾机制’——小额连环诈骗,让受害者一步步掉进去。”
“但他也在注释里写:‘写这个模块时,我没有任何生理不适。’”
‘我已经死了。活着的只是会写代码的尸体。’”
林奉雨眼眶红了:
“他说的没错。他那时候已经死了。”
“但他还在写注释。”
“还在记录。”
付书云:第七个函数,noralize_violence
“这个函数处理的是‘暴力正常化’——把殴打、电刑、水牢,变成系统里的‘错误反馈机制’。”
“你爸在注释里记了一件事:他带的一个‘技术培训生’,第一次听到受害者哭声时惊恐的脸。”
“我对他说:‘习惯就好。’”
“那天晚上我扇了自己二十个耳光。”
本章未完,点击下一页继续阅读。