nteract – A Desktop-Based Tool for Notebooks

Authors: Marco Bertini, Mathias Lux;
Affiliation: University of Florence, University of Klagenfurt;
Editors: Mathias Lux and Marco Bertini

URL: https://nteract.io

Introduction

Writing source code for programs with lightweight text editors or fully featured integrated development environments is considered the main method of programming. Notebooks, however, are an extremely practical tool. In contrast to IDEs, projects are set up more easily and they allow for running programs in a read-eval-print loop (REPL) environment. The Jupyter Notebooks Quick Start Guide [1] describes notebook documents as “… both human-readable documents containing the analysis description and the results (figures, tables, etc..) as well as executable documents which can be run to perform data analysis.” Basically, markdown text can be mixed with program source code in a sequence of sections, each dedicated to either programming or description and documentation. Source code sections can be executed and the output is appended to the section, even formatted in the form of graphs, diagrams, or tables. 

REPL and notebook based environments have proven to be useful in many scenarios including when exploring new libraries and frameworks, to prototype code, or as an educational tool to create interactive lecture material. A prominent example is Jupyter, which is the highly successful project behind Jupyter Notebooks and the recent JupyterLab, i.e. web-based systems to run and share notebooks that contain code, equations, data visualizations, and data exploration and narrative text.

nteract and Companion Products

nteract is a desktop-based application for Jupyter notebooks that simplifies some aspects of Jupyter, like installation and opening notebooks with just a click. It has also other benefits like a simple export to PDF and the possibility to publish notebooks as gists directly to Github.

Other benefits are a clean and minimalistic interface that looks like a native GUI and native support for several visualization tools and data formats like GeoJSON and Plotly [2]; of course, Matplotlib/Seaborn are supported. The nteract Data Explorer is a built-in tool for visualizing Pandas DataFrames within a notebook.

The usage paradigm is that of Jupyter notebooks, and the file format used to store them is indeed the usual IPYNB format based on JSON. nteract can even be installed as an extension of Jupyter and JupyterLab server so that nteract is simply an additional UI to it.

Users create cells, either containing text or code, they can execute them, delete or move (through drag and drop). Code can be written in Python, Javascript, R, Julia, and even C++. Actually, nteract supports several of such so-called kernels, and supporting .NET it allows to execute also C#, F# and Powershell languages.

Finally, it must be noted that the nteract desktop application is a part of a broader environment, that provides several other tools that complement its features. Particularly interesting, for those that appreciate the sharing capabilities of Jupyter servers are Commuter and nteract Play applications. The first simplifies sharing notebooks with other people through the web, sharing notebooks stored on a workstation, or on a cloud provider like S3 or Google Cloud; the latter allows executing notebooks on Binder [3] instances, to share more easily notebooks with their code and all the required dependencies. Another interesting extension is Papermill [4] which allows to create workflows of Notebooks and parameterize them, basically creating scripts from notebooks. Combining these additional tools it is possible to create a workflow that is suitable even for large and well-structured organizations, like Netflix [5].

The latest versions of nteract support also ipywidgets, so it is possible to add form widgets like sliders or text fields.

Installing nteract

Installing nteract for Linux, Mac, or Windows is as easy as downloading the installation package, or AppImage in case of Linux, and following the installation instructions. After installation, one can immediately use nteract with the built-in JavaScript kernel. 

If Python and ipykernel are already installed, you are also able to use Python immediately. Otherwise, two simple commands install the Python kernel:

python -m pip install ipykernel  # install the python kernel (ipykernel) globally

python -m ipykernel install      # install python kernel into nteract's available kernel list

While these commands install the Python kernel globally with pip, other approaches, i.e. using conda and installing it in a virtual environment, are covered in [6].

Using nteract

A good way to learn the capabilities of nteract is to open the example notebooks from the File menu. They are available in Python, Javascript, and R.

Anyway, people used to Jupyter should have no problem with using nteract.  The GUI let us create code or text cells:

and cells can be converted from code to text back and forth:

Text cells are formatted using Markdown and LaTeX:

Cells can be moved with drag&drop:

and when deleted there’s a handy undo button:

To use auto-completion simply press Ctrl+space, it works on classes, methods, and variables, across cells.

Conclusions

nteract is nice and easy to use UI for notebooks. It’s actively developed with frequent releases, although users should not worry about keeping it up-to-date thanks to the automatic updater. Opening a notebook with a double click and having the kernel started automatically is very handy, and the overall user experience is very pleasant.

References

[1]  https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html, accessed 2020-07-03

[2] https://github.com/plotly/plotly.py, accessed 2020-07-03

[3] https://mybinder.org, accessed 2020-07-03

[4] https://github.com/nteract/papermill, accessed 2020-07-03

[5] https://netflixtechblog.com/notebook-innovation-591ee3221233, accessed 2020-07-03

[6] https://nteract.io/kernels, accessed 2020-07-03

Bookmark the permalink.