Update documentation

This commit is contained in:
Alexis M. 2019-11-07 17:27:36 +01:00
parent c7913636fd
commit 9186fdc360
202 changed files with 40012 additions and 32665 deletions

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>A Distutils2 GSoC - Carnets Web</title> <title>A Distutils2 GSoC - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,43 +84,30 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>WOW. I've been accepted to be a part of the
<a class="reference external" href="http://code.google.com/intl/fr/soc/">Google Summer Of Code</a> <p>WOW. I've been accepted to be a part of the <a href="http://code.google.com/intl/fr/soc/">Google Summer Of
program, and will work on <a class="reference external" href="http://python.org/">python</a> Code</a> program, and will work on
<a class="reference external" href="http://hg.python.org/distutils2/">distutils2</a>, with <a href="http://python.org/">python</a> <a href="http://hg.python.org/distutils2/">distutils2</a>, with <a href="http://pygsoc.wordpress.com/">a</a> <a href="http://konryd.blogspot.com/">lot</a> <a href="http://ziade.org/">of</a> (intersting !) <a href="http://zubin71.wordpress.com/">people</a>.</p>
<a class="reference external" href="http://pygsoc.wordpress.com/">a</a>
<a class="reference external" href="http://konryd.blogspot.com/">lot</a> <a class="reference external" href="http://ziade.org/">of</a>
(intersting!) <a class="reference external" href="http://zubin71.wordpress.com/">people</a>.</p>
<blockquote> <blockquote>
So, it's about building the successor of Distutils2, ie. &quot;the <p>So, it's about building the successor of Distutils2, ie. "the python
python package manager&quot;. Today, there is too&nbsp;many ways to package a package manager". Today, there is too many ways to package a python
python application (pip, setuptools, distribute, distutils, etc.) application (pip, setuptools, distribute, distutils, etc.) so there is
so&nbsp;there is a huge effort to make in order to make all this a huge effort to make in order to make all this packaging stuff
packaging stuff interoperable, as pointed out by interoperable, as pointed out by
the&nbsp;<a class="reference external" href="http://www.python.org/dev/peps/pep-0376/">PEP 376</a>.</blockquote> the <a href="http://www.python.org/dev/peps/pep-0376/">PEP 376</a>.</p>
<p>In more details, I'm going to work on the Installer / Uninstaller </blockquote>
features of Distutils2, and on a PyPI XML-RPC client for distutils2. <p>In more details, I'm going to work on the Installer / Uninstaller features of Distutils2, and on a PyPI XML-RPC client for distutils2. Here are the already defined tasks:</p>
Here are the already defined tasks:</p> <ul>
<ul class="simple">
<li>Implement Distutils2 APIs described in PEP 376.</li> <li>Implement Distutils2 APIs described in PEP 376.</li>
<li>Add the uninstall command.</li> <li>Add the uninstall command.</li>
<li>think about a basic installer / uninstaller script. (with deps) <li>think about a basic installer / uninstaller script. (with deps) --
-- similar to pip/easy_install</li> similar to pip/easy_install</li>
<li>in a pypi subpackage;</li> <li>in a pypi subpackage;</li>
<li>Integrate a module similar to setuptools' package_index'</li> <li>Integrate a module similar to setuptools' package_index'</li>
<li>PyPI XML-RPC client for distutils 2: <li>PyPI XML-RPC client for distutils 2:
<a class="reference external" href="http://bugs.python.org/issue8190">http://bugs.python.org/issue8190</a></li> <a href="http://bugs.python.org/issue8190">http://bugs.python.org/issue8190</a></li>
</ul> </ul>
<p>As I'm relatively new to python, I'll need some extra work in order <p>As I'm relatively new to python, I'll need some extra work in order to apply all good practice, among other things that can make a developper-life joyful. I'll post here, each week, my advancement, and my tought about python and especialy python packaging world.</p>
to apply all good practice, among other things that can make a
developper-life joyful. I'll post here, each week, my advancement,
and my tought about python and especialy python packaging world.</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>AMAP + Média = Paniers bio à 5e ?! - Carnets Web</title> <title>AMAP + Média = Paniers bio à 5e ?! - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,45 +84,36 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Le raccourci me semble un peu rapide. Et pourtant, il est emprunté
bien trop souvent. La dernière <em>mes-utilisation</em> que j'ai à décrier
est celle d'un reportage télé, passé sur France 2 vendredi 23
Octobre
(<a class="reference external" href="http://docs.notmyidea.org/amap/amap-fr2.avi">voir la vidéo</a>),
ou on parles de
<a class="reference external" href="http://amap.zest.free.fr">l'AMAP étudiante Zest</a>.</p>
<p>Malgré tout le temps passé à expliquer que justement, l'AMAP c'est
avant tout, pour nous, une notion de solidarité envers les
agriculteurs, malgré le fait que le message soit plus profond que
simplement aller acheter du bio (ça, c'est possible aussi en
supermarché), malgré le fait qu'il s'agisse en fait d'une remise en
cause plus profonde de la société, les journalistes n'ont choisi de
prendre que les quelques secondes qui leurs convenaient, celles qui
ne faisaient pas tache, celle ou je dis que &quot;l'AMAP permet aux
étudiants de réapprendre à cuisiner, plutôt que de manger des
nouilles et de se faire des plats réchauffés&quot;. Bien sur, je l'ai
dit et je le pense d'ailleurs, là n'est pas le problème, mais mon
message n'était pas celui là.</p>
<p>Jamais, dans les quelques minutes du reportage, on ne dit ce que
AMAP signifie: Association de <strong>Maintien</strong> d'une Agriculture
<strong>Paysanne</strong>. On ne parles même pas des agriculteurs ! C'est
simplement plus facile pour les étudiants de venir récupérer leurs
paniers, puisque les points de distribution sont sur les facs, et
en plus ça ne coute que 5 euros ! ...</p>
<p>Alors je crois bon de rappeler que L'AMAP n'est pas seulement un
service, c'est un engagement. Sur 5 mois, un engagement solidaire,
c'est la donnée principale de l'équation, celle sans quoi ça ne
peut fonctionner. Par le biais de cette AMAP, on essaye de montrer
que d'autres agricultures sont possibles, que la solidarité c'est
bien réel, et qu'il est possible de sortir du
<em>tout, tout de suite</em>.</p>
<p>Mais bon, apparemment, ça passe pas bien à la télé.</p>
Vous pouvez également <a onclick="(function(){ <p>Le raccourci me semble un peu rapide. Et pourtant, il est emprunté bien
let here = document.location; trop souvent. La dernière <em>mes-utilisation</em> que j'ai à décrier est celle
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; d'un reportage télé, passé sur France 2 vendredi 23 Octobre (<a href="http://docs.notmyidea.org/amap/amap-fr2.avi">voir la
return false; vidéo</a>), ou on parles de
})();return false;">télécharger cet article en pdf</a>. <a href="http://amap.zest.free.fr">l'AMAP étudiante Zest</a>.</p>
<p>Malgré tout le temps passé à expliquer que justement, l'AMAP c'est avant
tout, pour nous, une notion de solidarité envers les agriculteurs,
malgré le fait que le message soit plus profond que simplement aller
acheter du bio (ça, c'est possible aussi en supermarché), malgré le fait
qu'il s'agisse en fait d'une remise en cause plus profonde de la
société, les journalistes n'ont choisi de prendre que les quelques
secondes qui leurs convenaient, celles qui ne faisaient pas tache, celle
ou je dis que "l'AMAP permet aux étudiants de réapprendre à cuisiner,
plutôt que de manger des nouilles et de se faire des plats réchauffés".
Bien sur, je l'ai dit et je le pense d'ailleurs, là n'est pas le
problème, mais mon message n'était pas celui là.</p>
<p>Jamais, dans les quelques minutes du reportage, on ne dit ce que AMAP
signifie: Association de <strong>Maintien</strong> d'une Agriculture <strong>Paysanne</strong>. On
ne parles même pas des agriculteurs ! C'est simplement plus facile pour
les étudiants de venir récupérer leurs paniers, puisque les points de
distribution sont sur les facs, et en plus ça ne coute que 5 euros !
...</p>
<p>Alors je crois bon de rappeler que L'AMAP n'est pas seulement un
service, c'est un engagement. Sur 5 mois, un engagement solidaire, c'est
la donnée principale de l'équation, celle sans quoi ça ne peut
fonctionner. Par le biais de cette AMAP, on essaye de montrer que
d'autres agricultures sont possibles, que la solidarité c'est bien réel,
et qu'il est possible de sortir du <em>tout, tout de suite</em>.</p>
<p>Mais bon, apparemment, ça passe pas bien à la télé.</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>An amazing summer of code working on distutils2 - Carnets Web</title> <title>An amazing summer of code working on distutils2 - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,155 +84,129 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>The <a class="reference external" href="http://code.google.com/soc/">Google Summer of Code</a> I've
spent working on <a class="reference external" href="http://hg.python.org/distutils2/">distutils2</a> <p>The <a href="http://code.google.com/soc/">Google Summer of Code</a> I've spent
is over. It was a really amazing experience, for many reasons.</p> working on <a href="http://hg.python.org/distutils2/">distutils2</a> is over. It
<p>First of all, we had a very good team, we were 5 students working was a really amazing experience, for many reasons.</p>
on distutils2: <a class="reference external" href="http://zubin71.wordpress.com">Zubin</a>, <p>First of all, we had a very good team, we were 5 students working on
<a class="reference external" href="http://wokslog.wordpress.com/">Éric</a>, distutils2: <a href="http://zubin71.wordpress.com">Zubin</a>,
<a class="reference external" href="http://gsoc.djolonga.com/">Josip</a>, <a href="http://wokslog.wordpress.com/">Éric</a>,
<a class="reference external" href="http://konryd.blogspot.com/">Konrad</a> and me. In addition, <a href="http://gsoc.djolonga.com/">Josip</a>,
<a class="reference external" href="http://mouadino.blogspot.com/">Mouad</a> have worked on the PyPI <a href="http://konryd.blogspot.com/">Konrad</a> and me. In addition,
testing infrastructure. You could find what each person have done <a href="http://mouadino.blogspot.com/">Mouad</a> have worked on the PyPI testing
on infrastructure. You could find what each person have done on <a href="http://bitbucket.org/tarek/distutils2/wiki/GSoC_2010_teams">the wiki
<a class="reference external" href="http://bitbucket.org/tarek/distutils2/wiki/GSoC_2010_teams">the wiki page of distutils2</a>.</p> page of
distutils2</a>.</p>
<p>We were in contact with each others really often, helping us when <p>We were in contact with each others really often, helping us when
possible (in #distutils), and were continuously aware of the state possible (in #distutils), and were continuously aware of the state of
of the work of each participant. This, in my opinion, have bring us the work of each participant. This, in my opinion, have bring us in a
in a good shape.</p> good shape.</p>
<p>Then, I've learned a lot. Python packaging was completely new to me <p>Then, I've learned a lot. Python packaging was completely new to me at
at the time of the GSoC start, and I was pretty unfamiliar with the time of the GSoC start, and I was pretty unfamiliar with python good
python good practices too, as I've been introducing myself to practices too, as I've been introducing myself to python in the late
python in the late 2009.</p> 2009.</p>
<p>I've recently looked at some python code I wrote just three months <p>I've recently looked at some python code I wrote just three months ago,
ago, and I was amazed to think about many improvements to made on and I was amazed to think about many improvements to made on it. I guess
it. I guess this is a good indicator of the path I've traveled this is a good indicator of the path I've traveled since I wrote it.</p>
since I wrote it.</p>
<p>This summer was awesome because I've learned about python good <p>This summer was awesome because I've learned about python good
practices, now having some strong practices, now having some strong
<a class="reference external" href="http://mercurial.selenic.com/">mercurial</a> knowledge, and I've <a href="http://mercurial.selenic.com/">mercurial</a> knowledge, and I've seen a
seen a little how the python community works.</p> little how the python community works.</p>
<p>Then, I would like to say a big thanks to all the mentors that have <p>Then, I would like to say a big thanks to all the mentors that have
hanged around while needed, on IRC or via mail, and especially my hanged around while needed, on IRC or via mail, and especially my mentor
mentor for this summer, <a class="reference external" href="http://tarek.ziade.org">Tarek Ziadé</a>.</p> for this summer, <a href="http://tarek.ziade.org">Tarek Ziadé</a>.</p>
<p>Thanks a lot for your motivation, your leadership and your <p>Thanks a lot for your motivation, your leadership and your cheerfulness,
cheerfulness, even with a new-born and a new work!</p> even with a new-born and a new work!</p>
<div class="section" id="why"> <h2 id="why">Why ?</h2>
<h2>Why ?</h2> <p>I wanted to work on python packaging because, as the time pass, we were
<p>I wanted to work on python packaging because, as the time pass, we having a sort of complex tools in this field. Each one wanted to add
were having a sort of complex tools in this field. Each one wanted features to distutils, but not in a standard way.</p>
to add features to distutils, but not in a standard way.</p> <p>Now, we have PEPs that describes some format we agreed on (see PEP 345),
<p>Now, we have PEPs that describes some format we agreed on (see PEP and we wanted to have a tool on which users can base their code on,
345), and we wanted to have a tool on which users can base their that's <a href="http://hg.python.org/distutils2/">distutils2</a>.</p>
code on, that's <a class="reference external" href="http://hg.python.org/distutils2/">distutils2</a>.</p> <h2 id="my-job">My job</h2>
</div> <p>I had to provide a way to crawl the PyPI indexes in a simple way, and do
<div class="section" id="my-job"> some installation / uninstallation scripts.</p>
<h2>My job</h2> <p>All the work done is available in <a href="http://bitbucket.org/ametaireau/distutils2/">my bitbucket
<p>I had to provide a way to crawl the PyPI indexes in a simple way, repository</a>.</p>
and do some installation / uninstallation scripts.</p> <h3 id="crawling-the-pypi-indexes">Crawling the PyPI indexes</h3>
<p>All the work done is available in <p>There are two ways of requesting informations from the indexes: using
<a class="reference external" href="http://bitbucket.org/ametaireau/distutils2/">my bitbucket repository</a>.</p> the "simple" index, that is a kind of REST index, and using XML-RPC.</p>
<div class="section" id="crawling-the-pypi-indexes"> <p>I've done the two implementations, and a high level API to query those
<h3>Crawling the PyPI indexes</h3> twos. Basically, this supports the mirroring infrastructure defined in
<p>There are two ways of requesting informations from the indexes: PEP 381. So far, the work I've done is gonna be used in pip (they've
using the &quot;simple&quot; index, that is a kind of REST index, and using basically copy/paste the code, but this will change as soon as we get
XML-RPC.</p> something completely stable for distutils2), and that's a good news, as
<p>I've done the two implementations, and a high level API to query it was the main reason for what I've done that.</p>
those twos. Basically, this supports the mirroring infrastructure <p>I've tried to have an unified API for the clients, to switch from one to
defined in PEP 381. So far, the work I've done is gonna be used in another implementation easily. I'm already thinking of adding others
pip (they've basically copy/paste the code, but this will change as crawlers to this stuff, and it was made to be extensible.</p>
soon as we get something completely stable for distutils2), and <p>If you want to get more informations about the crawlers/PyPI clients,
that's a good news, as it was the main reason for what I've done please refer to the distutils2 documentation, especially <a href="http://distutils2.notmyidea.org/library/distutils2.index.html">the pages
that.</p> about
<p>I've tried to have an unified API for the clients, to switch from indexes</a>.</p>
one to another implementation easily. I'm already thinking of
adding others crawlers to this stuff, and it was made to be
extensible.</p>
<p>If you want to get more informations about the crawlers/PyPI
clients, please refer to the distutils2 documentation, especially
<a class="reference external" href="http://distutils2.notmyidea.org/library/distutils2.index.html">the pages about indexes</a>.</p>
<p>You can find the changes I made about this in the <p>You can find the changes I made about this in the
<a class="reference external" href="http://hg.python.org/distutils2/">distutils2</a> source code .</p> <a href="http://hg.python.org/distutils2/">distutils2</a> source code .</p>
</div> <h3 id="installation-uninstallation-scripts">Installation / Uninstallation scripts</h3>
<div class="section" id="installation-uninstallation-scripts"> <p>Next step was to think about an installation script, and an uninstaller.
<h3>Installation / Uninstallation scripts</h3> I've not done the uninstaller part, and it's a smart part, as it's
<p>Next step was to think about an installation script, and an basically removing some files from the system, so I'll probably do it in
uninstaller. I've not done the uninstaller part, and it's a smart a near future.</p>
part, as it's basically removing some files from the system, so <p><a href="http://hg.python.org/distutils2/">distutils2</a> provides a way to install
I'll probably do it in a near future.</p> distributions, and to handle dependencies between releases. For now,
<p><a class="reference external" href="http://hg.python.org/distutils2/">distutils2</a> provides a way to this support is only about the last version of the METADATA (1.2) (See,
install distributions, and to handle dependencies between releases. the PEP 345), but I'm working on a compatibility layer for the old
For now, this support is only about the last version of the metadata, and for the informations provided via PIP requires.txt, for
METADATA (1.2) (See, the PEP 345), but I'm working on a instance.</p>
compatibility layer for the old metadata, and for the informations <h3 id="extra-work">Extra work</h3>
provided via PIP requires.txt, for instance.</p>
</div>
<div class="section" id="extra-work">
<h3>Extra work</h3>
<p>Also, I've done some extra work. this includes:</p> <p>Also, I've done some extra work. this includes:</p>
<ul class="simple"> <ul>
<li>working on the PEP 345, and having some discussion about it <li>working on the PEP 345, and having some discussion about it (about
(about the names of some fields).</li> the names of some fields).</li>
<li>writing a PyPI server mock, useful for tests. you can find more <li>writing a PyPI server mock, useful for tests. you can find more
information about it on the information about it on the
<a class="reference external" href="http://distutils.notmyidea.org">documentation</a>.</li> <a href="http://distutils.notmyidea.org">documentation</a>.</li>
</ul> </ul>
</div> <h2 id="futures-plans">Futures plans</h2>
</div> <p>As I said, I've enjoyed working on distutils2, and the people I've met
<div class="section" id="futures-plans"> here are really pleasant to work with. So I <em>want</em> to continue
<h2>Futures plans</h2>
<p>As I said, I've enjoyed working on distutils2, and the people I've
met here are really pleasant to work with. So I <em>want</em> to continue
contributing on python, and especially on python packaging, because contributing on python, and especially on python packaging, because
there is still a lot of things to do in this scope, to get there is still a lot of things to do in this scope, to get something
something really usable.</p> really usable.</p>
<p>I'm not plainly satisfied by the work I've done, so I'll probably <p>I'm not plainly satisfied by the work I've done, so I'll probably tweak
tweak it a bit: the installer part is not yet completely finished, it a bit: the installer part is not yet completely finished, and I want
and I want to add support for a real to add support for a real
<a class="reference external" href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a>
index in the future.</p> index in the future.</p>
<p>We'll talk again of this in the next months, probably, but we <p>We'll talk again of this in the next months, probably, but we definitely
definitely need a real need a real
<a class="reference external" href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> API
API for <a class="reference external" href="http://pypi.python.org">PyPI</a>, as the &quot;simple&quot; index for <a href="http://pypi.python.org">PyPI</a>, as the "simple" index <em>is</em> an ugly
<em>is</em> an ugly hack, in my opinion. I'll work on a serious hack, in my opinion. I'll work on a serious proposition about this,
proposition about this, maybe involving maybe involving <a href="http://couchdb.org">CouchDB</a>, as it seems to be a good
<a class="reference external" href="http://couchdb.org">CouchDB</a>, as it seems to be a good option option for what we want here.</p>
for what we want here.</p> <h2 id="issues">Issues</h2>
</div> <p>I've encountered some issues during this summer. The main one is that's
<div class="section" id="issues"> hard to work remotely, especially being in the same room that we live,
<h2>Issues</h2> with others. I like to just think about a project with other people, a
<p>I've encountered some issues during this summer. The main one is paper and a pencil, no computers. This have been not so possible at the
that's hard to work remotely, especially being in the same room start of the project, as I needed to read a lot of code to understand
that we live, with others. I like to just think about a project the codebase, and then to read/write emails.</p>
with other people, a paper and a pencil, no computers. This have <p>I've finally managed to work in an office, so good point for home/office
been not so possible at the start of the project, as I needed to separation.</p>
read a lot of code to understand the codebase, and then to <p>I'd not planned there will be so a high number of emails to read, in
read/write emails.</p> order to follow what's up in the python world, and be a part of the
<p>I've finally managed to work in an office, so good point for community seems to takes some times to read/write emails, especially for
home/office separation.</p> those (like me) that arent so confortable with english (but this had
<p>I'd not planned there will be so a high number of emails to read, brought me some english fu !).</p>
in order to follow what's up in the python world, and be a part of <h2 id="thanks-33">Thanks !</h2>
the community seems to takes some times to read/write emails, <p>A big thanks to <a href="http://www.graine-libre.fr/">Graine Libre</a> and <a href="http://www.makina-corpus.com/">Makina
especially for those (like me) that arent so confortable with Corpus</a>, which has offered me to come
english (but this had brought me some english fu !).</p> into their offices from time to time, to share they cheerfulness ! Many
</div> thanks too to the Google Summer of Code program for setting up such an
<div class="section" id="thanks"> initiative. If you're a student, if you're interested about FOSS, dont
<h2>Thanks !</h2> hesitate any second, it's a really good opportunity to work on
<p>A big thanks to <a class="reference external" href="http://www.graine-libre.fr/">Graine Libre</a> and interesting projects!</p>
<a class="reference external" href="http://www.makina-corpus.com/">Makina Corpus</a>, which has offered
me to come into their offices from time to time, to share they
cheerfulness ! Many thanks too to the Google Summer of Code program
for setting up such an initiative. If you're a student, if you're
interested about FOSS, dont hesitate any second, it's a really good
opportunity to work on interesting projects!</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Analyse users' browsing context to build up a web recommender - Carnets Web</title> <title>Analyse users' browsing context to build up a web recommender - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -18,9 +18,6 @@
<meta name="tags" contents="recommendations" />
<meta name="tags" contents="browsers" />
<meta name="tags" contents="users" />
<style> <style>
h1 { h1 {
@ -74,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -87,190 +84,196 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>No, this is not an april's fool ;)</p> <p>No, this is not an april's fool ;)</p>
<p>Wow, it's been a long time. My year in Oxford is going really well. I realized <p>Wow, it's been a long time. My year in Oxford is going really well. I
few days ago that the end of the year is approaching really quickly. realized few days ago that the end of the year is approaching really
Exams are coming in one month or such and then I'll be working full time on my dissertation topic.</p> quickly. Exams are coming in one month or such and then I'll be working
<p>When I learned we'll have about 6 month to work on something, I first thought full time on my dissertation topic.</p>
about doing a packaging related stuff, but finally decided to start something <p>When I learned we'll have about 6 month to work on something, I first
new. After all, that's the good time to learn.</p> thought about doing a packaging related stuff, but finally decided to
<p>Since a long time, I'm being impressed by the <a class="reference external" href="http://last.fm">last.fm</a> start something new. After all, that's the good time to learn.</p>
recommender system. They're <em>scrobbling</em> the music I listen to since something <p>Since a long time, I'm being impressed by the <a href="http://last.fm">last.fm</a>
like 5 years now and the recommendations they're doing are really nice and recommender system. They're <em>scrobbling</em> the music I listen to since
accurate (I discovered <strong>a lot</strong> of great artists listening to the something like 5 years now and the recommendations they're doing are
&quot;neighbour radio&quot;.) (by the way, <a class="reference external" href="http://lastfm.com/user/akounet/">here is</a> really nice and accurate (I discovered <strong>a lot</strong> of great artists
my lastfm account)</p> listening to the "neighbour radio".) (by the way, <a href="http://lastfm.com/user/akounet/">here
<p>So I decided to work on recommender systems, to better understand what is it is</a> my lastfm account)</p>
about.</p> <p>So I decided to work on recommender systems, to better understand what
is it about.</p>
<p>Recommender systems are usually used to increase the sales of products <p>Recommender systems are usually used to increase the sales of products
(like Amazon.com does) which is not really what I'm looking for (The one who (like Amazon.com does) which is not really what I'm looking for (The one
know me a bit know I'm kind of sick about all this consumerism going on).</p> who know me a bit know I'm kind of sick about all this consumerism going
<p>Actually, the most simple thing I thought of was the web: I'm browsing it quite on).</p>
every day and each time new content appears. I've stopped to follow <a class="reference external" href="https://bitbucket.org/bruno/aspirator/">my feed <p>Actually, the most simple thing I thought of was the web: I'm browsing
reader</a> because of the it quite every day and each time new content appears. I've stopped to
information overload, and reduced drastically the number of people I follow <a class="reference external" href="http://twitter.com/ametaireau/">on follow <a href="https://bitbucket.org/bruno/aspirator/">my feed reader</a> because
twitter</a>.</p> of the information overload, and reduced drastically the number of
people I follow <a href="http://twitter.com/ametaireau/">on twitter</a>.</p>
<p>Too much information kills the information.</p> <p>Too much information kills the information.</p>
<p>You shall got what will be my dissertation topic: a recommender system for <p>You shall got what will be my dissertation topic: a recommender system
the web. Well, such recommender systems already exists, so I will try to add contextual for the web. Well, such recommender systems already exists, so I will
information to them: you're probably not interested by the same topics at different try to add contextual information to them: you're probably not
times of the day, or depending on the computer you're using. We can also interested by the same topics at different times of the day, or
probably make good use of the way you browse to create groups into the content depending on the computer you're using. We can also probably make good
you're browsing (or even use the great firefox4 tab group feature).</p> use of the way you browse to create groups into the content you're
browsing (or even use the great firefox4 tab group feature).</p>
<p>There is a large part of concerns to have about user's privacy as well.</p> <p>There is a large part of concerns to have about user's privacy as well.</p>
<p>Here is my proposal (copy/pasted from the one I had to do for my master)</p> <p>Here is my proposal (copy/pasted from the one I had to do for my master)</p>
<div class="section" id="introduction-and-rationale"> <h2 id="introduction-and-rationale">Introduction and rationale</h2>
<h2>Introduction and rationale</h2> <p>Nowadays, people surf the web more and more often. New web pages are
<p>Nowadays, people surf the web more and more often. New web pages are created created each day so the amount of information to retrieve is more
each day so the amount of information to retrieve is more important as the time important as the time passes. These users uses the web in different
passes. These users uses the web in different contexts, from finding cooking contexts, from finding cooking recipes to technical articles.</p>
recipes to technical articles.</p> <p>A lot of people share the same interest to various topics, and the
<p>A lot of people share the same interest to various topics, and the quantity of quantity of information is such than it's really hard to triage them
information is such than it's really hard to triage them efficiently without efficiently without spending hours doing it. Firstly because of the huge
spending hours doing it. Firstly because of the huge quantity of information quantity of information but also because the triage is something
but also because the triage is something relative to each person. Although, this relative to each person. Although, this triage can be facilitated by
triage can be facilitated by fetching the browsing information of all fetching the browsing information of all particular individuals and put
particular individuals and put the in perspective.</p> the in perspective.</p>
<p>Machine learning is a branch of Artificial Intelligence (AI) which deals with how <p>Machine learning is a branch of Artificial Intelligence (AI) which deals
a program can learn from data. Recommendation systems are a particular with how a program can learn from data. Recommendation systems are a
application area of machine learning which is able to recommend things (links particular application area of machine learning which is able to
in our case) to the users, given a particular database containing the previous recommend things (links in our case) to the users, given a particular
choices users have made.</p> database containing the previous choices users have made.</p>
<p>This browsing information is currently available in browsers. Even if it is not <p>This browsing information is currently available in browsers. Even if it
in a very usable format, it is possible to transform it to something useful. is not in a very usable format, it is possible to transform it to
This information gold mine just wait to be used. Although, it is not as simple as something useful. This information gold mine just wait to be used.
it can seems at the first approach: It is important to take care of the context Although, it is not as simple as it can seems at the first approach: It
the user is in while browsing links. For instance, It's more likely that during is important to take care of the context the user is in while browsing
the day, a computer scientist will browse computing related links, and that during links. For instance, It's more likely that during the day, a computer
the evening, he browse cooking recipes or something else.</p> scientist will browse computing related links, and that during the
<p>Page contents are also interesting to analyse, because that's what people evening, he browse cooking recipes or something else.</p>
browse and what actually contain the most interesting part of the information. <p>Page contents are also interesting to analyse, because that's what
The raw data extracted from the browsing can then be translated into people browse and what actually contain the most interesting part of the
something more useful (namely tags, type of resource, visit frequency, information. The raw data extracted from the browsing can then be
navigation context etc.)</p> translated into something more useful (namely tags, type of resource,
<p>The goal of this dissertation is to create a recommender system for web links, visit frequency, navigation context etc.)</p>
including this context information.</p> <p>The goal of this dissertation is to create a recommender system for web
<p>At the end of the dissertation, different pieces of software will be provided, links, including this context information.</p>
from raw data collection from the browser to a recommendation system.</p> <p>At the end of the dissertation, different pieces of software will be
</div> provided, from raw data collection from the browser to a recommendation
<div class="section" id="background-review"> system.</p>
<h2>Background Review</h2> <h2 id="background-review">Background Review</h2>
<p>This dissertation is mainly about data extraction, analysis and recommendation <p>This dissertation is mainly about data extraction, analysis and
systems. Two different research area can be isolated: Data preprocessing and recommendation systems. Two different research area can be isolated:
Information filtering.</p> Data preprocessing and Information filtering.</p>
<p>The first step in order to make recommendations is to gather some data. The <p>The first step in order to make recommendations is to gather some data.
more data we have available, the better it is (T. Segaran, 2007). This data can The more data we have available, the better it is (T. Segaran, 2007).
be retrieved in various ways, one of them is to get it directly from user's This data can be retrieved in various ways, one of them is to get it
browsers.</p> directly from user's browsers.</p>
<div class="section" id="data-preparation-and-extraction"> <h3 id="data-preparation-and-extraction">Data preparation and extraction</h3>
<h3>Data preparation and extraction</h3> <p>The data gathered from browsers is basically URLs and additional
<p>The data gathered from browsers is basically URLs and additional information information about the context of the navigation. There is clearly a need
about the context of the navigation. There is clearly a need to extract more to extract more information about the meaning of the data the user is
information about the meaning of the data the user is browsing, starting by the browsing, starting by the content of the web pages.</p>
content of the web pages.</p> <p>Because the information provided on the current Web is not meant to be
<p>Because the information provided on the current Web is not meant to be read by read by machines (T. Berners Lee, 2001) there is a need of tools to
machines (T. Berners Lee, 2001) there is a need of tools to extract meaning from extract meaning from web pages. The information needs to be preprocessed
web pages. The information needs to be preprocessed before stored in a machine before stored in a machine readable format, allowing to make
readable format, allowing to make recommendations (Choochart et Al, 2004).</p> recommendations (Choochart et Al, 2004).</p>
<p>Data preparation is composed of two steps: cleaning and structuring ( <p>Data preparation is composed of two steps: cleaning and structuring (
Castellano et Al, 2007). Because raw data can contain a lot of un-needed text Castellano et Al, 2007). Because raw data can contain a lot of un-needed
(such as menus, headers etc.) and need to be cleaned prior to be stored. text (such as menus, headers etc.) and need to be cleaned prior to be
Multiple techniques can be used here and belongs to boilerplate removal and stored. Multiple techniques can be used here and belongs to boilerplate
full text extraction (Kohlschütter et Al, 2010).</p> removal and full text extraction (Kohlschütter et Al, 2010).</p>
<p>Then, structuring the information: category, type of content (news, blog, wiki) <p>Then, structuring the information: category, type of content (news,
can be extracted from raw data. This kind of information is not clearly defined blog, wiki) can be extracted from raw data. This kind of information is
by HTML pages so there is a need of tools to recognise them.</p> not clearly defined by HTML pages so there is a need of tools to
<p>Some context-related information can also be inferred from each resource. It can go recognise them.</p>
from the visit frequency to the navigation group the user was in while <p>Some context-related information can also be inferred from each
browsing. It is also possible to determine if the user &quot;liked&quot; a resource, and resource. It can go from the visit frequency to the navigation group the
determine a mark for it, which can be used by information filtering a later user was in while browsing. It is also possible to determine if the user
step (T. Segaran, 2007).</p> "liked" a resource, and determine a mark for it, which can be used by
information filtering a later step (T. Segaran, 2007).</p>
<p>At this stage, structuring the data is required. Storing this kind of <p>At this stage, structuring the data is required. Storing this kind of
information in RDBMS can be a bit tedious and require complex queries to get information in RDBMS can be a bit tedious and require complex queries to
back the data in an usable format. Graph databases can play a major role in the get back the data in an usable format. Graph databases can play a major
simplification of information storage and querying.</p> role in the simplification of information storage and querying.</p>
</div> <h3 id="information-filtering">Information filtering</h3>
<div class="section" id="information-filtering">
<h3>Information filtering</h3>
<p>To filter the information, three techniques can be used (Balabanovic et <p>To filter the information, three techniques can be used (Balabanovic et
Al, 1997):</p> Al, 1997):</p>
<ul class="simple"> <ul>
<li>The content-based approach states that if an user have liked something in the <li>The content-based approach states that if an user have liked
past, he is more likely to like similar things in the future. So it's about something in the past, he is more likely to like similar things in
establishing a profile for the user and compare new items against it.</li> the future. So it's about establishing a profile for the user and
<li>The collaborative approach will rather recommend items that other similar users compare new items against it.</li>
have liked. This approach consider only the relationship between users, and <li>The collaborative approach will rather recommend items that other
not the profile of the user we are making recommendations to.</li> similar users have liked. This approach consider only the
<li>the hybrid approach, which appeared recently combine both of the previous relationship between users, and not the profile of the user we are
approaches, giving recommendations when items score high regarding user's making recommendations to.</li>
profile, or if a similar user already liked it.</li> <li>the hybrid approach, which appeared recently combine both of the
previous approaches, giving recommendations when items score high
regarding user's profile, or if a similar user already liked it.</li>
</ul> </ul>
<p>Grouping is also something to consider at this stage (G. Myatt, 2007). <p>Grouping is also something to consider at this stage (G. Myatt, 2007).
Because we are dealing with huge amount of data, it can be useful to detect group Because we are dealing with huge amount of data, it can be useful to
of data that can fit together. Data clustering is able to find such groups (T. detect group of data that can fit together. Data clustering is able to
Segaran, 2007).</p> find such groups (T. Segaran, 2007).</p>
<p>References:</p> <p>References:</p>
<ul class="simple"> <ul>
<li>Balabanović, M., &amp; Shoham, Y. (1997). Fab: content-based, collaborative <li>Balabanović, M., &amp; Shoham, Y. (1997). Fab: content-based,
recommendation. Communications of the ACM, 40(3), 6672. ACM. collaborative recommendation. Communications of the ACM, 40(3),
Retrieved March 1, 2011, from <a class="reference external" href="http://portal.acm.org/citation.cfm?id=245108.245124&amp;amp">http://portal.acm.org/citation.cfm?id=245108.245124&amp;amp</a>;.</li> 6672. ACM. Retrieved March 1, 2011, from
<li>Berners-Lee, T., Hendler, J., &amp; Lassila, O. (2001). <a href="http://portal.acm.org/citation.cfm?id=245108.245124&amp;">http://portal.acm.org/citation.cfm?id=245108.245124&amp;</a>;.</li>
The semantic web: Scientific american. Scientific American, 284(5), 3443. <li>Berners-Lee, T., Hendler, J., &amp; Lassila, O. (2001). The semantic
Retrieved November 21, 2010, from <a class="reference external" href="http://www.citeulike.org/group/222/article/1176986">http://www.citeulike.org/group/222/article/1176986</a>.</li> web: Scientific american. Scientific American, 284(5), 3443.
<li>Castellano, G., Fanelli, A., &amp; Torsello, M. (2007). Retrieved November 21, 2010, from
LODAP: a LOg DAta Preprocessor for mining Web browsing patterns. Proceedings of the 6th Conference on 6th WSEAS Int. Conf. on Artificial Intelligence, Knowledge Engineering and Data Bases-Volume 6 (p. 1217). World Scientific and Engineering Academy and Society (WSEAS). Retrieved March 8, 2011, from <a class="reference external" href="http://portal.acm.org/citation.cfm?id=1348485.1348488">http://portal.acm.org/citation.cfm?id=1348485.1348488</a>.</li> <a href="http://www.citeulike.org/group/222/article/1176986">http://www.citeulike.org/group/222/article/1176986</a>.</li>
<li>Kohlschutter, C., Fankhauser, P., &amp; Nejdl, W. (2010). Boilerplate detection using shallow text features. Proceedings of the third ACM international conference on Web search and data mining (p. 441450). ACM. Retrieved March 8, 2011, from <a class="reference external" href="http://portal.acm.org/citation.cfm?id=1718542">http://portal.acm.org/citation.cfm?id=1718542</a>.</li> <li>Castellano, G., Fanelli, A., &amp; Torsello, M. (2007). LODAP: a LOg
<li>Myatt, G. J. (2007). Making Sense of Data: A Practical Guide to Exploratory DAta Preprocessor for mining Web browsing patterns. Proceedings of
Data Analysis and Data Mining.</li> the 6th Conference on 6th WSEAS Int. Conf. on Artificial
Intelligence, Knowledge Engineering and Data Bases-Volume 6 (p.
1217). World Scientific and Engineering Academy and Society
(WSEAS). Retrieved March 8, 2011, from
<a href="http://portal.acm.org/citation.cfm?id=1348485.1348488">http://portal.acm.org/citation.cfm?id=1348485.1348488</a>.</li>
<li>Kohlschutter, C., Fankhauser, P., &amp; Nejdl, W. (2010). Boilerplate
detection using shallow text features. Proceedings of the third ACM
international conference on Web search and data mining (p. 441450).
ACM. Retrieved March 8, 2011, from
<a href="http://portal.acm.org/citation.cfm?id=1718542">http://portal.acm.org/citation.cfm?id=1718542</a>.</li>
<li>Myatt, G. J. (2007). Making Sense of Data: A Practical Guide to
Exploratory Data Analysis and Data Mining.</li>
<li>Segaran, T. (2007). Collective Intelligence.</li> <li>Segaran, T. (2007). Collective Intelligence.</li>
</ul> </ul>
</div> <h2 id="privacy">Privacy</h2>
</div> <p>The first thing that's come to people minds when it comes to process
<div class="section" id="privacy"> their browsing data is privacy. People don't want to be stalked. That's
<h2>Privacy</h2> perfectly right, and I don't either.</p>
<p>The first thing that's come to people minds when it comes to process their <p>But such a system don't have to deal with people identities. It's
browsing data is privacy. People don't want to be stalked. That's perfectly completely possible to process completely anonymous data, and that's
right, and I don't either.</p> probably what I'm gonna do.</p>
<p>But such a system don't have to deal with people identities. It's completely
possible to process completely anonymous data, and that's probably what I'm
gonna do.</p>
<p>By the way, if you have interesting thoughts about that, if you do know <p>By the way, if you have interesting thoughts about that, if you do know
projects that do seems related, fire the comments !</p> projects that do seems related, fire the comments !</p>
</div> <h2 id="whats-the-plan">What's the plan ?</h2>
<div class="section" id="what-s-the-plan"> <p>There is a lot of different things to explore, especially because I'm a
<h2>What's the plan ?</h2> complete novice in that field.</p>
<p>There is a lot of different things to explore, especially because I'm <ul>
a complete novice in that field.</p> <li>I want to develop a firefox plugin, to extract the browsing
<ul class="simple"> informations ( still, I need to know exactly which kind of
<li>I want to develop a firefox plugin, to extract the browsing informations ( informations to retrieve). The idea is to provide some <em>raw</em>
still, I need to know exactly which kind of informations to retrieve). The browsing data, and then to transform it and to store it in the
idea is to provide some <em>raw</em> browsing data, and then to transform it and to better possible way.</li>
store it in the better possible way.</li> <li>Analyse how to store the informations in a graph database. What can
<li>Analyse how to store the informations in a graph database. What can be the be the different methods to store this data and to visualize the
different methods to store this data and to visualize the relationship relationship between different pieces of data? How can I define the
between different pieces of data? How can I define the different contexts, different contexts, and add those informations in the db?</li>
and add those informations in the db?</li> <li>Process the data using well known recommendation algorithms. Compare
<li>Process the data using well known recommendation algorithms. Compare the the results and criticize their value.</li>
results and criticize their value.</li>
</ul> </ul>
<p>There is plenty of stuff I want to try during this experimentation:</p> <p>There is plenty of stuff I want to try during this experimentation:</p>
<ul class="simple"> <ul>
<li>I want to try using Geshi to visualize the connexion between the links, <li>I want to try using Geshi to visualize the connexion between the
and the contexts</li> links, and the contexts</li>
<li>Try using graph databases such as Neo4j</li> <li>Try using graph databases such as Neo4j</li>
<li>Having a deeper look at tools such as scikit.learn (a machine learning <li>Having a deeper look at tools such as scikit.learn (a machine
toolkit in python)</li> learning toolkit in python)</li>
<li>Analyse web pages in order to categorize them. Processing their <li>Analyse web pages in order to categorize them. Processing their
contents as well, to do some keyword based classification will be done.</li> contents as well, to do some keyword based classification will be
done.</li>
</ul> </ul>
<p>Lot of work on its way, yay !</p> <p>Lot of work on its way, yay !</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -41,21 +41,25 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<h1>Archives for Carnets Web</h1> <h1>Archives for Alexis - Carnets en ligne</h1>
<dl> <dl>
<dt>01 novembre 2019</dt>
<dd><a href="https://blog.notmyidea.org/elitisme-et-apprentissage.html">Élitisme et apprentissage</a></dd>
<dt>03 juillet 2019</dt> <dt>03 juillet 2019</dt>
<dd><a href="https://blog.notmyidea.org/ours.html">Ours</a></dd> <dd><a href="https://blog.notmyidea.org/ours.html">Ours</a></dd>
<dt>27 juin 2019</dt> <dt>27 juin 2019</dt>
<dd><a href="https://blog.notmyidea.org/velotaf.html">velotaf</a></dd> <dd><a href="https://blog.notmyidea.org/velo.html">Vélo</a></dd>
<dt>26 juin 2019</dt> <dt>26 juin 2019</dt>
<dd><a href="https://blog.notmyidea.org/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a></dd> <dd><a href="https://blog.notmyidea.org/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a></dd>
<dt>21 mai 2019</dt>
<dd><a href="https://blog.notmyidea.org/un-an.html">Brasserie - petit bilan, après un an dexistence</a></dd>
<dt>27 mai 2018</dt> <dt>27 mai 2018</dt>
<dd><a href="https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a></dd> <dd><a href="https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a></dd>
<dt>03 mars 2018</dt> <dt>03 mars 2018</dt>
@ -68,15 +72,15 @@ styles, `#sidebar-checkbox` for behavior. -->
<dd><a href="https://blog.notmyidea.org/neipa-3.html">NEIPA #3</a></dd> <dd><a href="https://blog.notmyidea.org/neipa-3.html">NEIPA #3</a></dd>
<dt>18 décembre 2017</dt> <dt>18 décembre 2017</dt>
<dd><a href="https://blog.notmyidea.org/neipa-2.html">NEIPA #2</a></dd> <dd><a href="https://blog.notmyidea.org/neipa-2.html">NEIPA #2</a></dd>
<dt>06 novembre 2017</dt>
<dd><a href="https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a></dd>
<dt>17 octobre 2017</dt> <dt>17 octobre 2017</dt>
<dd><a href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a></dd> <dd><a href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a></dd>
<dt>06 octobre 2017</dt>
<dd><a href="https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a></dd>
<dt>26 juin 2017</dt> <dt>26 juin 2017</dt>
<dd><a href="https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a></dd> <dd><a href="https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a></dd>
<dt>31 mai 2016</dt> <dt>31 mai 2016</dt>
<dd><a href="https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a></dd> <dd><a href="https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a></dd>
<dt>29 mai 2016</dt> <dt>25 mai 2016</dt>
<dd><a href="https://blog.notmyidea.org/cloisonnement-des-activites.html">Cloisonnement des activités ?</a></dd> <dd><a href="https://blog.notmyidea.org/cloisonnement-des-activites.html">Cloisonnement des activités ?</a></dd>
<dt>25 mars 2016</dt> <dt>25 mars 2016</dt>
<dd><a href="https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a></dd> <dd><a href="https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a></dd>
@ -90,6 +94,8 @@ styles, `#sidebar-checkbox` for behavior. -->
<dd><a href="https://blog.notmyidea.org/lets-encrypt-haproxy.html">Let's Encrypt + HAProxy</a></dd> <dd><a href="https://blog.notmyidea.org/lets-encrypt-haproxy.html">Let's Encrypt + HAProxy</a></dd>
<dt>14 janvier 2016</dt> <dt>14 janvier 2016</dt>
<dd><a href="https://blog.notmyidea.org/ateliers-dautodefense-numerique.html">Ateliers d'autodéfense numérique</a></dd> <dd><a href="https://blog.notmyidea.org/ateliers-dautodefense-numerique.html">Ateliers d'autodéfense numérique</a></dd>
<dt>24 novembre 2015</dt>
<dd><a href="https://blog.notmyidea.org/le-mail-doit-il-mourir.html">Le mail doit-il mourir ?</a></dd>
<dt>02 novembre 2015</dt> <dt>02 novembre 2015</dt>
<dd><a href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html">Rencontres python francophones, 2015</a></dd> <dd><a href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html">Rencontres python francophones, 2015</a></dd>
<dt>18 octobre 2015</dt> <dt>18 octobre 2015</dt>
@ -108,8 +114,16 @@ styles, `#sidebar-checkbox` for behavior. -->
<dd><a href="https://blog.notmyidea.org/pyconfr-2015-table-ronde-diversite.html">PyconFR 2015 — Table ronde diversité</a></dd> <dd><a href="https://blog.notmyidea.org/pyconfr-2015-table-ronde-diversite.html">PyconFR 2015 — Table ronde diversité</a></dd>
<dt>12 octobre 2015</dt> <dt>12 octobre 2015</dt>
<dd><a href="https://blog.notmyidea.org/web-distribution-signing.html">Web distribution signing</a></dd> <dd><a href="https://blog.notmyidea.org/web-distribution-signing.html">Web distribution signing</a></dd>
<dt>14 juillet 2015</dt>
<dd><a href="https://blog.notmyidea.org/pourquoi-cliquet">Service de nuages : Pourquoi avons-nous fait Cliquet ?</a></dd>
<dt>09 juillet 2015</dt>
<dd><a href="https://blog.notmyidea.org/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html">Charte et événements non-mixtes au sein de l'Afpy</a></dd>
<dt>07 juillet 2015</dt>
<dd><a href="https://blog.notmyidea.org/service-de-nuages-perspectives-pour-lete-fr.html">Service de nuages : Perspectives pour l'été</a></dd>
<dt>29 juin 2015</dt> <dt>29 juin 2015</dt>
<dd><a href="https://blog.notmyidea.org/roles.html">Rôles</a></dd> <dd><a href="https://blog.notmyidea.org/roles.html">Rôles</a></dd>
<dt>26 mai 2015</dt>
<dd><a href="https://blog.notmyidea.org/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html">Service de nuages : Stocker et interroger les permissions avec Kinto</a></dd>
<dt>25 mai 2015</dt> <dt>25 mai 2015</dt>
<dd><a href="https://blog.notmyidea.org/les-problemes-de-pgp.html">Les problèmes de PGP</a></dd> <dd><a href="https://blog.notmyidea.org/les-problemes-de-pgp.html">Les problèmes de PGP</a></dd>
<dt>21 mai 2015</dt> <dt>21 mai 2015</dt>
@ -122,6 +136,8 @@ styles, `#sidebar-checkbox` for behavior. -->
<dd><a href="https://blog.notmyidea.org/chiffrement.html">Chiffrement</a></dd> <dd><a href="https://blog.notmyidea.org/chiffrement.html">Chiffrement</a></dd>
<dt>01 mai 2015</dt> <dt>01 mai 2015</dt>
<dd><a href="https://blog.notmyidea.org/language.html">Language</a></dd> <dd><a href="https://blog.notmyidea.org/language.html">Language</a></dd>
<dt>30 avril 2015</dt>
<dd><a href="https://blog.notmyidea.org/eco-systeme-et-stockage-generique.html">Eco-système et stockage générique</a></dd>
<dt>20 novembre 2014</dt> <dt>20 novembre 2014</dt>
<dd><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html">Le secret du bonheur</a></dd> <dd><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html">Le secret du bonheur</a></dd>
<dt>31 juillet 2014</dt> <dt>31 juillet 2014</dt>
@ -130,80 +146,82 @@ styles, `#sidebar-checkbox` for behavior. -->
<dd><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html">Quel métier, quelle utilité ?</a></dd> <dd><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html">Quel métier, quelle utilité ?</a></dd>
<dt>29 juillet 2014</dt> <dt>29 juillet 2014</dt>
<dd><a href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html">Retours sur deux ans à Mozilla</a></dd> <dd><a href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html">Retours sur deux ans à Mozilla</a></dd>
<dt>03 octobre 2013</dt>
<dd><a href="https://blog.notmyidea.org/le-revenu-de-base.html">Le revenu de base</a></dd>
<dt>16 août 2013</dt> <dt>16 août 2013</dt>
<dd><a href="https://blog.notmyidea.org/des-carnets-desquisse-fr.html">Des carnets d'esquisse</a></dd> <dd><a href="https://blog.notmyidea.org/des-carnets-desquisse.html">Des carnets d'esquisse</a></dd>
<dt>06 juillet 2013</dt>
<dd><a href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a></dd>
<dt>01 juillet 2013</dt>
<dd><a href="https://blog.notmyidea.org/new-year-python-meme-2012.html">New year python meme, 2012</a></dd>
<dt>14 juin 2013</dt> <dt>14 juin 2013</dt>
<dd><a href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a></dd> <dd><a href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a></dd>
<dt>02 avril 2013</dt> <dt>07 juin 2013</dt>
<dd><a href="https://blog.notmyidea.org/confiance-fr.html">Des profils de confiance partout et pour tout ?</a></dd> <dd><a href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a></dd>
<dt>02 avril 2013</dt> <dt>10 mars 2013</dt>
<dd><a href="https://blog.notmyidea.org/cross-origin-in-cornice.html">Implementing CORS in Cornice</a></dd> <dd><a href="https://blog.notmyidea.org/le-revenu-de-base.html">Le revenu de base</a></dd>
<dt>04 février 2013</dt>
<dd><a href="https://blog.notmyidea.org/des-profils-de-confiance-partout-et-pour-tout.html">Des profils de confiance partout et pour tout ?</a></dd>
<dt>04 février 2013</dt>
<dd><a href="https://blog.notmyidea.org/implementing-cors-in-cornice.html">Implementing CORS in Cornice</a></dd>
<dt>07 janvier 2013</dt>
<dd><a href="https://blog.notmyidea.org/new-year-python-meme-2012.html">New year python meme, 2012</a></dd>
<dt>29 décembre 2012</dt> <dt>29 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/status-board-fr.html">Status board</a></dd> <dd><a href="https://blog.notmyidea.org/status-board.html">Status board</a></dd>
<dt>28 décembre 2012</dt> <dt>28 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/habitat-collectif.html">Habitat collectif</a></dd> <dd><a href="https://blog.notmyidea.org/habitat-collectif.html">Habitat collectif</a></dd>
<dt>28 décembre 2012</dt> <dt>28 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/languages.html">Languages</a></dd>
<dt>28 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/tricot.html">Tricot</a></dd> <dd><a href="https://blog.notmyidea.org/tricot.html">Tricot</a></dd>
<dt>27 décembre 2012</dt> <dt>27 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/astuces-ssh.html">Astuces SSH</a></dd> <dd><a href="https://blog.notmyidea.org/astuces-ssh.html">Astuces SSH</a></dd>
<dt>27 décembre 2012</dt> <dt>27 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/gnome-3-extensions.html">Gnome 3, extensions</a></dd> <dd><a href="https://blog.notmyidea.org/gnome-3-extensions.html">Gnome 3, extensions</a></dd>
<dt>27 décembre 2012</dt> <dt>27 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/groovy.html">&quot;Groovy&quot;</a></dd> <dd><a href="https://blog.notmyidea.org/groovy.html">"Groovy"</a></dd>
<dt>27 décembre 2012</dt> <dt>27 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/notre-dame-des-landes.html">Notre dame des landes</a></dd> <dd><a href="https://blog.notmyidea.org/notre-dame-des-landes.html">Notre dame des landes</a></dd>
<dt>20 décembre 2012</dt> <dt>20 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/semences-paysannes.html">Semences paysannes</a></dd> <dd><a href="https://blog.notmyidea.org/semences-paysannes.html">Semences paysannes</a></dd>
<dt>05 novembre 2012</dt> <dt>12 décembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/lifestyle-fr.html">Lifestyle</a></dd> <dd><a href="https://blog.notmyidea.org/languages.html">Languages</a></dd>
<dt>22 octobre 2012</dt> <dt>22 octobre 2012</dt>
<dd><a href="https://blog.notmyidea.org/cheese-code-wrap-up.html">Cheese &amp; code - Wrap-up</a></dd> <dd><a href="https://blog.notmyidea.org/cheese-code-wrap-up.html">Cheese & code - Wrap-up</a></dd>
<dt>04 octobre 2012</dt>
<dd><a href="https://blog.notmyidea.org/biere-maison-33.html">Bière maison 33</a></dd>
<dt>04 octobre 2012</dt>
<dd><a href="https://blog.notmyidea.org/motivation-benevolat-et-participation.html">Motivation, bénévolat et participation</a></dd>
<dt>20 septembre 2012</dt> <dt>20 septembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/afpy-computer-camp-october-20-21.html">Cheese &amp; Code party: October 20-21</a></dd> <dd><a href="https://blog.notmyidea.org/cheese-code-party-october-20-21.html">Cheese & Code party: October 20-21</a></dd>
<dt>17 septembre 2012</dt> <dt>17 septembre 2012</dt>
<dd><a href="https://blog.notmyidea.org/circus-sprint-at-pyconfr.html">Circus sprint at PyconFR</a></dd> <dd><a href="https://blog.notmyidea.org/circus-sprint-at-pyconfr.html">Circus sprint at PyconFR</a></dd>
<dt>16 juillet 2012</dt> <dt>16 juillet 2012</dt>
<dd><a href="https://blog.notmyidea.org/pourquoi-mozilla-fr.html">Pourquoi Mozilla?</a></dd> <dd><a href="https://blog.notmyidea.org/pourquoi-mozilla.html">Pourquoi Mozilla?</a></dd>
<dt>14 mai 2012</dt> <dt>11 mai 2012</dt>
<dd><a href="https://blog.notmyidea.org/lifestyle.html">Lifestyle</a></dd>
<dt>01 mai 2012</dt>
<dd><a href="https://blog.notmyidea.org/refactoring-cornice.html">Refactoring Cornice</a></dd> <dd><a href="https://blog.notmyidea.org/refactoring-cornice.html">Refactoring Cornice</a></dd>
<dt>30 avril 2012</dt> <dt>30 avril 2012</dt>
<dd><a href="https://blog.notmyidea.org/bidouille-fr.html">Bidouille</a></dd> <dd><a href="https://blog.notmyidea.org/bidouille.html">Bidouille</a></dd>
<dt>16 avril 2012</dt> <dt>16 avril 2012</dt>
<dd><a href="https://blog.notmyidea.org/djangocong-2012-fr.html">Djangocong 2012</a></dd> <dd><a href="https://blog.notmyidea.org/djangocong-2012.html">Djangocong 2012</a></dd>
<dt>10 avril 2012</dt> <dt>02 avril 2012</dt>
<dd><a href="https://blog.notmyidea.org/biere-maison-fr.html">Bière maison !</a></dd> <dd><a href="https://blog.notmyidea.org/generation-de-formulaires-geolocalises.html">Génération de formulaires, geolocalisés ?</a></dd>
<dt>10 avril 2012</dt> <dt>02 avril 2012</dt>
<dd><a href="https://blog.notmyidea.org/motivation-benevolat-et-participation-fr.html">Motivation, bénévolat et participation</a></dd> <dd><a href="https://blog.notmyidea.org/thoughts-about-a-form-generation-service-gis-enabled.html">Thoughts about a form generation service, GIS enabled</a></dd>
<dt>04 février 2012</dt>
<dd><a href="https://blog.notmyidea.org/carto-forms.html">Thoughts about a form generation service, GIS enabled</a></dd>
<dt>23 janvier 2012</dt> <dt>23 janvier 2012</dt>
<dd><a href="https://blog.notmyidea.org/les-dangers-du-livre-numerique-fr.html">Les dangers du livre numérique</a></dd> <dd><a href="https://blog.notmyidea.org/les-dangers-du-livre-numerique.html">Les dangers du livre numérique</a></dd>
<dt>21 janvier 2012</dt> <dt>21 janvier 2012</dt>
<dd><a href="https://blog.notmyidea.org/2012-first-months.html">2012, first months</a></dd> <dd><a href="https://blog.notmyidea.org/mozilla-first-months.html">Mozilla, first months</a></dd>
<dt>06 novembre 2011</dt> <dt>07 décembre 2011</dt>
<dd><a href="https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html">Using JPype to bridge python and Java</a></dd> <dd><a href="https://blog.notmyidea.org/introducing-cornice.html">Introducing Cornice</a></dd>
<dt>01 décembre 2011</dt>
<dd><a href="https://blog.notmyidea.org/quels-usages-pour-linformatique.html">Quels usages pour l'informatique ?</a></dd>
<dt>15 octobre 2011</dt> <dt>15 octobre 2011</dt>
<dd><a href="https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html">How are you handling your shared expenses?</a></dd> <dd><a href="https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html">How are you handling your shared expenses?</a></dd>
<dt>14 octobre 2011</dt>
<dd><a href="https://blog.notmyidea.org/la-simplicite-volontaire-contre-le-mythe-de-labondance-fr.html">La simplicité volontaire contre le mythe de l'abondance</a></dd>
<dt>16 août 2011</dt> <dt>16 août 2011</dt>
<dd><a href="https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html">Using dbpedia to get languages influences</a></dd> <dd><a href="https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html">Using dbpedia to get languages influences</a></dd>
<dt>25 juillet 2011</dt> <dt>25 juillet 2011</dt>
<dd><a href="https://blog.notmyidea.org/pelican-9-months-later.html">Pelican, 9 months later</a></dd> <dd><a href="https://blog.notmyidea.org/pelican-9-months-later.html">Pelican, 9 months later</a></dd>
<dt>12 juillet 2011</dt> <dt>11 juin 2011</dt>
<dd><a href="https://blog.notmyidea.org/introducing-cornice.html">Introducing Cornice</a></dd> <dd><a href="https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html">Using JPype to bridge python and Java</a></dd>
<dt>25 mai 2011</dt> <dt>25 mai 2011</dt>
<dd><a href="https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire-fr.html">Un coup de main pour mon mémoire!</a></dd> <dd><a href="https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire33.html">Un coup de main pour mon mémoire33</a></dd>
<dt>19 mai 2011</dt> <dt>19 mai 2011</dt>
<dd><a href="https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler-fr.html">Travailler moins pour mieux travailler ?</a></dd> <dd><a href="https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler.html">Travailler moins pour mieux travailler ?</a></dd>
<dt>01 avril 2011</dt> <dt>01 avril 2011</dt>
<dd><a href="https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html">Analyse users' browsing context to build up a web recommender</a></dd> <dd><a href="https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html">Analyse users' browsing context to build up a web recommender</a></dd>
<dt>16 mars 2011</dt> <dt>16 mars 2011</dt>
@ -214,8 +232,6 @@ styles, `#sidebar-checkbox` for behavior. -->
<dd><a href="https://blog.notmyidea.org/pypi-on-couchdb.html">PyPI on CouchDB</a></dd> <dd><a href="https://blog.notmyidea.org/pypi-on-couchdb.html">PyPI on CouchDB</a></dd>
<dt>15 janvier 2011</dt> <dt>15 janvier 2011</dt>
<dd><a href="https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html">Help me to go to the distutils2 paris' sprint</a></dd> <dd><a href="https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html">Help me to go to the distutils2 paris' sprint</a></dd>
<dt>12 janvier 2011</dt>
<dd><a href="https://blog.notmyidea.org/usages-informatique-fr.html">Quels usages pour l'informatique ?</a></dd>
<dt>05 novembre 2010</dt> <dt>05 novembre 2010</dt>
<dd><a href="https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html">Fork you! or how the social coding can help you</a></dd> <dd><a href="https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html">Fork you! or how the social coding can help you</a></dd>
<dt>21 octobre 2010</dt> <dt>21 octobre 2010</dt>
@ -228,10 +244,10 @@ styles, `#sidebar-checkbox` for behavior. -->
<dd><a href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html">Pelican, a simple static blog generator in python</a></dd> <dd><a href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html">Pelican, a simple static blog generator in python</a></dd>
<dt>16 août 2010</dt> <dt>16 août 2010</dt>
<dd><a href="https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html">An amazing summer of code working on distutils2</a></dd> <dd><a href="https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html">An amazing summer of code working on distutils2</a></dd>
<dt>10 juillet 2010</dt>
<dd><a href="https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html">Sprinting on distutils2 in Tours</a></dd>
<dt>06 juillet 2010</dt> <dt>06 juillet 2010</dt>
<dd><a href="https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html">Introducing the distutils2 index crawlers</a></dd> <dd><a href="https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html">Introducing the distutils2 index crawlers</a></dd>
<dt>06 juillet 2010</dt>
<dd><a href="https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html">Sprinting on distutils2 in Tours</a></dd>
<dt>25 juin 2010</dt> <dt>25 juin 2010</dt>
<dd><a href="https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html">Use Restructured Text (ReST) to power your presentations</a></dd> <dd><a href="https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html">Use Restructured Text (ReST) to power your presentations</a></dd>
<dt>04 juin 2010</dt> <dt>04 juin 2010</dt>
@ -239,13 +255,13 @@ styles, `#sidebar-checkbox` for behavior. -->
<dt>01 mai 2010</dt> <dt>01 mai 2010</dt>
<dd><a href="https://blog.notmyidea.org/a-distutils2-gsoc.html">A Distutils2 GSoC</a></dd> <dd><a href="https://blog.notmyidea.org/a-distutils2-gsoc.html">A Distutils2 GSoC</a></dd>
<dt>28 mars 2010</dt> <dt>28 mars 2010</dt>
<dd><a href="https://blog.notmyidea.org/le-temps-des-graces-courrez-y-fr.html">Le temps des grâces, courrez-y !</a></dd> <dd><a href="https://blog.notmyidea.org/le-temps-des-graces-courrez-y.html">Le temps des grâces, courrez-y !</a></dd>
<dt>24 février 2010</dt> <dt>24 février 2010</dt>
<dd><a href="https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante-fr.html">Semaine de lenvironnement: La consommation étudiante</a></dd> <dd><a href="https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante.html">Semaine de lenvironnement: La consommation étudiante</a></dd>
<dt>17 décembre 2009</dt> <dt>17 décembre 2009</dt>
<dd><a href="https://blog.notmyidea.org/python-go-fr.html">Python ? go !</a></dd> <dd><a href="https://blog.notmyidea.org/python-go.html">Python ? go !</a></dd>
<dt>11 novembre 2009</dt> <dt>11 novembre 2009</dt>
<dd><a href="https://blog.notmyidea.org/amap-media-paniers-bio-a-5e-fr.html">AMAP + Média = Paniers bio à 5e ?!</a></dd> <dd><a href="https://blog.notmyidea.org/amap-media-paniers-bio-a-5e.html">AMAP + Média = Paniers bio à 5e ?!</a></dd>
</dl> </dl>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Astuces SSH - Carnets Web</title> <title>Astuces SSH - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -18,7 +18,6 @@
<meta name="tags" contents="note" />
<style> <style>
h1 { h1 {
@ -72,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -85,42 +84,35 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<div class="section" id="tunelling">
<h2>Tunelling</h2>
<p>Parce que je m'en rapelle jamais (tête de linote):</p>
<pre class="literal-block">
$ ssh -f hote -L local:lolnet.org:destination -N
</pre>
</div>
<div class="section" id="ssh-config">
<h2>.ssh/config</h2>
<p>(merci <a class="reference external" href="http://majerti.fr">gaston</a> !)</p>
<p>La directive suivante dans .ssh/config permet de sauter d'hôte en hôte
séparés par des &quot;+&quot;</p>
<pre class="literal-block">
Host *+*
ProxyCommand ssh $(echo %h | sed
's/+[^+]*$//;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/;s/:/ -p /')
PATH=.:\$PATH nc -w1 $(echo %h | sed 's/^.*+//;/:/!s/$/ %p/;s/:/ /')
</pre>
<p>On peut donc spécifier des &quot;sauts&quot; ssh du style:</p>
<pre class="literal-block">
ssh root&#64;91.25.25.25+192.168.1.1
</pre>
<p>Ensuite on peut essayer de rajouter:</p>
<pre class="literal-block">
Host &lt;label_pour_mon_serveur_privé&gt;
user &lt;monuser(root)&gt;
IdentityFile &lt;chemin vers ma clé ssh pour le serveur publique&gt;
hostname ip_serveur_publique+ip_serveur_privé
</pre>
</div>
Vous pouvez également <a onclick="(function(){ <h2 id="tunelling">Tunelling</h2>
let here = document.location; <p>Parce que je m'en rapelle jamais (tête de linote):</p>
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; <div class="highlight"><pre><span></span>$ ssh -f hote -L local:lolnet.org:destination -N
return false; </pre></div>
})();return false;">télécharger cet article en pdf</a>.
<h2 id="sshconfig">.ssh/config</h2>
<p>(merci <a href="http://majerti.fr">gaston</a> !)</p>
<p>La directive suivante dans .ssh/config permet de sauter d'hôte en hôte
séparés par des "+" :</p>
<div class="highlight"><pre><span></span><span class="k">Host</span> <span class="o">*+*</span>
<span class="n">ProxyCommand</span> <span class="n">ssh</span> <span class="err">$</span><span class="p">(</span><span class="n">echo</span> <span class="o">%</span><span class="n">h</span> <span class="o">|</span> <span class="n">sed</span>
<span class="s1">&#39;s/+[^+]*$//;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/;s/:/ -p /&#39;</span><span class="p">)</span>
<span class="n">PATH</span><span class="o">=</span><span class="p">.:</span><span class="err">\$</span><span class="n">PATH</span> <span class="n">nc</span> <span class="o">-</span><span class="n">w1</span> <span class="err">$</span><span class="p">(</span><span class="n">echo</span> <span class="o">%</span><span class="n">h</span> <span class="o">|</span> <span class="n">sed</span> <span class="s1">&#39;s/^.*+//;/:/!s/$/ %p/;s/:/ /&#39;</span><span class="p">)</span>
</pre></div>
<p>On peut donc spécifier des "sauts" ssh du style:</p>
<div class="highlight"><pre><span></span><span class="n">ssh</span> <span class="n">root</span><span class="mf">@91.25.25.25</span><span class="o">+</span><span class="mf">192.168.1.1</span>
</pre></div>
<p>Ensuite on peut essayer de rajouter:</p>
<div class="highlight"><pre><span></span><span class="k">Host</span> <span class="o">&lt;</span><span class="n">label_pour_mon_serveur_privé</span><span class="o">&gt;</span>
<span class="k">user</span> <span class="o">&lt;</span><span class="n">monuser</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">&gt;</span>
<span class="n">IdentityFile</span> <span class="o">&lt;</span><span class="n">chemin</span> <span class="n">vers</span> <span class="n">ma</span> <span class="n">clé</span> <span class="n">ssh</span> <span class="n">pour</span> <span class="n">le</span> <span class="n">serveur</span> <span class="n">publique</span><span class="o">&gt;</span>
<span class="n">hostname</span> <span class="n">ip_serveur_publique</span><span class="o">+</span><span class="n">ip_serveur_privé</span>
</pre></div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Ateliers d'autodéfense numérique - Carnets Web</title> <title>Ateliers d'autodéfense numérique - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -83,136 +83,131 @@ styles, `#sidebar-checkbox` for behavior. -->
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h2 class="post-headline">J'ai récemment animé des ateliers d'autodéfense numérique. Voici <h2 class="post-headline">J'ai récemment animé des ateliers d'autodéfense numérique. Voici quelques retours et pistes d'améliorations.</h2>
quelques retours et pistes d'améliorations.</h2>
<h1>🌟</h1> <h1>🌟</h1>
<p>Il y a huit mois, je me rendais compte de l'importance du choix des outils pour <p>Il y a huit mois, je me rendais compte de l'importance du choix des
faire face à la surveillance généralisée, et notamment en rapport au outils pour faire face à la surveillance généralisée, et notamment en
chiffrement des données. Une de mes envies de l'époque était l'animation rapport au chiffrement des données. Une de mes envies de l'époque était
d'ateliers.</p> l'animation d'ateliers.</p>
<blockquote class="epigraph"> <blockquote>
<p>Je compte donc:</p> <p>Je compte donc:</p>
<ul class="simple"> <ul>
<li>Organiser des ateliers de sensibilisation aux outils de communication, <li>Organiser des ateliers de sensibilisation aux outils de
envers mes proches;</li> communication, envers mes proches;</li>
<li>Utiliser la communication chiffrée le plus souvent possible, au moins <li>Utiliser la communication chiffrée le plus souvent possible, au
pour rendre le déchiffrement des messages plus longue, &quot;noyer le moins pour rendre le déchiffrement des messages plus longue,
poisson&quot;.</li> "noyer le poisson".</li>
</ul> </ul>
<p class="attribution">&mdash;<a class="reference external" href="http://blog.notmyidea.org/chiffrement.html">Chiffrement</a></p> <p>-- <a href="http://blog.notmyidea.org/chiffrement.html">Chiffrement</a></p>
</blockquote> </blockquote>
<p>J'ai mis un peu de temps à mettre le pied à l'étrier, mais je ressors <p>J'ai mis un peu de temps à mettre le pied à l'étrier, mais je ressors
finalement du premier atelier que j'ai co-animé avec geb, auprès d'un public de finalement du premier atelier que j'ai co-animé avec geb, auprès d'un
journalistes.</p> public de journalistes.</p>
<p>Pour cette première édition l'idée était à la fois d'aller à la rencontre d'un <p>Pour cette première édition l'idée était à la fois d'aller à la
public que je connais mal, de leur donner des outils pour solutionner les rencontre d'un public que je connais mal, de leur donner des outils pour
problèmes auxquels ils font parfois face, et de me faire une idée de ce que solutionner les problèmes auxquels ils font parfois face, et de me faire
pouvait être un atelier sur l'autodéfense numérique.</p> une idée de ce que pouvait être un atelier sur l'autodéfense numérique.</p>
<p>L'objectif pour ce premier atelier était de:</p> <p>L'objectif pour ce premier atelier était de:</p>
<ol class="arabic simple"> <ol>
<li>Échanger autour des besoins et <strong>faire ressortir des histoires</strong> ou le manque <li>Échanger autour des besoins et <strong>faire ressortir des histoires</strong> ou
d'outillage / connaissances à posé problème, dans des situations concrètes;</li> le manque d'outillage / connaissances à posé problème, dans des
<li>Se rendre compte des &quot;conduites à risque&quot;, <strong>faire peur</strong> aux personnes formées situations concrètes;</li>
pour qu'elles se rendent compte de l'état actuel des choses;</li> <li>Se rendre compte des "conduites à risque", <strong>faire peur</strong> aux
<li><strong>Proposer des solutions concrètes</strong> aux problèmes soulevés, ainsi que le personnes formées pour qu'elles se rendent compte de l'état actuel
minimum de connaissance théorique pour les appréhender.</li> des choses;</li>
<li><strong>Proposer des solutions concrètes</strong> aux problèmes soulevés, ainsi
que le minimum de connaissance théorique pour les appréhender.</li>
</ol> </ol>
<div class="section" id="faire-ressortir-les-problemes"> <h2 id="146-faire-ressortir-les-problemes">1. Faire ressortir les problèmes</h2>
<h2>1. Faire ressortir les problèmes</h2> <p>Afin de faire ressortir les problèmes, nous avons choisi de constituer
<p>Afin de faire ressortir les problèmes, nous avons choisi de constituer des des petits groupes de discussion, afin de faire des "Groupes d'Interview
petits groupes de discussion, afin de faire des &quot;Groupes d'Interview Mutuels&quot;, Mutuels", ou "GIM":</p>
ou &quot;GIM&quot;:</p> <blockquote>
<blockquote class="epigraph">
<p>lanimateur invite les participants à se regrouper par trois, avec des <p>lanimateur invite les participants à se regrouper par trois, avec des
personnes quon connaît moins puis invite chacun à livrer une expérience vécue personnes quon connaît moins puis invite chacun à livrer une
en lien avec le thème de la réunion et les deux autres à poser des questions expérience vécue en lien avec le thème de la réunion et les deux
leur permettant de bien saisir ce qui a été vécu.</p> autres à poser des questions leur permettant de bien saisir ce qui a
<p class="attribution">&mdash;«<a class="reference external" href="http://www.scoplepave.org/pour-s-ecouter">Pour s'écouter</a>», SCOP Le Pavé.</p> été vécu.</p>
<p>-- «<a href="http://www.scoplepave.org/pour-s-ecouter">Pour s'écouter</a>», SCOP
Le Pavé.</p>
</blockquote> </blockquote>
<p>De ces <em>GIMs</em> nous avons pu ressortir quelques histoires, gravitant autour de:</p> <p>De ces <em>GIMs</em> nous avons pu ressortir quelques histoires, gravitant
<ul class="simple"> autour de:</p>
<li><strong>La protection des sources (d'information)</strong>: Comment faire pour aider <ul>
quelqu'un à faire &quot;fuiter&quot; des données depuis l'intérieur d'une entreprise ?</li> <li><strong>La protection des sources (d'information)</strong>: Comment faire pour
<li><strong>Le chiffrement de ses données</strong>: Comment éviter de faire &quot;fuiter&quot; des données aider quelqu'un à faire "fuiter" des données depuis l'intérieur
importantes lors d'une perquisition de matériel ?</li> d'une entreprise ?</li>
<li><strong>Le chiffrement de ses données</strong>: Comment éviter de faire "fuiter"
des données importantes lors d'une perquisition de matériel ?</li>
</ul> </ul>
</div> <h2 id="246-faire-peur">2. Faire peur</h2>
<div class="section" id="faire-peur"> <p>Un des premiers objectifs est de faire peur, afin que tout le monde se
<h2>2. Faire peur</h2> rende compte à quel point il est facile d'accéder à certaines données.
<p>Un des premiers objectifs est de faire peur, afin que tout le monde se rende <a href="http://blog.barbayellow.com/">Grégoire</a> m'avait conseillé quelques
compte à quel point il est facile d'accéder à certaines données. <a class="reference external" href="http://blog.barbayellow.com/">Grégoire</a> m'avait conseillé quelques petites accroches petites accroches qui ont ma foi bien marché:</p>
qui ont ma foi bien marché:</p>
<p>J'ai demandé aux présent.e.s de:</p> <p>J'ai demandé aux présent.e.s de:</p>
<ul class="simple"> <ul>
<li>donner leur mot de passe à voix haute devant les autres: a priori personne ne <li>donner leur mot de passe à voix haute devant les autres: a priori
le fera;</li> personne ne le fera;</li>
<li>venir se connecter à leur compte email depuis mon ordinateur. J'ai piégé une <li>venir se connecter à leur compte email depuis mon ordinateur. J'ai
personne, qui est venu pour taper son mot de passe.</li> piégé une personne, qui est venu pour taper son mot de passe.</li>
</ul> </ul>
<p>Cela à été un bon moyen de parler de l'importance des traces que l'on peut <p>Cela à été un bon moyen de parler de l'importance des traces que l'on
laisser sur un ordinateur, et de la confiance qu'il faut avoir dans le matériel peut laisser sur un ordinateur, et de la confiance qu'il faut avoir dans
que l'on utilise, à fortiori si ce ne sont pas les vôtres.</p> le matériel que l'on utilise, à fortiori si ce ne sont pas les vôtres.</p>
<p>Pour continuer à leur faire peur, après une brève explication de ce qu'est SSL <p>Pour continuer à leur faire peur, après une brève explication de ce
nous avons montré comment il était facile de scruter le réseau à la recherche qu'est SSL nous avons montré comment il était facile de scruter le
de mots de passe en clair.</p> réseau à la recherche de mots de passe en clair.</p>
</div> <h2 id="346-proposer-des-solutions-concretes">3. Proposer des solutions concrêtes</h2>
<div class="section" id="proposer-des-solutions-concretes"> <p>Une fois que tout le monde avait pleinement pris sonscience des
<h2>3. Proposer des solutions concrêtes</h2> problématiques et n'osait plus utiliser son ordinateur ou son
<p>Une fois que tout le monde avait pleinement pris sonscience des problématiques téléphone, on à commencé à parler de quelques solutions. Plusieurs
et n'osait plus utiliser son ordinateur ou son téléphone, on à commencé approches étaient possibles ici, nous avons choisi de présenter quelques
à parler de quelques solutions. outils qui nous semblaient répondre aux attentes:</p>
Plusieurs approches étaient possibles ici, nous avons choisi de présenter <ul>
quelques outils qui nous semblaient répondre aux attentes:</p> <li>On a expliqué ce qu'était <a href="https://tails.boum.org">Tails</a>, et
<ul class="simple"> comment l'utiliser et le dupliquer.</li>
<li>On a expliqué ce qu'était <a class="reference external" href="https://tails.boum.org">Tails</a>, et comment <li>On a pu faire un tour des outils existants sur Tails, notamment
l'utiliser et le dupliquer.</li> autour de l'<em>anonymisation</em> de fichiers et la suppression effective
<li>On a pu faire un tour des outils existants sur Tails, notamment autour de de contenus.</li>
l'<em>anonymisation</em> de fichiers et la suppression effective de contenus.</li> <li>Certaines personnes ont pu créer une clé tails avec la persistance
<li>Certaines personnes ont pu créer une clé tails avec la persistance de de configurée.</li>
configurée.</li> <li>Nous nous sommes connectés au réseau
<li>Nous nous sommes connectés au réseau <a class="reference external" href="https://www.torproject.org">Tor</a> et testé <a href="https://www.torproject.org">Tor</a> et testé que nos adresses IP
que nos adresses IP changeaient bien à la demande.</li> changeaient bien à la demande.</li>
<li>Nous avons utilisé <a class="reference external" href="https://crypto.cat">CryptoCat</a> par dessus Tor, afin de <li>Nous avons utilisé <a href="https://crypto.cat">CryptoCat</a> par dessus Tor,
voir comment avoir une conversation confidentielle dans laquelle il est afin de voir comment avoir une conversation confidentielle dans
possible d'échanger des fichiers.</li> laquelle il est possible d'échanger des fichiers.</li>
</ul> </ul>
</div> <h2 id="retours">Retours</h2>
<div class="section" id="retours"> <p>D'une manière générale, pour une formation de trois heures et demi, je
<h2>Retours</h2> suis assez content de l'exercice, et de l'ensemble des sujets que nous
<p>D'une manière générale, pour une formation de trois heures et demi, je suis avons pu couvrir. Il y a beaucoup de place pour l'amélioration,
assez content de l'exercice, et de l'ensemble des sujets que nous avons pu notamment en amont (j'avais par exemple oublié d'amener avec moi
couvrir. Il y a beaucoup de place pour l'amélioration, notamment en amont (j'avais suffisamment de clés USB pour utiliser Tails).</p>
par exemple oublié d'amener avec moi suffisamment de clés USB pour utiliser <p>La plupart des retours qu'on a pu avoir jusqu'à maintenant sont
Tails).</p> positifs, et il y a l'envie d'aller plus loin sur l'ensemble de ces
<p>La plupart des retours qu'on a pu avoir jusqu'à maintenant sont positifs, et il sujets.</p>
y a l'envie d'aller plus loin sur l'ensemble de ces sujets.</p> <h2 id="la-suite">La suite</h2>
</div> <p>Il y a beaucoup de sujets que nous n'avons pas abordés, ou uniquement
<div class="section" id="la-suite"> survolés, à cause du manque de temps disponible. Idéalement, il faudrait
<h2>La suite</h2> au moins une journée entière pour couvrir quelques sujets plus en détail
<p>Il y a beaucoup de sujets que nous n'avons pas abordés, ou uniquement survolés, (on peut imaginer avoir une partie théorique le matin et une partie
à cause du manque de temps disponible. Idéalement, il faudrait au moins une pratique l'après-midi par exemple).</p>
journée entière pour couvrir quelques sujets plus en détail (on peut imaginer <p>J'ai choisi volontairement de ne pas aborder le chiffrement des messages
avoir une partie théorique le matin et une partie pratique l'après-midi par via PGP parce que <a href="%7Bfilename%7D2015.05.pgp-problemes.rst">je pense que la protection que ce média propose n'est
exemple).</p> pas suffisante</a>, mais je suis
<p>J'ai choisi volontairement de ne pas aborder le chiffrement des messages via en train de revenir sur ma décision: il pourrait être utile de présenter
PGP parce que <a class="reference external" href="https://blog.notmyidea.org/les-problemes-de-pgp.html">je pense que la protection que ce média propose n'est pas l'outil, à minima, en insistant sur certaines de ses faiblesses.</p>
suffisante</a>, mais je suis en train de <p>Un compte twitter à été créé recemment autour des crypto-party à Rennes,
revenir sur ma décision: il pourrait être utile de présenter l'outil, à minima, si vous êtes interessés, <a href="https://twitter.com/CryptoPartyRNS">allez jeter un coup
en insistant sur certaines de ses faiblesses.</p> d'œil</a>!</p>
<p>Un compte twitter à été créé recemment autour des crypto-party à Rennes, si
vous êtes interessés, <a class="reference external" href="https://twitter.com/CryptoPartyRNS">allez jeter un coup d'œil</a>!</p>
<p>Je n'ai pas trouvé de ressources disponibles par rapport à des plans de <p>Je n'ai pas trouvé de ressources disponibles par rapport à des plans de
formation sur le sujet, j'ai donc décidé de publier les nôtres, afin de 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.</p> co-construire avec d'autres des plans de formation.</p>
<p>Ils sont pour l'instant disponibles <a class="reference external" href="http://autodefense-numerique.readthedocs.org/en/latest/">sur Read The Docs</a>. Tous les retours <p>Ils sont pour l'instant disponibles <a href="http://autodefense-numerique.readthedocs.org/en/latest/">sur Read The
sont évidemment les bienvenus !</p> Docs</a>. Tous les
</div> retours sont évidemment les bienvenus !</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web - Articles by Alexis Métaireau</title> <title>Alexis - Carnets en ligne - Articles by Alexis Métaireau</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,7 +45,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -54,103 +55,102 @@ styles, `#sidebar-checkbox` for behavior. -->
<h2>Articles by Alexis Métaireau</h2> <h2>Articles by Alexis Métaireau</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a></span><span class="description"><span class="headline">Quelques notes prises après une discussion avec d'autres complices du coin</span><time class="created" datetime="2019-06-26T00:00:00+02:00">26 juin 2019</time></span></li> <li><span class="metadata date"><h2>Réfléxions</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a></span><span class="description"><span class="headline">Comment un passionné de Logiciels libres choisit de créer une petite brasserie artisanale.</span><time class="created" datetime="2018-05-27T00:00:00+02:00">27 mai 2018</time></span></li> <li>
<li style="background-image: url('/images/abeilles.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/groupement-dachats-partage-dexperience.html">Groupement d'achats & partage d'expérience</a></span><span class="description"><span class="headline">Quelques retours sur la création et l'organisation d'un groupement d'achat.</span><time class="created" datetime="2018-03-03T00:00:00+01:00">03 mars 2018</time></span></li> <span class="metadata date">novembre 2019</span>
<li style="background-image: url('images/carnet.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/webnotes.html">Webnotes</a></span><span class="description"><span class="headline">Un outil pour prendre et partager des notes lors de ma navigation.</span><time class="created" datetime="2018-02-25T00:00:00+01:00">25 février 2018</time></span></li> <a class="post_title" href="/elitisme-et-apprentissage.html">Élitisme et apprentissage</a>&nbsp;
<li style="background-image: url('images/less-is-more.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/faire-moins.html">Faire moins</a></span><span class="description"><span class="headline">Et retrouver le contrôle de son engagement.</span><time class="created" datetime="2018-02-19T00:00:00+01:00">19 février 2018</time></span></li> <span class="metadata category">Réfléxions</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/neipa-3.html">NEIPA #3</a></span><span class="description"><span class="headline">New England IPA - Collab avec Heiko.</span><time class="created" datetime="2017-12-29T00:00:00+01:00">29 décembre 2017</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/neipa-2.html">NEIPA #2</a></span><span class="description"><span class="headline">Petit test de New England IPA.</span><time class="created" datetime="2017-12-18T00:00:00+01:00">18 décembre 2017</time></span></li> <span class="metadata date">mars 2018</span>
<li style="background-image: url('/images/refroidissement.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a></span><span class="description"><span class="headline">Si vous êtes dans le coin de Rennes et que vous voulez échanger sur la fabrication de bière, ne cherchez plus ;)</span><time class="created" datetime="2017-11-06T00:00:00+01:00">06 novembre 2017</time></span></li> <a class="post_title" href="/groupement-dachats-partage-dexperience.html">Groupement d'achats & partage d'expérience</a>&nbsp;
<li style="background-image: url('images/haze.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a></span><span class="description"><span class="headline">Traduction d'un article sur les New England IPA du magazine Américan « Brew Your Own »</span><time class="created" datetime="2017-10-17T00:00:00+02:00">17 octobre 2017</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('images/vieuxsinge.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a></span><span class="description"><span class="headline">Retours sur ces quelques mois consacrés à la création de la brasserie du Vieux Singe.</span><time class="created" datetime="2017-06-26T00:00:00+02:00">26 juin 2017</time></span></li> <li>
<li style="background-image: url('images/forms.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a></span><span class="description"><span class="headline">Présentation d'une solution pour gérer vos formulaires en gardant la main sur les données générées</span><time class="created" datetime="2016-05-31T00:00:00+02:00">31 mai 2016</time></span></li> <span class="metadata date">février 2018</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cloisonnement-des-activites.html">Cloisonnement des activités ?</a></span><span class="description"><span class="headline">En revenant de SudWeb</span><time class="created" datetime="2016-05-29T00:00:00+02:00">29 mai 2016</time></span></li> <a class="post_title" href="/webnotes.html">Webnotes</a>&nbsp;
<li style="background-image: url('images/illusion.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a></span><span class="description"><span class="headline">Tour d'horizon du fonctionnement de SSL et des solutions pour le sécuriser.</span><time class="created" datetime="2016-03-25T00:00:00+01:00">25 mars 2016</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('images/focus.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/focusing-on-what-matters.html">Focusing on what matters</a></span><span class="description"><span class="headline">How to avoid the information overload?</span><time class="created" datetime="2016-03-17T00:00:00+01:00">17 mars 2016</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/retours-sur-un-atelier-zeronet.html">Retours sur un atelier ZeroNet</a></span><span class="description"><span class="headline">Comment contourner la censure grâce à un Web pair-à-pair ?</span><time class="created" datetime="2016-03-17T00:00:00+01:00">17 mars 2016</time></span></li> <span class="metadata date">février 2018</span>
<li style="background-image: url('images/horizon.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lhorizon.html">L'horizon</a></span><span class="description"><span class="headline">Temps de changer d'horizon. Mon départ de Mozilla et le début d'une <a class="post_title" href="/faire-moins.html">Faire moins</a>&nbsp;
nouvelle histoire.</span><time class="created" datetime="2016-03-02T00:00:00+01:00">02 mars 2016</time></span></li> <span class="metadata category">Réfléxions</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lets-encrypt-haproxy.html">Let's Encrypt + HAProxy</a></span><span class="description"><span class="headline">Comment j'ai mis en place des certificats SSL avec Let's Encrypt <li>
derrière haproxy.</span><time class="created" datetime="2016-02-11T00:00:00+01:00">11 février 2016</time></span></li> <span class="metadata date">octobre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/ateliers-dautodefense-numerique.html">Ateliers d'autodéfense numérique</a></span><span class="description"><span class="headline">J'ai récemment animé des ateliers d'autodéfense numérique. Voici <a class="post_title" href="/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a>&nbsp;
quelques retours et pistes d'améliorations.</span><time class="created" datetime="2016-01-14T00:00:00+01:00">14 janvier 2016</time></span></li> <span class="metadata category">Brassage</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html">Rencontres python francophones, 2015</a></span><span class="description"><span class="headline">Retours sur les rencontres python francophones de 2015.</span><time class="created" datetime="2015-11-02T00:00:00+01:00">02 novembre 2015</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/web-distribution-signing.html">Web distribution signing</a></span><span class="description"><span class="headline">Bringing trust back between software authors and user agents.</span><time class="created" datetime="2015-10-12T00:00:00+02:00">12 octobre 2015</time></span></li> <span class="metadata date">mai 2016</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/roles.html">Rôles</a></span><span class="description"><span class="headline">De l'importance des rôles informels et de leur partage au sein d'un <a class="post_title" href="/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a>&nbsp;
groupe.</span><time class="created" datetime="2015-06-29T00:00:00+02:00">29 juin 2015</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/les-problemes-de-pgp.html">Les problèmes de PGP</a></span><span class="description"><span class="headline">Quels sont les soucis liés à PGP, que faire ?</span><time class="created" datetime="2015-05-25T00:00:00+02:00">25 mai 2015</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/travail-et-creativite.html">Travail et créativité</a></span><span class="description"><span class="headline">Travailler moins pour laisser plus de place à la créativité.</span><time class="created" datetime="2015-05-21T00:00:00+02:00">21 mai 2015</time></span></li> <span class="metadata date">mars 2016</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/simplifier-les-preuves-didentites.html">Simplifier les preuves d'identités</a></span><span class="description"><span class="headline">Qu'est-ce que Keybase.io et comment essayent-ils de simplifier la <a class="post_title" href="/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a>&nbsp;
création de preuves d'identité.</span><time class="created" datetime="2015-05-11T00:00:00+02:00">11 mai 2015</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/phrases-de-passe-et-bonnes-pratiques.html">Phrases de passe et bonnes pratiques</a></span><span class="description"><span class="headline">Communiquer de manière chiffrée n'est pas aisée, et nécessite de <li><span class="metadata date"></span><a class="post_title" href="/categories.html">plus d'articles </a>&nbsp;</li></ul>
mémoriser des phrases de passes complexes. Comment s'en sortir ?</span><time class="created" datetime="2015-05-09T00:00:00+02:00">09 mai 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/chiffrement.html">Chiffrement</a></span><span class="description"><span class="headline">Face a la surveillance généralisée, une seule solution, le <ul class="articles_list">
chiffrement de nos données et communications.</span><time class="created" datetime="2015-05-08T00:00:00+02:00">08 mai 2015</time></span></li> <li><span class="metadata date"><h2>Journal</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/language.html">Language</a></span><span class="description"><span class="headline">Nos langues peuvent être autant de frontières que de ponts...</span><time class="created" datetime="2015-05-01T00:00:00+02:00">01 mai 2015</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-secret-du-bonheur.html">Le secret du bonheur</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-11-20T00:00:00+01:00">20 novembre 2014</time></span></li> <span class="metadata date">juillet 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/whats-hawk-and-how-to-use-it.html">What's Hawk and how to use it?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-31T00:00:00+02:00">31 juillet 2014</time></span></li> <a class="post_title" href="/ours.html">Ours</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html">Quel métier, quelle utilité ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html">Retours sur deux ans à Mozilla</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-revenu-de-base.html">Le revenu de base</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-10-03T00:00:00+02:00">03 octobre 2013</time></span></li> <span class="metadata date">juin 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/des-carnets-desquisse-fr.html">Des carnets d'esquisse</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-08-16T00:00:00+02:00">16 août 2013</time></span></li> <a class="post_title" href="/velo.html">Vélo</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-07-06T00:00:00+02:00">06 juillet 2013</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/new-year-python-meme-2012.html">New year python meme, 2012</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-07-01T00:00:00+02:00">01 juillet 2013</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-06-14T00:00:00+02:00">14 juin 2013</time></span></li> <span class="metadata date">juin 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/confiance-fr.html">Des profils de confiance partout et pour tout ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-04-02T00:00:00+02:00">02 avril 2013</time></span></li> <a class="post_title" href="/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cross-origin-in-cornice.html">Implementing CORS in Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-04-02T00:00:00+02:00">02 avril 2013</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/status-board-fr.html">Status board</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-29T00:00:00+01:00">29 décembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/habitat-collectif.html">Habitat collectif</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> <span class="metadata date">mai 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/languages.html">Languages</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> <a class="post_title" href="/un-an.html">Brasserie - petit bilan, après un an dexistence</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/tricot.html">Tricot</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/astuces-ssh.html">Astuces SSH</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/gnome-3-extensions.html">Gnome 3, extensions</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <span class="metadata date">mai 2018</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/groovy.html">&quot;Groovy&quot;</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <a class="post_title" href="/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/notre-dame-des-landes.html">Notre dame des landes</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/semences-paysannes.html">Semences paysannes</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-20T00:00:00+01:00">20 décembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lifestyle-fr.html">Lifestyle</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-11-05T00:00:00+01:00">05 novembre 2012</time></span></li> <span class="metadata date">octobre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cheese-code-wrap-up.html">Cheese &amp; code - Wrap-up</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-10-22T00:00:00+02:00">22 octobre 2012</time></span></li> <a class="post_title" href="/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/afpy-computer-camp-october-20-21.html">Cheese &amp; Code party: October 20-21</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-09-20T00:00:00+02:00">20 septembre 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/circus-sprint-at-pyconfr.html">Circus sprint at PyconFR</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-09-17T00:00:00+02:00">17 septembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pourquoi-mozilla-fr.html">Pourquoi Mozilla?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-07-16T00:00:00+02:00">16 juillet 2012</time></span></li> <span class="metadata date">juin 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/refactoring-cornice.html">Refactoring Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-05-14T00:00:00+02:00">14 mai 2012</time></span></li> <a class="post_title" href="/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/bidouille-fr.html">Bidouille</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-30T00:00:00+02:00">30 avril 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/djangocong-2012-fr.html">Djangocong 2012</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-16T00:00:00+02:00">16 avril 2012</time></span></li> <li><span class="metadata date"></span><a class="post_title" href="/category/journal.html">plus d'articles </a>&nbsp;</li></ul>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/biere-maison-fr.html">Bière maison !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-10T00:00:00+02:00">10 avril 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/motivation-benevolat-et-participation-fr.html">Motivation, bénévolat et participation</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-10T00:00:00+02:00">10 avril 2012</time></span></li> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/les-dangers-du-livre-numerique-fr.html">Les dangers du livre numérique</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-01-23T00:00:00+01:00">23 janvier 2012</time></span></li> <li><span class="metadata date"><h2>Notes</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/2012-first-months.html">2012, first months</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-01-21T00:00:00+01:00">21 janvier 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html">Using JPype to bridge python and Java</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-11-06T00:00:00+01:00">06 novembre 2011</time></span></li> <span class="metadata date">décembre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html">How are you handling your shared expenses?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-10-15T00:00:00+02:00">15 octobre 2011</time></span></li> <a class="post_title" href="/neipa-3.html">NEIPA #3</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/la-simplicite-volontaire-contre-le-mythe-de-labondance-fr.html">La simplicité volontaire contre le mythe de l'abondance</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-10-14T00:00:00+02:00">14 octobre 2011</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html">Using dbpedia to get languages influences</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-08-16T00:00:00+02:00">16 août 2011</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pelican-9-months-later.html">Pelican, 9 months later</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-07-25T00:00:00+02:00">25 juillet 2011</time></span></li> <span class="metadata date">décembre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/introducing-cornice.html">Introducing Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-07-12T00:00:00+02:00">12 juillet 2011</time></span></li> <a class="post_title" href="/neipa-2.html">NEIPA #2</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire-fr.html">Un coup de main pour mon mémoire!</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-05-25T00:00:00+02:00">25 mai 2011</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler-fr.html">Travailler moins pour mieux travailler ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-05-19T00:00:00+02:00">19 mai 2011</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html">Analyse users' browsing context to build up a web recommender</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-04-01T00:00:00+02:00">01 avril 2011</time></span></li> <span class="metadata date">juin 2013</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html">Working directly on your server? How to backup and sync your dev environment with unison</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-03-16T00:00:00+01:00">16 mars 2011</time></span></li> <a class="post_title" href="/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/wrap-up-of-the-distutils2-paris-sprint.html">Wrap up of the distutils2 paris' sprint</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-02-08T00:00:00+01:00">08 février 2011</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pypi-on-couchdb.html">PyPI on CouchDB</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-20T00:00:00+01:00">20 janvier 2011</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html">Help me to go to the distutils2 paris' sprint</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-15T00:00:00+01:00">15 janvier 2011</time></span></li> <span class="metadata date">juin 2013</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/usages-informatique-fr.html">Quels usages pour l'informatique ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-12T00:00:00+01:00">12 janvier 2011</time></span></li> <a class="post_title" href="/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html">Fork you ! or how the social coding can help you</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-11-05T00:00:00+01:00">05 novembre 2010</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-to-reboot-your-bebox-using-the-cli.html">How to reboot your bebox using the CLI</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-21T00:00:00+02:00">21 octobre 2010</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/dynamically-change-your-gnome-desktop-wallpaper.html">Dynamically change your gnome desktop wallpaper</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-11T00:00:00+02:00">11 octobre 2010</time></span></li> <span class="metadata date">mars 2013</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html">How to install NGINX + PHP 5.3 on FreeBSD.</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-10T00:00:00+02:00">10 octobre 2010</time></span></li> <a class="post_title" href="/le-revenu-de-base.html">Le revenu de base</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html">Pelican, a simple static blog generator in python</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-06T00:00:00+02:00">06 octobre 2010</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html">An amazing summer of code working on distutils2</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-08-16T00:00:00+02:00">16 août 2010</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html">Introducing the distutils2 index crawlers</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-07-06T00:00:00+02:00">06 juillet 2010</time></span></li> <span class="metadata date">décembre 2012</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html">Sprinting on distutils2 in Tours</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-07-06T00:00:00+02:00">06 juillet 2010</time></span></li> <a class="post_title" href="/habitat-collectif.html">Habitat collectif</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html">Use Restructured Text (ReST) to power your presentations</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-06-25T00:00:00+02:00">25 juin 2010</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/first-week-working-on-distutils2.html">first week working on distutils2</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-06-04T00:00:00+02:00">04 juin 2010</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/a-distutils2-gsoc.html">A Distutils2 GSoC</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-05-01T00:00:00+02:00">01 mai 2010</time></span></li> <span class="metadata date">décembre 2012</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-temps-des-graces-courrez-y-fr.html">Le temps des grâces, courrez-y !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-03-28T00:00:00+01:00">28 mars 2010</time></span></li> <a class="post_title" href="/tricot.html">Tricot</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante-fr.html">Semaine de lenvironnement: La consommation étudiante</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-02-24T00:00:00+01:00">24 février 2010</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/python-go-fr.html">Python ? go !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2009-12-17T00:00:00+01:00">17 décembre 2009</time></span></li> <li><span class="metadata date"></span><a class="post_title" href="/category/notes.html">plus d'articles </a>&nbsp;</li></ul>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/amap-media-paniers-bio-a-5e-fr.html">AMAP + Média = Paniers bio à 5e ?!</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2009-11-11T00:00:00+01:00">11 novembre 2009</time></span></li> </div>
</ul>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web - Authors</title> <title>Alexis - Carnets en ligne - Authors</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -41,16 +41,15 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<h1>Authors on Carnets Web</h1> <h1>Authors on Alexis - Carnets en ligne</h1>
<ul> <li><a href="https://blog.notmyidea.org/author/alexis-metaireau.html">Alexis Métaireau</a> (97)</li> <ul> <li><a href="https://blog.notmyidea.org/author/alexis-metaireau.html">Alexis Métaireau</a> (106)</li>
<li><a href="https://blog.notmyidea.org/author/alexis-metaireau-mathieu-leplatre.html">Alexis Métaireau, Mathieu Leplatre</a> (1)</li>
</ul> </ul>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Avez vous confiance en SSL? - Carnets Web</title> <title>Avez vous confiance en SSL? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -78,7 +78,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -104,7 +104,7 @@ le petit cadenas (qui prouve qu'une connexion SSL est en cours) n'est
<li>un tour des solutions existantes actuellement et de pourquoi je ne les trouve <li>un tour des solutions existantes actuellement et de pourquoi je ne les trouve
pas vraiment satisfaisantes.</li> pas vraiment satisfaisantes.</li>
</ul> </ul>
<h2>Comment fonctionne SSL?</h2> <h2 id="comment-fonctionne-ssl">Comment fonctionne SSL?</h2>
<p>Pour expliquer les problèmes de SSL, j'ai d'abord besoin d'expliquer comment <p>Pour expliquer les problèmes de SSL, j'ai d'abord besoin d'expliquer comment
tout ça fonctionne.</p> tout ça fonctionne.</p>
<p>SSL repose sur l'utilisation de certificats, qui sont générés par des autorités <p>SSL repose sur l'utilisation de certificats, qui sont générés par des autorités
@ -134,7 +134,7 @@ a été compromise et les attaquant.e.s ont pu générer des certificats SSL
frauduleux, ce qui leur a permis d'attaquer des sites tels que Facebook ou GMail.</p> frauduleux, ce qui leur a permis d'attaquer des sites tels que Facebook ou GMail.</p>
<p>Vous pouvez retrouver une liste des risques et menaces autour des <em>CA</em> <a href="http://wiki.cacert.org/Risk/History">sur le <p>Vous pouvez retrouver une liste des risques et menaces autour des <em>CA</em> <a href="http://wiki.cacert.org/Risk/History">sur le
wiki de CACert</a>.</p> wiki de CACert</a>.</p>
<h2>Attaque de l'homme du milieu avec SSL</h2> <h2 id="attaque-de-lhomme-du-milieu-avec-ssl">Attaque de l'homme du milieu avec SSL</h2>
<p>A force de dire que c'était très facile à faire, j'ai eu envie d'essayer <p>A force de dire que c'était très facile à faire, j'ai eu envie d'essayer
d'espionner des connections protégées par SSL, et effectivement c'est d'espionner des connections protégées par SSL, et effectivement c'est
carrément flippant tellement c'est simple.</p> carrément flippant tellement c'est simple.</p>
@ -169,14 +169,14 @@ sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport <span class="m">80</s
<p>Et paf, <strong>on voit tout ce qui passe entre la machine et le serveur SSL</strong>. On peut <p>Et paf, <strong>on voit tout ce qui passe entre la machine et le serveur SSL</strong>. On peut
d'ailleurs même imaginer faire tourner ces quelques commandes sur un d'ailleurs même imaginer faire tourner ces quelques commandes sur un
raspberry pi, pour aller encore plus vite…</p> raspberry pi, pour aller encore plus vite…</p>
<h3>Key-pinning dans les navigateurs</h3> <h3 id="key-pinning-dans-les-navigateurs">Key-pinning dans les navigateurs</h3>
<p>Actuellement, n'importe quel <em>CA</em> peut générer des certificats pour <p>Actuellement, n'importe quel <em>CA</em> peut générer des certificats pour
n'importe quel site, et c'est en grande partie ce qui pose souci. Une des n'importe quel site, et c'est en grande partie ce qui pose souci. Une des
manières de faire évoluer la situation est d'épingler les certificats de manières de faire évoluer la situation est d'épingler les certificats de
certains sites directement dans les navigateurs.</p> certains sites directement dans les navigateurs.</p>
<p>Cette approche a le mérite de fonctionner très bien <a href="https://dxr.mozilla.org/mozilla-central/source/security/manager/ssl/StaticHPKPins.h?from=StaticHPKPins.h">pour un petit nombre de <p>Cette approche a le mérite de fonctionner très bien <a href="https://dxr.mozilla.org/mozilla-central/source/security/manager/ssl/StaticHPKPins.h?from=StaticHPKPins.h">pour un petit nombre de
sites critiques (Google, Facebook, etc)</a>.</p> sites critiques (Google, Facebook, etc)</a>.</p>
<h3>HTTP Public Key Pinning (HPKP)</h3> <h3 id="http-public-key-pinning-hpkp">HTTP Public Key Pinning (HPKP)</h3>
<p><a href="https://developer.mozilla.org/en/docs/Web/Security/Public_Key_Pinning"><em>HTTP Public Key Pinning</em></a> <p><a href="https://developer.mozilla.org/en/docs/Web/Security/Public_Key_Pinning"><em>HTTP Public Key Pinning</em></a>
est également une solution de <em>pinning</em> qui permet d'établir une confiance lors est également une solution de <em>pinning</em> qui permet d'établir une confiance lors
de la première connexion avec le site. C'est ce qu'on appelle du <em>Trust on First de la première connexion avec le site. C'est ce qu'on appelle du <em>Trust on First
@ -185,7 +185,7 @@ Use</em> ou <em>TOFU</em>.</p>
les certificats correspondent bien lors des prochaines visites.</p> les certificats correspondent bien lors des prochaines visites.</p>
<p><em>HPKP</em> est disponible dans Firefox depuis Janvier 2015 et dans Chrome <p><em>HPKP</em> est disponible dans Firefox depuis Janvier 2015 et dans Chrome
depuis Octobre 2015.</p> depuis Octobre 2015.</p>
<h3>Certificate transparency: des journaux auditables</h3> <h3 id="certificate-transparency-des-journaux-auditables">Certificate transparency: des journaux auditables</h3>
<p>Une autre approche est celle proposée par <em>certificate transparency</em>:</p> <p>Une autre approche est celle proposée par <em>certificate transparency</em>:</p>
<blockquote> <blockquote>
<p>Certificate Transparency aims to remedy these certificate-based threats by <p>Certificate Transparency aims to remedy these certificate-based threats by
@ -207,7 +207,7 @@ globale mise en place par les gouvernements par exemple.</p>
<p>Si vous lisez bien l'anglais, je vous invite à aller lire <p>Si vous lisez bien l'anglais, je vous invite à aller lire
<a href="http://security.stackexchange.com/a/52838">cette description du problème et de la solution</a> <a href="http://security.stackexchange.com/a/52838">cette description du problème et de la solution</a>
que je trouve très bien écrite.</p> que je trouve très bien écrite.</p>
<h3>DANE + DNSSEC</h3> <h3 id="dane-dnssec">DANE + DNSSEC</h3>
<blockquote> <blockquote>
<p>The DANE working group has developed a framework for securely <p>The DANE working group has developed a framework for securely
retrieving keying information from the DNS [RFC6698]. This retrieving keying information from the DNS [RFC6698]. This
@ -245,7 +245,7 @@ been hampered (As of 22 January 2010) by several difficulties:</p>
deployment</li> deployment</li>
</ul> </ul>
</blockquote> </blockquote>
<h2>Solutions basées sur la blockchain</h2> <h2 id="solutions-basees-sur-la-blockchain">Solutions basées sur la blockchain</h2>
<p>Une dernière piste semble être l'utilisation de la <em>blockchain</em> pour distribuer <p>Une dernière piste semble être l'utilisation de la <em>blockchain</em> pour distribuer
des clés par site.</p> des clés par site.</p>
<p>La solution <em>DNSChain</em> me paraissait tout d'abord un bon point de départ mais <p>La solution <em>DNSChain</em> me paraissait tout d'abord un bon point de départ mais
@ -255,11 +255,6 @@ et interventions du développeur du projet m'ont fait changer d'avis.</p>
Peut-être pour un prochain billet. Toute piste de réflexion est bien sur la Peut-être pour un prochain billet. Toute piste de réflexion est bien sur la
bienvenue sur ces sujets!</p> bienvenue sur ces sujets!</p>
<em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/tinou/133982614/in/photolist-cQGn5-9AtoAP-dpiR2X-baBc4e-5ZvGJj-8KrKoG-gg2XM4-9KgHee-6iB7C-4zUNee-9hj2zF-43REk-aoanQb-947pCM-aj1P6z-9tE3g-pq8kRk-qp6hK1-hp13Uh-7ywK7o-4F41Pw-72piQE-22a8kTc-ECJ2r6-6ufU4Y-7WLPTu-5bLdgB-ha8ByJ-jqvD3-LktPD-izBtN4-aa7ABY-pz4aLg-49jEZi-YGoRJ-aCuCH2-4muqSR-7ey33A-6nUDPT-ajeJbN-a89tyX-s3pjm1-9imyxV-WswqNm-aDHw9-cN7MWS-abdTEE-a89tAT-aeVpTf-oAuYHd">Tinou Bao</a> proposé sous license CC BY 2.0. Merci !</em> <em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/tinou/133982614/in/photolist-cQGn5-9AtoAP-dpiR2X-baBc4e-5ZvGJj-8KrKoG-gg2XM4-9KgHee-6iB7C-4zUNee-9hj2zF-43REk-aoanQb-947pCM-aj1P6z-9tE3g-pq8kRk-qp6hK1-hp13Uh-7ywK7o-4F41Pw-72piQE-22a8kTc-ECJ2r6-6ufU4Y-7WLPTu-5bLdgB-ha8ByJ-jqvD3-LktPD-izBtN4-aa7ABY-pz4aLg-49jEZi-YGoRJ-aCuCH2-4muqSR-7ey33A-6nUDPT-ajeJbN-a89tyX-s3pjm1-9imyxV-WswqNm-aDHw9-cN7MWS-abdTEE-a89tAT-aeVpTf-oAuYHd">Tinou Bao</a> proposé sous license CC BY 2.0. Merci !</em>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Bidouille - Carnets Web</title> <title>Bidouille - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -18,10 +18,6 @@
<meta name="tags" contents="diy" />
<meta name="tags" contents="électronique" />
<meta name="tags" contents="hack" />
<meta name="tags" contents="bidouille" />
<style> <style>
h1 { h1 {
@ -75,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -88,50 +84,49 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Bidouille bidouille bidouille.</p>
<p>Je pense que je suis un bidouilleur logiciel: j'aime bien aller farfouiller
dans le code pour comprendre comment tel ou tel programme fonctionne (ou
trop souvent comment il ne fonctionne pas !), faire des petites modifications,
tester, modifier, re-tester, tout casser, réparer …</p>
<p>Et cette bidouille, cette envie de comprendre comment les choses fonctionnent,
et depuis peu cette envie de mettre en pratique ces connaissances dépasse la
bidouille logicielle. J'ai passé une grosse partie de mon week-end à Main
d'Œuvre, où l'association <a class="reference external" href="http://www.underconstruction.fr">Under Construction</a> faisait se rencontrer le milieu de
l'éducation populaire et le milieu de la bidouille.</p>
<p>Forcement, ni une ni deux, je saute dans le bateau en marche et, n'étant ni un
très grand bidouilleur ni un très grand animateur, j'en ressort enrichi de
toutes ces rencontres, de tous ces préjugés qui tombent, et de quelques
découvertes bluffantes, des idées plein la tête.</p>
<p>J'avais entendu parler des &quot;<a class="reference external" href="http://www.reprap.org">rep-raps</a>&quot;, des
imprimantes en 3 dimensions capables de produire des pièces en plastique
mais je n'avais jamais eu l'occasion de voir le bousin en vrai. Et
c'est impressionnant. Vraiment. (&quot;Bienvenue dans le 21ème siècle !&quot;)</p>
<p>Ça laisse énormément à penser autour des questions d'émancipation
technologique, et de non dépendance envers les constructeurs, dans le milieu de
l'électro-ménager, par exemple. &quot;Ah tiens, cette pièce est cassée, je vais
aller utiliser la rep-rap du coin pour me la fabriquer&quot;. Et hop, on mets fin à
tout un cycle d'obsolescence programmée…</p>
<p>Mais au delà du défi technique et technologique, j'ai pu refaire un petit peu
d'électronique, et découvrir que j'y prends vraiment gout rapidement. Il y a
bien évidemment un coté très ludique (la led s'allume quand on la branche),
mais il y a surtout cette notion de DIY (Do It Yourself) sous jacente: une fois
que je sais comment ça fonctionne, je peux vraiment faire des choses utiles de
mes 10 doigts, réparer des petits objets, bidouiller ceux existants etc.</p>
<p>De la récupération de composants on essaye de voir ce qu'on peut faire, on a
terminé par faire un &quot;vibro-bot&quot;, un vibreur de téléphone portable monté sur
une tête de brosse à dents, faisant donc avancer cette dernière.</p>
<p>C'est pour s'amuser, c'est pas sérieux ! Pour autant, les concepts de
l'électricité sont appris et je me retrouve avec cette envie de comprendre un
peu plus ce monde de l'électronique qui, je m'en rends compte, m'échappe encore
complètement. De l'éducation à la bidouille !</p>
<p>Allez, demain c'est fer à souder, piles, leds, interrupteurs, potars et c'est
parti !</p>
Vous pouvez également <a onclick="(function(){ <p>Bidouille bidouille bidouille.</p>
let here = document.location; <p>Je pense que je suis un bidouilleur logiciel: j'aime bien aller
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; farfouiller dans le code pour comprendre comment tel ou tel programme
return false; fonctionne (ou trop souvent comment il ne fonctionne pas !), faire des
})();return false;">télécharger cet article en pdf</a>. petites modifications, tester, modifier, re-tester, tout casser, réparer
</p>
<p>Et cette bidouille, cette envie de comprendre comment les choses
fonctionnent, et depuis peu cette envie de mettre en pratique ces
connaissances dépasse la bidouille logicielle. J'ai passé une grosse
partie de mon week-end à Main d'Œuvre, où l'association <a href="http://www.underconstruction.fr">Under
Construction</a> faisait se rencontrer le
milieu de l'éducation populaire et le milieu de la bidouille.</p>
<p>Forcement, ni une ni deux, je saute dans le bateau en marche et, n'étant
ni un très grand bidouilleur ni un très grand animateur, j'en ressort
enrichi de toutes ces rencontres, de tous ces préjugés qui tombent, et
de quelques découvertes bluffantes, des idées plein la tête.</p>
<p>J'avais entendu parler des "<a href="http://www.reprap.org">rep-raps</a>", des
imprimantes en 3 dimensions capables de produire des pièces en plastique
mais je n'avais jamais eu l'occasion de voir le bousin en vrai. Et c'est
impressionnant. Vraiment. ("Bienvenue dans le 21ème siècle !")</p>
<p>Ça laisse énormément à penser autour des questions d'émancipation
technologique, et de non dépendance envers les constructeurs, dans le
milieu de l'électro-ménager, par exemple. "Ah tiens, cette pièce est
cassée, je vais aller utiliser la rep-rap du coin pour me la fabriquer".
Et hop, on mets fin à tout un cycle d'obsolescence programmée…</p>
<p>Mais au delà du défi technique et technologique, j'ai pu refaire un
petit peu d'électronique, et découvrir que j'y prends vraiment gout
rapidement. Il y a bien évidemment un coté très ludique (la led s'allume
quand on la branche), mais il y a surtout cette notion de DIY (Do It
Yourself) sous jacente: une fois que je sais comment ça fonctionne, je
peux vraiment faire des choses utiles de mes 10 doigts, réparer des
petits objets, bidouiller ceux existants etc.</p>
<p>De la récupération de composants on essaye de voir ce qu'on peut faire,
on a terminé par faire un "vibro-bot", un vibreur de téléphone portable
monté sur une tête de brosse à dents, faisant donc avancer cette
dernière.</p>
<p>C'est pour s'amuser, c'est pas sérieux ! Pour autant, les concepts de
l'électricité sont appris et je me retrouve avec cette envie de
comprendre un peu plus ce monde de l'électronique qui, je m'en rends
compte, m'échappe encore complètement. De l'éducation à la bidouille !</p>
<p>Allez, demain c'est fer à souder, piles, leds, interrupteurs, potars et
c'est parti !</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Bière maison ! - Carnets Web</title> <title>Bière maison 33 - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,125 +71,126 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Bière maison !</h1> <h1 class="post-title">Bière maison 33</h1>
<span class="post-date">10 avril 2012</span> <span class="post-date">04 octobre 2012</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Et voilà, c'est notre troisième brassin. On a commencé à faire notre propre <h1 id="biere-maison-33">Bière maison !</h1>
bière (avec un ami, Fred) il y a quasiment un an maintenant, et après quelques <p>Et voilà, c'est notre troisième brassin. On a commencé à faire notre
dératés, même s'il nous reste encore bien du chemin à parcourir pour avoir propre bière (avec un ami, Fred) il y a quasiment un an maintenant, et
quelque chose qui nous convienne réellement… c'est pas si pire comme on dit !</p> après quelques dératés, même s'il nous reste encore bien du chemin à
<p>Cette fois-çi, on s'est penché sur la confection d'une IPA (Indian Pale Ale, une parcourir pour avoir quelque chose qui nous convienne réellement… c'est
bière un peu plus amère que celle qu'on à l'habitude de trouver en France).</p> pas si pire comme on dit !</p>
<p>Cette fois-çi, on s'est penché sur la confection d'une IPA (Indian Pale
Ale, une bière un peu plus amère que celle qu'on à l'habitude de trouver
en France).</p>
<p>Elle est plus amère car elle comporte plus de houblon que les autres, et <p>Elle est plus amère car elle comporte plus de houblon que les autres, et
(dans notre cas en tout cas) parce qu'on fait la première fermentation en (dans notre cas en tout cas) parce qu'on fait la première fermentation
présence de houblon.</p> en présence de houblon.</p>
<div class="section" id="comment-qu-on-fait-de-la-biere"> <h2 id="comment-quon-fait-de-la-biere">Comment qu'on fait de la bière ?</h2>
<h2>Comment qu'on fait de la bière ?</h2> <p>Machine arrière; n'allons pas trop vite: comment est-ce qu'on fait de la
<p>Machine arrière; n'allons pas trop vite: comment est-ce qu'on fait de la bière, bière, d'abord ?</p>
d'abord ?</p> <p>En fin de compte, les quelques étapes nécessaire à la confection de la
<p>En fin de compte, les quelques étapes nécessaire à la confection de la bière ne bière ne sont pas bien sorcières; concassage de l'orge maltée, cuisson
sont pas bien sorcières; concassage de l'orge maltée, cuisson (libération de (libération de l'amidon dans l'eau), infusion du houblon,
l'amidon dans l'eau), infusion du houblon, refroidissement, première refroidissement, première fermentation, embouteillage et seconde
fermentation, embouteillage et seconde fermentation.</p> fermentation.</p>
<p>L'idée principale est transformer l'amidon d'orge maltée en sucre, pour le <p>L'idée principale est transformer l'amidon d'orge maltée en sucre, pour
&quot;donner à manger&quot; à des levures. Vous ajoutez un peu de houblon au milieu pour le "donner à manger" à des levures. Vous ajoutez un peu de houblon au
donner un petit goût amer et le tour est joué. Enfin presque.</p> milieu pour donner un petit goût amer et le tour est joué. Enfin
</div> presque.</p>
<div class="section" id="etape-par-etape"> <h2 id="etape-par-etape">Étape par étape</h2>
<h2>Étape par étape</h2> <p>Première étape: <strong>le concassage</strong>. On avait 6kg d'orge maltée à
<p>Première étape: <strong>le concassage</strong>. On avait 6kg d'orge maltée à concasser (plus concasser (plus exactement 6kg de malt pâle <em>7EDC</em> et 500g de malt cara
exactement 6kg de malt pâle <em>7EDC</em> et 500g de malt cara <em>50EDC</em>).</p> <em>50EDC</em>).</p>
<img alt="Image de concassage." src="images/concassage.jpg" style="width: 400px;" /> <p><img alt="Image de concassage." src="images/concassage.jpg"></p>
<p>Attention, pas trop fin dis donc ! On ne veut pas de la poudre, on veut <p>Attention, pas trop fin dis donc ! On ne veut pas de la poudre, on veut
simplement permettre à l'amidon de se dissoudre dans l'eau. Si on concasse le simplement permettre à l'amidon de se dissoudre dans l'eau. Si on
malt trop fin, on se retrouve avec un dépôt dégeulasse au fond de toutes les concasse le malt trop fin, on se retrouve avec un dépôt dégeulasse au
bouteilles (c'est l'expérience qui parle, notre première bière avait plus goût fond de toutes les bouteilles (c'est l'expérience qui parle, notre
de céréale que de bière…)</p> première bière avait plus goût de céréale que de bière…)</p>
<p>Contrairement aux fois précédentes où nous avions utilisé la technique du <p>Contrairement aux fois précédentes où nous avions utilisé la technique
marteau et du torchon (oui, comme vous pouvez l'imaginer, c'est assez long et du marteau et du torchon (oui, comme vous pouvez l'imaginer, c'est assez
fastidieux), On a utilisé… un moulin à malt ! Qui nous à permis de concasser les long et fastidieux), On a utilisé… un moulin à malt ! Qui nous à permis
6kg en 30 minutes (heureusement qu'on était trois pour se relayer sur le de concasser les 6kg en 30 minutes (heureusement qu'on était trois pour
moulin, parce que nos petits muscles fatiguaient assez vite; vous pouvez se relayer sur le moulin, parce que nos petits muscles fatiguaient assez
envisager de faire ça tout seul si vous êtes un tennisman).</p> vite; vous pouvez envisager de faire ça tout seul si vous êtes un
<img alt="C'est dur !" src="images/concasse.jpg" style="width: 700px;" /> tennisman).</p>
<p>La seconde étape, <strong>l'empatage</strong>. Il s'agit de faire chauffer notre orge maltée <p><img alt="C'est dur !" src="images/concasse.jpg"></p>
à différentes températures. Les fois précédentes, on avait utilisé plusieurs <p>La seconde étape, <strong>l'empatage</strong>. Il s'agit de faire chauffer notre orge
paliers de température, mais il semble que ça ne soit pas si nécessaire que ça, maltée à différentes températures. Les fois précédentes, on avait
selon les informations de l'ami Fred. On à donc tenté de faire chauffer notre utilisé plusieurs paliers de température, mais il semble que ça ne soit
malt directement à 50°C. Une petite erreur sur la route, on à eu peur de la pas si nécessaire que ça, selon les informations de l'ami Fred. On à
contamination bactérienne et on à décidé de faire bouillir nos 26L d'eau pour donc tenté de faire chauffer notre malt directement à 50°C. Une petite
être sur que les bactéries s'enfuient en courant. Je dis erreur parce que ça erreur sur la route, on à eu peur de la contamination bactérienne et on
nous à pris pas loin de 3h30, inertie quand tu nous tiens!</p> à décidé de faire bouillir nos 26L d'eau pour être sur que les
bactéries s'enfuient en courant. Je dis erreur parce que ça nous à pris
pas loin de 3h30, inertie quand tu nous tiens!</p>
<p>On se rends compte de la taille de la marmite un peu là:</p> <p>On se rends compte de la taille de la marmite un peu là:</p>
<img alt="Une grosse marmite" src="images/marmite.jpg" style="width: 400px;" /> <p><img alt="Une grosse marmite" src="images/marmite.jpg"></p>
<p>Une fois l'eau à température (54°C), il faut ajouter le malt et le laisser <p>Une fois l'eau à température (54°C), il faut ajouter le malt et le
durant 30mn à cette température, puis augmenter jusqu'à 65°C durant 1h.</p> laisser durant 30mn à cette température, puis augmenter jusqu'à 65°C
<p>La troisième étape, c'est <strong>le rinçage</strong>, l'idée est de récupérer l'amidon qui durant 1h.</p>
s'est dissout dans l'eau et de mettre de côté l'orge maltée (la partie solide). <p>La troisième étape, c'est <strong>le rinçage</strong>, l'idée est de récupérer
Pour ça, il faut faire chauffer de l'eau de rinçage. On a utilisé 10L d'eau de l'amidon qui s'est dissout dans l'eau et de mettre de côté l'orge maltée
rinçage qu'on a fait chauffer à 78°C, en comptant sur le fait qu'elle perdra de sa (la partie solide). Pour ça, il faut faire chauffer de l'eau de rinçage.
température (20°C à peu près) en étant utilisée. On a filtré deux fois pour On a utilisé 10L d'eau de rinçage qu'on a fait chauffer à 78°C, en
être sûr de ne rien perdre.</p> comptant sur le fait qu'elle perdra de sa température (20°C à peu près)
<img alt="Filtrage filtrage..." src="images/filtrage.jpg" style="width: 700px;" /> en étant utilisée. On a filtré deux fois pour être sûr de ne rien
perdre.</p>
<p><img alt="Filtrage filtrage..." src="images/filtrage.jpg"></p>
<p>L'étape d'après (la quatrième, vous suivez), c'est <strong>le houblonnage</strong>. <p>L'étape d'après (la quatrième, vous suivez), c'est <strong>le houblonnage</strong>.
On va faire infuser notre &quot;solution aqueuse&quot; (wouah, on dirait de la chimie !) On va faire infuser notre "solution aqueuse" (wouah, on dirait de la
avec du houblon. Il faut porter l'eau à ébullition et laisser faire durant 1h.</p> chimie !) avec du houblon. Il faut porter l'eau à ébullition et laisser
<p>Dernière étape: <strong>le refroidissement</strong>. On dirait que c'est tranquilou comme faire durant 1h.</p>
ça, mais en fait ça ne l'est pas tant que ça: il faut réussir à passer notre <p>Dernière étape: <strong>le refroidissement</strong>. On dirait que c'est tranquilou
liquide qui était en ébullition à 54°C en un temps acceptable. Pour ça, on comme ça, mais en fait ça ne l'est pas tant que ça: il faut réussir à
a utilisé un serpentin confectionné main.</p> passer notre liquide qui était en ébullition à 54°C en un temps
<img alt="Notre refroidisseur fait main par Fred." src="images/refroidisseur.jpg" style="width: 400px;" /> acceptable. Pour ça, on a utilisé un serpentin confectionné main.</p>
<p>Ç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 <p><img alt="Notre refroidisseur fait main par Fred." src="images/refroidisseur.jpg"></p>
de gérer ça à coup de baignoire et de glaçons, les temps n'étaient absolument <p>Ça nous a permis de passer de 100°C à 54°C en… 35 minutes quand même !
pas au rendez-vous).</p> (Nous avions essayé les fois précédentes de gérer ça à coup de baignoire
<img alt="Décidement pas." src="images/refroidissement.jpg" style="width: 700px;" /> et de glaçons, les temps n'étaient absolument pas au rendez-vous).</p>
<p><img alt="Décidement pas." src="images/refroidissement.jpg"></p>
<p>Je disais dernière étape, mais il ne faut pas oublier de rajouter les <p>Je disais dernière étape, mais il ne faut pas oublier de rajouter les
levures, qui elles vont faire tout le travail et transformer tout ça en… alcool levures, qui elles vont faire tout le travail et transformer tout ça en…
! Dans notre cas, on ajoute aussi dans la cuve de fermentation du houblon alcool ! Dans notre cas, on ajoute aussi dans la cuve de fermentation
question de donner l'amertume dont on a envie.</p> du houblon question de donner l'amertume dont on a envie.</p>
<p>On à mesuré une densité de 1046, ce qui veut dire 6° d'alcool. La cuve est <p>On à mesuré une densité de 1046, ce qui veut dire 6° d'alcool. La cuve
maintenant en train de buller tranquillement (les levures produisent du gaz qui est maintenant en train de buller tranquillement (les levures produisent
est évacué), et ça doit durer 15 jours approximativement.</p> du gaz qui est évacué), et ça doit durer 15 jours approximativement.</p>
</div> <h2 id="mise-en-bouteille">Mise en bouteille</h2>
<div class="section" id="mise-en-bouteille"> <p>Une fois ces deux semaines passées, il faut mettre en bouteille. Dans
<h2>Mise en bouteille</h2> notre cas nous avons récupéré des bouteilles à bouchon mécanique (vous
<p>Une fois ces deux semaines passées, il faut mettre en bouteille. Dans notre cas savez, les bouteilles de limonades) qu'on à bien rincé et nettoyé.</p>
nous avons récupéré des bouteilles à bouchon mécanique (vous savez, les <p>On s'équipe d'un siphon (pensez à prendre un tuyau avec un diamètre
bouteilles de limonades) qu'on à bien rincé et nettoyé.</p> assez important, le notre était petit et c'était assez long) et après
<p>On s'équipe d'un siphon (pensez à prendre un tuyau avec un diamètre assez avoir ajouté du sucre dans le mélange (pour réactiver les levures), on
important, le notre était petit et c'était assez long) et après avoir ajouté du remplit les bouteilles ! Il s'agit de la seconde fermentation, celle
sucre dans le mélange (pour réactiver les levures), on remplit les bouteilles qui va faire les bulles (la première fermentation se charge de l'alcool,
! Il s'agit de la seconde fermentation, celle qui va faire les bulles (la la seconde des bulles).</p>
première fermentation se charge de l'alcool, la seconde des bulles).</p> <p>Et voilà ! Il ne reste plus qu'à mettre les bouteilles de coté durant
<p>Et voilà ! Il ne reste plus qu'à mettre les bouteilles de coté durant deux deux semaines de plus et… à déguster le moment venu.</p>
semaines de plus et… à déguster le moment venu.</p> <p>On a donc pu tester notre bière la semaine dernière et, ma foi, elle est
<p>On a donc pu tester notre bière la semaine dernière et, ma foi, elle est pas pas mal du tout. Elle ne mousse pas trop et à un goût un peu amer.
mal du tout. Elle ne mousse pas trop et à un goût un peu amer. Malheureusement Malheureusement pas assez à mon goût, mais ça viendra. En comparaison à
pas assez à mon goût, mais ça viendra. En comparaison à nos précédents essais, nos précédents essais, c'est plutôt positif: la première était ratée
c'est plutôt positif: la première était ratée puisque trop de pression et trop puisque trop de pression et trop de dépôt (et donc un fort goût de
de dépôt (et donc un fort goût de levures) alors que la seconde (on avait tenté levures) alors que la seconde (on avait tenté d'ajouter de la lavande)
d'ajouter de la lavande) avait un goût de lavande amère, pour ne pas dire de avait un goût de lavande amère, pour ne pas dire de savon.</p>
savon.</p> <p>Cette dernière bière a un goût de… de bière ! Il nous reste encore à
<p>Cette dernière bière a un goût de… de bière ! Il nous reste encore à comprendre comprendre comment faire pour lui donner la saveur que l'on souhaite,
comment faire pour lui donner la saveur que l'on souhaite, mais c'est déjà un mais c'est déjà un grand pas en avant. Prochaine étape... La bière de
grand pas en avant. Prochaine étape... La bière de Noël !</p> Noël !</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Brasserie du Vieux Singe — Installation en cours. - Carnets Web</title> <title>Brasserie du Vieux Singe — Installation en cours. - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -78,7 +78,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -98,25 +98,20 @@ manquent, je ne ferais machine arrière pour rien au monde: je trouve finalement
<p>Après quelques hésitations au départ, j'ai décidé de mettre de côté mes activités liées à l'informatique: difficile à assumer quand on croise les copin.e.s avec qui on avait l'habitude de discuter énormement de ces sujets, mais ça permet de laisser plus de place pour l'humain. Plus de place pour les «Au fait, comment ça va toi ?» quand j'ai l'occasion de les recroiser, ce qui n'est pas plus désagréable :)</p> <p>Après quelques hésitations au départ, j'ai décidé de mettre de côté mes activités liées à l'informatique: difficile à assumer quand on croise les copin.e.s avec qui on avait l'habitude de discuter énormement de ces sujets, mais ça permet de laisser plus de place pour l'humain. Plus de place pour les «Au fait, comment ça va toi ?» quand j'ai l'occasion de les recroiser, ce qui n'est pas plus désagréable :)</p>
<p>Les journées sont donc organisées autour de la brasserie: beaucoup plus de planification que ce que j'imaginais au départ. Peut-être que c'est aussi du au fait que nous soyons tous les deux des ex-informaticiens un peu perfectionnistes sur les bords. On se voit très souvent pour avancer sur des sujets de fond tout comme sur du pratico-pratique. Pour vous donner un ordre d'idée des questionnements: Quelle taille d'entreprise ? Quelles valeurs communes ? Quelles bières ? Quelle image donner ? Quelle place donner au confort ? Comment éviter la compétitivité ? Comment réussir à impacter les producteurs (houblon / malt) de manière positive ? Quels salaires se donner ?</p> <p>Les journées sont donc organisées autour de la brasserie: beaucoup plus de planification que ce que j'imaginais au départ. Peut-être que c'est aussi du au fait que nous soyons tous les deux des ex-informaticiens un peu perfectionnistes sur les bords. On se voit très souvent pour avancer sur des sujets de fond tout comme sur du pratico-pratique. Pour vous donner un ordre d'idée des questionnements: Quelle taille d'entreprise ? Quelles valeurs communes ? Quelles bières ? Quelle image donner ? Quelle place donner au confort ? Comment éviter la compétitivité ? Comment réussir à impacter les producteurs (houblon / malt) de manière positive ? Quels salaires se donner ?</p>
<p>Un peu de production quand même (pour les amis) mais on se garde la grosse partie pour le lancement.</p> <p>Un peu de production quand même (pour les amis) mais on se garde la grosse partie pour le lancement.</p>
<h2>Apprentissage</h2> <h2 id="apprentissage">Apprentissage</h2>
<p>Je profite de ces quelques mois pour apprendre: autour de la fabrication et de la dégustation de bière bien sûr (encore un milieu en constante évolution !), mais pas que. J'ai maintenant quelques bases de gestion d'entreprise, en comptabilité, en biologie et en chimie. J'ai bien dit quelques <em>bases</em>, mais qu'est-ce que c'est agréable !</p> <p>Je profite de ces quelques mois pour apprendre: autour de la fabrication et de la dégustation de bière bien sûr (encore un milieu en constante évolution !), mais pas que. J'ai maintenant quelques bases de gestion d'entreprise, en comptabilité, en biologie et en chimie. J'ai bien dit quelques <em>bases</em>, mais qu'est-ce que c'est agréable !</p>
<p>C'est assez agréable de se remettre dans une posture d'apprenant, et d'avoir le temps pour cet apprentissage.</p> <p>C'est assez agréable de se remettre dans une posture d'apprenant, et d'avoir le temps pour cet apprentissage.</p>
<h2>Questionner la posture de «Chef d'entreprise» et son rapport au temps</h2> <h2 id="questionner-la-posture-de-chef-dentreprise-et-son-rapport-au-temps">Questionner la posture de «Chef d'entreprise» et son rapport au temps</h2>
<p>Décider de créer sa boîte, c'est aussi se poser la question de comment organiser son temps: combien de temps travailler ? Quel temps donner aux loisirs ?</p> <p>Décider de créer sa boîte, c'est aussi se poser la question de comment organiser son temps: combien de temps travailler ? Quel temps donner aux loisirs ?</p>
<p>Je trouve rassurant de voir ces interrogations abordées avant-même le démarrage de l'entreprise. La plupart des personnes qui nous suivent et nous guident partent du postulat qu'il faudra bosser énormement, là ou nous essayons de trouver un modèle qui soit viable dans le temps, notre souhait est de bosser à 80% (4 jours par semaine).</p> <p>Je trouve rassurant de voir ces interrogations abordées avant-même le démarrage de l'entreprise. La plupart des personnes qui nous suivent et nous guident partent du postulat qu'il faudra bosser énormement, là ou nous essayons de trouver un modèle qui soit viable dans le temps, notre souhait est de bosser à 80% (4 jours par semaine).</p>
<p>Certes, il faut travailler pour que ça tourne, mais il faut aussi s'accorder des temps de respiration pour être d'autant plus efficace quand on bosse. C'est d'autant plus intéressant de prévoir ces aspects lors de la phase de <em>design</em> de l'activité: on organise le temps autrement ! Ceux qui me lisent de temps à autre savent que c'est une constante de mes réflexions, on verra si ça fonctionne dans les faits.</p> <p>Certes, il faut travailler pour que ça tourne, mais il faut aussi s'accorder des temps de respiration pour être d'autant plus efficace quand on bosse. C'est d'autant plus intéressant de prévoir ces aspects lors de la phase de <em>design</em> de l'activité: on organise le temps autrement ! Ceux qui me lisent de temps à autre savent que c'est une constante de mes réflexions, on verra si ça fonctionne dans les faits.</p>
<h2>Les projets collectifs</h2> <h2 id="les-projets-collectifs">Les projets collectifs</h2>
<p>Un autre point important est la place que le <em>collectif</em> prends dans cette nouvelle expérience. Au départ, quand j'imaginais le projet sur le court-terme, je mettais la composante collective au second plan dans l'immédiat (au delà des intéractions avec Fred, mon associé). L'occasion de travailler à la construction d'un espace collectif s'est présentée, et on y travaille actuellement.</p> <p>Un autre point important est la place que le <em>collectif</em> prends dans cette nouvelle expérience. Au départ, quand j'imaginais le projet sur le court-terme, je mettais la composante collective au second plan dans l'immédiat (au delà des intéractions avec Fred, mon associé). L'occasion de travailler à la construction d'un espace collectif s'est présentée, et on y travaille actuellement.</p>
<p>C'est à la fois riche (en partage de points de vue, en entre-aide) et à la fois difficile (beaucoup d'heures de réunions, il faut apprendre à communiquer de manière efficace, il faut parfois faire face à des conflits). Dans l'ensemble, je ne regrette pas ce choix même si il est important de ne pas perdre de vue les objectifs de la brasserie dans l'histoire.</p> <p>C'est à la fois riche (en partage de points de vue, en entre-aide) et à la fois difficile (beaucoup d'heures de réunions, il faut apprendre à communiquer de manière efficace, il faut parfois faire face à des conflits). Dans l'ensemble, je ne regrette pas ce choix même si il est important de ne pas perdre de vue les objectifs de la brasserie dans l'histoire.</p>
<p>Et puis la collaboration ne s'arrête pas qu'au collectif d'activité: le milieu brassicole est en mutation, et les valeurs de partage font bel et bien partie du lot de changements. Les rencontre avec les brasseurs du coin de Rennes le montrent bien: l'esprit est plus à l'entraide qu'à la concurrence, au vu de la demande qui est toujours croissante. Tant mieux, on a autre chose à faire qu'à se tirer dans les pâtes ;)</p> <p>Et puis la collaboration ne s'arrête pas qu'au collectif d'activité: le milieu brassicole est en mutation, et les valeurs de partage font bel et bien partie du lot de changements. Les rencontre avec les brasseurs du coin de Rennes le montrent bien: l'esprit est plus à l'entraide qu'à la concurrence, au vu de la demande qui est toujours croissante. Tant mieux, on a autre chose à faire qu'à se tirer dans les pâtes ;)</p>
<h2>Besoin de concret</h2> <h2 id="besoin-de-concret">Besoin de concret</h2>
<p>Après cette phase assez énorme de réfléxion, de questionnement, de tricotage, de détricotage, de retricotage, j'ai bien envie de passer à l'action; et ça tombe bien, c'est ce qui est à l'horizon. L'idée est d'ouvrir la brasserie à la fin de cette année pour commencer la commercialisation en Janvier 2018. Ça fait un peu peur de voir l'échéance arriver, mais c'est aussi excitant que vertigineux…</p> <p>Après cette phase assez énorme de réfléxion, de questionnement, de tricotage, de détricotage, de retricotage, j'ai bien envie de passer à l'action; et ça tombe bien, c'est ce qui est à l'horizon. L'idée est d'ouvrir la brasserie à la fin de cette année pour commencer la commercialisation en Janvier 2018. Ça fait un peu peur de voir l'échéance arriver, mais c'est aussi excitant que vertigineux…</p>
<p>Faire ensemble. Imaginer les choses en petit un peu partout. Collaborer plutôt que se tirer dans les pattes. Renverser la vapeur. Trouver des alliés. Faire levier. Inscrire ses projets dans le temps. C'est peut-être un peu ça, grandir ?</p> <p>Faire ensemble. Imaginer les choses en petit un peu partout. Collaborer plutôt que se tirer dans les pattes. Renverser la vapeur. Trouver des alliés. Faire levier. Inscrire ses projets dans le temps. C'est peut-être un peu ça, grandir ?</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,324 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Génération de formulaires, geolocalisés ? - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<meta name="tags" contents="GIS" />
<meta name="tags" contents="forms" />
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Génération de formulaires, geolocalisés ?</h1>
<span class="post-date">04 février 2012</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>On a un plan. Un &quot;truc de ouf&quot;.</p>
<p>À plusieurs reprises, des amis m'ont demandé de leur coder la même chose, à
quelques détails près: une page web avec un formulaire qui permettrait de
soumettre des informations géographiques, lié à une carte et des manières de
filtrer l'information.</p>
<p>L'idée fait son bout de chemin, et je commence à penser qu'on peut même avoir
quelque chose de vraiment flexible et utile. J'ai nommé le projet <em>carto-forms</em>
pour l'instant (mais c'est uniquement un nom de code).</p>
<p>Pour résumer: et si on avait un moyen de construire des formulaires, un peu
comme Google forms, mais avec des informations géographiques en plus?</p>
<p>Si vous ne connaissez pas Google forms, il s'agit d'une interface simple
d'utilisation pour générer des formulaires et récupérer des informations depuis
ces derniers.</p>
<p>Google forms est un super outil mais à mon avis manque deux choses importantes:
premièrement, il s'agit d'un outil propriétaire (oui, on peut aussi dire
privateur) et il n'est donc pas possible de le hacker un peu pour le faire
devenir ce qu'on souhaite, ni l'installer sur notre propre serveur.
Deuxièmement, il ne sait pas vraiment fonctionner avec des informations
géographiques, et il n'y à pas d'autre moyen de filtrer les informations que
l'utilisation de leur système de feuilles de calcul.</p>
<p>Après avoir réfléchi un petit peu à ça, j'ai contacté <a class="reference external" href="http://blog.mathieu-leplatre.info/">Mathieu</a> et les anciens
collègues de chez <a class="reference external" href="http://makina-corpus.com">Makina Corpus</a>, puisque les projets libres à base de carto
sont à même de les intéresser.</p>
<p>Imaginez le cas suivant:</p>
<ol class="arabic simple">
<li>Dans une &quot;mapping party&quot;, on choisit un sujet particulier à cartographier et
on design un formulaire (liste des champs (tags) a remplir + description +
le type d'information) ;</li>
<li>Sur place, les utilisateurs remplissent les champs du formulaire avec ce
qu'ils voient. Les champs géolocalisés peuvent être remplis automatiquement
avec la géolocalisation du téléphone ;</li>
<li>À la fin de la journée, il est possible de voir une carte des contributions,
avec le formulaire choisi ;</li>
<li>Un script peut importer les résultats et les publier vers OpenStreetMap.</li>
</ol>
<div class="section" id="quelques-cas-d-utilisation">
<h2>Quelques cas d'utilisation</h2>
<p>J'arrive à imaginer différents cas d'utilisation pour cet outil. Le premier est
celui que j'ai approximativement décrit plus haut: la génération de cartes de
manière collaborative, avec des filtres à facettes. Voici un flux d'utilisation
général:</p>
<ul>
<li><p class="first">Un &quot;administrateur&quot; se rend sur le site web et crée un nouveau formulaire
pour l'ensemble des évènements alternatifs. Il crée les champs suivants:</p>
<ul class="simple">
<li>Nom: le champ qui contient le nom de l'évènement.</li>
<li>Catégorie: la catégorie de l'évènement (marche, concert, manifestation…).
Il peut s'agir d'un champ à multiples occurrences.</li>
<li>Le lieu de l'évènement. Celui-ci peut être donné soit par une adresse soit
en sélectionnant un point sur une carte.</li>
<li>Date: la date de l'évènement (un &quot;date picker&quot; peut permettre cela
facilement)</li>
</ul>
<p>Chaque champ dans le formulaire a des informations sémantiques associées
(oui/non, multiple sélection, date, heure, champ géocodé, sélection carto,
etc.)</p>
</li>
<li><p class="first">Une fois terminé, le formulaire est généré et une URL permet d'y accéder.
(par exemple <a class="reference external" href="http://forms.notmyidea.org/alternatives">http://forms.notmyidea.org/alternatives</a>).</p>
</li>
<li><p class="first">Une API REST permet à d'autres applications d'accéder aux informations et d'en
ajouter / modifier de nouvelles.</p>
</li>
<li><p class="first">Il est maintenant possible de donner l'URL à qui voudra en faire bon usage.
N'importe qui peut ajouter des informations. On peut également imaginer une
manière de modérer les modifications si besoin est.</p>
</li>
<li><p class="first">Bien sur, la dernière phase est la plus intéressante: il est possible de
filtrer les informations par lieu, catégorie ou date, le tout soit via une
API REST, soit via une jolie carte et quelques contrôles bien placés, dans le
navigateur.</p>
</li>
</ul>
<p>Vous avez dû remarquer que le processus de création d'un formulaire est
volontairement très simple. L'idée est que n'importe qui puisse créer des
cartes facilement, en quelques clics. Si une API bien pensée suit, on peut
imaginer faire de la validation coté serveur et même faire des applications
pour téléphone assez simplement.</p>
<p>Pour aller un peu plus loin, si on arrive à penser un format de description
pour le formulaire, il sera possible de construire les formulaires de manière
automatisée sur différentes plateformes et également sur des clients
génériques.</p>
<p>On imagine pas mal d'exemples pour ce projet: des points de recyclage, les
endroits accessibles (pour fauteuils roulants etc.), identification des arbres,
bons coins à champignons, recensement des espèces en voie de disparition
(l'aigle de Bonelli est actuellement suivi en utilisant une feuille de calcul
partagée !), suivi des espèces dangereuses (le frelon asiatique par exemple),
cartographier les points d'affichage publicitaires, participation citoyenne
(graffitis, nids de poule, voir <a class="reference external" href="http://fixmystreet.ca">http://fixmystreet.ca</a>), geocaching,
trajectoires (randonnées, coureurs, cyclistes)…</p>
<p>Voici quelques exemples où ce projet pourrait être utile (la liste n'est pas
exhaustive):</p>
<div class="section" id="un-backend-sig-simple-a-utiliser">
<h3>Un backend SIG simple à utiliser</h3>
<p>Disons que vous êtes développeur mobile. Vous ne voulez pas vous encombrer avec
PostGIS ou écrire du code spécifique pour récupérer et insérer des données SIG!
Vous avez besoin de <em>Carto-Forms</em>! Une API simple vous aide à penser vos
modèles et vos formulaires, et cette même API vous permet d'insérer et de
récupérer des données. Vous pouvez vous concentrer sur votre application et non
pas sur la manière dont les données géographiques sont stockées et gérées.</p>
<p>En d'autres termes, vous faites une distinction entre le stockage des
informations et leur affichage.</p>
<p>Si vous êtes un développeur django, plomino, drupal etc. vous pouvez développer
un module pour &quot;plugger&quot; vos modèles et votre interface utilisateur avec celle
de <em>Carto-Forms</em>. De cette manière, il est possible d'exposer les formulaires
aux utilisateurs de vos backoffices. De la même manière, il est possible
d'écrire des widgets qui consomment des données et les affichent (en utilisant
par exemple une bibliothèque javascript de webmapping).</p>
</div>
<div class="section" id="un-outil-de-visualisation">
<h3>Un outil de visualisation</h3>
<p>Puisque les données peuvent être proposées de manière automatisée en utilisant
l'API, vous pouvez utiliser la page de résultat de Carto-forms comme un outil
de visualisation.</p>
<p>Il est possible d'explorer mon jeu de données en utilisant des filtres sur
chacun des champs. La recherche à facettes peut être une idée pour faciliter ce
filtrage. Une carte affiche le résultat. Vous avez l'impressoin d'être en face
d'un système d'aide à la décision !</p>
<p>Évidemment, il est possible de télécharger les données brutes (geojson, xml).
Idéalement, le mieux serait d'obtenir ces données filtrées directement depuis
une API Web, et un lien permet de partager la page avec l'état des filtres et
le niveau de zoom / la localisation de la carte.</p>
</div>
<div class="section" id="un-service-generique-pour-gerer-les-formulaires">
<h3>Un service générique pour gérer les formulaires</h3>
<p>Si vous souhaitez générer un fichier de configuration (ou ce que vous voulez,
messages emails, …) vous aurez besoin d'un formulaire et d'un template pour
injecter les données proposées par les utilisateurs et récupérer un résultat.</p>
<p>Un service de gestion des formulaires pourrait être utile pour créer des
formulaires de manière automatique et récupérer les données &quot;nettoyées&quot; et
&quot;validées&quot;.</p>
<p>On peut imaginer par exemple l'utilisation d'un système de templates externe
reposant sur <em>carto-forms</em>. Celui-ci &quot;parserait&quot; le contenu des templates et
pourrait le lier aux informations ajoutées par les utilisateurs via un formulaire.</p>
<p>Pour ce cas particulier, il n'y a pas besoin d'informations géographiques
(SIG). Il s'agit quasiment du service proposé actuellement par Google forms.</p>
</div>
</div>
<div class="section" id="ca-n-existe-pas-deja-tout-ca">
<h2>Ça n'existe pas déjà tout ça ?</h2>
<p>Bien sur, il y a Google forms, qui vous permet de faire ce genre de choses,
mais comme je l'ai précisé plus haut, il ne s'agit pas exactement de la même
chose.</p>
<p>Nous avons découvert <a class="reference external" href="https://webform.com">https://webform.com</a> qui permet de créer des formulaires
avec un système de drag'n'drop. J'adorerais reproduire quelque chose de
similaire pour l'interface utilisateur. Par contre ce projet ne gère pas les
appels via API et les informations de géolocalisation …</p>
<p>L'idée de <a class="reference external" href="http://thoth.io">http://thoth.io</a> est également assez sympathique: une api très
simple pour stocker et récupérer des données. En plus de ça, <em>carto-forms</em>
proposerait de la validation de données et proposerait un support des points
SIG (point, ligne, polygone).</p>
<p><a class="reference external" href="http://mapbox.com">http://mapbox.com</a> fait également un superbe travail autour de la cartographie,
mais ne prends pas en compte le coté auto-génération de formulaires…</p>
</div>
<div class="section" id="on-est-parti">
<h2>On est parti ?!</h2>
<p>Comme vous avez pu vous en rendre compte, il ne s'agit pas d'un problème
outrageusement complexe. On a pas mal discuté avec Mathieu, à propos de ce
qu'on souhaite faire et du comment. Il se trouve qu'on peut sûrement s'en
sortir avec une solution élégante sans trop de problèmes. Mathieu est habitué à
travailler autour des projets de SIG (ce qui est parfait parce que ce n'est pas
mon cas) et connaît son sujet. Une bonne opportunité d'apprendre!</p>
<p>On sera tous les deux à <a class="reference external" href="http://rencontres.django-fr.org">Djangocong</a> le 14 et 15 Avril, et on prévoit une
session de <em>tempête de cerveau</em> et un sprint sur ce projet. Si vous êtes dans
le coin et que vous souhaitez discuter ou nous filer un coup de patte,
n'hésitez pas!</p>
<p>On ne sait pas encore si on utilisera django ou quelque chose d'autre. On a
pensé un peu à CouchDB, son système de couchapps et geocouch, mais rien n'est
encore gravé dans le marbre ! N'hésitez pas à proposer vos solutions ou
suggestions.</p>
<p>Voici le document etherpad sur lequel on a travaillé jusqu'à maintenant:
<a class="reference external" href="http://framapad.org/carto-forms">http://framapad.org/carto-forms</a>. N'hésitez pas à l'éditer et à ajouter vos
commentaires, c'est son objectif!</p>
<p>Merci à <a class="reference external" href="http://sneakernet.fr/">Arnaud</a> pour la relecture et la correction de quelques typos dans le
texte :)</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,296 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Thoughts about a form generation service, GIS enabled - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<meta name="tags" contents="GIS" />
<meta name="tags" contents="forms" />
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Thoughts about a form generation service, GIS enabled</h1>
<span class="post-date">04 février 2012</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>We have a plan. A &quot;fucking good&quot; one.</p>
<p>A bunch of friends asked me twice for quite the same thing: a webpage with a
form, tied to a map generation with some information filtering. They didn't
explicitly ask that but that's the gist of it.</p>
<p>This idea has been stuck in my head since then and I even think that we can
come out with something a little bit more flexible and useful. I've named it
<em>carto-forms</em> for now, but that's only the &quot;codename&quot;.</p>
<p>To put it shortly: what if we had a way to build forms, ala Google forms, but
with geographic information in them?</p>
<p>If you don't know Google forms, it means having an user-friendly way to build
forms and to use them to gather information from different users.</p>
<p>In my opinion, Google forms is missing two important things: first, it's not
open-source, so it's not possible to hack it or even to run it on your own
server. Second, it doesn't really know how to deal with geographic data, and
there is no way to filter the information more than in a spreadsheet.</p>
<p>I knew that <a class="reference external" href="http://blog.mathieu-leplatre.info/">Mathieu</a> and some folks at <a class="reference external" href="http://makina-corpus.com">Makina Corpus</a> would be interested
in this, so I started a discussion with him on IRC and we refined the details
of the project and its objectives.</p>
<p>Imagine the following:</p>
<ol class="arabic simple">
<li>For a mapping party, we choose a specific topic to map and design the form
(list of fields (i.e. tags) to be filled + description + type of the
information) ;</li>
<li>In situ, users fill the form fields with what they see. Geo fields can be
pre-populated using device geolocation ;</li>
<li>At the end of the day, we can see a map with all user contributions seized
through this particular form ;</li>
<li>If relevant, a script could eventually import the resulting dataset and
publish/merge with OpenStreetMap.</li>
</ol>
<div class="section" id="some-use-cases">
<h2>Some use cases</h2>
<p>I can see some use cases for this. The first one is a collaborative map, with
facet filtering. Let's draw a potential user flow:</p>
<ul>
<li><p class="first">An &quot;administrator&quot; goes to the website and creates a form to list all the
alternative-related events. He creates the following fields:</p>
<ul class="simple">
<li>Name: a plain text field containing the name of the event.</li>
<li>Category: the category of the event. Can be a finite list.</li>
<li>Location: The location of the event. It could be provided by selecting a
point on a map or by typing an address.</li>
<li>Date: the date of the event (a datepicker could do the trick)</li>
</ul>
<p>Each field in the form has semantic information associated with it (yes/no,
multiple selection, date-time, geocoding carto, carto selection etc)</p>
</li>
<li><p class="first">Once finished, the form is generated and the user gets an url (say
<a class="reference external" href="http://forms.notmyidea.org/alternatives">http://forms.notmyidea.org/alternatives</a>) for it.</p>
</li>
<li><p class="first">REST APIs allow third parties to get the form description and to
push/edit/get information from there.</p>
</li>
<li><p class="first">He can communicate the address in any way he wants to his community so they
can go to the page and add information to it.</p>
</li>
<li><p class="first">Then, it is possible to filter the results per location / date or category.
This can be done via API calls (useful for third parties) or via a nice
interface in the browser.</p>
</li>
</ul>
<p>So, as you may have noticed, this would allow us to create interactive maps really
easily. It's almost just a matter of some clicks to the users. If we also come
up with a nice Web API for this, we could do server-side validation and build
even phone applications easily.</p>
<p>To push the cursor a bit further, if we can come with a cool description format
for the forms, we could even build the forms dynamically on different platforms,
with generic clients.</p>
<p>As mentioned before, the idea of a simple tool to support collaborative mapping
fullfils a recurring necessity !</p>
<p>We envision a lot of example uses for this : recycling spots, accessible spots (wheelchairs,
etc.), trees identification, mushrooms picking areas, tracking of endangered species
(e.g. Bonelli's Eagle is currently tracked by sharing a spreadsheet), spotting of dangerous
species (e.g. asian predatory wasps), map advertisement boards (most cities do not track them!),
citizen reporting (e.g. graffiti, potholes, garbage, lightning like <a class="reference external" href="http://fixmystreet.ca">http://fixmystreet.ca</a>),
geocaching, trajectories (e.g hiking, runners, cyclists)...</p>
<p>Here are some other examples of where <em>carto-forms</em> could be useful:</p>
<div class="section" id="simple-gis-storage-backend">
<h3>Simple GIS storage backend</h3>
<p>Let's say you are a mobile developer, you don't want to bother with PostGIS
nor write a custom and insecure code to insert and retrieve your GIS data! You
need carto-forms! A simple API helps you design your models/forms and the
same API allows you to CRUD and query your data. Thus, you only need to focus
on your application, not on how GIS data will be handled.</p>
<p>We make a distinction between storage and widgets.</p>
<p>Besides, if you are a django / drupal / plomino... maintainer : you
can develop a module to &quot;plug&quot; your models (content types) and UI to carto-forms!
Carto forms are then exposed to your backoffice users (ex: drupal admin UI, django
adminsite), and likewise you can write your own HTML widgets that consume datasets
in frontend views (facets in JSON/XML, and map data in GeoJSON).</p>
</div>
<div class="section" id="visualization-tool">
<h3>Visualization tool</h3>
<p>Since data submission can be done programmatically using the API, you could use Carto-forms
results page as a visualization tool.</p>
<p>You can explore your dataset content using filters related to each form field. Facets filtering
is a great advantage, and a map shows the resulting features set. You feel like you're in
front of a decision support system!</p>
<p>Of course, filtered raw data can be downloaded (GeoJSON, XML) and a permalink allows to
share the page with the state of the filters and the zoom/location of the map.</p>
</div>
<div class="section" id="generic-forms-service">
<h3>Generic forms service</h3>
<p>If you want to generate a configuration file (or whatever, email messages, ...),
you will need a form and a template to inlay user submitted values and get the result.</p>
<p>A form service would be really useful to create forms programmatically and retrieve
cleaned and validated input values.</p>
<p>You could run a dedicated template service based on <em>carto-forms</em>! Parsing a template
content, this external service could create a form dynamically and bind them together.
The output of the form service (fields =&gt; values) would be bound to the input of a template
engine (variables =&gt; final result).</p>
<p>Note that for this use-case, there is no specific need of GIS data nor storage of records
for further retrieval.</p>
</div>
</div>
<div class="section" id="what-s-out-in-the-wild-already">
<h2>What's out in the wild already?</h2>
<p>Of course, there is Google forms, which allows you to do these kind of things,
but it's closed and not exactly what we are describing here.</p>
<p>We've discovered the interesting <a class="reference external" href="https://webform.com/">https://webform.com/</a> which allows one to create
forms with a nice drag-n-drop flow. I would love to reproduce something similar
for the user experience. However, the project doesn't handle APIs and
geolocation information.</p>
<p>The idea of <a class="reference external" href="http://thoth.io">http://thoth.io</a> is very attractive : an extremely simple web API to store
and retrieve data. In addition, <em>carto-forms</em> would do datatype validation and have
basic GIS fields (point, line, polygon).</p>
<p><a class="reference external" href="http://mapbox.com">http://mapbox.com</a> also did an awesome work on cartography, but didn't take into
account the form aspect we're leveraging here.</p>
</div>
<div class="section" id="so-let-s-get-it-real">
<h2>So… Let's get it real!</h2>
<p>As you may have understood, this isn't a really complicated problem. We have
been sometimes chatting about that with Mathieu about what we would need and
how we could achieve this.</p>
<p>We can probably come with an elegant solution without too much pain. Mathieu is
used to work with GIS systems (which is really cool because I'm not at all) and
knows his subject, so that's an opportunity to learn ;-)</p>
<p>We will be at <a class="reference external" href="http://rencontres.django-fr.org">Djangocong</a> on April 14 and 15 and will probably have
a brainstorming session and a sprint on this, so if you are around and want to
help us, or just to discuss, feel free to join!</p>
<p>We don't know yet if we will be using django for this or something else. We
have been thinking about couchdb, couchapps and geocouch but nothing is written
in stone yet. Comments and proposals are welcome!</p>
<p>Here is the etherpad document we worked on so far:
<a class="reference external" href="http://framapad.org/carto-forms">http://framapad.org/carto-forms</a>. Don't hesitate to add your thoughts and edit
it, that's what it's made for!</p>
<p>Thanks to <a class="reference external" href="http://sneakernet.fr/">Arnaud</a> and <a class="reference external" href="http://qwerty.fuzz.me.uk/">Fuzzmz</a> for proof-reading and typo fixing.</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -39,29 +39,307 @@ styles, `#sidebar-checkbox` for behavior. -->
</nav> </nav>
</div> <div class="wrap"> </div> <div class="wrap">
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container-wide content">
<ul> <div class="content-title">
<li><a href="https://blog.notmyidea.org/category/beer.html">beer</a></li> <div class="posts">
<li><a href="https://blog.notmyidea.org/category/biere.html">biere</a></li> <ul class="articles_list">
<li><a href="https://blog.notmyidea.org/category/conferences.html">conferences</a></li> <li><span class="metadata date"><h2>Brassage</h2></span></li>
<li><a href="https://blog.notmyidea.org/category/crypto.html">crypto</a></li> <li>
<li><a href="https://blog.notmyidea.org/category/diy.html">diy</a></li> <span class="metadata date">octobre 2017</span>
<li><a href="https://blog.notmyidea.org/category/journal.html">journal</a></li> <a class="post_title" href="/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a>&nbsp;
<li><a href="https://blog.notmyidea.org/category/life.html">life</a></li> </li>
<li><a href="https://blog.notmyidea.org/category/misc.html">misc</a></li>
<li><a href="https://blog.notmyidea.org/category/musique.html">musique</a></li>
<li><a href="https://blog.notmyidea.org/category/notes.html">notes</a></li>
<li><a href="https://blog.notmyidea.org/category/pyconfr2015.html">pyconfr2015</a></li>
<li><a href="https://blog.notmyidea.org/category/tech.html">tech</a></li>
<li><a href="https://blog.notmyidea.org/category/thoughts.html">thoughts</a></li>
</ul> </ul>
<ul class="articles_list">
<li><span class="metadata date"><h2>conferences</h2></span></li>
<li>
<span class="metadata date">novembre 2015</span>
<a class="post_title" href="/rencontres-python-francophones-2015.html">Rencontres python francophones, 2015</a>&nbsp;
</li>
</ul>
<ul class="articles_list">
<li><span class="metadata date"><h2>Féminisme</h2></span></li>
<li>
<span class="metadata date">juillet 2015</span>
<a class="post_title" href="/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html">Charte et événements non-mixtes au sein de l'Afpy</a>&nbsp;
</li>
</ul>
<ul class="articles_list">
<li><span class="metadata date"><h2>Musique</h2></span></li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/languages.html">Languages</a>&nbsp;
</li>
</ul>
<ul class="articles_list">
<li><span class="metadata date"><h2>pyconfr2015</h2></span></li>
</ul>
<ul class="articles_list">
<li><span class="metadata date"><h2>Réfléxions</h2></span></li>
<li>
<span class="metadata date">novembre 2019</span>
<a class="post_title" href="/elitisme-et-apprentissage.html">Élitisme et apprentissage</a>&nbsp;
</li>
<li>
<span class="metadata date">février 2018</span>
<a class="post_title" href="/faire-moins.html">Faire moins</a>&nbsp;
</li>
<li>
<span class="metadata date">juin 2015</span>
<a class="post_title" href="/roles.html">Rôles</a>&nbsp;
</li>
<li>
<span class="metadata date">novembre 2014</span>
<a class="post_title" href="/le-secret-du-bonheur.html">Le secret du bonheur</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2014</span>
<a class="post_title" href="/quel-metier-quelle-utilite.html">Quel métier, quelle utilité ?</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2014</span>
<a class="post_title" href="/retours-sur-deux-ans-a-mozilla.html">Retours sur deux ans à Mozilla</a>&nbsp;
</li>
<li>
<span class="metadata date">août 2013</span>
<a class="post_title" href="/des-carnets-desquisse.html">Des carnets d'esquisse</a>&nbsp;
</li>
<li>
<span class="metadata date">février 2013</span>
<a class="post_title" href="/des-profils-de-confiance-partout-et-pour-tout.html">Des profils de confiance partout et pour tout ?</a>&nbsp;
</li>
<li>
<span class="metadata date">janvier 2012</span>
<a class="post_title" href="/les-dangers-du-livre-numerique.html">Les dangers du livre numérique</a>&nbsp;
</li>
<li>
<span class="metadata date">décembre 2011</span>
<a class="post_title" href="/quels-usages-pour-linformatique.html">Quels usages pour l'informatique ?</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2011</span>
<a class="post_title" href="/travailler-moins-pour-mieux-travailler.html">Travailler moins pour mieux travailler ?</a>&nbsp;
</li>
<li>
<span class="metadata date">novembre 2010</span>
<a class="post_title" href="/fork-you-or-how-the-social-coding-can-help-you.html">Fork you! or how the social coding can help you</a>&nbsp;
</li>
<li>
<span class="metadata date">février 2010</span>
<a class="post_title" href="/semaine-de-lenvironnement-la-consommation-etudiante.html">Semaine de lenvironnement: La consommation étudiante</a>&nbsp;
</li>
<li>
<span class="metadata date">novembre 2009</span>
<a class="post_title" href="/amap-media-paniers-bio-a-5e.html">AMAP + Média = Paniers bio à 5e ?!</a>&nbsp;
</li>
</ul>
<ul class="articles_list">
<li><span class="metadata date"><h2>Technologie</h2></span></li>
<li>
<span class="metadata date">mars 2018</span>
<a class="post_title" href="/groupement-dachats-partage-dexperience.html">Groupement d'achats & partage d'expérience</a>&nbsp;
</li>
<li>
<span class="metadata date">février 2018</span>
<a class="post_title" href="/webnotes.html">Webnotes</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2016</span>
<a class="post_title" href="/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a>&nbsp;
</li>
<li>
<span class="metadata date">mars 2016</span>
<a class="post_title" href="/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a>&nbsp;
</li>
<li>
<span class="metadata date">mars 2016</span>
<a class="post_title" href="/retours-sur-un-atelier-zeronet.html">Retours sur un atelier ZeroNet</a>&nbsp;
</li>
<li>
<span class="metadata date">février 2016</span>
<a class="post_title" href="/lets-encrypt-haproxy.html">Let's Encrypt + HAProxy</a>&nbsp;
</li>
<li>
<span class="metadata date">janvier 2016</span>
<a class="post_title" href="/ateliers-dautodefense-numerique.html">Ateliers d'autodéfense numérique</a>&nbsp;
</li>
<li>
<span class="metadata date">novembre 2015</span>
<a class="post_title" href="/le-mail-doit-il-mourir.html">Le mail doit-il mourir ?</a>&nbsp;
</li>
<li>
<span class="metadata date">octobre 2015</span>
<a class="post_title" href="/web-distribution-signing.html">Web distribution signing</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2015</span>
<a class="post_title" href="/pourquoi-cliquet">Service de nuages : Pourquoi avons-nous fait Cliquet ?</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2015</span>
<a class="post_title" href="/service-de-nuages-perspectives-pour-lete-fr.html">Service de nuages : Perspectives pour l'été</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html">Service de nuages : Stocker et interroger les permissions avec Kinto</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/les-problemes-de-pgp.html">Les problèmes de PGP</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/simplifier-les-preuves-didentites.html">Simplifier les preuves d'identités</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/phrases-de-passe-et-bonnes-pratiques.html">Phrases de passe et bonnes pratiques</a>&nbsp;
</li>
<li>
<span class="metadata date">avril 2015</span>
<a class="post_title" href="/eco-systeme-et-stockage-generique.html">Eco-système et stockage générique</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2014</span>
<a class="post_title" href="/whats-hawk-and-how-to-use-it.html">What's Hawk and how to use it?</a>&nbsp;
</li>
<li>
<span class="metadata date">février 2013</span>
<a class="post_title" href="/implementing-cors-in-cornice.html">Implementing CORS in Cornice</a>&nbsp;
</li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/status-board.html">Status board</a>&nbsp;
</li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/astuces-ssh.html">Astuces SSH</a>&nbsp;
</li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/gnome-3-extensions.html">Gnome 3, extensions</a>&nbsp;
</li>
<li>
<span class="metadata date">octobre 2012</span>
<a class="post_title" href="/cheese-code-wrap-up.html">Cheese & code - Wrap-up</a>&nbsp;
</li>
<li>
<span class="metadata date">septembre 2012</span>
<a class="post_title" href="/circus-sprint-at-pyconfr.html">Circus sprint at PyconFR</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2012</span>
<a class="post_title" href="/refactoring-cornice.html">Refactoring Cornice</a>&nbsp;
</li>
<li>
<span class="metadata date">avril 2012</span>
<a class="post_title" href="/djangocong-2012.html">Djangocong 2012</a>&nbsp;
</li>
<li>
<span class="metadata date">avril 2012</span>
<a class="post_title" href="/generation-de-formulaires-geolocalises.html">Génération de formulaires, geolocalisés ?</a>&nbsp;
</li>
<li>
<span class="metadata date">avril 2012</span>
<a class="post_title" href="/thoughts-about-a-form-generation-service-gis-enabled.html">Thoughts about a form generation service, GIS enabled</a>&nbsp;
</li>
<li>
<span class="metadata date">décembre 2011</span>
<a class="post_title" href="/introducing-cornice.html">Introducing Cornice</a>&nbsp;
</li>
<li>
<span class="metadata date">octobre 2011</span>
<a class="post_title" href="/how-are-you-handling-your-shared-expenses.html">How are you handling your shared expenses?</a>&nbsp;
</li>
<li>
<span class="metadata date">août 2011</span>
<a class="post_title" href="/using-dbpedia-to-get-languages-influences.html">Using dbpedia to get languages influences</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2011</span>
<a class="post_title" href="/pelican-9-months-later.html">Pelican, 9 months later</a>&nbsp;
</li>
<li>
<span class="metadata date">juin 2011</span>
<a class="post_title" href="/using-jpype-to-bridge-python-and-java.html">Using JPype to bridge python and Java</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2011</span>
<a class="post_title" href="/un-coup-de-main-pour-mon-memoire33.html">Un coup de main pour mon mémoire33</a>&nbsp;
</li>
<li>
<span class="metadata date">avril 2011</span>
<a class="post_title" href="/analyse-users-browsing-context-to-build-up-a-web-recommender.html">Analyse users' browsing context to build up a web recommender</a>&nbsp;
</li>
<li>
<span class="metadata date">mars 2011</span>
<a class="post_title" href="/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html">Working directly on your server? How to backup and sync your dev environment with unison</a>&nbsp;
</li>
<li>
<span class="metadata date">février 2011</span>
<a class="post_title" href="/wrap-up-of-the-distutils2-paris-sprint.html">Wrap up of the distutils2 paris' sprint</a>&nbsp;
</li>
<li>
<span class="metadata date">janvier 2011</span>
<a class="post_title" href="/pypi-on-couchdb.html">PyPI on CouchDB</a>&nbsp;
</li>
<li>
<span class="metadata date">janvier 2011</span>
<a class="post_title" href="/help-me-to-go-to-the-distutils2-paris-sprint.html">Help me to go to the distutils2 paris' sprint</a>&nbsp;
</li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/how-to-reboot-your-bebox-using-the-cli.html">How to reboot your bebox using the CLI</a>&nbsp;
</li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/dynamically-change-your-gnome-desktop-wallpaper.html">Dynamically change your gnome desktop wallpaper</a>&nbsp;
</li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/how-to-install-nginx-php-53-on-freebsd.html">How to install NGINX + PHP 5.3 on FreeBSD.</a>&nbsp;
</li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/pelican-a-simple-static-blog-generator-in-python.html">Pelican, a simple static blog generator in python</a>&nbsp;
</li>
<li>
<span class="metadata date">août 2010</span>
<a class="post_title" href="/an-amazing-summer-of-code-working-on-distutils2.html">An amazing summer of code working on distutils2</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2010</span>
<a class="post_title" href="/sprinting-on-distutils2-in-tours.html">Sprinting on distutils2 in Tours</a>&nbsp;
</li>
<li>
<span class="metadata date">juillet 2010</span>
<a class="post_title" href="/introducing-the-distutils2-index-crawlers.html">Introducing the distutils2 index crawlers</a>&nbsp;
</li>
<li>
<span class="metadata date">juin 2010</span>
<a class="post_title" href="/use-restructured-text-rest-to-power-your-presentations.html">Use Restructured Text (ReST) to power your presentations</a>&nbsp;
</li>
<li>
<span class="metadata date">juin 2010</span>
<a class="post_title" href="/first-week-working-on-distutils2.html">first week working on distutils2</a>&nbsp;
</li>
<li>
<span class="metadata date">mai 2010</span>
<a class="post_title" href="/a-distutils2-gsoc.html">A Distutils2 GSoC</a>&nbsp;
</li>
<li>
<span class="metadata date">décembre 2009</span>
<a class="post_title" href="/python-go.html">Python ? go !</a>&nbsp;
</li>
</ul>
</div>
</div>
</div> </div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label> <label for="sidebar-checkbox" class="sidebar-toggle"></label>

View file

@ -1,113 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container-wide">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container-wide content">
<div class="content-title">
<h2>beer category</h2>
<div class="posts">
<ul id="blog_index">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/neipa-3.html">NEIPA #3</a></span><span class="description"><span class="headline">New England IPA - Collab avec Heiko.</span><time class="created" datetime="2017-12-29T00:00:00+01:00">29 décembre 2017</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/neipa-2.html">NEIPA #2</a></span><span class="description"><span class="headline">Petit test de New England IPA.</span><time class="created" datetime="2017-12-18T00:00:00+01:00">18 décembre 2017</time></span></li>
</ul>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,19 +45,23 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>misc category</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a></span><span class="description"><span class="headline">Quelques notes prises après une discussion avec d'autres complices du coin</span><time class="created" datetime="2019-06-26T00:00:00+02:00">26 juin 2019</time></span></li> <li><span class="metadata date"><h2>Brassage</h2></span></li>
<li>
<span class="metadata date">octobre 2017</span>
<a class="post_title" href="/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a>&nbsp;
<span class="metadata category">Brassage</span> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,19 +45,23 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>conferences category</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html">Rencontres python francophones, 2015</a></span><span class="description"><span class="headline">Retours sur les rencontres python francophones de 2015.</span><time class="created" datetime="2015-11-02T00:00:00+01:00">02 novembre 2015</time></span></li> <li><span class="metadata date"><h2>conferences</h2></span></li>
<li>
<span class="metadata date">novembre 2015</span>
<a class="post_title" href="/rencontres-python-francophones-2015.html">Rencontres python francophones, 2015</a>&nbsp;
<span class="metadata category">conferences</span> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,123 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container-wide">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container-wide content">
<div class="content-title">
<h2>crypto category</h2>
<div class="posts">
<ul id="blog_index">
<li style="background-image: url('images/illusion.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a></span><span class="description"><span class="headline">Tour d'horizon du fonctionnement de SSL et des solutions pour le sécuriser.</span><time class="created" datetime="2016-03-25T00:00:00+01:00">25 mars 2016</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/retours-sur-un-atelier-zeronet.html">Retours sur un atelier ZeroNet</a></span><span class="description"><span class="headline">Comment contourner la censure grâce à un Web pair-à-pair ?</span><time class="created" datetime="2016-03-17T00:00:00+01:00">17 mars 2016</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lets-encrypt-haproxy.html">Let's Encrypt + HAProxy</a></span><span class="description"><span class="headline">Comment j'ai mis en place des certificats SSL avec Let's Encrypt
derrière haproxy.</span><time class="created" datetime="2016-02-11T00:00:00+01:00">11 février 2016</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/ateliers-dautodefense-numerique.html">Ateliers d'autodéfense numérique</a></span><span class="description"><span class="headline">J'ai récemment animé des ateliers d'autodéfense numérique. Voici
quelques retours et pistes d'améliorations.</span><time class="created" datetime="2016-01-14T00:00:00+01:00">14 janvier 2016</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/web-distribution-signing.html">Web distribution signing</a></span><span class="description"><span class="headline">Bringing trust back between software authors and user agents.</span><time class="created" datetime="2015-10-12T00:00:00+02:00">12 octobre 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/les-problemes-de-pgp.html">Les problèmes de PGP</a></span><span class="description"><span class="headline">Quels sont les soucis liés à PGP, que faire ?</span><time class="created" datetime="2015-05-25T00:00:00+02:00">25 mai 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/simplifier-les-preuves-didentites.html">Simplifier les preuves d'identités</a></span><span class="description"><span class="headline">Qu'est-ce que Keybase.io et comment essayent-ils de simplifier la
création de preuves d'identité.</span><time class="created" datetime="2015-05-11T00:00:00+02:00">11 mai 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/phrases-de-passe-et-bonnes-pratiques.html">Phrases de passe et bonnes pratiques</a></span><span class="description"><span class="headline">Communiquer de manière chiffrée n'est pas aisée, et nécessite de
mémoriser des phrases de passes complexes. Comment s'en sortir ?</span><time class="created" datetime="2015-05-09T00:00:00+02:00">09 mai 2015</time></span></li>
</ul>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,113 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container-wide">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container-wide content">
<div class="content-title">
<h2>diy category</h2>
<div class="posts">
<ul id="blog_index">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/tricot.html">Tricot</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/biere-maison-fr.html">Bière maison !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-10T00:00:00+02:00">10 avril 2012</time></span></li>
</ul>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web - Articles by Alexis Métaireau, Mathieu Leplatre</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,19 +45,23 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>Articles by Alexis Métaireau, Mathieu Leplatre</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/carto-forms.html">Thoughts about a form generation service, GIS enabled</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-02-04T00:00:00+01:00">04 février 2012</time></span></li> <li><span class="metadata date"><h2>Féminisme</h2></span></li>
<li>
<span class="metadata date">juillet 2015</span>
<a class="post_title" href="/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html">Charte et événements non-mixtes au sein de l'Afpy</a>&nbsp;
<span class="metadata category">Féminisme</span> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,20 +45,111 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>journal category</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/ours.html">Ours</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2019-07-03T00:00:00+02:00">03 juillet 2019</time></span></li> <li><span class="metadata date"><h2>Journal</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/velotaf.html">velotaf</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2019-06-27T00:00:00+02:00">27 juin 2019</time></span></li> <li>
<span class="metadata date">juillet 2019</span>
<a class="post_title" href="/ours.html">Ours</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">juin 2019</span>
<a class="post_title" href="/velo.html">Vélo</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">juin 2019</span>
<a class="post_title" href="/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mai 2019</span>
<a class="post_title" href="/un-an.html">Brasserie - petit bilan, après un an dexistence</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mai 2018</span>
<a class="post_title" href="/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">octobre 2017</span>
<a class="post_title" href="/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">juin 2017</span>
<a class="post_title" href="/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mai 2016</span>
<a class="post_title" href="/cloisonnement-des-activites.html">Cloisonnement des activités ?</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mars 2016</span>
<a class="post_title" href="/focusing-on-what-matters.html">Focusing on what matters</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mars 2016</span>
<a class="post_title" href="/lhorizon.html">L'horizon</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/travail-et-creativite.html">Travail et créativité</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/chiffrement.html">Chiffrement</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/language.html">Language</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">janvier 2013</span>
<a class="post_title" href="/new-year-python-meme-2012.html">New year python meme, 2012</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/groovy.html">"Groovy"</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">octobre 2012</span>
<a class="post_title" href="/biere-maison-33.html">Bière maison 33</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">octobre 2012</span>
<a class="post_title" href="/motivation-benevolat-et-participation.html">Motivation, bénévolat et participation</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">septembre 2012</span>
<a class="post_title" href="/cheese-code-party-october-20-21.html">Cheese & Code party: October 20-21</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">juillet 2012</span>
<a class="post_title" href="/pourquoi-mozilla.html">Pourquoi Mozilla?</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mai 2012</span>
<a class="post_title" href="/lifestyle.html">Lifestyle</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">avril 2012</span>
<a class="post_title" href="/bidouille.html">Bidouille</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">janvier 2012</span>
<a class="post_title" href="/mozilla-first-months.html">Mozilla, first months</a>&nbsp;
<span class="metadata category">Journal</span> </li>
<li>
<span class="metadata date">mars 2010</span>
<a class="post_title" href="/le-temps-des-graces-courrez-y.html">Le temps des grâces, courrez-y !</a>&nbsp;
<span class="metadata category">Journal</span> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,113 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container-wide">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container-wide content">
<div class="content-title">
<h2>life category</h2>
<div class="posts">
<ul id="blog_index">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a></span><span class="description"><span class="headline">Comment un passionné de Logiciels libres choisit de créer une petite brasserie artisanale.</span><time class="created" datetime="2018-05-27T00:00:00+02:00">27 mai 2018</time></span></li>
<li style="background-image: url('/images/abeilles.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/groupement-dachats-partage-dexperience.html">Groupement d'achats & partage d'expérience</a></span><span class="description"><span class="headline">Quelques retours sur la création et l'organisation d'un groupement d'achat.</span><time class="created" datetime="2018-03-03T00:00:00+01:00">03 mars 2018</time></span></li>
</ul>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,20 +45,23 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>musique category</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/languages.html">Languages</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> <li><span class="metadata date"><h2>Musique</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/groovy.html">&quot;Groovy&quot;</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/languages.html">Languages</a>&nbsp;
<span class="metadata category">Musique</span> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,26 +45,55 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>notes category</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-secret-du-bonheur.html">Le secret du bonheur</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-11-20T00:00:00+01:00">20 novembre 2014</time></span></li> <li><span class="metadata date"><h2>Notes</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-revenu-de-base.html">Le revenu de base</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-10-03T00:00:00+02:00">03 octobre 2013</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-07-06T00:00:00+02:00">06 juillet 2013</time></span></li> <span class="metadata date">décembre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-06-14T00:00:00+02:00">14 juin 2013</time></span></li> <a class="post_title" href="/neipa-3.html">NEIPA #3</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/habitat-collectif.html">Habitat collectif</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> <span class="metadata category">Notes</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/astuces-ssh.html">Astuces SSH</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/notre-dame-des-landes.html">Notre dame des landes</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <span class="metadata date">décembre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/semences-paysannes.html">Semences paysannes</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-20T00:00:00+01:00">20 décembre 2012</time></span></li> <a class="post_title" href="/neipa-2.html">NEIPA #2</a>&nbsp;
<span class="metadata category">Notes</span> </li>
<li>
<span class="metadata date">juin 2013</span>
<a class="post_title" href="/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a>&nbsp;
<span class="metadata category">Notes</span> </li>
<li>
<span class="metadata date">juin 2013</span>
<a class="post_title" href="/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a>&nbsp;
<span class="metadata category">Notes</span> </li>
<li>
<span class="metadata date">mars 2013</span>
<a class="post_title" href="/le-revenu-de-base.html">Le revenu de base</a>&nbsp;
<span class="metadata category">Notes</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/habitat-collectif.html">Habitat collectif</a>&nbsp;
<span class="metadata category">Notes</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/tricot.html">Tricot</a>&nbsp;
<span class="metadata category">Notes</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/notre-dame-des-landes.html">Notre dame des landes</a>&nbsp;
<span class="metadata category">Notes</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/semences-paysannes.html">Semences paysannes</a>&nbsp;
<span class="metadata category">Notes</span> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,25 +45,19 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>pyconfr2015 category</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pyconfr-2015-assemblee-generale.html">PyconFR 2015 — Assemblée générale</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2015-10-18T00:00:00+02:00">18 octobre 2015</time></span></li> <li><span class="metadata date"><h2>pyconfr2015</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pyconfr-2015-hospital-des-tests-en-prod.html">PyconFR 2015 — Hospital - des tests en prod</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2015-10-18T00:00:00+02:00">18 octobre 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pyconfr-2015-we-dont-need-your-loop.html">PyconFR 2015 — We don't need your loop</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2015-10-18T00:00:00+02:00">18 octobre 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pyconfr-2015-cliquet.html">PyconFR 2015 — Cliquet</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2015-10-17T00:00:00+02:00">17 octobre 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pyconfr-2015-geoalchemy.html">PyconFR 2015 — Geoalchemy</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2015-10-17T00:00:00+02:00">17 octobre 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pyconfr-2015-sql-alchemy.html">PyconFR 2015 — SQL Alchemy</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2015-10-17T00:00:00+02:00">17 octobre 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pyconfr-2015-table-ronde-diversite.html">PyconFR 2015 — Table ronde diversité</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2015-10-17T00:00:00+02:00">17 octobre 2015</time></span></li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,20 +45,75 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container-wide content"> <div class="container-wide content">
<div class="content-title"> <div class="content-title">
<h2>biere category</h2>
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('/images/refroidissement.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a></span><span class="description"><span class="headline">Si vous êtes dans le coin de Rennes et que vous voulez échanger sur la fabrication de bière, ne cherchez plus ;)</span><time class="created" datetime="2017-11-06T00:00:00+01:00">06 novembre 2017</time></span></li> <li><span class="metadata date"><h2>Réfléxions</h2></span></li>
<li style="background-image: url('images/haze.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a></span><span class="description"><span class="headline">Traduction d'un article sur les New England IPA du magazine Américan « Brew Your Own »</span><time class="created" datetime="2017-10-17T00:00:00+02:00">17 octobre 2017</time></span></li> <li>
<span class="metadata date">novembre 2019</span>
<a class="post_title" href="/elitisme-et-apprentissage.html">Élitisme et apprentissage</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">février 2018</span>
<a class="post_title" href="/faire-moins.html">Faire moins</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">juin 2015</span>
<a class="post_title" href="/roles.html">Rôles</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">novembre 2014</span>
<a class="post_title" href="/le-secret-du-bonheur.html">Le secret du bonheur</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">juillet 2014</span>
<a class="post_title" href="/quel-metier-quelle-utilite.html">Quel métier, quelle utilité ?</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">juillet 2014</span>
<a class="post_title" href="/retours-sur-deux-ans-a-mozilla.html">Retours sur deux ans à Mozilla</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">août 2013</span>
<a class="post_title" href="/des-carnets-desquisse.html">Des carnets d'esquisse</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">février 2013</span>
<a class="post_title" href="/des-profils-de-confiance-partout-et-pour-tout.html">Des profils de confiance partout et pour tout ?</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">janvier 2012</span>
<a class="post_title" href="/les-dangers-du-livre-numerique.html">Les dangers du livre numérique</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">décembre 2011</span>
<a class="post_title" href="/quels-usages-pour-linformatique.html">Quels usages pour l'informatique ?</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">mai 2011</span>
<a class="post_title" href="/travailler-moins-pour-mieux-travailler.html">Travailler moins pour mieux travailler ?</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">novembre 2010</span>
<a class="post_title" href="/fork-you-or-how-the-social-coding-can-help-you.html">Fork you! or how the social coding can help you</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">février 2010</span>
<a class="post_title" href="/semaine-de-lenvironnement-la-consommation-etudiante.html">Semaine de lenvironnement: La consommation étudiante</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
<li>
<span class="metadata date">novembre 2009</span>
<a class="post_title" href="/amap-media-paniers-bio-a-5e.html">AMAP + Média = Paniers bio à 5e ?!</a>&nbsp;
<span class="metadata category">Réfléxions</span> </li>
</ul> </ul>
</div>
</div> </div>
</div> </div>

View file

@ -1,145 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container-wide">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container-wide content">
<div class="content-title">
<h2>tech category</h2>
<div class="posts">
<ul id="blog_index">
<li style="background-image: url('images/carnet.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/webnotes.html">Webnotes</a></span><span class="description"><span class="headline">Un outil pour prendre et partager des notes lors de ma navigation.</span><time class="created" datetime="2018-02-25T00:00:00+01:00">25 février 2018</time></span></li>
<li style="background-image: url('images/forms.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a></span><span class="description"><span class="headline">Présentation d'une solution pour gérer vos formulaires en gardant la main sur les données générées</span><time class="created" datetime="2016-05-31T00:00:00+02:00">31 mai 2016</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/whats-hawk-and-how-to-use-it.html">What's Hawk and how to use it?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-31T00:00:00+02:00">31 juillet 2014</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/new-year-python-meme-2012.html">New year python meme, 2012</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-07-01T00:00:00+02:00">01 juillet 2013</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cross-origin-in-cornice.html">Implementing CORS in Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-04-02T00:00:00+02:00">02 avril 2013</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/status-board-fr.html">Status board</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-29T00:00:00+01:00">29 décembre 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/gnome-3-extensions.html">Gnome 3, extensions</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cheese-code-wrap-up.html">Cheese &amp; code - Wrap-up</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-10-22T00:00:00+02:00">22 octobre 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/afpy-computer-camp-october-20-21.html">Cheese &amp; Code party: October 20-21</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-09-20T00:00:00+02:00">20 septembre 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/circus-sprint-at-pyconfr.html">Circus sprint at PyconFR</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-09-17T00:00:00+02:00">17 septembre 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/refactoring-cornice.html">Refactoring Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-05-14T00:00:00+02:00">14 mai 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/carto-forms.html">Thoughts about a form generation service, GIS enabled</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-02-04T00:00:00+01:00">04 février 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html">Using JPype to bridge python and Java</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-11-06T00:00:00+01:00">06 novembre 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html">How are you handling your shared expenses?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-10-15T00:00:00+02:00">15 octobre 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html">Using dbpedia to get languages influences</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-08-16T00:00:00+02:00">16 août 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pelican-9-months-later.html">Pelican, 9 months later</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-07-25T00:00:00+02:00">25 juillet 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/introducing-cornice.html">Introducing Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-07-12T00:00:00+02:00">12 juillet 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire-fr.html">Un coup de main pour mon mémoire!</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-05-25T00:00:00+02:00">25 mai 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html">Analyse users' browsing context to build up a web recommender</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-04-01T00:00:00+02:00">01 avril 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html">Working directly on your server? How to backup and sync your dev environment with unison</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-03-16T00:00:00+01:00">16 mars 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/wrap-up-of-the-distutils2-paris-sprint.html">Wrap up of the distutils2 paris' sprint</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-02-08T00:00:00+01:00">08 février 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pypi-on-couchdb.html">PyPI on CouchDB</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-20T00:00:00+01:00">20 janvier 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html">Help me to go to the distutils2 paris' sprint</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-15T00:00:00+01:00">15 janvier 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-to-reboot-your-bebox-using-the-cli.html">How to reboot your bebox using the CLI</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-21T00:00:00+02:00">21 octobre 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/dynamically-change-your-gnome-desktop-wallpaper.html">Dynamically change your gnome desktop wallpaper</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-11T00:00:00+02:00">11 octobre 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html">How to install NGINX + PHP 5.3 on FreeBSD.</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-10T00:00:00+02:00">10 octobre 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html">Pelican, a simple static blog generator in python</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-06T00:00:00+02:00">06 octobre 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html">An amazing summer of code working on distutils2</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-08-16T00:00:00+02:00">16 août 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html">Introducing the distutils2 index crawlers</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-07-06T00:00:00+02:00">06 juillet 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html">Sprinting on distutils2 in Tours</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-07-06T00:00:00+02:00">06 juillet 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html">Use Restructured Text (ReST) to power your presentations</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-06-25T00:00:00+02:00">25 juin 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/first-week-working-on-distutils2.html">first week working on distutils2</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-06-04T00:00:00+02:00">04 juin 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/a-distutils2-gsoc.html">A Distutils2 GSoC</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-05-01T00:00:00+02:00">01 mai 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/python-go-fr.html">Python ? go !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2009-12-17T00:00:00+01:00">17 décembre 2009</time></span></li>
</ul>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

309
category/technologie.html Normal file
View file

@ -0,0 +1,309 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container-wide">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3>
</div>
</div>
<div class="container-wide content">
<div class="content-title">
<div class="posts">
<ul class="articles_list">
<li><span class="metadata date"><h2>Technologie</h2></span></li>
<li>
<span class="metadata date">mars 2018</span>
<a class="post_title" href="/groupement-dachats-partage-dexperience.html">Groupement d'achats & partage d'expérience</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">février 2018</span>
<a class="post_title" href="/webnotes.html">Webnotes</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2016</span>
<a class="post_title" href="/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mars 2016</span>
<a class="post_title" href="/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mars 2016</span>
<a class="post_title" href="/retours-sur-un-atelier-zeronet.html">Retours sur un atelier ZeroNet</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">février 2016</span>
<a class="post_title" href="/lets-encrypt-haproxy.html">Let's Encrypt + HAProxy</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">janvier 2016</span>
<a class="post_title" href="/ateliers-dautodefense-numerique.html">Ateliers d'autodéfense numérique</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">novembre 2015</span>
<a class="post_title" href="/le-mail-doit-il-mourir.html">Le mail doit-il mourir ?</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">octobre 2015</span>
<a class="post_title" href="/web-distribution-signing.html">Web distribution signing</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juillet 2015</span>
<a class="post_title" href="/pourquoi-cliquet">Service de nuages : Pourquoi avons-nous fait Cliquet ?</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juillet 2015</span>
<a class="post_title" href="/service-de-nuages-perspectives-pour-lete-fr.html">Service de nuages : Perspectives pour l'été</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html">Service de nuages : Stocker et interroger les permissions avec Kinto</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/les-problemes-de-pgp.html">Les problèmes de PGP</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/simplifier-les-preuves-didentites.html">Simplifier les preuves d'identités</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2015</span>
<a class="post_title" href="/phrases-de-passe-et-bonnes-pratiques.html">Phrases de passe et bonnes pratiques</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">avril 2015</span>
<a class="post_title" href="/eco-systeme-et-stockage-generique.html">Eco-système et stockage générique</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juillet 2014</span>
<a class="post_title" href="/whats-hawk-and-how-to-use-it.html">What's Hawk and how to use it?</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">février 2013</span>
<a class="post_title" href="/implementing-cors-in-cornice.html">Implementing CORS in Cornice</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/status-board.html">Status board</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/astuces-ssh.html">Astuces SSH</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">décembre 2012</span>
<a class="post_title" href="/gnome-3-extensions.html">Gnome 3, extensions</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">octobre 2012</span>
<a class="post_title" href="/cheese-code-wrap-up.html">Cheese & code - Wrap-up</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">septembre 2012</span>
<a class="post_title" href="/circus-sprint-at-pyconfr.html">Circus sprint at PyconFR</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2012</span>
<a class="post_title" href="/refactoring-cornice.html">Refactoring Cornice</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">avril 2012</span>
<a class="post_title" href="/djangocong-2012.html">Djangocong 2012</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">avril 2012</span>
<a class="post_title" href="/generation-de-formulaires-geolocalises.html">Génération de formulaires, geolocalisés ?</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">avril 2012</span>
<a class="post_title" href="/thoughts-about-a-form-generation-service-gis-enabled.html">Thoughts about a form generation service, GIS enabled</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">décembre 2011</span>
<a class="post_title" href="/introducing-cornice.html">Introducing Cornice</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">octobre 2011</span>
<a class="post_title" href="/how-are-you-handling-your-shared-expenses.html">How are you handling your shared expenses?</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">août 2011</span>
<a class="post_title" href="/using-dbpedia-to-get-languages-influences.html">Using dbpedia to get languages influences</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juillet 2011</span>
<a class="post_title" href="/pelican-9-months-later.html">Pelican, 9 months later</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juin 2011</span>
<a class="post_title" href="/using-jpype-to-bridge-python-and-java.html">Using JPype to bridge python and Java</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2011</span>
<a class="post_title" href="/un-coup-de-main-pour-mon-memoire33.html">Un coup de main pour mon mémoire33</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">avril 2011</span>
<a class="post_title" href="/analyse-users-browsing-context-to-build-up-a-web-recommender.html">Analyse users' browsing context to build up a web recommender</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mars 2011</span>
<a class="post_title" href="/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html">Working directly on your server? How to backup and sync your dev environment with unison</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">février 2011</span>
<a class="post_title" href="/wrap-up-of-the-distutils2-paris-sprint.html">Wrap up of the distutils2 paris' sprint</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">janvier 2011</span>
<a class="post_title" href="/pypi-on-couchdb.html">PyPI on CouchDB</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">janvier 2011</span>
<a class="post_title" href="/help-me-to-go-to-the-distutils2-paris-sprint.html">Help me to go to the distutils2 paris' sprint</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/how-to-reboot-your-bebox-using-the-cli.html">How to reboot your bebox using the CLI</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/dynamically-change-your-gnome-desktop-wallpaper.html">Dynamically change your gnome desktop wallpaper</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/how-to-install-nginx-php-53-on-freebsd.html">How to install NGINX + PHP 5.3 on FreeBSD.</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">octobre 2010</span>
<a class="post_title" href="/pelican-a-simple-static-blog-generator-in-python.html">Pelican, a simple static blog generator in python</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">août 2010</span>
<a class="post_title" href="/an-amazing-summer-of-code-working-on-distutils2.html">An amazing summer of code working on distutils2</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juillet 2010</span>
<a class="post_title" href="/sprinting-on-distutils2-in-tours.html">Sprinting on distutils2 in Tours</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juillet 2010</span>
<a class="post_title" href="/introducing-the-distutils2-index-crawlers.html">Introducing the distutils2 index crawlers</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juin 2010</span>
<a class="post_title" href="/use-restructured-text-rest-to-power-your-presentations.html">Use Restructured Text (ReST) to power your presentations</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">juin 2010</span>
<a class="post_title" href="/first-week-working-on-distutils2.html">first week working on distutils2</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">mai 2010</span>
<a class="post_title" href="/a-distutils2-gsoc.html">A Distutils2 GSoC</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
<li>
<span class="metadata date">décembre 2009</span>
<a class="post_title" href="/python-go.html">Python ? go !</a>&nbsp;
<span class="metadata category">Technologie</span> </li>
</ul>
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,141 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container-wide">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container-wide content">
<div class="content-title">
<h2>thoughts category</h2>
<div class="posts">
<ul id="blog_index">
<li style="background-image: url('images/less-is-more.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/faire-moins.html">Faire moins</a></span><span class="description"><span class="headline">Et retrouver le contrôle de son engagement.</span><time class="created" datetime="2018-02-19T00:00:00+01:00">19 février 2018</time></span></li>
<li style="background-image: url('images/vieuxsinge.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a></span><span class="description"><span class="headline">Retours sur ces quelques mois consacrés à la création de la brasserie du Vieux Singe.</span><time class="created" datetime="2017-06-26T00:00:00+02:00">26 juin 2017</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cloisonnement-des-activites.html">Cloisonnement des activités ?</a></span><span class="description"><span class="headline">En revenant de SudWeb</span><time class="created" datetime="2016-05-29T00:00:00+02:00">29 mai 2016</time></span></li>
<li style="background-image: url('images/focus.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/focusing-on-what-matters.html">Focusing on what matters</a></span><span class="description"><span class="headline">How to avoid the information overload?</span><time class="created" datetime="2016-03-17T00:00:00+01:00">17 mars 2016</time></span></li>
<li style="background-image: url('images/horizon.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lhorizon.html">L'horizon</a></span><span class="description"><span class="headline">Temps de changer d'horizon. Mon départ de Mozilla et le début d'une
nouvelle histoire.</span><time class="created" datetime="2016-03-02T00:00:00+01:00">02 mars 2016</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/roles.html">Rôles</a></span><span class="description"><span class="headline">De l'importance des rôles informels et de leur partage au sein d'un
groupe.</span><time class="created" datetime="2015-06-29T00:00:00+02:00">29 juin 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/travail-et-creativite.html">Travail et créativité</a></span><span class="description"><span class="headline">Travailler moins pour laisser plus de place à la créativité.</span><time class="created" datetime="2015-05-21T00:00:00+02:00">21 mai 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/chiffrement.html">Chiffrement</a></span><span class="description"><span class="headline">Face a la surveillance généralisée, une seule solution, le
chiffrement de nos données et communications.</span><time class="created" datetime="2015-05-08T00:00:00+02:00">08 mai 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/language.html">Language</a></span><span class="description"><span class="headline">Nos langues peuvent être autant de frontières que de ponts...</span><time class="created" datetime="2015-05-01T00:00:00+02:00">01 mai 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html">Quel métier, quelle utilité ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html">Retours sur deux ans à Mozilla</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/des-carnets-desquisse-fr.html">Des carnets d'esquisse</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-08-16T00:00:00+02:00">16 août 2013</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/confiance-fr.html">Des profils de confiance partout et pour tout ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-04-02T00:00:00+02:00">02 avril 2013</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lifestyle-fr.html">Lifestyle</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-11-05T00:00:00+01:00">05 novembre 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pourquoi-mozilla-fr.html">Pourquoi Mozilla?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-07-16T00:00:00+02:00">16 juillet 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/bidouille-fr.html">Bidouille</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-30T00:00:00+02:00">30 avril 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/djangocong-2012-fr.html">Djangocong 2012</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-16T00:00:00+02:00">16 avril 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/motivation-benevolat-et-participation-fr.html">Motivation, bénévolat et participation</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-10T00:00:00+02:00">10 avril 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/les-dangers-du-livre-numerique-fr.html">Les dangers du livre numérique</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-01-23T00:00:00+01:00">23 janvier 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/2012-first-months.html">2012, first months</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-01-21T00:00:00+01:00">21 janvier 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/la-simplicite-volontaire-contre-le-mythe-de-labondance-fr.html">La simplicité volontaire contre le mythe de l'abondance</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-10-14T00:00:00+02:00">14 octobre 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler-fr.html">Travailler moins pour mieux travailler ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-05-19T00:00:00+02:00">19 mai 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/usages-informatique-fr.html">Quels usages pour l'informatique ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-12T00:00:00+01:00">12 janvier 2011</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html">Fork you ! or how the social coding can help you</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-11-05T00:00:00+01:00">05 novembre 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-temps-des-graces-courrez-y-fr.html">Le temps des grâces, courrez-y !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-03-28T00:00:00+01:00">28 mars 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante-fr.html">Semaine de lenvironnement: La consommation étudiante</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-02-24T00:00:00+01:00">24 février 2010</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/amap-media-paniers-bio-a-5e-fr.html">AMAP + Média = Paniers bio à 5e ?!</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2009-11-11T00:00:00+01:00">11 novembre 2009</time></span></li>
</ul>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Un crieur public intergalactique ! - Carnets Web</title> <title>Charte et événements non-mixtes au sein de l'Afpy - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,44 +71,71 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Un crieur public intergalactique !</h1> <h1 class="post-title">Charte et événements non-mixtes au sein de l'Afpy</h1>
<span class="post-date">07 octobre 2013</span> <span class="post-date">09 juillet 2015</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p></p>
<blockquote>
<p>Mes dames, mes sieurs, mes demoiselles, damoiseaux, vous les endormis et vous
les reveillés, rejouissez vous: Je suis un crieur, et je crie fort !</p>
<p>Réjouissez vous parce que je vous permet de passer vos messages les plus fous,
importants, personnels ou collectifs, de manière toute à fait anonyme, durant
notre cher festival.</p>
<p>Poèmes, déclarations d'amour, Réclamations, Blagues, Petites annonces… je les
prends toutes.</p>
<p>Une criée aura lieu tous les soirs sur le festival, et vous pouvez y raconter
ce que vous voulez !</p>
<p>Vous pouvez retourner à une activité normale, mais pensez à moi, et mettes vous
mots dans la boite à criée !</p>
<p>Oooooh, yeah !</p>
</blockquote>
<p>C'est à peu près sur ce ton là que notre cher public du <strong>festival
intergalactique</strong>, ont pu être reçus à plusieurs reprises lors de
la soirée.</p>
<p>Le résultat était des plus impressionnant:</p>
Vous pouvez également <a onclick="(function(){ <p><em>Mail envoyé sur la liste de diffusion de l'AFPY en Juillet 2015</em></p>
let here = document.location; <p>Bonjour à toutes et tous,</p>
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; <p>Récemment, l'Afpy à pris la décision de ne pas relayer la tenue d'un
return false; événement non-mixte d'apprentissage de Python organisé par PyLadies [0].</p>
})();return false;">télécharger cet article en pdf</a>. <p>La raison est le fait que la tenue d'un tel événement ne respecte pas la
charte [1], et particulièrement le fait que c'est un événement
discriminant, alors que toutes les discriminations cherchent à être évitées.</p>
<blockquote>
<p>LAFPY souhaite éviter tout type de discrimination, que ce soit sur
le sexe, lorientation sexuelle, le handicap, lapparence physique,
lorigine ou la religion, et sous quelque forme que ce soit (parole,
image, texte et autre).</p>
</blockquote>
<p>Je suis un peu attristé que notre charte actuelle ne nous permette pas
de soutenir de telles propositions: les événements non-mixtes pour les
minorités sont des pratiques qui existent depuis longtemps, et qui ont
notamment été instrumentales dans la lutte contre lapartheid [2].</p>
<p>Et donc je voudrais voir cette charte évoluer si possible, mais j'ai du
mal à voir comment travailler le texte pour qu'il permette la tenue
d'événements non-mixtes au sein même de l'Afpy.</p>
<p>Qu'est-ce que vous en pensez ?</p>
<p>— Alexis</p>
<p>[0] http://www.meetup.com/fr/PyLadies-Paris/
[1] http://www.afpy.org/doc/afpy/charte.html
[2] Une citation à ce propos:</p>
<p>« La pratique de la non-mixité est tout simplement la conséquence de la
théorie de lauto-émancipation. Lauto-émancipation, cest la lutte par
les opprimés pour les opprimés. Cette idée simple, il semble que chaque
génération politique doive la redécouvrir. Dans les années 1960, elle a
dabord été redécouverte par le mouvement américain pour les droits
civils qui, après deux ans de lutte mixte, a décidé de créer des groupes
noirs, fermés aux Blancs. Cétait, cela demeure, la condition</p>
<ul>
<li>pour que leur expérience de discrimination et dhumiliation puisse se
dire, sans crainte de faire de la peine aux bons Blancs ;</li>
<li>pour que la rancœur puisse sexprimer et elle doit sexprimer ;</li>
<li>pour que ladmiration que les opprimés, même révoltés, ne peuvent
sempêcher davoir pour les dominants les noirs pour les Blancs, les
femmes pour les hommes ne joue pas pour donner plus de poids aux
représentants du groupe dominant.</li>
</ul>
<p>Car dans les groupes mixtes, Noirs-Blancs ou femmes-hommes, et en
général dans les groupes dominés-dominants, cest la vision dominante du
préjudice subi par le groupe dominé qui tend à… dominer. Les opprimés
doivent non seulement diriger la lutte contre leur oppression, mais
auparavant définir cette oppression elles et eux-mêmes. Cest pourquoi
la non-mixité voulue, la non-mixité politique, doit demeurer la pratique
de base de toute lutte ; et cest seulement ainsi que les moments mixtes
de la lutte car il y en a et il faut quil y en ait ne seront pas
susceptibles de déraper vers une reconduction douce de la domination.»</p>
<p>-- http://lmsi.net/La-non-mixite-une-necessite</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Cheese &amp; Code party: October 20-21 - Carnets Web</title> <title>Cheese & Code party: October 20-21 - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,49 +71,47 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Cheese &amp; Code party: October 20-21</h1> <h1 class="post-title">Cheese & Code party: October 20-21</h1>
<span class="post-date">20 septembre 2012</span> <span class="post-date">20 septembre 2012</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>At PyconFR, this week-end, a few ideas were thrown in the air and one of them <h1 id="cheese-code-party-october-20-21">Cheese &amp; Code party: October 20-21</h1>
was to have a /dev/fort doing some python-related coding.</p> <p>At PyconFR, this week-end, a few ideas were thrown in the air and one of
<p>The concept of a /dev/fort is to put a bunch of hackers together and see what them was to have a /dev/fort doing some python-related coding.</p>
comes out from it. Tarek is doing something related with the Afpy Computer <p>The concept of a /dev/fort is to put a bunch of hackers together and see
Camps at his house each year, I've been there twice and it really was a nice what comes out from it. Tarek is doing something related with the Afpy
experience.</p> Computer Camps at his house each year, I've been there twice and it
<p>At Djangocong 2012, in Montpellier (south of France), <a class="reference external" href="http://blog.mathieu-leplatre.info/">Mathieu Leplatre</a> and myself started to work on a model really was a nice experience.</p>
validation and storage service, named <a class="reference external" href="https://github.com/spiral-project/daybed/">Daybed</a>.</p> <p>At Djangocong 2012, in Montpellier (south of France), <a href="http://blog.mathieu-leplatre.info/">Mathieu
<p>I've talked about this project to some persons this week-end (I've even done <a class="reference external" href="http://alexis.notmyidea.org/lightning-daybed.html">a Leplatre</a> and myself started to work
lightning talk</a> about it) on a model validation and storage service, named
and it gathered some interest from people in the python community, so we <a href="https://github.com/spiral-project/daybed/">Daybed</a>.</p>
<p>I've talked about this project to some persons this week-end (I've even
done <a href="http://alexis.notmyidea.org/lightning-daybed.html">a lightning
talk</a> about it) and
it gathered some interest from people in the python community, so we
thought about sprinting on this.</p> thought about sprinting on this.</p>
<div class="section" id="and-21-october-a-computer-camp"> <h2 id="20-and-21-october-a-computer-camp-33">20 and 21 October - A Computer Camp !</h2>
<h2>20 and 21 October - A Computer Camp !</h2> <p>Add to this a few beers, and the sprint turns magically into a camp.
<p>Add to this a few beers, and the sprint turns magically into a camp. We'll be We'll be sprinting at the end of October (the 20 and 21) near Angers, on
sprinting at the end of October (the 20 and 21) near Angers, on daybed.</p> daybed.</p>
<p>We plan to have great food and wine, so if you feel like it and if you want to <p>We plan to have great food and wine, so if you feel like it and if you
come and work on some python-related things, you're invited!</p> want to come and work on some python-related things, you're invited!</p>
<p>Although, I can host a limited number of persons, so you'll need to contact me <p>Although, I can host a limited number of persons, so you'll need to
before :), that's <cite>alexis at notmyidea dot org</cite>.</p> contact me before :), that's alexis at notmyidea dot org.</p>
<p>I've setup a wiki page to organize a bit everything (knowing how many people will <p>I've setup a wiki page to organize a bit everything (knowing how many
come by will allow me to handle things better), please put information there:</p> people will come by will allow me to handle things better), please put
<p><a class="reference external" href="http://wiki.python.org/moin/ComputerCampAlexis">http://wiki.python.org/moin/ComputerCampAlexis</a></p> information there:</p>
</div> <p><a href="http://wiki.python.org/moin/ComputerCampAlexis">http://wiki.python.org/moin/ComputerCampAlexis</a></p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Cheese &amp; code - Wrap-up - Carnets Web</title> <title>Cheese & code - Wrap-up - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,129 +71,136 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Cheese &amp; code - Wrap-up</h1> <h1 class="post-title">Cheese & code - Wrap-up</h1>
<span class="post-date">22 octobre 2012</span> <span class="post-date">22 octobre 2012</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>This week-end I hosted a <em>cheese &amp; code</em> session in the country-side of Angers, <h1 id="cheese-code-wrap-up">Cheese &amp; code - Wrap-up</h1>
France.</p> <p>This week-end I hosted a <em>cheese &amp; code</em> session in the country-side of
<p>We were a bunch of python hackers and it rained a lot, wich forced us to stay Angers, France.</p>
inside and to code. Bad.</p> <p>We were a bunch of python hackers and it rained a lot, wich forced us to
<p>We were not enough to get rid of all the cheese and the awesome meals, but stay inside and to code. Bad.</p>
well, we finally managed it pretty well.</p> <p>We were not enough to get rid of all the cheese and the awesome meals,
but well, we finally managed it pretty well.</p>
<p>Here is a summary of what we worked on:</p> <p>Here is a summary of what we worked on:</p>
<div class="section" id="daybed"> <h2 id="daybed">Daybed</h2>
<h2>Daybed</h2> <p>Daybed started some time ago, and intend to be a replacement to google
<p>Daybed started some time ago, and intend to be a replacement to google forms, forms, in term of features, but backed as a REST web service, in python,
in term of features, but backed as a REST web service, in python, and open and open source.</p>
source.</p> <p>In case you wonder, daybed is effectively the name of a couch. We chose
<p>In case you wonder, daybed is effectively the name of a couch. We chose this this name because of the similarities (in the sound) with <strong>db</strong>, and
name because of the similarities (in the sound) with <strong>db</strong>, and because because we're using <strong>CouchDB</strong> as a backend.</p>
we're using <strong>CouchDB</strong> as a backend.</p> <p><img alt="Daybed is a big couch!" src="images/daybed.jpg"></p>
<img alt="Daybed is a big couch!" src="images/daybed.jpg" style="width: 400px;" /> <p>We mainly hacked on daybed and are pretty close to the release of the
<p>We mainly hacked on daybed and are pretty close to the release of the first first version, meaning that we have something working.</p>
version, meaning that we have something working.</p> <p><a href="http://github.com/spiral-project/daybed">The code</a> is available on
<p><a class="reference external" href="http://github.com/spiral-project/daybed">The code</a> is available on github, github, and we also wrote <a href="http://daybed.rtfd.org">a small
and we also wrote <a class="reference external" href="http://daybed.rtfd.org">a small documentation</a> for it.</p> documentation</a> for it.</p>
<p>Mainly, we did a lot of cleanup, rewrote a bunch of tests so that it would be <p>Mainly, we did a lot of cleanup, rewrote a bunch of tests so that it
easier to continue to work on the project, and implemented some minor features. would be easier to continue to work on the project, and implemented some
I'm pretty confidend that we now have really good basis for this project.</p> minor features. I'm pretty confidend that we now have really good basis
<p>Also, we will have a nice todolist application, with the backend <strong>and</strong> the for this project.</p>
frontend, in javascript / html / css, you'll know more when it'll be ready :-)</p> <p>Also, we will have a nice todolist application, with the backend <strong>and</strong>
<p>Once we have something good enough, we'll release the first version and I'll the frontend, in javascript / html / css, you'll know more when it'll be
host it somewhere so that people can play with it.</p> ready :-)</p>
</div> <p>Once we have something good enough, we'll release the first version and
<div class="section" id="cornice"> I'll host it somewhere so that people can play with it.</p>
<h2>Cornice</h2> <h2 id="cornice">Cornice</h2>
<p>Daybed is built on top of <a class="reference external" href="http://cornice.rtfd.org">Cornice</a>, a framework to <p>Daybed is built on top of <a href="http://cornice.rtfd.org">Cornice</a>, a
ease the creation of web-services.</p> framework to ease the creation of web-services.</p>
<p>At Pycon France, we had the opportunity to attend a good presentation about <a class="reference external" href="https://github.com/SPORE/specifications">SPORE</a>. SPORE is a way to describe your <p>At Pycon France, we had the opportunity to attend a good presentation
REST web services, as WSDL is for WS-* services. This allows to ease the about <a href="https://github.com/SPORE/specifications">SPORE</a>. SPORE is a way
creation of generic SPORE clients, which are able to consume any REST API with to describe your REST web services, as WSDL is for WS-* services. This
a SPORE endpoint.</p> allows to ease the creation of generic SPORE clients, which are able to
consume any REST API with a SPORE endpoint.</p>
<p>Here is how you can let cornice describe your web service for you</p> <p>Here is how you can let cornice describe your web service for you</p>
<div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">cornice.ext.spore</span> <span class="kn">import</span> <span class="n">generate_spore_description</span> <p>``` sourceCode python
<span class="kn">from</span> <span class="nn">cornice.service</span> <span class="kn">import</span> <span class="n">Service</span><span class="p">,</span> <span class="n">get_services</span> from cornice.ext.spore import generate_spore_description
from cornice.service import Service, get_services</p>
<p>spore = Service('spore', path='/spore', renderer='jsonp')
@spore.get
def get_spore(request):
services = get_services()
return generate_spore_description(services, 'Service name',
request.application_url, '1.0')</p>
<div class="highlight"><pre><span></span><span class="nv">And</span> <span class="nv">you</span><span class="s1">&#39;</span><span class="s">ll get a definition of your service, in SPORE, available at</span>
<span class="o">/</span><span class="nv">spore</span>.
<span class="n">spore</span> <span class="o">=</span> <span class="n">Service</span><span class="p">(</span><span class="s1">&#39;spore&#39;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s1">&#39;/spore&#39;</span><span class="p">,</span> <span class="n">renderer</span><span class="o">=</span><span class="s1">&#39;jsonp&#39;</span><span class="p">)</span> <span class="nv">Of</span> <span class="nv">course</span>, <span class="nv">you</span> <span class="nv">can</span> <span class="nv">use</span> <span class="nv">it</span> <span class="nv">to</span> <span class="k">do</span> <span class="nv">other</span> <span class="nv">things</span>, <span class="nv">like</span> <span class="nv">generating</span> <span class="nv">the</span> <span class="nv">file</span>
<span class="nd">@spore.get</span> <span class="nv">locally</span> <span class="nv">and</span> <span class="nv">exporting</span> <span class="nv">it</span> <span class="nv">wherever</span> <span class="nv">it</span> <span class="nv">makes</span> <span class="nv">sense</span> <span class="nv">to</span> <span class="nv">you</span>, <span class="nv">etc</span>.
<span class="k">def</span> <span class="nf">get_spore</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="n">services</span> <span class="o">=</span> <span class="n">get_services</span><span class="p">()</span> <span class="nv">I</span> <span class="nv">released</span> <span class="nv">today</span> [<span class="nv">Cornice</span> <span class="mi">0</span>.<span class="mi">11</span>]<span class="ss">(</span><span class="nv">http</span>:<span class="o">//</span><span class="nv">crate</span>.<span class="nv">io</span><span class="o">/</span><span class="nv">packages</span><span class="o">/</span><span class="nv">cornice</span><span class="o">/</span><span class="ss">)</span>,
<span class="k">return</span> <span class="n">generate_spore_description</span><span class="p">(</span><span class="n">services</span><span class="p">,</span> <span class="s1">&#39;Service name&#39;</span><span class="p">,</span> <span class="nv">which</span> <span class="nv">adds</span> <span class="nv">into</span> <span class="nv">other</span> <span class="nv">things</span> <span class="nv">the</span> <span class="nv">support</span> <span class="k">for</span> <span class="nv">SPORE</span>, <span class="nv">plus</span> <span class="nv">some</span> <span class="nv">other</span>
<span class="n">request</span><span class="o">.</span><span class="n">application_url</span><span class="p">,</span> <span class="s1">&#39;1.0&#39;</span><span class="p">)</span> <span class="nv">fixes</span> <span class="nv">we</span> <span class="nv">found</span> <span class="nv">on</span> <span class="nv">our</span> <span class="nv">way</span>.
## <span class="nv">Respire</span>
<span class="nv">Once</span> <span class="nv">you</span> <span class="nv">have</span> <span class="nv">the</span> <span class="nv">description</span> <span class="nv">of</span> <span class="nv">the</span> <span class="nv">service</span>, <span class="nv">you</span> <span class="nv">can</span> <span class="k">do</span> <span class="nv">generic</span> <span class="nv">clients</span>
<span class="nv">consuming</span> <span class="nv">them</span>\<span class="o">!</span>
<span class="nv">We</span> <span class="nv">first</span> <span class="nv">wanted</span> <span class="nv">to</span> <span class="nv">contribute</span> <span class="nv">to</span> [<span class="nv">spyre</span>]<span class="ss">(</span><span class="nv">https</span>:<span class="o">//</span><span class="nv">github</span>.<span class="nv">com</span><span class="o">/</span><span class="nv">bl0b</span><span class="o">/</span><span class="nv">spyre</span><span class="ss">)</span>
<span class="nv">but</span> <span class="nv">it</span> <span class="nv">was</span> <span class="nv">written</span> <span class="nv">in</span> <span class="nv">a</span> <span class="nv">way</span> <span class="nv">that</span> <span class="nv">wasn</span><span class="s1">&#39;</span><span class="s">t supporting to POST data, and</span>
<span class="nv">they</span> <span class="nv">were</span> <span class="nv">using</span> <span class="nv">their</span> <span class="nv">own</span> <span class="nv">stack</span> <span class="nv">to</span> <span class="nv">handle</span> <span class="nv">HTTP</span>. <span class="nv">A</span> <span class="nv">lot</span> <span class="nv">of</span> <span class="nv">code</span> <span class="nv">that</span>
<span class="nv">already</span> <span class="nv">exists</span> <span class="nv">in</span> <span class="nv">other</span> <span class="nv">libraries</span>.
<span class="k">While</span> <span class="nv">waiting</span> <span class="nv">the</span> <span class="nv">train</span> <span class="nv">with</span> [<span class="nv">R</span>é<span class="nv">my</span>]<span class="ss">(</span><span class="nv">http</span>:<span class="o">//</span><span class="nv">natim</span>.<span class="nv">ionyse</span>.<span class="nv">com</span><span class="o">/</span><span class="ss">)</span>, <span class="nv">we</span> <span class="nv">hacked</span>
<span class="nv">something</span> <span class="nv">together</span>, <span class="nv">named</span> <span class="s2">&quot;</span><span class="s">Respire</span><span class="s2">&quot;</span>, <span class="nv">a</span> <span class="nv">thin</span> <span class="nv">layer</span> <span class="nv">on</span> <span class="nv">top</span> <span class="nv">of</span> <span class="nv">the</span> <span class="nv">awesome</span>
[<span class="nv">Requests</span>]<span class="ss">(</span><span class="nv">http</span>:<span class="o">//</span><span class="nv">python</span><span class="o">-</span><span class="nv">requests</span>.<span class="nv">org</span><span class="ss">)</span> <span class="nv">library</span>.
<span class="nv">We</span> <span class="nv">have</span> <span class="nv">a</span> <span class="nv">first</span> <span class="nv">version</span>, <span class="nv">feel</span> <span class="nv">free</span> <span class="nv">to</span> <span class="nv">have</span> <span class="nv">a</span> <span class="nv">look</span> <span class="nv">at</span> <span class="nv">it</span> <span class="nv">and</span> <span class="nv">provide</span>
<span class="nv">enhancements</span> <span class="k">if</span> <span class="nv">you</span> <span class="nv">feel</span> <span class="nv">like</span> <span class="nv">it</span>. <span class="nv">We</span><span class="s1">&#39;</span><span class="s">re still hacking on it so it may</span>
<span class="k">break</span> <span class="ss">(</span><span class="k">for</span> <span class="nv">the</span> <span class="nv">better</span><span class="ss">)</span>, <span class="nv">but</span> <span class="nv">that</span> <span class="nv">had</span> <span class="nv">been</span> <span class="nv">working</span> <span class="nv">pretty</span> <span class="nv">well</span> <span class="k">for</span> <span class="nv">us</span> <span class="nv">so</span>
<span class="nv">far</span>.
<span class="nv">You</span> <span class="nv">can</span> [<span class="nv">find</span> <span class="nv">the</span> <span class="nv">project</span> <span class="nv">on</span>
<span class="nv">github</span>]<span class="ss">(</span><span class="nv">http</span>:<span class="o">//</span><span class="nv">github</span>.<span class="nv">com</span><span class="o">/</span><span class="nv">spiral</span><span class="o">-</span><span class="nv">project</span><span class="o">/</span><span class="nv">respire</span><span class="ss">)</span>, <span class="nv">but</span> <span class="nv">here</span> <span class="nv">is</span> <span class="nv">how</span> <span class="nv">to</span>
<span class="nv">use</span> <span class="nv">it</span>, <span class="nv">really</span> <span class="nv">quickly</span> <span class="ss">(</span><span class="nv">these</span> <span class="nv">examples</span> <span class="nv">are</span> <span class="nv">how</span> <span class="nv">to</span> <span class="nv">interact</span> <span class="nv">with</span> <span class="nv">daybed</span><span class="ss">)</span>
``` <span class="nv">sourceCode</span> <span class="nv">python</span>
<span class="o">&gt;&gt;&gt;</span> <span class="nv">from</span> <span class="nv">respire</span> <span class="nv">import</span> <span class="nv">client_from_url</span>
<span class="o">&gt;&gt;&gt;</span> # <span class="nv">create</span> <span class="nv">the</span> <span class="nv">client</span> <span class="nv">from</span> <span class="nv">the</span> <span class="nv">SPORE</span> <span class="nv">definition</span>
<span class="o">&gt;&gt;&gt;</span> <span class="nv">cl</span> <span class="o">=</span> <span class="nv">client_from_url</span><span class="ss">(</span><span class="s1">&#39;</span><span class="s">http://localhost:8000/spore</span><span class="s1">&#39;</span><span class="ss">)</span>
<span class="o">&gt;&gt;&gt;</span> # <span class="nv">in</span> <span class="nv">daybed</span>, <span class="nv">create</span> <span class="nv">a</span> <span class="nv">new</span> <span class="nv">definition</span>
<span class="o">&gt;&gt;&gt;</span> <span class="nv">todo_def</span> <span class="o">=</span> {
... <span class="s2">&quot;</span><span class="s">title</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">todo</span><span class="s2">&quot;</span>,
... <span class="s2">&quot;</span><span class="s">description</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">A list of my stuff to do</span><span class="s2">&quot;</span>,
... <span class="s2">&quot;</span><span class="s">fields</span><span class="s2">&quot;</span>: [
... {
... <span class="s2">&quot;</span><span class="s">name</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">item</span><span class="s2">&quot;</span>,
... <span class="s2">&quot;</span><span class="s">type</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">string</span><span class="s2">&quot;</span>,
... <span class="s2">&quot;</span><span class="s">description</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">The item</span><span class="s2">&quot;</span>
... },
... {
... <span class="s2">&quot;</span><span class="s">name</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">status</span><span class="s2">&quot;</span>,
... <span class="s2">&quot;</span><span class="s">type</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">enum</span><span class="s2">&quot;</span>,
... <span class="s2">&quot;</span><span class="s">choices</span><span class="s2">&quot;</span>: [
... <span class="s2">&quot;</span><span class="s">done</span><span class="s2">&quot;</span>,
... <span class="s2">&quot;</span><span class="s">todo</span><span class="s2">&quot;</span>
... ],
... <span class="s2">&quot;</span><span class="s">description</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">is it done or not</span><span class="s2">&quot;</span>
... }
... ]}
<span class="o">&gt;&gt;&gt;</span> <span class="nv">cl</span>.<span class="nv">put_definition</span><span class="ss">(</span><span class="nv">model_name</span><span class="o">=</span><span class="s1">&#39;</span><span class="s">todo</span><span class="s1">&#39;</span>, <span class="nv">data</span><span class="o">=</span><span class="nv">todo_def</span><span class="ss">)</span>
<span class="o">&gt;&gt;&gt;</span> <span class="nv">cl</span>.<span class="nv">post_data</span><span class="ss">(</span><span class="nv">model_name</span><span class="o">=</span><span class="s1">&#39;</span><span class="s">todo</span><span class="s1">&#39;</span>, <span class="nv">data</span><span class="o">=</span><span class="nv">dict</span><span class="ss">(</span><span class="nv">item</span><span class="o">=</span><span class="s1">&#39;</span><span class="s">make it work</span><span class="s1">&#39;</span>, <span class="nv">status</span><span class="o">=</span><span class="s1">&#39;</span><span class="s">todo</span><span class="s1">&#39;</span><span class="ss">))</span>
{<span class="nv">u</span><span class="s1">&#39;</span><span class="s">id</span><span class="s1">&#39;</span>: <span class="nv">u</span><span class="s1">&#39;</span><span class="s">9f2c90c0529a442cfdc03c191b022cf7</span><span class="s1">&#39;</span>}
<span class="o">&gt;&gt;&gt;</span> <span class="nv">cl</span>.<span class="nv">get_data</span><span class="ss">(</span><span class="nv">model_name</span><span class="o">=</span><span class="s1">&#39;</span><span class="s">todo</span><span class="s1">&#39;</span><span class="ss">)</span>
</pre></div> </pre></div>
<p>And you'll get a definition of your service, in SPORE, available at <cite>/spore</cite>.</p>
<p>Of course, you can use it to do other things, like generating the file locally
and exporting it wherever it makes sense to you, etc.</p>
<p>I released today <a class="reference external" href="http://crate.io/packages/cornice/">Cornice 0.11</a>, which adds
into other things the support for SPORE, plus some other fixes we found on our
way.</p>
</div>
<div class="section" id="respire">
<h2>Respire</h2>
<p>Once you have the description of the service, you can do generic clients
consuming them!</p>
<p>We first wanted to contribute to <a class="reference external" href="https://github.com/bl0b/spyre">spyre</a> but
it was written in a way that wasn't supporting to <cite>POST</cite> data, and they
were using their own stack to handle HTTP. A lot of code that already exists in
other libraries.</p>
<p>While waiting the train with <a class="reference external" href="http://natim.ionyse.com/">Rémy</a>, we hacked
something together, named &quot;Respire&quot;, a thin layer on top of the awesome
<a class="reference external" href="http://python-requests.org">Requests</a> library.</p>
<p>We have a first version, feel free to have a look at it and provide
enhancements if you feel like it. We're still hacking on it so it may break
(for the better), but that had been working pretty well for us so far.</p>
<p>You can <a class="reference external" href="http://github.com/spiral-project/respire">find the project on github</a>, but here is how to use it, really
quickly (these examples are how to interact with daybed)</p>
<div class="highlight"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="kn">from</span> <span class="nn">respire</span> <span class="kn">import</span> <span class="n">client_from_url</span>
<span class="o">&gt;&gt;&gt;</span> <span class="c1"># create the client from the SPORE definition</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">cl</span> <span class="o">=</span> <span class="n">client_from_url</span><span class="p">(</span><span class="s1">&#39;http://localhost:8000/spore&#39;</span><span class="p">)</span>
<span class="o">&gt;&gt;&gt;</span> <span class="c1"># in daybed, create a new definition</span> <p>Finally, we were out of cheese so everyone headed back to their
<span class="o">&gt;&gt;&gt;</span> <span class="n">todo_def</span> <span class="o">=</span> <span class="p">{</span> respective houses and cities.</p>
<span class="o">...</span> <span class="s2">&quot;title&quot;</span><span class="p">:</span> <span class="s2">&quot;todo&quot;</span><span class="p">,</span>
<span class="o">...</span> <span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;A list of my stuff to do&quot;</span><span class="p">,</span>
<span class="o">...</span> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="p">[</span>
<span class="o">...</span> <span class="p">{</span>
<span class="o">...</span> <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="s2">&quot;item&quot;</span><span class="p">,</span>
<span class="o">...</span> <span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;string&quot;</span><span class="p">,</span>
<span class="o">...</span> <span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;The item&quot;</span>
<span class="o">...</span> <span class="p">},</span>
<span class="o">...</span> <span class="p">{</span>
<span class="o">...</span> <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="s2">&quot;status&quot;</span><span class="p">,</span>
<span class="o">...</span> <span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;enum&quot;</span><span class="p">,</span>
<span class="o">...</span> <span class="s2">&quot;choices&quot;</span><span class="p">:</span> <span class="p">[</span>
<span class="o">...</span> <span class="s2">&quot;done&quot;</span><span class="p">,</span>
<span class="o">...</span> <span class="s2">&quot;todo&quot;</span>
<span class="o">...</span> <span class="p">],</span>
<span class="o">...</span> <span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;is it done or not&quot;</span>
<span class="o">...</span> <span class="p">}</span>
<span class="o">...</span> <span class="p">]}</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">cl</span><span class="o">.</span><span class="n">put_definition</span><span class="p">(</span><span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;todo&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">todo_def</span><span class="p">)</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">cl</span><span class="o">.</span><span class="n">post_data</span><span class="p">(</span><span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;todo&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">item</span><span class="o">=</span><span class="s1">&#39;make it work&#39;</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="s1">&#39;todo&#39;</span><span class="p">))</span>
<span class="p">{</span><span class="sa">u</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="sa">u</span><span class="s1">&#39;9f2c90c0529a442cfdc03c191b022cf7&#39;</span><span class="p">}</span>
<span class="o">&gt;&gt;&gt;</span> <span class="n">cl</span><span class="o">.</span><span class="n">get_data</span><span class="p">(</span><span class="n">model_name</span><span class="o">=</span><span class="s1">&#39;todo&#39;</span><span class="p">)</span>
</pre></div>
<p>Finally, we were out of cheese so everyone headed back to their respective
houses and cities.</p>
<p>Until next time?</p> <p>Until next time?</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Chiffrement - Carnets Web</title> <title>Chiffrement - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -83,63 +83,76 @@ styles, `#sidebar-checkbox` for behavior. -->
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h2 class="post-headline">Face a la surveillance généralisée, une seule solution, le
chiffrement de nos données et communications.</h2>
<h1>🌟</h1> <h1>🌟</h1>
<blockquote class="epigraph">
<p>En france, depuis le 5 Mai 2015, il est possible au Premier Ministre de <ul>
surveiller massivement et sans contrôle la population française.</p> <li>headline<br>
<p>le projet de loi n'a pas été significativement amendé en séance mi-avril, Face a la surveillance généralisée, une seule solution, le
et ses dispositions dangereuses ont été conservées :</p> chiffrement de nos données et communications.</li>
<ul class="simple"> </ul>
<li>Élargissement des finalités du renseignement, permettant une <strong>potentielle <blockquote>
mise sous surveillance de pans entiers de la vie politique, syndicale, <p>En france, depuis le 5 Mai 2015, il est possible au Premier Ministre
militante</strong>, mais aussi économique, scientifique, etc. ;</li> de surveiller massivement et sans contrôle la population française.</p>
<p>le projet de loi n'a pas été significativement amendé en séance
mi-avril, et ses dispositions dangereuses ont été conservées :</p>
<ul>
<li>Élargissement des finalités du renseignement, permettant une
<strong>potentielle mise sous surveillance de pans entiers de la vie
politique, syndicale, militante</strong>, mais aussi économique,
scientifique, etc. ;</li>
<li>Légalisation massive de pratiques illégales des services de <li>Légalisation massive de pratiques illégales des services de
renseignement et <strong>introduction de techniques de surveillance de masse renseignement et <strong>introduction de techniques de surveillance de
des communications électroniques</strong> ;</li> masse des communications électroniques</strong> ;</li>
<li><strong>Absence de contrôle réel et indépendant</strong> a priori par la future <li><strong>Absence de contrôle réel et indépendant</strong> a priori par la future
CNCTR, et recours des citoyens illusoires ;</li> CNCTR, et recours des citoyens illusoires ;</li>
</ul> </ul>
<p class="attribution">&mdash;<a class="reference external" href="https://www.laquadrature.net/fr/lassemblee-nationale-vote-la-surveillance-de-masse-des-citoyens-francais">La Quadrature du Net - L'Assemblée nationale vote la surveillance de <p>-- <a href="https://www.laquadrature.net/fr/lassemblee-nationale-vote-la-surveillance-de-masse-des-citoyens-francais">La Quadrature du Net - L'Assemblée nationale vote la surveillance
masse des citoyens français !</a></p> de masse des citoyens français
!</a></p>
</blockquote> </blockquote>
<p>Je m'étonne que <a class="reference external" href="https://fr.wikipedia.org/wiki/R%C3%A9v%C3%A9lations_d%27Edward_Snowden">les révélations d'Edward Snowden</a> — qui <p>Je m'étonne que <a href="https://fr.wikipedia.org/wiki/R%C3%A9v%C3%A9lations_d%27Edward_Snowden">les révélations d'Edward
ont démontré que la plupart des communications électroniques et téléphoniques Snowden</a>
pouvaient être scrutés par la NSA, l'agence de sécurité Américaine) — ne — qui ont démontré que la plupart des communications électroniques et
fassent pas plus de remous que ça.</p> téléphoniques pouvaient être scrutés par la NSA, l'agence de sécurité
<p>À peine deux années après ces révélations, la France fait passer une loi qui Américaine) — ne fassent pas plus de remous que ça.</p>
légitime cette surveillance de masse, à plus de 77% des voies. Pour moi c'est <p>À peine deux années après ces révélations, la France fait passer une loi
un signal fort de la perte de valeurs de notre démocratie, et à fortiori de ma qui légitime cette surveillance de masse, à plus de 77% des voies. Pour
perte de foi en notre forme de démocratie.</p> moi c'est un signal fort de la perte de valeurs de notre démocratie, et
à fortiori de ma perte de foi en notre forme de démocratie.</p>
<p>Notre liberté d'expression se voit bien évidemment amputée de par la <p>Notre liberté d'expression se voit bien évidemment amputée de par la
surveillance généralisée. Sans avoir nécessairement à cacher mes échanges, ce surveillance généralisée. Sans avoir nécessairement à cacher mes
qui est de la sphère privée devrait pouvoir le rester.</p> échanges, ce qui est de la sphère privée devrait pouvoir le rester.</p>
<p>De toute manière, l'email comme on l'utilise traditionnellement est une <p>De toute manière, l'email comme on l'utilise traditionnellement est une
hérésie: toutes les parties qui traitent le message peuvent le lire, hérésie: toutes les parties qui traitent le message peuvent le lire,
(destinataire, auteur et corps du message entre autres). Il est grand temps de (destinataire, auteur et corps du message entre autres). Il est grand
rendre les outils de chiffrement plus simples et ergonomiques.</p> temps de rendre les outils de chiffrement plus simples et ergonomiques.</p>
<p>Je compte donc:</p> <p>Je compte donc:</p>
<ul class="simple"> <ul>
<li>Organiser des ateliers de sensibilisation aux outils de communication, envers <li>Organiser des ateliers de sensibilisation aux outils de
mes proches;</li> communication, envers mes proches;</li>
<li>Utiliser la communication chiffrée le plus souvent possible, au moins pour <li>Utiliser la communication chiffrée le plus souvent possible, au
rendre le déchiffrement des messages plus longue, &quot;noyer le poisson&quot;.</li> moins pour rendre le déchiffrement des messages plus longue, "noyer
le poisson".</li>
</ul> </ul>
<p>Si vous êtes intéressé(e)s, faites moi signe, je me ferais un plaisir de vous <p>Si vous êtes intéressé(e)s, faites moi signe, je me ferais un plaisir de
expliquer ce qui n'est pas si complexe et vise à laisser dans la sphère privée vous expliquer ce qui n'est pas si complexe et vise à laisser dans la
ce qui devrait l'être à priori.</p> sphère privée ce qui devrait l'être à priori.</p>
<p>Une manière simple de se protéger est d'installer Thunderbird avec Enigmail et <p>Une manière simple de se protéger est d'installer Thunderbird avec
de le configurer correctement. Ce n'est pas très compliqué et permet d'avoir Enigmail et de le configurer correctement. Ce n'est pas très compliqué
des échanges chiffrés. <a class="reference external" href="https://emailselfdefense.fsf.org/fr/">Référez vous à ce guide</a> pour des instructions pas à pas.</p> et permet d'avoir des échanges chiffrés. <a href="https://emailselfdefense.fsf.org/fr/">Référez vous à ce
<p>La clé publique pour me contacter est <a class="reference external" href="/static/alexis.notmyidea.org.asc">0x078805D867F56F12</a>. Et guide</a> pour des instructions pas à
vous ?</p> pas.</p>
<p>Je vous invite à aller voir le documentaire Citizen Four, qui passe en salles. <p>La clé publique pour me contacter est
Si vous ni avez pas accès, vous pouvez le visionner ici, et éventuellement <a href="/static/alexis.notmyidea.org.asc">0x078805D867F56F12</a>. Et vous ?</p>
faire un don aux auteurs ou associations qui gravitent autour (<a class="reference external" href="https://supporters.eff.org/donate">Electronic <p>Je vous invite à aller voir le documentaire Citizen Four, qui passe en
Fronteer Fondation</a>, <a class="reference external" href="https://tails.boum.org/contribute/how/donate/index.fr.html">Tails</a>, <a class="reference external" href="https://support.laquadrature.net/">La quadrature salles. Si vous ni avez pas accès, vous pouvez le visionner ici, et
du net</a> en france ou d'autres…)</p> éventuellement faire un don aux auteurs ou associations qui gravitent
<link href="http://vjs.zencdn.net/4.12/video-js.css" rel="stylesheet"> autour (<a href="https://supporters.eff.org/donate">Electronic Fronteer
Fondation</a>,
<a href="https://tails.boum.org/contribute/how/donate/index.fr.html">Tails</a>, <a href="https://support.laquadrature.net/">La
quadrature du net</a> en france ou
d'autres…)</p>
<p><link href="http://vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/4.12/video.js"></script> <script src="http://vjs.zencdn.net/4.12/video.js"></script>
<video id="MY_VIDEO_1" class="video-js vjs-default-skin" controls <video id="MY_VIDEO_1" class="video-js vjs-default-skin" controls
preload="auto" width="640" height="264" poster="MY_VIDEO_POSTER.jpg" preload="auto" width="640" height="264" poster="MY_VIDEO_POSTER.jpg"
@ -149,12 +162,7 @@ du net</a> en france ou d'autres…)</p>
consider upgrading to a web browser that <a consider upgrading to a web browser that <a
href="http://videojs.com/html5-video-support/" target="_blank">supports href="http://videojs.com/html5-video-support/" target="_blank">supports
HTML5 video</a></p> HTML5 video</a></p>
</video> </video></p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Circus sprint at PyconFR - Carnets Web</title> <title>Circus sprint at PyconFR - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,81 +84,73 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Last Thursday to Sunday, <a class="reference external" href="http://pycon.fr">Pycon France</a> took place, in
Paris. It was the opportunity to meet a lot of people and to talk about python
awesomness in general.</p>
<p>We had three tracks this year, plus sprints the two first days. We sprinted on
<a class="reference external" href="http://circus.io">Circus</a>, the process and socket manager we're using
at Mozilla for some of our setups.</p>
<p>The project gathered some interest, and we ended up with 5 persons working on
it. Of course, we spent some time explaining what is Circus, how it had been
built, a lot of time talking about use-cases and possible improvements, but we
also managed to add new features.</p>
<p>Having people wanting to sprint on our projects is exciting because that's
when making things in the open unleashes its full potential. You can't imagine
how happy I was to have some friends come and work on this with us :)</p>
<p>Here is a wrap-up of the sprint:</p>
<div class="section" id="autocompletion-on-the-command-line">
<h2>Autocompletion on the command-line</h2>
<p><a class="reference external" href="http://natim.ionyse.com">Remy Hubscher</a> worked on the command-line
autocompletion. Now we have a fancy command-line interface which is able to
aucomplete if you're using bash. It seems that not that much work is needed to
make it happen on zsh as well :)</p>
<p><a class="reference external" href="https://github.com/mozilla-services/circus/blob/master/extras/circusctl_bash_completion">Have a look at the feature</a></p>
<p>On the same topic, we now have a cool shell for Circus. If you start the
<cite>circusctl</cite> command without any option, you'll end-up with a cool shell. Thanks
<a class="reference external" href="https://github.com/jojax">Jonathan Dorival</a> for the work on this! You can
have a look at <a class="reference external" href="https://github.com/mozilla-services/circus/pull/268">the pull request</a>.</p>
</div>
<div class="section" id="future-changes-to-the-web-ui">
<h2>Future changes to the web ui</h2>
<p><a class="reference external" href="https://twitter.com/rachbelaid">Rachid Belaid</a> had a deep look at the source
code and is much more familiarized to it now than before. We discussed the
possibility to change the implementation of the web ui, and I'm glad of this.
Currently, it's done with bottle.py and we want to switch to pyramid.</p>
<p>He fixed some issues that were in the tracker, so we now can have the age of
watchers in the webui, for instance.</p>
</div>
<div class="section" id="bug-and-doc-fixing">
<h2>Bug and doc fixing</h2>
<p>While reading the source code, we found some inconsistencies and fixed them,
with <a class="reference external" href="http://mathieu.agopian.info/">Mathieu Agopian</a>. We also tried to
improve the documentation at different levels.</p>
<p>Documentation still needs a lot of love, and I'm planning to spend some time on
this shortly. I've gathered a bunch of feedback on this</p>
</div>
<div class="section" id="circus-clustering-capabilities">
<h2>Circus clustering capabilities</h2>
<p>One feature I wanted to work on during this sprint was the clustering abilities
of Circus. Nick Pellegrino made an internship on this topic at Mozilla so we
spent some time to review his pull requests.</p>
<p>A lot of code was written for this so we discussed a bunch of things
regarding all of this. It took us more time than expected (and I still need to
spend more time on this to provide appropriate feedback), but it allowed us to
have a starting-point about what this clustering thing could be.</p>
<p>Remy wrote <a class="reference external" href="http://tech.novapost.fr/circus-clustering-management-en.html">a good summary about our brainstorming</a> so I'll not do
it again here, but feel free to contact us if you have ideas on this, they're
very welcome!</p>
</div>
<div class="section" id="project-management">
<h2>Project management</h2>
<p>We've had some inquiries telling us that's not as easy as it should to get
started with the Circus project. Some of the reasons are that we don't
have any release schedule, and that the documentation is hairy enough to lost
people, at some point :)</p>
<p>That's something we'll try to fix soon :)</p>
<p>PyconFR was a very enjoyable event. I'm looking forward to meet the community
again and discuss how Circus can evolve in ways that are interesting to
everyone.</p>
<p>Tarek and me are going to <a class="reference external" href="http://python.ie/pycon/2012/">Pycon ireland</a>, feel
free to reach us if you're going there, we'll be happy to meet and enjoy beers!</p>
</div>
Vous pouvez également <a onclick="(function(){ <p>Last Thursday to Sunday, <a href="http://pycon.fr">Pycon France</a> took place, in
let here = document.location; Paris. It was the opportunity to meet a lot of people and to talk about
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; python awesomness in general.</p>
return false; <p>We had three tracks this year, plus sprints the two first days. We
})();return false;">télécharger cet article en pdf</a>. sprinted on <a href="http://circus.io">Circus</a>, the process and socket manager
we're using at Mozilla for some of our setups.</p>
<p>The project gathered some interest, and we ended up with 5 persons
working on it. Of course, we spent some time explaining what is Circus,
how it had been built, a lot of time talking about use-cases and
possible improvements, but we also managed to add new features.</p>
<p>Having people wanting to sprint on our projects is exciting because
that's when making things in the open unleashes its full potential. You
can't imagine how happy I was to have some friends come and work on this
with us :)</p>
<p>Here is a wrap-up of the sprint:</p>
<h2 id="autocompletion-on-the-command-line">Autocompletion on the command-line</h2>
<p><a href="http://natim.ionyse.com">Remy Hubscher</a> worked on the command-line
autocompletion. Now we have a fancy command-line interface which is able
to aucomplete if you're using bash. It seems that not that much work is
needed to make it happen on zsh as well :)</p>
<p><a href="https://github.com/mozilla-services/circus/blob/master/extras/circusctl_bash_completion">Have a look at the
feature</a></p>
<p>On the same topic, we now have a cool shell for Circus. If you start the
circusctl command without any option, you'll end-up with a cool shell.
Thanks <a href="https://github.com/jojax">Jonathan Dorival</a> for the work on
this! You can have a look at <a href="https://github.com/mozilla-services/circus/pull/268">the pull
request</a>.</p>
<h2 id="future-changes-to-the-web-ui">Future changes to the web ui</h2>
<p><a href="https://twitter.com/rachbelaid">Rachid Belaid</a> had a deep look at the
source code and is much more familiarized to it now than before. We
discussed the possibility to change the implementation of the web ui,
and I'm glad of this. Currently, it's done with bottle.py and we want to
switch to pyramid.</p>
<p>He fixed some issues that were in the tracker, so we now can have the
age of watchers in the webui, for instance.</p>
<h2 id="bug-and-doc-fixing">Bug and doc fixing</h2>
<p>While reading the source code, we found some inconsistencies and fixed
them, with <a href="http://mathieu.agopian.info/">Mathieu Agopian</a>. We also
tried to improve the documentation at different levels.</p>
<p>Documentation still needs a lot of love, and I'm planning to spend some
time on this shortly. I've gathered a bunch of feedback on this</p>
<h2 id="circus-clustering-capabilities">Circus clustering capabilities</h2>
<p>One feature I wanted to work on during this sprint was the clustering
abilities of Circus. Nick Pellegrino made an internship on this topic at
Mozilla so we spent some time to review his pull requests.</p>
<p>A lot of code was written for this so we discussed a bunch of things
regarding all of this. It took us more time than expected (and I still
need to spend more time on this to provide appropriate feedback), but it
allowed us to have a starting-point about what this clustering thing
could be.</p>
<p>Remy wrote <a href="http://tech.novapost.fr/circus-clustering-management-en.html">a good summary about our
brainstorming</a>
so I'll not do it again here, but feel free to contact us if you have
ideas on this, they're very welcome!</p>
<h2 id="project-management">Project management</h2>
<p>We've had some inquiries telling us that's not as easy as it should to
get started with the Circus project. Some of the reasons are that we
don't have any release schedule, and that the documentation is hairy
enough to lost people, at some point :)</p>
<p>That's something we'll try to fix soon :)</p>
<p>PyconFR was a very enjoyable event. I'm looking forward to meet the
community again and discuss how Circus can evolve in ways that are
interesting to everyone.</p>
<p>Tarek and me are going to <a href="http://python.ie/pycon/2012/">Pycon ireland</a>,
feel free to reach us if you're going there, we'll be happy to meet and
enjoy beers!</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Cloisonnement des activités ? - Carnets Web</title> <title>Cloisonnement des activités ? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -79,7 +79,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Cloisonnement des activités ?</h1> <h1 class="post-title">Cloisonnement des activités ?</h1>
<span class="post-date">29 mai 2016</span> <span class="post-date">25 mai 2016</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
@ -90,7 +90,7 @@ jours à l'occasion de <a href="http://sudweb.fr/">SudWeb</a>. Si vous ne connai
cette conférence, il s'agit d'un moment avec des gens chouettes qui se posent cette conférence, il s'agit d'un moment avec des gens chouettes qui se posent
des questions sur leur metier, comment le vivre et comment continuer à en faire des questions sur leur metier, comment le vivre et comment continuer à en faire
un plaisir. Oh, et des fois on parle un peu de technique aussi.</p> un plaisir. Oh, et des fois on parle un peu de technique aussi.</p>
<h1>Alors, brasserie ou code ?</h1> <h1 id="alors-brasserie-ou-code">Alors, brasserie ou code ?</h1>
<p>Ces quelques jours ont été fort inspirants. Alors que je suis en train de <p>Ces quelques jours ont été fort inspirants. Alors que je suis en train de
changer de métier (vers celui de brasseur) c'était un moyen de me rendre compte changer de métier (vers celui de brasseur) c'était un moyen de me rendre compte
que bien que je ne souhaite plus faire du Web mon métier <em>la, tout de suite, que bien que je ne souhaite plus faire du Web mon métier <em>la, tout de suite,
@ -116,11 +116,6 @@ il n'empèche que même si je décide de faire de la bière mon metier, mes
passions pour le reste sont bien vivantes.</p> passions pour le reste sont bien vivantes.</p>
<p>Bref, merci sudweb pour m'avoir accompagné dans ces reflexions, à l'année <p>Bref, merci sudweb pour m'avoir accompagné dans ces reflexions, à l'année
prochaine, je ramène des futs ?</p> prochaine, je ramène des futs ?</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Comment est-ce que vous générez vos formulaires ? - Carnets Web</title> <title>Comment est-ce que vous générez vos formulaires ? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -78,7 +78,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -107,7 +107,7 @@ pas libre et que les données sont stockées chez Google.</p>
questions, et donner un lien à mes amis pour qu'ils puissent y répondre. questions, et donner un lien à mes amis pour qu'ils puissent y répondre.
Je reviens ensuite plus tard pour voir la liste des réponses apportées.</p> Je reviens ensuite plus tard pour voir la liste des réponses apportées.</p>
<p><img alt="Capture de l'interface de création du formulaire" src="{filename}/static/formbuilder-build.png"></p> <p><img alt="Capture de l'interface de création du formulaire" src="{filename}/static/formbuilder-build.png"></p>
<h2>Fonctionnalités</h2> <h2 id="fonctionnalites">Fonctionnalités</h2>
<p>Il existe pas mal de solutions techniques qui essayent de répondre à la même <p>Il existe pas mal de solutions techniques qui essayent de répondre à la même
problématique, mais la plupart d'entre elles sont assez souvent compliquées, problématique, mais la plupart d'entre elles sont assez souvent compliquées,
nécessitent de se créer un compte, et/ou ne vous laisse pas la main libre sur nécessitent de se créer un compte, et/ou ne vous laisse pas la main libre sur
@ -118,21 +118,21 @@ formulaires <em>et</em> pour les utilisateurs finaux. Pas de chichis, juste quel
vues, et des URLs à sauvegarder une fois l'opération terminée.</p> vues, et des URLs à sauvegarder une fois l'opération terminée.</p>
<p><img alt="Capture de l'écran avec les URLs générées" src="{filename}/static/formbuilder-created.png"> <p><img alt="Capture de l'écran avec les URLs générées" src="{filename}/static/formbuilder-created.png">
<img alt="Capture d'écran d'un exemple de formulaire" src="{filename}/static/formbuilder-form.png"></p> <img alt="Capture d'écran d'un exemple de formulaire" src="{filename}/static/formbuilder-form.png"></p>
<h3>Pas de compte</h3> <h3 id="pas-de-compte">Pas de compte</h3>
<p>Vous n'avez pas besoin d'avoir un compte sur le site pour commencer à l'utiliser. <p>Vous n'avez pas besoin d'avoir un compte sur le site pour commencer à l'utiliser.
Vous créez simplement un nouveau formulaire puis envoyez le lien à vos amis pour Vous créez simplement un nouveau formulaire puis envoyez le lien à vos amis pour
qu'eux puissent à leur tour le remplir.</p> qu'eux puissent à leur tour le remplir.</p>
<p><img alt="Capture de la page d'accueil, ou aucun compte n'est requis" src="{filename}/static/formbuilder-welcome.png"></p> <p><img alt="Capture de la page d'accueil, ou aucun compte n'est requis" src="{filename}/static/formbuilder-welcome.png"></p>
<h3>Gardez la main sur vos données</h3> <h3 id="gardez-la-main-sur-vos-donnees">Gardez la main sur vos données</h3>
<p>Une fois que vous avez récupéré les réponses à vos questions, vous pouvez <p>Une fois que vous avez récupéré les réponses à vos questions, vous pouvez
récupérer les données sur votre machines dans un fichier <code>.csv</code>.</p> récupérer les données sur votre machines dans un fichier <code>.csv</code>.</p>
<p><img alt="Capture de la page de resultats, il est possible de télécharger en CSV." src="{filename}/static/formbuilder-results.png"></p> <p><img alt="Capture de la page de resultats, il est possible de télécharger en CSV." src="{filename}/static/formbuilder-results.png"></p>
<h3>API</h3> <h3 id="api">API</h3>
<p>L'ensemble des données sont en fait stockées dans <a href="https://kinto.readthedocs.org">Kinto</a> <p>L'ensemble des données sont en fait stockées dans <a href="https://kinto.readthedocs.org">Kinto</a>
qui est interrogeable très facilement en HTTP. Ce qui fait qu'il est très facile de qui est interrogeable très facilement en HTTP. Ce qui fait qu'il est très facile de
réutiliser les formulaires que vous avez construits (ou leurs réponses) depuis réutiliser les formulaires que vous avez construits (ou leurs réponses) depuis
d'autres outils.</p> d'autres outils.</p>
<h3>Auto-hébergeable</h3> <h3 id="auto-hebergeable">Auto-hébergeable</h3>
<p>Un des objectifs de ce projet est de vous redonner la main sur vos données. <p>Un des objectifs de ce projet est de vous redonner la main sur vos données.
Bien sur, vous pouvez utiliser l'instance qui est mise à votre disposition sur Bien sur, vous pouvez utiliser l'instance qui est mise à votre disposition sur
<a href="https://www.fourmilieres.net">wwww.fourmilieres.net</a>, mais vous pouvez <a href="https://www.fourmilieres.net">wwww.fourmilieres.net</a>, mais vous pouvez
@ -140,7 +140,7 @@ Bien sur, vous pouvez utiliser l'instance qui est mise à votre disposition sur
simplement, et vous êtes d'ailleurs fortement encouragés à le faire ! Notre simplement, et vous êtes d'ailleurs fortement encouragés à le faire ! Notre
objectif n'est pas de stocker l'ensemble des formulaires du monde, mais de objectif n'est pas de stocker l'ensemble des formulaires du monde, mais de
(re)donner le contrôle aux utilisateurs !</p> (re)donner le contrôle aux utilisateurs !</p>
<h2>On commence petit…</h2> <h2 id="on-commence-petit">On commence petit…</h2>
<p>Cette <em>release</em> n'est (bien sur) pas parfaite, et il reste encore pas mal de <p>Cette <em>release</em> n'est (bien sur) pas parfaite, et il reste encore pas mal de
travail sur cet outil, mais je pense qu'il s'agit d'une base de travail travail sur cet outil, mais je pense qu'il s'agit d'une base de travail
intéressante pour un futur où Google n'a pas la main sur toutes nos données.</p> intéressante pour un futur où Google n'a pas la main sur toutes nos données.</p>
@ -149,7 +149,7 @@ Texte long, Oui/Non, choix dans une liste) mais elle à vocation à s'étendre,
fonction des besoins de chacun.</p> fonction des besoins de chacun.</p>
<p>J'ai d'ailleurs créé <a href="https://www.fourmilieres.net/#/form/cfd878264cec4ed2">un formulaire pour que vous puissiez me faire part de vos <p>J'ai d'ailleurs créé <a href="https://www.fourmilieres.net/#/form/cfd878264cec4ed2">un formulaire pour que vous puissiez me faire part de vos
retours</a>, n'hésitez pas !</p> retours</a>, n'hésitez pas !</p>
<h2>Et, euh, comment ça marche ?</h2> <h2 id="et-euh-comment-ca-marche">Et, euh, comment ça marche ?</h2>
<p>Le <em>formbuilder</em>, comme j'aime l'appeler se compose en fin de compte de deux <p>Le <em>formbuilder</em>, comme j'aime l'appeler se compose en fin de compte de deux
parties distinctes:</p> parties distinctes:</p>
<ul> <ul>
@ -180,11 +180,6 @@ ajouter des champs de formulaire. Une fois ce travail effectué, vous appuyez su
<p>Bref, en espérant que ça vous serve ! Un petit pas dans la direction des données <p>Bref, en espérant que ça vous serve ! Un petit pas dans la direction des données
rendues à leurs utilisateurs !</p> rendues à leurs utilisateurs !</p>
<em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/kurtfaler/2946570890/in/photolist-5unWSo-nxwHk4-fwjQ1b-Xk5F1e-2nyhfK-Wewupi-qRH2Xe-2XeevA-2nyiGe-VoQgbo-2nyh1z-rgyTKm-aPe8yB-9X8MXQ-5zmZi-Vmx4Qu-9X5V9P-5g5EkR-9erwKR-pfUuMZ-obTwRp-dsPpSz-ckgYNh-9X8Zvf-ASZGaH-7LTmLX-fuJpoW-dabtsC-e32SSu-jV9aSa-5vvCn5-9CAB7c-g6y6sK-8N5tB8-87iko3-dsPqmz-4PAkkC-9X67E8-dYGSEz-9X634n-a2GgEA-98kTPP-a6Lpcf-9X5YMk-jcUL1s-7QJYFF-axhDsE-p9vhA8-fA6GmA-5kZtaV">Kurt Faler</a> proposé sous license CC BY-NC-ND 2.0. Merci !</em> <em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/kurtfaler/2946570890/in/photolist-5unWSo-nxwHk4-fwjQ1b-Xk5F1e-2nyhfK-Wewupi-qRH2Xe-2XeevA-2nyiGe-VoQgbo-2nyh1z-rgyTKm-aPe8yB-9X8MXQ-5zmZi-Vmx4Qu-9X5V9P-5g5EkR-9erwKR-pfUuMZ-obTwRp-dsPpSz-ckgYNh-9X8Zvf-ASZGaH-7LTmLX-fuJpoW-dabtsC-e32SSu-jV9aSa-5vvCn5-9CAB7c-g6y6sK-8N5tB8-87iko3-dsPqmz-4PAkkC-9X67E8-dYGSEz-9X634n-a2GgEA-98kTPP-a6Lpcf-9X5YMk-jcUL1s-7QJYFF-axhDsE-p9vhA8-fA6GmA-5kZtaV">Kurt Faler</a> proposé sous license CC BY-NC-ND 2.0. Merci !</em>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,352 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Implementing CORS in Cornice - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Implementing CORS in Cornice</h1>
<span class="post-date">02 avril 2013</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">I'm cross-posting <a class="reference external" href="https://blog.mozilla.org/services/">on the mozilla services weblog</a>. Since this is the
first time we're doing that, I though it could be useful to point you
there. Check it out and expect more technical articles there in the future.</p>
</div>
<p>For security reasons, it's not possible to do cross-domain requests. In other
words, if you have a page served from the domain <cite>lolnet.org</cite>, it will not be
possible for it to get data from <cite>notmyidea.org</cite>.</p>
<p>Well, it's possible, using tricks and techniques like <a class="reference external" href="http://en.wikipedia.org/wiki/JSONP">JSONP</a>, but that doesn't work all the time (see
<a class="reference external" href="#how-this-is-different-from-jsonp">the section below</a>). I remember myself
doing some simple proxies on my domain server to be able to query other's API.</p>
<p>Thankfully, there is a nicer way to do this, namely, &quot;Cross Origin
Resource-Sharing&quot;, or <a class="reference external" href="http://www.w3.org/TR/cors/">CORS</a>.</p>
<div class="section" id="you-want-an-icecream-go-ask-your-dad-first">
<h2>You want an icecream? Go ask your dad first.</h2>
<p>If you want to use CORS, you need the API you're querying to support it; on the
server side.</p>
<p>The HTTP server need to answer to the <cite>OPTIONS</cite> verb, and with the appropriate
response headers.</p>
<p><cite>OPTIONS</cite> is sent as what the authors of the spec call a &quot;preflight request&quot;;
just before doing a request to the API, the <em>User-Agent</em> (the browser most of
the time) asks the permission to the resource, with an <cite>OPTIONS</cite> call.</p>
<p>The server answers, and tell what is available and what isn't:</p>
<img alt="The CORS flow (from the HTML5 CORS tutorial)" src="images/cors_flow.png" />
<ul class="simple">
<li>1a. The User-Agent, rather than doing the call directly, asks the server, the
API, the permission to do the request. It does so with the following headers:<ul>
<li><strong>Access-Control-Request-Headers</strong>, contains the headers the User-Agent
want to access.</li>
<li><strong>Access-Control-Request-Method</strong> contains the method the User-Agent want
to access.</li>
</ul>
</li>
<li>1b. The API answers what is authorized:<ul>
<li><strong>Access-Control-Allow-Origin</strong> the origin that's accepted. Can be <cite>*</cite> or
the domain name.</li>
<li><strong>Access-Control-Allow-Methods</strong> a <em>list</em> of allowed methods. This can be
cached. Note than the request asks permission for one method and the
server should return a list of accepted methods.</li>
<li><strong>Access-Allow-Headers</strong> a list of allowed headers, for all of the
methods, since this can be cached as well.</li>
</ul>
</li>
<li><ol class="first arabic" start="2">
<li>The User-Agent can do the &quot;normal&quot; request.</li>
</ol>
</li>
</ul>
<p>So, if you want to access the <cite>/icecream</cite> resource, and do a PUT there, you'll
have the following flow:</p>
<pre class="literal-block">
&gt; OPTIONS /icecream
&gt; Access-Control-Request-Methods = PUT
&gt; Origin: notmyidea.org
&lt; Access-Control-Allow-Origin = notmyidea.org
&lt; Access-Control-Allow-Methods = PUT,GET,DELETE
200 OK
</pre>
<p>You can see that we have an <cite>Origin</cite> Header in the request, as well as
a <cite>Access-Control-Request-Methods</cite>. We're here asking if we have the right, as
<cite>notmyidea.org</cite>, to do a <cite>PUT</cite> request on <cite>/icecream</cite>.</p>
<p>And the server tells us that we can do that, as well as <cite>GET</cite> and <cite>DELETE</cite>.</p>
<p>I'll not cover all the details of the CORS specification here, but bear in mind
than with CORS, you can control what are the authorized methods, headers,
origins, and if the client is allowed to send authentication information or
not.</p>
</div>
<div class="section" id="a-word-about-security">
<h2>A word about security</h2>
<p>CORS is not an answer for every cross-domain call you want to do, because you
need to control the service you want to call. For instance, if you want to
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.</p>
<p>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.</p>
<p>An incorrectly secured CORS server can be accessed by a malicious client very easily,
bypassing network security. For instance, if you host a server on an intranet
that is only available from behind a VPN but accepts every cross-origin call. A bad guy
can inject javascript into the browser of a user who has access to your
protected server and make calls to your service, which is probably not what you want.</p>
</div>
<div class="section" id="how-this-is-different-from-jsonp">
<h2>How this is different from JSONP?</h2>
<p>You may know the <a class="reference external" href="http://en.wikipedia.org/wiki/JSONP">JSONP</a> protocol. JSONP
allows cross origin, but for a particular use case, and does have some
drawbacks (for instance, it's not possible to do DELETEs or PUTs with JSONP).</p>
<p>JSONP exploits the fact that it is possible to get information from another domain
when you are asking for javascript code, using the <cite>&lt;script&gt;</cite> element.</p>
<blockquote>
Exploiting the open policy for &lt;script&gt; elements, some pages use them to
retrieve JavaScript code that operates on dynamically generated
JSON-formatted data from other origins. This usage pattern is known as
JSONP. Requests for JSONP retrieve not JSON, but arbitrary JavaScript code.
They are evaluated by the JavaScript interpreter, not parsed by a JSON
parser.</blockquote>
</div>
<div class="section" id="using-cors-in-cornice">
<h2>Using CORS in Cornice</h2>
<p>Okay, things are hopefully clearer about CORS, let's see how we
implemented it on the server-side.</p>
<p>Cornice is a toolkit that lets you define resources in python and takes care of
the heavy lifting for you, so I wanted it to take care of the CORS support as
well.</p>
<p>In Cornice, you define a service like this:</p>
<div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">cornice</span> <span class="kn">import</span> <span class="n">Service</span>
<span class="n">foobar</span> <span class="o">=</span> <span class="n">Service</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">&quot;foobar&quot;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">&quot;/foobar&quot;</span><span class="p">)</span>
<span class="c1"># and then you do something with it</span>
<span class="nd">@foobar.get</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">get_foobar</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="c1"># do something with the request.</span>
</pre></div>
<p>To add CORS support to this resource, you can go this way, with the
<cite>cors_origins</cite> parameter:</p>
<div class="highlight"><pre><span></span><span class="n">foobar</span> <span class="o">=</span> <span class="n">Service</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;foobar&#39;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s1">&#39;/foobar&#39;</span><span class="p">,</span> <span class="n">cors_origins</span><span class="o">=</span><span class="p">(</span><span class="s1">&#39;*&#39;</span><span class="p">,))</span>
</pre></div>
<p>Ta-da! You have enabled CORS for your service. <strong>Be aware that you're
authorizing anyone to query your server, that may not be what you want.</strong></p>
<p>Of course, you can specify a list of origins you trust, and you don't need
to stick with <cite>*</cite>, which means &quot;authorize everyone&quot;.</p>
<div class="section" id="headers">
<h3>Headers</h3>
<p>You can define the headers you want to expose for the service:</p>
<div class="highlight"><pre><span></span><span class="n">foobar</span> <span class="o">=</span> <span class="n">Service</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;foobar&#39;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s1">&#39;/foobar&#39;</span><span class="p">,</span> <span class="n">cors_origins</span><span class="o">=</span><span class="p">(</span><span class="s1">&#39;*&#39;</span><span class="p">,))</span>
<span class="nd">@foobar.get</span><span class="p">(</span><span class="n">cors_headers</span><span class="o">=</span><span class="p">(</span><span class="s1">&#39;X-My-Header&#39;</span><span class="p">,</span> <span class="s1">&#39;Content-Type&#39;</span><span class="p">))</span>
<span class="k">def</span> <span class="nf">get_foobars_please</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="k">return</span> <span class="s2">&quot;some foobar for you&quot;</span>
</pre></div>
<p>I've done some testing and it wasn't working on Chrome because I wasn't
handling the headers the right way (The missing one was <cite>Content-Type</cite>, that
Chrome was asking for). With my first version of the implementation, I needed
the service implementers to explicitely list all the headers that should be
exposed. While this improves security, it can be frustrating while developing.</p>
<p>So I introduced an <cite>expose_all_headers</cite> flag, which is set to <cite>True</cite> by
default, if the service supports CORS.</p>
</div>
<div class="section" id="cookies-credentials">
<h3>Cookies / Credentials</h3>
<p>By default, the requests you do to your API endpoint don't include the
credential information for security reasons. If you really want to do that,
you need to enable it using the <cite>cors_credentials</cite> parameter. You can activate
this one on a per-service basis or on a per-method basis.</p>
</div>
<div class="section" id="caching">
<h3>Caching</h3>
<p>When you do a preflight request, the information returned by the server can be
cached by the User-Agent so that it's not redone before each actual call.</p>
<p>The caching period is defined by the server, using the <cite>Access-Control-Max-Age</cite>
header. You can configure this timing using the <cite>cors_max_age</cite> parameter.</p>
</div>
<div class="section" id="simplifying-the-api">
<h3>Simplifying the API</h3>
<p>We have cors_headers, cors_enabled, cors_origins, cors_credentials,
cors_max_age, cors_expose_all_headers … a fair number of
parameters. If you want to have a specific CORS-policy for your services, that
can be a bit tedious to pass these to your services all the time.</p>
<p>I introduced another way to pass the CORS policy, so you can do something like
that:</p>
<div class="highlight"><pre><span></span><span class="n">policy</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">enabled</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">headers</span><span class="o">=</span><span class="p">(</span><span class="s1">&#39;X-My-Header&#39;</span><span class="p">,</span> <span class="s1">&#39;Content-Type&#39;</span><span class="p">),</span>
<span class="n">origins</span><span class="o">=</span><span class="p">(</span><span class="s1">&#39;*.notmyidea.org&#39;</span><span class="p">),</span>
<span class="n">credentials</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">max_age</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
<span class="n">foobar</span> <span class="o">=</span> <span class="n">Service</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;foobar&#39;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s1">&#39;/foobar&#39;</span><span class="p">,</span> <span class="n">cors_policy</span><span class="o">=</span><span class="n">policy</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="comparison-with-other-implementations">
<h2>Comparison with other implementations</h2>
<p>I was curious to have a look at other implementations of CORS, in
django for instance, and I found <a class="reference external" href="https://gist.github.com/426829.js">a gist about it</a>.</p>
<p>Basically, this adds a middleware that adds the &quot;rights&quot; headers to the answer,
depending on the request.</p>
<p>While this approach works, it's not implementing the specification completely.
You need to add support for all the resources at once.</p>
<p>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.
Otherwise, you don't know exactly what's going on when you look at the definition of the service.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>There are a number of good resources that can be useful to you if you want to
either understand how CORS works, or if you want to implement it yourself.</p>
<ul class="simple">
<li><a class="reference external" href="http://enable-cors.org/">http://enable-cors.org/</a> is useful to get started when you don't know anything
about CORS.</li>
<li>There is a W3C wiki page containing information that may be useful about
clients, common pitfalls etc: <a class="reference external" href="http://www.w3.org/wiki/CORS_Enabled">http://www.w3.org/wiki/CORS_Enabled</a></li>
<li><em>HTML5 rocks</em> has a tutorial explaining how to implement CORS, with <a class="reference external" href="http://www.html5rocks.com/en/tutorials/cors/#toc-adding-cors-support-to-the-server">a nice
section about the server-side</a>.</li>
<li>Be sure to have a look at the <a class="reference external" href="http://caniuse.com/#search=cors">clients support-matrix for this feature</a>.</li>
<li>About security, <a class="reference external" href="https://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity">check out this page</a></li>
<li>If you want to have a look at the implementation code, check <a class="reference external" href="https://github.com/mozilla-services/cornice/pull/98/files">on github</a></li>
</ul>
<p>Of course, the W3C specification is the best resource to rely on. This
specification isn't hard to read, so you may want to go through it. Especially
the <a class="reference external" href="http://www.w3.org/TR/cors/#resource-processing-model">&quot;resource processing model&quot; section</a></p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>De Mozilla à la Brasserie du Vieux Singe - Carnets Web</title> <title>De Mozilla à la Brasserie du Vieux Singe - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -109,11 +109,6 @@ Dans nos pratiques courantes, on décide d'intégrer du temps pour documenter la
<p>Mais monter une entreprise, c'est aussi assumer une partie administrative. Vous vous rappelez cette histoire de réactions face aux activités subordonnées ? Et bien quand je fais mes déclarations aux douanes, ce n'est pas de gaîté de cœur. Je sais par contre pourquoi je le fais: ce sont les règles du jeu. Des obligations, mais peut-être moins de coercition. J'y trouve plus de sens.</p> <p>Mais monter une entreprise, c'est aussi assumer une partie administrative. Vous vous rappelez cette histoire de réactions face aux activités subordonnées ? Et bien quand je fais mes déclarations aux douanes, ce n'est pas de gaîté de cœur. Je sais par contre pourquoi je le fais: ce sont les règles du jeu. Des obligations, mais peut-être moins de coercition. J'y trouve plus de sens.</p>
<p>Et, si je n'avais pas réduit mon temps de travail, j'aurais peut-être loupé la découverte de ce nouveau monde, celui qui me passionne aujourd'hui.</p> <p>Et, si je n'avais pas réduit mon temps de travail, j'aurais peut-être loupé la découverte de ce nouveau monde, celui qui me passionne aujourd'hui.</p>
<p>Alors je vous invite à vous poser la question — indispensable — de vos valeurs: qu'est-ce que vous souhaitez faire ? Qu'est-ce qui vous anime ? Et peut-être à aménager du temps pour explorer vos envies. </p> <p>Alors je vous invite à vous poser la question — indispensable — de vos valeurs: qu'est-ce que vous souhaitez faire ? Qu'est-ce qui vous anime ? Et peut-être à aménager du temps pour explorer vos envies. </p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Des carnets d'esquisse - Carnets Web</title> <title>Des carnets d'esquisse - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,42 +84,37 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Je me rends compte que je n'écris pas si souvent que ça ici, principalement
parce que je me sens obligé d'y écrire en Anglais, mais aussi parce que je le
considère comme un espace ou les choses doivent êtres abouties et non pas
expérimentales.</p>
<p>Des fois j'ai cette envie d'ouvrir un &quot;carnet&quot; et d'y jeter juste quelques
notes. Pas grand chose: mes quelques pensées ou alors des liens que je veux me
garder de coté, des pensées que je souhaite partager… Un endroit ou je peux
venir écrire quelque chose et le compléter plus tard.</p>
<p>Du coup, le flux Atom contiens désormais quelques notes sur des sujets variés.
Ces notes ne sont pas relayées sur la page d'accueil, mais vous pouvez les
trouver dans <a class="reference external" href="https://blog.notmyidea.org/category/notes.html">la section notes</a>.</p>
<p>Je ne sais pas encore si il s'agit du meilleur endroit pour ça, mais peu importe,
essayons. A bas la pudeur rédactionelle.</p>
<p>J'ai du au passage chambouler un peu vos agrégateurs, pardonnez moi :)</p>
<div class="section" id="le-retour-des-commentaires">
<h2>Le retour des commentaires</h2>
<p>Au passage, je ne me rappelle plus quand exactement, mais j'avais décidé de
supprimer les commentaires de cet espace. Paf, apu. Comme ça, sans prévenir.</p>
<p>Les raisons en étaient à la fois techniques (je ne souhaitait pas avoir recours
à disqus qui est un silo propriétaire de plus) et parce que je considérais que
les commentaires n'avaient que peu d'intérêt. Ceci dit, le manque d'échange me
manque; j'aimerais bien savoir ce que vous pensez de ce que j'écris des fois,
et avoir des débats si nos opinions divergent.</p>
<p>Et puis bon, partager dans un seul sens, c'est un peu dommage !</p>
<p>Il est maintenant possible, avec <a class="reference external" href="http://talka.tv">talka.tv</a> d'héberger soi
même ses commentaires. J'ai dans l'idée d'héberger une instance de ce service
sur <cite>discus.notmyidea.org</cite>, ou d'utiliser Daybed pour faire la même chose,
mais faut il encore que je le fasse, alors en attendant, j'ai réactivé disqus
ici! (Le mieux est l'ennemi du bien, paraît il !)</p>
</div>
Vous pouvez également <a onclick="(function(){ <p>Je me rends compte que je n'écris pas si souvent que ça ici,
let here = document.location; principalement parce que je me sens obligé d'y écrire en Anglais, mais
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; aussi parce que je le considère comme un espace ou les choses doivent
return false; êtres abouties et non pas expérimentales.</p>
})();return false;">télécharger cet article en pdf</a>. <p>Des fois j'ai cette envie d'ouvrir un "carnet" et d'y jeter juste
quelques notes. Pas grand chose: mes quelques pensées ou alors des liens
que je veux me garder de coté, des pensées que je souhaite partager… Un
endroit ou je peux venir écrire quelque chose et le compléter plus tard.</p>
<p>Du coup, le flux Atom contiens désormais quelques notes sur des sujets
variés. Ces notes ne sont pas relayées sur la page d'accueil, mais vous
pouvez les trouver dans <a href="%7Ccategory%7Cnotes">la section notes</a>.</p>
<p>Je ne sais pas encore si il s'agit du meilleur endroit pour ça, mais peu
importe, essayons. A bas la pudeur rédactionelle.</p>
<p>J'ai du au passage chambouler un peu vos agrégateurs, pardonnez moi :)</p>
<h2 id="le-retour-des-commentaires">Le retour des commentaires</h2>
<p>Au passage, je ne me rappelle plus quand exactement, mais j'avais décidé
de supprimer les commentaires de cet espace. Paf, apu. Comme ça, sans
prévenir.</p>
<p>Les raisons en étaient à la fois techniques (je ne souhaitait pas avoir
recours à disqus qui est un silo propriétaire de plus) et parce que je
considérais que les commentaires n'avaient que peu d'intérêt. Ceci dit,
le manque d'échange me manque; j'aimerais bien savoir ce que vous pensez
de ce que j'écris des fois, et avoir des débats si nos opinions
divergent.</p>
<p>Et puis bon, partager dans un seul sens, c'est un peu dommage !</p>
<p>Il est maintenant possible, avec <a href="http://talka.tv">talka.tv</a> d'héberger
soi même ses commentaires. J'ai dans l'idée d'héberger une instance de
ce service sur discus.notmyidea.org, ou d'utiliser Daybed pour faire la
même chose, mais faut il encore que je le fasse, alors en attendant,
j'ai réactivé disqus ici! (Le mieux est l'ennemi du bien, paraît il !)</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Des profils de confiance partout et pour tout ? - Carnets Web</title> <title>Des profils de confiance partout et pour tout ? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -79,107 +79,105 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Des profils de confiance partout et pour tout ?</h1> <h1 class="post-title">Des profils de confiance partout et pour tout ?</h1>
<span class="post-date">02 avril 2013</span> <span class="post-date">04 février 2013</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Depuis un petit moment déjà, le site covoiturage.fr est passé &quot;payant&quot;. Il est
désormais possible (et même obligatoire) de payer les trajets à l'avance, et en <p>Depuis un petit moment déjà, le site covoiturage.fr est passé "payant".
ligne, laissant au passage quelques royalties au site en question.</p> Il est désormais possible (et même obligatoire) de payer les trajets à
l'avance, et en ligne, laissant au passage quelques royalties au site en
question.</p>
<p>Précédemment, il était possible de retrouver le numéro des conducteurs <p>Précédemment, il était possible de retrouver le numéro des conducteurs
sur le site et de les appeler soi même, chose maintenant automatisée.</p> sur le site et de les appeler soi même, chose maintenant automatisée.</p>
<p>Dès que cette décision à été prise, il y a eu des émules. Le site <a class="reference external" href="http://covoiturage-libre.fr">Covoiturage <p>Dès que cette décision à été prise, il y a eu des émules. Le site
Libre</a> à été d'ailleurs créé pour faire en sorte <a href="http://covoiturage-libre.fr">Covoiturage Libre</a> à été d'ailleurs créé
de garder &quot;l'esprit&quot; du covoiturage. Bref ça jasait dans les chaumières.</p> pour faire en sorte de garder "l'esprit" du covoiturage. Bref ça jasait
<p>Il y à peu, j'ai reçu un <em>couriel</em> contenant un lien vers une vidéo d'<a class="reference external" href="http://www.covoiturage.fr/blog/2013-confiance">une dans les chaumières.</p>
conférence animée par le fondateur de covoiturage.fr</a>.</p> <p>Il y à peu, j'ai reçu un <em>couriel</em> contenant un lien vers une vidéo
<p>Ils semblent vouloir parler de confiance, alors ça m'intrigue, d'autant que la d'<a href="http://www.covoiturage.fr/blog/2013-confiance">une conférence animée par le fondateur de
présentation en question est donnée lors d'un évènement TEDx, auquel j'accorde covoiturage.fr</a>.</p>
un certain crédit.</p> <p>Ils semblent vouloir parler de confiance, alors ça m'intrigue, d'autant
<div class="section" id="un-capital-de-confiance"> que la présentation en question est donnée lors d'un évènement TEDx,
<h2>Un &quot;capital de confiance&quot;</h2> auquel j'accorde un certain crédit.</p>
<p>Cette vidéo parle entre autres du <em>capital de confiance</em> que nous pouvons <h2 id="un-capital-de-confiance">Un "capital de confiance"</h2>
nous accorder les uns aux autres; et notamment du fait que ce capital de <p>Cette vidéo parle entre autres du <em>capital de confiance</em> que nous
confiance n'est malheureusement pas partagé au dela d'un cercle de pouvons nous accorder les uns aux autres; et notamment du fait que ce
connaissances assez limité. Il reste dans notre cercle de connaissances proche, les capital de confiance n'est malheureusement pas partagé au dela d'un
amis des amis.</p> cercle de connaissances assez limité. Il reste dans notre cercle de
<p>C'est donc une chose regrettable, parce que ça nous fait perdre du temps (et connaissances proche, les amis des amis.</p>
donc, <em>ohmygod</em> de l'argent) à tous pour construire cette confiance. Temps qui <p>C'est donc une chose regrettable, parce que ça nous fait perdre du temps
pourrait être mieux employé.</p> (et donc, <em>ohmygod</em> de l'argent) à tous pour construire cette confiance.
<p>La solution proposée, attention les yeux, est de faire appel un maximum aux Temps qui pourrait être mieux employé.</p>
profils en ligne, une manière de &quot;prouver au monde&quot; que nous sommes des <p>La solution proposée, attention les yeux, est de faire appel un maximum
personnes de confiance. Selon les termes de la présentation, nous pourrions aux profils en ligne, une manière de "prouver au monde" que nous sommes
alors tous devenir des &quot;super héros du trust&quot;, des &quot;trustman&quot;.</p> des personnes de confiance. Selon les termes de la présentation, nous
<p>Grâce à des profils en ligne ou monsieur et madame tout le monde pourraient pourrions alors tous devenir des "super héros du trust", des "trustman".</p>
aller voter et donner leur avis sur les personnes qu'ils ont rencontré.</p> <p>Grâce à des profils en ligne ou monsieur et madame tout le monde
</div> pourraient aller voter et donner leur avis sur les personnes qu'ils ont
<div class="section" id="l-avenement-du-paiement-en-ligne"> rencontré.</p>
<h2>L'avènement du paiement en ligne</h2> <h2 id="lavenement-du-paiement-en-ligne">L'avènement du paiement en ligne</h2>
<p>On nous dit maintenant que le paiement en ligne est une révolution, un moyen de <p>On nous dit maintenant que le paiement en ligne est une révolution, un
tracer le fait qu'il y à effectivement eu une transaction entre deux personnes; moyen de tracer le fait qu'il y à effectivement eu une transaction entre
et que donc il en deviendrait un outil pour vérifier que la confiance est bien deux personnes; et que donc il en deviendrait un outil pour vérifier que
légitime, et non pas créée de toute pièce sur le profil de la personne en la confiance est bien légitime, et non pas créée de toute pièce sur le
question.</p> profil de la personne en question.</p>
<p>Plu</p> <p>Plu</p>
<p>Plus exactement, ce qui est dit est que le paiement en ligne permet de <p>Plus exactement, ce qui est dit est que le paiement en ligne permet de
justifier qu'il y a bien eu transaction entre deux personnes, et que donc les justifier qu'il y a bien eu transaction entre deux personnes, et que
commentaires et &quot;notations&quot; effectuées sont donc légitimes.</p> donc les commentaires et "notations" effectuées sont donc légitimes.</p>
</div> <h2 id="ce-nest-pas-un-probleme-de-confiance-33">Ce n'est pas un problème de confiance !</h2>
<div class="section" id="ce-n-est-pas-un-probleme-de-confiance"> <p>Bien que j'arrive à suivre le raisonnement, il soulève certaines
<h2>Ce n'est pas un problème de confiance !</h2> questions :</p>
<p>Bien que j'arrive à suivre le raisonnement, il soulève certaines questions :</p> <p>Si j'accorde de la confiance à quelqu'un dans mon cercle de
<p>Si j'accorde de la confiance à quelqu'un dans mon cercle de connaissances, connaissances, c'est justement parce qu'il fait partie de ce cercle de
c'est justement parce qu'il fait partie de ce cercle de connaissances. Pas connaissances. Pas parce qu'une personne que je ne connait pas me dit
parce qu'une personne que je ne connait pas me dit qu'il s'agit d'une personne qu'il s'agit d'une personne de confiance. En d'autres termes, <strong>pourquoi
de confiance. En d'autres termes, <strong>pourquoi ne garderions nous pas ces ne garderions nous pas ces relations privilégiées de personne à personne
relations privilégiées de personne à personne ?</strong></p> ?</strong></p>
<p>Dans le cadre du covoiturage, j'arrive à comprendre le raisonnement du paiement <p>Dans le cadre du covoiturage, j'arrive à comprendre le raisonnement du
<em>à l'avance</em>, pour avoir souvent entendu parler de désistements à la dernière paiement <em>à l'avance</em>, pour avoir souvent entendu parler de désistements
minute de la part des voyageurs. Le paiement à l'avance permet d'éviter ce à la dernière minute de la part des voyageurs. Le paiement à l'avance
genre de désagréments.</p> permet d'éviter ce genre de désagréments.</p>
<p>Mais cela n'as rien à voir avec la confiance, il s'agit d'engagement de la part <p>Mais cela n'as rien à voir avec la confiance, il s'agit d'engagement de
des deux parties.</p> la part des deux parties.</p>
<p>Et c'est bien ce qui semble poser problème: lorsqu'on s'attend à partager le <p>Et c'est bien ce qui semble poser problème: lorsqu'on s'attend à
prix d'un trajet avec quelqu'un, c'est bien d'avoir quelque chose qui nous partager le prix d'un trajet avec quelqu'un, c'est bien d'avoir quelque
y engage. J'aime beaucoup l'idée de payer une fois dans la voiture, de garder chose qui nous y engage. J'aime beaucoup l'idée de payer une fois dans
cette transaction manuelle; et de laisser peu de place au paiements en ligne la voiture, de garder cette transaction manuelle; et de laisser peu de
dans cette histoire, mais je n'ai pas d'autre solution miracle.</p> place au paiements en ligne dans cette histoire, mais je n'ai pas
<p>En tout cas, la question n'est pas la question de savoir avec qui on embarque, d'autre solution miracle.</p>
mais bel et bien la question de l'engagement des deux parties.</p> <p>En tout cas, la question n'est pas la question de savoir avec qui on
<p>Nous sommes malheureusement dans une société qui est dirigée par la peur. On embarque, mais bel et bien la question de l'engagement des deux parties.</p>
à peur de se faire agresser par le gars qui tends le pouce sur le bord de la <p>Nous sommes malheureusement dans une société qui est dirigée par la
route, peur de se faire envoyer un produit qui ne fonctionne pas via Amazon, peur. On à peur de se faire agresser par le gars qui tends le pouce sur
etc.</p> le bord de la route, peur de se faire envoyer un produit qui ne
fonctionne pas via Amazon, etc.</p>
<p>En poussant l'idée dans ses retranchements, j'aurais bientôt peur de mes <p>En poussant l'idée dans ses retranchements, j'aurais bientôt peur de mes
voisins alors je ne leur parlerais plus, parce qu'ils n'ont pas leur profil voisins alors je ne leur parlerais plus, parce qu'ils n'ont pas leur
disponible en ligne ou parce que quelqu'un à eu une mauvaise expérience avec profil disponible en ligne ou parce que quelqu'un à eu une mauvaise
eux ?</p> expérience avec eux ?</p>
<p>Exposer des choses qui relèvent de ma vie privée en ligne de la sorte me <p>Exposer des choses qui relèvent de ma vie privée en ligne de la sorte me
pose des problèmes éthiques: d'abord parce que je ne veux pas juger les gens pose des problèmes éthiques: d'abord parce que je ne veux pas juger les
a priori, ensuite parce que l'expérience d'une personne n'est peut-être pas gens a priori, ensuite parce que l'expérience d'une personne n'est
représentative, tout simplement.</p> peut-être pas représentative, tout simplement.</p>
<p>Donc non, ce n'est pas un problème de confiance, il s'agit d'un problème <p>Donc non, ce n'est pas un problème de confiance, il s'agit d'un problème
d'engagement, dans le cadre du covoiturage, et les profils en ligne n'ont rien d'engagement, dans le cadre du covoiturage, et les profils en ligne
à faire la dedans. Le principe du paiement à l'avance me semble intéressant, n'ont rien à faire la dedans. Le principe du paiement à l'avance me
mais il n'est à mon avis pas lié au profils en ligne.</p> semble intéressant, mais il n'est à mon avis pas lié au profils en
<p>La vidéo termine sur un &quot;libérez la valeur de la confiance&quot;. Oui, mais la ligne.</p>
libérer pour qui ? Quels sont les problèmes liés à cette confiance rendue <p>La vidéo termine sur un "libérez la valeur de la confiance". Oui, mais
nécessaire partout et pour tout ? Cela ne nous ferait-il pas évoluer uniquement la libérer pour qui ? Quels sont les problèmes liés à cette confiance
dans des cercles fermés ? Quelle place laisser à l'inconnu, à la surprise ?</p> rendue nécessaire partout et pour tout ? Cela ne nous ferait-il pas
<p>Cette volonté de &quot;confiance partout&quot; semble découler tout droit des délires évoluer uniquement dans des cercles fermés ? Quelle place laisser à
sécuritaires que l'on nous sert à toutes les sauces. Et maintenant cela l'inconnu, à la surprise ?</p>
serait rendu accessible à tous grâce à &quot;l'intelligence collective&quot;; gommant au <p>Cette volonté de "confiance partout" semble découler tout droit des
passage les différences de valeur; Préférant éviter de rencontrer les inconnus délires sécuritaires que l'on nous sert à toutes les sauces. Et
aux profils &quot;légers&quot;.</p> maintenant cela serait rendu accessible à tous grâce à "l'intelligence
collective"; gommant au passage les différences de valeur; Préférant
éviter de rencontrer les inconnus aux profils "légers".</p>
<p>Je sais pas vous, mais elle me fait peur cette idée.</p> <p>Je sais pas vous, mais elle me fait peur cette idée.</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Djangocong 2012 - Carnets Web</title> <title>Djangocong 2012 - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,65 +84,72 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Ce week-end, c'était <a class="reference external" href="http://rencontres.django-fr.org">djangocong</a>, une conférence autour de <a class="reference external" href="http://djangoproject.org">django</a>,
de <a class="reference external" href="http://python.org">python</a> et du web, qui avait lieu dans le sud, à Carnon-plage, à quelques
kilomètres de Montpellier la belle.</p>
<p>J'ai vraiment apprécié les trois jours passés avec cette bande de geeks. Je
m'attendais à des <em>nerds</em>, j'y ai trouvé une qualité d'écoute, des personnes qui
partagent des valeurs qui leur sont chères, mais qui ne limitent pas
leurs discussions à du technique. Eeeh ouais, encore un préjugé qui tombe,
tiens :)</p>
<p>En tant que <em>hackers</em>, on a le moyen de créer des outils qui sont utiles à tous,
et qui peuvent être utiles pour favoriser la collaboration et la mise en commun
des données. J'ai eu l'occasion de discuter de projets tournant autour de
l'entraide, que ça soit pour mettre en lien des associations d'économie sociale
et solidaire (ESS) ou simplement pour que les populations <em>non tech</em> <a class="reference external" href="http://blog.notmyidea.org/quels-usages-pour-linformatique-fr.html">puissent
utiliser toute la puissance de l'outil qu'est le web</a>.</p>
<p>Au niveau du format des conférences, je ne savais pas trop à quoi m'attendre,
au vu des échos de l'an dernier, mais c'était adapté: des mini-confs de 12mn le
samedi matin + début d'aprem, en mode no-wifi pour récupérer une qualité
d'écoute. Et contrairement à mes attentes, ce n'est pas trop court. Pas mal de
retours d'expérience pour le coup, et une matinée pas vraiment techniques, mais
ça pose le décor et permet de savoir qui fait quoi.</p>
<p>Parmi l'ensemble des conférences du matin, je retiens principalement
celle de Mathieu Leplatre, &quot;des cartes d'un autre monde&quot;, qui m'a réellement
bluffée quand à la facilité de créer des cartes avec <a class="reference external" href="http://mapbox.com/tilemill/">TileMill</a>, et qui me pousse à reconsidérer le fait que &quot;la
carto, c'est compliqué&quot;. <a class="reference external" href="https://www.youtube.com/watch?v=7NPQo54NbJ8">La vidéo est (déja !) disponible en ligne</a>, je vous invite à la regarder
(c'est une 15aine de minutes) pour vous faire un avis ;)</p>
<p>Une fois les conf passées, ça reste très intéressant, voire plus: il reste un
jour et demi pour discuter avec les autres présents. On a pu se retrouver avec
Mathieu pour discuter de &quot;notre&quot; projet <a class="reference external" href="http://blog.notmyidea.org/carto-forms-fr.html">&quot;carto
forms&quot;</a>, qui à finalement pu se
redéfinir un peu plus et donner naissance à un <a class="reference external" href="https://github.com/spiral-project/daybed/blob/master/README.rst">README</a>. On en
à profité pour lui choisir un nouveau nom: &quot;daybed&quot;, en référence à couchdb.</p>
<p>Ça devrait se transformer en code d'ici peu. La curiosité aidant, on a pu
discuter du projet avec d'autres personnes et affiner les attentes de chacun
pour finalement arriver à quelque chose d'assez sympathique.</p>
<p>J'ai aussi pu me rendre compte que pas mal de monde utilise <a class="reference external" href="http://pelican.notmyidea.org">pelican</a>, le bout de code que j'ai codé pour générer ce
blog, et avoir des retours utiles ! Probablement des réflexions à venir
sur comment éviter qu'un projet open-source ne devienne chronophage, et sur
comment réussir à garder une qualité dans le code source tout en ne froissant
pas les contributeurs.</p>
<p>Bien évidemment, c'était aussi l'occaz de rencontrer des gens qu'on ne voir que
sur les inter-nets, et de discuter un brin de tout ce qui fait que notre monde
est chouette et moins chouette.</p>
<p>Entres autres faits notoires, JMad a perdu au baby-foot face à Exirel, même
en m'ayant à ses cotés pour le déconcentrer (et je suis un joueur d'un autre
monde - en d'autres termes, je suis nul), David`bgk ne s'est pas levé pour
aller courir le dimanche matin (il avait dit 5 heures!), Les suisses ont essayé
de me convertir à coup d'abricotine, j'ai perdu au skulls-n-roses en quelques
tours et on a allumé un feu chez Stéphane le dimanche soir (oui oui, à
montpellier, mi avril, je vous le dis qu'ils mentent avec leur soit disant
soleil).</p>
<p>Et c'est sans parler de <a class="reference external" href="http://jehaisleprintemps.net/blog/fr/2012/04/15/j-ecris-ton-nom/">la brasucade</a></p>
<p>Bref, vivement la prochaine (et allez, cette fois ci je ferais une présentation
!)</p>
Vous pouvez également <a onclick="(function(){ <p>Ce week-end, c'était <a href="http://rencontres.django-fr.org">djangocong</a>, une
let here = document.location; conférence autour de <a href="http://djangoproject.org">django</a>, de
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; <a href="http://python.org">python</a> et du web, qui avait lieu dans le sud, à
return false; Carnon-plage, à quelques kilomètres de Montpellier la belle.</p>
})();return false;">télécharger cet article en pdf</a>. <p>J'ai vraiment apprécié les trois jours passés avec cette bande de geeks.
Je m'attendais à des <em>nerds</em>, j'y ai trouvé une qualité d'écoute, des
personnes qui partagent des valeurs qui leur sont chères, mais qui ne
limitent pas leurs discussions à du technique. Eeeh ouais, encore un
préjugé qui tombe, tiens :)</p>
<p>En tant que <em>hackers</em>, on a le moyen de créer des outils qui sont utiles
à tous, et qui peuvent être utiles pour favoriser la collaboration et la
mise en commun des données. J'ai eu l'occasion de discuter de projets
tournant autour de l'entraide, que ça soit pour mettre en lien des
associations d'économie sociale et solidaire (ESS) ou simplement pour
que les populations <em>non tech</em> <a href="http://blog.notmyidea.org/quels-usages-pour-linformatique-fr.html">puissent utiliser toute la puissance de
l'outil qu'est le
web</a>.</p>
<p>Au niveau du format des conférences, je ne savais pas trop à quoi
m'attendre, au vu des échos de l'an dernier, mais c'était adapté: des
mini-confs de 12mn le samedi matin + début d'aprem, en mode no-wifi pour
récupérer une qualité d'écoute. Et contrairement à mes attentes, ce
n'est pas trop court. Pas mal de retours d'expérience pour le coup, et
une matinée pas vraiment techniques, mais ça pose le décor et permet de
savoir qui fait quoi.</p>
<p>Parmi l'ensemble des conférences du matin, je retiens principalement
celle de Mathieu Leplatre, "des cartes d'un autre monde", qui m'a
réellement bluffée quand à la facilité de créer des cartes avec
<a href="http://mapbox.com/tilemill/">TileMill</a>, et qui me pousse à reconsidérer
le fait que "la carto, c'est compliqué". <a href="https://www.youtube.com/watch?v=7NPQo54NbJ8">La vidéo est (déja !)
disponible en ligne</a>, je
vous invite à la regarder (c'est une 15aine de minutes) pour vous faire
un avis ;)</p>
<p>Une fois les conf passées, ça reste très intéressant, voire plus: il
reste un jour et demi pour discuter avec les autres présents. On a pu se
retrouver avec Mathieu pour discuter de "notre" projet <a href="http://blog.notmyidea.org/carto-forms-fr.html">"carto
forms"</a>, qui à finalement
pu se redéfinir un peu plus et donner naissance à un
<a href="https://github.com/spiral-project/daybed/blob/master/README.rst">README</a>.
On en à profité pour lui choisir un nouveau nom: "daybed", en référence
à couchdb.</p>
<p>Ça devrait se transformer en code d'ici peu. La curiosité aidant, on a
pu discuter du projet avec d'autres personnes et affiner les attentes de
chacun pour finalement arriver à quelque chose d'assez sympathique.</p>
<p>J'ai aussi pu me rendre compte que pas mal de monde utilise
<a href="http://pelican.notmyidea.org">pelican</a>, le bout de code que j'ai codé
pour générer ce blog, et avoir des retours utiles ! Probablement des
réflexions à venir sur comment éviter qu'un projet open-source ne
devienne chronophage, et sur comment réussir à garder une qualité dans
le code source tout en ne froissant pas les contributeurs.</p>
<p>Bien évidemment, c'était aussi l'occaz de rencontrer des gens qu'on ne
voir que sur les inter-nets, et de discuter un brin de tout ce qui fait
que notre monde est chouette et moins chouette.</p>
<p>Entres autres faits notoires, JMad a perdu au baby-foot face à Exirel,
même en m'ayant à ses cotés pour le déconcentrer (et je suis un joueur
d'un autre monde - en d'autres termes, je suis nul), David`bgk ne s'est
pas levé pour aller courir le dimanche matin (il avait dit 5 heures!),
Les suisses ont essayé de me convertir à coup d'abricotine, j'ai perdu
au skulls-n-roses en quelques tours et on a allumé un feu chez Stéphane
le dimanche soir (oui oui, à montpellier, mi avril, je vous le dis
qu'ils mentent avec leur soit disant soleil).</p>
<p>Et c'est sans parler de <a href="http://jehaisleprintemps.net/blog/fr/2012/04/15/j-ecris-ton-nom/">la
brasucade</a>
</p>
<p>Bref, vivement la prochaine (et allez, cette fois ci je ferais une
présentation !)</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,214 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Accéder à internet hors-ligne - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Accéder à internet hors-ligne</h1>
<span class="post-date">06 juillet 2013</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>J'ai eu la chance de passer quelques semaines de vacances en Australie
dernièrement. Dans mes déplacements j'ai beaucoup utilisé le train et
n'avais que peu souvent accès à une connexion internet.</p>
<p>Et rapidement je souhaitais faire des recherches sur un tas de choses:
Que ce soit la culture Aborigène locale, les
oiseaux qu'on croisait, les insectes, les lieux, etc.</p>
<p>Les ressources papier existent bien évidemment et mon dos avait le plaisir de
transporter un guide assez complet. Ceci dit, il n'est pas réellement
imaginable de se trimballer avec une encyclopédie sur le dos.</p>
<p>À moins que…</p>
<div class="section" id="mise-en-garde">
<h2>Mise en garde</h2>
<p><a class="reference external" href="|slug:usages-informatique|">Loin de moi l'idée de vouloir utiliser du numérique partout et pour tout</a></p>
<p>La plupart du temps le moyen que je préfère est de tout simplement discuter
avec les gens autour de moi. Mais des fois il n'y à personne autour, ou alors
les questions tomberaient comme un cheveu sur la soupe.</p>
<p>Avoir recours à des outils d'habitude uniquement disponibles en ligne alors que
vous n'avez pas accès à internet peut donc s'avérer réellement utile.</p>
<p>Je ne pense pas que j'aurais par exemple pu trouver un spécialiste des termites à l'endroit où j'en avais besoin :-)</p>
</div>
<div class="section" id="une-encyclopedie">
<h2>Une encyclopédie</h2>
<p>Ma première stratégie à donc été d'enregistrer des pages web pour les consulter
plus tard (Wikipedia, Wikitravel, etc, autour des sujets qui m' intéressaient.
Ça fonctionne d'ailleurs assez bien. Le problème étant qu'il faut être
<em>pro-actif</em> et savoir à l'avance ce qu'on va faire dans les jours qui viennent.</p>
<p>Et puis je me suis rappelé qu'il était possible de récupérer l'encyclopédie
<em>Wikipedia</em> hors ligne. J'avoue que je n'y croyais pas trop, pensant qu'il me
faudrait beaucoup plus de place que ce que mon disque dur pouvait encaisser.</p>
<p>Pas tant, en fin de compte: il faut 16Gb pour la version française. Il il est possible de la récupérer en <a class="reference external" href="http://fr.wikipedia.com/bittorrent">bittorrent</a>, qui permet de récupérer tout ça assez rapidement.</p>
<p>Et paf, vous voila avec un logiciel nommé &quot;kiwix&quot; qui vous permet de lire
wikipedia tranquillement depuis votre ordinateur, sans connexion à internet.</p>
<p>C'est impressionnant ce qu'on peut trouver comme informations dans ce bijou,
à fortiori lorsqu'on n'est pas interrompu par internet tout le temps.</p>
</div>
<div class="section" id="cartes">
<h2>Cartes</h2>
<p>Pour ce qui est des cartes, j'avoue que mon option préférée est tout simplement
d'avoir des cartes, des vraies, celles qu'on peut déplier. Je peux passer un
temps dingue juste à regarder une carte, je trouve ça passionnant.</p>
<p><a class="reference external" href="http://openstreetmap.org">Open street map</a> est un projet de cartographie collaborative: chacun peut modifier la carte globale pour l'enrichir avec des détails qui lui semblent utile. Et les données récoltées sont reversées sous une licence libre.</p>
<p>Les données existent donc, sur les serveurs d'OSM, il ne reste &quot;juste&quot; qu'à les
récupérer pour une utilisation hors-ligne.</p>
<p>XXX</p>
</div>
<div class="section" id="petits-sites-ressources">
<h2>Petits sites ressources</h2>
<p>Et puis il y à plein d'autres sites qui contiennent une information précieuse,
auxquels vous souhaitez avoir accès hors-ligne. Le blog de votre grand mère
avec ses recettes de flan au Maroual, etc.</p>
<p>Sous linux, il existe un outil génial qui s'appelle <cite>wget</cite>. Il s'agit d'un
couteau suisse du téléchargement. Très simplement, <em>wget</em> permet de récupérer
hors ligne une page web, pour la consulter plus tard.</p>
<p>Cet outil est aussi capable de transformer les liens entre pages pour que la
navigation soit possible sur votre copie du site, etc. Pour cela il faut lui
passer quelques options:</p>
<pre class="literal-block">
wget -r -k -np http://blog.notmyidea.org
</pre>
<p>Et vous avez accès à un site hors-ligne, sur votre ordinateur.
&quot;Très bien&quot;, me direz vous, mais moi j'ai pas ton machin, &quot;linux&quot;, là.</p>
<p>Je me suis amusé à faire un site rapide qui permet de récupérer d'autres sites
hors-ligne, sous forme d'archives <em>.zip</em>. Vous entrez l'adresse du site, votre
adresse email et ça s'occupe du reste pour vous !</p>
<p>Le site est ici: <a class="reference external" href="http://offline.notmyidea.org">http://offline.notmyidea.org</a> et le code ici
<a class="reference external" href="https://github.com/ametaireau/offline">https://github.com/ametaireau/offline</a></p>
<p>Au cas ou ça vous serve.</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,248 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>An attempt to handle mails better - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">An attempt to handle mails better</h1>
<span class="post-date">03 janvier 2013</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>Those of you who wrote me emails know it, I'm really bad at handling them. This
is because I don't have any flow in place. Recently, I surprised myself
not even reading all these emails. And this means frustration for me and for
the people who expect me to read them.</p>
<p>So here is an attempt to solve this.</p>
<p>When I first gave some thoughts to this, I directly thought about &quot;how to
automatically improve my inbox&quot;, or &quot;how to let the machine do the work rather
than myself.</p>
<p>When reading emails, you then need to take actions. Some can be automated
/ short, some cannot.</p>
<div class="section" id="tooling">
<h2>Tooling</h2>
<p>I currently have a folder for each &quot;project&quot; I'm involved in. This means
a lot of projects, and a lot of folders. For instance, when I get a mail from
<cite>marketplace-devs&#64;mozilla.org</cite>, it goes to the <cite>marketplace</cite> folder.</p>
<p>Let's try to list from where I receive emails and what I should do with
them.</p>
<ul class="simple">
<li>low-involvement mailling-lists</li>
<li>high-involvement mailing-lists</li>
<li>work-related bugmails</li>
<li>non-work-related bugmails</li>
<li>personal mails</li>
<li>work-related mails</li>
</ul>
<div class="section" id="low-involvement-mailing-lists">
<h3>Low-involvement mailing-lists</h3>
<p>These are probably the easiest to get rid of. I subscribed to a bunch of
technical discussion groups, for instance django-dev, pyramid-dev, catalog-sig,
distutils-sig, python-dev and others.</p>
<p>Since you can find most of these public mailing-lists online, my last move was
to just unsubscribe from them, telling myself I'll read them there.</p>
<p>Obviously, this isn't true because I never read them online until someone
points me to an interesting discussion there, but it seems that the really
interesting topics pops up on twitter / IRC from time to time, and the spare
time it creates is really worth some good information less.</p>
</div>
<div class="section" id="high-involvement-mailing-list">
<h3>High-involvement mailing-list</h3>
<p>In this category, I put the mailing lists you have to read, think once, think
again and answer. Answering to emails isn't always something I do
straight-away. Sometimes I'm not good-enough technically to answer really
quickly, and it needs some research from me. Sometimes it just needs some time
for my brain to pick everything up before answering.</p>
<p>I currently keep these emails &quot;unread&quot; in their folder, and try to get back to
it later. Which I usually don't do. And everything ends up in limbo.</p>
<p>I actually created a second mailbox for myself where I send all the tasks
I need to take time to do. That's a TODO list, but I can actually send it
emails.</p>
<p>Every day, I try to find some time to take one of these tasks and have an
answer for these mails. So far it's working well, but I'm wondering what will
happen if I get too much mails in there.</p>
</div>
<div class="section" id="bug-mails-work-or-non-work-related">
<h3>Bug mails (work or non-work related)</h3>
<p>I read them on the fly and see if I have something to do with them. Most of the
time I don't and so I delete them. When I do, I assign myself a task in GTG to
deal with later.</p>
<p>I work for Mozilla only 4 days per week. The goal is to have some time during
the extra day to take care of the others projects I'm involved with.</p>
<p>Usually I manage to do what I need to do during this 5th day. If I do and
things stack up, the first thing I do is to make the people that are / would be
waiting on me aware of the situation. This usually solves the problem.</p>
</div>
<div class="section" id="directed-mails">
<h3>Directed mails</h3>
<p>Once I've setup the rules I described, the remaining mails I receive are
directed personal mails. Hopefully, for me that means not too much mails, and
I'm able to answer them in an acceptable time-frame. I usually try to answer
them straight ahead if I can, also, or convert the ones that ask me for
something special into a GTG task.</p>
</div>
</div>
<div class="section" id="discipline">
<h2>Discipline</h2>
<p>That would be foolish to think everything only takes tools. It also takes some
discipline.</p>
<p>I'm trying something: I'm spending a little 30mn to an hour reading mails in
the morning, eventually answering if the answer is short; plus another hour in
the afternoon to answer to the longer mails that would had need some more
thinking for me.</p>
</div>
<div class="section" id="pelican">
<h2>Pelican</h2>
<p>I receive a lot of mails about pelican, and to be honnest I don't read most of
them by now because I know it means I'll have to read text, code, and
eventually make comments on these.</p>
<p>And whenever I read these mails, I usually don't have time to handle them right
away. Most of these mails come from github pull requests. This means I got
a mail each time someone open, comment or close on a bug or issue.</p>
<p>Okay, so what do I do with that? Currently, these mails end-up in a &quot;folder&quot; on
my email, so they don't languish on my inbox, which is a first good step, but
I would need</p>
</div>
<div class="section" id="mozilla">
<h2>Mozilla</h2>
<p>At mozilla, most of the interesting emails are discussions, but I currently
don't separate the bugmails from the other emails, so in the same box, without
a lot of distinction I receive all the discussions for the different lists I'm
on, and for the code review / issues that are done on either bugzilla or
github.</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,187 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Australie - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Australie</h1>
<span class="post-date">05 septembre 2013</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>Ah, quelques 5 semaines de vacances, de <em>off</em>. Mine de rien ça remets les choses
à leur place. Premièrement, déconnecter un peu avec cet ordinateur et cette
vie que je trouve souvent trop connectée.</p>
<p>Et puis, surtout, voyager, me ballader, vivre avec le soleil et (re)découvrir
la nature, les longues randonnées… Retrouver ce lien qui dès fois se perd,
sans trop savoir pourquoi.</p>
<p>Bref, en visitant l'australie on à trouvé quelques bijoux, que je m'empresse de
partager, au cas ou ça puisse servir à certains ! (et quelques décéptions
aussi)</p>
<div class="section" id="kangaroo-valley-nsw">
<h2>Kangaroo Valley (NSW)</h2>
<p>La <strong>valée des kangourous</strong> est au sud de sydney, pas très loin de Nowra. C'est
accessible en train quasiment, mais vous aurez besoin d'une voiture pour faire
quelque chose la bas ensuite.</p>
<p>C'est assez petit, mais quelques bushwalks sont possibles. Le petit village au
centre peut vous permettre de faire un peu de canoë</p>
</div>
<div class="section" id="mungo-national-park">
<h2>Mungo national park</h2>
<p>Pas très loin de mildura, un peu perdu au milieu de rien, il y à le mungo
national park. Il faut conduire sur des routes en terre pour à peu près 2h
avant d'arriver sur place, mais ça en vaut l'effort.</p>
<p>Il s'agit d'un ancien lac salé, au milieu du desert maintenant. Géologiquement,
l'accumulation de sable et d'argile sont assez ahurissantes puisque on arrive
à retrouver des ossements des premiers aborigènes (dont j'ai oublié le nom).</p>
<p>Ce parc national est vriament chouette parce que peu de personnes le
connaissent et donc (contrairement à d'autres endroits ou c'est difficilement
vivable) il y à peu de touristes.</p>
<p>Par contre les mouches sont au rendez-vous !
Au programme, on à eu des superbes couchers de soleil, un silence quasi total
(j'avais jamais pu voir ça avant) et un ciel ahurissant.</p>
</div>
<div class="section" id="the-great-ocean-road">
<h2>The great Ocean road</h2>
<p>Tiens, en parlant de trucs touristiques ! En paratant de Melbourne, on à décidé
d'aller fair eun tour sur cette route qui semble assez connue. C'est assez
beau, quelques points de vue sur l'océan avec des vagues qui se fracassent sur
la roche, mais dans l'ensemble c'est un peu étrang ede voir tout le monde faire
cette route dans sa voiture et s'arrêter pour prendre des photos.</p>
<p>On à déniché un super petit camping gratuit à sur la pointe</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,309 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carto Forms - First steps - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Carto Forms - First steps</h1>
<span class="post-date">17 novembre 2012</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>For an introduction on carto forms, please see this blog post:
<a class="reference external" href="https://blog.notmyidea.org/carto-forms.html">https://blog.notmyidea.org/carto-forms.html</a> (and its variant in french if you
prefer: <a class="reference external" href="https://blog.notmyidea.org/carto-forms-fr.html">https://blog.notmyidea.org/carto-forms-fr.html</a>)</p>
<p>So, let's not talk too much about what we want to do, and rather explain how we
will do it instead ;)</p>
<p>Writing this article turned out to dump my thinking while bootstraping the
project, so I'm really explaining how I'm getting from here to there ;)</p>
<div class="section" id="first-step-defining-a-way-to-describe-forms">
<h2>First step: defining a way to describe forms</h2>
<p>What we want is a generic way to describe forms. I'm not sure if such a thing
exist. And, because I'm on a train atm, let's suppose there isn't anything like
this already (which is probably a wrong assumption, but, let's stick with that
for now).</p>
<p>What do we want? A way to associate titles, descriptions to a field. We also
want to be able to describe what's <em>in</em> the field (the type of content), and if
it is a repeatable field or not. In the case of a selection, we might also want
to have a list of possibilities somewhere. Let's take a simple example:</p>
<p>Title: Ads spots
Description: Describe all the ads spots in Paris
Fields:</p>
<ul class="simple">
<li>location (geoloc/address/lat-long)</li>
<li>size <em>the size of the ad</em> (choice list: small/medium/big/huge)</li>
<li>light <em>is there light on it?</em> (boolean)</li>
</ul>
<p>Okay, so what we have here is in the form: name <em>description</em> (type of field).
In some way, we need to separate the widget that will be displayed to the user
from the type of data. What we need here is the type of data, the widget thing
should be decided at a different layer. So, let's refine the &quot;location&quot; field
to &quot;location (SIG point)&quot;.</p>
<p>Okay, we now know what we want to save. Yet, we need to define the format.
At this point, I'm wondering if I should use XML, YAML or JSON to describe this
data. To be able to choose, listing the potential consumers / providers of data
can help. The first consumer of this data will be a REST API, and the first
producer will be, probably javascript (or whatever techno is used on the
client). Of course, we can provide lots of format on the REST API and depend
on the &quot;Content-Types&quot; header to know how to talk to it, but well, do we really
want or need to do that? Let's assume no for now and stick with JSON, because
it's now easily validable and I can't think of a language without a lib for it
(apart COBOL, of course).</p>
<p>Hey-hi, JSON. How does our data look with you? Let's dump a python structure
and dump it with <cite>json.dumps</cite>:</p>
<pre class="literal-block">
data = {
'title': 'Ads spots',
'description': 'All the ads spots in paris',
'fields': (
{'name': 'location', 'type': 'SIG point'},
{'name': 'size', 'type': 'choice', 'description': 'the size of the ad',
'choices': ('small', 'medium', 'big', 'huge')},
{'name': 'light', 'desciption': 'is there light on it?', 'type': 'bool'},
)}
import json
json.dumps(data)
</pre>
<p>… and the result is (ran with <cite>python data.py | python -m json.tool</cite>) …:</p>
<pre class="literal-block">
{
&quot;title&quot;: &quot;Ads spots&quot;
&quot;description&quot;: &quot;All the ads spots in paris&quot;,
&quot;fields&quot;: [
{
&quot;name&quot;: &quot;location&quot;,
&quot;type&quot;: &quot;SIG point&quot;
},
{
&quot;choices&quot;: [
&quot;small&quot;,
&quot;medium&quot;,
&quot;big&quot;,
&quot;huge&quot;
],
&quot;description&quot;: &quot;the size of the ad&quot;,
&quot;name&quot;: &quot;size&quot;,
&quot;type&quot;: &quot;choice&quot;
},
{
&quot;desciption&quot;: &quot;is there light on it?&quot;,
&quot;name&quot;: &quot;light&quot;,
&quot;type&quot;: &quot;bool&quot;
}
],
}
</pre>
</div>
<div class="section" id="validating-the-form-definition">
<h2>Validating the form definition</h2>
<p>JSON is nice to us, JSON schema now exists and there are tools to work with it.
Quickly, it's the same kind of things than what's provided by XML Schema: you
create a schema, pass it some data and it's able to tell you if the data
complies with the schema. If not, it gives you a nice list of wrong fields.</p>
<p>The second option, in python, is a tool named colander, which approximately
does the same thing, but with its own syntax.</p>
<p>FIXME need to dig on json schema here and do an approx schema for this.</p>
</div>
<div class="section" id="creating-the-forms">
<h2>Creating the forms</h2>
<p>The next step is to actually create a form from this. Python, and django in
particular, have nice APIs to do that in python. However, I don't know how
they internally work, but you can pass to it some data provided by an HTTP POST
request and it will tell you if it validate or no.</p>
<p>The problem with django is that you're tied to it, and it's not possible (well,
as far as I know) to get only the validation bits out of it. On the other hand,
the form framework already comes with nice geolocation facilities. It could be
nice to have a tool able to parse the format we defined and to generate django
models out of it.</p>
<p>We need to be careful here: what I'm talking about is to generate code… Well,
there are two approches to do that: either we generate a python file and parse
it, or either we can read the json data and programatically create a form out
of it, at runtime. We might want to cache this at some point to avoid doing it
each time, but let's consider it's another problem we will tackle later.</p>
<p>So, django internals!</p>
<p>Let's loop on the fields provided by our format and generate the form. We will
care about how to store this / retrieve it later :)</p>
<p>Oh, but wait. I'm talking about forms but I should be talking about models!
Validation is one thing, but what we want to do is to describe the data we will
be handling. Forms will just be the user facing thing and what will to the
validation!</p>
<p>Django, no django? Let's think about this one more time. There is another
competitor on this field, because we are talking about storing information that
are changing all the time and to base validation on them: CouchDB! And there
also is GeoCouch, which brings interesting SIG features to Couch. And it's
talking JSON!</p>
<p>Creating a new form should be as easy as this:</p>
<pre class="literal-block">
$ curl -X POST localhost:5984/cartoforms/ -d &quot;`python test.py`&quot; -H &quot;Content-Type: application/json&quot;
{&quot;ok&quot;:true,&quot;id&quot;:&quot;2d58ef2b02eae639b3f94e357a000d26&quot;,&quot;rev&quot;:&quot;1-0462d0827e7cdad20b5703a923249220&quot;}
</pre>
<p>Hmm, wait, this is cool but we got this hideous hash. Let's change this to a
PUT instead:</p>
<pre class="literal-block">
$ curl -X PUT localhost:5984/cartoforms/paris-ads -d &quot;`python test.py`&quot; -H &quot;Content-Type: application/json&quot;
{&quot;ok&quot;:true,&quot;id&quot;:&quot;paris-ads&quot;,&quot;rev&quot;:&quot;1-0462d0827e7cdad20b5703a923249220&quot;}
</pre>
<p>Of course, we can already retrieve this with a GET:</p>
<pre class="literal-block">
curl -X GET localhost:5984/cartoforms/paris-ads -d &quot;`python test.py`&quot;
{&quot;_id&quot;:&quot;paris-ads&quot;,&quot;_rev&quot;:&quot;1-0462d0827e7cdad20b5703a923249220&quot;,&quot;fields&quot;:[{&quot;type&quot;:&quot;SIG
point&quot;,&quot;name&quot;:&quot;location&quot;},{&quot;choices&quot;:[&quot;small&quot;,&quot;medium&quot;,&quot;big&quot;,&quot;huge&quot;],&quot;type&quot;:&quot;choice&quot;,&quot;name&quot;:&quot;size&quot;,&quot;description&quot;:&quot;the
size of the ad&quot;},{&quot;type&quot;:&quot;bool&quot;,&quot;desciption&quot;:&quot;is there light on
it?&quot;,&quot;name&quot;:&quot;light&quot;}],&quot;description&quot;:&quot;All the ads spots in
paris&quot;,&quot;title&quot;:&quot;Ads spots&quot;}
</pre>
<p>Validation? Yes, you're completely right: we need validation for this. Because
in this current state, anyone can just insert whatever data they want into this
system, which could become a problem at some point.</p>
<p>Let's say we don't care who is able to publish to the DB, until we know that
what's being posted complies with a certain format. And, guess what's cool?
CouchDB provides validators. Yeah, I agree, it's somewhat exhausting to realize
that we have all this for free, but, heh, that's open source, dude!</p>
</div>
<div class="section" id="adding-validation">
<h2>Adding validation!</h2>
<p>So, we described our format already, what we need to do is to create a couchdb
validator which is able to filter this.</p>
<p>Hmm, I don't remember how they are named (will find out in the couch
documentation), but if I remember correctly, you can hook up some javascript
functions to each POST / PUT, to check that the data inserted is correct, and
output appropriate error messages when it's not what you expected.</p>
<p>Yeah, this means writing javascript, which is cool because I wanted to re-learn
how to do javascript!</p>
<p>… train arrives to station, see you next :)</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Fermentation en fûts - Carnets Web</title> <title>Fermentation en fûts - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -92,11 +92,6 @@ styles, `#sidebar-checkbox` for behavior. -->
je trouve que l'embouteillage est souvent difficile,</li> je trouve que l'embouteillage est souvent difficile,</li>
</ul> </ul>
<p>e me retrouve souvent avec des</p> <p>e me retrouve souvent avec des</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Hype - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Hype</h1>
<span class="post-date">22 novembre 2017</span>
<img id="illustration" src="" />
<div class="post article">
<h2 class="post-headline">Hype et Marketing</h2>
<h1>🌟</h1>
<p>Pendant longtemps, j'ai refusé d'avoir un compte Facebook.
Pour des raisons éthiques de propriété des données, parce que l'idée d'avoir une entreprise géante qui fait de nos inter-relations un profit me fait blêmir.</p>
<p>Depuis, ce sont toujours des pratiques qui me débectent mais j'ai mis un peu de poison dans mon élixir, tant et si bien que j'ai depuis quelques mois un compte au grand F bleu.</p>
<p>Je suis surpris de voir tout ce qui s'y passe. J'ai l'impression de découvrir le dessous de l'iceberg: beaucoup de communautées utilisent ce média pour communiquer, et j'y trouve beaucoup d'informations que j'avais de la peine à trouver ailleurs.</p>
<p>Je loupais alors toute une partie de la problématique: ce qui fait qu'un réseau social est ce qu'il est. Le fait que Facebook semble être un terreau propice au marketing. De plus en plus d'entreprises l'utilisent pour faire parler de leurs produits. On mélange alors la partie personnelle avec la partie entrepreneuriale.</p>
<p>Dans le milieu de la fabrication de bière, je me suis retrouvé à toujours voir ce que font mes collègues, tout ce qu'ils font de plus génial les uns que les autres. Franchement, ça me renvoie pas mal l'impression que je suis un gros naze.</p>
<p>Le souci, c'est que je me retrouve coincé dans une position qui nécessite de moi que je fasse parler de mon entreprise, que je cherche à</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,240 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Le mail doit-il mourir ? - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Le mail doit-il mourir ?</h1>
<span class="post-date">24 novembre 2015</span>
<img id="illustration" src="" />
<div class="post article">
<h2 class="post-headline">Le mail est un protocole bien établi qui souffre de nombreux
problèmes. Est-ce qu'il ne serait pas temps de préparer la suite ?</h2>
<h1>🌟</h1>
<p>J'utilise quotidiennent le protocole email, tant bien que mal, tout en sachant
que l'ensemble de mes messages passent en clair sur le réseau pour la plupart
de mes conversations, puisque trop peu de monde utilise le chiffrement des
messages.</p>
<p>Et même si j'arrive à convaincre certains de mes proches à installer PGP, je ne
suis pas satisfait du résultat: les méta-données (qui contacte qui à quel
moment, et pour lui dire quoi) transitent de toute manière, elles, en clair,
à la vue de tous.</p>
<p>Ce problème est lié directement au protocole email: il est <em>necessaire</em> de
faire fuiter les metadonnées (au moins le destinataire) pour avoir un protocole
mail fonctionnel.</p>
<p>Le mail réponds à un besoin de communication asynchrone qui permet des
conversations plus réfléchies qu'un simple chat (miaou). Il est tout à fait
possible d'utiliser certaines technologies existantes afin de constuire le
futur de l'email, pour lequel:</p>
<ul class="simple">
<li>Les méta-données seraient chiffrées — Il n'est pas possible de savoir qui
communique avec qui, et quand;</li>
<li>Le chiffrement serait fort et protégé d'une phrase de passe;</li>
<li>La fuite d'une clé de chiffrement utilisée dans un échange ne permette pas de
déchiffrer l'ensemble des échanges (forward secrecy);</li>
<li>Il ne soit pas possible de réutiliser les données comme preuve pour
incriminer l'emmeteur du message (deniability);</li>
</ul>
<p>Avec au moins ces besoins en tête, il semble qu'une revue de l'ensemble des
projets existants pointe du doigt vers <a class="reference external" href="https://github.com/agl/pond">pond</a>,
ou vers <a class="reference external" href="https://www.whispersystems.org/">Signal</a>.</p>
<p>Malheureusement, Pond est le projet d'une seule personne, qui veut plutôt
utiliser ce code comme demonstration du concept en question.</p>
<p>Voici un tableau de certaines des solutions existantes. Je n'ai volontairement
pas repris l'ensemble des outils existants, et indiqué quelques points de
comparaisons qui me semblaient utiles (Nombre de developeurs, date du dernier
commit).</p>
<table border="1" class="docutils">
<colgroup>
<col width="63%" />
<col width="14%" />
<col width="14%" />
<col width="9%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Project</th>
<th class="head">Pond</th>
<th class="head">Signal</th>
<th class="head">PGP</th>
</tr>
</thead>
<tbody valign="top">
<tr><td>Forward secrecy</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr><td>Meta-data encryption</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr><td>Deniability</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<div class="section" id="axolotl-v2">
<h2>Axolotl v2</h2>
<p>Un des champions actuels (depuis quelques années déjà) dans
Hi,</p>
<p>As a prelude, let me say that I've been following this mailing-list since over
a year now and I've learned a bunch of interesting things, so thanks to you
all.</p>
<p>If I understand correctly, the email protocol is badly broken, even if used
with PGP on top of it, mainly because metadata are leaking, by design (at least
for the emitters and recipients of the messages) and that it doesn't propose
forward secrecy.</p>
<p>I'm looking for a protocol that allows:</p>
<ul class="simple">
<li>Asynchronous messaging;</li>
<li>Backup-able messages;</li>
<li>Forward secrecy;</li>
<li>Hiding of traffic information;</li>
</ul>
<p>This looks a lot like Pond [0], with the twist that messages are expiring in
Pond (and I would like them not to). But, I could leave with expiration of
messages, if only Pond was maintained and still worked on actively.</p>
<p>So here are multiple questions:</p>
<ul class="simple">
<li>The ideas behind Pond looks great. Do you have any</li>
</ul>
<p>[0] <a class="reference external" href="https://pond.imperialviolet.org/">https://pond.imperialviolet.org/</a></p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,196 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>L'outil roi - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">L'outil roi</h1>
<span class="post-date">01 octobre 2013</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>Clochix publie de temps en temps de bons billets sur son carnet, un de ceux là
parle de nos outils, et de la relation que l'on entretien avec eux.</p>
<p>Ça fait longtemps que j'ai ce billet en cours de rédaction, et que ma réfléxion
sur le sujet n'est pas aboutie. J'ai écris un billet il y à un an et demi sur
le sujet sans jamais le publier.</p>
<p>Je me rends compte que je n'ai pas vraiment la même utilisation des outils
informatiques que des outils autres. Sur mon ordinateur, je souhaite toujours
avoir le &quot;petit truc&quot; qui fait que je vais plus vite. Je suis friand de ces
astuces. J'utilise &quot;vim&quot; pour rédiger mes notes, j'ai en tête bon nombres de
raccourcis qui me permettent d'aller plus vite, etc.</p>
<p>Au final, ce n'est pas un mal, mais à toujours vouloir faire plus, je me
retrouve à ne plus savoir ou donner de la tête.</p>
<p>Pour être honête, travailler à distance est assez compliqué. compliqué parce
qu'il faut à la fois être présent sur les canaux de discussion et etre capable
de travailler sur les projets qui nous interessent. Un vrai mythe.</p>
<p>Parce qu'en pratique, je n'arrive que peu à faire deux choses en même temps.
J'ai essayé à plusieurs reprises la technique du pomodoro, qui oblige à être
concentré sur une tache durant 25 minutes, en évitant les distractions; mais
cette découpe en tranches de 25 minutes me perturbe et souvent casse mon
rythme. En fait, ça convient à certains types de taches et pas à d'autres. Par
exemple ça ne convient pas du tout (en mon sens) pour un travail de
documentation (lecture), alors que ça convient plus pour un travail d'écriture.</p>
<p>Au final, je tente de</p>
<p>Mes outils me grignottent. J'essaye d'avoir toujours l'outil le plus performant
pour la tache. Que ça soit un outil informatique, ou un outil</p>
<p>Essayons d'avoir des outils toujours plus
performants, pour être efficace</p>
<p>le dernier en
date parle de l'homme et de ses outils. Il y parle de vim, un éditeur de texte,
mais il est possible d'étendre cette reflexion à bon nombre d'outils que nous
utilisons.</p>
<p>Des outils qui nous permettent d'aller plus vite, d'être plus efficaces,
performants, productifs.</p>
<p>J'utilise aussi vim; et je passe un temps considérable à apprendre (d'une
manière générale) comment mes outils fonctionnent, et comment faire en sorte
qu'ils correspondent à mes usages au mieux possible.</p>
<p>Premièrement, parce que c'est interessant. Intellectuellement parlant cela
releve de l'apprentissage, et par curiosité, j'aime comprendre comment les
choses marchent. Mais, remettant en perspective ces outils, on peux se poser
la question de leur legitimité: Je sais parfaitement me servir d'un ordinateur.
Pas que j'en connaisse tous les recoins, mais qu'importe. Quel est l'intérêt de
ces outils ? À quoi bon savoir se servir de ses 10 doigts sur un clavier si
c'est pour ne faire que des outils qui font progresser &quot;l'état de la science&quot;
? C'est certes fort interessant, mais il n'en reste pas moins peu utile <em>in
fine</em>.</p>
<p>Ce que j'attende d'un outil, c'est qu'il me permette de résoudre des problèmes
le plus rapidement et le plus facilement possible. Je ne veux pas défendre</p>
<p>J'ai envie de dire &quot;peu importe&quot; l'outil (pourvu qu'on ait la réalisation)</p>
<p>Et hop, on retombe sur cette séparation du faire et du penser, sans même
sans rendre compte.</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,222 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Mozilla - The sagrada token server - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<meta name="tags" contents="sagrada" />
<meta name="tags" contents="python" />
<meta name="tags" contents="browserid" />
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Mozilla - The sagrada token server</h1>
<span class="post-date">19 mars 2012</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>Since I started, back in december, we started a new project on the services
team, which aims to bring a central authentication point on our server side.
This had been motivated by the fact that we are switching our services
authentication mechanism from basic HTTP auth to browserid (this was basically
for sync in the first place, and now for AITC, a.k.a Market Place APIs).</p>
<ul class="simple">
<li>A Token Server ?</li>
<li>Services architecture (server / nodes)</li>
<li>MAC auth</li>
<li>Crypto / Signing
- HKDF
- Signing the tokens
- Parsing browserid assertions</li>
<li>Resources</li>
</ul>
<div class="section" id="a-token-server">
<h2>A token server ?</h2>
<p>So, we don't want to be tied to any authentication mean on our platform. The
best way to accomplish this is to chose one and to provide a way to map all the
potential authentication means to the chosen one.</p>
<p>In addition to trade a browserid assertion for another authentication token,
the mission of the token server is to retrieve the node allocation of a
particular user, and eventually assign it to a node.</p>
<p>To resume, we take any authentication scheme (browserid for now) and
trade it for another one we can use for all of our services. This has several
advantages:</p>
<ul class="simple">
<li>We don't need to check the browserid assertion at each request. This avoids
doing crypto at each request.</li>
<li>As said, we are able to deal with different authentication schemes. If we
want to use openid, we just need to add support for it on one location</li>
<li>The node allocation is done anyways (the user need to know wich node it is
assigned to) so it doesn't add an extra call for this.</li>
</ul>
</div>
<div class="section" id="our-architecture">
<h2>Our architecture</h2>
<p>I'm talking about nodes, users and services. Let's clarifiy a bit all this.
Because at the services team, we mostly care about being able to scale our
infrastructures without (too much) pain, we try to avoid SPOFs (Single Point Of
Failure) of any sort. For this purpose we expose at the authentication layer
information about the node that need to be retrieved by the clients.</p>
<p>What? clients? Okay, here is what the authentication looks like:</p>
<pre class="literal-block">
User-Agent Token Server Node
| | |
| &lt;bid assertion&gt; | |
|-----------------------&gt;| |
| | |
|&lt;token + userid + node&gt; | |
|&lt;-----------------------| |
| | |
| &lt;service-data + token&gt; |
|-----------------------------------------------&gt;|
</pre>
<p>In HTTP terms, looks like this, the user agent (client) gives a browserid
assertion and receives back information about the service it should deal with</p>
<pre class="literal-block">
&gt; HTTP POST http://token.services.mozilla.org/1.0/&lt;app&gt;/&lt;app-version&gt;
&gt; Data: # some authentication information (browserid assertion in our case)
&lt; Header: 200 OK
&lt; Data: &quot;{'id': token, 'key': secret, 'uid': uid, 'api_endpoint': api_endpoint}&quot;
</pre>
<p>(This is an hand crafted request/response flow)</p>
<p>We don't bother about the signing and crypto details in here as it is explained
in a later section, but basically, we asked for a node, with a specific
browserid assertions and now we have an <em>api_endpoint</em> to send our requests
against, along with the token.</p>
</div>
<div class="section" id="crypto-details">
<h2>Crypto details</h2>
<p>All the flow is explained in our documentation, for the token server</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,208 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Mozilla's weekly update #1 - Carnets Web</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Mozilla's weekly update #1</h1>
<span class="post-date">20 septembre 2012</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>My day-to-day work is changing a lot these days, as I'm working on different
tools and working across different teams. I thought it could be useful to have
a place to put updates weekly about what's going-on. This can be extra useful
for folks that are not on the same timezone I am (I'm looking at you,
California), so let's try this.</p>
<p>I'm not used to post regularly, but I will try to update the blog with an entry
each week, if there is something interesting to say.</p>
<div class="section" id="circus">
<h2>Circus</h2>
<p>As you may know, last week we had a sprint about Circus at PyconFR, we now have
a bunch of folks interested by the project now, and some activity on our irc
channel (#mozilla-circus on freenode).</p>
<p>I've written <a class="reference external" href="http://blog.notmyidea.org/circus-sprint-at-pyconfr.html">a more comprehensive wrap-up about this sprint</a>, so have a look at
it if you're interested!</p>
</div>
<div class="section" id="vaurien">
<h2>Vaurien</h2>
<p>Vaurien is a TCP proxy which can be useful for our load-testing. its goal is to
sometimes let the traffic go trough, sometimes play a bit with it (add delays,
timeouts, close the socket etc) to check how the stack is behaving when under
pressure.</p>
<p>The code isn't used to test our services yet but we have something interesting
to show: <a class="reference external" href="http://github.com/mozilla-services/vaurien/">http://github.com/mozilla-services/vaurien/</a></p>
<p>I will not explain the specifics here, I've tried to make <a class="reference external" href="https://github.com/mozilla-services/vaurien#vaurien">the README</a> explicit enough.</p>
</div>
<div class="section" id="marteau">
<h2>Marteau</h2>
<p><a class="reference external" href="https://github.com/mozilla-services/marteau/">Marteau</a> is the tool we're
using to throw load-test to our services, to check that they're able to handle
it. It's basically a frontend to Funkload. Tarek worked on adding real-time
feedback from the nodes (when in distributed mode, Funkload clients are
deployed on some nodes and send traffic to the service from there), and I am
working on making this available on the web interface. This means playing a bit
with web-sockets and javascript, yay.</p>
</div>
<div class="section" id="marketplace-packaging">
<h2>Marketplace packaging</h2>
<p>Currently, the application behind market place, <a class="reference external" href="https://github.com/mozilla/zamboni">Zamboni</a> uses a non-standard mechanism to deal
with its dependencies. A <cite>vendor</cite> folder contains the packages themselves, in
the form of git submodules. This comes with some drawbacks such as the fact
that it's not easy to upgrade dependencies etc, and very long updates of the
repository, into other things.</p>
<p>We were also dependant on github to deploy Marketplace, which isn't reliable at
all, especially when you know that github was down last week, for instance. We
now have a local PyPI mirror at Mozilla, and we use it to avoid reaching the
internet for something else than our code.</p>
<p>This also means that we need to pull all the dependencies out of this <cite>vendor</cite>
folder, and rely on PyPI packages when they are up to date. Then we will be
able to directly use <cite>pip</cite> to deal with dependency management and packaging.</p>
</div>
<div class="section" id="splitting-up-the-marketplace">
<h2>Splitting up the Marketplace</h2>
<p>Zamboni is currently one big django project. This led to something quite hard
to understand and hard to deal with., especially for newcomers. Also, it means
that all the aspects of the site are inter-connected and that you need to be
comfortable with the whole infrastructure of the project to add new features
/ fix bugs.</p>
<p>Splitting this big project into smaller chunks can allow to have something
easier to work on. We're trying to do that these days. More on this later :)</p>
<p>That's all for now, I'll try to keep you posted on all this, see you next week
:-)</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Dynamically change your gnome desktop wallpaper - Carnets Web</title> <title>Dynamically change your gnome desktop wallpaper - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,55 +84,54 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>In gnome, you can can use a XML file to have a dynamic wallpaper.
It's not so easy, and you can't just tell: use the pictures in this folder to do
so.</p>
<p>You can have a look to the git repository if you want: <a class="reference external" href="http://github.com/ametaireau/gnome-background-generator">http://github.com/ametaireau/gnome-background-generator</a></p>
<p>Some time ago, I've made a little python script to ease that, and you can now
use it too. It's named &quot;gnome-background-generator&quot;, and you can install it via
pip for instance.</p>
<div class="highlight"><pre><span></span>$ pip install gnome-background-generator
</pre></div>
<p>Then, you have just to use it this way:</p>
<div class="highlight"><pre><span></span>$ gnome-background-generator -p ~/Images/walls -s
/home/alexis/Images/walls/dynamic-wallpaper.xml generated
</pre></div>
<p>Here is a extract of the <cite>--help</cite>:</p>
<div class="highlight"><pre><span></span>$ gnome-background-generator --help
usage: gnome-background-generator <span class="o">[</span>-h<span class="o">]</span> <span class="o">[</span>-p PATH<span class="o">]</span> <span class="o">[</span>-o OUTPUT<span class="o">]</span>
<span class="o">[</span>-t TRANSITION_TIME<span class="o">]</span> <span class="o">[</span>-d DISPLAY_TIME<span class="o">]</span> <span class="o">[</span>-s<span class="o">]</span>
<span class="o">[</span>-b<span class="o">]</span>
A simple <span class="nb">command</span> line tool to generate an XML file to use <span class="k">for</span> gnome <p>In gnome, you can can use a XML file to have a dynamic wallpaper. It's
wallpapers, to have dynamic walls not so easy, and you can't just tell: use the pictures in this folder to
do so.</p>
<p>You can have a look to the git repository if you want:
<a href="http://github.com/ametaireau/gnome-background-generator">http://github.com/ametaireau/gnome-background-generator</a></p>
<p>Some time ago, I've made a little python script to ease that, and you
can now use it too. It's named "gnome-background-generator", and you can
install it via pip for instance.</p>
<p>``` sourceCode shell
$ pip install gnome-background-generator</p>
<div class="highlight"><pre><span></span><span class="k">Then</span>, <span class="nv">you</span> <span class="nv">have</span> <span class="nv">just</span> <span class="nv">to</span> <span class="nv">use</span> <span class="nv">it</span> <span class="nv">this</span> <span class="nv">way</span>:
optional arguments: ``` <span class="nv">sourceCode</span> <span class="nv">shell</span>
-h, --help show this <span class="nb">help</span> message and <span class="nb">exit</span> $ <span class="nv">gnome</span><span class="o">-</span><span class="nv">background</span><span class="o">-</span><span class="nv">generator</span> <span class="o">-</span><span class="nv">p</span> <span class="o">~/</span><span class="nv">Images</span><span class="o">/</span><span class="nv">walls</span> <span class="o">-</span><span class="nv">s</span>
-p PATH, --path PATH Path to look <span class="k">for</span> the pictures. If no output is <span class="o">/</span><span class="nv">home</span><span class="o">/</span><span class="nv">alexis</span><span class="o">/</span><span class="nv">Images</span><span class="o">/</span><span class="nv">walls</span><span class="o">/</span><span class="nv">dynamic</span><span class="o">-</span><span class="nv">wallpaper</span>.<span class="nv">xml</span> <span class="nv">generated</span>
specified, will be used too <span class="k">for</span> outputing the dynamic- </pre></div>
<p>Here is a extract of the `--help`:</p>
<p>``` sourceCode shell
$ gnome-background-generator --help
usage: gnome-background-generator [-h] [-p PATH] [-o OUTPUT]
[-t TRANSITION_TIME] [-d DISPLAY_TIME] [-s]
[-b]</p>
<p>A simple command line tool to generate an XML file to use for gnome
wallpapers, to have dynamic walls</p>
<p>optional arguments:
-h, --help show this help message and exit
-p PATH, --path PATH Path to look for the pictures. If no output is
specified, will be used too for outputing the dynamic-
wallpaper.xml file. Default value is the current wallpaper.xml file. Default value is the current
directory <span class="o">(</span>.<span class="o">)</span> directory (.)
-o OUTPUT, --output OUTPUT -o OUTPUT, --output OUTPUT
Output filename. If no filename is specified, a Output filename. If no filename is specified, a
dynamic-wallpaper.xml file will be generated in the dynamic-wallpaper.xml file will be generated in the
path containing the pictures. You can also use <span class="s2">&quot;-&quot;</span> to path containing the pictures. You can also use "-" to
display the xml in the stdout. display the xml in the stdout.
-t TRANSITION_TIME, --transition-time TRANSITION_TIME -t TRANSITION_TIME, --transition-time TRANSITION_TIME
Time <span class="o">(</span>in seconds<span class="o">)</span> transitions must last <span class="o">(</span>default value Time (in seconds) transitions must last (default value
is <span class="m">2</span> seconds<span class="o">)</span> is 2 seconds)
-d DISPLAY_TIME, --display-time DISPLAY_TIME -d DISPLAY_TIME, --display-time DISPLAY_TIME
Time <span class="o">(</span>in seconds<span class="o">)</span> a picture must be displayed. Default Time (in seconds) a picture must be displayed. Default
value is <span class="m">900</span> <span class="o">(</span>15mn<span class="o">)</span> value is 900 (15mn)
-s, --set-background <span class="s1">&#39;&#39;</span><span class="err">&#39;</span>try to <span class="nb">set</span> the background using gnome-appearance- -s, --set-background '''try to set the background using gnome-appearance-
properties properties
-b, --debug -b, --debug
</pre></div> ```</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -0,0 +1,469 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Eco-système et stockage générique - Alexis - Carnets en ligne</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Eco-système et stockage générique</h1>
<span class="post-date">30 avril 2015</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p><strong>tl;dr Nous devons construire un service de suivi de paiements, et nous
hésitons à continuer à nous entêter avec notre propre solution de
stockage/synchronisation.</strong></p>
<p>Comme nous l'écrivions <a href="%7Bfilename%7D/2015.04.service-de-nuages.rst">dans l'article
précédent</a>, nous
souhaitons construire une solution de stockage générique. On refait
<a href="http://daybed.readthedocs.org">Daybed</a> chez Mozilla !</p>
<p>Notre objectif est simple: permettre aux développeurs d'application,
internes à Mozilla ou du monde entier, de faire persister et
synchroniser facilement des données associées à un utilisateur.</p>
<div id="storage-specs">
Les aspects de l'architecture qui nous semblent incontournables:
</div>
<ul>
<li>La solution doit reposer sur un protocole, et non sur une
implémentation ;</li>
<li>L'auto-hébergement de l'ensemble doit être simplissime ;</li>
<li>L'authentification doit être <em>pluggable</em>, voire décentralisée
(OAuth2, FxA, Persona) ;</li>
<li>Les enregistrements doivent pouvoir être validés par le serveur ;</li>
<li>Les données doivent pouvoir être stockées dans n'importe quel
backend ;</li>
<li>Un système de permissions doit permettre de protéger des
collections, ou de partager des enregistrements de manière fine ;</li>
<li>La résolution de conflits doit pouvoir avoir lieu sur le serveur ;</li>
<li>Le client doit être pensé «*offline-first*» ;</li>
<li>Le client doit pouvoir réconcilier les données simplement ;</li>
<li>Le client doit pouvoir être utilisé aussi bien dans le navigateur
que côté serveur ;</li>
<li>Tous les composants se doivent d´être simples et substituables
facilement.</li>
</ul>
<p>La première question qui nous a été posée fût «*Pourquoi vous
n'utilisez pas PouchDB ou Remote Storage ?*»</p>
<h2 id="remote-storage">Remote Storage</h2>
<p>Remote Storage est un standard ouvert pour du stockage par utilisateur.
<a href="http://tools.ietf.org/html/draft-dejong-remotestorage-04">La
specification</a>
se base sur des standards déjà existants et éprouvés: Webfinger, OAuth
2, CORS et REST.</p>
<p>L'API est simple, des <a href="http://blog.cozycloud.cc/news/2014/08/12/when-unhosted-meets-cozy-cloud/">projets prestigieux
l'utilisent</a>.
Il y a plusieurs <a href="https://github.com/jcoglan/restore">implémentations</a>
du serveur, et il existe <a href="https://www.npmjs.com/package/remotestorage-server">un squelette
Node</a> pour
construire un serveur sur mesure.</p>
<p><img alt="Remote Storage widget" src="%7Bfilename%7D/images/remotestorage-widget.png"></p>
<p>Le client
<a href="https://github.com/remotestorage/remotestorage.js/">remoteStorage.js</a>
permet d'intégrer la solution dans les applications Web. Il se charge du
«store local», du cache, de la synchronization, et fournit un widget qui
permet aux utilisateurs des applications de choisir le serveur qui
recevra les données (via Webfinger).</p>
<p><a href="https://github.com/michielbdejong/ludbud">ludbud</a>, la version épurée de
<em>remoteStorage.js</em>, se limite à l'abstraction du stockage distant. Cela
permettrait à terme, d'avoir une seule bibliothèque pour stocker dans un
serveur <em>remoteStorage</em>, <em>ownCloud</em> ou chez les méchants comme <em>Google
Drive</em> ou <em>Dropbox</em>.</p>
<p>Au premier abord, la spécification correspond à ce que nous voulons
accomplir:</p>
<ul>
<li>La philosophie du protocole est saine;</li>
<li>L'éco-système est bien fichu;</li>
<li>La vision politique colle: redonner le contrôle des données aux
utilisateurs (voir <a href="http://unhosted.org/">unhosted</a>);</li>
<li>Les choix techniques compatibles avec ce qu'on a commencé (CORS,
REST, OAuth 2);</li>
</ul>
<p>En revanche, vis à vis de la manipulation des données, il y a plusieurs
différences avec ce que nous souhaitons faire:</p>
<ul>
<li>L'API suit globalement une métaphore «fichiers» (dossier/documents),
plutôt que «données» (collection/enregistrements) ;</li>
<li>Il n'y a pas de validation des enregistrements selon un schéma (même
si <a href="https://remotestorage.io/doc/code/files/baseclient/types-js.html">certaines
implémentations</a>
du protocole le font) ;</li>
<li>Il n'y a pas la possibilité de trier/filtrer les enregistrements
selon des attributs ;</li>
<li>Les permissions <a href="https://groups.google.com/forum/#!topic/unhosted/5_NOGq8BPTo">se limitent à
privé/public</a>
(et <a href="https://github.com/remotestorage/spec/issues/58#issue-27249452">l'auteur envisage plutôt un modèle à la
Git</a>)[1]
;</li>
</ul>
<p>En résumé, il semblerait que ce que nous souhaitons faire avec le
stockage d'enregistrements validés est complémentaire avec <em>Remote
Storage</em>.</p>
<p>Si des besoins de persistence orientés «fichiers» se présentent, a
priori nous aurions tort de réinventer les solutions apportées par cette
spécification. Il y a donc de grandes chances que nous l´intégrions à
terme, et que <em>Remote Storage</em> devienne une facette de notre solution.</p>
<h2 id="pouchdb">PouchDB</h2>
<p><a href="http://pouchdb.com/">PouchDB</a> est une bibliothèque JavaScript qui
permet de manipuler des enregistrements en local et de les synchroniser
vers une base distante.</p>
<p>``` sourceCode javascript
var db = new PouchDB('dbname');</p>
<p>db.put({
_id: 'dave@gmail.com',
name: 'David',
age: 68
});</p>
<p>db.replicate.to('http://example.com/mydb');
```</p>
<p>Le projet a le vent en poupe, bénéficie de nombreux contributeurs,
l'éco-système est très riche et l'adoption par des projets <a href="https://github.com/hoodiehq/wip-hoodie-store-on-pouchdb">comme
Hoodie</a> ne fait
que confirmer la pertinence de l'outil pour les développeurs frontend.</p>
<p><em>PouchDB</em> gère un « store » local, dont la persistence est abstraite et
<a href="http://pouchdb.com/2014/07/25/pouchdb-levels-up.html">repose sur</a> l'API
<a href="https://github.com/level/levelup#relationship-to-leveldown">LevelDown</a>
pour persister les données dans <a href="https://github.com/Level/levelup/wiki/Modules#storage-back-ends">n'importe quel
backend</a>.</p>
<p>Même si <em>PouchDB</em> adresse principalement les besoins des applications
«*offline-first*», il peut être utilisé aussi bien dans le navigateur
que côté serveur, via Node.</p>
<h3 id="synchronisation">Synchronisation</h3>
<p>La synchronisation (ou réplication) des données locales s'effectue sur
un <a href="http://couchdb.apache.org/">CouchDB</a> distant.</p>
<p>Le projet <a href="https://github.com/pouchdb/pouchdb-server">PouchDB Server</a>
implémente l'API de CouchDB en NodeJS. Comme <em>PouchDB</em> est utilisé, on
obtient un service qui se comporte comme un <em>CouchDB</em> mais qui stocke
ses données n'importe où, dans un <em>Redis</em> ou un <em>PostgreSQL</em> par
exemple.</p>
<p>La synchronisation est complète. Autrement dit, tous les enregistrements
qui sont sur le serveur se retrouvent synchronisés dans le client. Il
est possible de filtrer les collections synchronisées, mais cela <a href="http://pouchdb.com/2015/04/05/filtered-replication.html">n'a
pas pour objectif de sécuriser l'accès aux
données</a>.</p>
<p>L'approche recommandée pour cloisonner les données par utilisateur
consiste à créer <a href="https://github.com/nolanlawson/pouchdb-authentication#some-people-can-read-some-docs-some-people-can-write-those-same-docs">une base de données par
utilisateur</a>.</p>
<p>Ce n'est pas forcément un problème, CouchDB <a href="https://mail-archives.apache.org/mod_mbox/couchdb-user/201401.mbox/%3C52CEB873.7080404@ironicdesign.com%3E">supporte des centaines de
milliers de bases sans
sourciller</a>.
Mais selon les cas d'utilisation, le cloisement n'est pas toujours
facile à déterminer (par rôle, par application, par collection, ...).</p>
<h2 id="le-cas-dutilisation-payments">Le cas d'utilisation « Payments »</h2>
<p><img alt="Put Payments Here -- Before the Internet - CC-NC-SA Katy Silberger
https://www.flickr.com/photos/katysilbs/11163812186" src="%7Bfilename%7D/images/put-payments.jpg"></p>
<p>Dans les prochaines semaines, nous devrons mettre sur pied un prototype
pour tracer l'historique des paiements et abonnements d'un utilisateur.</p>
<p>Le besoin est simple:</p>
<ul>
<li>l'application « Payment » enregistre les paiements et abonnements
d'un utilisateur pour une application donnée;</li>
<li>l'application « Donnée » interroge le service pour vérifier qu'un
utilisateur a payé ou est abonné;</li>
<li>l'utilisateur interroge le service pour obtenir la liste de tous ses
abonnements.</li>
</ul>
<p>Seule l'application « Payment » a le droit de créer/modifier/supprimer
des enregistrements, les deux autres ne peuvent que consulter en lecture
seule.</p>
<p>Une application donnée ne peut pas accéder aux paiements des autres
applications, et un utilisateur ne peut pas accéder aux paiements des
autres utilisateurs.</p>
<h3 id="avec-remotestorage">Avec RemoteStorage</h3>
<p><img alt="Remote Love - CC-BY-NC Julie
https://www.flickr.com/photos/mamajulie2008/2609549461" src="%7Bfilename%7D/images/remote-love.jpg"></p>
<p>Clairement, l'idée de <em>RemoteStorage</em> est de dissocier l'application
executée, et les données créées par l'utilisateur avec celle-ci.</p>
<p>Dans notre cas, c'est l'application « Payment » qui manipule des données
concernant un utilisateur. Mais celles-ci ne lui appartiennent pas
directement: certes un utilisateur doit pouvoir les supprimer, surtout
pas en créer ou les modifier!</p>
<p>La notion de permissions limitée à privé/publique ne suffit pas dans ce
cas précis.</p>
<h3 id="avec-pouchdb">Avec PouchDB</h3>
<p>Il va falloir créer une <em>base de données</em> par utilisateur, afin d'isoler
les enregistrements de façon sécurisée. Seule l'application « Payment »
aura tous les droits sur les databases.</p>
<p>Mais cela ne suffit pas.</p>
<p>Il ne faut pas qu'une application puisse voir les paiements des autres
applications, donc il va aussi falloir recloisonner, et créer une <em>base
de données</em> par application.</p>
<p>Quand un utilisateur voudra accéder à l'ensemble de ses paiements, il
faudra agréger les <em>databases</em> de toutes les applications. Quand
l'équipe marketing voudra faire des statistiques sur l'ensemble des
applications, il faudra agrégér des centaines de milliers de
<em>databases</em>.</p>
<p>Ce qui est fort dommage, puisqu'il est probable que les paiements ou
abonnements d'un utilisateur pour une application se comptent sur les
doigts d'une main. Des centaines de milliers de bases contenant moins de
5 enregistrements ?</p>
<p>De plus, dans le cas de l'application « Payment », le serveur est
implémenté en Python. Utiliser un wrapper JavaScript comme le fait
<a href="https://pythonhosted.org/Python-PouchDB/">python-pouchdb</a> cela ne nous
fait pas trop rêver.</p>
<h2 id="un-nouvel-eco-systeme">Un nouvel éco-système ?</h2>
<p><img alt="Wagon wheel - CC-BY-NC-SA arbyreed
https://www.flickr.com/photos/19779889@N00/16161808220" src="%7Bfilename%7D/images/wagon-wheel.jpg"></p>
<p>Évidemment, quand on voit la richesse des projets <em>PouchDB</em> et <em>Remote
Storage</em> et la dynamique de ces communautés, il est légitime d'hésiter
avant de développer une solution alternative.</p>
<p>Quand nous avons créé le serveur <em>Reading List</em>, nous l'avons construit
avec <a href="http://cliquet.readthedocs.org/">Cliquet</a>, ce fût l'occasion de
mettre au point <a href="http://cliquet.readthedocs.org/en/latest/api/">un protocole très
simple</a>, fortement
inspiré de <a href="http://en.wikipedia.org/wiki/Firefox_Sync">Firefox Sync</a>,
pour faire de la synchronisation d'enregistrements.</p>
<p>Et si les clients <em>Reading List</em> ont pu être implémentés en quelques
semaines, que ce soit en JavaScript, Java (Android) et ASM (Add-on
Firefox), c'est que le principe «*offline first*» du service est
trivial.</p>
<h3 id="les-compromis">Les compromis</h3>
<p>Évidemment, nous n'avons pas la prétention de concurrencer <em>CouchDB</em>.
Nous faisons plusieurs concessions:</p>
<ul>
<li>De base, les collections d'enregistrements sont cloisonnées par
utilisateur;</li>
<li>Pas d'historique des révisions;</li>
<li>Pas de diff sur les enregistrements entre révisions;</li>
<li>De base, pas de résolution de conflit automatique;</li>
<li>Pas de synchronisation par flux (<em>streams</em>);</li>
</ul>
<p>Jusqu'à preuve du contraire, ces compromis excluent la possibilité
d'implémenter un <a href="https://github.com/pouchdb/pouchdb/blob/master/lib/adapters/http/http.js#L721-L946">adapter
PouchDB</a>
pour la synchronisation avec le protocole HTTP de <em>Cliquet</em>.</p>
<p>Dommage puisque capitaliser sur l'expérience client de <em>PouchDB</em> au
niveau synchro client semble être une très bonne idée.</p>
<p>En revanche, nous avons plusieurs fonctionnalités intéressantes:</p>
<ul>
<li>Pas de map-reduce;</li>
<li>Synchronisation partielle et/ou ordonnée et/ou paginée ;</li>
<li>Le client choisit, via des headers, d'écraser la donnée ou de
respecter la version du serveur ;</li>
<li>Un seul serveur à déployer pour N applications ;</li>
<li>Auto-hébergement simplissime ;</li>
<li>Le client peut choisir de ne pas utiliser de « store local » du tout
;</li>
<li>Dans le client JS, la gestion du « store local » sera externalisée
(on pense à <a href="https://github.com/mozilla/localForage">LocalForage</a> ou
<a href="https://github.com/dfahlander/Dexie.js">Dexie.js</a>) ;</li>
</ul>
<p>Et, on répond au reste des <a href="#storage-specs">specifications mentionnées au début de
l'article</a> !</p>
<h3 id="les-arguments-philosophiques">Les arguments philosophiques</h3>
<p>Il est <a href="http://en.wikipedia.org/wiki/Law_of_the_instrument">illusoire de penser qu'on peut tout faire avec un seul
outil</a>.</p>
<p>Nous avons d'autres cas d'utilisations dans les cartons qui semblent
correspondre au scope de <em>PouchDB</em> (<em>pas de notion de permissions ou de
partage, environnement JavaScript, ...</em>). Nous saurons en tirer profit
quand cela s'avèrera pertinent !</p>
<p>L'éco-système que nous voulons construire tentera de couvrir les cas
d'utilisation qui sont mal adressés par <em>PouchDB</em>. Il se voudra:</p>
<ul>
<li>Basé sur notre protocole très simple ;</li>
<li>Minimaliste et multi-usages (<em>comme la fameuse 2CV</em>) ;</li>
<li>Naïf (<em>pas de rocket science</em>) ;</li>
<li>Sans magie (<em>explicite et facile à réimplémenter from scratch</em>) ;</li>
</ul>
<p><a href="http://cliquet.readthedocs.org/en/latest/rationale.html">La philosophie et les fonctionnalités du toolkit python
Cliquet</a> seront
bien entendu à l'honneur :)</p>
<p>Quant à <em>Remote Storage</em>, dès que le besoin se présentera, nous serons
très fier de rejoindre l'initiative, mais pour l'instant cela nous
paraît risqué de démarrer en tordant la solution.</p>
<h3 id="les-arguments-pratiques">Les arguments pratiques</h3>
<p>Avant d'accepter de déployer une solution à base de <em>CouchDB</em>, les <em>ops</em>
de Mozilla vont nous demander de leur prouver par A+B que ce n'est pas
faisable avec les stacks qui sont déjà rodées en interne (i.e. MySQL,
Redis, PostgreSQL).</p>
<p>De plus, on doit s'engager sur une pérennité d'au moins 5 ans pour les
données. Avec <em>Cliquet</em>, en utilisant le backend PostgreSQL, les données
sont persistées à plat dans un <a href="https://github.com/mozilla-services/cliquet/blob/40aa33/cliquet/storage/postgresql/schema.sql#L14-L28">schéma PostgreSQL tout
bête</a>.
Ce qui ne sera pas le cas d'un adapteur LevelDown qui va manipuler des
notions de révisions éclatées dans un schéma clé-valeur.</p>
<p>Si nous basons le service sur <em>Cliquet</em>, comme c'est le cas avec
<a href="http://kinto.readthedocs.org">Kinto</a>, tout le travail d'automatisation
de la mise en production (<em>monitoring, builds RPM, Puppet...</em>) que nous
avons fait pour <em>Reading List</em> est complètement réutilisable.</p>
<p>De même, si on repart avec une stack complètement différente, nous
allons devoir recommencer tout le travail de rodage, de profiling et
d'optimisation effectué au premier trimestre.</p>
<h2 id="les-prochaines-etapes">Les prochaines étapes</h2>
<p>Et il est encore temps de changer de stratégie :) Nous aimerions avoir
un maximum de retours ! C'est toujours une décision difficile à
prendre... <code>&lt;/appel à troll&gt;</code></p>
<ul>
<li>Tordre un éco-système existant vs. constuire sur mesure ;</li>
<li>Maîtriser l'ensemble vs. s'intégrer ;</li>
<li>Contribuer vs. refaire ;</li>
<li>Guider vs. suivre.</li>
</ul>
<p>Nous avons vraiment l'intention de rejoindre l'initiative
<a href="https://nobackend.org/">no-backend</a>, et ce premier pas n'exclue pas que
nous convergions à terme ! Peut-être que nous allons finir par rendre
notre service compatible avec <em>Remote Storage</em>, et peut-être que
<em>PouchDB</em> deviendra plus agnostique quand au protocole de
synchronisation...</p>
<p><img alt="XKCD Standards
https://xkcd.com/927/" src="%7Bfilename%7D/images/standards.png"></p>
<p>Utiliser ce nouvel écosystème pour le projet « Payments » va nous
permettre de mettre au point un système de permissions (<em>probablement
basé sur les scopes OAuth</em>) qui correspond au besoin exprimé. Et nous
avons bien l'intention de puiser dans <a href="http://blog.daybed.io/daybed-revival.html">notre expérience avec Daybed sur
le sujet</a>.</p>
<p>Nous extrairons aussi le code des clients implémentés pour <em>Reading
List</em> afin de faire un client JavaScript minimaliste.</p>
<p>En partant dans notre coin, nous prenons plusieurs risques:</p>
<ul>
<li>réinventer une roue dont nous n'avons pas connaissance ;</li>
<li>échouer à faire de l'éco-système <em>Cliquet</em> un projet communautaire ;</li>
<li>échouer à positionner <em>Cliquet</em> dans la niche des cas non couverts
par PouchDB :)</li>
</ul>
<p>Comme <a href="http://pouchdb.com/2015/04/05/filtered-replication.html">le dit Giovanni
Ornaghi</a>:</p>
<blockquote>
<p>Rolling out your set of webservices, push notifications, or background
services might give you more control, but at the same time it will
force you to engineer, write, test, and maintain a whole new
ecosystem.</p>
</blockquote>
<p>C'est justement l'éco-système dont est responsable l'équipe <em>Mozilla
Cloud Services</em>!</p>
<ol>
<li>Il existe le <a href="https://sharesome.5apps.com/">projet Sharesome</a> qui
permet de partager publiquement des ressources de son <em>remote
Storage</em>.</li>
</ol>
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Être (le) meilleur ? - Carnets Web</title> <title>Élitisme et apprentissage - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,33 +71,28 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Être (le) meilleur ?</h1> <h1 class="post-title">Élitisme et apprentissage</h1>
<span class="post-date">19 novembre 2017</span> <span class="post-date">01 novembre 2019</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h2 class="post-headline">Quelques réfléxions sur l'élitisme et l'apprentissage.</h2>
<h1>🌟</h1> <h1>🌟</h1>
<p>Au fur et à mesure de mes apprentissages, il y a quelque chose que j'ai du mal à déconstruire: le mythe du meilleur. Moi qui pense qu'ensemble on va plus loin, et que la compétition n'a pas de bons jours devant elle, je me retrouve parfois dans des situations où j'ai une <em>envie</em> de montrer que je suis meilleur, que je sais mieux que mon voisin. Notamment lors de l'apprentissage via mes pairs.</p> <p>Au fur et à mesure de mes apprentissages, il y a quelque chose que j'ai du mal à déconstruire: le mythe du meilleur. Moi qui pense qu'ensemble on va plus loin, et que la compétition n'a pas de bons jours devant elle, je me retrouve parfois dans des situations où j'ai une <em>envie</em> de montrer que je suis meilleur, que je sais mieux que mon voisin. Notamment lors de l'apprentissage via mes pairs.</p>
<p>Dans les domaines dans lesquels je me spécialise (fabrication de bière, informatique et programmation) je me rends compte qu'une certaine forme d'élistisme existe parfois, contrairement aux apparences de surface. Avoir une position de <em>sage</em> flatte mon égo.</p> <p>Dans les domaines dans lesquels je me spécialise (fabrication de bière, informatique et programmation) je me rends compte qu'une certaine forme délitisme existe parfois, contrairement aux apparences de surface. Avoir une position de <em>sage</em> flatte mon égo.</p>
<h2>Bonnes pratiques et élitisme</h2> <h2 id="bonnes-pratiques-et-elitisme">Bonnes pratiques et élitisme</h2>
<p>Il ne faut sûrement pas confondre les bonnes pratiques avec l'élitisme, mais parfois la frontière se fait ténue. En guise d'exemple, dans le domaine du brassage, on va critiquer les personnes qui ne contrôlent pas la température de leurs fermentations alors qu'il s'agit probablement de leur apprentissage personnel. Contrôler cette température est une bonne pratique, qui constitue deux groupes: ceux qui savent et ceux qui ne savent pas.</p> <p>Il ne faut sûrement pas confondre les bonnes pratiques avec l'élitisme, mais parfois la frontière se fait ténue. En guise d'exemple, dans le domaine du brassage, on va critiquer les personnes qui ne contrôlent pas la température de leurs fermentations alors qu'il s'agit probablement de leur apprentissage personnel. Contrôler cette température est une bonne pratique, qui constitue deux groupes: ceux qui savent et ceux qui ne savent pas.</p>
<p>Ceux qui savent vont alors <em>expliquer</em> à ceux qui apprennent, et ceux qui apprennent vont être contents d'apprendre. Il est à mon avis important de garder une posture d'apprenant alors même qu'on a des choses à transmettre. Que faut-il alors faire ? Dois-je garder du recul sur mes avis, ou dois-je les formuler comme étant des avis personnels, a prendre avec des pincettes ?</p> <p>Ceux qui savent vont alors <em>expliquer</em> à ceux qui apprennent, et ceux qui apprennent vont être contents d'apprendre. Il est à mon avis important de garder une posture d'apprenant alors même qu'on a des choses à transmettre. Que faut-il alors faire ? Dois-je garder du recul sur mes avis, ou dois-je les formuler comme étant des avis personnels, a prendre avec des pincettes ?</p>
<h2>Connaître ses limites</h2> <h2 id="connaitre-mes-limites">Connaître mes limites</h2>
<p>Rester dans une position de <em>sachant</em> semble nous pousser à des comportements de fermeture d'esprit. Ce qui caractérise la sagesse est la facultée à se remettre en question. Mais quid des fausses véritées et des <em>avis de surface</em>, de ce que l'on croit connaître ?</p> <p>Rester dans une position de <em>sachant</em> semble me pousser à des comportements de fermeture d'esprit. La « sagesse » serait-elle la faculté à se remettre en question ? Mais quid des « fausses vérités » et des <em>avis de surface</em>, de ce que l'on croit connaître ?</p>
<p>Peut-être que la solution est de connaître ses limites, ou en tout cas de les rechercher et de reconnaître les zones de flou. Personne n'est un expert de tout !</p> <p>Peut-être que la solution est de connaître mes limites, ou en tout cas de les rechercher et de reconnaître mes zones de flou. </p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Faire moins - Carnets Web</title> <title>Faire moins - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -78,7 +78,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -97,11 +97,6 @@ styles, `#sidebar-checkbox` for behavior. -->
<p>Enfin ! Je retrouve ce précieux temps. Je retrouve ces moments d'ennui. Oui, je comprends bien que ça puisse parraître fou de voir quelqu'un se réjouir de son ennui… Cet ennui me permet de creuser de nouvelles idées, de reprendre ce bouquin qu'on avait laissé tomber sans trop de raison.</p> <p>Enfin ! Je retrouve ce précieux temps. Je retrouve ces moments d'ennui. Oui, je comprends bien que ça puisse parraître fou de voir quelqu'un se réjouir de son ennui… Cet ennui me permet de creuser de nouvelles idées, de reprendre ce bouquin qu'on avait laissé tomber sans trop de raison.</p>
<p>Et surtout, c'est se retrouver à contrôler son engagement.</p> <p>Et surtout, c'est se retrouver à contrôler son engagement.</p>
<em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/volzotan/6244232853/in/photolist-avMjT8-5nF6yH-7U9YpL-bLgZ9B-82GPf7-5BjH6W-97LuaK-213Ewhx-hvYrDK-ePi3kf-HdQSPA-vExEiW-6C7S53-4szc8G-e73NyS-c6qJPy-7yjWwX-dG81oE-Xbq8Es-Esydwr-o15XLU-TX22cF-rskoYz-9SHKXe-9p6Mtq-q6u4ng-ePi1qC-7yR2Yy-5hygTA-7Joz7L-G5vNhE-5i8ZAA-DoGdNN-6uosZk-5i8ZvA-4vnyHE-ePhNoE-5xP7Hs-8x97Ai-ngEMxj-9W9Yzp-cPRGaq-nX3na9-9oxLDK-riVzGs-21sCdsN-9jX3Pw-eP6HXK-YuSUE3-qsPGw1">Christopher</a> proposé sous license CC BY NC 2.0. Merci !</em> <em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/volzotan/6244232853/in/photolist-avMjT8-5nF6yH-7U9YpL-bLgZ9B-82GPf7-5BjH6W-97LuaK-213Ewhx-hvYrDK-ePi3kf-HdQSPA-vExEiW-6C7S53-4szc8G-e73NyS-c6qJPy-7yjWwX-dG81oE-Xbq8Es-Esydwr-o15XLU-TX22cF-rskoYz-9SHKXe-9p6Mtq-q6u4ng-ePi1qC-7yR2Yy-5hygTA-7Joz7L-G5vNhE-5i8ZAA-DoGdNN-6uosZk-5i8ZvA-4vnyHE-ePhNoE-5xP7Hs-8x97Ai-ngEMxj-9W9Yzp-cPRGaq-nX3na9-9oxLDK-riVzGs-21sCdsN-9jX3Pw-eP6HXK-YuSUE3-qsPGw1">Christopher</a> proposé sous license CC BY NC 2.0. Merci !</em>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,154 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - Alexis Métaireau, Mathieu Leplatre</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/alexis-metaireau-mathieu-leplatre.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2012-02-04T00:00:00+01:00</updated><entry><title>Thoughts about a form generation service, GIS enabled</title><link href="https://blog.notmyidea.org/carto-forms.html" rel="alternate"></link><published>2012-02-04T00:00:00+01:00</published><updated>2012-02-04T00:00:00+01:00</updated><author><name>Alexis Métaireau, Mathieu Leplatre</name></author><id>tag:blog.notmyidea.org,2012-02-04:/carto-forms.html</id><summary type="html">&lt;p&gt;We have a plan. A &amp;quot;fucking good&amp;quot; one.&lt;/p&gt;
&lt;p&gt;A bunch of friends asked me twice for quite the same thing: a webpage with a
form, tied to a map generation with some information filtering. They didn't
explicitly ask that but that's the gist of it.&lt;/p&gt;
&lt;p&gt;This idea has been stuck …&lt;/p&gt;</summary><content type="html">&lt;p&gt;We have a plan. A &amp;quot;fucking good&amp;quot; one.&lt;/p&gt;
&lt;p&gt;A bunch of friends asked me twice for quite the same thing: a webpage with a
form, tied to a map generation with some information filtering. They didn't
explicitly ask that but that's the gist of it.&lt;/p&gt;
&lt;p&gt;This idea has been stuck in my head since then and I even think that we can
come out with something a little bit more flexible and useful. I've named it
&lt;em&gt;carto-forms&lt;/em&gt; for now, but that's only the &amp;quot;codename&amp;quot;.&lt;/p&gt;
&lt;p&gt;To put it shortly: what if we had a way to build forms, ala Google forms, but
with geographic information in them?&lt;/p&gt;
&lt;p&gt;If you don't know Google forms, it means having an user-friendly way to build
forms and to use them to gather information from different users.&lt;/p&gt;
&lt;p&gt;In my opinion, Google forms is missing two important things: first, it's not
open-source, so it's not possible to hack it or even to run it on your own
server. Second, it doesn't really know how to deal with geographic data, and
there is no way to filter the information more than in a spreadsheet.&lt;/p&gt;
&lt;p&gt;I knew that &lt;a class="reference external" href="http://blog.mathieu-leplatre.info/"&gt;Mathieu&lt;/a&gt; and some folks at &lt;a class="reference external" href="http://makina-corpus.com"&gt;Makina Corpus&lt;/a&gt; would be interested
in this, so I started a discussion with him on IRC and we refined the details
of the project and its objectives.&lt;/p&gt;
&lt;p&gt;Imagine the following:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;For a mapping party, we choose a specific topic to map and design the form
(list of fields (i.e. tags) to be filled + description + type of the
information) ;&lt;/li&gt;
&lt;li&gt;In situ, users fill the form fields with what they see. Geo fields can be
pre-populated using device geolocation ;&lt;/li&gt;
&lt;li&gt;At the end of the day, we can see a map with all user contributions seized
through this particular form ;&lt;/li&gt;
&lt;li&gt;If relevant, a script could eventually import the resulting dataset and
publish/merge with OpenStreetMap.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="section" id="some-use-cases"&gt;
&lt;h2&gt;Some use cases&lt;/h2&gt;
&lt;p&gt;I can see some use cases for this. The first one is a collaborative map, with
facet filtering. Let's draw a potential user flow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p class="first"&gt;An &amp;quot;administrator&amp;quot; goes to the website and creates a form to list all the
alternative-related events. He creates the following fields:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Name: a plain text field containing the name of the event.&lt;/li&gt;
&lt;li&gt;Category: the category of the event. Can be a finite list.&lt;/li&gt;
&lt;li&gt;Location: The location of the event. It could be provided by selecting a
point on a map or by typing an address.&lt;/li&gt;
&lt;li&gt;Date: the date of the event (a datepicker could do the trick)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each field in the form has semantic information associated with it (yes/no,
multiple selection, date-time, geocoding carto, carto selection etc)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Once finished, the form is generated and the user gets an url (say
&lt;a class="reference external" href="http://forms.notmyidea.org/alternatives"&gt;http://forms.notmyidea.org/alternatives&lt;/a&gt;) for it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;REST APIs allow third parties to get the form description and to
push/edit/get information from there.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;He can communicate the address in any way he wants to his community so they
can go to the page and add information to it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Then, it is possible to filter the results per location / date or category.
This can be done via API calls (useful for third parties) or via a nice
interface in the browser.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, as you may have noticed, this would allow us to create interactive maps really
easily. It's almost just a matter of some clicks to the users. If we also come
up with a nice Web API for this, we could do server-side validation and build
even phone applications easily.&lt;/p&gt;
&lt;p&gt;To push the cursor a bit further, if we can come with a cool description format
for the forms, we could even build the forms dynamically on different platforms,
with generic clients.&lt;/p&gt;
&lt;p&gt;As mentioned before, the idea of a simple tool to support collaborative mapping
fullfils a recurring necessity !&lt;/p&gt;
&lt;p&gt;We envision a lot of example uses for this : recycling spots, accessible spots (wheelchairs,
etc.), trees identification, mushrooms picking areas, tracking of endangered species
(e.g. Bonelli's Eagle is currently tracked by sharing a spreadsheet), spotting of dangerous
species (e.g. asian predatory wasps), map advertisement boards (most cities do not track them!),
citizen reporting (e.g. graffiti, potholes, garbage, lightning like &lt;a class="reference external" href="http://fixmystreet.ca"&gt;http://fixmystreet.ca&lt;/a&gt;),
geocaching, trajectories (e.g hiking, runners, cyclists)...&lt;/p&gt;
&lt;p&gt;Here are some other examples of where &lt;em&gt;carto-forms&lt;/em&gt; could be useful:&lt;/p&gt;
&lt;div class="section" id="simple-gis-storage-backend"&gt;
&lt;h3&gt;Simple GIS storage backend&lt;/h3&gt;
&lt;p&gt;Let's say you are a mobile developer, you don't want to bother with PostGIS
nor write a custom and insecure code to insert and retrieve your GIS data! You
need carto-forms! A simple API helps you design your models/forms and the
same API allows you to CRUD and query your data. Thus, you only need to focus
on your application, not on how GIS data will be handled.&lt;/p&gt;
&lt;p&gt;We make a distinction between storage and widgets.&lt;/p&gt;
&lt;p&gt;Besides, if you are a django / drupal / plomino... maintainer : you
can develop a module to &amp;quot;plug&amp;quot; your models (content types) and UI to carto-forms!
Carto forms are then exposed to your backoffice users (ex: drupal admin UI, django
adminsite), and likewise you can write your own HTML widgets that consume datasets
in frontend views (facets in JSON/XML, and map data in GeoJSON).&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="visualization-tool"&gt;
&lt;h3&gt;Visualization tool&lt;/h3&gt;
&lt;p&gt;Since data submission can be done programmatically using the API, you could use Carto-forms
results page as a visualization tool.&lt;/p&gt;
&lt;p&gt;You can explore your dataset content using filters related to each form field. Facets filtering
is a great advantage, and a map shows the resulting features set. You feel like you're in
front of a decision support system!&lt;/p&gt;
&lt;p&gt;Of course, filtered raw data can be downloaded (GeoJSON, XML) and a permalink allows to
share the page with the state of the filters and the zoom/location of the map.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="generic-forms-service"&gt;
&lt;h3&gt;Generic forms service&lt;/h3&gt;
&lt;p&gt;If you want to generate a configuration file (or whatever, email messages, ...),
you will need a form and a template to inlay user submitted values and get the result.&lt;/p&gt;
&lt;p&gt;A form service would be really useful to create forms programmatically and retrieve
cleaned and validated input values.&lt;/p&gt;
&lt;p&gt;You could run a dedicated template service based on &lt;em&gt;carto-forms&lt;/em&gt;! Parsing a template
content, this external service could create a form dynamically and bind them together.
The output of the form service (fields =&amp;gt; values) would be bound to the input of a template
engine (variables =&amp;gt; final result).&lt;/p&gt;
&lt;p&gt;Note that for this use-case, there is no specific need of GIS data nor storage of records
for further retrieval.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="what-s-out-in-the-wild-already"&gt;
&lt;h2&gt;What's out in the wild already?&lt;/h2&gt;
&lt;p&gt;Of course, there is Google forms, which allows you to do these kind of things,
but it's closed and not exactly what we are describing here.&lt;/p&gt;
&lt;p&gt;We've discovered the interesting &lt;a class="reference external" href="https://webform.com/"&gt;https://webform.com/&lt;/a&gt; which allows one to create
forms with a nice drag-n-drop flow. I would love to reproduce something similar
for the user experience. However, the project doesn't handle APIs and
geolocation information.&lt;/p&gt;
&lt;p&gt;The idea of &lt;a class="reference external" href="http://thoth.io"&gt;http://thoth.io&lt;/a&gt; is very attractive : an extremely simple web API to store
and retrieve data. In addition, &lt;em&gt;carto-forms&lt;/em&gt; would do datatype validation and have
basic GIS fields (point, line, polygon).&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://mapbox.com"&gt;http://mapbox.com&lt;/a&gt; also did an awesome work on cartography, but didn't take into
account the form aspect we're leveraging here.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="so-let-s-get-it-real"&gt;
&lt;h2&gt;So… Let's get it real!&lt;/h2&gt;
&lt;p&gt;As you may have understood, this isn't a really complicated problem. We have
been sometimes chatting about that with Mathieu about what we would need and
how we could achieve this.&lt;/p&gt;
&lt;p&gt;We can probably come with an elegant solution without too much pain. Mathieu is
used to work with GIS systems (which is really cool because I'm not at all) and
knows his subject, so that's an opportunity to learn ;-)&lt;/p&gt;
&lt;p&gt;We will be at &lt;a class="reference external" href="http://rencontres.django-fr.org"&gt;Djangocong&lt;/a&gt; on April 14 and 15 and will probably have
a brainstorming session and a sprint on this, so if you are around and want to
help us, or just to discuss, feel free to join!&lt;/p&gt;
&lt;p&gt;We don't know yet if we will be using django for this or something else. We
have been thinking about couchdb, couchapps and geocouch but nothing is written
in stone yet. Comments and proposals are welcome!&lt;/p&gt;
&lt;p&gt;Here is the etherpad document we worked on so far:
&lt;a class="reference external" href="http://framapad.org/carto-forms"&gt;http://framapad.org/carto-forms&lt;/a&gt;. Don't hesitate to add your thoughts and edit
it, that's what it's made for!&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a class="reference external" href="http://sneakernet.fr/"&gt;Arnaud&lt;/a&gt; and &lt;a class="reference external" href="http://qwerty.fuzz.me.uk/"&gt;Fuzzmz&lt;/a&gt; for proof-reading and typo fixing.&lt;/p&gt;
&lt;/div&gt;
</content><category term="GIS"></category><category term="forms"></category></entry></feed>

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Carnets Web - Alexis Métaireau, Mathieu Leplatre</title><link>https://blog.notmyidea.org/</link><description></description><lastBuildDate>Sat, 04 Feb 2012 00:00:00 +0100</lastBuildDate><item><title>Thoughts about a form generation service, GIS enabled</title><link>https://blog.notmyidea.org/carto-forms.html</link><description>&lt;p&gt;We have a plan. A &amp;quot;fucking good&amp;quot; one.&lt;/p&gt;
&lt;p&gt;A bunch of friends asked me twice for quite the same thing: a webpage with a
form, tied to a map generation with some information filtering. They didn't
explicitly ask that but that's the gist of it.&lt;/p&gt;
&lt;p&gt;This idea has been stuck …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau, Mathieu Leplatre</dc:creator><pubDate>Sat, 04 Feb 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-02-04:/carto-forms.html</guid><category>GIS</category><category>forms</category></item></channel></rss>

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Carnets Web - Alexis Métaireau</title><link>https://blog.notmyidea.org/</link><description></description><lastBuildDate>Wed, 03 Jul 2019 00:00:00 +0200</lastBuildDate><item><title>Ours</title><link>https://blog.notmyidea.org/ours.html</link><description>&lt;p&gt;J'ai de plus en plus de mal à garder mon calme dans les situations ou je <rss version="2.0"><channel><title>Alexis - Carnets en ligne - Alexis Métaireau</title><link>https://blog.notmyidea.org/</link><description></description><lastBuildDate>Fri, 01 Nov 2019 00:00:00 +0100</lastBuildDate><item><title>Élitisme et apprentissage</title><link>https://blog.notmyidea.org/elitisme-et-apprentissage.html</link><description>
rencontres des humains qui ont des comportements que je trouve déplacés. Je me &lt;p&gt;Au fur et à mesure de mes apprentissages, il y a quelque chose que j'ai du mal à déconstruire: le mythe du meilleur. Moi qui pense qu'ensemble on va plus loin, et que la compétition n'a pas de bons jours devant elle, je me retrouve parfois dans des situations où …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 01 Nov 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-11-01:/elitisme-et-apprentissage.html</guid></item><item><title>Ours</title><link>https://blog.notmyidea.org/ours.html</link><description>&lt;p&gt;J'ai de plus en plus de mal à garder mon calme dans les situations ou je
demande à quel point le fait d'être maintenant un commerçant impacte ma rencontres des humains qui ont des comportements que je trouve déplacés. Je me demande à quel point le fait d'être maintenant un commerçant impacte ma
capacité relationelle générale.&lt;/p&gt; capacité relationnelle générale.&lt;/p&gt;
&lt;p&gt;De manière plus large, est-ce normal …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 03 Jul 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-07-03:/ours.html</guid></item><item><title>velotaf</title><link>https://blog.notmyidea.org/velotaf.html</link><description>&lt;p&gt;Depuis quelques semaines j'ai décidé d'utiliser le vélo pour aller au boulot. Pas forcement tous les jours, mais dès que les conditions le permettent je n'hésite pas. C'est un vrai plaisir de se déplacer en deux roues, en quasiment silence. Le trajet mets pas loin de 35mn et passe par …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Jun 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-06-27:/velotaf.html</guid></item><item><title>Un espace des communs Rennais ?</title><link>https://blog.notmyidea.org/un-espace-des-communs-rennais.html</link><description>&lt;p&gt;&lt;em&gt;Ce document se veut surtout être quelques notes, et donc revêt un caractère « fouilli » paaaarfaitement assumé. Dailleurs, ce n'est que ce que j'ai bien voulu retenir. Voilà.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;De manière plus large, est-ce normal …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 03 Jul 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-07-03:/ours.html</guid></item><item><title>Vélo</title><link>https://blog.notmyidea.org/velo.html</link><description>&lt;p&gt;Depuis quelques semaines j'ai décidé d'utiliser le vélo pour aller au boulot. Pas forcement tous les jours, mais dès que les conditions le permettent je n'hésite pas.&lt;/p&gt;
&lt;p&gt;C'est un vrai plaisir de se déplacer en deux roues, en quasiment silence. Le trajet mets pas loin de 35mn et passe par …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Jun 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-06-27:/velo.html</guid></item><item><title>Un espace des communs Rennais ?</title><link>https://blog.notmyidea.org/un-espace-des-communs-rennais.html</link><description>&lt;p&gt;&lt;em&gt;Ce document se veut surtout être quelques notes, et donc revêt un caractère « fouilli » paaaarfaitement assumé. Dailleurs, ce n'est que ce que j'ai bien voulu retenir. Voilà.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Je ressors d'une discussion avec quelques complices autour de deux idées : &lt;p&gt;Je ressors d'une discussion avec quelques complices autour de deux idées :
1. Avoir un espace pour fédérer différentes personnes intéressées par le …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 26 Jun 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-06-26:/un-espace-des-communs-rennais.html</guid></item><item><title>De Mozilla à la Brasserie du Vieux Singe</title><link>https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html</link><description>&lt;p&gt;&lt;em&gt;Ce weekend avait lieu &lt;a href="https://sudweb.fr/2018/"&gt;SudWeb&lt;/a&gt; « la conférence Web surtout humaine », ou on m'a proposé de venir parler de ma reconversion professionnelle, ou comment un passionné de Logiciels Libres choisit de créer une petite brasserie artisanale.&lt;/em&gt;&lt;/p&gt; 1. Avoir un espace pour fédérer différentes personnes intéressées par le …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 26 Jun 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-06-26:/un-espace-des-communs-rennais.html</guid></item><item><title>Brasserie - petit bilan, après un an dexistence</title><link>https://blog.notmyidea.org/un-an.html</link><description>&lt;h1 id="la-brasserie-du-vieux-singe-a-un-an"&gt;La brasserie du Vieux Singe a un an !&lt;/h1&gt;
&lt;p&gt;On a l'impression que c'était hier tellement le temps passe vite, mais ça fait un an que notre brasserie existe !&lt;/p&gt;
&lt;p&gt;Alors on lève un peu la tête du guidon question de voir ce qu'on a accompli durant cette première année, et de …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 21 May 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2019-05-21:/un-an.html</guid></item><item><title>De Mozilla à la Brasserie du Vieux Singe</title><link>https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html</link><description>&lt;p&gt;&lt;em&gt;Ce weekend avait lieu &lt;a href="https://sudweb.fr/2018/"&gt;SudWeb&lt;/a&gt; « la conférence Web surtout humaine », ou on m'a proposé de venir parler de ma reconversion professionnelle, ou comment un passionné de Logiciels Libres choisit de créer une petite brasserie artisanale.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Certaines parties de ce que je voulais transmettre sont passées à la trappe, alors que …&lt;/em&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 27 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-05-27:/de-mozilla-a-la-brasserie-du-vieux-singe.html</guid></item><item><title>Groupement d'achats &amp; partage d'expérience</title><link>https://blog.notmyidea.org/groupement-dachats-partage-dexperience.html</link><description>&lt;p&gt;Il y a quelques années, on s'est motivé entre copains copines pour créer un groupement d'achat.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Certaines parties de ce que je voulais transmettre sont passées à la trappe, alors que …&lt;/em&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 27 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-05-27:/de-mozilla-a-la-brasserie-du-vieux-singe.html</guid></item><item><title>Groupement d'achats &amp; partage d'expérience</title><link>https://blog.notmyidea.org/groupement-dachats-partage-dexperience.html</link><description>&lt;p&gt;Il y a quelques années, on s'est motivé entre copains copines pour créer un groupement d'achat.&lt;/p&gt;
&lt;p&gt;L'idée est simple:&lt;/p&gt; &lt;p&gt;L'idée est simple:&lt;/p&gt;
&lt;ul&gt; &lt;ul&gt;
@ -15,55 +18,53 @@ capacité relationelle générale.&lt;/p&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;p&gt;Notre groupement dessert actuellement 18 foyers …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 03 Mar 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-03-03:/groupement-dachats-partage-dexperience.html</guid></item><item><title>Webnotes</title><link>https://blog.notmyidea.org/webnotes.html</link><description>&lt;p&gt;Quand je navigue en ligne, j'aime bien prendre des notes sur ce que je lis. C'est utile pour les retrouver plus tard. Il existe quelques outils pour ce genre de cas, mais j'ai vraiment eu du mal à trouver un outil qui faisais ce que je voulais, de la manière …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 25 Feb 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-02-25:/webnotes.html</guid></item><item><title>Faire moins</title><link>https://blog.notmyidea.org/faire-moins.html</link><description>&lt;p&gt;L'an dernier, j'ai décidé de faire moins de choses, ou plus exactement d'arrêter de faire de nouvelles choses. Choix assez difficile: j'aime découvrir de nouvelles pratiques, échanger sur des sujets que je connais pas, et surtout je crois que découvrir de nouvelles pratiques (sans nécessairement creuser un sujet en particulier …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 19 Feb 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-02-19:/faire-moins.html</guid></item><item><title>NEIPA #3</title><link>https://blog.notmyidea.org/neipa-3.html</link><description>&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Notre groupement dessert actuellement 18 foyers …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 03 Mar 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-03-03:/groupement-dachats-partage-dexperience.html</guid></item><item><title>Webnotes</title><link>https://blog.notmyidea.org/webnotes.html</link><description>&lt;p&gt;Quand je navigue en ligne, j'aime bien prendre des notes sur ce que je lis. C'est utile pour les retrouver plus tard. Il existe quelques outils pour ce genre de cas, mais j'ai vraiment eu du mal à trouver un outil qui faisais ce que je voulais, de la manière …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 25 Feb 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-02-25:/webnotes.html</guid></item><item><title>Faire moins</title><link>https://blog.notmyidea.org/faire-moins.html</link><description>&lt;p&gt;L'an dernier, j'ai décidé de faire moins de choses, ou plus exactement d'arrêter de faire de nouvelles choses. Choix assez difficile: j'aime découvrir de nouvelles pratiques, échanger sur des sujets que je connais pas, et surtout je crois que découvrir de nouvelles pratiques (sans nécessairement creuser un sujet en particulier …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 19 Feb 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2018-02-19:/faire-moins.html</guid></item><item><title>NEIPA #3</title><link>https://blog.notmyidea.org/neipa-3.html</link><description>&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Test autour d'une New England Pale Ale; Cette fois ci avec du Mosaic et du Citra, durant une collab' avec Heiko.&lt;/p&gt; &lt;p&gt;Test autour d'une New England Pale Ale; Cette fois ci avec du Mosaic et du Citra, durant une collab' avec Heiko.&lt;/p&gt;
&lt;h1&gt;Objectifs:&lt;/h1&gt; &lt;h1 id="objectifs"&gt;Objectifs:&lt;/h1&gt;
&lt;ul&gt; &lt;ul&gt;
&lt;li&gt;Brasser une nouvelle NEIPA en appliquant les …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 29 Dec 2017 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-12-29:/neipa-3.html</guid></item><item><title>NEIPA #2</title><link>https://blog.notmyidea.org/neipa-2.html</link><description>&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt; &lt;li&gt;Brasser une nouvelle NEIPA en appliquant les …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 29 Dec 2017 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-12-29:/neipa-3.html</guid></item><item><title>NEIPA #2</title><link>https://blog.notmyidea.org/neipa-2.html</link><description>&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;Objectifs:&lt;/h1&gt; &lt;h1 id="objectifs"&gt;Objectifs&lt;/h1&gt;
&lt;ul&gt; &lt;ul&gt;
&lt;li&gt;Corriger les erreurs du précédent brassin.&lt;/li&gt; &lt;li&gt;Corriger les erreurs du précédent brassin.&lt;/li&gt;
&lt;li&gt;Éviter les soucis de filtration&lt;/li&gt; &lt;li&gt;Éviter les soucis de filtration&lt;/li&gt;
&lt;li&gt;Mieux corriger le pH&lt;/li&gt; &lt;li&gt;Mieux corriger le pH&lt;/li&gt;
&lt;li&gt;Faire un whirlpool digne de ce nom / avoir moins de trub dans le …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 18 Dec 2017 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-12-18:/neipa-2.html</guid></item><item><title>Un club des brasseurs amateurs Rennais</title><link>https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html</link><description>&lt;p&gt;En Mars dernier, suite à quelques discussions entre brasseurs amateurs, on à décidé de monter &lt;a href="https://framalistes.org/sympa/subscribe/brassam-rennes"&gt;une liste de diffusion&lt;/a&gt; pour faciliter les échanges autour du brassage amateur sur Rennes et ses alentours.&lt;/p&gt; &lt;li&gt;Faire un whirlpool digne de ce nom / avoir moins de trub dans le …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 18 Dec 2017 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-12-18:/neipa-2.html</guid></item><item><title>L'arrivée du trouble (ou comment faire des NEIPA ?)</title><link>https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html</link><description>&lt;p&gt;&lt;strong&gt;Ceci est une traduction d'un article paru dans le magazine « Brew Your Own » en Octobre 2016, écrit par Dave Green&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un peu plus tard, &lt;a href="https://www.facebook.com/groups/899071153568179/"&gt;un groupe Facebook&lt;/a&gt; est venu s'ajouter, et c'est vrai qu'on sent une dynamique naissante&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 06 Nov 2017 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-11-06:/un-club-des-brasseurs-amateurs-rennais.html</guid></item><item><title>L'arrivée du trouble (ou comment faire des NEIPA ?)</title><link>https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html</link><description>&lt;p&gt;&lt;strong&gt;Ceci est une traduction d'un article paru dans le magazine « Brew Your Own » en Octobre 2016, écrit par Dave Green&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;C'est la saison des élections aux états unis et la bataille entre les partis politiques semble être plus controversée que d'habitude. Coincidemment, les buveurs de bières « Craft» US semblent avoir&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 17 Oct 2017 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-10-17:/larrivee-du-trouble-ou-comment-faire-des-neipa.html</guid></item><item><title>Un club des brasseurs amateurs Rennais</title><link>https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html</link><description>&lt;p&gt;En Mars dernier, suite à quelques discussions entre brasseurs amateurs, on à décidé de monter &lt;a href="https://framalistes.org/sympa/subscribe/brassam-rennes"&gt;une liste de diffusion&lt;/a&gt; pour faciliter les échanges autour du brassage amateur sur Rennes et ses alentours.&lt;/p&gt;
&lt;p&gt;C'est la saison des élections aux états unis et la bataille entre les partis politiques semble être plus controversée que d'habitude. Coincidemment, les buveurs de bières « Craft» US semblent avoir&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 17 Oct 2017 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-10-17:/larrivee-du-trouble-ou-comment-faire-des-neipa.html</guid></item><item><title>Brasserie du Vieux Singe — Installation en cours.</title><link>https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html</link><description>&lt;p&gt;Ça fait maintenant quelques mois que j'ai décidé de &lt;a href="https://www.vieuxsinge.com"&gt;changer de métier&lt;/a&gt;. Choix à la fois difficile et excitant. Une rupture qui laisse place à quelques étoiles dans les yeux. Enfin, je retrouve l'envie de créer, et je renoue avec mes rêves, ceux-la mêmes que je croyaient trop fous pour …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 26 Jun 2017 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-06-26:/brasserie-du-vieux-singe-installation-en-cours.html</guid></item><item><title>Comment est-ce que vous générez vos formulaires ?</title><link>https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html</link><description>&lt;p&gt;TL; DR: Je viens à peine de &lt;em&gt;releaser&lt;/em&gt; la première version d'un service de génération de formulaires. &lt;p&gt;Un peu plus tard, &lt;a href="https://www.facebook.com/groups/899071153568179/"&gt;un groupe Facebook&lt;/a&gt; est venu s'ajouter, et c'est vrai qu'on sent une dynamique naissante&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 06 Oct 2017 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-10-06:/un-club-des-brasseurs-amateurs-rennais.html</guid></item><item><title>Brasserie du Vieux Singe — Installation en cours.</title><link>https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html</link><description>&lt;p&gt;Ça fait maintenant quelques mois que j'ai décidé de &lt;a href="https://www.vieuxsinge.com"&gt;changer de métier&lt;/a&gt;. Choix à la fois difficile et excitant. Une rupture qui laisse place à quelques étoiles dans les yeux. Enfin, je retrouve l'envie de créer, et je renoue avec mes rêves, ceux-la mêmes que je croyaient trop fous pour …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 26 Jun 2017 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2017-06-26:/brasserie-du-vieux-singe-installation-en-cours.html</guid></item><item><title>Comment est-ce que vous générez vos formulaires ?</title><link>https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html</link><description>&lt;p&gt;TL; DR: Je viens à peine de &lt;em&gt;releaser&lt;/em&gt; la première version d'un service de génération de formulaires.
Allez jeter un coup d'œil sur &lt;a href="https://www.fourmilieres.net"&gt;https://www.fourmilieres.net&lt;/a&gt;&lt;/p&gt; Allez jeter un coup d'œil sur &lt;a href="https://www.fourmilieres.net"&gt;https://www.fourmilieres.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;En février 2012, je parlais ici &lt;a href="https://blog.notmyidea.org/carto-forms.html"&gt;d'un service de génération de formulaires&lt;/a&gt;. &lt;p&gt;&lt;em&gt;En février 2012, je parlais ici &lt;a href="https://blog.notmyidea.org/carto-forms.html"&gt;d'un service de génération de formulaires&lt;/a&gt;.
Depuis, pas mal d'eau à coulé sous les ponts, on est …&lt;/em&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 31 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-05-31:/comment-est-ce-que-vous-generez-vos-formulaires.html</guid></item><item><title>Cloisonnement des activités ?</title><link>https://blog.notmyidea.org/cloisonnement-des-activites.html</link><description>&lt;p&gt;Je vous écris depuis un train, en rentrant de Bordeaux où j'ai passé quelques Depuis, pas mal d'eau à coulé sous les ponts, on est …&lt;/em&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 31 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-05-31:/comment-est-ce-que-vous-generez-vos-formulaires.html</guid></item><item><title>Cloisonnement des activités ?</title><link>https://blog.notmyidea.org/cloisonnement-des-activites.html</link><description>&lt;p&gt;Je vous écris depuis un train, en rentrant de Bordeaux où j'ai passé quelques
jours à l'occasion de &lt;a href="http://sudweb.fr/"&gt;SudWeb&lt;/a&gt;. Si vous ne connaissez pas jours à l'occasion de &lt;a href="http://sudweb.fr/"&gt;SudWeb&lt;/a&gt;. Si vous ne connaissez pas
cette conférence, il s'agit d'un moment avec des gens chouettes qui se posent cette conférence, il s'agit d'un moment avec des gens chouettes qui se posent
des questions sur leur metier, comment le vivre et comment continuer à en …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 29 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-05-29:/cloisonnement-des-activites.html</guid></item><item><title>Avez vous confiance en SSL?</title><link>https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html</link><description>&lt;p&gt;Dans le cadre &lt;a href="http://autodefense-numerique.readthedocs.org/en/latest/"&gt;des ateliers d'autodéfense numérique&lt;/a&gt;, des questions sur leur metier, comment le vivre et comment continuer à en …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 25 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-05-25:/cloisonnement-des-activites.html</guid></item><item><title>Avez vous confiance en SSL?</title><link>https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html</link><description>&lt;p&gt;Dans le cadre &lt;a href="http://autodefense-numerique.readthedocs.org/en/latest/"&gt;des ateliers d'autodéfense numérique&lt;/a&gt;,
j'ai passé un peu de temps à creuser sur l'utilisation de SSL puisque j'ai passé un peu de temps à creuser sur l'utilisation de SSL puisque
contrairement à ce que la plupart des personnes ont encore tendance à croire, contrairement à ce que la plupart des personnes ont encore tendance à croire,
le petit cadenas (qui prouve qu'une connexion SSL est en cours) n'est le petit cadenas (qui prouve qu'une connexion SSL est en cours) n'est
&lt;strong&gt;absolument&lt;/strong&gt; pas suffisant.&lt;/p&gt; &lt;strong&gt;absolument&lt;/strong&gt; pas suffisant.&lt;/p&gt;
&lt;p&gt;Allez hop …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 25 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-25:/avez-vous-confiance-en-ssl.html</guid></item><item><title>Focusing on what matters</title><link>https://blog.notmyidea.org/focusing-on-what-matters.html</link><description>&lt;p&gt;I do have a problem with information.&lt;/p&gt; &lt;p&gt;Allez hop …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 25 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-25:/avez-vous-confiance-en-ssl.html</guid></item><item><title>Focusing on what matters</title><link>https://blog.notmyidea.org/focusing-on-what-matters.html</link><description>&lt;p&gt;I do have a problem with information.&lt;/p&gt;
&lt;p&gt;You know. I &lt;strong&gt;have&lt;/strong&gt; to check my emails, irc, twitter, my feed reader etc. &lt;p&gt;You know. I &lt;strong&gt;have&lt;/strong&gt; to check my emails, irc, twitter, my feed reader
I need to.&lt;/p&gt; etc. I need to.&lt;/p&gt;
&lt;p&gt;And this thing makes me feel uncomfortable at the end of the day, because I &lt;p&gt;And this thing makes me feel uncomfortable at the end of the day,
feel that I missed something. That I missed some good time …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 17 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-17:/focusing-on-what-matters.html</guid><category>focus</category><category>time-management</category></item><item><title>Retours sur un atelier ZeroNet</title><link>https://blog.notmyidea.org/retours-sur-un-atelier-zeronet.html</link><description>&lt;p&gt;Mardi dernier se tenait &lt;a href="http://biblio.insa-rennes.fr/crypto"&gt;une &lt;em&gt;cryptoparty&lt;/em&gt;&lt;/a&gt; because I feel that I missed something. That I missed some good time …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 17 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-17:/focusing-on-what-matters.html</guid></item><item><title>Retours sur un atelier ZeroNet</title><link>https://blog.notmyidea.org/retours-sur-un-atelier-zeronet.html</link><description>&lt;p&gt;Mardi dernier se tenait &lt;a href="http://biblio.insa-rennes.fr/crypto"&gt;une &lt;em&gt;cryptoparty&lt;/em&gt;&lt;/a&gt; dans les locaux de l'INSA de Rennes.&lt;/p&gt;
dans les locaux de l'INSA de Rennes.&lt;/p&gt;
&lt;p&gt;L'évènement s'étant rempli au delà de toutes les espérances, on m'a proposé de &lt;p&gt;L'évènement s'étant rempli au delà de toutes les espérances, on m'a proposé de
venir y tenir un atelier, que j'ai proposé sur &lt;a href="https://zeronet.io"&gt;ZeroNet&lt;/a&gt;, un venir y tenir un atelier, que j'ai proposé sur &lt;a href="https://zeronet.io"&gt;ZeroNet&lt;/a&gt;, un
petit projet fort sympathique qui pourrait devenir une nouvelle manière de petit projet fort sympathique qui pourrait devenir une nouvelle manière de
distribuer le …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 17 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-17:/retours-sur-un-atelier-zeronet.html</guid></item><item><title>L'horizon</title><link>https://blog.notmyidea.org/lhorizon.html</link><description>&lt;blockquote class="epigraph"&gt; distribuer le …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 17 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-17:/retours-sur-un-atelier-zeronet.html</guid></item><item><title>L'horizon</title><link>https://blog.notmyidea.org/lhorizon.html</link><description>&lt;p&gt;headline : Temps de changer d'horizon. Mon départ de Mozilla et le début d'une nouvelle histoire.
L'Utopie, c'est l'horizon. C'est ce qui permet d'avoir une direction, de image : images/horizon.jpg&lt;/p&gt;
mettre un pied devant l'autre, de savoir vers où marcher.&lt;/blockquote&gt; &lt;blockquote&gt;
&lt;p&gt;Il y a presque 4 ans et demi, je commençais à travailler, en décembre, pour &lt;p&gt;L'Utopie, c'est l'horizon. C'est ce qui permet d'avoir une direction,
Mozilla. Je me rappelle bien de ces premiers instants un peu magiques, qui ont …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 02 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-02:/lhorizon.html</guid></item><item><title>Let's Encrypt + HAProxy</title><link>https://blog.notmyidea.org/lets-encrypt-haproxy.html</link><description>&lt;blockquote class="epigraph"&gt; de mettre un pied devant l'autre, de savoir vers où marcher.&lt;/p&gt;
&lt;p&gt;Its time for the Web to take a big step forward in terms of security and
privacy. We want to see HTTPS become the default. Lets Encrypt was built
to enable that by making it as easy as possible to get and manage
certificates.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="https://letsencrypt.org/"&gt;Let's Encrypt&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt; &lt;/blockquote&gt;
&lt;p&gt;Depuis début …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 11 Feb 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-02-11:/lets-encrypt-haproxy.html</guid></item><item><title>Ateliers d'autodéfense numérique</title><link>https://blog.notmyidea.org/ateliers-dautodefense-numerique.html</link><description>&lt;p&gt;Il y a huit mois, je me rendais compte de l'importance du choix des outils pour &lt;p&gt;Il y a presque 4 ans et demi, je commençais …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 02 Mar 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-03-02:/lhorizon.html</guid></item><item><title>Let's Encrypt + HAProxy</title><link>https://blog.notmyidea.org/lets-encrypt-haproxy.html</link><description>&lt;p&gt;&lt;em&gt;Note : Cet article n'est plus à jour. Il est maintenant (2018) possible d'installer des certificats SSL Let's Encrypt d'une manière beaucoup plus simple, en utilisant certbot (et le plugin nginx &lt;code&gt;certbot --nginx&lt;/code&gt;).&lt;/em&gt;&lt;/p&gt;
faire face à la surveillance généralisée, et notamment en rapport au &lt;blockquote&gt;
chiffrement des données. Une de mes envies de l'époque était l'animation &lt;p&gt;Its time for the Web to take a big step forward in terms of security
d'ateliers.&lt;/p&gt; and privacy …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 11 Feb 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-02-11:/lets-encrypt-haproxy.html</guid></item><item><title>Ateliers d'autodéfense numérique</title><link>https://blog.notmyidea.org/ateliers-dautodefense-numerique.html</link><description>&lt;p&gt;Il y a huit mois, je me rendais compte de l'importance du choix des
&lt;blockquote class="epigraph"&gt; outils pour faire face à la surveillance généralisée, et notamment en
rapport au chiffrement des données. Une de mes envies de l'époque était
l'animation d'ateliers.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Je compte donc:&lt;/p&gt; &lt;p&gt;Je compte donc:&lt;/p&gt;
&lt;ul class="simple"&gt; &lt;ul&gt;
&lt;li&gt;Organiser des ateliers de sensibilisation aux outils de …&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 14 Jan 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-01-14:/ateliers-dautodefense-numerique.html</guid></item><item><title>Rencontres python francophones, 2015</title><link>https://blog.notmyidea.org/rencontres-python-francophones-2015.html</link><description>&lt;p&gt;J'ai pris quelques notes durant la conférence annuelle de PyconFR, qui avait &lt;li&gt;Organiser des ateliers de sensibilisation aux outils de …&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 14 Jan 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2016-01-14:/ateliers-dautodefense-numerique.html</guid></item><item><title>Le mail doit-il mourir ?</title><link>https://blog.notmyidea.org/le-mail-doit-il-mourir.html</link><description>&lt;p&gt;J'utilise quotidiennement le protocole email, tant bien que mal, tout en sachant que l'ensemble de mes messages passent en clair sur le réseau pour la plupart de mes conversations, puisque trop peu de monde utilise le chiffrement des messages.&lt;/p&gt;
&lt;p&gt;Et même si j'arrive à convaincre certains de mes proches à …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 24 Nov 2015 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-11-24:/le-mail-doit-il-mourir.html</guid></item><item><title>Rencontres python francophones, 2015</title><link>https://blog.notmyidea.org/rencontres-python-francophones-2015.html</link><description>&lt;p&gt;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 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 ont suivi. Je prends maintenant un peu plus de temps pour ranger toutes ces
notes au bon endroit.&lt;/p&gt; notes au bon endroit.&lt;/p&gt;
@ -133,72 +134,135 @@ souhaitiez comprendre ce que va etre produit.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Prise de notes: Gordon et Alexis&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Prise de notes: Gordon et Alexis&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Présent·e·s: Jean Phillipe, Laurence (Directrice de l'école qui acueille la &lt;p&gt;&lt;strong&gt;Présent·e·s: Jean Phillipe, Laurence (Directrice de l'école qui acueille la
Pycon), Amandine, Vivianne, Anna (de django carrots) + representes de django Pycon), Amandine, Vivianne, Anna (de django carrots) + representes de django
girls bordeaux (Laurenne et …&lt;/strong&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 17 Oct 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-10-17:/pyconfr-2015-table-ronde-diversite.html</guid></item><item><title>Web distribution signing</title><link>https://blog.notmyidea.org/web-distribution-signing.html</link><description>&lt;div class="admonition note"&gt; girls bordeaux (Laurenne et …&lt;/strong&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 17 Oct 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-10-17:/pyconfr-2015-table-ronde-diversite.html</guid></item><item><title>Web distribution signing</title><link>https://blog.notmyidea.org/web-distribution-signing.html</link><description>&lt;p&gt;&lt;em&gt;I'm not a crypto expert, nor pretend to be one. These are thoughts I
&lt;p class="first admonition-title"&gt;Note&lt;/p&gt; want to share with the crypto community to actually see if any solution
&lt;p class="last"&gt;I'm not a crypto expert, nor pretend to be one. These are thoughts exists to solve this particular problem.&lt;/em&gt;&lt;/p&gt;
I want to share with the crypto community to actually see if any &lt;p&gt;One &lt;a href="http://www.tonyarcieri.com/whats-wrong-with-webcrypto"&gt;often pointed&lt;/a&gt; flaw in
solution exists to solve this particular problem.&lt;/p&gt; web-based cryptographic applications is the fact that there is no way to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 12 Oct 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-10-12:/web-distribution-signing.html</guid></item><item><title>Service de nuages : Pourquoi avons-nous fait Cliquet ?</title><link>https://blog.notmyidea.org/pourquoi-cliquet</link><description>&lt;p class="first last"&gt;Basé sur Pyramid, Cliquet est un projet qui permet de se concentrer sur l'essentiel
&lt;/div&gt; lors de la conception d'APIs.&lt;/p&gt;
&lt;p&gt;One &lt;a class="reference external" href="http://www.tonyarcieri.com/whats-wrong-with-webcrypto"&gt;often pointed&lt;/a&gt; </description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 14 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-07-14:/pourquoi-cliquet</guid></item><item><title>Charte et événements non-mixtes au sein de l'Afpy</title><link>https://blog.notmyidea.org/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html</link><description>
flaw in web-based cryptographic applications is the fact that there is no way …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 12 Oct 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-10-12:/web-distribution-signing.html</guid></item><item><title>Rôles</title><link>https://blog.notmyidea.org/roles.html</link><description>&lt;blockquote class="epigraph"&gt; &lt;p&gt;&lt;em&gt;Mail envoyé sur la liste de diffusion de l'AFPY en Juillet 2015&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Un […] dispositifconsiste à tenter de faire bouger les rôles (pré)acquis &lt;p&gt;Bonjour à toutes et tous,&lt;/p&gt;
ou qui se fixent dans le groupe, les pousser ailleurs que là où ils ont &lt;p&gt;Récemment, l'Afpy à pris la décision de ne pas relayer la tenue d'un
pris lhabitude de se réfugier suivant leur pente « naturelle ».&lt;/p&gt; événement non-mixte d'apprentissage de Python organisé par PyLadies [0].&lt;/p&gt;
&lt;p&gt;Pour ce faire, le groupe prendra du temps pour identifier les types de …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 29 Jun 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-06-29:/roles.html</guid></item><item><title>Les problèmes de PGP</title><link>https://blog.notmyidea.org/les-problemes-de-pgp.html</link><description>&lt;blockquote class="epigraph"&gt; &lt;p&gt;La raison est le fait que la tenue d'un tel événement …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 09 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-07-09:/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html</guid></item><item><title>Service de nuages : Perspectives pour l'été</title><link>https://blog.notmyidea.org/service-de-nuages-perspectives-pour-lete-fr.html</link><description>&lt;p class="first last"&gt;Le travail en cours et les fonctionnalités à venir pour les prochains mois.&lt;/p&gt;
&lt;p&gt;Flip a bit in the communication between sender and recipient and they will </description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 07 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-07-07:/service-de-nuages-perspectives-pour-lete-fr.html</guid></item><item><title>Rôles</title><link>https://blog.notmyidea.org/roles.html</link><description>&lt;p&gt;Headline : De l'importance des rôles informels et de leur partage au sein d'un groupe.&lt;/p&gt;
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?&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="http://secushare.org/PGP"&gt;http://secushare.org/PGP&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une fois …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 25 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-25:/les-problemes-de-pgp.html</guid></item><item><title>Travail et créativité</title><link>https://blog.notmyidea.org/travail-et-creativite.html</link><description>&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Low-risk, low-pressure, and love: The 3 rules of side projects.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="https://open.bufferapp.com/side-projects-creative-hobbies/"&gt;The science of side projects&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Je ne m'étais jamais fais la remarque, mais les projets dont je suis le plus
fier sont effectivement des &lt;em&gt;side projects&lt;/em&gt;. Des projets que j'ai commencé
parce que j'en avais l'envie et le temps, qui …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 21 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-21:/travail-et-creativite.html</guid></item><item><title>Simplifier les preuves d'identités</title><link>https://blog.notmyidea.org/simplifier-les-preuves-didentites.html</link><description>&lt;p&gt;L'un des problèmes non réellement résolu actuellement quant au chiffrement des
échanges est lié à l'authenticité des clés. Si quelqu'un décide de publier une
clé en mon nom, et en utilisant mon adresse email, cela lui est assez facile.&lt;/p&gt;
&lt;p&gt;Il est donc nécessaire d'avoir des moyens de prouver que la …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 11 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-11:/simplifier-les-preuves-didentites.html</guid></item><item><title>Phrases de passe et bonnes pratiques</title><link>https://blog.notmyidea.org/phrases-de-passe-et-bonnes-pratiques.html</link><description>&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Au contraire des autres mots de passe, les mots de passe cryptographiques
ont specifiquement besoin d'être longs et extremement difficiles à deviner.
La raison est qu'un ordinateur (ou un cluster de plusieurs ordinateurs)
peut être programmé pour faire des trillions d'essais de manière
automatique. Si le mot de passe choisi …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 09 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-09:/phrases-de-passe-et-bonnes-pratiques.html</guid></item><item><title>Chiffrement</title><link>https://blog.notmyidea.org/chiffrement.html</link><description>&lt;blockquote class="epigraph"&gt;
&lt;p&gt;En france, depuis le 5 Mai 2015, il est possible au Premier Ministre de
surveiller massivement et sans contrôle la population française.&lt;/p&gt;
&lt;p&gt;le projet de loi n'a pas été significativement amendé en séance mi-avril,
et ses dispositions dangereuses ont été conservées :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Élargissement des finalités du renseignement, permettant une &lt;strong&gt;potentielle
mise …&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 08 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-08:/chiffrement.html</guid></item><item><title>Language</title><link>https://blog.notmyidea.org/language.html</link><description>&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Nous savons tous que le fait d'obliger les fonctionnaires internationaux,
diplomates ou ministres à s'exprimer dans une langue qui n'est pas la leur
équivaut à les placer en situation d'infériorité. &lt;strong&gt;Cela les prive de la
capacité de nuance et de raffinement&lt;/strong&gt;, ce qui revient à faire des
concessions à ceux …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 01 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-01:/language.html</guid></item><item><title>Le secret du bonheur</title><link>https://blog.notmyidea.org/le-secret-du-bonheur.html</link><description>&lt;p&gt;Un enfant demande à son père :&lt;/p&gt;
&lt;blockquote&gt; &lt;blockquote&gt;
Dis papa, quel est le secret pour être heureux ?&lt;/blockquote&gt; &lt;p&gt;Un […] dispositifconsiste à tenter de faire bouger les rôles
&lt;p&gt;Sans dire un mot, le père demande à son fils de le suivre ; (pré)acquis ou qui se fixent dans le groupe, les pousser ailleurs que
Ils sortent de la maison, le père sur leur vieil âne et le fils suivant à pied.&lt;/p&gt; là où ils ont pris lhabitude de se réfugier suivant leur pente …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 29 Jun 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-06-29:/roles.html</guid></item><item><title>Service de nuages : Stocker et interroger les permissions avec Kinto</title><link>https://blog.notmyidea.org/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html</link><description>&lt;p class="first last"&gt;Comment faire pour stocker et interroger la base de données au sujet des permissions avec Kinto ?&lt;/p&gt;
&lt;p&gt;Et les gens du village …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Nov 2014 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-11-20:/le-secret-du-bonheur.html</guid></item><item><title>What's Hawk and how to use it?</title><link>https://blog.notmyidea.org/whats-hawk-and-how-to-use-it.html</link><description>&lt;p&gt;At Mozilla, we recently had to implement &lt;a class="reference external" href="https://github.com/hueniverse/hawk"&gt;the Hawk authentication scheme&lt;/a&gt; for a number of projects, and we came up </description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 26 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-26:/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html</guid></item><item><title>Les problèmes de PGP</title><link>https://blog.notmyidea.org/les-problemes-de-pgp.html</link><description>&lt;blockquote&gt;
creating two libraries to ease integration into pyramid and node.js apps.&lt;/p&gt; &lt;p&gt;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?&lt;/p&gt;
&lt;p&gt;-- &lt;a href="http://secushare.org/PGP"&gt;http://secushare.org/PGP&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une fois …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 25 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-25:/les-problemes-de-pgp.html</guid></item><item><title>Travail et créativité</title><link>https://blog.notmyidea.org/travail-et-creativite.html</link><description>
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;headline&lt;br&gt;
Travailler moins pour laisser plus de place à la créativité.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;category&lt;br&gt;
thoughts&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Low-risk, low-pressure, and love: The 3 rules of side projects.&lt;/p&gt;
&lt;p&gt;-- &lt;a href="https://open.bufferapp.com/side-projects-creative-hobbies/"&gt;The science of side
projects&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Je ne m'étais jamais fais la remarque, mais les projets dont je suis le
plus fier sont effectivement des &lt;em&gt;side projects&lt;/em&gt;. Des …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 21 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-21:/travail-et-creativite.html</guid></item><item><title>Simplifier les preuves d'identités</title><link>https://blog.notmyidea.org/simplifier-les-preuves-didentites.html</link><description>
&lt;ul&gt;
&lt;li&gt;headline&lt;br&gt;
Qu'est-ce que Keybase.io et comment essayent-ils de simplifier la
création de preuves d'identité.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L'un des problèmes non réellement résolu actuellement quant au
chiffrement des échanges est lié à l'authenticité des clés. Si quelqu'un
décide de publier une clé en mon nom, et en utilisant mon adresse email,
cela …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 11 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-11:/simplifier-les-preuves-didentites.html</guid></item><item><title>Phrases de passe et bonnes pratiques</title><link>https://blog.notmyidea.org/phrases-de-passe-et-bonnes-pratiques.html</link><description>
&lt;ul&gt;
&lt;li&gt;headline&lt;br&gt;
Communiquer de manière chiffrée n'est pas aisée, et nécessite de
mémoriser des phrases de passes complexes. Comment s'en sortir ?&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Au contraire des autres mots de passe, les mots de passe
cryptographiques ont specifiquement besoin d'être longs et extremement
difficiles à deviner. La raison est qu'un ordinateur (ou un cluster …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 09 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-09:/phrases-de-passe-et-bonnes-pratiques.html</guid></item><item><title>Chiffrement</title><link>https://blog.notmyidea.org/chiffrement.html</link><description>
&lt;ul&gt;
&lt;li&gt;headline&lt;br&gt;
Face a la surveillance généralisée, une seule solution, le
chiffrement de nos données et communications.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;En france, depuis le 5 Mai 2015, il est possible au Premier Ministre
de surveiller massivement et sans contrôle la population française.&lt;/p&gt;
&lt;p&gt;le projet de loi n'a pas été significativement amendé en séance
mi-avril …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 08 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-08:/chiffrement.html</guid></item><item><title>Language</title><link>https://blog.notmyidea.org/language.html</link><description>&lt;p&gt;headline : Nos langues peuvent être autant de frontières que de ponts...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nous savons tous que le fait d'obliger les fonctionnaires
internationaux, diplomates ou ministres à s'exprimer dans une langue
qui n'est pas la leur équivaut à les placer en situation
d'infériorité. &lt;strong&gt;Cela les prive de la capacité de nuance et …&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 01 May 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-05-01:/language.html</guid></item><item><title>Eco-système et stockage générique</title><link>https://blog.notmyidea.org/eco-systeme-et-stockage-generique.html</link><description>
&lt;p&gt;&lt;strong&gt;tl;dr Nous devons construire un service de suivi de paiements, et nous
hésitons à continuer à nous entêter avec notre propre solution de
stockage/synchronisation.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Comme nous l'écrivions &lt;a href="%7Bfilename%7D/2015.04.service-de-nuages.rst"&gt;dans l'article
précédent&lt;/a&gt;, nous
souhaitons construire une solution de stockage générique. On refait
&lt;a href="http://daybed.readthedocs.org"&gt;Daybed&lt;/a&gt; chez Mozilla !&lt;/p&gt;
&lt;p&gt;Notre objectif est simple: permettre …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 30 Apr 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-04-30:/eco-systeme-et-stockage-generique.html</guid></item><item><title>Le secret du bonheur</title><link>https://blog.notmyidea.org/le-secret-du-bonheur.html</link><description>
&lt;p&gt;Un enfant demande à son père :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Dis papa, quel est le secret pour être heureux ?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sans dire un mot, le père demande à son fils de le suivre ; Ils sortent
de la maison, le père sur leur vieil âne et le fils suivant à pied.&lt;/p&gt;
&lt;p&gt;Et les gens du village …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Nov 2014 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-11-20:/le-secret-du-bonheur.html</guid></item><item><title>What's Hawk and how to use it?</title><link>https://blog.notmyidea.org/whats-hawk-and-how-to-use-it.html</link><description>
&lt;p&gt;At Mozilla, we recently had to implement &lt;a href="https://github.com/hueniverse/hawk"&gt;the Hawk authentication
scheme&lt;/a&gt; for a number of projects,
and we came up creating two libraries to ease integration into pyramid
and node.js apps.&lt;/p&gt;
&lt;p&gt;But maybe you don't know Hawk.&lt;/p&gt; &lt;p&gt;But maybe you don't know Hawk.&lt;/p&gt;
&lt;p&gt;Hawk is a relatively new technology, crafted by one of the original …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 31 Jul 2014 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-07-31:/whats-hawk-and-how-to-use-it.html</guid></item><item><title>Quel métier, quelle utilité ?</title><link>https://blog.notmyidea.org/quel-metier-quelle-utilite.html</link><description>&lt;p&gt;Aujourd'hui, mon métier est d'être développeur d'applications. Imaginer des &lt;p&gt;Hawk is a relatively new technology, crafted by one of the original …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 31 Jul 2014 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-07-31:/whats-hawk-and-how-to-use-it.html</guid></item><item><title>Quel métier, quelle utilité ?</title><link>https://blog.notmyidea.org/quel-metier-quelle-utilite.html</link><description>
solutions techniques pour faire marcher des logiciels, puis écrire les lignes &lt;p&gt;Aujourd'hui, mon métier est d'être développeur d'applications. Imaginer
de code nécessaires.&lt;/p&gt; des solutions techniques pour faire marcher des logiciels, puis écrire
&lt;p&gt;Être Développeur n'est pas un métier qui a du sens en lui même (comme peut les lignes de code nécessaires.&lt;/p&gt;
l'être le métier d'instituteur/rice par exemple). Tout comme lorsque l'on est …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 29 Jul 2014 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-07-29:/quel-metier-quelle-utilite.html</guid></item><item><title>Retours sur deux ans à Mozilla</title><link>https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html</link><description>&lt;div class="admonition note"&gt; &lt;p&gt;Être Développeur n'est pas un métier qui a du sens en lui même (comme
&lt;p class="first admonition-title"&gt;Note&lt;/p&gt; peut l'être le métier d'instituteur/rice par exemple). Tout comme
&lt;p class="last"&gt;Ça fait un bail que j'ai cet article en cours de rédaction, et je me dis que lorsque l'on est …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 29 Jul 2014 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-07-29:/quel-metier-quelle-utilite.html</guid></item><item><title>Retours sur deux ans à Mozilla</title><link>https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html</link><description>
je dois le poster maintenant, sinon je ne le ferais jamais (saloperie de &lt;p&gt;&lt;em&gt;Ça fait un bail que j'ai cet article en cours de rédaction, et je me dis que je dois le poster maintenant, sinon je ne le ferais jamais (saloperie de perfectionnisme ?)&lt;/em&gt;&lt;/p&gt;
perfectionnisme ?)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Il y à deux ans et demi, en décembre, je commençais à travailler chez &lt;p&gt;Il y à deux ans et demi, en décembre, je commençais à travailler chez
Mozilla, dans l'équipe &amp;quot;Cloud …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 29 Jul 2014 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-07-29:/retours-sur-deux-ans-a-mozilla.html</guid></item><item><title>Le revenu de base</title><link>https://blog.notmyidea.org/le-revenu-de-base.html</link><description>&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0" Mozilla, dans l'équipe "Cloud Services …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 29 Jul 2014 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2014-07-29:/retours-sur-deux-ans-a-mozilla.html</guid></item><item><title>Des carnets d'esquisse</title><link>https://blog.notmyidea.org/des-carnets-desquisse.html</link><description>
frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Quelques notes prises en visualisant le documentaire &amp;quot;le revenu de base&amp;quot;.&lt;/p&gt; &lt;p&gt;Je me rends compte que je n'écris pas si souvent que ça ici,
&lt;ul class="simple"&gt; principalement parce que je me sens obligé d'y écrire en Anglais, mais
aussi parce que je le considère comme un espace ou les choses doivent
êtres abouties et non pas expérimentales.&lt;/p&gt;
&lt;p&gt;Des fois j'ai cette envie d'ouvrir …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 16 Aug 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-08-16:/des-carnets-desquisse.html</guid></item><item><title>François Elie : Quelle école pour la société de linformation ?</title><link>https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html</link><description>
&lt;p&gt;&lt;a href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference"&gt;http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quelques bouts selectionnés.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mais pourquoi continue t-on à enseigner des maths à des gens qui ne
vont pas les utiliser ? Ben évidemment cest parce quon nest pas
dans une école de linitiation où les mathématiciens …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 14 Jun 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-06-14:/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html</guid></item><item><title>Notes: Économie libidinale et économie politique</title><link>https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html</link><description>
&lt;p&gt;Une enquete d'un cabinet de marketing american ARI qui pour la première
fois en 2004 disait qu'on voyait aparaitre des "alter consommateurs",
qui n'étaient pas de gens qui consommaient moins, mais qui étaient des
gens malheureux de consommer. Et qui définissaient la consommation comme
une dépendance et une addiction.&lt;/p&gt;
&lt;p&gt;Un …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 07 Jun 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-06-07:/notes-economie-libidinale-et-economie-politique.html</guid></item><item><title>Le revenu de base</title><link>https://blog.notmyidea.org/le-revenu-de-base.html</link><description>
&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0"
frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;Quelques notes prises en visualisant le documentaire "le revenu de
base".&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4 Allemands sur 10 travaillent.&lt;/li&gt; &lt;li&gt;4 Allemands sur 10 travaillent.&lt;/li&gt;
&lt;li&gt;3/10 (les enfants et jeunes)&lt;/li&gt; &lt;li&gt;3/10 (les enfants et jeunes)&lt;/li&gt;
&lt;li&gt;2/10 retraite / rente&lt;/li&gt; &lt;li&gt;2/10 retraite / rente&lt;/li&gt;
@ -206,250 +270,368 @@ frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Quelques notes prises
&lt;li&gt;41% sont le fruit d'un travail rémunéré.&lt;/li&gt; &lt;li&gt;41% sont le fruit d'un travail rémunéré.&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;p&gt;Le revenu de base est inconditionnel.&lt;/p&gt; &lt;p&gt;Le revenu de base est inconditionnel.&lt;/p&gt;
&lt;p&gt;Le marché du travail ne pourra …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 03 Oct 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-10-03:/le-revenu-de-base.html</guid></item><item><title>Des carnets d'esquisse</title><link>https://blog.notmyidea.org/des-carnets-desquisse-fr.html</link><description>&lt;p&gt;Je me rends compte que je n'écris pas si souvent que ça ici, principalement &lt;p&gt;Le marché du travail ne pourra …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 10 Mar 2013 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-03-10:/le-revenu-de-base.html</guid></item><item><title>Des profils de confiance partout et pour tout ?</title><link>https://blog.notmyidea.org/des-profils-de-confiance-partout-et-pour-tout.html</link><description>
parce que je me sens obligé d'y écrire en Anglais, mais aussi parce que je le &lt;p&gt;Depuis un petit moment déjà, le site covoiturage.fr est passé "payant".
considère comme un espace ou les choses doivent êtres abouties et non pas Il est désormais possible (et même obligatoire) de payer les trajets à
expérimentales.&lt;/p&gt; l'avance, et en ligne, laissant au passage quelques royalties au site en
&lt;p&gt;Des fois j'ai cette envie d'ouvrir …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 16 Aug 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-08-16:/des-carnets-desquisse-fr.html</guid></item><item><title>Notes: Économie libidinale et économie politique</title><link>https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html</link><description>&lt;p&gt;Une enquete d'un cabinet de marketing american ARI qui pour la première fois en question.&lt;/p&gt;
2004 disait qu'on voyait aparaitre des &amp;quot;alter consommateurs&amp;quot;, qui n'étaient pas
de gens qui consommaient moins, mais qui étaient des gens malheureux de
consommer. Et qui définissaient la consommation comme une dépendance et une
addiction.&lt;/p&gt;
&lt;p&gt;Un …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 06 Jul 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-07-06:/notes-economie-libidinale-et-economie-politique.html</guid></item><item><title>New year python meme, 2012</title><link>https://blog.notmyidea.org/new-year-python-meme-2012.html</link><description>&lt;p&gt;This series, also known as &amp;quot;&lt;a class="reference external" href="http://ziade.org"&gt;Tarek Ziadé&lt;/a&gt; strikes again&amp;quot;,
is a good occasion to take a look back at 2012 and see what I've done related
to python. So, let's try.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Whats the coolest Python application, framework or library you have
discovered in 2012 ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I discovered &lt;a class="reference external" href="http://docs.pylonsproject.org/en/latest/docs/pyramid.html"&gt;Pyramid&lt;/a&gt; this …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 01 Jul 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-07-01:/new-year-python-meme-2012.html</guid></item><item><title>François Elie : Quelle école pour la société de linformation ?</title><link>https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html</link><description>&lt;p&gt;&lt;a class="reference external" href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference"&gt;http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quelques bouts selectionnés.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mais pourquoi continue t-on à enseigner des maths à des gens qui ne vont pas
les utiliser ? Ben évidemment cest parce quon nest pas dans une école de
linitiation où les mathématiciens …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 14 Jun 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-06-14:/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html</guid></item><item><title>Des profils de confiance partout et pour tout ?</title><link>https://blog.notmyidea.org/confiance-fr.html</link><description>&lt;p&gt;Depuis un petit moment déjà, le site covoiturage.fr est passé &amp;quot;payant&amp;quot;. Il est
désormais possible (et même obligatoire) de payer les trajets à l'avance, et en
ligne, laissant au passage quelques royalties au site en question.&lt;/p&gt;
&lt;p&gt;Précédemment, il était possible de retrouver le numéro des conducteurs &lt;p&gt;Précédemment, il était possible de retrouver le numéro des conducteurs
sur le site …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 02 Apr 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-04-02:/confiance-fr.html</guid></item><item><title>Implementing CORS in Cornice</title><link>https://blog.notmyidea.org/cross-origin-in-cornice.html</link><description>&lt;div class="admonition note"&gt; sur le site …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 04 Feb 2013 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-02-04:/des-profils-de-confiance-partout-et-pour-tout.html</guid></item><item><title>Implementing CORS in Cornice</title><link>https://blog.notmyidea.org/implementing-cors-in-cornice.html</link><description>
&lt;p class="first admonition-title"&gt;Note&lt;/p&gt; &lt;div class="note"&gt;
&lt;p class="last"&gt;I'm cross-posting &lt;a class="reference external" href="https://blog.mozilla.org/services/"&gt;on the mozilla services weblog&lt;/a&gt;. Since this is the
first time we're doing that, I though it could be useful to point you
there. Check it out and expect more technical articles there in the future.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;For security reasons, it's not possible to do cross-domain requests. In …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 02 Apr 2013 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-04-02:/cross-origin-in-cornice.html</guid></item><item><title>Status board</title><link>https://blog.notmyidea.org/status-board-fr.html</link><description>&lt;p&gt;À force de démarrer des services web pour un oui et pour un non, de proposer
à des copains d'héberger leurs sites, de faire pareil pour quelques assos etc,
je me suis retrouvé avec, comme dirait l'autre, &lt;em&gt;une bonne platrée&lt;/em&gt; de sites et
de services à gérer sur &lt;cite&gt;lolnet.org …&lt;/cite&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 29 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-29:/status-board-fr.html</guid></item><item><title>Habitat collectif</title><link>https://blog.notmyidea.org/habitat-collectif.html</link><description>&lt;p&gt;Habiter à plusieurs, partager un lieu de vie, monter une communauté, changer
nos modes de vie et prendre plus de temps les uns pour les autres.&lt;/p&gt;
&lt;p&gt;Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez moi.&lt;/p&gt;
&lt;p&gt;Voilà quelques ressources qui peuvent être utiles si jamais …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 28 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-28:/habitat-collectif.html</guid></item><item><title>Languages</title><link>https://blog.notmyidea.org/languages.html</link><description>&lt;p&gt;Ouriel Ellert &amp;quot; Languages&amp;quot; avec Anthony Jambon &amp;amp; Natascha Rogers, c'est
enregistré par le &lt;a class="reference external" href="http://www.studiomezzanine.fr"&gt;Studio Mezzanine&lt;/a&gt; qui comme d'hab font un
travail impeccable.&lt;/p&gt;
&lt;p&gt;Plus d'infos sur Natasha Rogers et son groupe ici:
&lt;a class="reference external" href="http://www.studiomezzanine.fr/natascha-rogers/"&gt;http://www.studiomezzanine.fr/natascha-rogers/&lt;/a&gt;&lt;/p&gt;
&lt;iframe width="650" height="480" src="http://www.youtube.com/embed/3I5PPdsTFz0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 28 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-28:/languages.html</guid><category>note</category></item><item><title>Tricot</title><link>https://blog.notmyidea.org/tricot.html</link><description>&lt;p&gt;Puisque j'ai décidé d'apprendre à faire les trucs moi-même, je me mets au
tricot. Et puis y'a aussi tout un symbole derrière: le tricot, c'est pour les
filles, tu sais, un &amp;quot;truc de gonzesse&amp;quot;.&lt;/p&gt;
&lt;p&gt;Eh bah c'est pas gagné, jte le dis. Pour l'instant j'ai réussi à faire à peu …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 28 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-28:/tricot.html</guid><category>note</category></item><item><title>Astuces SSH</title><link>https://blog.notmyidea.org/astuces-ssh.html</link><description>&lt;div class="section" id="tunelling"&gt;
&lt;h2&gt;Tunelling&lt;/h2&gt;
&lt;p&gt;Parce que je m'en rapelle jamais (tête de linote):&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ssh -f hote -L local:lolnet.org:destination -N
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="ssh-config"&gt;
&lt;h2&gt;.ssh/config&lt;/h2&gt;
&lt;p&gt;(merci &lt;a class="reference external" href="http://majerti.fr"&gt;gaston&lt;/a&gt; !)&lt;/p&gt;
&lt;p&gt;La directive suivante dans .ssh/config permet de sauter d'hôte en hôte
séparés par des &amp;quot;+&amp;quot;&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Host *+*
ProxyCommand ssh $(echo %h | sed
's/+[^+]*$//;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/;s …&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/astuces-ssh.html</guid><category>note</category></item><item><title>Gnome 3, extensions</title><link>https://blog.notmyidea.org/gnome-3-extensions.html</link><description>&lt;p&gt;Après avoir tenté pendant un bout de temps unity, le bureau par defaut de
ubuntu, j'ai eu envie de changements, et j'ai donc essayé un peu de regarder du
coté de gnome 3, à nouveau.&lt;/p&gt;
&lt;p&gt;Et finalement, j'ai trouvé quelques extensions qui sont vraiment utiles, que je
liste ici.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://extensions.gnome.org/extension/547/antisocial-menu/"&gt;Antisocial …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/gnome-3-extensions.html</guid><category>note</category></item><item><title>"Groovy"</title><link>https://blog.notmyidea.org/groovy.html</link><description>&lt;p&gt;“Groovy”, c'est comme ça que je l'aime la musique: peut importe le style
finalement, la bonne musique c'est celle qui sonne, celle qui groove, celle qui
fait que tu tapes du pied (le droit chez moi) et que que ta tête commence
à hocher.&lt;/p&gt;
&lt;p&gt;C'est pour ça que j'ai du …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/groovy.html</guid><category>note</category></item><item><title>Notre dame des landes</title><link>https://blog.notmyidea.org/notre-dame-des-landes.html</link><description>&lt;p&gt;La lutte à Notre Dame des Landes ne fait pas du tout que commencer, mais il se
trouve que les médias se sont &amp;quot;emparés&amp;quot; de la question que très récemment,
depuis que JM Ayrault s'est retrouvé premier ministre.&lt;/p&gt;
&lt;p&gt;Voici une sélection d'articles que j'ai trouvé pertinents, à partir de décembre …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/notre-dame-des-landes.html</guid></item><item><title>Semences paysannes</title><link>https://blog.notmyidea.org/semences-paysannes.html</link><description>&lt;p&gt;&lt;a class="reference external" href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed"&gt;http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A l'heure actuelle, il est interdit pour deux agriculteurs de s'échangers des semences dans le but d'en revendre la production.&lt;/p&gt;
&lt;p&gt;Les états ont crée la propriété interellectuelle pour relancer l'industrie après les dégats de la guerre et les selectionneurs en ont profité …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-20:/semences-paysannes.html</guid></item><item><title>Lifestyle</title><link>https://blog.notmyidea.org/lifestyle-fr.html</link><description>&lt;p&gt;Eh beh, c'est pas aussi simple qu'il y parait de trouver un environnement qui
permette autant de travailler correctement et de ne pas s'enfermer dans le
boulot.&lt;/p&gt;
&lt;p&gt;Surtout si comme moi vous cherchez à limiter vos déplacement, que vous aimez
vivre avec peu et cherchez à trouver un équilibre entre …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 05 Nov 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-11-05:/lifestyle-fr.html</guid></item><item><title>Cheese &amp; code - Wrap-up</title><link>https://blog.notmyidea.org/cheese-code-wrap-up.html</link><description>&lt;p&gt;This week-end I hosted a &lt;em&gt;cheese &amp;amp; code&lt;/em&gt; session in the country-side of Angers,
France.&lt;/p&gt;
&lt;p&gt;We were a bunch of python hackers and it rained a lot, wich forced us to stay
inside and to code. Bad.&lt;/p&gt;
&lt;p&gt;We were not enough to get rid of all the cheese and the awesome …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 22 Oct 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-10-22:/cheese-code-wrap-up.html</guid></item><item><title>Cheese &amp; Code party: October 20-21</title><link>https://blog.notmyidea.org/afpy-computer-camp-october-20-21.html</link><description>&lt;p&gt;At PyconFR, this week-end, a few ideas were thrown in the air and one of them
was to have a /dev/fort doing some python-related coding.&lt;/p&gt;
&lt;p&gt;The concept of a /dev/fort is to put a bunch of hackers together and see what
comes out from it. Tarek is doing …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Sep 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-09-20:/afpy-computer-camp-october-20-21.html</guid></item><item><title>Circus sprint at PyconFR</title><link>https://blog.notmyidea.org/circus-sprint-at-pyconfr.html</link><description>&lt;p&gt;Last Thursday to Sunday, &lt;a class="reference external" href="http://pycon.fr"&gt;Pycon France&lt;/a&gt; took place, in
Paris. It was the opportunity to meet a lot of people and to talk about python
awesomness in general.&lt;/p&gt;
&lt;p&gt;We had three tracks this year, plus sprints the two first days. We sprinted on
&lt;a class="reference external" href="http://circus.io"&gt;Circus&lt;/a&gt;, the process and socket manager we're …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 17 Sep 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-09-17:/circus-sprint-at-pyconfr.html</guid></item><item><title>Pourquoi Mozilla?</title><link>https://blog.notmyidea.org/pourquoi-mozilla-fr.html</link><description>&lt;p&gt;Depuis que j'ai commencé à bosser chez Mozilla, je me retrouve assez souvent à
expliquer ce que j'y fais. J'aime bien raconter l'histoire de Mozilla, la
mission, et comment je m'y rattache.&lt;/p&gt;
&lt;p&gt;Je prends bien sur un malin plaisir à expliquer à chaque fois les tenants et
les aboutissants, aussi …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 16 Jul 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-07-16:/pourquoi-mozilla-fr.html</guid><category>logiciel-libre</category><category>valeurs</category></item><item><title>Refactoring Cornice</title><link>https://blog.notmyidea.org/refactoring-cornice.html</link><description>&lt;p&gt;After working for a while with &lt;a class="reference external" href="http://cornice.readthedocs.com"&gt;Cornice&lt;/a&gt; to
define our APIs at &lt;a class="reference external" href="http://docs.services.mozilla.com"&gt;Services&lt;/a&gt;, it turned
out that the current implementation wasn't flexible enough to allow us to do
what we wanted to do.&lt;/p&gt;
&lt;p&gt;Cornice started as a toolkit on top of the &lt;a class="reference external" href="http://docs.pylonsproject.org/en/latest/docs/pyramid.html"&gt;pyramid&lt;/a&gt; routing system,
allowing to register services in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 14 May 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-05-14:/refactoring-cornice.html</guid><category>python</category><category>Cornice</category><category>refactoring</category></item><item><title>Bidouille</title><link>https://blog.notmyidea.org/bidouille-fr.html</link><description>&lt;p&gt;Bidouille bidouille bidouille.&lt;/p&gt;
&lt;p&gt;Je pense que je suis un bidouilleur logiciel: j'aime bien aller farfouiller
dans le code pour comprendre comment tel ou tel programme fonctionne (ou
trop souvent comment il ne fonctionne pas !), faire des petites modifications,
tester, modifier, re-tester, tout casser, réparer …&lt;/p&gt;
&lt;p&gt;Et cette bidouille, cette envie de …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 30 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-30:/bidouille-fr.html</guid><category>diy</category><category>électronique</category><category>hack</category><category>bidouille</category></item><item><title>Djangocong 2012</title><link>https://blog.notmyidea.org/djangocong-2012-fr.html</link><description>&lt;p&gt;Ce week-end, c'était &lt;a class="reference external" href="http://rencontres.django-fr.org"&gt;djangocong&lt;/a&gt;, une conférence autour de &lt;a class="reference external" href="http://djangoproject.org"&gt;django&lt;/a&gt;,
de &lt;a class="reference external" href="http://python.org"&gt;python&lt;/a&gt; et du web, qui avait lieu dans le sud, à Carnon-plage, à quelques
kilomètres de Montpellier la belle.&lt;/p&gt;
&lt;p&gt;J'ai vraiment apprécié les trois jours passés avec cette bande de geeks. Je
m'attendais à des &lt;em&gt;nerds&lt;/em&gt;, j'y ai trouvé une …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 16 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-16:/djangocong-2012-fr.html</guid></item><item><title>Bière maison !</title><link>https://blog.notmyidea.org/biere-maison-fr.html</link><description>&lt;p&gt;Et voilà, c'est notre troisième brassin. On a commencé à faire notre propre
bière (avec un ami, Fred) il y a quasiment un an maintenant, et après quelques
dératés, même s'il nous reste encore bien du chemin à parcourir pour avoir
quelque chose qui nous convienne réellement… c'est pas si …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 10 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-10:/biere-maison-fr.html</guid></item><item><title>Motivation, bénévolat et participation</title><link>https://blog.notmyidea.org/motivation-benevolat-et-participation-fr.html</link><description>&lt;p&gt;Des luttes, dieu (même si on peut à juste titre se demander ce qu'il vient
faire là) sait qu'il y en a. Principalement pour pointer du doigt les hérésies
du système actuel. Ça s'applique à l'informatique et à son système de brevets,
au &lt;a class="reference external" href="http://zad.nadir.org/"&gt;bétonnage de nos campagnes&lt;/a&gt; ou encore aux …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 10 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-10:/motivation-benevolat-et-participation-fr.html</guid></item><item><title>Les dangers du livre numérique</title><link>https://blog.notmyidea.org/les-dangers-du-livre-numerique-fr.html</link><description>&lt;p&gt;Le framablog vient de publier &lt;a class="reference external" href="http://www.framablog.org/index.php/post/2012/01/22/stallman-ebook-livre-electronique"&gt;une traduction de l'article de RMS à propos des dangers du livre électronique&lt;/a&gt;. Intéressant, même si il faut faire attention à ne pas confondre livre électronique et risques liés au format de distribution.&lt;/p&gt;
&lt;p&gt;Si on passe sur le fait qu'un livre electronique est moins agréable …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 23 Jan 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-01-23:/les-dangers-du-livre-numerique-fr.html</guid></item><item><title>2012, first months</title><link>https://blog.notmyidea.org/2012-first-months.html</link><description>&lt;p&gt;A lot of changes in these last months. First of all, I've started to
work for &lt;a class="reference external" href="http://mozilla.org"&gt;Mozilla&lt;/a&gt;, on the Services team, where I am working on
web services and scalability. Basically, what we are trying to do at services
is to provide a way for developers to make web services …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 21 Jan 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-01-21:/2012-first-months.html</guid></item><item><title>Using JPype to bridge python and Java</title><link>https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html</link><description>&lt;p&gt;Java provides some interesting libraries that have no exact equivalent in
python. In my case, the awesome boilerpipe library allows me to remove
uninteresting parts of HTML pages, like menus, footers and other &amp;quot;boilerplate&amp;quot;
contents.&lt;/p&gt;
&lt;p&gt;Boilerpipe is written in Java. Two solutions then: using java from python or
reimplement boilerpipe …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 06 Nov 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-11-06:/using-jpype-to-bridge-python-and-java.html</guid><category>python</category><category>java</category></item><item><title>How are you handling your shared expenses?</title><link>https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html</link><description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; We're kick-starting a new application to manage your shared
expenses. Have a look at &lt;a class="reference external" href="http://ihatemoney.notmyidea.org"&gt;http://ihatemoney.notmyidea.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As a student, I lived in a lot of different locations, and the majority of them
had something in common: I lived with others. It usually was a great experience …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 15 Oct 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-10-15:/how-are-you-handling-your-shared-expenses.html</guid><category>python</category><category>flask</category><category>budget-manager</category></item><item><title>La simplicité volontaire contre le mythe de l'abondance</title><link>https://blog.notmyidea.org/la-simplicite-volontaire-contre-le-mythe-de-labondance-fr.html</link><description>&lt;p&gt;Paul Ariès dans la préface de &amp;quot;&lt;a class="reference external" href="http://www.editionsladecouverte.fr/catalogue/index.php?ean13=9782707169747"&gt;La simplicité volontaire contre le mythe de
l'abondance&lt;/a&gt;&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
Je sais aussi qu'à force d'être seulement contre, nous finissons par être
&amp;quot;tout contre&amp;quot;, tout contre le système, ses débats pourris, ses pratiques
immondes, ses pervertions mentales. Cessons de porter notre adversaire sur
notre dos, car …&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 14 Oct 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-10-14:/la-simplicite-volontaire-contre-le-mythe-de-labondance-fr.html</guid></item><item><title>Using dbpedia to get languages influences</title><link>https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html</link><description>&lt;p&gt;While browsing the Python's wikipedia page, I found information about the languages
influenced by python, and the languages that influenced python itself.&lt;/p&gt;
&lt;p&gt;Well, that's kind of interesting to know which languages influenced others,
it could even be more interesting to have an overview of the connexion between
them, keeping python …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 16 Aug 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-08-16:/using-dbpedia-to-get-languages-influences.html</guid><category>dbpedia</category><category>sparql</category><category>python</category></item><item><title>Pelican, 9 months later</title><link>https://blog.notmyidea.org/pelican-9-months-later.html</link><description>&lt;p&gt;Back in October, I released &lt;a class="reference external" href="http://docs.notmyidea.org/alexis/pelican"&gt;pelican&lt;/a&gt;,
a little piece of code I wrote to power this weblog. I had simple needs: I wanted
to be able to use my text editor of choice (vim), a vcs (mercurial) and
restructured text. I started to write a really simple blog engine
in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 25 Jul 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-07-25:/pelican-9-months-later.html</guid><category>pelican</category><category>python</category><category>open source</category><category>nice story</category></item><item><title>Introducing Cornice</title><link>https://blog.notmyidea.org/introducing-cornice.html</link><description>&lt;p&gt;Wow, already my third working day at Mozilla. Since Monday, I've been working with
&lt;a class="reference external" href="http://ziade.org"&gt;Tarek Ziadé&lt;/a&gt;, on a pyramid REST-ish toolkit named &lt;a class="reference external" href="https://github.com/mozilla-services/cornice"&gt;Cornice&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Its goal is to take care for you of what you're usually missing so you can
focus on what's important. Cornice provides you facilities
for validation of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 12 Jul 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-07-12:/introducing-cornice.html</guid></item><item><title>Un coup de main pour mon mémoire!</title><link>https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire-fr.html</link><description>&lt;p&gt;Ça y est, bientôt la fin. LA FIN. La fin des études, et le début du reste.
En attendant je bosse sur mon mémoire de fin d'études et j'aurais besoin d'un petit
coup de main.&lt;/p&gt;
&lt;p&gt;Mon mémoire porte sur les systèmes de recommandation. Pour ceux qui connaissent
last.fm, je …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 25 May 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-05-25:/un-coup-de-main-pour-mon-memoire-fr.html</guid></item><item><title>Travailler moins pour mieux travailler ?</title><link>https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler-fr.html</link><description>&lt;p&gt;Je viens de passer une semaine et demi quasiment hors-ligne et je dois dire que
je suis assez impressionné du résultat: je suis de retour chez mes parents pour
le &amp;quot;easter break&amp;quot; et j'en ai profité pour donner un coup aux travaux de la
maison (et pour me reposer un …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 19 May 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-05-19:/travailler-moins-pour-mieux-travailler-fr.html</guid></item><item><title>Analyse users' browsing context to build up a web recommender</title><link>https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html</link><description>&lt;p&gt;No, this is not an april's fool ;)&lt;/p&gt;
&lt;p&gt;Wow, it's been a long time. My year in Oxford is going really well. I realized
few days ago that the end of the year is approaching really quickly.
Exams are coming in one month or such and then I'll be working full …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 01 Apr 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-04-01:/analyse-users-browsing-context-to-build-up-a-web-recommender.html</guid><category>recommendations</category><category>browsers</category><category>users</category></item><item><title>Working directly on your server? How to backup and sync your dev environment with unison</title><link>https://blog.notmyidea.org/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html</link><description>&lt;p&gt;I have a server running freebsd since some time now, and was wondering about
the possibility to directly have a development environment ready to use when
I get a internet connexion, even if I'm not on my computer.&lt;/p&gt;
&lt;p&gt;Since I use vim to code, and spend most of my time …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 16 Mar 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-03-16:/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html</guid><category>freebsd</category><category>unison</category></item><item><title>Wrap up of the distutils2 paris' sprint</title><link>https://blog.notmyidea.org/wrap-up-of-the-distutils2-paris-sprint.html</link><description>&lt;p&gt;Finally, thanks to a bunch of people that helped me to pay my train and bus
tickets, I've made it to paris for the distutils2 sprint.&lt;/p&gt;
&lt;p&gt;They have been a bit more than 10 people to come during the sprint, and it was
very productive. Here's a taste of what …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 08 Feb 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-02-08:/wrap-up-of-the-distutils2-paris-sprint.html</guid></item><item><title>PyPI on CouchDB</title><link>https://blog.notmyidea.org/pypi-on-couchdb.html</link><description>&lt;p&gt;By now, there are two ways to retrieve data from PyPI (the Python Package
Index). You can both rely on xml/rpc or on the &amp;quot;simple&amp;quot; API. The simple
API is not so simple to use as the name suggest, and have several existing
drawbacks.&lt;/p&gt;
&lt;p&gt;Basically, if you want to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Jan 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-01-20:/pypi-on-couchdb.html</guid></item><item><title>Help me to go to the distutils2 paris' sprint</title><link>https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html</link><description>&lt;p&gt;&lt;strong&gt;Edit: Thanks to logilab and some amazing people, I can make it to paris for the
sprint. Many thanks to them for the support!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There will be a distutils2 sprint from the 27th to the 30th of january, thanks
to logilab which will host the event.&lt;/p&gt;
&lt;p&gt;You can find more …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 15 Jan 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-01-15:/help-me-to-go-to-the-distutils2-paris-sprint.html</guid></item><item><title>Quels usages pour l'informatique ?</title><link>https://blog.notmyidea.org/usages-informatique-fr.html</link><description>&lt;p&gt;Quand on termine ses études, on s'en pose un tas, des questions. Sur le métier
que l'on veut faire, sur ce que ça signifie, sur le sens et la valeur du
travail. Et j'en suis arrivé à faire un constat simple: l'informatique, c'est
utile, tant que ça ne vient pas …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 12 Jan 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-01-12:/usages-informatique-fr.html</guid></item><item><title>Fork you ! or how the social coding can help you</title><link>https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html</link><description>&lt;p&gt;With &lt;a class="reference external" href="http://github.com"&gt;github&lt;/a&gt; and &lt;a class="reference external" href="http://www.bitbucket.org"&gt;bitbucket&lt;/a&gt; coming around, a lot of new usages appears for the
developpers: it's now easy to get feedback on your code/modifications, and to get
help from others by, for instance, forking repositories.&lt;/p&gt;
&lt;p&gt;Eeach time I see people helping others, I'm amazed by how we like to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 05 Nov 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-11-05:/fork-you-or-how-the-social-coding-can-help-you.html</guid></item><item><title>How to reboot your bebox using the CLI</title><link>https://blog.notmyidea.org/how-to-reboot-your-bebox-using-the-cli.html</link><description>&lt;p&gt;I've an internet connection which, for some obscure reasons, tend to be very
slow from time to time. After rebooting the box (yes, that's a hard solution),
all the things seems to go fine again.&lt;/p&gt;
&lt;div class="section" id="edit-using-grep"&gt;
&lt;h2&gt;EDIT : Using grep&lt;/h2&gt;
&lt;p&gt;After a bit of reflexion, that's also really easy to do using …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 21 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-21:/how-to-reboot-your-bebox-using-the-cli.html</guid></item><item><title>Dynamically change your gnome desktop wallpaper</title><link>https://blog.notmyidea.org/dynamically-change-your-gnome-desktop-wallpaper.html</link><description>&lt;p&gt;In gnome, you can can use a XML file to have a dynamic wallpaper.
It's not so easy, and you can't just tell: use the pictures in this folder to do
so.&lt;/p&gt;
&lt;p&gt;You can have a look to the git repository if you want: &lt;a class="reference external" href="http://github.com/ametaireau/gnome-background-generator"&gt;http://github.com/ametaireau/gnome-background-generator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 11 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-11:/dynamically-change-your-gnome-desktop-wallpaper.html</guid></item><item><title>How to install NGINX + PHP 5.3 on FreeBSD.</title><link>https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html</link><description>&lt;p&gt;I've not managed so far to get completely rid of php, so here's a simple
reminder about how to install php on NGINX, for FreeBSD. Nothing hard, but
that's worse to have the piece of configuration somewhere !&lt;/p&gt;
&lt;pre class="literal-block"&gt;
# update the ports
$ portsnap fetch update
# install php5 port &lt;div class="admonition-title"&gt;
$ make config-recursive -C /usr …&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 10 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-10:/how-to-install-nginx-php-53-on-freebsd.html</guid></item><item><title>Pelican, a simple static blog generator in python</title><link>https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html</link><description>&lt;p&gt;Those days, I've wrote a little python application to fit my blogging needs.
I'm an occasional blogger, a vim lover, I like restructured text and DVCSes, so Note
I've made a little tool that makes good use of all that.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://docs.getpelican.com"&gt;Pelican&lt;/a&gt; (for calepin) is just a simple tool to generate your …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 06 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-06:/pelican-a-simple-static-blog-generator-in-python.html</guid></item><item><title>An amazing summer of code working on distutils2</title><link>https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html</link><description>&lt;p&gt;The &lt;a class="reference external" href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; I've &lt;/div&gt;
spent working on &lt;a class="reference external" href="http://hg.python.org/distutils2/"&gt;distutils2&lt;/a&gt;
is over. It was a really amazing experience, for many reasons.&lt;/p&gt; I'm cross-posting [on the mozilla services
&lt;p&gt;First of all, we had a very good team, we were 5 students working weblog](https://blog.mozilla.org/services/). Since this is the first
on distutils2: &lt;a class="reference external" href="http://zubin71.wordpress.com"&gt;Zubin&lt;/a&gt;, time we're doing that, I though it could be useful to point you there.
&lt;a class="reference external" href="http://wokslog.wordpress.com/"&gt;Éric&lt;/a&gt;, Check it out and expect more technical articles there in the future.
&lt;a class="reference external" href="http://gsoc.djolonga.com/"&gt;Josip&lt;/a&gt;,
&lt;a class="reference external" href="http://konryd.blogspot.com/"&gt;Konrad&lt;/a&gt; and me. In addition, &lt;/div&gt;
&lt;a class="reference external" href="http://mouadino.blogspot.com/"&gt;Mouad&lt;/a&gt; have worked on the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 16 Aug 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-08-16:/an-amazing-summer-of-code-working-on-distutils2.html</guid></item><item><title>Introducing the distutils2 index crawlers</title><link>https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html</link><description>&lt;p&gt;I'm working for about a month for distutils2, even if I was being a
bit busy (as I had some class courses and exams to work on)&lt;/p&gt; &lt;p&gt;For security reasons, it's not possible …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 04 Feb 2013 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-02-04:/implementing-cors-in-cornice.html</guid></item><item><title>New year python meme, 2012</title><link>https://blog.notmyidea.org/new-year-python-meme-2012.html</link><description>
&lt;p&gt;I'll try do sum-up my general feelings here, and the work I've made &lt;p&gt;This series, also known as "&lt;a href="http://ziade.org"&gt;Tarek Ziadé&lt;/a&gt; strikes
so far. You can also find, if you're interested, my …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 06 Jul 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-07-06:/introducing-the-distutils2-index-crawlers.html</guid></item><item><title>Sprinting on distutils2 in Tours</title><link>https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html</link><description>&lt;p&gt;Yesterday, as I was traveling to Tours, I've took some time to again", is a good occasion to take a look back at 2012 and see what I've
visit Éric, another student who's working on distutils2 this done related to python. So, let's try.&lt;/p&gt;
summer, as a part of the GSoC. Basically, it was to take a drink, &lt;p&gt;&lt;strong&gt;1. Whats the coolest Python application, framework or library you
discuss a bit about distutils2, our respective tasks and general have discovered in 2012 ?&lt;/strong&gt;&lt;/p&gt;
feelings, and to put a …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 06 Jul 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-07-06:/sprinting-on-distutils2-in-tours.html</guid></item><item><title>Use Restructured Text (ReST) to power your presentations</title><link>https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html</link><description>&lt;p&gt;Wednesday, we give a presentation, with some friends, about the &lt;p&gt;I discovered
CouchDB Database, to &lt;a href="http://docs.pylonsproject.org/en/latest/docs/pyramid.html"&gt;Pyramid&lt;/a&gt;
&lt;a class="reference external" href="http://www.toulibre.org"&gt;the Toulouse local LUG&lt;/a&gt;. Thanks a lot this …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 07 Jan 2013 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2013-01-07:/new-year-python-meme-2012.html</guid></item><item><title>Status board</title><link>https://blog.notmyidea.org/status-board.html</link><description>
to all the presents for being there, it was a pleasure to talk &lt;p&gt;À force de démarrer des services web pour un oui et pour un non, de
about this topic with you. Too bad the season is over now an I quit proposer à des copains d'héberger leurs sites, de faire pareil pour
Toulouse next …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 25 Jun 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-06-25:/use-restructured-text-rest-to-power-your-presentations.html</guid></item><item><title>first week working on distutils2</title><link>https://blog.notmyidea.org/first-week-working-on-distutils2.html</link><description>&lt;p&gt;As I've been working on quelques assos etc, je me suis retrouvé avec, comme dirait l'autre, &lt;em&gt;une
&lt;a class="reference external" href="http://hg.python.org/distutils2/"&gt;Distutils2&lt;/a&gt; during the past bonne platrée&lt;/em&gt; de sites et de services à gérer sur lolnet.org …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 29 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-29:/status-board.html</guid></item><item><title>Habitat collectif</title><link>https://blog.notmyidea.org/habitat-collectif.html</link><description>
week, taking part of the &lt;p&gt;Habiter à plusieurs, partager un lieu de vie, monter une communauté,
&lt;a class="reference external" href="http://code.google.com/intl/fr/soc/"&gt;GSOC&lt;/a&gt; program, here is a changer nos modes de vie et prendre plus de temps les uns pour les
short summary of what I've done so far.&lt;/p&gt; autres.&lt;/p&gt;
&lt;p&gt;As my courses are not over yet, I've not worked as much as I &lt;p&gt;Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez
wanted, and this will continues until the end of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 04 Jun 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-06-04:/first-week-working-on-distutils2.html</guid></item><item><title>A Distutils2 GSoC</title><link>https://blog.notmyidea.org/a-distutils2-gsoc.html</link><description>&lt;p&gt;WOW. I've been accepted to be a part of the moi.&lt;/p&gt;
&lt;a class="reference external" href="http://code.google.com/intl/fr/soc/"&gt;Google Summer Of Code&lt;/a&gt; &lt;p&gt;Voilà quelques ressources qui peuvent être utiles si jamais …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 28 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-28:/habitat-collectif.html</guid></item><item><title>Tricot</title><link>https://blog.notmyidea.org/tricot.html</link><description>
program, and will work on &lt;a class="reference external" href="http://python.org/"&gt;python&lt;/a&gt; &lt;p&gt;Puisque j'ai décidé d'apprendre à faire les trucs moi-même, je me mets
&lt;a class="reference external" href="http://hg.python.org/distutils2/"&gt;distutils2&lt;/a&gt;, with au tricot. Et puis y'a aussi tout un symbole derrière: le tricot, c'est
&lt;a class="reference external" href="http://pygsoc.wordpress.com/"&gt;a&lt;/a&gt; pour les filles, tu sais, un "truc de gonzesse".&lt;/p&gt;
&lt;a class="reference external" href="http://konryd.blogspot.com/"&gt;lot&lt;/a&gt; &lt;a class="reference external" href="http://ziade.org/"&gt;of&lt;/a&gt; &lt;p&gt;Eh bah c'est pas gagné, jte le dis. Pour l'instant j'ai réussi à faire à
(intersting!) &lt;a class="reference external" href="http://zubin71.wordpress.com/"&gt;people&lt;/a&gt;.&lt;/p&gt; peu …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 28 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-28:/tricot.html</guid></item><item><title>Astuces SSH</title><link>https://blog.notmyidea.org/astuces-ssh.html</link><description>
&lt;h2 id="tunelling"&gt;Tunelling&lt;/h2&gt;
&lt;p&gt;Parce que je m'en rapelle jamais (tête de linote):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ ssh -f hote -L local:lolnet.org:destination -N
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="sshconfig"&gt;.ssh/config&lt;/h2&gt;
&lt;p&gt;(merci &lt;a href="http://majerti.fr"&gt;gaston&lt;/a&gt; !)&lt;/p&gt;
&lt;p&gt;La directive suivante dans .ssh/config permet de sauter d'hôte en hôte
séparés par des "+" :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;Host&lt;/span&gt; &lt;span class="o"&gt;*+*&lt;/span&gt;
&lt;span class="n"&gt;ProxyCommand&lt;/span&gt; &lt;span class="n"&gt;ssh&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;echo&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;sed&lt;/span&gt;
&lt;span class="s1"&gt;&amp;#39;s/+[^+]*$//;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/;s …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/astuces-ssh.html</guid></item><item><title>Gnome 3, extensions</title><link>https://blog.notmyidea.org/gnome-3-extensions.html</link><description>
&lt;p&gt;Après avoir tenté pendant un bout de temps unity, le bureau par defaut
de ubuntu, j'ai eu envie de changements, et j'ai donc essayé un peu de
regarder du coté de gnome 3, à nouveau.&lt;/p&gt;
&lt;p&gt;Et finalement, j'ai trouvé quelques extensions qui sont vraiment utiles,
que je liste ici.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://extensions.gnome.org/extension/547/antisocial-menu/"&gt;Antisocial …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/gnome-3-extensions.html</guid></item><item><title>"Groovy"</title><link>https://blog.notmyidea.org/groovy.html</link><description>
&lt;p&gt;“Groovy”, c'est comme ça que je l'aime la musique: peut importe le style
finalement, la bonne musique c'est celle qui sonne, celle qui groove,
celle qui fait que tu tapes du pied (le droit chez moi) et que que ta
tête commence à hocher.&lt;/p&gt;
&lt;p&gt;C'est pour ça que j'ai du …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/groovy.html</guid></item><item><title>Notre dame des landes</title><link>https://blog.notmyidea.org/notre-dame-des-landes.html</link><description>
&lt;p&gt;La lutte à Notre Dame des Landes ne fait pas du tout que commencer, mais
il se trouve que les médias se sont "emparés" de la question que très
récemment, depuis que JM Ayrault s'est retrouvé premier ministre.&lt;/p&gt;
&lt;p&gt;Voici une sélection d'articles que j'ai trouvé pertinents, à partir de
décembre …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 27 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-27:/notre-dame-des-landes.html</guid></item><item><title>Semences paysannes</title><link>https://blog.notmyidea.org/semences-paysannes.html</link><description>
&lt;p&gt;&lt;a href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed"&gt;http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A l'heure actuelle, il est interdit pour deux agriculteurs de
s'échangers des semences dans le but d'en revendre la production.&lt;/p&gt;
&lt;p&gt;Les états ont crée la propriété interellectuelle pour relancer
l'industrie après les dégats de la guerre et les selectionneurs en ont
profité …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-20:/semences-paysannes.html</guid></item><item><title>Languages</title><link>https://blog.notmyidea.org/languages.html</link><description>
&lt;p&gt;Ouriel Ellert " Languages" avec Anthony Jambon &amp;amp; Natascha Rogers, c'est enregistré par le &lt;a href="http://www.studiomezzanine.fr"&gt;Studio Mezzanine&lt;/a&gt; qui
comme d'hab font un travail impeccable.&lt;/p&gt;
&lt;p&gt;Plus d'infos sur Natasha Rogers et son groupe ici:
&lt;a href="http://www.studiomezzanine.fr/natascha-rogers/"&gt;http://www.studiomezzanine.fr/natascha-rogers/&lt;/a&gt;&lt;/p&gt;
&lt;iframe width="650" height="480" src="http://www.youtube.com/embed/3I5PPdsTFz0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 12 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-12:/languages.html</guid></item><item><title>Cheese &amp; code - Wrap-up</title><link>https://blog.notmyidea.org/cheese-code-wrap-up.html</link><description>&lt;h1 id="cheese-code-wrap-up"&gt;Cheese &amp;amp; code - Wrap-up&lt;/h1&gt;
&lt;p&gt;This week-end I hosted a &lt;em&gt;cheese &amp;amp; code&lt;/em&gt; session in the country-side of
Angers, France.&lt;/p&gt;
&lt;p&gt;We were a bunch of python hackers and it rained a lot, wich forced us to
stay inside and to code. Bad.&lt;/p&gt;
&lt;p&gt;We were not enough to get rid of all the cheese …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 22 Oct 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-10-22:/cheese-code-wrap-up.html</guid></item><item><title>Bière maison 33</title><link>https://blog.notmyidea.org/biere-maison-33.html</link><description>&lt;h1 id="biere-maison-33"&gt;Bière maison !&lt;/h1&gt;
&lt;p&gt;Et voilà, c'est notre troisième brassin. On a commencé à faire notre
propre bière (avec un ami, Fred) il y a quasiment un an maintenant, et
après quelques dératés, même s'il nous reste encore bien du chemin à
parcourir pour avoir quelque chose qui nous convienne réellement… c'est …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 04 Oct 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-10-04:/biere-maison-33.html</guid></item><item><title>Motivation, bénévolat et participation</title><link>https://blog.notmyidea.org/motivation-benevolat-et-participation.html</link><description>
&lt;p&gt;Des luttes, dieu (même si on peut à juste titre se demander ce qu'il
vient faire là) sait qu'il y en a. Principalement pour pointer du doigt
les hérésies du système actuel. Ça s'applique à l'informatique et à son
système de brevets, au &lt;a href="http://zad.nadir.org/"&gt;bétonnage de nos
campagnes&lt;/a&gt; ou encore aux …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 04 Oct 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-10-04:/motivation-benevolat-et-participation.html</guid></item><item><title>Cheese &amp; Code party: October 20-21</title><link>https://blog.notmyidea.org/cheese-code-party-october-20-21.html</link><description>&lt;h1 id="cheese-code-party-october-20-21"&gt;Cheese &amp;amp; Code party: October 20-21&lt;/h1&gt;
&lt;p&gt;At PyconFR, this week-end, a few ideas were thrown in the air and one of
them was to have a /dev/fort doing some python-related coding.&lt;/p&gt;
&lt;p&gt;The concept of a /dev/fort is to put a bunch of hackers together and see
what comes out …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Sep 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-09-20:/cheese-code-party-october-20-21.html</guid></item><item><title>Circus sprint at PyconFR</title><link>https://blog.notmyidea.org/circus-sprint-at-pyconfr.html</link><description>
&lt;p&gt;Last Thursday to Sunday, &lt;a href="http://pycon.fr"&gt;Pycon France&lt;/a&gt; took place, in
Paris. It was the opportunity to meet a lot of people and to talk about
python awesomness in general.&lt;/p&gt;
&lt;p&gt;We had three tracks this year, plus sprints the two first days. We
sprinted on &lt;a href="http://circus.io"&gt;Circus&lt;/a&gt;, the process and socket manager
we're …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 17 Sep 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-09-17:/circus-sprint-at-pyconfr.html</guid></item><item><title>Pourquoi Mozilla?</title><link>https://blog.notmyidea.org/pourquoi-mozilla.html</link><description>
&lt;p&gt;Depuis que j'ai commencé à bosser chez Mozilla, je me retrouve assez
souvent à expliquer ce que j'y fais. J'aime bien raconter l'histoire de
Mozilla, la mission, et comment je m'y rattache.&lt;/p&gt;
&lt;p&gt;Je prends bien sur un malin plaisir à expliquer à chaque fois les
tenants et les aboutissants, aussi …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 16 Jul 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-07-16:/pourquoi-mozilla.html</guid></item><item><title>Lifestyle</title><link>https://blog.notmyidea.org/lifestyle.html</link><description>
&lt;p&gt;Eh beh, c'est pas aussi simple qu'il y parait de trouver un
environnement qui permette autant de travailler correctement et de ne
pas s'enfermer dans le boulot.&lt;/p&gt;
&lt;p&gt;Surtout si comme moi vous cherchez à limiter vos déplacement, que vous
aimez vivre avec peu et cherchez à trouver un équilibre entre …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 11 May 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-05-11:/lifestyle.html</guid></item><item><title>Refactoring Cornice</title><link>https://blog.notmyidea.org/refactoring-cornice.html</link><description>
&lt;p&gt;After working for a while with &lt;a href="http://cornice.readthedocs.com"&gt;Cornice&lt;/a&gt;
to define our APIs at &lt;a href="http://docs.services.mozilla.com"&gt;Services&lt;/a&gt;, it
turned out that the current implementation wasn't flexible enough to
allow us to do what we wanted to do.&lt;/p&gt;
&lt;p&gt;Cornice started as a toolkit on top of the
&lt;a href="http://docs.pylonsproject.org/en/latest/docs/pyramid.html"&gt;pyramid&lt;/a&gt;
routing system, allowing to register services in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 01 May 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-05-01:/refactoring-cornice.html</guid></item><item><title>Bidouille</title><link>https://blog.notmyidea.org/bidouille.html</link><description>
&lt;p&gt;Bidouille bidouille bidouille.&lt;/p&gt;
&lt;p&gt;Je pense que je suis un bidouilleur logiciel: j'aime bien aller
farfouiller dans le code pour comprendre comment tel ou tel programme
fonctionne (ou trop souvent comment il ne fonctionne pas !), faire des
petites modifications, tester, modifier, re-tester, tout casser, réparer
&lt;/p&gt;
&lt;p&gt;Et cette bidouille, cette envie de …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 30 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-30:/bidouille.html</guid></item><item><title>Djangocong 2012</title><link>https://blog.notmyidea.org/djangocong-2012.html</link><description>
&lt;p&gt;Ce week-end, c'était &lt;a href="http://rencontres.django-fr.org"&gt;djangocong&lt;/a&gt;, une
conférence autour de &lt;a href="http://djangoproject.org"&gt;django&lt;/a&gt;, de
&lt;a href="http://python.org"&gt;python&lt;/a&gt; et du web, qui avait lieu dans le sud, à
Carnon-plage, à quelques kilomètres de Montpellier la belle.&lt;/p&gt;
&lt;p&gt;J'ai vraiment apprécié les trois jours passés avec cette bande de geeks.
Je m'attendais à des &lt;em&gt;nerds&lt;/em&gt;, j'y ai trouvé une …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 16 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-16:/djangocong-2012.html</guid></item><item><title>Génération de formulaires, geolocalisés ?</title><link>https://blog.notmyidea.org/generation-de-formulaires-geolocalises.html</link><description>
&lt;p&gt;On a un plan. Un "truc de ouf".&lt;/p&gt;
&lt;p&gt;À plusieurs reprises, des amis m'ont demandé de leur coder la même
chose, à quelques détails près: une page web avec un formulaire qui
permettrait de soumettre des informations géographiques, lié à une carte
et des manières de filtrer l'information.&lt;/p&gt;
&lt;p&gt;L'idée fait …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 02 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-02:/generation-de-formulaires-geolocalises.html</guid></item><item><title>Thoughts about a form generation service, GIS enabled</title><link>https://blog.notmyidea.org/thoughts-about-a-form-generation-service-gis-enabled.html</link><description>
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;slug&lt;br&gt;
carto-forms&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;date&lt;br&gt;
02-04-2012&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;author&lt;br&gt;
Alexis Métaireau, Mathieu Leplatre&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tags&lt;br&gt;
GIS, forms&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;lang&lt;br&gt;
en&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;category&lt;br&gt;
tech&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We have a plan. A "fucking good" one.&lt;/p&gt;
&lt;p&gt;A bunch of friends asked me twice for quite the same thing: a webpage
with a form, tied to a map generation with some information filtering …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 02 Apr 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-04-02:/thoughts-about-a-form-generation-service-gis-enabled.html</guid></item><item><title>Les dangers du livre numérique</title><link>https://blog.notmyidea.org/les-dangers-du-livre-numerique.html</link><description>
&lt;p&gt;Le framablog vient de publier &lt;a href="http://www.framablog.org/index.php/post/2012/01/22/stallman-ebook-livre-electronique"&gt;une traduction de l'article de RMS à
propos des dangers du livre
électronique&lt;/a&gt;.
Intéressant, même si il faut faire attention à ne pas confondre livre
électronique et risques liés au format de distribution.&lt;/p&gt;
&lt;p&gt;Si on passe sur le fait qu'un livre électronique est moins agréable …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 23 Jan 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-01-23:/les-dangers-du-livre-numerique.html</guid></item><item><title>Mozilla, first months</title><link>https://blog.notmyidea.org/mozilla-first-months.html</link><description>
&lt;p&gt;A lot of changes in these last months. First of all, I've started to work for &lt;a href="http://mozilla.org"&gt;Mozilla&lt;/a&gt;, on the Services team, where I am
working on web services and scalability. Basically, what we are trying
to do at services is to provide a way for developers to make web
services …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 21 Jan 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-01-21:/mozilla-first-months.html</guid></item><item><title>Introducing Cornice</title><link>https://blog.notmyidea.org/introducing-cornice.html</link><description>
&lt;p&gt;Wow, already my third working day at Mozilla. Since Monday, I've been
working with &lt;a href="http://ziade.org"&gt;Tarek Ziadé&lt;/a&gt;, on a pyramid REST-ish
toolkit named &lt;a href="https://github.com/mozilla-services/cornice"&gt;Cornice&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Its goal is to take care for you of what you're usually missing so you
can focus on what's important. Cornice provides you facilities for
validation of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 07 Dec 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-12-07:/introducing-cornice.html</guid></item><item><title>Quels usages pour l'informatique ?</title><link>https://blog.notmyidea.org/quels-usages-pour-linformatique.html</link><description>
&lt;p&gt;Quand on termine ses études, on s'en pose un tas, des questions. Sur le
métier que l'on veut faire, sur ce que ça signifie, sur le sens et la
valeur du travail. Et j'en suis arrivé à faire un constat simple:
l'informatique, c'est utile, tant que ça ne vient pas …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 01 Dec 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-12-01:/quels-usages-pour-linformatique.html</guid></item><item><title>How are you handling your shared expenses?</title><link>https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html</link><description>
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; We're kick-starting a new application to manage your shared
expenses. Have a look at &lt;a href="http://ihatemoney.notmyidea.org"&gt;http://ihatemoney.notmyidea.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As a student, I lived in a lot of different locations, and the majority
of them had something in common: I lived with others. It usually was a
great experience …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 15 Oct 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-10-15:/how-are-you-handling-your-shared-expenses.html</guid></item><item><title>Using dbpedia to get languages influences</title><link>https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html</link><description>
&lt;p&gt;While browsing the Python's wikipedia page, I found information about
the languages influenced by python, and the languages that influenced
python itself.&lt;/p&gt;
&lt;p&gt;Well, that's kind of interesting to know which languages influenced
others, it could even be more interesting to have an overview of the
connexion between them, keeping python …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 16 Aug 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-08-16:/using-dbpedia-to-get-languages-influences.html</guid></item><item><title>Pelican, 9 months later</title><link>https://blog.notmyidea.org/pelican-9-months-later.html</link><description>
&lt;p&gt;Back in October, I released
&lt;a href="http://docs.notmyidea.org/alexis/pelican"&gt;pelican&lt;/a&gt;, a little piece of
code I wrote to power this weblog. I had simple needs: I wanted to be
able to use my text editor of choice (vim), a vcs (mercurial) and
restructured text. I started to write a really simple blog engine in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 25 Jul 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-07-25:/pelican-9-months-later.html</guid></item><item><title>Using JPype to bridge python and Java</title><link>https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html</link><description>
&lt;p&gt;Java provides some interesting libraries that have no exact equivalent
in python. In my case, the awesome boilerpipe library allows me to
remove uninteresting parts of HTML pages, like menus, footers and other
"boilerplate" contents.&lt;/p&gt;
&lt;p&gt;Boilerpipe is written in Java. Two solutions then: using java from
python or reimplement boilerpipe …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 11 Jun 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-06-11:/using-jpype-to-bridge-python-and-java.html</guid></item><item><title>Un coup de main pour mon mémoire33</title><link>https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire33.html</link><description>&lt;h1 id="un-coup-de-main-pour-mon-memoire33"&gt;Un coup de main pour mon mémoire!&lt;/h1&gt;
&lt;p&gt;Ça y est, bientôt la fin. LA FIN. La fin des études, et le début du
reste. En attendant je bosse sur mon mémoire de fin d'études et j'aurais
besoin d'un petit coup de main.&lt;/p&gt;
&lt;p&gt;Mon mémoire porte sur les systèmes de recommandation …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 25 May 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-05-25:/un-coup-de-main-pour-mon-memoire33.html</guid></item><item><title>Travailler moins pour mieux travailler ?</title><link>https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler.html</link><description>
&lt;p&gt;Je viens de passer une semaine et demi quasiment hors-ligne et je dois
dire que je suis assez impressionné du résultat: je suis de retour chez
mes parents pour le "easter break" et j'en ai profité pour donner un
coup aux travaux de la maison (et pour me reposer un …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 19 May 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-05-19:/travailler-moins-pour-mieux-travailler.html</guid></item><item><title>Analyse users' browsing context to build up a web recommender</title><link>https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html</link><description>
&lt;p&gt;No, this is not an april's fool ;)&lt;/p&gt;
&lt;p&gt;Wow, it's been a long time. My year in Oxford is going really well. I
realized few days ago that the end of the year is approaching really
quickly. Exams are coming in one month or such and then I'll be working
full …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 01 Apr 2011 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-04-01:/analyse-users-browsing-context-to-build-up-a-web-recommender.html</guid></item><item><title>Working directly on your server? How to backup and sync your dev environment with unison</title><link>https://blog.notmyidea.org/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html</link><description>
&lt;p&gt;I have a server running freebsd since some time now, and was wondering
about the possibility to directly have a development environment ready
to use when I get a internet connexion, even if I'm not on my computer.&lt;/p&gt;
&lt;p&gt;Since I use vim to code, and spend most of my time …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 16 Mar 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-03-16:/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html</guid></item><item><title>Wrap up of the distutils2 paris' sprint</title><link>https://blog.notmyidea.org/wrap-up-of-the-distutils2-paris-sprint.html</link><description>
&lt;p&gt;Finally, thanks to a bunch of people that helped me to pay my train and
bus tickets, I've made it to paris for the distutils2 sprint.&lt;/p&gt;
&lt;p&gt;They have been a bit more than 10 people to come during the sprint, and
it was very productive. Here's a taste of what …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 08 Feb 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-02-08:/wrap-up-of-the-distutils2-paris-sprint.html</guid></item><item><title>PyPI on CouchDB</title><link>https://blog.notmyidea.org/pypi-on-couchdb.html</link><description>
&lt;p&gt;By now, there are two ways to retrieve data from PyPI (the Python
Package Index). You can both rely on xml/rpc or on the "simple" API. The
simple API is not so simple to use as the name suggest, and have several
existing drawbacks.&lt;/p&gt;
&lt;p&gt;Basically, if you want to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 20 Jan 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-01-20:/pypi-on-couchdb.html</guid></item><item><title>Help me to go to the distutils2 paris' sprint</title><link>https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html</link><description>
&lt;p&gt;&lt;strong&gt;Edit: Thanks to logilab and some amazing people, I can make it to
paris for the sprint. Many thanks to them for the support!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There will be a distutils2 sprint from the 27th to the 30th of january,
thanks to logilab which will host the event.&lt;/p&gt;
&lt;p&gt;You can find more …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 15 Jan 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2011-01-15:/help-me-to-go-to-the-distutils2-paris-sprint.html</guid></item><item><title>Fork you! or how the social coding can help you</title><link>https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html</link><description>
&lt;p&gt;With &lt;a href="http://github.com"&gt;github&lt;/a&gt; and
&lt;a href="http://www.bitbucket.org"&gt;bitbucket&lt;/a&gt; coming around, a lot of new usages
appears for the developpers: it's now easy to get feedback on your
code/modifications, and to get help from others by, for instance,
forking repositories.&lt;/p&gt;
&lt;p&gt;Eeach time I see people helping others, I'm amazed by how we like to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 05 Nov 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-11-05:/fork-you-or-how-the-social-coding-can-help-you.html</guid></item><item><title>How to reboot your bebox using the CLI</title><link>https://blog.notmyidea.org/how-to-reboot-your-bebox-using-the-cli.html</link><description>
&lt;p&gt;I've an internet connection which, for some obscure reasons, tend to be
very slow from time to time. After rebooting the box (yes, that's a hard
solution), all the things seems to go fine again.&lt;/p&gt;
&lt;h2 id="edit-using-grep"&gt;EDIT : Using grep&lt;/h2&gt;
&lt;p&gt;After a bit of reflexion, that's also really easy to do using …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 21 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-21:/how-to-reboot-your-bebox-using-the-cli.html</guid></item><item><title>Dynamically change your gnome desktop wallpaper</title><link>https://blog.notmyidea.org/dynamically-change-your-gnome-desktop-wallpaper.html</link><description>
&lt;p&gt;In gnome, you can can use a XML file to have a dynamic wallpaper. It's
not so easy, and you can't just tell: use the pictures in this folder to
do so.&lt;/p&gt;
&lt;p&gt;You can have a look to the git repository if you want:
&lt;a href="http://github.com/ametaireau/gnome-background-generator"&gt;http://github.com/ametaireau/gnome-background-generator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 11 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-11:/dynamically-change-your-gnome-desktop-wallpaper.html</guid></item><item><title>How to install NGINX + PHP 5.3 on FreeBSD.</title><link>https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html</link><description>
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;date&lt;br&gt;
2010-10-10&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;category&lt;br&gt;
tech&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I've not managed so far to get completely rid of php, so here's a simple
reminder about how to install php on NGINX, for FreeBSD. Nothing hard,
but that's worse to have the piece of configuration somewhere !&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt; &lt;span class="k"&gt;update&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;ports&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;portsnap&lt;/span&gt; &lt;span class="k"&gt;fetch&lt;/span&gt; &lt;span class="k"&gt;update&lt;/span&gt;
&lt;span class="o"&gt;#&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;php5&lt;/span&gt; &lt;span class="n"&gt;port …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 10 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-10:/how-to-install-nginx-php-53-on-freebsd.html</guid></item><item><title>Pelican, a simple static blog generator in python</title><link>https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html</link><description>
&lt;p&gt;Those days, I've wrote a little python application to fit my blogging
needs. I'm an occasional blogger, a vim lover, I like restructured text
and DVCSes, so I've made a little tool that makes good use of all that.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://docs.getpelican.com"&gt;Pelican&lt;/a&gt; (for calepin) is just a simple
tool to generate your …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 06 Oct 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-10-06:/pelican-a-simple-static-blog-generator-in-python.html</guid></item><item><title>An amazing summer of code working on distutils2</title><link>https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html</link><description>
&lt;p&gt;The &lt;a href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; I've spent
working on &lt;a href="http://hg.python.org/distutils2/"&gt;distutils2&lt;/a&gt; is over. It
was a really amazing experience, for many reasons.&lt;/p&gt;
&lt;p&gt;First of all, we had a very good team, we were 5 students working on
distutils2: &lt;a href="http://zubin71.wordpress.com"&gt;Zubin&lt;/a&gt;,
&lt;a href="http://wokslog.wordpress.com/"&gt;Éric&lt;/a&gt;,
&lt;a href="http://gsoc.djolonga.com/"&gt;Josip&lt;/a&gt;,
&lt;a href="http://konryd.blogspot.com/"&gt;Konrad&lt;/a&gt; and me. In addition,
&lt;a href="http://mouadino.blogspot.com/"&gt;Mouad&lt;/a&gt; have worked on the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Mon, 16 Aug 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-08-16:/an-amazing-summer-of-code-working-on-distutils2.html</guid></item><item><title>Sprinting on distutils2 in Tours</title><link>https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html</link><description>
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;date&lt;br&gt;
2010-07-06&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;category&lt;br&gt;
tech&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yesterday, as I was traveling to Tours, I've took some time to visit
Éric, another student who's working on distutils2 this summer, as a
part of the GSoC. Basically, it was to take a drink, discuss a bit about
distutils2, our respective tasks and general feelings …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 10 Jul 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-07-10:/sprinting-on-distutils2-in-tours.html</guid></item><item><title>Introducing the distutils2 index crawlers</title><link>https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html</link><description>
&lt;p&gt;I'm working for about a month for distutils2, even if I was being a bit
busy (as I had some class courses and exams to work on)&lt;/p&gt;
&lt;p&gt;I'll try do sum-up my general feelings here, and the work I've made so
far. You can also find, if you're interested, my …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Tue, 06 Jul 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-07-06:/introducing-the-distutils2-index-crawlers.html</guid></item><item><title>Use Restructured Text (ReST) to power your presentations</title><link>https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html</link><description>
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;date&lt;br&gt;
2010-06-25&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;category&lt;br&gt;
tech&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wednesday, we give a presentation, with some friends, about the CouchDB
Database, to &lt;a href="http://www.toulibre.org"&gt;the Toulouse local LUG&lt;/a&gt;. Thanks a
lot to all the presents for being there, it was a pleasure to talk about
this topic with you. Too bad the season is over now an …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 25 Jun 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-06-25:/use-restructured-text-rest-to-power-your-presentations.html</guid></item><item><title>first week working on distutils2</title><link>https://blog.notmyidea.org/first-week-working-on-distutils2.html</link><description>
&lt;p&gt;As I've been working on &lt;a href="http://hg.python.org/distutils2/"&gt;Distutils2&lt;/a&gt;
during the past week, taking part of the
&lt;a href="http://code.google.com/intl/fr/soc/"&gt;GSOC&lt;/a&gt; program, here is a short
summary of what I've done so far.&lt;/p&gt;
&lt;p&gt;As my courses are not over yet, I've not worked as much as I wanted, and
this will continues until the end of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Fri, 04 Jun 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-06-04:/first-week-working-on-distutils2.html</guid></item><item><title>A Distutils2 GSoC</title><link>https://blog.notmyidea.org/a-distutils2-gsoc.html</link><description>
&lt;p&gt;WOW. I've been accepted to be a part of the &lt;a href="http://code.google.com/intl/fr/soc/"&gt;Google Summer Of
Code&lt;/a&gt; program, and will work on
&lt;a href="http://python.org/"&gt;python&lt;/a&gt; &lt;a href="http://hg.python.org/distutils2/"&gt;distutils2&lt;/a&gt;, with &lt;a href="http://pygsoc.wordpress.com/"&gt;a&lt;/a&gt; &lt;a href="http://konryd.blogspot.com/"&gt;lot&lt;/a&gt; &lt;a href="http://ziade.org/"&gt;of&lt;/a&gt; (intersting !) &lt;a href="http://zubin71.wordpress.com/"&gt;people&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt; &lt;blockquote&gt;
So, it's about building the successor of Distutils2, ie. &amp;quot;the &lt;p&gt;So, it's about building the successor of Distutils2, ie. "the python
python package manager&amp;quot;. Today, there is too&amp;nbsp;many ways to package a package manager". Today, there is too many ways to package a python …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 01 May 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-05-01:/a-distutils2-gsoc.html</guid></item><item><title>Le temps des grâces, courrez-y !</title><link>https://blog.notmyidea.org/le-temps-des-graces-courrez-y.html</link><description>
python …&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sat, 01 May 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-05-01:/a-distutils2-gsoc.html</guid></item><item><title>Le temps des grâces, courrez-y !</title><link>https://blog.notmyidea.org/le-temps-des-graces-courrez-y-fr.html</link><description>&lt;p&gt;Ouf, notre &lt;p&gt;Ouf, notre &lt;a href="http://www.reseaugrappe.org"&gt;semaine de l'environnement&lt;/a&gt;
&lt;a class="reference external" href="http://www.reseaugrappe.org"&gt;semaine de l'environnement&lt;/a&gt; s'est s'est terminée, après un peu de neige et un brin de soleil quand il en
terminée, après un peu de neige et un brin de soleil quand il en
fallait.&lt;/p&gt; fallait.&lt;/p&gt;
&lt;p&gt;Ce fut l'occasion de rencontrer beaucoup de gens biens, et &lt;p&gt;Ce fut l'occasion de rencontrer beaucoup de gens biens, et de regarder
de regarder d'un peu plus près toutes ces problématiques qui d'un peu plus près toutes ces problématiques qui mériteraient à elles
mériteraient à elles seules, chacune un billet. Après un …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 28 Mar 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-03-28:/le-temps-des-graces-courrez-y-fr.html</guid></item><item><title>Semaine de lenvironnement: La consommation étudiante</title><link>https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante-fr.html</link><description>&lt;p&gt;Les acteurs associatifs sont bien souvent moteurs des critiques de nos sociétés. Je pense à &lt;a class="reference external" href="http://www.framasoft.net/"&gt;Framasoft&lt;/a&gt;, à &lt;a class="reference external" href="http://www.laquadrature.net/"&gt;la Quadrature du net&lt;/a&gt; ou à &lt;a class="reference external" href="http://www.arsindustrialis.org/"&gt;Ars Industrialis&lt;/a&gt; (dans le domaine de la science et de l'informatique), mais aussi &lt;a class="reference external" href="http://www.amisdelaterre.org/"&gt;aux Amis de la Terre&lt;/a&gt;, à &lt;a class="reference external" href="http://www.attac.org/"&gt;ATTAC&lt;/a&gt; (dans le domaine de l'environnement entres autres …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 24 Feb 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-02-24:/semaine-de-lenvironnement-la-consommation-etudiante-fr.html</guid></item><item><title>Python ? go !</title><link>https://blog.notmyidea.org/python-go-fr.html</link><description>&lt;p&gt;Cela fait maintenant un peu plus d'un mois que je travaille sur un seules, chacune un billet. Après un …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Sun, 28 Mar 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-03-28:/le-temps-des-graces-courrez-y.html</guid></item><item><title>Semaine de lenvironnement: La consommation étudiante</title><link>https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante.html</link><description>
projet en &lt;a class="reference external" href="http://www.djangoproject.org"&gt;django&lt;/a&gt;, et que, &lt;p&gt;Les acteurs associatifs sont bien souvent moteurs des critiques de nos
nécessairement, je me forme à &lt;a class="reference external" href="http://python.org/"&gt;Python&lt;/a&gt;. Je sociétés. Je pense à &lt;a href="http://www.framasoft.net/"&gt;Framasoft&lt;/a&gt;, à &lt;a href="http://www.laquadrature.net/"&gt;la
prends un plaisir non dissimulé à découvrir ce langage (et à Quadrature du net&lt;/a&gt; ou à &lt;a href="http://www.arsindustrialis.org/"&gt;Ars
l'utiliser), qui ne cesse de me surprendre. Les premiers mots qui Industrialis&lt;/a&gt; (dans le domaine de la
me viennent à …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 17 Dec 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2009-12-17:/python-go-fr.html</guid></item><item><title>AMAP + Média = Paniers bio à 5e ?!</title><link>https://blog.notmyidea.org/amap-media-paniers-bio-a-5e-fr.html</link><description>&lt;p&gt;Le raccourci me semble un peu rapide. Et pourtant, il est emprunté science et de l'informatique), mais aussi &lt;a href="http://www.amisdelaterre.org/"&gt;aux Amis de la
bien trop souvent. La dernière &lt;em&gt;mes-utilisation&lt;/em&gt; que j'ai à décrier Terre&lt;/a&gt;, à &lt;a href="http://www.attac.org/"&gt;ATTAC&lt;/a&gt;
est celle d'un reportage télé, passé sur France 2 vendredi 23 (dans le domaine de l'environnement entres autres …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 24 Feb 2010 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2010-02-24:/semaine-de-lenvironnement-la-consommation-etudiante.html</guid></item><item><title>Python ? go !</title><link>https://blog.notmyidea.org/python-go.html</link><description>
Octobre &lt;p&gt;Cela fait maintenant un peu plus d'un mois que je travaille sur un
(&lt;a class="reference external" href="http://docs.notmyidea.org/amap/amap-fr2.avi"&gt;voir la vidéo&lt;/a&gt;), projet en &lt;a href="http://www.djangoproject.org"&gt;django&lt;/a&gt;, et que,
ou on parles de nécessairement, je me forme à &lt;a href="http://python.org/"&gt;Python&lt;/a&gt;. Je prends
&lt;a class="reference external" href="http://amap.zest.free.fr"&gt;l'AMAP étudiante Zest&lt;/a&gt;.&lt;/p&gt; un plaisir non dissimulé à découvrir ce langage (et à l'utiliser), qui
&lt;p&gt;Malgré tout le temps passé à …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 11 Nov 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2009-11-11:/amap-media-paniers-bio-a-5e-fr.html</guid></item></channel></rss> ne cesse de me surprendre. Les premiers mots qui me viennent à …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Thu, 17 Dec 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2009-12-17:/python-go.html</guid></item><item><title>AMAP + Média = Paniers bio à 5e ?!</title><link>https://blog.notmyidea.org/amap-media-paniers-bio-a-5e.html</link><description>
&lt;p&gt;Le raccourci me semble un peu rapide. Et pourtant, il est emprunté bien
trop souvent. La dernière &lt;em&gt;mes-utilisation&lt;/em&gt; que j'ai à décrier est celle
d'un reportage télé, passé sur France 2 vendredi 23 Octobre (&lt;a href="http://docs.notmyidea.org/amap/amap-fr2.avi"&gt;voir la
vidéo&lt;/a&gt;), ou on parles de
&lt;a href="http://amap.zest.free.fr"&gt;l'AMAP étudiante Zest&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Malgré tout le temps passé à …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexis Métaireau</dc:creator><pubDate>Wed, 11 Nov 2009 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2009-11-11:/amap-media-paniers-bio-a-5e.html</guid></item></channel></rss>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,174 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - beer</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/beer.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2017-12-29T00:00:00+01:00</updated><entry><title>NEIPA #3</title><link href="https://blog.notmyidea.org/neipa-3.html" rel="alternate"></link><published>2017-12-29T00:00:00+01:00</published><updated>2017-12-29T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2017-12-29:/neipa-3.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Test autour d'une New England Pale Ale; Cette fois ci avec du Mosaic et du Citra, durant une collab' avec Heiko.&lt;/p&gt;
&lt;h1&gt;Objectifs:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Brasser une nouvelle NEIPA en appliquant les …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Test autour d'une New England Pale Ale; Cette fois ci avec du Mosaic et du Citra, durant une collab' avec Heiko.&lt;/p&gt;
&lt;h1&gt;Objectifs:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Brasser une nouvelle NEIPA en appliquant les trouvailles des deux premières versions;&lt;/li&gt;
&lt;li&gt;Hop stand de 40mn;&lt;/li&gt;
&lt;li&gt;Contrôle du pH à 5.2;&lt;/li&gt;
&lt;li&gt;Refroidissement dans l'évier;&lt;/li&gt;
&lt;li&gt;Ajouter plus d'avoine;&lt;/li&gt;
&lt;li&gt;Faire un mash out;&lt;/li&gt;
&lt;li&gt;Augmenter un peu la quantité de grain.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Recette:&lt;/h1&gt;
&lt;p&gt;DI: 1055 (atteint)
pH: 5.2 (5.4 mesuré)&lt;/p&gt;
&lt;h2&gt;Grains:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;75% de Pale Ale&lt;/li&gt;
&lt;li&gt;12.5% de blé&lt;/li&gt;
&lt;li&gt;12.5% flocons d'avoine&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Houblons:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;2g/L Mosaic (Hop Stand 40mn)&lt;/li&gt;
&lt;li&gt;2g/L Citra (Hop Stand 40mn)&lt;/li&gt;
&lt;li&gt;4g/L Citra à cru (en deux fois)&lt;/li&gt;
&lt;li&gt;4g/L Mosaic à cru (en deux fois)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Eau:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Utilisation d'eau de source, pour pouvoir corriger les sulfates / chlorures.&lt;/li&gt;
&lt;li&gt;200 Chlorures pour 100 Sulfates.&lt;/li&gt;
&lt;li&gt;
&lt;h2&gt;Gypse: 1g&lt;/h2&gt;
&lt;dl&gt;
&lt;dd&gt;1.8g (=4.05ml)&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;Acide lactique: 0.4ml&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Profil d'empatage:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;68°C durant 40mn;&lt;/li&gt;
&lt;li&gt;75°C durant 10mn (mash-out)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Levure&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GigaYeast «Vermont Ale». Le nombre de cellules n'est pas indiqué sur le packaging, ni en ligne.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Déroulé&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;12h50: empâtage à 68°C&lt;/li&gt;
&lt;li&gt;pH = 5.5. Ajout de 0.2 d'acide.&lt;/li&gt;
&lt;li&gt;Pas mal de mesures du pH:&lt;ul&gt;
&lt;li&gt;5.2@23°C (13h05)&lt;/li&gt;
&lt;li&gt;5.4@18°C (13h05)&lt;/li&gt;
&lt;li&gt;5.2@27°C (13h15)&lt;/li&gt;
&lt;li&gt;5.3@19°C (13h20)&lt;/li&gt;
&lt;li&gt;5.4@25°C (13h30)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;13h33: Mash-out à 78°C durant 10mn&lt;/li&gt;
&lt;li&gt;Test à l'iode: OK&lt;/li&gt;
&lt;li&gt;14h11: 1er rincage. Densité premier mout: 1070&lt;/li&gt;
&lt;li&gt;15h40: Hop Stand (15g Citra / 15g Mosaic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Fermentation&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;31/12/2017 - Fermentation à 20°C&lt;/li&gt;
&lt;li&gt;01/01/2018 - Ajout de 12g de Citra et 12g de Mosaic après deux jours.&lt;/li&gt;
&lt;li&gt;10/01/2018 - 1.040 SG = 1.008 corrigé&lt;/li&gt;
&lt;li&gt;15/01/2018 - Ajout de 12g de Citra et 12g de Mosaic&lt;/li&gt;
&lt;li&gt;15/01/2018 - Cold Crash&lt;/li&gt;
&lt;li&gt;21/01/2018 - Mise en bouteille. Resucrage à 7g/L.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Observations:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;En mettant 1.5ml d'acide, si on mesure le pH de l'eau, il est à 3.5. Ça nous à pas mal effrayé, puisque on a pas trop l'habitude de monitorer le pH. On refait: 0.4ml d'acide = pH de 4.1. Au final, cela ne semble pas utile de mesurer le pH de l'eau avant de mettre son grain.&lt;/li&gt;
&lt;li&gt;Je le savais déjà, mais travailler à deux en discutant n'est pas vraiment une bonne idée: sur les opérations un peu technique, un manque de concentration se fait tout de suite ressentir.&lt;/li&gt;
&lt;li&gt;BeerSmith semble proposer un outil pour calculer les modifications de pH, je devrais l'utiliser la prochaine fois.&lt;/li&gt;
&lt;li&gt;Baisser le ration d'empâtage: On s'est retrouvé avec beaucoup trop d'eau de rincage, alors qu'on était sur une bière assez faible en densité.&lt;/li&gt;
&lt;li&gt;Au final, ajouter l'acide au départ est problématique pour le pH de l'eau qui baisse énormement. Après quelques recherches, il semble qu'il faille faire confiance au logiciel, et prendre une seule mesure de pH à 10mn (cela devrait être stable). Le pHmetre est aussi peut-être en cause.&lt;/li&gt;
&lt;li&gt;D'une manière générale, j'ai l'impression d'être un peu à l'arrache sur la partie fermentation. Il faudrait vraiment que j'ai un plan et que je m'y tienne. Plusieurs questions me semblent encore à résoudre: combien de temps laisser le houblon à cru ? A quelle température ?&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>NEIPA #2</title><link href="https://blog.notmyidea.org/neipa-2.html" rel="alternate"></link><published>2017-12-18T00:00:00+01:00</published><updated>2017-12-18T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2017-12-18:/neipa-2.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;Objectifs:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Corriger les erreurs du précédent brassin.&lt;/li&gt;
&lt;li&gt;Éviter les soucis de filtration&lt;/li&gt;
&lt;li&gt;Mieux corriger le pH&lt;/li&gt;
&lt;li&gt;Faire un whirlpool digne de ce nom / avoir moins de trub dans le …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;Objectifs:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Corriger les erreurs du précédent brassin.&lt;/li&gt;
&lt;li&gt;Éviter les soucis de filtration&lt;/li&gt;
&lt;li&gt;Mieux corriger le pH&lt;/li&gt;
&lt;li&gt;Faire un whirlpool digne de ce nom / avoir moins de trub dans le fermenteur&lt;/li&gt;
&lt;li&gt;Ne pas se laisser avoir par la baisse de température durant l'empâtage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Recette:&lt;/h1&gt;
&lt;p&gt;DI: 1060 (1050 mesuré)
pH: 5.2 (atteint)&lt;/p&gt;
&lt;h2&gt;Grains:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;90% Pils&lt;/li&gt;
&lt;li&gt;10% Flocons d'avoine&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Houblons:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;2g/L Wakatu (au Whirlpool)&lt;/li&gt;
&lt;li&gt;2g/L Motueka (au Whirlpool)&lt;/li&gt;
&lt;li&gt;4.5g/L Wakatu à cru (en deux fois)&lt;/li&gt;
&lt;li&gt;2.5g/L Motueka à cru (en deux fois)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Eau:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Utilisation d'eau de source, pour pouvoir corriger les sulfates / chlorures.&lt;/li&gt;
&lt;li&gt;200 Chlorures pour 100 Sulfates.&lt;/li&gt;
&lt;li&gt;Gypse: 0.9g&lt;/li&gt;
&lt;li&gt;CaCl2: 3.4g&lt;/li&gt;
&lt;li&gt;Acide lactique: Au batch précédent, j'avais mesuré 5.6, donc: ajout de +2ml d'acide (=2.4g).&lt;/li&gt;
&lt;li&gt;Utilisation d'Irish Moss (2g) pour coaguler les protéines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Profil d'empatage:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;65°C durant 90mn (68°C au départ, 65 visé)&lt;/li&gt;
&lt;li&gt;78°C durant 10mn (mash-out)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Levure&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;London Ale III.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Déroulé&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;18h36 - empatage à 65°C&lt;/li&gt;
&lt;li&gt;19h16- pH = 5.2&lt;/li&gt;
&lt;li&gt;Densité 1er moût: 1070&lt;/li&gt;
&lt;li&gt;Ébullition importante pour atteindre 6,2L avec la bonne densité.&lt;/li&gt;
&lt;li&gt;Mash-out à 78°C durant 10mn&lt;/li&gt;
&lt;li&gt;Test à l'iode: NOK&lt;/li&gt;
&lt;li&gt;1er rincage. Densité premier mout: 1070&lt;/li&gt;
&lt;li&gt;15h40: Hop Stand (15g Citra / 15g Mosaic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Fermentation&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;18/12/2017 - Fermentation à 18°C&lt;/li&gt;
&lt;li&gt;21/12/2017 - Ajout de 13.5g de Wakatu et 7.5g de Motueka&lt;/li&gt;
&lt;li&gt;30/12/2017 - Ajout de 13.5g de Wakatu et 7.5g de Motueka&lt;/li&gt;
&lt;li&gt;30/12/2017 - Passage à 10°C.&lt;/li&gt;
&lt;li&gt;15/01/2018 - Cold Crash&lt;/li&gt;
&lt;li&gt;21/01/2018 - Mise en bouteille. Resucrage à 7g/L.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Observations:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Je change de technique, et mets l'acide lactique directement dans l'eau.&lt;/li&gt;
&lt;li&gt;Je concasse moins fin mais reteste quand même l'avoine. Aucun souci de filtration (mais l'avoine n'est pas concassé).&lt;/li&gt;
&lt;li&gt;1g de CaCl2 ~= 2.25ml en solution à 33%.&lt;/li&gt;
&lt;li&gt;Les deux thermomètres n'affichent pas la même température. Super :(.&lt;/li&gt;
&lt;li&gt;Au final, jempâte dans une casserole pour pouvoir faire un mash-out.&lt;/li&gt;
&lt;li&gt;Le pH oscille pas mal durant l'empâtage. J'ai mesuré des pH de 4.9 à certains moments, mais au final la dernière lecture est de 5.2, ce qui me semble bon.&lt;/li&gt;
&lt;li&gt;Le système que j'utilise (refroidisseur en cuivre) pour refroidir mon moût n'est pas génial parce que ça mélange pas mal ce qu'on veut voir se déposer au fond de la cuve. Refroidir directement dans l'évier est vachement plus simple (c'est pratique de faire du 6L pour çà !)&lt;/li&gt;
&lt;li&gt;Le teste à l'iode était positif: tout n'était pas converti. Mais à 90mn de mash, je ne crois pas pouvoir faire grand chose de plus.&lt;/li&gt;
&lt;li&gt;Idée en vrac, à voir à la dégustation, mais ajouter un peu de cara pourrait être sympa.&lt;/li&gt;
&lt;li&gt;L'irish moss à vraiment bien fonctionné. Je me demande si je ne devrais pas même laisser décanter un peu plus longtemps durant le whirlpool pour avoir un effet encore plus impressionnant.&lt;/li&gt;
&lt;li&gt;Je trouve que l'efficacité de cette brasserie est vraiment pourrie.&lt;/li&gt;
&lt;li&gt;Un peu d'eau est venue diluer le moût (DI = 1050 au lieu de 1060 souhaité)&lt;/li&gt;
&lt;li&gt;Au goût, le moût à vraiment un goût qui m'assèche la gorge. Trop de modifications de l'eau ? A voir si l'effet persiste après fermentation.&lt;/li&gt;
&lt;li&gt;A priori, d'après un article de Scott Janish, empâter avec de l'avoine cru ne fonctionne que si on empate haut. Ca à un impact sur l'efficacité générale (2h pour conversion totale, c'est peut-être pour ça que mon teste à l'iode était positif)&lt;/li&gt;
&lt;li&gt;Sur l'avoine toujours, il faut &lt;strong&gt;dépasser 18%&lt;/strong&gt; pour avoir un côté moelleux. Certains mettent jusqu'à 40% !&lt;/li&gt;
&lt;/ul&gt;</content></entry></feed>

View file

@ -1,45 +1,33 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - biere</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/biere.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2017-11-06T00:00:00+01:00</updated><entry><title>Un club des brasseurs amateurs Rennais</title><link href="https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html" rel="alternate"></link><published>2017-11-06T00:00:00+01:00</published><updated>2017-11-06T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2017-11-06:/un-club-des-brasseurs-amateurs-rennais.html</id><summary type="html">&lt;p&gt;En Mars dernier, suite à quelques discussions entre brasseurs amateurs, on à décidé de monter &lt;a href="https://framalistes.org/sympa/subscribe/brassam-rennes"&gt;une liste de diffusion&lt;/a&gt; pour faciliter les échanges autour du brassage amateur sur Rennes et ses alentours.&lt;/p&gt; <feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis - Carnets en ligne - Brassage</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/brassage.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2017-10-17T00:00:00+02:00</updated><entry><title>L'arrivée du trouble (ou comment faire des NEIPA ?)</title><link href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html" rel="alternate"></link><published>2017-10-17T00:00:00+02:00</published><updated>2017-10-17T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2017-10-17:/larrivee-du-trouble-ou-comment-faire-des-neipa.html</id><summary type="html">&lt;p&gt;&lt;strong&gt;Ceci est une traduction d'un article paru dans le magazine « Brew Your Own » en Octobre 2016, écrit par Dave Green&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un peu plus tard, &lt;a href="https://www.facebook.com/groups/899071153568179/"&gt;un groupe Facebook&lt;/a&gt; est venu s'ajouter, et c'est vrai qu'on sent une dynamique naissante …&lt;/p&gt;</summary><content type="html">&lt;p&gt;En Mars dernier, suite à quelques discussions entre brasseurs amateurs, on à décidé de monter &lt;a href="https://framalistes.org/sympa/subscribe/brassam-rennes"&gt;une liste de diffusion&lt;/a&gt; pour faciliter les échanges autour du brassage amateur sur Rennes et ses alentours.&lt;/p&gt;
&lt;p&gt;Un peu plus tard, &lt;a href="https://www.facebook.com/groups/899071153568179/"&gt;un groupe Facebook&lt;/a&gt; est venu s'ajouter, et c'est vrai qu'on sent une dynamique naissante autour de la brasserie artisanale dans le coin.&lt;/p&gt;
&lt;p&gt;En six mois, on est maintenant une grosse trentaine de personnes à être inscrits sur les listes et à se retrouver de temps à autres.&lt;/p&gt;
&lt;p&gt;On en profite pour s'échanger des bons plans, déguster nos créations, (essayer de) faire des commandes groupées de malt, et pour se rencontrer pour papoter entre passionnés.&lt;/p&gt;
&lt;p&gt;On a pas mal d'idées de trucs sympa a faire, entre autres:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;brasser une fois en gros puis se séparer le batch en plein de petits fermenteurs pour essayer différentes levures, différents houblons en &lt;em&gt;dry hop&lt;/em&gt;, etc.&lt;/li&gt;
&lt;li&gt;A la dernière rencontre, on s'est mis d'accord sur un style de bière pour se lancer un petit défi: tous brasser &lt;a href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html"&gt;une NEIPA&lt;/a&gt; pour ensuite comparer nos résultats.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bref, c'est plutôt chouette ! Je me suis rendu compte qu'on avait quasiment aucune existence en dehors des réseaux sociaux, alors je me permet de publier ce petit bout d'article avec quelques liens…&lt;/p&gt;
&lt;p&gt;Si tu es dans le coin et que tu souhaite nous rencontrer, n'hésite pas à rejoindre &lt;a href="https://www.facebook.com/groups/899071153568179/"&gt;notre groupe de discussion Facebook&lt;/a&gt; et notre &lt;a href="https://framalistes.org/sympa/subscribe/brassam-rennes"&gt;liste de diffusion mail&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A bientôt ;)&lt;/p&gt;</content></entry><entry><title>L'arrivée du trouble (ou comment faire des NEIPA ?)</title><link href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html" rel="alternate"></link><published>2017-10-17T00:00:00+02:00</published><updated>2017-10-17T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2017-10-17:/larrivee-du-trouble-ou-comment-faire-des-neipa.html</id><summary type="html">&lt;p&gt;&lt;strong&gt;Ceci est une traduction d'un article paru dans le magazine « Brew Your Own » en Octobre 2016, écrit par Dave Green&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est la saison des élections aux états unis et la bataille entre les partis politiques semble être plus controversée que d'habitude. Coincidemment, les buveurs de bières « Craft» US semblent avoir …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;Ceci est une traduction d'un article paru dans le magazine « Brew Your Own » en Octobre 2016, écrit par Dave Green&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;C'est la saison des élections aux états unis et la bataille entre les partis politiques semble être plus controversée que d'habitude. Coincidemment, les buveurs de bières « Craft» US semblent avoir …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;Ceci est une traduction d'un article paru dans le magazine « Brew Your Own » en Octobre 2016, écrit par Dave Green&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est la saison des élections aux états unis et la bataille entre les partis politiques semble être plus controversée que d'habitude. Coincidemment, les buveurs de bières « Craft» US semblent avoir leur propre bataille qui divise au moins autant: une IPA peut elle être aussi trouble qu'une hefeweizen ? En provenance du coin Nord Est des  États-Unis, l'IPA trouble est en passe de devenir culte depuis quelques années. Mais la mode ne vient pas sans contrecoup. En fait, tout le monde y va de son opinion chez les brasseurs artisanaux. Pour ceux qui apprécient ce type d'IPA, l'apparence trouble signifie que les gorgées qui suivent seront extrèmenent riches en huiles de houblons; pour les autres, l'apparence est un affront à des principes ancestraux. Que vous les appeliez des rince-bouches, des soupes boueuses, brillantes ou horribles, ne vous faites pas de fausse idée: ces ales troubles sont là pour rester.&lt;/p&gt; &lt;p&gt;C'est la saison des élections aux états unis et la bataille entre les partis politiques semble être plus controversée que d'habitude. Coincidemment, les buveurs de bières « Craft» US semblent avoir leur propre bataille qui divise au moins autant: une IPA peut elle être aussi trouble qu'une hefeweizen ? En provenance du coin Nord Est des États-Unis, l'IPA trouble est en passe de devenir culte depuis quelques années. Mais la mode ne vient pas sans contrecoup. En fait, tout le monde y va de son opinion chez les brasseurs artisanaux. Pour ceux qui apprécient ce type d'IPA, l'apparence trouble signifie que les gorgées qui suivent seront extrèmenent riches en huiles de houblons; pour les autres, l'apparence est un affront à des principes ancestraux. Que vous les appeliez des rince-bouches, des soupes boueuses, brillantes ou horribles, ne vous faites pas de fausse idée: ces ales troubles sont là pour rester.&lt;/p&gt;
&lt;p&gt;Pour commencer cette histoire, revenons un peu au début des années 1990. La scène brassicole artisanale était en train de vivre son premier boom et les nouvelles brasseries faisaient leur apparition dans tous les coins des États-Unis. Menée par Sierra Nevada Brewing Company, les American Pale Ale et les American IPA étaient en train démerger en tant que styles populaires parmi les amateurs de bière, pour leurs caractéristiques riches en houblon.&lt;/p&gt; &lt;p&gt;Pour commencer cette histoire, revenons un peu au début des années 1990. La scène brassicole artisanale était en train de vivre son premier boom et les nouvelles brasseries faisaient leur apparition dans tous les coins des États-Unis. Menée par Sierra Nevada Brewing Company, les American Pale Ale et les American IPA étaient en train démerger en tant que styles populaires parmi les amateurs de bière, pour leurs caractéristiques riches en houblon.&lt;/p&gt;
&lt;p&gt;Le niveau d'amertume était un trait notoire, et avoir la bonne morsure d'amertume était essentiel pour une IPA. L'innovation a ensuite commencée à arriver sur la cote Ouest des États Unis à la fin des années 1990, et au début des années 2000, quand quelques doubles ou impériales IPA telles que Pliny the Elder de Russian River et Ruination IPA de Stone Brewing ont commencées à sortir des fermenteurs. Alors que celles ci contenaient énormement de « morsure du houblon», ce qui séparaient ces bières de beaucoup d'autres versions du style était le fait que le nez et la saveur du houblon semblaient éclater de la bière.&lt;/p&gt; &lt;p&gt;Le niveau d'amertume était un trait notoire, et avoir la bonne morsure d'amertume était essentiel pour une IPA. L'innovation a ensuite commencée à arriver sur la cote Ouest des États Unis à la fin des années 1990, et au début des années 2000, quand quelques doubles ou impériales IPA telles que Pliny the Elder de Russian River et Ruination IPA de Stone Brewing ont commencées à sortir des fermenteurs. Alors que celles ci contenaient énormement de « morsure du houblon», ce qui séparaient ces bières de beaucoup d'autres versions du style était le fait que le nez et la saveur du houblon semblaient éclater de la bière.&lt;/p&gt;
&lt;p&gt;Du point de vue du brasseur, les huiles essentielles de ces houblons étaient bien plus présents que les acides alpha. En utilisant un profil de malt neutre et une souche de levure neutre, ces bières laissaient la part belle aux houblons. Ces brasseurs utilisaient aussi des houblons souvent critiqués, forts en acides alpha, tels que Columbus, Centennial, Simcoe et Chinook à la fin de l'ébullition ou en houblonnage à cru... et en grosses quantitées. Cela peut sembler comme une pratique courante pour une IPA actuellement, mais il y a à peine 15 ans, la plupart de la littérature évitaient d'utiliser ces variétés de houblon pour une utilisation autre que de l'amérisant. Lévolution d'une nouvelle American IPA était en train de prendre forme, sur la cote Ouest des étants unis, un style que les buveurs de bière ont nommé la « West Coast IPA».&lt;/p&gt; &lt;p&gt;Du point de vue du brasseur, les huiles essentielles de ces houblons étaient bien plus présents que les acides alpha. En utilisant un profil de malt neutre et une souche de levure neutre, ces bières laissaient la part belle aux houblons. Ces brasseurs utilisaient aussi des houblons souvent critiqués, forts en acides alpha, tels que Columbus, Centennial, Simcoe et Chinook à la fin de l'ébullition ou en houblonnage à cru... et en grosses quantitées. Cela peut sembler comme une pratique courante pour une IPA actuellement, mais il y a à peine 15 ans, la plupart de la littérature évitaient d'utiliser ces variétés de houblon pour une utilisation autre que de l'amérisant. Lévolution d'une nouvelle American IPA était en train de prendre forme, sur la cote Ouest des étants unis, un style que les buveurs de bière ont nommé la « West Coast IPA».&lt;/p&gt;
&lt;h1&gt;La phase de démarrage&lt;/h1&gt; &lt;h1 id="la-phase-de-demarrage"&gt;La phase de démarrage&lt;/h1&gt;
&lt;p&gt;De retour sur la cote Est des États-Unis, dans un petit brewpub de Burlington à Vermont, deux brasseurs commencent innocemment à développer un type d'American IPA avec des objectifs similaires que les brasseurs de la côte Ouest, mais en utilisant une stratégie différente. Crée en 1988 par Greg Noonan et Steve Polewacyk, le « Vermont Pub &amp;amp; Brewery » deviendra le berceau d'une nouvelle révolution autour des IPA.&lt;/p&gt; &lt;p&gt;De retour sur la cote Est des États-Unis, dans un petit brewpub de Burlington à Vermont, deux brasseurs commencent innocemment à développer un type d'American IPA avec des objectifs similaires que les brasseurs de la côte Ouest, mais en utilisant une stratégie différente. Crée en 1988 par Greg Noonan et Steve Polewacyk, le « Vermont Pub &amp;amp; Brewery » deviendra le berceau d'une nouvelle révolution autour des IPA.&lt;/p&gt;
&lt;p&gt;Souvent citée comme étant les premiers brasseurs des Black IPA modernes ainsi que des New England IPA, offrant une variété de bières qui était extrèmement rare à cette époque, le « Vermont Pub &amp;amp; Brewery » a des racines provenant de la connaissance du brassage et de la chimie de Greg Noonan, ainsi que son flair pour la créativité.&lt;/p&gt; &lt;p&gt;Souvent citée comme étant les premiers brasseurs des Black IPA modernes ainsi que des New England IPA, offrant une variété de bières qui était extrèmement rare à cette époque, le « Vermont Pub &amp;amp; Brewery » a des racines provenant de la connaissance du brassage et de la chimie de Greg Noonan, ainsi que son flair pour la créativité.&lt;/p&gt;
&lt;p&gt;Se reposant sur la révolution de la bière mondiale (menée par Michael Jackson), Greg Noonan à exploré des styles de bières qui étaient en dehors des sentiers battus, même pour les brasseurs qui étaient déjà en avance sur leur temps.&lt;/p&gt; &lt;p&gt;Se reposant sur la révolution de la bière mondiale (menée par Michael Jackson), Greg Noonan à exploré des styles de bières qui étaient en dehors des sentiers battus, même pour les brasseurs qui étaient déjà en avance sur leur temps.&lt;/p&gt;
&lt;p&gt;Arrive John Kimmich, qui, en 1994 à déménagé dans le Vermont avec l'objectif de brasser sous la tutelle de Greg Noonan. John à travaillé un temps à Pittsburg (en Pennsylvanie) dans un &lt;em&gt;home brewshop&lt;/em&gt; nommé Country Wines. Il a travaillé avec Alexis Hartung et sa grande bibliothèque sur le brassage maison et a eu son premier éclair de génie brassicole en lisant le livre de Greg Noonan « New Brewing Lager Beer ». Un an plus tard, il commence à travailler au « Vermont Pub &amp;amp; Brewery ». En quelques mois, Greg commence à avoir confiance dans les capacités de son nouveau protégé. Avec chaque bière que John travaillait, le mentor était impressionné. Après douze mois, Greg donne la liberté à John dexpérimenter seul sur les recettes.&lt;/p&gt; &lt;p&gt;Arrive John Kimmich, qui, en 1994 à déménagé dans le Vermont avec l'objectif de brasser sous la tutelle de Greg Noonan. John à travaillé un temps à Pittsburg (en Pennsylvanie) dans un &lt;em&gt;home brewshop&lt;/em&gt; nommé Country Wines. Il a travaillé avec Alexis Hartung et sa grande bibliothèque sur le brassage maison et a eu son premier éclair de génie brassicole en lisant le livre de Greg Noonan « New Brewing Lager Beer ». Un an plus tard, il commence à travailler au « Vermont Pub &amp;amp; Brewery ». En quelques mois, Greg commence à avoir confiance dans les capacités de son nouveau protégé. Avec chaque bière que John travaillait, le mentor était impressionné. Après douze mois, Greg donne la liberté à John dexpérimenter seul sur les recettes.&lt;/p&gt;
&lt;p&gt;En 1997, John part du « Vermont Pub &amp;amp; Brewery » et cofonde avec sa femme Jen un brewpub en 2003, le « Alchemist Pub &amp;amp; Brewery », situé 30mn à l'est de Burlington à Waterbury dans le Vermont. A cette époque, Waterbury était un petit village dormant du New England, n'attirant pas grand monde autre que quelques touristes. Il était par contre assez bien situé, à un croisement des chemins, juste à la sortie d'une autoroute majeure, Waterbury est facilement accessible par à la fois les voyageurs en route pour les endroits touristiques et pour les locaux en allant / revenant du travail ou pour leurs excursions shopping. Grâce à ces quelques éléments, Waterbury s'est donc révélé êre un excellent spot pour Jen et John.&lt;/p&gt; &lt;p&gt;En 1997, John part du « Vermont Pub &amp;amp; Brewery » et cofonde avec sa femme Jen un brewpub en 2003, le « Alchemist Pub &amp;amp; Brewery », situé 30mn à l'est de Burlington à Waterbury dans le Vermont. A cette époque, Waterbury était un petit village dormant du New England, n'attirant pas grand monde autre que quelques touristes. Il était par contre assez bien situé, à un croisement des chemins, juste à la sortie d'une autoroute majeure, Waterbury est facilement accessible par à la fois les voyageurs en route pour les endroits touristiques et pour les locaux en allant / revenant du travail ou pour leurs excursions shopping. Grâce à ces quelques éléments, Waterbury s'est donc révélé êre un excellent spot pour Jen et John.&lt;/p&gt;
&lt;p&gt;Une caractéristique unique des bières houblonnées de Kimmich était que lorsque servies fraîches et non filtrées, elles étaient souvent assez troubles. Il trouvait que filtrer ses bières pouvait introduire de l'oxygène non souhaité, enlevant de la bière beaucoup d'aspects intéressants. Il utilisait une souche nommée Conan (VPB1188), une levure que son mentor a développé et que maintenant beaucoup connaissent. Avec les dérivés Anglais, la souche de levure Conan, les bonnes connaissances en brassage de John, ainsi que son habitude à expérimenter avec les houblons, on se retrouve avec une combinaison gagnante pour une révolution du brassage sur la côte est.&lt;/p&gt; &lt;p&gt;Une caractéristique unique des bières houblonnées de Kimmich était que lorsque servies fraîches et non filtrées, elles étaient souvent assez troubles. Il trouvait que filtrer ses bières pouvait introduire de l'oxygène non souhaité, enlevant de la bière beaucoup d'aspects intéressants. Il utilisait une souche nommée Conan (VPB1188), une levure que son mentor a développé et que maintenant beaucoup connaissent. Avec les dérivés Anglais, la souche de levure Conan, les bonnes connaissances en brassage de John, ainsi que son habitude à expérimenter avec les houblons, on se retrouve avec une combinaison gagnante pour une révolution du brassage sur la côte est.&lt;/p&gt;
&lt;h1&gt;La phase de croissance&lt;/h1&gt; &lt;h1 id="la-phase-de-croissance"&gt;La phase de croissance&lt;/h1&gt;
&lt;p&gt;En 2007, alors que j'allais au festival des brasseurs du Vermont, la queue pour accéder au stand de The Alchemist était d'au moins 20 minutes pour un verre. Certaines personnes remplissaient leurs verres et retournaient faire la queue pour avoir la chance de goûter une autre de ces bières tant acclamées, en particulier pour Heady Topper. Pour la première fois brassée en 2003, Heady Toper retenait alors l'attention, alors qu'elle n'était réellement qu'une parmi les nombreuses IPA acclamées de chez The Alchemist. Des histoires circulaient comme quoi certaines personnes amenaient leurs pintes aux toilettes pour remplir des bouteilles, les capsuler et les ramener chez eux, puisque le bar ne proposait pas de remplir de Growlers à l'époque, ni ne vendait de bouteilles. Je pensais alors que l'engouement pour ces IPAs avait atteint une sorte de paroxysme. Je n'avais pas encore compris que le feu était seulement en train de se construire.&lt;/p&gt; &lt;p&gt;En 2007, alors que j'allais au festival des brasseurs du Vermont, la queue pour accéder au stand de The Alchemist était d'au moins 20 minutes pour un verre. Certaines personnes remplissaient leurs verres et retournaient faire la queue pour avoir la chance de goûter une autre de ces bières tant acclamées, en particulier pour Heady Topper. Pour la première fois brassée en 2003, Heady Toper retenait alors l'attention, alors qu'elle n'était réellement qu'une parmi les nombreuses IPA acclamées de chez The Alchemist. Des histoires circulaient comme quoi certaines personnes amenaient leurs pintes aux toilettes pour remplir des bouteilles, les capsuler et les ramener chez eux, puisque le bar ne proposait pas de remplir de Growlers à l'époque, ni ne vendait de bouteilles. Je pensais alors que l'engouement pour ces IPAs avait atteint une sorte de paroxysme. Je n'avais pas encore compris que le feu était seulement en train de se construire.&lt;/p&gt;
&lt;p&gt;J'ai récemment demandé à Shaun Hill, de la brasserie « Hill Farmsted » à Greensborrow Bend dans le Vermont, classée « meilleure brasserie du monde » 3 des 4 dernières années sur RateBeer.com, quel était sa relation avec John Kimmich à l'époque. Shaun brassait à l'époque 30mn plus loin, à Stowe, dans un brewpub appelé « The Shed».&lt;/p&gt; &lt;p&gt;J'ai récemment demandé à Shaun Hill, de la brasserie « Hill Farmsted » à Greensborrow Bend dans le Vermont, classée « meilleure brasserie du monde » 3 des 4 dernières années sur RateBeer.com, quel était sa relation avec John Kimmich à l'époque. Shaun brassait à l'époque 30mn plus loin, à Stowe, dans un brewpub appelé « The Shed».&lt;/p&gt;
&lt;p&gt;« En 2005, je ne tarissais pas d'éolges pour les bières de John me faisait le plaisir de critiquer mes bières » me dit Hill, « Cette relation à évoluée avec le temps, plus specialement lorsque j'ai déménagé au Danemark et que cette conversation est devenue une conversation entre pairs, poussant l'autre dans de nouvelles directions.». Avec le decès de Greg Noonan en 2009, l'ancien protégé est devenu le nouveau mentor. Lors d'un échange avec Joel Mahaffey de Foundation brewing Co, à Portland à propos des IPAs influentes pour cette nouvelle révolution, il dit de The Alchemist « Quiconque réponds à cette question et oublie Heady Topper, ils sont à coté de la plaque. Il s'agit de la première IPA trouble, et à laissée une marque sur la communauté brassicole.»&lt;/p&gt; &lt;p&gt;« En 2005, je ne tarissais pas d'éolges pour les bières de John me faisait le plaisir de critiquer mes bières » me dit Hill, « Cette relation à évoluée avec le temps, plus specialement lorsque j'ai déménagé au Danemark et que cette conversation est devenue une conversation entre pairs, poussant l'autre dans de nouvelles directions.». Avec le decès de Greg Noonan en 2009, l'ancien protégé est devenu le nouveau mentor. Lors d'un échange avec Joel Mahaffey de Foundation brewing Co, à Portland à propos des IPAs influentes pour cette nouvelle révolution, il dit de The Alchemist « Quiconque réponds à cette question et oublie Heady Topper, ils sont à coté de la plaque. Il s'agit de la première IPA trouble, et à laissée une marque sur la communauté brassicole.»&lt;/p&gt;
&lt;p&gt;Ce qui à emergé dans le coin nord-est des états unis est une explosion de nouvelles brasseries produisant des Pale Ale, des IPA et des double IPA basées sur la non filtration, l'explosion de saveurs, et un corps doux, un style que Greg Noonan et John Kimmich ont découvert, et qu'ensuite Shaun Hill à continué à affiner. John et Shaun ont séparemment pointé du doigt le fait qu'ils brassaient juste des bières à leur convenance, et qu'ils appréciaient le produit fini. Le terme « Juicy IPA » s'est retrouvé être un nom pour ces bières, et la texture est souvent aussi importante que le nez et le gout de houblons. Et comme les IPA de la côte Ouest se sont répendues en 2008, les bières troubles, non filtrées, les New England IPA se répendent en 2016.&lt;/p&gt; &lt;p&gt;Ce qui à emergé dans le coin nord-est des états unis est une explosion de nouvelles brasseries produisant des Pale Ale, des IPA et des double IPA basées sur la non filtration, l'explosion de saveurs, et un corps doux, un style que Greg Noonan et John Kimmich ont découvert, et qu'ensuite Shaun Hill à continué à affiner. John et Shaun ont séparemment pointé du doigt le fait qu'ils brassaient juste des bières à leur convenance, et qu'ils appréciaient le produit fini. Le terme « Juicy IPA » s'est retrouvé être un nom pour ces bières, et la texture est souvent aussi importante que le nez et le gout de houblons. Et comme les IPA de la côte Ouest se sont répendues en 2008, les bières troubles, non filtrées, les New England IPA se répendent en 2016.&lt;/p&gt;
&lt;h1&gt;C'est parti !&lt;/h1&gt; &lt;h1 id="cest-parti"&gt;C'est parti !&lt;/h1&gt;
&lt;p&gt;Il est maintenant temps de passer à la brasserie et de regarder comment faire pour brasser une IPA, New England style. Shaun Hill dit « soyez vous mêmeet faites une bière qui goute, sent et ressemble à ce que vous voulez qu'elle soit », JC Tetreault de Trillum à Boston dans le Massachussetts ajoute « la réponse courte… tout est important ! Vous devez vous concentrer sur chaque aspect pour arriver à la bière que vous souhaitez. » L'objectif est d'arriver à une bière douce, un peu ronde, presque tropicale, à la texture ressemblant presque à un jus de fruit, laissant une morsure subtile sur la langue en fin de bouche graçe au houblon.&lt;/p&gt; &lt;p&gt;Il est maintenant temps de passer à la brasserie et de regarder comment faire pour brasser une IPA, New England style. Shaun Hill dit « soyez vous mêmeet faites une bière qui goute, sent et ressemble à ce que vous voulez qu'elle soit », JC Tetreault de Trillum à Boston dans le Massachussetts ajoute « la réponse courte… tout est important ! Vous devez vous concentrer sur chaque aspect pour arriver à la bière que vous souhaitez. » L'objectif est d'arriver à une bière douce, un peu ronde, presque tropicale, à la texture ressemblant presque à un jus de fruit, laissant une morsure subtile sur la langue en fin de bouche graçe au houblon.&lt;/p&gt;
&lt;h2&gt;Les malts&lt;/h2&gt; &lt;h2 id="les-malts"&gt;Les malts&lt;/h2&gt;
&lt;p&gt;Tout comme les IPAs de la cote Ouest, les NEIPA sont relativement simples en malts. Le style évite les malts qui ajoutent des saveurs de pain et de crackers. Les malts cristals et autres malts au dessus de 20°L (ndt: 52 EBC) sont d'une manière générale évités. Ces bières peuvent bénéficier de certains ajouts de malts cristal clairs, mais gardez les à lœil. Des flocons d'avoine, d'orge, de blé et autres peuvent être ajoutés pour contribuer au corps, mais ne pensez pas qu'ils soient une necessité. J'ai pu jouer avec des pourcentages de 15% de flocons dans mes recettes, et les résultats étaient presque excessifs. JC Tetreault dit que « à propos des ajouts de céréales non maltés et de flocons… nous ne les utilisons pas dans toutes nos bières basées sur le houblon. En fait, une proportion plutôt petite de nos bières basées sur le houblon en font usage». Les ajouts de sucre tels que les dextrose, saccharose et sucres crus augmentent la densité du moût pour s'assurer de la sécheresse dans les versions plus alcoolisées. Si vous choisissez d'ajouter du sucre cru, encore une fois, faites en sorte que l'ajout soit modeste; j'ai trouvé que certaines saveurs de mélasses avaient tendance à arriver à partir de 10% du total du grain. L'objectif est de garder les houblons comme caractéristique principale de la bière, tout en ayant une base de malt douce mais présente.&lt;/p&gt; &lt;p&gt;Tout comme les IPAs de la cote Ouest, les NEIPA sont relativement simples en malts. Le style évite les malts qui ajoutent des saveurs de pain et de crackers. Les malts cristals et autres malts au dessus de 20°L (ndt: 52 EBC) sont d'une manière générale évités. Ces bières peuvent bénéficier de certains ajouts de malts cristal clairs, mais gardez les à lœil. Des flocons d'avoine, d'orge, de blé et autres peuvent être ajoutés pour contribuer au corps, mais ne pensez pas qu'ils soient une necessité. J'ai pu jouer avec des pourcentages de 15% de flocons dans mes recettes, et les résultats étaient presque excessifs. JC Tetreault dit que « à propos des ajouts de céréales non maltés et de flocons… nous ne les utilisons pas dans toutes nos bières basées sur le houblon. En fait, une proportion plutôt petite de nos bières basées sur le houblon en font usage». Les ajouts de sucre tels que les dextrose, saccharose et sucres crus augmentent la densité du moût pour s'assurer de la sécheresse dans les versions plus alcoolisées. Si vous choisissez d'ajouter du sucre cru, encore une fois, faites en sorte que l'ajout soit modeste; j'ai trouvé que certaines saveurs de mélasses avaient tendance à arriver à partir de 10% du total du grain. L'objectif est de garder les houblons comme caractéristique principale de la bière, tout en ayant une base de malt douce mais présente.&lt;/p&gt;
&lt;h2&gt;Les levures&lt;/h2&gt; &lt;h2 id="les-levures"&gt;Les levures&lt;/h2&gt;
&lt;p&gt;Et c'est ici que les NEIPA dérivent des IPA de la cote Ouest. L'ajout des levures ainsi que le traitement à partir de la fermentation semble être la plus grosse différence entre les deux styles. D'abord, regardons comment ces bières sont fermentées. La plupart des NEIPA ne sont pas clarifiées dans le fermenteur avec des agents clarifiant tels que de la gélatine, du Biofine® ou du Polyclar™, et elles ne sont pas filtrées ou centrifugées plus tard pour clarifier la bière. La pensée derrière ce process est qu'enlever les levures de la bière à également pour effet d'enlever les huiles essentielles ainsi que d'autres nuances subtiles qui permettent à la bière d'avoir son caractère propre. Cela permet de garder un niveau d'huiles assez elevé dans le produit fini. Deuxièmement, les brasseurs de New England fermentent en utilisant une souche de levure d'origine anglaise. Ashton Lewis, l'éditeur technique de Brew Your Own précise « D'après des études ADN, la levure California Ale (White Labs WLP001, Wyeast 1056 et les autres souches de Chico) viendraient plutôt de Cologne, en Allemagne ». Ces souches américaines ont été choisies pour leur capacité à produire des bières claires, transparentes et amères sans ajouter de caractère. Les souches de levure utilisées par les brasseurs de New England IPA sont utilisées pour ajouter des esters, qui aident à produire le profil juteux de ces bières. Les IPAs brassées avec ces souches ne semblent pas être aussi transparentes que les souches Americaines lorsqu'elles sont exposées à des niveaux d'huiles elevés. Ceci vient en désaccord avec la plupart de la littérature sur les souches Anglaises. Si vous lisez la description de la plupart des souches de levures utilisées pour produire ces IPA troubles, la plupart sont considéeées « hautement floculantes », alors que la souche Chico, souvent utilisée pour les IPA de la cote Ouest annonce plutôt une floculation moyenne à faible. Pourquoi alors ces bières ne se clarifient pas lorsqu'elles sont sujettes à des hautes doses de houblon en fin d'ébullition ou en houblonnage à cru ? Cela reste encore une zone floue, j'ai donc demandé à quelques personnes dans l'industrie à propos de ce flou. Certains brasseurs pointent du doigt le fait que ces souches de levures floculent trop rapidement. Cela ne laisse pas le temps aux polyphénols de s'attacher aux levures, laissant ces composés ainsi que d'autres composés dérivés du houblon dans la solution plutôt que des les en enlever. Ashton Lewis nous rappelle aussi que le trouble trouvé dans les hefeweizen est principalement causé par les interactions entre les protéines et les polyphénols, et non pas par les levures.&lt;/p&gt; &lt;p&gt;Et c'est ici que les NEIPA dérivent des IPA de la cote Ouest. L'ajout des levures ainsi que le traitement à partir de la fermentation semble être la plus grosse différence entre les deux styles. D'abord, regardons comment ces bières sont fermentées. La plupart des NEIPA ne sont pas clarifiées dans le fermenteur avec des agents clarifiant tels que de la gélatine, du Biofine® ou du Polyclar™, et elles ne sont pas filtrées ou centrifugées plus tard pour clarifier la bière. La pensée derrière ce process est qu'enlever les levures de la bière à également pour effet d'enlever les huiles essentielles ainsi que d'autres nuances subtiles qui permettent à la bière d'avoir son caractère propre. Cela permet de garder un niveau d'huiles assez elevé dans le produit fini. Deuxièmement, les brasseurs de New England fermentent en utilisant une souche de levure d'origine anglaise. Ashton Lewis, l'éditeur technique de Brew Your Own précise « D'après des études ADN, la levure California Ale (White Labs WLP001, Wyeast 1056 et les autres souches de Chico) viendraient plutôt de Cologne, en Allemagne ». Ces souches américaines ont été choisies pour leur capacité à produire des bières claires, transparentes et amères sans ajouter de caractère. Les souches de levure utilisées par les brasseurs de New England IPA sont utilisées pour ajouter des esters, qui aident à produire le profil juteux de ces bières. Les IPAs brassées avec ces souches ne semblent pas être aussi transparentes que les souches Americaines lorsqu'elles sont exposées à des niveaux d'huiles elevés. Ceci vient en désaccord avec la plupart de la littérature sur les souches Anglaises. Si vous lisez la description de la plupart des souches de levures utilisées pour produire ces IPA troubles, la plupart sont considéeées « hautement floculantes », alors que la souche Chico, souvent utilisée pour les IPA de la cote Ouest annonce plutôt une floculation moyenne à faible. Pourquoi alors ces bières ne se clarifient pas lorsqu'elles sont sujettes à des hautes doses de houblon en fin d'ébullition ou en houblonnage à cru ? Cela reste encore une zone floue, j'ai donc demandé à quelques personnes dans l'industrie à propos de ce flou. Certains brasseurs pointent du doigt le fait que ces souches de levures floculent trop rapidement. Cela ne laisse pas le temps aux polyphénols de s'attacher aux levures, laissant ces composés ainsi que d'autres composés dérivés du houblon dans la solution plutôt que des les en enlever. Ashton Lewis nous rappelle aussi que le trouble trouvé dans les hefeweizen est principalement causé par les interactions entre les protéines et les polyphénols, et non pas par les levures.&lt;/p&gt;
&lt;p&gt;Donc, quelles sont les souches de levure que vous devriez utiliser ? Le choix est en fait assez large, pour ceux qui souhaitent brasser ces types de American IPA, referez vous donc aux suggestions données dans les recettes jointes pour quelques idées.&lt;/p&gt; &lt;p&gt;Donc, quelles sont les souches de levure que vous devriez utiliser ? Le choix est en fait assez large, pour ceux qui souhaitent brasser ces types de American IPA, referez vous donc aux suggestions données dans les recettes jointes pour quelques idées.&lt;/p&gt;
&lt;h2&gt;L'eau&lt;/h2&gt; &lt;h2 id="leau"&gt;L'eau&lt;/h2&gt;
&lt;p&gt;L'eau joue un rôle prépondérant dans le développement des New England IPA. Concentrez vous sur les niveaux de dureté de votre eau. Si vous avez une eau assez douce, alors vous avez un bon point de départ. Si vous avez une eau plutôt dure, obtenez un relevé d'eau (ndt: allez faire un tour sur le site « Eau du bassin Rennais » !). Si vous n'avez pas ces relevés d'eau, vous pouvez aussi faire analyser votre eau par des laboratoires, ou vous pouvez le faire vous même grâce à des kits de test de l'eau. Peu importe ce que vous choisissez, utiliser de l'eau distillée ou osmosée peut vous fournir une bonne base pour construire le profil d'eau que vous souhaitez obtenir. Essayez de garder votre niveau de bicarbonate en dessous de 50 PPM pour votre eau dempâtage et votre eau de rinçage.&lt;/p&gt; &lt;p&gt;L'eau joue un rôle prépondérant dans le développement des New England IPA. Concentrez vous sur les niveaux de dureté de votre eau. Si vous avez une eau assez douce, alors vous avez un bon point de départ. Si vous avez une eau plutôt dure, obtenez un relevé d'eau (ndt: allez faire un tour sur le site « Eau du bassin Rennais » !). Si vous n'avez pas ces relevés d'eau, vous pouvez aussi faire analyser votre eau par des laboratoires, ou vous pouvez le faire vous même grâce à des kits de test de l'eau. Peu importe ce que vous choisissez, utiliser de l'eau distillée ou osmosée peut vous fournir une bonne base pour construire le profil d'eau que vous souhaitez obtenir. Essayez de garder votre niveau de bicarbonate en dessous de 50 PPM pour votre eau dempâtage et votre eau de rinçage.&lt;/p&gt;
&lt;p&gt;La prochaine chose sur laquelle se concentrer est vos sulfates et vos chlorures. Ceci est parfois controversé, mais encore une fois peut potentiellement être un facteur différenciant entre les IPA de la côte Est et les IPA de la côte Ouest. Quand j'ai commencé à jouer avec la composition de mon eau, j'ai traité l'eau de mes IPA pour atteindre un rapport 2:1 de sulfates / chlorures, ce qui s'est traduit par 100:50 PPM. J'ai produit plusieurs bières qui pouvaient rivaliser (selon moi) avec certaines que mes idoles produisaient. Mais, dans l'esprit du brassage amateur, j'ai continué à expérimenter. J'ai changé l'équilibre de sulfate / chlorures à 200:50PPM sans que je perçoive un changement. J'ai ensuite essayé 100:100 et trouvé que ça me plaisait un peu plus. Mes trouvailles ne sont pas la seule preuve anecdotique que booster le niveau de chlorures peut bénéficier à ce style de bières. Si vous cherchez à ajuster vos sulfates et for chlorures pour votre eau d'empâtage et de rincage, je vous encourage à jeter un oeil à l'article de Scott Janish du 7 Mars 2016 intitulé « Mouthfeel softness ». Scott y parle des effets négatifs d'un taux de sulfates elevé et des aspects positifs d'un niveau de chlorures elevé.&lt;/p&gt; &lt;p&gt;La prochaine chose sur laquelle se concentrer est vos sulfates et vos chlorures. Ceci est parfois controversé, mais encore une fois peut potentiellement être un facteur différenciant entre les IPA de la côte Est et les IPA de la côte Ouest. Quand j'ai commencé à jouer avec la composition de mon eau, j'ai traité l'eau de mes IPA pour atteindre un rapport 2:1 de sulfates / chlorures, ce qui s'est traduit par 100:50 PPM. J'ai produit plusieurs bières qui pouvaient rivaliser (selon moi) avec certaines que mes idoles produisaient. Mais, dans l'esprit du brassage amateur, j'ai continué à expérimenter. J'ai changé l'équilibre de sulfate / chlorures à 200:50PPM sans que je perçoive un changement. J'ai ensuite essayé 100:100 et trouvé que ça me plaisait un peu plus. Mes trouvailles ne sont pas la seule preuve anecdotique que booster le niveau de chlorures peut bénéficier à ce style de bières. Si vous cherchez à ajuster vos sulfates et for chlorures pour votre eau d'empâtage et de rincage, je vous encourage à jeter un oeil à l'article de Scott Janish du 7 Mars 2016 intitulé « Mouthfeel softness ». Scott y parle des effets négatifs d'un taux de sulfates elevé et des aspects positifs d'un niveau de chlorures elevé.&lt;/p&gt;
&lt;h2&gt;Les houblons&lt;/h2&gt; &lt;h2 id="les-houblons"&gt;Les houblons&lt;/h2&gt;
&lt;p&gt;Généralement, l'amertume des houblons dans ce type d'IPA joue un rôle support, qui vient équilibrer le corps et la douceur des malts. Premièrement, gardez l'ajout de houblons amérisants modéré à faible. Vous pouvez expérimenter avec l'ajout de houblons amérisants mais je n'ai jamais eu l'occasion de trouver qu'une utilisation importante de houblons amérisants menait à une meilleure New-England IPA. Utilisez des houblons hauts en alpha tels que Magnum, Warrior™ ou Bravo si vous choisissez d'utiliser des houblons en cône ou en pellets, et je recommande de garder les ajouts d'amérisants assez faibles. D'habitude, j'essaye houblonner pour un rapport de 1:3 BU:GU (amertume sur densité). Cela signifie que quand je vise une densité cible de 1.066, l'ajout de houblons à 60mn est de 22 IBUs. Cela est fait pour éviter d'ajouter une dureté qui peut provenir d'une ébullition d'une quantité plus elevée de houblons. L'autre option est d'utiliser des extraits de houblon, qui peuvent contribuer les acides alpha nécessaires pour obtenir la bonne amertume, sans ajouter de polyphénols, que certains brasseurs pensent être à l'origine d'une certaine dureté.&lt;/p&gt; &lt;p&gt;Généralement, l'amertume des houblons dans ce type d'IPA joue un rôle support, qui vient équilibrer le corps et la douceur des malts. Premièrement, gardez l'ajout de houblons amérisants modéré à faible. Vous pouvez expérimenter avec l'ajout de houblons amérisants mais je n'ai jamais eu l'occasion de trouver qu'une utilisation importante de houblons amérisants menait à une meilleure New-England IPA. Utilisez des houblons hauts en alpha tels que Magnum, Warrior™ ou Bravo si vous choisissez d'utiliser des houblons en cône ou en pellets, et je recommande de garder les ajouts d'amérisants assez faibles. D'habitude, j'essaye houblonner pour un rapport de 1:3 BU:GU (amertume sur densité). Cela signifie que quand je vise une densité cible de 1.066, l'ajout de houblons à 60mn est de 22 IBUs. Cela est fait pour éviter d'ajouter une dureté qui peut provenir d'une ébullition d'une quantité plus elevée de houblons. L'autre option est d'utiliser des extraits de houblon, qui peuvent contribuer les acides alpha nécessaires pour obtenir la bonne amertume, sans ajouter de polyphénols, que certains brasseurs pensent être à l'origine d'une certaine dureté.&lt;/p&gt;
&lt;p&gt;Les ajouts de houblons en fin d'ébullition jouent un rôle beaucoup plus important pour la production de New-England IPA. Des apports copieux à la fin de l'ébullition ou au &lt;em&gt;flame-out&lt;/em&gt; sont utiles pour tout type d'IPA hautement aromatique. Cela ajoutera des IBUs pour compléter votre apport en houblons amérisants et commencera à créer votre profil d'huiles. Je trouve que des variétés plus mordantes / piquantes comme le Simcoe®, Columbus, Chinook et Apollo fonctionnent bien à cette étape. Chaque brasseur semble trouver sa technique ici, qu'il s'agisse de faire plusieurs ajouts à 20mn ou moins puis de baisser à une température précise pour faire un &lt;em&gt;hop stand&lt;/em&gt;, ou bien de simplement ajouter tous les houblons au &lt;em&gt;flame-out&lt;/em&gt; et de les laisser durant 20 minutes ou plus. Il ne semble pas qu'il y ait de mauvaise manière de faire, juste plusieurs manières d'extraire les huiles essentielles des houblons à une température pas trop haute.&lt;/p&gt; &lt;p&gt;Les ajouts de houblons en fin d'ébullition jouent un rôle beaucoup plus important pour la production de New-England IPA. Des apports copieux à la fin de l'ébullition ou au &lt;em&gt;flame-out&lt;/em&gt; sont utiles pour tout type d'IPA hautement aromatique. Cela ajoutera des IBUs pour compléter votre apport en houblons amérisants et commencera à créer votre profil d'huiles. Je trouve que des variétés plus mordantes / piquantes comme le Simcoe®, Columbus, Chinook et Apollo fonctionnent bien à cette étape. Chaque brasseur semble trouver sa technique ici, qu'il s'agisse de faire plusieurs ajouts à 20mn ou moins puis de baisser à une température précise pour faire un &lt;em&gt;hop stand&lt;/em&gt;, ou bien de simplement ajouter tous les houblons au &lt;em&gt;flame-out&lt;/em&gt; et de les laisser durant 20 minutes ou plus. Il ne semble pas qu'il y ait de mauvaise manière de faire, juste plusieurs manières d'extraire les huiles essentielles des houblons à une température pas trop haute.&lt;/p&gt;
&lt;p&gt;Le houblonnage à cru est votre prochain objectif. J'aimerais me concentrer sur les techniques plutôt que sur les quantités ou variétés puisque la technique semble être le plus important ici. Ceci dit, une chose est sure, ne soyez pas trop timide avec les ajouts durant le houblonnage à cru. 7.5g/L est certainement un bon point de départ. Vous pouvez ajuster en fonction de vos résultats. Les brasseurs Scott Janish et Michael Tonsmeir ajoutent que mettre ces bières en fûts à quelques avantages. Houblonner dans le fût, purger au CO2 et le fait de ne pas avoir de période prolongée de carbonatation sont déjà deux des avantages des fûts sur les bouteilles.&lt;/p&gt; &lt;p&gt;Le houblonnage à cru est votre prochain objectif. J'aimerais me concentrer sur les techniques plutôt que sur les quantités ou variétés puisque la technique semble être le plus important ici. Ceci dit, une chose est sure, ne soyez pas trop timide avec les ajouts durant le houblonnage à cru. 7.5g/L est certainement un bon point de départ. Vous pouvez ajuster en fonction de vos résultats. Les brasseurs Scott Janish et Michael Tonsmeir ajoutent que mettre ces bières en fûts à quelques avantages. Houblonner dans le fût, purger au CO2 et le fait de ne pas avoir de période prolongée de carbonatation sont déjà deux des avantages des fûts sur les bouteilles.&lt;/p&gt;

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - conferences</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/conferences.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2015-11-02T00:00:00+01:00</updated><entry><title>Rencontres python francophones, 2015</title><link href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html" rel="alternate"></link><published>2015-11-02T00:00:00+01:00</published><updated>2015-11-02T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-11-02:/rencontres-python-francophones-2015.html</id><summary type="html">&lt;p&gt;J'ai pris quelques notes durant la conférence annuelle de PyconFR, qui avait <feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis - Carnets en ligne - conferences</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/conferences.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2015-11-02T00:00:00+01:00</updated><entry><title>Rencontres python francophones, 2015</title><link href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html" rel="alternate"></link><published>2015-11-02T00:00:00+01:00</published><updated>2015-11-02T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-11-02:/rencontres-python-francophones-2015.html</id><summary type="html">&lt;p&gt;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 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 ont suivi. Je prends maintenant un peu plus de temps pour ranger toutes ces
notes au bon endroit.&lt;/p&gt; notes au bon endroit.&lt;/p&gt;

View file

@ -1,809 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - crypto</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/crypto.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2016-03-25T00:00:00+01:00</updated><entry><title>Avez vous confiance en SSL?</title><link href="https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html" rel="alternate"></link><published>2016-03-25T00:00:00+01:00</published><updated>2016-03-25T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2016-03-25:/avez-vous-confiance-en-ssl.html</id><summary type="html">&lt;p&gt;Dans le cadre &lt;a href="http://autodefense-numerique.readthedocs.org/en/latest/"&gt;des ateliers d'autodéfense numérique&lt;/a&gt;,
j'ai passé un peu de temps à creuser sur l'utilisation de SSL puisque
contrairement à ce que la plupart des personnes ont encore tendance à croire,
le petit cadenas (qui prouve qu'une connexion SSL est en cours) n'est
&lt;strong&gt;absolument&lt;/strong&gt; pas suffisant.&lt;/p&gt;
&lt;p&gt;Allez hop …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dans le cadre &lt;a href="http://autodefense-numerique.readthedocs.org/en/latest/"&gt;des ateliers d'autodéfense numérique&lt;/a&gt;,
j'ai passé un peu de temps à creuser sur l'utilisation de SSL puisque
contrairement à ce que la plupart des personnes ont encore tendance à croire,
le petit cadenas (qui prouve qu'une connexion SSL est en cours) n'est
&lt;strong&gt;absolument&lt;/strong&gt; pas suffisant.&lt;/p&gt;
&lt;p&gt;Allez hop, c'est parti pour:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un tour d'horizon du fonctionnement de SSl&lt;/li&gt;
&lt;li&gt;quelques moyens contourner cette "protection" en faisant une attaque en pratique&lt;/li&gt;
&lt;li&gt;un tour des solutions existantes actuellement et de pourquoi je ne les trouve
pas vraiment satisfaisantes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Comment fonctionne SSL?&lt;/h2&gt;
&lt;p&gt;Pour expliquer les problèmes de SSL, j'ai d'abord besoin d'expliquer comment
tout ça fonctionne.&lt;/p&gt;
&lt;p&gt;SSL repose sur l'utilisation de certificats, qui sont générés par des autorités
de certification (&lt;em&gt;Certificate Authority&lt;/em&gt; que je nomme &lt;em&gt;CA&lt;/em&gt; dans la suite de
l'article).&lt;/p&gt;
&lt;p&gt;Les certificats SSL permettent deux choses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;De garantir que les communications entre les navigateurs (vous) et les sites
Web ne sont connues que du détenteur du certificat du site et de vous même.&lt;/li&gt;
&lt;li&gt;De garantir que le site sur lequel vous vous connectez est bien celui que
vous imaginez.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le navigateur, lors d'une visite d'un site, va télécharger le certificat
associé puis vérifier que le certificat en question a bien été généré par un
des &lt;em&gt;CA&lt;/em&gt; en qui il a confiance.&lt;/p&gt;
&lt;p&gt;Imaginons maintenant qu'une des &lt;em&gt;CA&lt;/em&gt; essaye de savoir ce qui s'échange entre
mon navigateur et le site de ma banque (protégé par SSL). Comment cela se
passerait il ?&lt;/p&gt;
&lt;p&gt;N'importe quel &lt;em&gt;CA&lt;/em&gt; peut donc générer des certificats pour n'importe quel site,
et le navigateur vérifierait, lui, que le certificat a bien été généré par une
&lt;em&gt;CA&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Tout cela ne poserait pas de soucis si les &lt;em&gt;CA&lt;/em&gt; étaient gérés de manière fiable,
mais il s'agit d'un travail compliqué, et certains &lt;em&gt;CA&lt;/em&gt; ont par le passé montré
des faiblesses.&lt;/p&gt;
&lt;p&gt;Par exemple, &lt;a href="https://en.wikipedia.org/wiki/DigiNotar"&gt;DigiNotar&lt;/a&gt; (un &lt;em&gt;CA&lt;/em&gt; des Pays-Bas)
a été compromise et les attaquant.e.s ont pu générer des certificats SSL
frauduleux, ce qui leur a permis d'attaquer des sites tels que Facebook ou GMail.&lt;/p&gt;
&lt;p&gt;Vous pouvez retrouver une liste des risques et menaces autour des &lt;em&gt;CA&lt;/em&gt; &lt;a href="http://wiki.cacert.org/Risk/History"&gt;sur le
wiki de CACert&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Attaque de l'homme du milieu avec SSL&lt;/h2&gt;
&lt;p&gt;A force de dire que c'était très facile à faire, j'ai eu envie d'essayer
d'espionner des connections protégées par SSL, et effectivement c'est
carrément flippant tellement c'est simple.&lt;/p&gt;
&lt;p&gt;En l'espace de quelques minutes, il est possible de faire une &lt;em&gt;attaque de
l'homme du milieu&lt;/em&gt; en utilisant par exemple un outil nommé &lt;a href="http://docs.mitmproxy.org/en/stable"&gt;mitm-proxy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour déchiffrer l'ensemble du trafic SSL, j'ai simplement eu à lancer quelques
commandes et avoir un &lt;em&gt;CA&lt;/em&gt; dans lequel le navigateur de la victime a confiance.
Je l'ai ajouté dans le navigateur cible pour simuler que je l'avais déjà
(c'est le cas si un des 1200 CA se fait pirater, ce qui me semble une surface
d'attaque assez large).&lt;/p&gt;
&lt;p&gt;Je les colle ici si ça vous intéresse:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ sudo aptitude install mitmproxy
$ mitm-proxy -T --host
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il faut faire croire à votre victime que vous êtes la passerelle vers
l'extérieur et à la passerelle que vous êtes la victime:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;arpspoof -i wlan0 -t victime gateway
arpspoof -i wlan0 -t gateway victime
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Puis dire à notre fausse passerelle de rediriger le trafic des ports 80 et 443
vers notre proxy:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo sysctl -w net.ipv4.ip_forward&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport &lt;span class="m"&gt;443&lt;/span&gt; -j REDIRECT --to-port &lt;span class="m"&gt;4443&lt;/span&gt;
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport &lt;span class="m"&gt;80&lt;/span&gt; -j REDIRECT --to-port &lt;span class="m"&gt;4443&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et paf, &lt;strong&gt;on voit tout ce qui passe entre la machine et le serveur SSL&lt;/strong&gt;. On peut
d'ailleurs même imaginer faire tourner ces quelques commandes sur un
raspberry pi, pour aller encore plus vite…&lt;/p&gt;
&lt;h3&gt;Key-pinning dans les navigateurs&lt;/h3&gt;
&lt;p&gt;Actuellement, n'importe quel &lt;em&gt;CA&lt;/em&gt; peut générer des certificats pour
n'importe quel site, et c'est en grande partie ce qui pose souci. Une des
manières de faire évoluer la situation est d'épingler les certificats de
certains sites directement dans les navigateurs.&lt;/p&gt;
&lt;p&gt;Cette approche a le mérite de fonctionner très bien &lt;a href="https://dxr.mozilla.org/mozilla-central/source/security/manager/ssl/StaticHPKPins.h?from=StaticHPKPins.h"&gt;pour un petit nombre de
sites critiques (Google, Facebook, etc)&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;HTTP Public Key Pinning (HPKP)&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/en/docs/Web/Security/Public_Key_Pinning"&gt;&lt;em&gt;HTTP Public Key Pinning&lt;/em&gt;&lt;/a&gt;
est également une solution de &lt;em&gt;pinning&lt;/em&gt; qui permet d'établir une confiance lors
de la première connexion avec le site. C'est ce qu'on appelle du &lt;em&gt;Trust on First
Use&lt;/em&gt; ou &lt;em&gt;TOFU&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Le navigateur va alors mettre ces informations dans un cache et vérifiera que
les certificats correspondent bien lors des prochaines visites.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;HPKP&lt;/em&gt; est disponible dans Firefox depuis Janvier 2015 et dans Chrome
depuis Octobre 2015.&lt;/p&gt;
&lt;h3&gt;Certificate transparency: des journaux auditables&lt;/h3&gt;
&lt;p&gt;Une autre approche est celle proposée par &lt;em&gt;certificate transparency&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Certificate Transparency aims to remedy these certificate-based threats by
making the issuance and existence of SSL certificates open to scrutiny by
domain owners, CAs, and domain users.&lt;/p&gt;
&lt;p&gt;-- &lt;a href="https://www.certificate-transparency.org/what-is-ct"&gt;Certificate Transparency&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Autrement dit, avec ce système les &lt;em&gt;CA&lt;/em&gt; doivent rendre public le fait qu'ils
aient signé de nouveaux certificats intermédiaires. La signature est ajoutée à
un journal sur lequel il n'est possible que d'écrire.&lt;/p&gt;
&lt;p&gt;Les navigateurs vont alors vérifier que les certificats utilisés sont bien des
certificats qui ont été ajoutés au journal.&lt;/p&gt;
&lt;p&gt;Ici, toute l'intelligence est dans la vérification de ces journaux, qui
permettent donc de valider/invalider des certificats racines ou intermédiaires.&lt;/p&gt;
&lt;p&gt;Il me semble donc qu'il serait possible d'ajouter un certificat frauduleux le
temps d'une attaque (et celui ci serait détecté et supprimé ensuite).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Certificate-Transparency&lt;/em&gt; n'est donc pas une solution contre une écoute
globale mise en place par les gouvernements par exemple.&lt;/p&gt;
&lt;p&gt;Si vous lisez bien l'anglais, je vous invite à aller lire
&lt;a href="http://security.stackexchange.com/a/52838"&gt;cette description du problème et de la solution&lt;/a&gt;
que je trouve très bien écrite.&lt;/p&gt;
&lt;h3&gt;DANE + DNSSEC&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;The DANE working group has developed a framework for securely
retrieving keying information from the DNS [RFC6698]. This
framework allows secure storing and looking up server public key
information in the DNS. This provides a binding between a domain
name providing a particular service and the key that can be used
to establish encrypted connection to that service.&lt;/p&gt;
&lt;p&gt;-- &lt;a href="https://datatracker.ietf.org/wg/dane/charter/"&gt;Dane WG&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une autre solution est appelée "DANE" et repose par dessus le protocole
&lt;em&gt;DNSSEC&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Je connais assez mal &lt;em&gt;DNSSEC&lt;/em&gt; donc j'ai passé un peu de temps à lire des
documents. L'impression finale que ça me laisse est que le problème est
exactement le même que pour SSL: un certain nombre de personnes détiennent les
clés et toute la sécurité repose sur cette confiance. Or il est possible que
ces clés soient détenues par des personnes non dignes de confiance.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Secure DNS (DNSSEC) uses cryptographic digital signatures signed with a
trusted public key certificate to determine the authenticity of data.
-- https://en.wikipedia.org/wiki/DNS_spoofing&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Et aussi:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It is widely believed[1] that securing the DNS is critically important for
securing the Internet as a whole, but deployment of DNSSEC specifically has
been hampered (As of 22 January 2010) by several difficulties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The need to design a backward-compatible standard that can scale to the
size of the Internet&lt;/li&gt;
&lt;li&gt;Prevention of "zone enumeration" (see below) where desired&lt;/li&gt;
&lt;li&gt;Deployment of DNSSEC implementations across a wide variety of DNS servers
and resolvers (clients)&lt;/li&gt;
&lt;li&gt;Disagreement among implementers over who should own the top-level domain
root keys Overcoming the perceived complexity of DNSSEC and DNSSEC
deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Solutions basées sur la blockchain&lt;/h2&gt;
&lt;p&gt;Une dernière piste semble être l'utilisation de la &lt;em&gt;blockchain&lt;/em&gt; pour distribuer
des clés par site.&lt;/p&gt;
&lt;p&gt;La solution &lt;em&gt;DNSChain&lt;/em&gt; me paraissait tout d'abord un bon point de départ mais
la lecture de &lt;a href="https://www.indolering.com/okturtles-dnschain-unblock-us"&gt;quelques critiques&lt;/a&gt;
et interventions du développeur du projet m'ont fait changer d'avis.&lt;/p&gt;
&lt;p&gt;Reste encore la piste de &lt;em&gt;Namecoin Control&lt;/em&gt; que je n'ai pas encore creusée.
Peut-être pour un prochain billet. Toute piste de réflexion est bien sur la
bienvenue sur ces sujets!&lt;/p&gt;</content></entry><entry><title>Retours sur un atelier ZeroNet</title><link href="https://blog.notmyidea.org/retours-sur-un-atelier-zeronet.html" rel="alternate"></link><published>2016-03-17T00:00:00+01:00</published><updated>2016-03-17T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2016-03-17:/retours-sur-un-atelier-zeronet.html</id><summary type="html">&lt;p&gt;Mardi dernier se tenait &lt;a href="http://biblio.insa-rennes.fr/crypto"&gt;une &lt;em&gt;cryptoparty&lt;/em&gt;&lt;/a&gt;
dans les locaux de l'INSA de Rennes.&lt;/p&gt;
&lt;p&gt;L'évènement s'étant rempli au delà de toutes les espérances, on m'a proposé de
venir y tenir un atelier, que j'ai proposé sur &lt;a href="https://zeronet.io"&gt;ZeroNet&lt;/a&gt;, un
petit projet fort sympathique qui pourrait devenir une nouvelle manière de
distribuer le …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Mardi dernier se tenait &lt;a href="http://biblio.insa-rennes.fr/crypto"&gt;une &lt;em&gt;cryptoparty&lt;/em&gt;&lt;/a&gt;
dans les locaux de l'INSA de Rennes.&lt;/p&gt;
&lt;p&gt;L'évènement s'étant rempli au delà de toutes les espérances, on m'a proposé de
venir y tenir un atelier, que j'ai proposé sur &lt;a href="https://zeronet.io"&gt;ZeroNet&lt;/a&gt;, un
petit projet fort sympathique qui pourrait devenir une nouvelle manière de
distribuer le Web, permettant notamment d'éviter la censure.&lt;/p&gt;
&lt;p&gt;Avant toute autre chose, merci énormément à l'équipe de la bibliothèque de
l'INSA pour l'organisation de cet évènement qui à une réelle portée politique.&lt;/p&gt;
&lt;h2&gt;Un peu d'histoire&lt;/h2&gt;
&lt;p&gt;Il me semble que Tim Bernes Lee (l'inventeur du Web) avait prévu le Web comme un
protocole décentralisé. Chacun hébergerait ses données et les servirait aux
autres, qui pourraient alors y accéder.&lt;/p&gt;
&lt;p&gt;Avec ce fonctionnement, impossible alors d'accéder à des sites si leur auteur
n'est pas en ligne. Qu'à cela ne tienne, on s'est mis à avoir des machines qui
restent connectées au réseau 24 heures par jour. Et puis une machine ne
suffisant plus, on a eu des fermes de machines dans des &lt;em&gt;data centers&lt;/em&gt; etc afin
de supporter les milliers d'utilisateurs des sites.&lt;/p&gt;
&lt;h2&gt;Un Web décentralisé&lt;/h2&gt;
&lt;p&gt;ZeroNet permet (entre autres) de répondre à ce problème en proposant une manière
alternative de &lt;strong&gt;distribuer le Web&lt;/strong&gt;, en pair à pair. Lors d'une visite d'un
site:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Vous contactez un &lt;em&gt;tracker&lt;/em&gt; BitTorrent pour connaitre la liste des autres
visiteurs du site (les &lt;em&gt;pairs&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Vous demandez aux &lt;em&gt;pairs&lt;/em&gt; de vous donner les fichiers du site.&lt;/li&gt;
&lt;li&gt;Vous validez que les fichiers servis sont bien les bons (en vérifiant la
signature attachée).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;N'importe quel visiteur devient alors un &lt;em&gt;pair&lt;/em&gt;, qui sert le site aux autres
visiteurs.&lt;/p&gt;
&lt;p&gt;Parmi les nombreux avantages de cette approche, je note particulièrement que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Il est très difficile de censurer un site — Il est sur l'ensemble des machines
des visiteurs.&lt;/li&gt;
&lt;li&gt;Les attaques par &lt;em&gt;fingerprinting&lt;/em&gt; sont impossibles: le navigateur Web se
connecte à un serveur &lt;em&gt;proxy&lt;/em&gt; local.&lt;/li&gt;
&lt;li&gt;Vous détenez directement vos données et (par design) ne les donnez pas à des
silos (Facebook, Google, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si vous êtes interessés par une démonstration rapide, j'ai enregistré une vidéo
de 10 minutes où je parle en anglais avec une voix très grave.&lt;/p&gt;
&lt;video controls="" src="http://alexis.notmyidea.org/zeronet.webm" width=800&gt;&lt;/video&gt;
&lt;h2&gt;Atelier&lt;/h2&gt;
&lt;p&gt;Pour l'atelier, j'ai choisi de faire une présentation rapide du projet (&lt;a href="{filename}/static/zeronet-presentation-fr.pdf"&gt;j'ai
traduit les slides&lt;/a&gt; anglais
pour l'occasion — &lt;a href="https://docs.google.com/presentation/d/158C_-V1ueNaaKHMBMBgGOVhunb9xrXzB3hC_g1N53c0/edit?usp=sharing"&gt;accès aux sources&lt;/a&gt;)
avant d'installer ZeroNet sur les machines et de l'utiliser pour publier un
site.&lt;/p&gt;
&lt;h3&gt;Partager sur le réseau local&lt;/h3&gt;
&lt;p&gt;Nous avons eu des soucis à cause du réseau (un peu congestionné) sur lequel
les ports utilisés pour la discussion entre &lt;em&gt;pairs&lt;/em&gt; étaient fermés. Il est bien
sur possible de faire tourner le tout de manière indépendante du reste du réseau,
mais je n'avais pas prévu le coup.&lt;/p&gt;
&lt;p&gt;Voici donc comment faire pour contourner le souci:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Installer et lancer un &lt;em&gt;tracker&lt;/em&gt; BitTorrent (De manière surprenante,
&lt;a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685575"&gt;rien n'est packagé pour debian pour l'instant&lt;/a&gt;)
J'ai choisi d'installer &lt;a href="http://erdgeist.org/arts/software/opentracker/#build-instructions"&gt;OpenTracker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ensuite lancer ZeroNet avec des options spécifiques.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;$ python zeronet.py --trackers udp://localhost:6969 --ip_external &lt;span class="m"&gt;192&lt;/span&gt;.168.43.207
$ python zeronet.py --trackers udp://192.168.43.207:6969 --ip_external &lt;span class="m"&gt;192&lt;/span&gt;.168.43.172
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il est nécessaire de spécifier l'adresse IP externe que chaque nœud expose pour
éviter qu'elle n'essaye d'aller la trouver par elle même: nous voulons l'adresse
du réseau local, et non pas l'adresse internet.&lt;/p&gt;
&lt;p&gt;La prochaine fois je tenterais de venir avec un HotSpot Wifi et un tracker
BitTorrent dans la poche!&lt;/p&gt;
&lt;h2&gt;Questions / Réponses&lt;/h2&gt;
&lt;p&gt;Il y avait quelques questions intéressantes auxquelles je n'ai pas toujours su
répondre sur le moment. Après quelques recherches, je rajoute des détails ici.&lt;/p&gt;
&lt;h3&gt;Torrent + Tor = brèche de sécu ?&lt;/h3&gt;
&lt;p&gt;Il me semblait avoir entendu parler de problèmes de &lt;em&gt;dé-anonymisation&lt;/em&gt;
&lt;a href="https://hal.inria.fr/file/index/docid/471556/filename/TorBT.pdf"&gt;lors de l'utilisation de BitTorrent par dessus Tor&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Dans certains cas, certains clients torrents (uTorrent, BitSpirit, etc)
écrivent directement votre adresse IP dans l'information qui est envoyée
au tracker et/ou aux autres pairs.
— https://blog.torproject.org/blog/bittorrent-over-tor-isnt-good-idea&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/HelloZeroNet/ZeroNet/issues/274"&gt;Ce n'est pas le cas de ZeroNet&lt;/a&gt;, ce qui évacue le souci.&lt;/p&gt;
&lt;h3&gt;ZeroMail, c'est lent non ?&lt;/h3&gt;
&lt;p&gt;Une des applications de démo, &lt;em&gt;ZeroMail&lt;/em&gt;, propose un mécanisme qui permet de
s'envoyer des messages chiffrés sur un réseau pair à pair. L'approche choisie
est de chiffrer les messages avec la clé du destinataire et de le mettre dans
un &lt;em&gt;pot commun&lt;/em&gt;. Tout le monde essaye de déchiffrer tous les messages, mais ne
peut déchiffrer que les siens.&lt;/p&gt;
&lt;p&gt;Cela permet de ne &lt;strong&gt;pas&lt;/strong&gt; fuiter de méta-données, &lt;a href="{filename}../crypto/2015.05.pgp-problemes.rst"&gt;à l'inverse de PGP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Je n'ai en fait pas de réponse claire à donner à cette question: l'auteur de
ZeroNet me disait que 10MB (la limite de taille d'un site, par défaut)
correspondait à beaucoup de place pour stocker des messages, et qu'il était
possible de supprimer les anciens messages une fois qu'ils sont lus par exemple.&lt;/p&gt;
&lt;p&gt;Une autre solution à laquelle je pensait était de créer un &lt;em&gt;ZeroSite&lt;/em&gt; pour
chaque récipient, mais on connait à ce moment là le nombre de messages qu'un
utilisateur peut recevoir.&lt;/p&gt;
&lt;p&gt;Je vois plusieurs problèmes avec le design actuel de ZeroMail (il me semble
assez facile d'y faire un déni de service par exemple). A creuser.&lt;/p&gt;
&lt;h3&gt;Comment héberger des très gros sites ?&lt;/h3&gt;
&lt;p&gt;Par exemple, comment faire pour héberger Wikipedia ?&lt;/p&gt;
&lt;p&gt;Il semble que la meilleure manière de faire serait de séparer Wikipedia en
un tas de petites ressources (par catégorie par ex.). Les gros médias pourraient
être considérés optionnels (et donc téléchargés uniquement à la demande)&lt;/p&gt;
&lt;h3&gt;Est-ce qu'on à vraiment besoin d'un tracker ?&lt;/h3&gt;
&lt;p&gt;Le support d'une DHT &lt;a href="https://github.com/HelloZeroNet/ZeroNet/issues/57"&gt;est souhaité&lt;/a&gt;,
mais pour l'instant pas encore implémenté. L'utilisation de la DHT BitTorrent
n'est pas une option puisque &lt;a href="https://github.com/HelloZeroNet/ZeroNet/issues/57"&gt;Tor ne supporte pas UDP&lt;/a&gt;.&lt;/p&gt;</content></entry><entry><title>Let's Encrypt + HAProxy</title><link href="https://blog.notmyidea.org/lets-encrypt-haproxy.html" rel="alternate"></link><published>2016-02-11T00:00:00+01:00</published><updated>2016-02-11T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2016-02-11:/lets-encrypt-haproxy.html</id><summary type="html">&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Its time for the Web to take a big step forward in terms of security and
privacy. We want to see HTTPS become the default. Lets Encrypt was built
to enable that by making it as easy as possible to get and manage
certificates.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="https://letsencrypt.org/"&gt;Let's Encrypt&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Depuis début …&lt;/p&gt;</summary><content type="html">&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Its time for the Web to take a big step forward in terms of security and
privacy. We want to see HTTPS become the default. Lets Encrypt was built
to enable that by making it as easy as possible to get and manage
certificates.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="https://letsencrypt.org/"&gt;Let's Encrypt&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Depuis début Décembre, la nouvelle &lt;em&gt;autorité de certification&lt;/em&gt; Let's Encrypt
est passée en version &lt;em&gt;Beta&lt;/em&gt;. Les certificats SSL sont un moyen de 1. chiffrer la
communication entre votre navigateur et le serveur et 2. un moyen d'être sur
que le site Web auquel vous accédez est celui auquel vous pensez vous connecter
(pour éviter des &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Attaque_de_l'homme_du_milieu"&gt;attaques de l'homme du milieu&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Jusqu'à maintenant, il était nécessaire de payer une entreprise pour faire en
sorte d'avoir des certificats qui évitent d'avoir ce genre d'erreurs dans vos
navigateurs:&lt;/p&gt;
&lt;img alt="Message de firefox lorsque une connexion n'est pas sécurisée." src="{filename}/static/unsecure-connection.png" /&gt;
&lt;p&gt;Maintenant, grâce à Let's Encrypt il est possible d'avoir des certificats SSL
&lt;strong&gt;gratuits&lt;/strong&gt;, ce qui représente un grand pas en avant pour la sécurité de nos
communications.&lt;/p&gt;
&lt;p&gt;Je viens de mettre en place un procédé (assez simple) qui permet de configurer
votre serveur pour générer des certificats SSL valides avec Let's Encrypt et
le répartiteur de charge &lt;a class="reference external" href="http://www.haproxy.org/"&gt;HAProxy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Je me suis basé pour cet article sur d'&lt;a class="reference external" href="https://blog.infomee.fr/p/letsencrypt-haproxy"&gt;autres&lt;/a&gt; &lt;a class="reference external" href="http://blog.victor-hery.com/article22/utiliser-let-s-encrypt-avec-haproxy"&gt;articles&lt;/a&gt;, dont je
vous recommande la lecture pour un complément d'information.&lt;/p&gt;
&lt;div class="section" id="validation-des-domaines-par-let-s-encrypt"&gt;
&lt;h2&gt;Validation des domaines par Let's Encrypt&lt;/h2&gt;
&lt;p&gt;Je vous passe les détails d'installation du client de Let's Encrypt, qui sont
&lt;a class="reference external" href="https://github.com/letsencrypt/letsencrypt#installation"&gt;très bien expliqués sur leur documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Une fois installé, vous allez taper une commande qui va ressembler à:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
letsencrypt-auto certonly --renew-by-default
--webroot -w /home/www/letsencrypt-requests/ \
-d hurl.kinto-storage.org \
-d forums.kinto-storage.org
&lt;/pre&gt;
&lt;p&gt;Le &lt;em&gt;webroot&lt;/em&gt; est l'endroit ou les preuves de détention du domaine vont être
déposées.&lt;/p&gt;
&lt;p&gt;Lorsque les serveurs de Let's Encrypt vont vouloir vérifier que vous êtes bien
à l'origine des demandes de certificats, ils vont envoyer une requête HTTP sur
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;http://domaine.org/.well-known/acme-challenge&lt;/span&gt;&lt;/tt&gt;, ou il voudra trouver des
informations qu'il aura généré via la commande &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;letsencrypt-auto&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;J'ai choisi de faire une règle dans haproxy pour diriger toutes les requêtes
avec le chemin &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;.well-known/acme-challenge&lt;/span&gt;&lt;/tt&gt; vers un &lt;em&gt;backend&lt;/em&gt; nginx qui sert
des fichiers statiques (ceux contenus dans
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;/home/www/letsencrypt-requests/&lt;/span&gt;&lt;/tt&gt;).&lt;/p&gt;
&lt;p&gt;Voici la section de la configuration de HAProxy (et &lt;a class="reference external" href="https://github.com/almet/infra/blob/master/haproxy/haproxy.cfg#L63-L72"&gt;la configuration
complete&lt;/a&gt;
si ça peut être utile):&lt;/p&gt;
&lt;pre class="literal-block"&gt;
frontend http
bind 0.0.0.0:80
mode http
default_backend nginx_server
acl letsencrypt_check path_beg /.well-known/acme-challenge
use_backend letsencrypt_backend if letsencrypt_check
redirect scheme https code 301 if !{ ssl_fc } !letsencrypt_check
backend letsencrypt_backend
http-request set-header Host letsencrypt.requests
dispatch 127.0.0.1:8000
&lt;/pre&gt;
&lt;p&gt;Et celle de NGINX:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
server {
listen 8000;
server_name letsencrypt.requests;
root /home/www/letsencrypt-requests;
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="installation-des-certificats-dans-haproxy"&gt;
&lt;h2&gt;Installation des certificats dans HAProxy&lt;/h2&gt;
&lt;p&gt;Vos certificats SSL devraient être générés dans &lt;tt class="docutils literal"&gt;/etc/letsencrypt/live&lt;/tt&gt;, mais
ils ne sont pas au format attendu par haproxy. Rien de grave, la commande
suivant convertit l'ensemble des certificats en une version compatible avec
HAProxy:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
cat /etc/letsencrypt/live/domaine.org/privkey.pem /etc/letsencrypt/live/domaine.org/fullchain.pem &amp;gt; /etc/ssl/letsencrypt/domaine.org.pem
&lt;/pre&gt;
&lt;p&gt;Et ensuite dans la configuration de haproxy, pour le (nouveau) &lt;em&gt;frontend&lt;/em&gt; https:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
bind 0.0.0.0:443 ssl no-sslv3 crt /etc/ssl/letsencrypt
&lt;/pre&gt;
&lt;p&gt;Faites bien attention à avoir un &lt;em&gt;frontend&lt;/em&gt; &lt;cite&gt;https&lt;/cite&gt; pour tous vos sites en HTTPS.
&lt;a class="reference external" href="https://github.com/almet/infra/blob/master/haproxy/haproxy.cfg#L38-L60"&gt;Pour moi cela ressemble à ça&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Une fois tout ceci fait, redémarrez votre service haproxy et zou !&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="automatisation"&gt;
&lt;h2&gt;Automatisation&lt;/h2&gt;
&lt;p&gt;Pour automatiser un peu tout ça, j'ai choisi de faire ça comme suit:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Un fichier domaine dans &lt;tt class="docutils literal"&gt;letsencrypt/domains/domain.org&lt;/tt&gt; qui contient le script &lt;tt class="docutils literal"&gt;letsencrypt&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Un fichier d'installation de certificats dans
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;letsencrypt/install-certs.sh&lt;/span&gt;&lt;/tt&gt; qui s'occupe d'installer les certificats
déjà générés.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et voila ! &lt;a class="reference external" href="https://github.com/almet/infra/"&gt;Le tout est dans un dépot github&lt;/a&gt;, si jamais ça peut vous servir, tant mieux !&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Ateliers d'autodéfense numérique</title><link href="https://blog.notmyidea.org/ateliers-dautodefense-numerique.html" rel="alternate"></link><published>2016-01-14T00:00:00+01:00</published><updated>2016-01-14T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2016-01-14:/ateliers-dautodefense-numerique.html</id><summary type="html">&lt;p&gt;Il y a huit mois, je me rendais compte de l'importance du choix des outils pour
faire face à la surveillance généralisée, et notamment en rapport au
chiffrement des données. Une de mes envies de l'époque était l'animation
d'ateliers.&lt;/p&gt;
&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Je compte donc:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Organiser des ateliers de sensibilisation aux outils de …&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;Il y a huit mois, je me rendais compte de l'importance du choix des outils pour
faire face à la surveillance généralisée, et notamment en rapport au
chiffrement des données. Une de mes envies de l'époque était l'animation
d'ateliers.&lt;/p&gt;
&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Je compte donc:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Organiser des ateliers de sensibilisation aux outils de communication,
envers mes proches;&lt;/li&gt;
&lt;li&gt;Utiliser la communication chiffrée le plus souvent possible, au moins
pour rendre le déchiffrement des messages plus longue, &amp;quot;noyer le
poisson&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="http://blog.notmyidea.org/chiffrement.html"&gt;Chiffrement&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;J'ai mis un peu de temps à mettre le pied à l'étrier, mais je ressors
finalement du premier atelier que j'ai co-animé avec geb, auprès d'un public de
journalistes.&lt;/p&gt;
&lt;p&gt;Pour cette première édition l'idée était à la fois d'aller à la rencontre d'un
public que je connais mal, de leur donner des outils pour solutionner les
problèmes auxquels ils font parfois face, et de me faire une idée de ce que
pouvait être un atelier sur l'autodéfense numérique.&lt;/p&gt;
&lt;p&gt;L'objectif pour ce premier atelier était de:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Échanger autour des besoins et &lt;strong&gt;faire ressortir des histoires&lt;/strong&gt; ou le manque
d'outillage / connaissances à posé problème, dans des situations concrètes;&lt;/li&gt;
&lt;li&gt;Se rendre compte des &amp;quot;conduites à risque&amp;quot;, &lt;strong&gt;faire peur&lt;/strong&gt; aux personnes formées
pour qu'elles se rendent compte de l'état actuel des choses;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proposer des solutions concrètes&lt;/strong&gt; aux problèmes soulevés, ainsi que le
minimum de connaissance théorique pour les appréhender.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="section" id="faire-ressortir-les-problemes"&gt;
&lt;h2&gt;1. Faire ressortir les problèmes&lt;/h2&gt;
&lt;p&gt;Afin de faire ressortir les problèmes, nous avons choisi de constituer des
petits groupes de discussion, afin de faire des &amp;quot;Groupes d'Interview Mutuels&amp;quot;,
ou &amp;quot;GIM&amp;quot;:&lt;/p&gt;
&lt;blockquote class="epigraph"&gt;
&lt;p&gt;lanimateur invite les participants à se regrouper par trois, avec des
personnes quon connaît moins puis invite chacun à livrer une expérience vécue
en lien avec le thème de la réunion et les deux autres à poser des questions
leur permettant de bien saisir ce qui a été vécu.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;«&lt;a class="reference external" href="http://www.scoplepave.org/pour-s-ecouter"&gt;Pour s'écouter&lt;/a&gt;», SCOP Le Pavé.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;De ces &lt;em&gt;GIMs&lt;/em&gt; nous avons pu ressortir quelques histoires, gravitant autour de:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;La protection des sources (d'information)&lt;/strong&gt;: Comment faire pour aider
quelqu'un à faire &amp;quot;fuiter&amp;quot; des données depuis l'intérieur d'une entreprise ?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le chiffrement de ses données&lt;/strong&gt;: Comment éviter de faire &amp;quot;fuiter&amp;quot; des données
importantes lors d'une perquisition de matériel ?&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="faire-peur"&gt;
&lt;h2&gt;2. Faire peur&lt;/h2&gt;
&lt;p&gt;Un des premiers objectifs est de faire peur, afin que tout le monde se rende
compte à quel point il est facile d'accéder à certaines données. &lt;a class="reference external" href="http://blog.barbayellow.com/"&gt;Grégoire&lt;/a&gt; m'avait conseillé quelques petites accroches
qui ont ma foi bien marché:&lt;/p&gt;
&lt;p&gt;J'ai demandé aux présent.e.s de:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;donner leur mot de passe à voix haute devant les autres: a priori personne ne
le fera;&lt;/li&gt;
&lt;li&gt;venir se connecter à leur compte email depuis mon ordinateur. J'ai piégé une
personne, qui est venu pour taper son mot de passe.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cela à été un bon moyen de parler de l'importance des traces que l'on peut
laisser sur un ordinateur, et de la confiance qu'il faut avoir dans le matériel
que l'on utilise, à fortiori si ce ne sont pas les vôtres.&lt;/p&gt;
&lt;p&gt;Pour continuer à leur faire peur, après une brève explication de ce qu'est SSL
nous avons montré comment il était facile de scruter le réseau à la recherche
de mots de passe en clair.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="proposer-des-solutions-concretes"&gt;
&lt;h2&gt;3. Proposer des solutions concrêtes&lt;/h2&gt;
&lt;p&gt;Une fois que tout le monde avait pleinement pris sonscience des problématiques
et n'osait plus utiliser son ordinateur ou son téléphone, on à commencé
à parler de quelques solutions.
Plusieurs approches étaient possibles ici, nous avons choisi de présenter
quelques outils qui nous semblaient répondre aux attentes:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;On a expliqué ce qu'était &lt;a class="reference external" href="https://tails.boum.org"&gt;Tails&lt;/a&gt;, et comment
l'utiliser et le dupliquer.&lt;/li&gt;
&lt;li&gt;On a pu faire un tour des outils existants sur Tails, notamment autour de
l'&lt;em&gt;anonymisation&lt;/em&gt; de fichiers et la suppression effective de contenus.&lt;/li&gt;
&lt;li&gt;Certaines personnes ont pu créer une clé tails avec la persistance de
configurée.&lt;/li&gt;
&lt;li&gt;Nous nous sommes connectés au réseau &lt;a class="reference external" href="https://www.torproject.org"&gt;Tor&lt;/a&gt; et testé
que nos adresses IP changeaient bien à la demande.&lt;/li&gt;
&lt;li&gt;Nous avons utilisé &lt;a class="reference external" href="https://crypto.cat"&gt;CryptoCat&lt;/a&gt; par dessus Tor, afin de
voir comment avoir une conversation confidentielle dans laquelle il est
possible d'échanger des fichiers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="retours"&gt;
&lt;h2&gt;Retours&lt;/h2&gt;
&lt;p&gt;D'une manière générale, pour une formation de trois heures et demi, je suis
assez content de l'exercice, et de l'ensemble des sujets que nous avons pu
couvrir. Il y a beaucoup de place pour l'amélioration, notamment en amont (j'avais
par exemple oublié d'amener avec moi suffisamment de clés USB pour utiliser
Tails).&lt;/p&gt;
&lt;p&gt;La plupart des retours qu'on a pu avoir jusqu'à maintenant sont positifs, et il
y a l'envie d'aller plus loin sur l'ensemble de ces sujets.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-suite"&gt;
&lt;h2&gt;La suite&lt;/h2&gt;
&lt;p&gt;Il y a beaucoup de sujets que nous n'avons pas abordés, ou uniquement survolés,
à cause du manque de temps disponible. Idéalement, il faudrait au moins une
journée entière pour couvrir quelques sujets plus en détail (on peut imaginer
avoir une partie théorique le matin et une partie pratique l'après-midi par
exemple).&lt;/p&gt;
&lt;p&gt;J'ai choisi volontairement de ne pas aborder le chiffrement des messages via
PGP parce que &lt;a class="reference external" href="https://blog.notmyidea.org/les-problemes-de-pgp.html"&gt;je pense que la protection que ce média propose n'est pas
suffisante&lt;/a&gt;, 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.&lt;/p&gt;
&lt;p&gt;Un compte twitter à été créé recemment autour des crypto-party à Rennes, si
vous êtes interessés, &lt;a class="reference external" href="https://twitter.com/CryptoPartyRNS"&gt;allez jeter un coup d'œil&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Je n'ai pas trouvé de ressources disponibles par rapport à des plans de
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.&lt;/p&gt;
&lt;p&gt;Ils sont pour l'instant disponibles &lt;a class="reference external" href="http://autodefense-numerique.readthedocs.org/en/latest/"&gt;sur Read The Docs&lt;/a&gt;. Tous les retours
sont évidemment les bienvenus !&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Web distribution signing</title><link href="https://blog.notmyidea.org/web-distribution-signing.html" rel="alternate"></link><published>2015-10-12T00:00:00+02:00</published><updated>2015-10-12T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-12:/web-distribution-signing.html</id><summary type="html">&lt;div class="admonition note"&gt;
&lt;p class="first admonition-title"&gt;Note&lt;/p&gt;
&lt;p class="last"&gt;I'm not a crypto expert, nor pretend to be one. These are thoughts
I want to share with the crypto community to actually see if any
solution exists to solve this particular problem.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;One &lt;a class="reference external" href="http://www.tonyarcieri.com/whats-wrong-with-webcrypto"&gt;often pointed&lt;/a&gt;
flaw in web-based cryptographic applications is the fact that there is no way …&lt;/p&gt;</summary><content type="html">&lt;div class="admonition note"&gt;
&lt;p class="first admonition-title"&gt;Note&lt;/p&gt;
&lt;p class="last"&gt;I'm not a crypto expert, nor pretend to be one. These are thoughts
I want to share with the crypto community to actually see if any
solution exists to solve this particular problem.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;One &lt;a class="reference external" href="http://www.tonyarcieri.com/whats-wrong-with-webcrypto"&gt;often pointed&lt;/a&gt;
flaw in web-based cryptographic applications is the fact that there is no way
to trust online software distributions. Put differently, you don't actually
trust the software authors but are rather trusting the software distributors
and certificate authorities (CAs).&lt;/p&gt;
&lt;p&gt;I've been talking with a few folks in the past months about that and they
suggested me to publish something to discuss the matter. So here I come!&lt;/p&gt;
&lt;div class="section" id="the-problem-attack-vectors"&gt;
&lt;h2&gt;The problem (Attack vectors)&lt;/h2&gt;
&lt;p&gt;Let's try to describe a few potential attacks:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Application Authors&lt;/em&gt; just released a new version of their open source web
crypto messaging application. An &lt;em&gt;Indie Hoster&lt;/em&gt; installs it on their servers so
a wide audience can actually use it.&lt;/p&gt;
&lt;p&gt;Someone alters the files on &lt;em&gt;Indie Hoster&lt;/em&gt; servers, effectively replacing them with
other &lt;em&gt;altered files&lt;/em&gt; with less security properties / a backdoor. This someone could either be
an &lt;em&gt;Evil Attacker&lt;/em&gt; which found its way trough, the &lt;em&gt;Indie Hoster&lt;/em&gt; or a CDN
which delivers the files,&lt;/p&gt;
&lt;p&gt;Trusted &lt;em&gt;Certificate Authorities&lt;/em&gt; (&amp;quot;governments&amp;quot; or &amp;quot;hacking team&amp;quot;) can also
trick the User Agents (i.e. Firefox) into thinking they're talking to &lt;em&gt;Indie
Hoster&lt;/em&gt; even though they're actually talking to a different server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Altered files&lt;/strong&gt; are then being served to the User Agents, and &lt;em&gt;Evil Attacker&lt;/em&gt;
now has a way to actually attack the end users.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="problem-mitigation"&gt;
&lt;h2&gt;Problem Mitigation&lt;/h2&gt;
&lt;p&gt;Part of the problem is solved by the recently introduced &lt;a class="reference external" href="https://w3c.github.io/webappsec/specs/subresourceintegrity/"&gt;Sub Resource
Integrity&lt;/a&gt;
(SRI). To quote them: &amp;quot;[it] defines a mechanism by which user agents may verify
that a fetched resource has been delivered without unexpected manipulation.&amp;quot;.&lt;/p&gt;
&lt;p&gt;SRI is a good start, but isn't enough: it ensures the assets (JavaScript files,
mainly) loaded from a specific HTML page are the ones the author of the HTML
page intends. However, SRI doesn't allow the User Agent to ensure the HTML page
is the one he wants.&lt;/p&gt;
&lt;p&gt;In other words, we miss a way to create trust between &lt;em&gt;Application Authors&lt;/em&gt; and
&lt;em&gt;User Agents&lt;/em&gt;. The User-Agent currently has to trust the &lt;em&gt;Certificate
Authorities&lt;/em&gt; and the delivery (&lt;em&gt;Indie Hoster&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;For desktop software distribution: &lt;em&gt;Crypto Experts&lt;/em&gt; audit the software, sign it
somehow and then this signature can be checked locally during installation or
runtime. It's not automated, but at least it's possible.&lt;/p&gt;
&lt;p&gt;For web applications, we don't have such a mechanism, but it should be
possible. Consider the following:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;em&gt;App Authors&lt;/em&gt; publish a new version of their software; They provide a hash of
each of their distributed files (including the HTML files);&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Crypto Experts&lt;/em&gt; audit these files and sign the hashes somehow;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;User Agents&lt;/em&gt; can chose to trust some specific &lt;em&gt;Crypto Experts&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;When a &lt;em&gt;User Agent&lt;/em&gt; downloads files, it checks if they're signed by a trusted
party.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="chosing-who-you-trust"&gt;
&lt;h2&gt;Chosing who you trust&lt;/h2&gt;
&lt;p&gt;In terms of user experience, handling certificates is hard, and that's where
the community matters. Distributions such as &lt;a class="reference external" href="https://tails.boom.org"&gt;Tails&lt;/a&gt;
could chose who they trust to verify the files, and issue warnings / refuse to
run the application in case files aren't verified.&lt;/p&gt;
&lt;p&gt;But, as highligted earlier, CAs are hard to trust. A new instance of the same
CA system wouldn't make that much differences, expect the fact that
distributions could ship with a set of trusted authorities (for which
revocation would still need to be taken care of).&lt;/p&gt;
&lt;blockquote class="epigraph"&gt;
&lt;p&gt;[...] users are vulnerable to MitM attacks by the authority, which can vouch
for, or be coerced to vouch for, false keys. This weakness has been
highlighted by recent CA scandals. Both schemes can also be attacked if the
authority does not verify keys before vouching for them.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="http://cacr.uwaterloo.ca/techreports/2015/cacr2015-02.pdf"&gt;SoK : Secure Messaging&lt;/a&gt;;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It seems that some other systems could allow for something more reliable:&lt;/p&gt;
&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Melara et al proposed CONIKS, using a series of chained commitments to Merkle
prefix trees to build a key directory [...] for which individual users can
efficiently verify the consistency of their own entry in the directory
without relying on a third party.&lt;/p&gt;
&lt;p&gt;This “self- auditing log” approach makes the system partially have no
auditing required (as general auditing of non-equivocation is still required)
and also enables the system to be privacy preserving as the entries in the
directory need not be made public. This comes at a mild bandwidth cost not
reflected in our table, estimated to be about 10 kilobytes per client per day
for self-auditing.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="http://cacr.uwaterloo.ca/techreports/2015/cacr2015-02.pdf"&gt;SoK : Secure Messaging&lt;/a&gt;;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now, I honestly have no idea if this thing solves the whole problem, and I'm pretty sure
this design has many security problems attached to it.&lt;/p&gt;
&lt;p&gt;However, that's a problem I would really like to see solved one day, so here
the start of the discussion, don't hesitate to &lt;a class="reference external" href="/pages/about.html"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="addendum"&gt;
&lt;h2&gt;Addendum&lt;/h2&gt;
&lt;p&gt;It seems possible to increase the level a user has in a Web Application by
adding indicators in the User-Agent. For instance, when using an application
that's actually signed by someone considered trustful by the User-Agent (or the
distributor of the User-Agent), a little green icon could be presented to the
User, so they know that they can be confident about this.&lt;/p&gt;
&lt;p&gt;A bit like User-Agents do for SSL, but for the actual signature of the files
being viewed.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Les problèmes de PGP</title><link href="https://blog.notmyidea.org/les-problemes-de-pgp.html" rel="alternate"></link><published>2015-05-25T00:00:00+02:00</published><updated>2015-05-25T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-05-25:/les-problemes-de-pgp.html</id><summary type="html">&lt;blockquote class="epigraph"&gt;
&lt;p&gt;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?&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="http://secushare.org/PGP"&gt;http://secushare.org/PGP&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une fois …&lt;/p&gt;</summary><content type="html">&lt;blockquote class="epigraph"&gt;
&lt;p&gt;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?&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="http://secushare.org/PGP"&gt;http://secushare.org/PGP&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une fois passé l'euphorie du &amp;quot;il faut utiliser PGP pour l'ensemble de nos
communications&amp;quot;, j'ai réalisé lors de discussions que PGP avait plusieurs
problèmes, parmi ceux-ci:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Les &lt;em&gt;meta données&lt;/em&gt; (y compris le champ &amp;quot;sujet&amp;quot; de la conversation) sont quand
même échangées en clair (il est possible de savoir qu'un message à été échangé
entre telle et telle personne, a telle date);&lt;/li&gt;
&lt;li&gt;PGP se base sur un protocole de communication qui est lui non chiffré, et il
est donc facile de soit se tromper, soit dégrader le mode de conversation vers
une méthode non chiffrée;&lt;/li&gt;
&lt;li&gt;Il est facile de connaître votre réseau social avec PGP, puisque tout le
principe est de signer les clés des personnes dont vous validez l'identité;&lt;/li&gt;
&lt;li&gt;En cas de fuite de votre clé privée, tous les messages que vous avez chiffrés
avec elle sont compromis. On dit que PGP ne fournit pas de &lt;em&gt;forward secrecy&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;La découverte de la clé de pairs se passe souvent &lt;em&gt;en clair&lt;/em&gt;, sans utiliser une
connexion &amp;quot;sécurisée&amp;quot; (HTTPS). Tout le monde peut donc voir ces échanges et
savoir de qui vous cherchez la clé;&lt;/li&gt;
&lt;li&gt;Les discussions de groupes sont très difficiles: il faut chiffrer pour chacun
des destinataires (ou que ceux-ci partagent une paire de clés).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je suis en train de creuser à propos les alternatives à PGP, par exemple &lt;a class="reference external" href="https://pond.imperialviolet.org/"&gt;Pond&lt;/a&gt;, qui lui ne construit pas par dessus un
standard déjà établi, et donc n'hérite pas de ses défauts (mais pas non plus de
son réseau déjà établi).&lt;/p&gt;
&lt;p&gt;En attendant, quelques bonnes pratiques sur PGP ;)&lt;/p&gt;
&lt;div class="section" id="bonnes-pratiques"&gt;
&lt;h2&gt;Bonnes pratiques&lt;/h2&gt;
&lt;p&gt;Il est en fait assez facile d'utiliser PGP de travers. Riseup à fait &lt;a class="reference external" href="https://help.riseup.net/en/security/message-security/openpgp/best-practices"&gt;un
excellent guide&lt;/a&gt;
qui explique comment configurer son installation correctement.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;J'en ai déjà parlé, mais il faut absolument choisir des phrases de passes
suffisamment longues. Pas facile de les retenir, mais indispensable. Vous
pouvez aussi avoir un document chiffré avec une clé que vous ne mettez jamais
en ligne, qui contiens ces phrases de passe, au cas ou vous les oubliez.&lt;/li&gt;
&lt;li&gt;Générez des clés RSA de 4096 bits, en utilisant sha512;&lt;/li&gt;
&lt;li&gt;Il faut utiliser une date d'expiration de nos clés suffisamment proche (2
ans). Il est possible de repousser cette date si nécessaire, par la suite.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Parmi les choses les plus frappantes que j'ai rencontrées:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Utiliser le &lt;em&gt;flag&lt;/em&gt; &lt;cite&gt;hidden-recipient&lt;/cite&gt; avec PGP pour ne pas dévoiler qui est
le destinataire du message;&lt;/li&gt;
&lt;li&gt;Ne pas envoyer les messages de brouillons sur votre serveur, ils le seraient
en clair !;&lt;/li&gt;
&lt;li&gt;Utilisez HPKS pour communiquer avec les serveurs de clés, sinon tout le
trafic est en clair.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le &lt;a class="reference external" href="https://bitmask.net/"&gt;projet Bitmask&lt;/a&gt; vise lui à rendre les outils de
chiffrement d'échanges de messages et de VPN simples à utiliser, encore quelque
chose à regarder.&lt;/p&gt;
&lt;p&gt;Enfin bref, y'a du taf.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Simplifier les preuves d'identités</title><link href="https://blog.notmyidea.org/simplifier-les-preuves-didentites.html" rel="alternate"></link><published>2015-05-11T00:00:00+02:00</published><updated>2015-05-11T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-05-11:/simplifier-les-preuves-didentites.html</id><summary type="html">&lt;p&gt;L'un des problèmes non réellement résolu actuellement quant au chiffrement des
échanges est lié à l'authenticité des clés. Si quelqu'un décide de publier une
clé en mon nom, et en utilisant mon adresse email, cela lui est assez facile.&lt;/p&gt;
&lt;p&gt;Il est donc nécessaire d'avoir des moyens de prouver que la …&lt;/p&gt;</summary><content type="html">&lt;p&gt;L'un des problèmes non réellement résolu actuellement quant au chiffrement des
échanges est lié à l'authenticité des clés. Si quelqu'un décide de publier une
clé en mon nom, et en utilisant mon adresse email, cela lui est assez facile.&lt;/p&gt;
&lt;p&gt;Il est donc nécessaire d'avoir des moyens de prouver que la clé publique que
j'utilise est réellement la mienne.&lt;/p&gt;
&lt;p&gt;Traditionnellement, il est nécessaire de faire signer ma clé publique par
d'autres personnes, via une rencontre en personne ou des échanges hors du
réseau. C'est par exemple ce qui est réalisé lors des &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Key_signing_party"&gt;Key Signing parties&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Une manière simple d'effectuer ces vérifications serait, en plus de donner son
adresse email, sa signature de clé, ou a minima de donner un mot clé pour
valider que les échanges proviennent bien de la bonne personne.&lt;/p&gt;
&lt;p&gt;PGP propose un mécanisme de signature des clés d'autrui, une fois celles ci
validées, ce qui permet de placer sa confiance dans les signataires de la clé.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://keybase.io"&gt;Keybase.io&lt;/a&gt; est un service qui vise à rendre la création
de ces preuves plus facile, en partant du principe qu'il est possible
d'utiliser différents moyens afin de prouver l'identité des personnes. Par
exemple, leurs comptes Twitter, GitHub ou leurs noms de domaines. De la même
manière qu'il est possible de signer (valider) les clés de nos amis, il est
possible de les &amp;quot;tracker&amp;quot; selon le jargon de keybase.&lt;/p&gt;
&lt;p&gt;Donc, en somme, &lt;em&gt;Keybase.io&lt;/em&gt; est un annuaire, qui tente de rendre plus facile la
création de preuves. Bien.&lt;/p&gt;
&lt;div class="section" id="quelques-points-d-ombre"&gt;
&lt;h2&gt;Quelques points d'ombre&lt;/h2&gt;
&lt;p&gt;Il s'agit d'une &lt;em&gt;startup&lt;/em&gt; américaine, domiciliée dans le Delaware, qui se trouve être
un des paradis fiscaux qui &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Delaware"&gt;est connu pour être un paradis fiscal au coeur
même des États-Unis&lt;/a&gt;. Je ne veux pas
faire de raccourcis trop rapides, bien évidemment, alors &lt;a class="reference external" href="https://github.com/keybase/keybase-issues/issues/1569"&gt;j'ai ouvert un ticket
sur GitHub pour en savoir plus&lt;/a&gt; (après tout, le fait
d'être un paradis fiscal permet peut-être d'échapper à certaines lois sur la
requêtes de données). D'autant plus étonnant, la startup n'a pour l'instant &lt;a class="reference external" href="https://github.com/keybase/keybase-issues/issues/788"&gt;pas
de *business model*&lt;/a&gt;
(ce qui en un sens est assez rassurant, même si on peut se poser la question de
pourquoi faire une startup dans ces cas là).&lt;/p&gt;
&lt;p&gt;Le service (bien qu'en Alpha), n'est pas mis à disposition sous licence libre,
ce qui pour l'instant empêche quiconque de créer son propre serveur Keybase.
&lt;a class="reference external" href="https://github.com/keybase/"&gt;Une partie des composants, cependant, le sont (open source)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;J'ai du mal à croire en des initiatives qui veulent sauver le monde, mais dans
leur coin, je ne comprends pas pourquoi il n'y à pas de documentation sur
comment monter son propre serveur, ou comment les aider à travailler sur la
fédération. Mais bon, c'est pour l'instant une initiative encore fraîche, et je
lui laisse le bénéfice du doute.&lt;/p&gt;
&lt;p&gt;Sur le long terme, une infrastructure comme &lt;em&gt;Keybase.io&lt;/em&gt;, devra évidemment être
&lt;a class="reference external" href="https://github.com/keybase/keybase-issues/issues/162"&gt;distribuée&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class="epigraph"&gt;
&lt;p&gt;We've been talking about a total decentralization, but we have to solve
a couple things, synchronization in particular. Right now someone can
mirror us and a client can trust a mirror just as easily as the server at
keybase.io, but there needs to be a way of announcing proofs to any server
and having them cooperate with each other. We'd be so happy to get this
right.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="http://chris.beams.io/posts/keybase/"&gt;Chris Coyne, co-founder of Keybase&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Afin de se &amp;quot;passer&amp;quot; de leur service centralisé, les preuves générées (qui sont
la force du système qu'ils mettent en place) pourraient être exportées sur des
serveurs de clés existants. C'est quelque chose &lt;a class="reference external" href="https://github.com/keybase/keybase-issues/issues/890"&gt;qu'ils souhaitent réaliser .&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bref, une initiative quand même importante et utile, même si elle soulève des
questions qui méritent qu'on s'y attarde un brin.&lt;/p&gt;
&lt;p&gt;Par ailleurs, &lt;a class="reference external" href="https://leap.se/nicknym"&gt;d'autres projets qui visent des objectifs similaires&lt;/a&gt; existent, via le projet LEAP, mais je n'ai pas
encore creusé.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Phrases de passe et bonnes pratiques</title><link href="https://blog.notmyidea.org/phrases-de-passe-et-bonnes-pratiques.html" rel="alternate"></link><published>2015-05-09T00:00:00+02:00</published><updated>2015-05-09T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-05-09:/phrases-de-passe-et-bonnes-pratiques.html</id><summary type="html">&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Au contraire des autres mots de passe, les mots de passe cryptographiques
ont specifiquement besoin d'être longs et extremement difficiles à deviner.
La raison est qu'un ordinateur (ou un cluster de plusieurs ordinateurs)
peut être programmé pour faire des trillions d'essais de manière
automatique. Si le mot de passe choisi …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Au contraire des autres mots de passe, les mots de passe cryptographiques
ont specifiquement besoin d'être longs et extremement difficiles à deviner.
La raison est qu'un ordinateur (ou un cluster de plusieurs ordinateurs)
peut être programmé pour faire des trillions d'essais de manière
automatique. Si le mot de passe choisi est trop faible ou construit d'une
manière trop prédictible, cette attaque par la force pourrait se revéler
fructueuse en essayant toutes les possibilités.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;&lt;a class="reference external" href="https://www.eff.org/wp/defending-privacy-us-border-guide-travelers-carrying-digital-devices"&gt;The Electronic Frontier Foundation&lt;/a&gt; (traduction de mon fait)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Comprendre les concepts et l'écosystème qui permettent d'avoir une vie
numérique chiffrée n'est pas quelque chose d'aisé. &lt;a class="reference external" href="https://emailselfdefense.fsf.org/fr/"&gt;Plusieurs&lt;/a&gt; &lt;a class="reference external" href="http://www.controle-tes-donnees.net/outils/GnuPG.html"&gt;guides&lt;/a&gt; ont été écrits à ce
propos, et pour autant je me rends compte que naïvement il est possible de
mal utiliser les outils existants.&lt;/p&gt;
&lt;blockquote class="epigraph"&gt;
&lt;p&gt;Utilisez un &lt;em&gt;bon&lt;/em&gt; mot de passe pour votre session utilisateur et une
&lt;em&gt;bonne&lt;/em&gt; phrase de passe pour proteger votre clé privée. Cette phrase de
passe est la partie la plus fragile de tout le système.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;La page de manuel de GPG.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une phrase de passe devrait:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Être suffisamment longue pour être difficile à deviner;&lt;/li&gt;
&lt;li&gt;Ne pas être une citation connue (littérature, livres sacrés etc);&lt;/li&gt;
&lt;li&gt;Difficile à deviner même pour vos proches;&lt;/li&gt;
&lt;li&gt;Facile à se souvenir et à taper;&lt;/li&gt;
&lt;li&gt;être unique et non partagée entre différents sites / applications etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Une des techniques consiste à utiliser des mots du dictionnaire, sélectionnés de
manière aléatoire, puis modifiés.&lt;/p&gt;
&lt;div class="figure"&gt;
&lt;img alt="XKCD sur la force des mots de passe." src="https://imgs.xkcd.com/comics/password_strength.png" /&gt;
&lt;/div&gt;
&lt;p&gt;Micah Lee &lt;a class="reference external" href="https://github.com/micahflee/passphrases"&gt;travaille également sur un outil&lt;/a&gt; qui vise à rendre la mémorisation
des phrases de passe plus aisée, de par leur répétition avec des pauses de plus
en plus longues.&lt;/p&gt;
&lt;div class="figure"&gt;
&lt;img alt="Capture d'écran du logiciel de génération et de mémorisation des phrases de passe." src="{filename}/static/passphrases.png" /&gt;
&lt;/div&gt;
&lt;p&gt;Oui, ce n'est pas aussi simple que ce qu'il y parait. Pour ma part, j'ai une
copie en local de mes clés, dans un fichier chiffré avec une autre clé que j'ai
généré pour l'occasion et que je ne partagerait pas. J'ai par ailleurs
&lt;a class="reference external" href="https://github.com/jamessan/vim-gnupg"&gt;configuré&lt;/a&gt; mon éditeur de texte pour
pouvoir chiffrer les documents textes par défaut.&lt;/p&gt;
&lt;p&gt;J'ai donc regénéré une nouvelle fois mes clés de travail et personnelles, en
utilisant des phrases de passe plus complexes.&lt;/p&gt;
&lt;p&gt;Reste encore la question de la sauvegarde de ces clés privées de manière
chiffrée, que je n'ai pas encore résolue. Bref, tout cela me semble bien
compliqué pour réussir à l'expliquer à des novices, qui pour certains ne sont
même pas sur de l'intérêt de la chose.&lt;/p&gt;
</content></entry></feed>

View file

@ -1,121 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - diy</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/diy.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2012-12-28T00:00:00+01:00</updated><entry><title>Tricot</title><link href="https://blog.notmyidea.org/tricot.html" rel="alternate"></link><published>2012-12-28T00:00:00+01:00</published><updated>2012-12-28T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-28:/tricot.html</id><summary type="html">&lt;p&gt;Puisque j'ai décidé d'apprendre à faire les trucs moi-même, je me mets au
tricot. Et puis y'a aussi tout un symbole derrière: le tricot, c'est pour les
filles, tu sais, un &amp;quot;truc de gonzesse&amp;quot;.&lt;/p&gt;
&lt;p&gt;Eh bah c'est pas gagné, jte le dis. Pour l'instant j'ai réussi à faire à peu …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Puisque j'ai décidé d'apprendre à faire les trucs moi-même, je me mets au
tricot. Et puis y'a aussi tout un symbole derrière: le tricot, c'est pour les
filles, tu sais, un &amp;quot;truc de gonzesse&amp;quot;.&lt;/p&gt;
&lt;p&gt;Eh bah c'est pas gagné, jte le dis. Pour l'instant j'ai réussi à faire à peu
près un rang d'endroit et j'arrive pas à enchainer sur l'envers pour réussir
à faire un point jersey (jersey c'est un rang endroit puis un rang envers).&lt;/p&gt;
&lt;p&gt;Enfin bref, si jamais ça vous botte vous aussi, voila quelques ressources que
j'ai trouvé sur internet (en plus des conseils avisés de maman chérie™):&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.youtube.com/watch?v=VcGiBG2BNxo&amp;amp;list=UUskaiVNnKf7amRb5OI5op_w"&gt;Montage des mailles &amp;quot;normales&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.youtube.com/watch?v=aIQtNN89pqA&amp;amp;list=UUskaiVNnKf7amRb5OI5op_w"&gt;Le point jersey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La nana explique plutôt bien et assez lentement. En espérant que ça prenne.&lt;/p&gt;
</content><category term="note"></category></entry><entry><title>Bière maison !</title><link href="https://blog.notmyidea.org/biere-maison-fr.html" rel="alternate"></link><published>2012-04-10T00:00:00+02:00</published><updated>2012-04-10T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-04-10:/biere-maison-fr.html</id><summary type="html">&lt;p&gt;Et voilà, c'est notre troisième brassin. On a commencé à faire notre propre
bière (avec un ami, Fred) il y a quasiment un an maintenant, et après quelques
dératés, même s'il nous reste encore bien du chemin à parcourir pour avoir
quelque chose qui nous convienne réellement… c'est pas si …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Et voilà, c'est notre troisième brassin. On a commencé à faire notre propre
bière (avec un ami, Fred) il y a quasiment un an maintenant, et après quelques
dératés, même s'il nous reste encore bien du chemin à parcourir pour avoir
quelque chose qui nous convienne réellement… c'est pas si pire comme on dit !&lt;/p&gt;
&lt;p&gt;Cette fois-çi, on s'est penché sur la confection d'une IPA (Indian Pale Ale, une
bière un peu plus amère que celle qu'on à l'habitude de trouver en France).&lt;/p&gt;
&lt;p&gt;Elle est plus amère car elle comporte plus de houblon que les autres, et
(dans notre cas en tout cas) parce qu'on fait la première fermentation en
présence de houblon.&lt;/p&gt;
&lt;div class="section" id="comment-qu-on-fait-de-la-biere"&gt;
&lt;h2&gt;Comment qu'on fait de la bière ?&lt;/h2&gt;
&lt;p&gt;Machine arrière; n'allons pas trop vite: comment est-ce qu'on fait de la bière,
d'abord ?&lt;/p&gt;
&lt;p&gt;En fin de compte, les quelques étapes nécessaire à la confection de la bière ne
sont pas bien sorcières; concassage de l'orge maltée, cuisson (libération de
l'amidon dans l'eau), infusion du houblon, refroidissement, première
fermentation, embouteillage et seconde fermentation.&lt;/p&gt;
&lt;p&gt;L'idée principale est transformer l'amidon d'orge maltée en sucre, pour le
&amp;quot;donner à manger&amp;quot; à des levures. Vous ajoutez un peu de houblon au milieu pour
donner un petit goût amer et le tour est joué. Enfin presque.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="etape-par-etape"&gt;
&lt;h2&gt;Étape par étape&lt;/h2&gt;
&lt;p&gt;Première étape: &lt;strong&gt;le concassage&lt;/strong&gt;. On avait 6kg d'orge maltée à concasser (plus
exactement 6kg de malt pâle &lt;em&gt;7EDC&lt;/em&gt; et 500g de malt cara &lt;em&gt;50EDC&lt;/em&gt;).&lt;/p&gt;
&lt;img alt="Image de concassage." src="images/concassage.jpg" style="width: 400px;" /&gt;
&lt;p&gt;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
malt trop fin, on se retrouve avec un dépôt dégeulasse au fond de toutes les
bouteilles (c'est l'expérience qui parle, notre première bière avait plus goût
de céréale que de bière…)&lt;/p&gt;
&lt;p&gt;Contrairement aux fois précédentes où nous avions utilisé la technique du
marteau et du torchon (oui, comme vous pouvez l'imaginer, c'est assez long et
fastidieux), On a utilisé… un moulin à malt ! Qui nous à permis de concasser les
6kg en 30 minutes (heureusement qu'on était trois pour se relayer sur le
moulin, parce que nos petits muscles fatiguaient assez vite; vous pouvez
envisager de faire ça tout seul si vous êtes un tennisman).&lt;/p&gt;
&lt;img alt="C'est dur !" src="images/concasse.jpg" style="width: 700px;" /&gt;
&lt;p&gt;La seconde étape, &lt;strong&gt;l'empatage&lt;/strong&gt;. Il s'agit de faire chauffer notre orge maltée
à différentes températures. Les fois précédentes, on avait utilisé plusieurs
paliers de température, mais il semble que ça ne soit pas si nécessaire que ça,
selon les informations de l'ami Fred. On à donc tenté de faire chauffer notre
malt directement à 50°C. Une petite erreur sur la route, on à eu peur de la
contamination bactérienne et on à décidé de faire bouillir nos 26L d'eau pour
être sur que les bactéries s'enfuient en courant. Je dis erreur parce que ça
nous à pris pas loin de 3h30, inertie quand tu nous tiens!&lt;/p&gt;
&lt;p&gt;On se rends compte de la taille de la marmite un peu là:&lt;/p&gt;
&lt;img alt="Une grosse marmite" src="images/marmite.jpg" style="width: 400px;" /&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;La troisième étape, c'est &lt;strong&gt;le rinçage&lt;/strong&gt;, l'idée est de récupérer l'amidon qui
s'est dissout dans l'eau et de mettre de côté l'orge maltée (la partie solide).
Pour ça, il faut faire chauffer de l'eau de rinçage. On a utilisé 10L d'eau de
rinçage qu'on a fait chauffer à 78°C, en comptant sur le fait qu'elle perdra de sa
température (20°C à peu près) en étant utilisée. On a filtré deux fois pour
être sûr de ne rien perdre.&lt;/p&gt;
&lt;img alt="Filtrage filtrage..." src="images/filtrage.jpg" style="width: 700px;" /&gt;
&lt;p&gt;L'étape d'après (la quatrième, vous suivez), c'est &lt;strong&gt;le houblonnage&lt;/strong&gt;.
On va faire infuser notre &amp;quot;solution aqueuse&amp;quot; (wouah, on dirait de la chimie !)
avec du houblon. Il faut porter l'eau à ébullition et laisser faire durant 1h.&lt;/p&gt;
&lt;p&gt;Dernière étape: &lt;strong&gt;le refroidissement&lt;/strong&gt;. On dirait que c'est tranquilou comme
ça, mais en fait ça ne l'est pas tant que ça: il faut réussir à passer notre
liquide qui était en ébullition à 54°C en un temps acceptable. Pour ça, on
a utilisé un serpentin confectionné main.&lt;/p&gt;
&lt;img alt="Notre refroidisseur fait main par Fred." src="images/refroidisseur.jpg" style="width: 400px;" /&gt;
&lt;p&gt;Ç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).&lt;/p&gt;
&lt;img alt="Décidement pas." src="images/refroidissement.jpg" style="width: 700px;" /&gt;
&lt;p&gt;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
! Dans notre cas, on ajoute aussi dans la cuve de fermentation du houblon
question de donner l'amertume dont on a envie.&lt;/p&gt;
&lt;p&gt;On à mesuré une densité de 1046, ce qui veut dire 6° d'alcool. La cuve est
maintenant en train de buller tranquillement (les levures produisent du gaz qui
est évacué), et ça doit durer 15 jours approximativement.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="mise-en-bouteille"&gt;
&lt;h2&gt;Mise en bouteille&lt;/h2&gt;
&lt;p&gt;Une fois ces deux semaines passées, il faut mettre en bouteille. Dans notre cas
nous avons récupéré des bouteilles à bouchon mécanique (vous savez, les
bouteilles de limonades) qu'on à bien rincé et nettoyé.&lt;/p&gt;
&lt;p&gt;On s'équipe d'un siphon (pensez à prendre un tuyau avec un diamètre assez
important, le notre était petit et c'était assez long) et après avoir ajouté du
sucre dans le mélange (pour réactiver les levures), on remplit les bouteilles
! Il s'agit de la seconde fermentation, celle qui va faire les bulles (la
première fermentation se charge de l'alcool, la seconde des bulles).&lt;/p&gt;
&lt;p&gt;Et voilà ! Il ne reste plus qu'à mettre les bouteilles de coté durant deux
semaines de plus et… à déguster le moment venu.&lt;/p&gt;
&lt;p&gt;On a donc pu tester notre bière la semaine dernière et, ma foi, elle est pas
mal du tout. Elle ne mousse pas trop et à un goût un peu amer. Malheureusement
pas assez à mon goût, mais ça viendra. En comparaison à nos précédents essais,
c'est plutôt positif: la première était ratée puisque trop de pression et trop
de dépôt (et donc un fort goût de levures) alors que la seconde (on avait tenté
d'ajouter de la lavande) avait un goût de lavande amère, pour ne pas dire de
savon.&lt;/p&gt;
&lt;p&gt;Cette dernière bière a un goût de… de bière ! Il nous reste encore à comprendre
comment faire pour lui donner la saveur que l'on souhaite, mais c'est déjà un
grand pas en avant. Prochaine étape... La bière de Noël !&lt;/p&gt;
&lt;/div&gt;
</content></entry></feed>

58
feeds/feminisme.atom.xml Normal file
View file

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis - Carnets en ligne - Féminisme</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/feminisme.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2015-07-09T00:00:00+02:00</updated><entry><title>Charte et événements non-mixtes au sein de l'Afpy</title><link href="https://blog.notmyidea.org/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html" rel="alternate"></link><published>2015-07-09T00:00:00+02:00</published><updated>2015-07-09T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-07-09:/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html</id><summary type="html">
&lt;p&gt;&lt;em&gt;Mail envoyé sur la liste de diffusion de l'AFPY en Juillet 2015&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bonjour à toutes et tous,&lt;/p&gt;
&lt;p&gt;Récemment, l'Afpy à pris la décision de ne pas relayer la tenue d'un
événement non-mixte d'apprentissage de Python organisé par PyLadies [0].&lt;/p&gt;
&lt;p&gt;La raison est le fait que la tenue d'un tel événement …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;&lt;em&gt;Mail envoyé sur la liste de diffusion de l'AFPY en Juillet 2015&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bonjour à toutes et tous,&lt;/p&gt;
&lt;p&gt;Récemment, l'Afpy à pris la décision de ne pas relayer la tenue d'un
événement non-mixte d'apprentissage de Python organisé par PyLadies [0].&lt;/p&gt;
&lt;p&gt;La raison est le fait que la tenue d'un tel événement ne respecte pas la
charte [1], et particulièrement le fait que c'est un événement
discriminant, alors que toutes les discriminations cherchent à être évitées.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;LAFPY souhaite éviter tout type de discrimination, que ce soit sur
le sexe, lorientation sexuelle, le handicap, lapparence physique,
lorigine ou la religion, et sous quelque forme que ce soit (parole,
image, texte et autre).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Je suis un peu attristé que notre charte actuelle ne nous permette pas
de soutenir de telles propositions: les événements non-mixtes pour les
minorités sont des pratiques qui existent depuis longtemps, et qui ont
notamment été instrumentales dans la lutte contre lapartheid [2].&lt;/p&gt;
&lt;p&gt;Et donc je voudrais voir cette charte évoluer si possible, mais j'ai du
mal à voir comment travailler le texte pour qu'il permette la tenue
d'événements non-mixtes au sein même de l'Afpy.&lt;/p&gt;
&lt;p&gt;Qu'est-ce que vous en pensez ?&lt;/p&gt;
&lt;p&gt;— Alexis&lt;/p&gt;
&lt;p&gt;[0] http://www.meetup.com/fr/PyLadies-Paris/
[1] http://www.afpy.org/doc/afpy/charte.html
[2] Une citation à ce propos:&lt;/p&gt;
&lt;p&gt;« La pratique de la non-mixité est tout simplement la conséquence de la
théorie de lauto-émancipation. Lauto-émancipation, cest la lutte par
les opprimés pour les opprimés. Cette idée simple, il semble que chaque
génération politique doive la redécouvrir. Dans les années 1960, elle a
dabord été redécouverte par le mouvement américain pour les droits
civils qui, après deux ans de lutte mixte, a décidé de créer des groupes
noirs, fermés aux Blancs. Cétait, cela demeure, la condition&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pour que leur expérience de discrimination et dhumiliation puisse se
dire, sans crainte de faire de la peine aux bons Blancs ;&lt;/li&gt;
&lt;li&gt;pour que la rancœur puisse sexprimer et elle doit sexprimer ;&lt;/li&gt;
&lt;li&gt;pour que ladmiration que les opprimés, même révoltés, ne peuvent
sempêcher davoir pour les dominants les noirs pour les Blancs, les
femmes pour les hommes ne joue pas pour donner plus de poids aux
représentants du groupe dominant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Car dans les groupes mixtes, Noirs-Blancs ou femmes-hommes, et en
général dans les groupes dominés-dominants, cest la vision dominante du
préjudice subi par le groupe dominé qui tend à… dominer. Les opprimés
doivent non seulement diriger la lutte contre leur oppression, mais
auparavant définir cette oppression elles et eux-mêmes. Cest pourquoi
la non-mixité voulue, la non-mixité politique, doit demeurer la pratique
de base de toute lutte ; et cest seulement ainsi que les moments mixtes
de la lutte car il y en a et il faut quil y en ait ne seront pas
susceptibles de déraper vers une reconduction douce de la domination.»&lt;/p&gt;
&lt;p&gt;-- http://lmsi.net/La-non-mixite-une-necessite&lt;/p&gt;</content></entry></feed>

File diff suppressed because it is too large Load diff

View file

@ -1,90 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - life</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/life.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2018-05-27T00:00:00+02:00</updated><entry><title>De Mozilla à la Brasserie du Vieux Singe</title><link href="https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html" rel="alternate"></link><published>2018-05-27T00:00:00+02:00</published><updated>2018-05-27T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2018-05-27:/de-mozilla-a-la-brasserie-du-vieux-singe.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Ce weekend avait lieu &lt;a href="https://sudweb.fr/2018/"&gt;SudWeb&lt;/a&gt; « la conférence Web surtout humaine », ou on m'a proposé de venir parler de ma reconversion professionnelle, ou comment un passionné de Logiciels Libres choisit de créer une petite brasserie artisanale.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Certaines parties de ce que je voulais transmettre sont passées à la trappe, alors que …&lt;/em&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Ce weekend avait lieu &lt;a href="https://sudweb.fr/2018/"&gt;SudWeb&lt;/a&gt; « la conférence Web surtout humaine », ou on m'a proposé de venir parler de ma reconversion professionnelle, ou comment un passionné de Logiciels Libres choisit de créer une petite brasserie artisanale.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Certaines parties de ce que je voulais transmettre sont passées à la trappe, alors que d'autres ont pris plus de place que prévu. J'avais donc envie de reprendre mes notes pour les transformer en billet de blog, question d'élaborer sur le sujet.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;J'ai toujours été motivé par mes passions. Quand j'ai commencé à travailler professionnellement, je me suis rendu compte que même si je faisais quasiment la même chose qu'auparavant, ça n'avait plus le même goût. J'étais maintenant &lt;em&gt;obligé&lt;/em&gt; de le faire, et je n'en tirais pas le même plaisir.&lt;/p&gt;
&lt;p&gt;Quand j'étais plus jeune au lycée j'écrivais des programmes en &lt;em&gt;Visual Basic&lt;/em&gt; que je partageais en ligne sur mon site en &lt;code&gt;.free.fr&lt;/code&gt;. Programmes que probablement personne n'a lu, mais l'intention était bel et bien celle de partager mes créations, et d'échanger à leur propos.&lt;/p&gt;
&lt;p&gt;Cette culture du partage — celle du logiciel libre — est celle qui m'anime.&lt;/p&gt;
&lt;p&gt;Quelques années plus tard, je découvre le langage de programmation Python, et avec lui toute une communauté, mue par ces mêmes valeurs de partage et d'amélioration de nos pratiques. Puis je rencontre le Logiciel Libre, avec l'écriture d'un programme (&lt;a href="https://getpelican.com"&gt;pelican&lt;/a&gt;) qui reste encore largement utilisé aujourd'hui. Autant dire que c'est une bonne claque que de voir des inconnus contribuer à un bout de code qu'eux aussi jugent utile.&lt;/p&gt;
&lt;p&gt;À la fin de mes études, alors que je reste passionné par le développement logiciel, je ne veux ni travailler pour l'industrie, ni pour la finance. Je songe même déjà à cette époque à changer de métier (avant même d'avoir commencé !). Coup de bol, une structure qui m'est chère cherche des développeurs Python: Mozilla. Sans trop y croire, je passe une série d'entretiens qui se déroulent bien (!) et je commence quelques mois plus tard à travailler pour cette organisation incroyable, porteuse d'espoir et de toute une symbolique pour moi.&lt;/p&gt;
&lt;p&gt;Je bosse sur du Logiciel Libre, en Python, en télétravail parfois, avec une bonne paie, sans parler du côté prestigieux. Grisant.&lt;/p&gt;
&lt;p&gt;Mais au fur et à mesure je découvre l'envers du décors: une méritocratie ancrée et assumée, une hiérarchie de plus en plus importante, menant à une lourdeur administrative assez présente. À ajouter à la barrière de la langue, et aux différences culturelles. Finalement tout n'est pas rose ici.&lt;/p&gt;
&lt;p&gt;Je décide alors de (je pense) faire un de mes meilleurs choix de vie à ce jour: passer aux 4/5èmes. Je récupère tous mes vendredis. Des weekends de 3 jours, toutes les semaines. Un espace précieux pour me reposer, et pour rêver un peu.&lt;/p&gt;
&lt;p&gt;C'est à ce moment que Fred, un ami de longue date, en revenant du Québec (ou les brasseries sont légion), me propose de faire de la bière avec lui. Moi qui ne savais même pas qu'il était &lt;em&gt;possible&lt;/em&gt; de faire de la bière. On tente donc l'expérience, et nos premières expériences sont des journées bien &lt;em&gt;funky&lt;/em&gt;, à faire toutes les erreurs possibles.&lt;/p&gt;
&lt;p&gt;Peu à peu, on découvre un nouveau monde: celui des brasseurs amateurs. De nouvelles compétences sont nécessaires, de la physique à la biochimie. On se met à rencontrer des professionnels, des passionnés, à échanger sur les forums. On se forme, petit à petit. Tout comme il y a la communauté des gens qui font du Python, il y a la communauté des gens qui font de la bière. Pas encore autant fédérés, ça semble balbutiant alors mais la passion elle est bien présente.&lt;/p&gt;
&lt;p&gt;Tout comme le monde du Logiciel Libre est constitué autour d'un ennemi commun (les GAFA), le monde de la bière artisanale à la sien: les brasseries industrielles, qui uniformisent les goûts et les processus.&lt;/p&gt;
&lt;p&gt;Je continue en parallèle mon travail chez Mozilla, pendant 4 années. Et puis un jour, une annonce d'arrêt d'un projet sur lequel je travaillais me fait réaliser que cette situation m'épuise. La fameuse goutte de trop.&lt;/p&gt;
&lt;p&gt;Je décide alors de partir, de faire une pause, sans trop savoir ce que l'avenir me réserve. Une petite période de blanc de deux mois. Le regard des autres est parfois culpabilisant. Mes parents me demandent si « je ne veux pas attendre encore un peu ». La transition me fait peur, mais je choisis quand même de troquer mon confort matériel pour de la cohérence.&lt;/p&gt;
&lt;p&gt;Petit à petit, l'idée de monter ce qui est maintenant devenu &lt;a href="https://www.vieuxsinge.com"&gt;La Brasserie du Vieux Singe&lt;/a&gt; se pose en évidence. Mais monter une brasserie ce n'est pas uniquement faire de la bière: c'est se mettre d'accord sur des valeurs, trouver comment les défendre, monter un projet pour, et tenir le cap.&lt;/p&gt;
&lt;p&gt;Quelques mois après mon départ, on se retrouve donc à parler de ces valeurs de partage, de documentation, de goût. De gouvernance et de collaboration aussi.
Dans nos pratiques courantes, on décide d'intégrer du temps pour documenter la vie de la brasserie.&lt;/p&gt;
&lt;p&gt;À titre d'exemple, nos étiquettes contiennent l'ensemble des ingrédients que l'on utilise de la manière la plus détaillée possible. On travaille aussi sur un projet de laveuse de fûts, qui sera publié sous licence libre, avec l'idée de pouvoir, petit à petit, constituer un ensemble d'outils utiles à tous les brasseurs, et peut être même réussir à favoriser les échanges entre toutes ces personnes.&lt;/p&gt;
&lt;p&gt;Nous sommes deux brasseurs, deux chefs d'entreprise, mais aussi deux développeurs. Nos compétences de développeurs nous sont utiles quotidiennement: pour notre laveuse de fûts, pour nos créations de recettes (j'ai découvert la puissance des tableurs !), pour notre site de préventes, notre site Web, nos outils du quotidien. On se rend compte qu'il s'agit de compétences précieuses.&lt;/p&gt;
&lt;p&gt;Mais monter une entreprise, c'est aussi assumer une partie administrative. Vous vous rappelez cette histoire de réactions face aux activités subordonnées ? Et bien quand je fais mes déclarations aux douanes, ce n'est pas de gaîté de cœur. Je sais par contre pourquoi je le fais: ce sont les règles du jeu. Des obligations, mais peut-être moins de coercition. J'y trouve plus de sens.&lt;/p&gt;
&lt;p&gt;Et, si je n'avais pas réduit mon temps de travail, j'aurais peut-être loupé la découverte de ce nouveau monde, celui qui me passionne aujourd'hui.&lt;/p&gt;
&lt;p&gt;Alors je vous invite à vous poser la question — indispensable — de vos valeurs: qu'est-ce que vous souhaitez faire ? Qu'est-ce qui vous anime ? Et peut-être à aménager du temps pour explorer vos envies. &lt;/p&gt;</content></entry><entry><title>Groupement d'achats &amp; partage d'expérience</title><link href="https://blog.notmyidea.org/groupement-dachats-partage-dexperience.html" rel="alternate"></link><published>2018-03-03T00:00:00+01:00</published><updated>2018-03-03T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2018-03-03:/groupement-dachats-partage-dexperience.html</id><summary type="html">&lt;p&gt;Il y a quelques années, on s'est motivé entre copains copines pour créer un groupement d'achat.&lt;/p&gt;
&lt;p&gt;L'idée est simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;commander en gros, pour faire baisser les prix&lt;/li&gt;
&lt;li&gt;se passer d'intermédiaires et favoriser les circuits courts&lt;/li&gt;
&lt;li&gt;aller à la rencontre des producteurs locaux et échanger&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notre groupement dessert actuellement 18 foyers …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Il y a quelques années, on s'est motivé entre copains copines pour créer un groupement d'achat.&lt;/p&gt;
&lt;p&gt;L'idée est simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;commander en gros, pour faire baisser les prix&lt;/li&gt;
&lt;li&gt;se passer d'intermédiaires et favoriser les circuits courts&lt;/li&gt;
&lt;li&gt;aller à la rencontre des producteurs locaux et échanger&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notre groupement dessert actuellement 18 foyers et une 60aine de personnes.&lt;/p&gt;
&lt;p&gt;Au fur et à mesure de la vie du groupement, on a développé quelques outils pour se simplifier la vie. Voici un retour d'expérience et quelques astuces / outils, au cas où l'envie vous prenne à vous aussi :)&lt;/p&gt;
&lt;h1&gt;Organisation&lt;/h1&gt;
&lt;p&gt;On organise environs trois ou quatre distributions par an. Le &lt;em&gt;modus operandi&lt;/em&gt; est le suivant:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;chaque product·eur·rice à un·e référent·e, qui s'occupe de faire le lien;&lt;/li&gt;
&lt;li&gt;une personne est désignée pour coordonner la distribution;&lt;/li&gt;
&lt;li&gt;4 semaines avant la distribution, les référent·e·s mettent à jour les prix / produits dans le tableau de commandes;·e·&lt;/li&gt;
&lt;li&gt;3 semaines avant la distribution, les commandes sont ouvertes;&lt;/li&gt;
&lt;li&gt;2 semaines avant la distribution, les commandes sont closes;&lt;/li&gt;
&lt;li&gt;Les référent·e·s ont ensuite deux semaines pour récupérer les commandes pour la distribution&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Quels produits ?&lt;/h1&gt;
&lt;p&gt;On essaye d'avoir uniquement des produits qui se conservent (on a également quelques autres produits plus frais, mais avec d'autres modalités).&lt;/p&gt;
&lt;p&gt;Entre autres: bières, légumes secs, conserves, jus, miel, pâtes, semoule, café, vinaigres, pommes de terre, oignons, huiles, farines.&lt;/p&gt;
&lt;p&gt;On essaye de faire du local puis du bio au plus proche plutôt que de trouver nécessairement les prix les plus bas. C'est une discussion qui revient assez
souvent, et donc un point à évoquer lors de la création pour avoir une posture
claire sur le sujet (tout le monde n'est pas animé par la même éthique !).&lt;/p&gt;
&lt;h1&gt;Paiements&lt;/h1&gt;
&lt;p&gt;Pour les paiements, on utilise autant que possible des chèques. Chaque référent·e paye la·le product·rice·eur en son nom, et lui demande d'attendre la date de la distribution pour l'encaissement. La plupart des producteurs acceptent d'être payés sous quinzaine.&lt;/p&gt;
&lt;p&gt;Le jour de la distribution, tout le monde apporte son chéquier. Nous avons mis
en place une moulinette qui s'occupe de faire la répartition des chèques automatiquement, chaque membre se retrouve à faire en moyenne un ou deux chèques.&lt;/p&gt;
&lt;p&gt;Chaque référent·e est ainsi remboursé·e de la somme avancée, et chaque
membre du groupement d'achat paye ce qu'il doit payer. Nous n'avons
volontairement pas de structure juridique et pas de compte en banque. Les
paiements s'effectuent directement entre nous.&lt;/p&gt;
&lt;h1&gt;Transports&lt;/h1&gt;
&lt;p&gt;Chaque référent·e commande les produits, puis ensuite s'occupe de les rapatrier. À Rennes, on a la chance d'avoir pas mal de producteurs aux alentours, donc c'est assez simple.&lt;/p&gt;
&lt;p&gt;Le mieux est de ramener les produits juste un peu avant la distribution au lieu de distribution, ça permet d'éviter de les stocker trop longtemps, et d'éviter aux producteurs d'attendre trop longtemps avant d'encaisser les chèques.&lt;/p&gt;
&lt;p&gt;Pour les grosses commandes, les voitures se remplissent bien, mais ma petite Clio suffit, que ce soit dit !&lt;/p&gt;
&lt;h1&gt;La distribution&lt;/h1&gt;
&lt;p&gt;Un peu en amont de la distribution, il faut organiser l'espace. Des tas par membre sont constitués pour faciliter les choses le jour de la distribution.&lt;/p&gt;
&lt;p&gt;Le jour même, on se retrouve, on charge ses marchandises, on échange quelques chèques et on papote ! On en profite pour:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;discuter de la date de la prochaine distribution;&lt;/li&gt;
&lt;li&gt;trouver une nouvelle personne pour la coordonner;&lt;/li&gt;
&lt;li&gt;discuter de nouveaux produits;&lt;/li&gt;
&lt;li&gt;refaire le monde;&lt;/li&gt;
&lt;li&gt;changer de référents pour les producteurs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et c'est reparti pour un tour ;)&lt;/p&gt;
&lt;h1&gt;Nos outils&lt;/h1&gt;
&lt;p&gt;On utilise un tableur en ligne pour partager les prix et prendre les commandes. On a essayé d'utiliser &lt;em&gt;ethercalc&lt;/em&gt; au début mais ça ne fonctionnait pas pour nous à l'époque (trop de petits bugs). On a donc préféré utiliser Google docs (ouch).&lt;/p&gt;
&lt;p&gt;Il est d'ailleurs possible d'y intégrer de nouvelles fonctionnalités assez facilement, du coup Fred et Rémy ont planché sur un moyen d'automatiser la répartition des chèques (qu'on faisait dans un premier temps à la main - assez péniblement).&lt;/p&gt;
&lt;p&gt;Le système n'est pas parfait mais fonctionne quand même assez bien !&lt;/p&gt;
&lt;p&gt;Quelques ressources, donc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/almet/8c77fafc9e487c02ded852ec4a91ae16"&gt;le code pour faire la répartition des chèques&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.google.com/spreadsheets/d/1bnPRSvf2Q2RDxKerWnEqUyJjuCFePnVMq6pWo8LeA_k/edit?usp=sharing"&gt;une version « à remplir » de notre tableau de commandes&lt;/a&gt; (le mieux est d'en faire une copie !).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bon groupement d'achat ;)&lt;/p&gt;</content></entry></feed>

View file

@ -1,43 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - misc</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/misc.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2019-06-26T00:00:00+02:00</updated><entry><title>Un espace des communs Rennais ?</title><link href="https://blog.notmyidea.org/un-espace-des-communs-rennais.html" rel="alternate"></link><published>2019-06-26T00:00:00+02:00</published><updated>2019-06-26T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2019-06-26:/un-espace-des-communs-rennais.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Ce document se veut surtout être quelques notes, et donc revêt un caractère « fouilli » paaaarfaitement assumé. Dailleurs, ce n'est que ce que j'ai bien voulu retenir. Voilà.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Je ressors d'une discussion avec quelques complices autour de deux idées :
1. Avoir un espace pour fédérer différentes personnes intéressées par le …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Ce document se veut surtout être quelques notes, et donc revêt un caractère « fouilli » paaaarfaitement assumé. Dailleurs, ce n'est que ce que j'ai bien voulu retenir. Voilà.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Je ressors d'une discussion avec quelques complices autour de deux idées :
1. Avoir un espace pour fédérer différentes personnes intéressées par le sujet des &lt;em&gt;communs&lt;/em&gt;;
2. Monter une structure Rennaise pour proposer de lhébergement de services web.&lt;/p&gt;
&lt;p&gt;Élaborons un peu...&lt;/p&gt;
&lt;h2&gt;1. Un espace pour fédérer&lt;/h2&gt;
&lt;p&gt;L'idée qui à été développée est celle d'avoir un espace (un ou des lieux, à différents moments dans l'année) pour que les rencontres entre les projets &lt;em&gt;du libre&lt;/em&gt; à Rennes puissent se dérouler. Le constat est qu'il existe différentes structures actuellement en place, mais que a) certaines personnes ne se retrouvent pas dans ces espaces et b) la porosité entre ces différents groupes est assez faible.&lt;/p&gt;
&lt;p&gt;Pour l'instant pas d'idée précise de ce qui pourrait être proposé, mais quelques pistes ont été évoquées. l'envie est de faire un document d'intention et de proposer à d'autres de rejoindre le collectif en création.&lt;/p&gt;
&lt;h3&gt;Fréquence&lt;/h3&gt;
&lt;p&gt;Deux pistes ont été évoquées:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Faire des rencontres suffisamment espacées les unes des autres&lt;/strong&gt;, pour que leur caractère « exceptionnel » soit une force. Si la fréquence des réunions est assez faible, alors l'incitation pour y prendre part est peut-être plus grande ?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ou au contraire, &lt;strong&gt;avoir des rencontres avec une fréquence assez forte&lt;/strong&gt;, pour qu'en cas d'incapacité à participer il n'y ait pas trop longtemps à attendre ?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Charte éthique&lt;/h3&gt;
&lt;p&gt;Le fait d'avoir un &lt;em&gt;code de conduite&lt;/em&gt; pour de tels évènements à été discuté, un des arguments évoqués étant le fait qu'un tel code n'est pas considéré nécessaire par certaines personnes, puisque les règles évoquées tiennent du bon sens.&lt;/p&gt;
&lt;p&gt;Il a été précisé que l'établissement de ce type de document a pour objectif de:
- Faire que des minorités et/ou oppressés se sentent protégés et considérés, et donc bienvenues à ce type d'évènements;
- En cas de situations considérées comme problématiques, des personnes référentes soient désignées pour aider à leur résolution&lt;/p&gt;
&lt;h3&gt;Gouvernance&lt;/h3&gt;
&lt;p&gt;Le sujet de la gouvernance à été également abordé : pour avoir de tels rendez-vous, peu importe leur nature, il faut que ceux-cis soient organisés. La possibilité d'avoir des organisat·rices·eurs· tournantes à été proposé.&lt;/p&gt;
&lt;p&gt;Pour :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cela permet de ne pas reposer uniquement sur quelques personnes;&lt;/li&gt;
&lt;li&gt;Faire des fiches explicatives qui permettent à tou·te·s de s'impliquer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Contre : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quand tout le monde est responsable, personne ne l'est.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peut-être que des solutions intermédiaires sont à trouver, en désignant d'une fois sur l'autre les personnes qui soccupent du prochain rendez-vous, par exemple.&lt;/p&gt;
&lt;h2&gt;2. Hébergement de services Web&lt;/h2&gt;
&lt;p&gt;On a discuté très rapidement de la possibilité de monter une structure pour faire de lhébergement de services web sur Rennes. Le sujet n'a pas été vraiment développé, mais la question de la relation entre avoir un espace pour fédérer (le 1.) et être un hébergeur de service (le 2.) a été rapidement abordé.&lt;/p&gt;
&lt;p&gt;Faut-il avoir une seule et même structure / groupe de personnes pour ces deux projets ? Dans le cas ou l'un s'arrête, entraînerait-il l'autre dans sa « chute » ? Est-il logique de lier les deux ?&lt;/p&gt;
&lt;h2&gt;Et donc ?&lt;/h2&gt;
&lt;p&gt;Et donc c'était bien chouette de prendre un peu le temps de remettre le nez dans la vie libriste Rennaise ! Ravi de voir une dynamique prendre forme, on verra bien ou ça mène :-)&lt;/p&gt;</content></entry></feed>

View file

@ -1,22 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - musique</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/musique.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2012-12-28T00:00:00+01:00</updated><entry><title>Languages</title><link href="https://blog.notmyidea.org/languages.html" rel="alternate"></link><published>2012-12-28T00:00:00+01:00</published><updated>2012-12-28T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-28:/languages.html</id><summary type="html">&lt;p&gt;Ouriel Ellert &amp;quot; Languages&amp;quot; avec Anthony Jambon &amp;amp; Natascha Rogers, c'est <feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis - Carnets en ligne - Musique</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/musique.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2012-12-12T00:00:00+01:00</updated><entry><title>Languages</title><link href="https://blog.notmyidea.org/languages.html" rel="alternate"></link><published>2012-12-12T00:00:00+01:00</published><updated>2012-12-12T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-12:/languages.html</id><summary type="html">
enregistré par le &lt;a class="reference external" href="http://www.studiomezzanine.fr"&gt;Studio Mezzanine&lt;/a&gt; qui comme d'hab font un &lt;p&gt;Ouriel Ellert " Languages" avec Anthony Jambon &amp;amp; Natascha Rogers, c'est enregistré par le &lt;a href="http://www.studiomezzanine.fr"&gt;Studio Mezzanine&lt;/a&gt; qui
travail impeccable.&lt;/p&gt; comme d'hab font un travail impeccable.&lt;/p&gt;
&lt;p&gt;Plus d'infos sur Natasha Rogers et son groupe ici: &lt;p&gt;Plus d'infos sur Natasha Rogers et son groupe ici:
&lt;a class="reference external" href="http://www.studiomezzanine.fr/natascha-rogers/"&gt;http://www.studiomezzanine.fr/natascha-rogers/&lt;/a&gt;&lt;/p&gt; &lt;a href="http://www.studiomezzanine.fr/natascha-rogers/"&gt;http://www.studiomezzanine.fr/natascha-rogers/&lt;/a&gt;&lt;/p&gt;
&lt;iframe width="650" height="480" src="http://www.youtube.com/embed/3I5PPdsTFz0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</summary><content type="html">&lt;p&gt;Ouriel Ellert &amp;quot; Languages&amp;quot; avec Anthony Jambon &amp;amp; Natascha Rogers, c'est &lt;iframe width="650" height="480" src="http://www.youtube.com/embed/3I5PPdsTFz0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</summary><content type="html">
enregistré par le &lt;a class="reference external" href="http://www.studiomezzanine.fr"&gt;Studio Mezzanine&lt;/a&gt; qui comme d'hab font un &lt;p&gt;Ouriel Ellert " Languages" avec Anthony Jambon &amp;amp; Natascha Rogers, c'est enregistré par le &lt;a href="http://www.studiomezzanine.fr"&gt;Studio Mezzanine&lt;/a&gt; qui
travail impeccable.&lt;/p&gt; comme d'hab font un travail impeccable.&lt;/p&gt;
&lt;p&gt;Plus d'infos sur Natasha Rogers et son groupe ici: &lt;p&gt;Plus d'infos sur Natasha Rogers et son groupe ici:
&lt;a class="reference external" href="http://www.studiomezzanine.fr/natascha-rogers/"&gt;http://www.studiomezzanine.fr/natascha-rogers/&lt;/a&gt;&lt;/p&gt; &lt;a href="http://www.studiomezzanine.fr/natascha-rogers/"&gt;http://www.studiomezzanine.fr/natascha-rogers/&lt;/a&gt;&lt;/p&gt;
&lt;iframe width="650" height="480" src="http://www.youtube.com/embed/3I5PPdsTFz0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</content><category term="note"></category></entry><entry><title>"Groovy"</title><link href="https://blog.notmyidea.org/groovy.html" rel="alternate"></link><published>2012-12-27T00:00:00+01:00</published><updated>2012-12-27T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-27:/groovy.html</id><summary type="html">&lt;p&gt;“Groovy”, c'est comme ça que je l'aime la musique: peut importe le style &lt;iframe width="650" height="480" src="http://www.youtube.com/embed/3I5PPdsTFz0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</content></entry></feed>
finalement, la bonne musique c'est celle qui sonne, celle qui groove, celle qui
fait que tu tapes du pied (le droit chez moi) et que que ta tête commence
à hocher.&lt;/p&gt;
&lt;p&gt;C'est pour ça que j'ai du …&lt;/p&gt;</summary><content type="html">&lt;p&gt;“Groovy”, c'est comme ça que je l'aime la musique: peut importe le style
finalement, la bonne musique c'est celle qui sonne, celle qui groove, celle qui
fait que tu tapes du pied (le droit chez moi) et que que ta tête commence
à hocher.&lt;/p&gt;
&lt;p&gt;C'est pour ça que j'ai du mal à répondre quand on me demande quel type de
musique j'aime bien. Bah voila, maintenant je sais, je l'aime groovy ;)&lt;/p&gt;
</content><category term="note"></category></entry></feed>

View file

@ -1,38 +1,249 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - notes</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/notes.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2014-11-20T00:00:00+01:00</updated><entry><title>Le secret du bonheur</title><link href="https://blog.notmyidea.org/le-secret-du-bonheur.html" rel="alternate"></link><published>2014-11-20T00:00:00+01:00</published><updated>2014-11-20T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2014-11-20:/le-secret-du-bonheur.html</id><summary type="html">&lt;p&gt;Un enfant demande à son père :&lt;/p&gt; <feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis - Carnets en ligne - Notes</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/notes.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2017-12-29T00:00:00+01:00</updated><entry><title>NEIPA #3</title><link href="https://blog.notmyidea.org/neipa-3.html" rel="alternate"></link><published>2017-12-29T00:00:00+01:00</published><updated>2017-12-29T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2017-12-29:/neipa-3.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Test autour d'une New England Pale Ale; Cette fois ci avec du Mosaic et du Citra, durant une collab' avec Heiko.&lt;/p&gt;
&lt;h1 id="objectifs"&gt;Objectifs:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Brasser une nouvelle NEIPA en appliquant les …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Test autour d'une New England Pale Ale; Cette fois ci avec du Mosaic et du Citra, durant une collab' avec Heiko.&lt;/p&gt;
&lt;h1 id="objectifs"&gt;Objectifs:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Brasser une nouvelle NEIPA en appliquant les trouvailles des deux premières versions;&lt;/li&gt;
&lt;li&gt;Hop stand de 40mn;&lt;/li&gt;
&lt;li&gt;Contrôle du pH à 5.2;&lt;/li&gt;
&lt;li&gt;Refroidissement dans l'évier;&lt;/li&gt;
&lt;li&gt;Ajouter plus d'avoine;&lt;/li&gt;
&lt;li&gt;Faire un mash out;&lt;/li&gt;
&lt;li&gt;Augmenter un peu la quantité de grain.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="recette"&gt;Recette:&lt;/h1&gt;
&lt;p&gt;DI: 1055 (atteint)
pH: 5.2 (5.4 mesuré)&lt;/p&gt;
&lt;h2 id="grains"&gt;Grains:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;75% de Pale Ale&lt;/li&gt;
&lt;li&gt;12.5% de blé&lt;/li&gt;
&lt;li&gt;12.5% flocons d'avoine&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="houblons"&gt;Houblons:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;2g/L Mosaic (Hop Stand 40mn)&lt;/li&gt;
&lt;li&gt;2g/L Citra (Hop Stand 40mn)&lt;/li&gt;
&lt;li&gt;4g/L Citra à cru (en deux fois)&lt;/li&gt;
&lt;li&gt;4g/L Mosaic à cru (en deux fois)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="eau"&gt;Eau:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Utilisation d'eau de source, pour pouvoir corriger les sulfates / chlorures.&lt;/li&gt;
&lt;li&gt;200 Chlorures pour 100 Sulfates.&lt;/li&gt;
&lt;li&gt;
&lt;h2 id="gypse-1g"&gt;Gypse: 1g&lt;/h2&gt;
&lt;dl&gt;
&lt;dd&gt;1.8g (=4.05ml)&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;Acide lactique: 0.4ml&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="profil-dempatage"&gt;Profil d'empatage:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;68°C durant 40mn;&lt;/li&gt;
&lt;li&gt;75°C durant 10mn (mash-out)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="levure"&gt;Levure&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GigaYeast «Vermont Ale». Le nombre de cellules n'est pas indiqué sur le packaging, ni en ligne.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="deroule"&gt;Déroulé&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;12h50: empâtage à 68°C&lt;/li&gt;
&lt;li&gt;pH = 5.5. Ajout de 0.2 d'acide.&lt;/li&gt;
&lt;li&gt;Pas mal de mesures du pH:&lt;ul&gt;
&lt;li&gt;5.2@23°C (13h05)&lt;/li&gt;
&lt;li&gt;5.4@18°C (13h05)&lt;/li&gt;
&lt;li&gt;5.2@27°C (13h15)&lt;/li&gt;
&lt;li&gt;5.3@19°C (13h20)&lt;/li&gt;
&lt;li&gt;5.4@25°C (13h30)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;13h33: Mash-out à 78°C durant 10mn&lt;/li&gt;
&lt;li&gt;Test à l'iode: OK&lt;/li&gt;
&lt;li&gt;14h11: 1er rincage. Densité premier mout: 1070&lt;/li&gt;
&lt;li&gt;15h40: Hop Stand (15g Citra / 15g Mosaic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="fermentation"&gt;Fermentation&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;31/12/2017 - Fermentation à 20°C&lt;/li&gt;
&lt;li&gt;01/01/2018 - Ajout de 12g de Citra et 12g de Mosaic après deux jours.&lt;/li&gt;
&lt;li&gt;10/01/2018 - 1.040 SG = 1.008 corrigé&lt;/li&gt;
&lt;li&gt;15/01/2018 - Ajout de 12g de Citra et 12g de Mosaic&lt;/li&gt;
&lt;li&gt;15/01/2018 - Cold Crash&lt;/li&gt;
&lt;li&gt;21/01/2018 - Mise en bouteille. Resucrage à 7g/L.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="observations"&gt;Observations:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;En mettant 1.5ml d'acide, si on mesure le pH de l'eau, il est à 3.5. Ça nous à pas mal effrayé, puisque on a pas trop l'habitude de monitorer le pH. On refait: 0.4ml d'acide = pH de 4.1. Au final, cela ne semble pas utile de mesurer le pH de l'eau avant de mettre son grain.&lt;/li&gt;
&lt;li&gt;Je le savais déjà, mais travailler à deux en discutant n'est pas vraiment une bonne idée: sur les opérations un peu technique, un manque de concentration se fait tout de suite ressentir.&lt;/li&gt;
&lt;li&gt;BeerSmith semble proposer un outil pour calculer les modifications de pH, je devrais l'utiliser la prochaine fois.&lt;/li&gt;
&lt;li&gt;Baisser le ration d'empâtage: On s'est retrouvé avec beaucoup trop d'eau de rincage, alors qu'on était sur une bière assez faible en densité.&lt;/li&gt;
&lt;li&gt;Au final, ajouter l'acide au départ est problématique pour le pH de l'eau qui baisse énormement. Après quelques recherches, il semble qu'il faille faire confiance au logiciel, et prendre une seule mesure de pH à 10mn (cela devrait être stable). Le pHmetre est aussi peut-être en cause.&lt;/li&gt;
&lt;li&gt;D'une manière générale, j'ai l'impression d'être un peu à l'arrache sur la partie fermentation. Il faudrait vraiment que j'ai un plan et que je m'y tienne. Plusieurs questions me semblent encore à résoudre: combien de temps laisser le houblon à cru ? A quelle température ?&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>NEIPA #2</title><link href="https://blog.notmyidea.org/neipa-2.html" rel="alternate"></link><published>2017-12-18T00:00:00+01:00</published><updated>2017-12-18T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2017-12-18:/neipa-2.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="objectifs"&gt;Objectifs&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Corriger les erreurs du précédent brassin.&lt;/li&gt;
&lt;li&gt;Éviter les soucis de filtration&lt;/li&gt;
&lt;li&gt;Mieux corriger le pH&lt;/li&gt;
&lt;li&gt;Faire un whirlpool digne de ce nom / avoir moins de trub dans le …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici quelques prises durant un de mes brassins. L'idée est de pouvoir les relire et m'améliorer au fur et à mesure.&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="objectifs"&gt;Objectifs&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Corriger les erreurs du précédent brassin.&lt;/li&gt;
&lt;li&gt;Éviter les soucis de filtration&lt;/li&gt;
&lt;li&gt;Mieux corriger le pH&lt;/li&gt;
&lt;li&gt;Faire un whirlpool digne de ce nom / avoir moins de trub dans le fermenteur&lt;/li&gt;
&lt;li&gt;Ne pas se laisser avoir par la baisse de température durant l'empâtage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="recette"&gt;Recette&lt;/h1&gt;
&lt;p&gt;DI: 1060 (1050 mesuré)
pH: 5.2 (atteint)&lt;/p&gt;
&lt;h2 id="grains"&gt;Grains&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;90% Pils&lt;/li&gt;
&lt;li&gt;10% Flocons d'avoine&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="houblons"&gt;Houblons&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;2g/L Wakatu (au Whirlpool)&lt;/li&gt;
&lt;li&gt;2g/L Motueka (au Whirlpool)&lt;/li&gt;
&lt;li&gt;4.5g/L Wakatu à cru (en deux fois)&lt;/li&gt;
&lt;li&gt;2.5g/L Motueka à cru (en deux fois)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="eau"&gt;Eau&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Utilisation d'eau de source, pour pouvoir corriger les sulfates / chlorures.&lt;/li&gt;
&lt;li&gt;200 Chlorures pour 100 Sulfates.&lt;/li&gt;
&lt;li&gt;Gypse: 0.9g&lt;/li&gt;
&lt;li&gt;CaCl2: 3.4g&lt;/li&gt;
&lt;li&gt;Acide lactique: Au batch précédent, j'avais mesuré 5.6, donc: ajout de +2ml d'acide (=2.4g).&lt;/li&gt;
&lt;li&gt;Utilisation d'Irish Moss (2g) pour coaguler les protéines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="profil-dempatage"&gt;Profil d'empatage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;65°C durant 90mn (68°C au départ, 65 visé)&lt;/li&gt;
&lt;li&gt;78°C durant 10mn (mash-out)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="levure"&gt;Levure&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;London Ale III.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="deroule"&gt;Déroulé&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;18h36 - empatage à 65°C&lt;/li&gt;
&lt;li&gt;19h16- pH = 5.2&lt;/li&gt;
&lt;li&gt;Densité 1er moût: 1070&lt;/li&gt;
&lt;li&gt;Ébullition importante pour atteindre 6,2L avec la bonne densité.&lt;/li&gt;
&lt;li&gt;Mash-out à 78°C durant 10mn&lt;/li&gt;
&lt;li&gt;Test à l'iode: NOK&lt;/li&gt;
&lt;li&gt;1er rincage. Densité premier mout: 1070&lt;/li&gt;
&lt;li&gt;15h40: Hop Stand (15g Citra / 15g Mosaic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="fermentation"&gt;Fermentation&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;18/12/2017 - Fermentation à 18°C&lt;/li&gt;
&lt;li&gt;21/12/2017 - Ajout de 13.5g de Wakatu et 7.5g de Motueka&lt;/li&gt;
&lt;li&gt;30/12/2017 - Ajout de 13.5g de Wakatu et 7.5g de Motueka&lt;/li&gt;
&lt;li&gt;30/12/2017 - Passage à 10°C.&lt;/li&gt;
&lt;li&gt;15/01/2018 - Cold Crash&lt;/li&gt;
&lt;li&gt;21/01/2018 - Mise en bouteille. Resucrage à 7g/L.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="observations"&gt;Observations:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Je change de technique, et mets l'acide lactique directement dans l'eau.&lt;/li&gt;
&lt;li&gt;Je concasse moins fin mais reteste quand même l'avoine. Aucun souci de filtration (mais l'avoine n'est pas concassé).&lt;/li&gt;
&lt;li&gt;1g de CaCl2 ~= 2.25ml en solution à 33%.&lt;/li&gt;
&lt;li&gt;Les deux thermomètres n'affichent pas la même température. Super :(.&lt;/li&gt;
&lt;li&gt;Au final, jempâte dans une casserole pour pouvoir faire un mash-out.&lt;/li&gt;
&lt;li&gt;Le pH oscille pas mal durant l'empâtage. J'ai mesuré des pH de 4.9 à certains moments, mais au final la dernière lecture est de 5.2, ce qui me semble bon.&lt;/li&gt;
&lt;li&gt;Le système que j'utilise (refroidisseur en cuivre) pour refroidir mon moût n'est pas génial parce que ça mélange pas mal ce qu'on veut voir se déposer au fond de la cuve. Refroidir directement dans l'évier est vachement plus simple (c'est pratique de faire du 6L pour çà !)&lt;/li&gt;
&lt;li&gt;Le teste à l'iode était positif: tout n'était pas converti. Mais à 90mn de mash, je ne crois pas pouvoir faire grand chose de plus.&lt;/li&gt;
&lt;li&gt;Idée en vrac, à voir à la dégustation, mais ajouter un peu de cara pourrait être sympa.&lt;/li&gt;
&lt;li&gt;L'irish moss à vraiment bien fonctionné. Je me demande si je ne devrais pas même laisser décanter un peu plus longtemps durant le whirlpool pour avoir un effet encore plus impressionnant.&lt;/li&gt;
&lt;li&gt;Je trouve que l'efficacité de cette brasserie est vraiment pourrie.&lt;/li&gt;
&lt;li&gt;Un peu d'eau est venue diluer le moût (DI = 1050 au lieu de 1060 souhaité)&lt;/li&gt;
&lt;li&gt;Au goût, le moût à vraiment un goût qui m'assèche la gorge. Trop de modifications de l'eau ? A voir si l'effet persiste après fermentation.&lt;/li&gt;
&lt;li&gt;A priori, d'après un article de Scott Janish, empâter avec de l'avoine cru ne fonctionne que si on empate haut. Ca à un impact sur l'efficacité générale (2h pour conversion totale, c'est peut-être pour ça que mon teste à l'iode était positif)&lt;/li&gt;
&lt;li&gt;Sur l'avoine toujours, il faut &lt;strong&gt;dépasser 18%&lt;/strong&gt; pour avoir un côté moelleux. Certains mettent jusqu'à 40% !&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>François Elie : Quelle école pour la société de linformation ?</title><link href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html" rel="alternate"></link><published>2013-06-14T00:00:00+02:00</published><updated>2013-06-14T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2013-06-14:/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html</id><summary type="html">
&lt;p&gt;&lt;a href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference"&gt;http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quelques bouts selectionnés.&lt;/p&gt;
&lt;blockquote&gt; &lt;blockquote&gt;
Dis papa, quel est le secret pour être heureux ?&lt;/blockquote&gt; &lt;p&gt;Mais pourquoi continue t-on à enseigner des maths à des gens qui ne
&lt;p&gt;Sans dire un mot, le père demande à son fils de le suivre ; vont pas les utiliser ? Ben évidemment cest parce quon nest pas
Ils sortent de la maison, le père sur leur vieil âne et le fils suivant à pied.&lt;/p&gt; dans une école de linitiation où les mathématiciens …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">
&lt;p&gt;Et les gens du village …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Un enfant demande à son père :&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference"&gt;http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quelques bouts selectionnés.&lt;/p&gt;
&lt;blockquote&gt; &lt;blockquote&gt;
Dis papa, quel est le secret pour être heureux ?&lt;/blockquote&gt; &lt;p&gt;Mais pourquoi continue t-on à enseigner des maths à des gens qui ne
&lt;p&gt;Sans dire un mot, le père demande à son fils de le suivre ; vont pas les utiliser ? Ben évidemment cest parce quon nest pas
Ils sortent de la maison, le père sur leur vieil âne et le fils suivant à pied.&lt;/p&gt; dans une école de linitiation où les mathématiciens font ça entre eux
&lt;p&gt;Et les gens du village de dire :&lt;/p&gt; et on nest pas non plus dans une école de lapprentissage où lécole
a pour but de donner un métier, un bagage utilisable. Lécole ne sert
évidemment pas à ça. Dailleurs heureusement parce que sinon on
nenseignerait pas la philosophie qui ne sert à rien à part
fabriquer des profs de philosophie !&lt;/p&gt;
&lt;p&gt;On na pas besoin de tableau numérique pour enseigner linformatique
elle-même pour enseigner la science. De la même façon on na pas
besoin de machine à calculer pour enseigner les mathématiques.
Évidemment ! On na pas besoin dune machine à calculer pour savoir
faire une division. Au contraire, surtout pas !&lt;/p&gt;
&lt;p&gt;Il faut cesser dopposer lenseignement de la programmation dune part
et lenseignement des usages, cest important mais ça cest lécole
des maîtres et des esclaves. Ce quil faut enseigner, vite et à tous,
cest la science, pas la technologie ou lusage. Cest en amont de la
programmation, lalgorithmique. Cest, en amont de telle
instanciation, du codage, du chiffrement, la théorie, quelque chose
qui comme les maths nont besoin que dune craie et dun tableau noir.&lt;/p&gt;
&lt;p&gt;Ce n'est pas un hasard si le mot "numérique" à remplaçé le mot
"informatique", c'est qu'on voudrait nous faire croire qu'il n'y a pas
besoin de l'apprendre.&lt;/p&gt;
&lt;/blockquote&gt;</content></entry><entry><title>Notes: Économie libidinale et économie politique</title><link href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html" rel="alternate"></link><published>2013-06-07T00:00:00+02:00</published><updated>2013-06-07T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2013-06-07:/notes-economie-libidinale-et-economie-politique.html</id><summary type="html">
&lt;p&gt;Une enquete d'un cabinet de marketing american ARI qui pour la première
fois en 2004 disait qu'on voyait aparaitre des "alter consommateurs",
qui n'étaient pas de gens qui consommaient moins, mais qui étaient des
gens malheureux de consommer. Et qui définissaient la consommation comme
une dépendance et une addiction.&lt;/p&gt;
&lt;p&gt;Un …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;Une enquete d'un cabinet de marketing american ARI qui pour la première
fois en 2004 disait qu'on voyait aparaitre des "alter consommateurs",
qui n'étaient pas de gens qui consommaient moins, mais qui étaient des
gens malheureux de consommer. Et qui définissaient la consommation comme
une dépendance et une addiction.&lt;/p&gt;
&lt;p&gt;Un autre comportement s'est développé: le modèle "collaboratif et
contributif". Ce modèle ne se repose pas sur la consommation mais sur
l'implication et la collaboration. Ce modèle est induit par internet,
qui ne repose plus sur l'opposition production / consommation.&lt;/p&gt;
&lt;p&gt;Sur internet nous ne sommes pas des simples consommateurs, puisque vous
êtes un expéditeur / distributeur.&lt;/p&gt;
&lt;p&gt;Le changement prduit par internet est le fait que les gens ne sont plus
simplement des consommateurs,mais sont également producteurs de contenus
/ viennent améliorer les contenus existants.&lt;/p&gt;
&lt;p&gt;Note perso: quid du culte de la personalité qui en ressort ? Ce qu'il
apelle l'écologie relationelle ?&lt;/p&gt;
&lt;p&gt;Quel est le manque que vient combler facebook par exemple ? Et quel est
l'impact que ces nouveaux réseaux ont sur les modèles relationels que
l'ont connait (famille, école, droit, etc.).&lt;/p&gt;
&lt;h2 id="citations"&gt;Citations&lt;/h2&gt;
&lt;blockquote&gt; &lt;blockquote&gt;
Mais quel mauvais père qui oblige ainsi son fils d'aller à pied !&lt;/blockquote&gt; &lt;p&gt;Une révolution c'est le fait de faire une boucle est d'arriver au
&lt;p&gt;Le lendemain ils sortent de nouveau.&lt;/p&gt; terme de quelque chose. D'avoir clôt un cycle. La lune fait des
&lt;p&gt;Le père ayant installé son fils sur l'âne et lui marchant à côté.&lt;/p&gt; révolutions aussi.&lt;/p&gt;
&lt;p&gt;Les gens du village dirent alors :&lt;/p&gt; &lt;p&gt;81% des Américains déclarent que le consumerisme est une plaie pour
&lt;blockquote&gt; l'amérique (d'après Juliet Score)&lt;/p&gt;
Quel fils indigne, qui ne respecte pas son vieux père et le laisse aller à pied !&lt;/blockquote&gt; &lt;/blockquote&gt;</content></entry><entry><title>Le revenu de base</title><link href="https://blog.notmyidea.org/le-revenu-de-base.html" rel="alternate"></link><published>2013-03-10T00:00:00+01:00</published><updated>2013-03-10T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2013-03-10:/le-revenu-de-base.html</id><summary type="html">
&lt;p&gt;Le jour suivant, ils s'installent tous les deux sur l'âne avant de quitter la maison. &lt;iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0"
Les villageois commentèrent en disant :&lt;/p&gt; frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;blockquote&gt;
Ils ne respectent pas leur bête à la surcharger ainsi !&lt;/blockquote&gt; &lt;p&gt;Quelques notes prises en visualisant le documentaire "le revenu de
&lt;p&gt;Le jour suivant, ils partirent en portant eux-mêmes leurs affaires, l'âne trottinant derrière eux. base".&lt;/p&gt;
Cette fois les gens du village y trouvèrent encore à redire :&lt;/p&gt; &lt;ul&gt;
&lt;blockquote&gt;
Voilà qu'ils portent eux-mêmes leurs bagages maintenant ! C'est le monde à l'envers !&lt;/blockquote&gt;
&lt;p&gt;De retour à la maison, le père dit à son fils :&lt;/p&gt;
&lt;blockquote&gt;
Tu me demandais l'autre jour le secret du bonheur.
Peu importe ce que tu fais, il y aura toujours quelqu'un pour y trouver à redire.
Fais ce qui te plaît et là tu seras vraiment heureux.&lt;/blockquote&gt;
</content></entry><entry><title>Le revenu de base</title><link href="https://blog.notmyidea.org/le-revenu-de-base.html" rel="alternate"></link><published>2013-10-03T00:00:00+02:00</published><updated>2013-10-03T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2013-10-03:/le-revenu-de-base.html</id><summary type="html">&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0"
frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Quelques notes prises en visualisant le documentaire &amp;quot;le revenu de base&amp;quot;.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;4 Allemands sur 10 travaillent.&lt;/li&gt; &lt;li&gt;4 Allemands sur 10 travaillent.&lt;/li&gt;
&lt;li&gt;3/10 (les enfants et jeunes)&lt;/li&gt; &lt;li&gt;3/10 (les enfants et jeunes)&lt;/li&gt;
&lt;li&gt;2/10 retraite / rente&lt;/li&gt; &lt;li&gt;2/10 retraite / rente&lt;/li&gt;
@ -40,9 +251,13 @@ frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Quelques notes prises
&lt;li&gt;41% sont le fruit d'un travail rémunéré.&lt;/li&gt; &lt;li&gt;41% sont le fruit d'un travail rémunéré.&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;p&gt;Le revenu de base est inconditionnel.&lt;/p&gt; &lt;p&gt;Le revenu de base est inconditionnel.&lt;/p&gt;
&lt;p&gt;Le marché du travail ne pourra …&lt;/p&gt;</summary><content type="html">&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0" &lt;p&gt;Le marché du travail ne pourra …&lt;/p&gt;</summary><content type="html">
frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Quelques notes prises en visualisant le documentaire &amp;quot;le revenu de base&amp;quot;.&lt;/p&gt; &lt;iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0"
&lt;ul class="simple"&gt; frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;Quelques notes prises en visualisant le documentaire "le revenu de
base".&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4 Allemands sur 10 travaillent.&lt;/li&gt; &lt;li&gt;4 Allemands sur 10 travaillent.&lt;/li&gt;
&lt;li&gt;3/10 (les enfants et jeunes)&lt;/li&gt; &lt;li&gt;3/10 (les enfants et jeunes)&lt;/li&gt;
&lt;li&gt;2/10 retraite / rente&lt;/li&gt; &lt;li&gt;2/10 retraite / rente&lt;/li&gt;
@ -50,305 +265,245 @@ frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Quelques notes prises
&lt;li&gt;41% sont le fruit d'un travail rémunéré.&lt;/li&gt; &lt;li&gt;41% sont le fruit d'un travail rémunéré.&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;p&gt;Le revenu de base est inconditionnel.&lt;/p&gt; &lt;p&gt;Le revenu de base est inconditionnel.&lt;/p&gt;
&lt;p&gt;Le marché du travail ne pourra pas suffire à toute la population. En refusant &lt;p&gt;Le marché du travail ne pourra pas suffire à toute la population. En
l'idée du RDB, on est obligé de croire en la croissance économique.&lt;/p&gt; refusant l'idée du RDB, on est obligé de croire en la croissance
&lt;p&gt;Différence entre une approche qantitative du travail VS une approche sociale.&lt;/p&gt; économique.&lt;/p&gt;
&lt;p&gt;Différence entre une approche qantitative du travail VS une approche
sociale.&lt;/p&gt;
&lt;p&gt;La croissance éco ≠ croissance de l'emploi.&lt;/p&gt; &lt;p&gt;La croissance éco ≠ croissance de l'emploi.&lt;/p&gt;
&lt;p&gt;Parallelle entre le RDB et la déclaration des droits de l'homme. &amp;quot;Et qui voudra &lt;p&gt;Parallelle entre le RDB et la déclaration des droits de l'homme. "Et qui
faire le sale boulot ?&amp;quot;&lt;/p&gt; voudra faire le sale boulot ?"&lt;/p&gt;
&lt;p&gt;Utopie veut dire le &amp;quot;non lieu&amp;quot;, le lieu qu'on à pas encore trouvé ici sur &lt;p&gt;Utopie veut dire le "non lieu", le lieu qu'on à pas encore trouvé ici
terre, à part dans notre imaginaire.&lt;/p&gt; sur terre, à part dans notre imaginaire.&lt;/p&gt;
&lt;p&gt;Agriculture: Il y à 100 ans, qqn qui travaillait dans l'agriculture produisait assez pour &lt;p&gt;Agriculture: Il y à 100 ans, qqn qui travaillait dans l'agriculture
3 autres personnes. ajd un agriculteur produit assez pour 120 personnes, via produisait assez pour 3 autres personnes. ajd un agriculteur produit
des machines énormes et à la rationalisation.&lt;/p&gt; assez pour 120 personnes, via des machines énormes et à la
rationalisation.&lt;/p&gt;
&lt;p&gt;Rationalisation: moins d'emploi.&lt;/p&gt; &lt;p&gt;Rationalisation: moins d'emploi.&lt;/p&gt;
&lt;p&gt;La condition de pouvoir refuser un travail est très importante.&lt;/p&gt; &lt;p&gt;La condition de pouvoir refuser un travail est très importante.&lt;/p&gt;
&lt;div class="section" id="citations"&gt; &lt;h2 id="citations"&gt;Citations&lt;/h2&gt;
&lt;h2&gt;Citations&lt;/h2&gt;
&lt;blockquote&gt; &lt;blockquote&gt;
&lt;p&gt;Le financmenet est acquis, la dificulté c'est la liberté&lt;/p&gt; &lt;p&gt;Le financmenet est acquis, la dificulté c'est la liberté&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;NA&lt;/p&gt; &lt;p&gt;— NA&lt;/p&gt;
&lt;/blockquote&gt; &lt;p&gt;Il faut en finir avec cette idée fausse, selon laquelle seul le
&lt;blockquote&gt; travail rémunéré constitue une contribution méritoire à la société, en
&lt;p&gt;Il faut en finir avec cette idée fausse, selon laquelle seul le travail réalité, c'est souvent exactement l'inverse.&lt;/p&gt;
rémunéré constitue une contribution méritoire à la société, en réalité, c'est &lt;p&gt;— Katja Kipping, membre du parlement allemand.&lt;/p&gt;
souvent exactement l'inverse.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;Katja Kipping, membre du parlement allemand.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Si les gens on déjà une sécurité matérielle, ils sont plus difficiles &lt;p&gt;Si les gens on déjà une sécurité matérielle, ils sont plus difficiles
à corrompre.&lt;/p&gt; à corrompre.&lt;/p&gt;
&lt;p class="attribution"&gt;&amp;mdash;Katja Kipping&lt;/p&gt; &lt;p&gt;— Katja Kipping&lt;/p&gt;
&lt;p&gt;Soutenir les populations sans poser de condition. c'est un principe
qui à la longe, devra s'imposer. Mais il lui faudra d'abord affronter
les droits et privilèges dont on bénéficie aujourd'hui.&lt;/p&gt;
&lt;p&gt;— Anonyme.&lt;/p&gt;
&lt;p&gt;Si les revenus étaient uniquement lié au travail, il faudrait donner
les plus hauts revenus aux machines.&lt;/p&gt;
&lt;/blockquote&gt; &lt;/blockquote&gt;
&lt;blockquote&gt; &lt;p&gt;Le sens de l'économie, c'est de libérer l'homme du travail Beaucoup de
&lt;p&gt;Soutenir les populations sans poser de condition. c'est un principe qui à la gens qui ont une "place de travail", n'ont en réalité qu'une "place de
longe, devra s'imposer. Mais il lui faudra d'abord affronter les droits et revenu".&lt;/p&gt;
privilèges dont on bénéficie aujourd'hui.&lt;/p&gt; &lt;h2 id="chiffres"&gt;Chiffres&lt;/h2&gt;
&lt;p class="attribution"&gt;&amp;mdash;Anonyme.&lt;/p&gt; &lt;p&gt;Un sondage à été effectué. La question est: "Si vous aviez un revenu de
&lt;/blockquote&gt; base, est-ce que vous iriez encore travailler ?"&lt;/p&gt;
&lt;blockquote&gt; &lt;ul&gt;
Si les revenus étaient uniquement lié au travail, il faudrait donner les plus &lt;li&gt;\~60% disent oui&lt;/li&gt;
hauts revenus aux machines.&lt;/blockquote&gt;
&lt;p&gt;Le sens de l'économie, c'est de libérer l'homme du travail Beaucoup de gens qui
ont une &amp;quot;place de travail&amp;quot;, n'ont en réalité qu'une &amp;quot;place de revenu&amp;quot;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="chiffres"&gt;
&lt;h2&gt;Chiffres&lt;/h2&gt;
&lt;p&gt;Un sondage à été effectué. La question est: &amp;quot;Si vous aviez un revenu de base,
est-ce que vous iriez encore travailler ?&amp;quot;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;~60% disent oui&lt;/li&gt;
&lt;li&gt;30% répondent oui, mais plus à plein temps.&lt;/li&gt; &lt;li&gt;30% répondent oui, mais plus à plein temps.&lt;/li&gt;
&lt;li&gt;10% pour faire autre chose.&lt;/li&gt; &lt;li&gt;10% pour faire autre chose.&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;p&gt;Avec une question différente:&lt;/p&gt; &lt;p&gt;Avec une question différente:&lt;/p&gt;
&lt;p&gt;&amp;quot;Si on instaurait un revenu de base, est-ce que vous pensez que les autres &lt;p&gt;"Si on instaurait un revenu de base, est-ce que vous pensez que les
iraient travailler ?&amp;quot;&lt;/p&gt; autres iraient travailler ?"&lt;/p&gt;
&lt;ul class="simple"&gt; &lt;ul&gt;
&lt;li&gt;~80% répondent non.&lt;/li&gt; &lt;li&gt;\~80% répondent non.&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;p&gt;C'est un changement aussi dans les modes d'éducation, on nous enseigne à être &lt;p&gt;C'est un changement aussi dans les modes d'éducation, on nous enseigne à
&amp;quot;employable&amp;quot;, et non pas à apprendre quelque chose qui nous interesse. Les gens être "employable", et non pas à apprendre quelque chose qui nous
ont peur de ne pas trouver du travail.&lt;/p&gt; interesse. Les gens ont peur de ne pas trouver du travail.&lt;/p&gt;
&lt;/div&gt; &lt;h2 id="ressources"&gt;Ressources&lt;/h2&gt;
&lt;div class="section" id="ressources"&gt; &lt;ul&gt;
&lt;h2&gt;Ressources&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Le sens commun, Thomas Payne.&lt;/li&gt; &lt;li&gt;Le sens commun, Thomas Payne.&lt;/li&gt;
&lt;li&gt;Peter Ulrich&lt;/li&gt; &lt;li&gt;Peter Ulrich&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;/div&gt; &lt;h2 id="comment-financer-le-rdb"&gt;Comment financer le RDB&lt;/h2&gt;
&lt;div class="section" id="comment-financer-le-rdb"&gt; &lt;p&gt;Si lon se fie à son produit intérieur brut (PIB), la France est
&lt;h2&gt;Comment financer le RDB&lt;/h2&gt; aujourdhui le cinquième pays le plus riche du monde. En 2010, le
&lt;p&gt;Si lon se fie à son produit intérieur brut (PIB), la France est aujourdhui le revenu disponible (après versement des pres- tations sociales et
cinquième pays le plus riche du monde. En 2010, le revenu disponible (après prélèvement des impôts directs) sy élevait à 1 276 euros par mois et
versement des pres- tations sociales et prélèvement des impôts directs) sy par personne, adultes et enfants confondus. Nous disposons donc de
élevait à 1 276 euros par mois et par personne, adultes et enfants confondus. ressources suffisantes pour garantir à chaque individu 1 276 euros si
Nous disposons donc de ressources suffisantes pour garantir à chaque individu 1 lon décidait dopérer un partage strictement égalitaire. Cest
276 euros si lon décidait dopérer un partage strictement égalitaire. Cest nettement plus que le seuil de pauvreté actuel, fixé en France à 60 % du
nettement plus que le seuil de pauvreté actuel, fixé en France à 60 % du revenu revenu médian (1), soit 960 euros par adulte. Qui peut le plus pouvant
médian (1), soit 960 euros par adulte. Qui peut le plus pouvant le moins, la le moins, la France a donc sans nul doute les moyens dassurer à tous
France a donc sans nul doute les moyens dassurer à tous ses résidents un ses résidents un revenu au moins égal au seuil de pauvreté.&lt;/p&gt;
revenu au moins égal au seuil de pauvreté.&lt;/p&gt; &lt;h2 id="a-reculons-par-andre-gorz"&gt;À Reculons, par André Gorz.&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="section" id="a-reculons-par-andre-gorz"&gt;
&lt;h2&gt;À Reculons, par André Gorz.&lt;/h2&gt;
&lt;p&gt;(Paru dans le monde diplomatique de Juin 1990)&lt;/p&gt; &lt;p&gt;(Paru dans le monde diplomatique de Juin 1990)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Proche de Jean-Paul Sartre, cofondateur, en 1964, du Nouvel Observateur, le &lt;p&gt;&lt;em&gt;Proche de Jean-Paul Sartre, cofondateur, en 1964, du Nouvel
philosophe André Gorz (1923-2007) sest converti progressivement à un Observateur, le philosophe André Gorz (1923-2007) sest converti
écosocialisme dont il est devenu lun des principaux théoriciens. En 1990, dans progressivement à un écosocialisme dont il est devenu lun des
nos colonnes, sous le titre « Pourquoi la société salariale a besoin de principaux théoriciens. En 1990, dans nos colonnes, sous le titre «
nouveaux valets », il formulait une critique de lidéologie du travail qui Pourquoi la société salariale a besoin de nouveaux valets », il
devait lamener quelques années plus tard à se prononcer en faveur dun revenu formulait une critique de lidéologie du travail qui devait lamener
quelques années plus tard à se prononcer en faveur dun revenu
dexistence.&lt;/em&gt;&lt;/p&gt; dexistence.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Dans lensemble des pays capitalistes dEurope, on produit trois à quatre fois &lt;p&gt;Dans lensemble des pays capitalistes dEurope, on produit trois à
plus de richesses quil y a trente-cinq ans ; cette production nexige pas quatre fois plus de richesses quil y a trente-cinq ans ; cette
trois fois plus dheures de travail, mais une quantité de travail beaucoup plus production nexige pas trois fois plus dheures de travail, mais une
faible. (...)&lt;/p&gt; quantité de travail beaucoup plus faible. (...)&lt;/p&gt;
&lt;p&gt;Nous sortons de la civilisation du travail, mais nous en sortons à reculons, et &lt;p&gt;Nous sortons de la civilisation du travail, mais nous en sortons à
nous entrons à reculons dans une civilisation du temps libéré, incapables de la reculons, et nous entrons à reculons dans une civilisation du temps
voir et de la vouloir, incapables donc de civiliser le temps libéré qui nous libéré, incapables de la voir et de la vouloir, incapables donc de
échoit, et de fonder une culture du temps disponible et une culture des civiliser le temps libéré qui nous échoit, et de fonder une culture du
activités choisies pour relayer et compléter les cultures techniciennes et temps disponible et une culture des activités choisies pour relayer et
profes- sionnelles qui dominent la scène. (...)&lt;/p&gt; compléter les cultures techniciennes et profes- sionnelles qui dominent
&lt;p&gt;Pour près de la moitié de la population active, lidéologie du travail est la scène. (...)&lt;/p&gt;
devenue une mauvaise farce ; lidentification au travail est désormais &lt;p&gt;Pour près de la moitié de la population active, lidéologie du travail
impossible, car le système économique na pas besoin ou na pas un besoin est devenue une mauvaise farce ; lidentification au travail est
régulier de leur capacité de travail. La réalité que nous masque lexaltation désormais impossible, car le système économique na pas besoin ou na
de la « ressource humaine », cest que lemploi stable, à plein temps, durant pas un besoin régulier de leur capacité de travail. La réalité que nous
toute lannée et toute la vie active, devient le privilège dune minorité. masque lexaltation de la « ressource humaine », cest que lemploi
Pour [les autres], le travail cesse dêtre un métier qui intègre dans une stable, à plein temps, durant toute lannée et toute la vie active,
communauté productive et définit une place dans la société. Ce que le patronat devient le privilège dune minorité. Pour [les autres], le travail
appelle « flexibilité » se traduit pour les salariés par la précarité. (...)&lt;/p&gt; cesse dêtre un métier qui intègre dans une communauté productive et
&lt;p&gt;Que doit être une société dans laquelle le travail à plein temps de tous les définit une place dans la société. Ce que le patronat appelle «
citoyens nest plus nécessaire, ni économiquement utile ? Quelles priorités flexibilité » se traduit pour les salariés par la précarité. (...)&lt;/p&gt;
autres quéconomiques doit-elle se donner ? Comment doit-elle sy prendre pour &lt;p&gt;Que doit être une société dans laquelle le travail à plein temps de tous
que les gains de productivité, les économies de temps de travail profitent à les citoyens nest plus nécessaire, ni économiquement utile ? Quelles
tout le monde ? Comment peut-elle redistribuer au mieux tout le travail priorités autres quéconomiques doit-elle se donner ? Comment doit-elle
socialement utile de manière à ce que tout le monde puisse travailler, mais sy prendre pour que les gains de productivité, les économies de temps
travailler moins et mieux, tout en recevant sa part des richesses socialement de travail profitent à tout le monde ? Comment peut-elle redistribuer au
produites ?&lt;/p&gt; mieux tout le travail socialement utile de manière à ce que tout le
monde puisse travailler, mais travailler moins et mieux, tout en
recevant sa part des richesses socialement produites ?&lt;/p&gt;
&lt;p&gt;La tendance dominante est décarter ce genre de questions et de poser le &lt;p&gt;La tendance dominante est décarter ce genre de questions et de poser le
problème à lenvers : comment faire pour que, malgré les gains de productivité, problème à lenvers : comment faire pour que, malgré les gains de
léconomie consomme autant de travail que par le passé ? Comment faire pour que productivité, léconomie consomme autant de travail que par le passé ?
de nouvelles activités rémunérées viennent occuper ce temps que, à léchelle de Comment faire pour que de nouvelles activités rémunérées viennent
la société, les gains de productivité libèrent ? A quels nouveaux domaines occuper ce temps que, à léchelle de la société, les gains de
dactivité peut-on étendre les échanges marchands pour remplacer tant bien que productivité libèrent ? A quels nouveaux domaines dactivité peut-on
mal les emplois supprimés par ailleurs dans lindustrie et les services étendre les échanges marchands pour remplacer tant bien que mal les
emplois supprimés par ailleurs dans lindustrie et les services
industrialisés ?&lt;/p&gt; industrialisés ?&lt;/p&gt;
&lt;p&gt;On connaît la réponse, pour laquelle les Etats-Unis et le Japon ont montré la &lt;p&gt;On connaît la réponse, pour laquelle les Etats-Unis et le Japon ont
voie : le seul domaine dans lequel il est possible, en économie libérale, de montré la voie : le seul domaine dans lequel il est possible, en
créer à lavenir un grand nombre demplois, cest celui des services aux économie libérale, de créer à lavenir un grand nombre demplois, cest
personnes. Le développement de lemploi pourrait être illimité si lon celui des services aux personnes. Le développement de lemploi pourrait
parvenait à transformer en prestations de services rétribuées les activités que être illimité si lon parvenait à transformer en prestations de
les gens ont, jusquà présent, assumées chacun pour soi. Les économistes services rétribuées les activités que les gens ont, jusquà présent,
parlent à ce sujet de « nouvelle croissance plus riche en emplois », de « assumées chacun pour soi. Les économistes parlent à ce sujet de «
tertiarisation » de léconomie, de « société de services » prenant le relais de nouvelle croissance plus riche en emplois », de « tertiarisation » de
la « société industrielle » (1). (...)&lt;/p&gt; léconomie, de « société de services » prenant le relais de la «
&lt;p&gt;Le problème de fond auquel nous sommes confrontés est celui dun au-delà de société industrielle » (1). (...)&lt;/p&gt;
léconomie et, ce qui revient au même, dun au- delà du travail rémunéré. La &lt;p&gt;Le problème de fond auquel nous sommes confrontés est celui dun au-delà
rationalisation économique libère du temps, elle continuera den libérer, et il de léconomie et, ce qui revient au même, dun au- delà du travail
nest plus possible, par conséquent, de faire dépendre le revenu des citoyens rémunéré. La rationalisation économique libère du temps, elle
de la quantité de travail dont léconomie a besoin. Il nest plus possible, non continuera den libérer, et il nest plus possible, par conséquent, de
plus, de continuer à faire du travail rémunéré la source principale de faire dépendre le revenu des citoyens de la quantité de travail dont
lidentité et du sens de la vie pour chacun.&lt;/p&gt; léconomie a besoin. Il nest plus possible, non plus, de continuer à
&lt;p&gt;La tâche dune gauche, si gauche il doit y avoir, consiste à transformer cette faire du travail rémunéré la source principale de lidentité et du sens
libération du temps en une liberté nouvelle et en des droits nouveaux : le de la vie pour chacun.&lt;/p&gt;
droit de chacun et de chacune de gagner sa vie en travaillant, mais en &lt;p&gt;La tâche dune gauche, si gauche il doit y avoir, consiste à transformer
travaillant de moins en moins, de mieux en mieux, tout en recevant sa pleine cette libération du temps en une liberté nouvelle et en des droits
part de la richesse socialement produite. Le droit, dautre part, de travailler nouveaux : le droit de chacun et de chacune de gagner sa vie en
de façon discontinue, intermittente, sans perdre durant les intermittences de travaillant, mais en travaillant de moins en moins, de mieux en mieux,
lemploi le plein revenu de manière à ouvrir de nouveaux espaces aux tout en recevant sa pleine part de la richesse socialement produite. Le
activités sans but économique et à reconnaître à ces activités qui nont pas la droit, dautre part, de travailler de façon discontinue, intermittente,
rémunération pour but une dignité et une valeur éminentes, tant pour les sans perdre durant les intermittences de lemploi le plein revenu de
individus que pour la société elle-même.&lt;/p&gt; manière à ouvrir de nouveaux espaces aux activités sans but économique
&lt;/div&gt; et à reconnaître à ces activités qui nont pas la rémunération pour but
</content></entry><entry><title>Notes: Économie libidinale et économie politique</title><link href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html" rel="alternate"></link><published>2013-07-06T00:00:00+02:00</published><updated>2013-07-06T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2013-07-06:/notes-economie-libidinale-et-economie-politique.html</id><summary type="html">&lt;p&gt;Une enquete d'un cabinet de marketing american ARI qui pour la première fois en une dignité et une valeur éminentes, tant pour les individus que pour la
2004 disait qu'on voyait aparaitre des &amp;quot;alter consommateurs&amp;quot;, qui n'étaient pas société elle-même.&lt;/p&gt;</content></entry><entry><title>Habitat collectif</title><link href="https://blog.notmyidea.org/habitat-collectif.html" rel="alternate"></link><published>2012-12-28T00:00:00+01:00</published><updated>2012-12-28T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-28:/habitat-collectif.html</id><summary type="html">
de gens qui consommaient moins, mais qui étaient des gens malheureux de &lt;p&gt;Habiter à plusieurs, partager un lieu de vie, monter une communauté,
consommer. Et qui définissaient la consommation comme une dépendance et une changer nos modes de vie et prendre plus de temps les uns pour les
addiction.&lt;/p&gt; autres.&lt;/p&gt;
&lt;p&gt;Un …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Une enquete d'un cabinet de marketing american ARI qui pour la première fois en &lt;p&gt;Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez
2004 disait qu'on voyait aparaitre des &amp;quot;alter consommateurs&amp;quot;, qui n'étaient pas moi.&lt;/p&gt;
de gens qui consommaient moins, mais qui étaient des gens malheureux de &lt;p&gt;Voilà quelques ressources qui peuvent être utiles si jamais …&lt;/p&gt;</summary><content type="html">
consommer. Et qui définissaient la consommation comme une dépendance et une &lt;p&gt;Habiter à plusieurs, partager un lieu de vie, monter une communauté,
addiction.&lt;/p&gt; changer nos modes de vie et prendre plus de temps les uns pour les
&lt;p&gt;Un autre comportement s'est développé: le modèle &amp;quot;collaboratif et contributif&amp;quot;. autres.&lt;/p&gt;
Ce modèle ne se repose pas sur la consommation mais sur l'implication et la &lt;p&gt;Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez
collaboration. Ce modèle est induit par internet, qui ne repose plus sur moi.&lt;/p&gt;
l'opposition production / consommation.&lt;/p&gt; &lt;p&gt;Voilà quelques ressources qui peuvent être utiles si jamais vous aussi
&lt;p&gt;Sur internet nous ne sommes pas des simples consommateurs, puisque vous êtes un ça vous titille:&lt;/p&gt;
expéditeur / distributeur.&lt;/p&gt; &lt;ul&gt;
&lt;p&gt;Le changement prduit par internet est le fait que les gens ne sont plus &lt;li&gt;&lt;a href="http://www.habicoop.fr/IMG/pdf/Memoire_hbtat_coop_Vaulx-2.pdf"&gt;LHabitat Coopératif : Solution au problème de responsabilisation
simplement des consommateurs,mais sont également producteurs de contenus sociale des copropriétaires sur la commune de Vaulx en Velin
/ viennent améliorer les contenus existants.&lt;/p&gt; ?&lt;/a&gt; -
&lt;p&gt;Note perso: quid du culte de la personalité qui en ressort ? Ce qu'il apelle mémoire REPIQUET Anne 2005.&lt;/li&gt;
l'écologie relationelle ?&lt;/p&gt; &lt;li&gt;Un bouquin à lire avec plein d'infos: &lt;a href="http://www.ecosociete.org/t101.php"&gt;Vivre
&lt;p&gt;Quel est le manque que vient combler facebook par exemple ? Et quel est autrement&lt;/a&gt; de Diana Leafe
l'impact que ces nouveaux réseaux ont sur les modèles relationels que l'ont Christian.&lt;/li&gt;
connait (famille, école, droit, etc.).&lt;/p&gt;
&lt;div class="section" id="citations"&gt;
&lt;h2&gt;Citations&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Une révolution c'est le fait de faire une boucle est d'arriver au terme de
quelque chose. D'avoir clôt un cycle. La lune fait des révolutions aussi.&lt;/p&gt;
&lt;p&gt;81% des Américains déclarent que le consumerisme est une plaie pour l'amérique
(d'après Juliet Score)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
</content></entry><entry><title>François Elie : Quelle école pour la société de linformation ?</title><link href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html" rel="alternate"></link><published>2013-06-14T00:00:00+02:00</published><updated>2013-06-14T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2013-06-14:/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference"&gt;http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quelques bouts selectionnés.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mais pourquoi continue t-on à enseigner des maths à des gens qui ne vont pas
les utiliser ? Ben évidemment cest parce quon nest pas dans une école de
linitiation où les mathématiciens …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference"&gt;http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quelques bouts selectionnés.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mais pourquoi continue t-on à enseigner des maths à des gens qui ne vont pas
les utiliser ? Ben évidemment cest parce quon nest pas dans une école de
linitiation où les mathématiciens font ça entre eux et on nest pas non plus
dans une école de lapprentissage où lécole a pour but de donner un métier, un
bagage utilisable. Lécole ne sert évidemment pas à ça. Dailleurs heureusement
parce que sinon on nenseignerait pas la philosophie qui ne sert à rien à part
fabriquer des profs de philosophie !&lt;/p&gt;
&lt;p&gt;On na pas besoin de tableau numérique pour enseigner linformatique elle-même
pour enseigner la science. De la même façon on na pas besoin de machine à
calculer pour enseigner les mathématiques. Évidemment ! On na pas besoin dune
machine à calculer pour savoir faire une division. Au contraire, surtout pas !&lt;/p&gt;
&lt;p&gt;Il faut cesser dopposer lenseignement de la programmation dune part et
lenseignement des usages, cest important mais ça cest lécole des maîtres et
des esclaves. Ce quil faut enseigner, vite et à tous, cest la science, pas la
technologie ou lusage. Cest en amont de la programmation, lalgorithmique.
Cest, en amont de telle instanciation, du codage, du chiffrement, la théorie,
quelque chose qui comme les maths nont besoin que dune craie et dun tableau
noir.&lt;/p&gt;
&lt;p&gt;Ce n'est pas un hasard si le mot &amp;quot;numérique&amp;quot; à remplaçé le mot &amp;quot;informatique&amp;quot;,
c'est qu'on voudrait nous faire croire qu'il n'y a pas besoin de l'apprendre.&lt;/p&gt;
&lt;/blockquote&gt;
</content></entry><entry><title>Habitat collectif</title><link href="https://blog.notmyidea.org/habitat-collectif.html" rel="alternate"></link><published>2012-12-28T00:00:00+01:00</published><updated>2012-12-28T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-28:/habitat-collectif.html</id><summary type="html">&lt;p&gt;Habiter à plusieurs, partager un lieu de vie, monter une communauté, changer
nos modes de vie et prendre plus de temps les uns pour les autres.&lt;/p&gt;
&lt;p&gt;Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez moi.&lt;/p&gt;
&lt;p&gt;Voilà quelques ressources qui peuvent être utiles si jamais …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Habiter à plusieurs, partager un lieu de vie, monter une communauté, changer
nos modes de vie et prendre plus de temps les uns pour les autres.&lt;/p&gt;
&lt;p&gt;Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez moi.&lt;/p&gt;
&lt;p&gt;Voilà quelques ressources qui peuvent être utiles si jamais vous aussi ça vous
titille:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.habicoop.fr/IMG/pdf/Memoire_hbtat_coop_Vaulx-2.pdf"&gt;LHabitat Coopératif : Solution au problème de responsabilisation sociale des
copropriétaires sur la commune de Vaulx en Velin
?&lt;/a&gt; - mémoire REPIQUET Anne
2005.&lt;/li&gt;
&lt;li&gt;Un bouquin à lire avec plein d'infos: &lt;a class="reference external" href="http://www.ecosociete.org/t101.php"&gt;Vivre autrement&lt;/a&gt; de Diana Leafe Christian.&lt;/li&gt;
&lt;li&gt;&lt;/li&gt; &lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>Tricot</title><link href="https://blog.notmyidea.org/tricot.html" rel="alternate"></link><published>2012-12-28T00:00:00+01:00</published><updated>2012-12-28T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-28:/tricot.html</id><summary type="html">
&lt;p&gt;Puisque j'ai décidé d'apprendre à faire les trucs moi-même, je me mets
au tricot. Et puis y'a aussi tout un symbole derrière: le tricot, c'est
pour les filles, tu sais, un "truc de gonzesse".&lt;/p&gt;
&lt;p&gt;Eh bah c'est pas gagné, jte le dis. Pour l'instant j'ai réussi à faire à
peu …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;Puisque j'ai décidé d'apprendre à faire les trucs moi-même, je me mets
au tricot. Et puis y'a aussi tout un symbole derrière: le tricot, c'est
pour les filles, tu sais, un "truc de gonzesse".&lt;/p&gt;
&lt;p&gt;Eh bah c'est pas gagné, jte le dis. Pour l'instant j'ai réussi à faire à
peu près un rang d'endroit et j'arrive pas à enchainer sur l'envers pour
réussir à faire un point jersey (jersey c'est un rang endroit puis un
rang envers).&lt;/p&gt;
&lt;p&gt;Enfin bref, si jamais ça vous botte vous aussi, voila quelques
ressources que j'ai trouvé sur internet (en plus des conseils avisés de
maman chérie™):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=VcGiBG2BNxo&amp;amp;list=UUskaiVNnKf7amRb5OI5op_w"&gt;Montage des mailles
"normales"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=aIQtNN89pqA&amp;amp;list=UUskaiVNnKf7amRb5OI5op_w"&gt;Le point
jersey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
</content></entry><entry><title>Astuces SSH</title><link href="https://blog.notmyidea.org/astuces-ssh.html" rel="alternate"></link><published>2012-12-27T00:00:00+01:00</published><updated>2012-12-27T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-27:/astuces-ssh.html</id><summary type="html">&lt;div class="section" id="tunelling"&gt; &lt;p&gt;La nana explique plutôt bien et assez lentement. En espérant que ça
&lt;h2&gt;Tunelling&lt;/h2&gt; prenne.&lt;/p&gt;</content></entry><entry><title>Notre dame des landes</title><link href="https://blog.notmyidea.org/notre-dame-des-landes.html" rel="alternate"></link><published>2012-12-27T00:00:00+01:00</published><updated>2012-12-27T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-27:/notre-dame-des-landes.html</id><summary type="html">
&lt;p&gt;Parce que je m'en rapelle jamais (tête de linote):&lt;/p&gt; &lt;p&gt;La lutte à Notre Dame des Landes ne fait pas du tout que commencer, mais
&lt;pre class="literal-block"&gt; il se trouve que les médias se sont "emparés" de la question que très
$ ssh -f hote -L local:lolnet.org:destination -N récemment, depuis que JM Ayrault s'est retrouvé premier ministre.&lt;/p&gt;
&lt;/pre&gt; &lt;p&gt;Voici une sélection d'articles que j'ai trouvé pertinents, à partir de
&lt;/div&gt; décembre …&lt;/p&gt;</summary><content type="html">
&lt;div class="section" id="ssh-config"&gt; &lt;p&gt;La lutte à Notre Dame des Landes ne fait pas du tout que commencer, mais
&lt;h2&gt;.ssh/config&lt;/h2&gt; il se trouve que les médias se sont "emparés" de la question que très
&lt;p&gt;(merci &lt;a class="reference external" href="http://majerti.fr"&gt;gaston&lt;/a&gt; !)&lt;/p&gt; récemment, depuis que JM Ayrault s'est retrouvé premier ministre.&lt;/p&gt;
&lt;p&gt;La directive suivante dans .ssh/config permet de sauter d'hôte en hôte &lt;p&gt;Voici une sélection d'articles que j'ai trouvé pertinents, à partir de
séparés par des &amp;quot;+&amp;quot;&lt;/p&gt; décembre 2012:&lt;/p&gt;
&lt;pre class="literal-block"&gt; &lt;ul&gt;
Host *+* &lt;li&gt;Article dans le monde qui explique la complexité de la lutte sur
ProxyCommand ssh $(echo %h | sed place:
's/+[^+]*$//;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/;s …&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;div class="section" id="tunelling"&gt; &lt;a href="http://www.lemonde.fr/idees/article/2012/12/13/notre-dame-des-landes-une-resistance-qui-ne-se-laissera-pas-dicter-sa-conduite_1805511_3232.html"&gt;http://www.lemonde.fr/idees/article/2012/12/13/notre-dame-des-landes-une-resistance-qui-ne-se-laissera-pas-dicter-sa-conduite_1805511_3232.html&lt;/a&gt;&lt;/li&gt;
&lt;h2&gt;Tunelling&lt;/h2&gt;
&lt;p&gt;Parce que je m'en rapelle jamais (tête de linote):&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ssh -f hote -L local:lolnet.org:destination -N
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="ssh-config"&gt;
&lt;h2&gt;.ssh/config&lt;/h2&gt;
&lt;p&gt;(merci &lt;a class="reference external" href="http://majerti.fr"&gt;gaston&lt;/a&gt; !)&lt;/p&gt;
&lt;p&gt;La directive suivante dans .ssh/config permet de sauter d'hôte en hôte
séparés par des &amp;quot;+&amp;quot;&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Host *+*
ProxyCommand ssh $(echo %h | sed
's/+[^+]*$//;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/;s/:/ -p /')
PATH=.:\$PATH nc -w1 $(echo %h | sed 's/^.*+//;/:/!s/$/ %p/;s/:/ /')
&lt;/pre&gt;
&lt;p&gt;On peut donc spécifier des &amp;quot;sauts&amp;quot; ssh du style:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
ssh root&amp;#64;91.25.25.25+192.168.1.1
&lt;/pre&gt;
&lt;p&gt;Ensuite on peut essayer de rajouter:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Host &amp;lt;label_pour_mon_serveur_privé&amp;gt;
user &amp;lt;monuser(root)&amp;gt;
IdentityFile &amp;lt;chemin vers ma clé ssh pour le serveur publique&amp;gt;
hostname ip_serveur_publique+ip_serveur_privé
&lt;/pre&gt;
&lt;/div&gt;
</content><category term="note"></category></entry><entry><title>Notre dame des landes</title><link href="https://blog.notmyidea.org/notre-dame-des-landes.html" rel="alternate"></link><published>2012-12-27T00:00:00+01:00</published><updated>2012-12-27T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-27:/notre-dame-des-landes.html</id><summary type="html">&lt;p&gt;La lutte à Notre Dame des Landes ne fait pas du tout que commencer, mais il se
trouve que les médias se sont &amp;quot;emparés&amp;quot; de la question que très récemment,
depuis que JM Ayrault s'est retrouvé premier ministre.&lt;/p&gt;
&lt;p&gt;Voici une sélection d'articles que j'ai trouvé pertinents, à partir de décembre …&lt;/p&gt;</summary><content type="html">&lt;p&gt;La lutte à Notre Dame des Landes ne fait pas du tout que commencer, mais il se
trouve que les médias se sont &amp;quot;emparés&amp;quot; de la question que très récemment,
depuis que JM Ayrault s'est retrouvé premier ministre.&lt;/p&gt;
&lt;p&gt;Voici une sélection d'articles que j'ai trouvé pertinents, à partir de décembre
2012:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Article dans le monde qui explique la complexité de la lutte sur place: &lt;a class="reference external" href="http://www.lemonde.fr/idees/article/2012/12/13/notre-dame-des-landes-une-resistance-qui-ne-se-laissera-pas-dicter-sa-conduite_1805511_3232.html"&gt;http://www.lemonde.fr/idees/article/2012/12/13/notre-dame-des-landes-une-resistance-qui-ne-se-laissera-pas-dicter-sa-conduite_1805511_3232.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;autour de relations à la presse: &lt;li&gt;autour de relations à la presse:
&lt;a class="reference external" href="http://www.rennestv.fr/catalogue/magazine/notre-dame-des-landes-l-inaceptable-interdiction-de-la-presse.html"&gt;http://www.rennestv.fr/catalogue/magazine/notre-dame-des-landes-l-inaceptable-interdiction-de-la-presse.html&lt;/a&gt;&lt;/li&gt; &lt;a href="http://www.rennestv.fr/catalogue/magazine/notre-dame-des-landes-l-inaceptable-interdiction-de-la-presse.html"&gt;http://www.rennestv.fr/catalogue/magazine/notre-dame-des-landes-l-inaceptable-interdiction-de-la-presse.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notre-Dame-des-Landes : un pilote annonce un fiasco pour le futur aéroport &lt;a class="reference external" href="http://www.bastamag.net/article2866.html"&gt;http://www.bastamag.net/article2866.html&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Notre-Dame-des-Landes : un pilote annonce un fiasco pour le futur
&lt;/ul&gt; aéroport &lt;a href="http://www.bastamag.net/article2866.html"&gt;http://www.bastamag.net/article2866.html&lt;/a&gt;&lt;/li&gt;
</content></entry><entry><title>Semences paysannes</title><link href="https://blog.notmyidea.org/semences-paysannes.html" rel="alternate"></link><published>2012-12-20T00:00:00+01:00</published><updated>2012-12-20T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-20:/semences-paysannes.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed"&gt;http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed&lt;/a&gt;&lt;/p&gt; &lt;/ul&gt;</content></entry><entry><title>Semences paysannes</title><link href="https://blog.notmyidea.org/semences-paysannes.html" rel="alternate"></link><published>2012-12-20T00:00:00+01:00</published><updated>2012-12-20T00:00:00+01:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2012-12-20:/semences-paysannes.html</id><summary type="html">
&lt;p&gt;A l'heure actuelle, il est interdit pour deux agriculteurs de s'échangers des semences dans le but d'en revendre la production.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed"&gt;http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Les états ont crée la propriété interellectuelle pour relancer l'industrie après les dégats de la guerre et les selectionneurs en ont profité …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed"&gt;http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed&lt;/a&gt;&lt;/p&gt; &lt;p&gt;A l'heure actuelle, il est interdit pour deux agriculteurs de
&lt;p&gt;A l'heure actuelle, il est interdit pour deux agriculteurs de s'échangers des semences dans le but d'en revendre la production.&lt;/p&gt; s'échangers des semences dans le but d'en revendre la production.&lt;/p&gt;
&lt;p&gt;Les états ont crée la propriété interellectuelle pour relancer l'industrie après les dégats de la guerre et les selectionneurs en ont profité en 1960 au sein de l'UPOV pour faire des textes pour s'approprié les selections qu'ils ont fait. Les textes ont été votés par les députés depuis: bien prové au lieu de bien collectif.&lt;/p&gt; &lt;p&gt;Les états ont crée la propriété interellectuelle pour relancer
&lt;p&gt;Les semenciers n'existent que depuis 150 ans. Ils revendiquent maintenant le monopole de selection.&lt;/p&gt; l'industrie après les dégats de la guerre et les selectionneurs en ont
&lt;p&gt;Un catalogue est prévu pour les semences dites &amp;quot;de conservation&amp;quot; (alors qu'elles évoluent, conservation n'est pas un terme adapté). C'est la voie qui est possible pour pouvoir échanger des semences entre agriculteurs.&lt;/p&gt; profité …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;→ Quelles sont les semences de conservation depuis 2002 ? → Quid des semences paysannes, qui évoluent et que l'on garde d'année en année, en selectionnant les meilleures especes. → Existe-il un autre catalogue ? → Au niveau européen, quelles sontles contraintes d'inscription ? Gratuité demandée, qu'en est il ?&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed"&gt;http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A l'heure actuelle, il est interdit pour deux agriculteurs de
s'échangers des semences dans le but d'en revendre la production.&lt;/p&gt;
&lt;p&gt;Les états ont crée la propriété interellectuelle pour relancer
l'industrie après les dégats de la guerre et les selectionneurs en ont
profité en 1960 au sein de l'UPOV pour faire des textes pour s'approprié
les selections qu'ils ont fait. Les textes ont été votés par les députés
depuis: bien prové au lieu de bien collectif.&lt;/p&gt;
&lt;p&gt;Les semenciers n'existent que depuis 150 ans. Ils revendiquent
maintenant le monopole de selection.&lt;/p&gt;
&lt;p&gt;Un catalogue est prévu pour les semences dites "de conservation" (alors
qu'elles évoluent, conservation n'est pas un terme adapté). C'est la
voie qui est possible pour pouvoir échanger des semences entre
agriculteurs.&lt;/p&gt;
&lt;p&gt;→ Quelles sont les semences de conservation depuis 2002 ? → Quid des
semences paysannes, qui évoluent et que l'on garde d'année en année, en
selectionnant les meilleures especes. → Existe-il un autre catalogue ? →
Au niveau européen, quelles sontles contraintes d'inscription ? Gratuité
demandée, qu'en est il ?&lt;/p&gt;
&lt;p&gt;→ Relocalistion sur les terroirs des échanges.&lt;/p&gt; &lt;p&gt;→ Relocalistion sur les terroirs des échanges.&lt;/p&gt;
&lt;p&gt;→ Biodiversité serait tué par l'utilisation d'espèces inscrites.&lt;/p&gt; &lt;p&gt;→ Biodiversité serait tué par l'utilisation d'espèces inscrites.&lt;/p&gt;
&lt;p&gt;Série de vidéos sur la paysannerie: &lt;a class="reference external" href="http://www.latelevisionpaysanne.fr/video.php?lirevideo=86#86"&gt;http://www.latelevisionpaysanne.fr/video.php?lirevideo=86#86&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Série de vidéos sur la paysannerie:
</content></entry></feed> &lt;a href="http://www.latelevisionpaysanne.fr/video.php?lirevideo=86#86"&gt;http://www.latelevisionpaysanne.fr/video.php?lirevideo=86#86&lt;/a&gt;&lt;/p&gt;</content></entry></feed>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Carnets Web - pyconfr2015</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/pyconfr2015.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2015-10-18T00:00:00+02:00</updated><entry><title>PyconFR 2015 — Assemblée générale</title><link href="https://blog.notmyidea.org/pyconfr-2015-assemblee-generale.html" rel="alternate"></link><published>2015-10-18T00:00:00+02:00</published><updated>2015-10-18T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-18:/pyconfr-2015-assemblee-generale.html</id><summary type="html">&lt;div class="admonition note"&gt; <feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis - Carnets en ligne - pyconfr2015</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/pyconfr2015.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2015-10-18T00:00:00+02:00</updated><entry><title>PyconFR 2015 — Assemblée générale</title><link href="https://blog.notmyidea.org/pyconfr-2015-assemblee-generale.html" rel="alternate"></link><published>2015-10-18T00:00:00+02:00</published><updated>2015-10-18T00:00:00+02:00</updated><author><name>Alexis Métaireau</name></author><id>tag:blog.notmyidea.org,2015-10-18:/pyconfr-2015-assemblee-generale.html</id><summary type="html">&lt;div class="admonition note"&gt;
&lt;p class="first admonition-title"&gt;Note&lt;/p&gt; &lt;p class="first admonition-title"&gt;Note&lt;/p&gt;
&lt;p class="last"&gt;Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas &lt;p class="last"&gt;Voici quelques notes prises durant la PyconFR 2015, à Pau. N'hésitez pas
à les completer si besoin.&lt;/p&gt; à les completer si besoin.&lt;/p&gt;

1100
feeds/reflexions.atom.xml Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

5492
feeds/technologie.atom.xml Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>first week working on distutils2 - Carnets Web</title> <title>first week working on distutils2 - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,83 +84,65 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>As I've been working on
<a class="reference external" href="http://hg.python.org/distutils2/">Distutils2</a> during the past <p>As I've been working on <a href="http://hg.python.org/distutils2/">Distutils2</a>
week, taking part of the during the past week, taking part of the
<a class="reference external" href="http://code.google.com/intl/fr/soc/">GSOC</a> program, here is a <a href="http://code.google.com/intl/fr/soc/">GSOC</a> program, here is a short
short summary of what I've done so far.</p> summary of what I've done so far.</p>
<p>As my courses are not over yet, I've not worked as much as I <p>As my courses are not over yet, I've not worked as much as I wanted, and
wanted, and this will continues until the end of June. My main this will continues until the end of June. My main tasks are about
tasks are about making installation and uninstallation commands, to making installation and uninstallation commands, to have a simple way to
have a simple way to install distributions via install distributions via
<a class="reference external" href="http://hg.python.org/distutils2/">Distutils2</a>.</p> <a href="http://hg.python.org/distutils2/">Distutils2</a>.</p>
<p>To do this, we need to rely on informations provided by the Python <p>To do this, we need to rely on informations provided by the Python
Package Index (<a class="reference external" href="http://pypi.python.org/">PyPI</a>), and there is at Package Index (<a href="http://pypi.python.org/">PyPI</a>), and there is at least
least two ways to retreive informations from here: XML-RPC and the two ways to retreive informations from here: XML-RPC and the "simple"
&quot;simple&quot; API.</p> API.</p>
<p>So, I've been working on porting some <p>So, I've been working on porting some
<a class="reference external" href="http://bitbucket.org/tarek/distribute/">Distribute</a> related <a href="http://bitbucket.org/tarek/distribute/">Distribute</a> related stuff to
stuff to <a class="reference external" href="http://hg.python.org/distutils2/">Distutils2</a>, cutting <a href="http://hg.python.org/distutils2/">Distutils2</a>, cutting off all non
off all non distutils' things, as we do not want to depend from distutils' things, as we do not want to depend from Distribute's
Distribute's internals. My main work has been about reading the internals. My main work has been about reading the whole code, writing
whole code, writing tests about this and making those tests tests about this and making those tests possible.</p>
possible.</p> <p>In fact, there was a need of a pypi mocked server, and, after reading
<p>In fact, there was a need of a pypi mocked server, and, after and introducing myself to the distutils behaviors and code, I've taken
reading and introducing myself to the distutils behaviors and code, some time to improve the work <a href="http://bitbucket.org/konrad">Konrad</a>
I've taken some time to improve the work makes about this mock.</p>
<a class="reference external" href="http://bitbucket.org/konrad">Konrad</a> makes about this mock.</p> <h2 id="a-pypi-server-mock">A PyPI Server mock</h2>
<div class="section" id="a-pypi-server-mock"> <p>The mock is embeded in a thread, to make it available during the tests,
<h2>A PyPI Server mock</h2> in a non blocking way. We first used <a href="http://wsgi.org">WSGI</a> and
<p>The mock is embeded in a thread, to make it available during the <a href="http://docs.python.org/library/wsgiref.html">wsgiref</a> in order control
tests, in a non blocking way. We first used what to serve, and to log the requests made to the server, but finally
<a class="reference external" href="http://wsgi.org">WSGI</a> and realised that <a href="http://docs.python.org/library/wsgiref.html">wsgiref</a> is
<a class="reference external" href="http://docs.python.org/library/wsgiref.html">wsgiref</a> in order not python 2.4 compatible (and we <em>need</em> to be python 2.4 compatible in
control what to serve, and to log the requests made to the server,
but finally realised that
<a class="reference external" href="http://docs.python.org/library/wsgiref.html">wsgiref</a> is not
python 2.4 compatible (and we <em>need</em> to be python 2.4 compatible in
Distutils2).</p> Distutils2).</p>
<p>So, we switched to <p>So, we switched to
<a class="reference external" href="http://docs.python.org/library/basehttpserver.html">BaseHTTPServer</a> <a href="http://docs.python.org/library/basehttpserver.html">BaseHTTPServer</a> and
and <a href="http://docs.python.org/library/simplehttpserver.html">SimpleHTTPServer</a>,
<a class="reference external" href="http://docs.python.org/library/simplehttpserver.html">SimpleHTTPServer</a>, and updated our tests accordingly. It's been an opportunity to realize
and updated our tests accordingly. It's been an opportunity to that <a href="http://wsgi.org">WSGI</a> has been a great step forward for making
realize that <a class="reference external" href="http://wsgi.org">WSGI</a> has been a great step HTTP servers, and expose a really simplest way to discuss with HTTP !</p>
forward for making HTTP servers, and expose a really simplest way <p>You can find <a href="http://bitbucket.org/ametaireau/distutils2/changesets">the modifications I
to discuss with HTTP !</p> made</a>, and the
<p>You can find <a href="http://bitbucket.org/ametaireau/distutils2/src/tip/docs/source/test_framework.rst">related
<a class="reference external" href="http://bitbucket.org/ametaireau/distutils2/changesets">the modifications I made</a>, docs</a>
and the about this on <a href="http://bitbucket.org/ametaireau/distutils2/">my bitbucket distutils2
<a class="reference external" href="http://bitbucket.org/ametaireau/distutils2/src/tip/docs/source/test_framework.rst">related docs</a> clone</a>.</p>
about this on <h2 id="the-pypi-simple-api">The PyPI Simple API</h2>
<a class="reference external" href="http://bitbucket.org/ametaireau/distutils2/">my bitbucket distutils2 clone</a>.</p> <p>So, back to the main problematic: make a python library to access and
</div> request information stored on PyPI, via the simple API. As I said, I've
<div class="section" id="the-pypi-simple-api"> just grabbed the work made from
<h2>The PyPI Simple API</h2> <a href="http://bitbucket.org/tarek/distribute/">Distribute</a>, and played a bit
<p>So, back to the main problematic: make a python library to access with, in order to view what are the different use cases, and started to
and request information stored on PyPI, via the simple API. As I write the related tests.</p>
said, I've just grabbed the work made from <h2 id="the-work-to-come">The work to come</h2>
<a class="reference external" href="http://bitbucket.org/tarek/distribute/">Distribute</a>, and played
a bit with, in order to view what are the different use cases, and
started to write the related tests.</p>
</div>
<div class="section" id="the-work-to-come">
<h2>The work to come</h2>
<p>So, once all use cases covered with tests, I'll rewrite a bit the <p>So, once all use cases covered with tests, I'll rewrite a bit the
grabbed code, and do some software design work (to not expose all grabbed code, and do some software design work (to not expose all things
things as privates methods, have a clear API, and other things like as privates methods, have a clear API, and other things like this), then
this), then update the tests accordingly and write a documentation update the tests accordingly and write a documentation to make this
to make this clear.</p> clear.</p>
<p>Next step is to a little client, as I've <p>Next step is to a little client, as I've <a href="http://github.com/ametaireau/pypiclient">already started
<a class="reference external" href="http://github.com/ametaireau/pypiclient">already started here</a> here</a> I'll take you updated !</p>
I'll take you updated !</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Focusing on what matters - Carnets Web</title> <title>Focusing on what matters - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -18,8 +18,6 @@
<meta name="tags" contents="focus" />
<meta name="tags" contents="time-management" />
<style> <style>
h1 { h1 {
@ -80,7 +78,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -95,50 +93,45 @@ styles, `#sidebar-checkbox` for behavior. -->
<h2 class="post-headline">How to avoid the information overload?</h2> <h2 class="post-headline">How to avoid the information overload?</h2>
<h1>🌟</h1> <h1>🌟</h1>
<p>I do have a problem with information.</p> <p>I do have a problem with information.</p>
<p>You know. I <strong>have</strong> to check my emails, irc, twitter, my feed reader etc. <p>You know. I <strong>have</strong> to check my emails, irc, twitter, my feed reader
I need to.</p> etc. I need to.</p>
<p>And this thing makes me feel uncomfortable at the end of the day, because I <p>And this thing makes me feel uncomfortable at the end of the day,
feel that I missed something. That I missed some good time, away from news and because I feel that I missed something. That I missed some good time,
agitation.</p> away from news and agitation.</p>
<p>Working remotely is sometimes hard. Hard because you need to at the same time <p>Working remotely is sometimes hard. Hard because you need to at the same
be in the discussions channels and work on the interesting projects. A real time be in the discussions channels and work on the interesting
myth.</p> projects. A real myth.</p>
<p>In practice, I'm really bad at multi-tasking. I tried a few times the <em>Pomodoro</em> <p>In practice, I'm really bad at multi-tasking. I tried a few times the
technique, which forces me to focus on a task for 25mn, but this split of my day <em>Pomodoro</em> technique, which forces me to focus on a task for 25mn, but
into slices of 25mn breaks my natural flow.</p> this split of my day into slices of 25mn breaks my natural flow.</p>
<p>So, what do I need? I tried to change my tools, it helped a bit. Still, I'm not <p>So, what do I need? I tried to change my tools, it helped a bit. Still,
focused like I would like to be.</p> I'm not focused like I would like to be.</p>
<p>Maybe that's just me who needs some more persuasion over myself, but the best <p>Maybe that's just me who needs some more persuasion over myself, but the
way I found to work is to unplug the cable. Literally. At work, at some point I best way I found to work is to unplug the cable. Literally. At work, at
was using a RJ45 cable to connect to the Internet. When I wanted to work on some point I was using a RJ45 cable to connect to the Internet. When I
something, I could just unplug this cable.</p> wanted to work on something, I could just unplug this cable.</p>
<p>And that's amazing how you find yourself in the process to &quot;check&quot; <p>And that's amazing how you find yourself in the process to "check"
something on the web. Mails, irc… well, you got the idea. You're litterally, something on the web. Mails, irc… well, you got the idea. You're
without even noticing, switching to your browser an opening a new tab…</p> litterally, without even noticing, switching to your browser an opening
a new tab…</p>
<p>Of course, that Web isn't filled only with lolcats and twitter messages <p>Of course, that Web isn't filled only with lolcats and twitter messages
(even if I would <strong>love</strong> to see a pie chart with the repartition of lolcats (even if I would <strong>love</strong> to see a pie chart with the repartition of
VS the rest of the web's content), so sometimes you need some precious bit of lolcats VS the rest of the web's content), so sometimes you need some
information that's there. Fair enough. plug the cable, do what you <strong>need</strong> to precious bit of information that's there. Fair enough. plug the cable,
do, and unplug. Alexis, unplug!</p> do what you <strong>need</strong> to do, and unplug. Alexis, unplug!</p>
<p>It also helps to have some fair bit of documentation available directly on my <p>It also helps to have some fair bit of documentation available directly
machine (I used to have the python docs, I should get it back!)</p> on my machine (I used to have the python docs, I should get it back!)</p>
<p>I'm feeling adventurous, so I'll try something new starting tomorrow, and I'll <p>I'm feeling adventurous, so I'll try something new starting tomorrow,
report back in here my findings. Here's the challenge:</p> and I'll report back in here my findings. Here's the challenge:</p>
<ul class="simple"> <ul>
<li><strong>Check emails only once a day</strong>. Do <strong>not</strong> do it in the morning, before <li><strong>Check emails only once a day</strong>. Do <strong>not</strong> do it in the morning,
working, to keep my mind clear. I would say at 2pm (after lunch). before working, to keep my mind clear. I would say at 2pm (after
(This doesn't mean I will not send mails tho)</li> lunch). (This doesn't mean I will not send mails tho)</li>
<li>Stay away from the Internet during the morning. I'll not connect if I don't <li>Stay away from the Internet during the morning. I'll not connect if
need to.</li> I don't need to.</li>
</ul> </ul>
<p>Let's see how it goes :)</p> <p>Let's see how it goes :)</p>
<em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/hansel5569/9397600663/in/photolist-fjragD-9EXcd5-oe2p14-23iTigF-7KBLmy-asVELm-V2rrkG-nDksc7-egrsJP-kbjM1t-iukTkY-dGKeMh-57E6to-6gH4sT-4ryLBG-78d9ro-7qr1BH-eLPdyP-NPN5q-4MPGmc-2CC4h6-97XaBc-aWRhkz-fmVQnq-bS2XY6-bUvhrL-Veeu3u-6p8SBC-c8Ppwm-57d3ZA-3fK6eh-mLrXp8-frHAzg-e8Tu86-6UH6FK-aUK8Zn-sqN8q-98bEdm-jbdFEj-TLTpDx-4Nxj1-9YfCgz-dhR16n-e2SELM-9JkbuY-WVomjJ-VSuCfC-iiapMh-gAjfm9-QVxcU2">55Laney69</a> proposé sous license CC BY-NC 2.0. Merci !</em> <em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/hansel5569/9397600663/in/photolist-fjragD-9EXcd5-oe2p14-23iTigF-7KBLmy-asVELm-V2rrkG-nDksc7-egrsJP-kbjM1t-iukTkY-dGKeMh-57E6to-6gH4sT-4ryLBG-78d9ro-7qr1BH-eLPdyP-NPN5q-4MPGmc-2CC4h6-97XaBc-aWRhkz-fmVQnq-bS2XY6-bUvhrL-Veeu3u-6p8SBC-c8Ppwm-57d3ZA-3fK6eh-mLrXp8-frHAzg-e8Tu86-6UH6FK-aUK8Zn-sqN8q-98bEdm-jbdFEj-TLTpDx-4Nxj1-9YfCgz-dhR16n-e2SELM-9JkbuY-WVomjJ-VSuCfC-iiapMh-gAjfm9-QVxcU2">55Laney69</a> proposé sous license CC BY-NC 2.0. Merci !</em>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Fork you ! or how the social coding can help you - Carnets Web</title> <title>Fork you! or how the social coding can help you - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,113 +84,116 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>With <a class="reference external" href="http://github.com">github</a> and <a class="reference external" href="http://www.bitbucket.org">bitbucket</a> coming around, a lot of new usages appears for the
developpers: it's now easy to get feedback on your code/modifications, and to get <p>With <a href="http://github.com">github</a> and
help from others by, for instance, forking repositories.</p> <a href="http://www.bitbucket.org">bitbucket</a> coming around, a lot of new usages
<p>Eeach time I see people helping others, I'm amazed by how we like to share appears for the developpers: it's now easy to get feedback on your
our knowledge.</p> code/modifications, and to get help from others by, for instance,
<p>I say github, because it seems to be the more mainstream, but I think it's forking repositories.</p>
something strongly related to the <a class="reference external" href="http://en.wikipedia.org/wiki/Distributed_revision_control">DVCS</a> principles: the &quot;only&quot; thing github have <p>Eeach time I see people helping others, I'm amazed by how we like to
made is to turn that into a social network, and to reveal the awesomeness of the share our knowledge.</p>
DVCSes to the masses.</p> <p>I say github, because it seems to be the more mainstream, but I think
<p>What is really interesting is to see how this platform is addictive: it's it's something strongly related to the
automatically updating a webpages with the more accurate informations about the <a href="http://en.wikipedia.org/wiki/Distributed_revision_control">DVCS</a>
projects you're involved in, and add a bit of magic to that using webhooks, principles: the "only" thing github have made is to turn that into a
allowing you to update your website each time you push to you repository, for social network, and to reveal the awesomeness of the DVCSes to the
instance.</p> masses.</p>
<p>What is really interesting is to see how this platform is addictive:
it's automatically updating a webpages with the more accurate
informations about the projects you're involved in, and add a bit of
magic to that using webhooks, allowing you to update your website each
time you push to you repository, for instance.</p>
<p>Quite nothing, indeed, but, I don't know why, I find this fascinating.</p> <p>Quite nothing, indeed, but, I don't know why, I find this fascinating.</p>
<p>I haven't had the privilege to see my projects forked from github by strangers, <p>I haven't had the privilege to see my projects forked from github by
but I've forked others repository to give an hand some times, when I wanted to, strangers, but I've forked others repository to give an hand some times,
and the main reason is &quot;because it's <strong>fun</strong>&quot; to do so.</p> when I wanted to, and the main reason is "because it's <strong>fun</strong>" to do
<p>Yeah, you're probably right, you have to be a nerd to find fun to fork others. so.</p>
The good point is that geeks are a kind of nerds, and some geeks are coders :)</p> <p>Yeah, you're probably right, you have to be a nerd to find fun to fork
<div class="section" id="new-ways-to-contribute"> others. The good point is that geeks are a kind of nerds, and some geeks
<h2>New ways to contribute</h2> are coders :)</p>
<p>In addition, it seems that he community, or the communities, are there, on those <h2 id="new-ways-to-contribute">New ways to contribute</h2>
new social networks for coders. It's really handy to drop an eye on interesting <p>In addition, it seems that he community, or the communities, are there,
projects, to report bugs, propose new features, and check what new projects this on those new social networks for coders. It's really handy to drop an
or this person have made.</p> eye on interesting projects, to report bugs, propose new features, and
<p>Well, &quot;it's not new&quot;, you may think. That's true, because it's been a while that check what new projects this or this person have made.</p>
SVN was there and even CVS before that. But, it was a bit messy to &quot;fork&quot; a <p>Well, "it's not new", you may think. That's true, because it's been a
project, isn't it ? And I'm not talking about all the hell SVN involved with it while that SVN was there and even CVS before that. But, it was a bit
(who have not had issues with those messy .svn folders raises an hand !).</p> messy to "fork" a project, isn't it ? And I'm not talking about all the
<p>It have not been so easy to share code and thoughts about code, to propose hell SVN involved with it (who have not had issues with those messy .svn
changes on existing code, than now. You think it's better to implement this or folders raises an hand !).</p>
that in a different way ? Clone it (fork it), make your changes and publish <p>It have not been so easy to share code and thoughts about code, to
them, and then ask projects owners about it. For sure you'll have answers.</p> propose changes on existing code, than now. You think it's better to
<p>Even if they don't want it, you can easily keep your changes, and keep getting implement this or that in a different way ? Clone it (fork it), make
their updates!</p> your changes and publish them, and then ask projects owners about it.
<p>Also, lot of <em>fashionables</em> projects tend to move on DVCS. For sure you'll have answers.</p>
Personally, if I know I can fork on a DVCS instead of from a &quot;simple&quot; VCS, <p>Even if they don't want it, you can easily keep your changes, and keep
I'll probably be quicker to fork/clone, and to publish changes on my own copy, getting their updates!</p>
than if I had to do so on the upstream repository (and I'll likely dont have <p>Also, lot of <em>fashionables</em> projects tend to move on DVCS. Personally,
the rights to push to it), because I will not be afraid to break things.</p> if I know I can fork on a DVCS instead of from a "simple" VCS, I'll
probably be quicker to fork/clone, and to publish changes on my own
copy, than if I had to do so on the upstream repository (and I'll likely
dont have the rights to push to it), because I will not be afraid to
break things.</p>
<p>DVCSes makes the contribution easier.</p> <p>DVCSes makes the contribution easier.</p>
</div> <h2 id="release-early-release-often">Release early, release often</h2>
<div class="section" id="release-early-release-often"> <p>Maybe have you read <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/">The cathedral and the
<h2>Release early, release often</h2> bazaar</a>, by Eric
<p>Maybe have you read <a class="reference external" href="http://www.catb.org/~esr/writings/cathedral-bazaar/">The cathedral and the bazaar</a>, by Eric Steven Raymond ? Steven Raymond ? (If not, consider doing so, it's a really interesting
(If not, consider doing so, it's a really interesting reading)</p> reading)</p>
<p>Among a lot of others interesting things, one hint he gives is <em>release early, <p>Among a lot of others interesting things, one hint he gives is <em>release
release often</em>.</p> early, release often</em>.</p>
<p>I understand it as: if you want to get contributors, release your code early, <p>I understand it as: if you want to get contributors, release your code
even if it's not perfect, and don't be afraid to publish your changes each early, even if it's not perfect, and don't be afraid to publish your
time it's needed.</p> changes each time it's needed.</p>
<p>Without notifying it, that's basically what I was doing for my own projects. <p>Without notifying it, that's basically what I was doing for my own
I guess that's because Social coding platforms encourages those practices, projects. I guess that's because Social coding platforms encourages
partially cause of the possible impact publishing each of your changes can have those practices, partially cause of the possible impact publishing each
on your final solution.</p> of your changes can have on your final solution.</p>
<p>If you have considered publishing your projects, code snippets, or whatever <p>If you have considered publishing your projects, code snippets, or
(code related) but did not done it, considering them not yet ready, maybe whatever (code related) but did not done it, considering them not yet
should you think about it twice: you can get feedback and probably start some ready, maybe should you think about it twice: you can get feedback and
interesting discussions about it, if you write code that's readable, of course!</p> probably start some interesting discussions about it, if you write code
</div> that's readable, of course!</p>
<div class="section" id="a-step-further-for-open-source-softwares"> <h2 id="a-step-further-for-open-source-softwares">A step further for open source softwares</h2>
<h2>A step further for open source softwares</h2>
<p>Well, DVCSes are a honking great idea, and they're starting to be really <p>Well, DVCSes are a honking great idea, and they're starting to be really
powerful when applied to free softwares. I mean: if you can't see a project, powerful when applied to free softwares. I mean: if you can't see a
it will be hard to contribute to it. And, I don't think anyone wants to project, it will be hard to contribute to it. And, I don't think anyone
contribute to something closed/proprietary, <em>just for fun</em>. Or maybe am I wants to contribute to something closed/proprietary, <em>just for fun</em>. Or
missing something.</p> maybe am I missing something.</p>
<p>Maybe it's a kind of revolution, about free and open source softwares (<a class="reference external" href="http://en.wikipedia.org/wiki/Free_and_open_source_software">FOSS</a>), <p>Maybe it's a kind of revolution, about free and open source softwares
that is going on. I really like to know I have my word to say about the changes (<a href="http://en.wikipedia.org/wiki/Free_and_open_source_software">FOSS</a>),
in the tools I use, and to know that I can make them evolve.</p> that is going on. I really like to know I have my word to say about the
<p>Let's take an example. Imagine I'm using a web framework on daily basis, as a changes in the tools I use, and to know that I can make them evolve.</p>
part of my job as a web developer. I do like using an open source software <p>Let's take an example. Imagine I'm using a web framework on daily basis,
because I know how it's working, and because I know that I can interact with the as a part of my job as a web developer. I do like using an open source
authors of the framework while they're doing the changes on it.</p> software because I know how it's working, and because I know that I can
<p>That's communication, nothing more, and of course I can do that with an internal interact with the authors of the framework while they're doing the
proprietary solution, but it will cost me <strong>a lot</strong> more time, for a dead-simple changes on it.</p>
reason: a company is not as big and powerful as a community can be: it will cost <p>That's communication, nothing more, and of course I can do that with an
time to work on this framework, resources to maintain it, fix bugs etc.</p> internal proprietary solution, but it will cost me <strong>a lot</strong> more time,
<p>Well, I'm starting advocating here about Free and Open Source Softwares use on for a dead-simple reason: a company is not as big and powerful as a
companies, what is a bit beyond the scope of this article, so let's back to community can be: it will cost time to work on this framework, resources
our DVCSes and new social related tools.</p> to maintain it, fix bugs etc.</p>
<p>If I find a bug in this framework, while working, I have the possibility to <p>Well, I'm starting advocating here about Free and Open Source Softwares
go and talk with the creators of the framework, to open a ticket, and even to use on companies, what is a bit beyond the scope of this article, so
make a fix for it, because I've access to the source code. If I want to create a let's back to our DVCSes and new social related tools.</p>
new feature, I just have to fork it, hack it, and then publish my code to have <p>If I find a bug in this framework, while working, I have the possibility
feedback of the community.</p> to go and talk with the creators of the framework, to open a ticket, and
<p>My fix/work will benefit to all the people (and maybe others companies) working even to make a fix for it, because I've access to the source code. If I
with this framework, and it's a way to prove the community that my company is want to create a new feature, I just have to fork it, hack it, and then
enough skilled to make code-fixes to the framework, so that's all good !</p> publish my code to have feedback of the community.</p>
</div> <p>My fix/work will benefit to all the people (and maybe others companies)
<div class="section" id="what-s-next"> working with this framework, and it's a way to prove the community that
<h2>What's next ?</h2> my company is enough skilled to make code-fixes to the framework, so
<p>I hope those social coding platforms are only the begining of a new area. I hope that's all good !</p>
they will make people realize what the power of the community is, and how easily <h2 id="whats-next">What's next ?</h2>
they can becomes part of it.</p> <p>I hope those social coding platforms are only the begining of a new
<p>If you're not using them right now, maybe you should do so: have a area. I hope they will make people realize what the power of the
look on how the programs you're using are made, consider publishing your community is, and how easily they can becomes part of it.</p>
<p>If you're not using them right now, maybe you should do so: have a look
on how the programs you're using are made, consider publishing your
experimentations, and share them with others, you will see, it's kind of experimentations, and share them with others, you will see, it's kind of
addictive !</p> addictive !</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>François Elie : Quelle école pour la société de linformation ? - Carnets Web</title> <title>François Elie : Quelle école pour la société de linformation ? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,36 +84,34 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p><a class="reference external" href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference">http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference</a></p>
<p><a href="http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference">http://www.framablog.org/index.php/post/2013/06/11/francois-elie-education-conference</a></p>
<p>Quelques bouts selectionnés.</p> <p>Quelques bouts selectionnés.</p>
<blockquote> <blockquote>
<p>Mais pourquoi continue t-on à enseigner des maths à des gens qui ne vont pas <p>Mais pourquoi continue t-on à enseigner des maths à des gens qui ne
les utiliser ? Ben évidemment cest parce quon nest pas dans une école de vont pas les utiliser ? Ben évidemment cest parce quon nest pas
linitiation où les mathématiciens font ça entre eux et on nest pas non plus dans une école de linitiation où les mathématiciens font ça entre eux
dans une école de lapprentissage où lécole a pour but de donner un métier, un et on nest pas non plus dans une école de lapprentissage où lécole
bagage utilisable. Lécole ne sert évidemment pas à ça. Dailleurs heureusement a pour but de donner un métier, un bagage utilisable. Lécole ne sert
parce que sinon on nenseignerait pas la philosophie qui ne sert à rien à part évidemment pas à ça. Dailleurs heureusement parce que sinon on
nenseignerait pas la philosophie qui ne sert à rien à part
fabriquer des profs de philosophie !</p> fabriquer des profs de philosophie !</p>
<p>On na pas besoin de tableau numérique pour enseigner linformatique elle-même <p>On na pas besoin de tableau numérique pour enseigner linformatique
pour enseigner la science. De la même façon on na pas besoin de machine à elle-même pour enseigner la science. De la même façon on na pas
calculer pour enseigner les mathématiques. Évidemment ! On na pas besoin dune besoin de machine à calculer pour enseigner les mathématiques.
machine à calculer pour savoir faire une division. Au contraire, surtout pas !</p> Évidemment ! On na pas besoin dune machine à calculer pour savoir
<p>Il faut cesser dopposer lenseignement de la programmation dune part et faire une division. Au contraire, surtout pas !</p>
lenseignement des usages, cest important mais ça cest lécole des maîtres et <p>Il faut cesser dopposer lenseignement de la programmation dune part
des esclaves. Ce quil faut enseigner, vite et à tous, cest la science, pas la et lenseignement des usages, cest important mais ça cest lécole
technologie ou lusage. Cest en amont de la programmation, lalgorithmique. des maîtres et des esclaves. Ce quil faut enseigner, vite et à tous,
Cest, en amont de telle instanciation, du codage, du chiffrement, la théorie, cest la science, pas la technologie ou lusage. Cest en amont de la
quelque chose qui comme les maths nont besoin que dune craie et dun tableau programmation, lalgorithmique. Cest, en amont de telle
noir.</p> instanciation, du codage, du chiffrement, la théorie, quelque chose
<p>Ce n'est pas un hasard si le mot &quot;numérique&quot; à remplaçé le mot &quot;informatique&quot;, qui comme les maths nont besoin que dune craie et dun tableau noir.</p>
c'est qu'on voudrait nous faire croire qu'il n'y a pas besoin de l'apprendre.</p> <p>Ce n'est pas un hasard si le mot "numérique" à remplaçé le mot
"informatique", c'est qu'on voudrait nous faire croire qu'il n'y a pas
besoin de l'apprendre.</p>
</blockquote> </blockquote>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -0,0 +1,327 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Génération de formulaires, geolocalisés ? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Génération de formulaires, geolocalisés ?</h1>
<span class="post-date">02 avril 2012</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<p>On a un plan. Un "truc de ouf".</p>
<p>À plusieurs reprises, des amis m'ont demandé de leur coder la même
chose, à quelques détails près: une page web avec un formulaire qui
permettrait de soumettre des informations géographiques, lié à une carte
et des manières de filtrer l'information.</p>
<p>L'idée fait son bout de chemin, et je commence à penser qu'on peut même
avoir quelque chose de vraiment flexible et utile. J'ai nommé le projet
<em>carto-forms</em> pour l'instant (mais c'est uniquement un nom de code).</p>
<p>Pour résumer: et si on avait un moyen de construire des formulaires, un
peu comme Google forms, mais avec des informations géographiques en
plus?</p>
<p>Si vous ne connaissez pas Google forms, il s'agit d'une interface simple
d'utilisation pour générer des formulaires et récupérer des informations
depuis ces derniers.</p>
<p>Google forms est un super outil mais à mon avis manque deux choses
importantes: premièrement, il s'agit d'un outil propriétaire (oui, on
peut aussi dire privateur) et il n'est donc pas possible de le hacker un
peu pour le faire devenir ce qu'on souhaite, ni l'installer sur notre
propre serveur. Deuxièmement, il ne sait pas vraiment fonctionner avec
des informations géographiques, et il n'y à pas d'autre moyen de filtrer
les informations que l'utilisation de leur système de feuilles de
calcul.</p>
<p>Après avoir réfléchi un petit peu à ça, j'ai contacté
<a href="http://blog.mathieu-leplatre.info/">Mathieu</a> et les anciens collègues
de chez <a href="http://makina-corpus.com">Makina Corpus</a>, puisque les projets
libres à base de carto sont à même de les intéresser.</p>
<p>Imaginez le cas suivant:</p>
<ol>
<li>Dans une "mapping party", on choisit un sujet particulier à
cartographier et on design un formulaire (liste des champs (tags) a
remplir + description + le type d'information) ;</li>
<li>Sur place, les utilisateurs remplissent les champs du formulaire
avec ce qu'ils voient. Les champs géolocalisés peuvent être remplis
automatiquement avec la géolocalisation du téléphone ;</li>
<li>À la fin de la journée, il est possible de voir une carte des
contributions, avec le formulaire choisi ;</li>
<li>Un script peut importer les résultats et les publier vers
OpenStreetMap.</li>
</ol>
<h2 id="quelques-cas-dutilisation">Quelques cas d'utilisation</h2>
<p>J'arrive à imaginer différents cas d'utilisation pour cet outil. Le
premier est celui que j'ai approximativement décrit plus haut: la
génération de cartes de manière collaborative, avec des filtres à
facettes. Voici un flux d'utilisation général:</p>
<ul>
<li>
<p>Un "administrateur" se rend sur le site web et crée un nouveau
formulaire pour l'ensemble des évènements alternatifs. Il crée les
champs suivants:</p>
<ul>
<li>Nom: le champ qui contient le nom de l'évènement.</li>
<li>Catégorie: la catégorie de l'évènement (marche, concert,
manifestation…). Il peut s'agir d'un champ à multiples
occurrences.</li>
<li>Le lieu de l'évènement. Celui-ci peut être donné soit par une
adresse soit en sélectionnant un point sur une carte.</li>
<li>Date: la date de l'évènement (un "date picker" peut permettre
cela facilement)</li>
</ul>
<p>Chaque champ dans le formulaire a des informations sémantiques
associées (oui/non, multiple sélection, date, heure, champ géocodé,
sélection carto, etc.)</p>
</li>
<li>
<p>Une fois terminé, le formulaire est généré et une URL permet d'y
accéder. (par exemple <a href="http://forms.notmyidea.org/alternatives">http://forms.notmyidea.org/alternatives</a>).</p>
</li>
<li>
<p>Une API REST permet à d'autres applications d'accéder aux
informations et d'en ajouter / modifier de nouvelles.</p>
</li>
<li>
<p>Il est maintenant possible de donner l'URL à qui voudra en faire bon
usage. N'importe qui peut ajouter des informations. On peut
également imaginer une manière de modérer les modifications si
besoin est.</p>
</li>
<li>
<p>Bien sur, la dernière phase est la plus intéressante: il est
possible de filtrer les informations par lieu, catégorie ou date, le
tout soit via une API REST, soit via une jolie carte et quelques
contrôles bien placés, dans le navigateur.</p>
</li>
</ul>
<p>Vous avez dû remarquer que le processus de création d'un formulaire est
volontairement très simple. L'idée est que n'importe qui puisse créer
des cartes facilement, en quelques clics. Si une API bien pensée suit,
on peut imaginer faire de la validation coté serveur et même faire des
applications pour téléphone assez simplement.</p>
<p>Pour aller un peu plus loin, si on arrive à penser un format de
description pour le formulaire, il sera possible de construire les
formulaires de manière automatisée sur différentes plateformes et
également sur des clients génériques.</p>
<p>On imagine pas mal d'exemples pour ce projet: des points de recyclage,
les endroits accessibles (pour fauteuils roulants etc.), identification
des arbres, bons coins à champignons, recensement des espèces en voie de
disparition (l'aigle de Bonelli est actuellement suivi en utilisant une
feuille de calcul partagée !), suivi des espèces dangereuses (le frelon
asiatique par exemple), cartographier les points d'affichage
publicitaires, participation citoyenne (graffitis, nids de poule, voir
<a href="http://fixmystreet.ca">http://fixmystreet.ca</a>), geocaching, trajectoires (randonnées,
coureurs, cyclistes)…</p>
<p>Voici quelques exemples où ce projet pourrait être utile (la liste n'est
pas exhaustive):</p>
<h3 id="un-backend-sig-simple-a-utiliser">Un backend SIG simple à utiliser</h3>
<p>Disons que vous êtes développeur mobile. Vous ne voulez pas vous
encombrer avec PostGIS ou écrire du code spécifique pour récupérer et
insérer des données SIG! Vous avez besoin de <em>Carto-Forms</em>! Une API
simple vous aide à penser vos modèles et vos formulaires, et cette même
API vous permet d'insérer et de récupérer des données. Vous pouvez vous
concentrer sur votre application et non pas sur la manière dont les
données géographiques sont stockées et gérées.</p>
<p>En d'autres termes, vous faites une distinction entre le stockage des
informations et leur affichage.</p>
<p>Si vous êtes un développeur django, plomino, drupal etc. vous pouvez
développer un module pour "plugger" vos modèles et votre interface
utilisateur avec celle de <em>Carto-Forms</em>. De cette manière, il est
possible d'exposer les formulaires aux utilisateurs de vos backoffices.
De la même manière, il est possible d'écrire des widgets qui consomment
des données et les affichent (en utilisant par exemple une bibliothèque
javascript de webmapping).</p>
<h3 id="un-outil-de-visualisation">Un outil de visualisation</h3>
<p>Puisque les données peuvent être proposées de manière automatisée en
utilisant l'API, vous pouvez utiliser la page de résultat de Carto-forms
comme un outil de visualisation.</p>
<p>Il est possible d'explorer mon jeu de données en utilisant des filtres
sur chacun des champs. La recherche à facettes peut être une idée pour
faciliter ce filtrage. Une carte affiche le résultat. Vous avez
l'impressoin d'être en face d'un système d'aide à la décision !</p>
<p>Évidemment, il est possible de télécharger les données brutes (geojson,
xml). Idéalement, le mieux serait d'obtenir ces données filtrées
directement depuis une API Web, et un lien permet de partager la page
avec l'état des filtres et le niveau de zoom / la localisation de la
carte.</p>
<h3 id="un-service-generique-pour-gerer-les-formulaires">Un service générique pour gérer les formulaires</h3>
<p>Si vous souhaitez générer un fichier de configuration (ou ce que vous
voulez, messages emails, …) vous aurez besoin d'un formulaire et d'un
template pour injecter les données proposées par les utilisateurs et
récupérer un résultat.</p>
<p>Un service de gestion des formulaires pourrait être utile pour créer des
formulaires de manière automatique et récupérer les données "nettoyées"
et "validées".</p>
<p>On peut imaginer par exemple l'utilisation d'un système de templates
externe reposant sur <em>carto-forms</em>. Celui-ci "parserait" le contenu des
templates et pourrait le lier aux informations ajoutées par les
utilisateurs via un formulaire.</p>
<p>Pour ce cas particulier, il n'y a pas besoin d'informations
géographiques (SIG). Il s'agit quasiment du service proposé
actuellement par Google forms.</p>
<h2 id="ca-nexiste-pas-deja-tout-ca">Ça n'existe pas déjà tout ça ?</h2>
<p>Bien sur, il y a Google forms, qui vous permet de faire ce genre de
choses, mais comme je l'ai précisé plus haut, il ne s'agit pas
exactement de la même chose.</p>
<p>Nous avons découvert <a href="https://webform.com">https://webform.com</a> qui permet de créer des
formulaires avec un système de drag'n'drop. J'adorerais reproduire
quelque chose de similaire pour l'interface utilisateur. Par contre ce
projet ne gère pas les appels via API et les informations de
géolocalisation …</p>
<p>L'idée de <a href="http://thoth.io">http://thoth.io</a> est également assez sympathique: une api
très simple pour stocker et récupérer des données. En plus de ça,
<em>carto-forms</em> proposerait de la validation de données et proposerait un
support des points SIG (point, ligne, polygone).</p>
<p><a href="http://mapbox.com">http://mapbox.com</a> fait également un superbe travail autour de la
cartographie, mais ne prends pas en compte le coté auto-génération de
formulaires…</p>
<h2 id="on-est-parti-33">On est parti ?!</h2>
<p>Comme vous avez pu vous en rendre compte, il ne s'agit pas d'un problème
outrageusement complexe. On a pas mal discuté avec Mathieu, à propos de
ce qu'on souhaite faire et du comment. Il se trouve qu'on peut sûrement
s'en sortir avec une solution élégante sans trop de problèmes. Mathieu
est habitué à travailler autour des projets de SIG (ce qui est parfait
parce que ce n'est pas mon cas) et connaît son sujet. Une bonne
opportunité d'apprendre!</p>
<p>On sera tous les deux à <a href="http://rencontres.django-fr.org">Djangocong</a> le
14 et 15 Avril, et on prévoit une session de <em>tempête de cerveau</em> et un
sprint sur ce projet. Si vous êtes dans le coin et que vous souhaitez
discuter ou nous filer un coup de patte, n'hésitez pas!</p>
<p>On ne sait pas encore si on utilisera django ou quelque chose d'autre.
On a pensé un peu à CouchDB, son système de couchapps et geocouch, mais
rien n'est encore gravé dans le marbre ! N'hésitez pas à proposer vos
solutions ou suggestions.</p>
<p>Voici le document etherpad sur lequel on a travaillé jusqu'à maintenant:
<a href="http://framapad.org/carto-forms">http://framapad.org/carto-forms</a>. N'hésitez pas à l'éditer et à ajouter
vos commentaires, c'est son objectif!</p>
<p>Merci à <a href="http://sneakernet.fr/">Arnaud</a> pour la relecture et la
correction de quelques typos dans le texte :)</p>
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Gnome 3, extensions - Carnets Web</title> <title>Gnome 3, extensions - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -18,7 +18,6 @@
<meta name="tags" contents="note" />
<style> <style>
h1 { h1 {
@ -72,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -85,44 +84,45 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Après avoir tenté pendant un bout de temps unity, le bureau par defaut de
ubuntu, j'ai eu envie de changements, et j'ai donc essayé un peu de regarder du <p>Après avoir tenté pendant un bout de temps unity, le bureau par defaut
coté de gnome 3, à nouveau.</p> de ubuntu, j'ai eu envie de changements, et j'ai donc essayé un peu de
<p>Et finalement, j'ai trouvé quelques extensions qui sont vraiment utiles, que je regarder du coté de gnome 3, à nouveau.</p>
liste ici.</p> <p>Et finalement, j'ai trouvé quelques extensions qui sont vraiment utiles,
<ul class="simple"> que je liste ici.</p>
<li><a class="reference external" href="https://extensions.gnome.org/extension/547/antisocial-menu/">Antisocial Menu</a> vire les <ul>
boutons et textes en rapport avec le web social. J'en avais pas besoin <li><a href="https://extensions.gnome.org/extension/547/antisocial-menu/">Antisocial
puisque je suis connecté à mon instant messenger dans un terminal, en Menu</a>
utilisant weechat.</li> vire les boutons et textes en rapport avec le web social. J'en avais
<li><a class="reference external" href="https://extensions.gnome.org/extension/97/coverflow-alt-tab/">Coverflow Alt-Tab</a> change le pas besoin puisque je suis connecté à mon instant messenger dans un
switcher d'applications par defaut. Je le trouve bien plus pratique que celui terminal, en utilisant weechat.</li>
par defaut puisqu'il me permet de voir &quot;en grand&quot; quelle est la fenêtre que <li><a href="https://extensions.gnome.org/extension/97/coverflow-alt-tab/">Coverflow
je vais afficher.</li> Alt-Tab</a>
<li><a class="reference external" href="https://extensions.gnome.org/extension/55/media-player-indicator/">Media player indicator</a> me change le switcher d'applications par defaut. Je le trouve bien plus
permet de voir en temps réel ce qui se passe dans mon lecteur audio. Ça pratique que celui par defaut puisqu'il me permet de voir "en grand"
semble ne pas être grand chose, mais ça me manquait. Ça s'intègre niquel avec quelle est la fenêtre que je vais afficher.</li>
Spotify, et ça c'est chouette.</li> <li><a href="https://extensions.gnome.org/extension/55/media-player-indicator/">Media player
<li><a class="reference external" href="https://extensions.gnome.org/extension/149/search-firefox-bookmarks-provider/">Rechercher dans les bookmarks firefox</a> indicator</a>
me permet de voir en temps réel ce qui se passe dans mon lecteur
audio. Ça semble ne pas être grand chose, mais ça me manquait. Ça
s'intègre niquel avec Spotify, et ça c'est chouette.</li>
<li><a href="https://extensions.gnome.org/extension/149/search-firefox-bookmarks-provider/">Rechercher dans les bookmarks
firefox</a>
permet de… à votre avis ?</li> permet de… à votre avis ?</li>
</ul> </ul>
<p>Un peu moins utile mais sait on jamais:</p> <p>Un peu moins utile mais sait on jamais:</p>
<ul class="simple"> <ul>
<li><a class="reference external" href="https://extensions.gnome.org/extension/130/advanced-settings-in-usermenu/">Advanced Settings in UserMenu</a> <li><a href="https://extensions.gnome.org/extension/130/advanced-settings-in-usermenu/">Advanced Settings in
UserMenu</a>
permet d'avoir un raccourci vers les paramètres avancés dans le menu permet d'avoir un raccourci vers les paramètres avancés dans le menu
utilisateur (en haut à droite)</li> utilisateur (en haut à droite)</li>
<li>Une <a class="reference external" href="https://extensions.gnome.org/extension/409/gtg-integration/">intégration à Getting things Gnome</a> (un truc de <li>Une <a href="https://extensions.gnome.org/extension/409/gtg-integration/">intégration à Getting things
GTD). Je suis en train d'expérimenter avec cet outil, donc je ne sais pas Gnome</a>
encore si ça va rester, mais pourquoi pas.</li> (un truc de GTD). Je suis en train d'expérimenter avec cet outil,
donc je ne sais pas encore si ça va rester, mais pourquoi pas.</li>
</ul> </ul>
<p>Vous pouvez aller faire un tour sur <a class="reference external" href="https://extensions.gnome.org/">https://extensions.gnome.org/</a> <p>Vous pouvez aller faire un tour sur <a href="https://extensions.gnome.org/">https://extensions.gnome.org/</a> pour
pour en trouver d'autres à votre gout.</p> en trouver d'autres à votre gout.</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>&quot;Groovy&quot; - Carnets Web</title> <title>"Groovy" - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -18,7 +18,6 @@
<meta name="tags" contents="note" />
<style> <style>
h1 { h1 {
@ -72,31 +71,27 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">&quot;Groovy&quot;</h1> <h1 class="post-title">"Groovy"</h1>
<span class="post-date">27 décembre 2012</span> <span class="post-date">27 décembre 2012</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>“Groovy”, c'est comme ça que je l'aime la musique: peut importe le style
finalement, la bonne musique c'est celle qui sonne, celle qui groove, celle qui
fait que tu tapes du pied (le droit chez moi) et que que ta tête commence
à hocher.</p>
<p>C'est pour ça que j'ai du mal à répondre quand on me demande quel type de
musique j'aime bien. Bah voila, maintenant je sais, je l'aime groovy ;)</p>
Vous pouvez également <a onclick="(function(){ <p>“Groovy”, c'est comme ça que je l'aime la musique: peut importe le style
let here = document.location; finalement, la bonne musique c'est celle qui sonne, celle qui groove,
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; celle qui fait que tu tapes du pied (le droit chez moi) et que que ta
return false; tête commence à hocher.</p>
})();return false;">télécharger cet article en pdf</a>. <p>C'est pour ça que j'ai du mal à répondre quand on me demande quel type
de musique j'aime bien. Bah voila, maintenant je sais, je l'aime groovy
;)</p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Groupement d'achats & partage d'expérience - Carnets Web</title> <title>Groupement d'achats & partage d'expérience - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -78,7 +78,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -101,7 +101,7 @@ styles, `#sidebar-checkbox` for behavior. -->
</ul> </ul>
<p>Notre groupement dessert actuellement 18 foyers et une 60aine de personnes.</p> <p>Notre groupement dessert actuellement 18 foyers et une 60aine de personnes.</p>
<p>Au fur et à mesure de la vie du groupement, on a développé quelques outils pour se simplifier la vie. Voici un retour d'expérience et quelques astuces / outils, au cas où l'envie vous prenne à vous aussi :)</p> <p>Au fur et à mesure de la vie du groupement, on a développé quelques outils pour se simplifier la vie. Voici un retour d'expérience et quelques astuces / outils, au cas où l'envie vous prenne à vous aussi :)</p>
<h1>Organisation</h1> <h1 id="organisation">Organisation</h1>
<p>On organise environs trois ou quatre distributions par an. Le <em>modus operandi</em> est le suivant:</p> <p>On organise environs trois ou quatre distributions par an. Le <em>modus operandi</em> est le suivant:</p>
<ul> <ul>
<li>chaque product·eur·rice à un·e référent·e, qui s'occupe de faire le lien;</li> <li>chaque product·eur·rice à un·e référent·e, qui s'occupe de faire le lien;</li>
@ -111,13 +111,13 @@ styles, `#sidebar-checkbox` for behavior. -->
<li>2 semaines avant la distribution, les commandes sont closes;</li> <li>2 semaines avant la distribution, les commandes sont closes;</li>
<li>Les référent·e·s ont ensuite deux semaines pour récupérer les commandes pour la distribution</li> <li>Les référent·e·s ont ensuite deux semaines pour récupérer les commandes pour la distribution</li>
</ul> </ul>
<h1>Quels produits ?</h1> <h1 id="quels-produits">Quels produits ?</h1>
<p>On essaye d'avoir uniquement des produits qui se conservent (on a également quelques autres produits plus frais, mais avec d'autres modalités).</p> <p>On essaye d'avoir uniquement des produits qui se conservent (on a également quelques autres produits plus frais, mais avec d'autres modalités).</p>
<p>Entre autres: bières, légumes secs, conserves, jus, miel, pâtes, semoule, café, vinaigres, pommes de terre, oignons, huiles, farines.</p> <p>Entre autres: bières, légumes secs, conserves, jus, miel, pâtes, semoule, café, vinaigres, pommes de terre, oignons, huiles, farines.</p>
<p>On essaye de faire du local puis du bio au plus proche plutôt que de trouver nécessairement les prix les plus bas. C'est une discussion qui revient assez <p>On essaye de faire du local puis du bio au plus proche plutôt que de trouver nécessairement les prix les plus bas. C'est une discussion qui revient assez
souvent, et donc un point à évoquer lors de la création pour avoir une posture souvent, et donc un point à évoquer lors de la création pour avoir une posture
claire sur le sujet (tout le monde n'est pas animé par la même éthique !).</p> claire sur le sujet (tout le monde n'est pas animé par la même éthique !).</p>
<h1>Paiements</h1> <h1 id="paiements">Paiements</h1>
<p>Pour les paiements, on utilise autant que possible des chèques. Chaque référent·e paye la·le product·rice·eur en son nom, et lui demande d'attendre la date de la distribution pour l'encaissement. La plupart des producteurs acceptent d'être payés sous quinzaine.</p> <p>Pour les paiements, on utilise autant que possible des chèques. Chaque référent·e paye la·le product·rice·eur en son nom, et lui demande d'attendre la date de la distribution pour l'encaissement. La plupart des producteurs acceptent d'être payés sous quinzaine.</p>
<p>Le jour de la distribution, tout le monde apporte son chéquier. Nous avons mis <p>Le jour de la distribution, tout le monde apporte son chéquier. Nous avons mis
en place une moulinette qui s'occupe de faire la répartition des chèques automatiquement, chaque membre se retrouve à faire en moyenne un ou deux chèques.</p> en place une moulinette qui s'occupe de faire la répartition des chèques automatiquement, chaque membre se retrouve à faire en moyenne un ou deux chèques.</p>
@ -125,11 +125,11 @@ en place une moulinette qui s'occupe de faire la répartition des chèques autom
membre du groupement d'achat paye ce qu'il doit payer. Nous n'avons membre du groupement d'achat paye ce qu'il doit payer. Nous n'avons
volontairement pas de structure juridique et pas de compte en banque. Les volontairement pas de structure juridique et pas de compte en banque. Les
paiements s'effectuent directement entre nous.</p> paiements s'effectuent directement entre nous.</p>
<h1>Transports</h1> <h1 id="transports">Transports</h1>
<p>Chaque référent·e commande les produits, puis ensuite s'occupe de les rapatrier. À Rennes, on a la chance d'avoir pas mal de producteurs aux alentours, donc c'est assez simple.</p> <p>Chaque référent·e commande les produits, puis ensuite s'occupe de les rapatrier. À Rennes, on a la chance d'avoir pas mal de producteurs aux alentours, donc c'est assez simple.</p>
<p>Le mieux est de ramener les produits juste un peu avant la distribution au lieu de distribution, ça permet d'éviter de les stocker trop longtemps, et d'éviter aux producteurs d'attendre trop longtemps avant d'encaisser les chèques.</p> <p>Le mieux est de ramener les produits juste un peu avant la distribution au lieu de distribution, ça permet d'éviter de les stocker trop longtemps, et d'éviter aux producteurs d'attendre trop longtemps avant d'encaisser les chèques.</p>
<p>Pour les grosses commandes, les voitures se remplissent bien, mais ma petite Clio suffit, que ce soit dit !</p> <p>Pour les grosses commandes, les voitures se remplissent bien, mais ma petite Clio suffit, que ce soit dit !</p>
<h1>La distribution</h1> <h1 id="la-distribution">La distribution</h1>
<p>Un peu en amont de la distribution, il faut organiser l'espace. Des tas par membre sont constitués pour faciliter les choses le jour de la distribution.</p> <p>Un peu en amont de la distribution, il faut organiser l'espace. Des tas par membre sont constitués pour faciliter les choses le jour de la distribution.</p>
<p>Le jour même, on se retrouve, on charge ses marchandises, on échange quelques chèques et on papote ! On en profite pour:</p> <p>Le jour même, on se retrouve, on charge ses marchandises, on échange quelques chèques et on papote ! On en profite pour:</p>
<ul> <ul>
@ -140,7 +140,7 @@ paiements s'effectuent directement entre nous.</p>
<li>changer de référents pour les producteurs.</li> <li>changer de référents pour les producteurs.</li>
</ul> </ul>
<p>Et c'est reparti pour un tour ;)</p> <p>Et c'est reparti pour un tour ;)</p>
<h1>Nos outils</h1> <h1 id="nos-outils">Nos outils</h1>
<p>On utilise un tableur en ligne pour partager les prix et prendre les commandes. On a essayé d'utiliser <em>ethercalc</em> au début mais ça ne fonctionnait pas pour nous à l'époque (trop de petits bugs). On a donc préféré utiliser Google docs (ouch).</p> <p>On utilise un tableur en ligne pour partager les prix et prendre les commandes. On a essayé d'utiliser <em>ethercalc</em> au début mais ça ne fonctionnait pas pour nous à l'époque (trop de petits bugs). On a donc préféré utiliser Google docs (ouch).</p>
<p>Il est d'ailleurs possible d'y intégrer de nouvelles fonctionnalités assez facilement, du coup Fred et Rémy ont planché sur un moyen d'automatiser la répartition des chèques (qu'on faisait dans un premier temps à la main - assez péniblement).</p> <p>Il est d'ailleurs possible d'y intégrer de nouvelles fonctionnalités assez facilement, du coup Fred et Rémy ont planché sur un moyen d'automatiser la répartition des chèques (qu'on faisait dans un premier temps à la main - assez péniblement).</p>
<p>Le système n'est pas parfait mais fonctionne quand même assez bien !</p> <p>Le système n'est pas parfait mais fonctionne quand même assez bien !</p>
@ -151,11 +151,6 @@ paiements s'effectuent directement entre nous.</p>
</ul> </ul>
<p>Bon groupement d'achat ;)</p> <p>Bon groupement d'achat ;)</p>
<em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/rudolph-84120/20281784035/in/photolist-gMxaj5-cfMuLh-SZoJFw-d8bb9f-mi22A-q9fpSJ-7zz7Tz-6pKvHi-cfMvdJ-5PWHKL-fi8LS2-9EQR56-d8b37S-9ETPCw-6M8UgQ-FCyyQx-p81gJT-6hPqMv-ei3tHg-9EQXwc-ei9bTS-c79Aku-9ETNG7-9XryY3-TUk3nj-d8b5W7-6pQXZ5-adz3pM-PHqQrG-wgg7UB-7xp16n-9EQSqV-kRqWc7-9EQVjX-fSqpzE-9ETT6d-d8bd5A-4XKtNM-7xsF3y-4YfDL9-9ETRcj-pMqGqC-7xsRy9-8uj9Ui-7PbSBQ-vC3Hta-JGRKVJ-wUerMD-9EQWER-7P1irQ">Rudolph Fehr</a> proposé sous license CC BY NC 2.0. Merci !</em> <em>L'image d'illustration utilisée est un travail de <a href="https://www.flickr.com/photos/rudolph-84120/20281784035/in/photolist-gMxaj5-cfMuLh-SZoJFw-d8bb9f-mi22A-q9fpSJ-7zz7Tz-6pKvHi-cfMvdJ-5PWHKL-fi8LS2-9EQR56-d8b37S-9ETPCw-6M8UgQ-FCyyQx-p81gJT-6hPqMv-ei3tHg-9EQXwc-ei9bTS-c79Aku-9ETNG7-9XryY3-TUk3nj-d8b5W7-6pQXZ5-adz3pM-PHqQrG-wgg7UB-7xp16n-9EQSqV-kRqWc7-9EQVjX-fSqpzE-9ETT6d-d8bd5A-4XKtNM-7xsF3y-4YfDL9-9ETRcj-pMqGqC-7xsRy9-8uj9Ui-7PbSBQ-vC3Hta-JGRKVJ-wUerMD-9EQWER-7P1irQ">Rudolph Fehr</a> proposé sous license CC BY NC 2.0. Merci !</em>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Habitat collectif - Carnets Web</title> <title>Habitat collectif - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,25 +84,24 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Habiter à plusieurs, partager un lieu de vie, monter une communauté, changer
nos modes de vie et prendre plus de temps les uns pour les autres.</p> <p>Habiter à plusieurs, partager un lieu de vie, monter une communauté,
<p>Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez moi.</p> changer nos modes de vie et prendre plus de temps les uns pour les
<p>Voilà quelques ressources qui peuvent être utiles si jamais vous aussi ça vous autres.</p>
titille:</p> <p>Ça fait réfléchir un peu quand même, non ? en tout cas ça marche chez
<ul class="simple"> moi.</p>
<li><a class="reference external" href="http://www.habicoop.fr/IMG/pdf/Memoire_hbtat_coop_Vaulx-2.pdf">LHabitat Coopératif : Solution au problème de responsabilisation sociale des <p>Voilà quelques ressources qui peuvent être utiles si jamais vous aussi
copropriétaires sur la commune de Vaulx en Velin ça vous titille:</p>
?</a> - mémoire REPIQUET Anne <ul>
2005.</li> <li><a href="http://www.habicoop.fr/IMG/pdf/Memoire_hbtat_coop_Vaulx-2.pdf">LHabitat Coopératif : Solution au problème de responsabilisation
<li>Un bouquin à lire avec plein d'infos: <a class="reference external" href="http://www.ecosociete.org/t101.php">Vivre autrement</a> de Diana Leafe Christian.</li> sociale des copropriétaires sur la commune de Vaulx en Velin
?</a> -
mémoire REPIQUET Anne 2005.</li>
<li>Un bouquin à lire avec plein d'infos: <a href="http://www.ecosociete.org/t101.php">Vivre
autrement</a> de Diana Leafe
Christian.</li>
<li></li> <li></li>
</ul> </ul>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Help me to go to the distutils2 paris' sprint - Carnets Web</title> <title>Help me to go to the distutils2 paris' sprint - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,30 +84,26 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p><strong>Edit: Thanks to logilab and some amazing people, I can make it to paris for the
sprint. Many thanks to them for the support!</strong></p> <p><strong>Edit: Thanks to logilab and some amazing people, I can make it to
<p>There will be a distutils2 sprint from the 27th to the 30th of january, thanks paris for the sprint. Many thanks to them for the support!</strong></p>
to logilab which will host the event.</p> <p>There will be a distutils2 sprint from the 27th to the 30th of january,
<p>You can find more informations about the sprint on the wiki page of the event thanks to logilab which will host the event.</p>
(<a class="reference external" href="http://wiki.python.org/moin/Distutils/SprintParis">http://wiki.python.org/moin/Distutils/SprintParis</a>).</p> <p>You can find more informations about the sprint on the wiki page of the
<p>I really want to go there but I'm unfortunately blocked in UK for money reasons. event (<a href="http://wiki.python.org/moin/Distutils/SprintParis">http://wiki.python.org/moin/Distutils/SprintParis</a>).</p>
The cheapest two ways I've found is about £80, which I can't afford. <p>I really want to go there but I'm unfortunately blocked in UK for money
Following some advices on #distutils, I've set up a ChipIn account for that, so reasons. The cheapest two ways I've found is about £80, which I can't
if some people want to help me making it to go there, they can give me some afford. Following some advices on #distutils, I've set up a ChipIn
money that way.</p> account for that, so if some people want to help me making it to go
there, they can give me some money that way.</p>
<p>I'll probably work on the installer (to support old distutils and <p>I'll probably work on the installer (to support old distutils and
setuptools distributions) and on the uninstaller (depending on the first setuptools distributions) and on the uninstaller (depending on the first
task). If I can't make it to paris, I'll hang around on IRC to give some help task). If I can't make it to paris, I'll hang around on IRC to give some
while needed.</p> help while needed.</p>
<p>If you want to contribute some money to help me go there, feel free to use this <p>If you want to contribute some money to help me go there, feel free to
chipin page: <a class="reference external" href="http://ametaireau.chipin.com/distutils2-sprint-in-paris">http://ametaireau.chipin.com/distutils2-sprint-in-paris</a></p> use this chipin page:
<a href="http://ametaireau.chipin.com/distutils2-sprint-in-paris">http://ametaireau.chipin.com/distutils2-sprint-in-paris</a></p>
<p>Thanks for your support !</p> <p>Thanks for your support !</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>How are you handling your shared expenses? - Carnets Web</title> <title>How are you handling your shared expenses? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -18,9 +18,6 @@
<meta name="tags" contents="python" />
<meta name="tags" contents="flask" />
<meta name="tags" contents="budget-manager" />
<style> <style>
h1 { h1 {
@ -74,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -87,90 +84,77 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p><strong>TL;DR:</strong> We're kick-starting a new application to manage your shared
expenses. Have a look at <a class="reference external" href="http://ihatemoney.notmyidea.org">http://ihatemoney.notmyidea.org</a></p>
<p>As a student, I lived in a lot of different locations, and the majority of them
had something in common: I lived with others. It usually was a great experience
(and I think I will continue to live with others). Most of the time, we had to
spend some time each month to compute who had to pay what to the others.</p>
<p>I wanted to create a pet project using flask, so I wrote a little
(~150 lines) flask application to handle this. It worked out pretty well for my
housemates and me, and as we had to move into different locations,
one of them asked me if he could continue to use it for the year to come.</p>
<p>I said yes and gave it some more thoughts: We probably aren't the only ones
interested by such kind of software. I decided to extend a bit more the
software to have a concept of projects and persons (the list of persons was
hard-coded in the first time, boooh!).</p>
<p>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
interested in it and contributed some features and provided feedback (thanks
<a class="reference external" href="http://www.sneakernet.fr/">Arnaud</a> and Quentin!)</p>
<p>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,
a secret code and a contact email, invite friends and that's it (this was inspired by
doodle)!</p>
<img alt="Capture d'écran du site." src="images/ihatemoney.png" />
<p>You can try the project at <a class="reference external" href="http://ihatemoney.notmyidea.org">http://ihatemoney.notmyidea.org</a> for now, and the
code lives at <a class="reference external" href="https://github.com/spiral-project/ihatemoney/">https://github.com/spiral-project/ihatemoney/</a>.</p>
<div class="section" id="features">
<h2>Features</h2>
<p>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.</p>
<p>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.</p>
<div class="section" id="no-user-registration">
<h3>No user registration</h3>
<p>You don't need to register an account on the website to start using it. You
just have to create a project, set a secret code for it, and give both the url and
the code to the people you want to share it with (or the website can poke
them for you).</p>
</div>
<div class="section" id="keeping-things-simple">
<h3>Keeping things simple</h3>
<p>&quot;Keep It Simple, Stupid&quot; 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.</p>
</div>
<div class="section" id="no-categories">
<h3>No categories</h3>
<p>Some people like to organise their stuff into different &quot;categories&quot;:
leisure, work, eating, etc. That's not something I want (at least to begin
with).</p>
<p>I want things to be simple. Got that? Great. Just add your bills!</p>
</div>
<div class="section" id="balance">
<h3>Balance</h3>
<p>One of the most useful thing is to know what's your &quot;balance&quot; compared to
others. In other words, if you're negative, you owe money, if you're positive,
you have to receive money. This allows you to dispatch who has to pay for the
next thing, in order to re-equilibrate the balance.</p>
<p>Additionally, the system is able to compute for you who has to give how
much to who, in order to reduce the number of transactions needed to restore
the balance.</p>
</div>
<div class="section" id="api">
<h3>API</h3>
<p>All of what's possible to do with the standard web interface is also available
through a REST API. I developed a simple REST toolkit for flask for this (and
I should release it!).</p>
</div>
</div>
<div class="section" id="interested">
<h2>Interested?</h2>
<p>This project is open source. All of us like to share what we are doing and
would be happy to work with new people and implement new ideas. If you have
a nice idea about this, if you want to tweak it or to fill bugs. Don't hesitate
a second! The project lives at <a class="reference external" href="http://github.com/spiral-project/ihatemoney/">http://github.com/spiral-project/ihatemoney/</a></p>
</div>
Vous pouvez également <a onclick="(function(){ <p><strong>TL;DR:</strong> We're kick-starting a new application to manage your shared
let here = document.location; expenses. Have a look at <a href="http://ihatemoney.notmyidea.org">http://ihatemoney.notmyidea.org</a></p>
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`; <p>As a student, I lived in a lot of different locations, and the majority
return false; of them had something in common: I lived with others. It usually was a
})();return false;">télécharger cet article en pdf</a>. great experience (and I think I will continue to live with others). Most
of the time, we had to spend some time each month to compute who had to
pay what to the others.</p>
<p>I wanted to create a pet project using flask, so I wrote a little (\~150
lines) flask application to handle this. It worked out pretty well for
my housemates and me, and as we had to move into different locations,
one of them asked me if he could continue to use it for the year to
come.</p>
<p>I said yes and gave it some more thoughts: We probably aren't the only
ones interested by such kind of software. I decided to extend a bit more
the software to have a concept of projects and persons (the list of
persons was hard-coded in the first time, boooh!).</p>
<p>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 interested in it and contributed some
features and provided feedback (thanks
<a href="http://www.sneakernet.fr/">Arnaud</a> and Quentin!)</p>
<p>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, a secret code and a contact email, invite friends and
that's it (this was inspired by doodle)!</p>
<p><img alt="Capture d'écran du site." src="images/ihatemoney.png"></p>
<p>You can try the project at <a href="http://ihatemoney.notmyidea.org">http://ihatemoney.notmyidea.org</a> for now,
and the code lives at <a href="https://github.com/spiral-project/ihatemoney/">https://github.com/spiral-project/ihatemoney/</a>.</p>
<h2 id="features">Features</h2>
<p>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.</p>
<p>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.</p>
<h3 id="no-user-registration">No user registration</h3>
<p>You don't need to register an account on the website to start using it.
You just have to create a project, set a secret code for it, and give
both the url and the code to the people you want to share it with (or
the website can poke them for you).</p>
<h3 id="keeping-things-simple">Keeping things simple</h3>
<p>"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.</p>
<h3 id="no-categories">No categories</h3>
<p>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).</p>
<p>I want things to be simple. Got that? Great. Just add your bills!</p>
<h3 id="balance">Balance</h3>
<p>One of the most useful thing is to know what's your "balance" compared
to others. In other words, if you're negative, you owe money, if you're
positive, you have to receive money. This allows you to dispatch who has
to pay for the next thing, in order to re-equilibrate the balance.</p>
<p>Additionally, the system is able to compute for you who has to give how
much to who, in order to reduce the number of transactions needed to
restore the balance.</p>
<h3 id="api">API</h3>
<p>All of what's possible to do with the standard web interface is also
available through a REST API. I developed a simple REST toolkit for
flask for this (and I should release it!).</p>
<h2 id="interested">Interested?</h2>
<p>This project is open source. All of us like to share what we are doing
and would be happy to work with new people and implement new ideas. If
you have a nice idea about this, if you want to tweak it or to fill
bugs. Don't hesitate a second! The project lives at
<a href="http://github.com/spiral-project/ihatemoney/">http://github.com/spiral-project/ihatemoney/</a></p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>How to install NGINX + PHP 5.3 on FreeBSD. - Carnets Web</title> <title>How to install NGINX + PHP 5.3 on FreeBSD. - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,59 +84,66 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<ul>
<li>
<p>date<br>
2010-10-10</p>
</li>
<li>
<p>category<br>
tech</p>
</li>
</ul>
<p>I've not managed so far to get completely rid of php, so here's a simple <p>I've not managed so far to get completely rid of php, so here's a simple
reminder about how to install php on NGINX, for FreeBSD. Nothing hard, but reminder about how to install php on NGINX, for FreeBSD. Nothing hard,
that's worse to have the piece of configuration somewhere !</p> but that's worse to have the piece of configuration somewhere !</p>
<pre class="literal-block"> <div class="highlight"><pre><span></span><span class="o">#</span> <span class="k">update</span> <span class="n">the</span> <span class="n">ports</span>
# update the ports <span class="err">$</span> <span class="n">portsnap</span> <span class="k">fetch</span> <span class="k">update</span>
$ portsnap fetch update
# install php5 port <span class="o">#</span> <span class="n">install</span> <span class="n">php5</span> <span class="n">port</span>
$ make config-recursive -C /usr/ports/lang/php5-extensions <span class="err">$</span> <span class="n">make</span> <span class="n">config</span><span class="o">-</span><span class="k">recursive</span> <span class="o">-</span><span class="k">C</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">ports</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">php5</span><span class="o">-</span><span class="n">extensions</span>
$ make package-recursive -C /usr/ports/lang/php5-extensions <span class="err">$</span> <span class="n">make</span> <span class="n">package</span><span class="o">-</span><span class="k">recursive</span> <span class="o">-</span><span class="k">C</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">ports</span><span class="o">/</span><span class="n">lang</span><span class="o">/</span><span class="n">php5</span><span class="o">-</span><span class="n">extensions</span>
# install nginx <span class="o">#</span> <span class="n">install</span> <span class="n">nginx</span>
$ make config-recursive -C /usr/ports/www/nginx-devel <span class="err">$</span> <span class="n">make</span> <span class="n">config</span><span class="o">-</span><span class="k">recursive</span> <span class="o">-</span><span class="k">C</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">ports</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nginx</span><span class="o">-</span><span class="n">devel</span>
$ make package-recursive -C /usr/ports/www/nginx-devel <span class="err">$</span> <span class="n">make</span> <span class="n">package</span><span class="o">-</span><span class="k">recursive</span> <span class="o">-</span><span class="k">C</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">ports</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nginx</span><span class="o">-</span><span class="n">devel</span>
</pre> </pre></div>
<p>Now we have all the dependencies installed, we need to configure a bit the
server.</p>
<p>That's a simple thing in fact, but it could be good to have something that will <p>Now we have all the dependencies installed, we need to configure a bit
work without effort over time.</p> the server.</p>
<p>That's a simple thing in fact, but it could be good to have something
that will work without effort over time.</p>
<p>Here's a sample of my configuration:</p> <p>Here's a sample of my configuration:</p>
<pre class="literal-block"> <div class="highlight"><pre><span></span><span class="nv">server</span> {
server { <span class="nv">server_name</span> <span class="nv">ndd</span><span class="c1">;</span>
server_name ndd; <span class="nv">set</span> $<span class="nv">path</span> <span class="o">/</span><span class="nv">path</span><span class="o">/</span><span class="nv">to</span><span class="o">/</span><span class="nv">your</span><span class="o">/</span><span class="nv">files</span><span class="c1">;</span>
set $path /path/to/your/files; <span class="nv">root</span> $<span class="nv">path</span><span class="c1">;</span>
root $path;
location / { <span class="nv">location</span> <span class="o">/</span> {
index index.php; <span class="nv">index</span> <span class="nv">index</span>.<span class="nv">php</span><span class="c1">;</span>
} }
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { <span class="nv">location</span> <span class="o">~*</span> <span class="o">^</span>.<span class="o">+</span>.<span class="ss">(</span><span class="nv">jpg</span><span class="o">|</span><span class="nv">jpeg</span><span class="o">|</span><span class="nv">gif</span><span class="o">|</span><span class="nv">css</span><span class="o">|</span><span class="nv">png</span><span class="o">|</span><span class="nv">js</span><span class="o">|</span><span class="nv">ico</span><span class="o">|</span><span class="nv">xml</span><span class="ss">)</span>$ {
access_log off; <span class="nv">access_log</span> <span class="nv">off</span><span class="c1">;</span>
expires 30d; <span class="nv">expires</span> <span class="mi">30</span><span class="nv">d</span><span class="c1">;</span>
} }
location ~ .php$ { <span class="nv">location</span> <span class="o">~</span> .<span class="nv">php</span>$ {
fastcgi_param SCRIPT_FILENAME $path$fastcgi_script_name; <span class="nv">fastcgi_param</span> <span class="nv">SCRIPT_FILENAME</span> $<span class="nv">path</span><span class="mh">$fa</span><span class="nv">stcgi_script_name</span><span class="c1">;</span>
fastcgi_pass backend; <span class="nv">fastcgi_pass</span> <span class="nv">backend</span><span class="c1">;</span>
include fastcgi_params; <span class="k">include</span> <span class="nv">fastcgi_params</span><span class="c1">;</span>
} }
} }
upstream backend { <span class="nv">upstream</span> <span class="nv">backend</span> {
server 127.0.0.1:9000; <span class="nv">server</span> <span class="mi">127</span>.<span class="mi">0</span>.<span class="mi">0</span>.<span class="mi">1</span>:<span class="mi">9000</span><span class="c1">;</span>
} }
</pre> </pre></div>
<p>And that's it !</p> <p>And that's it !</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>How to reboot your bebox using the CLI - Carnets Web</title> <title>How to reboot your bebox using the CLI - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,20 +84,23 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>I've an internet connection which, for some obscure reasons, tend to be very
slow from time to time. After rebooting the box (yes, that's a hard solution), <p>I've an internet connection which, for some obscure reasons, tend to be
all the things seems to go fine again.</p> very slow from time to time. After rebooting the box (yes, that's a hard
<div class="section" id="edit-using-grep"> solution), all the things seems to go fine again.</p>
<h2>EDIT : Using grep</h2> <h2 id="edit-using-grep">EDIT : Using grep</h2>
<p>After a bit of reflexion, that's also really easy to do using directly the <p>After a bit of reflexion, that's also really easy to do using directly
command line tools curl, grep and tail (but really harder to read).</p> the command line tools curl, grep and tail (but really harder to
<div class="highlight"><pre><span></span>curl -X POST -u joel:joel http://bebox.config/cgi/b/info/restart/<span class="se">\?</span>be<span class="se">\=</span><span class="m">0</span><span class="se">\&amp;</span>l0<span class="se">\=</span><span class="m">1</span><span class="se">\&amp;</span>l1<span class="se">\=</span><span class="m">0</span><span class="se">\&amp;</span>tid<span class="se">\=</span>RESTART -d <span class="s2">&quot;0=17&amp;2=`curl -u joel:joel http://bebox.config/cgi/b/info/restart/\?be\=0\&amp;l0\=1\&amp;l1\=0\&amp;tid\=RESTART | grep -o &quot;</span><span class="nv">name</span><span class="o">=</span><span class="s1">&#39;2&#39;</span> <span class="nv">value</span><span class="o">=</span><span class="err">&#39;</span><span class="o">[</span><span class="m">0</span>-9<span class="o">]</span><span class="se">\+</span><span class="s2">&quot; | grep -o &quot;</span><span class="o">[</span><span class="m">0</span>-9<span class="o">]</span><span class="se">\+</span><span class="s2">&quot; | tail -n 1`&amp;1&quot;</span> read).</p>
</pre></div> <p><code>`` sourceCode bash
</div> curl -X POST -u joel:joel http://bebox.config/cgi/b/info/restart/\?be\=0\&amp;l0\=1\&amp;l1\=0\&amp;tid\=RESTART -d "0=17&amp;2=</code>curl -u joel:joel http://bebox.config/cgi/b/info/restart/\?be\=0\&amp;l0\=1\&amp;l1\=0\&amp;tid\=RESTART | grep -o "name='2' value='[0-9]+" | grep -o "[0-9]+" | tail -n 1`&amp;1"</p>
<div class="section" id="the-python-version"> <div class="highlight"><pre><span></span><span class="c1">## The Python version</span>
<h2>The Python version</h2>
<p>Well, that's not the optimal solution, that's a bit &quot;gruik&quot;, but it works.</p> <span class="n">Well</span><span class="p">,</span> <span class="n">that</span><span class="s1">&#39;s not the optimal solution, that&#39;</span><span class="n">s</span> <span class="n">a</span> <span class="n">bit</span> <span class="s2">&quot;gruik&quot;</span><span class="p">,</span> <span class="n">but</span> <span class="n">it</span>
<div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">urllib2</span> <span class="n">works</span><span class="o">.</span>
<span class="sb">``</span><span class="err">`</span> <span class="n">sourceCode</span> <span class="n">python</span>
<span class="kn">import</span> <span class="nn">urllib2</span>
<span class="kn">import</span> <span class="nn">urlparse</span> <span class="kn">import</span> <span class="nn">urlparse</span>
<span class="kn">import</span> <span class="nn">re</span> <span class="kn">import</span> <span class="nn">re</span>
<span class="kn">import</span> <span class="nn">argparse</span> <span class="kn">import</span> <span class="nn">argparse</span>
@ -132,13 +135,6 @@ command line tools curl, grep and tail (but really harder to read).</p>
<span class="n">url</span> <span class="o">=</span> <span class="n">urlparse</span><span class="o">.</span><span class="n">urljoin</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">boxurl</span><span class="p">,</span> <span class="n">REBOOT_URL</span><span class="p">)</span> <span class="n">url</span> <span class="o">=</span> <span class="n">urlparse</span><span class="o">.</span><span class="n">urljoin</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">boxurl</span><span class="p">,</span> <span class="n">REBOOT_URL</span><span class="p">)</span>
<span class="n">reboot</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">password</span><span class="p">)</span> <span class="n">reboot</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">password</span><span class="p">)</span>
</pre></div> </pre></div>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

BIN
images/un-an/bar.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 KiB

BIN
images/un-an/tuyaux.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

View file

@ -0,0 +1,379 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Implementing CORS in Cornice - Alexis - Carnets en ligne</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">Implementing CORS in Cornice</h1>
<span class="post-date">04 février 2013</span>
<img id="illustration" src="" />
<div class="post article">
<h1>🌟</h1>
<div class="note">
<div class="admonition-title">
Note
</div>
I'm cross-posting [on the mozilla services
weblog](https://blog.mozilla.org/services/). Since this is the first
time we're doing that, I though it could be useful to point you there.
Check it out and expect more technical articles there in the future.
</div>
<p>For security reasons, it's not possible to do cross-domain requests. In
other words, if you have a page served from the domain lolnet.org, it
will not be possible for it to get data from notmyidea.org.</p>
<p>Well, it's possible, using tricks and techniques like
<a href="http://en.wikipedia.org/wiki/JSONP">JSONP</a>, but that doesn't work all
the time (see <a href="#how-this-is-different-from-jsonp">the section below</a>). I
remember myself doing some simple proxies on my domain server to be able
to query other's API.</p>
<p>Thankfully, there is a nicer way to do this, namely, "Cross Origin
Resource-Sharing", or <a href="http://www.w3.org/TR/cors/">CORS</a>.</p>
<h2 id="you-want-an-icecream-go-ask-your-dad-first">You want an icecream? Go ask your dad first.</h2>
<p>If you want to use CORS, you need the API you're querying to support it;
on the server side.</p>
<p>The HTTP server need to answer to the OPTIONS verb, and with the
appropriate response headers.</p>
<p>OPTIONS is sent as what the authors of the spec call a "preflight
request"; just before doing a request to the API, the <em>User-Agent</em> (the
browser most of the time) asks the permission to the resource, with an
OPTIONS call.</p>
<p>The server answers, and tell what is available and what isn't:</p>
<p><img alt="The CORS flow (from the HTML5 CORS tutorial)" src="images/cors_flow.png"></p>
<ul>
<li>
<p>1a. The User-Agent, rather than doing the call directly, asks the
server, the API, the permission to do the request. It does so with
the following headers:</p>
<ul>
<li><strong>Access-Control-Request-Headers</strong>, contains the headers the
User-Agent want to access.</li>
<li><strong>Access-Control-Request-Method</strong> contains the method the
User-Agent want to access.</li>
</ul>
</li>
<li>
<p>1b. The API answers what is authorized:</p>
<ul>
<li><strong>Access-Control-Allow-Origin</strong> the origin that's accepted. Can
be * or the domain name.</li>
<li><strong>Access-Control-Allow-Methods</strong> a <em>list</em> of allowed methods.
This can be cached. Note than the request asks permission for
one method and the server should return a list of accepted
methods.</li>
<li><strong>Access-Allow-Headers</strong> a list of allowed headers, for all of
the methods, since this can be cached as well.</li>
</ul>
</li>
<li>
<ol>
<li>The User-Agent can do the "normal" request.</li>
</ol>
</li>
</ul>
<p>So, if you want to access the /icecream resource, and do a PUT there,
you'll have the following flow:</p>
<div class="highlight"><pre><span></span><span class="o">&gt;</span> <span class="k">OPTIONS</span> <span class="o">/</span><span class="n">icecream</span>
<span class="o">&gt;</span> <span class="k">Access</span><span class="o">-</span><span class="n">Control</span><span class="o">-</span><span class="n">Request</span><span class="o">-</span><span class="n">Methods</span> <span class="o">=</span> <span class="n">PUT</span>
<span class="o">&gt;</span> <span class="n">Origin</span><span class="p">:</span> <span class="n">notmyidea</span><span class="p">.</span><span class="n">org</span>
<span class="o">&lt;</span> <span class="k">Access</span><span class="o">-</span><span class="n">Control</span><span class="o">-</span><span class="n">Allow</span><span class="o">-</span><span class="n">Origin</span> <span class="o">=</span> <span class="n">notmyidea</span><span class="p">.</span><span class="n">org</span>
<span class="o">&lt;</span> <span class="k">Access</span><span class="o">-</span><span class="n">Control</span><span class="o">-</span><span class="n">Allow</span><span class="o">-</span><span class="n">Methods</span> <span class="o">=</span> <span class="n">PUT</span><span class="p">,</span><span class="k">GET</span><span class="p">,</span><span class="k">DELETE</span>
<span class="mi">200</span> <span class="n">OK</span>
</pre></div>
<p>You can see that we have an Origin Header in the request, as well as a
Access-Control-Request-Methods. We're here asking if we have the right,
as notmyidea.org, to do a PUT request on /icecream.</p>
<p>And the server tells us that we can do that, as well as GET and DELETE.</p>
<p>I'll not cover all the details of the CORS specification here, but bear
in mind than with CORS, you can control what are the authorized methods,
headers, origins, and if the client is allowed to send authentication
information or not.</p>
<h2 id="a-word-about-security">A word about security</h2>
<p>CORS is not an answer for every cross-domain call you want to do,
because you need to control the service you want to call. For instance,
if you want to 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.</p>
<p>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.</p>
<p>An incorrectly secured CORS server can be accessed by a malicious client
very easily, bypassing network security. For instance, if you host a
server on an intranet that is only available from behind a VPN but
accepts every cross-origin call. A bad guy can inject javascript into
the browser of a user who has access to your protected server and make
calls to your service, which is probably not what you want.</p>
<h2 id="how-this-is-different-from-jsonp">How this is different from JSONP?</h2>
<p>You may know the <a href="http://en.wikipedia.org/wiki/JSONP">JSONP</a> protocol.
JSONP allows cross origin, but for a particular use case, and does have
some drawbacks (for instance, it's not possible to do DELETEs or PUTs
with JSONP).</p>
<p>JSONP exploits the fact that it is possible to get information from
another domain when you are asking for javascript code, using the
\&lt;script> element.</p>
<blockquote>
<p>Exploiting the open policy for \&lt;script> elements, some pages use
them to retrieve JavaScript code that operates on dynamically
generated JSON-formatted data from other origins. This usage pattern
is known as JSONP. Requests for JSONP retrieve not JSON, but arbitrary
JavaScript code. They are evaluated by the JavaScript interpreter, not
parsed by a JSON parser.</p>
</blockquote>
<h2 id="using-cors-in-cornice">Using CORS in Cornice</h2>
<p>Okay, things are hopefully clearer about CORS, let's see how we
implemented it on the server-side.</p>
<p>Cornice is a toolkit that lets you define resources in python and takes
care of the heavy lifting for you, so I wanted it to take care of the
CORS support as well.</p>
<p>In Cornice, you define a service like this:</p>
<p>``` sourceCode python
from cornice import Service</p>
<p>foobar = Service(name="foobar", path="/foobar")</p>
<h1 id="and-then-you-do-something-with-it">and then you do something with it</h1>
<p>@foobar.get()
def get_foobar(request):
# do something with the request.</p>
<div class="highlight"><pre><span></span><span class="k">To</span><span class="w"> </span><span class="k">add</span><span class="w"> </span><span class="n">CORS</span><span class="w"> </span><span class="n">support</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">resource</span><span class="p">,</span><span class="w"> </span><span class="n">you</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="k">go</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">way</span><span class="p">,</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
<span class="n">cors</span><span class="err">\</span><span class="n">_origins</span><span class="w"> </span><span class="k">parameter</span><span class="err">:</span><span class="w"></span>
<span class="err">```</span><span class="w"> </span><span class="n">sourceCode</span><span class="w"> </span><span class="n">python</span><span class="w"></span>
<span class="n">foobar</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Service</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;foobar&#39;</span><span class="p">,</span><span class="w"> </span><span class="k">path</span><span class="o">=</span><span class="s1">&#39;/foobar&#39;</span><span class="p">,</span><span class="w"> </span><span class="n">cors_origins</span><span class="o">=</span><span class="p">(</span><span class="s1">&#39;*&#39;</span><span class="p">,))</span><span class="w"></span>
</pre></div>
<p>Ta-da! You have enabled CORS for your service. <strong>Be aware that you're
authorizing anyone to query your server, that may not be what you
want.</strong></p>
<p>Of course, you can specify a list of origins you trust, and you don't
need to stick with *, which means "authorize everyone".</p>
<h3 id="headers">Headers</h3>
<p>You can define the headers you want to expose for the service:</p>
<p>``` sourceCode python
foobar = Service(name='foobar', path='/foobar', cors_origins=('*',))</p>
<p>@foobar.get(cors_headers=('X-My-Header', 'Content-Type'))
def get_foobars_please(request):
return "some foobar for you"</p>
<div class="highlight"><pre><span></span><span class="nv">I</span><span class="s1">&#39;</span><span class="s">ve done some testing and it wasn</span><span class="s1">&#39;</span><span class="nv">t</span> <span class="nv">working</span> <span class="nv">on</span> <span class="nv">Chrome</span> <span class="nv">because</span> <span class="nv">I</span> <span class="nv">wasn</span><span class="s1">&#39;</span><span class="s">t</span>
<span class="nv">handling</span> <span class="nv">the</span> <span class="nv">headers</span> <span class="nv">the</span> <span class="nv">right</span> <span class="nv">way</span> <span class="ss">(</span><span class="nv">The</span> <span class="nv">missing</span> <span class="nv">one</span> <span class="nv">was</span> <span class="nv">Content</span><span class="o">-</span><span class="nv">Type</span>,
<span class="nv">that</span> <span class="nv">Chrome</span> <span class="nv">was</span> <span class="nv">asking</span> <span class="k">for</span><span class="ss">)</span>. <span class="nv">With</span> <span class="nv">my</span> <span class="nv">first</span> <span class="nv">version</span> <span class="nv">of</span> <span class="nv">the</span>
<span class="nv">implementation</span>, <span class="nv">I</span> <span class="nv">needed</span> <span class="nv">the</span> <span class="nv">service</span> <span class="nv">implementers</span> <span class="nv">to</span> <span class="nv">explicitely</span> <span class="nv">list</span>
<span class="nv">all</span> <span class="nv">the</span> <span class="nv">headers</span> <span class="nv">that</span> <span class="nv">should</span> <span class="nv">be</span> <span class="nv">exposed</span>. <span class="k">While</span> <span class="nv">this</span> <span class="nv">improves</span> <span class="nv">security</span>, <span class="nv">it</span>
<span class="nv">can</span> <span class="nv">be</span> <span class="nv">frustrating</span> <span class="k">while</span> <span class="nv">developing</span>.
<span class="nv">So</span> <span class="nv">I</span> <span class="nv">introduced</span> <span class="nv">an</span> <span class="nv">expose</span>\<span class="nv">_all</span>\<span class="nv">_headers</span> <span class="nv">flag</span>, <span class="nv">which</span> <span class="nv">is</span> <span class="nv">set</span> <span class="nv">to</span> <span class="nv">True</span> <span class="nv">by</span>
<span class="nv">default</span>, <span class="k">if</span> <span class="nv">the</span> <span class="nv">service</span> <span class="nv">supports</span> <span class="nv">CORS</span>.
### <span class="nv">Cookies</span> <span class="o">/</span> <span class="nv">Credentials</span>
<span class="nv">By</span> <span class="nv">default</span>, <span class="nv">the</span> <span class="nv">requests</span> <span class="nv">you</span> <span class="k">do</span> <span class="nv">to</span> <span class="nv">your</span> <span class="nv">API</span> <span class="nv">endpoint</span> <span class="nv">don</span><span class="s1">&#39;</span><span class="s">t include the</span>
<span class="nv">credential</span> <span class="nv">information</span> <span class="k">for</span> <span class="nv">security</span> <span class="nv">reasons</span>. <span class="k">If</span> <span class="nv">you</span> <span class="nv">really</span> <span class="nv">want</span> <span class="nv">to</span> <span class="k">do</span>
<span class="nv">that</span>, <span class="nv">you</span> <span class="nv">need</span> <span class="nv">to</span> <span class="nv">enable</span> <span class="nv">it</span> <span class="nv">using</span> <span class="nv">the</span> <span class="nv">cors</span>\<span class="nv">_credentials</span> <span class="nv">parameter</span>. <span class="nv">You</span>
<span class="nv">can</span> <span class="nv">activate</span> <span class="nv">this</span> <span class="nv">one</span> <span class="nv">on</span> <span class="nv">a</span> <span class="nv">per</span><span class="o">-</span><span class="nv">service</span> <span class="nv">basis</span> <span class="nv">or</span> <span class="nv">on</span> <span class="nv">a</span> <span class="nv">per</span><span class="o">-</span><span class="nv">method</span> <span class="nv">basis</span>.
### <span class="nv">Caching</span>
<span class="nv">When</span> <span class="nv">you</span> <span class="k">do</span> <span class="nv">a</span> <span class="nv">preflight</span> <span class="nv">request</span>, <span class="nv">the</span> <span class="nv">information</span> <span class="nv">returned</span> <span class="nv">by</span> <span class="nv">the</span> <span class="nv">server</span>
<span class="nv">can</span> <span class="nv">be</span> <span class="nv">cached</span> <span class="nv">by</span> <span class="nv">the</span> <span class="nv">User</span><span class="o">-</span><span class="nv">Agent</span> <span class="nv">so</span> <span class="nv">that</span> <span class="nv">it</span><span class="s1">&#39;</span><span class="s">s not redone before each</span>
<span class="nv">actual</span> <span class="nv">call</span>.
<span class="nv">The</span> <span class="nv">caching</span> <span class="nv">period</span> <span class="nv">is</span> <span class="nv">defined</span> <span class="nv">by</span> <span class="nv">the</span> <span class="nv">server</span>, <span class="nv">using</span> <span class="nv">the</span>
<span class="nv">Access</span><span class="o">-</span><span class="nv">Control</span><span class="o">-</span><span class="nv">Max</span><span class="o">-</span><span class="nv">Age</span> <span class="nv">header</span>. <span class="nv">You</span> <span class="nv">can</span> <span class="nv">configure</span> <span class="nv">this</span> <span class="nv">timing</span> <span class="nv">using</span> <span class="nv">the</span>
<span class="nv">cors</span>\<span class="nv">_max</span>\<span class="nv">_age</span> <span class="nv">parameter</span>.
### <span class="nv">Simplifying</span> <span class="nv">the</span> <span class="nv">API</span>
<span class="nv">We</span> <span class="nv">have</span> <span class="nv">cors</span>\<span class="nv">_headers</span>, <span class="nv">cors</span>\<span class="nv">_enabled</span>, <span class="nv">cors</span>\<span class="nv">_origins</span>, <span class="nv">cors</span>\<span class="nv">_credentials</span>,
<span class="nv">cors</span>\<span class="nv">_max</span>\<span class="nv">_age</span>, <span class="nv">cors</span>\<span class="nv">_expose</span>\<span class="nv">_all</span>\<span class="nv">_headers</span><span class="nv">a</span> <span class="nv">fair</span> <span class="nv">number</span> <span class="nv">of</span>
<span class="nv">parameters</span>. <span class="k">If</span> <span class="nv">you</span> <span class="nv">want</span> <span class="nv">to</span> <span class="nv">have</span> <span class="nv">a</span> <span class="nv">specific</span> <span class="nv">CORS</span><span class="o">-</span><span class="nv">policy</span> <span class="k">for</span> <span class="nv">your</span>
<span class="nv">services</span>, <span class="nv">that</span> <span class="nv">can</span> <span class="nv">be</span> <span class="nv">a</span> <span class="nv">bit</span> <span class="nv">tedious</span> <span class="nv">to</span> <span class="nv">pass</span> <span class="nv">these</span> <span class="nv">to</span> <span class="nv">your</span> <span class="nv">services</span> <span class="nv">all</span>
<span class="nv">the</span> <span class="nv">time</span>.
<span class="nv">I</span> <span class="nv">introduced</span> <span class="nv">another</span> <span class="nv">way</span> <span class="nv">to</span> <span class="nv">pass</span> <span class="nv">the</span> <span class="nv">CORS</span> <span class="nv">policy</span>, <span class="nv">so</span> <span class="nv">you</span> <span class="nv">can</span> <span class="k">do</span>
<span class="nv">something</span> <span class="nv">like</span> <span class="nv">that</span>:
``` <span class="nv">sourceCode</span> <span class="nv">python</span>
<span class="nv">policy</span> <span class="o">=</span> <span class="nv">dict</span><span class="ss">(</span><span class="nv">enabled</span><span class="o">=</span><span class="nv">False</span>,
<span class="nv">headers</span><span class="o">=</span><span class="ss">(</span><span class="s1">&#39;</span><span class="s">X-My-Header</span><span class="s1">&#39;</span>, <span class="s1">&#39;</span><span class="s">Content-Type</span><span class="s1">&#39;</span><span class="ss">)</span>,
<span class="nv">origins</span><span class="o">=</span><span class="ss">(</span><span class="s1">&#39;</span><span class="s">*.notmyidea.org</span><span class="s1">&#39;</span><span class="ss">)</span>,
<span class="nv">credentials</span><span class="o">=</span><span class="nv">True</span>,
<span class="nv">max_age</span><span class="o">=</span><span class="mi">42</span><span class="ss">)</span>
<span class="nv">foobar</span> <span class="o">=</span> <span class="nv">Service</span><span class="ss">(</span><span class="nv">name</span><span class="o">=</span><span class="s1">&#39;</span><span class="s">foobar</span><span class="s1">&#39;</span>, <span class="nv">path</span><span class="o">=</span><span class="s1">&#39;</span><span class="s">/foobar</span><span class="s1">&#39;</span>, <span class="nv">cors_policy</span><span class="o">=</span><span class="nv">policy</span><span class="ss">)</span>
</pre></div>
<h2 id="comparison-with-other-implementations">Comparison with other implementations</h2>
<p>I was curious to have a look at other implementations of CORS, in django
for instance, and I found <a href="https://gist.github.com/426829.js">a gist about
it</a>.</p>
<p>Basically, this adds a middleware that adds the "rights" headers to the
answer, depending on the request.</p>
<p>While this approach works, it's not implementing the specification
completely. You need to add support for all the resources at once.</p>
<p>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.
Otherwise, you don't know exactly what's going on when you look at the
definition of the service.</p>
<h2 id="resources">Resources</h2>
<p>There are a number of good resources that can be useful to you if you
want to either understand how CORS works, or if you want to implement it
yourself.</p>
<ul>
<li><a href="http://enable-cors.org/">http://enable-cors.org/</a> is useful to get started when you don't
know anything about CORS.</li>
<li>There is a W3C wiki page containing information that may be useful
about clients, common pitfalls etc:
<a href="http://www.w3.org/wiki/CORS_Enabled">http://www.w3.org/wiki/CORS_Enabled</a></li>
<li><em>HTML5 rocks</em> has a tutorial explaining how to implement CORS, with
<a href="http://www.html5rocks.com/en/tutorials/cors/#toc-adding-cors-support-to-the-server">a nice section about the
server-side</a>.</li>
<li>Be sure to have a look at the <a href="http://caniuse.com/#search=cors">clients support-matrix for this
feature</a>.</li>
<li>About security, <a href="https://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity">check out this
page</a></li>
<li>If you want to have a look at the implementation code, check <a href="https://github.com/mozilla-services/cornice/pull/98/files">on
github</a></li>
</ul>
<p>Of course, the W3C specification is the best resource to rely on. This
specification isn't hard to read, so you may want to go through it.
Especially the <a href="http://www.w3.org/TR/cors/#resource-processing-model">"resource processing model"
section</a></p>
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
@ -6,10 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Carnets Web</title> <title>Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -44,7 +45,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container-wide"> <div class="container-wide">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -53,104 +54,102 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="content-title"> <div class="content-title">
<div class="posts"> <div class="posts">
<ul id="blog_index"> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a></span><span class="description"><span class="headline">Quelques notes prises après une discussion avec d'autres complices du coin</span><time class="created" datetime="2019-06-26T00:00:00+02:00">26 juin 2019</time></span></li> <li><span class="metadata date"><h2>Réfléxions</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a></span><span class="description"><span class="headline">Comment un passionné de Logiciels libres choisit de créer une petite brasserie artisanale.</span><time class="created" datetime="2018-05-27T00:00:00+02:00">27 mai 2018</time></span></li> <li>
<li style="background-image: url('/images/abeilles.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/groupement-dachats-partage-dexperience.html">Groupement d'achats & partage d'expérience</a></span><span class="description"><span class="headline">Quelques retours sur la création et l'organisation d'un groupement d'achat.</span><time class="created" datetime="2018-03-03T00:00:00+01:00">03 mars 2018</time></span></li> <span class="metadata date">novembre 2019</span>
<li style="background-image: url('images/carnet.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/webnotes.html">Webnotes</a></span><span class="description"><span class="headline">Un outil pour prendre et partager des notes lors de ma navigation.</span><time class="created" datetime="2018-02-25T00:00:00+01:00">25 février 2018</time></span></li> <a class="post_title" href="/elitisme-et-apprentissage.html">Élitisme et apprentissage</a>&nbsp;
<li style="background-image: url('images/less-is-more.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/faire-moins.html">Faire moins</a></span><span class="description"><span class="headline">Et retrouver le contrôle de son engagement.</span><time class="created" datetime="2018-02-19T00:00:00+01:00">19 février 2018</time></span></li> <span class="metadata category">Réfléxions</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/neipa-3.html">NEIPA #3</a></span><span class="description"><span class="headline">New England IPA - Collab avec Heiko.</span><time class="created" datetime="2017-12-29T00:00:00+01:00">29 décembre 2017</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/neipa-2.html">NEIPA #2</a></span><span class="description"><span class="headline">Petit test de New England IPA.</span><time class="created" datetime="2017-12-18T00:00:00+01:00">18 décembre 2017</time></span></li> <span class="metadata date">mars 2018</span>
<li style="background-image: url('/images/refroidissement.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a></span><span class="description"><span class="headline">Si vous êtes dans le coin de Rennes et que vous voulez échanger sur la fabrication de bière, ne cherchez plus ;)</span><time class="created" datetime="2017-11-06T00:00:00+01:00">06 novembre 2017</time></span></li> <a class="post_title" href="/groupement-dachats-partage-dexperience.html">Groupement d'achats & partage d'expérience</a>&nbsp;
<li style="background-image: url('images/haze.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a></span><span class="description"><span class="headline">Traduction d'un article sur les New England IPA du magazine Américan « Brew Your Own »</span><time class="created" datetime="2017-10-17T00:00:00+02:00">17 octobre 2017</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('images/vieuxsinge.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a></span><span class="description"><span class="headline">Retours sur ces quelques mois consacrés à la création de la brasserie du Vieux Singe.</span><time class="created" datetime="2017-06-26T00:00:00+02:00">26 juin 2017</time></span></li> <li>
<li style="background-image: url('images/forms.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a></span><span class="description"><span class="headline">Présentation d'une solution pour gérer vos formulaires en gardant la main sur les données générées</span><time class="created" datetime="2016-05-31T00:00:00+02:00">31 mai 2016</time></span></li> <span class="metadata date">février 2018</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cloisonnement-des-activites.html">Cloisonnement des activités ?</a></span><span class="description"><span class="headline">En revenant de SudWeb</span><time class="created" datetime="2016-05-29T00:00:00+02:00">29 mai 2016</time></span></li> <a class="post_title" href="/webnotes.html">Webnotes</a>&nbsp;
<li style="background-image: url('images/illusion.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a></span><span class="description"><span class="headline">Tour d'horizon du fonctionnement de SSL et des solutions pour le sécuriser.</span><time class="created" datetime="2016-03-25T00:00:00+01:00">25 mars 2016</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('images/focus.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/focusing-on-what-matters.html">Focusing on what matters</a></span><span class="description"><span class="headline">How to avoid the information overload?</span><time class="created" datetime="2016-03-17T00:00:00+01:00">17 mars 2016</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/retours-sur-un-atelier-zeronet.html">Retours sur un atelier ZeroNet</a></span><span class="description"><span class="headline">Comment contourner la censure grâce à un Web pair-à-pair ?</span><time class="created" datetime="2016-03-17T00:00:00+01:00">17 mars 2016</time></span></li> <span class="metadata date">février 2018</span>
<li style="background-image: url('images/horizon.jpg') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lhorizon.html">L'horizon</a></span><span class="description"><span class="headline">Temps de changer d'horizon. Mon départ de Mozilla et le début d'une <a class="post_title" href="/faire-moins.html">Faire moins</a>&nbsp;
nouvelle histoire.</span><time class="created" datetime="2016-03-02T00:00:00+01:00">02 mars 2016</time></span></li> <span class="metadata category">Réfléxions</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lets-encrypt-haproxy.html">Let's Encrypt + HAProxy</a></span><span class="description"><span class="headline">Comment j'ai mis en place des certificats SSL avec Let's Encrypt <li>
derrière haproxy.</span><time class="created" datetime="2016-02-11T00:00:00+01:00">11 février 2016</time></span></li> <span class="metadata date">octobre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/ateliers-dautodefense-numerique.html">Ateliers d'autodéfense numérique</a></span><span class="description"><span class="headline">J'ai récemment animé des ateliers d'autodéfense numérique. Voici <a class="post_title" href="/larrivee-du-trouble-ou-comment-faire-des-neipa.html">L'arrivée du trouble (ou comment faire des NEIPA ?)</a>&nbsp;
quelques retours et pistes d'améliorations.</span><time class="created" datetime="2016-01-14T00:00:00+01:00">14 janvier 2016</time></span></li> <span class="metadata category">Brassage</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html">Rencontres python francophones, 2015</a></span><span class="description"><span class="headline">Retours sur les rencontres python francophones de 2015.</span><time class="created" datetime="2015-11-02T00:00:00+01:00">02 novembre 2015</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/web-distribution-signing.html">Web distribution signing</a></span><span class="description"><span class="headline">Bringing trust back between software authors and user agents.</span><time class="created" datetime="2015-10-12T00:00:00+02:00">12 octobre 2015</time></span></li> <span class="metadata date">mai 2016</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/roles.html">Rôles</a></span><span class="description"><span class="headline">De l'importance des rôles informels et de leur partage au sein d'un <a class="post_title" href="/comment-est-ce-que-vous-generez-vos-formulaires.html">Comment est-ce que vous générez vos formulaires ?</a>&nbsp;
groupe.</span><time class="created" datetime="2015-06-29T00:00:00+02:00">29 juin 2015</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/les-problemes-de-pgp.html">Les problèmes de PGP</a></span><span class="description"><span class="headline">Quels sont les soucis liés à PGP, que faire ?</span><time class="created" datetime="2015-05-25T00:00:00+02:00">25 mai 2015</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/travail-et-creativite.html">Travail et créativité</a></span><span class="description"><span class="headline">Travailler moins pour laisser plus de place à la créativité.</span><time class="created" datetime="2015-05-21T00:00:00+02:00">21 mai 2015</time></span></li> <span class="metadata date">mars 2016</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/simplifier-les-preuves-didentites.html">Simplifier les preuves d'identités</a></span><span class="description"><span class="headline">Qu'est-ce que Keybase.io et comment essayent-ils de simplifier la <a class="post_title" href="/avez-vous-confiance-en-ssl.html">Avez vous confiance en SSL?</a>&nbsp;
création de preuves d'identité.</span><time class="created" datetime="2015-05-11T00:00:00+02:00">11 mai 2015</time></span></li> <span class="metadata category">Technologie</span> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/phrases-de-passe-et-bonnes-pratiques.html">Phrases de passe et bonnes pratiques</a></span><span class="description"><span class="headline">Communiquer de manière chiffrée n'est pas aisée, et nécessite de <li><span class="metadata date"></span><a class="post_title" href="/categories.html">plus d'articles </a>&nbsp;</li></ul>
mémoriser des phrases de passes complexes. Comment s'en sortir ?</span><time class="created" datetime="2015-05-09T00:00:00+02:00">09 mai 2015</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/chiffrement.html">Chiffrement</a></span><span class="description"><span class="headline">Face a la surveillance généralisée, une seule solution, le <ul class="articles_list">
chiffrement de nos données et communications.</span><time class="created" datetime="2015-05-08T00:00:00+02:00">08 mai 2015</time></span></li> <li><span class="metadata date"><h2>Journal</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/language.html">Language</a></span><span class="description"><span class="headline">Nos langues peuvent être autant de frontières que de ponts...</span><time class="created" datetime="2015-05-01T00:00:00+02:00">01 mai 2015</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-secret-du-bonheur.html">Le secret du bonheur</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-11-20T00:00:00+01:00">20 novembre 2014</time></span></li> <span class="metadata date">juillet 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/whats-hawk-and-how-to-use-it.html">What's Hawk and how to use it?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-31T00:00:00+02:00">31 juillet 2014</time></span></li> <a class="post_title" href="/ours.html">Ours</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html">Quel métier, quelle utilité ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html">Retours sur deux ans à Mozilla</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-revenu-de-base.html">Le revenu de base</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-10-03T00:00:00+02:00">03 octobre 2013</time></span></li> <span class="metadata date">juin 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/des-carnets-desquisse-fr.html">Des carnets d'esquisse</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-08-16T00:00:00+02:00">16 août 2013</time></span></li> <a class="post_title" href="/velo.html">Vélo</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-07-06T00:00:00+02:00">06 juillet 2013</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/new-year-python-meme-2012.html">New year python meme, 2012</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-07-01T00:00:00+02:00">01 juillet 2013</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-06-14T00:00:00+02:00">14 juin 2013</time></span></li> <span class="metadata date">juin 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/confiance-fr.html">Des profils de confiance partout et pour tout ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-04-02T00:00:00+02:00">02 avril 2013</time></span></li> <a class="post_title" href="/un-espace-des-communs-rennais.html">Un espace des communs Rennais ?</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cross-origin-in-cornice.html">Implementing CORS in Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2013-04-02T00:00:00+02:00">02 avril 2013</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/status-board-fr.html">Status board</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-29T00:00:00+01:00">29 décembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/habitat-collectif.html">Habitat collectif</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> <span class="metadata date">mai 2019</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/languages.html">Languages</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> <a class="post_title" href="/un-an.html">Brasserie - petit bilan, après un an dexistence</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/tricot.html">Tricot</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/astuces-ssh.html">Astuces SSH</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/gnome-3-extensions.html">Gnome 3, extensions</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <span class="metadata date">mai 2018</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/groovy.html">&quot;Groovy&quot;</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> <a class="post_title" href="/de-mozilla-a-la-brasserie-du-vieux-singe.html">De Mozilla à la Brasserie du Vieux Singe</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/notre-dame-des-landes.html">Notre dame des landes</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-27T00:00:00+01:00">27 décembre 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/semences-paysannes.html">Semences paysannes</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-12-20T00:00:00+01:00">20 décembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/lifestyle-fr.html">Lifestyle</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-11-05T00:00:00+01:00">05 novembre 2012</time></span></li> <span class="metadata date">octobre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/cheese-code-wrap-up.html">Cheese &amp; code - Wrap-up</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-10-22T00:00:00+02:00">22 octobre 2012</time></span></li> <a class="post_title" href="/un-club-des-brasseurs-amateurs-rennais.html">Un club des brasseurs amateurs Rennais</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/afpy-computer-camp-october-20-21.html">Cheese &amp; Code party: October 20-21</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-09-20T00:00:00+02:00">20 septembre 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/circus-sprint-at-pyconfr.html">Circus sprint at PyconFR</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-09-17T00:00:00+02:00">17 septembre 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pourquoi-mozilla-fr.html">Pourquoi Mozilla?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-07-16T00:00:00+02:00">16 juillet 2012</time></span></li> <span class="metadata date">juin 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/refactoring-cornice.html">Refactoring Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-05-14T00:00:00+02:00">14 mai 2012</time></span></li> <a class="post_title" href="/brasserie-du-vieux-singe-installation-en-cours.html">Brasserie du Vieux Singe — Installation en cours.</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/bidouille-fr.html">Bidouille</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-30T00:00:00+02:00">30 avril 2012</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/djangocong-2012-fr.html">Djangocong 2012</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-16T00:00:00+02:00">16 avril 2012</time></span></li> <li><span class="metadata date"></span><a class="post_title" href="/category/journal.html">plus d'articles </a>&nbsp;</li></ul>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/biere-maison-fr.html">Bière maison !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-10T00:00:00+02:00">10 avril 2012</time></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/motivation-benevolat-et-participation-fr.html">Motivation, bénévolat et participation</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-04-10T00:00:00+02:00">10 avril 2012</time></span></li> <ul class="articles_list">
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/carto-forms.html">Thoughts about a form generation service, GIS enabled</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-02-04T00:00:00+01:00">04 février 2012</time></span></li> <li><span class="metadata date"><h2>Notes</h2></span></li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/les-dangers-du-livre-numerique-fr.html">Les dangers du livre numérique</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-01-23T00:00:00+01:00">23 janvier 2012</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/2012-first-months.html">2012, first months</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2012-01-21T00:00:00+01:00">21 janvier 2012</time></span></li> <span class="metadata date">décembre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html">Using JPype to bridge python and Java</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-11-06T00:00:00+01:00">06 novembre 2011</time></span></li> <a class="post_title" href="/neipa-3.html">NEIPA #3</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html">How are you handling your shared expenses?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-10-15T00:00:00+02:00">15 octobre 2011</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/la-simplicite-volontaire-contre-le-mythe-de-labondance-fr.html">La simplicité volontaire contre le mythe de l'abondance</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-10-14T00:00:00+02:00">14 octobre 2011</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html">Using dbpedia to get languages influences</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-08-16T00:00:00+02:00">16 août 2011</time></span></li> <span class="metadata date">décembre 2017</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pelican-9-months-later.html">Pelican, 9 months later</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-07-25T00:00:00+02:00">25 juillet 2011</time></span></li> <a class="post_title" href="/neipa-2.html">NEIPA #2</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/introducing-cornice.html">Introducing Cornice</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-07-12T00:00:00+02:00">12 juillet 2011</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire-fr.html">Un coup de main pour mon mémoire!</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-05-25T00:00:00+02:00">25 mai 2011</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler-fr.html">Travailler moins pour mieux travailler ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-05-19T00:00:00+02:00">19 mai 2011</time></span></li> <span class="metadata date">juin 2013</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html">Analyse users' browsing context to build up a web recommender</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-04-01T00:00:00+02:00">01 avril 2011</time></span></li> <a class="post_title" href="/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html">François Elie : Quelle école pour la société de linformation ?</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html">Working directly on your server? How to backup and sync your dev environment with unison</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-03-16T00:00:00+01:00">16 mars 2011</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/wrap-up-of-the-distutils2-paris-sprint.html">Wrap up of the distutils2 paris' sprint</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-02-08T00:00:00+01:00">08 février 2011</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pypi-on-couchdb.html">PyPI on CouchDB</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-20T00:00:00+01:00">20 janvier 2011</time></span></li> <span class="metadata date">juin 2013</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html">Help me to go to the distutils2 paris' sprint</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-15T00:00:00+01:00">15 janvier 2011</time></span></li> <a class="post_title" href="/notes-economie-libidinale-et-economie-politique.html">Notes: Économie libidinale et économie politique</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/usages-informatique-fr.html">Quels usages pour l'informatique ?</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2011-01-12T00:00:00+01:00">12 janvier 2011</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html">Fork you ! or how the social coding can help you</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-11-05T00:00:00+01:00">05 novembre 2010</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-to-reboot-your-bebox-using-the-cli.html">How to reboot your bebox using the CLI</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-21T00:00:00+02:00">21 octobre 2010</time></span></li> <span class="metadata date">mars 2013</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/dynamically-change-your-gnome-desktop-wallpaper.html">Dynamically change your gnome desktop wallpaper</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-11T00:00:00+02:00">11 octobre 2010</time></span></li> <a class="post_title" href="/le-revenu-de-base.html">Le revenu de base</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html">How to install NGINX + PHP 5.3 on FreeBSD.</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-10T00:00:00+02:00">10 octobre 2010</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html">Pelican, a simple static blog generator in python</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-10-06T00:00:00+02:00">06 octobre 2010</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html">An amazing summer of code working on distutils2</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-08-16T00:00:00+02:00">16 août 2010</time></span></li> <span class="metadata date">décembre 2012</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html">Introducing the distutils2 index crawlers</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-07-06T00:00:00+02:00">06 juillet 2010</time></span></li> <a class="post_title" href="/habitat-collectif.html">Habitat collectif</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html">Sprinting on distutils2 in Tours</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-07-06T00:00:00+02:00">06 juillet 2010</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html">Use Restructured Text (ReST) to power your presentations</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-06-25T00:00:00+02:00">25 juin 2010</time></span></li> <li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/first-week-working-on-distutils2.html">first week working on distutils2</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-06-04T00:00:00+02:00">04 juin 2010</time></span></li> <span class="metadata date">décembre 2012</span>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/a-distutils2-gsoc.html">A Distutils2 GSoC</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-05-01T00:00:00+02:00">01 mai 2010</time></span></li> <a class="post_title" href="/tricot.html">Tricot</a>&nbsp;
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/le-temps-des-graces-courrez-y-fr.html">Le temps des grâces, courrez-y !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-03-28T00:00:00+01:00">28 mars 2010</time></span></li> </li>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante-fr.html">Semaine de lenvironnement: La consommation étudiante</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2010-02-24T00:00:00+01:00">24 février 2010</time></span></li> <li><span class="metadata date"></span><a class="post_title" href="/category/notes.html">plus d'articles </a>&nbsp;</li></ul>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/python-go-fr.html">Python ? go !</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2009-12-17T00:00:00+01:00">17 décembre 2009</time></span></li> </div>
<li style="background-image: url('') !important;"><span class="post"><a class="post_title" href="https://blog.notmyidea.org/amap-media-paniers-bio-a-5e-fr.html">AMAP + Média = Paniers bio à 5e ?!</a></span><span class="description"><span class="headline"></span><time class="created" datetime="2009-11-11T00:00:00+01:00">11 novembre 2009</time></span></li>
</ul>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Introducing Cornice - Carnets Web</title> <title>Introducing Cornice - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -79,154 +79,160 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="container content"> <div class="container content">
<div id="main" class="posts"> <div id="main" class="posts">
<h1 class="post-title">Introducing Cornice</h1> <h1 class="post-title">Introducing Cornice</h1>
<span class="post-date">12 juillet 2011</span> <span class="post-date">07 décembre 2011</span>
<img id="illustration" src="" /> <img id="illustration" src="" />
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>Wow, already my third working day at Mozilla. Since Monday, I've been working with
<a class="reference external" href="http://ziade.org">Tarek Ziadé</a>, on a pyramid REST-ish toolkit named <a class="reference external" href="https://github.com/mozilla-services/cornice">Cornice</a>.</p> <p>Wow, already my third working day at Mozilla. Since Monday, I've been
<p>Its goal is to take care for you of what you're usually missing so you can working with <a href="http://ziade.org">Tarek Ziadé</a>, on a pyramid REST-ish
focus on what's important. Cornice provides you facilities toolkit named <a href="https://github.com/mozilla-services/cornice">Cornice</a>.</p>
for validation of any kind.</p> <p>Its goal is to take care for you of what you're usually missing so you
<p>The goal is to simplify your work, but we don't want to reinvent the wheel, so can focus on what's important. Cornice provides you facilities for
it is easily pluggable with validations frameworks, such as <a class="reference external" href="http://docs.pylonsproject.org/projects/colander/en/latest/">Colander</a>.</p> validation of any kind.</p>
<div class="section" id="handling-errors-and-validation"> <p>The goal is to simplify your work, but we don't want to reinvent the
<h2>Handling errors and validation</h2> wheel, so it is easily pluggable with validations frameworks, such as
<a href="http://docs.pylonsproject.org/projects/colander/en/latest/">Colander</a>.</p>
<h2 id="handling-errors-and-validation">Handling errors and validation</h2>
<p>Here is how it works:</p> <p>Here is how it works:</p>
<div class="highlight"><pre><span></span><span class="n">service</span> <span class="o">=</span> <span class="n">Service</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">&quot;service&quot;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">&quot;/service&quot;</span><span class="p">)</span> <p>``` sourceCode python
service = Service(name="service", path="/service")</p>
<p>def is_awesome(request):
if not 'awesome' in request.GET:
request.errors.add('query', 'awesome',
'the awesome parameter is required')</p>
<p>@service.get(validator=is_awesome)
def get1(request):
return {"test": "yay!"}</p>
<div class="highlight"><pre><span></span><span class="nv">All</span> <span class="nv">the</span> <span class="nv">errors</span> <span class="nv">collected</span> <span class="nv">during</span> <span class="nv">the</span> <span class="nv">validation</span> <span class="nv">process</span>, <span class="nv">or</span> <span class="nv">after</span>, <span class="nv">are</span>
<span class="nv">collected</span> <span class="nv">before</span> <span class="nv">returning</span> <span class="nv">the</span> <span class="nv">request</span>. <span class="k">If</span> <span class="nv">any</span>, <span class="nv">a</span> <span class="nv">error</span> <span class="mi">400</span> <span class="nv">is</span> <span class="nv">fired</span> <span class="nv">up</span>,
<span class="nv">with</span> <span class="nv">the</span> <span class="nv">list</span> <span class="nv">of</span> <span class="nv">problems</span> <span class="nv">encountered</span> <span class="nv">returned</span> <span class="nv">as</span> <span class="nv">a</span> <span class="nv">nice</span> <span class="nv">json</span> <span class="nv">list</span>
<span class="nv">response</span> <span class="ss">(</span><span class="nv">we</span> <span class="nv">plan</span> <span class="nv">to</span> <span class="nv">support</span> <span class="nv">multiple</span> <span class="nv">formats</span> <span class="nv">in</span> <span class="nv">the</span> <span class="nv">future</span><span class="ss">)</span>
<span class="nv">As</span> <span class="nv">you</span> <span class="nv">might</span> <span class="nv">have</span> <span class="nv">seen</span>, <span class="nv">request</span>.<span class="nv">errors</span>.<span class="nv">add</span> <span class="nv">takes</span> <span class="nv">three</span> <span class="nv">parameters</span>:
<span class="o">**</span><span class="nv">location</span><span class="o">**</span>, <span class="o">**</span><span class="nv">name</span><span class="o">**</span> <span class="nv">and</span> <span class="o">**</span><span class="nv">description</span><span class="o">**</span>.
<span class="o">**</span><span class="nv">location</span><span class="o">**</span> <span class="nv">is</span> <span class="nv">where</span> <span class="nv">the</span> <span class="nv">error</span> <span class="nv">is</span> <span class="nv">located</span> <span class="nv">in</span> <span class="nv">the</span> <span class="nv">request</span>. <span class="nv">It</span> <span class="nv">can</span> <span class="nv">either</span>
<span class="nv">be</span> <span class="s2">&quot;</span><span class="s">body</span><span class="s2">&quot;</span>, <span class="s2">&quot;</span><span class="s">query</span><span class="s2">&quot;</span>, <span class="s2">&quot;</span><span class="s">headers</span><span class="s2">&quot;</span> <span class="nv">or</span> <span class="s2">&quot;</span><span class="s">path</span><span class="s2">&quot;</span>. <span class="o">**</span><span class="nv">name</span><span class="o">**</span> <span class="nv">is</span> <span class="nv">the</span> <span class="nv">name</span> <span class="nv">of</span> <span class="nv">the</span>
<span class="nv">variable</span> <span class="nv">causing</span> <span class="nv">problem</span>, <span class="k">if</span> <span class="nv">any</span>, <span class="nv">and</span> <span class="o">**</span><span class="nv">description</span><span class="o">**</span> <span class="nv">contains</span> <span class="nv">a</span> <span class="nv">more</span>
<span class="nv">detailed</span> <span class="nv">message</span>.
<span class="nv">Let</span><span class="s1">&#39;</span><span class="s">s run this simple service and send some queries to it:</span>
$ <span class="nv">curl</span> <span class="o">-</span><span class="nv">v</span> <span class="nv">http</span>:<span class="o">//</span><span class="mi">127</span>.<span class="mi">0</span>.<span class="mi">0</span>.<span class="mi">1</span>:<span class="mi">5000</span><span class="o">/</span><span class="nv">service</span>
<span class="o">&gt;</span> <span class="nv">GET</span> <span class="o">/</span><span class="nv">service</span> <span class="nv">HTTP</span><span class="o">/</span><span class="mi">1</span>.<span class="mi">1</span>
<span class="o">&gt;</span> <span class="nv">Host</span>: <span class="mi">127</span>.<span class="mi">0</span>.<span class="mi">0</span>.<span class="mi">1</span>:<span class="mi">5000</span>
<span class="o">&gt;</span> <span class="nv">Accept</span>: <span class="o">*/*</span>
<span class="o">&gt;</span>
<span class="o">*</span> <span class="nv">HTTP</span> <span class="mi">1</span>.<span class="mi">0</span>, <span class="nv">assume</span> <span class="nv">close</span> <span class="nv">after</span> <span class="nv">body</span>
<span class="o">&lt;</span> <span class="nv">HTTP</span><span class="o">/</span><span class="mi">1</span>.<span class="mi">0</span> <span class="mi">400</span> <span class="nv">Bad</span> <span class="nv">Request</span>
<span class="o">&lt;</span> <span class="nv">Content</span><span class="o">-</span><span class="nv">Type</span>: <span class="nv">application</span><span class="o">/</span><span class="nv">json</span><span class="c1">; charset=UTF-8</span>
[{<span class="s2">&quot;</span><span class="s">location</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">query</span><span class="s2">&quot;</span>, <span class="s2">&quot;</span><span class="s">name</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">awesome</span><span class="s2">&quot;</span>, <span class="s2">&quot;</span><span class="s">description</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">You lack awesomeness!</span><span class="s2">&quot;</span>}
<span class="nv">I</span><span class="s1">&#39;</span><span class="s">ve removed the extra clutter from the curl</span><span class="s1">&#39;</span><span class="nv">s</span> <span class="nv">output</span>, <span class="nv">but</span> <span class="nv">you</span> <span class="nv">got</span> <span class="nv">the</span>
<span class="nv">general</span> <span class="nv">idea</span>.
<span class="nv">The</span> <span class="nv">content</span> <span class="nv">returned</span> <span class="nv">is</span> <span class="nv">in</span> <span class="nv">JSON</span>, <span class="nv">and</span> <span class="nv">I</span> <span class="nv">know</span> <span class="nv">exactly</span> <span class="nv">what</span> <span class="nv">I</span> <span class="nv">have</span> <span class="nv">to</span> <span class="k">do</span>:
<span class="nv">add</span> <span class="nv">an</span> <span class="s2">&quot;</span><span class="s">awesome</span><span class="s2">&quot;</span> <span class="nv">parameter</span> <span class="nv">in</span> <span class="nv">my</span> <span class="nv">query</span>. <span class="nv">Let</span><span class="s1">&#39;</span><span class="s">s do it again:</span>
$ <span class="nv">curl</span> <span class="nv">http</span>:<span class="o">//</span><span class="mi">127</span>.<span class="mi">0</span>.<span class="mi">0</span>.<span class="mi">1</span>:<span class="mi">5000</span><span class="o">/</span><span class="nv">service</span>?<span class="nv">awesome</span><span class="o">=</span><span class="nv">yeah</span>
{<span class="s2">&quot;</span><span class="s">test</span><span class="s2">&quot;</span>: <span class="s2">&quot;</span><span class="s">yay!</span><span class="s2">&quot;</span>}
<span class="nv">Validators</span> <span class="nv">can</span> <span class="nv">also</span> <span class="nv">convert</span> <span class="nv">parts</span> <span class="nv">of</span> <span class="nv">the</span> <span class="nv">request</span> <span class="nv">and</span> <span class="nv">store</span> <span class="nv">the</span> <span class="nv">converted</span>
<span class="nv">value</span> <span class="nv">in</span> <span class="nv">request</span>.<span class="nv">validated</span>. <span class="nv">It</span> <span class="nv">is</span> <span class="nv">a</span> <span class="nv">standard</span> <span class="nv">dict</span> <span class="nv">automatically</span> <span class="nv">attached</span>
<span class="nv">to</span> <span class="nv">the</span> <span class="nv">requests</span>.
<span class="k">For</span> <span class="nv">instance</span>, <span class="nv">in</span> <span class="nv">our</span> <span class="nv">validator</span>, <span class="nv">we</span> <span class="nv">can</span> <span class="nv">chose</span> <span class="nv">to</span> <span class="nv">validate</span> <span class="nv">the</span> <span class="nv">parameter</span>
<span class="nv">passed</span> <span class="nv">and</span> <span class="nv">use</span> <span class="nv">it</span> <span class="nv">in</span> <span class="nv">the</span> <span class="nv">body</span> <span class="nv">of</span> <span class="nv">the</span> <span class="nv">webservice</span>:
``` <span class="nv">sourceCode</span> <span class="nv">python</span>
<span class="nv">service</span> <span class="o">=</span> <span class="nv">Service</span><span class="ss">(</span><span class="nv">name</span><span class="o">=</span><span class="s2">&quot;</span><span class="s">service</span><span class="s2">&quot;</span>, <span class="nv">path</span><span class="o">=</span><span class="s2">&quot;</span><span class="s">/service</span><span class="s2">&quot;</span><span class="ss">)</span>
<span class="k">def</span> <span class="nf">is_awesome</span><span class="p">(</span><span class="n">request</span><span class="p">):</span> <span class="nv">def</span> <span class="nv">is_awesome</span><span class="ss">(</span><span class="nv">request</span><span class="ss">)</span>:
<span class="k">if</span> <span class="ow">not</span> <span class="s1">&#39;awesome&#39;</span> <span class="ow">in</span> <span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="p">:</span> <span class="k">if</span> <span class="nv">not</span> <span class="s1">&#39;</span><span class="s">awesome</span><span class="s1">&#39;</span> <span class="nv">in</span> <span class="nv">request</span>.<span class="nv">GET</span>:
<span class="n">request</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s1">&#39;query&#39;</span><span class="p">,</span> <span class="s1">&#39;awesome&#39;</span><span class="p">,</span> <span class="nv">request</span>.<span class="nv">errors</span>.<span class="nv">add</span><span class="ss">(</span><span class="s1">&#39;</span><span class="s">query</span><span class="s1">&#39;</span>, <span class="s1">&#39;</span><span class="s">awesome</span><span class="s1">&#39;</span>,
<span class="s1">&#39;the awesome parameter is required&#39;</span><span class="p">)</span> <span class="s1">&#39;</span><span class="s">the awesome parameter is required</span><span class="s1">&#39;</span><span class="ss">)</span>
<span class="k">else</span>:
<span class="nv">request</span>.<span class="nv">validated</span>[<span class="s1">&#39;</span><span class="s">awesome</span><span class="s1">&#39;</span>] <span class="o">=</span> <span class="s1">&#39;</span><span class="s">awesome </span><span class="s1">&#39;</span> <span class="o">+</span> <span class="nv">request</span>.<span class="nv">GET</span>[<span class="s1">&#39;</span><span class="s">awesome</span><span class="s1">&#39;</span>]
<span class="nd">@service.get</span><span class="p">(</span><span class="n">validator</span><span class="o">=</span><span class="n">is_awesome</span><span class="p">)</span> @<span class="nv">service</span>.<span class="nv">get</span><span class="ss">(</span><span class="nv">validator</span><span class="o">=</span><span class="nv">is_awesome</span><span class="ss">)</span>
<span class="k">def</span> <span class="nf">get1</span><span class="p">(</span><span class="n">request</span><span class="p">):</span> <span class="nv">def</span> <span class="nv">get1</span><span class="ss">(</span><span class="nv">request</span><span class="ss">)</span>:
<span class="k">return</span> <span class="p">{</span><span class="s2">&quot;test&quot;</span><span class="p">:</span> <span class="s2">&quot;yay!&quot;</span><span class="p">}</span> <span class="k">return</span> {<span class="s2">&quot;</span><span class="s">test</span><span class="s2">&quot;</span>: <span class="nv">request</span>.<span class="nv">validated</span>[<span class="s1">&#39;</span><span class="s">awesome</span><span class="s1">&#39;</span>]}
</pre></div> </pre></div>
<p>All the errors collected during the validation process, or after, are collected
before returning the request. If any, a error 400 is fired up, with the list of
problems encountered returned as a nice json list response (we plan to support
multiple formats in the future)</p>
<p>As you might have seen, <cite>request.errors.add</cite> takes three parameters: <strong>location</strong>,
<strong>name</strong> and <strong>description</strong>.</p>
<p><strong>location</strong> is where the error is located in the request. It can either be &quot;body&quot;,
&quot;query&quot;, &quot;headers&quot; or &quot;path&quot;. <strong>name</strong> is the name of the variable causing
problem, if any, and <strong>description</strong> contains a more detailed message.</p>
<p>Let's run this simple service and send some queries to it:</p>
<pre class="literal-block">
$ curl -v http://127.0.0.1:5000/service
&gt; GET /service HTTP/1.1
&gt; Host: 127.0.0.1:5000
&gt; Accept: */*
&gt;
* HTTP 1.0, assume close after body
&lt; HTTP/1.0 400 Bad Request
&lt; Content-Type: application/json; charset=UTF-8
[{&quot;location&quot;: &quot;query&quot;, &quot;name&quot;: &quot;awesome&quot;, &quot;description&quot;: &quot;You lack awesomeness!&quot;}
</pre>
<p>I've removed the extra clutter from the curl's output, but you got the general idea.</p>
<p>The content returned is in JSON, and I know exactly what I have to do: add an
&quot;awesome&quot; parameter in my query. Let's do it again:</p>
<pre class="literal-block">
$ curl http://127.0.0.1:5000/service?awesome=yeah
{&quot;test&quot;: &quot;yay!&quot;}
</pre>
<p>Validators can also convert parts of the request and store the converted value
in <cite>request.validated</cite>. It is a standard dict automatically attached to the
requests.</p>
<p>For instance, in our validator, we can chose to validate the parameter passed
and use it in the body of the webservice:</p>
<div class="highlight"><pre><span></span><span class="n">service</span> <span class="o">=</span> <span class="n">Service</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s2">&quot;service&quot;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">&quot;/service&quot;</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">is_awesome</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="s1">&#39;awesome&#39;</span> <span class="ow">in</span> <span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="p">:</span>
<span class="n">request</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s1">&#39;query&#39;</span><span class="p">,</span> <span class="s1">&#39;awesome&#39;</span><span class="p">,</span>
<span class="s1">&#39;the awesome parameter is required&#39;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">request</span><span class="o">.</span><span class="n">validated</span><span class="p">[</span><span class="s1">&#39;awesome&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;awesome &#39;</span> <span class="o">+</span> <span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="p">[</span><span class="s1">&#39;awesome&#39;</span><span class="p">]</span>
<span class="nd">@service.get</span><span class="p">(</span><span class="n">validator</span><span class="o">=</span><span class="n">is_awesome</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">get1</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="k">return</span> <span class="p">{</span><span class="s2">&quot;test&quot;</span><span class="p">:</span> <span class="n">request</span><span class="o">.</span><span class="n">validated</span><span class="p">[</span><span class="s1">&#39;awesome&#39;</span><span class="p">]}</span>
</pre></div>
<p>The output would look like this:</p> <p>The output would look like this:</p>
<pre class="literal-block"> <div class="highlight"><pre><span></span><span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mi">127</span><span class="p">.</span><span class="mi">0</span><span class="p">.</span><span class="mi">0</span><span class="p">.</span><span class="mi">1</span><span class="p">:</span><span class="mi">5000</span><span class="o">/</span><span class="n">service</span><span class="o">?</span><span class="n">awesome</span><span class="o">=</span><span class="n">yeah</span>
curl http://127.0.0.1:5000/service?awesome=yeah <span class="err">{</span><span class="ss">&quot;test&quot;</span><span class="p">:</span> <span class="ss">&quot;awesome yeah&quot;</span><span class="err">}</span>
{&quot;test&quot;: &quot;awesome yeah&quot;}
</pre>
</div>
<div class="section" id="dealing-with-accept-headers">
<h2>Dealing with &quot;Accept&quot; headers</h2>
<p>The HTTP spec defines a <strong>Accept</strong> header the client can send so the response
is encoded the right way. A resource, available at an URL, can be available in
different formats. This is especially true for web services.</p>
<p>Cornice can help you dealing with this. The services you define can tell which
<cite>Content-Type</cite> values they can deal with and this will be checked against the
<strong>Accept</strong> headers sent by the client.</p>
<p>Let's refine a bit our previous example, by specifying which content-types are
supported, using the <cite>accept</cite> parameter:</p>
<div class="highlight"><pre><span></span><span class="nd">@service.get</span><span class="p">(</span><span class="n">validator</span><span class="o">=</span><span class="n">is_awesome</span><span class="p">,</span> <span class="n">accept</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;application/json&quot;</span><span class="p">,</span> <span class="s2">&quot;text/json&quot;</span><span class="p">))</span>
<span class="k">def</span> <span class="nf">get1</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="k">return</span> <span class="p">{</span><span class="s2">&quot;test&quot;</span><span class="p">:</span> <span class="s2">&quot;yay!&quot;</span><span class="p">}</span>
</pre></div> </pre></div>
<p>Now, if you specifically ask for XML, Cornice will throw a 406 with the list of
accepted <cite>Content-Type</cite> values:</p>
<pre class="literal-block"> <h2 id="dealing-with-accept-headers">Dealing with "Accept" headers</h2>
$ curl -vH &quot;Accept: application/xml&quot; http://127.0.0.1:5000/service <p>The HTTP spec defines a <strong>Accept</strong> header the client can send so the
&gt; GET /service HTTP/1.1 response is encoded the right way. A resource, available at an URL, can
&gt; Host: 127.0.0.1:5000 be available in different formats. This is especially true for web
&gt; Accept: application/xml services.</p>
&gt; <p>Cornice can help you dealing with this. The services you define can tell
&lt; HTTP/1.0 406 Not Acceptable which Content-Type values they can deal with and this will be checked
&lt; Content-Type: application/json; charset=UTF-8 against the <strong>Accept</strong> headers sent by the client.</p>
&lt; Content-Length: 33 <p>Let's refine a bit our previous example, by specifying which
&lt; content-types are supported, using the accept
[&quot;application/json&quot;, &quot;text/json&quot;] parameter:</p>
</pre> <p>``` sourceCode python
</div> @service.get(validator=is_awesome, accept=("application/json", "text/json"))
<div class="section" id="building-your-documentation-automatically"> def get1(request):
<h2>Building your documentation automatically</h2> return {"test": "yay!"}</p>
<p>writing documentation for web services can be painful, especially when your <div class="highlight"><pre><span></span><span class="nv">Now</span>, <span class="k">if</span> <span class="nv">you</span> <span class="nv">specifically</span> <span class="nv">ask</span> <span class="k">for</span> <span class="nv">XML</span>, <span class="nv">Cornice</span> <span class="nv">will</span> <span class="nv">throw</span> <span class="nv">a</span> <span class="mi">406</span> <span class="nv">with</span> <span class="nv">the</span>
services evolve. Cornice provides a sphinx directive to automatically document <span class="nv">list</span> <span class="nv">of</span> <span class="nv">accepted</span> <span class="nv">Content</span><span class="o">-</span><span class="nv">Type</span> <span class="nv">values</span>:
your API in your docs.</p>
<div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">services</span><span class="p">::</span> $ <span class="nv">curl</span> <span class="o">-</span><span class="nv">vH</span> <span class="s2">&quot;</span><span class="s">Accept: application/xml</span><span class="s2">&quot;</span> <span class="nv">http</span>:<span class="o">//</span><span class="mi">127</span>.<span class="mi">0</span>.<span class="mi">0</span>.<span class="mi">1</span>:<span class="mi">5000</span><span class="o">/</span><span class="nv">service</span>
<span class="nc">:package:</span> <span class="nf">coolapp</span> <span class="o">&gt;</span> <span class="nv">GET</span> <span class="o">/</span><span class="nv">service</span> <span class="nv">HTTP</span><span class="o">/</span><span class="mi">1</span>.<span class="mi">1</span>
<span class="nc">:service:</span> <span class="nf">quote</span> <span class="o">&gt;</span> <span class="nv">Host</span>: <span class="mi">127</span>.<span class="mi">0</span>.<span class="mi">0</span>.<span class="mi">1</span>:<span class="mi">5000</span>
<span class="o">&gt;</span> <span class="nv">Accept</span>: <span class="nv">application</span><span class="o">/</span><span class="nv">xml</span>
<span class="o">&gt;</span>
<span class="o">&lt;</span> <span class="nv">HTTP</span><span class="o">/</span><span class="mi">1</span>.<span class="mi">0</span> <span class="mi">406</span> <span class="nv">Not</span> <span class="nv">Acceptable</span>
<span class="o">&lt;</span> <span class="nv">Content</span><span class="o">-</span><span class="nv">Type</span>: <span class="nv">application</span><span class="o">/</span><span class="nv">json</span><span class="c1">; charset=UTF-8</span>
<span class="o">&lt;</span> <span class="nv">Content</span><span class="o">-</span><span class="nv">Length</span>: <span class="mi">33</span>
<span class="o">&lt;</span>
[<span class="s2">&quot;</span><span class="s">application/json</span><span class="s2">&quot;</span>, <span class="s2">&quot;</span><span class="s">text/json</span><span class="s2">&quot;</span>]
## <span class="nv">Building</span> <span class="nv">your</span> <span class="nv">documentation</span> <span class="nv">automatically</span>
<span class="nv">writing</span> <span class="nv">documentation</span> <span class="k">for</span> <span class="nv">web</span> <span class="nv">services</span> <span class="nv">can</span> <span class="nv">be</span> <span class="nv">painful</span>, <span class="nv">especially</span> <span class="nv">when</span>
<span class="nv">your</span> <span class="nv">services</span> <span class="nv">evolve</span>. <span class="nv">Cornice</span> <span class="nv">provides</span> <span class="nv">a</span> <span class="nv">sphinx</span> <span class="nv">directive</span> <span class="nv">to</span>
<span class="nv">automatically</span> <span class="nv">document</span> <span class="nv">your</span> <span class="nv">API</span> <span class="nv">in</span> <span class="nv">your</span> <span class="nv">docs</span>.
``` <span class="nv">sourceCode</span> <span class="nv">rst</span>
.. <span class="nv">services</span>::
:<span class="nv">package</span>: <span class="nv">coolapp</span>
:<span class="nv">service</span>: <span class="nv">quote</span>
</pre></div> </pre></div>
<p>Here is an example of what a generated page looks like: <a class="reference external" href="http://packages.python.org/cornice/exampledoc.html">http://packages.python.org/cornice/exampledoc.html</a></p>
</div>
<div class="section" id="yay-how-can-i-get-it"> <p>Here is an example of what a generated page looks like:
<h2>Yay! How can I get it?</h2> <a href="http://packages.python.org/cornice/exampledoc.html">http://packages.python.org/cornice/exampledoc.html</a></p>
<p>We just cut a 0.4 release, so it's available at <a class="reference external" href="http://pypi.python.org/pypi/cornice">http://pypi.python.org/pypi/cornice</a> <h2 id="yay33-how-can-i-get-it">Yay! How can I get it?</h2>
You can install it easily using <cite>pip</cite>, for instance:</p> <p>We just cut a 0.4 release, so it's available at
<pre class="literal-block"> <a href="http://pypi.python.org/pypi/cornice">http://pypi.python.org/pypi/cornice</a> You can install it easily using
$ pip install cornice pip, for instance:</p>
</pre> <div class="highlight"><pre><span></span>$ pip install cornice
</pre></div>
<p>You can also have a look at the documentation at <p>You can also have a look at the documentation at
<a class="reference external" href="http://packages.python.org/cornice/">http://packages.python.org/cornice/</a></p> <a href="http://packages.python.org/cornice/">http://packages.python.org/cornice/</a></p>
</div> <h2 id="whats-next">What's next?</h2>
<div class="section" id="what-s-next">
<h2>What's next?</h2>
<p>We try to make our best to find how Cornice can help you build better <p>We try to make our best to find how Cornice can help you build better
web services. Cool features we want for the future include the automatic web services. Cool features we want for the future include the automatic
publication of a static definition of the services, so it can be used by clients publication of a static definition of the services, so it can be used by
to discover services in a nice way.</p> clients to discover services in a nice way.</p>
<p>Of course, we are open to all your ideas and patches! If you feel haskish and <p>Of course, we are open to all your ideas and patches! If you feel
want to see the sources, <a class="reference external" href="https://github.com/mozilla-services/cornice">go grab them on github</a> haskish and want to see the sources, <a href="https://github.com/mozilla-services/cornice">go grab them on
, commit and send us a pull request!</p> github</a> , commit and send
</div> us a pull request!</p>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,10 +6,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>Introducing the distutils2 index crawlers - Carnets Web</title> <title>Introducing the distutils2 index crawlers - Alexis - Carnets en ligne</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Carnets Web Full Atom Feed" /> <link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/> <link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
@ -71,7 +71,7 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="masthead"> <div class="masthead">
<div class="container"> <div class="container">
<h3 class="masthead-title"> <h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Carnets Web</a> <a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3> </h3>
</div> </div>
</div> </div>
@ -84,131 +84,117 @@ styles, `#sidebar-checkbox` for behavior. -->
<div class="post article"> <div class="post article">
<h1>🌟</h1> <h1>🌟</h1>
<p>I'm working for about a month for distutils2, even if I was being a
bit busy (as I had some class courses and exams to work on)</p> <p>I'm working for about a month for distutils2, even if I was being a bit
<p>I'll try do sum-up my general feelings here, and the work I've made busy (as I had some class courses and exams to work on)</p>
so far. You can also find, if you're interested, my weekly <p>I'll try do sum-up my general feelings here, and the work I've made so
summaries in far. You can also find, if you're interested, my weekly summaries in <a href="http://wiki.notmyidea.org/distutils2_schedule">a
<a class="reference external" href="http://wiki.notmyidea.org/distutils2_schedule">a dedicated wiki page</a>.</p> dedicated wiki page</a>.</p>
<div class="section" id="general-feelings"> <h2 id="general-feelings">General feelings</h2>
<h2>General feelings</h2> <p>First, and it's a really important point, the GSoC is going very well,
<p>First, and it's a really important point, the GSoC is going very for me as for other students, at least from my perspective. It's a
well, for me as for other students, at least from my perspective. pleasure to work with such enthusiast people, as this make the global
It's a pleasure to work with such enthusiast people, as this make atmosphere very pleasant to live.</p>
the global atmosphere very pleasant to live.</p>
<p>First of all, I've spent time to read the existing codebase, and to <p>First of all, I've spent time to read the existing codebase, and to
understand what we're going to do, and what's the rationale to do understand what we're going to do, and what's the rationale to do so.</p>
so.</p> <p>It's really clear for me now: what we're building is the foundations of
<p>It's really clear for me now: what we're building is the a packaging infrastructure in python. The fact is that many projects
foundations of a packaging infrastructure in python. The fact is co-exists, and comes all with their good concepts. Distutils2 tries to
that many projects co-exists, and comes all with their good take the interesting parts of all, and to provide it in the python
concepts. Distutils2 tries to take the interesting parts of all, standard libs, respecting the recently written PEP about packaging.</p>
and to provide it in the python standard libs, respecting the <p>With distutils2, it will be simpler to make "things" compatible. So if
recently written PEP about packaging.</p> you think about a new way to deal with distributions and packaging in
<p>With distutils2, it will be simpler to make &quot;things&quot; compatible. So python, you can use the Distutils2 APIs to do so.</p>
if you think about a new way to deal with distributions and <h2 id="tasks">Tasks</h2>
packaging in python, you can use the Distutils2 APIs to do so.</p> <p>My main task while working on distutils2 is to provide an installation
</div> and an un-installation command, as described in PEP 376. For this, I
<div class="section" id="tasks"> first need to get informations about the existing distributions (what's
<h2>Tasks</h2> their version, name, metadata, dependencies, etc.)</p>
<p>My main task while working on distutils2 is to provide an <p>The main index, you probably know and use, is PyPI. You can access it at
installation and an un-installation command, as described in PEP <a href="http://pypi.python.org">http://pypi.python.org</a>.</p>
376. For this, I first need to get informations about the existing <h2 id="pypi-index-crawling">PyPI index crawling</h2>
distributions (what's their version, name, metadata, dependencies, <p>There is two ways to get these informations from PyPI: using the simple
etc.)</p> API, or via xml-rpc calls.</p>
<p>The main index, you probably know and use, is PyPI. You can access
it at <a class="reference external" href="http://pypi.python.org">http://pypi.python.org</a>.</p>
</div>
<div class="section" id="pypi-index-crawling">
<h2>PyPI index crawling</h2>
<p>There is two ways to get these informations from PyPI: using the
simple API, or via xml-rpc calls.</p>
<p>A goal was to use the version specifiers defined <p>A goal was to use the version specifiers defined
in`PEP 345 &lt;<a class="reference external" href="http://www.python.org/dev/peps/pep-0345/">http://www.python.org/dev/peps/pep-0345/</a>&gt;`_ and to in<a href="http://www.python.org/dev/peps/pep-0345/">PEP 345</a> and to provides a
provides a way to sort the grabbed distributions depending our way to sort the grabbed distributions depending our needs, to pick the
needs, to pick the version we want/need.</p> version we want/need.</p>
<div class="section" id="using-the-simple-api"> <h3 id="using-the-simple-api">Using the simple API</h3>
<h3>Using the simple API</h3>
<p>The simple API is composed of HTML pages you can access at <p>The simple API is composed of HTML pages you can access at
<a class="reference external" href="http://pypi.python.org/simple/">http://pypi.python.org/simple/</a>.</p> <a href="http://pypi.python.org/simple/">http://pypi.python.org/simple/</a>.</p>
<p>Distribute and Setuptools already provides a crawler for that, but <p>Distribute and Setuptools already provides a crawler for that, but it
it deals with their internal mechanisms, and I found that the code deals with their internal mechanisms, and I found that the code was not
was not so clear as I want, that's why I've preferred to pick up so clear as I want, that's why I've preferred to pick up the good ideas,
the good ideas, and some implementation details, plus re-thinking and some implementation details, plus re-thinking the global
the global architecture.</p> architecture.</p>
<p>The rules are simple: each project have a dedicated page, which <p>The rules are simple: each project have a dedicated page, which allows
allows us to get informations about:</p> us to get informations about:</p>
<ul class="simple"> <ul>
<li>the distribution download locations (for some versions)</li> <li>the distribution download locations (for some versions)</li>
<li>homepage links</li> <li>homepage links</li>
<li>some other useful informations, as the bugtracker address, for <li>some other useful informations, as the bugtracker address, for
instance.</li> instance.</li>
</ul> </ul>
<p>If you want to find all the distributions of the &quot;EggsAndSpam&quot; <p>If you want to find all the distributions of the "EggsAndSpam" project,
project, you could do the following (do not take so attention to you could do the following (do not take so attention to the names here,
the names here, as the API will probably change a bit):</p> as the API will probably change a bit):</p>
<div class="highlight"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="n">index</span> <span class="o">=</span> <span class="n">SimpleIndex</span><span class="p">()</span> <p>``` sourceCode python</p>
<span class="o">&gt;&gt;&gt;</span> <span class="n">index</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;EggsAndSpam&quot;</span><span class="p">)</span> <blockquote>
<span class="p">[</span><span class="n">EggsAndSpam</span> <span class="mf">1.1</span><span class="p">,</span> <span class="n">EggsAndSpam</span> <span class="mf">1.2</span><span class="p">,</span> <span class="n">EggsAndSpam</span> <span class="mf">1.3</span><span class="p">]</span> <blockquote>
</pre></div> <blockquote>
<p>We also could use version specifiers:</p> <p>index = SimpleIndex()
<div class="highlight"><pre><span></span><span class="o">&gt;&gt;&gt;</span> <span class="n">index</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;EggsAndSpam (&lt; =1.2)&quot;</span><span class="p">)</span> index.find("EggsAndSpam")
<span class="p">[</span><span class="n">EggsAndSpam</span> <span class="mf">1.1</span><span class="p">,</span> <span class="n">EggsAndSpam</span> <span class="mf">1.2</span><span class="p">]</span> [EggsAndSpam 1.1, EggsAndSpam 1.2, EggsAndSpam 1.3]</p>
</blockquote>
</blockquote>
</blockquote>
<div class="highlight"><pre><span></span><span class="n">We</span> <span class="n">also</span> <span class="n">could</span> <span class="n">use</span> <span class="k">version</span> <span class="n">specifiers</span><span class="p">:</span>
<span class="o">```</span> <span class="n">sourceCode</span> <span class="n">python</span>
<span class="o">&gt;&gt;&gt;</span> <span class="k">index</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="ss">&quot;EggsAndSpam (&lt; =1.2)&quot;</span><span class="p">)</span>
<span class="p">[</span><span class="n">EggsAndSpam</span> <span class="mi">1</span><span class="p">.</span><span class="mi">1</span><span class="p">,</span> <span class="n">EggsAndSpam</span> <span class="mi">1</span><span class="p">.</span><span class="mi">2</span><span class="p">]</span>
</pre></div> </pre></div>
<p>Internally, what's done here is the following:</p> <p>Internally, what's done here is the following:</p>
<ul class="simple"> <ul>
<li>it process the <li>it process the <a href="http://pypi.python.org/simple/FooBar/">http://pypi.python.org/simple/FooBar/</a> page,
<a class="reference external" href="http://pypi.python.org/simple/FooBar/">http://pypi.python.org/simple/FooBar/</a> searching for download URLs.</li>
page, searching for download URLs.</li>
<li>for each found distribution download URL, it creates an object, <li>for each found distribution download URL, it creates an object,
containing informations about the project name, the version and the containing informations about the project name, the version and the
URL where the archive remains.</li> URL where the archive remains.</li>
<li>it sort the found distributions, using version numbers. The <li>it sort the found distributions, using version numbers. The default
default behavior here is to prefer source distributions (over behavior here is to prefer source distributions (over binary ones),
binary ones), and to rely on the last &quot;final&quot; distribution (rather and to rely on the last "final" distribution (rather than beta,
than beta, alpha etc. ones)</li> alpha etc. ones)</li>
</ul> </ul>
<p>So, nothing hard or difficult here.</p> <p>So, nothing hard or difficult here.</p>
<p>We provides a bunch of other features, like relying on the new PyPI <p>We provides a bunch of other features, like relying on the new PyPI
mirroring infrastructure or filter the found distributions by some mirroring infrastructure or filter the found distributions by some
criterias. If you're curious, please browse the criterias. If you're curious, please browse the <a href="http://distutils2.notmyidea.org/">distutils2
<a class="reference external" href="http://distutils2.notmyidea.org/">distutils2 documentation</a>.</p> documentation</a>.</p>
</div> <h3 id="using-xml-rpc">Using xml-rpc</h3>
<div class="section" id="using-xml-rpc"> <p>We also can make some xmlrpc calls to retreive informations from PyPI.
<h3>Using xml-rpc</h3> It's a really more reliable way to get informations from from the index
<p>We also can make some xmlrpc calls to retreive informations from (as it's just the index that provides the informations), but cost
PyPI. It's a really more reliable way to get informations from from processes on the PyPI distant server.</p>
the index (as it's just the index that provides the informations),
but cost processes on the PyPI distant server.</p>
<p>For now, this way of querying the xmlrpc client is not available on <p>For now, this way of querying the xmlrpc client is not available on
Distutils2, as I'm working on it. The main pieces are already Distutils2, as I'm working on it. The main pieces are already present
present (I'll reuse some work I've made from the SimpleIndex (I'll reuse some work I've made from the SimpleIndex querying, and <a href="http://github.com/ametaireau/pypiclient">some
querying, and code already set up</a>), what I
<a class="reference external" href="http://github.com/ametaireau/pypiclient">some code already set up</a>), need to do is to provide a xml-rpc PyPI mock server, and that's on what
what I need to do is to provide a xml-rpc PyPI mock server, and I'm actually working on.</p>
that's on what I'm actually working on.</p> <h2 id="processes">Processes</h2>
</div> <p>For now, I'm trying to follow the "documentation, then test, then code"
</div> path, and that seems to be really needed while working with a community.
<div class="section" id="processes"> Code is hard to read/understand, compared to documentation, and it's
<h2>Processes</h2> easier to change.</p>
<p>For now, I'm trying to follow the &quot;documentation, then test, then <p>While writing the simple index crawling work, I must have done this to
code&quot; path, and that seems to be really needed while working with a avoid some changes on the API, and some loss of time.</p>
community. Code is hard to read/understand, compared to <p>Also, I've set up <a href="http://wiki.notmyidea.org/distutils2_schedule">a
documentation, and it's easier to change.</p> schedule</a>, and the goal
<p>While writing the simple index crawling work, I must have done this is to be sure everything will be ready in time, for the end of the
to avoid some changes on the API, and some loss of time.</p> summer. (And now, I need to learn to follow schedules ...)</p>
<p>Also, I've set up
<a class="reference external" href="http://wiki.notmyidea.org/distutils2_schedule">a schedule</a>, and
the goal is to be sure everything will be ready in time, for the
end of the summer. (And now, I need to learn to follow schedules
...)</p>
</div>
Vous pouvez également <a onclick="(function(){
let here = document.location;
document.location = `http://pdf.fivefilters.org/simple-print/url.php?size=A4#${here}`;
return false;
})();return false;">télécharger cet article en pdf</a>.
</div> </div>
</div> </div>
</div> </div>

Some files were not shown because too many files have changed in this diff Show more