以前買ったbeautiful codeだけど、重いとやっぱり持ち運びに不便。ちょっと薄くしてbeautiful code1,2,3ぐらいに分けておけば嬉しいのになぁと思う。薄さ的にはEffectiveJavaの初版ぐらいがちょうど良い。
そんなわけでbeautiful codeは電車から自宅読みに変更。が、現在段ボール中で絶賛放置中。とりあえず読み終わった部分だけでも感想を。
1.C言語による正規表現マッチャの実装
著者はあのカーニハン。カーニハンの文章を読むなんて学部1、2年生以来だろうか。
+とかは無い機能限定版だが、30行程でよく書けるもんだ。よく考えられていて、読むのも楽しい。階乗とかフィボナッチ数列とかの退屈な再帰プログラミングよりよっぽど勉強になる。ポインタ演算とかいかにもカーニハンが好みそうなコードだ。
2.subversionのプログラムインターフェースについて。
むー、理解不足。イマイチありがたみが汲み取れなかった。
3.クイックソートの計算量を求める
クイックソートのソースを元にクイックソートの計算量をコードを削りながら調べる...という話。学術的な内容。教科書を読んでいるみたいだ。
4.探索アルゴリズムとチューニング
2分探索の正しい実装の話が興味深かった。学校の教科書や資格の参考書で2分探索を学んだ人にとっては目から鱗だろう。
(1)ど真ん中を求める (low + high) / 2 というコードに潜むバグ*
(2)ノードを辿る途中、探索対象に途中でブチ当たる確立
等について考察している。
* 404 Blog Not Found:(a+a)/2 == -a /* 半世紀もののバグ */
-------
ああ、後コレも年末ぐらいに読み終えたんだった。
実践 パケット解析――Wiresharkを使ったトラブルシューティング
実際に書かれているチュートリアルの通りに現実はうまくいかないんだろうけども、ネットワーク内を流れるパケットのスニッフィング(悪く言えばパケットの盗み取りだが..)をどうやるのか、ハードウェア、ソフトウェア両方の面から丁寧に書かれている。
同一ネットワーク内なら簡単にスニッフィングできるんだなぁと思った。
未だにネットワークには苦手意識があったりするのだが、この本は本当に基礎から書かれていた為、理解できない点はなかった。薄い割には中身が豊富な印象を受けた。