Zach Sailer is a Senior Software Engineer at Apple, where he is the Jupyter Open Source Champion. He is a Jupyter Distinguished Contributor and the Jupyter Server Steering Council Representative.
A key innovation of Jupyter Notebooks is that they are both computational AND narrative documents—i.e. they are meant to be read by an audience. However, “sharing” a notebook is no easy task. JupyterLab (and other Jupyter applications) does not provide a generic service for sharing notebooks between notebook servers.
Introducing the Notebook Sharing service—an open-source, generic, configurable service and set of JupyterLab extension that make notebook sharing easy and intuitive. Users see a “Share” button in the top right corner of every Jupyter Notebook and a new “Sharing” side panel in JupyterLab to browse shared files. This service offers a generic interface for talking to any storage backend (e.g. DropBox, Amazon S3, Box, local file system, etc.) and works seamlessly with JupyterHub to enable notebook sharing between all hub users
In this talk, we will give a live demo of this service and highlight the strengths and value it brings to Jupyter community, such as:
- generic authentication module, extensible collaborator model and optional remote storage backend APIs
- Jupyter server- and JupyterLab-extensions that provide a complete Notebook sharing experience
- Bonus user-experience features, like preview a shared notebook inside JupyterLab, preview a shared notebook on a web browser with a URL, download a copy and filter all shared files
- customization extension points for searching collaborators and storing with different backends
Finally, we would like to invite audience to collaborate on this project and solicit feedback on how to improve this software. We would also like to invite members to submit implementations for their favorite storage systems
- The talk will be fairly technical. Basic familiarity with JupyterLab concepts such as server extension, kernels, REST APIs, front-end technologies like React
- Familiarity with JupyterLab’s content API is a plus.
Jupyter Server is the core web server that powers most Jupyter web applications—it is widely used in research, education, and enterprise. Beyond the core web server, the Jupyter Server Project offers a powerful collection of plugins and extensions that enable deployers to build a Jupyter web application that best suits any workflow.
In this talk, we will lean heavily on live demos to showcase some of the core functionality, features, and strengths of Jupyter Server. To get the audience familiar with Jupyter Server, we will
- demonstrate how to install, launch, and configure a server.
- customize the server overriding one of Jupyter's core services.
- expand Jupyter Server's capabilities by authoring a server extension
We will, then, highlight some of the new features offered by Jupyter Server 2.0, including the
- identity and authorization APIs for secure access to a shared server,
- server-side features that enable real-time collaboration in Jupyter documents,
- event system that powers many features in JupyterLab and beyond.
Finally, we will share some perspective on the future direction of Jupyter Server and invite the audience to get involved with the project. We will share some unique ways that the Jupyter Server Team is encouraging and empowering new contributors through its weekly "Contributing Hour".
While Jupyter Server is fairly technical component in the Jupyter stack, we believe this talk offers helpful information for audiences of all levels. Particularly, if you are deploying Jupyter Server's for your research lab or company, or you are interested in becoming a Jupyter Server contributor, you will not want to miss this!