Skip to content

Instantly share code, notes, and snippets.

@mrkn
Created July 11, 2023 17:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrkn/7fdfa495a5ecac0d9833214aff6cfe63 to your computer and use it in GitHub Desktop.
Save mrkn/7fdfa495a5ecac0d9833214aff6cfe63 to your computer and use it in GitHub Desktop.

Ruby アソシエーション開発助成 2022 メンター報告書

  • プロジェクト: RubyDataエコシステムへのQuartoの導入とその利用の推進のためのコミュニティ活動
  • 開発担当者: 西田 孝三
  • メンター: 村田 賢太

プロジェクト概要

本プロジェクトは、RubyData の Docker イメージに Quarto を導入し、Quarto による文書作成で Ruby を利用できるようにすることを目的としている。

Quarto は Posit 社 (RStudio の開発元) が開発した文書作成プラットフォームである。Quarto は Pandoc を利用したオープンソースの科学技術出版システムであり、ウェブサイト、論文執筆、書籍出版、データ可視化のためのダッシュボードなどの作成に対応している。Quarto は qmd ファイルという特殊なルールに基づく Markdown ファイルを入力とするが、Jupyter で利用される ipynb ファイルも入力形式として対応している。そのため Jupyter に対応しているプログラミング言語であれば Quarto で扱うことが可能だ。Ruby も例外ではない。

しかしながら、Quarto が利用できる既成の Docker イメージで Ruby に対応しているものは存在しない。そのため、現状では Ruby ユーザが自力で Quarto を導入する必要がある。また、Quarto と Ruby を組み合わせた利用実績は皆無に等しい状況であり、Jupyter で Ruby を使う際に可能なことが Quarto でも同様に可能かどうか不明である。

本プロジェクトは、Quarto と Ruby の組み合わせにおいて、基本的なデータ処理工程を Ruby で行なった ipynb ファイルが正しく Quarto で処理できるような環境づくりを目指すものである。さらに、作成した環境をオープンソースとして公開し、Quarto と Ruby を組み合わせた利用をコミュニティメンバが自力で行えるようになるためのガイドドキュメントを作成すること、およびミートアップの開催による周知もゴールとして設定している。

計画の達成状況

当初の計画

本プロジェクトの当初の計画は次のとおりであった。

  1. RubyData の Docker イメージへの Quarto の追加
  2. 上記イメージを利用した qmd を含む Jupyter Notebook (カーネルは IRuby) の作成
  3. Quarto により生成されるコンテンツのデプロイと公開
  4. 上記手順をコミュニティーメンバーが実施できるようになるためのコンテンツの作成、およびそれを利用したミートアップの開催

実際の成果

本プロジェクトの実際の成果は次の通りである。

  • IRuby カーネルを利用して作成された Jupyter Notebook ファイルを Quarto で処理してコンテンツを生成するための環境を Docker イメージとして提供したこと
    • 特に、RedAmber および matplotlib.rb の開発者たちと協力し、これらのライブラリとの連携が可能な状態を実現したこと
  • 上記のイメージから起動したコンテナ上で Quarto を利用するための手順を解説したドキュメントの作成・公開
  • 具体的な作業手順を録画した動画の作成・公開

当初予定していた内容のうち、ミートアップの開催は実現できていない。その代わり、当初計画では考慮されていなかった動画形式の補助コンテンツの作成と公開が実施された。

メンターとして果たした役割

本プロジェクトのメンターとして下記の役割を担当した。

  • 中間報告書のレビュー
  • 最終報告書のレビュー
  • 最終成果物のレビュー、および完成度向上のための修正提案
  • 成果物の実現に必要な作業の支援
    • 具体的には matplotlib.rb の修正版のリリース作業

今後の期待

今後の展開として、計画していたが実現できていないミートアップが開催されることを期待したい。また、成果物がまだ開発者の手元から離れていない状態にあるため、成果物をコミュニティーベースで維持していける状態まで持っていくことも期待したい。

まとめ

本プロジェクトでは、RubyData の Docker イメージに Quarto を導入することによって、Quarto と Ruby を組み合わせた文書作成を容易に実現できるようにした。Docker イメージの作成だけでなく、Quarto および Jupyter に明るくない利用者のためのドキュメントとスクリーンキャスト形式の動画コンテンツの作成も行なった。今後の展望として、ミートアップの開催と成果物のコミュニティへの還元が期待される。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment