夜宵是街角的炒饭摊。油烟味很重,锅铲刮着铁锅,刺啦刺啦响。
周小雨吃了半盒就饱了。她捧着一次性纸杯,小口喝热水。张浩把饭粒扒得干干净净,塑料饭盒边沿油汪汪的。
陈默吃得慢。米粒裹着酱油,咸得发苦。
回去的地铁已经停运。四个人在路边等网约车。夜里风更大了,吹得广告牌哗啦响。
张浩先到的车。他钻进后座,隔着车窗挥手。尾灯的红光拖成长线,拐过街角就没了。
苏晓和周小雨住得近,拼了一辆。周小雨上车前回头看了一眼,嘴唇动了动,没说出话。
陈默站在原地。外套拉链拉到顶,下巴缩进领口里。他摸出手机,屏幕光映在脸上,白惨惨的。
车来了。黑色轿车,轮毂沾着泥点。
他报出地址,靠在后座上闭眼。引擎声低沉,像远处打鼾。
到家已经十一点多。楼道灯坏了,他摸黑上到四楼。钥匙插进锁孔,转了三次才开。
屋里没开暖气。冷空气凝在皮肤上,起了一层鸡皮。
他踢掉鞋,走到电脑前。屏幕亮起来,蓝光刺眼。
系统界面弹出来。
光标停在推演按钮上。他手指悬在触摸板上,没动。
窗外有猫叫。尖细的,拖得很长。
陈默点开一个加密文档。里面列了七种接触沈清澜的方式。邮件、行业会议、技术论坛、共同联系人介绍、公开活动提问、社交媒体互动、偶然相遇。
每种后面都标了预估成功率。
他盯着“偶然相遇”那一行。备注里写着:“需精准设计场景与时机,风险高,但能降低对方戒心。”
沈清澜的戒心。他在智瞳时见过。她几乎不和项目组外的人说话,午餐总是独自坐在食堂角落,面前摆着一本书。
有次他端着餐盘经过,瞥见书名。《分布式系统架构》。书页边角卷了,用便签纸做了标记。
他当时想,这女人活得像台机器。
现在他需要接近这台机器。
陈默打开浏览器。搜索栏输入“ai技术沙龙 本地”。页面弹出几十条结果。他一条条点开,看时间,看地点,看主办方。
第三条引起他注意。“边缘计算与视觉智能前沿探讨”,主办方是市科技协会,地点在创新谷园区。
时间:本周六下午两点。
嘉宾名单里,第三个名字是沈清澜。头衔:智瞳科技技术总监。
陈默点开详情页。页面设计得很简陋,蓝底白字。沈清澜的名字后面附了简介,不到五十字,全是技术术语。
他截了图。图片存进加密文件夹。
然后他点开推演。
屏幕暗下去。几秒钟后,画面浮现。是沙龙会场,摆着几十把折叠椅,投影幕布垂在台上。人影晃动,但看不清脸。
模拟开始。
第一次推演:他提前到场,坐在第三排。沈清澜演讲结束后,他举手提问。问题关于算法优化。沈清澜回答得很简短,眼神没在他身上停留超过三秒。结束后她直接走向后台,被几个业内人士围住。他没机会单独接触。
第二次推演:他故意迟到,在茶歇时段进场。沈清澜独自站在点心桌边,端着一次性纸杯。他走过去,自我介绍。沈清澜点头,说了句“你好”,然后转身和刚过来的人交谈。
第三次推演:他在沙龙开始前就守在门口。沈清澜到场时,他假装偶遇,提到之前在智瞳见过。沈清澜皱眉,说“不记得了”,快步走进会场。
陈默停下来。他后背出了层薄汗,衬衫贴在皮肤上,凉飕飕的。
不对。方向错了。
沈清澜不是普通的技术人员。她警惕性高,讨厌社交套路,对目的性强的接近尤其敏感。
他需要更自然的方式。自然到像是真的偶遇。
陈默重新调整参数。他把“主动接触”改为“被动引发注意”。把“社交场景”权重降低,把“技术探讨”权重拉高。
第四次推演开始。
画面里,他坐在会场靠后的位置。沈清澜演讲时,他全程低头看手机。演讲结束,进入自由交流环节。人群分散成几堆,沈清澜走到茶歇区角落,拿了瓶矿泉水。
他这时才起身,走向另一侧的技术展示板。展示板上贴着几篇论文摘要。他停在一篇关于数据同步的论文前,看了很久。
然后他自言自语,声音不大,但刚好能让两米外的沈清澜听见。
“这个假设有问题。”他说。
沈清澜转过头。
推演画面在这里暂停。系统弹出一行提示:“关键节点:技术性质疑需精准、独到,且与对方研究领域相关。”
陈默深吸一口气。他打开沈清澜最近发表的论文列表。一共四篇,都是关于分布式视觉系统的数据一致性问题。
他快速浏览摘要。第三篇提到一种新型共识算法,但论文里承认算法在边缘节点延迟过高时可能失效。
陈默眼睛亮了。
他找到那个破绽。一个很细微的技术矛盾,只有深入钻研过的人才能发现。
他记下论文标题和页码。然后关掉推演界面。
窗外天蒙蒙亮。远处传来垃圾车倒斗的声音,哐当哐当。
陈默站起来,走到卫生间。镜子里的人眼窝深陷,胡茬冒出一层青黑。他用冷水泼了把脸,水珠顺着下巴滴进领口。
周六。还有三天。
他需要一套说得过去的行头,一个合理的参会理由,还有那个问题必须打磨到无可挑剔。
回到电脑前,他打开文档。手指敲下标题:“边缘场景下数据一致性的边界条件探讨”。
这是他的掩护。如果他被人问起为什么来沙龙,就说在研究这个课题。
文档写了三页。技术细节密密麻麻,引用了七篇论文,其中三篇是沈清澜的。
写完后天已经大亮。晨光从窗帘缝隙挤进来,在地板上切出一道金线。
陈默保存文档,发到自己邮箱。然后他打开购物网站,挑了件深灰色衬衫和黑色休闲裤。价格中等,不会太寒酸,也不会显得刻意。
下单,次日达。
做完这些,他躺到床上。被子有股潮味,但他累得没力气换。闭上眼睛,脑子里还在过推演画面。
沈清澜转头那个瞬间。眼神里先是疑惑,然后是专注。
他需要抓住那三秒钟。
醒来是下午一点。手机上有两条未读消息。张浩发的:“王主任那边时间定了,下周三下午。”苏晓发的:“产品卖点初稿发你邮箱了。”
陈默回复“收到”,爬起来热了碗剩粥。米粒糊在锅底,他刮了半天。
饭后他继续打磨问题。不仅要有破绽,还要有建设性。他设计了一个替代思路,用了两种经典算法的组合,能部分解决那个矛盾。
但不说全。留个钩子。
周三,衣服送到了。陈默试了试,衬衫肩线正好,裤子长度合适。他站在洗手间镜子前,把衬衫下摆塞进裤腰。
镜子里的人有点陌生。不像程序员,倒像个年轻学者。
周五晚上,他最后检查了一遍材料。打印好的论文摘要,笔记,还有一张沙龙电子门票的截图。手机电量满格,静音模式。
他定好周六中午的闹钟,关灯睡觉。
黑暗中,他听见自己的心跳。咚,咚,咚。
周六天气阴。云层低低压着,空气里有股土腥味。
陈默提前一小时出发。地铁挤满了周末出门的人,他站在车厢连接处,拉着吊环。旁边一对情侣在讨论看电影,女生笑声很尖。
他在创新谷站下车。出站口对着园区大门,玻璃幕墙反射着灰白的天。
沙龙在b栋三楼。陈默跟着指示牌走,楼梯铺着灰色地毯,踩上去没声音。
签到台摆在大厅门口。两个工作人员在核对名单。陈默报出名字,对方在平板电脑上划了一下,递给他一张贴纸。
贴纸印着“嘉宾”,下面是他的名字。陈默撕开背胶,贴在胸前。
会场比推演画面里大。能坐百来人,已经到了一半。前排有人架着摄像机,三脚架支开像只金属蜘蛛。
陈默扫视一圈。沈清澜还没到。
他在靠后的位置坐下。折叠椅的帆布面有点松,坐下去时陷了一下。他拿出打印的论文,摊在腿上。
人渐渐多起来。交谈声嗡嗡响,混着空调出风口的呼呼声。空气里有咖啡味,还有淡淡的香水味。
两点整,主持人上台。是个戴眼镜的中年男人,说话带点南方口音。他介绍沙龙主题,感谢主办方,然后请第一位嘉宾。
陈默没仔细听。他余光一直注意着入口。
两点二十,门被轻轻推开。
沈清澜走进来。她穿着白色衬衫,黑色西裤,外面套了件深蓝色针织开衫。头发扎成低马尾,脸上没化妆,皮肤在灯光下显得很白。
她脚步很快,直接走到第一排预留的座位。坐下,从包里拿出笔记本和笔。
陈默收回目光。他低头看论文,但字迹在眼前模糊成一片黑点。
第二位嘉宾演讲开始。是关于边缘计算硬件趋势的,幻灯片上满是图表和数据。陈默强迫自己听进去,手指在论文边缘无意识地划着。
沈清澜一直低着头记笔记。笔尖在纸面上沙沙移动,频率稳定。
三点,茶歇时间。主持人宣布休息二十分钟。人群骚动起来,椅子腿刮过地板,发出刺耳的摩擦声。
陈默坐着没动。他看见沈清澜合上笔记本,起身走向茶歇区。
点心桌摆在会场侧边。有水果切块,小蛋糕,还有咖啡和茶。沈清澜拿了个纸杯,接了点热水。没加茶叶。
然后她走到角落,背靠着墙,小口喝水。眼睛看着远处,没什么焦点。
人群在她周围流动,但没人靠近。她像块石头,水流自然分开。
陈默等了一分钟。他站起来,把论文卷成筒状握在手里。心脏跳得有点快,他深呼吸一次。
走向技术展示板。板子立在茶歇区另一边,贴了十几张a4纸。已经有几个人围在那儿,指着其中一张讨论。
陈默走过去,停在那篇关于数据同步的论文前。他低头看,手指点在摘要的某一行。
就是这里。论文假设网络延迟服从正态分布,但实际边缘场景下,延迟往往是长尾分布。
他清了清嗓子,声音不高,但足够清晰。
“这个假设有问题。”他说。
旁边讨论的人没注意。但两米外,沈清澜转过头。
陈默没看她。他继续对着论文说话,像是自言自语。
“长尾分布下,共识算法收敛时间会指数级增长。论文里给的边界条件太理想了。”
他停顿一下,似乎在思考。
“也许可以用异步检查点加状态机同步试试。牺牲一点实时性,换稳定性。”
说完这句,他才像是突然意识到旁边有人。他转头,目光和沈清澜对上。
沈清澜看着他。眼神很静,像深潭水。
陈默露出一点恰到好处的惊讶。他点了下头,算是打招呼。
沈清澜没回应。她走过来,停在展示板前。视线落在陈默刚才指的那一行。
“你看过实际数据?”她问。声音平淡,没什么起伏。
“看过一些。”陈默说,“我们小区在做智慧安防试点,边缘节点经常超时。延迟分布测出来,尾巴拖得很长。”
这是真话。悦景湾的数据他分析过。
沈清澜眼睛眯了一下。“你是做实施的?”
“算是。”陈默说,“小公司,什么都得做点。最近在琢磨怎么优化同步机制,碰巧看到这篇论文。”
他把卷着的论文展开,翻到做了标记的那一页。笔迹很密,有计算公式,有草图。
沈清澜扫了一眼。她的目光在那张草图上停留了两秒。
“你画的这个架构,”她说,“用了事件溯源?”
陈默心跳漏了一拍。他确实参考了事件溯源的思想,但草图里只画了数据流,没标注名字。
“你看出来了。”他说。
沈清澜终于抬眼看他。这次看得仔细些,从他眼睛看到胸前贴着的嘉宾标签。
“陈默。”她念出名字。
“是我。”陈默说,“你是沈总监吧?我听过你演讲。”
沈清澜没接这话。她指着草图上的一个模块。“这里,事件持久化的开销你算了没?”
“粗略算过。”“内存占用会增大约30,但恢复时间能缩短到秒级。对于安防报警场景,恢复速度比实时吞吐更重要。”
沈清澜没说话。她端起纸杯,喝了口水。水温可能高了,她嘴唇抿了一下。
“有意思。”她说。
就三个字。但陈默听见了。他手指微微收紧,论文边缘被捏出褶皱。
“不过异步检查点也有问题。”沈清澜接着说,“状态分歧怎么解决?你总不能每次都全量同步。”
问题来了。这正是陈默准备好的钩子。
“我想过一个办法。”他说,“用版本向量标记检查点,分歧发生时,只回滚到最近共同版本。但这里有个难点……”
他停住,像是突然意识到场合不对。
“抱歉,我是不是说太多了?”他笑了笑,有点局促,“一聊技术就收不住。”
沈清澜看着他。她的表情还是没什么变化,但眼神里那层冰似乎薄了点。
“什么难点?”她问。
陈默犹豫一下。“涉及具体的算法细节,可能得画图才说得清。而且是我瞎想的,不一定对。”
他看了眼手表。“沈总监应该还要准备演讲吧?不打扰你了。”
以退为进。推演里显示,沈清澜讨厌被过度纠缠。
果然,沈清澜点了点头。“我三点半上台。”
她转身要走,又停住。回头看了陈默一眼。
“你刚才说的思路,”她说,“可以写个简短的技术笔记。如果有兴趣,可以发我邮箱。”
陈默努力让表情保持平静。“好。我整理一下。”
沈清澜从口袋里拿出手机。解锁,点了几下,然后报出一串邮箱地址。不是智瞳的企业邮箱,是个人用的gail。
陈默赶紧用手机记下。手指在屏幕上戳得有点急。
“谢谢沈总监。”他说。
沈清澜没再说什么。她走回第一排座位,重新拿出笔记本。
陈默站在原地。茶歇区的人渐渐散去,主持人拿着话筒试音,喂喂两声。
他走回自己的座位。坐下时,腿有点软。
成功了。至少第一步成功了。
三点半,沈清澜上台。她走到讲台后,调整了一下话筒高度。幻灯片第一页出现,白底黑字,标题是“边缘视觉系统中的数据一致性挑战”。
她开始讲。语速平稳,每个技术点都解释得很清晰。但陈默注意到,她在讲到共识算法部分时,多说了两句关于延迟分布的话。
那是推演里没有的。是她临时加的。
陈默低头看自己的笔记。他在刚才那个难点旁边画了个星号。
演讲持续二十五分钟。提问环节,有人问了个关于带宽的问题。沈清澜回答得很详细,但陈默听出来,她语气里有一丝不易察觉的不耐烦。
那种“这问题太基础了”的不耐烦。
提问结束,沈清澜下台。这次她没回座位,直接走向出口。有个穿着西装的男人追上去,递名片。沈清澜接了,但脚步没停。
陈默看着她消失在门后。他等了一分钟,才收拾东西起身。
走出会场时,他看见沈清澜在走廊尽头等电梯。还是一个人。
电梯门开了。她走进去,转身按楼层。门缓缓合上,最后一线缝隙里,陈默看见她低头看手机。
屏幕光映在她脸上,蓝莹莹的。
陈默走楼梯下楼。脚步声在空荡的楼梯间回响,一层,两层,三层。
走出大楼,冷风扑面。他拉紧外套,朝地铁站走。
手机震了一下。他掏出来看,是张浩的消息:“咋样了?”
陈默打字:“接触上了。”
发送。他把手机塞回口袋,抬头看天。
云层裂开一道缝,阳光漏下来,在地面上投出窄窄的金色光带。
但光很快就没了。云又合拢,天空恢复灰白。
陈默走进地铁站。闸机吞掉车票,发出咔哒一声。
他随着人流往下走,耳边是杂乱的脚步声和广播提示音。空气里有地铁特有的铁锈味和灰尘味。
站台上,他靠在柱子边等车。玻璃幕墙映出他的影子,深灰色衬衫,黑色裤子,胸前贴着那张嘉宾贴纸。
他伸手把贴纸撕下来。背胶粘得有点牢,扯下来时发出细微的嘶啦声。
纸片在手里揉成一团。车来了,带起的风吹动他额前的头发。
他走上车,在角落里找到个空位。坐下,摊开手掌。
纸团皱巴巴的,上面他的名字已经看不清。
他把纸团塞进口袋。列车启动,加速,隧道壁上的灯连成流动的光带。
窗玻璃上,他看见自己的脸。眼窝还是深,但眼神里有种不一样的东西。
像猎人看见了猎物的踪迹。
他闭上眼。脑子里开始复盘刚才的每一秒。沈清澜转头的角度,她提问时的语气,她报邮箱地址时的停顿。
没有破绽。至少他没有露出破绽。
但系统推演里的警告还在。沈清澜有隐藏动机,合作风险评级是“中等偏高”。
他需要更多信息。而下次接触,就是那封技术笔记的邮件。
列车到站。陈默随着人流下车,上扶梯,出站。
外面天已经暗了。路灯还没亮,街道沉在青灰色的暮色里。
他走到常去的便利店,买了瓶水。拧开瓶盖时,塑料发出脆响。
仰头喝水。水很凉,滑过喉咙时激得他缩了下肩膀。
手机又震了。这次是沈清澜那个gail邮箱发来的自动回复:“邮件已收到。我会在三个工作日内查看。”
陈默盯着这行字。标准格式,没有称呼,没有落款。
他把手机收起来。继续往家走。
路过小区门口时,保安室的窗户开着。里面传来电视声音,是综艺节目的笑声,很夸张。
保安老王探头出来。“小陈,才回来啊?”
“嗯,参加了个活动。”陈默说。
“活动好啊,长见识。”老王笑呵呵的,“对了,你们那个安防系统最近挺稳的,没再误报了。”
“那就好。”
陈默走进小区。路灯这时亮了,一盏接一盏,黄光照在水泥路上。
他抬头看自己住的那栋楼。四楼窗户黑着,没开灯。
他想起办公室里那只蓝色涂鸦眼睛。此刻它应该也在黑暗里,静静望着空无一人的房间。
而风暴,还在路上。
但至少今天,他往前挪了一小步。
很小的一步。但够了。
他走进楼道,摸黑上楼梯。脚步声在狭窄空间里回响,孤单,但坚定。
钥匙插进锁孔。这次只转了一圈就开了。
他推门进去。屋里冷,但他没开暖气。
走到电脑前,开机。屏幕亮起来,蓝光照亮他的脸。
他打开邮箱,开始写那封技术笔记。
标题:“关于边缘场景下异步检查点与版本向量的一个思路”。
开头很正式,像学术交流。但写到关键处,他留了白。
“具体实现涉及一些未公开的算法细节,如果您有兴趣,我们可以约时间深入讨论。”
他停下打字。手指悬在键盘上。
约时间。下一步。
他深吸一口气,继续写结尾。感谢,署名,日期。
检查三遍,确认没有错字,没有技术错误。然后点击发送。
邮件嗖的一声传出去。屏幕显示“发送成功”。
陈默靠在椅背上。窗外完全黑了,玻璃映出电脑屏幕和他的影子。
他看见影子里的自己,嘴角微微扬起。
很浅的笑。但真实。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
然后他关掉邮箱,打开代码编辑器。还有活要干,还有系统要优化,还有团队要带。
风暴来之前,每一分钟都不能浪费。
键盘敲击声响起。清脆,稳定,像心跳。
而在城市的另一头,沈清澜刚回到家。她放下包,脱下开衫,走到厨房烧水。
水壶呜呜响起来。她靠在料理台边,拿出手机。
屏幕亮着,显示有一封新邮件。发件人:陈默。
她点开。快速浏览内容。看到那个留白处时,她手指停了一下。
然后她关掉邮件,没回复。
水烧开了。她倒进玻璃杯,捧着暖手。
窗外是她住的高层公寓夜景。万家灯火,连成一片光的海洋。
她看着那些光,眼神很空。
几秒后,她放下杯子,重新拿起手机。打开通讯录,找到一个没有存名字的号码。
她打字,很简短:“今天沙龙遇到个人,有点意思。叫陈默。”
发送。
等了一分钟,没回复。她锁屏,把手机扔在沙发上。
然后她端起水杯,慢慢喝。热水烫得舌尖发麻,但她没停。
直到喝完最后一口。
杯底贴在料理台台面上,轻轻一声嗒。
她转身走进书房。打开电脑,屏幕光同样照亮她的脸。
但她的眼神,和陈默的不同。
更冷,更深,像结冰的湖面。
而冰面下有什么,没人知道。
也许连她自己,也不太清楚。