第15章 涟漪
五月第一周,帕洛阿尔托下了一场雨。
加州的雨从来下不久。来得快,走得也快,只够把大学路的梧桐叶洗得更绿一些。但这场雨过后,空气里的燥热被压下去了几天,傍晚的风里带了一丝难得的凉意。
就在这样一个傍晚,News Feed的封闭邀请测试启动了。
扎克伯格按下了发布按钮。没有发布会,没有媒体通稿,甚至没有在Facebook首页上挂任何公告。只有五千个用户在登录时收到了一条系统通知——不是“恭喜你被选中”,而是“你的朋友想让你提前看看这个”。
帕克坚持的措辞。陈舟同意的。扎克伯格没反对。
“这就上线了?”达斯汀盯着后台数据面板,声音里带着一种努力克制但还是压不住的紧张,“我现在心跳有点快。”
“你每次改完代码都心跳快。”陈舟说。
“这次不一样。这次是两万人会同时看到一个我写了三个月的功能。”
“你应该骄傲。”
“我是骄傲。但我也怕。”
玛利亚从角落里抬起头,看了达斯汀一眼。那个眼神很淡,但达斯汀捕捉到了。他转向她,像是在等她说点什么。
“服务器状态正常。”玛利亚说。
“……这是你的鼓励吗?”
“这是数据。”
达斯汀沉默了一秒,然后咧嘴笑了:“我接受。”
最初的反馈在测试启动后四十分钟开始涌进来。
第一个收到邀请码的用户叫杰西卡·亚当斯,伯克利大二学生,Facebook重度用户,日均使用时长排名全校前百分之三。她在收到邀请码之后做了三件事:先发了条动态说“我好像拿到了一个不得了的东西”,然后在照片标记功能里把三个朋友圈进了同一张派对合影,最后把手里三个邀请码分别发给了她的室友、她暗恋的学长、以及她那个在斯坦福读研的姐姐。
“看这个。”扎克伯格把笔记本电脑转向陈舟。
屏幕上是一条刚发布的动态,来自杰西卡的学长。他只写了一行字——“这个叫News Feed的东西,我刚才刷了四十分钟。我不知道它怎么做到的,但它让我觉得我必须把每一行都看完。”
“这就是我们要的效果。”陈舟说。
“我知道。但她暗恋的学长,可能不会跟她在一起。”
“你怎么知道?”
“因为他用News Feed刷了四十分钟还没想起给她回私信。”
陈舟愣了一下,然后笑了。扎克伯格也笑了——那种很淡的笑,藏在卫衣帽子的阴影里。
后台数据显示,首批激活率超过九成。每发出三个邀请码,平均有二点七个被激活。用户的日均使用时长在测试第一天就翻了将近一倍。达斯汀蹲在地板上刷新数据面板,每刷新一次就报一遍数字,报到第三次的时候陈舟让他闭嘴——不是嫌他烦,是怕他太兴奋又把代码改崩。
测试第三天,第一个意料之外的涟漪出现了。
陈舟早上推开办公室门的时候,玛利亚已经坐在角落里。她没有在看服务器日志,而是在看一个校内的网络论坛。
“你不上Facebook,在看论坛?”
“看这里。”玛利亚把屏幕转向他。
页面上是一个帖子,标题是:“有人拿到Facebook那个神秘的新功能吗?”发帖人是南加州大学的一个学生。帖子下面已经有将近两百条回复,大部分是在求邀请码,少数几个在炫耀自己已经拿到——发截图、分享体验、教别人怎么优先获取邀请资格。
但玛利亚指的不是这些。她指的是倒数第三条回复,发布于当天凌晨三点。
“我知道这个东西怎么运作的。它不是简单的时间排序。它知道你在乎谁。”
“这是好事。”陈舟说。
“你再看下面这一条。”
倒数第二条回复只有一句话:“知道你在乎谁,就等于知道你怕什么。”
陈舟看着那行字,沉默了。前世News Feed引发的隐私风暴,导火索正是这个——用户发现,这个看似无害的功能,正在用他们自己都没意识到的方式揭示他们的社交行为模式。谁偷偷看了谁的动态最多、谁在某个人的照片下面停留了最久、谁和谁之间的互动频率远超其他人。这些数据,News Feed全知道。
“这只是一个用户的猜测。”陈舟说。
“现在是一个。再过几天,会有更多人想到这一层。”玛利亚的目光从屏幕上移到他脸上,“你早就想到了,对吗?”
“我在设计隐私面板的时候就想到了。”
“那你为什么不阻止News Feed上线?”
“因为它的价值比它的风险大。我们做了隐私设置面板,让用户自己控制哪些动态被推送、哪些不被推送。这是前世——以前没有的经验。我们至少比没有这个面板的时候多了一层防线。”
玛利亚沉默了一瞬。她的手指轻轻扣了一下桌面,然后转回屏幕。
“那个面板,我用了。”
“你收到了邀请码?”
“达斯汀给我的。我在测试。”
“测试什么?”
“测试它能不能挡住我不想让人知道的事。”
“结果呢?”
“还行。但不是所有事都能用设置挡住的。”她没有等陈舟回答,重新戴上了耳机。
测试第五天,后台数据出现了一个新的峰值。
达斯汀把那个数字标红放大,投在扎克伯格那台最大的显示器上。News Feed的分享率在测试用户中突然飙升——不是缓慢增长,是一条几近垂直的短线。
“分享率涨成这样是什么触发的?”扎克伯格看着那条线。
“一个意外触发的。”帕克靠在沙发上,手里拿着今早打印出来的用户行为分析报告,“有人在News Feed里发了一条失恋日记。她写得很真诚,很赤裸。不是那种‘我好难过’的套路,是真的在说分手之后每一天是怎么熬过来的。”
“然后?”
“她以为只有拿到邀请码的朋友能看到。但她没意识到,她的朋友把她那条动态转发到了校报的讨论版。截图现在满天飞。现在所有人都在求码,想进News Feed看原帖。”
“她的隐私设置呢?”
“她设成了‘仅朋友可见’。但截图不归我们管。”
办公室里安静了一瞬。达斯汀的表情从兴奋变成了不安。扎克伯格没有说话,他把截图调出来看了很久。
“我们要做一件事。”他说。
“联系她道歉?”达斯汀问。
“那是个人层面的事。产品层面——”扎克伯格把屏幕转回去,“我们要在隐私面板里加一个选项:禁止他人截图。技术上能不能实现?”
“不能完全禁止。”玛利亚的声音从角落里飘过来,“截图是浏览器级别的行为,我们控制不了。但我们可以加一个水印——把截图者的用户名和日期透明叠加在内容上。至少让截图有迹可循。”
“这会增加服务器负载吗?”
“会。但可以承受。”
“做。”扎克伯格说。
陈舟站在白板前,在News Feed的流程图上加了一个新节点:截图水印。这个功能在前世的Facebook上直到很多年后才出现,而此刻,它因为一个失恋女生的日记、一个校报讨论版的转发、和玛利亚在角落里的一句话,提前诞生了。
周末傍晚,陈舟坐在门前的台阶上。雨早就停了,空气里的凉意还没散尽。大学路上的梧桐树在路灯下闪闪发亮,嫩绿的叶片被雨洗过之后有一种透亮的感觉。
玛利亚从机房里走出来,在他旁边的台阶上坐下。这是陈舟认识她以来,她第一次主动坐在他旁边。
“水印功能写好了。”她说。
“这么快?”
“截图溯源机制本来就有基础架构。只是没人在之前想到把它应用到隐私保护上。”
“你想到了。”
“是你让我想到的。”她说。
陈舟转头看她。她没有看他,只是抬头看着路灯下飘过的一小片梧桐绒毛。白色的,在光晕里打着转,慢慢落在湿漉漉的人行道上。
“失恋日记那个事,”她轻声说,“让我想起我以前丢过的那些数据。大学备份丢失的时候,最痛的不是数据本身,是我以为只有我自己能看到的东西,被一个我不认识的人删掉了。那个发日记的女孩,她以后可能会后悔今天写下的每一个字。但也可能——她会因为这条动态被人看到,而发现有些事说出来比藏起来更好。”
她站起来,拍了拍裤子上的灰。
“我不确定。我只是不想替她做这个决定。”
陈舟看着她推门走进老房子,那扇永远不锁的门在她身后轻轻合上。他转头看了一眼天边最后一抹橙色的余晖。
那部诺基亚1100在口袋里震动。他打开短信。是江晚秋。
“你开价那三个字,我记着呢。什么时候回杭州?”
他没有马上回复。他把手机放在膝盖上,看着远处汉堡店的灯亮起来,听着吉他声穿过暮色飘过来。今晚弹的是《Yesterday》,很慢,像是给这一整周的涟漪做一个安静的收尾。他想起上周在台阶上写的最后一段话——不是把所有事情都做对,而是把所有事情都做得比上一次更好。
他拿起手机,打了一个字。
“等。”
他没有按发送。他看着那一个字在诺基亚1100灰绿色的屏幕上闪烁了很久,光标一跳一跳。
他删掉了它。重新打了一行字。
“等News Feed公开测试结束。很快。”
然后他按下发送键,把手机合上。
台阶上还残留着玛利亚刚才留下的温度——很淡,比加州的夜风还淡。但那杯放在他桌角的咖啡,她第一次主动坐到台阶上,她说“是你让我想到的”,这些和她沉默的注视、难得的微笑一起,正在一点一点拼出一个更完整的玛利亚。

