Index of /besson/slides/2018_03__Jupyter_notebooks_are_awesome__GouTP_at_Supelec

[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]demo/2018-03-08 15:43 -  
[DIR]figures/2018-03-07 19:25 -  
[   ]Makefile2018-12-20 09:32 1.0K 
[TXT]README.md2018-03-07 19:25 7.5K 
[TXT]slides.html2018-03-07 19:25 9.3K5th GouTP | Date : 08 March 2018 | Lilian Besson | CentraleSupélec
[TXT]slides.md2018-03-12 14:12 8.1K 
[   ]slides.pdf2018-03-08 11:20 1.1M 
[   ]slides.pdfpc2018-03-12 14:08 32  
[   ]slides_169.pdf2018-03-07 19:14 1.1M 
[   ]slides_169.pdfpc2018-03-07 19:25 36  
---
title: 5th GouTP @ SCEE
subtitle: Introduction to Jupyter notebooks
author: Lilian Besson
institute: SCEE Team, IETR, CentraleSupélec, Rennes
date: Thursday 8th of March, 2018
lang: english
---

# 5th 2017/18 GouTP @ SCEE

- *About:* **Introduction to Jupyter notebooks**

- *Date:* 8th of March 2018 :date:

- *Who:* [Lilian Besson](https://GitHub.com/Naereen/slides/) :hand:

### Open source content :notebook: ?
> Note: slides are online: `github.com/Naereen/slides/tree/master/
  2018_03__Jupyter_notebooks_are_awesome__GouTP_at_Supelec`

---

# What's a *"GouTP"* ?

- **Internal monthly technical training session** :date:
- Usually: on *Thursday*, at *3pm :clock3: - 3:30pm* :clock330:
- With :coffee: coffee, :tea: tea and :cookie: sweets: we relax while training !

  > Initiative of Quentin and Vincent :clap: in January 2017...
  > Continued by Rémi, Muhammad, Rami and Lilian :ok_hand: !

## Not only @ SCEE :smiley: ?
- Currently open to the *FAST* and *AUT* teams

---

# Agenda for today :timer_clock: [30 min]

1. Quick presentation of internal tools @ SCEE [5 min]
2. What are the Jupyter notebook tools ? [10 min]
3. Demo time [10 min]
4. Sharing your notebooks online or as PDF [5 min]

## Please :pray:
Ask questions and interrupt me if you want!

---

# 1. Presentation of internal tools @ SCEE

- Welcome to our new PhD student and interns :raised_hand_with_fingers_splayed: !
- You met (almost) everybody this week !
- You will become familiar with the research themes of our team…

### Let see a few :hammer_and_wrench: tools that can make your life easier!

---

# Website :spider_web:
- [www-scee.rennes.supelec.fr](http://www-scee.rennes.supelec.fr/) was created by Rémi and Aymeric
- It is maintained mainly by Rémi : we need help!

![35%](figures/demo_of_our_website.png#center)

## New comers, please :pray:
- send a short summary of your research interest with links to your LinkedIn, Google Scholar profile (or other sites). Picture: *if you want*
- **to Rémi and I** so we add you on the website

---

# Internal Wiki :memo:
- We have a MediaWiki running locally on http://172.16.6.219/
- Welcome pack : can be useful in your first days here!
  http://172.16.6.219/mediawiki/index.php/Welcome_to_SCEE
- Anyone can edit, it is maintained by Rémi and I
- Participate if you have anything to change (create an account, edit!)

---

# Workstations :computer: (Windows & GNU/Linux)

- 2 Windows 7 workstations, with MATLAB
  + WS1 : `172.16.6.211`
  + WS2 : `172.16.6.212`
- 1 GNU/Linux (Ubuntu) workstation, with Python, GNU Radio…
  + WS3 : `172.16.6.213`
- Powerful machines: 12 cores, 32 Gb of RAM, lots of storage…
- Monitoring :mag: : http://172.16.6.219:8000 (ask us for id/passwd)
  (please check for use load, before launching heavy simulations)

## :tipping_hand_woman: Ask for an account if you need
- To run computations, or to use the TestBed
- Ask to *Muhammad for Windows*, to *me for GNU/Linux*

---

# USRP TestBeds :phone:
- We have 8 USRP cards that can be used from GNU Radio Companion on the WS3
- See more on http://172.16.6.219/mediawiki/index.php/Main_Page#Hardware

## Monitoring :mag:
- http://172.16.6.213:8000 (made by Quentin)
- let you see the IP of each USRP card
- and who uses what in real time

## :tipping_hand_woman: Advice
- If you need to use the USRP, *discuss with Rémi and Lilian before*

---

![bg original 85%](figures/monitoring_usrp.png)

---

# 2. "Project Jupyter", jupyter.org

![bg original 105%](figures/logo.png)

---

# 2. What are Jupyter notebooks?

## Technical aspect :mag:
1. A file format, `.ipynb`  (just JSON with constraints)
2. An editor in your browser (see it during demo time)
3. Tools to convert `.ipynb` files to scripts, HTML, slides, PDF etc.

## Practical aspect :rocket:
4. A very good way to interact with your code
5. Create smart document with text, maths, code, output and figures, **all included in one file**
6. Easy and perfect to share online and with colleagues !

---

# How to learn :mortar_board: ?

## Online :spider_web:
- Try without installing anything ? At [try.jupyter.org](https://try.jupyter.org/)

## On your laptop :computer:
1. Install it :package:
2. Then start:
   ```bash
   # from your console
   $ jupyter notebook
   ```
3. Then experiment, practice and learn

> If you installed Python with Anaconda, it should be in your system menu *by default* (along *Spyder*, *IPython* and *IPython QT Console*)…


---

## How to install it :package: ?

Install it (you need :snake: Python) from https://jupyter.org/install.html.

```bash
$ conda install jupyter  # if you use Anaconda/conda
$ pip install jupyter    # for the system-wide Python & pip
```

## How to start it ?
```sh
$ jupyter notebook # from your console
...
Copy/paste this URL into your browser when you connect
for the first time, to login with a token:
http://localhost:8888/?token=44450caacdbe3ecddc21e02e66a6b5162cdd2d86dccd5264
```

- It should open http://localhost:8888/notebooks/ in your browser
- Or open the link in your terminal

---

# :snake: Only for Python :cry: ??
- No: supports naitively Julia, Python and R (**Ju + Py + R = Jupyter**)
- Dozens of "kernels" allow you to use Jupyter with *almost* any language ! (for free). Installation is usually simple & fast.

## Partial list :memo:
- Interpreted languages: :shell: Bash, :camel: Caml/OCaml, Lua etc
- :smiley: and of course Wolfram Mathematica and MATLAB
  > even if they have their own notebook tools now.
- :open_mouth: But also compiled languages : C++, C, Go, Java !

## Complete list of "kernels"
> See [github.com/jupyter/jupyter/wiki/Jupyter-kernels](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels)

---

# 3. Demo time

- I will show you quickly all this…

- With an example of coding in Python.

- Reference documentation is:
  [jupyter.readthedocs.io/en/latest/content-quickstart.html](https://jupyter.readthedocs.io/en/latest/content-quickstart.html)

---

## [Internally](https://jupyter.readthedocs.io/en/latest/architecture/visual_overview.html), it's quite complicated, just don't care

![original 60%](figures/repos_map.png#center)

---

# Conclusion (1/3)

## Sum-up
- I hope you got a good introduction to Jupyter :ok_hand:
  + Official documentation: at [jupyter.rtfd.io](https://jupyter.readthedocs.io/en/latest/content-quickstart.html)
- Also [datacamp.com/community/tutorials/tutorial-jupyter-notebook](http://datacamp.com/community/tutorials/tutorial-jupyter-notebook)

## Pointers
1. :heart: use it and fall in love with it !

2. Use Jupyter-themes ([`github.com/dunovank/jupyter-themes`](https://github.com/dunovank/jupyter-themes))
  to customize the UI as you wish (dark themes, custom fonts etc)
3. Use extensions if you want more features,
  See [jupyter-contrib-nbextensions.rtfd.io](https://jupyter-contrib-nbextensions.readthedocs.io)

---

# Conclusion (2/3)

## Next GouTP @ SCEE
- Any request or suggestion ?

## GouTP @ FAST or AUT ?
> By Pierre Haessig ?

- **Julia programming language** (~ between Python and Matlab)
  see julialang.org if you are curious

## We need participants!
> :point_right: By *you*? Any idea is welcome! :smiley:

---

# Conclusion (3/3)

> *Thanks for joining :clap: !*
> *Contact us if you want to do a GouTP !*

## Your mission, if you accept it… :boom:
1. *Padawan level :* next time you program in :snake: Python (or other language), think about **Jyputer**. Can it help you being more efficient?
2. *Jedi level :* Try to use **Jupyter** when you will have to share or show some piece of code?
3. *Master level :* From now on, try to use (only?) open-source tools for your research (Python and others)…