2013/04/05

Chef, Web, Unix 最近読んだ本がどれも良書だった件

最近読んだ本がどれも良書だったのでまとめて Blog up

 

入門Chef Solo は最近なにかとホットな Chef の入門書。

Kindle で買った初めての技術書でソースコードのあたりとかどうかなーと思ってたけど、いい!素晴らしい!ハイライト機能で要点を1ヶ所にまとめれるしね!出版社さま既存の紙書籍の Kindle 化もなにとぞよろしくお願い致します。

内容的には入門的な内容 + Chef を使った著者の感想 といった感じで、著者のブログ読んでる方ならご存知のとおり、とても分かりやすい日本語が心地いいです。

 

Webの創世 と Unixという考え方 は テクニックよりも ソフトウェア的な思想?哲学?そういったものをお勉強したく買いました。

思想とか哲学とか書くと固っ苦しいけど、前者は、えーそうなんだ的な話もちらほらりでしたし、後者はこれまで経験的にふんわり思ってたことをしっかりと日本語で形にしてくれたりとか、読書的にとても気持ちいい体験させてくれる良書でした。

 

入門Chef Solo - Infrastructure as Code

入門Chef Solo - Infrastructure as Code
伊藤直也 (2013-03-11)
売り上げランキング: 95

 

サーバ管理ツール、本書の言葉を借りれば 「サーバの状態を管理し収束させるためのフレームワーク」である Chef の入門書です。

環境構築大嫌いな私は、そこから解放されるべく、自分でも Chef 使ってみたんですけど

もうなんというかストレスフルだったわけです、学習が。

 

サーバの状態を管理するフレームワークである Chef なわけですから

  • コマンドライン使って set up する際の自由度を損なわないように配慮しつつ
  • 本書でもたびたびでてくる Chef を使う理由のひとつでであるところの「冪等性 = その操作を複数回行なって結果が同じになる性質」を保証しつつ
  • 現在のサーバの状態を直観的に把握できる程度の可読性も必要だよね

となった結果、 Chef を記述するために覚えねばならない概念が割りと多くなってしまっているのですよ。いあ、もうこれはしょうがない。

それらの概念は 本家 にまとまってはいるのですが分量が多く、しかもイングリッシュ。

 

そんな中、概念いっぱいあるけど、とりあえず Resources って概念だけ押させておけば Chef 使えるよね? という切り口で解説してくれてるのが本書。

Chef とは何か, Resources とは何か, どう使うのか, あたりが理解できたそのあとに、では Resources 以外の概念は、いつ使うの?, どう使うの? と話が広がっていきます。

Chef solo の基本が理解できたらば、サードパーティのライブラリ ( chef では レシピ と呼ぶ ) どうやって使うの? そもそも使うべきなの? 使うとしたらどういうときなの? といった話やら、入門Chef Solo というタイトルの範疇を飛び越えて、クライアントサーバ型の Chef の話と飛躍していく、という構成。

ひと通り読んでおけば、Chef のアウトラインが理解できるので、苦痛でしかなかった 本家 の膨大なイングリッシュなドキュメントが、困ったときに参照できる充実したリファレンスとして生まれ変わってくれるので幸せになれます。

 

余談ですけど、サードパーティのレシピ使うときは気をつけてくださいね。iptable 設定用のレシピ、よくわからないからとりあえず動かそうというノリで動かしたら 22番含めポートが全部閉まって鼻からうどんでましたから。

 

もう1つ余談になりますけど、本書にでてくる Unix ユーザ追加レシピのユーザ名はゲームのキャラクタでした!

 

Webの創成 ― World Wide Webはいかにして生まれどこに向かうのか

Webの創成 ― World Wide Webはいかにして生まれどこに向かうのか
ティム・バーナーズ-リー
毎日コミュニケーションズ
売り上げランキング: 188,953

 

ティム・バーナーズ-リーの著作をなんぞ一冊読みたいな、と Amazon を探したところでてきたのがこれだけだったというライフハック。2001年出版の本です。

ティムが Web のプロトタイプを作って HTTP の仕様を決めて、周囲に布教して世の中に広めていく様を描いた前半と、執筆当時にティムや W3C が抱えてた諸問題について語る後半とに大きくわかれます。後半なんか読むの苦痛・・と思ったら翻訳者が前半と違う人でした。

