mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 19:42:37 +02:00
PyconFR 2015
This commit is contained in:
parent
25909813f2
commit
122f1ea1f8
9 changed files with 780 additions and 0 deletions
48
content/pyconfr2015/assemblee-generale.rst
Normal file
48
content/pyconfr2015/assemblee-generale.rst
Normal file
|
@ -0,0 +1,48 @@
|
|||
PyconFR 2015 — Assemblée générale
|
||||
#################################
|
||||
|
||||
:date: 2015.10.18
|
||||
:category: pyconfr2015
|
||||
:unlisted: true
|
||||
|
||||
.. note::
|
||||
|
||||
Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||||
à les completer si besoin.
|
||||
|
||||
Mot de feth sur Nelle, qui était une présidente très présente. Merci !
|
||||
|
||||
Passé
|
||||
-----
|
||||
|
||||
Il existe des communautés locales à Lyon Grenoble, Nantes.
|
||||
Des Afpyro ont été organisés dans toutes ces villes + Rennes + Marseille
|
||||
Support pour 2 Django Carrots.
|
||||
Par rapport au mentoring, très peu de retours, peut etre de nouvelles choses
|
||||
à faire.
|
||||
|
||||
FOSDEM 2015 était complet. Il y avait une salle python tojours pleine.
|
||||
Dsicussions sur la diversité.
|
||||
|
||||
Futur
|
||||
-----
|
||||
|
||||
Amandine propose d'organiser des soirées à NUMA l'an prochain.
|
||||
Global code retreat: participation
|
||||
Migrer le serveur de l'AFPY
|
||||
Reboot des status: nos pratiques ne sont pas en ligne avec nos status.
|
||||
Mise en place de mentoring pour python.
|
||||
|
||||
Status
|
||||
======
|
||||
|
||||
Comité directeur renouvelé par tiers. Il est composé de 18 personnes. Les
|
||||
discussions qui sont dans le CD n'en sortent pas, et les discussions sont donc
|
||||
effectuées en priuvées.
|
||||
|
||||
L'idée actuelle serait de réduire le CD de 18 à 9 personnes. Tout le travail
|
||||
serait fait en dehors du CD. Il est possible de mettre en place un groupe de
|
||||
travail pour travailler sur l'évolution de la charte.
|
||||
|
||||
Il faut faire évoluer les status: ils ne sont pas actuellement bien faits par
|
||||
rapport à notre utilisation.
|
122
content/pyconfr2015/cliquet.rst
Normal file
122
content/pyconfr2015/cliquet.rst
Normal file
|
@ -0,0 +1,122 @@
|
|||
PyconFR 2015 — Cliquet
|
||||
######################
|
||||
|
||||
:date: 2015.10.17
|
||||
:category: pyconfr2015
|
||||
:unlisted: true
|
||||
|
||||
.. note::
|
||||
|
||||
Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||||
à les completer si besoin.
|
||||
|
||||
Speaker: Mathieu Leplatre (@leplatrem), Mozilla
|
||||
|
||||
Toolkit HTTP, pour éventuellement faire des microservices.
|
||||
|
||||
1. Origines
|
||||
2. Protocole
|
||||
3. Toolkit
|
||||
4. Conversation
|
||||
|
||||
Origines
|
||||
========
|
||||
|
||||
Stockage de données, Cloud Services, Mozilla.
|
||||
Le boulot, c'est de faire des APIs. On nous demande de faire des APIs, tout
|
||||
le temps.
|
||||
|
||||
Souvent, les mêmes questions sont à l'ordre du jour. Heartbeat, codes
|
||||
d'erreurs, etc. L'inventaire de tout ce qui est attendu d'une API, au dela de
|
||||
ce qui est la valeur ajoutée du service.
|
||||
|
||||
Définition d'un protocole. Définir une API REST n'est pas aussi évident qu'il
|
||||
y parait. Il faut définir les formats de JSON, les status, etc.
|
||||
|
||||
La réutilisation de certaines protocoles existants était possible (Sync, en
|
||||
production depuis quelques années).
|
||||
|
||||
Réutiliser du code nous permettait et faire un template pour démarrer plus
|
||||
facilement, pour se concentrer sur le métier de l'API. Puisque les besoins ne
|
||||
sont pas toujours les mêmes, avoir une boite à outil permet de choisir ce que
|
||||
l'on souhaite.
|
||||
|
||||
Protocole
|
||||
=========
|
||||
|
||||
- Création d'un protocole qui respecte les bonnes pratiques. CORS, avoir les
|
||||
bons codes de status, arrêter de se poser toujours les mêmes questions.
|
||||
Contrairement à ce qu'on imagine, la spécification HTTP n'est pas si facile
|
||||
à suivre. Plutôt que d'écrire un document, un toolkit à été créé.
|
||||
- Les ops ont besoin de quelques endpoints: un heartbeat (monitoring) des
|
||||
endpoints de batch, un endpoint "hello", pour connaitre le type de service,
|
||||
ses URLs etc.
|
||||
- La service renvoie toujours un JSON avec la description de l'erreur. Cela
|
||||
permet d'avoir tout le temps la même gestion des erreurs. Utilisation du
|
||||
header "backoff" qui permet de demander aux clients d'arreter de faire des
|
||||
requetes durant une durée spécifée par le serveur.
|
||||
- Pour les resources "REST", quelques règles sont définies: quel est le format
|
||||
du JSON, quel est la syntaxe du querystring pour filtrer, ordonner, gérer les
|
||||
opérations concurentes, etc.
|
||||
- Comment la validation fonctionne ? La pagination ? La définition des
|
||||
permissions ? Les erreurs.
|
||||
|
||||
Définir le protocole une seule fois permet de se mettre d'accord avec les Ops.
|
||||
On ne créé pas une RFC pour l'instant, il faut qu'on valide ce qu'on a fait,
|
||||
il est necessaire de valider notre approche.
|
||||
|
||||
Toolkit
|
||||
=======
|
||||
|
||||
La stack en place est basée sur Pyramid et Cornice. Autre chose aurait pu petre
|
||||
utilisé. Mais pyramid à été choisi pour son approche simpliste et qui permet de
|
||||
rajouter de la complexité au fur et à mesure.
|
||||
|
||||
Cliquet propose de faire l'ensemble du boilerplate, la lecture du protocole, et
|
||||
vous permet de créer les backends souhaités.
|
||||
|
||||
Il est possible de choisir les methodes HTTP acceptables, les URLs à utiliser
|
||||
etc. Tweaker l'API est possible, la chose qui reste toujouts stable est le
|
||||
protocole.
|
||||
|
||||
le toolkit vise à faire quelque chose de pluggable. Tout est controllable
|
||||
depuis la configuration.
|
||||
|
||||
Pour le deploiement, cela veut dire que le monitoring est déjà connecté, et il
|
||||
est possible de changer la configuration depuis un fichier `.ini`.
|
||||
|
||||
Il est aussi possible de faire du profiling en ajoutant deux lignes de code,
|
||||
qui permet de générer des graphs qui permettent d'identifier les goulots
|
||||
d'étranglement.
|
||||
|
||||
Microservices ?
|
||||
===============
|
||||
|
||||
- Cliquet apporte une manière standard de surveiller, deployer, configurer des
|
||||
services.
|
||||
- Il est possible de se focaliser sur la logique de l'application, en faisait
|
||||
une abstraction des backends, etc.
|
||||
- Le fait de figer l'API permet d'avoir des clients génériques que l'on peu
|
||||
réutiliser d'une application à l'autre.
|
||||
|
||||
Cliquet est utilisé pour
|
||||
========================
|
||||
|
||||
- Kinto, un service générique de stpclage de données.
|
||||
- Syncto, un proxy pour Sync en utilisant le protocole.
|
||||
- La liste de lecture, service qui à été shutdown.
|
||||
|
||||
Questions
|
||||
=========
|
||||
|
||||
- **Qu'est-ce qui est pluggable ?** Les choix qui sont fait dans cliquet
|
||||
concernent le protocole. Le toolkit est lui fait de manière "pluggable". Il
|
||||
est par exemple possible de changer le backend, l'authentification, le cache
|
||||
ou les permissions.
|
||||
- **Quelles sont les parties non standard? Est-il prévu de representer ça via
|
||||
une RFC ?** Le seul sujet qui pourrait etre utile dans une RFC serait de
|
||||
définir les headers attendus pour la validation et l'écriture
|
||||
concurrentielle. L'ensemble de ce qui est proposé est standard.
|
||||
- **Existe-il un client JavaScript, comme pour Kinto ?** Actuellement, non. Par
|
||||
contre, Kinto.js est prévu pour que la partie commune entre les APIs (le
|
||||
protocole) peut etre extrait.
|
132
content/pyconfr2015/geoalchemy.rst
Normal file
132
content/pyconfr2015/geoalchemy.rst
Normal file
|
@ -0,0 +1,132 @@
|
|||
PyconFR 2015 — Geoalchemy
|
||||
#########################
|
||||
|
||||
:date: 2015.10.17
|
||||
:category: pyconfr2015
|
||||
:unlisted: true
|
||||
|
||||
.. note::
|
||||
|
||||
Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||||
à les completer si besoin.
|
||||
|
||||
Speaker: Eric Lemoine, Camp to camp. (@elemoine)
|
||||
|
||||
Bibliothèque python basée sur SQL alchemy, pour interagir avec des bases de
|
||||
données geographiques / spatiales.
|
||||
|
||||
Une base de donnée optimisée pour representer et rechercher des données qui
|
||||
representent des objets dans un espace géométrique.
|
||||
|
||||
- Il est possible d estocker des ligne,s de polygones, des points. Il y a une
|
||||
colonne géometrie pour stocker ces données.
|
||||
|
||||
- Il y a aussi des fonctions qui permettent de travailler sur ces données
|
||||
(transfomrations, projections, etc).
|
||||
- Indexs géographiques qui permettent de faire des recherches de manière
|
||||
performante.
|
||||
|
||||
POSTGIS
|
||||
-------
|
||||
|
||||
POSTGIS s'appuie sur postres pour offrir des types géographiques, des fonctions
|
||||
et des indexes (R-Tree), qui permettent de ranger les géométries dans des
|
||||
"boites englobantes".
|
||||
|
||||
Pour créer une base de données postgis, il faut faire un "create extension
|
||||
postgis", ce qui installe tout ce dont on a besoin.
|
||||
|
||||
il est possible d'apeller `GEOMETRY(POINT)` par exemple.
|
||||
|
||||
`ST_GeomFromText('POINT(lat long)')` permet de convertir un point dans un objet
|
||||
geometrie interne à postgres.
|
||||
|
||||
`ST_DWithin` permet de trouver les personnes qui sont autour d'un rayon donné.
|
||||
|
||||
L'ensemble des fonctions proposées par postgres commencent par `ST_*`
|
||||
|
||||
SQLAlchemy
|
||||
----------
|
||||
|
||||
Il s'agit d'une bote à outil qui permet de faire des requetes de manière
|
||||
simple. Il y a une philosophie forte.
|
||||
|
||||
- Il ne sohaite pas cacher la base de données
|
||||
- C'est un language pour faire du SQL en python
|
||||
- Rien n'est caché.
|
||||
- Fourni un vocabulaire riche pour générer le SQL
|
||||
- L'objectif est de changer la manière dont on pense à SQL, redonner le gout du
|
||||
SQL aux developeurs.
|
||||
|
||||
Deux parties:
|
||||
- ORM
|
||||
- CORE
|
||||
|
||||
Il est possible d'utiliser simplement le core si l'on sohaite (sans utiliser
|
||||
l'ORM)
|
||||
|
||||
Core
|
||||
~~~~
|
||||
|
||||
Il est possible d'utiliser SQL Alchemy pour générer les tables à l'origine.
|
||||
Core permet d'utiliser des tables, et d'executer une insertion, depuis python.
|
||||
Il est possible de representer les requetes avec des methodes chainées
|
||||
`select().where()` etc.
|
||||
|
||||
Le "core" ne fait pas de mapping du tout, il manipule des Tables SQLA
|
||||
directement.
|
||||
|
||||
ORM
|
||||
~~~
|
||||
|
||||
L'ORM fait, lui, du mapping. C'est cette couche que l'on va utiliser dans une
|
||||
application Web complexe par exemple.
|
||||
|
||||
- il est possible de travailler avec une session `Session()` puis on effectue
|
||||
des opérations et on `commit()`.
|
||||
|
||||
GeoAlchemy
|
||||
==========
|
||||
|
||||
- Créé en 2009, pour supporter uniquement postgis.
|
||||
- Depuis, d'autres bases de données (MySQL, Spatialite, MySQL server) etc.
|
||||
- Réécriture depuis grace à la nouvelle API de SQLAlechemy, mais perte du
|
||||
support d'autres backends.
|
||||
- Finalement, retour sur POSTGIS uniquement, pour évite d'avoir à supporter les
|
||||
différences de tous les backends.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
Très simple de s'intégrer avec les features de POSTGIS, par exemple en
|
||||
déclarant une colonne en tant que "Géometrie".
|
||||
|
||||
Exemple: session.query(Lake).filter(Lake.geom.ST_Buffer(2).ST_Area) permet de
|
||||
lister l'ensemble des lacs avec une aire de 2 au moins.
|
||||
|
||||
S'intègre bien avec des services existants (shapely, pyramid, etc).
|
||||
|
||||
Utilisation de geojsondumps pour representer des features en geojson.
|
||||
|
||||
Status
|
||||
------
|
||||
|
||||
Le projet est completement documenté sur read the docs. La documentation est
|
||||
assez complete et solide. Il est intégralement testé, sur differentes versions
|
||||
de python, sqlalchemy et postgres.
|
||||
|
||||
3 ou 4 developeurs actifs sur le projet, ça fonctionne plutôt bien. Pour
|
||||
contribuer, il est possible de faire cela sur github.
|
||||
|
||||
Slides de la presentation sur http://erliem.net/talks/pyconfr2015
|
||||
|
||||
Resources:
|
||||
|
||||
- https://pypi.python.org/pypi/Shapely - Manipulation and analysis of geometric
|
||||
objects in the Cartesian plane.
|
||||
|
||||
Question:
|
||||
|
||||
- Dans les exemples geoalchemy, les données geométriques sont passées sous
|
||||
forme de chaine. Est-ce normal ? Oui.
|
||||
- Les rasters sont également supportés.
|
81
content/pyconfr2015/hospital.rst
Normal file
81
content/pyconfr2015/hospital.rst
Normal file
|
@ -0,0 +1,81 @@
|
|||
PyconFR 2015 — Hospital - des tests en prod
|
||||
###########################################
|
||||
|
||||
:date: 2015.10.18
|
||||
:category: pyconfr2015
|
||||
:unlisted: true
|
||||
|
||||
.. note::
|
||||
|
||||
Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||||
à les completer si besoin.
|
||||
|
||||
Speaker: Benoit Bryon, Peopledoc.
|
||||
|
||||
Pour une procédure de déploiement, comment est-ce qu'on valide que tout va bien
|
||||
une fois que tout est dépoyé ? Si on a une application très simple (upload et
|
||||
envoi de fichiers).
|
||||
|
||||
Pour des applications plus complexes, il y a beaucoup de choses à tester (base
|
||||
de données, cache, email, etc). Beaucoup de parties sont utiles: reverse
|
||||
proxy, django, base de données etc.
|
||||
|
||||
Lors d'un déploiement, comment faire pour vérifier que tout tourne lorsque tout
|
||||
est déployé ?
|
||||
|
||||
Comment faire ?
|
||||
---------------
|
||||
|
||||
- Les tests permettent de tester hors sol.
|
||||
- Le provisionning permet de valider que tout tourne correctement, mais
|
||||
- simplement au démarrage. Les pannes ne sont pas détectées.
|
||||
- Le logging va permettre de detecter les erreurs, mais trop tard.
|
||||
- Le monitoring permet d'avoir une vue de l'exterieur.
|
||||
|
||||
Hostpital propose de faire des assertions sur la configuration,
|
||||
l'environnement, *en cours de fonctionnement*. Ce sont les developeurs qui
|
||||
ajoutent ces assertions.
|
||||
|
||||
Cela peut servir à valider un déploiement, pour etre rassuré une fois que le
|
||||
déploiement effectué. Cela peut aussi service à surveiller un service et
|
||||
diagnostiquer les problèmes.
|
||||
|
||||
Hospital
|
||||
--------
|
||||
|
||||
::
|
||||
pip install hospital
|
||||
|
||||
Hospital est un outil en python. On définit des tests, de la même manière que
|
||||
l'on définit des tests unitaires. On fait des assertions, comme pour les tests
|
||||
unitaires. Hospital propose des helpers pour les cas courants:
|
||||
`assert_http_response` ou `assert_ping`.
|
||||
|
||||
La vue est une vue de l'intérieur. La différence avec le monitoring est que
|
||||
l'on teste la connectivité entre les services (exemple d'une requete
|
||||
elasticsearch qui échoue depuis un service django).
|
||||
|
||||
Pour la supervision, les healthchecks sont lancés avec une ligne de commande
|
||||
`hospital-cli`. Il est possible de lancer également ces tests avec nose ou
|
||||
py.test.
|
||||
|
||||
Il est aussi possible de faire le monitoring avec une API HTTP `hospital
|
||||
serve`.
|
||||
|
||||
Les lacunes de hospital
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Les healthchecks sont fait actuellement en synchrone. Cela peut prendre du
|
||||
temps. Il pourrait etre interessant de lancer des taches de manière distribuée
|
||||
/ en paralelle.
|
||||
|
||||
Il pourrait etre utile de faire la distinction entre les smoketests et les
|
||||
diagnostiques: les premiers sont des petits checks qui permettent de dire si ça
|
||||
marche, de manière très simple. De l'autre coté, les diagnostiques seraient eux
|
||||
plus fins.
|
||||
|
||||
Wrap up
|
||||
-------
|
||||
|
||||
Validez votre configuration, la connectivité avec les services externes. Faites
|
||||
des tests souvent !
|
33
content/pyconfr2015/pyconfr-2015.rst
Normal file
33
content/pyconfr2015/pyconfr-2015.rst
Normal file
|
@ -0,0 +1,33 @@
|
|||
Rencontres python francophones, 2015
|
||||
####################################
|
||||
|
||||
:date: 2015.11.02
|
||||
|
||||
J'ai pris quelques notes durant la conférence annuelle de PyconFR, qui avait
|
||||
lieu à Pau cette année, et les ai publiées entre deux étapes des vacances qui
|
||||
ont suivi. Je prends maintenant un peu plus de temps pour ranger toutes ces
|
||||
notes au bon endroit.
|
||||
|
||||
C'était un excellent cru: l'organisation était vraiment impressionnante (merci
|
||||
, si vous me lisez !). Et puis comme toujours l'occasion de recroiser quelques
|
||||
copains, et d'en découvrir quelques autres... J'en ai profité pour parler de
|
||||
Kinto (voici d'ailleurs `les slides de la présentation que j'ai faite
|
||||
<http://alexis.notmyidea.org/kinto-pycon/>`_).
|
||||
|
||||
Parmis les conférences qui m'ont marquées, je vous conseille `celle de Benoit
|
||||
Bryon, sur Hospital <{filename}/pyconfr2015/hospital.rst>`_, qui parle de
|
||||
heartbeat, ou de comment tester vos projets en prod, et celle `sur Geo Alchemy,
|
||||
par Éric Lemoine <{filename}/pyconfr2015/geoalchemy.rst>`_. Et bien sur, `celle
|
||||
de Mathieu Leplatre sur Cliquet <{filename}/pyconfr2015/cliquet.rst>`_, le
|
||||
toolkit qui rassemble les bonnes pratiques que nous souhaitons mettre en avant
|
||||
chez Mozilla services, mais là, je suis tout sauf impartial !
|
||||
|
||||
Sinon, il peut être interessant de jeter un coup d'oeil au `compte rendu de la
|
||||
table ronde sur la diversité
|
||||
<{filename}/pyconfr2015/table-ronde-diversite.rst>`_, si c'est un sujet qui vous
|
||||
touche. Encore beaucoup de choses à faire sur le sujet, bien sur, mais cette table ronde
|
||||
était un pas nécessaire dans la bonne direction. Un groupe de travail sur le
|
||||
sujet est en train de se constituer au sein de l'association.
|
||||
|
||||
L'ensemble des notes que j'ai pu prendre sont disponibles dans la section `PyconFR 2015
|
||||
<http://blog.notmyidea.org/category/pyconfr2015.html>`_.
|
58
content/pyconfr2015/sqlalchemy.rst
Normal file
58
content/pyconfr2015/sqlalchemy.rst
Normal file
|
@ -0,0 +1,58 @@
|
|||
PyconFR 2015 — SQL Alchemy
|
||||
##########################
|
||||
|
||||
:date: 2015.10.17
|
||||
:category: pyconfr2015
|
||||
:unlisted: true
|
||||
|
||||
.. note::
|
||||
|
||||
Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||||
à les completer si besoin.
|
||||
|
||||
Speaker: David Allouche
|
||||
|
||||
SQL Alchemy vous permet de produire le SQL que vous voulez. Il faut que vous
|
||||
souhaitiez comprendre ce que va etre produit.
|
||||
|
||||
Déclaratif:
|
||||
|
||||
- On créé des classes qui representent nos tables, et les liaisons entre les
|
||||
tables, en utilisant `relationship` (qui à énormement d'attributs).
|
||||
- On définit quelles osnt les clés étrangères entre les tables.
|
||||
- Puis on va définir les attributs qui sont liés entre les tables
|
||||
(relationship).
|
||||
- Pour définir des relations entre les Tables, il est possible d'utiliser des
|
||||
chaines de caractère `relationship('OtherTable')`.
|
||||
|
||||
- La session es tun concept important.
|
||||
- Lire efficacement. Attention à ne pas faire énormement de requetes avec
|
||||
L'ORM.
|
||||
|
||||
**Performance SQL**
|
||||
|
||||
- Générer le SQL (python)
|
||||
- Ne pas faire énormement de petites requetes.
|
||||
|
||||
Il est possible de demander à la session de charger les données qui sont
|
||||
associées. (avec un joinedload). Par defaut, cela risque de charger
|
||||
l'ensemble des colonnes.
|
||||
|
||||
Pour la générer avec SQLAlchemy, il est possible de faire un
|
||||
`.query(Table).join(Table).join(Table2).filter_by(field=value)`
|
||||
|
||||
En pratique, le mieux est de lister clairemnet le nom des tables
|
||||
|
||||
2ème partie:
|
||||
|
||||
Pour de l'import de données,
|
||||
|
||||
- first() fait une requete SQL. A éviter dans les boucles
|
||||
- session.flush() c'est quand la session écrit en base tout ce qui est en cours
|
||||
dans la transaction. Par default, la session fait un flush avant chaque
|
||||
requete.
|
||||
- une option backçpopulates mets à jour la liste des documents associés à une
|
||||
table qui à une foreign key.
|
||||
backref modifie implicitement la classe associée. Il est recommandé
|
||||
d'utiliser `back_populates` et non pas `backref`.
|
||||
- `subqueryload` permet de générer une requete séparée plutôt qu'une jointure.
|
241
content/pyconfr2015/table-ronde-diversite.rst
Normal file
241
content/pyconfr2015/table-ronde-diversite.rst
Normal file
|
@ -0,0 +1,241 @@
|
|||
PyconFR 2015 — Table ronde diversité
|
||||
####################################
|
||||
|
||||
:date: 2015.10.17
|
||||
:category: pyconfr2015
|
||||
:unlisted: true
|
||||
|
||||
.. note::
|
||||
|
||||
Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||||
à les completer si besoin.
|
||||
|
||||
*Prise de notes: Gordon et Alexis*
|
||||
|
||||
**Présent·e·s: Jean Phillipe, Laurence (Directrice de l'école qui acueille la
|
||||
Pycon), Amandine, Vivianne, Anna (de django carrots) + representes de django
|
||||
girls bordeaux (Laurenne et Alexia).**
|
||||
|
||||
**JP — Pourquoi**:On a eu une discussion sur la ML de l'AFPy suite à une décision
|
||||
de l'afpy de ne pas financer un évènement qui n'était pas ouvert à tous-tes
|
||||
(restreint aux femmes et personnes trans). Cette décision à été prise
|
||||
conformément a la charte de l'AFPY qui dit que les evènements promus sont
|
||||
ouverts à tous. Ce qui veut dire que cela n'inclue pas les évènement exclusifs.
|
||||
(Je n'ai jamais demandé de financement à l'AFPY. J'ai juste demandé la
|
||||
diffusion sur la mailing interne de la création de Pyladies Paris. Je ne sais
|
||||
pas d'où vient cette histoire de financement! Pyladies Paris)
|
||||
|
||||
Suite à ça, une modification de la charte à été proposée. Demain matin, la
|
||||
modification de la charte sera proposée lors de l'AG. Suite à la proposition de
|
||||
modification, les discussions se sont enchainées, avec des points de vue
|
||||
divergents. Cette table ronde vient donc dans ce contexte.
|
||||
I
|
||||
BD d'introduction:
|
||||
http://www.commitstrip.com/fr/2015/09/17/meanwhile-in-a-parallel-universe-2/
|
||||
|
||||
Tour de présentation:
|
||||
=====================
|
||||
|
||||
- Laurence directrice de l'école qui accueille d'évènement, docteure en Maths.
|
||||
Contente de voir que la tendance s'inverse un peu (de plus en plus de filles).
|
||||
- Vivianne, maitre de conférence en informatique à paris sud. Études dans un
|
||||
milieu assez masculin. Dans le domaine du developpement pour la recherche, ou
|
||||
des environnements techniques, c'est très masculin. Essaye de voir comment
|
||||
faire pour que les filles s'intéressent plus a l'informatique.
|
||||
- Amandine Neyrolle, diplomée d'école de commerce (plutot 50% fille/garcon dans
|
||||
ces fillières). Intégrée le monde de l'informatique par la suite en autodidacte
|
||||
et formations. Rencontré la créatrice de pyladies et discuté de ces questions.
|
||||
- Laurenne Chelan, organistrice des django girls bdx. Nouvelle dans cet
|
||||
univers. Travaille dans des musées de science depuis quelques années. L'idée de
|
||||
dj girs bdx part de l'idée de découvrir le code. Les djangogirls viennent de
|
||||
berlin, créé par ???.
|
||||
- Alexia Sumois. organisatrice de django girls bdx. Nouvelle dans le milieu du
|
||||
code. Les conférences d'aujourd'hui on donné envie d'apprendre.
|
||||
- Anna, créatrice de 4ideas. Essaye de faire en sorte que plus de femmes
|
||||
viennent dans l'IT. En reconversion pro. Choisi ce domaine il ya un an. Trouve
|
||||
que ce sujet est vraiment extremement important, et sur lequel il est possible
|
||||
de faire quelque chose, et d'influencer positivement. L'idée étant de
|
||||
démystifier l'IT, et laisser le choix aux femmes de choisir cette profession.
|
||||
- Jean Phillipe Campguillhem, secrétaire de l'AFPY
|
||||
|
||||
Pourquoi Django Girls ?
|
||||
=======================
|
||||
|
||||
**Alexia** — Le déclencheur de cette aventure vient des goodies (!). La décoration
|
||||
de l'évènement a attiré l'attention et donné envie de creuser.
|
||||
|
||||
**Laurenne** — C’est pour ça qu’on se pose la question « comment attirer ces
|
||||
publics, ces personnes-là ? », importance de l’image qu’on renvoie. Ce n’est
|
||||
pas tant une question de genre, mais d’initié·e·s : on a souvent peur d’entrer
|
||||
dans ce milieu. Django-girls vise une plus grande bienveillancet Carte de la
|
||||
convivialité, chaleureux, et facile d'accès pour les débutants. Tout est livré
|
||||
clé en main, et l'évènement est facile à prendre en main. Le 28 oct à bordeau,
|
||||
recherche de coachs / sponsors pour l'évènement.
|
||||
http://djangogirls.com/bordeaux
|
||||
|
||||
**Laurence** — Aspect macho présent dans la communication de l’école (pas
|
||||
forcément explicite). « On a toujours dessiné des symboles de métiers
|
||||
identifiés par des garçons »
|
||||
|
||||
**Laurenceu** — Il y a une partie d'inconscient dans l'ensemble de
|
||||
l'enseignement qui est donné. Il y a peu de candidates qui essayent. Pas
|
||||
question de discrimination positive puisque cela a des effets indésirables
|
||||
(communautarisme). La question est tout de meme posée, mais il est impensable
|
||||
d'accepter des gens grace / a cause de leur genre. L'ambiance change lorsqu'il
|
||||
y a de la mixité. À la recherche d’idées pour faire venir plus de candidates.
|
||||
|
||||
**Viviane** — En tant que femme, on reçoit en permanence le message que ce
|
||||
métier n’est pas fait pour nous. Ces messages ont un impact, le résultat est
|
||||
que les filles ne vont pas dans les écoles d’informatiques. Il faut aller
|
||||
convaincre les jeunes filles que c’est aussi fait pour elles. Ça passe par
|
||||
changer les plaquettes. Il faut réussir à changer l'image existante des confs /
|
||||
communautés. Un développeur peut aussi etre une développeuse. Dans l'assemblée,
|
||||
on se rend compte que certaines femmes sont en dehors du parcours. Il faut
|
||||
qu'en tant que communauté on soit capables d'accueillir les nouvelles /
|
||||
nouveaux. C’est en ayant une diversité qu’on parviendra à changer l’image du
|
||||
métier. Les rencontres pyladies permettent aussi de rencontrer d'autres femmes
|
||||
qui ont les mêmes problématiques. Accompagner les nouvelles entrantes pour
|
||||
trouver du boulot, découvrir l'AFPY et les initatives existantes. Les
|
||||
initiatives existantes django girls / pyladies est très important.
|
||||
|
||||
**Amandine** — C’est pourquoi ce genre d’évènements non-mixtes permet de faire
|
||||
des séances de rattrapage pour permettre d’intégrer la communauté dans son
|
||||
ensemble. C’est le point clé pour faire accepter ce genre d’initiatives.
|
||||
|
||||
**Laurenne** — DjangoGirls et Django Carrots ne sont pas des évènements
|
||||
excluants. Ils sont simplement orientés en priorité aux femmes. Sur la question
|
||||
de « comment amener des jeunes filles vers ces études-là », ça se joue bien
|
||||
avant, dans l’enfance, bien avant l’école. cf les jeux genrés. Il faut
|
||||
travailler à ce niveau-là.
|
||||
|
||||
**Anna** — Pour illustrer ce que dit Laurenne, l'importance des clichés
|
||||
existants. Avant le mi-80s, il y avait autant de femmes que dans d'autres
|
||||
domaines. Si on regarde les stats, dans tousles autres domaines, le pourcentage
|
||||
de femmes augmente. Et en IT, en 84 il y a un pic qui inverse la tendance. Ce
|
||||
sont des stats américaines. A priori cela s'applique aussi en Europe. En IT, la
|
||||
culture qui à été créé autour des hackers qui ont des super pouvoirs, mangent
|
||||
des pizzas, etc. Ces clichés ont influencé le monde. Nous ne sommes pas
|
||||
complètement autonomes, et nous sommes influencés par la culture autour de
|
||||
nous. Les dommages qui ont été fait dans le domaine de l'IT sont graves, et il
|
||||
est important de renverser la tendance. La question de l'image est centrale.
|
||||
Les personnes ont besoin de place pour faire leurs évènements. Il est important
|
||||
de comprendre et respecter que les autres veuillent faire de la discrimination
|
||||
positive. Ce sont des actions qui sont supportées par la France. Ce sont des
|
||||
valeurs qui sont beaucoup lus fortes en France qu'ailleurs (Anna souligne
|
||||
qu'elle est Polonaise). On devrait respecter ce droit.
|
||||
|
||||
**Vivianne** — Certaines evènements sont non-mixtes (pour les personnes qui
|
||||
s'identifient comme des femmes). Ce ne doit pas etre les seules initiatives.
|
||||
Elle est pour la mixté. PyLadies est assez spécifique : ce n’est pas de la
|
||||
formation, mais principalement des évènements tournés autour du réseau. Il est
|
||||
important d'avoir un endroit ou les jeunes femmes seront moins imprésionnées.
|
||||
Les situations exposées dans la BD sont réelles. De se retrouver dans un
|
||||
environnement où elles sont sûres qu’elles ne subiront pas de micro-agressions.
|
||||
|
||||
**Laurence** — Témoignage d'une mère qui dit à sa fille, en passant devant un
|
||||
panneau de l'école, mentionnant maths et informatique, et qui dit à sa fille «
|
||||
oh non, c'est pas pour toi ça » . On dit « attention les garçons, vous devez
|
||||
être sympas avec les filles ». Les garçons ont envie que ça se passe bien avec
|
||||
les filles.
|
||||
|
||||
**JP** — Sans revenir sur les décisions qui ont été prises, nous n'avons pas
|
||||
dit que nous étions contre ces évènements (à l'AFPY). A plusieurs reprises,
|
||||
j'ai du faire des blagues sexistes. Évidemment qu'on est mieux ensemble. Pour
|
||||
revenir sur la discussion de la mailing-list, je me suis rendu compte que
|
||||
j'avais un regard biaisé. Si on en est la, c'est quil y a énormement de
|
||||
travail. Que faire, du coup ? En tant qu'hommes ? Qu'association ? Si il est
|
||||
necessaire de créer une zone de confort / sécurité, c'est qu'il y a une zone
|
||||
d'inconfort / insécurité qui est forte. Les couleurs, les jolis goodies, sont
|
||||
le sommet de l’iceberg. Rappel de l'éxistence du Code of Conduct : il y a déjà
|
||||
eu des incidents par le passé. On passe la parole à Florent, qui est à
|
||||
l’origine du CoC. Remerciement envers les intervenantes.
|
||||
|
||||
**Florent (vice secrétaire de l'AFPY)** — Comme le dit JP, un code of conduct
|
||||
est affiché devant toutes les portes et à l'entrée. Tout le monde n’aimait pas
|
||||
forcément l’idée d’en avoir, on a fini par trancher. Le but est d’avoir des
|
||||
endroits safes. Avant d’avoir un CoC, on ne peut pas dire qu’on soit safes,
|
||||
envers l'ensemble des minorités. On a écrit le CoC en conséquence des
|
||||
agressions. Aujourd’hui, pas de tolérance pour des comportements qui n’ont pas
|
||||
lieu d’être (qu’on a définis comme tels). Ça fonctionne sur la dénonciation
|
||||
lorsque l’on est témoin de ça. On n’a pas vraiment de mal à rencontrer des
|
||||
femmes, mais plus de mal à faire comprendre qu’elles sont bienvenues. Impact
|
||||
important de blagues sexistes, qu’on défend comme « c’est pour rire ». Merci de
|
||||
lire le Code of Conduct. Les blagues sexistes etc. ne sont pas les bienvenues.
|
||||
Merci de réagir lors de ces cas.
|
||||
|
||||
Questions.
|
||||
==========
|
||||
|
||||
**Questiond de Gawel**: Question pour Amandine. Est-ce que tu te sens bien à l'AFPY ? Si non, que faire pour que tu te sente mieux ?
|
||||
|
||||
Amandine — Oui je me sens bien, est-ce qu’il y a eu des évènements ? oui, sans
|
||||
doute mais j’y suis aguerrie, donc je me rends peu compte. Qu’est-ce qu’on peut
|
||||
faire ? L’idée du CoC est d’aller à l’encontre des comportements négatifs, mais
|
||||
l’idée derrière est une ouverture à la différence dans son ensemble, promouvoir
|
||||
l’ouverture à l’autre et à la différence. L’enjeu culturel est d’arriver à
|
||||
changer d’état d’esprit et d’identifier ces biais cognitifs. Il faudrait pas
|
||||
qu’on se dise « ho là là, il y a une fille, faut rien dire sinon je vais me
|
||||
faire taper » Il faut cultiver la différence. et être curieux/se.
|
||||
|
||||
**Question** : « c’est pas fait pour moi », mais plutôt « je suis mauvais, donc
|
||||
je dois travailler », on en revient à l’importance de l’éducation. Il faut
|
||||
continuer de pointer du doigt les problèmes. Je suis aussi membre d’un LUG,
|
||||
nous sommes entre hommes diplomés blancs de 30 à 40 ans. La réflexion sur les
|
||||
plaquettes pas accueillantes est pertinente : le site de l’asso est très
|
||||
masculin.
|
||||
|
||||
**Question de Bruno**. Pour l’école: quand j’étais étudiant, 20% de filles.
|
||||
(Aujourd’hui on est partis de 7/8% pour arriver à 15%). Est-ce que les filles
|
||||
réussissent plus ?
|
||||
|
||||
Laurence — on n’a pas de stats, mais elles posent moins de problèmes. Les
|
||||
filles sont favorisées par les employeurs.
|
||||
|
||||
Vivianne — la motivation des filles à la sortie est identique aux garçons, mais
|
||||
tout n’est pas rose. En entretien par exemple, ils sont faits par des hommes,
|
||||
mais au niveau des stats, le nombre de femmes qui quittent le milieu est
|
||||
important. Effort à faire au niveau de la communauté, des entreprises. Schémas
|
||||
masculins, mais sur le long terme, on subit des agressions. Difficile de rester
|
||||
dans le métier et faire une carrière intéressante, à compétences/motivation
|
||||
identiques aux hommes. Il faut en avoir conscience
|
||||
|
||||
**Question de Benoit**: il y a peut-être une façon de créer des
|
||||
lieux/évènements protégés, en utilisant ceux qui existent déjà. Est-ce qu’on
|
||||
peut aller organiser des évènements dans des écoles/lycées, des endroits où les
|
||||
gens se sentent déjà à l’aise, où les populations sont plus représentées ?
|
||||
|
||||
Vivianne — ça se fait. En tant qu’enseignante, dès que j’ai une occasion, que
|
||||
ce soit pour aller chercher des JF ou des étudiants maths/infos, même si c’est
|
||||
ouvert à tous, je le fais. Si c’est que des hommes, les femmes n’ont pas envie
|
||||
d’y aller.
|
||||
|
||||
Laurenne — c’est quelque chose qui se fait beaucoup. On met en avant des femmes
|
||||
chercheuses dès qu’on le peut.
|
||||
|
||||
**Question d'Alexis** : je suis très content qu’il y ait cette discussion qui
|
||||
se fasse. Question par rapport aux discriminations positives, qu’on a pu voir
|
||||
par le passé (notamment lors de conférences). Difficile de dire « on va
|
||||
préférer des femmes ». Question irrésolue, parce que pour faire évoluer, on a
|
||||
besoin d'initier quelque chose, d’essayer. Mais ça a un côté dérangeant.
|
||||
|
||||
Vivianne — à la PyCon (US), j’ai été impressionnée du nombre de femmes qui
|
||||
parlaient. On va pas mettre un quota, ça serait stupide, on va forcer personne.
|
||||
Mais il faut en avoir conscience. Cette année, on est 4 oratrices, y’a du
|
||||
travail à faire. En tant qu’hommes, il faut aussi se mettre en retrait et
|
||||
inviter des femmes à en parler à notre place. Faire le pas d'aller faire un
|
||||
exposé dans une communauté où on ne se sent pas à sa place (même si on lutte
|
||||
contre) est difficile. Inviter des gens, sans forcément passer par un énorme
|
||||
processus. Ça passe par des events comme PyLadies.
|
||||
|
||||
Anna — pour les personnes par encore convaincues, juste apres le droit de vote
|
||||
des femmes en 46, à l'assemblée nationale il y avait très peu de femmes. Puis
|
||||
en 93, 6.1% apres que des mesures aient été prises. Ensuite de femmes puis vers
|
||||
20% Les choses ne vont pas se changer toutes seules. Il est necessaire d'avoir
|
||||
du temps pour faire évoluer les choses. Il est important de noter que PyconFR
|
||||
fait déjà des choses. Et lors de django carrots, je me suis sentie très
|
||||
accueillie. J'ai eu beaucoup de très bonnes expériences avec des personnes qui
|
||||
étaient prêtes à aider.
|
||||
|
||||
JP — Remerciement pour Rémy qui abat un travail de ouf. C'est grace à Rémy si
|
||||
il y a django carrots demain. Il faut faire des choses. :-) Merci !
|
||||
|
63
content/pyconfr2015/we-dont-need-your-loops.rst
Normal file
63
content/pyconfr2015/we-dont-need-your-loops.rst
Normal file
|
@ -0,0 +1,63 @@
|
|||
PyconFR 2015 — We don't need your loop
|
||||
######################################
|
||||
|
||||
:date: 2015.10.18
|
||||
:category: pyconfr2015
|
||||
:unlisted: true
|
||||
|
||||
.. note::
|
||||
|
||||
Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||||
à les completer si besoin.
|
||||
|
||||
Speaker: serge_sans_paille.
|
||||
|
||||
Retour sur le passé des boucles: ASM, fortran, C. Avec APL, la boucle est
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait pas etre
|
||||
exprimer comment atteindre le resultat.
|
||||
|
||||
En python, par exemple, il vaut mieux utiliser `sum` plutôt que de faire
|
||||
l'addition nous même (pour faire une addition des elements d'une liste).
|
||||
|
||||
Actuellement, le compilateur python est lent si on utilise numpy.sum sur des
|
||||
matrices complexes.
|
||||
|
||||
Comment aller plus vite?
|
||||
========================
|
||||
|
||||
Cython est assez compliqué, il faut savoir ce que l'on fait pour optimiser et
|
||||
écrire du bon code Cython.
|
||||
|
||||
Avec pythran, l'intelligence est dans le compilateur, qui permet d'écrire
|
||||
notemment des boucles correctement.
|
||||
|
||||
En donnant plus d'informaitons au compilateur, plutôt que de faire des boucles,
|
||||
cela lui permet d'avoir un contexte qui lui permet d'optimiser le code.
|
||||
|
||||
Par contre, cela veut dire que plus de connaissances sont necessaire pour lire
|
||||
le code python.
|
||||
|
||||
pythran permet de compiler directement vers du C++ sans avoir à changer son
|
||||
code de base (python). C'est utile pour du code numpy notemment.
|
||||
|
||||
Questions
|
||||
=========
|
||||
|
||||
Possible de paralelliser de manière explicite **ou** implicite.
|
||||
|
||||
**C'est très utile pour les gens qui font du "number crunching". Est-ce que
|
||||
c'est utile pour d'autres domaines d'application (Web)?**
|
||||
|
||||
Pas vraiment. CPython est déjà bien fait pour ces cas d'utilisation.
|
||||
|
||||
**Est-il possible de lancer pythran sans faire de commentaires ?**
|
||||
|
||||
C'est possible mais cela ne servira pas à grand chose. Il est necessaire de
|
||||
connaitre le type des objets qui sont utilisés lors des boucles.
|
||||
|
||||
**Est-ce que vous songez à un compilateur à la volée ?**
|
||||
|
||||
De gros efforts ont été faits dernièrement pour diminuer le temps de
|
||||
compilation. Mais pour une fonction qui renvoie None prends de l'ordre d'une
|
||||
seconde ou une demi seconde. Ce n'est pas très utile pour un compilateur à la
|
||||
volée puisqu'il faudrait des gains de perfs supérieurs à cela.
|
|
@ -10,6 +10,7 @@ l'apprentissage, le partage et la souveraineté populaire.</p>
|
|||
</div>
|
||||
<div class="posts">
|
||||
{% for article in articles_page.object_list %}
|
||||
{% if not article.unlisted or article.category == category %}
|
||||
<div class="post">
|
||||
<h1 class="post-title" style="display: inline">
|
||||
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a>
|
||||
|
@ -17,6 +18,7 @@ l'apprentissage, le partage et la souveraineté populaire.</p>
|
|||
<span class="post-date" style="display: inline">{{ article.locale_date }}</span>
|
||||
<span class="headline" style="display: block">{{ article.headline }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% include 'pagination.html' %}
|
||||
|
|
Loading…
Reference in a new issue