Jupyter Notebooks: Internals and Extension
Pravendra Singh (~pravj) |
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.
- A brief introduction to Jupyter
- How is it different from IPython
- Component architecture
- 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
- Basic understanding of Python, comfortable with functions/classes
- Experience working with Jupyter/IPython notebooks (Optional)
- Interested in knowing how stuff works
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)