Actions

Work Header

Rating:
Archive Warning:
Category:
Fandom:
Relationship:
Additional Tags:
Language:
中文-普通话 國語
Stats:
Published:
2020-06-10
Words:
19,202
Chapters:
1/1
Kudos:
8
Bookmarks:
2
Hits:
297

[中文翻译] DVD Commentary: SYN/ACK

Summary:

A Chinese Translation of DVD Commentary: SYN/ACK by thedeadparrot

Notes:

这是thedeadparrot《SYN/ACK》写的一篇DVD Commentary,包含了作者对原文中计算机科学相关知识的解释,以及作者本人的一些想法。在原文段落中插入的作者想法用加粗字体表示,作者使用了全大写字母的句子用下划线表示,某些名词的超链接指向的地址基本上是维基百科,用户名(都是作者的朋友)链接指向的地址都是Dreamwidth,有些单词作者用大量重复的字母表示强调(都在括号里标注出来了)。

有一些内容译者也不是特别了解(比如图形学相关),翻译如有错漏欢迎指正。
[中文翻译] SYN/ACK

DVD Commentary原文

Work Text:

OKAY,我正在写这篇评论,我一点也不会因此而抓狂的。当初发这个故事的时候我有一点恐慌,因为我不确定自己想不想发。并不是说我觉得它不好,而是觉得这个故事对我来说有点太私人化了。我不确定我是否想把它放到更广阔的世界里去。除了我是个喜欢研究计算机的阿宅这个原因之外,我不知道为什么我决定再分享更多想法,反正这个故事差不多就是表达我对计算机科学的爱。

 

所以,欢迎阅读DVD Commentary。我希望它是有启发性的、有趣的。我将试着在参考维基百科的前提下,尽量不让这篇评论变得过于乏味和技术化。如果你喜欢的话,你也可以阅读没有所有额外注释的原文

 

标题:SYN/ACK

Fandom:The Social Network

配对:Mark/Eduardo

分级:PG-13

字数:~7000

概要:在Eduardo和他之间有一些差异,Mark不认为他们能真正解决,也不认为他们能够克服。这是一个关于丢包(Packet Loss)的爱情故事。

注释:如果不是为了在鼓励之余还承担了beta的责任的zulu,我不确定我是否会把这个故事发出来。

 

让我们从标题/摘要/驱动主题开始,它指的是TCP,即传输控制协议(Transmission Control Protocol),事实上,大多数互联网都是在此基础上运行的。它在冗余(Redundancy)方面非常好,但在安全方面有瑕疵,但这是另一个观点,下次再谈。倒数第二部分,基本上是四段技术碎碎念,我想描述的是TCP确保数据保真的一些方法,希望我的描述方式能让人理解。提到的握手的三个步骤是SYN、SYN-ACK和ACK,简称SYN(chronize)和ACK(nowledge)。所以才有了这个标题。以及概要。我想表达的意思是,在这个故事的过程中,Mark和Eduardo就像在两个完全不同的平面上交谈,并且在途中丢失/丢弃了对方的数据包。

 

Mark一直很爱他的系统课,他爱学习操作系统是如何从里到外被构建的。他爱这一切,真的,爱着虚拟内存、调度器和文件系统是的,都是操作系统的重要组成部分。如果你想知道它们是什么,就去查查吧。它们和这个故事没有什么关系,除了它们存在和它们是操作系统的一部分这个事实之外。,但真正吸引他注意力的是网络协议栈。

 

从硬件层到应用层,有许多与它有关联的部分 其实真正有意思的是看各层是如何分开的。这张图很好地说明它们是什么(译注:原文的图片链接已经失效),以及什么样的协议出现在哪里。TCP很舒服地依偎在传输层中。通常情况下,它被认为与互联网协议(Internet Protocol)是成套的,所以你会看到TCP/IP在很多地方被提到,但它们是在协议栈的不同层次。,且所有这些部件必须一起合作,与硬件一起,与通过路由器、交换机和服务器组成的整个生态系统一起。Mark花了很多时间思考它是什么样子,他花了很多时间去建造种种事物,拼接互联网的各种构件,试图创造出一个能让所有人聚到一起的造物,让世界在同一时刻既变得更小又变得更大。他很年轻,但刚好能够记得互联网诞生之前的时代。他看到了互联网如何改变一切。

 

早期,当他们只有几百个用户时,Dustin出于无聊为整个网站做了一张图表我对于大家是否有意识到“图”的定义依然很偏执,我这里说的是一个数学化的、特定的图,而不是小学里让你画的那种图。图论在计算机科学中是个很重要的部分,因为它可以用来表示数据资料,而且有很多很多在计算机科学中非常基础的图论算法。二叉搜索树(Binary Search Tree)可能是一个最简单的例子。。在完成了渲染过程之后,图变得很大很复杂。从远处看,它就是一团乱麻,小小的蓝点代表着人,复杂的线条代表友谊关系。Mark用手指跟踪着图片上人与人之间的关联,就这样盯着它看了整整一小时。这几乎就像他能触摸到无形的社会纽带,正是这些纽带把人群联系在一起,整个世界被转化为具体的、可以被记录下来并储存在电脑里的东西。当你在遇到图论中的应用题时,有90%的情况都会附带半虚构的现实世界的例子。这些例子中大约有一半是社会关系。有时这些例子是关于如果你不小心将一组特定的结点组合在一起,社交尴尬将如何接踵而来。这些节点之间的关系显然非常糟糕。当Eduardo发现他盯着这张图的时候,坚持要拉他去吃饭,但那张thefacebook的图片,那张关系网,那个在Mark的帮助下被创造出来的东西,在他的脑海里徘徊了好几天。

 

 


 

“搞什么鬼,”当Eduardo发现Mark睡着了,口水都流到了键盘上,周围全是土豆片碎屑、金枪鱼罐头和半空的激浪汽水瓶时,他说:“这真是太恶心了。”

 

Eduardo的脸因为惊恐和难以置信而拧成一团,仿佛看见了Mark决定把小猫咪献祭给桌上的电脑之神,或类似的诡异事件。Mark坐了起来,揉了揉眼睛,又嗅了一下自己的衬衫,想知道它是不是太难闻,那样的话今天就不能再穿了。结果似乎还可以。他检查了金枪鱼罐头和激浪汽水瓶,确认里面没有发霉。至少他没看见任何霉菌。“滚开,Wardo。”Mark说。尽管Eduardo把空闲时间都花在了一群程序员身上,但每当Mark表现得像个程序员时,Eduardo还是会感到震惊。如果Eduardo认为Mark现在浑身发臭,那么Eduardo就绝对不会踏进任何一个计算机实验室,哪怕是在实验室里的味道没平时那么糟糕的日子里。事实:计算机专业的人总体都很不修边幅。可能我没有嗅觉是一件好事,因为我听过关于我们计算机实验室的椅子有多臭的抱怨。在这一幕中,我只想直接描写我认为很多人都忽略了的恶心之处。如果Mark没有(正确地)吃饭,而且根本没有洗澡,有他在周围会让你很难受。我是认真的。嗯,除非你是Eduardo。

 

Eduardo翻了个白眼。他穿着他最厚的一件羊毛大衣,这可能意味着外面的天气很冷,也可能意味着还是四十多华氏度。四十华氏度对于Mark来说仍然属于“穿人字拖且不穿袜子”的天气。我通常会等到气温达到50多华氏度(译注:大约10摄氏度)的时候,才会开始穿阿迪达斯的人字拖。但话说回来,Mark穿人字拖还愿意穿袜子。我觉得那是在骗人。Mark窗外的天空是浅灰色,从门缝底下溜进来的空气既暖和又带着厚重的湿气。“我真的难以相信你会得到一份允许你经常变得这么恶心的工作。”Eduardo说道。

 

光标在Mark先前仍有意识时写的最后一行代码旁闪烁着,那是一个Javascript库里的某个片段,作用是整合所有目前分散在网站各个部分的Javascript代码。Javascript(不要和Java混淆,因为它们完全没有关系)是对互联网很重要的语言之一。它真的很强大,它可以让网页上出现更多的动态内容。它运行在浏览器中,而不是服务器中,现在Chrome、Firefox和Opera都在为了做出最快的Javascript引擎而竞争。啊,这场比赛难道不是很盛大吗?Mark上下滚动了一下屏幕,确保自己还记得项目进行到了哪里。正当他准备再次开始时,他听到床的弹簧在吱吱作响。Eduardo已经坐到了Mark的床上,面前摊开着关于投资和博弈论的课本 我想我喜欢写与Eduardo有关联的一些技术性内容,就像我喜欢写Mark的一样,就放在Mark的枕头上,打开的笔记本里写满了整齐的方程式。Mark对Eduardo扬起一边的眉毛。

 

