10
5

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.

Livebookの基礎知識 ーー LiveView JP#4:Livebook始めよう+Fly.ioでモブプロのLT資料

Last updated at Posted at 2022-02-20

春すぎて夏来にけらし白たへのころもほすてふあまの香具山

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


はじめに

Elixirを楽しんでいますか:bangbang::bangbang::bangbang:
2月22日(火)に行われるLiveView JP#4:Livebook始めよう+Fly.ioでモブプロのLT資料です。

説明すること

この資料で説明すること(もくじ)です。

What's Livebook?

Livebookとは、Elixir's version of Jupyter Notebooksです。

Livebook is an exciting advancement in the Elixir community. It was created for the Elixir machine learning library nx. You can think of it as Elixir's version of Jupyter Notebooks.

https://fly.io/docs/app-guides/elixir-livebook-connection-to-your-app/

以下、ド派手な(象徴的な)サンプルです。

スクリーンショット 2022-02-20 21.07.41.png

私の感じ方、ざっくりとした説明

私の感じ方、ざっくりとした説明をご紹介します。

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

Livebookの動かし方

Livebookの動かし方を説明します。
Dockerをインストールしておいてください。

ローカルマシン

ローカルマシンで動かす手順を説明します。

https://github.com/livebook-dev/livebook に書いてあるコマンド例に従ってください。
2022/02/20時点で書いてある内容を転載しておきます。
お使いになるときの最新の情報でお試しください。

docker run -p 8080:8080 -p 8081:8081 --pull always livebook/livebook

fly.io

fly.ioで動かす手順を説明します。
いつでもどこでもElixirを楽しめるようになります。

fly.ioは、Phoenixとめちゃくちゃ相性のいいPaaSです。
2つ紹介します。

https://fly.io/launch/livebook

このページからポチポチやるとすぐにできます。

スクリーンショット 2022-02-20 21.23.18.png

注意点としては、LIVEBOOK_PASSWORDを覚えておいてください。
もし忘れちゃった場合は、以下のように値を上書きしてください。

flyctl --app your-app-name secrets set LIVEBOOK_PASSWORD="securesecret"
  • --app your-app-nameはアプリ名で上書きしてください
    • アプリ名が不明な場合は、flyctl list appsで一覧から確認してください
  • 説明が前後しますが、「Installing flyctl」に従ってflyctlコマンドをインストールしておいてください

② Dockerfile

Dockerfileを用意するだけの方法を紹介します。

Deploy Your Application via Dockerfile
が参考になります。

Dockerfileは以下の1行だけです。

Dockerfile
FROM livebook/livebook:0.5.2
  • 0.5.2は2022/02/20時点の最新です。
  • DockerHubにて最新のバージョンをご確認ください。

上記のDockerfileをおいたディレクトリにて以下のように操作します。
説明が前後しますが、「Installing flyctl」に従ってflyctlコマンドをインストールしておいてください。

flyctl launch -- Launch a new app

fly.io上のアプリを作ります。

flyctl launch
  • App Name (leave blank to use an auto-generated name):はお好きな名前か自動生成に任せましょう
  • Would you like to setup a Postgresql database now?Noでよいです
  • Would you like to deploy now?Noでよいです

この操作でローカルには、fly.tomlファイルができあがります。

環境変数の設定

続いて環境変数LIVEBOOK_PASSWORDを設定しておきます。

flyctl --app dark-river-20 secrets set LIVEBOOK_PASSWORD="securesecret"
  • --app dark-river-20は、ご自身のアプリ名に書き換えてください。
  • アプリ名を忘れちゃった場合は、fly.tomlファイルの中身を確認してください

flyctl deploy --detach

さあ、デプロイです。

flyctl deploy --detach

デプロイできました。
:tada::tada::tada:

私が作ったものを公開しておきます。
どうぞご自由にお使いください。

https://dark-river-20.fly.dev/

パスワードは、securesecretです。

Notebookデモ

当日、Notebookのデモをします。
Elixirを楽しみます。

Welcome to Livebookを説明しながら動かします。


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

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

この記事では、Livebookの基礎知識をまとめました。

さあ、このあともLiveView JP#4:Livebook始めよう+Fly.ioでモブプロをお楽しみください:rocket::rocket::rocket:


付録

以下、付録です。

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

iex> Date.diff(~D[2022-05-24], ~D[2022-02-18])
95

そうそう!
2月24日発売予定のWEB+DB PRESSで、ElixirPhoenixの特集がでますよ〜

ElixirPhoenixをはじめられたばかりの方も、腕におぼえがある方も、どんなものなのかなあと様子見をきめこんでいる方も、
つまりは
$\huge{全人類のみなみなさま!!!}$
お手にとって、お楽しみください!!!

fukuoka.ex特別編:WEB+DB PRESS vol127 Phoenix特集こたつで座談会

出版記念イベントが開催されます。
ぜひご参加ください。

2022/03/08(火) 19:30 〜 21:00
この本を多くの方に知っていただき、出版という ”おめでたい” イベントを、執筆陣全員と皆さまで、ぜひ同じこたつに入ってのんびり座談会するかのように楽しんでいただきたいと思います。


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さん(@kn339264) 作、素敵な資料:clap::clap_tone1::clap_tone2::clap_tone3::clap_tone4::clap_tone5:)

Elixirのイベント情報

@koga1020 さんが作成されたイベントカレンダーがあります。
https://elixir-jp-calendar.fly.dev/

気になるイベントにはぜひ参加してみましょう!!!

上記サイトの解説記事はこちらです。


I organize autoracex.
And I take part in NervesJP, fukuoka.ex, EDI, tokyo.ex, Pelemay.
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. @kikuyuta 先生の「世俗派関数型言語 Elixir を関数型言語風に使ってみたらやっぱり関数型言語みたいだった」より。Elixirはコワくないですよ〜。

  3. 「動きます」の意。おそらく西日本の方言、たぶん。NervesJPではおなじみ。少し古いオートレースの映像ですが、実況アナウンサーが「針4イゴきます」とはっきり言っています。https://autorace.jp/netstadium/SearchMovie/Movie/iizuka?date=2017-01-04&p=5&race_number=11&pg=

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

10
5
0

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
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?