mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 11:32:39 +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.
|
||||
|
||||
.. 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
|
||||
<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
|
||||
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.
|
||||
|
|
|
@ -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
|
||||
<http://autodefense-numerique.readthedocs.org/en/latest/>`_. Tous les retours
|
||||
<http://autodefense-numerique.readthedocs.org/en/latest/>`_. Tous les retours
|
||||
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
|
||||
: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
|
||||
|
|
|
@ -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
|
||||
: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 <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::
|
||||
|
||||
|
@ -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
|
||||
|
|
|
@ -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 <http://www.sneakernet.fr/>`_ 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!
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
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
|
||||
===============================
|
||||
|
|
|
@ -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
|
||||
<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:
|
||||
|
||||
.. 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
|
||||
|
|
|
@ -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 :)
|
||||
|
|
Loading…
Reference in a new issue