10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ElixirAdvent Calendar 2024

Day 3

2024年のElixir③Livebook+プラグイン編(最新Elixirのキャッチアップや、アドカレのネタ探しに読んでください)

Last updated at Posted at 2024-12-03

この記事は、Elixir Advent Calendar 2024 シリーズ5 の3日目です

昨日は、私で 「2024年のElixir②今年、更新されたライブラリ/FW編」 でした


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

2024年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、前回は「②今年、更新されたライブラリ/FW編」 でしたが、今回は「③Livebook+プラグイン編」です

その前に、「Livebookって何?」という方が、Elixirを以前からやられている方々でもいらっしゃると思うので、まずはLivebookとその特徴についてもまとめておきます

本シリーズの全体像は、下記になります

なお、このコラムが、面白かったり、役に立ったら、image.png をお願いします :bow:

まず「Livebook」とは?

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

当初は、「JupyterNotebookやColaboratoryのElixir版」のような、Web上でのElixir開発、もしくはAI・ML/データサイエンス開発環境としての位置付けが強かったです

ですが現在は、DB管理ツールやリアルタイムグラフ表示サーバ、データ変換サーバとしても使え、アプリケーションサーバとして他アプリへのモジュール/関数を提供するサーバや他サーバの管理コンソールとしても存在でき、さらにElixir分散ノードとしても高速稼働させることができます

また今年、「Livebook Teams」という形で、下図にあるように、顧客とKPIやメトリクス、オンボーディング、データベースのような運用情報を共有するコンソールとしての役割も付与されました
image.png

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

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

Livebookが出来ること

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

2024年にリリース/更新されたLivebookプラグイン

ここからが本題で、hex.pm「Recently Created」、もしくは 「Recently Updated」 の今年分で上がっていたLivebook関連のプラグインのうち、キャッチーなものを13本、ピックアップして紹介します

Kino LiveComponent

Livebook上でLiveComponentを動かすためのKino

Kino Component

Livebook上でPhoenix Componentを動かすためのKino

Kino Benchee

BencheeをLivebook上で使うためのKino

Kino Figma

FigmaをLivebook上で見るためのKino

Kino STL Viewer

ThreeJSによる3Dデータ(STL)をLivebook上で見るためのKino

Phoenix Playground

Phoenixのプレイグラウンドライブラリで、Livebook上からでも利用できる

LiveView Playground

LiveViewのプレイグラウンドライブラリで、Livebook上からでも利用できる

Kino YouTube

YouTubeをLivebook上で見るためのKino

Kino Niconico

ニコニコ動画をLivebook上で見るためのKino

KinoPHP

Livebook上でPHPを動かすためのSmartCell

KinoTableInput

Livebook上でテーブルからの入力をできるようにするためのSmartCell

KinoSheetEx

Livebook上でGoogleスプレッドシートのデータを行単位で拾えるようにするためのSmartCell

KinoFlame

Livebook上でFLAME(Elixir間でFaaSを気軽にするための仕組み)を呼び出して実行できるようにするためのSmartCell

最新版のLivebookでは内蔵されている

終わりに

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

古くからElixirに触れ続けてきた人間から見ても、この3年間の凄まじく、元となったJupyter Notebookを遥かに超える進化を見せたLivebookとKino、AI・LLM系含む諸々は、ノーコード/ローコードの新たな未来を切り開き、新しい世代のプログラミングイディオムを生み出しています

そんなLivebookのハンズオンを含むノーコード群(Kintone、SalesForce、Difyなど)とAI・LLMやIoTとの連携について、今週末の12/6(金)13:30~16:30にセミナーを行いますので、良かったら聴きに来てください … なお、本日が申し込みの〆切です 💁‍♂️
image.png

下記URLからお申し込みできます
https://apply.e-tumo.jp/pref-kochi-u/offer/offerList_detail?tempSeq=12542

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

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

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


明日は、 @RyoWakabayashi さんで 「Advent of code 2015 Day 18 Part 1 & Part 2 を Livebook で楽しむ」です

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?