3 ポイント 投稿者 GN⁺ 2024-03-04 | 1件のコメント | WhatsAppで共有

Observable Frameworkの新しいアイデア

  • Observable Frameworkは静的サイトジェネレーターで、MarkdownとJavaScriptを混在させて高速に読み込まれるインタラクティブなページへコンパイルする。
  • ファイルをリアルタイムで編集・保存し、ブラウザーで即座に変更を確認できるホットリロードサーバーを提供する。
  • 作業が完了したら静的ファイルに変換してサーバーへデプロイするか、Observableの共有プラットフォームへ直接デプロイできる。

Markdown内のJavaScript

  • Markdown内で js タグが付いたコードブロックは、ユーザーのブラウザーでJavaScriptとして実行される。
  • now という特別な変数は、エポック以降の現在時刻をミリ秒単位で提供し、継続的に更新される。
  • Observable FrameworkはMarkdownとJavaScriptを1つのテキスト文書に統合し、インタラクティブな文書を生成する。

すべては依然としてリアクティブ

  • Observable FrameworkはObservable Notebookのリアクティブ性を維持しており、依存するほかのセルが変更されると自動的に更新される。
  • フォーム入力と組み合わせて作業するときに特に有用で、文書へリアルタイムのインタラクティビティを簡単に追加できる。

使うコードだけを含める

  • Observable Frameworkは開発モードで遅延読み込みを実装し、使用するコードだけをロードする。
  • アプリケーションをビルドしてデプロイするときは、参照されたライブラリコードだけをjsDelivr CDNから自動的に読み込む。

ビルド時のデータキャッシュ

  • Frameworkはデータローダーメカニズムを通じて、ビルド時にダッシュボード用データを生成し、静的ファイルとしてバンドルする。
  • データローダーは任意のプログラミング言語で書けるスクリプトで、ビルド時に実行されて出力をファイルとして保存する。

Observable Notebookとの比較

  • Observable FrameworkはObservable Notebookのアイデアとコードを再利用しているが、単一のテキストファイルで構成され、すべてオープンソースである。
  • 標準的なJavaScriptを使用し、よりシンプルなファイル形式でGitにチェックインできる。

戦略の変化

  • Observable Frameworkは、Observable社がより開発者ツール領域へ傾斜している戦略的変化を示している。
  • Observable FrameworkはObservable Notebookの技術への敬意を保ちながら、プラットフォームの独占的な性格や無料アカウントの制限によって利用が制約されていた問題を解決する。

GN⁺の意見

  • Observable Frameworkはデータ可視化とダッシュボード構築のための新しいツールであり、開発者により良いコラボレーションと効率性を提供できる可能性を持つ。
  • このプラットフォームは、データに基づく意思決定を支援するインタラクティブな文書やダッシュボードを簡単に作成できるようにし、データサイエンティストと開発者の両方に有用であるだろう。
  • しかし、Observable Frameworkの成功は、開発者コミュニティでの採用と既存ツールとの統合の程度に大きく依存するだろう。
  • 類似の機能を提供するほかのプロジェクトとしてはJupyter NotebookやR Shinyがあり、これらとの比較を通じてObservable Frameworkの長所と短所をよりよく理解できる。
  • Observable Frameworkを導入する際には、既存のデータパイプラインとの互換性、パフォーマンス最適化、そしてコミュニティサポートといった要素を考慮する必要がある。

1件のコメント

 
GN⁺ 2024-03-04
Hacker Newsの意見
  • Observable Frameworkは、マイク・ボストック(Mike Bostock)のシネマティック・ユニバースにおける「アベンジャーズ/エンドゲーム」にたとえられている。

    • d3、Observable、Observable Plot、HTLを結合し、新しいアイデアを加えたものだと説明されている。
  • Observable Frameworkの問題点として、d3のサンプルリソースとしての役割が挙げられている。

    • そのフレームワーク内でのみ動作するよう設計されているため、コードをそのままコピー&ペーストできない。
    • d3自体も使いやすいとは言えず、バージョン間の互換性問題もあるが、サイトでは驚くようなグラフィックを見つけられる。
  • Observable FrameworkはGitHub Sitesに簡単に公開できると言及されている。

    • 公開方法の手順とサンプルのGitHub Actionsを書いたノートへのリンクが提供されている。
  • Observableノートブックを使って最初のプロジェクトを完成させた経験が共有されている。

    • Observable Plot、Arquero、JavaScriptの一部の学び直し、Rustベースのシミュレーターとの統合など、さまざまなツールの習得にかなりのエネルギーを使った。
    • Markdownとリアクティビティによって、ノートブックが本当に実用的だと感じられた。
    • Jupyterのカスタムフォーマットとリアクティビティ不足によるバージョン管理の問題や、状態ベースの混乱を解決してくれた。
    • QuartoとのObservable統合の試みもあったが、不完全で断片的な印象だった。
    • ノートブックの作成と共有について、うれしく刺激的な体験だったとしており、今後も第一選択のツールとして使うつもりだとしている。
  • Observable Frameworkについての肯定的な経験が共有されている。

    • インタラクティブなプロットの設定が簡単で、データをプロットする過程も非常にシンプルだったと言及している。
    • Pythonデータローダーをvirtualenvsに対応するよう設定できるとよい、という希望も述べられている。
  • JupyterノートブックからObservableへ移るべきか、という質問が提起されている。

  • コードブロック内にjsコンテンツヒントがあると、ユーザーのブラウザですぐに実行されることが説明されている。

    • コードを表示するにはjs echoヒントを使う必要がある。
    • 既存アプリにレンダラーを統合する際、実行をどう管理するかという問題が提起されている。
  • ObservableはClickHouseのREST APIとうまく統合でき、データベースをリアルタイムでクエリする例が興味深いと言及されている。

    • アプリはインタラクティブであるべきなので、データの事前ロードとキャッシュだけが唯一の選択肢であってほしくない、という希望が述べられている。
  • ブラウザ上でFrameworkをすばやく試して操作できるように、NodeとPython環境が自動で設定されたCodespace devcontainersを用意したと述べられている。

  • ObservableがJavaScriptしかサポートしないことで、ユーザーベースを制限しているという意見が示されている。

    • JavaScriptはブラウザでの対話的表示に不可欠な言語ではあるが、データサイエンスやデータ分析ではPythonやRに比べて不便な言語だと評価されている。