みずりゅの自由帳

主に参加したイベントやソフトウェア技術/開発について記録しています

「Elixirへのいざない」商業版の出版について(ウラ話あり)

2020年6月5日、「Elixirへのいざない」という商業書籍を出版しました。

インプレスR&Dさんの「技術の泉」シリーズとしての出版です。

技術書典7で頒布した技術同人誌「PhoenixLiveViewとNervesをさわるElixirへのいざない」を底本した書籍となっています。 ただし、同人誌版からはElixir/Phoenix/Nervesのバージョンをアップして書いてあります。

書籍の詳細はこちらで。

nextpublishing.jp

謝辞

商業出版に関して、出版社のインプレスR&Dの方々にはお礼申しあげます。

また、引越し等でプライベートで忙しかったにも関わらず、商業版の表紙を仕上げてくださった「もち子」さんにも感謝しております。

さいごに、締め切りに直前に執筆の進捗を気にしてある程度の自由時間をくれた妻よ、どうもありがとう。*1

リリース掲載のリンク

こちらのサイトに掲載されたようです。*2

番号 サイト名 企業名 URL
1 フレッシュアイ 株式会社スカラコミュニケーションズ https://news.fresheye.com/article/fenwnews2/1000003/20200603130508_pr_pr000003301-000005875/a/index.html
2 PRESIDENT Online 株式会社プレジデント社 https://president.jp/ud/pressrelease/5ed7daf17765611df8160000
3 産経ニュース 株式会社産経デジタル https://www.sankei.com/economy/news/200604/prl2006040027-n1.html
4 iza(イザ!) 株式会社産経デジタル http://www.iza.ne.jp/kiji/pressrelease/news/200604/prl20060401340027-n1.html
5 フレッシュアイ 株式会社スカラコミュニケーションズ https://news.fresheye.com/article/fenwnews2/1000003/20200603110000_pr_pr000003301-000005875/a/index.html
6 ORICON NEWS オリコン株式会社 https://www.oricon.co.jp/pressrelease/654246/
7 BIGLOBEニュース ビッグローブ株式会社 https://news.biglobe.ne.jp/economy/0603/prt_200603_1923231694.html
8 とれまがニュース 株式会社サイトスコープ https://news.toremaga.com/release/others/1549411.html
9 ニコニコニュース 株式会社ドワンゴ http://news.nicovideo.jp/watch/nw7375874
10 ダ・ヴィンチニュース 株式会社KADOKAWA https://ddnavi.com/publisher-release/629517/a/
11 読売新聞オンライン 株式会社読売新聞社 https://yab.yomiuri.co.jp/adv/feature/release/detail/000003301000005875.html
12 ジョルダンニュース! ジョルダン株式会社 http://news.jorudan.co.jp/docs/news/detail.cgi?newsid=PT003301A000005875
13 STRAIGHT PRESS 株式会社マッシュメディア https://straightpress.jp/company_news/detail?pr=000003301.000005875
14 Character JAPAN ぴあ株式会社 https://ure.pia.co.jp/articles/-/742015
15 アニメ!アニメ! 株式会社イード https://animeanime.jp/release/prtimes/20200603/74098.html
16 時事ドットコム 株式会社時事通信社 https://www.jiji.com/jc/article?k=000003301.000005875&g=prt
17 Game Spark 株式会社イード https://www.gamespark.jp/release/prtimes/20200603/75546.html
18 SEOTOOLS ブラストホールディングス株式会社 http://www.seotools.jp/news/id_000003301.000005875.html
19 エキサイトニュース エキサイト株式会社 https://www.excite.co.jp/news/article/Prtimes_2020-06-03-5875-3301/
20 インサイド 株式会社イード https://www.inside-games.jp/release/prtimes/20200603/75549.html
21 ウレぴあ総研 ぴあ株式会社 https://ure.pia.co.jp/articles/-/741966
22 朝日新聞デジタル&M 株式会社朝日新聞社 https://www.asahi.com/and_M/pressrelease/pre_12742713/
23 財経新聞 株式会社財経新聞社 https://www.zaikei.co.jp/releases/1015607/
24 BtoBプラットフォーム 株式会社インフォマート https://b2b-ch.infomart.co.jp/news/search/../detail.page?IMNEWS4=1993216
25 おたくま経済新聞 C.S.T Entertainment,Inc. https://otakei.otakuma.net/archives/prtimes/000003301-000005875
26 マピオンニュース 株式会社マピオン https://www.mapion.co.jp/news/release/000003301.000005875/
27 @niftyビジネス ニフティ株式会社 https://business.nifty.com/cs/catalog/business_release/catalog_prt000003301000005875_1.htm
28 Infoseekニュース 楽天株式会社 https://news.infoseek.co.jp/article/prtimes_000003301_000005875/
29 NewsCafe 株式会社イード https://www.newscafe.ne.jp/release/prtimes2/20200603/483483.html

変更/加筆について

商業版の出版にあたり、同人誌版から変更/加筆をしています。

Elixirやフレームワークのバージョンアップ対応

「Elixirへのいざない」は、技術書典7の技術同人誌版を底本にしています。 しかしながら、同人誌版執筆時期の「2019年9月1日」からは半年以上も経過しており、その間にPhoenixやNerves、何よりもElixir自体のバージョンアップ*3が行われていました。

