あなコン/執筆時の裏話

皆さんが裏話としてどんなのを期待してるのかわからないのですが、 とりあえず書いた本人にしかわからないことを載せておけばいいかと思いました。 だいたいどんな感じで執筆作業が進んできたか、雰囲気が伝われば幸いです。

はじまりは . . .

 この本が具体的に動き始めたのは2001年の4月頃。 私の後輩のお兄さんが出版社に勤めているというつながりで、 「本を書きませんか」という話をいただきました。 当初はグラフィクスの本だったり、OSやプログラミングの本もあり得ましたが、 結局最後まで残ったのはコンピュータ初心者向けの本という企画でした。 結局その方向で進むことになり、数ヵ月かけて内容を取捨選択しながら目次案を作りました。

当初の目次

 当時の打ち合わせメモはこんな感じです。 完成した本と同じところと違うところがあります。

初心者向けのコンピュータの原理本

対象
       コンピュータ初心者
       アプリの使い方ではなく、原理が知りたい人

内容のリスト----------------------------------------------

「その自動販売機の場合」(入力と出力と状態と)
       有限オートマトンの原理、
       すごろく、あるいは人生ゲーム

「みそ汁の塩分はいかほど?」
       エントロピー
       データ量≧情報量、確率、ハフマン符号

「記憶のカースト制」
       参照の局所性(プログラムカウンタとデータ)
       メモリの階層、コストと性能

「プログラムのかたち」
       OSのプロセス管理
       静的と動的、スレッド、プロセス、コンテクストスイッチ

「低級から高級まで」
       アセンブラ、構造化、オブジェクト指向

「全ては絶妙なバランスのもとに」
       トレードオフのいろいろな例(言語、CPU、性能とコスト)

「計算可能性」
       バグがなくならない理由、今のコンピュータにできないこと
       確率的アルゴリズム、乱数

「OSって基本ソフト?」
       OSの違いは美学(哲学、文化)の違い
       違うOSで暮らしてみよう

「コンピュータの過去と未来」
       コンピュータができたころ
       未来のコンピュータにできそうなこと

-------------------------------------------------------------
扱わないこと
       プログラミングの具体的技術
〜 2001年7月の打ち合わせメモより 〜

残った話題、落ちた話題

 自動販売機や味噌汁、カースト制という最初の3つなどはほぼそのまま生き残っていますが、 当初はOSのプロセス管理やプログラミング言語、 CPUやハードウェア設計なども本書で扱おうとしていたということがわかります。 このまま書いていたら合計500ページで発売が2004年になっていたかもしれませんね( 500ページもある初心者向けの本はあり得ないとは思いますけど)。

 コンテクストスイッチなどは、今騒がしいPentium4のHyperThreading?の話題とつながるので、 書いておいてもよかったかなあとも思いますが、 そこに持っていくまでにまた30ページくらいかかるでしょうから、 避けて正解だったかもしれません (ま、このへんは言いたいことがいろいろあるのでそのうちTDに書こうと思いますが)。

 ほかにも、完成した本には「トレードオフ」についての章が入りませんでした。 トレードオフとは具体的な個々の問題というよりも、 要は相反する条件で「どうバランスを取るか」ということです。 天秤座の私は「バランス」を考えるのが大好きですし、 コンピュータにはハードウェアでもソフトウェアでも、 どこを掘ってもトレードオフが出てくるので、時間と分量の制限がなければ書きたかったところです。 このバランスの取り方に、ハードウェアやOSの設計者の価値観や美学が色濃く反映されてますから。

 計算可能性やOSについては、話題をごくごく絞った上で最終的に残しました。 また、参考図書の紹介を、単なる名前だけでなくしっかりした説明文をつけて作ることも、 執筆当初からの予定に入れていました。最初は各図書の表紙写真まで載せようかと思っていたくらいです。 実際に店頭で手に取って参考にして欲しかったからです。

 また、当初のタイトル案はこんな感じでした。3番目ので出せたら面白かったかも。

  • 「コンピュータのひみつ」
  • 「コンピュータの原理の基礎の初歩の入門」
  • 「汝のコンピュータを愛せよ」

