317 lines
6.8 KiB
Markdown
317 lines
6.8 KiB
Markdown
# Retours sur la PyCon U.S. 2019
|
||
|
||
<!-- .slide: data-background="static/background.jpg" -->
|
||
|
||
<br/>
|
||
|
||
<b>Julien Palard</b>
|
||
|
||
<tt>Paris.py #19</tt>
|
||
|
||
## Julien Palard
|
||
|
||
- Python core dev and documentation expert
|
||
- Python teacher and coach at
|
||
- Sup'Internet
|
||
- CRI-Paris
|
||
- Makina Corpus
|
||
- …
|
||
|
||
# PyCon US
|
||
|
||
![](static/guido-painting.jpg)
|
||
|
||
## PyCon US
|
||
|
||
- Language summit, Education summit
|
||
- 2 jours de tutoriels
|
||
- 3 jours de confs (6 tracks)
|
||
- Open spaces
|
||
- 3 jours de sprints
|
||
- Évènements : PyLadies Auction, dinners, ...
|
||
- Des gens !
|
||
|
||
Notes:
|
||
|
||
On ignore ce qu'on ignore, les conférences c'est le bon endroit pour le découvrir.
|
||
|
||
Et de la bière :]
|
||
|
||
|
||
# Language Summit
|
||
|
||
![](static/capi.jpg)
|
||
|
||
Notes:
|
||
|
||
Audience variée : Des anciens core devs, des nouveaux, des
|
||
contributeurs de twisted, Django, BeeWare, on y a parlé de :
|
||
|
||
|
||
## Language Summit
|
||
|
||
- L'API C,
|
||
- la communication,
|
||
- le mentoring,
|
||
- les subinterpreters (avec des GIL indépendants),
|
||
- mypyc,
|
||
- inclure les time zones dans la stdlib,
|
||
- [bouger les issues sur github](https://speakerdeck.com/mariatta/pep-581).
|
||
- Circuit Python
|
||
|
||
|
||
Notes:
|
||
|
||
- API C: Victor
|
||
- La com: Comment tenter de faire mieux que pour le Walrus Operator
|
||
- Le mentoring: Pablo Galindo Salgado, Emily Morehouse, Lisa Roach, Stéphane Wirtel
|
||
Appel de Victor sur la ML mentoring pour plus de diversité.
|
||
- mypyc: Essayez le, c'est pas tout a fait comme cython
|
||
- TZ: Problem: Time zone changes are far more frequent than Python releases.
|
||
- Circuit Python est un fork de MicroPython (copy code.py et pouf), API hardware différences
|
||
|
||
# Education Summit
|
||
|
||
Dr. Charles R. Severance nous a parlé de Coursera et leur tendance à
|
||
rendre les cours payants, il se bat donc en sortant ses cours et en
|
||
les hébergant lui même :
|
||
|
||
- py4e.com
|
||
- dj4e.com
|
||
|
||
## The Zen of Python
|
||
### Open Education Resources
|
||
|
||
```text
|
||
- Content matters but not at the expense of logistics.
|
||
- You should never assume that your user looks like you
|
||
or thinks like you. Refuse the temptation to design for your
|
||
youger self.
|
||
- Access counts.
|
||
- Accept that you are a UX designer.
|
||
- Testing in an education environment is better than having a
|
||
kid related to you test it.
|
||
- If there are too many Python in-jokes, that's a bad idea,
|
||
they exclude new users.
|
||
- If you think soemthing is obvious, explain it anyway,
|
||
it's a good idea — it wasn't obvious for beginners.
|
||
- Your contributors always need guidance.
|
||
- You will fail, and it will still be worth it.
|
||
- Resources that exist are better than resources that don't.
|
||
- Resources that can be found are better than resources that can't.
|
||
- Resource that can be found and used by your target user are even better. Let's do more of that!
|
||
```
|
||
By Meg Ray
|
||
|
||
Notes:
|
||
|
||
Fun fact: deux speakers ont présentés le même "Zen", vu que Meg Ray était présente (keynotter!)
|
||
|
||
## Lightning Talks
|
||
|
||
Les certifications Python, ça en est où ?
|
||
|
||
Notes:
|
||
Le sujet prédominant était le manque de
|
||
certification Python, a la louche il en existe deux, elles sont
|
||
chères, pas forcément bien faites. On pourrait se bouger pour en faire
|
||
une meilleure, reconnue par la communauté. Enfin pas moi.
|
||
|
||
|
||
# La pause
|
||
|
||
![](static/pycon-group.jpg)
|
||
|
||
|
||
# Pleinières
|
||
|
||
## Russell Kenth Magee
|
||
|
||
Les « Python Black Swans ».
|
||
|
||
Notes:
|
||
réfléchissons a un évènement qui pourrait modifier
|
||
drastiquement Python, qui nous paraitrait évident s'il survenait. Mais
|
||
essayons de le prévoir plutôt que le subir. Surtout s'il est dangereux.
|
||
|
||
## Russell Kenth Magee
|
||
|
||
Python dans les navigateurs ?
|
||
|
||
Notes:
|
||
|
||
Si oui selon Russell ça se
|
||
fera via webassembly, c'est donc a nous de le faire. Il nous a fait
|
||
une démo avec beeware d'un programme Python qui tourne sur Android,
|
||
iOS, Linux, et dans le navigateur, joli !
|
||
|
||
## RIP
|
||
|
||
![](static/RIP-python2.jpg)
|
||
|
||
|
||
# Confs
|
||
|
||
## Luciano Ramalho
|
||
|
||
```python
|
||
def match(words, search):
|
||
words = words.split()
|
||
search = search.split()
|
||
for to_find in search:
|
||
for word in words:
|
||
if to_find == word:
|
||
break
|
||
else:
|
||
return False
|
||
return True
|
||
```
|
||
|
||
Note:
|
||
Luciano est pour moi une grande source d'inspiration autour de l'enseignement de Python.
|
||
|
||
La conf sur les ensembles, trop peu utilisés ? Ignorés ?
|
||
|
||
|
||
## Luciano Ramalho
|
||
|
||
```python
|
||
def match(words, search):
|
||
return set(words.split()) >= set(search.split())
|
||
```
|
||
from the doc:
|
||
|
||
> Test whether every element in other is in the set.
|
||
|
||
|
||
## De Morgan's Law
|
||
|
||
```python
|
||
>>> e = {n for n in range(10) if n % 2 == 0}
|
||
>>> p = {*range(5)}
|
||
>>> f = {1, 1, 2, 3, 5, 8}
|
||
>>> f - (p & e) == (f - p) | (f - e)
|
||
True
|
||
```
|
||
|
||
Notes: Luciano nous a montré ça aussi.
|
||
|
||
|
||
## De Morgan's Law
|
||
|
||
Still not a proof, let's bring pytest and hypothesis!
|
||
|
||
```python
|
||
@given(e=st.sets(st.integers()),
|
||
p=st.sets(st.integers()),
|
||
f=st.sets(st.integers()))
|
||
def test_de_morgan(e, p, f):
|
||
assert f - (p & e) == (f - p) | (f - e)
|
||
```
|
||
|
||
Notes: On a eu beaucoup de Hypothesis partout, alors testons avec.
|
||
|
||
|
||
## Lightning Talks
|
||
|
||
J'ai appris l'existence de pytype, copain de mypy, mais plus orienté inférence.
|
||
|
||
|
||
## Pablo Galindo
|
||
### Le ramasse-miettes
|
||
|
||
Et bah, c'est pas drôle un ramasse miette.
|
||
|
||
|
||
```python
|
||
>>> x = None
|
||
>>> class Lazarus:
|
||
... def __del__(self):
|
||
... print("I'm going to be resurected!")
|
||
... global x
|
||
... x = self
|
||
...
|
||
>>> a = Lazarus()
|
||
>>> del a
|
||
I'm going to be resurected!
|
||
>>> x
|
||
<__main__.Lazarus object at 0x7fd0a02c0978>
|
||
```
|
||
|
||
# Les sprints
|
||
|
||
Sujets variés :
|
||
- cpython
|
||
- mailman
|
||
- hypothesis
|
||
- packaging
|
||
- pellets (flask, jinja2, click, ...)
|
||
- mypy / mypyc
|
||
- Circuit Python
|
||
- ...
|
||
|
||
## Infra avec Ernest W. Durbin III
|
||
|
||
2FA sur pypi.org \o/
|
||
|
||
Notes:
|
||
|
||
Ce n'est pas public pour le moment, demandez moi ou demandez sur
|
||
#python-infra sur freenode si vous voulez le tester.
|
||
|
||
|
||
## Les sprints
|
||
|
||
On a démarré trois nouvelles traductions de la documentation de Python :
|
||
|
||
- Italien, avec Alessandro Cucci
|
||
- Espagnol avec Raul Cumplido
|
||
- Hindi (hi_IN) avec Sanyam Khurana
|
||
|
||
Notes:
|
||
|
||
- Ca nous mène à 17 traductions plus ou moins démarrées.
|
||
- 9 avec une activité non négligable
|
||
- 5 en production
|
||
|
||
## cpython
|
||
|
||
J'ai principalement bossé sur cpython (segfaults / memory leaks)
|
||
|
||
|
||
# Ce que j'ai retenu ?
|
||
|
||
- Black, black everywhere!
|
||
- F-string debug mode : `foo=5; print(f"{foo=}")`
|
||
- Rencontrer les gens !
|
||
|
||
Notes:
|
||
|
||
Pour ceux sous Windows, VSCode permet maintenant d'utiliser un venv de
|
||
WSL, cherchez "Remote Development" (need VSCode Insiders).
|
||
|
||
## PSF Q2 2019 Fundraiser
|
||
|
||
<!-- .slide: data-background="PSF_fundraiser_icon_2019.png" -->
|
||
|
||
Notes:
|
||
|
||
Ça finance aussi les ateliers de traduction de la doc :)
|
||
|
||
Pendant qu'on en parle, vous cotisez à l'AFPy ?
|
||
|
||
# Et après ?
|
||
|
||
Prochaine PyCon US à Pittsburgh :
|
||
|
||
- 15 au 23 avril 2020
|
||
- 12 au 20 mai 2021
|
||
|
||
|
||
## Et après ?
|
||
|
||
En attendant, suivez @pyconfr pour avoir des nouvelles de la prochaine PyCon Fr.
|
||
|
||
Secret : Si on la fait ce sera peut être à Bordeaux, peut être du 30
|
||
octobre au 3 novembre, peut être.
|