2022-09-23 14:12:30 +00:00
# The slides I use while teaching
2019-01-18 22:41:27 +00:00
2022-09-23 14:12:30 +00:00
Each directory contains a Makefile that builds the slides using
[mdtoreveal ](https://pypi.org/project/mdtoreveal/ ).
Each directory is also uploaded to mdk.fr:
- https://mdk.fr/python-initiation
- https://mdk.fr/python-avancé
- https://mdk.fr/drf-initiation
- https://mdk.fr/django-initiation
- https://mdk.fr/python-perfs
- https://mdk.fr/git-initiation
2020-01-12 13:20:57 +00:00
2020-01-12 19:51:22 +00:00
2020-01-12 13:20:57 +00:00
## TODO
2021-02-01 07:51:10 +00:00
- http://scipy.github.io/old-wiki/pages/Tentative_NumPy_Tutorial
- `*` peut être vu comme de l'unpacking vers des noms qu'on ne voit pas.
- Ajouter une slide sur "jamais de \ en fin de ligne", il y a toujours
un moyen plus lisible.
- https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html Why numbering should start at zero
2020-01-13 21:25:16 +00:00
- Les imports
2020-02-20 21:22:12 +00:00
- with statement
2020-01-12 13:20:57 +00:00
## Notes
2021-02-01 07:51:10 +00:00
Les arguments par defaut conservés peuvent service de memoizer:
def fib(x, memo={}):
...
2020-01-12 13:20:57 +00:00
**Aucune** fonction n'est montée avant le 3, (à part des méthodes sur
les types natifs).
2020-01-13 17:22:26 +00:00
Souci : Jour 1 pytest nécessite Jour 2 pip...
2020-03-01 23:57:54 +00:00
# La suite du programme avancé
- Packaging
- cookiecutter : docs/, tests/, README, setup.cfg, setup.py, ...
- Multiprocessing / Multithreading / Asyncio
- IO Bound vs CPU Bound
- Locks vs Queues
- Code quality
- import this, explicit is better
2021-03-28 08:09:33 +00:00
- sémantique : les ternaires, les listes en compréhension, sont des
2020-03-01 23:57:54 +00:00
expressions, elles doivent être utilisées comme des expressions,
pas comme des instructions.
- TDD
- pas de print, logging FTW.
- pas de "logging tiers", personne ne connaît, on reste sur `logging` .
- -Xdev
- black, ..., pass
- pytest, doctest
- pytest-cov
- hypothesis
- flake8
- flake8-bugbear
- tox
- mypy
- black
- pdb, breakpoint()
- EAFP, LBYL
- Performance
- Les types natifs : Leur complexité algorithmique
- Cython
- pypy
- cffi
- cprofile / pstats
- Libs
- re
- argparse
- pathlib
- logging
- numpy
- jupyter
2021-07-16 07:23:50 +00:00
< a rel = "license" href = "http://creativecommons.org/licenses/by/4.0/" > < img alt = "Licence Creative Commons" style = "border-width:0" src = "https://i.creativecommons.org/l/by/4.0/88x31.png" / > < / a > < br / > Ce(tte) œuvre est mise à disposition selon les termes de la < a rel = "license" href = "http://creativecommons.org/licenses/by/4.0/" > Licence Creative Commons Attribution 4.0 International< / a > .
2022-09-23 14:12:30 +00:00
# DRF
Side project : https://github.com/JulienPalard/drf-demos
- Revue des bases et consolidation Python et Django
- Présentation des types d'API, approfondissement de REST/HATEOAS
- Rappels autour de la sémantique HTTP
- django-rest-framework: La sérialisation
- django-rest-framework: Les différents types de vues
- django-rest-framework: Les permissions
- django-rest-framework: Les relations
- Les tests et la maintenabilité
# Objectifs pédagogiques
- Pouvoir démarrer rapidement un projet DRF.
- Savoir designer une API.
- Implémenter un service headless en utilisant DRF.
# TP
- Projet 1 : API « Horloge parlante ».
- Projet 2 : API « memcached ».
- Projet 3 : API « file system ».
- Projet 4 : API « uptime manager ».
# Formation Initiation Linux (2 jours)
Cette formation est destinée à toute personne souhaitant utiliser
Linux, pour du développement, de l'administration système, ou pour un
usage quotidien.
## Stagiaires
Maximum 5 par sessions, pour commencer, peut monter à 7.
## Pré-requis
Aucun.
## Objectifs pédagogiques
- Pouvoir utiliser une machine sous Linux au quotidien.
- Être à l'aise avec les interfaces en ligne de commande.
- Savoir installer et utiliser des logiciels.
- Manipuler des fichiers, des données.
## Plan
### Jour 1
- Présentation de l'environnement Linux.
- Maniement de l'émulateur de terminal.
- Approche des commandes classiques :
- `man` , `cd` , `ls` , `pwd` , `mv` , `cp` , `rm` , `less` , …
- Installer, désinstaller des applications depuis le gestionnaire de paquets.
### Jour 2
- L'accès à l'extérieur avec `ssh` , `rsync` , `curl` , et gestion des sauvegardes.
- Introduction à la gestion de sources en utilisant `git` .
- Manipulation de données en utilisant `awk` , `sed` , `grep` , `find` .
- L'édition de texte depuis un terminal en utilisant `emacs` .
- Approche du système de fichier : les droits, la sécurité, `mount` .