まあ、名前やタイトルを決めるのはとても難しいことです。

内容の次は方向性

 書くべき内容はこれでOKが出た(というより私に任せられた)ので、 次はどういう姿勢で、どういう読者層を対象にするか、ということを考えました。 出版社側としても

  • 「息の長い本にしたい」
  • 「『コンピュータの5大装置とは?』なんていうありがちな本は要らない」

という話でしたし、 私としても

  • 「今さら私がそんな内容の本をこの世に増やしてもしょうがありませんね」

ということで、 その時点で従来の本とはかなり違う方向性が決定づけられました。 ま、だいたい私が書いたら「ふつうの本」になるはずがないですし、 そもそも5大装置って何なのか今だにわかりませんから ^^;  本書は、プログラミングをしない、ごくごく一般の人向け(完全な初心者も含む)がメインの読者対象なので、 思いきって「義務教育を終えた、日本語が理解できる人」なら誰でも理解できる、ということを目標にしました。 ただし、コラムとか注の部分は除きます。 実際、log(対数関数)のところ以外は、 中学生より上ならほとんど誰にも通じる内容とレベル設定ではないかと思っています (が、一部にやっぱり難しかったという声あり)。 もし、本書を読んでわからないところがあった方は、 落胆せずにぜひ私に知らせてください。 ありがたく今後の参考にさせていただきます。 でも、少なくとも私が中学生のころを思い返すと、この本は無理なく理解できる範囲内だと思います。

そして走りはじめる

 2001年の7月末頃から執筆をスタートします。暑い時期でした。 とりあえず、目次案の中で書けそうなところからどんどん断片的に書いていきます。 書く順番やら前後のつながりなんてのは無視です。 2001年9月にはとりあえずのタイトルを「コンピュータを理解するということ」に決定し、 これに合わせて内容を取捨選択しながら膨らませていきました (このタイトルは出版1ヶ月前の2002年9月まで使われていました)。 書いている際にポコポコ生まれて来るたとえ話のアイディアなどは、 専用のファイルにリストアップしていきます。 執筆に使うのはもちろん重いワープロではなくて、テキストエディタです (ま、私の使っているemacsというエディタがソフトウェアとして軽いかどうかは疑問ですが、 ワープロよりはましです)。 聞くところでは、数百ページ単位の書籍原稿をMS Wordなどで書いているチャレンジャーな方もいるそうですが、 どんなすごい芸当を使って切り抜けているのか、私には見当もつきません (ちなみに以前、 私が60ページほどのものをWordで書いたときには怪現象が多発してそれ以上進めませんでした、 念のため)。

 前回と同様、書いた原稿の清書にはLaTeXを用います (こっちでもちょっとだけ触れています)。 LaTeXについては検索すればいろいろ説明が見つかると思いますが、

¥sum_{i=1}^{¥infty}¥alpha_{ij}  → latex.gif
LaTeXとはこういうもの

というように、左のようにテキストで書いたものが右のようにタイプセットされるというシステムです。 要するに、プログラミングのように清書を行なうためのソフトウェアですが、 理工系の論文やら学術書の出版には広く使われています。 下書き段階では、私もこれを使いました。 LaTeXなのは原稿を書いている段階だけで、 私が原稿を提出した後は、出版社の方でLaTeX原稿を参考にゼロからレイアウトして本を作成することになってます。 ゼロからと言ってもLaTeXのソースから変換するソフトがあるそうですけど。

原稿はこんな感じ

 エディタで原稿を書いている場面は、たとえば下のような感じ。 これは完成した本では170ページのところの原稿。 よく見ると「当り」→「当たり」など、完成版と微妙に表記が違うところが見つかります (もちろん、表記は自動で修正されるわけではなく、あとの校正の段階で全て自分で直してるわけですが)。

emacs_s.jpg
こんな感じで原稿を書きます

白い文字のところがそのまま原稿になって、色付きのところはLaTeXのコマンドだったり、 メモ書きだったり、表になったり、いくらか加工されて出力されます。 こういうファイルを10個ほど、合計で723KB、行数で19903行、作り上げたわけです。 原稿用紙だと800枚とか900枚くらいかもしれませんが、LaTeXのコマンドがあったり、 メモ書きが入ってたりするので、実際にはよくわかりません。 ま、とにかく、前2冊よりは明らかに大量です。

 で、LaTeXで清書された結果がこちら。これは完成版だと191〜192ページのところ。 図は2つとも自分で書いた下書きのままです(完成版と同じに見えますが)。

xdvi_s.jpg
LaTeXでタイプセットした原稿

出版社で実際のレイアウト作業がされた後(執筆期間のラスト1ヶ月くらい)を除いて、 執筆中のほとんどの期間はこの形式の原稿とにらめっこで作業を進めます (正確には、この元となるemacsのエディタ画面をにらんでる方が長いですが)。 A4で10ポイントなので、実際の本よりもページ数は少なくなりますが、それでも220ページくらいあります。 原稿がある程度たまってきたら、2ヶ月おきくらいに全てを印刷して、紙の上で赤ペンを使ってチェックします (下の「推敲生活」を参照)。

地殻変動

 2001年の暮れ、 「より初心者向け」「より長く通用する深い話題」へとフォーカスを移すため、 章の構成を大幅に入れ換えました。

章立ての単位を大きくして、合計を11章→6章に

  1. 自動販売機はコンピュータ理解の始まり
  2. その味噌汁の塩分はいかほど?
  3. 油田からパイプラインを引いてこよう
  4. 汝のプログラムを愛せよ
  5. 記憶のカースト制
  6. 顔の細道
  7. 見えないモノが触れない
  8. 気にならないインタフェースへ
  9. できないことを理解する
  10. 全ては絶妙なバランスの上に
  11. コンピュータの過去と未来
  1. その味噌汁の塩分はいかほど?
  2. 油田からパイプラインを引いてこよう
  3. 自動販売機はコンピュータ理解の始まり
  4. 記憶のカースト制
  5. 顔の細道
  6. コンピュータの過去と未来

まず、1章だった有限オートマトン(自動販売機)を3章にずらし、 2、3章を繰り上げて1、2章にしました。 これはコンピュータについて語りはじめる前に、 情報とその取り扱いについてを先に語る方がわかりやすいという意見があったからです (でも、その結果、一番難しい内容が最初に来てしまいました)。 誤植・訂正情報にあるP277の間違いを見逃していたのは、 この変更が原因です。 他にも、インタフェースやコンピュータの未来形についてはかなり削って5章に、 MacOSやWindows関連のGUIの話題はばっかりカット、 ウィルスやバグ、セキュリティの話題もカット、トレードオフやハードウェアデザインの話もカット。 まあ、しょうがないですね。 その代わり、各章が長くなったのでそれぞれの話題をより掘り下げるようにできました。

図を描く毎日

 2002年の2月あたりから、タブレットを使って図を描き始めます。 紙に描いてもどうせスキャンしなくてはならないので、最初から画像ファイルとして描きます。 JPEGだと線や文字の周囲が汚くなるので、TIFFかPNGで保存しておきました。 LaTeX原稿に貼り込むためには、スクリプトで一括してepsファイルに変換して使います。

drawing1.jpg drawing2.jpg
下書きはこんな感じ(左:203ページ、右:260ページ)

文章はいったん中断して、こんなのをひたすら200個くらい描きました。 楽しいけど疲れるしとても時間がかかりました。 下絵が描きにくいものは、ネットでいろいろ検索して見つけた情報を参考にしました。 これらの画像ファイルを全て出版社に渡して、本文のレイアウトより先にイラスト化を始めてもらいます。 下絵やイラストについてはこちらもご覧下さい。

