2008-03-30

Googleを支える技術 -- 巨大システムの内側の世界 ([著]西田圭介, [版]技術評論社) #2

「第1章 Googleの誕生」を読んだ。

まず、Googleの出発点として「良い検索結果」=「役に立つ検索結果」だと捉え直したことがある。これを実現するための概念がWebページのランク付けであり、ランク付けのために(有名な)PageRankを始めとするアルゴリズムが考え出され、そして実装された。ページのランク付けは、Googleの誕生当時(1990年代後半)はもちろん、今なおホットで難しい問題であり、現在でもGoogleの技術的探求の中心でもある

1.4がインデックス化、1.5が事前に作成されたインデックスを使った検索そのものの仕組みの解説。1.3で解説されるクローリング(Webページを集めること)とともに、1.4は事前作業だから比較的時間をかけても良い。一方で、1.5の検索はユーザが検索語を入力してから、その結果が表示されるまでの短い時間(たいていは数秒)で行われなければならないことだ。それにもかかわらず、ここにはページのランク付けという困難がふくまれている。ここでの困難はランク付けの適切なアルゴリズムを考えることが難しいということではなく、膨大なWebページの情報(インデックス化で事前に作成されている)に対してランク付けアルゴリズムを適用し、その結果で並べ替えて、ユーザに検索結果として送り返す。それをごく短い時間でやらなければならない、という「スケール」に対する困難さだ。

実際、初期のGoogleではページのランク付けに関しては、一部のページのみが対象であったと書かれている(p.36)。

2008-03-30(23:39)時点で、本書の書名「"Googleを支える技術"」(書名をダブルクォーテーションで囲ってある)で検索したところ「約16,100件」という検索結果をGoogleは返してきた。時間は0.26秒だそうだ。「Googleを支える技術」としてダブルクォーテーションを取ると、「約236,000件」になり、これには0.40秒かかったとある。数十万という単位のデータに対して複雑な計算を実行し、結果をソートする。そこからさらにテキストの取り出し、結合、HTML化とやること時間のかかることはまだまだ多い。それをこの短い時間でやってのけるための仕組みがちょっと思い浮かばない。少なくとも第1章で解説されている方法を何の工夫もないまま素直に実装したら、このパフォーマンスは得られない。まあ、テキスト処理は実際に「検索結果ページ」を作るのに必要な件数(デフォルトは10件だっけ?)だけなんだが。それにしてもランク付けの計算は全部でやってるだろうしね。

その当たりの工夫が「第2章 Googleの大規模化」以降で解明されるらしい。

スーパーコンピュータを20万円で創る ([著]伊藤智義, [版]集英社新書)

これもRSS講読しているブログで紹介されていた一冊。どこのブログだったかはもうわからなくなってしまった。

Wikipediaによればスーパーコンピュータとは「内部の演算処理速度がその時代の一般的なコンピュータより非常に高速な計算機(コンピュータ)のこと。」となっている。とくに汎用、専用の別はなく、とにかくその時代で一番速いコンピュータたちのことだ。本書で描かれているのは専用の高速計算機の方。天文学における重力シュミレーションに特化した計算機を創る物語。

読みやすいし、当時の熱気みたいなものも伝わってくる。良く書かれたノンフィクションだ。ただ、残念なのは肝心のGRAPEを開発する過程の記述があっさりとしていること。「モノづくり」のおもしろさはディテールにこそ宿るのだと思う。いくつかの写真と回路図だけでは十分に伝わらない。

本書の中盤にあたる第3章から第5章が、タイトルにもある20万円のスーパーコンピュータ、GRAPE-1の開発に関する記述。プロジェクトに関わった人たちの関係や思いが丁寧に描かれているだけに、影の主役であるGRAPEの記述が少ない気がする。費用や期間では単純に評価できない苦労の部分をもっと知りたくなった。

本文にはできなくても、付録という形ならディテールを書けたんじゃないだろうか。開発ノートがあったそうだから、それを再構成するなりして。新書だからムリがあるか。

