LoginSignup
4

posted at

updated at

Organization

LiveView JP#3 私のLT -- Req, Mermaid, ウェブチカ (Elixir)

修身斉家治国平天下

Advent Calendar 2022 24日目1の記事です。
I'm ready for 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
I'm looking forward to 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
I can't wait for 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
私のAdvent Calendar 2022 一覧


はじめに

Elixirを楽しんでいますか:bangbang::bangbang::bangbang:
Livebookを楽しんでいますか:bangbang::bangbang::bangbang:
Nerves Livebookを楽しんでいますか:bangbang::bangbang::bangbang:

明日2022/01/25(火)は、「LiveView JP#3」でLTをします。

3つ話します。

  1. Req
  2. Mermaid
  3. ウェブチカ2

話さないこと

しまった :sweat_smile:
LiveUpload特集と銘打たれていますが、
LiveUploadの話を用意していません。

う〜ん、そうですねー、あーそうだLiveUpload関連でコントリビューションしたことがあることを思い出しました。

docの修正です。

スクリーンショット 2022-01-25 1.04.25.png

この当時、LiveUploadのレビューに
$\huge{勝手に参加していました🚀}$

LiveUploadと全く無関係の人ではないことをアピールしておきます。
詳しいことは、@piacerex さんと @the_haigo さんにお任せして、私は違う話をします。

主役たち

Elixir の主役たちを私の感じ方でざっくり説明します。
Elixirエコシステムの
$\huge{ど真ん中}$
にいらっしゃる本体、ライブラリたちです。

私の感じ方、ざっくりとした説明
Elixir 世俗派関数型言語3。なんとなく知らない間にゆるふわで「アタシ、関数型言語でプログラミングしちゃってました」 てな具合にプログラミングを楽しめます。
Phoenix Webアプリケーションの開発を楽しめます
LiveView 高性能なバックエンド開発もリッチなフロントエンド開発もElixir一本で楽しめます!
Livebook Jupyterに相当するもの。LiveViewを利用したアプリケーションの代表例ともいうべき金字塔。LiveViewを利用したアプリケーションのお手本であり、最高峰。
Nx AI関係のゲームチェンジャー
Nerves ElixirでIoTを楽しめるフレームワークです。ナウでヤングでcoolなすごいやつです。(誤解を恐れずにいえば)Nervesは、Elixir専用OSです!!! sshで中に入ったらiex>しかできませんだけができて一生Elixirだけを楽しめます:rocket::rocket::rocket: 
Nerves Livebook Livebookは、Nervesの上でイゴきます2

Req

Nerves LivebookにデフォルトでプリセットされるようになったHTTPクライアントです。
プリセットされるようになったのは、何を隠そう私のプルリクです。

Qiita APIを利用させていただいてElixirタグがついた最新記事20件を取得しています。

"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"]))

海外のAlchemistは、Req推しのようです。

OwnerのWojtek Machさんは、Elixir本体にもたくさんコミットされています

Mermaid

Livebookのmarkdownでこげなことをかくと、いい感じに表示されます。
@ShozF さんにNerves Livebookでも動くことを教えてもらいました
この場をお借りして厚く御礼申し上げます。

当日はデモ or 動画共有をします。

スクリーンショット 2022-01-23 6.16.56.png

Mermaidのトップページにあるサンプルは、Sequence diagramを除いてそのまま動きます。
Sequence diagramで一部パースエラーが発生してしまう件は、Issueの報告をしています。

José Valimさんご本人から直々にご返信をいただきました。

Webチカ

当日お知らせするURLに代表でどなたかにアクセスしていただいて、以下のプログラムにてLチカをしていただきます。

点灯

{:ok, gpio} = Circuits.GPIO.open(18, :output)
Circuits.GPIO.write(gpio, 1)

消灯

{:ok, gpio} = Circuits.GPIO.open(18, :output)
Circuits.GPIO.write(gpio, 0)

仕組み

ngrokを使っています。

One command for an instant, secure URL to your localhost server through any NAT or firewall.

スクリーンショット 2022-01-25 0.38.15.png

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

Enjoy Elixir:bangbang::bangbang::bangbang:
$\huge{Enjoy\ Elixir🚀}$

LiveView JP#3」のLTにて3つ話をしました。

  1. Req
  2. Mermaid
  3. Webチカ

Elixirの誕生日は、2012年5月24日です。
そのため、今年の2022年5月24日は10周年を迎えます。

iex(1)> Date.diff(~D[2022-05-24], ~D[2022-01-24])
120

2022年に流行る技術予想 ーー それは、Livebookです:rocket::rocket::rocket:


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のことを知りたい方へオススメの書籍 :books:

コミュニティ

  • elixir.jp Slack workspaceに参加してみてください
    • マヂ、やさしい人ばっかりのコミュニティ
    • あなたの困ったをきっと解決してくれるでしょう
  • NervesJP Slack workspaceでは、NervesやIoTが好きな愉快なfolksたちがあなたの訪れを歓迎します :tada:
  • たくさんのコミュニティがあります
    FCOvBkAUYAE6mL8.jpeg
    (EDI/fukuoka.ex/kokura.exLiveView JP@piacerex さん作 :pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:)

Elixirコミュニティに初めて接する方は下記がオススメです

Elixirコミュニティ の歩き方 -国内オンライン編-

https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian
image.png
(piyopiyo.exエリジョ の nakoさん(@nako_sleep_9h) 作、素敵な資料:clap::clap_tone1::clap_tone2::clap_tone3::clap_tone4::clap_tone5:)


I organize autoracex.
And I belong to NervesJP, fukuoka.ex, EDI.
I hope someday you'll join us.

We Are The Alchemists, my friends!

  1. @kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。

  2. ウェブチカの初出は、@nishiuchikazuma さんの https://speakerdeck.com/nishiuchikazuma/elixir-nervesru-men-jian-lao-naiot-edgedebaisupuroguraminguwooshou-qing-ni-nervesdetukuruuebutika-number-algyan 2

  3. @kikuyuta 先生の「世俗派関数型言語 Elixir を関数型言語風に使ってみたらやっぱり関数型言語みたいだった」より。Elixirはコワくないですよ〜。

  4. 大時計の針のこと。針がイゴいてある地点まで到達すると選手はスタートを切って良い発走の合図。針がイゴきはじめると(おそらく)選手は緊張するし、スタートはその後のレース展開に大きく影響するので、車券を握りしめている観客たちがもっとも緊張する瞬間であるため、先の尖った鋭いものを連想させる針は緊張の暗喩としても言い得て妙。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4