『Elixir/Phoenix 初級①』読者サポートページ

2016/11/17

ここは『Elixir/Phoenix 初級①』の読者サポートページです。

刊行後に見つかった誤記・誤字や内容の更新などについてはこのページでお知らせします。

本書で誤字、脱字、内容の間違いなどを見つけた方は、hermes@oiax.jp までご連絡ください。

Kindle電子書籍の改訂版を入手するには


お知らせ

  • 2017-11-22 第2章「各種ソフトウェアのインストール」の内容を大幅に改訂しました。以下のURLからPDFファイルを入手してください。

http://www.oiax.jp/books/files/ex01-ch02.ver2.pdf

改訂前は、ElixirのインストールをHomebrewとapt-getによって行っていました。改訂後は、kiexを用いてElixirをインストールしています。kiexを使用すると複数のバージョンのElixirを切り替えて使用することができます。2017年1月5日にElixir 1.4.0がリリースされたのを受けて改訂しました。本書の内容はElixir 1.3.4に基づきます。Elixir 1.4.0でもサンプルプログラムは動きますが、随所で警告メッセージが表示されるので、学習には不向きです。

  • 2018-01-08 第2章「各種ソフトウェアのインストール」の内容をさらに改訂しました。以下のURLからPDFファイルを入手してください。

http://www.oiax.jp/books/files/ex01-ch02.ver2a.pdf

macOSでの準備作業にOpenSSLのインストール手順を追加しました。読者よりErlangのインストールに失敗する報告を受けての改訂です。

ソースコード

本書のサンプルアプリ ModestGreeter のソースコードは以下の URL から入手可能です。

https://github.com/oiax/modest_greeter/archive/v1.1.0.zip (初版)
https://github.com/oiax/modest_greeter/archive/v2.0.0.zip (第2版)

ペーパーバック版(紙版)の正誤表

初版第1刷

5.2節「Phoenixアプリの骨格を生成する」

  • P.33のコラム「依存パッケージのインストール」の前に以下の記述を追加:

テキストエディタで mix.exs を開き、35行目を次のように書き換えてください。

:
35-      {:gettext, "~> 0.11"},
35+      {:gettext, "~> 0.14.1"},

そして、ターミナルで次のコマンドを実行してください。

$ mix deps.update gettext

本書の刊行後にパッケージ gettext のバージョン 1.15.0 がリリースされました。このバージョンから Elixir 1.4 以上が必要となったため、本書で採用している Elixir 1.3.4 では正常に動作しません。

7.3節「関数としてのアクション」

  • 第3段落(P.51)
誤 第15章で詳しく説明します。
正 第8章や第16章でも言及しますが、詳しくは次巻『初級②』で解説します。

11.1節「Bootstrapの導入」

  • コマンドの2行目(p.84)
誤 $ npm install --save tether bootstrap@4.0.0-alpha.5
正 $ npm install --save tether bootstrap@4.0.0-alpha.6

11.4節「Font Awesomeの導入」

  • web/templates/hello/show.html.eex のソースコード(p.94)

3 -   <p class="card-text text-xs-center lead">Hello, <%= @name %>!</p>
3 +   <p class="card-text text-xs-center lead">

3 -   <p class="card-text lead">Hello, <%= @name %>!</p>
3 +   <p class="card-text lead">

17.2節「tag 関数と static_path 関数」

  • web/templates/hello/show.html.eex のソースコード(p.156-157)

1   <div class="card m-1">
2 +   <%= tag :img, src: static_path(@conn, "/images/modest_greeter.svg"),
3 +     alt: "Robot", style: "width: 100%; max-width: 320px" %>
4     <div class="card-block card-inverse card-success">

1   <div class="card m-1">
2 +   <div class="text-center">
3 +     <%= tag :img, src: static_path(@conn, "/images/modest_greeter.svg"),
4 +       alt: "Robot", style: "width: 100%; max-width: 320px" %>
5 +   </div>
6     <div class="card-block card-inverse card-success">

第2版第1刷

2.1節「準備作業」

  • 項「macOSの場合」の末尾(p.10)に以下の記述を追加:

ターミナルで次のコマンドを実行し、opensslをインストールします。

$ brew install openssl

ホームディレクトリに .kerlrc という名前のファイルを作成し、その中に次の内容を書き入れます。

KERL_CONFIGURE_OPTIONS="--enable-dynamic-ssl-lib --with-ssl=/usr/local/opt/openssl"

5.2節「Phoenixアプリの骨格を生成する」

  • P.37のコラム「依存パッケージのインストール」の前に以下の記述を追加:

テキストエディタで mix.exs を開き、35行目を次のように書き換えてください。

:
35 -      {:gettext, "~> 0.11"},
35 +      {:gettext, "~> 0.14.1"},
:

そして、ターミナルで次のコマンドを実行してください。

$ mix deps.update gettext

本書の刊行後にパッケージ gettext のバージョン 1.15.0 がリリースされました。このバージョンから Elixir 1.4 以上が必要となったため、本書で採用している Elixir 1.3.4 では正常に動作しません。

10.2節「スタイルシート」

  • 項「brunch-config.js の変更」内のソースコードのパス(P.80)
誤 web/templates/layout/app.html.eex
正 brunch-config.js

11.1節「Bootstrapの導入」

  • 項「Brunchの設定」内のソースコード(P.89)

...
76 +     }
77
78     watcher: {
79       usePolling: true
80     }
81   }

...
76 +     }
77     },
78
79     watcher: {
80       usePolling: true
81     }
82   }

Kindle 版の更新履歴

v1.0 2016-11-23

  • Kindle版の発売開始。

v1.1 2017-01-07

