地铁到站时,陈默已经睁开了眼。他随着人流涌出车厢,刷卡上楼。
冷风灌进站口。他把脸埋进衣领,朝租住的小区走。
路灯把影子拉得很长。路面湿漉漉的,下午可能下过雨。
回到住处时已经六点半。他开门,开灯。灯光是冷的白色,照着一室狼藉。
桌上堆着泡面碗。几个拆开的快递纸箱扔在墙角。笔记本电脑半合着,旁边散着几本技术手册。
陈默脱下大衣,挂好。他走到桌边,掀开电脑。
屏幕亮起来,还是演示程序的界面。拓扑图上节点都暗着,像休眠的蜘蛛网。
他盯着看了几秒。然后关掉界面,打开代码编辑器。
满屏的字符跳出来。绿色的注释,黑色的代码,红色的错误提示。
陈默坐下来。他搓了搓脸,手指冰凉。
脑子里还在转沈清澜那些问题。专利,供应链,成本,市场。
还有她最后那句话:三天后,带你的决定来。
陈默敲了几下键盘。光标在行间跳动,删掉一行冗余的判断语句。
他需要做决定。但他更需要解决一个具体问题。
演示时沈清澜提到过一点。节点延迟的补偿算法,预测窗口能不能再拉长半秒。
当时他说不行。硬件算力不够。
但沈清澜听出了弦外之音。她问,如果算力够呢。
陈默没回答。他留着这个钩子。
现在该用了。
他点开加密通信软件。列表里只有一个联系人,头像是默认的灰色剪影。
备注名:s。
陈默打字。“沈总监,方便请教一个技术问题么。”
发送时间:晚上七点零三分。
他等了一分钟。没有回复。
陈默站起来去烧水。电水壶咕噜咕噜响,蒸汽顶开壶盖。
他泡了杯速溶咖啡。粉末没完全化开,浮在表面一层褐色的沫。
端着杯子回来时,电脑响了。
消息提示音。很轻的“叮”一声。
陈默坐下看屏幕。
s:“说。”
只有一个字。
陈默打字。他把问题拆成三段。第一段是现象描述,第二段是瓶颈分析,第三段是可能的优化方向。
每段都不长。用词精准,像提交bug报告。
发送过去。时间戳:七点十一分。
这次等得久了些。陈默喝了一口咖啡,苦得他皱了下眉。
他切回代码编辑器,继续改那个预测模块。手指在键盘上敲得很快,敲键声在安静的房间里格外清晰。
七点二十五分。
电脑又响了。这次是文件传输请求。
陈默点接受。一个压缩包开始下载,进度条走得很稳。
传输完成。陈默解压。里面是一个文件夹,十几个源代码文件,一份pdf说明文档。
他点开pdf。
第一页是目录。第二页是摘要。第三页开始是核心算法图示。
陈默屏住了呼吸。
图很简洁。几个方框,几条连线,标注着数学符号。但思路和他想的完全不一样。
不是延长预测窗口。是换一种预测方式。
他把咖啡杯推到一边。身体前倾,几乎贴到屏幕上。
眼睛扫过每一行说明文字。手指在桌上轻轻敲着,像在模拟数据流。
看懂了。
这是一种分层预测模型。底层用简单算法做快速响应,上层用复杂模型做趋势修正。两层之间异步通信,错开计算峰值。
算力需求降了百分之四十。
陈默闭上眼,在脑子里跑了一遍流程。数据从输入到输出,经过哪些节点,每个节点耗时多少。
能跑通。
他睁开眼,手已经放回键盘上。开始照着思路改代码。
房间里只有敲键声。窗外的夜色越来越浓,玻璃上凝了一层薄薄的水雾。
改到第三处时,他停下了。
有个参数拿不准。收敛系数的阈值,设高了怕震荡,设低了怕迟钝。
陈默切回聊天窗口。
“收敛系数α,建议值?”
发送。时间:八点零七分。
这次回复很快。
s:“看场景。实时安防用085,数据分析用092。”
陈默想了想。“我这是混合负载。”
s:“那就动态调整。写个自适应函数,以时延方差为输入。”
陈默盯着这句话。脑子里像被什么东西点了一下。
自适应。他怎么没想到。
他打字。“明白了。”
然后补充一句。“谢谢。”
s没回。头像灰了,显示离线。
陈默没在意。他已经切回代码界面,开始写那个自适应函数。
手指在键盘上飞舞。思路像开了闸的水,涌出来,化成一行行代码。
他忘了时间。忘了咖啡已经凉透。忘了窗外偶尔驶过的车声。
整个世界缩成眼前这一方屏幕。绿色的光标在黑色背景上跳动,像心跳。
写完函数时,他看了眼时间。
十一点四十三分。
他活动了下僵硬的脖子。颈椎发出轻微的咔哒声。
然后点下编译。
进度条开始走。底部的状态栏跳出一行行信息:正在检查语法,正在链接库,正在优化……
陈默盯着进度条。手指无意识地捻着桌上一片脱落的键帽。
五秒。十秒。二十秒。
“编译成功。”
没有错误。没有警告。
他深吸口气,点运行。
测试数据加载进来。是一段模拟的摄像头流,带着人为添加的噪声和抖动。
窗口弹出。左侧是原始视频,卡顿明显,画面一跳一跳的。
右侧是处理后的视频。
流畅。
像抹了一层油。卡顿消失了,延迟稳定在二十毫秒以内。画面角落有个小面板,实时显示着预测准确率和算力占用。
陈默靠在椅背上,长长吐出一口气。
胸口有什么东西松开了。一直绷着的那根弦,稍微放松了一点。
他拿起手机,想给沈清澜发个消息。但点开聊天窗口,又停住了。
说什么?说问题解决了?太像邀功。
他放下手机。把测试结果截图,保存。
然后关掉程序,关掉编辑器。
房间突然安静下来。静得能听见自己的呼吸声,还有电脑风扇低沉的嗡鸣。
陈默站起来,走到窗边。
窗外是夜色。对面楼还有几扇窗亮着灯,暖黄的,惨白的。远处有霓虹灯的光晕,染红了半边天。
玻璃很凉。他把额头贴上去。
脑子里又跳出那些推演画面。答应,拒绝,讨价还价。
但现在多了一个变量。沈清澜今晚给的这份参考资料。
这不是普通的指点。这是核心思路的分享。她没提条件,没要回报,直接就发过来了。
为什么。
陈默转过身,背靠着窗户。冷意透过衣服渗进来。
他走到桌前,重新打开那份pdf文档。翻到最后一页。
页脚有一行小字。手打上去的,不是自动生成。
“仅供内部技术讨论,勿外传。”
落款是一个字母:s。
还有日期。三天前。
陈默盯着那行字。三天前,就是咖啡馆见面前一天。
她早就准备好了。早就猜到他会遇到这个瓶颈,早就备好了解决方案。
这不是临时起意。
陈默关掉文档。他靠在椅子上,仰头看着天花板。
日光灯管发出轻微的滋滋声。边缘有些发黑,像老化了的萤火虫。
他做了个决定。
不是最终决定。但他需要先迈出这一步。
他重新打开聊天窗口。打字。
“问题解决了。
发送时间:零点过五分。
等了几分钟,没回复。沈清澜应该睡了。
陈默准备关机。手放在电源键上时,电脑又响了。
s:“不错。”
还是两个字。
陈默犹豫了一下。手指在键盘上悬停。
然后他继续打字。“我想好了。”
发送。
这次对方输入了很久。状态栏显示“对方正在输入…”,持续了十几秒。
最后发过来的却很短。
s:“嗯。”
陈默等她说下文。但她没说。
他只好自己接下去。“我接受合作。百分之二十。”
发送完,他盯着屏幕。手心有点出汗。
三十秒。一分钟。
回复来了。
s:“条件不变?”
陈默:“不变。”
s:“好。”
然后是一串数字。“这是我私人邮箱。把详细方案发过来,包括技术细节和商业规划。”
陈默记下邮箱。是一串字母加数字的组合,没有公司后缀。
他打字。“明天发。”
s:“不急。三天内。”
陈默顿了顿。“你还没睡?”
s:“在改一份专利草案。”
陈默不知道该回什么。他打出“早点休息”,又删掉。打出“辛苦了”,也觉得不对。
最后他只回了一个字。“好。”
s的头像灰了。这次是真的下线了。
陈默关掉聊天软件。他坐在黑暗里,只有屏幕的微光映着脸。
窗外的城市安静下来。偶尔有夜班公交驶过,轮胎碾过湿路面的声音,闷闷的。
他打开邮箱,新建邮件。收件人填上沈清澜给的地址。
标题空着。正文也空着。
他只是建好了这封邮件。像在仪式性地划下一个起点。
然后他关机。屏幕暗下去,房间里彻底黑了。
他摸黑走到床边,躺下。被子很薄,有点潮。
天花板上有路灯透进来的光斑,随着窗外树枝的摇晃微微晃动。
陈默闭上眼。
三天。他还有三天时间准备方案。
但心里那杆秤,已经偏了。