Jupyter and Cantor Projects
Jupyter project files
Jupyter is a a very popular open-source web-based application that provides an interactive environment for different programming languages. The interactive documents are organized in “notebooks”. This application is widely used in different scientific and educational areas and there is a lot of shared notebooks publically available on the internet. As an example for a collection of such notebooks see this collection.
For Cantor, which is very similar in spirit to Jupyter, we decided to add the ability to read and save Jupyter’s notebook format in order to benefit from the big amount of available content for Jupyter. The implementation required for this was mainly done by Nikita Sirgienko as part of the Google Summer of Code 2019 project. His series of blog posts contains many examples as well as implementational details that will be omitted here.
Thanks to this work, in the coming release of LabPlot we’ll be able to open Jupyter project files:
The example Jupyter notebook shown here was taken from the BMC collection providing lecture notes and code around scientific computing for biomechanics and motor control.
Contrary to Cantor which is able to open and to save .ipynb files (Jupyter’s notebooks), LabPlot allows only to open such projects. After such a file is loaded, its content is shown in a computer algebra worksheet in LabPlot. The modified CAS Worksheet is saved in the native project file together with other native objects like spreadsheets, worksheets, etc.
Cantor project files
In the past it was already possible to create new CAS Worksheets in LabPlot where internally the machinery of Cantor was used, see this blog post for couple of examples. But it was not possible to open Cantor’s project files directly (*.cws file extension). We corrected this and the handling of Cantor project files is similar now to the handling of Jupyter projects described above.
The screenshot below shows an Octave project from Cantor’s collection of example projects for different computer algebra systems: