history

青木日記 RSS

<前の日 | この月 | 次の日>

2002-12-16

RHG

RHG の 16 章に致命的な間違いがありました。 詳細と訂正は今日か明日にはサポートページに掲載します。 読者の方々には深くお侘びいたします。申し訳ありませんでした。

RD

『たのしいRuby』は RD ですか。 インライン指定とかもそのまま使いました? RD の範囲を超える指定はたぶん手作業 (で伝達) ですよね。 索引は編集の方に頼むことになるのかな。

(14:21)

黒い本

あああ、そうか、RHG も黒いんだった。いや、なんかもうここまで悲惨な 間違いがあると手放しでは勧められないけどさ……。 なんかもう、書かないほうがよかったのかなあ、と悩んでるところです。 こんな間違い入りで出版してるんじゃ、もう他の本に関してなんだかんだ言えません。

(14:49)

間違いの少ない本を書くには

鬱になってるだけでは意味がないので再発防止策を考えることにした。 ただしここで考えるのはコンピュータ関係の専門書に限定する。

RHG に足りなかったものは二つある。

  • 時間
  • レビュア

まず時間。とにかく時間が足りなかった。 明らかに執筆時間の短いところに間違いが多い。 それも致命的な間違いが多い。

今回、執筆期間は約半年であったが、恐らく、あと一ヶ月使うべきだった。 進行が遅れていることを早めに察知して早めに締切をのばしてもらえば十分に可能だ。 だが今回は遅れていることを理解するのが遅すぎた。

ついでに言うと筆者の金と精神力が尽きかけていたのも締切が延ばせなかった原因である。 金はなんとかなったと思うが精神力が尽きたらどうにもならない。これを補充するには、 読んでもらって感想をもらうのが最もよい。とにかく「書いてばっかり」はよくない。 特に他に何もしないで書き続けるのは最悪である。徹夜や休日を無視するのもよくない。

次にレビュア。たとえばの話、出版前に akr さんにレビューしてもらえば 致命的な間違いはほとんど潰せたであろうことは明らかである。プログラムと同じで、 本も一人で書くのは無理がある。 できればその範囲に関して筆者を超える能力を持つ人間複数に査読して もらうのがよい。そのためにもやはり全体を書き終わってから一ヶ月は 余裕をとる必要がある。

また、レビューをしてもらうときはボランティアではなく、きっちり金を出すべきだ。 でないと確実に読まれていることを保証できなくなるし、双方に遠慮が出る。

最後に、間違いが多くなった RHG 独特の理由として、 ruby のソースコードにリアルタイムで追従していたという点が挙げられる。 書きはじめたのが 4 月であるのに対し、対象ソースコードは 9/12 バージョンだ。 普通に書いたのではこういうことはできない。 最初は 4 月のソースコードを見ながら書いて、 9 月に入ってから一気に全体をアップデートしたわけだ。 そのために原稿のフォーマットを工夫し、 ソースコード引用だけをインクリメンタルアップデートできるようにしてあった。

だが当然それでアップデートできるのはソースコードだけで、 解説は手動で直さなければならない。文章中で前後を参照しているときは そちらも直さなければならない。つまりバージョンフリーズの 9/12 から 締切までの短期間に相当な負荷がかかることになる。 事実、この時点で間違いが数点混入している。 たとえば mvalue_to_svalue() のあたりの間違いはこれが原因である。

この問題の対策はあまり考えられない。早めにバージョンを固定するしかないと思われる。 だが RHG の性格を考えると 1.6 を使うことはできない。 つまりこの点もやはり時間をもう少し使うしか解決法はなかっただろう。

結論。まずなによりあと一ヶ月締切をのばすこと。 そしてその間に再度のセルフチェックと有料のレビューを行うべきであった。

ちなみにこの方法でできるのは間違いの少ない本であって、良い本とは限らない。

(18:01)

補足

この内容ではまるでレビューをしてもらったかたが悪いように読めますね。 申し訳ありませんでした。決して読んでもらったかたに責任を転嫁するつもりではないんです。 実際のところ、全くレビューしていただけなかったら結果はより悪くなっていたでしょう。 ボランティアにも関らず原稿を読んでいただいた RubyBook ML の皆さんには本当に感謝しています。

それでも、有料の (責任を取れる) レビュアが必要だったということも やはり事実だと思います。プログラムをテストプログラムでテストするように、 本は人間によってテストされる「べき」と考えます。

図版のチェックですが、これは単純に、仕上げるのが遅すぎたのが原因だと 思います。執筆末期には dvi で出してましたから、これに EPS で 図版を入れていれば普通にチェックできるわけです。あと一ヶ月あれば そういうことができたと思います。

(19:05)

補足 2

それともちろん、執筆において筆者の責任が軽くなるわけではありません。 特に今回のミスは、明らかに自分で気付いてしかるべきでした。 この点に関して言い逃れをする意図は一切ありません。

(21:18)

処理落ち

RHG 掲示板のバグ報告と ruby-dev の net/http の話と rubyist のドキュメント話は 無視してるわけでも忘れてるわけでもなく、単に処理が追いついてないだけです。 少々お待ちください。

(22:00)

本日のツッコミ(全11件) [ツッコミを入れる]
たむら (2002-12-16 15:52)

う〜ん、間違えも含めてあれは青木さんだと思います>RHG
人間には、もちろん間違えも含まれてる訳だし。少なくとも「書かないほうが」てのは、「生まれてきて済みません」になっちゃうので、そこまで卑下しなくても。
ついでに、3倍速いのに決まってるじゃないか>ニュータイプ

Yuya (2002-12-16 16:17)

シャア専用?(笑)

たむら (2002-12-16 17:58)

英訳出版までに修正しませう>http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/59182

arton (2002-12-16 18:47)

図表をどうレビューに含めるかというのも入れてください。(全然お役に立てなくてすみません)

akr (2002-12-16 20:20)

個人的には(勤務先の手続きがよくわかんないので)有料でやるというのは気がのらないなぁ。

あおき (2002-12-16 20:33)

まあ、例えですから。

なひ (2002-12-16 20:53)

rubyもそうですが、正式リリースしないとバグ見つからない、ってのもありませんかね。というわけで細かくリリース(それじゃ青木さん食えないって

akr (2002-12-16 21:16)

でも、適切なレビュアが見つかるかどうかというのは難しい問題だと思う。

なひ (2002-12-16 22:42)

net/httpは暇なときにやりましょう。明示的には誰も困ってないし。

のりつぐ (2002-12-17 09:15)

黒い本(2) 出る前から予想できた(^^; (まだ見ていないけど…)

のりつぐ (2002-12-18 08:45)

結城さんはレビューアへの報酬なし派みたい http://www.hyuki.com/diary/dia0211.html#i13_12

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04