mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 19:42:37 +02:00
676 lines
No EOL
45 KiB
XML
676 lines
No EOL
45 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - pyconfr2015</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/pyconfr2015.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2015-10-18T00:00:00+02:00</updated><entry><title>PyconFR 2015 — Assemblée générale</title><link href="https://blog.notmyidea.org/pyconfr-2015-assemblee-generale.html" rel="alternate"></link><published>2015-10-18T00:00:00+02:00</published><updated>2015-10-18T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-18:/pyconfr-2015-assemblee-generale.html</id><summary type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Mot de feth sur Nelle, qui était une présidente très présente. Merci !</p>
|
||
<div class="section" id="passe">
|
||
<h2>Passé</h2>
|
||
<p>Il existe des communautés locales à Lyon Grenoble, Nantes.
|
||
Des Afpyro ont été organisés dans toutes ces villes + Rennes …</p></div></summary><content type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Mot de feth sur Nelle, qui était une présidente très présente. Merci !</p>
|
||
<div class="section" id="passe">
|
||
<h2>Passé</h2>
|
||
<p>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.</p>
|
||
<p>FOSDEM 2015 était complet. Il y avait une salle python tojours pleine.
|
||
Dsicussions sur la diversité.</p>
|
||
</div>
|
||
<div class="section" id="futur">
|
||
<h2>Futur</h2>
|
||
<p>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.</p>
|
||
<div class="section" id="status">
|
||
<h3>Status</h3>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
<p>Il faut faire évoluer les status: ils ne sont pas actuellement bien faits par
|
||
rapport à notre utilisation.</p>
|
||
</div>
|
||
</div>
|
||
</content></entry><entry><title>PyconFR 2015 — Hospital - des tests en prod</title><link href="https://blog.notmyidea.org/pyconfr-2015-hospital-des-tests-en-prod.html" rel="alternate"></link><published>2015-10-18T00:00:00+02:00</published><updated>2015-10-18T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-18:/pyconfr-2015-hospital-des-tests-en-prod.html</id><summary type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: Benoit Bryon, Peopledoc.</p>
|
||
<p>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 …</p></summary><content type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: Benoit Bryon, Peopledoc.</p>
|
||
<p>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).</p>
|
||
<p>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.</p>
|
||
<p>Lors d'un déploiement, comment faire pour vérifier que tout tourne lorsque tout
|
||
est déployé ?</p>
|
||
<div class="section" id="comment-faire">
|
||
<h2>Comment faire ?</h2>
|
||
<ul class="simple">
|
||
<li>Les tests permettent de tester hors sol.</li>
|
||
<li>Le provisionning permet de valider que tout tourne correctement, mais</li>
|
||
<li>simplement au démarrage. Les pannes ne sont pas détectées.</li>
|
||
<li>Le logging va permettre de detecter les erreurs, mais trop tard.</li>
|
||
<li>Le monitoring permet d'avoir une vue de l'exterieur.</li>
|
||
</ul>
|
||
<p>Hostpital propose de faire des assertions sur la configuration,
|
||
l'environnement, <em>en cours de fonctionnement</em>. Ce sont les developeurs qui
|
||
ajoutent ces assertions.</p>
|
||
<p>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.</p>
|
||
</div>
|
||
<div class="section" id="hospital">
|
||
<h2>Hospital</h2>
|
||
<dl class="docutils">
|
||
<dt>::</dt>
|
||
<dd>pip install hospital</dd>
|
||
</dl>
|
||
<p>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:
|
||
<cite>assert_http_response</cite> ou <cite>assert_ping</cite>.</p>
|
||
<p>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).</p>
|
||
<p>Pour la supervision, les healthchecks sont lancés avec une ligne de commande
|
||
<cite>hospital-cli</cite>. Il est possible de lancer également ces tests avec nose ou
|
||
py.test.</p>
|
||
<p>Il est aussi possible de faire le monitoring avec une API HTTP <cite>hospital
|
||
serve</cite>.</p>
|
||
<div class="section" id="les-lacunes-de-hospital">
|
||
<h3>Les lacunes de hospital</h3>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="wrap-up">
|
||
<h2>Wrap up</h2>
|
||
<p>Validez votre configuration, la connectivité avec les services externes. Faites
|
||
des tests souvent !</p>
|
||
</div>
|
||
</content></entry><entry><title>PyconFR 2015 — We don't need your loop</title><link href="https://blog.notmyidea.org/pyconfr-2015-we-dont-need-your-loop.html" rel="alternate"></link><published>2015-10-18T00:00:00+02:00</published><updated>2015-10-18T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-18:/pyconfr-2015-we-dont-need-your-loop.html</id><summary type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: serge_sans_paille.</p>
|
||
<p>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 …</p></summary><content type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: serge_sans_paille.</p>
|
||
<p>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.</p>
|
||
<p>En python, par exemple, il vaut mieux utiliser <cite>sum</cite> plutôt que de faire
|
||
l'addition nous même (pour faire une addition des elements d'une liste).</p>
|
||
<p>Actuellement, le compilateur python est lent si on utilise numpy.sum sur des
|
||
matrices complexes.</p>
|
||
<div class="section" id="comment-aller-plus-vite">
|
||
<h2>Comment aller plus vite?</h2>
|
||
<p>Cython est assez compliqué, il faut savoir ce que l'on fait pour optimiser et
|
||
écrire du bon code Cython.</p>
|
||
<p>Avec pythran, l'intelligence est dans le compilateur, qui permet d'écrire
|
||
notemment des boucles correctement.</p>
|
||
<p>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.</p>
|
||
<p>Par contre, cela veut dire que plus de connaissances sont necessaire pour lire
|
||
le code python.</p>
|
||
<p>pythran permet de compiler directement vers du C++ sans avoir à changer son
|
||
code de base (python). C'est utile pour du code numpy notemment.</p>
|
||
</div>
|
||
<div class="section" id="questions">
|
||
<h2>Questions</h2>
|
||
<p>Possible de paralelliser de manière explicite <strong>ou</strong> implicite.</p>
|
||
<p><strong>C'est très utile pour les gens qui font du &quot;number crunching&quot;. Est-ce que
|
||
c'est utile pour d'autres domaines d'application (Web)?</strong></p>
|
||
<p>Pas vraiment. CPython est déjà bien fait pour ces cas d'utilisation.</p>
|
||
<p><strong>Est-il possible de lancer pythran sans faire de commentaires ?</strong></p>
|
||
<p>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.</p>
|
||
<p><strong>Est-ce que vous songez à un compilateur à la volée ?</strong></p>
|
||
<p>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.</p>
|
||
</div>
|
||
</content></entry><entry><title>PyconFR 2015 — Cliquet</title><link href="https://blog.notmyidea.org/pyconfr-2015-cliquet.html" rel="alternate"></link><published>2015-10-17T00:00:00+02:00</published><updated>2015-10-17T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-17:/pyconfr-2015-cliquet.html</id><summary type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: Mathieu Leplatre (&#64;leplatrem), Mozilla</p>
|
||
<p>Toolkit HTTP, pour éventuellement faire des microservices.</p>
|
||
<ol class="arabic simple">
|
||
<li>Origines</li>
|
||
<li>Protocole</li>
|
||
<li>Toolkit</li>
|
||
<li>Conversation</li>
|
||
</ol>
|
||
<div class="section" id="origines">
|
||
<h2>Origines</h2>
|
||
<p>Stockage de données, Cloud Services, Mozilla.
|
||
Le boulot, c'est de faire des APIs. On nous …</p></div></summary><content type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: Mathieu Leplatre (&#64;leplatrem), Mozilla</p>
|
||
<p>Toolkit HTTP, pour éventuellement faire des microservices.</p>
|
||
<ol class="arabic simple">
|
||
<li>Origines</li>
|
||
<li>Protocole</li>
|
||
<li>Toolkit</li>
|
||
<li>Conversation</li>
|
||
</ol>
|
||
<div class="section" id="origines">
|
||
<h2>Origines</h2>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
<p>La réutilisation de certaines protocoles existants était possible (Sync, en
|
||
production depuis quelques années).</p>
|
||
<p>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.</p>
|
||
</div>
|
||
<div class="section" id="protocole">
|
||
<h2>Protocole</h2>
|
||
<ul class="simple">
|
||
<li>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éé.</li>
|
||
<li>Les ops ont besoin de quelques endpoints: un heartbeat (monitoring) des
|
||
endpoints de batch, un endpoint &quot;hello&quot;, pour connaitre le type de service,
|
||
ses URLs etc.</li>
|
||
<li>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 &quot;backoff&quot; qui permet de demander aux clients d'arreter de faire des
|
||
requetes durant une durée spécifée par le serveur.</li>
|
||
<li>Pour les resources &quot;REST&quot;, 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.</li>
|
||
<li>Comment la validation fonctionne ? La pagination ? La définition des
|
||
permissions ? Les erreurs.</li>
|
||
</ul>
|
||
<p>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.</p>
|
||
</div>
|
||
<div class="section" id="toolkit">
|
||
<h2>Toolkit</h2>
|
||
<p>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.</p>
|
||
<p>Cliquet propose de faire l'ensemble du boilerplate, la lecture du protocole, et
|
||
vous permet de créer les backends souhaités.</p>
|
||
<p>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.</p>
|
||
<p>le toolkit vise à faire quelque chose de pluggable. Tout est controllable
|
||
depuis la configuration.</p>
|
||
<p>Pour le deploiement, cela veut dire que le monitoring est déjà connecté, et il
|
||
est possible de changer la configuration depuis un fichier <cite>.ini</cite>.</p>
|
||
<p>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.</p>
|
||
</div>
|
||
<div class="section" id="microservices">
|
||
<h2>Microservices ?</h2>
|
||
<ul class="simple">
|
||
<li>Cliquet apporte une manière standard de surveiller, deployer, configurer des
|
||
services.</li>
|
||
<li>Il est possible de se focaliser sur la logique de l'application, en faisait
|
||
une abstraction des backends, etc.</li>
|
||
<li>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.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="cliquet-est-utilise-pour">
|
||
<h2>Cliquet est utilisé pour</h2>
|
||
<ul class="simple">
|
||
<li>Kinto, un service générique de stpclage de données.</li>
|
||
<li>Syncto, un proxy pour Sync en utilisant le protocole.</li>
|
||
<li>La liste de lecture, service qui à été shutdown.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="questions">
|
||
<h2>Questions</h2>
|
||
<ul class="simple">
|
||
<li><strong>Qu'est-ce qui est pluggable ?</strong> Les choix qui sont fait dans cliquet
|
||
concernent le protocole. Le toolkit est lui fait de manière &quot;pluggable&quot;. Il
|
||
est par exemple possible de changer le backend, l'authentification, le cache
|
||
ou les permissions.</li>
|
||
<li><strong>Quelles sont les parties non standard? Est-il prévu de representer ça via
|
||
une RFC ?</strong> 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.</li>
|
||
<li><strong>Existe-il un client JavaScript, comme pour Kinto ?</strong> Actuellement, non. Par
|
||
contre, Kinto.js est prévu pour que la partie commune entre les APIs (le
|
||
protocole) peut etre extrait.</li>
|
||
</ul>
|
||
</div>
|
||
</content></entry><entry><title>PyconFR 2015 — Geoalchemy</title><link href="https://blog.notmyidea.org/pyconfr-2015-geoalchemy.html" rel="alternate"></link><published>2015-10-17T00:00:00+02:00</published><updated>2015-10-17T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-17:/pyconfr-2015-geoalchemy.html</id><summary type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: Eric Lemoine, Camp to camp. (&#64;elemoine)</p>
|
||
<p>Bibliothèque python basée sur SQL alchemy, pour interagir avec des bases de
|
||
données geographiques / spatiales.</p>
|
||
<p>Une base de donnée optimisée pour representer et rechercher des …</p></summary><content type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: Eric Lemoine, Camp to camp. (&#64;elemoine)</p>
|
||
<p>Bibliothèque python basée sur SQL alchemy, pour interagir avec des bases de
|
||
données geographiques / spatiales.</p>
|
||
<p>Une base de donnée optimisée pour representer et rechercher des données qui
|
||
representent des objets dans un espace géométrique.</p>
|
||
<ul class="simple">
|
||
<li>Il est possible d estocker des ligne,s de polygones, des points. Il y a une
|
||
colonne géometrie pour stocker ces données.</li>
|
||
<li>Il y a aussi des fonctions qui permettent de travailler sur ces données
|
||
(transfomrations, projections, etc).</li>
|
||
<li>Indexs géographiques qui permettent de faire des recherches de manière
|
||
performante.</li>
|
||
</ul>
|
||
<div class="section" id="postgis">
|
||
<h2>POSTGIS</h2>
|
||
<p>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
|
||
&quot;boites englobantes&quot;.</p>
|
||
<p>Pour créer une base de données postgis, il faut faire un &quot;create extension
|
||
postgis&quot;, ce qui installe tout ce dont on a besoin.</p>
|
||
<p>il est possible d'apeller <cite>GEOMETRY(POINT)</cite> par exemple.</p>
|
||
<p><cite>ST_GeomFromText('POINT(lat long)')</cite> permet de convertir un point dans un objet
|
||
geometrie interne à postgres.</p>
|
||
<p><cite>ST_DWithin</cite> permet de trouver les personnes qui sont autour d'un rayon donné.</p>
|
||
<p>L'ensemble des fonctions proposées par postgres commencent par <cite>ST_*</cite></p>
|
||
</div>
|
||
<div class="section" id="sqlalchemy">
|
||
<h2>SQLAlchemy</h2>
|
||
<p>Il s'agit d'une bote à outil qui permet de faire des requetes de manière
|
||
simple. Il y a une philosophie forte.</p>
|
||
<ul class="simple">
|
||
<li>Il ne sohaite pas cacher la base de données</li>
|
||
<li>C'est un language pour faire du SQL en python</li>
|
||
<li>Rien n'est caché.</li>
|
||
<li>Fourni un vocabulaire riche pour générer le SQL</li>
|
||
<li>L'objectif est de changer la manière dont on pense à SQL, redonner le gout du
|
||
SQL aux developeurs.</li>
|
||
</ul>
|
||
<p>Deux parties:
|
||
- ORM
|
||
- CORE</p>
|
||
<p>Il est possible d'utiliser simplement le core si l'on sohaite (sans utiliser
|
||
l'ORM)</p>
|
||
<div class="section" id="core">
|
||
<h3>Core</h3>
|
||
<p>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
|
||
<cite>select().where()</cite> etc.</p>
|
||
<p>Le &quot;core&quot; ne fait pas de mapping du tout, il manipule des Tables SQLA
|
||
directement.</p>
|
||
</div>
|
||
<div class="section" id="orm">
|
||
<h3>ORM</h3>
|
||
<p>L'ORM fait, lui, du mapping. C'est cette couche que l'on va utiliser dans une
|
||
application Web complexe par exemple.</p>
|
||
<ul class="simple">
|
||
<li>il est possible de travailler avec une session <cite>Session()</cite> puis on effectue
|
||
des opérations et on <cite>commit()</cite>.</li>
|
||
</ul>
|
||
<div class="section" id="geoalchemy">
|
||
<h4>GeoAlchemy</h4>
|
||
<ul class="simple">
|
||
<li>Créé en 2009, pour supporter uniquement postgis.</li>
|
||
<li>Depuis, d'autres bases de données (MySQL, Spatialite, MySQL server) etc.</li>
|
||
<li>Réécriture depuis grace à la nouvelle API de SQLAlechemy, mais perte du
|
||
support d'autres backends.</li>
|
||
<li>Finalement, retour sur POSTGIS uniquement, pour évite d'avoir à supporter les
|
||
différences de tous les backends.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="features">
|
||
<h2>Features</h2>
|
||
<p>Très simple de s'intégrer avec les features de POSTGIS, par exemple en
|
||
déclarant une colonne en tant que &quot;Géometrie&quot;.</p>
|
||
<p>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.</p>
|
||
<p>S'intègre bien avec des services existants (shapely, pyramid, etc).</p>
|
||
<p>Utilisation de geojsondumps pour representer des features en geojson.</p>
|
||
</div>
|
||
<div class="section" id="status">
|
||
<h2>Status</h2>
|
||
<p>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.</p>
|
||
<dl class="docutils">
|
||
<dt>3 ou 4 developeurs actifs sur le projet, ça fonctionne plutôt bien. Pour</dt>
|
||
<dd><p class="first">contribuer, il est possible de faire cela sur github.</p>
|
||
<p class="last">Slides de la presentation sur <a class="reference external" href="http://erliem.net/talks/pyconfr2015">http://erliem.net/talks/pyconfr2015</a></p>
|
||
</dd>
|
||
</dl>
|
||
<p>Resources:</p>
|
||
<ul class="simple">
|
||
<li><a class="reference external" href="https://pypi.python.org/pypi/Shapely">https://pypi.python.org/pypi/Shapely</a> - Manipulation and analysis of geometric
|
||
objects in the Cartesian plane.</li>
|
||
</ul>
|
||
<p>Question:</p>
|
||
<ul class="simple">
|
||
<li>Dans les exemples geoalchemy, les données geométriques sont passées sous
|
||
forme de chaine. Est-ce normal ? Oui.</li>
|
||
<li>Les rasters sont également supportés.</li>
|
||
</ul>
|
||
</div>
|
||
</content></entry><entry><title>PyconFR 2015 — SQL Alchemy</title><link href="https://blog.notmyidea.org/pyconfr-2015-sql-alchemy.html" rel="alternate"></link><published>2015-10-17T00:00:00+02:00</published><updated>2015-10-17T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-17:/pyconfr-2015-sql-alchemy.html</id><summary type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: David Allouche</p>
|
||
<p>SQL Alchemy vous permet de produire le SQL que vous voulez. Il faut que vous
|
||
souhaitiez comprendre ce que va etre produit.</p>
|
||
<p>Déclaratif:</p>
|
||
<ul class="simple">
|
||
<li>On créé des classes qui representent …</li></ul></summary><content type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p>Speaker: David Allouche</p>
|
||
<p>SQL Alchemy vous permet de produire le SQL que vous voulez. Il faut que vous
|
||
souhaitiez comprendre ce que va etre produit.</p>
|
||
<p>Déclaratif:</p>
|
||
<ul class="simple">
|
||
<li>On créé des classes qui representent nos tables, et les liaisons entre les
|
||
tables, en utilisant <cite>relationship</cite> (qui à énormement d'attributs).</li>
|
||
<li>On définit quelles osnt les clés étrangères entre les tables.</li>
|
||
<li>Puis on va définir les attributs qui sont liés entre les tables
|
||
(relationship).</li>
|
||
<li>Pour définir des relations entre les Tables, il est possible d'utiliser des
|
||
chaines de caractère <cite>relationship('OtherTable')</cite>.</li>
|
||
<li>La session es tun concept important.</li>
|
||
<li>Lire efficacement. Attention à ne pas faire énormement de requetes avec
|
||
L'ORM.</li>
|
||
</ul>
|
||
<p><strong>Performance SQL</strong></p>
|
||
<ul class="simple">
|
||
<li>Générer le SQL (python)</li>
|
||
<li>Ne pas faire énormement de petites requetes.</li>
|
||
</ul>
|
||
<p>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.</p>
|
||
<p>Pour la générer avec SQLAlchemy, il est possible de faire un
|
||
<cite>.query(Table).join(Table).join(Table2).filter_by(field=value)</cite></p>
|
||
<p>En pratique, le mieux est de lister clairemnet le nom des tables</p>
|
||
<p>2ème partie:</p>
|
||
<p>Pour de l'import de données,</p>
|
||
<ul class="simple">
|
||
<li>first() fait une requete SQL. A éviter dans les boucles</li>
|
||
<li>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.</li>
|
||
<li>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 <cite>back_populates</cite> et non pas <cite>backref</cite>.</li>
|
||
<li><cite>subqueryload</cite> permet de générer une requete séparée plutôt qu'une jointure.</li>
|
||
</ul>
|
||
</content></entry><entry><title>PyconFR 2015 — Table ronde diversité</title><link href="https://blog.notmyidea.org/pyconfr-2015-table-ronde-diversite.html" rel="alternate"></link><published>2015-10-17T00:00:00+02:00</published><updated>2015-10-17T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-17:/pyconfr-2015-table-ronde-diversite.html</id><summary type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p><em>Prise de notes: Gordon et Alexis</em></p>
|
||
<p><strong>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 …</strong></p></summary><content type="html"><div class="admonition note">
|
||
<p class="first admonition-title">Note</p>
|
||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
|
||
à les completer si besoin.</p>
|
||
</div>
|
||
<p><em>Prise de notes: Gordon et Alexis</em></p>
|
||
<p><strong>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).</strong></p>
|
||
<p><strong>JP — Pourquoi</strong>: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)</p>
|
||
<p>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:
|
||
<a class="reference external" href="http://www.commitstrip.com/fr/2015/09/17/meanwhile-in-a-parallel-universe-2/">http://www.commitstrip.com/fr/2015/09/17/meanwhile-in-a-parallel-universe-2/</a></p>
|
||
<div class="section" id="tour-de-presentation">
|
||
<h2>Tour de présentation:</h2>
|
||
<ul class="simple">
|
||
<li>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).</li>
|
||
<li>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.</li>
|
||
<li>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.</li>
|
||
<li>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 ???.</li>
|
||
<li>Alexia Sumois. organisatrice de django girls bdx. Nouvelle dans le milieu du
|
||
code. Les conférences d'aujourd'hui on donné envie d'apprendre.</li>
|
||
<li>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.</li>
|
||
<li>Jean Phillipe Campguillhem, secrétaire de l'AFPY</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="pourquoi-django-girls">
|
||
<h2>Pourquoi Django Girls ?</h2>
|
||
<p><strong>Alexia</strong> — 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.</p>
|
||
<p><strong>Laurenne</strong> — 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.
|
||
<a class="reference external" href="http://djangogirls.com/bordeaux">http://djangogirls.com/bordeaux</a></p>
|
||
<p><strong>Laurence</strong> — 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 »</p>
|
||
<p><strong>Laurenceu</strong> — 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.</p>
|
||
<p><strong>Viviane</strong> — 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.</p>
|
||
<p><strong>Amandine</strong> — 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.</p>
|
||
<p><strong>Laurenne</strong> — 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à.</p>
|
||
<p><strong>Anna</strong> — 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.</p>
|
||
<p><strong>Vivianne</strong> — 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.</p>
|
||
<p><strong>Laurence</strong> — 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.</p>
|
||
<p><strong>JP</strong> — 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.</p>
|
||
<p><strong>Florent (vice secrétaire de l'AFPY)</strong> — 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.</p>
|
||
</div>
|
||
<div class="section" id="questions">
|
||
<h2>Questions.</h2>
|
||
<p><strong>Questiond de Gawel</strong>: Question pour Amandine. Est-ce que tu te sens bien à l'AFPY ? Si non, que faire pour que tu te sente mieux ?</p>
|
||
<p>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.</p>
|
||
<p><strong>Question</strong> : « 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.</p>
|
||
<p><strong>Question de Bruno</strong>. 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 ?</p>
|
||
<p>Laurence — on n’a pas de stats, mais elles posent moins de problèmes. Les
|
||
filles sont favorisées par les employeurs.</p>
|
||
<p>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</p>
|
||
<p><strong>Question de Benoit</strong>: 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 ?</p>
|
||
<p>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.</p>
|
||
<p>Laurenne — c’est quelque chose qui se fait beaucoup. On met en avant des femmes
|
||
chercheuses dès qu’on le peut.</p>
|
||
<p><strong>Question d'Alexis</strong> : 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.</p>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
<p>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 !</p>
|
||
</div>
|
||
</content></entry></feed> |