年末に向けて本を書く

結城浩

2004年12月1日〜30日

2005年に出版された 『プログラマの数学』を書いているときの様子です(12月分)。 何とか脱稿して、校正に入れたようです。

目次

2004-12-01 20:06:40 - 本を書いています

本を書いています。

もう、私の校正も飽和状態になってきているので、 脱稿直前なのだとわかります。 今日は図版を再整理して全部のページのPDFを作成し直し、 「更新版」としてレビューアさんに送りました。

読み返しながら(読み返すのはもう何十回目だろうか)、 私はすごく幸せな気持ちになりました。 この本、とっても面白いです。 当たり前のように思える題材なんだけれど、 読んでいるうちに妙に心や頭が活性化して、 新しい目が開かれるような気分。 何だか仕事を離れて、ついつい読み返してしまいます。

(例によってライターズ・ハイ(?)です)

2004-12-03 09:19:50 - 本書き、一段落しました

このところずっと書いていた本の執筆が一段落し、 編集部に原稿と図版ファイルを送りました。 みなさまの応援とお祈りを感謝します。

レビューアさんから届き始めたレビューは、 これから校正をする途中で織り込んでいく予定です。

2004-12-03 09:26:35 - 執筆作業のログ分析

原稿はCVSで管理しているので、 作業ログを元にして月ごとの作業量を調べることができる。

# cvs logの出力から月ごとの作業量を調べる
use strict;
my %ins_count;
my %del_count;
my %all_count;
my %inc_count;
my %total;
while (<DATA>) {
    chomp;
    if (m|^date: (\d\d\d\d)/(\d\d)/(\d\d).*lines: \+(\d+) \-(\d+)|) {
        my ($year, $mon, $day, $ins, $del) = ($1, $2, $3, $4, $5);
        my $key = "$year-$mon";
        # my $key = "$year-$mon-$day"; # 日ごと
        $ins_count{$key} += $ins; # 追加行数
        $del_count{$key} += $del; # 削除行数
        $all_count{$key} += $ins + $del; # 変化行数
        $inc_count{$key} += $ins - $del; # 増加行数
        $total{ins} += $ins;
        $total{del} += $del;
        $total{all} += $ins + $del;
        $total{inc} += $ins - $del;
    }
}
printf("%7s: %8s %8s %8s %8s\n", 'Month', 'All', 'Ins', 'Del', 'Inc');
foreach my $key (sort keys %ins_count) {
    printf("%7s: %8d %8d %8d %8d\n", $key, $all_count{$key}, $ins_count{$key}, $del_count{$key}, $inc_count{$key});
}
printf("%7s: %8s %8s %8s %8s\n", 'Total', $total{all}, $total{ins}, $total{del}, $total{inc});
__DATA__
(以下、cvs log *.txtの出力をそのまま貼り付ける)

実行結果は次の通り。

  Month:      All      Ins      Del      Inc
2004-02:      474      456       18      438
2004-03:      918      914        4      910
2004-04:      232      161       71       90
2004-05:     2709     1822      887      935
2004-06:     2634     1649      985      664
2004-07:     2967     2464      503     1961
2004-08:    10505     6014     4491     1523
2004-09:     3156     1809     1347      462
2004-10:    13199     7999     5200     2799
2004-11:    13306     8092     5214     2878
2004-12:      735      392      343       49
  Total:    50835    31772    19063    12709

これを見ると、

  • 全体で11ヶ月(2-12)
  • 実質は7ヶ月(5-11)
  • がんばっているのは3ヶ月(8, 10, 11)
  • 変化量(All)は月に2500〜13000行程度。
  • 増加量(Inc)は月に1000〜2000行程度。

ということが見えてきます。 いえ、だからどうというわけではないんですが。

大雑把な皮算用をすると… たとえば「月に2000行増加を半年」「月に1500行増加を10ヶ月」「月に1000行増加を1年」 という感じで本が1冊できる勘定になるでしょうか。

ひと月20日で計算したとして、 月に1000〜2000行なら一日50行〜100行か。 ふむふむ。それは体感と何となく一致している。 それから、最終原稿(Inc)以上の量を、書いた(Add)後で削除(Del)しているというのも、感覚的に理解できる。 まあ、いずれにしても、気の長い話ですわね、奥様。

よく考えてみると、 プログラムだってそのくらいですよね(「書く行数」ではなく「デバッグ後の結果の行数」)。 月に1000行〜2000行。

以下は、過去の執筆ログに関するリンク。 厚さがいろいろだから直接比較はできないけれど。

2004-12-06 10:02:02 - レビュー

次男が風邪を引いていて、朝方眠り続けているため、 朝食の時間は恐ろしいほどに静かだった。 朝食後、奥さんはソファでアマゾンから届いた国語教育の本を熱心に読んでいる。 私は食卓で白いA4の紙を広げ、来年書こうと思っている本のアイディアを思いつくまま書き留める。

午前中はレビューアさんからのメールを何点か検討して、 各章の原稿ファイルの末尾にメモとして付記。 校正の段階でここにメモしておいたことを反映する予定。

土日を過ぎると、レビューアさんからのメールが増える。 お休みの日にわざわざ結城の原稿を読んでくださることに感謝。

今回は、レビューアさんの人数が少ないことと、 すでに原稿書きを終えていることもあって、 レビューアさんには比較的多くお返事を書くことができている。

2004-12-08 10:09:40 - よい天気

