Help us understand the problem. What is going on with this article?

全盛期のJeff Dean伝説

More than 3 years have passed since last update.

Jeff Deanとは

  • GoogleのSenior Fellow. Googleの基盤となる分散システムのほぼ全てに中心的に関わり、圧倒的なエンジニアリング能力を発揮したらしい。あまりにも尊敬されているため、IT業界において全盛期のイチロー伝説のような破天荒なホラ話のネタにされている人。
  • 日本語での紹介がなさそうだったので意訳してみました。
  • 元ネタはこちら。多すぎるのでGoogle社員じゃない人には面白みがわかりにくそうなもの、面白みが被っていると私が判断したものなどは省いてあります。

全盛期のJeff Dean

NP問題

  • Jeff DeanがGoogleの採用面接を受けたときに、もしP=NPが成り立つとしたらどうなるかを問われて"P=0かN=1ですね"と答えた。試験官が笑い終わりさえしないうちに彼はGoogleのpublic keyを突き止め、private keyをホワイトボードに書き終わった。
  • Jeff DeanはすべてのNP問題をホワイトボードで多項式時間で解くことでP=NPであることを証明した。
  • Jeff DeanにとってはNPは"No Problem"をあらわす。

プログラミング

  • Jeff Deanのキーボードには2つしかキーがない。1と0だ。
  • Jeff Deanのコードを書く速度は2000年にUSB2.0が出たときに40倍になった1
  • Jeff Deanはコミットする前に自分のコードをコンパイルして動作させるが、それはコンパイラとCPUのバグをチェックするためである。
  • Jeff Deanは一度だけO(n^2)のアルゴリズムを書いたことがある。巡回セールスマン問題のために。
  • コンパイラはJeff Deanに警告を出さない。Jeff Deanがコンパイラに警告を出すのだ。
  • Jeff Deanは抽象クラスをインスタンス化できる。
  • Jeff DeanのIDEはコードの分析(analysis)をしない。ただ賞賛(appreciate)するだけである。
  • Jeff Deanはhtmlを正規表現でパースできる。。。正確に。
  • Jeff Deanがプロファイラを立ち上げると、ループたちは恐怖のあまり勝手にアンロール2する。
  • Jeff Deanが一度リストを順序付け(order)ると、以後リストはずっと彼に従う。
  • もしあなたのプログラムがSIGJEFFによって終了させられたら、二度と動くことはないだろう。
  • コンパイルエラーはJeff Deanを警告として扱う。
  • Jeff Deanは"cat > /dev/mem"3してからプログラムを書き始める。
  • Jeff Deanは邪悪なコンストラクタ4を恐れない。コンストラクタが彼を恐れるのだ。
  • Jeff Deanはバグを出さない。彼はあなたの理解できない仕様を追加しただけなのだ。
  • あなたのプログラムが未定義な動作に陥ると、segfaultが発生し、データは壊れてしまうだろう。一方Jeff Deanのプログラムが未定義な動作に陥ると、ユニコーンが虹の橋を渡ってやってきてみんなに無料のアイスクリームを配るだろう。
  • Jeff Deanのコードはとても速いので、終了させるためにHALTコードを3回も呼び出す必要がある。
  • Jeff DeanのバブルソートプログラムはO(1)で動作する。
  • Jeff Deanはあるときbitをあまりにもshiftしすぎたため、最後には隣のマシンに移動してしまった。
  • gccの最適化オプション
gcc -O1: コンパイラは、 コードのサイズと実行時間を削減するよう試みます。 
gcc -O2: さらに最適化を行います。
gcc -O3: さらに一層、 最適化を行います。
gcc -O4: 完全に書きなおしてもらうために、あなたのコードをJeff Deanに送信します。

