mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 11:32:39 +02:00
Un petit coup de clean
This commit is contained in:
parent
808cdde1eb
commit
cb49489316
59 changed files with 89 additions and 878 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -2,4 +2,5 @@ output
|
||||||
cache
|
cache
|
||||||
.venv
|
.venv
|
||||||
__pycache__
|
__pycache__
|
||||||
*:Zone.Identifier
|
*:Zone.Identifier
|
||||||
|
.obsidian
|
14
Makefile
14
Makefile
|
@ -15,15 +15,11 @@ PELICAN=$(VENV)/bin/pelican
|
||||||
PIP=$(VENV)/bin/pip
|
PIP=$(VENV)/bin/pip
|
||||||
GIT=/usr/bin/git
|
GIT=/usr/bin/git
|
||||||
|
|
||||||
DEBUG ?= 0
|
|
||||||
ifeq ($(DEBUG), 1)
|
|
||||||
PELICANOPTS += -D
|
|
||||||
endif
|
|
||||||
|
|
||||||
install: $(INSTALL_STAMP)
|
install: $(INSTALL_STAMP)
|
||||||
$(INSTALL_STAMP): $(PYTHON) requirements.txt
|
$(INSTALL_STAMP): $(PYTHON) requirements.txt
|
||||||
$(VENV)/bin/pip install -r requirements.txt
|
$(VENV)/bin/pip install -r requirements.txt
|
||||||
touch $(INSTALL_STAMP)
|
touch $(INSTALL_STAMP)
|
||||||
|
mkdir output
|
||||||
|
|
||||||
virtualenv: $(PYTHON)
|
virtualenv: $(PYTHON)
|
||||||
$(PYTHON):
|
$(PYTHON):
|
||||||
|
@ -37,15 +33,11 @@ clean:
|
||||||
rm -rf $(VENV)
|
rm -rf $(VENV)
|
||||||
|
|
||||||
serve: install
|
serve: install
|
||||||
ifdef PORT
|
$(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE)
|
||||||
cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server $(PORT)
|
|
||||||
else
|
|
||||||
cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server 8000
|
|
||||||
endif
|
|
||||||
|
|
||||||
regenerate:
|
regenerate:
|
||||||
cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server &
|
cd $(OUTPUTDIR) && $(PYTHON) -m pelican.server &
|
||||||
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
|
$(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
|
||||||
|
|
||||||
publish: install
|
publish: install
|
||||||
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
|
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
title: Antisexisme ou antiracisme ? Un faux dilemme
|
title: Antisexisme ou antiracisme ? Un faux dilemme
|
||||||
author: Christine Delphy
|
author: Christine Delphy
|
||||||
tags: sexisme, voile, racisme
|
tags: sexisme, voile, racisme
|
||||||
link: https://www.cairn.info/revue-nouvelles-questions-feministes-2006-1-page-59.htm
|
link: https://www.cairn.info/revue-nouvelles-questions-feministes-2006-1-page-59.htm
|
||||||
read_on: Septembre 2019
|
read_on: Septembre 2019
|
||||||
|
|
||||||
> De toutes façon, la possibilité même de la discussion avec des femmes portant le foulard est exclue expressément car, quelque soit le sens qu'une femme portant le foulard donne à son acte, ce sens ne doit pas être pris en compte : le foulard est censé avoir une signification « universelle » que seules les féministes occidentales peuvent déceler. Ce sera la position de collectif national des droits des femmes. Comme la commission Stasi, qui refuse par principe d'auditionner des jeunes filles « voilées ». [p7]
|
> De toutes façon, la possibilité même de la discussion avec des femmes portant le foulard est exclue expressément car, quelque soit le sens qu'une femme portant le foulard donne à son acte, ce sens ne doit pas être pris en compte : le foulard est censé avoir une signification « universelle » que seules les féministes occidentales peuvent déceler. Ce sera la position de collectif national des droits des femmes. Comme la commission Stasi, qui refuse par principe d'auditionner des jeunes filles « voilées ». [p7]
|
||||||
|
|
||||||
> « C'est aussi parce que les unes s'y soumettent (ou y adhèrent) [au port du foulard], que celles qui le refusent sont systématiquement harcelées, traitées de « putes » — ou violées ». Elle ne rejette pas le foulard seulement en tant que symbole de soumission : elle voit les femmes qui le portent comme les complices volontaires des violeurs, puisqu'elle prétend que sans elles, les violeurs ne sauraient pas exactement qui violer; pense-t-elle qu'il suffirait de supprimer les foulards pour supprimer le viol ? [p8]
|
> « C'est aussi parce que les unes s'y soumettent (ou y adhèrent) [au port du foulard], que celles qui le refusent sont systématiquement harcelées, traitées de « putes » — ou violées ». Elle ne rejette pas le foulard seulement en tant que symbole de soumission : elle voit les femmes qui le portent comme les complices volontaires des violeurs, puisqu'elle prétend que sans elles, les violeurs ne sauraient pas exactement qui violer; pense-t-elle qu'il suffirait de supprimer les foulards pour supprimer le viol ? [p8]
|
||||||
|
|
||||||
> En somme, le foulard devient aussi le symbole de la violence sexiste. Pas de la violence sexiste en général : mais d'une violence sexiste propre aux quartiers et banlieues » et aux populations qui y vivent. Le foulard est présenté comme le signe de l'existence en France d'une culture « autre », caractérisée par un sexisme également autre que le sexisme « ordinaire » (français) dont certaines […] mettent l'existence en doute. [p9]
|
> En somme, le foulard devient aussi le symbole de la violence sexiste. Pas de la violence sexiste en général : mais d'une violence sexiste propre aux quartiers et banlieues » et aux populations qui y vivent. Le foulard est présenté comme le signe de l'existence en France d'une culture « autre », caractérisée par un sexisme également autre que le sexisme « ordinaire » (français) dont certaines […] mettent l'existence en doute. [p9]
|
||||||
|
|
||||||
> En dépit de la documentation importante sur le sujet, **l'excision, qui se pratique dans les régions d'Afrique chrétiennes, animistes et musulmanes**, mais est inconnue de la majorité des pays musulmans (Maghreb, Moyen-Orient, Arabie, Yémen, Indonésie, Malaise), **est encore couramment attribuée à l'islam**. [p11]
|
> En dépit de la documentation importante sur le sujet, **l'excision, qui se pratique dans les régions d'Afrique chrétiennes, animistes et musulmanes**, mais est inconnue de la majorité des pays musulmans (Maghreb, Moyen-Orient, Arabie, Yémen, Indonésie, Malaise), **est encore couramment attribuée à l'islam**. [p11]
|
||||||
|
|
||||||
> On s'aperçoit aussi que ces campagnes internationales concernent exclusivement les « pays du Sud ». Or, les femmes de Belgique et de Norvège auraient certainement besoin de notre soutien, comme nous avons besoin du leur. Ceci renvoie à un problème majeur dans l'appréhension du monde, qui n'est pas le fait des seules féministes, mais qui constitue un piège dans lequel nous tombons avec une régularité remarquable : le sort des femmes en Occident nous paraît incontestablement meilleur que partout ailleurs dans le monde. [p12]
|
> On s'aperçoit aussi que ces campagnes internationales concernent exclusivement les « pays du Sud ». Or, les femmes de Belgique et de Norvège auraient certainement besoin de notre soutien, comme nous avons besoin du leur. Ceci renvoie à un problème majeur dans l'appréhension du monde, qui n'est pas le fait des seules féministes, mais qui constitue un piège dans lequel nous tombons avec une régularité remarquable : le sort des femmes en Occident nous paraît incontestablement meilleur que partout ailleurs dans le monde. [p12]
|
||||||
|
|
||||||
> Le débat à laissé supposer que là où apparaît le foulard, apparaîtront un peu plus tard, de façon nécessaire et inévitable, l'enfermement des femmes, les mariages forcés, la lapidation, l'excision, l'amputation de la main des voleurs, etc. Le foulard des jeunes françaises a donc été dénoncé non pour ce qu'il est ici et maintenant, mais pour ce qu'il pourrait annoncer.
|
> Le débat à laissé supposer que là où apparaît le foulard, apparaîtront un peu plus tard, de façon nécessaire et inévitable, l'enfermement des femmes, les mariages forcés, la lapidation, l'excision, l'amputation de la main des voleurs, etc. Le foulard des jeunes françaises a donc été dénoncé non pour ce qu'il est ici et maintenant, mais pour ce qu'il pourrait annoncer.
|
||||||
|
|
||||||
> La violence sexiste perpétrée dans les w quartiers et banlieues », par les Arabes et les Noirs qui y vivent, est systématiquement dissociée de la violence sexiste « ordinaire ». La première est mise en exergue comme extraordinaire : tellement plus grave qu'elle est considérée à part, et jamais comme un cas ou une instance de la violence ordinaire. Cette violence extraordinaire est ensuite dénationalisée 4 le « patriarcat le plus dur de la planète » ne peut venir que d'ailleurs que de l'hexagone; elle est africaine, elle est musulmane. Du même coup, ses auteurs, les Arabes et les Noirs, sont présentés comme extérieurs à la société française. [p13]
|
> La violence sexiste perpétrée dans les w quartiers et banlieues », par les Arabes et les Noirs qui y vivent, est systématiquement dissociée de la violence sexiste « ordinaire ». La première est mise en exergue comme extraordinaire : tellement plus grave qu'elle est considérée à part, et jamais comme un cas ou une instance de la violence ordinaire. Cette violence extraordinaire est ensuite dénationalisée 4 le « patriarcat le plus dur de la planète » ne peut venir que d'ailleurs que de l'hexagone; elle est africaine, elle est musulmane. Du même coup, ses auteurs, les Arabes et les Noirs, sont présentés comme extérieurs à la société française. [p13]
|
||||||
|
|
||||||
> On a vu que pour ces féministes « partagées », tout se passe comme si établir que la loi est raciste n'était pas une raison suffisante pour la refuse. C'est donc qu'elles acceptent l'idée que des lois pourraient être bonnes pour les femmes tout en étant racistes (« raciste peut-être, mais ne pas oublier les femmes »). Mais pourraient-elles accepter cette idée, que des lois visant une population, donc racistes, pourraient être néanmoins anti-sexistes, si elles ne partageaient pas avec les féministes pro-loi une prémisse fondamentale : le sexisme serait pire dans les « quartiers », et justiciable d'un traitement spécial ?
|
> On a vu que pour ces féministes « partagées », tout se passe comme si établir que la loi est raciste n'était pas une raison suffisante pour la refuse. C'est donc qu'elles acceptent l'idée que des lois pourraient être bonnes pour les femmes tout en étant racistes (« raciste peut-être, mais ne pas oublier les femmes »). Mais pourraient-elles accepter cette idée, que des lois visant une population, donc racistes, pourraient être néanmoins anti-sexistes, si elles ne partageaient pas avec les féministes pro-loi une prémisse fondamentale : le sexisme serait pire dans les « quartiers », et justiciable d'un traitement spécial ?
|
||||||
|
|
||||||
> [L]es buts du féminisme […] sont non seulement de traquer le sexisme partout où il est, mais aussi de **refuser l'idée patriarcale qu'il serait miraculeusement absent de certains lieux, de certaines relations, bref, qu'il est localisé, et qu'on peut y échapper**.
|
> [L]es buts du féminisme […] sont non seulement de traquer le sexisme partout où il est, mais aussi de **refuser l'idée patriarcale qu'il serait miraculeusement absent de certains lieux, de certaines relations, bref, qu'il est localisé, et qu'on peut y échapper**.
|
|
@ -3,5 +3,6 @@ author: Jean-léon Beauvois
|
||||||
tags: libéralisme
|
tags: libéralisme
|
||||||
headline: Petit traité des grandes illusions
|
headline: Petit traité des grandes illusions
|
||||||
read_on: Septembre 2019
|
read_on: Septembre 2019
|
||||||
|
status: Draft
|
||||||
|
|
||||||
> Reposant en effet sur la proposition selon laquelle il est des systèmes de gouvernement héréditairement malades, lesquels s'effondrent alors un jour ou l'autre sous le simple effet de l'évolution délétère de leur maladie, comme ce fut, dit-on, le cas du système communiste, […] implique que, puisque notre propre système perdure depuis plus d'un siècle, puisque *nos démocraties* […] perdurent depuis plus d'un siècle, c'est qu'elles ne sont atteintes d'aucune maladie constitutionnelle grave, voire qu'elles sont, bien au contraire, héréditairements saines et pures. [p20]
|
> Reposant en effet sur la proposition selon laquelle il est des systèmes de gouvernement héréditairement malades, lesquels s'effondrent alors un jour ou l'autre sous le simple effet de l'évolution délétère de leur maladie, comme ce fut, dit-on, le cas du système communiste, […] implique que, puisque notre propre système perdure depuis plus d'un siècle, puisque *nos démocraties* […] perdurent depuis plus d'un siècle, c'est qu'elles ne sont atteintes d'aucune maladie constitutionnelle grave, voire qu'elles sont, bien au contraire, héréditairements saines et pures. [p20]
|
|
@ -1,8 +1,8 @@
|
||||||
title: Un féminisme décolonial
|
title: Un féminisme décolonial
|
||||||
author: Françoise Vergès
|
author: Françoise Vergès
|
||||||
tags: sexisme, racisme
|
tags: sexisme, racisme
|
||||||
read_on: Janvier 2021
|
read_on: Janvier 2021
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
> J'ai aussi appris très tôt que si l'État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d'une part pour réprimer, d'autre part pour diviser les opprimé·e·s. D'un main il frappe, de l'autre il cherche à assimiler. La peur est une de ses armes favorites pour produire conformise et consentement.
|
> J'ai aussi appris très tôt que si l'État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d'une part pour réprimer, d'autre part pour diviser les opprimé·e·s. D'un main il frappe, de l'autre il cherche à assimiler. La peur est une de ses armes favorites pour produire conformise et consentement.
|
|
@ -1,30 +0,0 @@
|
||||||
title: Liste de lecture
|
|
||||||
description : Liste de livres qui m'ont été conseillés que je ne connais pas encore
|
|
||||||
items:
|
|
||||||
- title: Refuser d'être un homme
|
|
||||||
subtitle: Pour en finir avec la virilité
|
|
||||||
isbn: 978-2-84950-381-2
|
|
||||||
author: John Stoltenberg
|
|
||||||
tags: [virilité, féminisme]
|
|
||||||
via: [Raphaël, Jérém]
|
|
||||||
- title: "Recipes for disaster"
|
|
||||||
subtitle: an anarchist cookbook
|
|
||||||
author: Crimethinc
|
|
||||||
tags: [anarchisme]
|
|
||||||
via: [Francis Dupuis Déri]
|
|
||||||
- title: Démocratie
|
|
||||||
subtitle: histoire politique d'un mot
|
|
||||||
author: F. Dupuis-Déri
|
|
||||||
tags: [démocratie, histoire]
|
|
||||||
via: [Thinkerview]
|
|
||||||
- title: Se défendre
|
|
||||||
subtitle: une philosophie de la violence
|
|
||||||
author: Elsa Dorlin
|
|
||||||
tags: [féminisme, violence]
|
|
||||||
- title: Les antifa
|
|
||||||
edition: Lux
|
|
||||||
description: interview de militants antifa. Histoire depuis les années 10-20.
|
|
||||||
author: Mark Bray
|
|
||||||
- author: Glenn Coultar
|
|
||||||
title: Peau rouge, masque blanc
|
|
||||||
description: Dépossession des terres, post-colonialisme
|
|
|
@ -1 +0,0 @@
|
||||||
{"sorting":"name-down","virtualDirectories":[]}
|
|
|
@ -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,35 +0,0 @@
|
||||||
Rencontres python francophones, 2015
|
|
||||||
####################################
|
|
||||||
|
|
||||||
:date: 2015.11.02
|
|
||||||
:category: conferences
|
|
||||||
: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}hospital.rst>`_, qui parle de
|
|
||||||
heartbeat, ou de comment tester vos projets en prod, et celle `sur Geo Alchemy,
|
|
||||||
par Éric Lemoine <{filename}geoalchemy.rst>`_. Et bien sur, `celle
|
|
||||||
de Mathieu Leplatre sur Cliquet <{filename}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}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.
|
|
|
@ -197,6 +197,7 @@ header {
|
||||||
|
|
||||||
dt {
|
dt {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
margin-top: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
section.index {
|
section.index {
|
||||||
|
@ -320,4 +321,8 @@ table tbody tr:nth-child(2n+1) {
|
||||||
|
|
||||||
table td {
|
table td {
|
||||||
padding: 0.75em 0.75em;
|
padding: 0.75em 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
margin-top: 1em;
|
||||||
}
|
}
|
|
@ -5,9 +5,11 @@
|
||||||
</header>
|
</header>
|
||||||
<section id="content" class="body">
|
<section id="content" class="body">
|
||||||
<dl>
|
<dl>
|
||||||
{% for article in dates %}
|
{% for year, articles in dates | groupby("date.year") | reverse %}
|
||||||
<dt>{{ article.locale_date }}</dt>
|
<dt>{{ year }}</dt>
|
||||||
<dd><a href='{{ SITEURL }}/{{ article.url }}'>{{ article.title }}</a></dd>
|
{% for article in articles %}
|
||||||
|
<dd><a href='{{ SITEURL }}/{{ article.url }}'>{{ article.title }}</a></dd>
|
||||||
|
{% endfor %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</dl>
|
</dl>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
{% extends "index.html" %}
|
{% extends "base.html" %}
|
||||||
{% block title %}{{ category }} - {{ super() }}{% endblock %}
|
{% block content %}
|
||||||
{% block pagetitle %}{{ category }} posts{% endblock %}
|
<h1>{{ category }}</h1>
|
||||||
|
{% if articles %}
|
||||||
|
{% for article in articles | selectattr("category", "eq", "journal") %}
|
||||||
|
<section class="section index">
|
||||||
|
<time datetime="{{ article.date.isoformat() }}">{{ article.locale_date }}</time>
|
||||||
|
<h1><a href="{{ SITEURL }}/{{ article.url }}" id="page-title">{{ article.title }}</a></h1>
|
||||||
|
{{ article.content|striptags|truncate(200) }}
|
||||||
|
</section>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
|
@ -2,27 +2,40 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% block pagetitle %}{% endblock %}</h1>
|
<h1>{% block pagetitle %}{% endblock %}</h1>
|
||||||
{% if articles %}
|
{% if articles %}
|
||||||
{% for article in articles %}
|
{% for article in articles[0:3] %}
|
||||||
{% if loop.index <= DEFAULT_PAGINATION %}
|
|
||||||
<section class="section index">
|
<section class="section index">
|
||||||
{% if not HIDE_DATE %}
|
{% if not HIDE_DATE %}
|
||||||
<time datetime="{{ article.date.isoformat() }}">{{ article.locale_date }}</time>
|
<time datetime="{{ article.date.isoformat() }}">{{ article.locale_date }}</time>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<h1><a href="{{ SITEURL }}/{{ article.url }}" id="page-title">{% if article.category == "lectures" %}📖 {% endif %}{{ article.title }}</a></h1>
|
<h1><a href="{{ SITEURL }}/{{ article.url }}" id="page-title">{{ article.title }}</a></h1>
|
||||||
{{ article.content|striptags|truncate(200) }}
|
{{ article.content|striptags|truncate(200) }}
|
||||||
</section>
|
</section>
|
||||||
{% else %}
|
{% endfor %}
|
||||||
{% if loop.index0 == DEFAULT_PAGINATION %}
|
{% for category, items in articles | groupby("category") %}
|
||||||
<section>
|
<section>
|
||||||
<h1>Anciens articles...</h1>
|
<h1>
|
||||||
<ul>
|
{% if category == "Lectures" %}
|
||||||
|
📖
|
||||||
|
{% elif category == "Notes" %}
|
||||||
|
📝
|
||||||
|
{% elif category == "Technologie" %}
|
||||||
|
💻
|
||||||
|
{% elif category == "Journal" %}
|
||||||
|
📔
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{% if article.category == "lectures" %}📖 {% endif %}{{ article.title }}</a></li>
|
{{ category }}
|
||||||
{% if loop.last %}
|
</h1>
|
||||||
</ul>
|
<ul>
|
||||||
</section>
|
{% for article in items %}
|
||||||
{% endif %}
|
{% if loop.index <= 10%}
|
||||||
{% endif %}
|
<li><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></li>
|
||||||
|
{% endif %}
|
||||||
|
{% if loop.last %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ article.category.url }}">Voir plus de {{ category }}</a></li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
No posts found.
|
No posts found.
|
||||||
|
|
|
@ -5,14 +5,14 @@ AUTHOR = u""
|
||||||
SITENAME = u"Alexis Métaireau"
|
SITENAME = u"Alexis Métaireau"
|
||||||
THEME = "mnmlist"
|
THEME = "mnmlist"
|
||||||
DISQUS_SITENAME = "notmyidea"
|
DISQUS_SITENAME = "notmyidea"
|
||||||
DEFAULT_PAGINATION = 10
|
DEFAULT_PAGINATION = 3
|
||||||
STATIC_PATHS = ["images", "docs"]
|
STATIC_PATHS = ["images", "docs"]
|
||||||
|
|
||||||
SITEURL = ""
|
SITEURL = ""
|
||||||
RELATIVE_URLS = True
|
RELATIVE_URLS = True
|
||||||
|
|
||||||
TIMEZONE = "Europe/Paris"
|
TIMEZONE = "Europe/Paris"
|
||||||
LOCALE = "fr_FR.utf8"
|
LOCALE = "fr_FR"
|
||||||
|
|
||||||
DEFAULT_DATE_FORMAT = "%d %B %Y"
|
DEFAULT_DATE_FORMAT = "%d %B %Y"
|
||||||
LINKS = []
|
LINKS = []
|
||||||
|
|
|
@ -60,9 +60,7 @@ class SimpleReader(MarkdownReader):
|
||||||
|
|
||||||
# Get the date from the filename, if possible.
|
# Get the date from the filename, if possible.
|
||||||
parts = os.path.splitext(os.path.basename(source_path))[0].split("-")
|
parts = os.path.splitext(os.path.basename(source_path))[0].split("-")
|
||||||
if "read_on" in metadata:
|
if len(parts) > 3:
|
||||||
metadata["date"] = datetime.strptime(metadata["read_on"], "%B %Y")
|
|
||||||
elif len(parts) >= 3:
|
|
||||||
metadata["date"] = get_date("-".join(parts[:3]))
|
metadata["date"] = get_date("-".join(parts[:3]))
|
||||||
|
|
||||||
if "slug" not in metadata:
|
if "slug" not in metadata:
|
||||||
|
|
Loading…
Reference in a new issue