ウェブ時代の5つの定理 ([著]梅田望夫, [版]文藝春秋) #2

p.126
強い「プロダクト志向のカルチャー」が必要だ。 -- スティーブ・ジョブズ
You need a very product-oriented culture. -- Steve Jobs

この言葉を製品へのこだわりと読むのは簡単だけど、もう一歩踏み込んで考えたい。プロダクトとは最終的なユーザの手に触れるもの。そしてユーザに価値を持たらすもの。すなわち「プロダクト志向」とはエンドユーザにとっての価値を実現することを第一に考えることではないだろうか。

大きな組織に属していると自分の労働や成果がどんな価値を持っているのかが見えにくくなる。(たとえ製品開発であったとしても)プロジェクトメンバーだけで数百人、利害関係者をふくめるとさらにその数が増える、そんな状況ではメンバー一人、一人の貢献は部分に埋没してしまい、製品のユーザにとっての価値に結びつかない。それで「良い」製品などできるはずがない。

技術者、とくにモノづくりにこだわりたいと願う者にとって、何を(誰にとってのどんな価値を)作っているのかがわからなくなることは、仕事に対するモチベーションを大きく下げる要因になる。

常にユーザにとっての価値を思い、その実現に力を注ぐこと。それを可能にする組織であったり、開発手法であったり、技術者自身であったり。それがジョブズの言う「強いプロダクト志向のカルチャー」なのだろう。

Googleを支える技術 -- 巨大システムの内側の世界 ([著]西田圭介, [版]技術評論社) #1

RSS講読している、とあるブログで発売を知った。発売日(2008-03-28)に購入。まつもとゆきひろの序文と著者による「はじめに」を読み、目次を眺めたところ。目次の項目を追いかけているだけでワクテカしてくる。

Google人たちが書いた論文が公開されている(Papers Written by Googlers)のは知っていたし、そのうちのいくつかは読んでみたいと思っていた(英語に負けなければ・・・)。この本のおかげで、そのための敷居がグッと低くなった。ひょっとしたら、原論文まで読まなくてもイイかもしれないし。

まつもとが序文で言うように、ここ十数年のコンピュータを中心とした世界で起きた変化のほとんどは量(スケール)に関するものばかりだ。一方で、 Googleの出現は世界を、少なくともネットの向こう側とそこにつながる人の生活様式を変えてしまった。これは質的な変化だ。それが「量から質への転化」なのだとしたら、Googleを支える技術(序文で言うスケーラブルコンピューティングってやつ)こそがその変化を持たらしたことになる。

Google は2004年の株式公開以降、ビジネスの世界での成功が華やかすぎて、その技術的な面の露出度は相対的に高くない(隠しているわけじゃないんだろうけど)。技術に心を引かれた人たちも、どちらかと言えば次々と打ち出される製品やサービス(APIとかも)に眩まされて、それを実現している仕組みのことには目が向かない。けれど、「世界最大のコンピュータ」(「はじめに」より)としてのGoogleには最先端の技術が詰まっているのだ。本書はそのことに改 めて気付かせてくれる(目次を読んだだけで!!)。

もう、この本は売れる気がしてきた。なんか技術書なんだけどベストセラーリストに並ぶような気がしてきた。むしろ、並ばないとしたら日本(のコンピュータに関わる部分)に未来はないっていうぐらいの感じがしている。

2008-03-24

レバレッジ・リーディング ([著]本田直之, [版]東洋経済新報社)

今朝(2008-03-24)より、新しい通勤の友。ほぼ読み終わった。明日からはまた別の本を友として連れ出すことになる。

第1章は著者の主張が繰り返し語られる。とにかくたくさん読め、と。第2章は本の探し方、選び方。そして、第3章からが本を読むことに対して「ハウツー」っぽい内容になる。第4章は読んだ後どうするか。

第2章でちょっと驚いたこと。世間には有料の書評サービスというものがあるらしい。