我慢、我慢の推敲生活

 2002年の4月ごろには量からすると9割がた書き上がっていました。 ここから第1回の推敲です。 推敲はとても大切な作業なのに、 最近のコンピュータ関係の書籍には 「ひたすら書きなぐって、そのまま印刷所に送りました」という感じの本が多いのが残念です。 本が売れない理由の1つは、そんな熟成不足にもあるのでしょう。 まあ、時節モノの書籍だとそうなるのも避けられないのかもしれませんが、 今回の本は10年後、20年後を目指しているので多少締め切りを後ろにずらしてもらいました (当初の予定では2002年の春に発売だったのですが)。 実際のところ、内容に関しては5章(と6章の一部)以外は10年後にも書き直しなしで通用するはずです。

 「推敲」とは「詩や文章をよく練り込む」という意味の中国の故事が由来の言葉ですが、 今回の本の場合には「文章をより読みやすい、誤解されにくい状態へと変更していくこと」でした。 まさに「最適化」、"optimize"です。 たとえば、こんな感じで原稿をいじります(でも、あまりいい例じゃないなあ)。

[推敲前]

なにせ、特製シートをそのまま使う方法の利点は、 特製シートが人間にもすぐ読める形だ、という1点だけです。 人間とコンピュータが並んで座って仲よく特製シートを使うなら話は別ですが、 普通の自動販売機はそうではありません。 コンピュータだけに都合がよければ、それで充分です。 このように、特製シートを、 「コンピュータだけに都合がよい書き方」で書いて出来上がったものをプログラムと呼んでいます。

[推敲後](変更部分は)

なにせ、特製シートをそのまま使う方法の利点は、 特製シートが人間にもすぐ読める形になっている」というたった1点だけです。 人間とコンピュータが仲よく並んで座って特製シートを使うなら話は別ですが、ふつうの人も自動販売機もそんなことはしません。 コンピュータだけに都合がよければ、それで十分です。 その考え方に基づいて、 特製シートを「コンピュータだけに都合がよい書き方」で書いてできあがったものをプログラムと呼んでいます。

他にも、上の例だと出てきませんが、漢字とひらがなの配分を読みやすさの面から考えたり (どちらかが連続しすぎないようにする)、読んだときの語呂を考えたり、 副詞の位置を調整して正しい動詞との結び付きを強めたり、 わかりにくい部分は括弧書きで目立たせたり、 「ように」+否定形で生じる曖昧さを除去したり、 1つの文の中でもチェック項目はたっぷりありますし、 文と文どうしの関係も考慮しなければなりません。 もちろん、表現や文法上の問題だけでなく、内容そのものがわかりやすいかも確認します。 説明なしで専門用語を使っていないかや、別ページの内容と矛盾していないか、 後で説明すると言いながら忘れていないか、比喩がかえって説明をややこしくしていないか、 文章が図の中身と合っているか、 などなど。 いやー、本を書くのは本当にたいへんな作業です。

 大がかりな推敲のときには、プリントアウトしたLaTeX原稿に、赤ペンで厳しくチェックを入れていきます。 場合によっては編集者が直すときもあるそうですが、今回は全て私がやりました。 やっぱり、自分で考えて自分で書いた文章は、責任を持って自分で直し、自分で判断し、自分でOKを出さないとダメです。 私の名前で本を売り出すのですから。 もちろん、推敲ではなく「意見」という意味では出版社の方も含めて実に多数の人から助言をいただきまして、 感謝の念に堪えません(でも、あんまりここを読みそうにない人ばかり……)。

draft.jpg
プリントアウトしたLaTeX原稿に赤ペンを入れる(256ページ)

こんな感じで、どのページも数十箇所はいじるので、 1ページを直すのに1時間以上かかるときも少なくありません。 しかも、この写真は2回目の推敲のときの原稿なので、これでも赤ペンの書き込みは少ない方です。 この紙の上での作業を、その時点で完成している原稿の頭から最後まで行なった後、 赤ペンの修正をLaTeXの原稿テキストに全部反映させます。 その時にまたいじりたくなるところもあったりして、なかなか完成に近付きません。 この推敲作業を1回やるのに1ヶ月以上は軽くかかります。 1度目の推敲作業と並行して、4章以外までをほぼ書 き上げたのは、2002年の7月頃でした。

どの章もほぼ出揃ったあとで、章のタイトルを次のように再度変更しました。

