Project Jupyter

name=Project Jupyter Project Jupyter  は、「数十のプログラミング言語にわたるインタラクティブコンピューティング用のオープンソースソフトウェア 、オープンスタンダード、サービスを開発する」ために設立された非営利団体である。 Project Jupyterは、2014年にFernandoPérezによってIPythonから分離された、数十の言語の実行環境をサポートしている。 Project Jupyterの名前は、Jupyterによってサポートされている3つのコアプログラミング言語であるJulia 、 Python 、 Rへの言及であり、Jupiterの衛星の発見を記録したGalileoのノートブックへのオマージュでもある 。 Project Jupyterは、インタラクティブコンピューティング製品であるJupyter Notebook、JupyterHub、およびJupyter Notebookの次世代バージョンであるJupyterLabを開発してサポートしている。

1. 歴史
-----

2014年、 フェルナンドペレスは、 IPythonからProject Jupyterと呼ばれるスピンオフプロジェクトを発表した。 IPythonは、JupyterのPythonシェルおよびカーネルとして存在し続けるが、 ノートブックやその他の言語に依存しない IPythonの部分は、Jupyterの名前で移動した。 Jupyterは言語に依存せず、 Julia 、 R 、 Haskell 、 Ruby 、そしてもちろんIPythonカーネルを介したPythonなど、数十の言語の実行環境をサポートしている。

2015年、 GitHubとJupyterプロジェクトは、GitHubプラットフォームでのJupyterノートブックファイル形式のネイティブレンダリングを発表した。

2. 哲学
-----

Project Jupyterの運営理念は、 オープンソースソフトウェアの開発を通じて、すべてのプログラミング言語にわたってインタラクティブなデータサイエンスと科学計算をサポートすることである 。 Project Jupyterのウェブサイトによると、「Jupyterは常に100％オープンソースソフトウェアであり、誰でも自由に使用でき、変更されたBSDライセンスの自由な条件の下でリリースされる」。

3. 製品
-----

3.1. Jupyter Notebook
---------------------

Jupyter Notebook はJupyter Notebookドキュメントを作成・共有するためのウェブアプリケーションである。Jupyter Notebookドキュメントはプログラムコード、Markdownテキスト、数式、図式等を含むことができる。これにより数値計算アルゴリズムとシミュレーション結果、統計解析コードとその実行結果グラフ、機械学習モデルと推論出力など、様々なプログラムとその結果を再実行可能な1つのドキュメントとして表現できる。

Jupyter Notebookの内部ではコードやテキストがNotebook Documentとして書かれ、Jupyter Notebookがそれを表示・編集可能にし、Notebook サーバーが保存・バリデーションをおこない、Kernelが実際のコード実行をおこなう。口語的な「ノートブック」という語がこの内のどの段階を指すかは文脈による。

Jupyter Notebookは、 [1]ライブラリまたは「jupyter nbconvert」コマンドを介して、Webインターフェースの「Download As」を介して、多くのオープンな標準出力形式に[2]できる。シェルのラインインターフェイス。 Web上のJupyterノートブックドキュメントの視覚化を簡素化するために、nbconvertライブラリは[3]を介してサービスとして提供されており、公開されている任意のノートブックドキュメントへのURLを取得し、その場でHTMLに変換してユーザーに表示できる。 サムネイル| Jupyter Notebookインターフェース Jupyter Notebookは、数多くの人気のあるオープンソースライブラリに基づいて構築されたブラウザベースのREPLを提供する。

IPython
ØMQ
トルネード
jQuery
ブートストラップ
MathJaxJupyter Notebookは多くのカーネルに接続できるため、多くの言語でプログラミングできる。 デフォルトでは、Jupyter NotebookにはIPythonカーネルが付属している。 2.3リリース の時点で、 Python 、 R 、 Julia 、 Haskellを含む多くのプログラミング言語用に、現在49のJupyter互換カーネルがある。

Notebookインターフェイスは、0.12リリース にIPythonに追加され、2015年にJupyter Notebookに名前が変更された。 Jupyter Notebookは、 Maple 、 Mathematica 、1980年代にMathematicaで生まれた計算インターフェーススタイルであるSageMathなどの他のプログラムのノートブックインターフェースに似ている。 //The Atlantic//によると、Jupyterの関心はMathematicaノートブックインターフェイスの人気を2018年の初めに追い越した。

3.1.1. 実行環境
-----------

Jupyter Notebookはウェブアプリケーションであるため、動作にはサーバーが必要である。ローカルマシンへのインストールからマネージドクラウドでの1クリック起動まで、様々な形式での実行環境が存在している。

ローカルインストール: Jupyter Notebookインストール、サーバー稼働、ブラウザ接続
Docker: [4]
クラウド
独自インスタンス: インスタンスセットアップ・Jupyter Notebookインストール、サーバー稼働
マネージドサービス
[5]
[6]: JupyterLabベースのNotebookの実行環境
[7]: JupyterLabベースのNotebookの実行環境

