Library Subject Guides

Jupyterhub and Git at the University of Canterbury: Jupyterhub

Interesting Notebooks

There are some very useful examples of Jupyter notebooks around .  You can  use git to clone them to your own lab space and run them for yourself to get your own results, or teach yourself how something works.

https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks

UC Jupyterhub

Getting Access to Jupyterhub

Jupyter is a interactive programming notebook.  You can combine text and code that runs in the browser for Python, R and many other lanuages.

If you would like access to the UC Jupyterlab, you can log a request through Assist mentioning if you want if for your own research, or for teaching a class.

Jupyter, odd name?

JUlia PYThon e R

Jupyter was originally designed to support the languages Julia, Python and R, hence the name.  It is a non-profit, open-source project

Jupyterlab

The Lab is a web page that contains notebooks for many users, where you can store your data, the programs in notebooks to process it and any other material.

Jupyter Notebook

A notebook is a document that contains programming code that can be run on the server it is held in, as well as markdown formatted text.

Ipython notebook

Before becoming Jupyter Notebooks, python notebooks were called iPython notebooks.  That's why the file extention for a jupyter notebook is ipynb.

Python

An easy to learn programming language that is used in universities, research institutions and business all over the world.  It has modules (libraries) for statistics, machine learning, and text analysis.  It is used by all disciplines, including biology, mathematics, digital humanities, physics and social science.

Julia 

Julia is a very high performance optimised free programming language well suited for numerical analysis and computational science.

R 

A programming language and free software environment for statistical computing and visualisation. The R language is widely used among statisticians and data miners for developing statistical software and data analysis.

Kernel

Jupyterhub is like a shell, where all the languages are like the inside of the nut, the kernel.  There are a lot of kernels for Jupyter - the main ones that we have already installed are Python, Bash, R and Matlab.

'Kernel' also implies that each notebook runs it’s own space, not interfering with others if many people are using the service at the same time.

Bash

Getting a command line interface means you can take advantage of many tools that can efficiently handle files, file transfers and other services.  Shell scripting (or Bash scripts) are a common and efficient way to handle things like renaming thousands of files, or searching through them quickly.

Markdown

Many systems for formatting text files exist, but they are often very cumbersome and unwieldy.  LaTeX and HTML + CSS are very powerful, but complex.  Markdown is a straightforward language for text formatting that is available in every notebook so that you can gloss your code, keep notes and directions and finally output in a publishable format.   

Git

When it comes time to collaborate and share your notebooks, Git provides a sophisticated and powerful service.  It can track who made which changes to a project and roll changes back if need be.  Git displays Jupyter notebooks natively, so they appear just as they do in the hub, with markdown and code formatting.

There are git servers available on campus, as well as public ones like github.com.

 

Researchers talk about Jupyterhub

Dr Arindam Basu, Associate Professor, Health

I use jupyter notebooks extensively for all my research, practically nothing else other than R, tidyverse, python on a hosted jupyterlab (plus I also use deepnote and Google colab which are essemtially jupyter notebooks). The latest example was an analysis of physical activity during lockdown with a group of academics working across Massey and Lincoln (we are in the process of finalsing the paper and submission, but the jupyter notebook and the code will be distributed as a git repo during the publication). All my course reaching notes are in the form of jupyter notebooks which I convert to slide decks using reveal.js and pandoc and host on respective github repos for the courses and share the links on my learn page. 

Practically all new research and teaching uses jupyter notebooks (jupyterlabs). 

Reproducible Science

No data, no paper as the saying goes.  And with that is the process by which the data was arrived at.  Jupyter and git are tools that can help you develop your code and preserve your methods so others can confirm your conclusions.

Peng, R. D. (2011). Reproducible Research in Computational Science. Science, 334(6060), 1226–1227. https://doi.org/10.1126/science.1213847

Statistics

Over 100,000,000 jupyter notebooks in github

Parente, P. (2020). Parente/nbestimate [Jupyter Notebook]. https://github.com/parente/nbestimate (Original work published 2016)

Help with Jupyter Notebooks

Please note: many tutorials show you how to install Jupyter onto your own computer - you don't need to do that, as we have already installed it, configured it and given you access.  If you need other functionality, don't hesitate to get in touch.