“噢,快去写你的代码吧。”Eduardo边说着边试图找到一个舒适的姿势,他把双腿盘起来,笔记本稳稳地平衡在膝盖上。“还有,你知道你总得找时间去洗个澡,对吧?”他说这话的时候在笑,然而他的表情中还有一些Mark看不明白的东西,且那些东西的出现似乎并不是因为这么多天来Mark已经变得油亮的头发,而是其他事物。

 

Mark转回身面对着电脑(Mark turns back to his computer),将手指放到Home键上,立刻重新潜心研究起代码来,他想把一些Dustin写出的潦草的函数重构成真正有意义的代码。“重构(Refactor)”在计算机科学中的意思是"重新组织所有的东西,但是保持它以前的工作方式"。一旦你的代码变得难以处理时,这真的很重要。这种时候Mark通常会戴上降噪耳机,放一些电子音乐,有节奏感的音乐,以保持思维的稳定计算机专业的学生在编码时似乎喜欢(a)电子音乐(b)重金属(c)嘻哈音乐。我怀疑我只是需要更大的样本量。。但今天他的房间里很安静,并且Eduardo也在这里。Eduardo的额头因为思考而拧起来,Eduardo的手指在大腿上敲打着不规律的节奏,唇角隐约的微笑迟迟没有褪去。Mark转头回到他的代码里(Mark turns back to his code)。

 

他们就这样度过了几个小时,然后Eduardo要去开个会或上课什么的。他把邮差包斜着挂在肩膀上,愉快地挥了挥手便离开了。Mark则继续工作。几分钟后,他需要戴上耳机。

 

 


 

自从Mark在十二岁用Atari BASIC写出第一个“Hello, world!”时,人们就一直告诉他,他将成为下一个Bill Gates。Zuckerberg学会的第一门语言真的是Atari BASIC,大多数人写的第一个程序就是如何输出"Hello, world!"这句话,现在这几乎成了一个内部笑话(inside joke)(译注:指的是只有在某个特定群体中的人能够理解的笑话)。如果你不相信,下次去书店时买一本编程/编程语言的书吧。让我知道他们让你写的第一个程序是什么。他从来不觉得这是什么大事,这只是人们在不理解Mark所做的事情时会说的话。懂电脑的人成千上万,但他们并不都成为了百万富翁。Bill Gates彻底改变了人们使用电脑的方式,但那多半是因为运气。是因为在正确的时间,正确的地点,做出了聪明的行为。我真诚地相信,如果没有Bill Gates出来改变人们使用电脑的方式,也会出现别的人。

 

Mark已经成功地在正确的时间、正确的地点做出了聪明的行为。但他依然不在乎那些认为他会成为下一个Bill Gates的人说了什么。

 

人们认为成为Bill Gates是为了钱,但并不是;从来都不是。我觉得这部电影不太知道如何调和“不在乎钱的Mark”和“背叛了别人的Mark”这两件事,但我认为当你从(a)知识分子的自视甚高(intellectual snobbery)(译注:可以定义为对自己的知识和成就感到自豪的人,这类人倾向于评判他人以提高自己的自尊心。)(b)对他所做的事情真正专一的热情  这两种角度来思考时,就容易理解了。Mark想成为一切领域的佼佼者,为了达到目标,他愿意碾过任何阻碍他的人。就算不会得到任何金钱,就算程序员不是一个值得尊敬的职业,Mark也会继续编程。Mark永远不会忘记在编程的过程中由内而外的快感,敲代码,敲代码,理解如何把它们组合到一起才能发挥作用,理解如何写出漂亮的程序。偶尔,他也会想,如果他找了其他朝九晚五的工作,做一些愚蠢又无聊、被企业里的各种废话包围之类的事情,会是什么样子,他知道即使那样,周末他还是会在电脑前,为Linux内核、MySQL或Apache写补丁,或者做自己的事,迫切地想找回编程中的快乐。当然,所有列出的东西都是开源项目,愿意接受任何人提交的补丁(基本上是代码修复)。你的补丁是否会导致网络骂战则是完全不同的问题。

 

Armie Hammer在《社交网络》的DVD Commentary中说,他不敢相信Mark想买一个带Apache和MySQL的Linux盒子只需要两百多美元,当时我都有点笑傻了。老兄,除了硬件之外,其他所有东西都是免费的。

 

 


 

“Dijkstra?”Dustin对着天空大喊,他的声音在车流中传递着,“我几乎要不认识你啦!”这指的是著名的计算机科学家Edsger Dijkstra,他最出名的创造是一种最短路径算法。我喜欢这个笑话,因为它结束得如此之快,大多数人可能都不会去细想。但计算机专业的人可能会因此会心一笑。

 

Eduardo被Dustin逗得大笑,即使他可能没有理解其中的笑点,他的头往后仰,眼睛很亮。Eduardo擅长这类事情,微笑,感到快乐。Mark就不擅长那种特殊的狗屁。他一直很讨厌拍全家福,因为他讨厌假装开心,几乎就像他讨厌必须站在原地一动不动只因为别人要求他这么做一样。Eduardo朝Mark投去一个眼神,一个更小的、更隐秘的微笑,Mark不得不回以一个几乎看不出来的笑容,即使Mark不明白为什么要这么做。现在是仲春时节,剑桥街头残留的雪已经融化了一半,这令他感到厌恶,所有棕色和黄色都混在白色中,堆成一个个畸形的块状物。所有驶过它们的汽车都沾满了盐渍。空气中弥漫着冰冷、湿润、极其令人不快的味道,就像把泥土和腐烂的蔬菜混合在一起。风在建筑物之间呼啸而过。当外面开始转暖的时候,波士顿/剑桥完全是这样的。非常恶心。 Mark把连帽衫的领口拽得更紧了一些,他觉得很荒谬,竟然有人会享受季节性的天气。我和Mark偶尔会对所有事情有完全相反的看法,而我喜欢这一点。季节性天气就是其中之一。你会把我的季节性天气从我死掉的、冰冷的手里撬出来。

 

Dustin在他们穿过马萨诸塞大道时不小心踩到了一滩半融化的雪,水浸湿了他的鞋袜和牛仔裤底边。“靠,”他说,“我们肯定要去加州,对吧,Mark?”他做了个鬼脸,开始微微一瘸一拐地走路,好像这样就能让他的裤子干得更快似的。

 

“是啊,”Mark说。硅谷仍然是程序员、年轻的创业公司和成熟企业的圣地。Mark知道他们需要去那里。那里有全天的编程狂欢和天使投资人,还有阳光灿烂的天气,以及Mark可能想要的一切。Sean也会在那里。“这就是现在的计划。”

 

Eduardo的笑容开始变得僵硬而不自在,Mark之前看到的那种光亮在他的脸上黯淡了下来。Mark不知道这是否是他被期待讲一些关于纳什均衡或帕累托最优的笑话好让Eduardo高兴起来的暗示,但当Mark试着变得幽默时,Eduardo从未真正笑过。纳什均衡是一个基本的博弈论概念。帕累托最优是一个更普遍的经济学概念。它们都是以人名命名的,当你大声说出来的时候,听起来很有趣。这几乎是我选择把它们放在文中的唯一标准。我不太确定Mark是否真的理解它们中的任何一个。 Eduardo说:“好好享受吧,你们不在的时候我会在海岸这边玩得很开心。”他看起来不像是真心地说出这些话,但他还是把胳膊搭在Dustin的肩膀上,同时拍了拍Mark的后背,结实的一拍,让Mark觉得胸口很沉。

 

“你可以——”Mark开始说。尽管Mark非常需要一个只有Facebook的夏天,让他能深陷在PHP里,唯有酒精和游泳池能分散他的注意力,但在那里没有Eduardo支持着他们似乎就很奇怪。Eduardo不会真正参与他们的编程讨论,但他会总是忽隐忽现,目光越过Chris的肩膀偷看发生了什么事,或者烦扰Dustin去做任何Christy想要添加到网站上的白痴功能,或者问Mark他们是否需要更多的服务器。这一段技术性内容可能是最容易理解的。趁它还在,好好享受吧。

 

