下一章 上一章 目录 设置
3、第 3 章 黑盒子的导 ...
-
周律是在一个叫"深海"的网吧里醒过来的。
他不知道自己是什么时候睡着的,只记得最后一次看时间是凌晨四点十七分,现在窗口的光已经从灰白变成了惨白——上午了。他趴在桌面上,脸下面压着一张硬邦邦的鼠标垫,鼠标垫上印着一个穿泳装的女明星,他的脸正压在女明星的肚脐眼上。
他直起身,脖子发出"咔"一声脆响,像有人在他颈椎里折了一根树枝。他伸手揉了揉后颈,手指碰到一块凸起的骨头,那块骨头以前没这么突出。
网吧里人不多,白天档的上座率不到三成。他左边隔两个位置坐着一个打游戏的中年男人,键盘敲得震天响。右边没人,桌上还剩半瓶没喝完的冰红茶,瓶口落了一只苍蝇。空调开得太低,周律打了个哆嗦,把外套拉链拉到最顶上。
他这是在这家网吧待的第几天了?
他把手机打开看了看日期,然后慢慢数了一遍——第七天。他从上一家青旅被"请"出来之后,就住进了这家网吧。青旅老板说他"身份信息存疑",让他第二天搬走。他没争辩,收拾东西就走了。那家青旅他住了十二天,交了三百块押金,老板退了一百五——扣掉的"保洁费"够把全楼的床单换三遍。
但他没精力争。
他已经不记得自己是第几次被"请"走了。第一次被赶出出租屋的时候他还想理论,说"我有身份证、有租房合同、合同还有两个月才到期",房东直接把手机怼到他面前——屏幕上是一个社交平台的帖子,他的照片、他的名字、他工作的公司,帖子标题是"避雷!此人利用数据算法收割用户,已被开除"。
房东说:"你别给我惹麻烦,我这房子不想被人砸。"
那天他站在楼下,行李箱的轮子碾过小区门口减速带的时候"咔嚓"一声响,旁边遛狗的大爷看了他一眼,然后把狗拉走了。
从那天起,他再也没住过超过半个月的地方。青旅、民宿、朋友的沙发、24小时快餐店、网吧,他像一只搬家的蜗牛,背着越来越小的壳,在城市的缝隙里挤来挤去。
手机震了一下,弹出一条短信:"【XX银行】您的账户余额为:86.34元。"
他面无表情地关掉了通知。这条短信他每天看一次,86.34这个数字他已经背下来了。他还有一罐零钱,全是五毛一块的,压在背包最里面,大概有六十几块。加起来不到一百五。
键盘旁边放着一碗已经凉透的泡面,汤面上浮着一层凝固的油花。他端起来喝了一口,油花粘在嘴唇上,他用袖子蹭掉了。
打开电脑,桌面上有一个文件夹叫"旧东西",里面是他以前写的代码。他双击打开,滚动着看了一遍。那些代码他闭着眼都能默写出来,每一行都记得——不是因为记性好,是因为这些代码毁了他的人生。
三年前,周律二十五岁,是那家互联网公司的算法工程师。他的工位在十八楼靠窗,窗外能看到整座城市的天际线。他每天八点半到公司,先泡一杯美式,然后打开电脑开始写代码。他话少、埋头干活、不参与同事的八卦,项目进度表上他的名字后面总跟着"提前完成"。
然后有一天,产品总监把他叫进会议室。
"周律,咱们那套'优选推荐系统'出了问题,你负责的部分收到了用户投诉。"
周律当时不太明白:"什么问题?"
"用户反馈说系统'杀熟'——老用户看到的价格比新用户高,而且差异到了能引发舆情的地步。"
"不可能。"周律说得很快,"我设计的算法逻辑里没有价格歧视的参数。"
产品总监把一份数据报告推到他面前:"你自己看。后台调出来的记录,系统在某些时段对高活跃用户做了溢价推送,溢价率最高到了18%。"
周律看完了。那行代码不是他写的,但写在他负责的模块里,用的是他的工号提交的。系统日志显示提交时间是半夜两点十七分——那天他确实加班到两点,但他记得自己只修了一个空指针异常,没写过溢价的逻辑。
"这不是我写的。"
"代码是你的签名,工号是你的,提交时间是你加班的时间。周律,你跟我说这不是你写的,那我该相信是谁?"
周律那天从会议室出来的时候,十八楼的落地窗外正在下雨。他站在窗边看了很久,雨水把整座城市的轮廓都模糊了,他看不清楼下的车和伞,只看到一片灰蒙蒙的流动。
他后来知道是有人在他的代码里植入了那段逻辑,用他的账号提交,然后在出事后删除了入侵痕迹。那个人是谁?他查过,所有权限调用记录都被洗过一遍,干干净净,像什么都没发生过。
但舆论不查这个。
"程序员利用大数据杀熟"——这个话题上了热搜,他的照片、姓名、毕业院校、前公司全部被扒了出来。评论区几万条留言,最上面那条点赞两万:"这种人就是互联网的毒瘤,赚黑心钱。"
他被公司开除,发了一份声明:"涉事员工已离职,公司对此类行为零容忍。"
然后他就成了"那个人"。
面试了十二家公司,有九家在电话里就婉拒了,另外三家让他去面试,HR看着他的简历、又看了看电脑屏幕,说"周先生,我觉得你不适合我们这里的企业文化"。有一家甚至连"不合适"都没说,只让他回去等消息,等了一个月没等到。
他把简历改了,删掉了上一家公司的工作经历,只说"自由职业"。但面试官总会追问:"你这段空窗期在做什么?"他又编不出来合理的解释,因为他的"空窗期"全花在应付律师函和搬家上了。
手机又震了一下。这次不是银行短信,是一个弹窗广告,标题是"免费租房,老城区旧楼,别问来源"。
周律盯着那行字看了五秒,然后点了进去。
帖子内容很短,就两行:"拓北路17号,日落公寓,房租极低,不问身份。有意加群。"
下面附了一个二维码。周律扫码的时候手顿了顿——万一是陷阱呢?他的身份信息已经被曝光过一次了,再来一次,他就什么都不剩了。
但他还是扫了。因为86.34加六十块零钱,他最多还能活七八天。
群加进去之后,群里只有三个人:群主、一个叫"林"的账号、一个叫"苏打"的账号。群公告写着:"本周六下午三点,公寓开门,欢迎来看房。地址:拓北路17号。"
没有更多的信息。周律在群里发了一个"1",然后关机了。
周六下午两点半,他坐了地铁转公交,到了拓北路站。这条街他很陌生,两旁的建筑矮矮的、旧旧的,墙上爬着藤蔓,有几家店已经关门了,卷帘门生着锈。但街上很干净,梧桐叶子落了一地,踩上去软软的。
他沿着门牌号数过去,17号。
他站在门口的时候,陈默和苏打还没到。他先看到了那扇铁栅栏门和那块"日落公窝"的木牌,他盯着少了一横的"寓"字看了很久,然后蹲下来,在门外的台阶上坐着。
他戴着帽子、压着帽檐,把背包抱在胸前,像一只缩进壳里的蜗牛。街上偶尔有人经过,没人看他。老城区的下午很安静,安静得他能听见裁缝铺里缝纫机的"哒哒"声,和粮油店那只猫打呼噜的声音。
他坐在那里等了一会儿,然后陈默拖着行李箱出现了。看到陈默的行李箱轮子卡在门框上的时候,周律下意识想起了自己那部被摔过两次的手机——旧的、有裂纹的、但还能用的东西,总有一种"不甘心"在里面。
然后是苏打。她拎那个黑色行李袋的时候,手腕上一圈红印,周律看到了,什么都没说。他不爱说话,更不爱问。
然后是林溪。
门开了。他跟在最后一个走进走廊,走廊很暗,但尽头那扇小窗透进来的阳光很亮。阳光在地板上画出一道金色的梯形,他踩在那道光的边缘,没踏进去。
他分到了三楼左边的房间。房间很小,窗户朝北,光线不太够,但有一张桌子,桌面很平整,放得下笔记本电脑。他在桌子前面站了一会儿,伸手摸了一下桌面,木头的纹理很老,摸上去温温的。
他把背包放在椅子上,然后从夹层里掏出一个U盘。U盘很小、很旧,外壳上贴了一张便签纸,上面写着一个日期——那是他被开除的那天。
他握了握那个U盘,没插电脑,又放回去了。
楼下传来陈默的声音:"喂——厨房没米!"
然后是苏打的回复:"没米?"
周律站在窗前往下看,能看到厨房那扇小窗户透出来的光。他听见陈默说"我找找看有没有米",然后是翻箱倒柜的声音。
他嘴角动了动,没笑出来,但他把帽檐往上推了一点,露出了一截额头。这是这七天里他第一次把帽子往上推。
他推开门走下楼。楼梯踩上去"吱呀吱呀"响,像老房子在说话。他走到厨房门口的时候,陈默正举着一袋大米自证清白似的站在灯光下,苏打靠在门框上看着他,林溪从走廊那头探出半个身子。
"吃吗?"陈默问。
苏打:"吃。"
周律顿了顿:"……吃。"
林溪:"算我一个。"
那天晚上的白粥糊了。但周律喝了两碗。他端着第二碗的时候,陈默看了看他,犹豫了一下问:"你……以前是做什么的?"
周律捏着筷子的手紧了一下。然后他回答:"写代码的。"
"程序员啊。"陈默点了点头,没追问。他低头喝粥,含含糊糊地说,"那正好,这楼电路要改。"
周律没回答,但他把第二碗粥喝完了。粥糊糊的、烫烫的,咽下去的时候从喉咙一路暖到胃。
后来他回到三楼那间朝北的房间,坐在桌子前面,窗外能看到对面楼的屋顶,屋顶上有几只鸽子,灰扑扑的,正在暮色里踱步。
他打开手机,翻了翻那个叫"深海"的网吧的订单记录——他已经付了七天的过夜费了,但今天没续。
他点开支付界面,犹豫了两秒,然后退出了。
明天的事,明天再说吧。
他躺在那张木板床上。床板有点硬,但他翻了两次身,第三次的时候不动了。走廊里传来苏打的脚步声——很轻,但能听出节奏很稳,一步、两步、三步,最后停在了楼梯中间。
然后安静了。
周律盯着天花板想:今晚不在网吧。今晚没有键盘声和游戏音效,没有隔壁隔间那个大叔的鼾声,没有凌晨三点保洁阿姨拖着大垃圾桶经过的声音。
今晚只有窗外鸽子的咕咕声和梧桐叶被风翻动的沙沙响。
他闭上了眼睛。
手机还亮着,屏幕上停留在那个叫"日落公寓"的群聊页面。群聊成员四人了——林溪拉了陈默和苏打,周律是第四个。
他没有再看。手机关了屏幕,房间暗下来。窗外路灯的光透过窗帘缝隙,在墙上投了一道细细的橘黄色。
他睡着了。