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