Jupyter Notebook
Jupyter Notebook
Volgende stap: van IPython Notebook naar Jupyter
Omdat IPython Notebooks steeds meer gebruikt worden voor het gebruik van andere talen dan alleen Python, is de volgende stap Jupyter: hierin wordt de Notebook-infrastructuur gescheiden van de taal. Je kunt dan notebooks gebruiken met andere talen, of met een mix van talen.
Historie en achtergrond
een paar links over IPython Notebook:
- http://ipython.org/videos.html - de eerste video geeft een inzicht in de geschiedenis en in de visie;
- (deze video's lijken niet meer beschikbaar - 28 dec. 2015)
- O’Reilly zet zwaar in op het gebruik van iPython Notebooks voor leren, publiceren van hun boeken en tutorials;
- voorbeeld: https://beta.oreilly.com/learning/intro-to-svm (vergeet niet op “Run” te klikken bij het verwerken van de stukjes)
- meer: https://beta.oreilly.com/topics/data
- je kunt iPython Notebooks delen en publiceren via GitHub;
- huidige ontwikkeling: Jupyter - zelfde principe en basis, maar voor veel meer talen dan alleen Python (Notebook concept ontkoppeld van Python).
- zie: https://jupyter.org/ (je kunt direct uitproberen in de browser)
- ze hebben net 6 M$ gekregen om deze visie verder uit te werken (https://blog.jupyter.org/2015/07/07/jupyter-funding-2015/).
- één van de doelen is om een versie te maken voor "collaborative editing".
O'Reilly
De ICT-uitgever O'Reilly gaat iPython/Jupyter Notebooks gebruiken als één van de formaten waarin hun boeken en cursusmateriaal gepubliceerd wordt.
Enkele voorbeelden hiervan:
Vergeet vooral niet om de code uit te voeren, via de Run knop in elk code-blok.
Meer voorbeelden zijn te vinden op de O'Reilly Radar site, in de beta-versie van de nieuwe opzet, onder het "Learning" deel: https://beta.oreilly.com/learning.
GitHub
GitHub maakt het mogelijk om iPython Notebooks via hun website te publiceren.
Binder
Je kunt een GithHub-repository met één of meerdere notebooks eenvoudig omzetten in een uitvoerbare "binder" met notebooks. In deze binder vind je alle bestanden uit de GitHub-repository: die kun je bijvoorbeeld als data gebruiken voor de notebooks.
- Voor deze binder wordt een virtuale machine (container) gemaakt die op aanvraag gestart wordt. Elke gebruiker heeft dan zijn eigen tijdelijke versie van deze binder. Als deze een uur of langer niet meer actief is, wordt de container met de bijbehorende data weer opgeruimd. Als je je aangepaste notebook(s) of lokale data wilt bewaren, dan moet je deze naar je eigen computer kopiëren (download notebook).
Een voorbeeld van een dergelijke binder van notebooks (gemaakt vanuit GitHub: https://github.com/eelcodijkstra/binder)
- start binder met notebooks: http://mybinder.org/repo/eelcodijkstra/binder
Overige
- http://blog.ouseful.info/2014/12/12/seven-ways-of-running-ipython-notebooks/
- voor het onderwijs is o.a. interessant: https://cloud.sagemath.com
Zelf aan de slag
Jupyter Notebook is een client-server systeem: de user-interface van het notebook draait in de browser, de uitvoering van de Python-code gebeurt in de server. Dit betekent dat je een server nodig hebt om Jupyter Notebook te gebruiken. De eenvoudigste oplossing hiervoor is om je eigen computer te gebruiken.
Installeren van Jupyter op je eigen computer
Zie de handleiding: http://jupyter.readthedocs.org/en/latest/install.html
- installeer eerst Anaconda: zie https://www.continuum.io/downloads
- via de Anaconda Launcher kun je altijd de nieuwste versie van notebook installeren
- via de Anaconda Launcher kun je de notebook server starten; deze opent dan een venster in je browser
Installeren van Jupyter op Cloud9
(nog incompleet)
- installeer conda, via
pip install conda
- ...
Gebruik van Binder
- maak een GitHub repository als binder voor een aantal notebooks;
- je kunt een notebook aanmaken via https://try.jupyter.org;
- dat kun je downloaden naar je eigen computer,
- en weer uploaden naar GitHub.
Maak vervolgens een binder aan (zie hierboven) van deze repository.
Je moet wel elke keer als je een notebook in de binder verandert, deze stappen herhalen.
Dit is een omslachtige methode voor het aanmaken van een notebook, maar je kunt deze binders goed gebruiken voor het publiceren van je notebooks op een manier dat je gebruikers (leerlingen) deze kunnen uitvoeren.