仕事しながら仕事仲間と技術同人誌を書いたことを振り返る

この記事は[技術系同人誌 Advent Calendar 2017](https://qiita.com/advent-calendar/2017/tech-fanbook) 16日目の投稿です。

# はじめに

会社の有志で集まって、[超技術書典で初めて本を出し](http://made.livesense.co.jp/entry/2017/05/22/090000)、技術書典3でもまた新しく本を出しました。
その時のことを振り返りながら、自分の思うことを書いていこうと思います。

# モチベーション

主に3つのモチベーションがありました。

### 技術について深く話したい・知りたい

まずは、「技術について深く話したい・知りたい」ということがありました。
弊社ではアプリエンジニアは多くなく、得意分野は異なる・アプリに関わり始めてからの時間が浅い場合に、社内で深く話し合うことはあまりできませんでした。
なので、こういうイベントを機会に社内でもっと技術自体に興味を持つ人を増やしたい、技術同人誌イベント自体を知らない人に知って欲しかったのです。
結果、普段仕事で関わらないメンバーと7人で初めて本を出すことができ、ツイッターで新しく繋がる人もできました。

### 勉強しなきゃいけない機会を作りたい

次に、「勉強しなきゃいけない機会を作りたい」ということです。
会社でも時間をやり繰りし、自分の学びたいことを学んで問題ないのですが、やはりまとまった時間は取れませんでした。
最近業務外でもアプリ以外に、友人とRPGツクールでゲームを作っていたり、普段から好きで何かしらのコードを書いていることは多いですが、大学生の頃に比べればアウトプットする頻度も少なくなってしまいました。
なので、自分の興味のあることを人に教えられるようになるようなレベルで勉強する機会を半強制的にでも作りたかったのです。
「人に教えられるようになるようなレベル」というのが大事だと思っていて、そうなるためには人一倍理解していないと行けません。
別にQiitaのようなサイトにいつでも投稿できるでしょと思う人もいるかもしれませんが、個人的に本の方が合っているということだけでした。
何が合っているかというと、サイトに文章として投稿するより、本にする方が書く側として正しい情報を書かなければいけないという重みを感じるからです。

### 技術同人誌イベントに一枚噛みたかった

最後に、ただ「技術同人誌イベントに一枚噛みたかった」のです。
様々な勉強会・過去の技術書典への参加はしたのですが、自分の中で色々理由をつけたりしてしまって、情報を提供する側には回っていませんでした。
「人に教えられるようになるようなレベル」ということを考えると、情報を提供する側になるのが一番良いとは思っています。
コミティアやコミケなどの同人誌イベントには良く参加していたこと、社内で技術書典の話が出たこともあり、”技術”同人誌イベントに本を出してみようと決めました。


# できるだけ本の内容以外の負荷を減らす

いざ本を出すことは半ば勢いで決めました。申し込んでしまえばこちらのものです。
ただ、技術書を作ったことのある人はいなかったので、基本的にTechboosterが推奨している方式でいきました。

ツールとしては、下記を使いました。

- Github
- Re:VIEW
- 環境構築スクリプト
- ビルドスクリプト
- Griflet

Github, Re:VIEWは知れ渡っていると思うので、特に話すことはありません。

**環境構築スクリプト**は、今回本を書く環境を一発で整えられるようにするためのスクリプトです。
といっても特別珍しいことをしているわけではなく、Re:VIEWのインストールとサンプルを確認できるようにしてあるだけです。

```init.sh
# 環境構築
./init.sh

# MaxTeXをインストールしている必要があるよ
# サンプルをreviewでコンパイルして、できあがったpdfを開くよ
./sample.sh
```

**ビルドスクリプト**は、Re:VIEW形式のファイルを書いたことのある人がいないため、markdownをRe:VIEWのファイル形式に変換する`md2review`というgemを利用して普段の環境に近い状態でかけるようにしました。
いくつか対応していないものがあるようで、下記のように別途変換しているものがあります。詳しくはないのでこれが最良の方法かは分かりません。
基本的には、本の内容を書いて`./build.sh hoge.md`を繰り返していくだけで良いようにしました。

```build.sh
md2review $FILENAME > $1.re
sed -i -e "s/emlist\[\]\[\(.*\)\]/list[\1][\1]/" $1.re # リストの名前を変換
sed -i -e "s/<br>/@<br>{}/" $1.re # 任意の場所に<br>で改行できるようにする
review-pdfmaker config.yml
open tbf03.pdf
```

**[Griflet](https://tbf.griflet.net)**は、技術書典公式のメールで連絡のあった書籍作成支援システムです。

> Griflet Buildは、GitHub上にホストされたRe:VIEWのプロジェクトをビルドして、生成されたPDFなどを一時保存しておくサービスです。
> Re:VIEWを使用して原稿執筆を行う場合には、主に執筆の補助ツール、「CIツール」のように使っていただくことが可能となります。適切に設定していただければ、GitHubの「WebHook」の仕組みにより自動的に最新版のレポジトリに対応したPDF等をGrifletからダウンロードできるようになります。
> （Griflet公式から引用）

公式ページにこのように書いており、実際はこのような画面になっています。

![Griflet](https://qiita-image-store.s3.amazonaws.com/0/42327/09065c0f-bc82-6864-a007-834104368f66.png)

登録すると、後はプッシュするだけでそのコミットハッシュ時のRe:VIEWでコンパイルし、フォントを埋め込んだ状態でのpdfをダウンロードできます。
「フォントを埋め込んだ状態」が重要で、本来入稿する前にpdfへのフォント埋め込み作業があるのですが、それもやってくれています。
技術書典3では、実際にGrifletで生成されたpdfで入稿し、問題なく受け取ることができました。
公式が提供しているだけあって、Twitterで呟いた時の対応もスムーズでした。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Grifletって個人リポジトリじゃないとだめなのかな？organizationだと「Failed to determine you are the owner of the repository」と出る。 <a href="https://twitter.com/hashtag/%E6%8A%80%E8%A1%93%E6%9B%B8%E5%85%B8?src=hash&amp;ref_src=twsrc%5Etfw">#技術書典</a> <a href="https://twitter.com/hashtag/Griflet?src=hash&amp;ref_src=twsrc%5Etfw">#Griflet</a></p>&mdash; ろあ (@roana0229) <a href="https://twitter.com/roana0229/status/915431726158974976?ref_src=twsrc%5Etfw">October 4, 2017</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">中の人ですー。実装の問題で公開情報しか使っておらず、現状では公開メンバーでないとエラーになっちゃいます。</p>&mdash; あめ玉/もわもわ (@amedama) <a href="https://twitter.com/amedama/status/915726773270093824?ref_src=twsrc%5Etfw">October 4, 2017</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


# 本を出して、良かったと思えるために

事前の宣伝、本の表紙は大事だと感じています。

このように宣伝すると

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">（スペース：か２９）RxSwift再入門, ApplePencilを使う, 動画再生機能を作るという感じで、iOSの本を技術書典3で出します！詳しくはURLの頒布ページを見てください☺<a href="https://t.co/8lyXFfiadX">https://t.co/8lyXFfiadX</a><a href="https://twitter.com/hashtag/%E6%8A%80%E8%A1%93%E6%9B%B8%E5%85%B8?src=hash&amp;ref_src=twsrc%5Etfw">#技術書典</a> <a href="https://twitter.com/hashtag/%E6%8A%80%E8%A1%93%E6%9B%B8%E5%85%B83?src=hash&amp;ref_src=twsrc%5Etfw">#技術書典3</a></p>&mdash; ろあ (@roana0229) <a href="https://twitter.com/roana0229/status/919946968746491910?ref_src=twsrc%5Etfw">October 16, 2017</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

こんな感じでお隣のサークルからの反応もありました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">お隣さんもRx！！<br> <a href="https://t.co/kAkYYOpko8">https://t.co/kAkYYOpko8</a></p>&mdash; ponday (@ponday_dev) <a href="https://twitter.com/ponday_dev/status/920129184088784897?ref_src=twsrc%5Etfw">October 17, 2017</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

宣伝に関してはツイッターのみで、`#技術書典`,`#技術書典3`2つのハッシュタグをつけて定期的にツイートしていました。
その結果、被チェック数はこのような感じでした。（実は、超技術書典の時は`5`だったためビビっていましたｗ）
それもあって、今回はiOSをメインテーマとして宣伝しやすく、つまり内容を伝えやすくまとめた本にしました。

![プレビュー](https://qiita-image-store.s3.amazonaws.com/0/42327/c11fb92a-d350-9bdf-ab97-f84b69226774.png)

当日は、開場して一番に来てくれる人もいて、とても嬉しかったです。
隣のスペースの人とお互いに気になった本を買って交流もできました。

本は、このような感じでかわいい女の子が少し離れていても目に入るように、本立てを使っていました。
値札含め据えて100均で揃います。自分はCan☆Doで揃えました。
スペースには2人いると、ご飯や休憩などがとりやすいです。

![当日.png](https://qiita-image-store.s3.amazonaws.com/0/42327/61b42ad5-343c-23ca-45c2-0ecc5310cee4.png)

最終的に、執筆メンバー分の取り置き除いて、印刷費とほぼトントンという形で着地することができました。
共著なので、イベント参加費込みでかかった費用を分割すると1人1500円程度で済みました。


# さいごに

はじめは勢いで参加する形で良いと思います。
自分の場合、はじめから張り切りすぎて超技術書典では大赤字だったので、コピ本or一番安い白黒での印刷で大丈夫です。
方法としては、QRコードを売る形にして電子媒体にするサークルもいます。
でも、自分は自分で書いた本だからこそ紙で欲しいということもあり、印刷して本にしています。
やっぱり出来上がった本を見ると感動しますｗ

2回参加してみて、どこかにモチベーションを持っていれば、案外行けるものだなーと感じました。
次回もあるであろう技術書典、また本を書こうと思います。