最近比较烦躁,写点好玩儿的东西轻松一下。想起以前看过的Jeff Dean Facts,就找出来整理翻译了一些写在这里。
Jeff Dean是谷歌最著名的程序员之一,是谷歌众多知名软件的重要贡献者,比如MapReduce、BigTable、Google Brain、TensorFlow等等。这些成果为他在公司内外赢得了众多的崇拜者。网上流传者很多关于他的“facts”,多数是前谷歌员工写的,风格类似Chuck Norris Facts,虽然充满了调侃的味道,不过表达的却是如同滔滔江水一般的敬仰之情。本文翻译整理了Quora和Google Plus上的大部分段子,去掉了重复的以及一些我也看不懂不够好玩的。为了方便不同背景的读者阅读,我把这些段子分了两部分,第一部分跟基本不涉及技术,比较容易看懂;第二部分则需要有一点技术背景才能get到笑点。【】里是我的注释。
Part I
- Jeff Dean在一个最高等级只有10的系统里升到了11级。(这是真的)
- 谷歌搜索其实是Jeff Dean的Noogler项目。【Noogler指谷歌新人】
- Jeff Dean的PIN密码是π的最后四位数。【π是无理数,有无穷多位小数】
- Jeff Dean去度假时,谷歌生产系统在几天之内神奇的停转。这真的发生过。
- Jeff Dean的简历上写着他没做过的事,这样比较简短。
- Jeff Dean简历上的成就多到需要一个目录。
- Jeff Dean的同行评审意见让Larry晋升到了CEO。
- 贝尔发明出电话的时候,看到一个来自Jeff Dean的未接来电。
- 第0天,Jeff Dean创造了上帝。
- 苹果Logo上的那一口是Jeff Dean咬的。
- 看啊,《连线》上了Jeff Dean杂志的封面。
- Jeff Dean进行人体工程学评估是为了保护自己的键盘。【Jeff Dean写代码太快,所以他的键盘需要保护】
- Jeff Dean还在等数学家发现他藏在π里的笑话。
- Jeff Dean可以走进魔多。
- Vint Cerf能发明因特网是因为Jeff Dean没时间。
- Jeff Dean用自己的针线盒创造了谷歌地图。
- 谷歌其实是Jeff Dean的业余项目(side project)。
- 谷歌其实已经秘密的研发出了完美的人工智能。他的名字叫Jeff Dean。
- 伏地魔也害怕Jeff Dean。
- 你不用跟Jeff Dean解释你的代码做了什么,Jeff会跟你解释的。
- 真空里的光速以前是35英里/小时(大约15米/秒),直到Jeff Dean花了一个周末来优化物理学。【现在是30万公里/秒】
- Jeff Dean的日历过完3月31号就是4月2号:谁都别想愚弄Jeff。
- Jeff Dean从来不会打错电话,是你的电话不对。
- Chuck Norris是Jeff Dean的20%项目。【谷歌允许员工用20%工作时间做工作意外的事情】
- Jeff Dean只用3步就能在Connect four里打赢你。【Connect Four是一种四子棋游戏,需要四步决出胜负】
- Jeff Dean去斯坦福开讲座的时候,现场人太多以至于Donald Knuth只能坐在地上。(这条是真的)
- 2002年初,有一次Google所有的索引服务器全部宕机,Jeff Dean花了两个小时手动处理用户查询。事后的调查结果显示当时的搜索质量提高了5个百分点。
- Jeff Dean有天出门的时候把“神奇画板”当成笔记本电脑带上了,在回家取电脑的路上,他给神奇画板编程来玩俄罗斯方块。
- Jeff Dean的Dropbox容量限额比整个YouTube的存储容量还大。
- The needle in haystack found Jeff Dean.【find needle in haystack是“大海捞针”的意思。主语和宾语调换位置,表示Jeff Dean可以轻易做到不可能的事情】
Part II
- Jeff Dean以多项式时间在白板上解决了所有NP难问题,于是证明了P=NP。【NP问题指多项式时间内不能解决的问题】
- Jeff Dean可以读懂打孔卡片。【打孔卡片是早期用来给计算机输入程序和数据的一种卡片】
- Jeff Dean穿裤子的时候一次穿一条腿。但是如果他有两条以上的腿,你会发现他穿裤子的方法时间复杂度其实是O(log n)。
- Jeff Dean提交代码之前会先编译和运行,只是为了检查编译器和CPU有没有bug。
- 因为不满足于常数时间复杂度,Jeff Dean创造了世界上第一个O(1/n)复杂度的算法。【O(1/n)时间复杂度表示数据量越大,处理时间越短,这是不可能的】
- Jeff Dean可以直接读写二进制文件。
- Jeff Dean有一次移位操作太过用力,结果那一个比特被移到了另一台电脑上。
- 面试谷歌的时候,Jeff Dean被问到“P=NP”的含义是否正确。他说“P = 0或者N = 1”。面试官还在哈哈大笑的时候,Jeff看了一眼谷歌的公共证书,然后在黑板上写下了私钥。
- 你只用了大脑10%的潜能,剩下90%在运行Jeff Dean的MapReduce任务。
- 对Jeff Dean来说,NP表示No Problemo。
- Jeff Dean写过一次O(n^2)复杂度的算法,是为了解决旅行商问题。【这是个NP问题】
- Jeff Dean把一个函数优化过了头,导致它还没被调用就返回了,所以不得不发明了异步API。
- Jeff Dean写代码的速度在2000年末提升了40倍,因为他把键盘升级成了USB2.0。【USB2.0的带宽是上一代的40倍】
- Jeff Dean设计软件的时候先写好二进制文件,然后再写源码当作文档。
- 上帝说:“要有光”的时候,Jeff Dean坐在旁边检查代码。
- 编译器不会警告Jeff Dean,Jeff Dean警告编译器。
- Jeff Dean的IDE不做代码分析,只做代码鉴赏。
- Jeff Dean的键盘没有Ctrl键,因为Jeff总是掌控一切(in control)。
- Jeff Dean不用ECC内存,他预测宇宙射线并用它们提高性能。
- Jeff Dean没有通过图灵测试是因为他只用了不到一秒就认出了第203个斐波那契数。
- Jeff Dean发明BigTable是为了有地方能存放自己每周的代码片段(snippets)。
- Jeff Dean曾经用一个printf()调用实现了一个Web服务器。其他工程师给这个程序写了成千上万行注释,还是没搞懂它的原理。今天,这个程序被称作GWS。【用一个printf()语句实现Web服务器是有可能的】
- Jeff Dean发明BigTable是因为他的简历太长没地儿存储。
- Chuck Norris可以杀死(kill)你,Jeff Dean可以kill -9你。【-9是SIGKILL信号量,表示杀死进程】
- Jeff Dean用正则表达式就能正确解析HTML。
- Jeff Dean启动profiler的时候,循环会因为恐惧而自动展开。【循环展开是一种性能优化方法】
- 如果你的代码有未定义行为,会出现段错误或者数据损坏。如果Jeff Dean的代码出现未定义行为,我的意中人就会踏着五彩祥云过来嫁给我。【原文是:a unicorn rides in on a rainbow and gives everybody free ice cream】
- Jeff Dean从不睡觉,他只是给宇宙发送一个SIGSUSPEND信号。【SIGSUSPEND让进程挂起,整个宇宙都要等待Jeff Dean】
- Jeff Dean只看了8行代码就能读懂Java。
- Jeff Dean可以实例化一个抽象类。【抽象类不能实例化】
- gcc -O4就是把你的代码发给Jeff Dean全部重写。
- Jeff Dean可以背诵π到20000位。其实他根本不用记住它们,只需要在用的时候用O(log n)空间复杂度计算出来。
- Jeff Dean只有一个密码。对每个网站,他把这个密码和网站的名字放在一起,算一下SHA-256,然后输入结果。
- Jeff Dean出生在1969年12月31日晚上11点48分。他花了12分钟实现了自己的第一个计时器。【Unix系统时间从1970年1月1日开始计算】
- Jeff Dean说“Hello World”,世界回答“Hello Jeff”。
- Jeff Dean可以从/dev/zero里读出1。【/dev/zero是Linux的一个伪设备文件,读取这个文件总是返回0】
- Jeff Dean花了20%的时间在一个AI项目上。结果就有了Urs Hoelzle。【Urs Hoelzle是另一个谷歌大牛】
- 谷歌曾经被迫从一个数据中心搬走,因为Jeff Dean不小心把索引压缩的太厉害导致产生了黑洞。【黑洞密度无限大】
- Jeff Dean写代码总是从“cat > /dev/mem”开始。【/dev/mem是Linux一个设备文件,通过它可以直接访问计算机内存。这里指Jeff Dean直接操作内存来编程】
- Jeff Dean给你发代码评论,是因为他觉得里面有你可以学习的东西。【没看懂笑点】
- Jeff Dean从不sleep(),他只是wait()。
- Jeff Dean发明MapReduce是为了分类他的粉丝邮件。【粉丝邮件太多】
- Jeff Dean的键盘只有0和1两个键。【用二进制输入,只需要0、1两个键】
- Jeff Dean听mp3的时候,只需要他它们cat到/dev/dsp然后在脑子里解码。
- Once Jeff Dean ordered a list, and the list obeyed him.【不太好翻译,这里应该是双关,order既有命令的意思,也有排序的意思】
- 如果你的程序被SIGJEFF杀死,它永远不能再运行。
- Errors treat Jeff Dean as a warning.
- 曲棍球比赛以前需要5天,直到Jeff Dean优化了它们。
- Jeff Dean的表上面显示的是1970年1月1日以来的秒数,但是他从来不迟到。
- Jeff Dean的代码运行太快,所以汇编指令里必须要有3个HALT操作码才能阻止它。
- Emacs最喜欢的编辑器是Jeff Dean。
- Jeff Dean必须“反优化”自己的代码,才能让评审人会相信这是人写的。
- Web搜索只是Jeff Dean给自己真正的app写的一个单元测试。
- Jeff Dean不需要喇叭和耳机。他工作的时候,只要cat *.mp3,用余光扫一下屏幕,就可以用大脑解码听音乐了。
- Jeff Dean能读懂Perl. (这是真的)【这条应该是吐槽Perl的可读性】
- Jeff Dean对自己的脏衣服进行快速排序(quicksort)。
- The OR ELSE construct had to be removed from ISO C after Jeff Dean used it in Mustang and kernels started panicking in terror.
- Jeff Dean is not afraid of evil constructors. They are afraid of him.
- Jeff Dean写的代码没有bug,那只是你不能理解的特性。
- x86-64说明书里有几条没有说明的指令标记为“私有用途”。这些指令其实是给Jeff Dean用的。
- Knuth寄了几本TAOCP到Google,Jeff Dean签完名又寄了回去。
- Richard Stallman买了一台Kindle,只因为听说Jeff Dean的自传是Kindle专属的。
- Jeff Dean送了一套TAOCP和一本Hacker's Delight给女儿当18岁生日礼物。【这是真的】
- Jeff Dean能够知道电子的精确位置和速度。【物理学认为这两者不可能同时精确的测量,即“测不准原理”】
- Jeff Dean不会杀死进程,他屠戮(slay)进程。
- Jeff Dean写的无限递归函数能返回。【无限递归不可能返回】
- Jeff Dean只用一个assert就能对整个程序进行单元测试。
- Jeff Dean的网络延迟总是最低的。路由器知道如果中断了Jeff的IP包,Jeff会关掉整个互联网。
- Jeff Dean去过/dev/null,然后回来了。
- Jeff Dean可以无损压缩随机数据。
- Jeff Dean Map Reduces his cereal.
- Jeff Dean的冒泡排序是O(1)复杂度。【冒泡排序时间复杂度是O(n^2)】
- 整个Google App Engine全部托管在Jeff Dean的Nexus S手机上。
- PageRank made the Dean's list.
- Jeff Dean写过一个遗传算法。这个算法创造了一些很棒的东西,比如BigTable和Perter Norvig【又是一个谷歌大牛,人工智能领域的专家】。
- 声明三个指针:Einstein(爱因斯坦)、Euler(欧拉)和Turing(图灵),当你引用它们的时候,你只能得到Jeff Dean。事实上,所有指针都指向Jeff Dean。
- Jeff Dean的无限循环只需要5秒钟。
- Jeff Dean的电话通讯录是按vCard的MD5排序的。
- 树林里有两条岔路,Jeff Dean可以并行走完这两条路。
- Jeff Dean不用Emacs和Vi,他直接把代码输入zcat,这样更快。
- Jeff Dean发送以太网帧的时候不会发生碰撞,因为其他帧都自动退回网卡缓存了。
- Jeff Dean失眠的时候,他mapreduce羊。
- 只有两个人知道所有的Jeff Dean Facts,Jeff和Chuck(Norris)都觉得了解所有Facts是凡人所不能承受之重。
最后再补一个没法翻译的:
mantri@mantri-laptop~$ rm -r /
rm: cannot remove root directory `/'
mantri@mantri-laptop~$ su - jeffdean -c "rm -r /"
I am extremely sorry. Removing root directory...