LoginSignup
8
1

2023年末のElixirが出来ること⑦Livebook+プラグイン編(最新Elixirのキャッチアップや、アドカレのネタ探しに読んでください)

Last updated at Posted at 2023-12-24

この記事は、Elixir Advent Calendar 2023 シリーズ9 の18日目です

昨日は、 @RyoWakabayashi さんで 「闘魂Elixir ── Advent of code 2023 Day 4 Part 2 を Livebook で楽しむ」 でした


piacere です、ご覧いただいてありがとございます :bow:

2023年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、前回は「⑥ AI・ML後編【Scholar/Explorer/Evison/EXGBoost】」でしたが、今回は「⑦ Livebook+プラグイン編」です

Livebook

Livebookは、2022年1月にデビューしましたが、現在までの約2年の間に、最も進化したElixir OSSだと思います

当初は、「JupyterNotebookやColaboratoryのElixir版」のようなElixir開発、もしくはAI・ML/データサイエンス開発環境としての位置付けが強かったですが、現在は、DB管理ツールやリアルタイムグラフ表示サーバ、データ変換サーバとしても使え、アプリケーションサーバとして他アプリへのモジュール/関数を提供するサーバや他サーバの管理コンソールとしても存在でき、さらにElixir分散ノードとしても高速稼働させることができます

従来のElixir/Erlangが進化し続けてきた方向を受け継ぎ、「よりElixirらしい魅力」を広げつつも、全く異なるUXの実現や、ユーザー層確立へと繋がるプロダクトとなっています

Elixirを新たに始める方が、iexからスタートするのでは無く、Livebookからスタートするケースも出てきており、更に書いたコードをMarkdownとして保存し、使いまわせるメリットもあることから、「育成」という面でも強力なプロダクトです

出来ること

  • ノーコード(Elixir不要)でAI開発やDB管理、グラフ表示、データ変換をこなせる

  • さまざまなデータ変換もノーコードでこなせる
  • DB接続(PostgreSQL、MySQL、BigQuery、Snowflake等)とSQLもノーコードで

  • Livebookで作ったアプリ(ノーコード含む)をLiveViewアプリとしてデプロイできる

  • ノーコードで作ったものからElixirコードを抽出し、自作プロダクトに転用できる

  • Web上だけでElixirコードを実行することができる
    • JupyterNotebookやColaboratory同様、Markdownでコードを保存できる
      • GitHubにpushすればGitHub上で表示もできる
      • Marmaidによるダイアグラムも使える
    • vi/emacsのようなキーバインディングが使える
    • コードブロックの削除とアンドゥがUI上でできる
  • 既存のElixir PJやPhoenix PJに後付けでLivebookをバインドできる
    • Livebook側でそれらPJのモジュールや関数を単独で動かして試せる
      • データのグラフ化や dbg によるビジュアルデバッグ/スキップも可能
  • 複数ユーザーで同時に1つのLivebookに入ってモブプログラミングもできる
  • 複数のLivebook同士を接続して、コードを共有することもできる
  • 動いているElixirサーバに接続し、リモートデバッガとして動かすことができる
  • Elixirサーバとして、他ElixirノードとNW接続できる
    • Livebookを1つの分散サーバとしてクラスタ参加させることもできる
    • Livebookをコントローラとした分散すら可能
    • 今後、Phoenixのサーバレス機能「FRAME」で関数単位の分散も可能に

Livebookプラグイン

VegaLite

VegaLiteを使えば、Livebook上での高度なグラフ描画やセンサーデータのリアルタイム表示などお手のものです

image.png

image.png

image.png

Kinoシリーズ

今年もっとも進化したのは、LivebookにさまざまなUIパーツを提供してくれる 「kino」シリーズ でした

Webフォームもあれば、グラフ操作ノーコードUI、DB操作ノーコードUI、Bumblebee/Explorer等のAI・MLのためのノーコードUI、地図操作UI、Slack連携UI、ChatGPT copilot利用や動画配信、diff表示、シェル実行と多種多様なものが存在し、果てはLiveViewをLivebook上ですら動かせるものすら出現してしまい、まるでElixirの凄さが霞んでしまう位(笑)のインパクトでした

Kino

Livebook上にWebフォームを設けたり、実行結果を表示させる

image.png

KinoVegaLite

グラフ操作ノーコードUI

image.png

KinoLiveView

Livebook上でLiveViewアプリが構築でき、Livebookセルを1つのルーティングとして扱えます

image.png

KinoDB

DB操作ノーコードUI

KinoBumblebee

Bumblebee AI・ML操作ノーコードUI

image.png

image.png

KinoExplorer

Explorerデータ分析ノーコードUI

image.png

KinoCopilot

Livebook上でCopilotとのやり取りによるAIプログラミング支援

image.png

KinoDiff

diff表示(インライン、左右ペイン)

image.png

image.png

KinoShell

Livebook上でシェルコマンド実行

image.png

KinoSlack

LivebookからSlackにメッセージ送信できる

image.png

KinoMapLibre

地図操作UI

image.png

KinoMembrane

動画配信サーバである「Membrane」の配信パイプラインのビジュアライズなど

image.png

終わりに

Livebook+プラグインの織りなす、凄まじいElixir開発体験/新たな分散体験が伝わったでしょうか?

これまでElixirに触れ続けてきた人間から見ても、この2年間のLivebookとその周辺の進化は、「まるで付いていけない人」を続出させるくらいの勢いで、新しい世代のプログラミングイディオムを生み出しています

そうそう実は、Brightの管理系にもLivebookは活用されており、レポジトリにも含まれています … これも今後のElixirプロダクションにおけるRPA的在り方・使い方の提案の1つで、来年あたりには、そのレポートも公開していきたいと思います

次回は、「⑧ クラウドライブラリ編」をお送りします


明日は、 @torifukukaiou さんで 「闘魂Elixir ── LivebookではじめるElixir」 です

p.s.このコラムが、面白かったり、役に立ったら…

image.png にて、どうぞ応援よろしくお願いします :bow:

8
1
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
8
1