18
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

1 / 18

2021/12/20(月)の回です。

Nerves Livebookもあります〜


2021/12/21(火) 19:30 〜

の発表資料です。


はじめに

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


私の感じ方、ざっくりとした説明
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

デモをします。
イメージ画像

スクリーンショット 2021-12-20 23.42.12.png

パスワードはenjoyelixirwearethealchemists です


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

Enjoy Elixir:bangbang::bangbang::bangbang:

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

18
4
1

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
  3. You can use dark theme
What you can do with signing up
18
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?