おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

Debug Hacks 刊行記念トークセッション「よしおかひろたかとミラクルな仲間たち、デバッグ道を語る」

ということで敬愛するよしおか (id:hyoshiok) さんとその仲間たちのお話が聞ける場だということで行ってきました。

とっても面白かったよ!

著者でありスピーカの大岩さん、大和さん、吉岡さん、吉田さん、安倍さん、コントリビュータの島本さん、面白いお話をありがとうございました。
またこの素敵なイベントに会場をご提供いただいたジュンク堂のみなさま、オライリー・ジャパン(以下オライリーと省略します)のみなさまにも感謝を申し上げたいと思います。


内容についてはよしおかさんのブログ d:id:hyoshiok:20090512#p1 にスライドが上がっているとおり、Making of Debug Hacks という感じの内容でした。

技術者が本を書くにはどうしたらいいか、いわば技術書 Hacks といった内容は他ではなかなか聞けないことだったと思います。

Speaker

当日お話いただいたのは次の5名になります。

  • 大岩さん:Debug Hacks 発起人の一人
  • 大和さん:     〃
  • 安倍さん:     〃
  • 吉田さん:仮想化まわりで引っ張り込まれた
  • 吉岡さん:取りまとめ役、Overview など。今回のイベントの総合司会
  • 島本さん:日本を代表するカーネルハッカーの一人。Contributor として参加

あともう一人 Contributor としては同じくカーネルハッカーの美田さんという方がいらっしゃいますが、残念ながら会場にはお見えになっていませんでした。

きっかけ

2008年5月のこと

  • Miracle Linux の中で Google の 20% ルールの適応を検討していた*1
  • 大岩さん:
    • やるとしたらソフトウェア開発にはあんまり興味がない
    • 本を書こう!
どんな本が欲しい?
  • dump とかアセンブラとかスタックとかの見方、使い方
  • 最初は皆目分からなかった
  • 社内ブログに載せたら結構ヒット数を稼げた

本にしたら売れるんじゃね?

「ミラクル出版局」発足
  • 当時、大岩さん、大和さん、安倍さんは隣同士の席だった
    • 盛り上がる
    • とりあえず会議してみようということで 5/19 サイボウズで会議予約
      • 会議名「ミラクル出版局」
    • 5/26〜30 第2回〜第5回
      • すごい盛り上がり
挫折と復活

話し合いの結果「これはいける!」となり、

  • 5/E いくつかの出版社に持ち込んだが……。
    • 「マニアック過ぎる」
    • 「ニッチで市場がない」
    • Linux だったら普通に管理者向けの本とかのほうが……」
    • 自費出版なら出せますがねぇ……」

めげずに 5/28 社内 ML で参加者募集

  • 6/5 吉岡さん、吉田さんが加わる
  • 時系列が前後するが8月には Contributor が加わっていただくことも決まる
  • 吉岡さんが 5/29 の Linux World Expo のパネルディスカッションに参加
    • オライリーのお知り合いに話をしてみる
    • 好感触! 打ち合わせの機会設定
Debug Hacks ついに始動
  • 6/6 オライリーさんと打ち合わせ
    • 他の出版社さんと比べると非常に前向き
    • 発売目標もここで仮決め (新人が多い4月)
      • これもオライリーさんからの提案だったとか。
      • 実際の発売は 4/25。ギリギリセーフ!
  • 6/12, 6/20
    • 目次作り込みしてオライリーさんに発送
    • 社内稟議の結果待ち
    • だいたい2週間と聞いていたのにこないので焦る……
    • でも3週間ちょいで 7/22 GO サイン!
コンセプト

まずは "Debug" に絞る

  • Debug とはソースコードに潜むバグをみつけ修正することである
  • 「トラブルシューティング」「回避手段」はデバッグではない
  • 対象環境も Linux に限定

ボツネタ

  • タイトル
    • "Linux" Debug Hacks
      • Linux のことしか書かないんだったら……と今でもよく言われる
      • でもこういうのは語呂大事だし
  • 表紙
    • ゴ◯ブリホイホイ
    • ゴ◯ブリそのもの → どっちも「キモイ」で却下
    • 金鳥 蚊取り線香 → 接戦で蚊遣り豚に敗れる
