“别只看画面,先找它为什么起不来。”
老师说完这句话,二号教学楼204里最后一点早八的困意也没了。
讲台电脑停在黑色启动窗口。光标不再滚动,最下面一行红字被投影放大,铺满半面白墙:
服务启动失败,请检查运行环境。
前一组的三个人围在讲台边,一个重新点启动图标,一个打开课程说明,剩下那个试图用鼠标选中红字复制。窗口没有响应,鼠标转了两圈,又回到原位。
老师看了一眼名单:“原来的三分钟展示暂停。所有组都打开课堂仓库,二十分钟内让它正常运行,再交一份排错记录。只写结论不算,必须有复现过程。”
教室里立刻响起一片拉拉链和开电脑的声音。
陆小川坐在第三排,灰色衬衫没有融进投影背景,工装裤口袋也确实装下了校园卡、手机和钥匙。
昨晚关于衣服的判断全部通过。
现在轮到电脑。
他打开课程平台。仓库名称、目录结构和男性人生里上过的那门软件实践课很像,都是一套故意留下错误的校园预约系统。区别只在于旧课用的是本地数据库,这次把前后端拆成了两个服务。
同组名单刚刚自动生成:
陆小川、韩铮、周宁。
韩铮把电脑往三个人中间推:“谁先来?”
“先看说明。”周宁说。
陆小川已经点开运行日志。
最下面那句“检查运行环境”不是原因,只是启动脚本失败后统一打印的提示。真正的第一处异常在上面十七行:配置文件读取到了默认端口,而不是课堂说明指定的端口。
他顺着目录找到配置文件,又停住。
这门课他明明修过。
男性人生里的上学期,他在另一间机房对着相似的红字坐了两个小时。那次他和韩铮都只盯着最后一行,重装了三遍依赖,直到助教过来问:“日志是从最后一行开始写的吗?”
当时全组被扣了过程分。
当前成绩单里没有那次扣分。
眼前的韩铮也不记得。
但陆小川的手已经知道应该往上翻。
“先别重装。”他说,“看这里。它读错配置了。”
韩铮凑近屏幕:“最后不是说环境问题?”
“最后一行是它放弃挣扎以后留下的遗言,真正死因在前面。”
周宁没忍住笑了一声,随即把课堂记录表拖到左边:“你说慢一点,我记过程。”
陆小川把手从触控板上移开:“第一步,确认程序实际读取的配置。你来改。”
他把电脑推给韩铮。
如果只求最快,他自己二十秒就能完成。可老师要求的是小组排错记录,不是看谁能把另外两个人变成观众。
韩铮把默认端口改成课程要求的端口,再次启动。
红字消失了。
启动窗口停了两秒,又跳出新的错误。
端口已被占用。
“这次看最后一行就行?”韩铮问。
“可以,死者本人交代得很清楚。”
“那现在杀进程?”
“先查是谁占的。截图留证。”
周宁负责记录命令和结果,韩铮操作,陆小川只在两个人准备跳过步骤时提醒一句。三分钟后,他们找到一个没有正常退出的旧服务。结束进程,再次启动,网页终于打开。
登录页只完整显示了半秒。
下一刻,四个按钮同时挤到了页面左上角,像一副被人揉皱后又强行铺开的扑克牌。
教室里有人哀号:“不是能运行就算吗?”
老师站在讲台上头也不抬:“能打开不等于能用。剩十六分钟。”
早上八点零七分,二号教学楼204的空调停止制冷。
起初只是出风口的声音变小。两分钟后,三十多台电脑散出的热量开始在教室里积着,窗户又因为投影太亮只开了一条缝。
陆小川把灰衬衫的袖口卷到手肘。
布料原本遮住的手腕和小臂露出来,冷白的投影光从腕骨滑到指尖。最上面那颗扣子也被闷热抵得不太舒服,他犹豫两秒,只解开一颗,把衣领往外松了不到一指。
一小截锁骨接住了屏幕上跳动的光。
动作本来只是散热。
可他低头时,恰好在黑掉半秒的电脑屏幕里看见自己。
卷起的袖口,微敞的领口,黑框眼镜后被热气熏得发亮的眼睛。长发被他随手拢到一侧,几缕没收好的碎发贴在颈边。
如果画面里的人不是自己,陆小川大概也会多看半秒。
这个判断刚冒出来,他立刻把屏幕重新点亮。
想什么呢。
机房三十一度,大脑降频很正常。
韩铮偏偏在这时转头:“你——”
陆小川按住衣领:“看什么?”
“看你挡住报错了。”韩铮指了指屏幕右下角,“还有一行。”
“……哦。”
陆小川往旁边让了半个座位。
周宁把记录表翻到下一页,嘴角压了两次才压回去。
【课堂练习三人组】
【韩铮】:(⊙o⊙) 你刚才为什么像要灭口
【陆小川】:因为你说话只说半句。
【周宁】:已记录:沟通故障,无法复现。
陆小川面无表情地把群聊设为消息免打扰。
页面错位不是新的运行故障,而是浏览器保留了上一组的缩放比例。恢复到百分之百以后,按钮回到正常位置。
周宁检查功能,发现预约提交仍然失败。
这次日志里没有红字,只有一条状态码。韩铮从接口一路查到数据库,陆小川看了两眼,便知道缺的是初始化数据。
他也知道下一步应该打开哪个目录。
可知道和证明不是一回事。
“你是不是做过这套题?”周宁问。
韩铮也停下操作:“我也觉得。你连它下一步坏在哪儿都快猜到了。”
男性人生里的那门课在陆小川脑子里完整存在。签到、作业、被扣掉的过程分,还有期末通宵补报告时吃的两桶泡面,都不是“像学过”三个字。
他甚至记得旧成绩是八十七。
但当前平台的课程记录从今天开始。
“做过类似的。”陆小川说,“报错顺序差不多。”
“暑假练的?”
“算是。”
这句话没有解释任何一段人生,却足够让课堂继续。
韩铮按陆小川指出的位置找到初始化脚本。周宁没有直接运行,先对照说明确认脚本只写入课堂测试数据,不会覆盖其他组的内容。
八点二十一分,预约提交成功。
三人把复现步骤、错误截图、处理依据和最后结果放进记录表。陆小川原本想把三处问题全部重新写一遍,周宁却把文档拉回自己面前。
“第一处你判断,韩铮操作;第二处韩铮查进程;第三处我核对脚本。”她说,“记录就按实际分,不写成你一个人修的。”
陆小川看了一遍:“可以。”
老师按顺序检查。轮到第三组时,他先让韩铮说明配置错误,再让周宁解释为什么运行脚本前要确认数据范围,最后才看向陆小川。
“你负责什么?”
“从日志确定排错顺序,记录复现条件。”
“为什么不直接重装环境?”
“没有证据说明依赖损坏。重装会改变现场,还浪费时间。”
“为什么第一次启动成功后继续检查?”
“启动是技术状态,能完成预约才是用户结果。”
老师在记录表上打了三个勾。
“过程完整,功能通过。小组成绩九十二。陆小川,排错速度不错,但下次别把判断藏在‘我觉得’里。你知道为什么,也要让同组的人能复现。”
“知道了。”
九十二分落在当前课程里。
它不能证明男性人生中的八十七分存在,也不能替那两桶泡面补开发票。旧经历没有换来免修、加分或者一个人立刻相信他。
它只让陆小川在今天少走了三次弯路。
下课后,学生陆续拔掉电源。空调仍然没有恢复,陆小川刚把袖口放下来,讲台旁一名抱着设备登记表的女生叫住他。
“陆小川?”
她把马尾扎得利落,胸前挂着实验室的临时助理牌。陆小川在软件学院公示栏见过这个名字。
梁可,软件工程大三。
“刚才课堂仓库的运行日志是你们组导出的?”她问。
“我导出,三个人一起核对。”
“原始文件还在吗?”
“在提交附件里,没只留截图。”
梁可翻到登记表第三组,在陆小川名字后面做了一个很小的记号:“排错挺快。”
“以前见过类似问题。”
“见过不是重点。很多人见过以后只记得答案。”梁可合上夹板,“你还留了现场。行,我记住了。”
她没有问陆小川以前在哪里见过,也没有对他的衬衫和当前身份多看一眼。她转身去找下一组补交日志,走到讲台边又停下:
“你们组第二次启动前少了一张端口释放截图。今天不扣分,下次按记录标准来。”
“好。”
能力被看见的同时,遗漏也被看见。
这比用一份不存在的成绩单证明自己麻烦,却更具体。
陆小川离开教学楼时,雨后的太阳已经把路面晒出一层水汽。灰衬衫的袖口重新卷了上去,领口那颗扣子却忘了系。
回到317,他先把电脑放到桌上,再拧开路上从自动售货机买的冰水。瓶身的冷气凝成水珠,顺着指缝往下滑。他仰头喝了半瓶,才发现江清越正坐在另一张桌前导照片。
她看了他两秒。
陆小川下意识检查书包:“怎么了?”
“课上得很热?”
“空调坏了。”
“嗯。”
江清越重新看向屏幕,没有补充。
陆小川顺着她刚才的视线低头,看见自己还卷着袖口,衣领也松着。那颗忘记系上的扣子让灰色布料偏向一侧,锁骨边缘还留着被书包肩带压出的浅红印。
他伸手去系。
手指刚碰到扣子,又停住。
衣服没有走光,也没有不适合公共场合。江清越只问空调,甚至没有说他应该整理。
陆小川把手放下:“热还没散。”
“那就先别系。”
江清越起身,把桌下的小风扇转向两张桌子中间。电源线不够长,她俯身去够陆小川脚边的插排。
两张椅子之间原本只容得下一个人转身。
她一靠近,短发的发梢便从陆小川颈侧轻轻扫了过去。风扇恰好在这时转起来,把洗发水残留的清淡气味和一缕温热的风一起送到他耳边。
江清越一只手撑在桌沿,另一只手按下开关。银色耳钉离陆小川的眼镜腿近得只剩几厘米。
那几厘米没有碰到哪里。
却比上午满屏的红字更难忽略。
陆小川脑子里短暂地飘过一个极不专业的故障提示:
(⊙o⊙)
江清越抬眼:“风太小?”
“不小。”
“你往后躲什么?”
“你先起来。”
江清越停了半拍,像是这才发现两个人的距离。她立刻直起身,后退一步,把风扇往陆小川那边多转了一格。
“……抱歉。”
陆小川拧紧瓶盖,盯着电脑:“离太近了。”
这句话让刚才那点说不清的热有了边界。
陆小川拧紧瓶盖,故意把注意力放回电脑:“今天小组九十二。”
“你昨晚说这门课学过。”
“我记得学过。当前系统不记得。”
“那九十二呢?”
陆小川看着课程平台里刚更新的课堂成绩。姓名、学号和当前照片都属于现在;判断日志的习惯却来自那段没人承认的过去。
“算我今天挣的。”他说。
“嗯。”江清越点开下一张照片,没有替这九十二分做结论。
江清越回到自己的桌前,继续给照片编号。风扇留在中间,一次吹向陆小川,一次转向她,谁也没有独占。
陆小川把课堂记录重新打开,补上缺失的端口释放截图说明。锁骨边那点被肩带压出的红色渐渐退了,领口仍保持原样。
晚上七点十六分,三人练习群又亮起来。
【韩铮】:梁可怎么单独问你日志?
【周宁】:因为有人排错像开了二周目。
【韩铮】:真没背着我们重修过?
陆小川盯着最后一句。
他确实上过。
只是那张课表不在这个世界。
他没有继续解释,先把补充后的记录发进群里。
【陆小川】:端口截图漏了,我把复现说明补全了。下次你们也能自己开二周目。
梁可随后在课堂群回复:
【梁可】:第三组补充记录收到。排错顺序清楚,现场保留合格。
停了两秒,她又发来一句:
【梁可】:陆小川,下次记得让队友先说完。
陆小川把这句话抄进课程复盘。
旧成绩不能换学分。
但今天有人记住了他的名字。