Jupyter

Gerald Haslhofer Gerald Haslhofer Follow Jun 23, 2023 · 1 min read
Share this

An exploration into what Jupyer notebooks can do, and if they are a good proxy for “conversation as a canvas”

Implementation via jupyter core https://github.com/microsoft/jupyter-core

Demo:

  • Install JupyterLab
  • Install IEcho Sample

Set up server for public access https://jupyter-notebook.readthedocs.io/en/stable/public_server.html#running-a-public-notebook-server

Kernels documentation

  • https://docs.jupyter.org/en/latest/projects/kernels.html
  • https://jupyter-client.readthedocs.io/en/stable/ - messaging protocol
  • https://jupyter-client.readthedocs.io/en/stable/messaging.html#wire-protocol

Tutorial

  • https://github.com/microsoft/jupyter-core/blob/master/tutorial.md

Base Engine class

  • https://github.com/microsoft/jupyter-core/blob/master/src/Engines/BaseEngine.cs

There is an implementation of a Jupyter kernel with DotNetInteractive

  • https://github.com/dotnet/interactive/blob/main/src/Microsoft.DotNet.Interactive.Jupyter/JupyterKernel.cs

Frontends:

  • https://jupyterlab.readthedocs.io/en/latest/user/documents_kernels.html#kernel-backed-documents https://docs.servicestack.net/jupyter-notebooks-csharp

Capabilities that a jupyter kernel has

  • Share variables (content) between cells in a notebook
  • Connect different kernels to different cells
    • Is a kernel like an “app”, a set of capabilities? Just an OpenAI web plugin

Overall Jupyter project structure

  • https://docs.jupyter.org/en/latest/_images/repos_map.png

What are Polyglot notebooks