没有他在那里就不一样了。

 

“我不能,”Eduardo说。他正搓着双手,因为他忘了戴手套,同时盯着街对面的CVS,而不是和Mark的眼睛对视。“你知道,实习,我的父亲......”

 

“对,”Mark说,“当然。”我喜欢Mark的这句话,它在背后有意隐藏了太多内容,表面上却根本没表达任何事。难怪Eduardo不明白你在说什么,老兄。

 

 


 

在Eduardo和他之间有一些差异,Mark不认为他们能真正解决,也不认为他们能够克服。Eduardo知道如何靠一个漂亮的算法来转移成吨的金钱,但他永远不会明白仅凭手指头建立整个世界——整个该死的星系——是什么感觉。

 

好吧,这一节算是超级装逼的一节,但我甚至都不在意,因为我完全可以理解Mark的怨念。去你妈的,这是我建造的,你永远不会真正理解这意味着什么。

 

当我开始写一个新的故事时,我有时只是坐下来写一些场景,然后在以后的某个时间点想出它们能如何组成一个故事,这就是为什么它们有时会显得如此脱节,就好像以一种奇怪的方式被组合到一起。这一部分最初写在下面的Eduardo那部分之后。Eduardo的部分和上面Mark的部分其实本来是同一个部分,但是后来我把它们分开了,然后我决定这一段将作为它们之间一个很好的过渡节。

 

 


 

在中央广场附近某人的房子里有一个派对,是Chris的朋友的朋友之类的人举办的。这个公寓的位置换了好几次。可能Central太有大城市气氛了,Kendall没有我描述的那种房子,Davis/Porter又太偏僻。我觉得Central是最好的折中方案。Mark不知道所有细节,但这并不重要,因为当他们踏进屋里时,人们还是会欢呼,就像大家都是好朋友一样。这栋房子看起来和新英格兰其他所有校外的房子没什么不同,又老又大,木制,内部被分割成一间间小公寓,提供给大学学生。这都是真的。我曾经住在这种房子里。我的一些朋友还住在那里。几盏灯把房间照成了柔和的橘色,音乐——一些收音机里经常播放的嘻哈音乐,但Mark并不能准确地认出是哪一首——音量大到让Mark的耳膜不舒服地抽搐。有人把一个装满液体的红色塑料杯塞到Mark手里,闻起来像啤酒,于是他一口气把那液体喝了下去,只是因为他能够这么做。

 

“你在做什么?”Eduardo喊道。他又露出那种震惊的表情了,瞪着眼睛,张开嘴巴,一脸难以置信。

 

Mark只是耸了耸肩,因为他不想在噪音中大喊大叫。他们是来找乐子的,而Mark只是提前开始了。Chris坚持让他们参加派对之前不要喝酒,现在他们需要弥补那些没有酒精陪伴的时间。merisunshine36表示,这里写到派对前喝酒(pre-game)(译注:指在外出参加派对或体育活动之前,几个朋友聚在一起喝酒的社交聚会,目的是为了在接下来的派对里能玩得更开心)让她很惊喜,因为大家不怎么写到这个。嗯,我想我自己也是在同人里看到的,然后想:“嘿,对啊!人们会这样做。”然后就加进了我自己的同人里。Mark的混蛋程度完全足够让他做出在派对之前狂喝酒的行为。

 

Eduardo翻了个白眼。

 

当他们向主客厅走去时,派对正如火如荼地进行着,这恰恰说明有时候迟到确实是有好处的。Mark并不认识周围大多数人,不过倒是认出了几个计算机专业的学生。其中的大部分女生既不够性感也不够放荡,Mark懒得搭理她们,而且很多人可能还在为Facemash那件事耿耿于怀。Mark,你这个厌女的大混蛋。有一件事总是让我发笑,那就是电影里系统课的那个场景里,女生太太太太太多了(there were waaaaaay too many women),那不可能是真正的系统课。不过我喜欢在Mark的生活中加入计算机宅女角色。电影里缺少和她们的任何互动,真是让人痛心。无所谓。Mark不需要笨拙地去搭讪女孩也能玩得很开心。他可以自己喝一些免费的酒作为替代。

 

派对开始一个小时后,Mark已经喝的酩酊大醉,足以让他在厨房里和Angela Chen就使用PHP和Perl开发网站的优劣比较进行激烈的——可能也有点口齿不清的——讨论。当然她真的是搞错了所有事情,当Mark正在解释CGI脚本的典型权限方案是多么没用时,Eduardo走到Mark身后,搂住了Mark的脖子。Perl是第一种真正常用的Web开发语言,它的工作方式是通过CGI脚本。CGI脚本有一些奇怪的权限问题,我算是还能记住一部分,但我记住的内容不够让我向其他人解释。在Mark创办Facebook的时候,PHP是很新、很酷的Web语言,因为它是专门为Web开发设计的,当时它在这个领域大受欢迎。它现在仍然非常流行,但现在也还流行嘲笑PHP是一种设计得非常糟糕的语言。如今,Facebook显然还在用它来做前端,但他们的后端,嗯,现在要复杂得多。

 

“你应该开心才对。”Eduardo大声地说,考虑到Mark的耳朵就在那里,Eduardo的声音比他需要的更大。Eduardo搂着他的力道还没有达到Mark需要担心气管的程度,但已经很接近了。Angela对Mark明显的不适露出了一个幸灾乐祸的笑。天啊,他太讨厌她了。如果说在这所该死的大学里有一个人在与计算机有关的事情上比Mark更傲慢,那一定是她。特别是她至少有80%的时间是对的,这就更让Mark恼火了。哈哈哈哈,我真有点希望我能费点心写出完整的对话,因为我100%相信,在这个时候它已经完全演变成了"你错了""不,你错了"。和计算机宅们争论关于技术的事,拥有一种特定程度的傲慢是必须的。就像在争论音乐话题一样。要求就是你必须对对方的论点完全不屑一顾,对自己的论点100%自信。

 

Eduardo眼下一定是彻底醉了,因为他喝醉了就会这样,搂着别人亲热,毛手毛脚的。他的呼吸贴着Mark的耳朵,很温暖。Mark拉开他们的距离,直到他自己刚好可以转过身来,刚好可以看到Eduardo醉醺醺的微笑。Mark说:“我很开心。”我有点喜欢这一幕里新的~*暗示*~,一旦你发现从前发生过什么,这个场景就更有感觉了。你知道的,另一次Eduardo喝醉的时候。

 

“不是你那种Zuckerberg式开心(Not you-fun),”Eduardo说,“是那种真正人类式开心(real-people-fun)。”他拍了拍Mark的头,Mark则推开他的手。Eduardo喝醉后总是会变得更粗鲁一些。Dustin喜欢开玩笑说他变得更像Mark。Mark喜欢告诉Dustin闭上你那该死的嘴。Eduardo在喝醉时也不会理解暗示,所以他向前倾,过度补偿了Mark在他们之间拉开的距离,最后他倒在Mark的肩膀上。他的嘴唇与Mark的连帽衫布料相贴。他还在傻笑。Mark伸手搂住他的后背,好让他保持直立。

 

Mark懒得解释为什么他对“真正人类式开心(real-people-fun)”不感兴趣,因为Eduardo通常在没喝醉的时候就能很好地理解这个概念。没必要重复观点。Mark今晚已经学到了与喝醉的人争论的教训。Angela已经消失了,可能又到客厅里去了。Mark并没有太在意,只是现在他不再有机会把她的每一个论点都碾成灰。

 

Eduardo朝着Angela空出的位置眨了几下眼睛,他的额头因为思考而皱了起来。“哦,对不起,”他说,“我不是——”

 

Mark轻蔑地哼了一声,打断了Eduardo的道歉。“就算有钱赚我也不会和她上床。”他说。他用一种半引领、半拖拽的方式带着Eduardo走出厨房,走向客厅里一个类似于沙发座位的东西。Eduardo比Mark高,Mark的肩膀感到很沉,并且Mark整天坐在电脑前,背部问题已经够多了。他们找到的座位其实只适合一个人坐,但Mark和Eduardo是朋友,而且他们都挺瘦的,所以他们两人都坐了下来。在这段中,我从描写Mark的感受(feeeeeeeelings)中得到了很多乐趣。它们无处不在,但Mark没有能力处理,所以它们甚至没能在他的内心独白中出现。但它们绝对无处不在。

 

