Background
Share and view Jupyter notebook
› Widely used in the AI field
› JSON Format file
› Extension is .ipynb
› Persisted in Amazon S3
› How to share?
Slide 3
Slide 3 text
Why not using JupyterLab/Hub?
› Too heavy
› Too many trivial functions
› Inconsistent UI style
› Not easy to integrate
Slide 4
Slide 4 text
Do NOT Reinvent the Wheel!
Why not using Open Source?
› Commuter (https://github.com/nteract/commuter)
› Nbviewer (https://github.com/jupyter/nbviewer)
› …
Slide 5
Slide 5 text
Why not Commuter?
› Heavy
› Can not add context path
› Difficult to customize
› …
Slide 6
Slide 6 text
Why not Nbviewer?
› Not meet our requirements
› Difficult to customize
› …
Slide 7
Slide 7 text
Do it ourselves!
Technology selection
› Python
› Nbconvert (https://github.com/jupyter/nbconvert)
› Flask (https://github.com/pallets/flask)
› Boto3 (https://github.com/boto/boto3)
› …
Slide 8
Slide 8 text
Jupyter notebook viewer was born!
› Two weeks
› Two people
Slide 9
Slide 9 text
Introduction
How to use it?
Slide 10
Slide 10 text
Introduction
› Set context path
Integration is very easy
› Passing AccessKey, SecretKey,
BucketName through http request
headers
› Etag + LastModified
Performance is good
Slide 11
Slide 11 text
Introduction
Rich features
› s3 and local disk two kinds of storage
› Render ipynb, image and markdown
› Interactively hide/show codes of Notebook
› Display and allow to configure Toc of Notebook
Slide 12
Slide 12 text
Introduction
Slide 13
Slide 13 text
Why release to open source?
All the components we use are open source
› Flask
› Nbconvert
› jupyter_latex_envs
› Boto3
› Markdown2
› Jquery
› Requirejs
› Toc2
› Bootstrap
We want to contribute to the open source community
Slide 14
Slide 14 text
About naming
All rejected by the trademark review team
› judy
› jupyternb-viewer
› nbviewer
› shuttle
› nbkankan
› …
Slide 15
Slide 15 text
Welcome to follow and use
https://github.com/line/devday_2020_jupyter_nb_viewer