mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 19:42:37 +02:00
Fix warnings
This commit is contained in:
parent
16ad19a295
commit
f4a34f20a3
18 changed files with 40 additions and 810 deletions
|
@ -46,6 +46,7 @@ Une des techniques consiste à utiliser des mots du dictionnaire, sélectionnés
|
||||||
manière aléatoire, puis modifiés.
|
manière aléatoire, puis modifiés.
|
||||||
|
|
||||||
.. figure:: https://imgs.xkcd.com/comics/password_strength.png
|
.. 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
|
Micah Lee `travaille également sur un outil
|
||||||
<https://github.com/micahflee/passphrases>`_ qui vise à rendre la mémorisation
|
<https://github.com/micahflee/passphrases>`_ qui vise à rendre la mémorisation
|
||||||
|
|
|
@ -9,7 +9,7 @@ Les problèmes de PGP
|
||||||
Flip a bit in the communication between sender and recipient and they will
|
Flip a bit in the communication between sender and recipient and they will
|
||||||
experience decryption or verification errors. How high are the chances they
|
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
|
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
|
-- http://secushare.org/PGP
|
||||||
|
|
||||||
|
@ -70,6 +70,3 @@ chiffrement d'échanges de messages et de VPN simples à utiliser, encore quelqu
|
||||||
chose à regarder.
|
chose à regarder.
|
||||||
|
|
||||||
Enfin bref, y'a du taf.
|
Enfin bref, y'a du taf.
|
||||||
|
|
||||||
.. image:: {filename}/static/porte.jpg
|
|
||||||
:alt: Un peu d'ombre.
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ exemple).
|
||||||
|
|
||||||
J'ai choisi volontairement de ne pas aborder le chiffrement des messages via
|
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
|
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,
|
revenir sur ma décision: il pourrait être utile de présenter l'outil, à minima,
|
||||||
en insistant sur certaines de ses faiblesses.
|
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.
|
co-construire avec d'autres des plans de formation.
|
||||||
|
|
||||||
Ils sont pour l'instant disponibles `sur Read The Docs
|
Ils sont pour l'instant disponibles `sur Read The Docs
|
||||||
<http://autodefense-numerique.readthedocs.org/en/latest/>`_. Tous les retours
|
<http://autodefense-numerique.readthedocs.org/en/latest/>`_. Tous les retours
|
||||||
sont évidemment les bienvenus !
|
sont évidemment les bienvenus !
|
||||||
|
|
|
@ -39,6 +39,7 @@ exactement 6kg de malt pâle *7EDC* et 500g de malt cara *50EDC*).
|
||||||
|
|
||||||
.. image:: images/concassage.jpg
|
.. image:: images/concassage.jpg
|
||||||
:width: 400px
|
:width: 400px
|
||||||
|
:alt: Image de concassage.
|
||||||
|
|
||||||
Attention, pas trop fin dis donc ! On ne veut pas de la poudre, on veut
|
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
|
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
|
.. image:: images/concasse.jpg
|
||||||
:width: 700px
|
:width: 700px
|
||||||
|
:alt: C'est dur !
|
||||||
|
|
||||||
La seconde étape, **l'empatage**. Il s'agit de faire chauffer notre orge maltée
|
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
|
à 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
|
.. image:: images/marmite.jpg
|
||||||
:width: 400px
|
:width: 400px
|
||||||
|
:alt: Une grosse marmite
|
||||||
|
|
||||||
Une fois l'eau à température (54°C), il faut ajouter le malt et le laisser
|
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.
|
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
|
.. image:: images/filtrage.jpg
|
||||||
:width: 700px
|
:width: 700px
|
||||||
|
:alt: Filtrage filtrage...
|
||||||
|
|
||||||
|
|
||||||
L'étape d'après (la quatrième, vous suivez), c'est **le houblonnage**.
|
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 !)
|
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
|
.. image:: images/refroidisseur.jpg
|
||||||
:width: 400px
|
: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
|
Ç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
|
de gérer ça à coup de baignoire et de glaçons, les temps n'étaient absolument
|
||||||
pas au rendez-vous).
|
pas au rendez-vous).
|
||||||
|
|
||||||
|
|
||||||
.. image:: images/refroidissement.jpg
|
.. image:: images/refroidissement.jpg
|
||||||
:width: 700px
|
:width: 700px
|
||||||
|
:alt: Décidement pas.
|
||||||
|
|
||||||
Je disais dernière étape, mais il ne faut pas oublier de rajouter les
|
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
|
levures, qui elles vont faire tout le travail et transformer tout ça en… alcool
|
||||||
|
|
|
@ -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.
|
|
|
@ -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.
|
|
|
@ -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.
|
|
|
@ -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 !
|
|
|
@ -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
|
|
||||||
<http://alexis.notmyidea.org/kinto-pycon/>`_).
|
|
||||||
|
|
||||||
Parmis les conférences qui m'ont marquées, je vous conseille `celle de Benoit
|
|
||||||
Bryon, sur Hospital <{filename}/pyconfr2015/hospital.rst>`_, qui parle de
|
|
||||||
heartbeat, ou de comment tester vos projets en prod, et celle `sur Geo Alchemy,
|
|
||||||
par Éric Lemoine <{filename}/pyconfr2015/geoalchemy.rst>`_. Et bien sur, `celle
|
|
||||||
de Mathieu Leplatre sur Cliquet <{filename}/pyconfr2015/cliquet.rst>`_, le
|
|
||||||
toolkit qui rassemble les bonnes pratiques que nous souhaitons mettre en avant
|
|
||||||
chez Mozilla services, mais là, je suis tout sauf impartial !
|
|
||||||
|
|
||||||
Sinon, il peut être interessant de jeter un coup d'oeil au `compte rendu de la
|
|
||||||
table ronde sur la diversité
|
|
||||||
<{filename}/pyconfr2015/table-ronde-diversite.rst>`_, si c'est un sujet qui vous
|
|
||||||
touche. Encore beaucoup de choses à faire sur le sujet, bien sur, mais cette table ronde
|
|
||||||
était un pas nécessaire dans la bonne direction. Un groupe de travail sur le
|
|
||||||
sujet est en train de se constituer au sein de l'association.
|
|
||||||
|
|
||||||
L'ensemble des notes que j'ai pu prendre sont disponibles dans la section `PyconFR 2015
|
|
||||||
<http://blog.notmyidea.org/category/pyconfr2015.html>`_.
|
|
|
@ -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.
|
|
|
@ -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 !
|
|
||||||
|
|
|
@ -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.
|
|
|
@ -4,7 +4,7 @@ Using dbpedia to get languages influences
|
||||||
:date: 2011/08/16
|
:date: 2011/08/16
|
||||||
:tags: dbpedia, sparql, python
|
: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.
|
influenced by python, and the languages that influenced python itself.
|
||||||
|
|
||||||
Well, that's kind of interesting to know which languages influenced others,
|
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 "(
|
are either named after the name of the language itself, or suffixed with "(
|
||||||
programming language)", which is the case for python.
|
programming language)", which is the case for python.
|
||||||
|
|
||||||
So I've built `a tiny script to extract the information from dbpedia <https://github.com/ametaireau/experiments/blob/master/influences/get_influences.py>`_ and transform them into a shiny graph using graphviz.
|
So I've built `a tiny script to extract the information from dbpedia <https://github.com/ametaireau/experiments/blob/master/influences/get_influences.py>`_ and transform them into a shiny graph using graphviz.
|
||||||
|
|
||||||
After a nice::
|
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
|
.. image:: http://files.lolnet.org/alexis/influences.png
|
||||||
:width: 800px
|
: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.
|
languages and b) keeping a python perspective.
|
||||||
|
|
||||||
This means that you can trust the scheme by following the arrows from python to
|
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.
|
between all the languages at the same time to keep stuff readable.
|
||||||
|
|
||||||
It would certainly be possible to have all the connections between all
|
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.
|
graph would probably be way less readable.
|
||||||
|
|
||||||
You can find the script `on my github account
|
You can find the script `on my github account
|
||||||
|
|
|
@ -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!).
|
hard-coded in the first time, boooh!).
|
||||||
|
|
||||||
I then discussed with a friend of mine, who was excited about it and wanted to learn
|
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
|
interested in it and contributed some features and provided feedback (thanks
|
||||||
`Arnaud <http://www.sneakernet.fr/>`_ and Quentin!)
|
`Arnaud <http://www.sneakernet.fr/>`_ and Quentin!)
|
||||||
|
|
||||||
Since that, the project now support multiple languages and provides a REST API
|
Since that, the project now support multiple languages and provides a REST API
|
||||||
(android and iphone apps in the tubes!), into other things.
|
(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,
|
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
|
a secret code and a contact email, invite friends and that's it (this was inspired by
|
||||||
doodle)!
|
doodle)!
|
||||||
|
|
||||||
.. image:: images/ihatemoney.png
|
.. image:: images/ihatemoney.png
|
||||||
|
:alt: Capture d'écran du site.
|
||||||
|
|
||||||
You can try the project at http://ihatemoney.notmyidea.org for now, and the
|
You can try the project at http://ihatemoney.notmyidea.org for now, and the
|
||||||
code lives at https://github.com/spiral-project/ihatemoney/.
|
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
|
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.
|
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.
|
me, thanks. I want it to let me focus on something else. Keep out of my way.
|
||||||
|
|
||||||
No user registration
|
No user registration
|
||||||
|
@ -59,9 +60,9 @@ them for you).
|
||||||
Keeping things simple
|
Keeping things simple
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
"Keep It Simple, Stupid" really matches our philosophy here: you want to add a
|
"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,
|
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
|
and a description, like you would have done when you're back from the
|
||||||
farmer's market on raw paper.
|
farmer's market on raw paper.
|
||||||
|
|
||||||
No categories
|
No categories
|
||||||
|
@ -69,7 +70,7 @@ No categories
|
||||||
|
|
||||||
Some people like to organise their stuff into different "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
|
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!
|
I want things to be simple. Got that? Great. Just add your bills!
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ we're using **CouchDB** as a backend.
|
||||||
|
|
||||||
.. image:: images/daybed.jpg
|
.. image:: images/daybed.jpg
|
||||||
:width: 400px
|
:width: 400px
|
||||||
|
:alt: Daybed is a big couch!
|
||||||
|
|
||||||
We mainly hacked on daybed and are pretty close to the release of the first
|
We mainly hacked on daybed and are pretty close to the release of the first
|
||||||
version, meaning that we have something working.
|
version, meaning that we have something working.
|
||||||
|
|
|
@ -17,7 +17,8 @@ Heureusement, c'est open-source, et ça a été forké pour donner naissance
|
||||||
à `whiskerboard <https://github.com/bfirsh/whiskerboard>`_ (la planche
|
à `whiskerboard <https://github.com/bfirsh/whiskerboard>`_ (la planche
|
||||||
moustachue, pour les non anglophones).
|
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
|
Vérifier le statut des services
|
||||||
===============================
|
===============================
|
||||||
|
|
|
@ -4,7 +4,7 @@ Implementing CORS in Cornice
|
||||||
:date: 04-02-2013
|
:date: 04-02-2013
|
||||||
:slug: cross-origin-in-cornice
|
:slug: cross-origin-in-cornice
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
I'm cross-posting `on the mozilla services weblog
|
I'm cross-posting `on the mozilla services weblog
|
||||||
<https://blog.mozilla.org/services/>`_. Since this is the
|
<https://blog.mozilla.org/services/>`_. 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:
|
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)
|
:alt: The CORS flow (from the HTML5 CORS tutorial)
|
||||||
|
|
||||||
- 1a. The User-Agent, rather than doing the call directly, asks the server, the
|
- 1a. The User-Agent, rather than doing the call directly, asks the server, the
|
||||||
|
@ -67,8 +67,8 @@ have the following flow::
|
||||||
|
|
||||||
> OPTIONS /icecream
|
> OPTIONS /icecream
|
||||||
> Access-Control-Request-Methods = PUT
|
> Access-Control-Request-Methods = PUT
|
||||||
> Origin: notmyidea.org
|
> Origin: notmyidea.org
|
||||||
< Access-Control-Allow-Origin = notmyidea.org
|
< Access-Control-Allow-Origin = notmyidea.org
|
||||||
< Access-Control-Allow-Methods = PUT,GET,DELETE
|
< Access-Control-Allow-Methods = PUT,GET,DELETE
|
||||||
200 OK
|
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
|
pretty much sure that the servers will not implement CORS, so you'll need to
|
||||||
write a proxy yourself, to provide this.
|
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
|
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.
|
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:
|
`cors_origins` parameter:
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
foobar = Service(name='foobar', path='/foobar', cors_origins=('*',))
|
foobar = Service(name='foobar', path='/foobar', cors_origins=('*',))
|
||||||
|
|
||||||
Ta-da! You have enabled CORS for your service. **Be aware that you're
|
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.
|
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
|
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.
|
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,
|
In my opinion, CORS support should be handled at the service definition level,
|
||||||
except for the list of authorized hosts.
|
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.
|
Otherwise, you don't know exactly what's going on when you look at the definition of the service.
|
||||||
|
|
||||||
Resources
|
Resources
|
||||||
|
|
|
@ -114,4 +114,4 @@ Allez, au boulot !
|
||||||
|
|
||||||
PS: je me rends compte après relecture que ce billet fait echo à un billet que
|
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
|
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 :)
|
||||||
|
|
Loading…
Reference in a new issue