Introduction

Here we briefly describe some of the available resources and possible directions this documentation might take.

Most notably, there is Binder, which allows you to recreate an entire environment as-needed in an isolated instance that is destroyed once it is no longer needed. The ideal scenario is to have Binder installed on a server, and we discuss the process of setting up such a server in this documentation, but for now we address setting up an environment on your own computer.

We focus here on Python, and rely on Anaconda deployed on a Linux distribution. Here, we use Ubuntu 18.04, but the instructions should be comparable on previous versions as well as on Mac and Windows, though some of the interactions in the command-line will be different for Windows users.

History

(This brief history represents the view of the author of this webpage and may not be completely accurate).

Project Jupyter is the maturation of the iPython project, a command-line program that allowed for an interactive Python shell, and what I relied on in my early days of learning Python. Their flagship development/breakthrough was the Notebook, which forms the foundation for all the other products.

The notebook is an HTML page that is served for you by a jupyter notebook server. It looks and feels like a desktop application. It was undoubtedly inspired by Mathematica’s “Notebooks,” but released as an open-source project, leading to its rapidly-expanding adoption in the scientific community.

The key to understanding why the notebook is so special is that it allows the web-browser to interact with code running on any computer (be it your own or a remote server). By divorcing the computation from the rendering, the developers allow for a unified framework so that scientists can focus on writing code and not on keeping up with dev-ops architecture.

The idea is simply that once one adapts to the Jupyter ecosystem, they are freed from platform considerations. Code is shareable across Windows/Mac/Linux, and viewable in the same environment that it was developed in by using a web-browser. It seeks to completely replace IDEs (Integrated Development Environments), which were the best solutions for setting up someone who was new to programming.

Basically, there was a serious desire to make getting up-and-running with software development easier. Now, thanks to Jupyter, a teacher can set up isolated computing environments for every student and be sure that their experiences are uniform. This is an especially huge time-saver for workshops.