できれば、購入された方が読むときには、最新のバージョンに対応しておきたい。 そんな想いから、商業版の締め切りギリギリまで、バージョンアップ対応を行いました。*4

なお、バージョン対応は以下のようになっています。

名前 技術同人誌版 商業誌版
Elixir 1.9系 1.10系
Erlang 22.0系 22.3系
Node.js 10系 12系
Phoenix 1.4系 1.5系(1.5.1)
Phoenix LiveView 0.1.1 0.12.1
Nerves 1.5系 1.6系(1.6.1)

ちなみに、このブログを書いている2020年6月6日時点では、Phoenix LiveViewは0.13系になっている*5ので、若干複雑な気持ちではあります。

変更について

バージョンアップ対応をしたことによって、記述内容に齟齬が出た部分は修正しました。

ちなみに、変更箇所で一番差分が大きかったのは、Phoenix LiveViewの箇所でした。

なにせ、Phoenix LiveViewの設定が、Phoenix 1.4の際にはすべて手動で設定しなければならなかったのに対して、Phoenix 1.5ではプロジェクト生成時にオプション付与できるようになったからです。

これによって、同人誌版のウリであった「Phoenix LiveViewの設定」についての記述は、「おまけ情報」に降格することになりました...。

また、同人誌版の記載時はLiveViewにバージョンニングがされたばかりでしたが、あれよと言う間にどんどんバージョンが上がり、そして設定時の記述内容や関数の引数などにも変更が入っていました。 加えて、公式GitHubページのサンプルコードも最新版のコードに対応するように変更されていました。

このため、サンプルとして提示していたソースコードにも手を入れて動くように修正しました。

ここの変更対応が、商業版の執筆における一番の苦労箇所でした。

加筆について

商業版の出版に際して、以下の内容を加筆しました。

  • 1章: Elixirを体験する
    • 無名関数の例
    • モジュールおよび名前付き関数の例
    • アトムの例
    • ヘッドとテイルの例
    • タプルの例
    • マップの例
    • Windowsへのインストールに関して(ErlangやWSL2について軽く触れる)
  • 3章: Phoenixを体験する
    • Node.jsのバージョン指定にasdfを利用する
    • Phoenix1.5でデフォルト搭載される「Phoenix Dashboard」について簡単に触れる
  • 4章: Phoenix LiveViewを体験する
    • LiveVIewで定期的な画面更新をする例
    • 「Collocatiing templates」 の機能を利用する例(※定期的な画面更新をする例とセット)
  • 5章: Nervesを体験する
    • nerves_packとnerves_init_gadgetについての説明

ちなみに、第1章で例を多く増やした理由は、PhoenixやNervesで利用するコードの内容を理解しやすくするためです。 特に、アトム/タプル/マップは関数の引数や戻り値で多用されています。ですので、これらの説明を入れたほうがソースコードの理解には良いかなと考えました。

画像について

細かい点ではありますが、同人誌版はモノクロであったのに対して、商業版はカラーになっています。

表紙について

同人誌版に引き続き、もち子さん( @btmochico )に描いて頂きました。

これは、同人誌版との関係がわかるために、えりいざちゃん達を表紙にしたかったと言うのが大きいです。 それと、もち子さんが転職活動中という話を聞いていたので、「(転職活動の際の)ポートフォリオのひとつにしてみませんか?」と声かけさせて頂きました。*6

また、技術の泉シリーズの表紙は女の子が描かれている率が多かったので、えりいざちゃん達とセットになっている女の子を描いてもらうことにしました。

もともとの同人誌の表紙がこれ。

んで、表紙のイメージとして出した案がこの2つ。

んでんで、こんなたたき台から、こちらのイラストになって出てきて

最終的にこんなイラストになるのですから、デザイナー様には足を向けて寝られません。

Twitterでいただいた感想

しのゆさん から、以下のような感想を頂きました。

ありがとうございます。

まとめ

今回は、商業版「Elixirへのいざない」について記述しました。

Phoenix LiveViewとNervesについて扱っている「日本の書籍」としては、いま(2020年6月頭時点)のところは本書籍だけだと認識しています。

もし、興味を持たれた方は、Amazonの試し読みをしてみてください。 そして、気に入られたらご購入いただけると幸いです。

また、ご購入された方がいらっしゃったら、Twitterで感想を呟いていただけると私が大変喜びます。 もし可能であれば、Amazonのカスタマーレビュー書いていただけると嬉しいです。(点数だけでも助かります。)

ちなみに、商業版ではなく技術同人誌ですが、「Elixirへのいざない2」と言うタイトルの本も書いています。*7 こちらは IoTフレームワーク「Nerves」を使って、簡単な電子回路を操作する内容が書かれています。 もし、興味を持たれたら、こちらも記事もご覧ください。

mzryuka.hatenablog.jp

*1:ちなみに、3ヶ月のこどもは流石に自由時間をくれなかったです(笑

*2:出版社の方から教えていただいたので、せっかくなので掲載

*3:2020年1月に1.10系のリリースがされました

*4:PhoenixやPhoenixLiveView、Nervesのバージョンアップは活発なので、出版の締め切り日を過ぎたらもう古いバージョンになってしまう可能性はあるのですが...

*5:https://github.com/phoenixframework/phoenix_live_view/releases

*6:ただ、表紙を描ききる前に転職されたので、直近ではお役に立てなかったみたいです...

*7:BOOTHで販売しております。https://mzryuka.booth.pm/items/1759322