So-net無料ブログ作成
検索選択

【書評】神のロジック人間のマジック [書評]


神のロジック 人間(ひと)のマジック (文春文庫)

神のロジック 人間(ひと)のマジック (文春文庫)



 Amazonで井上夢人と関連づけられて、しつこく著者を推薦されたのとタイトルに惹かれたので読んでみた。
 この本の著者である西澤 保彦氏の本は初めてなのだが、著者は本格ミステリーに分類されるのだろうか?もしそうだとして、この作品のラストの種証しからして本格推理小説的なものをを求めたとしたら推理小説ファンは怒るんだろうなーというのは想像がつく。
 ただ、個人的には「解けるものなら解いてみろ」と言わんばかりの本格推理小説ははっきり言って嫌いなのでお気楽ミステリーとして楽しく読むことができた。

 現状が正しく認識できない閉鎖空間での出来事(この状況がすでに好きかも)で、いくつかの疑問点に留意しながら読みすすんでいき、最後に種証しされるというのは推理小説そのものである。
 ただテーマとして与えられている「あなただけが正しい答えを知っていても、あなた以外の全員が心底から違うといえばその世界ではあなたが認められることはない」というのが、ミョーに個人的な思考の代弁をしてくれているようだったので「そうそう、あるよねーそういうことって」と納得してしまった次第である。

 とりあえず、著者としては次もよんでみたいと思わせるような作品だったので、こんどは「7回死んだ男」を読んでみようと思う。

「Googleを支える技術」が面白かった。 [書評]


 今更ながら「Googleを支える技術」についての感想なんだが、いやー、実にたのしく充実した時間が過ごせてよかった。やっぱりソフトウェアエンジニアのはしくれとして、最先端(!?)の技術に触れるのは楽しい。この本を読むとGoogleのエンジニアがいかに優秀で楽しい仕事をしているかの一端をかいま見る事ができるのである。

 内容はGoogleの基幹技術の一部として、クラウドコンピューティングの実装に関する部分から大規模データセンターを構築する上で考慮が必要な事項など幅広い技術について書かれている。ちょうどこの本が出版される前(去年の秋頃)に丸山先生の無料セミナー(通称 丸レクで)でGoogleの分散技術に関する内容の講義を受けた時は、MapReduceやSawzallをどう現実への応用方法がよくつかめなかったのだが、いくつかの例の紹介などを読み進めるうちにどのような事ができるようになるのか理解を進める事ができた。

 個人的に楽しいのはやっぱりGFS、Bigtable、MapReduce、Sawzallなどの分散処理技術だろう。これらの技術についてGoogle外部の人は直接触れる事ができなかった為、具体的な利用手順や注意事項など技術的興味を満足させる意外にあまり役に立たないと思われてきたが、その後GoogleAppsの登場でGFSやBigtableに関してはPython経由で利用できるようになり、著者の意図に反して実用書の側面まで備えることになってしまった本である。
 本書はその他にも、ハードウェアやデータセンターなどのGoogle特有のハードウェアインフラに関する解説や電力のコストを考慮したハードウェアの設置基準に関する考察など、その他にも盛りだくさんの内容である。

 あと、ソフトウェアエンジニアとして違いを感じたのは分散技術に関するライブラリの作成方針についてだ。個人的な経歴として過去何年もエンタープライズアプリケーションに携わりシステム系/業務系を問わず数多くのライブラリを作ってきたのだが、ライブラリの構築する際は以下のような基準を守るように気をつけていた。

  ・数少ない手順や、少ない引数      使いやすいライブラリを提供する
  ・内部処理の隠蔽化           中身を知らなくても利用できるようにする
  ・外部に影響が及ぶような操作をさせない 正確にはできないようにして、システム強固にする

 その他にもいろいろと基準はあるが、設計やオブジェクト指向に関するどんな本を読んでも多かれ少なかれ似たようなことが書いてあると思う。しかし、この本を読むと少なくとも上記の一部は覆されることになる。

 根本的にエンタープライズアプリケーションとシステムインフラ向けの低レベルライブラリの構築方法はそもそも違うといわれればそれまでだが、上に挙げた基準はライブラリ利用者を信用していなかったり、レベルが低いエンジニアが利用しても大きな問題が起こらないようにする設計の基準である。しかしGoogleの分散処理技術はパフォーマンスを最優先事項としており、必要以上に内容を隠蔽化する事はない。
 例えば、分散ストレージにおけるがロック機構はChubbyと言われる技術がよく使われるらしいのだが、この技術は分散ストレージステムの内部で利用するのではなくストレージの利用者側で利用/管理する技術だ。こういったロックの機構はアドバイザリーロックと呼ばれ、利用者全員がChubbyを正しく利用しなければ正常にデータを保護することができない仕組みになっている。Googleの分散ストレージは、ロックの仕組みを隠蔽化するのではなく利用者側に意識させことにより構成をシンプルにし、状況により最大限のパフォーマンスが得られるように配慮されている。こういった手法はシステム利用者に対してスキルを要求し、エンジニアを信頼/信用しなければとれない手法で誰が利用するか管理できないような大きなプロジェクトではなかなか成立しにくい手法だ。

 こういった細々した点から内部のエンジニアの様子をかいま見ることができる本書は、外部の人間にとって貴重な資料であると思う。

 まだ時間が取れなくて読めていないのだが、次はさらに現実的に役に立ちそうな「[24時間365日] サーバ/インフラを支える技術 」をぜひ読んでみたいと思っている。

