Quick instruction on how to get instructions and install required packages, get data... Fallback on online hosting for users if can't get to work on laptop. (We'll continue installation during next section)
- What are the different pieces, how to get help after the tutorial.
- Jupyter
- JupyterHub
- Notebook interfaces.
- Kernels
- Extensions (difference between kernel, front-endand server extension, we'll only explore IPython kernel extension later in the tutorial)
- Binder
- Moving toward Python 3 only, already he case for many pieces
- Difference between notebook and JupyterLab
- Overview what's New in JupyterLab, what's the difference with Classic Notebook.
- Complete compatibility. You can install both at the same time.
- Same file format, same protocol...
- Online hosted platforms
- Azure, Coclac, Colab, ...
- Other frontends
- Nteract Vs Code, Atom,
- Whats new in Python, and how IPython/Jupyter make best use of it (will detail in later sections)
- Beyond Python:
- magic commands, shell access, object introspection.
- integration with top-level async code in Python 3.6+
- superhelp
?
/??
- system command!
- Tab completion - Tools for typical development tasks: timing, profiling, debugging.
We will leave 1 to 2 minutes hands-on for simple subjects like object introspection and variable caching.
BREAK
- Demo and discussion of the last added features of the command line interpreter.
IPython.embed
: a useful 'microscope' into your own scripts.- Customizing IPython with profiles.
We'll leave 5-10 minutes at the end of this section for user to play with multiple features of IPython.
- Couple of exercise to get user acclimated to JupyterLab and notebook Interfaces, keyboard shortcut.
- Plan a couple of advance written exercises showing-off advance features for user already familiar with new interface.
- Basic concepts: the server, the dashboard, your notebooks.
- A notebook as a rich document: text, code, results and multimedia.
- Sharing your notebooks: nbviewer, MyBinder.org
- Converting notebooks to other formats for sharing, blogging and publication.
We'll interleave this presentation with few minutes breaks and try to ask user to achieve a specific state before showing them how to achieve it.
In this section we'll have user customize their own code to make full use of the Jupyter and IPython capabilities.
- The IPython display protocol:
__repr__
for more than just text.- make full use of the display protocol to get a visualisation.
- Discuss and work with widgets.
- How widgets can bring interactivity to visualisation and analysis.
- Create an IPython extension, and register magics.
- This should show the basic of cross-language integration.
- Make use of magic to run a cross language analysis.
Further resource and conclusion (if time permit)
These notes are for the presenters.
For the last two years the Jupyter team has been working on the new Jupyter frontend: JupyterLab. While JupyterLab does of course allow the use of Jupyter Notebooks, it goes beyond the classic Jupyter Notebook by providing a flexible and extensible web application with a set of reusable components. Users can arrange multiple notebooks, text editors, terminals, output areas, and custom components using tabs and collapsible sidebars. These components are carefully designed to enable the user to use them together or separately (for example, a user can send code from a file to a console with a keystroke, or can pop out an output from a notebook to work with it alone).
JupyterLab is based on a flexible application plugin system provided by PhosphorJS that makes it easy to customize existing components or extend it with new components. For example, users can install or write third-party plugins to view custom file formats, such as GeoJSON, interact with external services, such as Dask or Apache Spark, or display their data in effective and useful ways, such as interactive maps, tables, or plots.
In this tutorial we’ll walk users thought the best way to make use of JupyterLab, how to transition from the “classic” Jupyter Notebook frontend to JupyterLab, and how to make the best use of the new powerful features of JupyterLab.
You (should) be provided with red and green sticky notes. If you have any question and concern or need help, stick the red sticky note visible on back of your laptop's screen. A helper will come see you, or the speaker will take time to get questions.
If all is fine, or we're too slow for you, stick the green sticky note to the back of your laptop screen.
At each break, write a thing you understood of liked on the green sticky note, a thing you did not like or found hard on the red one. When exiting the room, stick them to the door frame. Make sure to get new sticky notes for the next section.
This can serve as a quick read through summary of what we talked about (with links) and a rough timeline if you want to follow up on the video later.
Today this tutorial will be presented to you by Matthias Bussonnier, two long standing members of the Jupyter Project. We have a number of helpers in the room. Attendees should have been given red/green sticky notes.
By now you should have installed JupyterLab following the instructions in the readme. For this tutorial, we are standardizing on a conda-based python distribution (miniconda or Anaconda). We may not be able to help with installation issues if you are using a different python distribution.
JupyterLab is close to be release as a 1.0, only a few changges are expected between now and final release. We will show you what can be done, but can still improve the usability quite a bit. When trying to do any task in the exercise try to think first:
-
How would I do that
-
Then try to do the task.
- Note what was intuitive, and what surprised you.
- Tell it to us (via post it or issues)
-
Feel free to interrupt with questions and clarification
-
There will likely be a binder available, but do not rely on the conference wifi.
-
Introduction to JupyterLab (slides)
-
Respond to FAQ:
- Why JupyterLab ?
- Can you get Lab and notebook at the same time: YES
- No difference in file format; Notebooks files are the same
- Following outline from https://github.com/jupyterlab/jupyterlab-demo/tree/master/narrative or https://gist.github.com/jasongrout/3039b5909734b1abf4544a8df68a8ace
Look into the Exercise 1 folder, and follow the instruction in Exercise-1.md
Write one good thing on the green sticky note, one bad on the red one.
- Arranging tabs through dragging
- How to author markdown and equations
- Collapsible cells
- drag cells, inside notebook and between views of files.
- Enable scrolling on outputs
- creating new view of outputs
- javascript rendering restrictions (removed in the next beta)
- binding multiple documents to the same kernel
- New Console for Notebook
- Markdown file + console workflow
- Python code file + console workflow
- Open a notebook in classic notebook, modify, save and reopen in Lab.
- Executing code in a markdown file using an attached console.
- Developing libraries with notebook and Python files attached to same kernel
- Reloading modules?
- Create terminal, work with terminal next to code file and console. Maybe using ipython in terminal.
- Attaching a code console to the same kernel as a notebook.
- Changing editor settings
- Changing theme
- Json config system overview
- Changing keyboard shortcuts
1. change a keyboard shortcut
1. Assign existing shortcut to new action.
2. Assign new Keyboard shortcut to an existing action.
2. add a keyboard shortcut (restart and run all)
3. change an editor setting
- Everything is an extension - show the package.json
- Installing/listing/enabling/disabling plugins.
jupyter lab build
--core-mode
- Exercise 5 - writing your own extension
JupyterLab 0.33 prerelease out:
- Workspaces
- Extension manager
- Console show outputs
- Open in new browser tab
- Longer tabs
- Many, many upgrades
Extensions in the works:
- Keyboard shortcut editor
- Status bar
- Real-time collaboration