tokyo.ex #17 ハンズオン回（2022/03/26）レポート

**人はいさ心も知らずふる里は花ぞ昔の香に匂ひける**


---

Advent Calendar 2022 85日目[^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/03/26(土)は「[tokyo.ex #17 ハンズオン回](https://beam-lang.connpass.com/event/241339/)」が開催されました。
そのレポートです。

今日は参加しました！！！

# 資料

https://github.com/ohr486/ElixirHandsOn20220326

資料が充実しています。
上記にまとまっています。
仏像制作がご趣味の @ohr486 さん です。
ありがたや〜

![2022-03-26-tokyoex-vol17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/96ab573c-b587-4055-99a3-fd95aa439c38.png)



# 13:05 Let's get started!!!

さあ、はじまりました！
@ohr486 さんが丁寧に説明してくださいました！

## ターゲットとゴール

ターゲットとゴールはこちらです。

![2022-03-26-tokyoex-vol17-handson-event-slide.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/13627635-ba41-2824-26ac-f7584f3e8acd.jpeg)

HTTPプロトコルの理解から始まって、[Elixir](https://elixir-lang.org/)でHTTPサーバを実装しちゃいます！

## 話さないことの紹介も手厚い！

**話さないことの紹介も手厚い！**　のです。

![2022-03-26-tokyoex-vol17 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/8ef79dfb-ba89-62f4-6593-032441ca30c2.png)

今日は話さない**httpプロトコルの詳細な仕様**を詳しく知りたい方は以下の文献がおすすめです!
 (とのことです！）

- [Webを支える技術](https://www.amazon.co.jp/dp/B07JK7FZH2)
- [HTTPの教科書](https://www.amazon.co.jp/dp/B00EESW7K0)
- [Webサーバーを作りながら学ぶ基礎からのWebアプリケーション開発入門](https://www.amazon.co.jp/dp/B01GNXNIWE/)
- [RFC](https://developer.mozilla.org/ja/docs/Web/HTTP/Resources_and_specifications)


## [http server & elixir](https://docs.google.com/presentation/d/1wp5ootBYLAGowRKJrGwWJBxyY8JAPA_sGQjax6A1qmw/edit#slide=id.p)

@ohr486 さん作の「[http server & elixir](https://docs.google.com/presentation/d/1wp5ootBYLAGowRKJrGwWJBxyY8JAPA_sGQjax6A1qmw/edit#slide=id.p)」資料は全編オススメです！
ぜひご覧になってください。

独断と偏見で１枚を選びます。

![2022-03-26-tokyoex-vol17 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/34b91dca-aff2-c5c2-c005-df9507b91449.png)

# ハンズオン 13:40-15:00

https://github.com/ohr486/ElixirHandsOn20220326/wiki

上記に従って進めていきます。
これができあがります！

![スクリーンショット 2022-03-26 13.40.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/13ef69d3-a732-566f-da50-d8dc5ea6b173.png)

![スクリーンショット 2022-03-26 13.40.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/b9c11f48-9b73-1248-cbf3-5f433b511514.png)

**自作のHTTPサーバが画像を返しちゃうんです** :tada::tada::tada: 

## 私の進捗

私は所用により、14:30であがりました。
ありがとうございました！
時間内では、「[03.echoサーバー3](https://github.com/ohr486/ElixirHandsOn20220326/wiki/03.echo%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC3)」まで進めました。

用事を済ませたあと、続きをやりました。
資料が丁寧でかつ充実していますので、「[06.httpサーバー3](https://github.com/ohr486/ElixirHandsOn20220326/wiki/06.http%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC3)」まで進めることができました。
上記のお手本のように自作のHTTPサーバから画像を返せるようになりました。

ソースコードは[こちら](https://github.com/ohr486/ElixirHandsOn20220326/blob/main/ex_demo/lib/ex_demo/http3.ex)です。

https://github.com/ohr486/ElixirHandsOn20220326/blob/main/ex_demo/lib/ex_demo/http3.ex

**ネタバレ注意！！！**

---

# 懇親会

最後は懇親会です。
私は14:30で抜けましたので残念ながら参加していません :sweat_smile: 
[elixir.jp Slackの#tokyo-ex](https://join.slack.com/t/elixirjp/shared_invite/zt-ae8m5bad-WW69GH1w4iuafm1tKNgd~w)チャンネルの書き込みから抜粋します。

懇親会で話題にあがったトピックとのことです！

- ７パターンの並列/並行のパラダイムを解説した書籍
    - https://pragprog.com/titles/pb7con/seven-concurrency-models-in-seven-weeks/
- Akka（Scalaのアクターモデル実装ライブラリ）Erlangのアクターモデルとよく比較される
    - https://www.amazon.co.jp/dp/B076Z8SK45
- Steamでリリースされている、Nand2Tetrisのゲーム（シミュレーター）
    - https://store.steampowered.com/app/1444480/Turing_Complete/

![スクリーンショット 2022-03-26 20.26.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/c51567b3-f54d-a379-75a0-34d284e95f66.png)





---

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

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

2022/03/26(土)に開催された「[tokyo.ex #17 ハンズオン回](https://beam-lang.connpass.com/event/241339/)」のレポートを書きました。
[資料](https://github.com/ohr486/ElixirHandsOn20220326)が充実していますので、参加した方も参加できなかったかたもぜひご覧になってください！

https://github.com/ohr486/ElixirHandsOn20220326

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

@ohr486 さん、ありがとうございました〜！

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">今日の <a href="https://twitter.com/hashtag/tokyoex?src=hash&amp;ref_src=twsrc%5Etfw">#tokyoex</a> はシンプルなHTTPサーバをElixirでフルスクラッチ実装！仕組みは分かってはいたけど、ブラウザでHTMLやJPGが表示されると感動するね<a href="https://t.co/UFca2ImTWS">https://t.co/UFca2ImTWS</a></p>&mdash; mokichi@Elixirはいいぞおじさん (@mokichi_s12m) <a href="https://twitter.com/mokichi_s12m/status/1507603101611483142?ref_src=twsrc%5Etfw">March 26, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">無事、tokyo.ex#17終了しました。ご参加くださった皆さん、ありがとうございました！<br>次回は4月末の土日でLT形式のイベントを予定しています。スケジュール確定後、slack/twitterでアナウンス予定です。<a href="https://twitter.com/hashtag/tokyoex?src=hash&amp;ref_src=twsrc%5Etfw">#tokyoex</a></p>&mdash; おーはら (@ohrdev) <a href="https://twitter.com/ohrdev/status/1507621667836948485?ref_src=twsrc%5Etfw">March 26, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



以上です。