Simple is Best
--
butineko

Amazonのいまいちな話(フロストシリーズの新刊発見) [書評]

 定期的に本屋を徘徊する事が少なくなり、Amazonでの購入比率が高くなった弊害がまた出てしまった。
 
 Blogを徘徊していてR・D・ウィングフィールドのフロストシリーズ「フロスト気質 上」が出ている事を知ったのだが既に発売から1ヶ月近くたってしまっている。昔は週に1度は本屋を1、2時間徘徊していた為こんなことは全くなかったといってもいい。本屋をじっくりと回らなく(回れなく)なってしまった為にこうした事がしばしばおこるようになってしまった。

 特に数年に1回しか本が出ない外国人作家はとかく見落としがちである。この前本屋で発見したジェフリーアーチャーの「ゴッホは欺く 上巻下巻」なんて発売されてから1年と半年もたっていた。しかも発見したのはさらに新しい「プリズン・ストーリーズ 」が1ヶ月前に発売されて平積みされていたのを近所の本屋で見つけたからだ。

 約10年前から気に入った本屋の近くに住みたいと思って周辺よりやや高い家賃を払っているのにまったくもってもったいない話である。

 本屋としてのAmazonはユニークでありなくてはならない存在だが、美しくディスプレイされたすばらしい本屋の視認性にはまだまだ遠く及ばない。本屋でうつむきながら歩いているときに、視界の端っこで私に向かってアピールしている本に対して、小説の導入部分や技術書の解説部分をちょっと読むという行為をストレスなく行えるようにAmazonが実装してくれるのは何年先の事だろうか?今のように何回もクリックしてレスポンスを待っているようでは「この本が欲しいかも」という私の期待が吹き飛ぶ事間違いなしだ。

 また、技術書の良書を探すときもそうだ。例えば新しい技術を習得するとして対象の技術がタイトルにある本は山ほどあり、1つの技術を紹介する本にも「種類」があり「レベル」があり「読ませ方」がある。

 ちまたにあふれている入門書については似たり寄ったりのような気もするが、ある程度のレベルの本だとしてもOreillyのHeadFirstシリーズのようにおもしろおかしくないと読まない人もいれば、回りくどくても基本から応用までを教科書風に書いてある本がいい人もいる。リファレンス本にしてもカバーしている領域や、掘り下げる度合い、サンプルコードの有無、項目のカテゴリーをどう持ってくるのか、またどう配置するのかで使い勝手は大きく異なってくる。
 そういった事をAmazonの中身検索でクリックしまくる人がまわりにいたら、そっといい本屋を耳打ちしてあげたくなってしまう。

 特定のジャンルで良書を探すのに「この商品を買った人はこんな商品も買っています」で類似の売れ筋本を紹介されてもまったく代わりにはならないのだ。

 さて、Amazonでフロストシリーズを買いにいくとしようか. . .なんと「この商品を買った人はこんな商品も買っています」で別の出版社から持ってないフロストシリーズが出ているではないか. . .だからAmazonはなくてはならないのである。


 本よりDVDの方が安いってどういう事よ!?





ハイパフォーマンスWebサイト [書評]

大規模な検証による裏付と、
各ルールの順位付けにこの本の価値がある。

 米国Yahooに勤めるスティーブサウダー氏による本書は実にお買い得な本である。本書はWebサイトのパフォーマンスの改善方法の筆頭にクライアントサイドの処理を掲げ、その改善方法を14のルールとして提案している。
 それぞれのルールは読者によっては感覚的には知っていたりするものも多いと思われるが、それを大規模なレベルで実証し、順位付けした上で体系立てて紹介する本書はWebプログラマーにとって宝玉の価値がある。

 ここではその宝玉の価値を解説なしに列挙していきたいと思う。ただし、どうしてそれが宝玉なのか?本当にそうなのか?具体的にはどうやって実施するのがよいのかなどなど、これ以上の解説についてはぜひ本書を読んでもらいたいと思う。

