Jupyter Notebooks: Internals and Extension
Pravendra Singh (~pravj) |
Description:
Abstract
Being one of the most used collaboration tools used by software engineers and data scientists, "Jupyter Notebooks" are transforming the way "data science" is happening in the industry.
Started as a smart Python interpreter, the Jupyter project has grown into a common platform that supports the development of data science and scientific computing tools across multiple programming languages.
This talk is aimed at understanding the technical internals of Jupyter project.
Agenda
- A brief introduction to Jupyter
- How is it different from IPython
- Component architecture
- Kernel
- Frontend
- Communication protocol used between a frontend and kernel
- How does a kernel work
- Magic commands
- How to create one
- Let's create a Jupyter frontend
- Wait! What if you can use Slack as a Jupyter notebook?
- Jupyter, Interactive computing, and possibilities
What will you learn
- Process that powers an interactive Jupyter session
- Do you know how does the tab-completion work?
- Extending the capabilities offered by Jupyter ecosystem for a custom use-case
- We will learn how to create magic commands and frontend
- Black magic
Prerequisites:
- Basic understanding of Python, comfortable with functions/classes
- Experience working with Jupyter/IPython notebooks (Optional)
- Interested in knowing how stuff works
Content URLs:
UPDATE
IPyton Slack Client: GitHub Repository (implementation to support the talk)
Initial version (skeleton) of slides (working on the final slides, ask me for early access)
Speaker Info:
- Tech & Product at Vernacular.ai
- Data-driven journalism practitioner
- Featured in Tech in Asia and Global Investigative Journalism Network
- Contributor to Go programming language and Plotly