いざ執筆
  • 原稿管理はgit だろ!(by 吉岡さん)*2
  • 最初は知識もすでにあって書くことそのものが楽しい
  • でもだんだんプライベートをこれに捧げすぎて燃え尽きてくる
    • 書く内容も難しくなるし……
  • 毎週月曜編集会議
    • Q&A がすごい面白い
    • 本人には当たり前な切り口でも、なぜそこからデバッグを開始したかというのは非常に現れにくいノウハウ
    • これを引き出せたのはすごい価値!
  • Remote での執筆(島本さん)
    • git サーバは Miracle Linux 社内にあったので進捗が見え辛い
      • マージ作業は安倍さんにお任せ
    • 時差がつらい
    • ネットだけでのやりとりだと、体調くずしてネットにアクセスできなくなると非常に怖い
いよいよファイナルステージ

オライリーさんからは

「2月中に原稿をいただかないと、4月に本は出ませんよ!」

とキツく言い渡される

  • 2/11(祝日)大校正大会
    • 章立て変更
    • 表記揺れチェック (用語統一)
    • 用語集・索引の作成
      • 「校正」の範囲越えてね?
  • 紆余曲折あって2/24に初稿提出
  • 3/16 再稿提出
  • 4/20 オライリーさんに見本届く
  • 4/21 Miracle Linux に見本着 → 打ち上げ!
  • 4/25 発売!
Debug Hacks Conference 2009
  • もちろん Debug Hacks の発売記念イベント
  • 100 人で募集かけたら即日で埋まってしまった (^^;)
  • 会場の IIJ さんに掛け合い追加で 40 席確保
  • 大盛況!

Q&A

Q
どの Hack が誰の手によるものかは分かりますか?
A
巻末の Hack 一覧に書いてあります。
Q
何社ぐらいの出版社に声を掛けたか?
A
一桁ぐらい。ただし、今ひとつ反応が悪かったのはマーケティングの問題かもしれない。編集者にまで思いが伝わっていなかったのかもしれない。他の出版社でも編集者にはこの本を出したかった人はいるかもしれない。
Q
社内リソースの流出などについては問題にならなかったのか?
A
オープンソースの世界でのデバッグのノウハウは会社ではなく開発コミュニティに帰属するものだと思う。
Q
お金の分配については?
A
ページ数か Hack 数か、とにかく印税を比率で分配した。
Q
校正で用語統一を行ったということだったが、最初に用語辞書を作っておくなどの工夫はされたのか? 編集さんからは初稿提出前に指導はなかったか? 社内マーケなどからのチェックはあったか?
A
用語辞書は一応作ったのだが、各人書くのに一生懸命で守られなかったところはある。編集・マーケとも特にチェックはなかった。
Q
フリーライセンスで配るようなことは考えられないか?
A
一般書店で入手可能なこと、参照しやすいこと、宣伝効果などを考えると書籍という形態はまだまだ意味があり、その形態にお金を払うと考えてほしい。また、デバッグのノウハウなどについては折にふれブログで公開しているので、Debug Hacks の形態にこだわらなければ無償で読むことができる。
Q
Private との兼ね合いはどうしていたか?
A
(大岩さん)一人なら折れていたかも知れないが、チームなので頑張れたところがある。
(大和さん)週末早起きできる体質なので、奥さんが起きてくるところまでが勝負だった。
(安倍さん)家族が本を書くということにまるで理解がなかったので、土曜の夜ぐらいしか時間が割けなかった。しかしそれもやりすぎると、日曜日の午前に付き合ってくれないと家族の視線が厳しいのでつらかった。
(吉田さん)独り身なので却って緊張感を保つのが難しかったが、月曜の編集会議はそういう意味でよかったと思う。
(吉岡さん)私はぜんぜん緊張感を感じなかったんですが……(会場爆笑)

サイン会などなど

ということでサインもらってきました。
Tシャツは、いやほらオレ現役のプログラマじゃないでしょ? だから身を引いたんです、とかいうのは嘘で、じゃんけんにまけただけです。

ちょっと面白かったのはオライリーの編集さんと話せたことやね。
印刷業界の話とかいろいろ聞かせてもらった。
「展示会とかいらしていただけるならもっと踏み込んだ話ができると思いますが」とか言ってもらってしまった。どうしよっかな。オイラの仕事ではないので人に振っておくか。振った人が人脈をいかしてくれるかどうかはわかんないんだけどねー。全部自分で抱えるわけにはいかないからさっ。


ともあれ楽しいイベントでした。
関係者のみなさまに再度ありがとうございますです!

*1:結局ボツったそうですが。

*2:本からは落としたけれど、git のログの追い方とか二分探索でどこでバグを混入したか調べる (これは賛否両論あるみたいですが) などの方法もデバッグテクニックとして使えると思う、だそうです。