7.3節「関数としてのアクション」

  • 第3段落
誤 これについては、第15章で詳しく説明します。
正 これについては第8章や第16章でも言及しますが、詳しくは次巻『初級②』で解説します。

10.2節「スタイルシート」

  • 項「主部にスタイルシートを適用」の第1段落
誤 web/static/assets/css ディレクトリの下に
正 web/static/css ディレクトリの下に

12.8節「アリティ別に関数を定義する」

  • 最初のソースコード(app.html.eex)

1   defmodule Hello3 do
2 +   def message do
3 +     "Hello, world!"
4 +   end
5 +
6     def message(name) do
7       "Hello, #{name}!"

1   defmodule Hello3 do
2 -   def message(name \\ "world") do
2 +   def message do
3 +     "Hello, world!"
4 +   end
5 +
6 +   def message(name) do
7       "Hello, #{name}!"

17.5節「content_tag 関数」

  • 最初のソースコード(app.html.eex)
誤 13 -     href="<%= static_path(@conn, "/modest_greeter.ico") %>">
正 13 -     href="<%= static_path(@conn, "/images/modest_greeter.ico") %>">
誤 14 +     href=static_path(@conn, "/modest_greeter.ico") %>
正 14 +     href=static_path(@conn, "/images/modest_greeter.ico") %>
誤 15 -     href="<%= static_path(@conn, "/modest_greeter256.png") %>">
正 15 -     href="<%= static_path(@conn, "/images/modest_greeter256.png") %>">
誤 16 -     href: static_path(@conn, "/modest_greeter256.png") %>
正 16 -     href: static_path(@conn, "/images/modest_greeter256.png") %>

v3 2017-02-20

第2章

  • 「各種ソフトウェアのインストール」の内容を大幅に改訂。改訂後の内容(PDF)は下記URLから入手できます。

http://www.oiax.jp/books/files/ex01-ch02.pdf

第11章

  • Bootstrapのバージョンを 4.0.0-alpha.5 から 4.0.0-alpha.6 に変更。
  • HTMLクラス text-xs-centertext-center に変更。

第17章

  • web/templates/hello/show.html.eex のコードを次のように変更。

(変更前)

1   <div class="card m-1">
2 +   <%= tag :img, src: static_path(@conn, "/images/modest_greeter.svg"),
3 +     alt: "Robot", style: "width: 100%; max-width: 320px" %>
4     <div class="card-block card-inverse card-success">

(変更後)

1   <div class="card m-1">
2 +   <div class="text-center">
3 +     <%= tag :img, src: static_path(@conn, "/images/modest_greeter.svg"),
4 +       alt: "Robot", style: "width: 100%; max-width: 320px" %>
5 +   </div>
6     <div class="card-block card-inverse card-success">

v4 2017-11-22

※ 紙書籍の第2版に相当します。

第2章

  • 「各種ソフトウェアのインストール」の内容を大幅に改訂。改訂後の内容(PDF)は下記URLから入手できます。

http://pub.oiax.jp/books/ex01-ch02.ver2.pdf

第5章

5.2 Phoenix アプリの骨格を生成する

「ターミナルに次のような結果が表示されます。」の表示

(変更前)

...
* creating modest_greeter2/web/views/layout_view.ex
* creating modest_greeter2/web/views/page_view.ex

(変更後)

...
* creating modest_greeter/web/views/layout_view.ex
* creating modest_greeter/web/views/page_view.ex
コラム「inotify からのメッセージ」

削除

第6章

6.2 ファイルの拡張子

  • 「この章で私たちが書き換えたり」を「前章で私たちが書き換えたり」に修正。

第10章

10.2 スタイルシート

  • 項「NPMパッケージsass-brunchの導入」の次に項「brunch-config.js の変更」を追加し、brunch-config.jsを次のように書き換えるように指示。
  npm: {
    enabled: true
  },

  watcher: {
    usePolling: true
  }
};

usePolling オプションに true をセットすると、Brunch によるファイルの変更の検知が少しだけ遅くなりますが、動作が安定します。

第11章

  • 大幅改訂。改訂後の内容(PDF)は下記URLから入手できます。

http://pub.oiax.jp/books/ex01-ch11.ver2.pdf

第15章

  • HTML ソースコードおよび本文内の m-1 をすべて m-3 に変更(4ヶ所)。

第16章

  • HTML ソースコード内の m-1 をすべて m-3 に変更(2ヶ所)。
  • HTML ソースコードおよび本文内の mb-1 をすべて mb-3 に変更(6ヶ所)。
  • HTML ソースコード内の nav-inline をすべて justify-content-center に変更(4ヶ所)。

第17章

  • 大幅改訂。改訂後の内容(PDF)は下記URLから入手できます。

http://pub.oiax.jp/books/ex01-ch17.ver2.pdf

v5 2018-01-06

第2章

  • 2.1節「準備作業」の項「macOSの場合」の末尾に以下の記述を追加:

ターミナルで次のコマンドを実行し、opensslをインストールします。

$ brew install openssl

ホームディレクトリに .kerlrc という名前のファイルを作成し、その中に次の内容を書き入れます。

KERL_CONFIGURE_OPTIONS="--enable-dynamic-ssl-lib --with-ssl=/usr/local/opt/openssl"

改訂後の第2章全体(PDF)を下記URLから入手できます。

http://pub.oiax.jp/books/ex01-ch02.ver2a.pdf

v6 2018-05-14

第5章

  • 5.2節「Phoenix アプリの骨格を生成する」に、gettextパッケージのダウングレードに関する記述を追加。変更内容はペーパーバック版(第2版第1刷)の正誤表を参照のこと。