圧倒亭グランパのブログ

30年後の自分にもわかるように書くブログ

【技術書典5】執筆から入稿までをちょっとまとめておく

長かったーーーーー。

無事、入稿が終わって 10/08 には物理本を頒布できます。

台風25号さんには来場をご遠慮願いたいです。(来たら来たで「やっぱり技術書典だな」となりますが)

目次

頒布情報

新刊と既刊、合計2種類を頒布します。

  • 【新刊】「におうコードの問題集 〜セキュリティホールに立ち向かう編〜」
    • 160ページ
    • 1,500円
    • 緑色表紙
  • 【既刊(技術書典4)】「におうコードの問題集 〜バリエーションに立ち向かう編〜」
    • 84ページ
    • 1,000円
    • 青色表紙
  • 新刊&既刊の同時購入
    • 2,000円

詳しくは下記リンクからどうぞ。目次と簡単な内容を載せています。

techbookfest.org

新刊は「より問題集っぽく」しました。 前回に引き続き、 @mamerimochi さんが描いてくれたキャラクターがかわいくて、書いてて楽しかったです。

締切駆動開発

自分の中で、技術書典のテーマは「しっかり理解しておくべきだが曖昧な知識」から選んでいます。

技術書典で本を出すということは、「人に説明できるレベルまで理解した上で言語化してアウトプットする」をしなければならず、しかもそれを「絶対的な締切までに行う」ということを実現しなければなりません。これはある意味では強制的に勉強できる環境であり、効果は大きいと思います。とはいえ、興味のない分野を選んでしまうとそれはそれで地獄なので、絶妙なテーマを選ぶようにしています。

それが今回は「セキュリティ」でした。 下手なことを書くとマサカリが飛びまくる分野ですが、そうやって萎縮しているといつまで経っても身につかないので、思い切って書きました。もし購入された方で指摘点がある方は、下記のリポジトリに是非issueを立ててください。

github.com

修正した場合は、電子版への反映とブログでの告知をしようと考えています。

こうして締切駆動開発を行うと、いままで曖昧だった知識がパッと明るくなり、さらに興味が出てくるという好循環になっています。そういう意味でも技術書典はいいなぁと思っています。

Re:VIEW+CSS組版

詳しいことは下記の記事を御覧ください。

at-grandpa.hatenablog.jp

この記事の環境で最後まで書ききったので、率直な感想と試行錯誤の結果を書きます。

  • CSS組版できるのは嬉しい
    • 組版に詳しくなくても、CSS初心者でも、なんとかいい感じにできた
    • 「ここの余白をちょっと広げたい」とか「見出しのデザイン凝りたい」とか、CSSでググればすぐできる
    • 高価なソフト不要
  • 「全部いい感じ」ではない
    • 目次の「部」や「章」が思ったとおりに整列してくれなかった
      • Re:VIEWのhtml出力の仕様なのか問題なのか
        • 時間なくて原因特定は後回しになった
    • 大扉とか「第一部」とかのページデザインがCSSだけではできなかった
      • html要素が少なくて自由度がなかった
      • 適切なclassとかつけたかった
    • 目次のリンクがうまく動作しなかった
      • class名が微妙に異なっていた
  • どうやって「いい感じ」にしたか
    • 出力された html を ruby + nokogiri に通す
      • このフィルタで無理やり解決
      • nokogiri神...!
    • 上記の問題は全て解決した
  • vivliostyle + puppeteer
    • dockerでvivliostyleサーバー立てて、puppeteerコンテナからアクセスしてPDF出力
    • 100ページあたり超えてくると、全部レンダリングする前にPDF出力してしまう問題
      • puppeteerの page.waitForSelector() とかいろいろ試したがなかなかうまくいかない
        • 「DOMが構築されるまで待つ」とかはできるが、CSScounter() の処理を待つってできない?
        • 結局よくわからず、sleep入れて解決
    • もっと早く出力してほしい
      • 上記のsleep合わせて、2分くらいかかる
        • 先日の自分「入稿は明日昼12:00だぞ!!2分長い!!」(全部自分のせい)
    • vivliostyle-viewer と PDF 出力結果が異なる
      • vivliostyle-viewer側のデザインが崩れる
      • フォントの問題もありそう
        • pdf出力に必要なフォントは dockerイメージ内にインストールしているが、ローカルにはなかったりする
          • 入れればうまくいったのかなぁ
          • 闇が深そうだったので手を付けなかった
        • 詳しい原因は特定しておらず
      • 結局、修正してはPDF出力し(2分待つ)、また修正 ... という地獄
        • ここはなんとかしたい
  • もっと早く試行錯誤すればよかった
    • 毎回言ってる
    • 上記のようなことがあったので
    • 終盤、PDFがうまく出力されないのは精神衛生上良くない
    • なんとかやりきったが、睡眠時間が犠牲に

このあたり改善していって、技術書典6ではさらに利便性やデザインを洗練させていきたいですね。

印刷部数

毎回話題になる印刷部数ですが、ふとしたときに下記の計算方法を思いつきました。

  • 本の値段を決める
  • 被チェック数の冊数売れたと仮定して合計金額を出す
  • その合計金額で印刷できる分だけ印刷する

例を挙げます。これは今回の自分の新刊の印刷部数を決めるときに計算した実際の数字です。

  • 本の値段は1,500円
  • 被チェック数は 10/02 時点で92 なので、92冊 * 1,500円 = 138,000円
  • ねこのしっぽさん & 印刷方法などのオプションを加味して、138,000円で印刷できる部数は300冊

ということで、今回は300冊を印刷しています。この計算方法は、以下のことから結構良い方法なんじゃないかと思ってます。

  • 被チェック数は開催直前に急上昇するが、現時点から下がることはないだろう
  • つまり、「現時点の被チェック数 * 値段」までなら回収できると仮定
  • その合計金額を上限としてコストかければ、爆死はしないはず
  • かつ、この合計金額から冊数を出すと、意外と強気な数字が出てくる
  • 爆死を回避でき、強気な冊数でいけるという精神衛生上良い印刷部数になる

これにはzinさんやBOOTHさんの「配送料無料委託」がないとできなかったかもしれません。 あと、「いつ時点の被チェック数を参考にするか」ですが、これはもう「決め」かなと思います。 自分は入稿直前の数字にしました。

ここまで言っておいてなんですが、結局は当日までわからないんですよね。 この記録をもとに、当日どうだったかはまたレポートします。 そして、技術書典6への参考になればと思います。

ちょっとしたこだわり

今回の新刊は「問題集」なので、目次から内容はわからないようにしています。「あぁ、アレね」とわかった上で問題を解いても意味がないと思ったので。(これだけはどこかで言っておきたかった)

どんな内容かを目次から知りたい方には申し訳ございません。

楽しみましょう!

当日は「け33」でお待ちしています。とりあえず、リアルでみなさんとお話したいので、寄っていただけるだけでも結構です。あと、非公式アフターにも参加するので、いろんな話ができたらなーと思っています。

当日、お会いしましょう!