1章 ルール1:HTTPリクエストを減らす
  まさにタイトルそのままずばり、JavaScript/CSS/Imageなどの外部ファイルをいかに減らすかという点に関するまとめ
  トリッキーな内容ではイメージファイルは1つだけ読み込むようにし、イメージを表示したい箇所はそのイメージの部分部分を切り取って使う方法などが印象的だった。

2章 ルール2:CDNを使う
  CDNとはコンテンツデリバリーネットワークの略で、CDNサービス企業を利用して静的ファイルを地域分散配置することを推奨

3章 ルール3:Expiresヘッダを設定する
  HTTPのExpiresやCache-Controlを適切に設定し、クライアントやProxyに適切にキャッシュさせることにより、クライアントのやり取りを減らす

4章 ルール4:コンポーネントgzipする
  Accept-Encoding/Content-Encodingヘッダを利用して転送量を圧縮する方法と、Proxyが絡む場合の適切なVaryヘッダの設定について

5章 ルール5:スタイルシートは先頭に置く
  スタイルシートの配置箇所として各ブラウザーの違いを踏まえつつ、最適な場所として紹介

6章 ルール6:スクリプトは最後に置く
  5章とのからみもあるが、各ブラウザの並列取得について解説しつつ、ユーザのexperience向上のために、最後に配置することを推奨している

7章 ルール7:CSS expressionの使用を控える
  使ったことがないのであまりよく知らないのだが、きちんと理解しないで使うとブラウザをクラッシュさせかねないらしい

8章 ルール8:JavaScriptとCSSは外部ファイル化する
  外部ファイル化してキャッシュされることを期待する点と、インラインに記載することによるパフォーマンスの向上を解説

9章 ルール9:DNSルックアップを減らす
  ルール1で示されているHTTP1.1の平行ダウンロードとのトレードオフだが、対象となるホストを少なくすることで、DNSのルックアップを減らすことができる。また、TTL(Time-To-Live)値の設定に関する指針や、OSやブラウザーのDNSキャッシュに関しても解説
  
10章 ルール10:JavaScriptを縮小化する
  JavaScriptの「縮小化」(スペース/改行/タブの削除)と「難読化」(変数名を縮小したりコードを読みにくくすることによってサイズを圧縮)に関してメリットデメリットと効果測定結果についての解説

11章 ルール11:リダイレクトを避ける
  リダイレクトは単純にHTTPの数を増加させる。サービスの提供者側がリダイレクトを行っている理由はいくつか考えられるが、それぞれのケースにおける回避方法や代替案などを提示している。

12章 ルール12:スクリプトを重複させない
  サイトの規模が大きくなったり、同一のページで同じスクリプトを重複ロードしがちです。キャッシュの重要性を再度強調しているのと、サーバサイドにスクリプトの管理モジュールの導入を提案してる。

13章 ルール13:ETagの設定を変更する
  恥ずかしながら私はETagの存在を知らなかった。サービスを1ノードで提供している場合は関係ないが大規模なクラスタリング化を行った場合、コンポーネントのキャッシュに問題が発生することを指摘している。

14章 ルール14:Ajaxをキャッシュ可能にする
  今までのルールをAjaxにもきちんと適用すべきだというおさらいです。ルール4,9,10,11,13の徹底と、URLのつけ方に関する注意事項が書かれている。

15章 全米トップ10サイトの分析
  1章から14章を読んだ上で、この章を読むとちょっとした「コンサルタントになれるかも」症候群にとらわる。著者が全米トップ10サイトを分析した上で問題点などをあげているので、「おれがコンサルタントになってこのページを改善してやろう」などという勘違い気分に浸れてなかなか楽しい。

 この本はインターネット向けWebプログラマー必読の書であると思う。


RESTful Webサービス [書評]



