第4章|推演事故(模擬系统內部故障 × 变量溢出) 未定义行为
路灯在四点整熄灭。我在黑里醒来,像每一个按时被抬起的眼皮。风从楼与楼之间的缝里钻过,发出细长的风洞声。这个声音通常只占据走廊的一半宽度,今天它像被复製了三层,互相叠在一起,轻微错位。我在床沿坐了五秒,指尖在腿侧敲了两下,又敲了两下,节拍在第二遍里与第一遍没有完全重合,像两条不肯彼此让步的线。
手机躺在枕边,屏幕仍被我手动调慢一秒。我盯著那一秒,像盯著一个极窄的台阶,准备把整天踩在上面。起身时,地板的纹理从脚底滑过去,有一个细小的地方像是缺了一层漆,我在昨天没有感觉到它。门口的告知单依旧被风掀起一角,锯齿纸边比昨日更密,仿佛夜里有人给它补了锯齿。纸的背面有一点淡灰,我用指腹抹过,灰並没有在我的指纹里留下任何深色,只有一种像温水的触觉。
楼道里,感应灯连续亮了两次。第一次在我走近时,第二次在我已经走过之后,拖著一个比我更慢的我。楼梯的回音不再是单一的空,像是有人把金属盒子的盖子掀开又合上,掀开又合上,声音没有差別,只是频率密了一点。我把手掌在扶手上擦了一道半线,半线与昨天的半线没有对齐,像两条错开的记录。
出门时,天还没有完全亮。人行道上的白线因潮气泛出湿光,把我的影子切成三段。三段影子之间的缝隙比昨天宽,我可以看见缝隙里有极细的粉尘漂浮,那些粉尘像被某个算法忽略的微小数值,仍在往上爬。街角的红绿灯同时亮起红与绿,我站住,听到路口的车流短促地犹豫了一下,又像被更高的指令推了一把,一齐向前蠕动。
地铁口的冷气从第九级台阶开始。我习惯在第七根立柱旁停十三秒。垃圾桶旁的纸屑——那一片像鸟羽的白——今天有三片,间隔相等。风从顶棚的缝里往下压,把它们轻轻托起又按回去,动作同步到不自然。我盯著它们,试图找到一片与另外两片不同的边角,像寻找某个变量的误差条。灰夹克在反光里出现,我们的目光“叮”的一声撞上,又移开。那声“叮”在玻璃里响了两次,第二次稍迟,像在追赶前一声。
站台广播开始循环:“请注意脚下空隙——请注意脚下空隙——请——注——意——脚——下——空——隙。”最后一遍像被拉长,又把每个音节拆开,生硬地拼回去。人群没有不耐,仿佛这就是正常的说话方式。我把卡在闸机上停半秒,黄灯亮,绿灯亮,黄灯又亮了一次,像一只犹豫的眼睛。我走过去时,闸门的塑料边与手背擦出细小的热,我下意识想把这点热记住,但它从皮肤上很快退掉,像从一个浅浅的堤岸翻过去。
车厢里,坐椅的蓝像从厂里刚出来,连纱线的方向感都过分清楚。对面屏幕上的gg卡顿了一次,接著卡在同一帧上又震了一下,像心电图在一个地方多画了一个小牙。我看见自己在反光里抬头,又看见另一个我在反光里没有抬头。两个我在显示屏的镜面层上短暂重叠,我把视线移开,重叠没有立即消失,它像橡皮擦擦过的铅笔痕,轻浅但倔强。
十一点四十七分,茶水间。他照例问“最近睡得好吗”。雾气吞没镜面,水滴沿杯壁往下。我把“还行吧”放在舌尖,试图往左偏一毫米,却在吐出之前听见他已经说了“还行吧”。声音是我的,嘴唇是他的,时序在这里被折了一下。我没改口,我与他共同把同一句话说了两遍,像两条轨並行而没有碰撞。我们各自沉默三秒,冷气压低,杯里的旋涡像被按下“暂停”。
午后,办公室的顶灯均匀泛白,屏幕像一张没有瑕疵的纸。我在一行文档中间打下“—”,打了两遍,第三遍键位卡住,自行连成“———”,像有一只看不见的手把缺口填满。我刪掉它,光標闪烁变慢,像在等我跟上。一封邮件弹出,又弹出同样的一封,標题相同,时间戳相同,发件人相同。我点开第一封,內容是一句“收到”;第二封也是“收到”,但“收”字的笔画比第一封少了一点墨,像从一层薄薄的玻璃下面看来的。
傍晚开会,领导说“误差容忍”的新口径。我把句子拆成三段,照旧把第二段与第三段之间的空白留出,屏幕右上角灰色提示:异常,句子未闭合。灰色在这一次没有消失,而是像一块贴片,贴在我的呼吸上。我略一侧头,从会议室玻璃的反射里看见自己正说话,声音像从布后传来。我又看见另一个我没有说话,眼睛微微上翻,像在看天板。两个我都穿著相同的衣服,袖口被露出同样的线头。我把手指按在袖口,线头在两个画面里同时迴避我的指甲。
会后,我走进电梯。电梯里有四个人,四个人里有两个人与我穿同样的灰色外套,一人鞋带松,一人鞋带紧。电梯门合上,灯一闪,门又开,合上,又开。指示灯的数字从12跳到12,再从12跳到10,又回到12。我把手伸向紧急按钮,手指在按钮上空停了一瞬,像被薄膜挡住。我退了一步,电梯自行下行,速度像被分成离散的台阶。电梯角落有一道细小的划痕,它在每一次开合之间都在,像一条拒绝归零的河床。
我从写字楼出来时,天已经完全黑。风把路边的树叶吹成一面看不见的旗,翻涌的纹理在同一时间朝两个方向。我沿人行道走,路面的石缝在路灯下显出浅浅的银。我经过一个小广场,孩子们在跑,脚步像同一个人发出的不同回声。一个小孩绊了一下,摔坐在地上,母亲跑过来,说“没事”。另一位母亲也说“没事”,第三位母亲——我確定她不在同一圈子里——同样说“没事”。三个同样频率的“没事”像三颗同位素,在空气中彼此看不见,却通过某种索引彼此靠近。
我在长椅上坐下,灰夹克坐在另一头。他没有看我。我也没有看他。我们像两块放在同一个案板上的金属,彼此发出低细的“錚”。他把拇指与食指在空气里捏了捏,半毫米。我也捏了捏。我们的手指在半空中停留了一秒,像在对著一个不在场的人签名。远处传来电钻的声音,又传来第二个电钻的声音,频率相同,相差半拍,重合后变成一条粗线,把空气分成两个等份。
夜里四点前一分钟,路灯闪了一下,在一秒里完成了两次熄灭。黑暗像一块被折过的布,被人快速抖开又叠好。我坐起身,没有开灯。窗外的风洞声不再是单一的细长,它像被分轨,低频在地基里走,高频在玻璃与玻璃之间刮。一个不可见的阀门被打开,城市像灌满了水。水没有味道,只有压力。那一刻我確信,有什么东西在系统的背后被拧紧,紧到线头开始髮丝一样地裂。
第二天早上,地铁口台阶从第六级开始出现微妙的同步错位:我的脚落在第六级时,镜面反射里的脚落在第五级,下一拍才追上。第七根立柱旁的缝被填了一半,填充物像凝固未完全的透明树脂,里面有微小的气泡在流。垃圾桶旁的纸屑从三片变成九片,排列呈三乘三,每片纸屑的锯齿边都像被人工雕刻,饱满得不真实。我伸手去捏了一片,它轻得没有重量,飞起来又落回原位,没有偏差。
站台广播开始报站:“下一站——下一站——下——一——站”,像在把语言拆件清洗。我看见对面屏幕上播放一段新闻画面,画面里的人在说话,嘴形与声音不吻合,像被延时配音。光標在角落里闪烁,不属於任何输入框。我仿佛看见一个工程师的手在屏幕內侧滑过,留下指纹的湿痕,又在下一帧被擦掉。列车进站,车门打开一半自动关闭,之后完全打开,又在没有人进出时关闭一次。这个动作重复三次,仿佛系统把“开门动作”当成了一个值得增益的特效,叠加到过饱和。
我被挤入车厢。车內的扶手不停地微震,像在校对自己的存在。播音员的声音忽然变得很近,像在我耳骨里说话:“请握紧扶手。”这句话开始在不同的声道里轮流出现,左耳一次,右耳一次,头顶一次,脚边一次。我抓紧扶手,觉得扶手在回握我。我向下看,地板上多出了一道与地板纹路平行的细线,那条线沿著车厢长度延伸,在门缝处被切两断,又在另一面继续——它不是地板的装饰,是一个画在空间里的光影误差。
到站时,从我侧面的门同时传来“咔”的两声。我走出去,听见后面又走出来一个穿同样鞋的我。我们没有看彼此,像两条不被允许交叉的路。走过闸机时,我把卡在扫描面上,黄灯亮、绿灯亮、黄灯又亮、绿灯又亮,像失真版的心跳。我想起“变量溢出”这个词,它像一只看不见的动物,悄悄在系统的树林里繁殖。多出来的鹿像原先的鹿,吃原先的草,踩原先的小路,直到草场被踩禿,脚底下露出模板的灰。
午后,办公室里所有人的键盘几乎在同一时间发出“咔嗒”的齐声。那一声齐,像雨落在同一片屋顶。我看向窗外,另一栋楼同一层的窗帘同时拉开又合上,像一条被上帝的手操纵的睫毛。手机推送在一分钟內重复了同一条:“网络状態已优化。”我点开第一个,是“网络状態已优化”;点开第二个,仍是“网络状態已优化”,但文末多了一个句点;点开第三个,句点后多了一个空格。我看见修辞在无意义的差异里逼仄地呼吸。
傍晚,我走向河边。水被风切开,碎光在一小块区域里重复同一幅图案,像屏保卡在了一张。桥下的阴影里有一个人影走动,又出现第二个相同动作的人影。我分辨不出哪个是真实,他们的脚步都在桥拱上敲出无可挑剔的节拍。我在栏杆的铁上敲了三下,声音从水面反弹回来,数量变成六,我没有加重力道,回声自己长出重影。
我想到需要一个更清楚的试剂。我把钱包里的一枚纸角放在栏杆与栏杆之间,卡在缝里。它像一面小旗。风吹过时,它不再单独抖动,而是在三处位置同时抖动:现实中的纸角、反光中的纸角、倒影里的纸角。三处的幅度一模一样,像被同一个参数调节。我盯著其中一处,对它轻声说:你不要跟。它还是跟。
夜里回家,电梯口的镜面反光里出现两个保洁阿姨,一个推车,一个也推车。她们擦肩而不过话,像两个算法实例在完成彼此的任务。电梯到达时,门迅速开合两次,像在训练一只门学习何为“迅速”。我进去,发现按钮面板上“12”这颗灯泡在亮与不亮之间抖动,像一只被困住的萤火虫。我抬手往“12”上按,指尖落下的瞬间,“12”的光像提前知道我的位置,自己灭了又亮。我退了一步,整个面板一起轻微闪白,像一整面翻过一页的书。
深夜四点零一,闹钟准时响。我没有去按。我想看它在变量叠加的夜里会自己怎么停。铃声在第三个循环时突然断成两段,再接回,像有人在后端换了一个更服帖的模板。我从床沿起身,用指甲在门后透明漆上划了一个极短的刻痕。刻痕的边缘起了毛。我吹了一口气,毛被风压平,像一条被驯服的小河。
第三天,故障开始明显得像教科书。路口的红绿灯在同一时间全亮,全部同时熄,紧接一次长时间全红。车辆没有完全停下,像被钢丝牵著一点点挪。我在十字中央看见一个穿裙的女人,她的影子有两条,往相反方向拉,像一面被两支风同时吹动的旗。她低头看手机,指尖滑过屏幕的速度与画面滚动不匹配,她的指尖像在推另一部机器。孩子们在广场上拍手,一个孩子拍手,周围三个孩子依次拍,相位总是迟半拍,回声堆成一堵柔软的墙。
我加快步子,想在墙塌下来之前走过去。墙没有塌,它换成另一种材料,像海绵。路边摊主在油锅里下饼,饼在油麵上同时出现两只泡,接著出现四只,八只,泡的边缘没有油味,是乾净的白。我突然感到一种奇怪的飢饿,这飢饿与胃无关,是眼睛对一致性的飢饿——我需要一个脏点,一个非必要的破相,一个不合宜的停顿。我需要有人用错误的节拍走路,需要一只鞋带完全散开,需要一条狗朝空无吠一声。
我经过一家洗衣店,玻璃门上贴著“今日休息”。里面的滚筒在转,双层反光里有两台滚筒在转,转速一致。掛在门口的衣架轻微摇晃,我伸手把它稳住,它仍摇。这时我意识到:我的手被排除在某些物理里了。系统在某些切面上延迟解释我的动作,让我与我自己暂时没有因果。
下午两点,所有手机几乎同时弹出通知:系统维护,將进行轻漂移。字很细,背景白,像一张新换的皮。我坐在工位上,屏幕在一瞬间暗了一下又亮,墙上钟噠的一声,秒针跳过一个刻度。我感到一个看不见的手指按在城市的太阳穴上,轻轻一推。这一推之下,很多东西整齐地退后半毫米。我的桌角与墙角之间的角度变钝,空气在纸张边缘的阻力减小,呼吸像被梳了一遍。
维护完成后,一切安静了几秒。安静是那种密得能挤出水的安静。然后,裂缝来了,先是像歌里走音的一个音,然后是整个合唱团同时唱偏半调。风洞声在走廊里反著走,广播把“请注意脚下空隙”念成“请注意口下脚隙”,公告栏上的字右半边轻微下坠,纸屑在垃圾桶旁自我增殖到一个不能被忽视的数量。电梯走到两层之间停下,灯灭,喇叭里传来一句话:“抱歉,变量溢……”声音切断,再接上,“变量溢出已……”又断。我在黑里摸到了角落那道熟悉的划痕,它在我的指尖下像一条脊柱。我在心里说:仍在。
门开时,我们没有马上出去,像被看不见的相机提示“再来一条”。我突然转身,把身后的我挡住,像在胸前护一只鸟。没有人发出不满。我们重新走出,走姿几乎完全一致。我在反光里看见自己的肩膀慢半拍。那一刻我决定做一件违反整齐的小事:我在过道中央停下三秒,鞋跟在地板上轻轻拖出一寸,像一条要逃跑的线。我的动作没有被收拾,线在我身后留了一次。或许是系统在忙別的。
傍晚,变量像坏天气一样铺开。红绿灯全亮的同时,远处一整排路灯像被同一根线拉灭;自动售卖机吐出两枚硬幣之后又吐出两枚,屏幕显示“余额变动x1”;城市导航的箭头指向与行人反向移动;餐厅的菜单把“米饭”复製到一整页,每一项后面跟著小小的注释:米饭。人们的表情没有变化,像品牌手册里的標准脸。有人在餐厅门口摔倒,围上去的人说“没事”,另一个说“没事”,更多人说“没事”。“没事”的波浪向前捲去,把拐角处的猫也裹住。猫抖了抖尾巴,像在拒绝被包含。
夜色落下来,我走回楼下。风从天桥缝里往下压,像用手掌按住一只纸盒子。灰夹克坐在长椅上,鞋带仍松。他抬眼看我,眼睛像水里站著。我们没有说话。他在空气里比了那个手势,半毫米。我摇头。我在空气里比了一个更小的手势,像在纸上点一个比米粒还小的点。他看懂了,嘴角轻微动了一下。这微动没有被系统放大,像一个被忽略的像素。
我回到房间,把门关上,按惯例把手掌贴住门板,五秒、五秒、五秒。木头后面有极细的嗡嗡,好像一座远处的厂房正在换班。手机的通知在桌面上闪了一下又不闪,像一只在睡著与醒著之间游移的眼。我打开“今日回顾”。页面空白,没有建议,没有曲线,没有优化。我把光標放在输入框里,打了一个“—”。“—”没有显现。我又打一次,屏幕上出现“———”,像被自动补全。我刪掉它们,屏幕分成两半,右半秒停,然后跟上左半。
我决定去做一件需要我全身参与的事。我下楼,走到楼后小巷,那里有一面墙,新刷的白。白得没有灰尘。我把手掌按在墙上,五秒,离开,五秒,再离开,五秒。掌印没有留下。我把额头轻轻磕了一下,墙发出一声更轻的“嗒”。这声“嗒”从巷子里出去,拐过一个角,又回到我耳朵里。它在回来的路上变了一点味,像加了一滴铁。我在那一滴铁里,慢慢找到自己的身体。
回到家,我把鞋垫掀起,里面那枚极薄的金属片还在,我用刻刀在上面再划一个更浅的“—”。刻刀在金属上走了一下,像在冰上割开一条细口子。我把金属片放回去。脚跟踏上去时,鞋里传来一声不可闻的“噝”。我告诉自己:当城市像一个过饱和的溶液,我要做的不是溶解,而是在它的边界养出一个微小的晶体。晶体不需要大,它只需要有稜角。
本章未完,点击下一页继续阅读。(1 / 2)