章タイトルを一部変更して確定

  1. その味噌汁の塩分はいかほど?
  2. 油田からパイプラインを引いてこよう
  3. 自動販売機はコンピュータ理解の始まり
  4. 記憶のカースト制
  5. 顔の細道
  6. コンピュータの過去と未来
  1. その味噌汁の塩分はいかほど?
  2. 油田のパイプラインと伝言ゲームの連続
  3. 自動販売機はコンピュータ理解の始まり
  4. 記憶のカースト制
  5. 顔の細道
  6. 師宣わく「未来は常に移り変わっておる」

6章のタイトルになかなかいいものが見つからず、 「過去と未来」じゃ何もひねりがないと困っていたのですが、 ふと6章の副題だった「未来は常に移り変わっておる」("Always in motion is the future.")という ヨーダのセリフをそのままタイトルにすればいいことに気付き、メインとサブのタイトルを入れ換えました。 これは編集の方とディスカッションしてる時です。 2章の方は、パイプラインの話が出てくるのは始めの方だけなので、 後半の内容も反映させるように変更しました。

 8月に2度目の推敲をしました。 なぜか突然動かなくなるエアコンと格闘しながら、 またもや膨大な量の最適化処理が繰り返されて、赤ペンのインクが何本もなくなりました。 しまいには赤に見飽きて、青ペンを使いました。 「動き回るお坊っちゃま」の節は2001年のかなり早い時期(=執筆当初)にアイディアだけは生まれていた のですが、結局一番最後に仕上がり、ようやく8月末までにほぼ原稿を書き終わりました。

 今回の作業を通して、私はかなりの完璧主義者な一面を持っているのだとわかりました (それはあくまで一面で、私の部屋や机の上の散らかり具合いを見れば完璧主義からは遠い気がしますけど)。 それでも、文章を追求する強い執念を持つことは、 私の文章にお金を払って下さる人々への最低限の礼儀だ、と私は思っています。 「神は細部に宿る」という言葉がありますが、 「まあ神様じゃないにしろ、こんだけやっときゃ何か宿ってるだろ」という気はします。

著者校正

 原稿を提出して数週間待つと、きれいにレイアウトされた印刷原稿が送られてくるので、 最後の格闘をします。

gera.jpg
著者校正用のゲラ刷りと最後の格闘

写真のような感じで、周囲の余白は大きめですが本そのままのレイアウトでプリントされてきます。 ここで逃すと全てそのまま印刷されてしまうので、 死力を振り絞って赤ペン片手に確認作業を続けます。 誤字脱字チェックは周囲の人を巻き込んで、多人数の目を使って並列処理でチェックしてもらいます。 面白いのは、読む人みんなが別の間違いを指摘するという点。 それぞれみんな別のところに着目しながら読んでいるらしいです。 著者校正の段階でも各ページでかなりの箇所をいじってしまって、 編集の方にはずいぶんご迷惑をお掛けしました(数百箇所以上、ってそれじゃ「校正」じゃないような)。 この作業が終了したのが2002年の10月頭でした。

本としての具体的なカタチ

 出版社の話では当初は256ページを予定してたそうですが、 4章と5章が意外と増えたりして結局は288ページになりました。 ページ数が32の倍数になってる本が多いのは、印刷の都合です。 そして、出版社からの提案で、まったくの初心者の人にも気軽に手に取って読んでもらえるように

  • インクの色は紺にして、重たいイメージを避ける
  • 紙をかなり薄くして、実際の厚みも重さも避ける

ことになりました。実際、それまでずっとLaTeXでA4にプリントした原稿を扱っていた私は、 完成した本を初めて手にして「か、軽い!」というのが第一印象でした。 使っているのは、通常の本の75%くらいの厚みの紙だそうで、 全体としては確かに「コンピュータのきもち」(216ページ)と同じくらいの厚さになっています。 表紙のデザインや宣伝文句、帯の文章などは全て出版社側で作成・決定されます。

価格

 値段は当初は256ページで2000円くらいを予定していました。 書店で「買うか・買わないか」を決める大きな壁が2000円のところにあると私は思うので、 ページ数が増えてしまったにも関わらず「なんとか1800円くらいに」とお願いしたら、 その案を通してもらえました。 しかも、-20円してさらに安く見せる小技も採用してもらえました。 類書と比較してみれば、 文字数とイラストの量からしたら定価2500円でもおかしくないのに、 「より多くの初心者の人にとにかく手に取ってもらう」という目的のために 出版社は思いきった決断をして下さったと思います。 いやー、これで会社に儲けは出てるんでしょうか。 あるいは、よほど売れると踏んだのか ^^;