今日は青空が広がるよい天気です。

先日脱稿した原稿は編集長さんが今ごろ一生懸命読んでいらっしゃることでしょう。 おそらく数日すると、山ほどの疑問点と確認事項などがやってくるに違いないと踏んでいます。

それと並行して、結城が個人的にお願いしているレビューアさんからは、 ときどきレビューが送られてきます。 結城はそれをていねいに読みながら、改善点をメモにまとめています。 直接原稿ファイルを直してしまうと、 編集部に送ったバージョンとのマージが難しくなるので 章ファイルの末尾に書き足す形式にしています。

今回レビューアさんは特に公募をしませんでした。 以前レビューをお願いした方の中から数人を選び、 メールで「引き受けていただけませんか?」という打診をしたのです。 いつものように報酬なしのボランティアなのですが、 多くの方が快く引き受けてくださって感謝しています。 また都合が悪くてできないという方からも、応援のメールをいただきました。

レビューアさんからのレビューを読んでいると、 ものすごい間違いを指摘されて愕然としたり、 楽しんで読んでいただけてうれしくなったり、 ある先生から「この部分、授業でちょっと使わせてもらいました」といわれて光栄に感じたり…と、 なかなかエキサイティングです。

ものすごい間違いの例: 「見落とさない」という主旨の文章のところで、 「見落とし忘れが起きないように」と書いていました。 「見落とし忘れ」って何だよ > 自分。

2004-12-20 09:42:28 - 第1章の校正

編集部からやってきた疑問点約300個と戦う。 今日は第1章の分、約45個。

2004-12-21 10:01:43 - 第2章の校正

今日も淡々と校正。 今日は第2章の分、約65個。 それから、レビューアさんからの意見を加味した修正などを追加。

2004-12-22 09:39:26 - 第3章の校正

今日も淡々と校正。 今日は第3章の分、約32個。 それから、レビューアさんからの意見を加味した修正などを追加。

2004-12-24 10:30:46 - 第4章の校正

今日も淡々と校正。 今日は第4章の分、約38個。 それから、レビューアさんからの意見を加味した修正などを追加。

まあ、何とか、形になったか。文章を書くって、難しいなあ。

2004-12-24 18:24:45 - 疑問点

編集部から後半の疑問点約190個がやってきた。

2004-12-27 09:48:26 - 第5章の校正

今日も淡々と校正。 今日は第5章の分、約50個。 それから、レビューアさんからの意見を加味した修正などを追加。

ここまでで、 編集部からやってきた「はじめに」から「第5章」までの疑問点への返事ができたので、 いったん送信する。

気分を変えて、第8章の校正を半分ほど行う。

これからの予定は、以下の通り。

  • 28日(火) - 第6章の校正
  • 29日(水) - 第7章の校正
  • 3日(月) - 第8章の校正の残り
  • 4日(火) - 第9章の校正、編集部へ後半送信

2004-12-28 10:36:18 - 第6章の校正(前半)

今日も淡々と校正。 今日は第6章の前半(約21個)と、第9章の前半(約10個)。 それから、図版の修正3点。

2004-12-29 11:19:14 - 第6章と第9章の校正

今日は雪。

降っても照っても(by マドレーヌ)淡々と校正。 第6章と第9章が終わり、第7章の図版を一点入れ替え。 残りは第7章と第8章。

複数のレビューアさんから、非常に関連性の高い指摘があったので、それを参考にして加筆と修正を行う。 なんと、先日から趣味(?)でやっていたHaskellの練習がここで役立ったことに驚く。

レビューアさんたちに、謝辞に関する確認のメールを出す。

レビューアさんからの「感想」の部分を元にして、 「読者の声」のページの準備をはじめる。

2004-12-29 11:38:09 - 本を書きながら思うこと

結城はいつも、すでに本がたくさん出ている分野であっても、 「新しいひと味」が何かしら加わっている本を書こうと思っています。 自分が過去に書いた本とも「何かが違う」というものにしようと思っています。 ほんのちょっとでもいいから、毎回「新しいチャレンジ」があるように心がけています。

そのため、ときどき不安になってしまうこともあります。 たとえば 「暗号本」。これは結城がはじめて書いたプログラミング以外の本です。 書いている私は楽しんだのですけれど、 読者の方々が楽しんでくださるかどうか、ドキドキものでした。

幸い、予想をはるかにはるかに上回る読者が楽しみつつ読んでくださったようで、 ほんとうに感謝です。

いま書いている本は、来年の春ごろに出版になると思います。 この本が、この本を必要としている読者のところに届けられますようにと、 神さまにお祈りいたします。

2004-12-29 14:28:04 - 第7章の校正

何だか雪がたくさん。

一つ一つていねいに校正。 まるで、世界に存在するのは、 現在目の前にある問題たった一つであるかのような気持ちで、 1個1個ていねいに考えていく。

自分が一度にできるのは、たった一つだけ。

あわてない、あせらない。

第7章が何とか終わった。第8章もじわじわと進めていく。

2004-12-30 06:52:17 - 第7章の校正

編集部から来た疑問点への回答がやっとできた。送信。

これで今年の「お仕事」はおしまいかな。

あ、朝焼けがきれい。

※このとき書いていた本は、2005年に 『プログラマの数学』という形で出版されました。

レビューアのみなさん、編集部の方々、応援してくださるみなさんに感謝します。

神さま、ありがとうございます。