Slide 1

Slide 1 text

DEMYSTIFYING JUPYTER

Slide 2

Slide 2 text

HEY THERE!

Slide 3

Slide 3 text

I am Melissa Escobar Gutiérrez Live lover Passionate for maths, books, technology, music and nature

Slide 4

Slide 4 text

Intros require brevity, kernels protocols complexity, Jupyter much gravity will try to bring some levity A POEM

Slide 5

Slide 5 text

Store, process and interpret large volumes of data at high speed BIG DATA

Slide 6

Slide 6 text

2014: Arises as an evolution of the IPython project It’s name: a tribute to Galileo HISTORY A little of

Slide 7

Slide 7 text

Fernando Pérez & Brian Granger

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Currently in use at

Slide 10

Slide 10 text

HOW DOES JUPYTER NOTEBOOK WORK?

Slide 11

Slide 11 text

Lets play a game But Lets play a game BEFORE...

Slide 12

Slide 12 text

MAGIC?

Slide 13

Slide 13 text

#include int main() { float i; for (i=0; i

Slide 14

Slide 14 text

16,777,216.0000

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

JUPYTER NOTEBOOK INSIDE JUPITER KERNEL JUPYTER NOTEBOOK SERVER BROWSER

Slide 18

Slide 18 text

WHAT IF WE DE-COUPLE EXECUTION FROM INPUT?

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

ANALOGY Speaks Web Server Client Browser Kernel Speaks HTTP Jupyter Protocol Images from flaticon.com

Slide 21

Slide 21 text

KERNEL BASED SYS JUPITER KERNEL Execution engine for a specific language. IPython is the default kernel.

Slide 22

Slide 22 text

WHAT IS A KERNEL ? Accepts messages Performs actions Sends out results Send Input Execution Result

Slide 23

Slide 23 text

WHAT IS A CLIENT ? Connects to exactly 1 kernel Send messages to kernel based on user actions Display kernels messages when appropriate

Slide 24

Slide 24 text

A Jupyter notebook is a dictionary with a few keys: metadata (dict) nbformat (int) nbformat_minor (int) cells (list) Top-level structure

Slide 25

Slide 25 text

{ "metadata" : { "kernel_info": { # if kernel_info is defined, its name field is required. "name" : "the name of the kernel" }, "language_info": { # if language_info is defined, its name field is required. "name" : "the programming language of the kernel", "version": "the version of the language", "codemirror_mode": "The name of the codemirror mode to use [optional]" } }, "nbformat": 4, "nbformat_minor": 0, "cells" : [ # list of cell dictionaries ], }

Slide 26

Slide 26 text

{ "cell_type" : "type", "metadata" : {}, "source" : "single string or [list, of, strings]", }

Slide 27

Slide 27 text

CONCLUSION

Slide 28

Slide 28 text

THANKS @MelissaEscobar @M3lissaEG