Elixirのコミュニティ イベントがひと目でわかるようになるってよ！

**市場は成熟しているかもしれないが商品は成熟などしていない。**

Advent Calendar 2022 33日目[^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:

<font color="purple">$\huge{待望}$</font>
です。
**待ち望む**です。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">connpassにあがっているElixir関連のイベントをパッと見れるサイトを構築中🚀 <br><br>FullCalendarってやつを使うとカレンダーのUIがサクッとできた。見た目の調整はもう少し必要そうだけど。 <a href="https://t.co/zEUgSt5nJk">pic.twitter.com/zEUgSt5nJk</a></p>&mdash; 古賀 祥造 (@koga1020_) <a href="https://twitter.com/koga1020_/status/1488880548403503112?ref_src=twsrc%5Etfw">February 2, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

[fukuoka.ex](https://fukuokaex.connpass.com/)オーガナイザー兼、[Phoenix v1.6 hexdocs 日本語訳](https://zenn.dev/koga1020/books/phoenix-guide-ja-1-6)の @koga1020 さんの発表です。

**本当に待ち望んでいます**。

# [Elixir](https://elixir-lang.org/)のコミュニティ

[Elixir](https://elixir-lang.org/)は、
<font color="purple">$\huge{コミュニティが多いんです。}$</font>

![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:)

# コミュニティが多いと……

「コミュニティが多い」と、各イベントの開催が丸かぶりすることがあります。
特に[fukuoka.ex](https://fukuokaex.connpass.com/)と[NervesJP](https://nerves-jp.connpass.com/)とか、[NervesJP](https://nerves-jp.connpass.com/)とか。
少なくとも過去２回同日、同時間帯の開催となってしまったことがあると記憶しております。
私の記憶はいい加減です。調べるのが面倒なので調べません。その厳密さはここでは必要ないとおもうので。

丸かぶりすることは、それだけ各々が活発に活動しているという証であります。

## 一参加者として

ただやっぱり両方とも参加したいということがあるのです。
以下は、参加者としての私の感じ方です。

- 私の[Elixir](https://elixir-lang.org/)コミュニティの初参加は、[kokura.ex#1](https://fukuokaex.connpass.com/event/116855/)であり、その同門の主筋にあたるのが[fukuoka.ex](https://fukuokaex.connpass.com/)だとおもっております
- そこで主家にあたる[fukuoka.ex](https://fukuokaex.connpass.com/)に参加をしたいのは山々
- ただ、[Elixir](https://elixir-lang.org/)にのめり込んでいったのは、ただ[Nerves](https://www.nerves-project.org/)で"Hello, World"的なことだけで喜んでくれた[NervesJP](https://nerves-jp.connpass.com/)であり、アドベントカレンダーその2を作ったり、その他もろもろ自由にやらせてもらっているので「いまは」[NervesJP](https://nerves-jp.connpass.com/)を優先しています

というようなことを参加者それぞれが考え、悔いのない選択[^2]をするように迫られるわけです。
ちなみに[NervesJP](https://nerves-jp.connpass.com/)を優先している理由をさらに補足すると、「**ナウでヤングでcool**」を[最初に言い出したこと自体](https://twitter.com/torifukukaiou/status/1201266889990623233)は、何を隠そう私です。
@takasehideki先生の発信力で知られるようになりました。
[NervesJP](https://nerves-jp.connpass.com/)には思い入れが強いです。

[^2]: 「進撃の巨人」が好きな人はわかりますよね。ほら、アレです。リヴァイ兵長に言われるアレです。 http://phoenix-wind.com/word/20183.php

## オーガナイザー側の立場から

オーガナイザー側からすると、@koga1020さんのカレンダーをみることでかぶらないように調整できます。

ちなみにどうでもよいですが、私が主催している[autoracex](https://autoracex.connpass.com/)は、時間の概念がないので、これからも週末に淡々と回を重ねます。
ただ他とかぶったときは私自身が参加をしていません。それでいいんです、[autoracex](https://autoracex.connpass.com/)は。
この話はあまり理解してもらえないとおもうのでこのへんでやめておきます。

さらには、海外のfolksたちや凄腕Alchemistたちに知ってもらえるチャンスは広がるとおもいます。
海外の方にとっては、connpassを直接みるより、@koga1020さんの[Elixir](https://elixir-lang.org/)カレンダーをみるほうが負担が少ないとおもいます。
日本や日本語に興味をもっているfolksはいます。
私は[elixir-lang.slack.com](https://join.slack.com/t/elixir-lang/shared_invite/zt-eivteker-k_nArD59XHjjN_r8qeH6dw)で文通している、フランス在住のFriendがいます。
時差の関係などでいろいろ難しい面はあるかもしれませんが、そういった方が参加してくるかもしれません。

英語をほとんど聞き取れない、話せない私が[Nerves Meetup](https://mobile.twitter.com/nervesmeetup)に参加したことがあるように、オーガナイザーみなさんの回に、海外のfolksたちが参加してくれるようになるかもしれません。
そのときはぜひあたたかく迎え入れましょう！






# 一点気になることが……

まだ開発途中ということだとはおもいますが、サンプル画像に私が主催している「[autoracex](https://autoracex.connpass.com/)」がないのです。
<font color="purple">$\huge{ないのです}$</font>

![FKmQjmYVgAAlZEe.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/49b89813-9f04-8f98-4334-b6113456ebaf.png)


それでもしかすると、[autoracex](https://autoracex.connpass.com/)は時間の概念なんてない、超越していると常々いっておりますから、もしかしたら、もしかしたらですよ、[connpass API](https://connpass.com/about/api/)の結果に[autoracex](https://autoracex.connpass.com/)は含まれていないのではないか:interrobang::interrobang::interrobang:　とおもった次第です。
それはそれで
<font color="purple">$\huge{おいしい}$</font>
と私はおもっています。

そこでどうなのだろう？　と、気になったものは調べたくなる性分でして以下のプログラムを動かしてみました。

## プログラム

[Elixir](https://elixir-lang.org/)は、`1.13.1-otp-24`を使っています。

```elixir
Mix.install([
  {:req, "~> 0.2.0"}
])

Req.get!("https://connpass.com/api/v1/event/?keyword=elixir&ym=202202")
|> Map.get(:body)
|> Map.get("events")
|> Enum.map(& Map.take(&1, ["title", "started_at", "event_url"]))
```

## 結果

結果は以下の通りです。

```elixir
[
  %{
    "event_url" => "https://fukuokaex.connpass.com/event/238470/",
    "started_at" => "2022-02-16T08:30:00+09:00",
    "title" => "最新のITや開発言語Elixirの話をします【kokura.exラジオ】#42"
  },
  %{
    "event_url" => "https://fukuokaex.connpass.com/event/238468/",
    "started_at" => "2022-02-09T08:30:00+09:00",
    "title" => "【kokura.ex】「ElixirドキュメントやTypespecsを書いてみよう！」勉強会 #4"
  },
  %{
    "event_url" => "https://fukuokaex.connpass.com/event/237074/",
    "started_at" => "2022-02-16T19:30:00+09:00",
    "title" => "【人気につき2度目の増枠】EDI#12：Elixirで本業 or 副業する？できる？"
  },
  %{
    "event_url" => "https://liveviewjp.connpass.com/event/237625/",
    "started_at" => "2022-02-22T19:30:00+09:00",
    "title" => "LiveView JP#4：Livebookで何か作ろう＋Livebookでモブライブコーディング"
  },
  %{
    "event_url" => "https://autoracex.connpass.com/event/238210/",
    "started_at" => "2022-02-05T00:00:00+09:00",
    "title" => "autoracex #71"
  },
  %{
    "event_url" => "https://autoracex.connpass.com/event/238209/",
    "started_at" => "2022-02-04T00:00:00+09:00",
    "title" => "autoracex #70"
  },
  %{
    "event_url" => "https://fukuokaex.connpass.com/event/237977/",
    "started_at" => "2022-02-02T08:30:00+09:00", 
    "title" => "最新のITや開発言語Elixirの話をします【kokura.exラジオ】#41"
  },
  %{
    "event_url" => "https://piyopiyoex.connpass.com/event/235758/",
    "started_at" => "2022-02-05T12:30:00+09:00",
    "title" => "piyopiyo.ex#4：Phoenix環境構築〜Hello,world!"
  },
  %{
    "event_url" => "https://algyan.connpass.com/event/236150/",
    "started_at" => "2022-02-12T14:00:00+09:00",
    "title" => "【オンライン】ROS x IoT ってどうなのよ2022"
  }
] 
```

私の実行結果には、[autoracex](https://autoracex.connpass.com/)は含まれていました。
<font color="purple">$\huge{な〜んだ}$</font>

検索クエリの指定の仕方によって結果はかわるとおもいますし、@koga1020さんのリリースを待ち望みたいとおもいます。

もしソースコードが公開されるようでしたら、なにかしらのお手伝いをしたいとおもっています。
サーバー代の意味で、全部を肩代わりはできませんし、びっくりするくらいの少額であきれられるかもしれませんが、毎月のスポンサードみたいなことも考えています。
とにかくなにか私はします。
技術的な興味は、定期的にイベント取得をするとおもうのですが、[Quantum](https://github.com/quantum-elixir/quantum-core)を使う?、イベント情報の[upserts](https://hexdocs.pm/ecto/constraints-and-upserts.html#upserts)みたいなことをする?、LiveViewの使用方法に興味津々とおもっておりまして、そのへんの実装に興味があります。

## プルリク:interrobang::interrobang::interrobang:

さらには余計なことですが、[Enum.reject/2](https://hexdocs.pm/elixir/Enum.html#reject/2)で[autoracex](https://autoracex.connpass.com/)を除外するプルリクを主催者自らが送るという、ひとクセも二癖もあることをしてみたいとおもっています。
そしてそのプルリクのコメント欄で、**時間**というものについてさまざまなご意見を頂戴したいとおもっています。
誰にも伝わらないとおもいます[^3]が、このプルリクを出すことについて私はひとりで
<font color="purple">$\huge{ワクワク}$</font>
しています。

- マージしないように言ってくれるFriendがいたり
- 主催者の意思を尊重しますってことで、速攻マージされてみたり

いまは変なテンションになっているので、ひとりで盛り上がっていますが、結局プルリクはださないかもしれません。

[^3]: 私の妻には通じました。「わかる」と言っていました。だから結婚したのだと改めて気づきました。

---

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

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


- [Elixir](https://elixir-lang.org/)のコミュニティはたくさんあります
- [Elixir](https://elixir-lang.org/)のコミュニティの開催予定がひと目でわかるカレンダー形式のものを@koga1020さんが開発をされています
- リリースを楽しみに待ちましょう
- `"https://connpass.com/api/v1/event/?keyword=elixir&ym=202202"`の結果には、[autoracex](https://autoracex.connpass.com/)は含まれていました


あ、おもいだした。
[Phoenix入門 API構築からLiveViewまで](https://booth.pm/ja/items/1574315):book: という@koga1020さんの著書を私はもっています。
さらには、@koga1020さんのサイン入りです!!!



---

# 付録

以下、付録です。





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

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


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

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">次号のWEB+DB PRESSでElixirとPhoenix特集が出ます！お楽しみに！！1 <a href="https://t.co/d4hIfhIfZ1">pic.twitter.com/d4hIfhIfZ1</a></p>&mdash; 栗林健太郎 (@kentaro) <a href="https://twitter.com/kentaro/status/1483308857019760640?ref_src=twsrc%5Etfw">January 18, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


---


# [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:)



---

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)