Summer of Code - Getting Started: Difference between revisions

Jump to navigation Jump to search
→‎Jupyter Notebook Integration: Elaborate on the project.
(→‎Jupyter Notebook Integration: Mention JSON package.)
(→‎Jupyter Notebook Integration: Elaborate on the project.)
Line 119: Line 119:
To interactively work with Octave code within Jupyter Notebooks, there already exists an [https://github.com/Calysto/octave_kernel Octave kernel for Jupyter].
To interactively work with Octave code within Jupyter Notebooks, there already exists an [https://github.com/Calysto/octave_kernel Octave kernel for Jupyter].


'''This project''' aims to support the '''opposite direction''': running (and filling) Jupyter Notebook within GNU Octave.  This would enable Jupyter Notebook users to evaluate '''long running Octave Notebooks''' on a computing server without permanent browser connection, which is [https://github.com/jupyter/notebook/issues/1647 still a pending issue].
'''This project''' aims to support the '''opposite direction''': running (and filling) Jupyter Notebook within GNU Octave.  This would enable Jupyter Notebook users to evaluate '''long running Octave Notebooks''' on a computing server without permanent browser connection, which is [https://github.com/jupyter/notebook/issues/1647 still a pending issue]. To achieve this, different strategies are possible:


In general the [https://nbformat.readthedocs.io/en/latest/ Jupyter Notebook Format] is a plain JSON document, which will be supported in Octave 7 (current development version) or through the [https://gnu-octave.github.io/pkg-index/package/pkg-json JSON package] for older Octave versions.
# Synchronize an internal Octave data structure (e.g. classdef object) with the Jupyter Notebook.  Probably the safest approach, but does not enable any interactivity from the Octave GUI.
# Import/export a Jupyter Notebook as Octave script (translate non-code sections to comments and vice versa).  Files can be edited from the Octave GUI, but probably conversion losses might occur (e.g. embedded graphics).
# A synthesis of both approaches?
 
In general a [https://nbformat.readthedocs.io/en/latest/ Jupyter Notebook] is a plain JSON document, which will be supported in Octave 7 (current development version) or through the [https://gnu-octave.github.io/pkg-index/package/pkg-json JSON package] for older Octave versions.


* '''Required skills'''
* '''Required skills'''

Navigation menu