VEGA TECH LAB

インテリア×テクノロジー

技術書典5に参加しました

こんにちは。R&Dグループ エンジニアのpondayです。

2018/10/08に開催された技術書典5に参加してきました。今回はその参加レポートを記事にします。

技術書典とは?

その名前の通り、『技術書の祭典』です。

有志が執筆した技術系同人誌を持ち寄って頒布するイベントで、フロントエンド、バックエンド、アプリ、ネットワーク、ハードウェア、電子工作など、幅広いジャンルの技術書が集まります。

商業誌ではなかなかお目に書かれないすごくニッチな技術の本から、注目度は高まってきているもののまだまだ日本語情報が出揃っていない技術の入門書、実際にサービス利用してみての知見など、最新の生きた知識に触れることができるのが最大の魅力です。

2016年6月の初開催から半年に1回のペースで開催されていて、今回が5回目の開催でした。

ベガコーポレーションはサークル『VEGA Tech』として、社内のエンジニア有志が執筆した技術書4冊を頒布してきました。

参加の経緯

今回のサークル参加は自分から提案したものです。

ベガコーポレーションとしては今回が初参加でしたが、実は私自身は技術書典2の頃から継続してサークル参加していて、当然今回も参加する気満々でした。 参加にあたっては個人参加も検討していたのですが、募集がかかる直前にベガコーポレーションにジョインしたので「せっかくなら」と話を持ちかけたらノリノリだったこともあり、会社として参加することになりました。

参加メンバー

執筆に参加したのは以下の3名でした。

  • foxtrackjp
  • mrtk
  • ponday

頒布したもの

Amazon Connect入門

著:foxtrackjp

AWSに何かと詳しいfoxtrackjpさんらしく、まだ東京リージョンにすら来ていない新サービス「Amazon Connect」の解説本です。AWS上でコールセンター業務の一部が自動化できるという一風変わったサービスで、機械音声による自動応答や、ユーザー入力に応じた返答のカスタマイズなど、基本的な使い方を画面キャプチャを交えて解説しています。

blenderによる輪郭線の表現

著:mrtk

3Dエンジニアmrtkさんからはblender本。2Dの表現で重要な役割を担う輪郭線を、3Dの世界に持ち込むための手法を検討しています。私はblenderには詳しくないのですが、画像も多く結果がわかりやすくまとまっているのではないかと思いました。

速習Elixir

著:ponday

弊社で技術検証を行っているプログラミング言語『Elixir』の入門本です。入門編ということでマクロのような高度な機能は省いて基本的な構文のみに絞って解説しています。社内でも参考資料として使えれば良いなという思いで執筆しました。

Web Components First Book

著:ponday

タイトルの通り『Web Components』というWebのAPIを解説した本になっています。上の3冊と違って社内では利用していない技術についての書籍なのですが、「フロントエンドネタも欲しい!」という個人的な意見で執筆しました。

執筆環境

原稿を書く、と言ってもAdobe InDesignのようなDTPソフトを使いこなせるメンバーはいませんでしたし、そもそも各人に環境構築してもらうのも面倒です。できることならMarkdownで済ませたいところでした。

技術書典界隈ではRe:VIEWという書籍執筆用のテキストフォーマットが良く知られていて、MarkdownRe:VIEW → PDFという変換を行ってくれるDockerイメージも主催メンバーの方から公開されています。実際、結構な数のサークルさんがこのDockerイメージを使っている印象です。

一方、最近少しずつですがCSS組版でPDFを生成しているサークルさんも増えてきています。これは、MarkdownからHTMLに変換してCSSで本のようなフォーマットに装飾する手法で、作り方次第では自由度の高いレイアウトが組めるのが魅力です。

page-break-after: always;

のような、Web制作では使わないCSSが知れたりもします。

今回は(面白そうだったので)Markdown → PDF変換を行うプログラムを自前で開発して、CSS組版に挑戦してみました。今回頒布した本は全てこのプログラムを利用して生成したものです。

内部的な実装で言うと、

  • markdown-itMarkdown → HTMLに変換
  • ↑のHTMLはヘッダ要素などがないので、mustacheフォーマットのHTMLテンプレートを別途用意して生成したHTMLを埋め込み
  • 生成したHTMLをpuppeteerで開き、印刷機能を利用してPDF化

という感じで実装しています(画像周りの処理や生成したHTMLに対するDOM操作なども行っていますが、その辺りは割愛します)。

VSCode拡張のmarkdown-pdfを参考に開発しました。

技術的な課題も多く悩まされたこともあったものの、執筆の気分転換に機能拡充する、という切り替えができて良い気分転換になったかなと思っています。時間的な制約もあり、実装できていない機能や足りない機能だらけではありますが次回また改良して使いたいところです。

当日の様子

当日は私と、初参加となるmrtkさんで現地参加しました。

前回までは秋葉原UDXで開催されていたのですが、キャパシティ的に限界ということで今回から会場を池袋サンシャインシティに移しての開催となりました。会場の床面積が3倍程度になった反面、サークル数は2倍程度に抑えられていたようで、通路は前回までに比べると明らかに広くなったな、という印象でした。

それでも開場してみるとその通路が人で埋まってしまい身動きが取りづらい場面すらあり、どんどん技術書典に注目している人が増えていることを実感しました。一技術書典好きとして嬉しい限りです。最終的に、サークル参加まで含めた総来場者数は10,000人を超えた(!)そうです。

我々はと言うと、サークル側で参加しているとはいえせっかく現地に行っているからには他のサークルの本も見たい!ということで、交代で店番をしながらもう一方が買い物に行く、という感じで回していました。買い物を終えて帰ってくるたびに満足そうに本を抱えているmrtkさんが印象的でした(笑)

私達のブースでも足を止めてくださる方もたくさんいらっしゃいました。お越しくださった方々、ありがとうございました!

反省点

社内メンバーを巻き込んでの参加は初めてだったので、反省点もたくさんありました。中でもこれからの課題だと感じたのは「"執筆"に対して感じているハードルの高さ」です。

今回声を掛けたものの断られてしまった社内のメンバーからも、

  1. 忙しい
  2. 本を書けるほどの知識がない
  3. 本にできるようなネタが準備できない
  4. 大変そう

と言った声がよく聞かれました。

1番はサービスのローンチと時期がかぶってしまった面があるので仕方がないかなと思います。

2、3 番はやはり「書籍」や「執筆」という言葉に対するハードルがあるのかなと感じました。「高度な内容でないといけないんじゃないか。」「こんな基本的な内容の本を書いてもみんな知ってることじゃないのか。」という感じでしょうか。実際に書いて頒布してみると「意外と書ける」し、「開発を通して得た知識、ノウハウが役に立つ人も一定数いる。」ということが実感としてあるのですが、このあたりのハードルを取り払えなかったのが自分の反省すべきところかなと思います。

「大変そう」という意見については実際それなりに大変なので否定できないです(笑)ただそれでも毎回本を執筆して参加を続けているのは、現地でその大変さ以上の楽しさを体感しているからなので、そのあたりも上手く伝えていけるようになりたいですね。

その他、

  • スケジュール管理
  • 表紙やDLカードのデザインまわり
  • 当日の売り方や役割分担

などなど、諸々の反省点もありましたが、次回以降改善していきます。

技術書典6に向けて

当然、次回も参加したいと思っています。

今回は多忙で執筆に参加できなかったものの、次回参加に向けて意欲を見せてくれているメンバーも出てきているので、今回の反省を活かしつつ取り組みたいと思います。