3.1.2. ファイルフォーマット
-----------------

Jupyter Notebookドキュメントの形式は"//Jupyter Notebook format//"であり、拡張子は.ipynbである。カーネルや言語等のメタデータ、ソースに相当するcode cellsやMarkdown cells、実行結果を記述するセルなどからなる。ファイル形式はJSONであり、テキストデータとして記述・編集することが可能である。.ipynbを扱うリファレンス実装には[8]がある。

3.2. Jupyterカーネル
----------------

Jupyterカーネルは、さまざまなタイプのリクエストの処理と応答の提供を担当するプログラムである。 カーネルはネットワーク経由でZeroMQを使用してJupyterの他のコンポーネントと通信するため、同じマシンまたはリモートマシン上に置くことができる。 他の多くのノートブックのようなインターフェイスとは異なり、Jupyterでは、カーネルはそれらが特定のドキュメントに添付されていることを認識せず、一度に多くのクライアントに接続できる。 通常、カーネルは単一言語の実行のみを許可するが、いくつかの例外がある。

3.3. JupyterHub
---------------

JupyterHub は、Jupyter Notebooksのマルチユーザーサーバーである。 多くの単一のJupyter Notebookサーバーを生成、管理、プロキシすることにより、多くのユーザーをサポートするように設計されている。 date=October 2018}} JupyterHubではサーバーの管理が必要であるが、Jupyo などのサードパーティサービスは、クラウドでマルチユーザーJupyterノートブックをホストおよび管理することにより、JupyterHubの代替手段を提供する。

3.4. JupyterLab
---------------

JupyterLabはProject Jupyterの次世代ユーザーインターフェースである。 柔軟で強力なユーザーインターフェイスで、クラシックなJupyter Notebookの使い慣れたすべてのビルディングブロックを提供する。 最初の安定版リリースは2018年2月20日に発表された。

3.5. Jupyter Book
-----------------

[9]は、計算資料から美しい出版品質の本やドキュメントを作成するためのオープンソースプロジェクトである。これにより、ユーザーはMarkdown 、 [10]と呼ばれるMarkdownの拡張バージョン、 MathJaxを使用したMaths＆Equations、Jupyter Notebooks、 reStructuredText 、ビルド時に実行されているJupyterNotebooksの出力などを組み合わせてコンテンツを構築できる。

[11]は、Jupyterノートブックで割り当てを作成およびグレーディング'するためのツールである。これにより、インストラクターは、Python//またはその他のサポートされているカーネル//およびテキスト応答でのコーディング演習を含む割り当てを作成できる。提出された課題は、自動的にマークを付けたり、手動で採点したり、両方を組み合わせたりすることができる。

3.6. Jupyter Widgets
--------------------

Jupyter Widgets はJupyter上にGUIを構築するためのフレームワークである。多くのJupyterフロントエンドはWebブラウザに類似した環境であり、JavaScript/HTML を介したリッチGUIを構築できるポテンシャルをもつ。Jupyter Widgetsはカーネルとフロントエンドの通信を仲介してJupyter上のGUIを実現するフレームワークとして機能する。

3.7. コラボラトリー
------------

4. 報道
-----

2016年2月11日、 LIGOのコラボレーションは重力波の最初の観測を発表した。 このコラボレーションにより、データを処理し、発見論文の数値を再現するためのPythonコードを含むJupyter Notebooksとともに生の科学データがリリースされた。
2018年4月5日、 //The Atlantic// //はThe Scientific Paper Is Obsolete//というタイトル//の//記事を公開した。この記事では、科学出版の将来におけるJupyter NotebookとMathematicaノートブックの役割について説明した。 この記事は、経済学者ポール・ロマーを含む著名な科学者や学者からの反応につながった。

5. 助成金と賞
--------

2012年に、 FernandoPérezは、Project Jupyterの前身であるIPythonに関する研究で、Free Software Advancement of Free SoftwareのFree Software Foundation Awardを受賞した 。
2013年、IPythonチームは、 Alfred P. Sloan Foundation から115万ドルの助成金を受け取った。
2015年、Project Jupyterは、 The Leona M.とHarry B. Helmsley Charitable Trust 、 The Gordon and Betty Moore Foundation 、およびAlfred P. Sloan Foundationから共同で600万ドルの助成金を授与された。中核となるJupyterツール、およびJupyterLabの作成。
2018年5月2日、Project Jupyterの運営委員会は、2017 ACM Software System Awardを受賞した。

6. 関連項目
-------

GNU Octave
IPython
RStudio
SageMath
セシル
Scilab
スパイダー
Wolfram Mathematica
Binder ProjectとBinderHub
フリーおよびオープンソースのソフトウェアパッケージのリスト
ノートブックインターフェイス

7. 参考文献
-------

8. 外部リンク
--------

https://jupyter.org/}}
[12]