逸話

  • Emacsが、いちばん好きなエディターはJeff Dean。
  • あるときJeff Deanが蜘蛛に噛まれたことがあった。その蜘蛛は超常的な力とCを読む能力を手に入れた。
  • Jeff Deanは203番目のフィボナッチ数を問われて1秒以内に答えてしまったので、チューリングテストに失敗したことがある。
  • Jeff Deanはπの最初の2万桁を5時間で暗唱できる。それを暗記しているわけではない:彼はそれを高々O(log n)の容量を使って再計算しているのだ。
  • Jeff Deanはたった1つしかパスワードを覚えていない。彼はそれをサイト名と結合してsha-256でハッシュを計算した結果を打ち込んでいるのだ。
  • Jeff Deanは眠るのではない。宇宙に対してSIGSUSPENDを送るのだ。
  • Jeff Deanの腕時計は1970/1/1 00:00:00からの経過秒数を表示するが、彼は決して遅刻しない。
  • Jeff Deanはスピーカーやヘッドホンを必要としない。彼はcat *.mp3して、画面を眺める。そうすると彼の脳はそれをバックグラウンドでデコードして再生する。
  • あるときドナルドクヌースがTAOCP5をJeff Deanに送ったことがあった。Jeff Deanはそれにサインをして送り返した。
  • Jeff Deanがインターネット通信をするとき、遅延は最適化される。ルーターはもし彼のIPパケットを破棄したら、彼がインターネットを破棄することを知っているからだ。

業績

  • Jeff Deanの履歴書には、彼がやってないことだけが書いてある。その方が短いから。
  • やったことがあまりにも多いため、Jeff Deanの履歴書には目次が付いている。
  • Jeff DeanがBig Tableを作ったのは、彼の履歴書の項目が多すぎて記録しておく場所がなかったから。
  • Jeff DeanはファンからのメールをソートするためにMapReduceを発明した。
  • 2002年の初頭、Googleの検索サーバーが落ちたことがあった。Jeff Deanは2時間にわたってユーザーのQueryに手動で答えたが、検索結果の質は5ポイント改善されたと評価された。
  • 定数オーダーのアルゴリズムでは飽き足らず、Jeff Deanは世界で始めてO(1/n)のアルゴリズムを開発した。
  • あなたは自分の脳の10%しか使うことができない。残りの90%はJeff DeanがMapReduce jobの1つを動かすのに使っているから。
  • 神が"光あれ"とおっしゃたとき、Jeff Deanはコードレビューするためにそこにいた。
  • ある日Graham Bellがついに電話を発明すると、そこにはJeff Deanから不在着信が来ていた。
  • Jeff Deanは自分の1週間分のコードスニペットを格納するためにBig Tableを発明した。
  • Jeff Deanはある日、一回のprintfの呼び出しだけからなるウェブサーバーを実装した。他のエンジニアが数千行に及ぶ解説のコメントを書いたが、それでも正確にはどのように動いているかはわからなかった。今日GWSと呼ばれているプログラムである6
  • Jeff Deanは自分がπの桁の中に隠したジョークを数学者が発見するのを未だに待ち続けているらしい。
  • Google App Engineの全体はJeff Deanの持っているNexus Sでホストされている。
  • Jeff Deanは1969/12/31 23:48に生まれた。そして最初の計時システムを実装するのに12分を要した7
  • Jeff Deanは20%プロジェクトとしてAIを開発したことがある。それによってUrs Hoelzle8が作られた。
  • ウェブ検索はJeff Deanの本当のアプリのための巨大なユニットテストプログラムである。
  • Jeff Deanがうっかり検索インデクスを圧縮しすぎてブラックホールが発生したため、Googleはデータセンターを移動させなければならなかったことがある。
  • 真空中の光の速さはかつて時速35マイル(約56km)だったが、Jeff Deanが週末を使って物理法則を最適化した結果現在のスピードになった。

  1. USB1.1 = 12MB/s, USB2.0 = 480MB/s 

  2. アンロール = ループを同じ回数の内部ブロックの実行に展開する最適化手法。 

  3. 危ないので試さないでね! 

  4. コメントで指摘のあったソースコードを見ると、具体的に、C++の暗黙のうちに生成されるコピーコンストラクタのことをgoogle社内ではそう呼んでいる模様。 

  5. the art of computer programming 

  6. GWS = googleの検索サービスのフロントエンドウェブサーバー 

  7. time_tのエポック = 1970/01/01 00:00:00  

  8. Urs Hoelzle = Googleのvice president  

umegaya
programmer who wants to rest in peace
https://github.com/umegaya
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした