最近比較煩躁,寫點好玩兒的東西輕松一下。想起以前看過的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...