Summer of Code - Getting Started: Difference between revisions

Jump to navigation Jump to search
Announce GSoC.
(→‎Suggested projects: Add Jupyter Notebook Integration again.)
(Announce GSoC.)
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Note|GNU Octave [https://summerofcode.withgoogle.com/organizations/5849336744771584/ has been selected] as mentoring organization for GSoC 2021.}}
Since 2011 the GNU Octave project has mentored 38 students in [[Summer of Code]] (SoC) programs by [https://summerofcode.withgoogle.com/ Google] and [https://socis.esa.int/ ESA].  Those programs aim to advertise open-source software development and to attract potential new Octave developers.
Since 2011 the GNU Octave project has mentored 38 students in [[Summer of Code]] (SoC) programs by [https://summerofcode.withgoogle.com/ Google] and [https://socis.esa.int/ ESA].  Those programs aim to advertise open-source software development and to attract potential new Octave developers.


Line 115: Line 117:
== Jupyter Notebook Integration ==
== Jupyter Notebook Integration ==


[https://jupyter.org Jupyter Notebook] is a web-based worksheet interface for computing. There is an [https://github.com/Calysto/octave_kernel Octave kernel for Jupyter]. This project seeks to improve that kernel to make Octave a first-class experience within the Jupyter Notebook.
<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 the [https://nbformat.readthedocs.io/en/latest/ Jupyter Notebook Format] is a plain JSON document, which is supported since Octave 7 (current development version).  Another valuable project outcome is to run (and fill) those Jupyter Notebooks from within 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].
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