diff --git a/content/crypto/2015.05.passphrases.rst b/content/crypto/2015.05.passphrases.rst index 5542eb0..93cdb1f 100644 --- a/content/crypto/2015.05.passphrases.rst +++ b/content/crypto/2015.05.passphrases.rst @@ -46,6 +46,7 @@ Une des techniques consiste à utiliser des mots du dictionnaire, sélectionnés manière aléatoire, puis modifiés. .. figure:: https://imgs.xkcd.com/comics/password_strength.png + :alt: XKCD sur la force des mots de passe. Micah Lee `travaille également sur un outil `_ qui vise à rendre la mémorisation diff --git a/content/crypto/2015.05.pgp-problemes.rst b/content/crypto/2015.05.pgp-problemes.rst index 524eec5..a50ced7 100644 --- a/content/crypto/2015.05.pgp-problemes.rst +++ b/content/crypto/2015.05.pgp-problemes.rst @@ -9,7 +9,7 @@ Les problèmes de PGP Flip a bit in the communication between sender and recipient and they will experience decryption or verification errors. How high are the chances they will start to exchange the data in the clear rather than trying to hunt down - the man in the middle? + the man in the middle? -- http://secushare.org/PGP @@ -70,6 +70,3 @@ chiffrement d'échanges de messages et de VPN simples à utiliser, encore quelqu chose à regarder. Enfin bref, y'a du taf. - -.. image:: {filename}/static/porte.jpg - :alt: Un peu d'ombre. diff --git a/content/crypto/2016.01.atelier-crypto-1.rst b/content/crypto/2016.01.atelier-crypto-1.rst index 00e7bc7..907bfb2 100644 --- a/content/crypto/2016.01.atelier-crypto-1.rst +++ b/content/crypto/2016.01.atelier-crypto-1.rst @@ -130,7 +130,7 @@ exemple). J'ai choisi volontairement de ne pas aborder le chiffrement des messages via PGP parce que `je pense que la protection que ce média propose n'est pas -suffisante <{filename}/crypto/pgp-problemes.rst>`_, mais je suis en train de +suffisante <{filename}2015.05.pgp-problemes.rst>`_, mais je suis en train de revenir sur ma décision: il pourrait être utile de présenter l'outil, à minima, en insistant sur certaines de ses faiblesses. @@ -142,5 +142,5 @@ formation sur le sujet, j'ai donc décidé de publier les nôtres, afin de co-construire avec d'autres des plans de formation. Ils sont pour l'instant disponibles `sur Read The Docs -`_. Tous les retours +`_. Tous les retours sont évidemment les bienvenus ! diff --git a/content/diy/2012.10.brassage.rst b/content/diy/2012.10.brassage.rst index 7962e3a..806b100 100644 --- a/content/diy/2012.10.brassage.rst +++ b/content/diy/2012.10.brassage.rst @@ -39,6 +39,7 @@ exactement 6kg de malt pâle *7EDC* et 500g de malt cara *50EDC*). .. image:: images/concassage.jpg :width: 400px + :alt: Image de concassage. Attention, pas trop fin dis donc ! On ne veut pas de la poudre, on veut simplement permettre à l'amidon de se dissoudre dans l'eau. Si on concasse le @@ -55,6 +56,7 @@ envisager de faire ça tout seul si vous êtes un tennisman). .. image:: images/concasse.jpg :width: 700px + :alt: C'est dur ! La seconde étape, **l'empatage**. Il s'agit de faire chauffer notre orge maltée à différentes températures. Les fois précédentes, on avait utilisé plusieurs @@ -69,6 +71,7 @@ On se rends compte de la taille de la marmite un peu là: .. image:: images/marmite.jpg :width: 400px + :alt: Une grosse marmite Une fois l'eau à température (54°C), il faut ajouter le malt et le laisser durant 30mn à cette température, puis augmenter jusqu'à 65°C durant 1h. @@ -82,6 +85,8 @@ température (20°C à peu près) en étant utilisée. On a filtré deux fois po .. image:: images/filtrage.jpg :width: 700px + :alt: Filtrage filtrage... + L'étape d'après (la quatrième, vous suivez), c'est **le houblonnage**. On va faire infuser notre "solution aqueuse" (wouah, on dirait de la chimie !) @@ -94,14 +99,16 @@ a utilisé un serpentin confectionné main. .. image:: images/refroidisseur.jpg :width: 400px + :alt: Notre refroidisseur fait main par Fred. -Ça nous a permis de passer de 100°C à 54°C en… 35 minutes quand même ! (Nous avions essayé les fois précédentes -de gérer ça à coup de baignoire et de glaçons, les temps n'étaient absolument +Ça nous a permis de passer de 100°C à 54°C en… 35 minutes quand même ! (Nous avions essayé les fois précédentes +de gérer ça à coup de baignoire et de glaçons, les temps n'étaient absolument pas au rendez-vous). .. image:: images/refroidissement.jpg :width: 700px + :alt: Décidement pas. Je disais dernière étape, mais il ne faut pas oublier de rajouter les levures, qui elles vont faire tout le travail et transformer tout ça en… alcool diff --git a/content/pyconfr2015/assemblee-generale.rst b/content/pyconfr2015/assemblee-generale.rst deleted file mode 100644 index a270642..0000000 --- a/content/pyconfr2015/assemblee-generale.rst +++ /dev/null @@ -1,48 +0,0 @@ -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. diff --git a/content/pyconfr2015/cliquet.rst b/content/pyconfr2015/cliquet.rst deleted file mode 100644 index f60967c..0000000 --- a/content/pyconfr2015/cliquet.rst +++ /dev/null @@ -1,122 +0,0 @@ -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. diff --git a/content/pyconfr2015/geoalchemy.rst b/content/pyconfr2015/geoalchemy.rst deleted file mode 100644 index 818035f..0000000 --- a/content/pyconfr2015/geoalchemy.rst +++ /dev/null @@ -1,132 +0,0 @@ -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. diff --git a/content/pyconfr2015/hospital.rst b/content/pyconfr2015/hospital.rst deleted file mode 100644 index ace7ba0..0000000 --- a/content/pyconfr2015/hospital.rst +++ /dev/null @@ -1,81 +0,0 @@ -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 ! diff --git a/content/pyconfr2015/pyconfr-2015.rst b/content/pyconfr2015/pyconfr-2015.rst deleted file mode 100644 index 37a15da..0000000 --- a/content/pyconfr2015/pyconfr-2015.rst +++ /dev/null @@ -1,34 +0,0 @@ -Rencontres python francophones, 2015 -#################################### - -:date: 2015.11.02 -:headline: Retours sur les rencontres python francophones de 2015. - -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 -`_). - -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 -`_. diff --git a/content/pyconfr2015/sqlalchemy.rst b/content/pyconfr2015/sqlalchemy.rst deleted file mode 100644 index 0592bf1..0000000 --- a/content/pyconfr2015/sqlalchemy.rst +++ /dev/null @@ -1,58 +0,0 @@ -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. diff --git a/content/pyconfr2015/table-ronde-diversite.rst b/content/pyconfr2015/table-ronde-diversite.rst deleted file mode 100644 index b9fb82e..0000000 --- a/content/pyconfr2015/table-ronde-diversite.rst +++ /dev/null @@ -1,241 +0,0 @@ -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 ! - diff --git a/content/pyconfr2015/we-dont-need-your-loops.rst b/content/pyconfr2015/we-dont-need-your-loops.rst deleted file mode 100644 index b54f96f..0000000 --- a/content/pyconfr2015/we-dont-need-your-loops.rst +++ /dev/null @@ -1,63 +0,0 @@ -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. diff --git a/content/tech/2011.08.languages-influences.rst b/content/tech/2011.08.languages-influences.rst index a2b0362..767aa1b 100644 --- a/content/tech/2011.08.languages-influences.rst +++ b/content/tech/2011.08.languages-influences.rst @@ -4,7 +4,7 @@ Using dbpedia to get languages influences :date: 2011/08/16 :tags: dbpedia, sparql, python -While browsing the Python's wikipedia page, I found information about the languages +While browsing the Python's wikipedia page, I found information about the languages influenced by python, and the languages that influenced python itself. Well, that's kind of interesting to know which languages influenced others, @@ -33,7 +33,7 @@ Anyway, we can use a simple rule: All wikipedia pages of programming languages are either named after the name of the language itself, or suffixed with "( programming language)", which is the case for python. -So I've built `a tiny script to extract the information from dbpedia `_ and transform them into a shiny graph using graphviz. +So I've built `a tiny script to extract the information from dbpedia `_ and transform them into a shiny graph using graphviz. After a nice:: @@ -44,8 +44,9 @@ The result is the following graph (`see it directly here .. image:: http://files.lolnet.org/alexis/influences.png :width: 800px + :alt: Graph des influances des langages les uns sur les autres. -While reading this diagram, keep in mind that it is a) not listing all the +While reading this diagram, keep in mind that it is a) not listing all the languages and b) keeping a python perspective. This means that you can trust the scheme by following the arrows from python to @@ -53,7 +54,7 @@ something and from something to python, it is not trying to get the matching between all the languages at the same time to keep stuff readable. It would certainly be possible to have all the connections between all -languages (and the resulting script would be easier) to do so, but the resulting +languages (and the resulting script would be easier) to do so, but the resulting graph would probably be way less readable. You can find the script `on my github account diff --git a/content/tech/2011.10.ihatemoney.rst b/content/tech/2011.10.ihatemoney.rst index c872be7..c97c153 100644 --- a/content/tech/2011.10.ihatemoney.rst +++ b/content/tech/2011.10.ihatemoney.rst @@ -23,17 +23,18 @@ software to have a concept of projects and persons (the list of persons was hard-coded in the first time, boooh!). I then discussed with a friend of mine, who was excited about it and wanted to learn -python. Great! That's a really nice way to get started. Some more friends were also +python. Great! That's a really nice way to get started. Some more friends were also interested in it and contributed some features and provided feedback (thanks `Arnaud `_ and Quentin!) Since that, the project now support multiple languages and provides a REST API -(android and iphone apps in the tubes!), into other things. -There is no need to register for an account or whatnot, just enter a project name, +(android and iphone apps in the tubes!), into other things. +There is no need to register for an account or whatnot, just enter a project name, a secret code and a contact email, invite friends and that's it (this was inspired by doodle)! .. image:: images/ihatemoney.png + :alt: Capture d'écran du site. You can try the project at http://ihatemoney.notmyidea.org for now, and the code lives at https://github.com/spiral-project/ihatemoney/. @@ -45,7 +46,7 @@ In the wild, currently, there already are some implementations of this shared budget manager thing. The fact is that most of them are either hard to use, with a too much fancy design or simply trying to do too much things at once. -No, I don't want my budget manager to make my shopping list, or to run a blog for +No, I don't want my budget manager to make my shopping list, or to run a blog for me, thanks. I want it to let me focus on something else. Keep out of my way. No user registration @@ -59,9 +60,9 @@ them for you). Keeping things simple --------------------- -"Keep It Simple, Stupid" really matches our philosophy here: you want to add a -bill? Okay. Just do it. You just have to enter who paid, for who, how much, -and a description, like you would have done when you're back from the +"Keep It Simple, Stupid" really matches our philosophy here: you want to add a +bill? Okay. Just do it. You just have to enter who paid, for who, how much, +and a description, like you would have done when you're back from the farmer's market on raw paper. No categories @@ -69,7 +70,7 @@ No categories Some people like to organise their stuff into different "categories": leisure, work, eating, etc. That's not something I want (at least to begin -with). +with). I want things to be simple. Got that? Great. Just add your bills! diff --git a/content/tech/2012.10.cheese-and-code-result.rst b/content/tech/2012.10.cheese-and-code-result.rst index 347697c..360ca1d 100644 --- a/content/tech/2012.10.cheese-and-code-result.rst +++ b/content/tech/2012.10.cheese-and-code-result.rst @@ -27,6 +27,7 @@ we're using **CouchDB** as a backend. .. image:: images/daybed.jpg :width: 400px + :alt: Daybed is a big couch! We mainly hacked on daybed and are pretty close to the release of the first version, meaning that we have something working. diff --git a/content/tech/2012.12.status.rst b/content/tech/2012.12.status.rst index e1c53a9..cebb383 100644 --- a/content/tech/2012.12.status.rst +++ b/content/tech/2012.12.status.rst @@ -17,7 +17,8 @@ Heureusement, c'est open-source, et ça a été forké pour donner naissance à `whiskerboard `_ (la planche moustachue, pour les non anglophones). -.. image:: |filename|/images/status_board.png +.. image:: images/status_board.png + :alt: Capture d'écran du site. Vérifier le statut des services =============================== diff --git a/content/tech/2013.02.cornice-cors.rst b/content/tech/2013.02.cornice-cors.rst index 5c1599d..93c37f4 100644 --- a/content/tech/2013.02.cornice-cors.rst +++ b/content/tech/2013.02.cornice-cors.rst @@ -4,7 +4,7 @@ Implementing CORS in Cornice :date: 04-02-2013 :slug: cross-origin-in-cornice -.. note:: +.. note:: I'm cross-posting `on the mozilla services weblog `_. Since this is the @@ -38,7 +38,7 @@ the time) asks the permission to the resource, with an `OPTIONS` call. The server answers, and tell what is available and what isn't: -.. image:: |filename|/images/cors_flow.png +.. image:: images/cors_flow.png :alt: The CORS flow (from the HTML5 CORS tutorial) - 1a. The User-Agent, rather than doing the call directly, asks the server, the @@ -67,8 +67,8 @@ have the following flow:: > OPTIONS /icecream > Access-Control-Request-Methods = PUT - > Origin: notmyidea.org - < Access-Control-Allow-Origin = notmyidea.org + > Origin: notmyidea.org + < Access-Control-Allow-Origin = notmyidea.org < Access-Control-Allow-Methods = PUT,GET,DELETE 200 OK @@ -93,7 +93,7 @@ build a feed reader and access the feeds on different domains, you can be pretty much sure that the servers will not implement CORS, so you'll need to write a proxy yourself, to provide this. -Secondly, if misunderstood, CORS can be insecure, and cause +Secondly, if misunderstood, CORS can be insecure, and cause problems. Because the rules apply when a client wants to do a request to a server, you need to be extra careful about who you're authorizing. @@ -148,7 +148,7 @@ To add CORS support to this resource, you can go this way, with the `cors_origins` parameter: .. code-block:: python - + foobar = Service(name='foobar', path='/foobar', cors_origins=('*',)) Ta-da! You have enabled CORS for your service. **Be aware that you're @@ -231,9 +231,9 @@ While this approach works, it's not implementing the specification completely. You need to add support for all the resources at once. We can think about a nice way to implement this specifying a definition of what's -supposed to be exposed via CORS and what shouldn't directly in your settings. -In my opinion, CORS support should be handled at the service definition level, -except for the list of authorized hosts. +supposed to be exposed via CORS and what shouldn't directly in your settings. +In my opinion, CORS support should be handled at the service definition level, +except for the list of authorized hosts. Otherwise, you don't know exactly what's going on when you look at the definition of the service. Resources diff --git a/content/thoughts/2014.07.quel-metier-quelle-utilite.rst b/content/thoughts/2014.07.quel-metier-quelle-utilite.rst index 0eea26a..d5a46e9 100644 --- a/content/thoughts/2014.07.quel-metier-quelle-utilite.rst +++ b/content/thoughts/2014.07.quel-metier-quelle-utilite.rst @@ -114,4 +114,4 @@ Allez, au boulot ! PS: je me rends compte après relecture que ce billet fait echo à un billet que j'ai écris juste alors que je terminais mes études, `sur le sens du travail et -de l'informatique <{filename}logiciel.rst>`_, ça fait du bien :) +de l'informatique <{filename}2011.05.travailler-moins-mieux.rst>`_, ça fait du bien :)