Commit 91aaa681 authored by Ludovic Courtès's avatar Ludovic Courtès

Add Guix-Jupyter post.

* drafts/ Rename to...
* posts/ ... this.  Remove notes, use absolute URLs.
parent d9b077f5
......@@ -124,7 +124,7 @@ Rouby wrote a first version of the Guix kernel for Jupyter.
> of the [Guix-Jupyter, a Guix kernel for
> Jupyter](!
![Guix-Jupyter logo.](/static/images/blog/guix-jupyter/guix-jupyter.png)
![Guix-Jupyter logo.](
The Guix kernel is still very much a work-in-progress but it already
lays the foundation for _self-contained, reproducible
......@@ -148,7 +148,7 @@ In fact, a single notebook can define several environments, each with a
possibly different Jupyter kernel, which allows you to create a
_multi-lingual_ notebook:
![Multi-lingual notebook.](/static/images/blog/guix-jupyter/multi-env.gif)
![Multi-lingual notebook.](
(The IPython kernel has a [built-in mechanism to interface with
languages other than
......@@ -167,7 +167,7 @@ space](
you can not only specify packages to include in the environment, but
also _pin_ a specific revision of the Guix channels:
![Pinning a Guix revision.](/static/images/blog/guix-jupyter/pin.gif)
![Pinning a Guix revision.](
How do you obtain the commit ID that you want to pin to in the first
place? If you’re using Guix, you can obtain it by running [`guix
......@@ -198,7 +198,7 @@ wondering: how do I get my data in that environment? To refer to data,
the notebook must use a `;;guix download` directive containing a URL and
expected SHA256 hash of the data:
![The download magic.](/static/images/blog/guix-jupyter/download.gif)
![The download magic.](
In practice, data is only downloaded the first time. Subsequent
executions reuse the pre-downloaded data. In Nix/Guix terms, this is a
......@@ -240,7 +240,7 @@ jupyter notebook
… and select the “Guix” kernel.
![Selecting the kernel.](/static/images/blog/guix-jupyter/select-kernel.png)
![Selecting the kernel.](
Then you don’t need to explicitly install any other Jupyter kernel since
you can just add them to your notebook _via_ `;;guix environment`
......@@ -311,70 +311,3 @@ a kernel or as an extension leaves Jupyter users a freedom of choice.
No matter what approach is used, our best-practices book should be
updated so that Jupyter notebooks lacking deployment information become
a thing of the past!
# Notes
[share your notebook with Binder](
[Reproducible Research in Computational Science](
[Deploying JupyterHub with Kubernetes on OpenStack](
[Zero to JupyterHub with
[romeoLab & Jupyter (JCAD 2018)](
[Jupyter Notebook as a service](
[list of
[1 kernel != 1 language, "magics"](
[Nextjournal uses
[Using Guix with R](
[Bootstrapping a Guix store for Nextjournal](
[IDE integration with Jupyter](
[A Large-Scale Study about Quality and Reproducibility of Jupyter
Notebooks]( (MSR2019)
[jupyter-repo2docker, the tool used by BinderHub to build images on demand](
[pip install in a notebook](
[voilà (QuantStack), turns notebooks into standalone and secure web applications](
[Whole Tale]( does
Jupyter + Docker (+ data)
[JupyterLab Package Installer](
Similar to Whole Tale:
# context
screenshot "kernel not found"
# example notebooks
[lz4 compression](
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment