Summer of Code - Getting Started: Difference between revisions

(→‎Steps toward a successful application: rearranging and rewording)
Line 109: Line 109:


Based upon the existing approaches, the goal of this project is to define an initial subset of [https://www.mathworks.com/help/matlab/tables.htmlMatlab's table functions], which involve sorting, splitting, merging, and file I/O and implement it within the given time frame.
Based upon the existing approaches, the goal of this project is to define an initial subset of [https://www.mathworks.com/help/matlab/tables.htmlMatlab's table functions], which involve sorting, splitting, merging, and file I/O and implement it within the given time frame.
* '''Required skills'''
: Knowledge of Octave, C/C++
* '''Potential mentors'''
: [[User:siko1056|Kai]]
== Jupyter Notebook Integration ==
<q>The [https://jupyter.org Jupyter Notebook] is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.</q>
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].  To achieve this, different strategies are possible:
# 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'''