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が週末を使って物理法則を最適化した結果現在のスピードになった。