雪として兎

yukiusaのブログ

技術書典7に参加してきました

f:id:SnowyRabbit:20191001025652j:plain
技術書典ももう7回目

2回目の技術書典行ってきました!

先日、池袋サンシャインシティで開催された技術書典7にサークル「418 I'm a teapot」の一員として参加してきました(一人しかいないんですが)。
前回の技術書典6に続いて2回目の出展となりました👏

今回はなにしたの?

今回は新刊として、『開発者のためのJulia言語入門』を執筆・販売しました。
こちらがサークルページ。
techbookfest.org

技術書典6ではJuliaでWeb開発とかいう誰も興味のなさそうなニッチな分野を選んで書いたものの、肝心の言語自体についての理解はかなり中途半端だなと気が付き、
今回は自分の勉強のためにJuliaの言語仕様について書いてみることにしました。

ちなみに技術書典6のときの記事:
技術書典6に参加してきました - 雪として兎


内容は、タイトル通りJulia初心者向けで変数の名前の付け方から
データ型、条件分岐、関数などなどプログラミング言語お決まりの基本的な構文についてまとめたものです。

というか自身がJulia初心者なので、そんなに難しいことは書けないのですが、
それが逆に分かりやすい表現につながったんじゃないかと思ってます
(「そんなことない、分かりづらい」という場合はゴメンナサイ)

書籍・電子 (PDF) 版ともにBoothで売っています。
booth.pm
Juliaに興味ある方買ってもらえると嬉しいです。
ちなみに紙の本の方はもう残り少なく、全部売れても再販の予定は今のところありません。
コード(というか本の内容ほとんど)はGitレポジトリにJupyter Notebook形式で公開しているのでダウンロードしてローカルで動かすこともできます。

gitlab.com

ちなみに技術書典6で書いたGenie本はまだまだ在庫あるので、興味ある方ぜひ買ってください!
Julia ではじめる Web アプリ開発 〜 Web アプリフレームワーク Genie 入門〜 - yukiusa書房 - BOOTH

参考にしたものとか

新しく出てきた言語を勉強するにあたって、まずぶち当たったのが「日本語の参考資料なさすぎ」問題でした。。
特にJuliaに関しては、アカデミック寄りでお堅いイメージがあるのかわからないですが、日本語資料のなさに拍車がかかっているように感じます。(v1.0が出てから既に1年以上経っているのですが...)

ネット調べるとQiitaとかブログにちらほら記事が載っていたりしますが、断片的なものが多く、やはりまとまった資料はあまりないなぁという印象です。
ただそんな中でも(本でも紹介していますが)、
Julia界隈では有名な@bicycle1885さんによって書かれた『Julia高速チュートリアル』や
夜道さんによって書かれた『実例で学ぶプログラミング言語 Julia v1.0』(こちらは紙の本だけ)のような資料もあるので、困ったときに大変助かります。

github.com

洋書だといい本もちらほら出ているなという印象で、今回は特に↓の本の構成を参考にして公式ドキュメントを読みながら執筆しました。
Julia 1.0 Programming - Second Editionwww.packtpub.com

そういえばTwitterで見かけましたが、Juliaの洋書翻訳版が今月発売になるとのことです。


Julia1.2に対応していて、基本構文だけでなくデータ分析、機械学習数値計算なども取り扱っているとのことで、
Julianなら本棚に置いておきたい一冊というところでしょうか。
今後Juliaが国内でも盛り上がっていく感じになる布石となるといいですね。

どうやって本を書いたか(追記)

今回、本を書くにあたって迷ったのが、執筆環境をどうするかでした。
技術書典6のときは、同人誌作成によく使用されるRe:View(https://github.com/kmuto/review)を使いましたが、以下の理由から今回はRe:Viewに代わるツールを探すことにしました。

  1. Re:View記法(MarkdownのようなRe:Viewに特化した記法)を結構忘れてしまっていた
  2. 仕事との兼ね合いで執筆にあまり時間を割けない
  3. Jupyter Notebook(ブラウザベースのインタラクティブなプログラム実行環境)からエクスポートしたMarkdownファイルを使いたい

特に3番目の理由が大きく、Jupyter NotebookからMarkdownファイルとしてエクスポートしたものをそのままコピペして使いたかったので、Markdownで書けるツールを探すことにしました。

技術書典5で見つけたMarkdownで技術同人誌を書こう!紙+電子 - flightbooks - BOOTHという本にFlightBooksという全てMarkdownで本を書けるツールが紹介されていたことを思い出し、こちらを利用することにしました。

flightbooks.pub


FlightBooksを選んだ理由は他にもあります。

  1. 全てWeb上で完結できて、ローカルPCに何かインストールする必要がない
  2. 目次や奥付けといった書籍として必要なページを含めて、印刷用のPDFをビルドできる
  3. 表紙生成ツールがある

FlightBooksはWebサービスで、エディタや書籍ビルドツールも揃っており、これだけで本を作ることができてしまいます。
また、表紙生成ツールもあり、本のテーマにあったいい感じの表紙があっという間に作成できます(表紙生成ツール単体だけでも利用できます)。今回の新刊の表紙はこれで作っています。

細かいことをしたいとなると、Re:Viewの方を使ったほうが痒いところまで手が届くのでいいかなと個人的に思いますが、「時間がないけど、すぐに本を書きたい」という方にはFlightBooksはおすすめです。技術ブログや技術的なドキュメントでエンジニアが使う機会の多いMarkdownだけで本を書けてしまうというのは大きいメリットではないでしょうか。

次回は…

次回の技術書典ですが、多分開催されると思いますが自分はサークル参加するかはまだ未定です。

今回、書きたかったが書けなかったところもあるので、追加して第2版をだすのもいいかなぁと。
そういえば、前から「機械学習やりたい!」と言いつつも、全然できていないので、勉強を兼ねて機械学習系の内容で書いてみるのもいいかなぁと(Pythonかな?)。

関係ないですが、Raspberry Pi4の技適が日本で通ったみたいで、早く買えるようにならないかとワクワクしている今日この頃です o(´∇`*o)