見出し画像

幻となった技術書典8で、量子コンピューターとQ#について本を書いた

開催されなかった技術書典8

技術書典とは、技術書の同人誌即売会です。わかりやすく言えばエンジニアのコミケです。基本的に年2回の周期で、これまでに7回開催されてきました。私も何度か遊びに行ったことはありますが、この2020年2月に予定されていた技術書典8には初めてサークルとして出展側で参加することを決めました。

...しかし世界的な情勢が色々あって、最終的にオフラインイベントとしての技術書典8自体は中止、代わりにオンラインストアによるイベント「技術書典 応援祭」が約1ヶ月間にわたり開催される事になりました。そのため私達のサークルも、物理本の印刷は身内の記念用として極少数に留め、電子版のみを応援祭で販売することにしました。(※応援祭自体は物理書籍の販売・購入も可能になっています)

技術書典8の中止対応とオンラインストア開設にあたり、特に運営メンバーは相当大変だったと思います。感謝します。

書籍の内容

コミケでの出展経験もある同僚が中心になってくれて「技術書典で本を出す」という目的から職場で有志を募り、出展計画が始まりました。出展を決めたのが2019年10月、そして主に年明けぐらいから各人執筆を始めました。得意分野も経験もバラバラな8人が集まったので、一体どういうテーマで書くかが課題でした。たとえば「Reactの得意なメンバーで解説書を作ろう」といった執筆内容に関する明確なテーマは無く、ただ「本を出す」こと自体を最大の目的として始まったので、「この機会に、使ったことのない言語について書いてみよう」と誰かが言ったかどうか忘れましたが最終的に「マイナーなプログラミング言語を1人1つ・計8言語を紹介する」という内容になりました。

「マイナーなプログラミング言語」の定義は「書く人がマイナーだと思ったらマイナー」という事で、The RedMonkのプログラミング言語ランキングを参考にしたり参考にしなかったりしつつ、最終的にNim、V言語、Dart、Haxe、E言語、Lazy K、Q#、Webオントロジー言語の8言語の紹介が出来上がりました。技術書典への出展経験は無く、ジャンルもバラバラな内容に仕上がってしまったので、果たしてこの内容で誰が買ってくれるのかは正直まったくの謎だったのですが、蓋を開けてみると現時点で数十名にお買い上げ頂いたようです。誠にありがとうございます。

私が担当したのは第7章のMicrosoft Q#の章です。テレビアニメ「魔法少女まどか☆マギカ」の第10話を題材に、暁美ほむらが量子コンピューターを使ったとしたらどれだけ効率的に話を進められるか、を取り扱いました。

量子コンピューターはこれを書いている2020年現在では実用化に至っていないものの、今後遅かれ早かれ実用化されて、暗号論をはじめいくつかの分野に破壊と革命をもたらす技術だと私は信じています。一方で、量子コンピューターでの開発には既存のプログラミング言語(古典コンピューター)での開発とは根本的に異なる考え方をいくつか導入しなければならず、学習面でのハードルがあります。そのため今回この機会で量子コンピューターに触れておきたいと思い、取り扱うことにしました。

また魔法少女まどか☆マギカの考察にあたっては、念のため海外の下記Wikiも参考にしました。このWiki自体が非常に読み応えがあり、まどマギのファンにはおすすめです。

書籍の執筆環境

執筆環境の構築も手探りです。今回は事例の多く見つかるRe:VIEWを使いました。LaTeXをベースにした独自フォーマットで原稿を執筆し、EPUBやPDF形式で書籍として出力できるツールです。

私はまず軽くMarkdownで記述した後、下記コマンドでRe:VIEW形式に変換して仕上げていきました。(Rubyのmd2review GemをDockerで動かしているだけです)

$ docker run \
 --volume $(pwd):/app \
 --workdir /app \
 ruby:2.7.0-alpine3.11 \
 sh -c "apk add alpine-sdk >& /dev/null && gem install md2review >& /dev/null && md2review MyMarkdown.md" \
 > MyMarkdown.re

Re:VIEWの記法そのものはそこまで難しい物ではありませんが、カスタマイズにLaTeXの知識が必要になる点が厳しかったです。個人的には、Web開発者なのでCSSで組版ができるというVivliostyleも試してみたいなと思っていましたが、これもこれでハードルがあるようなので初執筆である今回は避けました。また機会があれば...

原稿はGitHubで管理し、GitHub ActionsでRe:VIEWのPDF出力とTextlintによるチェックを走らせていました。

こうして技術書典に出展する本が完成し、物理書籍の印刷をしかけた所に今回の中止が決まったのでした。

なお、執筆以外の出展にまつわる諸々の事務手続き等はすべて同僚がやってくれました。感謝。そのため、このnoteに残せるような知見は他には特にありません。。。

おまけ: 技術書典応援祭で買ったおすすめの本を紹介

すべてちゃんと読んだわけではないのですが、応援祭が終わる2020年4月5日までの間で紹介しておきたいので、細かい書評は無しで簡潔な紹介のみ。

技術書典Web開発日誌 tbf08編:ひかる黄金わかめ帝国

技術書典のシステム開発メンバーによる開発日誌。今回の技術書典8では事前にWebサイトのリニューアルがされており、この本も当初はそこで使われたReact等の開発日誌が綴られる予定だったのではないかと思います。が、リニューアルの後に技術書典8中止と応援祭によるオンラインストア開設が発表されたので...


入門GUI ーWebブラウザで作る本格インタラクションー:複雑GUIの会

Web上で複雑なGUIをどうやって作るか?という本。最初にまず「<select>タグを使わずにセレクトボックスをフルスクラッチで作るには?」から始まるのが最高。


エンジニアの心を整える技術2:からまげ@うまうまだよもん

「自己肯定感をどうやって整えるか?」といった内容を、エンジニア向けに禅やマインドフルネスの要素を交えて解説した本。「整える」という表現が結構好き。


JavaScript環境構築の設定をひとつずつ丁寧に -そのプラグインってどうして必要なの!?-:パイン缶

「@babel/preset-envを使わずにES5に変換するには?」といったように、JavaScriptの環境構築ツールの中身で実際に何をやっているかを解説した本。


Windows10の標準ソフトだけで本を作る:味噌とんトロ定食

Photoshop等は使わずペイントで、Wordではなくワードパッドで、といったように、Windowsに標準で付属しているソフトのみで書籍を出版するという本。


技術季報Vol.8:技術書典運営事務局

幻となった技術書典8のカタログと、前回の技術書典7開催レポートを含む、技術書典運営の公式ファンブック。運営の方々への感謝も込めて。

この記事が気に入ったらサポートをしてみませんか?