Skip to content

Latest commit

 

History

History
29 lines (16 loc) · 5.58 KB

foreword_edition1.markdown

File metadata and controls

29 lines (16 loc) · 5.58 KB

はじめに

夕食前に自宅で原稿を書いていると、5歳になる長男が保育所で拾ってきた石を見せに来たものです。見ると何の変哲もない灰色の石ころですが、本人にとっては大切なものだそうで、「ぜったいに捨てないでね」と念を押してきます。そのうちこうした“たからもの”の石ころが机の上に5個、6個、とだんだんたまっていきました。

思えば、この本もそんな石ころ集めから始まりました。ソフトウェア工学の大家、ジェラルド・ワインバーグの最近の著書に『ワインバーグの文章読本——自然石構築法』(翔泳社 刊)があります。これは、多作なワインバーグじきじきの書き方指南で、メモや引用といった文章の断片を“石”と呼び、この石を集めたり並べ替えたりすることで立派な石造りの建物やアーチを組み上げる、つまり一冊書き上げる方法を説明した名著です。「よし、まずは石を集めるか」。自然石構築法を知った私は、さっそくこれに取りかかりました。

本書の執筆にあたって集めた石は、すぐに膨大な数になりました。OpenFlowの仕様書や論文はもちろん、職場での雑談、ソースコードの切れはし、大学での講義、メーリングリストで見つけた投稿、雑誌やWebの連載記事1、気晴らしの読書やテレビ、昔よく聴いた夕方のラジオ番組、iPhoneに残っていた写真、とにかく大小いろんな色の石を、そこらじゅうから集めまくっては並べかえる毎日でした。

こうして集めた石の中には、けっして独力では収集できなかった貴重な石も多くあります。本書の原稿をGitHubで公開したところ2、たくさんの方々から100件以上のレビューをいただきました。石をくれる息子のように、こちらからお願いしなくとも善意でコメントを送ってくれる方が大勢いたのです。こうしたいくつかの石は、本書の重要な部分を占めています。特に第16章のTremaを使ったデータセンター、第17章のGoogleでのOpenFlowユースケース、そしてAppendix AのOpenFlowスイッチ自作法は、普通では絶対に手に入らない金ピカの宝石をいろいろな人からいただいたおかげで、何とか形にすることができました。

“石集め”協力者のみなさん(敬称略、順不同):
壬生亮太、宮下一博、石井秀治、金海好彦、@stereocat、高田将司、富永光俊、沼野秀吾、富田和伸、前川峻志、園田健太郎、大山裕泰、藤原智弘、空閑洋平、佛崎雅弘、阿部博、小谷大祐、笹生健、山口啓介、森部正二朗、高橋大輔、山本宏、橋本匡史、小泉佑揮、廣田悠介、長谷川剛、千葉靖伸、須堯一志、下西英之、角征典、高橋征義、早水悠登、弓削吉正、村田友範、上原正史、高宮友太郎、高宮葵、高宮優子。特に、次の方々には特別感謝です:@SRCHACK、栄純明、坪井俊樹、小谷大祐、黄恵聖、山崎泰宏、取口敏憲。

石はただ集めるだけではなく、必要な形に整形したり隙間を埋めたり、さらには磨き上げたりする必要があります。実は、私はもともとネットワークの専門家ではないので、ネットワークに特有な考え方や用語の説明に苦労しました。そうした部分を補ってくれたのが、ネットワーク研究者でありこの本の共著者でもある鈴木一哉氏でした。また私なりにも、石1つひとつの正確さにはベストを尽くしました。たとえばとある章に、酔っぱらいが三軒茶屋(東京都)から武蔵小杉(神奈川県)まで歩いて帰るというエピソードがありますが、私は本当に歩けることを体を張って実証したのです。

執筆と並行してやったのが、本書で取り上げたOpenFlowプログラミングフレームワークTremaの開発です。Tremaはもともと、その場しのぎで書いたソフトウェアを出発として、大量のテストコード、リポジトリサーバのクラッシュ、svnからgitへの乗り換え、二度の忘年会、いきなりの人事異動、インドとの長距離電話会議、を経験して鍛えられてきたフレームワークです。ずいぶんと曲折を経たものですが、まさしく石のような意思で乗り切りました。

私は、いいフレームワークといい本ができあがったと思っています。私のいいか悪いかの判断基準は、「まだ誰もやっていないことは、いいことだ」という単純な考えに基いています。Tremaみたいなフレームワークは、まだ誰もやってない。OpenFlowを正面きってここまで扱っている本は、まだ他にはない。だからどちらも私にとっては“いいもの”なのです。もちろん、本当にいいか悪いかは、読者のみなさんのご判断におまかせすることにします。

2012年12月1日
高宮安仁(@yasuhito)

Footnotes

  1. 本書のいくつかの章は、Software Design 2011年11月号〜2012年5月号に連載した『こんな夜中にOpenFlowでネットワークをプログラミング![Trema編]』を大幅に加筆修正したものです。

  2. https://github.com/yasuhito/trema-book