当他们坐好之后,Eduardo对Mark笑了笑,他还是那么坦率和开心,酒精让他放松下来。他们的身体从肩膀到臀部都在贴在一起。是的,Mark那明显的渴望这就出现了。

 

 


 

一开始,Mark去找Eduardo是因为Eduardo是个从出生起就被训练如何处理金钱这种狗屎东西的人。Mark从遇见Eduardo的第一天起就知道了,当时Eduardo整理了一下他那件昂贵又高档的衬衫的袖口,提到他要专攻经济学。很明显,即便在当时,Eduardo基本上就已经被人类已知的所有MBA项目预录取了。Mark确信沃顿商学院已经完成了红毯的除尘工作。写论文和申请表格这种事情对于Eduardo这样的人来说只是一种形式,甚至Eduardo自己都知道这一点。所以,我觉得观众们并没有真正接触到很多这方面的内容。比如,Eduardo的未来在其他角色眼中是怎样的。他的目标很清楚,每个人都能看到。他就是那种人。老实说, 你会对一个天天穿西装去上课的经济专业学生有什么印象呢?是的,我也这么认为。

 

不过,Mark之所以喜欢他,之所以信任他,是因为很明显的——与Mark认识的大多数经济学专业的学生不同——Eduardo并没有愚蠢到搞不懂计算机科学的程度。他懂得算法,他对解决问题也很有一套,他把Stata、SAS、SPSS和R语言当早餐吃 我提到的所有东西,都是有专用编程语言的统计软件。鉴于我们从电影中了解到的情况,Eduardo几乎必须对其中的至少一种非常了解,因为他需要用它们来做那种让他获得30万美元的预测分析。总的来说,Mark写的代码要比Eduardo写的复杂得多,但Eduardo要解决的数学问题却要难得多。他本可以学会做Mark所做的事,如果他愿意的话。

 

但这从来都不可能,因为Eduardo绝不会自降身份去做工程师这种平淡的、痛苦的、中产阶级的工作。在大学里学工科,绝对有一种很中产阶级的感觉。我对Mark的坚定印象是,Mark属于中上层阶级,他从来没有真正在意过提高社会地位这种事,反而更在意人们因为他出身优渥而看不起他。我真的不认为终极俱乐部的剧情,尤其是Mark与金钱的关系,在Mark Zuckerberg的生活背景下是符合逻辑的,但不管怎样。这是电影宇宙。我们就按照电影里的设定来吧。他总是被期望走得更高更远。他应该被凤凰俱乐部邀请加入,他应该进商学院,他应该让他的父亲感到骄傲。

 

但在这个过程中的某个时刻,他决定和几个程序员做朋友,和Mark做朋友,Mark觉得自己从来都不明白为什么。他认为自己永远也不会明白。我不完全认为在现实生活中真的是这样。他们都是AEPi的成员,而兄弟会让你参与大量的、强迫性的团建活动。但文中的设定更好地符合我的~*主题*~。所以再一次,就按照这个设定来吧。

 

 


 

Eduardo在去纽约实习之前来过一次Palo Alto。那时Mark、Dustin和Chris以及他们的实习生还在搬进房子的过程中,这个夏天已经像是会永远持续下去,像是会持续一辈子。Mark从那时起就已经爱上了加州,爱上了干燥又晴朗的日子,爱上了宽阔的空间,爱上了他可以想盯着电脑屏幕多久就多久而不需要去上课。相比之下,波士顿又小又潮湿,而且太冷了(或者夏天太热)。波士顿是古老的,它从骨子里就带着那份古老,那种古老感染着城市里的一切。而加州,硅谷,是现在整个该死的世界上最适合建立一个创业公司的地方。Mark知道这一点。Mark能在通宵编程狂欢过后的黎明曙光里感受到这一点。每当他们在酒吧或俱乐部遇到更多在Google、Sun或者Amazon工作的人,并且那些人理解Mark在做的事,认为它很有趣、很酷时,Mark都会意识到这一点。我讨厌加州。但我可以明白它对Mark的吸引力。算是吧。我试过了。波士顿绝对是我更喜欢的城市。我想如果我不得不住在Palo Alto的话,我会哭的。

 

当Eduardo要来的时候,屋子里仍然堆满了拆到一半的箱子。其中大部分位于厨房,因为没有人使用它,除非有人需要用微波炉加热Hot Pockets或剩下的外卖。他们还清理出了一条通往冰箱的路,因为冰箱是放啤酒的地方。虽然Chris有时会用他们全新的咖啡机煮咖啡,但咖啡机已经被搬到了放着电脑的客厅,反正苏打水和红牛是更方便的咖啡因来源。呵,咖啡真的效率低下,朋友。摄取它之前你还得先把它做出来。我真的认识一个程序员,他喜欢谈论他买了一瓶2升的Mountain Dew,并且在一个晚上的编程过程中喝完的事。所以,是的。电影至少说对了这部分。

 

