周一早上,魏轻到公司的时候,测试区已经开了。
陈涛在群里发了条消息:测试区本周全天开放,有脚本需求的自己上,别等IT,他们月底又要封。魏轻把上周存的那几个报错点拉出来,一个一个重新跑。第一个是期格式兼容问题,改了三行代码。第二个是空值处理的逻辑漏洞,在条件语句里加了一层判断。第三个是地址匹配的边界情况——有些村名在系统里用的是旧行政区划,和新的代码对不上。这个问题他以前都是手工改,今天他决定写进脚本里。他在注释里标了一行:旧村名映射表,待补全。
写到一半,陈涛从办公室出来,走到他工位旁边。没说话,先低头看了一眼他的屏幕。不是催活的那种目光,是看代码。光标停在他的注释上,陈涛念出了声:“旧村名映射表。”
“嗯。有些村名系统里没有,每次手工改。”
陈涛想了想,说:“下午我让IT那边把旧区划代码表发你。能补多少补多少。”说完就走了,手里没拿平板,也没说“跑完发我”。他只是看了一眼注释,然后决定帮他找一份旧代码表。
下午两点,IT那边发来一个压缩包,文件名是“历史区划代码_2010_2021”。魏轻打开看了第一张表,是河南省乡镇级以上区划变更记录。他往下翻,找到洛阳,找到偃师。21年撤市设区——那一年他已经在郑州上班了。岳滩镇下辖18个行政村,西谷堆头村、东谷堆头村、堤头村,一个一个列在表格里。西谷堆头还在。名字没改。只是行政归属从“偃师市岳滩镇”变成了“偃师区岳滩镇”,代码从410381变成了410307。
他盯着那行字看了很久。以前也查过区划代码,但那是为了工作——甲方发的数据和系统里的代码对不上的时候,他需要知道哪个代码对应哪个镇。今天不一样。今天他像一个在外多年的人忽然翻到了自家的户口本,发现那一页还在。他出生的地方还在。
他把这部分信息导出,开始动手补旧村名映射表。做到下午五点,补了将近六十条。很多村名他小时候听过——有些是三婶带他去赶集时路过的,有些是同学家的地址。他发现自己记得的比想象中多。那些名字存在脑子里,从来没有被调用过。
下班时老吴发了一条微信:“脚本补完了?”
魏轻回:“今天补不完。”
老吴回:“明天继续。”然后补了一条:“你这个状态,以前没见过。”
这是老吴第一次正面评价他的工作状态。没说“好”,没说“加油”,只说“没见过”。
晚上回到出租屋,魏轻打开洛河散人的私信对话框。他打了一行,删了。又打了一行,又删了。他发现自己在犹豫,但不是犹豫要不要问。洛河散人的资料栏写着河南洛阳,他自己也是洛阳人,这一层关系早就知道。可他一直没有往下问。不是不感兴趣,是他太长时间没跟老家人说过话了。村里那些亲戚,从他上大学以后就没怎么联系。三婶走了之后,他连过年都不一定回去。老家对他来说,是一段早就被数据归档的旧代码。但现在有个活人,在私信里跟他说过“你那几篇不是在码字,是给自己铺路”,知道他时薪十五块,知道他在外包岗了好几年。这个人是洛阳人。他决定开口。
“洛河老哥,上次你说你是洛阳的。洛阳哪儿的?”
对方回得很快:“偃师。”
偃师。魏轻的手指在键盘上停了一下。他自己就是偃师人。他没在社区里写过。他写的是“老家在豫西”,从来没具体到县。但洛河散人也是偃师的。他盯着那两个字,心里有什么东西被轻轻拨了一下。
他打过“我也是偃师的”,删了。打过“那咱俩离得不远”,又删了。最后他打了三个字:“哪个镇?”
“岳滩。”
魏轻把手指从键盘上拿开,放在膝盖上。岳滩。他也是岳滩的。
“岳滩哪?”
“堤头。”
堤头。魏轻盯着这两个字看了很久。堤头跟西谷隔着一条村道,骑电动车十分钟。他没想到会这么近。他以为至少隔个镇,隔条省道,隔一层还能假装“不算太近”的距离。但堤头就是隔壁村。
“你认识我吗?”
他打完这行,等了很久。对方头像亮着,但沉默了好一阵。然后一行字跳出来。
“你叫魏轻。你爸是魏建华,老四。你妈是固始嫁过来的。你家老屋在村北边。院里头有棵石榴树,歪的。结的石榴酸得要命,没人摘。”
魏轻的手悬在键盘上,没能落下去。这个人没有说“我认识你”,没有说“原来是你”。他只是在陈述一组数据,像他每天清洗的表格一样精确:姓名、籍贯、父辈排行、母亲原籍、老屋位置、院内植被。每一条都正确。院子里那棵歪石榴树,除了本村人没人知道。他从来没有在任何一篇帖子里写过石榴树。
他让自己冷静了几秒,打了一句:“你怎么知道?”
“你那些技术帖,我看了你写的代码习惯。又看了你那篇《我吃百家饭长大》——里面写了你父母的事,你的事。偃师姓魏的村子就那么几个。跟我一个镇,我就知道你是谁了。”
魏轻盯着这几行字。他是做数据清洗的,他当然知道敏感信息的关联性。一个地名加一个职业再加几段人生经历,足够把一个人从人群中筛出来。但他从来没想过,被筛出来的那个人会是他自己。
“你之前没说。”他打完这行,发现自己的手指在抖。不是冷。二十多年了,从来没有人拿着几条线索把他从一堆数据里认出来。他在社区写了将近三个月,把人生经历摊在阳光下,把自己一直不敢说的东西全写下来了。他没有用过真实姓名,没有用过真实地名,但洛河散人把这些碎片拼成了一个完整的人。
“我不敢说。”洛河散人回得很快。“因为你是吃百家饭长大的。我怕你不想被人认出来。万一你不想呢?万一你觉得难堪呢?”
魏轻把这句话读了两遍。他觉得难堪吗?他只知道过去三个月,他把从来没对任何人说过的事全写出来了。他写时薪十五块,写老吴在电梯里说“我年轻的时候也这么”,写那个揉眼睛的女同事。这些事堆在一起,变成了他的桩脚。现在有人说,我认出你了。不是来揭他的底,是来告诉他:你藏的那些东西,我看见了,但我不声张。
“没事。你认得我就行。”他打完这行字,靠在椅背上。窗外有电动车经过,车轮碾过水洼,水溅起来又落下去。他发现自己的手不抖了。
洛河散人发来一段很长的话。
“我姓孙,堤头孙家。跟你没有亲戚关系,但我知道你们家的事。你爸妈出事那年我十六。那天省道上堵了好几里,村里去了好多人。后来你带你,我在集上碰见过你们几回。她眼睛不好,你牵着她。你那时候才多大?就到她腰。”
魏轻没有回。他靠在椅背上,眼睛盯着天花板。他没有哭,只是眼睛有点涩。他想起小时候的集——走得很慢,他牵着她的手,她手里攥着一竹竿。集上有人卖糖糕,说等会儿,等会儿。她说的等会儿就是买不起。他每次都说我不喜欢吃甜的。
他很想问老孙“她长什么样”。这个问题很蠢。长什么样他自己记得。但他离开老家后才发现,记忆是一块被反复擦写的硬盘——你记得的东西会失真、会变形、会变成你每一次回忆时重新渲染的画面。你没法再做数据校验。而他是一个做数据清洗的人,他知道没有校验的记录是不可靠的。但老孙是那块备份盘。他记得省道上的堵车,记得集上那个老人牵着一个小孩。他是目击者,是旁证,是人证。他不需要回忆,因为他亲眼看过。
“谢谢你记得这些。”他打完这行,发现自己的手指又抖了一下。不是激动,是某种确认——确认这些事确实发生过。不是他的想象,不是他一个人编出来的故事。
老孙发来一条很短的消息:“咱都是一个地方的人。”
魏轻盯着这九个字。没有人跟他说过这句话。亲戚们开会商定他轮流住,说的是“魏轻那孩子”“老四家的儿子”“魏建华家的小的”。那是安排,是善后,但不是“咱”。他一直觉得自己是没有“咱”的人。
“你在堤头,地应该也没了吧。”他打了一句。这句问话他只在村里人面前用过。“地”这个词,城里人不会这么问。
老孙回得明明白白:“早没了。你知道咱偃师搞产业,三轮车厂、配套厂、新的工业园,划了好些村的地。堤头那边好多田都没了。沙土地,种粮食本来也薄。现在那几个大厂成年招人,有年轻的就不读书了,进厂打流水线。”
“我们这代人没地。”魏轻敲出这句的时候,心里忽然松了一下。他不是唯一一个失去地的人。整个岳滩,整个偃师,有无数个像这样的村子,他们的下一代正在失去自己祖辈耕作过的土地。老家的地没了,他们就成了城市和乡村之间漂着的人。既不回去种地,也还没在城市扎。
老孙又发来一条:“地没了,路还在。”
“什么路?”
“伊洛河堤那条路。从咱西谷到堤头,你小时候走过的。堤两边种了新的杨树,还没长高,不成荫。”
然后老孙开始发照片。一张接一张。西谷堆头村头的老槐树——树上还刻着几十年前的生产队标语,字迹早模糊了,但老孙知道那是哪年的,因为“我爹刻的,七二年”。村东的大石桥,桥墩子上还留着“农业学大寨”的字。堤头边的灌溉渠,水泥沿子上坐着个老头在择韭菜,老孙说“这是章婶家的,你还记得不”。西谷的旧供销社,铁门锈掉了半截,门口停着两辆三轮摩托车,老孙说“当年你妈在这儿给你打过铅笔盒”。
魏轻一张一张点开看。远处有人在种玉米——远处的横在天边,灰蒙蒙的。玉米已经半人高了,地里站着个人,戴着草帽,看不清脸。老孙说:“你小时候也在这片地割过麦。割了三天,手上全是泡。”
“我记得。那是我大伯家的地。”
“你大伯老了。去年还看见他在村口坐着。腰不行了,不泥瓦匠了。”
“你认识他?”
“你大伯跟我爹是牌友。”老孙打字慢了下来,“打牌的时候你大伯提过你——不知道你在外边咋样,提起来就叹气。”
魏轻把手机拿远了几寸,又拿回来。大伯这个人,从来不会当面跟他说什么好话。大婶精明,算得细,大伯在家里话少,什么都不当主。但他在牌桌上跟别人说,不知道魏轻在外面咋样,说的时候叹气。
他的视线落在最后一张照片上。伊洛河堤那条路,一条灰扑扑的土路从镜头这头一直延伸到天边,路两边新栽的杨树才碗口粗,影子很短。远处是土黄色的堤坝,再远处是伊洛河。他说不出话。这是他小时候走过的那条路。从西谷到堤头,从堤头回西谷。三婶带他走过,带他走过,他自己一个人上学走过无数回。今天有个姓孙的堤头人,站在堤上替他拍了下来。
他打了几个字,存进手机备忘录。不是回复,是给以后用的素材。现在写不了,但以后会写的。
“老孙,谢谢你。你让我知道,有些东西没烂在这里。路还在。”
老孙发来今晚最后一条消息:“路一直在。你啥时候回来,咱开车走一趟。不走路,我骑电动车带你。”
关掉对话框,魏轻打开一个空白文档。他在标题栏打了三个字:《伊洛河》。然后他写下了第一段。
“我有一个同事,天天提醒我别犯错。我有一个朋友,提醒我别停。今天我才知道,我还有一个没有血缘的老乡。他说路还在。我不知道路还在是什么意思。但我看着那张照片——伊洛河堤的土路,杨树还没长高——我想起小时候走在同一条堤上,觉得这条路特别远,走不到头。那时候我还没想过有一天会去城里,更没想过有一天需要别人拍一张照片证明路还在。”
“今晚有人跟我说‘咱都是一个地方的人’。我第一次听到这句话。”
他写到这里,停了一下。然后在结尾加了一句。
“下次回去,我要自己走一遍那条路。”
存盘。关掉文档。他靠在床上,把手机拿起来。老孙没再发消息,大概睡了。从洛河散人到老孙,从一句“喝碗汤”到“骑电动车带你”,他认识这个人已经好几个月。他一直以为自己在跟一个陌生人聊天,其实他一直在跟一个堤头的老乡说话。这个人看过他在集上牵着的手,这个人知道他院子里有棵歪石榴树,这个人的父亲跟他大伯是牌友。
他把手机屏幕朝下扣在枕头边。窗外有电动车经过,车轮碾过水洼,水溅起来又落下去。声音很轻,但他听得很清楚。他想起了四环以外说过的话——“流程是别人的,方向是自己的。”今晚有人递了一把扳手,拧紧了他身上松掉的一颗螺丝。别人递的扳手,他可以接。
他闭上眼睛。明天还有活,脚本还要继续优化,映射表还能补更多。但他现在知道了一件事。地图上那条土路还在。杨树还没长高。老孙说路还在。下次回去,他要自己走一遍。