Web のそもそもの出発点がティムが関わる目の前のお仕事の不満を解消したいという不満ドリブンであったという話や、ティムが実現したかった初期の Web はブラウザにページの更新機能( リロードではなくアップデートね! )が実装されているものだったという話など、興味深い話がてんこもりでした。

ピーゴロゴロピーというモデムの音や、ページロード時のマシンのゴリゴリゴリゴリという音が、読みながら耳の奥で蘇ってきましたよ。

 

一方で後半で語られるプライバシーやモラル( アダルトコンテンツと青少年みたいな )の問題は、いまなお問題で根が深いのだな、と。

利便性追求するテクニカルな話はすごい勢いで進んでいくんですけどね。不特定多数が関わる利便性を阻害する動きってのはどうしてこう・・・まぁいいや。

 

印象的だったのが Web を作ったのが不満ドリブンだったいう話で。

Web って

  • 文書と URI( ティム的には URL ではなく URI って言葉を使ってほしいらしい ) が 1対1 であること
  • それぞれの文書が hyper link によって網の目状に繋がりあうこと

と、とてもシンプルなルールで成り立っていて、シンプルであるがゆえにスケーラブルなわけで、結果すごい勢いで広まって( 広めるために相当の努力をティムはしてますけどね! )はないですか。

こういうものをね、不満ドリブンで作り上げてしまうというのが、自分的には割りとショッキングと言いますか、すごいなーと。

目の前にある問題に対して、シンプルな回答を用意することで、その問題だけじゃなく、あれもこれも解決してしまう、というのは何度も見てきていて、自分もそういう発想したい、と常々思ってるわけですけども、どうにも頭が固くてなかなかできずにコンプレックスになっているというか。宮本茂コンプレックスと密かに呼んでるんですけども。

アイデアというのはなにか? | ほぼ日刊イトイ新聞

そうです。つまり、宮本さんによれば、 「アイデアというのは  複数の問題を一気に解決するものである」 ということなんですが、 この話を事務所のみんなにしたところ、 ものすごく感心されまして。

 

はい!コンプレックスをティムが作り上げた素敵な Web に垂れ流してみました!

 

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学
Mike Gancarz
オーム社
売り上げランキング: 73,421

 

LTSV 祭りのときにこのようなツイートを拝見してですね。

こんな顔になってしまったのが本書を手にとったきっかけです。

 

そういえば、もういい中年なのにソフトウェア哲学とか思想とか、まったく何も読んできてないよね、と。

内容はいたってシンプルで、小さく作って、早く試作して、と作っていくと幸せになれるよね、という話です。アジャイル導入とかベンチャー立ち上げあたりでよく聞く話。ちなみにこの本も 2001年の本な!

 

せっかく9つの定理にまとめてくださってますし、転載しますか。

参考: http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06406-9

  • 定理1:スモール・イズ・ビューティフル
  • 定理2:一つのプログラムには一つのことをうまくやらせる
  • 定理3:できるだけ早く試作を作成する
  • 定理4:効率より移植性
  • 定理5:数値データはASCIIフラットファイルに保存する
  • 定理6:ソフトウェアの梃子を有効に活用する
  • 定理7:シェルスクリプトを使うことで梃子の効果と移植性を高める
  • 定理8:過度の対話的インタフェースを避ける
  • 定理9:すべてのプログラムをフィルタにする

こんな感じに Unix に横たわる考え方を小さく切り出してまとめてくれてます。まさに Unix 的な書籍!

フォントも大きめで翻訳も優しく、何度も読み返せる作りになってます。ぜひ Kindle 化を!

 

個人的には、最後の「定理9:すべてのプログラムをフィルタにする」が割りと印象的で、

  • インターフェースを統一しておくと幸せになれるよね
  • エラー情報を stdout に吐くなよ?ぶっ殺すよ?

という話なんですけど、stdout と stderr と出力先が分かれてることにちゃんと意味があったんですね!

知りませんでした!!!!

 

以上!最近読んだ本がどれも良書だったいうエントリでした!

 

Comments