Mark从肯尼迪机场接到了因为时差而眼睛通红的Eduardo。此时Mark一半的思绪还在代码上(他需要对一些输入进行消毒,还有一些令人讨厌的边缘情况,他认为他刚刚写的SQL查询可能会返回比他们所需要的更多的数据,而且——) 这一部分是我试图捕捉当我真正进入编程的最佳状态时的感觉,我想这就是电影中“being wired in”的意思(译注:这个词组出现在砸电脑场景,Eduardo怒气冲冲地喊着Mark的名字并朝Mark走去,Sean对Eduardo说“He's wired in.”)。你脑袋里有一个清单,列出了所有你需要修复的东西,你真的想赶紧回去做完它们。对输入进行消毒与安全有关,因为有时候人们会试图把代码放到文本框中,如果你不够小心,可能会意外导致该代码在你的系统上运行,并且还拥有所有的权限,这不是一个好主意。相关的XKCD(译注:XKCD是一个内容与数学、科学、计算机有关的搞笑漫画。)。边缘案例是指当你的数据以非典型形式出现时,不能用一般规则来处理。SQL是你用来和数据库对话的语言。有时你不小心用一个查询指令拉出了比你需要的更多的数据,这意味着你给数据库带来的压力比你需要的要大。,所以当Eduardo描述他在纽约的公寓时,Mark并没有很注意听。

 

“公寓的一侧有一面砖墙,上面有非常棒的景色。”Eudardo说,“你有时间一定要过来看看。”他说这话时,就好像Mark可以被拖离Facebook一天以上,好像Mark会允许自己离开Facebook一天以上。

 

“听起来不错。”Mark说。他将公司的车(为了这个夏天从Dustin的父母那里借来的)开下高速公路。

 

“有一次,我在地铁上,这个流浪汉走过来对我说——”Eduardo的声音渐渐变小。他盯着Mark的脸。Mark想知道他在那里看到了什么。Eduardo说:“你根本没有在听我说话,对吗?”

 

“Christy怎么样了?”Mark问道,因为Eduardo问了一个愚蠢的问题,他不想回答。

 

Eduardo耸了耸肩。“Christy很好。”Mark永远不会去纽约,除了没有任何空闲时间这个原因之外,在Eduardo和Christy身边做电灯泡是Mark觉得最没意思的事。这并不是说Eduardo和Christy的关系还处于只是亲亲脸蛋的阶段——他们不是。而是Mark一直都不太明白该如何和她说话,甚至比面对大多数女孩,甚至比面对Eduardo的大多数女友时还要不明白。她总是带着一种隐隐的怨恨看着Mark,好像Mark是她宏大浪漫中的某个插足者。大多数时候Mark只想对她笑笑然后叫她滚蛋。这一整段交流就是证明我真的无法像Aaron Sorkin那样描写对话。而我不在乎这一点。

 

当他们把车停在车道上时,睡眼惺忪的Chris出来迎接了他们。看到他,Mark意识到自己也有二十个小时没睡了,困意的重量开始压在Mark身上。夜晚凉爽的空气拂过Mark的脸。他们面前的草坪上有晨露。Mark关上身后的车门,走进屋里。在那之后的某个时刻,他设法爬上床睡着了,但他并不记得是怎么发生的。

 

直到后来,当他再次醒来的时候,他才意识到,他从来没有提出要帮助Eduardo安顿下来。Mark知道Eduardo应该已经安顿好了,因为Eduardo是他的朋友。另一方面,Eduardo也不是白痴,他可能自己就能找到沙发。现在是下午——Mark的手表显示下午一点——阳光透过窗户,伴随着水花飞溅的声音。当Mark从房间往外看时,他可以看到楼下的游泳池,他看见Eduardo正在游泳。Eduardo一定还在东岸时间。Mark和其他人自从搬到这里之后,就变成了基本在夜间活动的人。我在大学里认识的很多计算机专业的人都是夜猫子。有些人现在依旧是。

 

Mark走出去时,Eduardo正在从泳池里出来。水从他的脸上、头发上滴下。他穿的游泳裤紧紧贴在他的大腿上。他在阳光下显得更加黝黑、光彩照人、闪闪发亮。Mark在来加州的第一个星期被严重晒伤之后,就变黑了大概一个色号。从那时起他决定无论如何他更喜欢待在室内。当Mark走过来时,Eduardo对Mark笑了笑,他仍然因为运动而脸色红润,显得很高兴。Mark用脚把拖鞋脱掉,坐到池边,让双脚悬在水里。外面的天气很热,太阳还高高地挂在天空中,但泳池的水很凉、很舒服,让人放松。Eduardo用毛巾擦了擦脸。我真的很努力地删去了所有Mark对Eduardo的感情的具体描述,就像Mark并没有真正的能力让自己去感受,尤其是在他们互动的场景中。但是,当Mark自己描述Eduardo的时候,感情就有点泄露出来了,因为Mark此时完全是在表达自己的渴望。

 

“这地方很棒,不是吗?”Mark问道。

 

Eduardo把头偏向一边。“是的,我相信这个夏天一定会很棒。”

 

Mark感到一个微笑正在牵动着他的嘴唇。“一定会他妈的棒极了。”他说。在这个时刻,这已经是事实了。“你应该留下来。”Mark可以从这里看到未来,从他们此时此刻的位置。未来延伸到无限远处,延伸到眼睛能看到的最远的地方。Mark希望Eduardo也能看到这些。他不确定Eduardo是否能做到。

 

Eduardo摇了摇头。“对不起,我不能。”Mark并不期待他的回答会有不同。毕竟,Eduardo的头脑、心脏和昼夜节律显然已经回到了纽约。

 

Mark眨了眨眼,转过头去。“是啊。”他只说了这一个词,因为他能听到所有Eduardo没有说出口的事。朋友,Mark很擅长为别人编造动机,对吧?我喜欢他迅速下结论的速度。这让这个故事写起来容易多了,因为我不需要和他出色的观察能力作对。

 

 


 

Mark一点儿也不后悔,真的不后悔。是的,他后悔事情发展到这个地步,但他不后悔他最后做出的选择。甚至不后悔一开始的选择。他不后悔去找Eduardo要启动资金,也不后悔稀释Eduardo的股份。

 

Eduardo曾经把Facebook看成一个学生项目,一个通往更好前景的垫脚石,是他那该死的简历上的一行字,是他需要去咨询公司、投资银行、或者随便哪个他正在实习的地方面试时的一个很好的扯淡故事。天啊,我喜欢那些关于你工作过的项目的面试问题。我可以想象一些面试官问Eduardo "那么,告诉我你和别人合作时发生的冲突 ,以及你是如何解决的。"Eduardo说:"好吧,他没有去机场接我,所以我先是冻结了银行账户,然后他耍了个阴招把我赶出了公司,然后我起诉他,索赔6亿美金。我想这些天我们可能还在互相交流。" 是啊,我可以看到事情发展得过于完美了。他以为Facebook会在几年内就被淡忘,就像CourseMatch和Facemash。他以为把Mark当作朋友而不是商业伙伴更有意义,这在给Mark举办生日派对或者对Mark的头发品头论足时都没问题,但当他在Facebook的财务上搞得一团糟时就不行了。

 

这真的很讽刺,Eduardo总是比Mark更擅长人际交往,但他从来都不了解Facebook,不了解使用Facebook的人,也不了解为什么Mark如此在乎它。当然,Mark 并没有在这里自我投射什么的。Eduardo是要被培养成“贵族(old money)”的人,那样的人只懂得如何取悦头发灰白的中层管理,如何控制股票交易所的资金流向。Eduardo从来没有费心去了解任何关于互联网的事,或关于硅谷的事,或者关于创业公司和程序员的事,因为他认为除了Mark、Dustin和Chris之外,他永远不会和那类人打交道。操,不,Mark一点都不后悔自己的所作所为。一个新型科技公司的氛围肯定和Eduardo实习的那些公司有很大的不同。而且我觉得一些硬核的计算机科学家,肯定会对投行和其他金融工作者有一定的反感。在金融行业有很多科技工作者,肯定有很多程序员只是想要赚钱,但这样被认为有点出卖自己的意味。只是有一点点(juuuuust a little)。

 

(但他确实有点后悔,只有一点点,因为Eduardo最后一天在Facebook办公室里的表情,背叛、愤怒和恐惧写在他的唇边、额头的皱纹和眼睛的深褐色里。Mark后悔自己在可以阻止Sean的时候没有阻止他。Mark后悔最后不得不在Facebook和友谊以及其他一切之间做出选择。)

 

(Mark也有点后悔在Eduardo砸毁他的笔记本电脑之前没有提交任何代码,啊,终于出现了版本控制。也许我是个混蛋,我等着有人写一篇关于Facebook的危机的文章,且这些危机本来可以通过正确使用Subversion轻松解决(译注:Subversion是一个开源的版本控制系统)(比如,他们有一个实习生不小心导致网站崩溃,他们需要做的就是通过还原他所有的修改或其他东西,将其从测试分支中恢复)。虽然Facebook没有使用某种版本控制系统的可能性为零。在任何时候,Facebook没有使用版本控制系统的可能性都是零,即使在早期基本上只有Mark是唯一一个程序员的时候。但事后重写代码很容易,他可能确实罪有应得,只有一点点。)

 

 


 

庭外取证的最后一天,Mark设法在午休时把Eduardo堵在了卫生间里,尽管他们的律师都竭力让他们不要碰到一起。这是一栋崭新的大楼,盥洗室里的一切都在闪闪发亮,到处都是白色的瓷砖和不锈钢。Mark进来的时候,Eduardo正在洗脸,擦拭着他的额头、脖子和眼袋。所以我觉得这个故事至少需要一场冲突场景。这就是冲突场景。

 

“你他妈的在这里干什么,Mark?”Eduardo带着怒气低声说道,他看着Mark映在镜子里的眼睛。他的言语里没有尽可能多的厌恶。他听起来和Mark一样疲惫。从体型上看,他们和大学时代相比没有多少变化。Eduardo看起来和Mark记忆中一模一样。也许头发有些不同。Mark永远也记不清Eduardo头发的各种变化。

 

“我想知道你为什么这么做。”Mark说。他把双手塞进口袋里,因为不知道还能放在哪儿。这栋楼很大,有很多的员工,但没有一个员工在卫生间里,这里的空间给人感觉大到只能容纳两个人。Mark说话时,声音在卫生间里回荡。他觉得如果他们在这里,在没有调解的情况下私自进行交谈,他们的律师一定会很生气。并不是说Mark会在意律师生不生气。也并不是说Mark讨厌律师本身。律师非常有用。只是Mark对律师的评价只比那些对去了布朗这种三流大学自鸣得意的人、那些相信vim比emacs更优秀的人、以及那些还在使用COBOL的人略高一点。好吧,我承认,我在这里加了这个律师笑话只是因为我想往故事里多加点内部笑话。常春藤联盟内部之间有很多的怨气、嘲讽和隐隐的仇恨。但也有一定程度的团结。虽然哈佛大学总喜欢认为他们很牛逼(they're hot shit),因为他们是哈佛。

 

在过于在意文本编辑器的那群程序员里,emacs和vi(m)之间的战争是认真的。电影中明确地把Mark描绘成一个肮脏、恶心的emacs使用者,所以我在这里保留了这一点。(如果这还不够明显的话,我用的是vim)。

 

COBOL是那些古老的编程语言之一,它永远停留在那种简直可以当作遗产的代码中。我试图回忆它是否是那种如果你不够小心就会使1等于2的语言,但我不确定。也许那是FORTRAN。

 

Eduardo对Mark的话嗤之以鼻。“我以为这很明显了,考虑到我们刚刚花了一整天的时间来讨论这个话题。”他把肥皂挤到手上,在水龙头下快速地搓动。他的脸上是Mark无法完全解析的混乱情绪。他拒绝与Mark的眼睛对视。

 

“是的,”Mark说,“但我不认为只是因为Facebook。”他不像他认识的一些书呆子那样会因为焦躁而产生奇怪的举止,但他此时想跺一跺脚或跳一跳,或者把手指卷进他眼下并没有背着的背包的带子里。

 

Eduardo关上水龙头,给自己扯下了超出需要的纸巾数量。他的表情已经变成了某种愤怒、冷硬而尖锐的东西。“你为什么这么说?”Eduardo问道。他沉稳地瞪着Mark,眼睛眨也不眨一下。Eduardo在大学期间对Mark的愤怒往往来得快去得也快,一阵快速的爆发之后几乎立刻就消失了。但现在,他们的每一次谈话都有一种低调、不变的底色。Mark不知道它是否会消失。我想Mark此时还是希望能达成一部分和解的,但他不会承认。

 

Mark耸耸肩。“你刚才说的,关于你是我唯一的——”

 

Eduardo的脸因惊讶而扭曲,眼睛张得大大的,嘴边是一个平淡的痛苦表情。Mark知道,他已经成功地把这件事搞砸了,但他不知道是什么原因导致的。他甚至没来得及说出一句完整的话。“反正你也听不懂。”Eduardo说,“滚开,好吗?”他推开Mark,走出卫生间,并重重地把门摔上。

 

朋友,我喜欢他们几乎每一次的谈话中,所说的任何话只有5%的意思能传达给对方。

 

 


 

有趣的是,Eduardo说“那顿晚餐后,他就拥有了Mark”的方式,就好像Mark当时就决定要搞垮Eduardo,要把Eduardo踢出公司一样。

 

Sean在那顿晚餐中并没有拥有Mark,但他明白Facebook是什么,以及Facebook能成为什么。他说:“你不想用广告毁了它,因为广告不酷。”他还说:“你甚至不知道它是什么,它能变得多大,它能走多远。”

 

然后Mark想——整周以来第一次——是的,就是这样。是的。

 

我觉得Sean吸引Mark的地方在于Sean对Mark的了解。为了配合整个故事里明显的隐喻,Sean和Mark在同一个平面上,他们说的是同一种语言,Mark也因为这种理解而兴奋。

 

 


 

大一学年过半的时候,Mark发现他在喝醉时编程水平会高很多。脑袋里的模糊感让他更容易与代码产生共鸣,就像他在拆掉一堵他与代码之间的墙。所有其他令人分心的事情似乎都消失了。相关的XKCD

 

“不,”Eduardo在整个Facemash事件发生前一周说道,就在Mark向他解释了这个理论之后。成功地把这个场景和电影里的时间线联系了起来,耶!“要我说,这就是胡说八道,这不是人类能做到的。”他摇头大笑,就像Mark讲了一个他听过的最有趣的笑话。

 

Mark翻了个白眼。“我的成绩可不这么说。”

 

但Eduardo还是不相信,这就是他们最终在Mark的房间里一起喝醉的原因,当时Mark只有一个晚上——八个小时,真的——为他的图形学课写一个光线跟踪程序。光线跟踪是图形学中非常基本的概念之一,指通过跟踪每一条会照射到你眼球上的"光线"来正确模拟光线在场景中的移动方式。你可能会跟随着一条光线从几个物体上反弹的轨迹,来获得适当的反射和环境色溢出。

 

“真的,”Eduardo说。他的胳膊搭在Mark的肩膀上,当他的目光越过Mark的脑袋,眯着眼睛看Mark的代码时,他整个人向前压在了Mark的后背上。“看着真的很神奇,就像在看油漆干燥的过程或牛群吃草之类的。而且你的打字速度真快,我很惊讶你居然没有腕管综合征。你确定这能编译吗?”我觉得Eduardo评价Mark的编程这个想法非常好玩。我同样觉得好玩的是,没有人对观众提到Mark因为长期敲代码而患上某种腕管综合征的可能性。说真的,这种病在整个行业中非常普遍,特别在某些没有户外运动爱好的程序员中。

 

编译 (Compile)代码 是指将用文本写成的高级代码翻译成低级机器码,并变成计算机可以读取的二进制文件的过程。有时这需要一段时间。相关的XKCD。并不是所有的程序都需要编译后才能运行。直译语言是指通过直译器来运行的语言,它们基本上可以立即运行,而代价是失去了编译器能带来的优化,以及解释器带来的不良后果。判断一个任务要使用编译器还是直译器的经验法则,是看它需要多快完成。图形学太吃算力了(这就是为什么我们的显卡如此强大,人们都能用它们来做蛋白质折叠),所以Mark可能是用C或C++来写他的光线跟踪程序。

 

Mark狠狠地咬了一口他的Twizzler,从啤酒瓶里喝了一口酒——由Eduardo慷慨捐赠的Harpoon IPA。Harpoon有点像波士顿的一种特产。我不知道,但我决定把它写进故事里, 尽管我认为Mark可能更常喝别的东西。味道混得不太对,但也是吸引力的一部分。“你不是有一些计量经济学习题还是其他什么要做吗?”

 

“不,我更乐意站在这里看这个。这次不会是彩色像素的随机分布吧?因为你上次测试的时候,可真的让人失望了。”当你把交点探测(intersection detection)写得很糟糕,或者在Graphics类(译注:“类”是计算机科学中的一种概念,但鉴于解释起来需要花上一点时间、而且可能看起来过于学术、以及不理解也完全不会对阅读正文造成影响,所以没兴趣的读者可以忽略)中把x轴和y轴搞得一团糟时,很容易产生一些非常非常奇怪的图像。

 

“闭上你的嘴。”Mark说。

 

Mark又花了一个小时才把最简单的测试图像正常渲染出来,然后又花了半个小时才弄明白为什么有些图像的反光如此糟糕。这时Eduardo正在Mark的床上打盹,但他在Mark上交完作业并用力合上笔记本之后醒来了。已经很晚了,晚到Mark试图弄清楚离天亮还有几个小时,以及他是否想要看日出。他看过的次数够多了,日出已经失去了吸引力。

 

“做完了吗?”Eduardo问道,他的声音还有些含糊不清。他揉了揉眼睛,这么做让他看起来也就五岁左右。一个醉醺醺的五岁孩子,但依旧是个五岁的孩子。

 

“做完了。”Mark说。他伸了伸胳膊,让肩膀舒展开来。

 

Eduardo笑了,他从迷你冰箱里抓出一瓶啤酒,借助Mark桌子的边缘打开瓶盖。“恭喜。”他说,把啤酒递过去。

 

Mark一言不发地接受了这瓶酒,让自己今晚第一次瘫在椅子上。Eduardo为自己开了一瓶新的啤酒,深深地喝了一口,他的头向后仰,Mark可以看到他脖子的线条,看到他在吞咽时喉结的移动。“真是太美了。”Eduardo说,因为他喝醉时在大脑和嘴巴之间没有任何真正的过滤器。他抓住Mark的手臂捏了一下。他的手指有些凉,刚刚接触过酒瓶的那部分手掌有点湿。

 

“你连最后的渲染图都没看到。”Mark说。朋友,他们对于任何事真的都永远不能在同一个层面对话。这一整个部分都是偶然想出来的,因为我随意选了图形学作为Mark正在上的课,然后就有了这个沟通不畅的场景,我有点爱上这种状况了。就像Eduardo爱你一样,Mark。 不需要任何刻意的努力,他的眼皮就开始耷拉下来。既然他又回到了自己的脑袋而不是代码里,酒精就开始宣告它的存在了。他考虑把Eduardo推到一边,这样自己就可以在早上上课之前睡上一觉。Eduardo可能不会介意,因为他有他自己愚蠢的早课要上,而且Mark十分确定Eduardo还没有到恐同的程度,不会因为和Mark睡在一张床上而被吓坏。Mark对此也不是特别忌讳。

 

“我没必要看到。”Eduardo说。他躺到Mark的床上,伸展开四肢,他的啤酒瓶被忘在了Mark的桌子上。Mark用手肘把他往里推了推,也挤到床上,拉回来一部分毯子,准备睡觉。

 

Eduardo吻了他。他们的身体以笨拙的角度弯曲着,以便这张床能容纳两个躺着的人,Eduardo的嘴里有睡眠和酒精的味道,Eduardo的手指缠绕在Mark的头发里。Mark回吻了Eduardo,这很容易,太容易了,他只是简单地陷入了这种亲吻的感觉。这不是一个粗暴的吻,也不是一个特别疯狂的吻。是慵懒的、舒适的、美好的,他们都太累了,太醉了,不能再保持清醒了。Mark并不介意。Mark喜欢这样。Mark喜欢Eduardo嘴唇的柔软,喜欢Eduardo皮肤的味道,喜欢Eduardo一只手的掌心贴着Mark的脸颊。

 

某个时刻Mark睡着了,鼻子贴着Eduardo的脖子,嘴唇贴着Eduardo的衣领。Zulu说,在大多数情况下,这个故事的时间线都是向前移动的,除了这部分。不过我觉得我需要这么写。这一场景算是Mark在前几部分中从未思考过的“房间里的大象”(译注:房间里的大象是一个英语谚语的直译,用来比喻某件虽然明显但却被视而不见的事),就好像他想不起来一样。当我在脑袋里安排这个故事的时候,这段情节需要在这里。

 

第二天早上Mark带着令人非常难受的宿醉醒来,他感到头痛、耳鸣。他也感到孤独。如果不是他的床上还有Eduardo的味道,如果不是Mark的桌子上有一小堆空啤酒瓶,Mark会觉得昨晚的一切是一个非常奇怪的梦。Eduardo走了也没什么大不了的,因为他要上课,他可能还会回宿舍洗个澡,取几本书。Mark明白这一点。Mark在独自一人熬过一个艰难的早晨。

 

他们照常相约吃午饭,在昨晚过后,Eduardo一点变化也没有。他没有笑得更多,也没有碰Mark的手或亲吻Mark的脸颊,也没有做任何类似的怪事。Mark想他一定是不记得了,或者他有点后悔了,或者其他随便什么原因。当然,Mark也可以这样做。Mark可以装作什么都没发生过。这样很有效。这样很好。哈哈哈,当然是这样,Mark。你一直都这样告诉自己。 当Eduardo问他是否要参加下一次AEP i派对时,他只是耸了耸肩。这时Dustin出现了,用他们的下一个操作系统作业来骚扰Mark。

 

Dustin离开后,他们向哈佛园走去。秋天来了,校园里的树叶也开始变化。不是立刻,而是分阶段的变化。黄色的叶子总是先出现。我曾犹豫过要不要把关于颜色的描写去掉,因为Zuck是红绿色盲,但我太喜欢这段描写了,所以决定就这么写。 今天阳光很好,天空中没有一丝云彩,空气干燥而寒冷。Eduardo脚步笨拙地挪动着,这感觉不对。Eduardo很少像Mark那样笨拙,尤其是在Mark身边的时候。“听着,”Eduardo说,“当时——对不起。当时很晚了,我们也喝多了,我知道你还在和Erica约会——”他显得很尴尬,一抹红晕蹿到了他的脖子上,仿佛醉酒时和Mark亲热是一件非常尴尬的事。

 

“没关系。”Mark说。因为确实没关系。他摆弄着背包的带子。

 

Eduardo露出了一个笑容——笑容,真的——然后说:“好的,那很好。”我肯定明白我在这里想用Eduardo的对话来表达什么,但我听到了其他人不同的解读,我喜欢其中的歧义。Eduardo的信号并没有清晰地表达出来,而Mark无论如何也读不懂。就像这个故事里的其他场景一样,他们直接走向了灾难。

 

就这样,Mark生命中最近的十二个小时被删除,重新格式化,擦除得一干二净。

我在这里作弊了,我很惊讶没有人因此向我扔东西。现在大多数的重新格式化实际上并没有把硬盘擦干净。它只是为将来某一天的重写做准备。但我喜欢这种写法的节奏感。而且也许你可以认为,他指的真的是低级别的格式化。

 

 


 

关于网络的运作原理,也就是让整个互联网运行的那种网络,是系统中建立了冗余,以确保信息能到达它需要去的地方。数据包上有序列号,这样数据就可以正确地重新组合,每个数据包都带有校验和,以验证它在传输过程中没有被破坏,并对未确认的(unacknowledged)数据包进行重传,确保所有的数据包都能收到。最开始时为了建立连接,在涉及到任何实际数据之前,会进行三次握手,来确认对方正在听。TCP的所有功能! 额外的冗余实际上使得TCP对于VoIP(如Skype)(译注:VoIP,指基于IP的语音传输,是一种语音通话技术)这样的东西并不理想,因为需要更长的时间来确认你已经发送了所有的数据之类的。有时你只需要优先考虑速度而不是准确性。有另一种协议叫做UDP,它只是将数据发送过去并希望你能收到。Skype使用的是一种TCP/UDP混合协议,我不太了解。

 

Mark有时会想象发出第一次握手是什么样子,虽然这样想有点夸张,但那一定是信仰的飞跃(a leap of faith),一定是信任的感觉,一定是希望能够收到确认的回复。对于第一个数据包,你无法保证它能被接收或理解,甚至不能保证它能到达目的地。

 

但它还是被发送了。这里,我的朋友们,这就是契诃夫的枪上膛的声音(译注:契诃夫的枪是一种文学的手法,最初来源于契诃夫说:“假如不打算开火,就别让一支上膛的来福枪出现。”)。虽然我觉得这样有点古怪,特别是对Mark来说,但我喜欢想象他对这种事情确实产生了一种惊奇、喜悦的感觉。我不认为他没有这种感受的话还能做到他所做的事。

 

Mark所描述的是一个SYN包,但我不想在故事的前面说出这一点,主要是因为这样一来,标题的意思对大家来说就太明显了。

 

Mark认为人与人之间的联系也是这样,脆弱而容易失败,依赖于你为了确保它们正常工作而付出的努力。人际关系也没有任何保证。你只是不停地说,不停地说,希望被听到。这又回到了上一部分,为了被理解而不得不重传数据包的情况。噢,Mark。我觉得他不是一个没有感情的人,但他认为自己已经超越了感情并依此来行动。只是所有的感情其实都还在,他不知道如何处理这些感情,所以这些感情都会以代码的形式出现,或者他会说一些很愚蠢的话,或者他会伤害他的朋友们。这就是Mark身上那种隐隐约约的机器人特质的来源。我真的不相信Mark不懂感情。我认为Mark完全,100%,理解感情。他只是个混蛋,认为既然他能凌驾于一切之上,其他人也应该做到。当然,这是不对的,但也是一种在Mark这样的书呆子中非常普遍的态度。

 

 


 

夜深了,Mark正在翻看Facebook,只是浏览朋友和朋友的朋友,以及朋友的朋友的朋友。现在的Facebook已经大到无法用一张图表示出来了,但他还是喜欢看它在他眼前展开,甚至比用户数字所能浓缩的更庞大,更复杂,更美丽。Aw,有时候我真的很喜欢我笔下的Mark。然后我就会怀疑我试着在他的脑袋里活了多长时间,这是否会影响我的判断力。

 

办公室里只剩下他一个人,平静又安宁。Mark喜欢在工作的时候和其他程序员待在一起,喜欢他们机器的嗡嗡声,喜欢他们争论的声音,但他也喜欢现在这样。他喜欢一个人待在自己的脑子里,没有任何东西试图分散他的注意力。没有诉讼,没有会议,没有签名,没有关于系统架构的争论。这是他觉得最像他自己的时刻。我挺喜欢听关于计算机科学的争论,只是想听听大家对所有事情的不同看法,听听大家关心事物的方式。争论中包含的教育意义是惊人的。

 

他并不是有意这么做,但Mark在翻看中途某个地方偶然发现了Eduardo的Facebook页面。他知道Eduardo一直保留着它,知道那既是为了挽回面子,也是因为Eduardo真的想继续留在Facebook上。资料是小心翼翼的空白,没有任何有趣或相关的细节,没有任何形式的真实的社会背景。Mark见过那些活在Facebook上的人的资料。Eduardo不是其中之一。

 

他的资料照片是一张全身职业照,Eduardo对着镜头微笑,身上穿着时尚的商务西装。他看起来很完美,很整洁,很开心,更像Eduardo,而不是取证时坐在Mark对面的那个紧张、愤怒的人。奇怪的是,他们仍然是Facebook好友,这正好说明Eduardo鲜少使用它。

 

这几乎足够——事实上已经足够——让Mark点击“发送消息”按钮。这就是Mark会冒出的那种心血来潮的想法之一,就像Facemash或制作HarvardConnection的一个版本,但是做出来的东西要比那个版本更好或是在第一时间接受Peter Thiel的提议。希望他不是过于年轻又愚蠢,以至于不能明白这一次他在做什么。我想是的,这一幕中的Mark更年长了,也更聪明了,是一个足够成熟的人,他已经明白自己哪里搞砸了,即使他不知道如何解决。

 

抱歉。他在留言框里打道。没有标题。

 

他还没来得及说服自己别这么做,就已经按下了“发送”。他不知道Eduardo的账号上是否还关联着一个有效的电子邮件地址,也不知道Eduardo是否会检查那个邮箱,如果它确实存在的话。他不知道Eduardo是否会读它,不知道Eduardo是否会理解它,不知道Eduardo是否会在意。这是Mark自己信仰的一跃,是他自己试图建立联系的方式。如果文中的表达不够明显的话,我把这里看作Mark发出他的第一个SYN作为握手的一部分。内涵非常深刻。

 

他从来没有恨(hated)过Eduardo。他有时会怨恨(resented)Eduardo,因为凤凰俱乐部,因为纽约的实习,因为当Mark就在那里时Eduardo却想要Christy,看见了吗?Mark已经长大了,愿意承认他甚至有感情( feeeeeeeelings)了。大多数情况下。 但Mark从来没有恨过Eduardo。他仍然不后悔自己的所作所为,仍然不后悔把Facebook放在第一位,但他希望自己能回到那之前,回到事情才刚开始出现问题的时候。他希望自己能把一切恢复到更早的修订版(revert to a much older revision),从那里开始努力。他发这条信息的时候一点儿也没说谎。他讨厌他们两个人之间的状况。他希望事情能变得更好。第二次提到版本控制!我的意思是,这里基本上指一个超级撤销按钮,但不管怎样,还是有用的。在版本控制系统中,有一个代码仓库,当你把最新版本的代码提交到仓库中,它就会被存储为一个修订版。有这样一个工具的好处是,你基本上可以去做实验,去做一些疯狂的事情,因为如果你需要的话,你总是可以回到一个稳定的版本。我认识一些人,他们几乎把他们写的所有东西都放在一种版本控制系统或其他类型的版本控制系统里。

 

Mark知道他无法修复(fix)一切,但他可以试着尽力打补丁(patch)。

 

Eduardo几天后才给他回信。他的信息也没有标题。

 

内容只有:我也很抱歉。Eduardo发回了一个SYN-ACK,就好像他们真的能够说一些对方听得懂的话了。太神奇了!

 

Mark闭上眼睛,稳住呼吸,尽可能平静地松开拳头。他几乎希望Eduardo不要理他,让那句道歉挂在他们之间不被确认(unacknowledged)。Mark所能期待的最好情况是,得到一个“滚蛋”,或是一份长达九页的清单,把Mark多种多样的性格缺陷一一列举出来。这——这完全不是Mark所期望的。

 

他睁开眼睛,盯着屏幕。那句话还在那里,白色背景上的黑色文字。Mark感到有一个微笑在他的脸上成型,某种很小的、几乎全是痛苦的情绪。zulu提到了所有这些微笑。我不知道,朋友们。我笔下的Mark是个爱笑的人。他不习惯这样,但感觉很好,就像刮掉一层痂,露出下面粉色的皮肤。就像一个把事情做对的机会。

 

他点击“回复”,开始打字。好吧,忏悔时间。这么多年来我第一次登录了我的Facebook账户,以便正确描述消息系统的每个部分。(也许不正确,因为显然Facebook的消息不再有主题行了,但我真的曾经看到过在消息弹出时有主题行?)这是我为你们做的事,各位!希望你们能喜欢这篇同人。我认为洋葱新闻网很好地总结了我对Facebook的感受。(译注:原文有一个洋葱新闻的链接,但是目前已经失效)

 

FIN.

 

所以这个故事就是这样了。我知道有些人说这个故事很悲伤,但对我来说,其实一点都不。也许算苦乐参半吧。也许我只是刻薄,或者也许作为一个写作者,我可以看到所有他们能到达的未来,我对他们的打补丁能力有更大的信心。我不知道。在这个故事结束之后,我可以看到他们再次成为朋友,也许在Facebook公司的聚会上,Eduardo喝醉了之后说:"你知道,在那一次之后,我一直有点想再吻你一回。"Mark说:"等等,什么?"Eduardo于是做了示范,而Facebook的其他人则发出欢呼。然后也许他们最后又在Mark的床上。这次当Mark醒来时,Eduardo还在那里,打着呼噜,流着口水,Mark觉得胸口有很紧,很痛,就像有太多的东西抵在他的肋骨上想要出去。

 

也许之后,当Eduardo醒来时,Mark说:"你不必——你可以——"因为他需要继续问下去,即使Eduardo的答案永远不会改变。

 

也许Eduardo打断了他,也许Eduardo说:"是的,但不是立刻,因为我还有其他事情要处理,但是,是的,我想搬来加州。"

 

也许他们搬到一起住,Eduardo接管了多余的卧室,把它变成了书房。周末的时候,Eduardo会在书桌前,Mark会在沙发上,他们整整一个下午都不会和对方说话,就这么待在自己的小世界里,但他们之间的距离不会让人觉得有多远。

 

也许在他们两人亲热的照片最终出现在Mark的Facebook页面上后,Valleywag上会出现一些关于他们的丑闻(译注:Valleywag是专注于硅谷八卦的媒体)。

 

也许他们养了一只名叫Max的狗,它偷了Dustin的袜子,并在上面咬出巨大的洞,因此得到了"the Zuckerburglar"的绰号。也许Mark负责清理狗屎,Eduardo负责把小狗宠傻,但每次Facebook推出新的重大功能时,他们就会转换角色。

 

也许他们会变成进行"你还记得旁边的那个——" "是啊,你总得——"这种的对话的那些情侣之一,他们甚至不用太努力就能把对方的句子填完整。也许他们的关系到了某个时间点,Mark每天早上醒来时都会想“我的生活怎么会变成这样?” 而Eduardo只需要用一个面部表情就能告诉Mark“你的呼吸并不好闻”,然后Mark就会想到他们的关系已经度过了漫长而曲折的旅程。他想他本可以把事情做得更好,但他也想,也许他必须把一切都搞砸,才能明白为什么修复这段关系是如此重要。也许他就这样臭烘烘地吻了Eduardo。

 

也许他们的生活还会继续。

 

最后,也许Mark学会了如何快乐。

 

我完全有能力写傻白甜故事的,好吗?

 

总之,这个故事太私人化了,充满了大量我所爱的事物,所以当我重读它的时候,我无法感到悲伤。我想它的核心是,当你在做你热爱的事情时所能感受到的喜悦,以及当你看到自己正处于崭新的、美好的事物边缘时所能感受到的惊奇。这就是为什么我永远不会太讨厌Mark的原因,尽管他是个大混蛋。管它呢,我毕竟是豪斯医生的粉丝。相比之下,Mark的大部分混蛋行为都很平淡。

 

我觉得在某种程度上,这是我的《社交网络》宣言。在这之后,我想我再也不需要在这个圈子里写任何东西了(译注:事实上,这只是作者写的第一篇TSN,后面还写了好几篇中短篇以及长篇《Sympathy For The Devil》),因为我想说的一切都已经在这里说过了。Mark和Eduardo对我来说是什么样的人,他们为什么会在痛苦和悲剧中结束,我认为Mark在看Facebook时看到的东西,他们如何试着从现在糟糕的状态中复原,都在这个故事里了。

 

所以是的。请自由地问我任何问题,因为我喜欢谈论计算机和人们搞砸了的、悲剧的情感。或者写作!我也能谈论写作!