とくにアメリカで盛んです。忙しくて本を読めない人に代わってサービス業者のスタッフが主な新刊を読破し、読むべき本を選んで紹介するというサービスで す。・・(中略)・・内容のサマリー(要約)も充実していて、・・(中略)・・これを読めば、実際に本を読んだのと同じくらいの効果が得らえるのがすごい ところです。

なんというかアメリカっぽいね。

肝心の第3章で展開される読み方は、「本を読む本([著]M.J.アドラー/C.V.ドーレン, [訳]外山滋比古/槇 未知子, [版]講談社学術文庫)」にある「点検読書」に近いようだ。

第4章はまだ途中なので、読み切ったときに振り返ってみよう。

2008-03-23

働く気持ちに火をつける ([著]齋藤孝, [版]文春文庫) #2

先週ぐらいかな、通勤の電車の中で読了。

著者が、仕事の柱だと言う「ミッション、パッション、ハイテンション」(p.224)のうち、後の2つはちょっと受け入れにくいけれど、最初の「ミッション」に関しては近頃、似たようなことを考えていただけに心に響くものがある。

梅田望夫が言う「好きを貫く」姿勢にしても、本書で言われる「ミッション感覚」にしても、決して不可能なことを掲げているわけじゃない。改めて言われてみれば当たり前と感じられること。けれど、手が届きそうで届かないことでもある。あとちょっとなのかもしれないけど、まだ足りないものがある。それは何だろう。決意と覚悟、さらには継続の意志。
・・・あらら、「あとちょっと」じゃないっぽい。

心に引っかかったところを引用しておく:

社会の中での自由とは、束縛がないことではない。社会の中で、他者に働きかけていける技を一つでも二つでも持っていること、これが真の自由だ。・・(中略)・・だから、社会との接点が薄い存在でいることは、はっきりいって恐ろしく不自由だと思う。
自分の手で仕事を喜びにし、人生をデザインしていく楽しさを知らないのは、あまりにも惜しい。
(p.20)

この一文がどうにも心に痛い。痛いってことは、そこが弱いところだってこと。いや、まあ、わかっているんだョ。

帯には「スカッと働くコツを伝授!」と書かれているけど、ここに「こつ」やら「技」は書かれていない。少なくとも具体的ですぐにそのまま実行できるようなものはない。著者は教育者(教師)なのだと思う。教育を行う者にとって大事なことは生徒が自分自身で考えるように仕向けることだ。答えを教えることじゃない。だから、この本に答えを期待してはダメ。これは、答えを探そう、という気持ちにしてくれる本。タイトルにある通り、「火をつける」本なのだね。

2008-03-14

働く気持ちに火をつける ([著]齋藤孝, [版]文春文庫) #1

梅田望夫のブログで存在を知り、ここしばらくの仕事に対するモヤモヤした感じをどうにかできるか、と買ってみた。早速、通勤の友として連れ出した(3/12)。

何というか、熱い本だ。この著者の本を買うのも読むのも初めてなのだけど、こんなに熱い人だったんだね。数年前から書店で平積みにされていることが多く、著者の名前だけは覚えていたんだけど。

熱いというか、むしろ煽動的というべきか。書かれている内容すべてを肯定的に受け取ることはできないのだけど、それでも「熱」が伝わってくる。ふと気付く と、自分の中に「使命(ミッション)」を探していたりする。そういう意味では確かに「火をつける」本ではある。タイトルに偽りなし、と言える。

仕事に熱くなれ、というのはたやすい。けれど、みながみな熱くなれる仕事に就いているわけじゃない。そういう反論が出てくる。これが間違っている。熱くなれ ないようなものを仕事にするな、ということなのだ。その状態(仕事に熱くなれない)は自分自身にとっても、周囲にとっても(たとえば雇用者)不幸なことだ から。仕事とは嫌でも好きでも人生のほとんどの部分をつぎ込むことになるもの。それを「好き」になれないとしたら、人生がみじめなものになる。

ほら、やっぱり熱くなってる。