Elixirで新年のごあいさつ、いろいろ

**Let me express the greetings of the season.**

Advent Calendar 2022 1日目[^1]の記事です。
私の[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:

趣味: 「Qiita Advent Calendar 2021に記事を書くこと」です。
趣味と言うからには、[25日分どこかのカレンダーに記事](https://docs.google.com/spreadsheets/d/1HQvFjagQLRPjOYAjDVzWp9S4b8dKixxvvaz_TtbZWto/edit#gid=0)を書きました。

12月も後半に近づくとこんなことをおもいました。

**毎日が12月だったらいいのに!!!**
**I hope every day was in December!!!**

Qiitaに記事を毎日投稿し続けると、レベルアップできるかもしれないからです。
12月が終わることを惜しんでいました。

そう言いながら、実は、私は逃げていました。
現実には1月になり、もうアドベントカレンダー向けに記事を書かなくてよいとホッとしている自分がいるのです。

本当に「**毎日が12月だったらいいのに**」とおもっているのなら、今日からアドベントカレンダーを書き始めればいいわけです。
自分自身との闘いです。
否。闘ってなんていません。とにかく楽しむだけです。
「これから自分たちは、何があっても前を見て、ただ前を見て進みたいと思いますので、みなさんよろしくお願いします。」

そんなことを、@kaizen_nagoya さんの「[「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 １日目　Most Breakthrough Generator](https://qiita.com/kaizen_nagoya/items/49ebebee3a0377f3b59b)」をファミレスで読んでいておもいました。

# Elixirで新年のごあいさつ、いろいろ

ユー、[Elixir](https://elixir-lang.org/)をインストールして、`iex`コマンドにて、IExと呼ばれるREPL(Read-Eval-Print Loop)[^2]を起動して、下記のコード片をおもむろにコピペしてEnterしちゃいなよ。

[^2]: `IEx`って、REPL(Read-Eval-Print Loop)って呼んでいいんだよね?

## 私から

```elixir
[72, 97, 112, 112, 121, 32, 78, 101, 119, 32, 89, 101, 97, 114, 33]
```

```elixir
[73, 109, 112, 111, 115, 115, 105, 98, 108, 101, 32, 124, 62, 32, 73, 39, 109, 32, 112, 111, 115, 115, 105, 98, 108, 101]
```

[Charlist](https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#charlists)と呼ばれるものです。

## @mnishiguchi さんから

```elixir
'6ErKZ>u[\\:HJ8rM' |> Enum.map(&Kernel.+(&1, 12300)) |> List.to_string
```

[String](https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html)と呼ばれるものです。

## @piacerex さんから

```elixir
<<80, 108, 101, 97, 115, 101, 32, 108, 105, 118, 101, 32, 119, 101, 108, 108, 32, 116, 104, 105, 115, 32, 121, 101, 97, 114>>
```

[Binary](https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#binaries)と呼ばれるものであり、この例は、

> A string is a UTF-8 encoded binary

です。

## @t-yamanashi さんから

```elixir
[20170, 24180, 12418, 12424, 12429, 12375, 12367, 12362, 12397, 12364, 12356,
 12375, 12414, 12377] |> List.to_string()
```

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">[20170, 24180, 12418, 12424, 12429, 12375, 12367, 12362, 12397, 12364, 12356,<br> 12375, 12414, 12377] |&gt; List. to_string</p>&mdash; ymn (@ymnbuild) <a href="https://twitter.com/ymnbuild/status/1477061693121654784?ref_src=twsrc%5Etfw">December 31, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


```elixir
[12417, 12362, 12369, 12354]
|> Enum.reverse() 
|> String.Chars.to_string()
```

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">[12417, 12362, 12369, 12354]<br>|&gt; Enum.reverse <br>|&gt; String. Chars. to_string<br><br>眠いので先に書いときます。</p>&mdash; ymn (@ymnbuild) <a href="https://twitter.com/ymnbuild/status/1476928268792070148?ref_src=twsrc%5Etfw">December 31, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


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

Enjoy [Elixir](https://elixir-lang.org/) !!!
今年も楽しんでいきましょう。

今年やりたいとおもってファミレスでナプキン[^3]に走り書きしたことをさらして、1日目の記事を終えます[^4]。

![IMG_20220101_214522.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/5313bbf7-ece2-13a7-3cc5-30a049523d00.jpeg)

以下、少し言葉を補いながら、文字起こししておきます。

- そもそもアドベントって何？
    - https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%89%E3%83%99%E3%83%B3%E3%83%88
- アドベントカレンダーアプリを[Phoenix](https://www.phoenixframework.org/)で作る
- [autoracex](https://autoracex.connpass.com/)の公式LINEアプリを作る
- [Slackのスラッシュコマンド](https://slack.com/intl/ja-jp/help/articles/201259356-Slack-%E3%81%AE%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89)で、我が家の[Nerves](https://www.nerves-project.org/)アプリが反応する(誰得？　なんて気にしない。我が家の温度・湿度を返したり、スピーカーが鳴り出したりするコマンドをリリースしちゃう)
- 型仕様を理解してちゃんと書く
- [Text to Speech](https://github.com/TORIFUKUKaiou/azure_text_to_speech)をいい加減、[Hex](https://hex.pm/)リリースする
- [Bandit](https://github.com/mtrudel/bandit)を利用して`Bolt for Elixir`:interrobang:
- そのHTTP POSTは、本当にLINEから来たの？　Slackから来たものなの？　をチェックするアレをそれだけに絞って[Hex](https://hex.pm/)リリースする
- [Ecto](https://hexdocs.pm/ecto/Ecto.html)の理解を深めるためにそもそもSQL力を鍛える (ナプキンには一言も書いていないです)
- Neos.exからメタバースを楽しむ(ナプキンには一言も書いていないです、他力本願)
- Go, Rust, C#, TypeScriptなど私があまり触れたことのないプログラミング言語に触れてみる



[^3]: なぜナプキンに書いたのか？　って。それは https://www.amazon.jobs/jp/landing_pages/about-amazon に書いてある故事にならいました。

[^4]: 他にもたくさん、まだまだあんなことやこんなことありますが、それはここでは言いますまい。