键盘敲击声持续到凌晨两点。
陈默写完最后一行注释,保存,关掉编辑器。屏幕暗下去,映出他满是血丝的眼睛。
他刷新邮箱页面。收件箱还是空的。
沈清澜没回信。
窗外有车驶过,车灯的光带在天花板上扫过,又消失。远处传来警笛声,忽高忽低,像某种夜鸟在叫。
陈默揉了揉眉心。他点开已发送邮件,重新看自己写的那封技术笔记。
标题没问题。开头太正式了,像求职信。中间的技术分析部分,他故意留了三处没写透。一处是异步检查点的具体实现,一处是版本向量的压缩算法,还有一处是分歧检测的阈值设定。
这三处,正好卡在沈清澜那篇论文的薄弱环节。
钩子放得够明显吗?
陈默不确定。他站起来,走到窗边。玻璃上蒙着一层薄雾,他用袖子擦开一块。
楼下路灯昏黄,照着一只翻垃圾桶的流浪猫。猫听见动静,抬头看了一眼,又埋头翻找。
手机震了。陈默猛地转身。
不是邮箱通知。是系统弹窗。
“检测到目标对象处于在线状态。建议:可尝试发送补充信息。”
陈默盯着这行字。沈清澜还没睡。
他坐回电脑前。手指放在键盘上,悬了十秒。
然后他打开一个新的邮件窗口。收件人填上沈清澜那个gail地址。主题栏空着。
正文只写了一句话:“关于阈值设定,我想到一个基于滑动窗口的动态调整方法。附上一段伪代码。”
他从代码库里复制了二十行伪代码。不是核心算法,只是外围辅助逻辑。但思路很巧,能解决论文里提到的一个小问题。
发送。
邮件传出去的声音很轻,像叹息。
陈默靠在椅背上,闭上眼睛。太阳穴在跳,一跳一跳地疼。
五分钟后,邮箱提示音响起。
他睁开眼。
新邮件。发件人:沈清澜。
标题:“re: 关于边缘场景下异步检查点与版本向量的一个思路”。
陈默点开。
正文只有两行。
“伪代码看了。窗口大小参数的依据?”
“明天下午三点,创新谷星巴克。带完整思路。”
没有称呼,没有落款。像工作指令。
陈默盯着屏幕。嘴角慢慢扬起来。他吸了口气,又缓缓吐出。
手指在回复框里打字:“好的。三点见。”
发送。
然后他关掉电脑。房间陷入黑暗,只有路由器指示灯在墙角闪着绿光。
他躺到床上,被子没盖。天花板上有窗外的光影在流动,像水波。
三点。星巴克。
他得准备什么?完整的思路要写到什么程度?要不要带原型演示?
沈清澜会问什么问题?技术细节,还是商业意图?
陈默翻身坐起来。他打开手机备忘录,开始列清单。
一、技术要点:滑动窗口的动态参数、检查点触发机制、状态回滚的优化算法。
二、可能的问题:算法复杂度、内存开销、边缘设备兼容性。
三、商业价值:缩短故障恢复时间、降低运维成本、提升系统可用性。
四、不说的事:系统推演的存在、瞬瞳的核心代码、他对智瞳内部矛盾的了解。
清单写了三十多条。手机屏幕光刺得眼睛发酸。
他保存备忘录,设了明天中午的闹钟。重新躺下。
这次他闭上眼睛。脑子里却停不下来,一遍遍过推演画面。
推演需要能量。
他忍住没开系统。强迫自己数羊。一只,两只,三只。
数到一百二十七只时,天亮了。
晨光从窗帘缝隙挤进来,在地板上切出窄窄的光带。灰尘在光里飞舞,慢慢悠悠。
陈默爬起来,冲了个冷水澡。水很凉,激得他打了个哆嗦。
他换上那件深灰色衬衫。领口有点皱,他用熨斗烫平了。熨斗蒸汽喷出来,带着铁锈味。
上午他去了办公室。张浩和苏晓都在,埋头敲键盘。空气里有咖啡和打印机油墨的味道。
“陈哥,早啊。”张浩头也没抬,“悦景湾那边数据导出来了,我发你邮箱。”
“好。”
陈默走到自己工位。电脑开机,邮箱弹出十几封新邮件。他跳过那些,点开沈清澜那封。
又看了一遍。
“带完整思路。”
这四个字下面,好像藏着别的意思。带多少?完整到什么程度?
他打开加密文件夹。里面存着瞬瞳的早期原型代码,还有十几份设计文档。
他挑了其中三页。一页是架构图,一页是核心算法流程图,还有一页是性能测试数据。
三页都没写关键参数。图也做了简化,只保留轮廓。
打印出来。a4纸从打印机里吐出来,还带着温度。
陈默把纸折好,塞进背包夹层。拉链拉上时,发出刺啦一声。
“陈哥,中午吃啥?”苏晓从隔板那边探出头,“楼下新开了家牛肉面。”
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
“你们去吧。”陈默说,“我下午有事,得准备点东西。”
“又是技术交流?”张浩转过来,“你这几天老往外跑。”
“嗯,见个人。”陈默含糊道。
他没说名字。张浩也没多问,转回去继续敲代码。
中午陈默没吃饭。他坐在电脑前,把要讲的内容过了三遍。每遍都计时,控制在二十分钟内。
讲到关键处,他故意停顿。停顿多久?三秒?五秒?
他对着空椅子练习。椅子是铁的,坐垫破了,露出里面的海绵。
一点半,他收拾背包。检查了三遍:打印的文档、笔记本电脑、充电线、笔记本和笔。
笔是新的,笔帽还没摘。
他走到卫生间,用冷水拍了拍脸。镜子里的人眼窝很深,但眼神很亮。
出发。
地铁还是挤。他护着背包,站在车厢连接处。旁边有个小孩在哭,声音尖利,母亲小声哄着。
陈默看着车窗外的隧道壁。灯带连成虚线,向后飞驰。
他在创新谷站下车。出站口的风很大,吹得他衬衫领子翻起来。
星巴克在园区拐角。玻璃墙,里面灯光暖黄。下午人不多,散坐着几个敲电脑的。
陈默推门进去。咖啡豆的焦香混着牛奶甜味,扑面而来。
他看了眼手表。两点五十。
沈清澜还没到。
他找了个靠里的位置。两张单人沙发,中间隔着小圆桌。沙发是墨绿色的,皮面有些磨损。
他放下背包,没坐。走到柜台点了杯美式。
“需要加糖吗?”店员问。
“不用。”
咖啡很快好了。纸杯烫手,他捏着杯套边缘,走回座位。
坐下时,沙发发出轻微的吱呀声。
他拿出笔记本电脑,开机。屏幕亮起来,桌面很干净,只有几个工作文件夹。
两点五十五。
门被推开。风铃叮当响了一声。
沈清澜走进来。她今天穿的是浅灰色毛衣,黑色长裤,肩上挎着个帆布包。头发还是低马尾,脸上素净。
她扫了一眼店内,目光落在陈默身上。
陈默站起来,点了下头。
沈清澜走过来。脚步很轻,帆布鞋底擦过地板,几乎没声音。
“沈总监。”陈默说。
“嗯。”沈清澜把包放在旁边沙发上,“坐。”
她没点咖啡。坐下后,从包里拿出笔记本和一支银色钢笔。笔记本是皮面的,边角磨得发亮。
陈默把打印的三页纸推过去。
“这是昨晚说的思路。”他说,“简化版。”
沈清澜接过去,低头看。她看得很慢,一行行往下移。钢笔在手里转着,银光一闪一闪。
咖啡店背景音乐是爵士乐,萨克斯风慵懒地拖着长音。
三页纸看了十分钟。
沈清澜抬起头。“架构图这里,”她用手指点在第一页左上角,“数据流的箭头方向,你画反了。”
陈默心里一紧。他凑过去看。
确实反了。应该从边缘节点流向中心节点,他画成了反向。
“抱歉,打印时弄错了。”他说。
“不是打印的问题。”沈清澜看着他,“是你画的时候就没想清楚。”
她的眼神很直接,像手术刀。
陈默沉默了两秒。“是,我承认。这个模块我还没完全理清。”
“但你说你有完整思路。”
“思路有,细节还在打磨。”陈默打开电脑,调出另一张图,“其实我倾向于另一种设计。”
新图弹出来。这次箭头方向对了。
沈清澜盯着屏幕。她的睫毛很长,垂下来时在眼下投出浅浅的阴影。
“为什么改?”她问。
“因为延迟分布。”陈默说,“长尾分布下,反向同步会积压太多脏数据。正向同步虽然初始开销大,但长期看更稳定。”
“你测过?”
“模拟过。”陈默点开一个数据图表,“这是悦景湾三个月的数据跑出来的。紫色线是正向,绿色线是反向。”
图表上,紫色线平缓上升,绿色线在后期剧烈抖动。
沈清澜身体前倾了些。她盯着图表,手指在触控板上滑动,放大细节。
“采样间隔多少?”她问。
“一秒。”
“边缘节点数量?”
“十二个。”
“网络拓扑?”
“星型,但有备用链路。”陈默调出拓扑图。
沈清澜看了半分钟。然后她靠回沙发,端起陈默那杯美式,喝了一口。
陈默愣了一下。她没点咖啡,直接喝了他的。
“凉了。”沈清澜放下杯子,“你继续说。”
陈默收回心神。他点开算法流程图,开始讲解。
从滑动窗口的参数调整,讲到检查点的触发条件,再讲到状态回滚的优化策略。每讲一处,他都留一个尾巴。
沈清澜没打断。她低头在笔记本上记东西。钢笔尖划过纸面,沙沙响。
讲到回滚优化时,陈默停住了。
“这里有个问题。”他说,“如果多个节点同时发生分歧,回滚的顺序会影响最终状态一致性。我还没想好怎么解决。”
沈清澜停下笔。她抬起眼,看了陈默一会儿。
“你故意的。”她说。
“什么?”
“留问题给我。”沈清澜合上笔记本,“前面讲得那么顺,到这里卡住。你想让我参与进来。”
陈默没否认。他端起咖啡杯,发现已经空了。
“沈总监看出来了。”他说。
“太明显了。”沈清澜说,“不过问题确实有意思。”
她从包里拿出自己的笔记本电脑。开机,输入密码,点开一个建模软件。
软件界面很复杂,满是参数和图表。
“我上周刚好在想类似的事。”沈清澜调出一个模型,“用优先级队列。分歧节点按时间戳排序,时间戳最近的先回滚。”
她在模型里调整了几个参数。屏幕上跳出模拟结果。
曲线平滑地收敛了。
陈默盯着屏幕。这个解法比他想的简单,但更优雅。
“为什么按时间戳?”他问。
“因为延迟。”沈清澜说,“后发生的分歧,往往意味着网络状况更差。先解决它,能减少连锁反应。”
有道理。陈默在心里记下。
“谢谢。”他说。
“不用谢。”沈清澜关掉软件,“我只是验证自己的想法。”
她重新看向陈默。“你这些思路,哪里来的?”
问题来了。陈默早有准备。
“自己琢磨的。”他说,“被裁之后,时间多了。看了很多论文,也试了很多错。”
“只看论文,写不出这种代码。”沈清澜点开陈默电脑上的伪代码文件,“这里有工程经验。你做过实际项目。”
“悦景湾就是实际项目。”
“不够。”沈清澜摇头,“这种设计思维,需要大型系统历练。你在智瞳时,只是个普通程序员。”
她的眼神变得锐利。
陈默迎上她的目光。“沈总监查过我?”
“查了。”沈清澜坦然道,“昨晚收到你第二封邮件后,我调了你在职时的项目记录。你参与的三个项目,都是边缘模块。核心架构,你没碰过。”
空气安静了几秒。背景音乐换成了钢琴曲,音符轻飘飘的。
“人是会成长的。”陈默说。
“成长太快,就有问题。”沈清澜身体前倾,压低声音,“陈默,你背后是不是有人?”
陈默心跳漏了一拍。他稳住表情。
“没有。”他说,“就我自己。”
“那你的技术跃进,怎么解释?”
“被逼出来的。”陈默笑了笑,有点苦,“失业,背锅,名声臭了。如果再不拼一把,这辈子就完了。”
他说的是真话。至少一半是真话。
沈清澜看着他。她的目光像探针,一点点往里钻。
陈默没躲。他让她看。
三十秒后,沈清澜靠回沙发。
“好。”她说,“我暂时信你。”
陈默松了口气。后背衬衫湿了一小块,贴在皮肤上,凉飕飕的。
“不过。”沈清澜接着说,“如果你想继续合作,我需要看到更多。”
“更多什么?”
“完整的原型。”沈清澜说,“不是三页纸,不是伪代码。是可运行的,能演示的系统。”
陈默手指收紧。“那需要时间。”
“多久?”
“两周。”陈默说,“但我需要一些资源。”
“什么资源?”
“测试数据。”陈默说,“真实的,大规模的边缘设备数据。悦景湾的样本太小了。”
沈清澜沉默。她转着钢笔,银光在指尖跳跃。
窗外有辆电动车驶过,铃声叮铃铃响。
“我可以给你。”沈清澜终于说,“但有两个条件。”
“你说。”
“一,所有数据只用于原型开发,不得外泄。二,原型完成后,我要先看。如果我觉得有价值,我们再谈下一步。”
“下一步是什么?”
“可能是投资,可能是技术合作,也可能是别的。”沈清澜说,“看你表现。”
陈默点头。“成交。”
沈清澜从帆布包里拿出一个u盘。黑色的,没有任何标识。
“这里面有十个小区的安防数据。”她说,“脱敏过的,但规模够大。设备类型、网络环境、故障记录,都有。”
陈默接过u盘。塑料壳冰凉,表面磨砂质感。
“怎么来的?”他问。
“你别管。”沈清澜说,“用就是了。”
她站起来,开始收拾东西。笔记本、钢笔、电脑,一样样装回帆布包。
“两周后,还是这里。”她说,“下午三点。”
“好。”
沈清澜拉上背包拉链。她看了陈默一眼,眼神复杂。
“陈默。”她说,“别让我失望。”
说完,她转身走向门口。风铃再次响起,叮当一声。
门合上。她的身影消失在玻璃墙外。
陈默坐在沙发上,没动。他握着那个u盘,握得很紧。
掌心渗出汗,塑料壳变得滑腻。
他打开笔记本电脑,插入u盘。系统弹窗,要求输入密码。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
密码是多少?
陈默试了几个:沈清澜名字拼音,生日,手机尾号。
都不对。
他停下手。仔细看u盘外壳。侧面有一行很小的刻字,几乎看不见。
“ra-0731”。
他输入这串字符。
密码正确。文件夹打开了。
里面是几十个数据文件,按日期排序,从去年一月到今年三月。每个文件都有几百兆。
陈默点开最近的一个。
数据流涌出来,密密麻麻的数字和标签。设备id、时间戳、温度、湿度、网络延迟、丢包率、故障代码……
真实世界的呼吸,就藏在这些数字里。
他看了十分钟。然后拔出u盘,关掉电脑。
咖啡已经凉透了。他端起杯子,把最后一点喝完。苦味在舌尖蔓延开,直抵喉咙。
他收拾好东西,走出星巴克。
外面天阴了。云层低低压着,空气潮湿,像要下雨。
陈默走回地铁站。脚步很快,背包在肩上一颠一颠。
进站,刷卡,下扶梯。
站台上人不多。他靠在柱子边,看着对面广告牌。广告牌上是智瞳科技的宣传语:“看见更安全的未来”。
字体很大,蓝底白字。
列车进站,带起的风掀起他的衣角。
他走上车,找到空位坐下。从背包里拿出那个u盘,又看了一遍。
“ra-0731”。
ra是什么?日期?还是别的代号?
他把u盘放回夹层。拉链拉上时,发出很轻的咔哒声。
列车启动。隧道壁上的灯连成光带,向后飞掠。
陈默闭上眼睛。
脑子里开始规划未来两周。数据导入、模型训练、原型优化、性能测试……
每一步都需要时间。每一步都不能错。
而沈清澜在等。等他的表现,等他的价值。
他睁开眼睛。车窗玻璃上,映出他自己的脸。
眼神里有种东西,像野火,烧得很静。
车到站了。他随着人流下车,上扶梯,出站。
外面开始下雨。雨点很小,细细密密,落在脸上像冰针。
他没跑。慢慢走回家。
楼道还是黑的。他摸黑上到四楼,开门。
屋里冷清。他脱下湿外套,挂起来。
走到电脑前,开机。屏幕亮起来,蓝光照亮房间一角。
他插入u盘,打开数据文件。
数字在屏幕上滚动,像瀑布。
陈默看了很久。直到窗外彻底黑透,雨声变大,噼里啪啦敲在玻璃上。
他保存文件,关掉电脑。
站起来时,腿有点麻。他走到窗边,看着外面。
雨夜里,城市灯光晕开,变成一片模糊的光斑。
远处有闪电,短暂地照亮云层。雷声随后滚来,闷闷的,像远山的喘息。
陈默站在黑暗里,听着雨声。
手里还握着那个u盘。塑料壳被焐热了,有了体温。
两周。
他转身走回书桌,重新打开电脑。
键盘敲击声再次响起。清脆,稳定,像心跳。
而在这座城市的另一处,沈清澜刚回到家。
她没开灯。摸黑走到书房,在椅子上坐下。
窗外同样是雨夜。她看着玻璃上滑落的雨痕,一动不动。
几分钟后,她拿出手机。
打开通讯录,找到那个没有存名字的号码。
打字。
“见了。给了数据。等两周后结果。”
发送。
等了一会儿,没回复。
她锁屏,把手机扔在桌上。
然后她打开台灯。暖黄的光晕开,照亮桌面上摊开的笔记本。
那一页上,写满了字。有陈默讲的技术要点,有她的批注,还有一些潦草的箭头和问号。
在最下面,她写了一行小字。
“ra数据给他了。风险在增加。你确定要继续?”
字迹很轻,几乎看不清。
她盯着这行字,看了很久。
然后她拿起钢笔,在“继续”两个字上,画了个圈。
笔尖压在纸上,墨迹晕开一点。
像一滴雨。