fukuoka.ex#51：Elixirお茶会〜Ectoを学ぼうの会 （2022/02/24）レポート

**かささぎの渡せる橋に置く霜の白きを見れば夜ぞふけにける**

Advent Calendar 2022 55日目[^1]の記事です。
I'm looking forward to 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
私の[Advent Calendar 2022 一覧](https://docs.google.com/spreadsheets/d/1HQvFjagQLRPjOYAjDVzWp9S4b8dKixxvvaz_TtbZWto/edit#gid=1723448955)。


[^1]: @kaizen_nagoya さんの「[「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 １日目　Most Breakthrough Generator](https://qiita.com/kaizen_nagoya/items/49ebebee3a0377f3b59b)」から着想を得て、模倣いたしました。 

---

# はじめに

[Elixir](https://elixir-lang.org/)を楽しんでいますか:bangbang::bangbang::bangbang:

本日2022/02/24(木)は

https://fukuokaex.connpass.com/event/238834/

**【増枠しました！】fukuoka.ex#51：Elixirお茶会〜Ectoを学ぼうの会**
が開催されました。
そのレポートです。

ワクワクとドキドキを興奮そのままに、
<font color="purple">$\huge{愛と感動}$</font>
を余すことなくお伝えします。
惜しくも参加できなかった方は雰囲気をつかんでつかんでいただいて、ぜひ次回はご参加ください。
参加した方は、公開されている資料のリンクなどを貼っておりますので、ふりかえりにご活用ください。






## 資料集

- [Ectoの全体感をまとめてみる](https://speakerdeck.com/koga1020/ectofalsequan-ti-gan-womatometemiru)
- [fukuoka.ex#51：Elixirお茶会〜Ectoを学ぼうの会 LT資料 -- Ecto Getting Started, DB無しでEcto!?、childrenにはFriends.Repoだけ、Ecto本の紹介](https://qiita.com/torifukukaiou/items/827400e04ad3621c9e1b)
- [Ecto.Multiを使ってみた](https://qiita.com/the_haigo/items/02e82d6458ca88d1cdd9)


----

# 19:30

Zoomで開催しました。
**everyone, onlineでenjoyです。**



![スクリーンショット 2022-02-24 22.40.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/1b855e31-b046-022c-a65b-83939b7a5303.png)



# 19:35 @koga1020 さん

「[Ectoの全体感をまとめてみる](https://speakerdeck.com/koga1020/ectofalsequan-ti-gan-womatometemiru)」というタイトルです。

https://speakerdeck.com/koga1020/ectofalsequan-ti-gan-womatometemiru

[sli.dev](https://sli.dev/)で資料を作られたそうです。

タイトルに偽りなしです。
[Ecto](https://hexdocs.pm/ecto/Ecto.html)の全体感がよくまとまっています。

[公式ドキュメント](https://hexdocs.pm/ecto/Ecto.html)でも最初に

> Ecto is split into 4 main components:

として挙げられている、`Ecto.Repo`、`Ecto.Schema`、`Ecto.Changeset`、`Ecto.Query`の話をしてくださいました。


![スクリーンショット 2022-02-24 20.33.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/fee57fa7-4558-79c3-f98b-1822c803aa1c.png)


![スクリーンショット 2022-02-24 20.32.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/52c91e8d-016e-c49d-2336-6bc01c6a847d.png)

<font color="purple">$\huge{よくまとまっている}$</font>
(あんた、何目線？　それはヒ・ミ・ツ）のでぜひご覧になってください。
上記は象徴的なスライドを抜粋しました。

---

# 19:50 @torifukukaiou

[fukuoka.ex#51：Elixirお茶会〜Ectoを学ぼうの会 LT資料 -- Ecto Getting Started, DB無しでEcto!?、childrenにはFriends.Repoだけ、Ecto本の紹介](https://qiita.com/torifukukaiou/items/827400e04ad3621c9e1b)

https://qiita.com/torifukukaiou/items/827400e04ad3621c9e1b

It's meの発表です。
4つの話をしました。

https://hexdocs.pm/ecto/getting-started.html

https://qiita.com/torifukukaiou/items/aea6409e695f9a29d1b0

https://qiita.com/torifukukaiou/items/bfbe459979172ecab7d9

最後に、本の紹介

---

# 20:00 @the_haigo さん

[Ecto.Multiを使ってみた](https://qiita.com/the_haigo/items/02e82d6458ca88d1cdd9)

https://qiita.com/the_haigo/items/02e82d6458ca88d1cdd9

詳しくは記事をみていただくとして、象徴的なコード片を抜粋しておきます。

```elixir
Enum.zip(1..length(parsed_data), parsed_data) 
|> Enum.reduce(Ecto.Multi.new(), fn {index, post}, multi -> 
  Ecto.Multi.insert(
    multi,
    "post_#{index}", 
    Blogs.change_post(%Post{}, post)) 
end) 
|> Repo.transaction()
```

<font color="purple">$\huge{Ecto.Multi}$</font>
はよ〜く使います。

---

# 20:20 @piacere さん

資料作成が間に合わなかったそうです。
それで
**ライトニングトークではなくライトニングライブコーディング始まりました。**

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ライトニングトークではなくライトニングライブコーディング始まったw<a href="https://twitter.com/hashtag/fukuokaex?src=hash&amp;ref_src=twsrc%5Etfw">#fukuokaex</a></p>&mdash; 古賀 祥造 (@koga1020_) <a href="https://twitter.com/koga1020_/status/1496808169875533824?ref_src=twsrc%5Etfw">February 24, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

@piacere さんによるライトニングライブコーディングの様子です。
**いつものように** [Neos VR](https://store.steampowered.com/app/740250/Neos_VR/?l=japanese) の中からZoomに参加されています。

![スクリーンショット 2022-02-24 20.26.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/d59cdfcf-2b95-e319-a9b9-353c94b293b5.png)

[WEB+DB PRESS Vol.127](https://gihyo.jp/magazine/wdpress/archive/2022/vol127):book:がたくさん売れているそうです。
特集2は[Phoenix](https://www.phoenixframework.org/)です。

![スクリーンショット 2022-02-24 20.37.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/46057dab-aa13-7ac4-d522-ec0973eefc63.png)

<font color="purple">$\huge{ライトニングライブコーディング}$</font>
でした〜。

---

# 20:30 アンケートなど見ながらディスカッション

@koga1020 さんの進行で、 **アンケートなど見ながらディスカッション** が行われました。
象徴的なシーンのスクリーンショットを載せておきます。

![スクリーンショット 2022-02-24 20.45.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/863341e4-84f1-9b2b-d25e-4a2d4231e235.png)


# 21:00 本会終了

21:00くらいに一旦、本会は終了しました。


以降は懇親会です。
内容は
<font color="purple">$\huge{ムフフ💜💜💜}$</font>
です。

とてもここには書けません。
ぜひ、次回の[fukuoka.ex](https://fukuokaex.connpass.com/)に参加して、あなた自身で体験してみてください！！！

少しだけチラ見せです。
いまみてもとってもおもしろい @ohr486 さんの2016年ころの記事がいろいろと紹介されました。


- [Software Design (ソフトウェアデザイン) 2016年11月号 (発売日2016年10月18日)](https://www.fujisan.co.jp/product/1535/b/1425020/)
- [最速で知る！ ElixirプログラミングとErlang/OTPの始め方【第二言語としてのElixir】](https://eh-career.com/engineerhub/entry/2017/06/12/110000)
- [地獄のElixir(目黒スタートアップ勉強会)](https://www.slideshare.net/ohr486/elixir-52044515)
- [Elixirと他言語の比較的紹介ver.2](https://www.slideshare.net/ohr486/elixirver2)
- [Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介](https://www.slideshare.net/ohr486/shibuyaex-1-elixir)

ありがたや〜 :pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:



---

# Wrapping up :lgtm::lgtm::lgtm::lgtm::lgtm:

Enjoy [Elixir](https://elixir-lang.org/):bangbang::bangbang::bangbang:
<font color="purple">$\huge{Enjoy\ Elixir🚀}$</font>
<font color="purple">$\huge{Enjoy\ Ecto🚀}$</font>

2022/02/24(木)に開催された[**【増枠しました！】fukuoka.ex#51：Elixirお茶会〜Ectoを学ぼうの会**](https://fukuokaex.connpass.com/event/238834/)のレポートをお届けしました。
次回も楽しみです！！！

[Ecto](https://hexdocs.pm/ecto/Ecto.html)最高です!!!

![スクリーンショット 2022-02-24 22.57.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/5d148454-045a-4099-b44c-d22cf1fd8e4c.png)


## 次回

次回の[fukuoka.ex](https://fukuokaex.connpass.com/)の開催予定日は、
<font color="purple">$\huge{3月吉日}$</font>
です。
Coming soon!!!
Don't miss it!!!




Twitterのハッシュタグ[**#fukuokaex**](https://twitter.com/hashtag/fukuokaex)にご注目ください！




 

---

# 付録

以下、付録です。





[Elixir](https://elixir-lang.org/)の誕生日は、2012年5月24日です。
そのため、今年の2022年5月24日は10周年を迎えます。

```elixir
iex> Date.diff(~D[2022-05-24], ~D[2022-02-24])
89
```


そうそう！
2月24日発売予定の[WEB+DB PRESS Vol.127](https://gihyo.jp/magazine/wdpress/archive/2022/vol127)で、[Elixir](https://elixir-lang.org/)と[Phoenix](https://www.phoenixframework.org/)の特集がでますよ〜

[Elixir](https://elixir-lang.org/)、[Phoenix](https://www.phoenixframework.org/)をはじめられたばかりの方も、腕におぼえがある方も、どんなものなのかなあと様子見をきめこんでいる方も、
つまりは
<font color="purple">$\huge{全人類のみなみなさま！！！}$</font>
**お手にとって、お楽しみください!!!**


<blockquote class="twitter-tweet"><p lang="en" dir="ltr">We, <a href="https://twitter.com/tamanugi?ref_src=twsrc%5Etfw">@tamanugi</a> <a href="https://twitter.com/torifukukaiou?ref_src=twsrc%5Etfw">@torifukukaiou</a> <a href="https://twitter.com/the_haigo?ref_src=twsrc%5Etfw">@the_haigo</a> <a href="https://twitter.com/mokichi_s12m?ref_src=twsrc%5Etfw">@mokichi_s12m</a> including me, wrote featured articles for WEB+DB PRESS Vol.127 about Elixir and Phoenix! It&#39;s being published on 24, Feb.<a href="https://t.co/UPNiVU1zG9">https://t.co/UPNiVU1zG9</a></p>&mdash; 栗林健太郎 (@kentaro) <a href="https://twitter.com/kentaro/status/1489441847130746880?ref_src=twsrc%5Etfw">February 4, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## [fukuoka.ex特別編:WEB+DB PRESS vol127 Phoenix特集こたつで座談会](https://fukuokaex.connpass.com/event/239094/)

https://fukuokaex.connpass.com/event/239094/

https://gihyo.jp/magazine/wdpress/archive/2022/vol127

出版記念イベントが開催されます。
ぜひご参加ください。

**2022/03/08(火) 19:30 〜 21:00**
**この本を多くの方に知っていただき、出版という ”おめでたい” イベントを、執筆陣全員と皆さまで、ぜひ同じこたつに入ってのんびり座談会するかのように楽しんでいただきたいと思います。**


---


# [Elixir](https://elixir-lang.org/)

最後の最後に、[Elixir](https://elixir-lang.org/)について紹介します。

- [|>](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2)でスイスイ、プログラミングしていくことができる素敵なプログラミング言語です
- さっそくプログラムの例を示します
- [Qiita API](https://qiita.com/api/v2/docs)を使わせていただいて、`Elixir`タグがついた最新の記事を20件取得しています
- ここでは雰囲気をつかんでいただければ大丈夫です

```elixir
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アプリケーションを楽しむなら
- [Phoenix](https://www.phoenixframework.org/)

## IoTを楽しむなら
- [Nerves](https://www.nerves-project.org/)

## AIを楽しむなら
- [Nx](https://github.com/elixir-nx/nx) + [Livebook](https://github.com/livebook-dev/livebook)

## もっと[Elixir](https://elixir-lang.org/)のことを知りたい方へオススメの書籍 :books: 
- [プログラミングElixir（第2版）](https://www.ohmsha.co.jp/book/9784274226373/) -- オーム社
- [Elixir実践ガイド](https://book.impress.co.jp/books/1120101021) -- インプレス
- [アルケミスト − 夢を旅した少年](https://www.kadokawa.co.jp/product/199999275001/) -- KADOKAWA

## コミュニティ
- [elixir.jp](https://join.slack.com/t/elixirjp/shared_invite/zt-ae8m5bad-WW69GH1w4iuafm1tKNgd~w) Slack workspaceに参加してみてください
    - マヂ、やさしい人ばっかりのコミュニティ
    - あなたの**困った**をきっと解決してくれるでしょう
- [NervesJP Slack](https://join.slack.com/t/nerves-jp/shared_invite/zt-9vteokip-iVAqi8TkT0ID_uK9dSqVHA) workspaceでは、NervesやIoTが好きな愉快なfolksたちがあなたの訪れを歓迎します :tada:
- たくさんのコミュニティがあります
![FCOvBkAUYAE6mL8.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/a277d0ea-2780-d9a3-4062-66d38b175125.jpeg)
([EDI／fukuoka.ex／kokura.ex](https://fukuokaex.connpass.com/) ＆ [LiveView JP](https://liveviewjp.connpass.com/) の @piacerex さん作 :pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:)



# <u><b>Elixirコミュニティに初めて接する方は下記がオススメです</b></u>

**Elixirコミュニティ の歩き方 －国内オンライン編－**<br>
https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155423/f891b7ad-d2c4-3303-915b-f831069e28a4.png)](https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian)
([piyopiyo.ex](https://piyopiyoex.connpass.com/) ＆ [エリジョ](https://elijo.connpass.com/) の nakoさん(@kn339264) 作、素敵な資料:clap::clap_tone1::clap_tone2::clap_tone3::clap_tone4::clap_tone5:)

# [Elixir](https://elixir-lang.org/)のイベント情報

@koga1020 さんが作成されたイベントカレンダーがあります。
[https://elixir-jp-calendar.fly.dev/](https://elixir-jp-calendar.fly.dev/)

https://elixir-jp-calendar.fly.dev/

気になるイベントにはぜひ参加してみましょう!!!

上記サイトの解説記事は[こちら](https://zenn.dev/koga1020/articles/6e67765cc53539)です。

https://zenn.dev/koga1020/articles/6e67765cc53539


---

I organize [autoracex](https://autoracex.connpass.com/).
And I take part in [NervesJP](https://nerves-jp.connpass.com/), [fukuoka.ex](https://fukuokaex.connpass.com/), [EDI](https://fukuokaex.connpass.com/), [tokyo.ex](https://beam-lang.connpass.com/), [Pelemay](https://pelemay.connpass.com/).
I hope someday you'll join us.

[We Are The Alchemists, my friends!](https://www.youtube.com/watch?v=04854XqcfCY)


---