RESTful Webサービスを読了...したのが1月で、すでに4ヶ月がたってしまい思いっきり旬な時期を逃してしまった。

 著者がここまでシンプルさにこだわっているのには新鮮な驚きがあった。SOAPの利点として「Eclipseのプラグインさえあれば簡単だよ」といったことをたまに見かけるのだが、「複雑なものを複雑なものでラップして楽に使えるようにする」という方針には私もだいぶ違和感を感じていたところだ。しかしここまでシンプルさに徹することを主張するというのはなかなか出来ないことだ。この著者は一般のプログラマーが妥協しがちな小さな複雑さを見逃さず、徹底的に「シンプルさ」を追求し、次期HTMLの仕様はこうあるべきだという主張まで行っている。

  • HTTPの仕様(原則)を徹底的に利用
  • クライアントとサーバ間をステートレス化することによる疎結合の実現
  • あるべきURLとは
  • 拡張子はどうすればよい
  • レスポンスとして望ましい内容やマイクロフォーマットとは
  • 各言語のライブラリの紹介
  • 現存するWebサービスの紹介と改善提案


 等々、広範囲の内容を網羅している(さすがにRESTful Webサービスだけで500ページ近くも費やしただけはある)



 ステートフル/ステートレスの議論にはあまり触れないが、誰の役にも立たないコメントであることは承知の上で「そんなもん作る対象によって変わるに決まってるっしょ」という私の主張を書いておきたい。

 企業向けとしてはまだまだ普及していないWeb2.0系の技術ではあるが、設計の指針としてまた次の流れを掴むという意味でもエンタープライズプログラマーにとって必ず役に立つ内容である。コンシューマ向けWebプログラマーだけでなく、そういった方々にもぜひとも読んでもらいたい一冊である。


藤巻健史著 「マネーはこう掴む」 [書評]


 昨年の夏に発売された「マネーはこう動く」で見事に予想をはずした著者であるが、現状の状況をどう見ているのかちょっと気になって読んでみた。
 著者はトレーダーとして有名人ではある。邦銀からJPモルガンに転じて儲けまくったが、最後の1年はトントンとなり、その後ソロスのクォンタムファンドでは1年とたたないうちに首になっている。その後は投資顧問会社の運営と、自分でポジションをとってトレーディングを行いながら本の執筆やセミナー活動、テレビへの出演などもこなしておりマルチタレントさながらの活躍である。
 個人的にお会いしたわけではないが、本の文体やメールマガジンを読む限りではとってもフレンドリーかつひょうきんな人のようだが、何より尊敬できるのは一貫した投資哲学と頑固なまでのこだわりである。


 著者の見通しを大雑把に解説すると、現在の日銀による低金利政策で過剰に供給された流動性によるインフレ要因がつみあがっており、長期スパンにおいて株高、土地高による資産インフレと金利高を予想している。これに合致する著者のポジションは(現在の低金利で)借金して株や土地を買い、さらに債券のショートまでするという徹底振りである。為替に関しては円安による経済浮揚を政府に提案しているが見通しとして著者の意見を私はしらない。

 最初に書いたように現在の経済状況は、前著「マネーはこう動く」の発売直後から著者の予想から外れた方向に動いており、それに関して著者が現在どういう意見を持っているのか是非知りたいと思って読んでみたわけだが、その点に関してはあまり深く掘り下げられた内容は見当たらなかった。しかし短いながらも簡潔に意見表明はなされており、著者のトレーダーとしての信念の強さを知った。ここに彼が「伝説のトレーダー」と呼ばれた一端を垣間見ることができる。

 
【はじめに】 より引用
 残念なことに、前作『マネーはこう動く』を上梓後、サブプライムローン問題が深刻化し、今日(2008年1月)現在、前作で書いたことのすべてが反対方向に動いています。しかし、私自身は自分の信念、予想はまったく変えていませんし、自分の資産運用方も変えていません。<中略>
 もし、発売当日、この本での私の予想が外れていたとしても、好機(チャンス)が後ずれしているだけだと思います。


さすがである。


 あれだけ世界中でサブプライムだ信用収縮だと騒がれ、株価ががんがんに下げた上に、為替も金利もポジションと反対に動こうがいささかも動じていない。


 かわって本書の内容だが、デリバティブ未経験者へのデリバティブの紹介と、著者が発行しているメールマガジン読者から質問をつのった上で質問者を集めて回答をするという方法で構成されており、ターゲットとしては株の現物しか経験していないようなユーザに広くデリバティブを紹介する内容となっている。帯にも「金融が基本からわかる実践的入門書」とあり、ある程度の知識がある人であれば通勤電車の往復でも十分読めるような軽い内容である。
 なかでも面白いのは著者の息子である健太からの質問である。さすがに家族だけに遠慮がなく
『商品先物には実需のリスクヘッジが必要なのはわかるけど、日経平均の先物と賭けマージャンの違いがわかんない』とか、とてもほかの質問者が聞けない(かつ一般の人が日頃から感じるような)質問が飛び交い、受け答えも明瞭でここは役に立つ人も多いのではないかと思う。
 この本の内容では物足りないという人には「金融マーケット集中講義」がお勧めである。こちらは日銀の役割やディーラーがよく使うデリバティブ等の金融商品について可能な限りわかりやすく解説されている。内容が一部高度だが脱入門を目指して、幅広い金融商品知識を身につけるためには「必読の書」だと思っている。
メッセージを送る
RSS RSS

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。