そして発売へ

 著者校正のゲラが手元を離れると、もう私のすることはありません。 1年半ぶりに、心の平穏が訪れます。 本書のサポートページを作ったり、知人に連絡したりして、のんびりと発売日を待つだけです。 でも、発売前にさっそく誤植を見つけたりして、 人から指摘される前にとっとと公開しておきました。 それ以後は、裏話として特に書くようなことはありません (このページは「執筆中の裏話」ですし)。

知ってて読むと楽しい、ちょっとしたポイント

 さてここで、知ってて読んだらもしかするとちょっと楽しいかもしれないポイントを表にまとめておきました。 一度読み終わったあとで確認してみると面白いでしょう。

ページ場所内容
P21〜23,101,102海岸の写真こりゃ私の家から1分の海岸です。 写っている人物は全然知らない人です ^^; 右側の靴を持って歩いている人物が私だという説がありますが、それは間違いです(だって私が撮影したのですから)。 確かにそう見えないこともないですけど。
P21文章言わずと知れた文豪の作品です。
P34距離メータ私の車です。中古で買いました。MTです。 オートマもカーナビも嫌い。
P38モールス信号このメッセージは……。
P42まだらの紐まさにクライマックスですね。
P46「あり難い」「辞書っぽいレイアウトで」というリクエストに応えてもらいました。
P54デジタルマン私の下絵よりデジタルマンが仕事をしてないように見える……。
P62キャラクタもちろんイメージはドラクエ。ま、キャラクタが自分でしゃべってるのが変ですが。
P75〜78こっちもドラクエ風。
P89真ん中の絵下絵の富士山が裸婦像に ^^;
P90上の絵下絵にもありましたが、電線のカラスがポイント。
P94月面のレポーター下絵にはなかった怪しいキャラが……。
P102右の写真右側はJPEGになってるので、 人物の周囲に微妙なノイズがあります。
P142右側で自動販売機っぽいことをやってるのは特製シートだけで、 それ以外のプログラムはゲームだったり素数チェックだったり。時間がなくていじれませんでした。
P147私がモニュメントバレーに遊びに行ったときに撮った写真です。 写真ではわかりにくいですが、かなりの下り坂です。
P154旗を振る絵「まだらの紐」と来れば、「踊る人形」でしょう。 メッセージの意味は、プログラマ向けです。 でも原作にない文字があったり、ちょっと姿勢が違ってたりして難しいかも。 全員が旗を持ってますし。
※ 解読したというメールは1件だけ頂きました。
P167手品師どう見てもMr.マリックですな。
P186この絵の説明文はルパン三世の声で読んでください。
P195下の絵perlのGDモジュールを使ってプログラムで線を描いています。
P201バーコード手近にあった何かに印刷されてたものでしたが、 何だか忘れました。
P211図中のセリフ"Hallo"これ、イラストのタラジロウさんのうっかりミスだったらしいですが、 ロシア船の乗組員を表す意味で"?"をつけて怪しい英語として採用しました。
P234ヨーダとルークこの構図、Episode 6のあるシーンが元になってます。 本書で取り上げた「未来は常に……」のセリフはEpisode 5なんですけど、 適当なのが見つからなかったのでこうなってます。

終わりに

 以上、こんなに長い裏話を最後まで読んでもらってどうもありがとうございました。 お楽しみいただけましたか。 まだ本書を買っていない人はぜひ買ってから読み直してくださいね。

原稿執筆時のデータ

  • 原題:「コンピュータを理解するということ」
  • 執筆期間:2001.04〜2002.09(構想3ヶ月 + 執筆11ヶ月 + 推敲3ヶ月 + 校正1ヶ月)
  • LaTeX原稿サイズ:723104 byte、10ptのA4版で223ページ
  • 執筆環境:VineLinux2.0→2.5 on ThinkPad? i1124
  • エディタ:GNU Emacs 20.7.2 with YaTeX
  • 全面推敲:計3回