たとえ後で罪を得ても座視しているわけにはいかない。
Advent Calendar 2022 27日目1の記事です。
I'm ready for 12/25,2022
I'm looking forward to 12/25,2022
I can't wait for 12/25,2022
私のAdvent Calendar 2022 一覧。
はじめに
Elixirを楽しんでいますか
ElixirでWebアプリケーション開発を楽しむには、Phoenixを使います。
ところで、みなさんはPhoenixをどんなふうに発音していますか。
$\huge{フェニックス}$
と日本に住んでいる多くの方は発音しているとおもいます。
これは聖闘士星矢の影響だとおもいます2。
海外のAlchemistたちは、どうも「フェニックス」とは言っていないような気がします。
どう発音するのか調べてみました。
$\huge{フィニック(ス)}$
と私には聞こえています。
最後のスは言っているか言っていないかくらいの小ささです。
発音記号
fíːniks
あ、ごめん。
私コレ出されてもよくわかりません
実際に聞いてみよう
YouTubeから、Phoenixと言っているできるだけピンポイントの瞬間をご紹介します。
Chris McCordさん
Phoenixの作者です。
José Valimさん
Elixirの作者です。
みなさんには、どう聞こえましたか?
ジョン万次郎方式
そういうものがあるんです。
幕末に活躍された方です。
万次郎達は足摺岬の南東15キロメートルほどの沖合で操業中、突然の強風に船ごと吹き流され、航行不能となって遭難してしまう。5日半(資料によっては10日間)を漂流した後、伊豆諸島にある無人島の一つである鳥島に漂着し、この島でわずかな溜水と海藻や海鳥を口にしながら143日間を生き延びた。同年5月9日(1841年6月27日)、万次郎達は、船長ウィリアム・ホイットフィールド率いるアメリカ合衆国の捕鯨船ジョン・ハウランド号が食料として海亀を確保しようと島に立ち寄った際、乗組員によって発見され、救助された。
しかし、その頃の日本は鎖国していたため、この時点で故郷へ生還する術はなく、帰国の途に就いた捕鯨船に同乗したままアメリカへ向かわざるを得なかった。
(https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A7%E3%83%B3%E4%B8%87%E6%AC%A1%E9%83%8E)
すさまじい人生です。
食いしん坊の私なら3日と持たないでしょう。
そんなすんごい万次郎さんが、たとえばwater
を「ワラ」と書き残すわけです。
生きるか死ぬかの死線をくぐり抜けた万次郎さんが編み出した英語学習法です。
これを使わない手はありません。
早速使ってみます。
じゃん!
$\huge{フィニック(ス)}$
と私には聞こえています。
最後のスは言っているか言っていないかくらいの小ささです。
「(ス)」についてアメリカ在住の @mnishiguchi さんから教えてもらいました。
ネイティブの発音を聞いてみると舌と前歯の隙間から漏れる空気の音です。
日本語で「うーすっ」みたいに軽い挨拶のときの「ス」が近いと思います。
さらにはこの空気の音をまず覚えておいて、TH
と比べてみるとまた面白いそうです!!!
ここで突然、PhoenixのHello, world的なことをおっぱじめます。
Elixirをインストールしておいてください。
ここでは、データベースにPostgreSQLを使います。
参考: DockerでPostgreSQLを起動する
$ docker run -d --rm -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres postgres:13
POSTGRES_USER
と POSTGRES_PASSWORD
の値を変更したら、あとで作るconfig/dev.exs
やconfig/test.exs
の値を変更してください。
プロジェクトのセットアップ
$ mix local.hex
$ mix archive.install hex phx_new
$ mix phx.new basic
$ cd basic
$ mix setup
ブログ機能
ブログ機能を作ります。
$ mix phx.gen.live Blogs Blog blogs title:string body:text
指示にしたがって、lib/basic_web/router.ex
を変更
scope "/", BasicWeb do
pipe_through :browser
get "/", PageController, :index
live "/blogs", BlogLive.Index, :index
live "/blogs/new", BlogLive.Index, :new
live "/blogs/:id/edit", BlogLive.Index, :edit
live "/blogs/:id", BlogLive.Show, :show
live "/blogs/:id/show/edit", BlogLive.Show, :edit
end
$ mix ecto.create
$ mix ecto.migrate
$ mix phx.server
※ 前の手順で、この記事の通りmix setup
をした場合はこのときにデータベースが作られるので、mix ecto.create
はしなくてもよいです。
はい、できあがり
Visit: http://localhost:4000/blogs
Wrapping up
Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
Phoenixは、
$\huge{フィニック(ス)}$
と私には聞こえています。
最後のスは言っているか言っていないかくらいの小ささです。
2022年に流行る技術予想 ーー それは、Elixir、Phoenix LiveView、Livebook、Nerves Livebookです
Elixirの誕生日は、2012年5月24日です。
そのため、今年の2022年5月24日は10周年を迎えます。
iex> Date.diff(~D[2022-05-24], ~D[2022-01-27])
117
そうそう!
2月24日発売予定のWEB+DB PRESSで、ElixirとPhoenixの特集がでますよ〜
次号のWEB+DB PRESSでElixirとPhoenix特集が出ます!お楽しみに!!1 pic.twitter.com/d4hIfhIfZ1
— 栗林健太郎 (@kentaro) January 18, 2022
Elixir
最後の最後に、Elixirについて紹介します。
- |>でスイスイ、プログラミングしていくことができる素敵なプログラミング言語です
- さっそくプログラムの例を示します
-
Qiita APIを使わせていただいて、
Elixir
タグがついた最新の記事を20件取得しています - ここでは雰囲気をつかんでいただければ大丈夫です
Mix.install [{:req, "~> 0.2.1"}]
"https://qiita.com/api/v2/items?query=tag:Elixir"
|> URI.encode()
|> Req.get!(finch_options: [pool_timeout: 50000, receive_timeout: 50000])
|> Map.get(:body)
|> Enum.map(& Map.take(&1, ["title", "url"]))
Webアプリケーションを楽しむなら
IoTを楽しむなら
AIを楽しむなら
もっとElixirのことを知りたい方へオススメの書籍
- プログラミングElixir(第2版) -- オーム社
- Elixir実践ガイド -- インプレス
- アルケミスト − 夢を旅した少年 -- KADOKAWA
コミュニティ
-
elixir.jp Slack workspaceに参加してみてください
- マヂ、やさしい人ばっかりのコミュニティ
- あなたの困ったをきっと解決してくれるでしょう
- NervesJP Slack workspaceでは、NervesやIoTが好きな愉快なfolksたちがあなたの訪れを歓迎します
- たくさんのコミュニティがあります
(EDI/fukuoka.ex/kokura.ex & LiveView JP の @piacerex さん作 )
Elixirコミュニティに初めて接する方は下記がオススメです
Elixirコミュニティ の歩き方 -国内オンライン編-
https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian
(piyopiyo.ex & エリジョ の nakoさん(@nako_sleep_9h) 作、素敵な資料)
I organize autoracex.
And I belong to NervesJP, fukuoka.ex, EDI.
I hope someday you'll join us.
We Are The Alchemists, my friends!
-
@kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。 ↩
-
テキト〜 に言っています。真に受けないでください。 ↩