第21章 磨合与暗流(2/2)
“算法这东西,没经过大规模实战检验,都是吹。”
“创始人是灵瞳出来的?该不会是带着原公司的东西出来单干吧?”
“听说融资都困难,小打小闹。”
陈默一条条往下翻。
手指在触摸板上滑动,速度很均匀。他脸上没什么表情,只是眼睛眯了一下,很快又恢复正常。翻到第三页时,他停住了。
有条回复不一样。
是个老账号发的,头像是默认的灰色人影。“我试用过他们的deo,识别速度确实快,低光照表现也不错。技术好坏,上手跑跑就知道了。”
老账号没再回复。
陈默点开这个账号的主页,注册七年,发过几百条帖子,大部分是技术讨论。最新一条是昨天,在另一个板块问嵌入式设备的内存对齐问题。
他截了张图。
然后关掉社群,打开邮箱。收件箱里有封新邮件,是永安居的王主任发来的,询问项目周报什么时候发。
陈默回信:“今天下班前发您。”
回完,他听见敲键盘的声音。
周浩敲得很急,噼里啪啦的,像在跟键盘赌气。刘倩敲得很稳,嗒,嗒,嗒,间隔均匀,像秒针。两种声音混在一起,有点不协调,但又莫名地,在同一个空间里共存。
陈默站起来,走到白板前。
他拿起黑笔,画了个简单的架构图。然后敲了敲白板:“两位,停一下,同步个事。”
周浩抬起头,刘倩转过身。
“永安居项目,下周要加个新功能。”陈默在图上标出一个模块。“异常行为预警,基于轨迹分析。周浩,你负责算法部分,刘倩,你做测试用例和压力测试。”
他在旁边列出关键点。
识别规则,响应时间,报警精度。写完了,他转身:“有问题吗?”
周浩举手:“轨迹数据量很大,实时分析的话,边缘设备算力可能不够。”
“做分级处理。”陈默在图上又画了一层。“高置信度事件实时报,低置信度的缓存,后台异步分析。”
周浩盯着图看,眼睛亮起来。“明白了。”
刘倩开口:“测试数据需要标注,现有数据集里没有异常轨迹样本。”
“我来准备。”陈默说。“今天下班前给你。”
刘倩点点头,转回身,在笔记本上记了一笔。笔尖划过纸面,沙沙响。
陈默放下笔,马克笔没盖帽,笔尖的墨水慢慢渗出来,在白板上晕开一个小黑点。他看了看,没擦。
窗外的天空传来闷雷声。
很远,低沉的轰隆,像大地在翻身。几秒钟后,雨点砸下来,先是大颗的,啪嗒啪嗒打在玻璃上,然后连成一片,哗哗的响。
房间暗下来。
陈默按亮顶灯,白光落下来,把每个人的影子投在地上。周浩的影子在晃,他脚在桌子底下轻轻跺着。刘倩的影子一动不动,像剪影。
雨声很大,盖过了键盘声。
陈默走回座位,重新点开那个论坛帖子。浏览量还在涨,已经两千多了。他点开发帖人的资料,注册邮箱是乱码,IP地址显示是外省。
他查了查那个IP段。
是家数据中心,提供代理服务。他关掉页面,打开另一个工具,输入帖子的链接。工具开始分析传播路径,节点图慢慢展开。
大部分转发都在同一个技术圈子里。
但有几条,转到了投资人社群。陈默点开其中一条,发帖人是个认证投资人,粉丝不少。他转发了帖子,配文:“创业潮里泡沫多,尽调要细。”
投资人回复:“接触过,团队太单薄,没投。”
陈默盯着那条回复。
他记得这个投资人,姓李,戴眼镜,说话时喜欢用手指敲桌面。三个月前,沈清澜引荐过,聊了半小时,对方问了十几个问题,最后说再考虑。
后来就没消息了。
陈默截了图,保存。然后关掉所有页面,打开代码编辑器。他敲了几行,又删掉,手指悬在键盘上,半天没动。
雨小了一些。
从哗哗声变成淅淅沥沥,像有人在窗外低声说话。陈默站起来,走到窗边。玻璃上水流纵横,外面的世界扭曲变形,楼和树糊成一片。
他看了一会儿。
身后传来周浩的声音:“陈总,我改好了,您看看?”
陈默转身走回去。周浩把屏幕转过来,代码已经重构,用了try-with-resources,还加了层异常包装。注释写得很详细,每个步骤都解释了。
“可以。”陈默说。“给刘工看吧。”
周浩松了口气,笑起来。他抱起笔记本电脑,走到刘倩桌边,弯下腰:“刘工,您帮我看看?”
刘倩停下手里的活,接过电脑。
她看了大概一分钟,手指在触摸板上滑动,滚动代码。看到某处时,她停顿了一下,然后继续往下。看完,她把电脑递回去。
“可以了。”她说。
周浩接过电脑,笑得更开了。他回到自己座位,脚步轻快,帆布鞋在地板上摩擦出吱吱声。
刘倩转回身,继续看自己的屏幕。但陈默注意到,她嘴角很轻微地,向上弯了一下。很快,快得像错觉。
雨停了。
云层裂开一道缝,阳光漏下来,照在湿漉漉的草坪上,反射出细碎的光。水珠从屋檐滴落,嗒,嗒,嗒,节奏慢了下来。
陈默坐回座位。
他打开永安居的项目周报模板,开始填数据。识别率,响应时间,异常事件统计。数字一个个填进去,表格慢慢丰满起来。
填到一半时,手机震了。
沈清澜发来消息:“帖子热度在降,但有几个投资人在私下传。需要我找人打个招呼吗?”
陈默打字:“不用。”
“确定?”
“确定。”陈默想了想,又补了一句:“让子弹飞一会儿。”
沈清澜回了个“好”。
后面跟了个句号。陈默放下手机,继续填周报。最后一个数字填完,他检查了一遍,点击发送。邮件发送成功的提示音响起,很轻,叮一声。
他靠在椅背上。
房间里很安静,只有空调出风口的呼呼声,和偶尔的键盘敲击。周浩在哼歌,调子跑得厉害,但他自己没发觉。刘倩在翻文档,纸页哗啦哗啦响。
陈默闭上眼。
脑子里浮现出那张帖子,那条投资人的回复,还有刘倩看代码时专注的侧脸。这些画面交织在一起,像一团乱码,又像某种正在成形的图案。
他睁开眼。
窗外阳光强烈起来,照进房间,在地板上投出方形的光斑。光斑里有灰尘在舞,密密麻麻,数不清。
他站起来,走到饮水机边接水。
水桶空了,吸管发出咕噜咕噜的抽气声。他换上新桶,用力按下去,桶底撞到槽里,咚的一声。水重新流出来,他接了一杯,凉的。
他端着水杯,走到周浩旁边。
周浩正在调试那个内存分析工具,界面上的折线图实时跳动。有个瞬间,线条忽然陡升,周浩立刻点暂停,放大那个区间。
“找到了。”他小声说。
陈默弯腰看。是段第三方库的调用,文档里没写清楚释放顺序。周浩加了行日志,重新运行,这次线条平稳了。
“不错。”陈默说。
周浩抬头笑,虎牙露出来。“谢谢陈总。”
陈默点点头,走到刘倩那边。刘倩在看需求文档,手里拿着支红笔,在纸上画圈。已经画了七八个,每个圈旁边都写了批注。
字很小,但力道透到纸背。
陈默没打扰她,走回自己座位。他打开那个行业社群,又搜了一次“瞬瞳”。新帖子少了,但原来那个帖子还在首页,只是沉下去几位。
他点开发帖人的头像。
还是灰色默认像,资料空空如也。他盯着看了几秒,关掉。然后打开代码编辑器,开始写今天该写的模块。
键盘敲击声重新响起。
三种节奏混在一起,周浩的快,刘倩的稳,他自己的,不快不慢。雨后的风吹进来,带着泥土和青草的腥气,还有远处车辆驶过积水的哗啦声。
时间一点点流过去。
窗外的光移到了西边,把影子拉得很长。陈默写完一段代码,编译,测试通过。他看了眼时间,下午四点十分。
他站起来,拍了拍手。
周浩和刘倩都抬起头。
“今天先到这里。”陈默说。“周浩,你那个工具整合完,发个邮件同步。刘倩,测试用例明天上班前给我。”
两人点头。
周浩开始保存文件,关电脑,动作很快。刘倩不慌不忙,把文档整理好,笔记本合上,笔插回笔袋。她站起来,拎起公文包。
“明天见。”她说。
“明天见。”陈默说。
刘倩走出办公室,脚步声在走廊里渐渐远去。周浩背上包,走到门口,又回头:“陈总,那个异常轨迹的数据,我晚上自己先试着生成一些?”
“可以。”陈默点头。“别熬太晚。”
周浩咧嘴笑:“知道。”
他也走了,脚步声很轻快,咚咚咚跑下楼。陈默站在房间里,听着脚步声消失,然后是一片寂静。
他走到窗边。
夕阳把云层染成橘红色,像烧起来的棉絮。楼下有人骑车经过,铃铛叮铃铃响。草坪上的水珠还在反光,亮晶晶的,像撒了一把碎玻璃。
他看了一会儿。
然后回到桌前,关电脑,收拾东西。背包很轻,里面只有笔记本和充电器。他背上包,锁门,钥匙在锁孔里转了两圈,咔哒。
楼道灯还是坏的。
他摸着黑下楼,这次走得很慢。每一步都踩实了,才走下一步。走到一楼,住户的收音机又开了,在播评书,单田芳的嗓音沙哑:“话说那赵子龙,一杆银枪,杀了个七进七出……”
陈默推门出去。
夕阳正好照在脸上,暖洋洋的。他眯起眼,适应了一下光线,然后朝园区外走。保安大叔在抽烟,烟头红红的,在暮色里一闪一闪。
“下班啦?”大叔问。
“下班了。”陈默点头。
他走出园区,街道上人来人往。晚高峰刚开始,车流缓慢移动,尾灯连成红色的河。空气里有饭菜香,谁家在做红烧肉,酱油味很浓。
他走到公交站。
等车的人不少,都低着头看手机。屏幕的光映在脸上,蓝莹莹的。陈默也拿出手机,点开那个论坛帖子。
浏览量停在两千八百多。
最后一条回复是半小时前,还是那个老账号:“技术讨论就技术讨论,别扯别的。有本事拿代码出来比。”
陈默关掉手机,抬头看马路。公交车来了,庞大的车身挤进站台,刹车发出刺耳的吱嘎声。门打开,人群涌上去。
他等人都上完了,才最后一个踏上车。
投币,找位置。车厢里很挤,汗味和香水味混在一起。他抓住扶手,身体随着车子摇晃。窗外的街景向后流去,霓虹灯一盏盏亮起来。
他看见自己的影子映在玻璃上。
模糊的,晃动的,和窗外流动的光重叠在一起。像数据流里的一个节点,像无数条曲线中的一条,像这个城市里,又一个正在回家的普通人。
车子转过一个弯。
远处写字楼的玻璃幕墙反射着最后的夕阳,金灿灿的,晃眼。陈默移开视线,看向车厢前方。有个小孩在哭,妈妈低声哄着,声音很温柔。
他听着那声音。
车子晃晃悠悠,驶向暮色深处。路灯一盏盏亮起,在渐暗的天色里,连成一条发光的链子,延伸向看不见的尽头。