2021/12/20(月)の回です。
Nerves Livebookもあります〜
2021/12/21(火) 19:30 〜
の発表資料です。
はじめに
Elixirを楽しんでいますか
Phoenixを楽しんでいますか
LiveViewを楽しんでいますか
Livebookを楽しんでいますか
私の感じ方、ざっくりとした説明 | |
---|---|
Elixir | 世俗派関数型言語1。ふんわりとなんとなく知らない間に「ワタシ、関数型言語でプログラミングしちゃってました」 てな具合にプログラミングを楽しめます。 |
Phoenix | Webアプリケーションの開発を楽しめます |
LiveView | 高性能なバックエンド開発もリッチなフロントエンド開発もElixir一本で楽しめます! |
Livebook | Jupyterに相当するもの。LiveViewを利用したアプリケーションの代表例ともいうべき金字塔。LiveViewを利用したアプリケーションのお手本であり、最高峰。 |
Livebookの公式ページ
Collaborate as a team
はのちほどデモ
動かし方
動かし方 ── Docker
$ docker run -p 8080:8080 --pull always livebook/livebook
動かし方 ── 私がホストしているもの
パスワードはenjoyelixirwearethealchemists
です
私がホストしているもの ── どうやって構築したの?
別の記事に書いています。
ご興味のある方はぜひご覧になってください。
白紙のノートブックでElixirを楽しむ
右上の「New notebook」を押して、新しいノートブックを作ります。
ノートブックにElixirでプログラミングを楽しんでいきます。
メモリ使用量のグラフをかく
ここではメモリ使用量のグラフをかいてみます。
とりあえず以下を一個ずつコピペして、Evaluate
ボタン押しながら進めるとおもしろいですよ。
Mix.install([
{:vega_lite, "~> 0.1.3"},
{:kino, "~> 0.5.0"}
])
alias VegaLite, as: Vl
memory = [
total: :red,
processes: :yellow,
atom: :green,
binary: :pink,
code: :orange,
ets: :blue
]
layers =
for {layer, color} <- memory do
Vl.new()
|> Vl.mark(:line)
|> Vl.encode_field(:x, "iteration", type: :quantitative)
|> Vl.encode_field(:y, Atom.to_string(layer), type: :quantitative, title: "Memory usage (MB)")
|> Vl.encode(:color, value: color, datum: Atom.to_string(layer))
end
widget = Vl.new(width: 500, height: 200)
|> Vl.layers(layers)
|> Kino.VegaLite.new()
Kino.VegaLite.periodically(widget, 200, 0, fn i ->
point =
:erlang.memory()
|> Enum.map(fn {type, bytes} -> {type, bytes / 1_000_000} end)
|> Map.new()
|> Map.put(:iteration, i)
Kino.VegaLite.push(widget, point, window: 1000)
{:cont, i + 1}
end)
for i <- 1..1_000_000 do
:"atom#{i}"
end
メモリ使用量のグラフをかく ── 動画
Collaborate as a team
デモをします。
イメージ画像
パスワードはenjoyelixirwearethealchemists
です
Wrapping up
Enjoy Elixir
-
@kikuyuta 先生の「世俗派関数型言語 Elixir を関数型言語風に使ってみたらやっぱり関数型言語みたいだった」より。Elixirはコワくないですよ〜。 ↩