mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 19:42:37 +02:00
Update documentation
This commit is contained in:
parent
5f3a54450b
commit
3e7beed054
62 changed files with 2041 additions and 1392 deletions
56
accueil-transmission-et-confiance.html
Normal file
56
accueil-transmission-et-confiance.html
Normal file
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Accueil, transmission et confiance - Alexis Métaireau</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/main.css" type="text/css" />
|
||||
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis Métaireau ATOM Feed" />
|
||||
</head>
|
||||
<body>
|
||||
<section id="links">
|
||||
<li>
|
||||
<a class="" href="https://blog.notmyidea.org/" id="site-title">Blog</a>
|
||||
</li>
|
||||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="post-title">Accueil, transmission et confiance</h1>
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
|
||||
|
||||
</header>
|
||||
<article>
|
||||
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons :</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des sujets de fond, pour progressivement changer l’équilibre dans mon métier ;</li>
|
||||
<li>J’ai désormais quelqu’une avec qui échanger sur les problématiques techniques du métier de livreur / commercial ;</li>
|
||||
</ul>
|
||||
<p>Mais cela me fait aussi peur : cela va nécessairement bousculer l’équilibre — parfois fragile — en place entre les associés actuels. Même si je vois cette évolution d’un bon œil, les transitions sont parfois difficiles.</p>
|
||||
<p>Ça me donne donc envie de construire une relation de confiance, et de donner les moyens à cette nouvelle arrivante de s’y retrouver.</p>
|
||||
<h2 id="transmission">Transmission</h2>
|
||||
<p>Cela me pose donc de nouvelles questions, autour de l’accueil et de la transmission.</p>
|
||||
<p>Il me semble que l’enjeu est de laisser une liberté d’action progressive pour mettre la personne en confiance, puis de réussir à « lâcher le bébé ».</p>
|
||||
<p>Mais il s’agit aussi de réussir à juger si la communication est aisée, et de ne pas nécessairement partir du principe que tout sera génial. C’est une relation de travail, pas une amitié.</p>
|
||||
<p>De son côté également il doit y avoir des questionnements. Je mets une attention particulière à les accueillir : les questionnement sont bienvenus, voir même attendus.</p>
|
||||
<p>Le pire pour moi serait d’avoir quelqu’un qui à peur de ne pas savoir, et qui dit qu’elle sait plutôt que de laisser la place pour l’apprentissage.</p>
|
||||
<h2 id="faire-confiance">Faire confiance</h2>
|
||||
<p>Il me semble qu’il peut exister deux types de confiance :</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p><em>Laisser la possibilité de se tromper</em> : il est possible de faire confiance à l’autre dans son apprentissage, pour qu’iel se sente légitime à faire <em>ses</em> choix, ceux qu’il⋅elle estimera les bons, et qui seront donc les bons — par définition ;</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>La <em>confiance relationnelle</em>, de l’ordre des relations inter-personnelles, de la relation à l’autre. Parce que c’est aussi une rencontre, et que je cherche à créer des relations de travail où l’on peut se dire les choses sans se blesser, en confiance donc.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</article>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -19,6 +19,10 @@
|
|||
</header>
|
||||
<section id="content" class="body">
|
||||
<dl>
|
||||
<dt>06 mai 2022</dt>
|
||||
<dd><a href='https://blog.notmyidea.org/fatigue-relationnelle.html'>Fatigue relationnelle</a></dd>
|
||||
<dt>01 mai 2022</dt>
|
||||
<dd><a href='https://blog.notmyidea.org/accueil-transmission-et-confiance.html'>Accueil, transmission et confiance</a></dd>
|
||||
<dt>11 novembre 2021</dt>
|
||||
<dd><a href='https://blog.notmyidea.org/conflit.html'>Conflit</a></dd>
|
||||
<dt>01 novembre 2021</dt>
|
||||
|
|
|
@ -43,7 +43,7 @@ PATH=.:\$PATH nc -w1 $(echo %h | sed 's/^.*+//;/:/!s/$/ %p/;s/:/ /')
|
|||
</code></pre></div>
|
||||
|
||||
<p>On peut donc spécifier des “sauts” ssh du style:</p>
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">ssh</span><span class="w"> </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><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Ensuite on peut essayer de rajouter:</p>
|
||||
|
|
22
author/.html
22
author/.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-01T00:00:00+01:00">01 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" id="page-title">Artfevre 2020 - Défi artistique en février</a></h1>
|
||||
En Février, il y a 29 Jours, et avec un ami on s’est dit qu’on aimerait bien utiliser chacun d’entre eux pour créer — de manière intensive et sans jugement — hors de notre zone de confort, et avec...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<section class="section index">
|
||||
<time datetime="2013-03-10T00:00:00+01:00">10 mars 2013</time>
|
||||
<h1><a href="https://blog.notmyidea.org/le-revenu-de-base.html" id="page-title">Le revenu de base</a></h1>
|
||||
Quelques notes prises en visualisant le documentaire “le revenu de base”. 4 Allemands sur 10 travaillent. 3/10 (les enfants et jeunes) 2/10 retraite / rente 1/10 assurance chomage / AS 41% sont le...
|
||||
<iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0" frameborder="0" allowfullscreen> Quelques notes prises en visualisant le documentaire “le revenu de base”. 4...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<section class="section index">
|
||||
<time datetime="2013-03-10T00:00:00+01:00">10 mars 2013</time>
|
||||
<h1><a href="https://blog.notmyidea.org/le-revenu-de-base.html" id="page-title">Le revenu de base</a></h1>
|
||||
Quelques notes prises en visualisant le documentaire “le revenu de base”. 4 Allemands sur 10 travaillent. 3/10 (les enfants et jeunes) 2/10 retraite / rente 1/10 assurance chomage / AS 41% sont le...
|
||||
<iframe width="560" height="315" src="http://www.youtube.com/embed/-cwdVDcm-Z0" frameborder="0" allowfullscreen> Quelques notes prises en visualisant le documentaire “le revenu de base”. 4...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2012-12-28T00:00:00+01:00">28 décembre 2012</time>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1>Réfléxions posts</h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/roles.html" id="page-title">Rôles</a></h1>
|
||||
Headline : De l’importance des rôles informels et de leur partage au sein d’un groupe. Un […] dispositif consiste à tenter de faire bouger les rôles (pré)acquis ou qui se fixent dans le groupe,...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2014-11-20T00:00:00+01:00">20 novembre 2014</time>
|
||||
<h1><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html" id="page-title">Le secret du bonheur</a></h1>
|
||||
Un enfant demande à son père : Dis papa, quel est le secret pour être heureux ? 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...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time>
|
||||
<h1><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html" id="page-title">Quel métier, quelle utilité ?</a></h1>
|
||||
Aujourd’hui, mon métier est d’être développeur d’applications. Imaginer des solutions techniques pour faire marcher des logiciels, puis écrire les lignes de code nécessaires. Être Développeur...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html" rel="bookmark" title="Permalink to Le secret du bonheur">Le secret du bonheur</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html" rel="bookmark" title="Permalink to Quel métier, quelle utilité ?">Quel métier, quelle utilité ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html" rel="bookmark" title="Permalink to Retours sur deux ans à Mozilla">Retours sur deux ans à Mozilla</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-carnets-desquisse.html" rel="bookmark" title="Permalink to Des carnets d’esquisse">Des carnets d’esquisse</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-profils-de-confiance-partout-et-pour-tout.html" rel="bookmark" title="Permalink to Des profils de confiance partout et pour tout ?">Des profils de confiance partout et pour tout ?</a></li>
|
||||
|
|
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1>Réfléxions posts</h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/roles.html" id="page-title">Rôles</a></h1>
|
||||
Headline : De l’importance des rôles informels et de leur partage au sein d’un groupe. Un […] dispositif consiste à tenter de faire bouger les rôles (pré)acquis ou qui se fixent dans le groupe,...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2014-11-20T00:00:00+01:00">20 novembre 2014</time>
|
||||
<h1><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html" id="page-title">Le secret du bonheur</a></h1>
|
||||
Un enfant demande à son père : Dis papa, quel est le secret pour être heureux ? 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...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2014-07-29T00:00:00+02:00">29 juillet 2014</time>
|
||||
<h1><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html" id="page-title">Quel métier, quelle utilité ?</a></h1>
|
||||
Aujourd’hui, mon métier est d’être développeur d’applications. Imaginer des solutions techniques pour faire marcher des logiciels, puis écrire les lignes de code nécessaires. Être Développeur...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html" rel="bookmark" title="Permalink to Le secret du bonheur">Le secret du bonheur</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html" rel="bookmark" title="Permalink to Quel métier, quelle utilité ?">Quel métier, quelle utilité ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html" rel="bookmark" title="Permalink to Retours sur deux ans à Mozilla">Retours sur deux ans à Mozilla</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-carnets-desquisse.html" rel="bookmark" title="Permalink to Des carnets d’esquisse">Des carnets d’esquisse</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-profils-de-confiance-partout-et-pour-tout.html" rel="bookmark" title="Permalink to Des profils de confiance partout et pour tout ?">Des profils de confiance partout et pour tout ?</a></li>
|
||||
|
|
86
category/reflexions3.html
Normal file
86
category/reflexions3.html
Normal file
|
@ -0,0 +1,86 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Réfléxions - Alexis Métaireau</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/main.css" type="text/css" />
|
||||
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis Métaireau ATOM Feed" />
|
||||
</head>
|
||||
<body>
|
||||
<section id="links">
|
||||
<li>
|
||||
<a class="" href="https://blog.notmyidea.org/" id="site-title">Blog</a>
|
||||
</li>
|
||||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1>Réfléxions posts</h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
J’ai pensé durant de nombreuses années que je savais gérer le conflit, alors que c’était en fait impensé. Ne pas être en conflit signifie parfois s’adapter aux autres, parfois ne pas (assez)...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-01T00:00:00+01:00">01 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/cooperation-et-travail.html" id="page-title">Coopération et travail</a></h1>
|
||||
Je parle souvent de coopération, que j’imagine comme « un fonctionnement collectif, dans lequel chacun⋅e y trouve son compte ». Or je me rends aujourd’hui compte que cette définition mets de côté...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-09-13T00:00:00+02:00">13 septembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/rentree.html" id="page-title">Rentrée</a></h1>
|
||||
Trois semaines de vacances m’ont fait le plus grand bien. Je suis toujours autant étonné par ma capacité à repousser mes limites quand je suis la tête dans le guidon, ce qui était le cas...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-05-08T00:00:00+02:00">08 mai 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/vaccination-et-risques.html" id="page-title">Vaccination et risques</a></h1>
|
||||
Je m’intéresse un peu tardivement a la question des différents vaccins, pour pouvoir mieux comprendre comment ceux cis fonctionnent et quels sont les risques liés. Cette réflexion n’est en aucun...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-26T00:00:00+01:00">26 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/facebook-competition-ethique-et-marketing.html" id="page-title">Facebook, compétition, éthique et marketing.</a></h1>
|
||||
En créant la brasserie du Vieux Singe, le fait de créer une page facebook s’est posé comme une évidence. Il s’agit de l’outil de facto pour communiquer avec son « audience ». J’ai donc créé une...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-01-21T00:00:00+01:00">21 janvier 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" id="page-title">Le piège du développement personnel</a></h1>
|
||||
Ces derniers temps, je me suis retrouvé à questionner mon rapport a la pratique du développement personnel. À quel point le celui ci, et la « psychologie positive » peuvent-elles jouer un rôle de...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2015-06-29T00:00:00+02:00">29 juin 2015</time>
|
||||
<h1><a href="https://blog.notmyidea.org/roles.html" id="page-title">Rôles</a></h1>
|
||||
Headline : De l’importance des rôles informels et de leur partage au sein d’un groupe. Un […] dispositif consiste à tenter de faire bouger les rôles (pré)acquis ou qui se fixent dans le groupe,...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html" rel="bookmark" title="Permalink to Le secret du bonheur">Le secret du bonheur</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html" rel="bookmark" title="Permalink to Quel métier, quelle utilité ?">Quel métier, quelle utilité ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html" rel="bookmark" title="Permalink to Retours sur deux ans à Mozilla">Retours sur deux ans à Mozilla</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-carnets-desquisse.html" rel="bookmark" title="Permalink to Des carnets d’esquisse">Des carnets d’esquisse</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-profils-de-confiance-partout-et-pour-tout.html" rel="bookmark" title="Permalink to Des profils de confiance partout et pour tout ?">Des profils de confiance partout et pour tout ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/les-dangers-du-livre-numerique.html" rel="bookmark" title="Permalink to Les dangers du livre numérique">Les dangers du livre numérique</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/quels-usages-pour-linformatique.html" rel="bookmark" title="Permalink to Quels usages pour l’informatique ?">Quels usages pour l’informatique ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler.html" rel="bookmark" title="Permalink to Travailler moins pour mieux travailler ?">Travailler moins pour mieux travailler ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html" rel="bookmark" title="Permalink to Fork you! or how the social coding can help you">Fork you! or how the social coding can help you</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante.html" rel="bookmark" title="Permalink to Semaine de l’environnement: La consommation étudiante">Semaine de l’environnement: La consommation étudiante</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/amap-media-paniers-bio-a-5e.html" rel="bookmark" title="Permalink to AMAP + Média = Paniers bio à 5e ?!"><span class="caps">AMAP</span> + Média = Paniers bio à 5e ?!</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
</body>
|
||||
</html>
|
40
drafts/acceleration.html
Normal file
40
drafts/acceleration.html
Normal file
|
@ -0,0 +1,40 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Accélération - Alexis Métaireau</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/main.css" type="text/css" />
|
||||
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis Métaireau ATOM Feed" />
|
||||
</head>
|
||||
<body>
|
||||
<section id="links">
|
||||
<li>
|
||||
<a class="" href="https://blog.notmyidea.org/" id="site-title">Blog</a>
|
||||
</li>
|
||||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="post-title">Accélération</h1>
|
||||
<time datetime="2022-04-05T00:00:00+02:00">05 avril 2022</time>
|
||||
|
||||
|
||||
</header>
|
||||
<article>
|
||||
|
||||
<p>J’ai l’impression d’avoir vécu une accélération assez incroyable ces dernières années. J’ai maintenant 36 ans et ces 5 dernières années sont passées à une vitesse folle.</p>
|
||||
<p>J’ai vécu plein de choses chouettes, rencontré des personnes extraordinaires et fait progresser ma vision des choses sur beaucoup d’aspects, <em>mais</em> j’ai aussi cette impression de vivre les choses avec une intensité moins importante.</p>
|
||||
<p>Je me demande si quelque part ce n’est pas une conséquence du fait de conscientiser mes privilèges (d’homme, de blanc, de classe aisée). Je me pose plus de questions et donc celles-ci viennent quelque part « parasiter » mon habitude précédente de « prendre les choses à la légère » (tout en écrasant les autres). </p>
|
||||
<p>Je trouve cette piste intéressante parce qu’elle vient visibiliser ces privilèges. C’est donc un privilège de ne pas se soucier de son impact sur les autres, par exemple (beurk).</p>
|
||||
<p>A noter aussi que je travaille trop (pour moi toujours est-il) et que je n’ai pas assez de temps libre pour prendre soin de mes passions/ami⋅es.</p>
|
||||
<p>C’est <a href="https://www.vieuxsinge.com/la-brasserie-du-vieux-singe-recrute.html">en cours d’évolution</a> mais je dois bien dire que je commence à tirer la langue, et je me demande si les changement que j’ai vécu à travers ce « trop de travail » ne m’ont pas endommagé de manière irréversible.</p>
|
||||
<p>L’avenir dira :-)</p>
|
||||
</article>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -46,35 +46,35 @@ $ gnome-background-generator -p ~/Images/walls -s
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a extract of the `—help`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span>
|
||||
<span class="o">$</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="o">--</span><span class="n">help</span>
|
||||
<span class="n">usage</span><span class="p">:</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span><span class="w"></span>
|
||||
<span class="o">$</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"></span>
|
||||
<span class="n">usage</span><span class="p">:</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span><span class="w"></span>
|
||||
|
||||
<span class="n">A</span> <span class="n">simple</span> <span class="n">command</span> <span class="n">line</span> <span class="k">tool</span> <span class="n">to</span> <span class="n">generate</span> <span class="n">an</span> <span class="n">XML</span> <span class="n">file</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">gnome</span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span> <span class="n">to</span> <span class="n">have</span> <span class="n">dynamic</span> <span class="n">walls</span>
|
||||
<span class="n">A</span><span class="w"> </span><span class="n">simple</span><span class="w"> </span><span class="n">command</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="k">tool</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">generate</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">XML</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">gnome</span><span class="w"></span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">have</span><span class="w"> </span><span class="n">dynamic</span><span class="w"> </span><span class="n">walls</span><span class="w"></span>
|
||||
|
||||
<span class="n">optional</span> <span class="n">arguments</span><span class="p">:</span>
|
||||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">show</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span>
|
||||
<span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">,</span> <span class="o">--</span><span class="n">path</span> <span class="n">PATH</span> <span class="n">Path</span> <span class="n">to</span> <span class="n">look</span> <span class="k">for</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">output</span> <span class="k">is</span>
|
||||
<span class="n">specified</span><span class="p">,</span> <span class="n">will</span> <span class="n">be</span> <span class="n">used</span> <span class="n">too</span> <span class="k">for</span> <span class="n">outputing</span> <span class="n">the</span> <span class="n">dynamic</span><span class="o">-</span>
|
||||
<span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span><span class="o">.</span> <span class="n">Default</span> <span class="n">value</span> <span class="k">is</span> <span class="n">the</span> <span class="n">current</span>
|
||||
<span class="n">directory</span> <span class="p">(</span><span class="o">.</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">,</span> <span class="o">--</span><span class="n">output</span> <span class="n">OUTPUT</span>
|
||||
<span class="n">Output</span> <span class="n">filename</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">filename</span> <span class="k">is</span> <span class="n">specified</span><span class="p">,</span> <span class="n">a</span>
|
||||
<span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span> <span class="n">will</span> <span class="n">be</span> <span class="n">generated</span> <span class="ow">in</span> <span class="n">the</span>
|
||||
<span class="n">path</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">You</span> <span class="n">can</span> <span class="n">also</span> <span class="n">use</span> <span class="s2">"-"</span> <span class="n">to</span>
|
||||
<span class="n">display</span> <span class="n">the</span> <span class="n">xml</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">stdout</span><span class="o">.</span>
|
||||
<span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span> <span class="n">TRANSITION_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">transitions</span> <span class="n">must</span> <span class="n">last</span> <span class="p">(</span><span class="n">default</span> <span class="n">value</span>
|
||||
<span class="k">is</span> <span class="mi">2</span> <span class="n">seconds</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span> <span class="n">DISPLAY_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">a</span> <span class="n">picture</span> <span class="n">must</span> <span class="n">be</span> <span class="n">displayed</span><span class="o">.</span> <span class="n">Default</span>
|
||||
<span class="n">value</span> <span class="k">is</span> <span class="mi">900</span> <span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">s</span><span class="p">,</span> <span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span> <span class="s1">'''try to set the background using gnome-appearance-</span>
|
||||
<span class="s1"> properties</span>
|
||||
<span class="s1"> -b, --debug</span>
|
||||
<span class="n">optional</span><span class="w"> </span><span class="n">arguments</span><span class="p">:</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">h</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"> </span><span class="n">show</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">exit</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">path</span><span class="w"> </span><span class="n">PATH</span><span class="w"> </span><span class="n">Path</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">look</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">output</span><span class="w"> </span><span class="k">is</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="n">too</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">outputing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">current</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">directory</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">output</span><span class="w"> </span><span class="n">OUTPUT</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Output</span><span class="w"> </span><span class="n">filename</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">generated</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">path</span><span class="w"> </span><span class="n">containing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</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="n">also</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s2">"-"</span><span class="w"> </span><span class="n">to</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">display</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">xml</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">stdout</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">transitions</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="p">(</span><span class="n">default</span><span class="w"> </span><span class="n">value</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">picture</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">displayed</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">900</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">s</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span><span class="w"> </span><span class="s1">'''try to set the background using gnome-appearance-</span><span class="w"></span>
|
||||
<span class="s1"> properties</span><span class="w"></span>
|
||||
<span class="s1"> -b, --debug</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
</article>
|
||||
|
||||
|
|
|
@ -122,16 +122,16 @@ terme, et que <em>Remote Storage</em> devienne une facette de notre solutio
|
|||
<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>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">db</span> <span class="o">=</span> <span class="n">new</span> <span class="n">PouchDB</span><span class="p">(</span><span class="s1">'dbname'</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new</span><span class="w"> </span><span class="n">PouchDB</span><span class="p">(</span><span class="s1">'dbname'</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span>
|
||||
<span class="n">_id</span><span class="p">:</span> <span class="s1">'dave@gmail.com'</span><span class="p">,</span>
|
||||
<span class="n">name</span><span class="p">:</span> <span class="s1">'David'</span><span class="p">,</span>
|
||||
<span class="n">age</span><span class="p">:</span> <span class="mi">68</span>
|
||||
<span class="p">});</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">_id</span><span class="p">:</span><span class="w"> </span><span class="s1">'dave@gmail.com'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="s1">'David'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">age</span><span class="p">:</span><span class="w"> </span><span class="mi">68</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">'http://example.com/mydb'</span><span class="p">);</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">'http://example.com/mydb'</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Le projet a le vent en poupe, bénéficie de nombreux contributeurs,
|
||||
|
|
39
fatigue-relationnelle.html
Normal file
39
fatigue-relationnelle.html
Normal file
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Fatigue relationnelle - Alexis Métaireau</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/main.css" type="text/css" />
|
||||
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis Métaireau ATOM Feed" />
|
||||
</head>
|
||||
<body>
|
||||
<section id="links">
|
||||
<li>
|
||||
<a class="" href="https://blog.notmyidea.org/" id="site-title">Blog</a>
|
||||
</li>
|
||||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<header>
|
||||
<h1 class="post-title">Fatigue relationnelle</h1>
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
|
||||
|
||||
</header>
|
||||
<article>
|
||||
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années.</p>
|
||||
<p>Je ne sais pas exactement d’où cela vient : si c’est un des nombreux effets psychologiques que le <span class="caps">COVID</span> à eu sur moi, si j’accorde trop de place aux collectifs dans ma vie (travail, habitation, ami⋅es), ou si simplement mes envies ne sont plus les mêmes qu’il y a quelques années, mais le résultat est bel et bien là.</p>
|
||||
<p>Malgré tout j’ai envie d’être disponible pour les personnes qui comptent pour moi, et je réfléchis donc à différentes solutions : déménager et habiter en solo, faire moins d’activités extérieures ou bien m’isoler plus souvent dans les espaces collectifs.</p>
|
||||
<p>Le fait de retourner potentiellement habiter en solo vient questionner mon rapport au collectif omniprésent dans ma vie, et qui jouit d’un statut particulier pour moi. Le collectif semble être quasiment un <em>objectif en soi</em>, et donc quelque-part partir de ces espaces collectifs serait une sorte d’échec.</p>
|
||||
<p>Entrouvrir cette possibilité me plaît parce-que ça me pousse à accepter mes limites et à mettre en balance ma qualité de relation aux autres avec mes valeurs collectivistes. Du collectif, oui, mais peut-être avec un mix différent ?</p>
|
||||
<p>Ça fait également écho à ma <a href="conflit.html">gestion du conflit</a>. Je me rends compte que j’ai besoin d’évoluer dans des collectifs qui partagent cette culture de la gestion du conflit (plutôt que de son évitement).</p>
|
||||
</article>
|
||||
|
||||
</body>
|
||||
</html>
|
467
feeds/.atom.xml
467
feeds/.atom.xml
|
@ -1,5 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2021-11-11T00:00:00+01:00</updated><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2022-05-06T00:00:00+02:00</updated><entry><title>Fatigue relationnelle</title><link href="https://blog.notmyidea.org/fatigue-relationnelle.html" rel="alternate"></link><published>2022-05-06T00:00:00+02:00</published><updated>2022-05-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-06:/fatigue-relationnelle.html</id><summary type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets …</p></summary><content type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets psychologiques que le <span class="caps">COVID</span> à eu sur moi, si j&#8217;accorde trop de place aux collectifs dans ma vie (travail, habitation, ami⋅es), ou si simplement mes envies ne sont plus les mêmes qu&#8217;il y a quelques années, mais le résultat est bel et bien&nbsp;là.</p>
|
||||
<p>Malgré tout j&#8217;ai envie d&#8217;être disponible pour les personnes qui comptent pour moi, et je réfléchis donc à différentes solutions : déménager et habiter en solo, faire moins d&#8217;activités extérieures ou bien m&#8217;isoler plus souvent dans les espaces&nbsp;collectifs.</p>
|
||||
<p>Le fait de retourner potentiellement habiter en solo vient questionner mon rapport au collectif omniprésent dans ma vie, et qui jouit d&#8217;un statut particulier pour moi. Le collectif semble être quasiment un <em>objectif en soi</em>, et donc quelque-part partir de ces espaces collectifs serait une sorte&nbsp;d&#8217;échec.</p>
|
||||
<p>Entrouvrir cette possibilité me plaît parce-que ça me pousse à accepter mes limites et à mettre en balance ma qualité de relation aux autres avec mes valeurs collectivistes. Du collectif, oui, mais peut-être avec un mix différent&nbsp;?</p>
|
||||
<p>Ça fait également écho à ma <a href="conflit.html">gestion du conflit</a>. Je me rends compte que j&#8217;ai besoin d&#8217;évoluer dans des collectifs qui partagent cette culture de la gestion du conflit (plutôt que de son&nbsp;évitement).</p></content><category term="Réfléxions"></category></entry><entry><title>Accueil, transmission et confiance</title><link href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" rel="alternate"></link><published>2022-05-01T00:00:00+02:00</published><updated>2022-05-01T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-01:/accueil-transmission-et-confiance.html</id><summary type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec …</li></ul></summary><content type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec qui échanger sur les problématiques techniques du métier de livreur / commercial&nbsp;;</li>
|
||||
</ul>
|
||||
<p>Mais cela me fait aussi peur : cela va nécessairement bousculer l&#8217;équilibre — parfois fragile — en place entre les associés actuels. Même si je vois cette évolution d&#8217;un bon œil, les transitions sont parfois&nbsp;difficiles.</p>
|
||||
<p>Ça me donne donc envie de construire une relation de confiance, et de donner les moyens à cette nouvelle arrivante de s&#8217;y&nbsp;retrouver.</p>
|
||||
<h2 id="transmission">Transmission</h2>
|
||||
<p>Cela me pose donc de nouvelles questions, autour de l&#8217;accueil et de la&nbsp;transmission.</p>
|
||||
<p>Il me semble que l&#8217;enjeu est de laisser une liberté d&#8217;action progressive pour mettre la personne en confiance, puis de réussir à « lâcher le bébé&nbsp;».</p>
|
||||
<p>Mais il s&#8217;agit aussi de réussir à juger si la communication est aisée, et de ne pas nécessairement partir du principe que tout sera génial. C&#8217;est une relation de travail, pas une&nbsp;amitié.</p>
|
||||
<p>De son côté également il doit y avoir des questionnements. Je mets une attention particulière à les accueillir : les questionnement sont bienvenus, voir même&nbsp;attendus.</p>
|
||||
<p>Le pire pour moi serait d&#8217;avoir quelqu&#8217;un qui à peur de ne pas savoir, et qui dit qu&#8217;elle sait plutôt que de laisser la place pour&nbsp;l&#8217;apprentissage.</p>
|
||||
<h2 id="faire-confiance">Faire&nbsp;confiance</h2>
|
||||
<p>Il me semble qu&#8217;il peut exister deux types de confiance&nbsp;:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p><em>Laisser la possibilité de se tromper</em> : il est possible de faire confiance à l&#8217;autre dans son apprentissage, pour qu&#8217;iel se sente légitime à faire <em>ses</em> choix, ceux qu&#8217;il⋅elle estimera les bons, et qui seront donc les bons — par définition&nbsp;;</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>La <em>confiance relationnelle</em>, de l&#8217;ordre des relations inter-personnelles, de la relation à l&#8217;autre. Parce que c&#8217;est aussi une rencontre, et que je cherche à créer des relations de travail où l&#8217;on peut se dire les choses sans se blesser, en confiance&nbsp;donc.</p>
|
||||
</li>
|
||||
</ol></content><category term="Réfléxions"></category></entry><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<p>J&#8217;ai pensé durant de nombreuses années que je savais gérer le conflit, alors que c&#8217;était en fait&nbsp;impensé.</p>
|
||||
<p>Ne pas être en conflit signifie parfois s&#8217;adapter aux autres, parfois ne pas (assez) s&#8217;écouter, et ne pas se faire&nbsp;entendre. </p>
|
||||
<p><strong>Alors que je pensais gérer le conflit …</strong></p></summary><content type="html">
|
||||
|
@ -1842,8 +1877,8 @@ obtenir le même résultat à partir de la même&nbsp;entrée.</p>
|
|||
une collection <span class="caps">JSON</span>. Chaque élément contient un identifiant unique généré sur
|
||||
le&nbsp;client.</p>
|
||||
<p>Par exemple, un enregistrement peut ressembler à&nbsp;:</p>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span> <span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span>
|
||||
<span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span> <span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Le <em>hash</em> de la collection est ensuite calculé, signé puis envoyé au serveur
|
||||
(voir plus bas pour les&nbsp;détails).</p>
|
||||
|
@ -2291,7 +2326,7 @@ des tests souvent&nbsp;!</p>
|
|||
</div>
|
||||
<p>Speaker:&nbsp;serge_sans_paille.</p>
|
||||
<p>Retour sur le passé des boucles: <span class="caps">ASM</span>, fortran, C. Avec <span class="caps">APL</span>, la boucle est
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait pas etre …</p></summary><content type="html"><div class="admonition note">
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait …</p></summary><content type="html"><div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N&#8217;hésitez pas
|
||||
à les completer si&nbsp;besoin.</p>
|
||||
|
@ -3013,7 +3048,7 @@ d&#8217;écriture sur une collection&nbsp;d&#8217;enregistrements.&l
|
|||
<li><strong>La synchronisation</strong> : une série de leviers pour récupérer et renvoyer des
|
||||
changements sur les données, sans perte ni collision, en utilisant les&nbsp;timestamps.</li>
|
||||
<li><strong>Les permissions</strong> : les droits d&#8217;un utilisateur sur une collection ou un enregistrement
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#id3" id="id1">[1]</a>.</li>
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</li>
|
||||
<li><strong>Opérations par lot</strong>: une <span class="caps">URL</span> qui permet d&#8217;envoyer une série de requêtes
|
||||
décrites en <span class="caps">JSON</span> et d&#8217;obtenir les réponses&nbsp;respectives.</li>
|
||||
</ul>
|
||||
|
@ -3035,17 +3070,17 @@ de <em>Firefox Sync</em> pour la gestion de la concurrence et de&
|
|||
<p>Il est <a class="reference external" href="http://cliquet.readthedocs.org/en/latest/api/index.html">documenté en détail</a>.</p>
|
||||
<p>Dans un monde idéal, ce protocole serait versionné, et formalisé dans une <span class="caps">RFC</span>.
|
||||
En rêve, il existerait même plusieurs implémentations avec des technologies différentes
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#id4" id="id2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="id3" rules="none">
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -3053,7 +3088,7 @@ En rêve, il existerait même plusieurs implémentations avec des technologies d
|
|||
<h2>Le&nbsp;toolkit</h2>
|
||||
<div class="section" id="choix-techniques">
|
||||
<h3>Choix&nbsp;techniques</h3>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#id6" id="id5">[3]</a>.</p>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a>.</p>
|
||||
<p><strong>Pyramid</strong> est un framework Web qui va prendre en charge tout la partie <span class="caps">HTTP</span>,
|
||||
et qui s&#8217;avère pertinent aussi bien pour des petits projets que des plus&nbsp;ambitieux.</p>
|
||||
<p><strong>Cornice</strong> est une extension de <em>Pyramid</em>, écrite en partie par Alexis et Tarek,
|
||||
|
@ -3066,10 +3101,10 @@ rigoureux, gérer les entêtes <span class="caps">CORS</span>, fourn
|
|||
<p><strong>Cliquet</strong> utilise les deux précédents pour implémenter le protocole et fournir
|
||||
des abstractions, mais on a toujours <em>Pyramid</em> et <em>Cornice</em> sous la main pour
|
||||
aller au delà de ce qui est proposé&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id5">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
(Flask), mais n&#8217;étions pas satisfaits de l&#8217;approche pour la configuration
|
||||
de l&#8217;<span class="caps">API</span>. En particulier du côté magique.</td></tr>
|
||||
</tbody>
|
||||
|
@ -3161,18 +3196,18 @@ avec <em>Colander</em>, et ensuite déclarer une&nbsp;resource:&
|
|||
<p>Désormais, la resource <span class="caps">CRUD</span> est disponible sur <tt class="docutils literal">/v1/bookmarks</tt>, avec toutes
|
||||
les fonctionnalités de synchronisation, filtrage, tri, pagination, timestamp, etc.
|
||||
De base les enregistrements sont privés, par&nbsp;utilisateur.</p>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span> <span class="err">h</span><span class="kc">tt</span><span class="err">p</span> <span class="err">GET</span> <span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span> <span class="mi">200</span> <span class="err">OK</span>
|
||||
<span class="err">...</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;data&quot;</span><span class="p">:</span> <span class="p">[</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;id&quot;</span><span class="p">:</span> <span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;last_modified&quot;</span><span class="p">:</span> <span class="mi">1437034418940</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span><span class="w"> </span><span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="w"> </span><span class="err">GET</span><span class="w"> </span><span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span><span class="w"></span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span><span class="w"> </span><span class="mi">200</span><span class="w"> </span><span class="err">OK</span><span class="w"></span>
|
||||
<span class="err">...</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;data&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;url&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;last_modified&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1437034418940</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">]</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="etape-3">
|
||||
|
@ -3463,7 +3498,7 @@ concept repose sur <a class="reference external" href="https://fr.wikipedia.o
|
|||
<a class="reference external" href="https://tools.ietf.org/html/draft-dejong-remotestorage-05">*Remote Storage*</a>,
|
||||
mais pour l&#8217;instant les cas d&#8217;utilisations ne se sont pas encore présentés&nbsp;officiellement.</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<div class="section" id="a-venir-1">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons probablement amenés à introduire la gestion de la concurrence dans
|
||||
le client <span class="caps">JS</span>, en complément de ce qui a été fait sur le serveur, pour permettre
|
||||
|
@ -3478,17 +3513,17 @@ que <a class="reference external" href="https://github.com/mozilla-services/k
|
|||
<h2>Contenus applicatifs de&nbsp;Firefox</h2>
|
||||
<p>Aujourd&#8217;hui Firefox a un cycle de release de six semaines. Un des objectifs
|
||||
consiste à désolidariser certains contenus applicatifs de ces cycles
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#id4" id="id3">[1]</a>.</p>
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</p>
|
||||
<p>Il s&#8217;agit de données <span class="caps">JSON</span> et binaire qui doivent être versionnées et synchronisées par
|
||||
les navigateurs (<em>lecture seule</em>).</p>
|
||||
<p>Il y a plusieurs outils officiels qui existent pour gérer ça (<em>Balrog</em>, <em>Shavar</em>, &#8230;),
|
||||
et pour l&#8217;instant, aucun choix n&#8217;a été fait. Mais lors des conversations avec
|
||||
l&#8217;équipe en charge du projet, ce fût vraiment motivant de voir que même pour
|
||||
ce genre de besoins internes, <em>Kinto</em> est tout aussi pertinent&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
été intégrées récemment vont redevenir des <em>add-ons</em> \o/.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -3502,7 +3537,7 @@ un prototype pour améliorer <em>Awesome bar</em>, qui fusionnerait
|
|||
<p>Nous ne pouvons pas en dire beaucoup plus pour l&#8217;instant, mais les fonctionnalités
|
||||
de collections d&#8217;enregistrements partagées entre utilisateurs de <em>Kinto</em>
|
||||
correspondent parfaitement à ce qui est envisagé pour le futur du navigateur&nbsp;:)</p>
|
||||
<div class="section" id="id5">
|
||||
<div class="section" id="a-venir-2">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons donc probablement amenés, avant de la fin de l&#8217;année, à introduire des
|
||||
fonctionnalités d&#8217;indexation et de recherche <em>full-text</em> (comprendre <em>ElasticSearch</em>).
|
||||
|
@ -3524,7 +3559,7 @@ ou un équivalent à <em>Alexa.com Top 500</em> pour fournir la comp
|
|||
interroger le moteur de&nbsp;recherche.</p>
|
||||
<p>L&#8217;exercice pourrait être poussé jusqu&#8217;à la synchronisation d&#8217;états <em>React</em>
|
||||
entre périphériques (par exemple pour les&nbsp;onglets).</p>
|
||||
<div class="section" id="id7">
|
||||
<div class="section" id="a-venir-3">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Si <em>browser.html</em> doit stocker des données de navigation, il faudra ajouter
|
||||
des fonctionnalités de chiffrement sur le client <span class="caps">JS</span>. Ça tombe bien, c&#8217;est un
|
||||
|
@ -3685,7 +3720,7 @@ du&nbsp;sens.</p></content><category term="Réfléxions"></category></
|
|||
et Kinto 1.0&nbsp;!</p>
|
||||
</summary><content type="html"><p><em>Cet article est repris depuis le blog « Service de Nuages » de mon équipe à&nbsp;Mozilla</em></p>
|
||||
<p>Aujourd&#8217;hui, c&#8217;est jour de fête : nous venons de publier Cliquet <strong>2.0</strong>
|
||||
<a class="footnote-reference" href="#id5" id="id1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#id6" id="id2">[2]</a>.</p>
|
||||
<a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a>.</p>
|
||||
<blockquote class="epigraph">
|
||||
<p>L&#8217;aboutissement de 3 années de R&amp;D&nbsp;!</p>
|
||||
<p class="attribution">&mdash;Rémy</p>
|
||||
|
@ -3706,7 +3741,7 @@ fonctionnalités que l&#8217;on attendait depuis longtemps, comme la gestion
|
|||
s&#8217;empêcher de voir toutes les choses qui doivent toujours être améliorées,
|
||||
notamment sur la documentation et les&nbsp;performances.</p>
|
||||
<p>On peut déjà entrevoir à quoi l&#8217;écosystème va ressembler, et c&#8217;est prometteur.
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#id7" id="id3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
données locales du navigateur avec une instance de&nbsp;Kinto.</p>
|
||||
<p>N&#8217;hésitez vraiment pas à nous solliciter pour discuter avec vous si vous avez
|
||||
des problématiques proches : nous accueillons avec plaisir toutes sortes de
|
||||
|
@ -3715,34 +3750,34 @@ la solution ou de la manière de communiquer avec le monde extérieur. Si vous
|
|||
souhaitez nous contacter, vous pouvez laisser un commentaire ici ou nous
|
||||
contacter sur le canal <a class="reference external" href="irc://irc.mozilla.org/#storage">#storage</a> sur le réseau <span class="caps">IRC</span> de&nbsp;Mozilla.</p>
|
||||
<p>Et ce n&#8217;est que le début ! Le futur se dessine dans notre feuille de route
|
||||
<a class="footnote-reference" href="#id8" id="id4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="id5" rules="none">
|
||||
<a class="footnote-reference" href="#footnote-4" id="footnote-reference-4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
microservices <span class="caps">HTTP</span> tels que les APIs <em><span class="caps">REST</span></em> ayant des besoins de
|
||||
synchronisation.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
arbitraires, attachées à un compte Firefox (mais le système d&#8217;authentification
|
||||
est <em>pluggable</em>).</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id7" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<a class="reference external" href="https://github.com/mozilla-services/cliquetis">https://github.com/mozilla-services/cliquetis</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id8" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-4" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</content><category term="Technologie"></category></entry><entry><title>Service de nuages : Stocker et interroger les permissions avec Kinto</title><link href="https://blog.notmyidea.org/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html" rel="alternate"></link><published>2015-05-26T00:00:00+02:00</published><updated>2015-05-26T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2015-05-26:/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html</id><summary type="html"><p class="first last">Comment faire pour stocker et interroger la base de données au sujet des permissions avec Kinto&nbsp;?</p>
|
||||
|
@ -3858,13 +3893,13 @@ avantages (lisibilité, unicité, cohérence avec les&nbsp;URLs)</p>
|
|||
<div class="section" id="les-tables">
|
||||
<h3>Les&nbsp;tables</h3>
|
||||
<p>Pour le stockage des principals et des&nbsp;permissions:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">user</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">perms</span><span class="p">(</span><span class="n">ace</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">user</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">perms</span><span class="p">(</span><span class="n">ace</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La table <em>perms</em> va associer des <em>principals</em> à chaque <em><span class="caps">ACE</span></em>&nbsp;(e.g.&#8220;/buckets/blog:write&#8220;).</p>
|
||||
<p>Pour le stockage des&nbsp;données:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">object</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">type</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">parent_id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">data</span> <span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="n">write_principals</span> <span class="nb">TEXT</span><span class="p">[],</span> <span class="n">read_principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">object</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">write_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[],</span><span class="w"> </span><span class="n">read_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La colonne <em>parent_id</em> permet de savoir à qui appartient l&#8217;objet
|
||||
(e.g. groupe d&#8217;un <em>bucket</em>, collection d&#8217;un <em>bucket</em>, <em>record</em> d&#8217;une
|
||||
|
@ -3872,53 +3907,53 @@ collection,&nbsp;&#8230;).</p>
|
|||
</div>
|
||||
<div class="section" id="exemple-d-utilisateur">
|
||||
<h3>Exemple&nbsp;d&#8217;utilisateur</h3>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="exemple-d-objets">
|
||||
<h3>Exemple&nbsp;d&#8217;objets</h3>
|
||||
<div class="section" id="bucket">
|
||||
<h4>Bucket</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;bucket&#39;</span><span class="p">,</span>
|
||||
<span class="k">NULL</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;bucket&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="group">
|
||||
<h4>Group</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;group&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;group&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Ce groupe peut être gére par <tt class="docutils literal">fxa:alexis</tt> puisqu&#8217;il a la permission
|
||||
<tt class="docutils literal">write</tt> dans le <em>bucket</em>&nbsp;parent.</p>
|
||||
</div>
|
||||
<div class="section" id="collection">
|
||||
<h4>Collection</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;collection&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;collection&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Cette collection d&#8217;articles peut être lue par tout le monde,
|
||||
et gérée par les membres du groupe <tt class="docutils literal">moderators</tt>, ainsi que
|
||||
|
@ -3926,56 +3961,56 @@ et gérée par les membres du groupe <tt class="docutils literal">moderato
|
|||
</div>
|
||||
<div class="section" id="records">
|
||||
<h4>Records</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;record&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="interroger-les-permissions">
|
||||
<h3>Interroger les&nbsp;permissions</h3>
|
||||
<div class="section" id="id1">
|
||||
<div class="section" id="obtenir-la-liste-des-principals-d-un-ace-1">
|
||||
<h4>Obtenir la liste des &#8220;principals&#8221; d&#8217;un <span class="caps">ACE</span></h4>
|
||||
<p>Comme vu plus haut, pour vérifier une permission, on fait l&#8217;union des
|
||||
<em>principals</em> requis par les objets hérités, et on teste leur
|
||||
intersection avec ceux de&nbsp;l&#8217;utilisateur:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span> <span class="n">required_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span> <span class="k">AS</span> <span class="n">p</span>
|
||||
<span class="k">FROM</span> <span class="n">perms</span>
|
||||
<span class="k">WHERE</span> <span class="n">ace</span> <span class="k">IN</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span>
|
||||
<span class="p">),</span>
|
||||
<span class="n">user_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="k">user</span>
|
||||
<span class="k">WHERE</span> <span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">SELECT</span> <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="n">user_principals</span> <span class="n">a</span>
|
||||
<span class="k">INNER</span> <span class="k">JOIN</span> <span class="n">required_principals</span> <span class="n">b</span>
|
||||
<span class="k">ON</span> <span class="n">a</span><span class="p">.</span><span class="n">p</span> <span class="o">=</span> <span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">p</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">perms</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">ace</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">),</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">user</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="n">b</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="filtrer-les-objets-en-fonction-des-permissions">
|
||||
<h4>Filtrer les objets en fonction des&nbsp;permissions</h4>
|
||||
<p>Pour filtrer les objets, on fait une simple intersection de liste
|
||||
(<em>merci PostgreSQL</em>):</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="k">data</span>
|
||||
<span class="k">FROM</span> <span class="k">object</span> <span class="n">o</span><span class="p">,</span> <span class="k">user</span> <span class="n">u</span>
|
||||
<span class="k">WHERE</span> <span class="n">o</span><span class="p">.</span><span class="k">type</span> <span class="o">=</span> <span class="s1">&#39;record&#39;</span>
|
||||
<span class="k">AND</span> <span class="n">o</span><span class="p">.</span><span class="n">parent_id</span> <span class="o">=</span> <span class="s1">&#39;/buckets/blog/collections/article&#39;</span>
|
||||
<span class="k">AND</span> <span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span> <span class="k">OR</span>
|
||||
<span class="n">o</span><span class="p">.</span><span class="n">write_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">AND</span> <span class="n">u</span><span class="p">.</span><span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">data</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="n">o</span><span class="p">,</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">u</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="k">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">parent_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="w"> </span><span class="k">OR</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">write_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Les listes s&#8217;indexent bien, notamment grâce aux <a class="reference external" href="http://www.postgresql.org/docs/current/static/indexes-types.html">index <span class="caps">GIN</span></a>.</p>
|
||||
</div>
|
||||
|
@ -4421,7 +4456,7 @@ une réponse satisfaisante à ces&nbsp;besoins.</p>
|
|||
<div class="section" id="le-concept-de-principal">
|
||||
<h3>Le concept de « principal&nbsp;»</h3>
|
||||
<p>Un <em>principal</em>, en sécurité informatique, est une entité qui peut être
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#id2" id="id1">[1]</a> En Français il s&#8217;agit
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> En Français il s&#8217;agit
|
||||
du « commettant », l&#8217;acteur qui commet l&#8217;action (oui, le terme est conceptuel&nbsp;!)</p>
|
||||
<p>Il peut s&#8217;agir aussi bien d&#8217;un individu, d&#8217;un ordinateur, d&#8217;un
|
||||
service ou d&#8217;un groupe regroupant l&#8217;une de ces entités, ce qui
|
||||
|
@ -4430,10 +4465,10 @@ est plus large que le classique « <em>user id</em>&nbsp;».<
|
|||
<p>Par exemple, un utilisateur est identifié de manière unique lors de la
|
||||
connexion par le système d&#8217;authentification dont le rôle est de
|
||||
définir une liste de <em>principals</em> pour l&#8217;utilisateur se&nbsp;connectant.</p>
|
||||
<table class="docutils footnote" frame="void" id="id2" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<a class="reference external" href="https://en.wikipedia.org/wiki/Principal_%28computer_security%29">https://en.wikipedia.org/wiki/Principal_%28computer_security%29</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -4442,17 +4477,17 @@ définir une liste de <em>principals</em> pour l&#8217;utilisate
|
|||
<h3>La différence entre rôle et&nbsp;groupe</h3>
|
||||
<p>De but en blanc, il n&#8217;est pas évident de définir précisément la
|
||||
différence entre ces deux concepts qui permettent d&#8217;associer
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#id4" id="id3">[2]</a></p>
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<p>La différence est principalement sémantique. Mais on peut y voir une
|
||||
différence dans la « direction » de la relation entre les deux&nbsp;concepts.</p>
|
||||
<ul class="simple">
|
||||
<li>Un rôle est une liste de permissions que l&#8217;on associe à un <em>principal</em>.</li>
|
||||
<li>Un groupe est une liste de <em>principals</em> que l&#8217;on peut associer à une&nbsp;permission.</li>
|
||||
</ul>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<a class="reference external" href="http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference">http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -5099,16 +5134,16 @@ terme, et que <em>Remote Storage</em> devienne une facette de notre&
|
|||
<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&nbsp;distante.</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">db</span> <span class="o">=</span> <span class="n">new</span> <span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new</span><span class="w"> </span><span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span>
|
||||
<span class="n">_id</span><span class="p">:</span> <span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span>
|
||||
<span class="n">name</span><span class="p">:</span> <span class="s1">&#39;David&#39;</span><span class="p">,</span>
|
||||
<span class="n">age</span><span class="p">:</span> <span class="mi">68</span>
|
||||
<span class="p">});</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">_id</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;David&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">age</span><span class="p">:</span><span class="w"> </span><span class="mi">68</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Le projet a le vent en poupe, bénéficie de nombreux contributeurs,
|
||||
|
@ -5575,33 +5610,33 @@ on the server (so you don&#8217;t need to store&nbsp;anything).</p>
|
|||
finally came up factorizing everything in a library for express, named
|
||||
<a href="https://github.com/mozilla-services/express-hawkauth">express-hawkauth</a>.</p>
|
||||
<p>In order to plug it in your application, you&#8217;ll need to use it as a&nbsp;middleware:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">express</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span>
|
||||
<span class="k">var</span> <span class="n">hawk</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">express</span><span class="p">();</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">express</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">express</span><span class="p">();</span><span class="w"></span>
|
||||
|
||||
<span class="k">var</span> <span class="n">hawkMiddleware</span> <span class="o">=</span> <span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span>
|
||||
<span class="n">hawkOptions</span><span class="p">:</span> <span class="p">{},</span>
|
||||
<span class="n">getSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="k">pass</span> <span class="n">to</span> <span class="n">the</span> <span class="n">cb</span> <span class="n">the</span> <span class="n">key</span> <span class="ow">and</span> <span class="n">algorithm</span> <span class="k">for</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">given</span> <span class="n">token</span> <span class="n">id</span><span class="o">.</span> <span class="n">First</span> <span class="n">argument</span> <span class="n">of</span> <span class="n">the</span> <span class="n">callback</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span>
|
||||
<span class="o">//</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="s2">&quot;key&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">:</span> <span class="s2">&quot;sha256&quot;</span><span class="p">});</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">createSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="n">stores</span> <span class="n">a</span> <span class="n">session</span> <span class="k">for</span> <span class="n">the</span> <span class="n">given</span> <span class="n">id</span> <span class="ow">and</span> <span class="n">key</span><span class="o">.</span>
|
||||
<span class="o">//</span> <span class="n">Argument</span> <span class="n">returned</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">setUser</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">that</span> <span class="n">uses</span> <span class="n">req</span> <span class="ow">and</span> <span class="n">res</span><span class="p">,</span> <span class="n">the</span> <span class="n">hawkId</span> <span class="n">when</span> <span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="o">//</span> <span class="n">that</span> <span class="n">it</span> <span class="n">can</span> <span class="n">tweak</span> <span class="n">it</span><span class="o">.</span> <span class="n">For</span> <span class="n">instance</span><span class="p">,</span> <span class="n">you</span> <span class="n">can</span> <span class="n">store</span> <span class="n">the</span> <span class="n">tokenId</span> <span class="k">as</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">user</span><span class="o">.</span>
|
||||
<span class="n">req</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">tokenId</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">hawkOptions</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">getSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="k">pass</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">cb</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">algorithm</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">token</span><span class="w"> </span><span class="n">id</span><span class="o">.</span><span class="w"> </span><span class="n">First</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">callback</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="n">key</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;key&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">algorithm</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;sha256&quot;</span><span class="p">});</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">createSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="n">stores</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">session</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">key</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">Argument</span><span class="w"> </span><span class="n">returned</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">setUser</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">uses</span><span class="w"> </span><span class="n">req</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">hawkId</span><span class="w"> </span><span class="n">when</span><span class="w"> </span><span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">tweak</span><span class="w"> </span><span class="n">it</span><span class="o">.</span><span class="w"> </span><span class="n">For</span><span class="w"> </span><span class="n">instance</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="n">store</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">tokenId</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">user</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">req</span><span class="o">.</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tokenId</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span> <span class="n">hawkMiddleware</span><span class="p">);</span>
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>If you pass the createSession parameter, all non-authenticated requests
|
||||
|
@ -6622,8 +6657,8 @@ ailleurs, pour finalement déployer la chose chez
|
|||
<p>Après quelques péripéties, j&#8217;ai réussi à faire tourner le tout, ça à été
|
||||
un peu la bataille au départ pour installer virtualenv (j&#8217;ai du faire
|
||||
des changements dans mon <span class="caps">PATH</span> pour que ça puisse marcher), voici mon&nbsp;`.bash_profile`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span> <span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span>
|
||||
<span class="k">export</span> <span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span><span class="w"></span>
|
||||
<span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Et après y&#8217;a plus qu&#8217;à installer avec&nbsp;`easy_install`:</p>
|
||||
|
@ -6723,7 +6758,7 @@ PATH=.:\$PATH nc -w1 $(echo %h | sed &#39;s/^.*+//;/:/!s/$/ %p/;s/:/ /&#
|
|||
</code></pre></div>
|
||||
|
||||
<p>On peut donc spécifier des &#8220;sauts&#8221; ssh du&nbsp;style:</p>
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">ssh</span><span class="w"> </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><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Ensuite on peut essayer de&nbsp;rajouter:</p>
|
||||
|
@ -6808,7 +6843,7 @@ décembre&nbsp;2012:</p>
|
|||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
<p>Les états ont crée la propriété interellectuelle pour relancer
|
||||
l&#8217;industrie après les dégats de la guerre et les …</p></summary><content type="html">
|
||||
l&#8217;industrie après les dégats de la guerre …</p></summary><content type="html">
|
||||
<p><a href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed">http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed</a></p>
|
||||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
|
@ -8657,16 +8692,16 @@ $ ant
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a simple example of how to use boilerpipe in Java, from their&nbsp;sources</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span> <span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">java.net.URL</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">java.net.URL</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Oneliner</span> <span class="p">{</span>
|
||||
<span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="p">(</span><span class="kd">final</span> <span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="p">{</span>
|
||||
<span class="kd">final</span> <span class="n">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span>
|
||||
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Oneliner</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="kd">final</span><span class="w"> </span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">URL</span><span class="w"> </span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>To run&nbsp;it:</p>
|
||||
|
@ -9030,14 +9065,14 @@ unison .vimrc ssh://notmyidea.org:20006/.vimrc
|
|||
<p>It is also possible to put all the informations in a config file, and
|
||||
then to only run unison. (fire up vim&nbsp;\~/.unison/default.prf.</p>
|
||||
<p>Here is my&nbsp;config:</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="na">root</span> <span class="o">=</span> <span class="s">/home/alexis</span>
|
||||
<span class="na">root</span> <span class="o">=</span> <span class="s">ssh://notmyidea.org:20006</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">/home/alexis</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">ssh://notmyidea.org:20006</span><span class="w"></span>
|
||||
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">.vimrc</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dotfiles</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dev</span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">.vimrc</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dotfiles</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dev</span><span class="w"></span>
|
||||
|
||||
<span class="na">follow</span> <span class="o">=</span> <span class="s">Name *</span>
|
||||
<span class="w"> </span><span class="na">follow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">Name *</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>My vimrc is in fact a symbolic link on my laptop, but I don&#8217;t want to
|
||||
|
@ -9465,35 +9500,35 @@ $ gnome-background-generator -p ~/Images/walls -s
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a extract of the&nbsp;`&#8212;help`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span>
|
||||
<span class="o">$</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="o">--</span><span class="n">help</span>
|
||||
<span class="n">usage</span><span class="p">:</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span><span class="w"></span>
|
||||
<span class="o">$</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"></span>
|
||||
<span class="n">usage</span><span class="p">:</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span><span class="w"></span>
|
||||
|
||||
<span class="n">A</span> <span class="n">simple</span> <span class="n">command</span> <span class="n">line</span> <span class="k">tool</span> <span class="n">to</span> <span class="n">generate</span> <span class="n">an</span> <span class="n">XML</span> <span class="n">file</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">gnome</span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span> <span class="n">to</span> <span class="n">have</span> <span class="n">dynamic</span> <span class="n">walls</span>
|
||||
<span class="n">A</span><span class="w"> </span><span class="n">simple</span><span class="w"> </span><span class="n">command</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="k">tool</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">generate</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">XML</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">gnome</span><span class="w"></span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">have</span><span class="w"> </span><span class="n">dynamic</span><span class="w"> </span><span class="n">walls</span><span class="w"></span>
|
||||
|
||||
<span class="n">optional</span> <span class="n">arguments</span><span class="p">:</span>
|
||||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">show</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span>
|
||||
<span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">,</span> <span class="o">--</span><span class="n">path</span> <span class="n">PATH</span> <span class="n">Path</span> <span class="n">to</span> <span class="n">look</span> <span class="k">for</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">output</span> <span class="k">is</span>
|
||||
<span class="n">specified</span><span class="p">,</span> <span class="n">will</span> <span class="n">be</span> <span class="n">used</span> <span class="n">too</span> <span class="k">for</span> <span class="n">outputing</span> <span class="n">the</span> <span class="n">dynamic</span><span class="o">-</span>
|
||||
<span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span><span class="o">.</span> <span class="n">Default</span> <span class="n">value</span> <span class="k">is</span> <span class="n">the</span> <span class="n">current</span>
|
||||
<span class="n">directory</span> <span class="p">(</span><span class="o">.</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">,</span> <span class="o">--</span><span class="n">output</span> <span class="n">OUTPUT</span>
|
||||
<span class="n">Output</span> <span class="n">filename</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">filename</span> <span class="k">is</span> <span class="n">specified</span><span class="p">,</span> <span class="n">a</span>
|
||||
<span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span> <span class="n">will</span> <span class="n">be</span> <span class="n">generated</span> <span class="ow">in</span> <span class="n">the</span>
|
||||
<span class="n">path</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">You</span> <span class="n">can</span> <span class="n">also</span> <span class="n">use</span> <span class="s2">&quot;-&quot;</span> <span class="n">to</span>
|
||||
<span class="n">display</span> <span class="n">the</span> <span class="n">xml</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">stdout</span><span class="o">.</span>
|
||||
<span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span> <span class="n">TRANSITION_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">transitions</span> <span class="n">must</span> <span class="n">last</span> <span class="p">(</span><span class="n">default</span> <span class="n">value</span>
|
||||
<span class="k">is</span> <span class="mi">2</span> <span class="n">seconds</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span> <span class="n">DISPLAY_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">a</span> <span class="n">picture</span> <span class="n">must</span> <span class="n">be</span> <span class="n">displayed</span><span class="o">.</span> <span class="n">Default</span>
|
||||
<span class="n">value</span> <span class="k">is</span> <span class="mi">900</span> <span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">s</span><span class="p">,</span> <span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span> <span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span>
|
||||
<span class="s1"> properties</span>
|
||||
<span class="s1"> -b, --debug</span>
|
||||
<span class="n">optional</span><span class="w"> </span><span class="n">arguments</span><span class="p">:</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">h</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"> </span><span class="n">show</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">exit</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">path</span><span class="w"> </span><span class="n">PATH</span><span class="w"> </span><span class="n">Path</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">look</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">output</span><span class="w"> </span><span class="k">is</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="n">too</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">outputing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">current</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">directory</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">output</span><span class="w"> </span><span class="n">OUTPUT</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Output</span><span class="w"> </span><span class="n">filename</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">generated</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">path</span><span class="w"> </span><span class="n">containing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</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="n">also</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s2">&quot;-&quot;</span><span class="w"> </span><span class="n">to</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">display</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">xml</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">stdout</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">transitions</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="p">(</span><span class="n">default</span><span class="w"> </span><span class="n">value</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">picture</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">displayed</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">900</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">s</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span><span class="w"> </span><span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span><span class="w"></span>
|
||||
<span class="s1"> properties</span><span class="w"></span>
|
||||
<span class="s1"> -b, --debug</span><span class="w"></span>
|
||||
</code></pre></div></content><category term="Technologie"></category></entry><entry><title>How to install NGINX + PHP 5.3 on FreeBSD.</title><link href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html" rel="alternate"></link><published>2010-10-10T00:00:00+02:00</published><updated>2010-10-10T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-10:/how-to-install-nginx-php-53-on-freebsd.html</id><summary type="html">
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -9536,30 +9571,30 @@ the&nbsp;server.</p>
|
|||
<p>That&#8217;s a simple thing in fact, but it could be good to have something
|
||||
that will work without effort over&nbsp;time.</p>
|
||||
<p>Here&#8217;s a sample of my&nbsp;configuration:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span> <span class="p">{</span>
|
||||
<span class="err">server_name</span> <span class="err">ndd</span><span class="p">;</span>
|
||||
<span class="err">set</span> <span class="err">$path</span> <span class="err">/path/to/your/files</span><span class="p">;</span>
|
||||
<span class="err">root</span> <span class="err">$path</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server_name</span><span class="w"> </span><span class="err">ndd</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">set</span><span class="w"> </span><span class="err">$path</span><span class="w"> </span><span class="err">/path/to/your/files</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">root</span><span class="w"> </span><span class="err">$path</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="err">location</span> <span class="err">/</span> <span class="err">{</span>
|
||||
<span class="err">index</span> <span class="err">index.php</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="err">location</span><span class="w"> </span><span class="err">/</span><span class="w"> </span><span class="err">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">index</span><span class="w"> </span><span class="err">index.php</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~*</span> <span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span> <span class="p">{</span>
|
||||
<span class="err">access_log</span> <span class="err">off</span><span class="p">;</span>
|
||||
<span class="err">expires</span> <span class="err">30d</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~*</span><span class="w"> </span><span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">access_log</span><span class="w"> </span><span class="err">off</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">expires</span><span class="w"> </span><span class="err">30d</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~</span> <span class="p">.</span><span class="nc">php</span><span class="o">$</span> <span class="p">{</span>
|
||||
<span class="err">fastcgi_param</span> <span class="err">SCRIPT_FILENAME</span> <span class="err">$path$fastcgi_script_name</span><span class="p">;</span>
|
||||
<span class="err">fastcgi_pass</span> <span class="err">backend</span><span class="p">;</span>
|
||||
<span class="err">include</span> <span class="err">fastcgi_params</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="err">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="p">.</span><span class="nc">php</span><span class="o">$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_param</span><span class="w"> </span><span class="err">SCRIPT_FILENAME</span><span class="w"> </span><span class="err">$path$fastcgi_script_name</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_pass</span><span class="w"> </span><span class="err">backend</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">include</span><span class="w"> </span><span class="err">fastcgi_params</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="err">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">upstream</span> <span class="nt">backend</span> <span class="p">{</span>
|
||||
<span class="err">server</span> <span class="err">127.0.0.1:9000</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nt">upstream</span><span class="w"> </span><span class="nt">backend</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server</span><span class="w"> </span><span class="err">127.0.0.1:9000</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>And that&#8217;s it&nbsp;!</p></content><category term="Technologie"></category></entry><entry><title>Pelican, a simple static blog generator in python</title><link href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html" rel="alternate"></link><published>2010-10-06T00:00:00+02:00</published><updated>2010-10-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-06:/pelican-a-simple-static-blog-generator-in-python.html</id><summary type="html">
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<rss version="2.0"><channel><title>Alexis Métaireau</title><link>https://blog.notmyidea.org/</link><description></description><lastBuildDate>Thu, 11 Nov 2021 00:00:00 +0100</lastBuildDate><item><title>Conflit</title><link>https://blog.notmyidea.org/conflit.html</link><description>
|
||||
<rss version="2.0"><channel><title>Alexis Métaireau</title><link>https://blog.notmyidea.org/</link><description></description><lastBuildDate>Fri, 06 May 2022 00:00:00 +0200</lastBuildDate><item><title>Fatigue relationnelle</title><link>https://blog.notmyidea.org/fatigue-relationnelle.html</link><description>
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets …</p></description><pubDate>Fri, 06 May 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2022-05-06:/fatigue-relationnelle.html</guid><category>Réfléxions</category></item><item><title>Accueil, transmission et confiance</title><link>https://blog.notmyidea.org/accueil-transmission-et-confiance.html</link><description>
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec …</li></ul></description><pubDate>Sun, 01 May 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2022-05-01:/accueil-transmission-et-confiance.html</guid><category>Réfléxions</category></item><item><title>Conflit</title><link>https://blog.notmyidea.org/conflit.html</link><description>
|
||||
<p>J&#8217;ai pensé durant de nombreuses années que je savais gérer le conflit, alors que c&#8217;était en fait&nbsp;impensé.</p>
|
||||
<p>Ne pas être en conflit signifie parfois s&#8217;adapter aux autres, parfois ne pas (assez) s&#8217;écouter, et ne pas se faire&nbsp;entendre. </p>
|
||||
<p><strong>Alors que je pensais gérer le conflit …</strong></p></description><pubDate>Thu, 11 Nov 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2021-11-11:/conflit.html</guid><category>Réfléxions</category></item><item><title>Coopération et travail</title><link>https://blog.notmyidea.org/cooperation-et-travail.html</link><description>
|
||||
|
@ -146,7 +152,7 @@ une fois que tout est dépoyé ? Si on a une application très simple …</p&
|
|||
</div>
|
||||
<p>Speaker:&nbsp;serge_sans_paille.</p>
|
||||
<p>Retour sur le passé des boucles: <span class="caps">ASM</span>, fortran, C. Avec <span class="caps">APL</span>, la boucle est
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait pas etre …</p></description><pubDate>Sun, 18 Oct 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-10-18:/pyconfr-2015-we-dont-need-your-loop.html</guid><category>pyconfr2015</category></item><item><title>PyconFR 2015 — Cliquet</title><link>https://blog.notmyidea.org/pyconfr-2015-cliquet.html</link><description><div class="admonition note">
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait …</p></description><pubDate>Sun, 18 Oct 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2015-10-18:/pyconfr-2015-we-dont-need-your-loop.html</guid><category>pyconfr2015</category></item><item><title>PyconFR 2015 — Cliquet</title><link>https://blog.notmyidea.org/pyconfr-2015-cliquet.html</link><description><div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N&#8217;hésitez pas
|
||||
à les completer si&nbsp;besoin.</p>
|
||||
|
@ -380,7 +386,7 @@ récemment, depuis que <span class="caps">JM</span> Ayrault s&#8
|
|||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
<p>Les états ont crée la propriété interellectuelle pour relancer
|
||||
l&#8217;industrie après les dégats de la guerre et les …</p></description><pubDate>Thu, 20 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-20:/semences-paysannes.html</guid><category>Notes</category></item><item><title>Languages</title><link>https://blog.notmyidea.org/languages.html</link><description>
|
||||
l&#8217;industrie après les dégats de la guerre …</p></description><pubDate>Thu, 20 Dec 2012 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.notmyidea.org,2012-12-20:/semences-paysannes.html</guid><category>Notes</category></item><item><title>Languages</title><link>https://blog.notmyidea.org/languages.html</link><description>
|
||||
<p>Ouriel Ellert &#8221; Languages&#8221; avec Anthony Jambon <span class="amp">&amp;</span> Natascha Rogers, c&#8217;est enregistré par le <a href="http://www.studiomezzanine.fr">Studio Mezzanine</a> qui
|
||||
comme d&#8217;hab font un travail&nbsp;impeccable.</p>
|
||||
<p>Plus d&#8217;infos sur Natasha Rogers et son groupe ici:
|
||||
|
|
|
@ -1,5 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/all-en.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2021-11-11T00:00:00+01:00</updated><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/all-en.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2022-05-06T00:00:00+02:00</updated><entry><title>Fatigue relationnelle</title><link href="https://blog.notmyidea.org/fatigue-relationnelle.html" rel="alternate"></link><published>2022-05-06T00:00:00+02:00</published><updated>2022-05-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-06:/fatigue-relationnelle.html</id><summary type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets …</p></summary><content type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets psychologiques que le <span class="caps">COVID</span> à eu sur moi, si j&#8217;accorde trop de place aux collectifs dans ma vie (travail, habitation, ami⋅es), ou si simplement mes envies ne sont plus les mêmes qu&#8217;il y a quelques années, mais le résultat est bel et bien&nbsp;là.</p>
|
||||
<p>Malgré tout j&#8217;ai envie d&#8217;être disponible pour les personnes qui comptent pour moi, et je réfléchis donc à différentes solutions : déménager et habiter en solo, faire moins d&#8217;activités extérieures ou bien m&#8217;isoler plus souvent dans les espaces&nbsp;collectifs.</p>
|
||||
<p>Le fait de retourner potentiellement habiter en solo vient questionner mon rapport au collectif omniprésent dans ma vie, et qui jouit d&#8217;un statut particulier pour moi. Le collectif semble être quasiment un <em>objectif en soi</em>, et donc quelque-part partir de ces espaces collectifs serait une sorte&nbsp;d&#8217;échec.</p>
|
||||
<p>Entrouvrir cette possibilité me plaît parce-que ça me pousse à accepter mes limites et à mettre en balance ma qualité de relation aux autres avec mes valeurs collectivistes. Du collectif, oui, mais peut-être avec un mix différent&nbsp;?</p>
|
||||
<p>Ça fait également écho à ma <a href="conflit.html">gestion du conflit</a>. Je me rends compte que j&#8217;ai besoin d&#8217;évoluer dans des collectifs qui partagent cette culture de la gestion du conflit (plutôt que de son&nbsp;évitement).</p></content><category term="Réfléxions"></category></entry><entry><title>Accueil, transmission et confiance</title><link href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" rel="alternate"></link><published>2022-05-01T00:00:00+02:00</published><updated>2022-05-01T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-01:/accueil-transmission-et-confiance.html</id><summary type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec …</li></ul></summary><content type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec qui échanger sur les problématiques techniques du métier de livreur / commercial&nbsp;;</li>
|
||||
</ul>
|
||||
<p>Mais cela me fait aussi peur : cela va nécessairement bousculer l&#8217;équilibre — parfois fragile — en place entre les associés actuels. Même si je vois cette évolution d&#8217;un bon œil, les transitions sont parfois&nbsp;difficiles.</p>
|
||||
<p>Ça me donne donc envie de construire une relation de confiance, et de donner les moyens à cette nouvelle arrivante de s&#8217;y&nbsp;retrouver.</p>
|
||||
<h2 id="transmission">Transmission</h2>
|
||||
<p>Cela me pose donc de nouvelles questions, autour de l&#8217;accueil et de la&nbsp;transmission.</p>
|
||||
<p>Il me semble que l&#8217;enjeu est de laisser une liberté d&#8217;action progressive pour mettre la personne en confiance, puis de réussir à « lâcher le bébé&nbsp;».</p>
|
||||
<p>Mais il s&#8217;agit aussi de réussir à juger si la communication est aisée, et de ne pas nécessairement partir du principe que tout sera génial. C&#8217;est une relation de travail, pas une&nbsp;amitié.</p>
|
||||
<p>De son côté également il doit y avoir des questionnements. Je mets une attention particulière à les accueillir : les questionnement sont bienvenus, voir même&nbsp;attendus.</p>
|
||||
<p>Le pire pour moi serait d&#8217;avoir quelqu&#8217;un qui à peur de ne pas savoir, et qui dit qu&#8217;elle sait plutôt que de laisser la place pour&nbsp;l&#8217;apprentissage.</p>
|
||||
<h2 id="faire-confiance">Faire&nbsp;confiance</h2>
|
||||
<p>Il me semble qu&#8217;il peut exister deux types de confiance&nbsp;:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p><em>Laisser la possibilité de se tromper</em> : il est possible de faire confiance à l&#8217;autre dans son apprentissage, pour qu&#8217;iel se sente légitime à faire <em>ses</em> choix, ceux qu&#8217;il⋅elle estimera les bons, et qui seront donc les bons — par définition&nbsp;;</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>La <em>confiance relationnelle</em>, de l&#8217;ordre des relations inter-personnelles, de la relation à l&#8217;autre. Parce que c&#8217;est aussi une rencontre, et que je cherche à créer des relations de travail où l&#8217;on peut se dire les choses sans se blesser, en confiance&nbsp;donc.</p>
|
||||
</li>
|
||||
</ol></content><category term="Réfléxions"></category></entry><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<p>J&#8217;ai pensé durant de nombreuses années que je savais gérer le conflit, alors que c&#8217;était en fait&nbsp;impensé.</p>
|
||||
<p>Ne pas être en conflit signifie parfois s&#8217;adapter aux autres, parfois ne pas (assez) s&#8217;écouter, et ne pas se faire&nbsp;entendre. </p>
|
||||
<p><strong>Alors que je pensais gérer le conflit …</strong></p></summary><content type="html">
|
||||
|
@ -2417,7 +2452,7 @@ des tests souvent&nbsp;!</p>
|
|||
</div>
|
||||
<p>Speaker:&nbsp;serge_sans_paille.</p>
|
||||
<p>Retour sur le passé des boucles: <span class="caps">ASM</span>, fortran, C. Avec <span class="caps">APL</span>, la boucle est
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait pas etre …</p></summary><content type="html"><div class="admonition note">
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait …</p></summary><content type="html"><div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N&#8217;hésitez pas
|
||||
à les completer si&nbsp;besoin.</p>
|
||||
|
@ -3139,7 +3174,7 @@ d&#8217;écriture sur une collection&nbsp;d&#8217;enregistrements.&l
|
|||
<li><strong>La synchronisation</strong> : une série de leviers pour récupérer et renvoyer des
|
||||
changements sur les données, sans perte ni collision, en utilisant les&nbsp;timestamps.</li>
|
||||
<li><strong>Les permissions</strong> : les droits d&#8217;un utilisateur sur une collection ou un enregistrement
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#id3" id="id1">[1]</a>.</li>
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</li>
|
||||
<li><strong>Opérations par lot</strong>: une <span class="caps">URL</span> qui permet d&#8217;envoyer une série de requêtes
|
||||
décrites en <span class="caps">JSON</span> et d&#8217;obtenir les réponses&nbsp;respectives.</li>
|
||||
</ul>
|
||||
|
@ -3161,17 +3196,17 @@ de <em>Firefox Sync</em> pour la gestion de la concurrence et de&
|
|||
<p>Il est <a class="reference external" href="http://cliquet.readthedocs.org/en/latest/api/index.html">documenté en détail</a>.</p>
|
||||
<p>Dans un monde idéal, ce protocole serait versionné, et formalisé dans une <span class="caps">RFC</span>.
|
||||
En rêve, il existerait même plusieurs implémentations avec des technologies différentes
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#id4" id="id2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="id3" rules="none">
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -3179,7 +3214,7 @@ En rêve, il existerait même plusieurs implémentations avec des technologies d
|
|||
<h2>Le&nbsp;toolkit</h2>
|
||||
<div class="section" id="choix-techniques">
|
||||
<h3>Choix&nbsp;techniques</h3>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#id6" id="id5">[3]</a>.</p>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a>.</p>
|
||||
<p><strong>Pyramid</strong> est un framework Web qui va prendre en charge tout la partie <span class="caps">HTTP</span>,
|
||||
et qui s&#8217;avère pertinent aussi bien pour des petits projets que des plus&nbsp;ambitieux.</p>
|
||||
<p><strong>Cornice</strong> est une extension de <em>Pyramid</em>, écrite en partie par Alexis et Tarek,
|
||||
|
@ -3192,10 +3227,10 @@ rigoureux, gérer les entêtes <span class="caps">CORS</span>, fourn
|
|||
<p><strong>Cliquet</strong> utilise les deux précédents pour implémenter le protocole et fournir
|
||||
des abstractions, mais on a toujours <em>Pyramid</em> et <em>Cornice</em> sous la main pour
|
||||
aller au delà de ce qui est proposé&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id5">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
(Flask), mais n&#8217;étions pas satisfaits de l&#8217;approche pour la configuration
|
||||
de l&#8217;<span class="caps">API</span>. En particulier du côté magique.</td></tr>
|
||||
</tbody>
|
||||
|
@ -3287,18 +3322,18 @@ avec <em>Colander</em>, et ensuite déclarer une&nbsp;resource:&
|
|||
<p>Désormais, la resource <span class="caps">CRUD</span> est disponible sur <tt class="docutils literal">/v1/bookmarks</tt>, avec toutes
|
||||
les fonctionnalités de synchronisation, filtrage, tri, pagination, timestamp, etc.
|
||||
De base les enregistrements sont privés, par&nbsp;utilisateur.</p>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span> <span class="err">h</span><span class="kc">tt</span><span class="err">p</span> <span class="err">GET</span> <span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span> <span class="mi">200</span> <span class="err">OK</span>
|
||||
<span class="err">...</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;data&quot;</span><span class="p">:</span> <span class="p">[</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;id&quot;</span><span class="p">:</span> <span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;last_modified&quot;</span><span class="p">:</span> <span class="mi">1437034418940</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span><span class="w"> </span><span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="w"> </span><span class="err">GET</span><span class="w"> </span><span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span><span class="w"></span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span><span class="w"> </span><span class="mi">200</span><span class="w"> </span><span class="err">OK</span><span class="w"></span>
|
||||
<span class="err">...</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;data&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;url&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;last_modified&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1437034418940</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">]</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="etape-3">
|
||||
|
@ -4108,16 +4143,16 @@ terme, et que <em>Remote Storage</em> devienne une facette de notre&
|
|||
<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&nbsp;distante.</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">db</span> <span class="o">=</span> <span class="n">new</span> <span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new</span><span class="w"> </span><span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span>
|
||||
<span class="n">_id</span><span class="p">:</span> <span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span>
|
||||
<span class="n">name</span><span class="p">:</span> <span class="s1">&#39;David&#39;</span><span class="p">,</span>
|
||||
<span class="n">age</span><span class="p">:</span> <span class="mi">68</span>
|
||||
<span class="p">});</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">_id</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;David&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">age</span><span class="p">:</span><span class="w"> </span><span class="mi">68</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Le projet a le vent en poupe, bénéficie de nombreux contributeurs,
|
||||
|
@ -4513,33 +4548,33 @@ on the server (so you don&#8217;t need to store&nbsp;anything).</p>
|
|||
finally came up factorizing everything in a library for express, named
|
||||
<a href="https://github.com/mozilla-services/express-hawkauth">express-hawkauth</a>.</p>
|
||||
<p>In order to plug it in your application, you&#8217;ll need to use it as a&nbsp;middleware:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">express</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span>
|
||||
<span class="k">var</span> <span class="n">hawk</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">express</span><span class="p">();</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">express</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">express</span><span class="p">();</span><span class="w"></span>
|
||||
|
||||
<span class="k">var</span> <span class="n">hawkMiddleware</span> <span class="o">=</span> <span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span>
|
||||
<span class="n">hawkOptions</span><span class="p">:</span> <span class="p">{},</span>
|
||||
<span class="n">getSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="k">pass</span> <span class="n">to</span> <span class="n">the</span> <span class="n">cb</span> <span class="n">the</span> <span class="n">key</span> <span class="ow">and</span> <span class="n">algorithm</span> <span class="k">for</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">given</span> <span class="n">token</span> <span class="n">id</span><span class="o">.</span> <span class="n">First</span> <span class="n">argument</span> <span class="n">of</span> <span class="n">the</span> <span class="n">callback</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span>
|
||||
<span class="o">//</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="s2">&quot;key&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">:</span> <span class="s2">&quot;sha256&quot;</span><span class="p">});</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">createSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="n">stores</span> <span class="n">a</span> <span class="n">session</span> <span class="k">for</span> <span class="n">the</span> <span class="n">given</span> <span class="n">id</span> <span class="ow">and</span> <span class="n">key</span><span class="o">.</span>
|
||||
<span class="o">//</span> <span class="n">Argument</span> <span class="n">returned</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">setUser</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">that</span> <span class="n">uses</span> <span class="n">req</span> <span class="ow">and</span> <span class="n">res</span><span class="p">,</span> <span class="n">the</span> <span class="n">hawkId</span> <span class="n">when</span> <span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="o">//</span> <span class="n">that</span> <span class="n">it</span> <span class="n">can</span> <span class="n">tweak</span> <span class="n">it</span><span class="o">.</span> <span class="n">For</span> <span class="n">instance</span><span class="p">,</span> <span class="n">you</span> <span class="n">can</span> <span class="n">store</span> <span class="n">the</span> <span class="n">tokenId</span> <span class="k">as</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">user</span><span class="o">.</span>
|
||||
<span class="n">req</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">tokenId</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">hawkOptions</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">getSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="k">pass</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">cb</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">algorithm</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">token</span><span class="w"> </span><span class="n">id</span><span class="o">.</span><span class="w"> </span><span class="n">First</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">callback</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="n">key</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;key&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">algorithm</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;sha256&quot;</span><span class="p">});</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">createSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="n">stores</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">session</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">key</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">Argument</span><span class="w"> </span><span class="n">returned</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">setUser</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">uses</span><span class="w"> </span><span class="n">req</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">hawkId</span><span class="w"> </span><span class="n">when</span><span class="w"> </span><span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">tweak</span><span class="w"> </span><span class="n">it</span><span class="o">.</span><span class="w"> </span><span class="n">For</span><span class="w"> </span><span class="n">instance</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="n">store</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">tokenId</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">user</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">req</span><span class="o">.</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tokenId</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span> <span class="n">hawkMiddleware</span><span class="p">);</span>
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>If you pass the createSession parameter, all non-authenticated requests
|
||||
|
@ -5560,8 +5595,8 @@ ailleurs, pour finalement déployer la chose chez
|
|||
<p>Après quelques péripéties, j&#8217;ai réussi à faire tourner le tout, ça à été
|
||||
un peu la bataille au départ pour installer virtualenv (j&#8217;ai du faire
|
||||
des changements dans mon <span class="caps">PATH</span> pour que ça puisse marcher), voici mon&nbsp;`.bash_profile`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span> <span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span>
|
||||
<span class="k">export</span> <span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span><span class="w"></span>
|
||||
<span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Et après y&#8217;a plus qu&#8217;à installer avec&nbsp;`easy_install`:</p>
|
||||
|
@ -5661,7 +5696,7 @@ PATH=.:\$PATH nc -w1 $(echo %h | sed &#39;s/^.*+//;/:/!s/$/ %p/;s/:/ /&#
|
|||
</code></pre></div>
|
||||
|
||||
<p>On peut donc spécifier des &#8220;sauts&#8221; ssh du&nbsp;style:</p>
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">ssh</span><span class="w"> </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><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Ensuite on peut essayer de&nbsp;rajouter:</p>
|
||||
|
@ -5746,7 +5781,7 @@ décembre&nbsp;2012:</p>
|
|||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
<p>Les états ont crée la propriété interellectuelle pour relancer
|
||||
l&#8217;industrie après les dégats de la guerre et les …</p></summary><content type="html">
|
||||
l&#8217;industrie après les dégats de la guerre …</p></summary><content type="html">
|
||||
<p><a href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed">http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed</a></p>
|
||||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
|
@ -7595,16 +7630,16 @@ $ ant
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a simple example of how to use boilerpipe in Java, from their&nbsp;sources</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span> <span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">java.net.URL</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">java.net.URL</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Oneliner</span> <span class="p">{</span>
|
||||
<span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="p">(</span><span class="kd">final</span> <span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="p">{</span>
|
||||
<span class="kd">final</span> <span class="n">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span>
|
||||
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Oneliner</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="kd">final</span><span class="w"> </span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">URL</span><span class="w"> </span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>To run&nbsp;it:</p>
|
||||
|
@ -7968,14 +8003,14 @@ unison .vimrc ssh://notmyidea.org:20006/.vimrc
|
|||
<p>It is also possible to put all the informations in a config file, and
|
||||
then to only run unison. (fire up vim&nbsp;\~/.unison/default.prf.</p>
|
||||
<p>Here is my&nbsp;config:</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="na">root</span> <span class="o">=</span> <span class="s">/home/alexis</span>
|
||||
<span class="na">root</span> <span class="o">=</span> <span class="s">ssh://notmyidea.org:20006</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">/home/alexis</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">ssh://notmyidea.org:20006</span><span class="w"></span>
|
||||
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">.vimrc</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dotfiles</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dev</span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">.vimrc</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dotfiles</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dev</span><span class="w"></span>
|
||||
|
||||
<span class="na">follow</span> <span class="o">=</span> <span class="s">Name *</span>
|
||||
<span class="w"> </span><span class="na">follow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">Name *</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>My vimrc is in fact a symbolic link on my laptop, but I don&#8217;t want to
|
||||
|
@ -8403,35 +8438,35 @@ $ gnome-background-generator -p ~/Images/walls -s
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a extract of the&nbsp;`&#8212;help`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span>
|
||||
<span class="o">$</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="o">--</span><span class="n">help</span>
|
||||
<span class="n">usage</span><span class="p">:</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span><span class="w"></span>
|
||||
<span class="o">$</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"></span>
|
||||
<span class="n">usage</span><span class="p">:</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span><span class="w"></span>
|
||||
|
||||
<span class="n">A</span> <span class="n">simple</span> <span class="n">command</span> <span class="n">line</span> <span class="k">tool</span> <span class="n">to</span> <span class="n">generate</span> <span class="n">an</span> <span class="n">XML</span> <span class="n">file</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">gnome</span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span> <span class="n">to</span> <span class="n">have</span> <span class="n">dynamic</span> <span class="n">walls</span>
|
||||
<span class="n">A</span><span class="w"> </span><span class="n">simple</span><span class="w"> </span><span class="n">command</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="k">tool</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">generate</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">XML</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">gnome</span><span class="w"></span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">have</span><span class="w"> </span><span class="n">dynamic</span><span class="w"> </span><span class="n">walls</span><span class="w"></span>
|
||||
|
||||
<span class="n">optional</span> <span class="n">arguments</span><span class="p">:</span>
|
||||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">show</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span>
|
||||
<span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">,</span> <span class="o">--</span><span class="n">path</span> <span class="n">PATH</span> <span class="n">Path</span> <span class="n">to</span> <span class="n">look</span> <span class="k">for</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">output</span> <span class="k">is</span>
|
||||
<span class="n">specified</span><span class="p">,</span> <span class="n">will</span> <span class="n">be</span> <span class="n">used</span> <span class="n">too</span> <span class="k">for</span> <span class="n">outputing</span> <span class="n">the</span> <span class="n">dynamic</span><span class="o">-</span>
|
||||
<span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span><span class="o">.</span> <span class="n">Default</span> <span class="n">value</span> <span class="k">is</span> <span class="n">the</span> <span class="n">current</span>
|
||||
<span class="n">directory</span> <span class="p">(</span><span class="o">.</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">,</span> <span class="o">--</span><span class="n">output</span> <span class="n">OUTPUT</span>
|
||||
<span class="n">Output</span> <span class="n">filename</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">filename</span> <span class="k">is</span> <span class="n">specified</span><span class="p">,</span> <span class="n">a</span>
|
||||
<span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span> <span class="n">will</span> <span class="n">be</span> <span class="n">generated</span> <span class="ow">in</span> <span class="n">the</span>
|
||||
<span class="n">path</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">You</span> <span class="n">can</span> <span class="n">also</span> <span class="n">use</span> <span class="s2">&quot;-&quot;</span> <span class="n">to</span>
|
||||
<span class="n">display</span> <span class="n">the</span> <span class="n">xml</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">stdout</span><span class="o">.</span>
|
||||
<span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span> <span class="n">TRANSITION_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">transitions</span> <span class="n">must</span> <span class="n">last</span> <span class="p">(</span><span class="n">default</span> <span class="n">value</span>
|
||||
<span class="k">is</span> <span class="mi">2</span> <span class="n">seconds</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span> <span class="n">DISPLAY_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">a</span> <span class="n">picture</span> <span class="n">must</span> <span class="n">be</span> <span class="n">displayed</span><span class="o">.</span> <span class="n">Default</span>
|
||||
<span class="n">value</span> <span class="k">is</span> <span class="mi">900</span> <span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">s</span><span class="p">,</span> <span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span> <span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span>
|
||||
<span class="s1"> properties</span>
|
||||
<span class="s1"> -b, --debug</span>
|
||||
<span class="n">optional</span><span class="w"> </span><span class="n">arguments</span><span class="p">:</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">h</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"> </span><span class="n">show</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">exit</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">path</span><span class="w"> </span><span class="n">PATH</span><span class="w"> </span><span class="n">Path</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">look</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">output</span><span class="w"> </span><span class="k">is</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="n">too</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">outputing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">current</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">directory</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">output</span><span class="w"> </span><span class="n">OUTPUT</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Output</span><span class="w"> </span><span class="n">filename</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">generated</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">path</span><span class="w"> </span><span class="n">containing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</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="n">also</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s2">&quot;-&quot;</span><span class="w"> </span><span class="n">to</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">display</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">xml</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">stdout</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">transitions</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="p">(</span><span class="n">default</span><span class="w"> </span><span class="n">value</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">picture</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">displayed</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">900</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">s</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span><span class="w"> </span><span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span><span class="w"></span>
|
||||
<span class="s1"> properties</span><span class="w"></span>
|
||||
<span class="s1"> -b, --debug</span><span class="w"></span>
|
||||
</code></pre></div></content><category term="Technologie"></category></entry><entry><title>How to install NGINX + PHP 5.3 on FreeBSD.</title><link href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html" rel="alternate"></link><published>2010-10-10T00:00:00+02:00</published><updated>2010-10-10T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-10:/how-to-install-nginx-php-53-on-freebsd.html</id><summary type="html">
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -8474,30 +8509,30 @@ the&nbsp;server.</p>
|
|||
<p>That&#8217;s a simple thing in fact, but it could be good to have something
|
||||
that will work without effort over&nbsp;time.</p>
|
||||
<p>Here&#8217;s a sample of my&nbsp;configuration:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span> <span class="p">{</span>
|
||||
<span class="err">server_name</span> <span class="err">ndd</span><span class="p">;</span>
|
||||
<span class="err">set</span> <span class="err">$path</span> <span class="err">/path/to/your/files</span><span class="p">;</span>
|
||||
<span class="err">root</span> <span class="err">$path</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server_name</span><span class="w"> </span><span class="err">ndd</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">set</span><span class="w"> </span><span class="err">$path</span><span class="w"> </span><span class="err">/path/to/your/files</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">root</span><span class="w"> </span><span class="err">$path</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="err">location</span> <span class="err">/</span> <span class="err">{</span>
|
||||
<span class="err">index</span> <span class="err">index.php</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="err">location</span><span class="w"> </span><span class="err">/</span><span class="w"> </span><span class="err">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">index</span><span class="w"> </span><span class="err">index.php</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~*</span> <span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span> <span class="p">{</span>
|
||||
<span class="err">access_log</span> <span class="err">off</span><span class="p">;</span>
|
||||
<span class="err">expires</span> <span class="err">30d</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~*</span><span class="w"> </span><span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">access_log</span><span class="w"> </span><span class="err">off</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">expires</span><span class="w"> </span><span class="err">30d</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~</span> <span class="p">.</span><span class="nc">php</span><span class="o">$</span> <span class="p">{</span>
|
||||
<span class="err">fastcgi_param</span> <span class="err">SCRIPT_FILENAME</span> <span class="err">$path$fastcgi_script_name</span><span class="p">;</span>
|
||||
<span class="err">fastcgi_pass</span> <span class="err">backend</span><span class="p">;</span>
|
||||
<span class="err">include</span> <span class="err">fastcgi_params</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="err">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="p">.</span><span class="nc">php</span><span class="o">$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_param</span><span class="w"> </span><span class="err">SCRIPT_FILENAME</span><span class="w"> </span><span class="err">$path$fastcgi_script_name</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_pass</span><span class="w"> </span><span class="err">backend</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">include</span><span class="w"> </span><span class="err">fastcgi_params</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="err">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">upstream</span> <span class="nt">backend</span> <span class="p">{</span>
|
||||
<span class="err">server</span> <span class="err">127.0.0.1:9000</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nt">upstream</span><span class="w"> </span><span class="nt">backend</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server</span><span class="w"> </span><span class="err">127.0.0.1:9000</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>And that&#8217;s it&nbsp;!</p></content><category term="Technologie"></category></entry><entry><title>Pelican, a simple static blog generator in python</title><link href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html" rel="alternate"></link><published>2010-10-06T00:00:00+02:00</published><updated>2010-10-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-06:/pelican-a-simple-static-blog-generator-in-python.html</id><summary type="html">
|
||||
|
|
|
@ -43,8 +43,8 @@ obtenir le même résultat à partir de la même&nbsp;entrée.</p>
|
|||
une collection <span class="caps">JSON</span>. Chaque élément contient un identifiant unique généré sur
|
||||
le&nbsp;client.</p>
|
||||
<p>Par exemple, un enregistrement peut ressembler à&nbsp;:</p>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span> <span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span>
|
||||
<span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span> <span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Le <em>hash</em> de la collection est ensuite calculé, signé puis envoyé au serveur
|
||||
(voir plus bas pour les&nbsp;détails).</p>
|
||||
|
@ -173,7 +173,7 @@ concept repose sur <a class="reference external" href="https://fr.wikipedia.o
|
|||
<a class="reference external" href="https://tools.ietf.org/html/draft-dejong-remotestorage-05">*Remote Storage*</a>,
|
||||
mais pour l&#8217;instant les cas d&#8217;utilisations ne se sont pas encore présentés&nbsp;officiellement.</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<div class="section" id="a-venir-1">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons probablement amenés à introduire la gestion de la concurrence dans
|
||||
le client <span class="caps">JS</span>, en complément de ce qui a été fait sur le serveur, pour permettre
|
||||
|
@ -188,17 +188,17 @@ que <a class="reference external" href="https://github.com/mozilla-services/k
|
|||
<h2>Contenus applicatifs de&nbsp;Firefox</h2>
|
||||
<p>Aujourd&#8217;hui Firefox a un cycle de release de six semaines. Un des objectifs
|
||||
consiste à désolidariser certains contenus applicatifs de ces cycles
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#id4" id="id3">[1]</a>.</p>
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</p>
|
||||
<p>Il s&#8217;agit de données <span class="caps">JSON</span> et binaire qui doivent être versionnées et synchronisées par
|
||||
les navigateurs (<em>lecture seule</em>).</p>
|
||||
<p>Il y a plusieurs outils officiels qui existent pour gérer ça (<em>Balrog</em>, <em>Shavar</em>, &#8230;),
|
||||
et pour l&#8217;instant, aucun choix n&#8217;a été fait. Mais lors des conversations avec
|
||||
l&#8217;équipe en charge du projet, ce fût vraiment motivant de voir que même pour
|
||||
ce genre de besoins internes, <em>Kinto</em> est tout aussi pertinent&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
été intégrées récemment vont redevenir des <em>add-ons</em> \o/.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -212,7 +212,7 @@ un prototype pour améliorer <em>Awesome bar</em>, qui fusionnerait
|
|||
<p>Nous ne pouvons pas en dire beaucoup plus pour l&#8217;instant, mais les fonctionnalités
|
||||
de collections d&#8217;enregistrements partagées entre utilisateurs de <em>Kinto</em>
|
||||
correspondent parfaitement à ce qui est envisagé pour le futur du navigateur&nbsp;:)</p>
|
||||
<div class="section" id="id5">
|
||||
<div class="section" id="a-venir-2">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons donc probablement amenés, avant de la fin de l&#8217;année, à introduire des
|
||||
fonctionnalités d&#8217;indexation et de recherche <em>full-text</em> (comprendre <em>ElasticSearch</em>).
|
||||
|
@ -234,7 +234,7 @@ ou un équivalent à <em>Alexa.com Top 500</em> pour fournir la comp
|
|||
interroger le moteur de&nbsp;recherche.</p>
|
||||
<p>L&#8217;exercice pourrait être poussé jusqu&#8217;à la synchronisation d&#8217;états <em>React</em>
|
||||
entre périphériques (par exemple pour les&nbsp;onglets).</p>
|
||||
<div class="section" id="id7">
|
||||
<div class="section" id="a-venir-3">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Si <em>browser.html</em> doit stocker des données de navigation, il faudra ajouter
|
||||
des fonctionnalités de chiffrement sur le client <span class="caps">JS</span>. Ça tombe bien, c&#8217;est un
|
||||
|
@ -262,7 +262,7 @@ de données sur le Web&nbsp;:)</p>
|
|||
et Kinto 1.0&nbsp;!</p>
|
||||
</summary><content type="html"><p><em>Cet article est repris depuis le blog « Service de Nuages » de mon équipe à&nbsp;Mozilla</em></p>
|
||||
<p>Aujourd&#8217;hui, c&#8217;est jour de fête : nous venons de publier Cliquet <strong>2.0</strong>
|
||||
<a class="footnote-reference" href="#id5" id="id1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#id6" id="id2">[2]</a>.</p>
|
||||
<a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a>.</p>
|
||||
<blockquote class="epigraph">
|
||||
<p>L&#8217;aboutissement de 3 années de R&amp;D&nbsp;!</p>
|
||||
<p class="attribution">&mdash;Rémy</p>
|
||||
|
@ -283,7 +283,7 @@ fonctionnalités que l&#8217;on attendait depuis longtemps, comme la gestion
|
|||
s&#8217;empêcher de voir toutes les choses qui doivent toujours être améliorées,
|
||||
notamment sur la documentation et les&nbsp;performances.</p>
|
||||
<p>On peut déjà entrevoir à quoi l&#8217;écosystème va ressembler, et c&#8217;est prometteur.
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#id7" id="id3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
données locales du navigateur avec une instance de&nbsp;Kinto.</p>
|
||||
<p>N&#8217;hésitez vraiment pas à nous solliciter pour discuter avec vous si vous avez
|
||||
des problématiques proches : nous accueillons avec plaisir toutes sortes de
|
||||
|
@ -292,34 +292,34 @@ la solution ou de la manière de communiquer avec le monde extérieur. Si vous
|
|||
souhaitez nous contacter, vous pouvez laisser un commentaire ici ou nous
|
||||
contacter sur le canal <a class="reference external" href="irc://irc.mozilla.org/#storage">#storage</a> sur le réseau <span class="caps">IRC</span> de&nbsp;Mozilla.</p>
|
||||
<p>Et ce n&#8217;est que le début ! Le futur se dessine dans notre feuille de route
|
||||
<a class="footnote-reference" href="#id8" id="id4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="id5" rules="none">
|
||||
<a class="footnote-reference" href="#footnote-4" id="footnote-reference-4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
microservices <span class="caps">HTTP</span> tels que les APIs <em><span class="caps">REST</span></em> ayant des besoins de
|
||||
synchronisation.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
arbitraires, attachées à un compte Firefox (mais le système d&#8217;authentification
|
||||
est <em>pluggable</em>).</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id7" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<a class="reference external" href="https://github.com/mozilla-services/cliquetis">https://github.com/mozilla-services/cliquetis</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id8" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-4" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</content><category term="Technologie"></category></entry><entry><title>Service de nuages : Stocker et interroger les permissions avec Kinto</title><link href="https://blog.notmyidea.org/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html" rel="alternate"></link><published>2015-05-26T00:00:00+02:00</published><updated>2015-05-26T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2015-05-26:/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html</id><summary type="html"><p class="first last">Comment faire pour stocker et interroger la base de données au sujet des permissions avec Kinto&nbsp;?</p>
|
||||
|
@ -435,13 +435,13 @@ avantages (lisibilité, unicité, cohérence avec les&nbsp;URLs)</p>
|
|||
<div class="section" id="les-tables">
|
||||
<h3>Les&nbsp;tables</h3>
|
||||
<p>Pour le stockage des principals et des&nbsp;permissions:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">user</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">perms</span><span class="p">(</span><span class="n">ace</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">user</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">perms</span><span class="p">(</span><span class="n">ace</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La table <em>perms</em> va associer des <em>principals</em> à chaque <em><span class="caps">ACE</span></em>&nbsp;(e.g.&#8220;/buckets/blog:write&#8220;).</p>
|
||||
<p>Pour le stockage des&nbsp;données:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">object</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">type</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">parent_id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">data</span> <span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="n">write_principals</span> <span class="nb">TEXT</span><span class="p">[],</span> <span class="n">read_principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">object</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">write_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[],</span><span class="w"> </span><span class="n">read_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La colonne <em>parent_id</em> permet de savoir à qui appartient l&#8217;objet
|
||||
(e.g. groupe d&#8217;un <em>bucket</em>, collection d&#8217;un <em>bucket</em>, <em>record</em> d&#8217;une
|
||||
|
@ -449,53 +449,53 @@ collection,&nbsp;&#8230;).</p>
|
|||
</div>
|
||||
<div class="section" id="exemple-d-utilisateur">
|
||||
<h3>Exemple&nbsp;d&#8217;utilisateur</h3>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="exemple-d-objets">
|
||||
<h3>Exemple&nbsp;d&#8217;objets</h3>
|
||||
<div class="section" id="bucket">
|
||||
<h4>Bucket</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;bucket&#39;</span><span class="p">,</span>
|
||||
<span class="k">NULL</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;bucket&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="group">
|
||||
<h4>Group</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;group&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;group&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Ce groupe peut être gére par <tt class="docutils literal">fxa:alexis</tt> puisqu&#8217;il a la permission
|
||||
<tt class="docutils literal">write</tt> dans le <em>bucket</em>&nbsp;parent.</p>
|
||||
</div>
|
||||
<div class="section" id="collection">
|
||||
<h4>Collection</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;collection&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;collection&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Cette collection d&#8217;articles peut être lue par tout le monde,
|
||||
et gérée par les membres du groupe <tt class="docutils literal">moderators</tt>, ainsi que
|
||||
|
@ -503,56 +503,56 @@ et gérée par les membres du groupe <tt class="docutils literal">moderato
|
|||
</div>
|
||||
<div class="section" id="records">
|
||||
<h4>Records</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;record&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="interroger-les-permissions">
|
||||
<h3>Interroger les&nbsp;permissions</h3>
|
||||
<div class="section" id="id1">
|
||||
<div class="section" id="obtenir-la-liste-des-principals-d-un-ace-1">
|
||||
<h4>Obtenir la liste des &#8220;principals&#8221; d&#8217;un <span class="caps">ACE</span></h4>
|
||||
<p>Comme vu plus haut, pour vérifier une permission, on fait l&#8217;union des
|
||||
<em>principals</em> requis par les objets hérités, et on teste leur
|
||||
intersection avec ceux de&nbsp;l&#8217;utilisateur:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span> <span class="n">required_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span> <span class="k">AS</span> <span class="n">p</span>
|
||||
<span class="k">FROM</span> <span class="n">perms</span>
|
||||
<span class="k">WHERE</span> <span class="n">ace</span> <span class="k">IN</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span>
|
||||
<span class="p">),</span>
|
||||
<span class="n">user_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="k">user</span>
|
||||
<span class="k">WHERE</span> <span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">SELECT</span> <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="n">user_principals</span> <span class="n">a</span>
|
||||
<span class="k">INNER</span> <span class="k">JOIN</span> <span class="n">required_principals</span> <span class="n">b</span>
|
||||
<span class="k">ON</span> <span class="n">a</span><span class="p">.</span><span class="n">p</span> <span class="o">=</span> <span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">p</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">perms</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">ace</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">),</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">user</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="n">b</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="filtrer-les-objets-en-fonction-des-permissions">
|
||||
<h4>Filtrer les objets en fonction des&nbsp;permissions</h4>
|
||||
<p>Pour filtrer les objets, on fait une simple intersection de liste
|
||||
(<em>merci PostgreSQL</em>):</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="k">data</span>
|
||||
<span class="k">FROM</span> <span class="k">object</span> <span class="n">o</span><span class="p">,</span> <span class="k">user</span> <span class="n">u</span>
|
||||
<span class="k">WHERE</span> <span class="n">o</span><span class="p">.</span><span class="k">type</span> <span class="o">=</span> <span class="s1">&#39;record&#39;</span>
|
||||
<span class="k">AND</span> <span class="n">o</span><span class="p">.</span><span class="n">parent_id</span> <span class="o">=</span> <span class="s1">&#39;/buckets/blog/collections/article&#39;</span>
|
||||
<span class="k">AND</span> <span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span> <span class="k">OR</span>
|
||||
<span class="n">o</span><span class="p">.</span><span class="n">write_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">AND</span> <span class="n">u</span><span class="p">.</span><span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">data</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="n">o</span><span class="p">,</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">u</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="k">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">parent_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="w"> </span><span class="k">OR</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">write_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Les listes s&#8217;indexent bien, notamment grâce aux <a class="reference external" href="http://www.postgresql.org/docs/current/static/indexes-types.html">index <span class="caps">GIN</span></a>.</p>
|
||||
</div>
|
||||
|
@ -635,7 +635,7 @@ une réponse satisfaisante à ces&nbsp;besoins.</p>
|
|||
<div class="section" id="le-concept-de-principal">
|
||||
<h3>Le concept de « principal&nbsp;»</h3>
|
||||
<p>Un <em>principal</em>, en sécurité informatique, est une entité qui peut être
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#id2" id="id1">[1]</a> En Français il s&#8217;agit
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> En Français il s&#8217;agit
|
||||
du « commettant », l&#8217;acteur qui commet l&#8217;action (oui, le terme est conceptuel&nbsp;!)</p>
|
||||
<p>Il peut s&#8217;agir aussi bien d&#8217;un individu, d&#8217;un ordinateur, d&#8217;un
|
||||
service ou d&#8217;un groupe regroupant l&#8217;une de ces entités, ce qui
|
||||
|
@ -644,10 +644,10 @@ est plus large que le classique « <em>user id</em>&nbsp;».<
|
|||
<p>Par exemple, un utilisateur est identifié de manière unique lors de la
|
||||
connexion par le système d&#8217;authentification dont le rôle est de
|
||||
définir une liste de <em>principals</em> pour l&#8217;utilisateur se&nbsp;connectant.</p>
|
||||
<table class="docutils footnote" frame="void" id="id2" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<a class="reference external" href="https://en.wikipedia.org/wiki/Principal_%28computer_security%29">https://en.wikipedia.org/wiki/Principal_%28computer_security%29</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -656,17 +656,17 @@ définir une liste de <em>principals</em> pour l&#8217;utilisate
|
|||
<h3>La différence entre rôle et&nbsp;groupe</h3>
|
||||
<p>De but en blanc, il n&#8217;est pas évident de définir précisément la
|
||||
différence entre ces deux concepts qui permettent d&#8217;associer
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#id4" id="id3">[2]</a></p>
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<p>La différence est principalement sémantique. Mais on peut y voir une
|
||||
différence dans la « direction » de la relation entre les deux&nbsp;concepts.</p>
|
||||
<ul class="simple">
|
||||
<li>Un rôle est une liste de permissions que l&#8217;on associe à un <em>principal</em>.</li>
|
||||
<li>Un groupe est une liste de <em>principals</em> que l&#8217;on peut associer à une&nbsp;permission.</li>
|
||||
</ul>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<a class="reference external" href="http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference">http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -1,5 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/all.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2021-11-11T00:00:00+01:00</updated><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/all.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2022-05-06T00:00:00+02:00</updated><entry><title>Fatigue relationnelle</title><link href="https://blog.notmyidea.org/fatigue-relationnelle.html" rel="alternate"></link><published>2022-05-06T00:00:00+02:00</published><updated>2022-05-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-06:/fatigue-relationnelle.html</id><summary type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets …</p></summary><content type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets psychologiques que le <span class="caps">COVID</span> à eu sur moi, si j&#8217;accorde trop de place aux collectifs dans ma vie (travail, habitation, ami⋅es), ou si simplement mes envies ne sont plus les mêmes qu&#8217;il y a quelques années, mais le résultat est bel et bien&nbsp;là.</p>
|
||||
<p>Malgré tout j&#8217;ai envie d&#8217;être disponible pour les personnes qui comptent pour moi, et je réfléchis donc à différentes solutions : déménager et habiter en solo, faire moins d&#8217;activités extérieures ou bien m&#8217;isoler plus souvent dans les espaces&nbsp;collectifs.</p>
|
||||
<p>Le fait de retourner potentiellement habiter en solo vient questionner mon rapport au collectif omniprésent dans ma vie, et qui jouit d&#8217;un statut particulier pour moi. Le collectif semble être quasiment un <em>objectif en soi</em>, et donc quelque-part partir de ces espaces collectifs serait une sorte&nbsp;d&#8217;échec.</p>
|
||||
<p>Entrouvrir cette possibilité me plaît parce-que ça me pousse à accepter mes limites et à mettre en balance ma qualité de relation aux autres avec mes valeurs collectivistes. Du collectif, oui, mais peut-être avec un mix différent&nbsp;?</p>
|
||||
<p>Ça fait également écho à ma <a href="conflit.html">gestion du conflit</a>. Je me rends compte que j&#8217;ai besoin d&#8217;évoluer dans des collectifs qui partagent cette culture de la gestion du conflit (plutôt que de son&nbsp;évitement).</p></content><category term="Réfléxions"></category></entry><entry><title>Accueil, transmission et confiance</title><link href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" rel="alternate"></link><published>2022-05-01T00:00:00+02:00</published><updated>2022-05-01T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-01:/accueil-transmission-et-confiance.html</id><summary type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec …</li></ul></summary><content type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec qui échanger sur les problématiques techniques du métier de livreur / commercial&nbsp;;</li>
|
||||
</ul>
|
||||
<p>Mais cela me fait aussi peur : cela va nécessairement bousculer l&#8217;équilibre — parfois fragile — en place entre les associés actuels. Même si je vois cette évolution d&#8217;un bon œil, les transitions sont parfois&nbsp;difficiles.</p>
|
||||
<p>Ça me donne donc envie de construire une relation de confiance, et de donner les moyens à cette nouvelle arrivante de s&#8217;y&nbsp;retrouver.</p>
|
||||
<h2 id="transmission">Transmission</h2>
|
||||
<p>Cela me pose donc de nouvelles questions, autour de l&#8217;accueil et de la&nbsp;transmission.</p>
|
||||
<p>Il me semble que l&#8217;enjeu est de laisser une liberté d&#8217;action progressive pour mettre la personne en confiance, puis de réussir à « lâcher le bébé&nbsp;».</p>
|
||||
<p>Mais il s&#8217;agit aussi de réussir à juger si la communication est aisée, et de ne pas nécessairement partir du principe que tout sera génial. C&#8217;est une relation de travail, pas une&nbsp;amitié.</p>
|
||||
<p>De son côté également il doit y avoir des questionnements. Je mets une attention particulière à les accueillir : les questionnement sont bienvenus, voir même&nbsp;attendus.</p>
|
||||
<p>Le pire pour moi serait d&#8217;avoir quelqu&#8217;un qui à peur de ne pas savoir, et qui dit qu&#8217;elle sait plutôt que de laisser la place pour&nbsp;l&#8217;apprentissage.</p>
|
||||
<h2 id="faire-confiance">Faire&nbsp;confiance</h2>
|
||||
<p>Il me semble qu&#8217;il peut exister deux types de confiance&nbsp;:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p><em>Laisser la possibilité de se tromper</em> : il est possible de faire confiance à l&#8217;autre dans son apprentissage, pour qu&#8217;iel se sente légitime à faire <em>ses</em> choix, ceux qu&#8217;il⋅elle estimera les bons, et qui seront donc les bons — par définition&nbsp;;</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>La <em>confiance relationnelle</em>, de l&#8217;ordre des relations inter-personnelles, de la relation à l&#8217;autre. Parce que c&#8217;est aussi une rencontre, et que je cherche à créer des relations de travail où l&#8217;on peut se dire les choses sans se blesser, en confiance&nbsp;donc.</p>
|
||||
</li>
|
||||
</ol></content><category term="Réfléxions"></category></entry><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<p>J&#8217;ai pensé durant de nombreuses années que je savais gérer le conflit, alors que c&#8217;était en fait&nbsp;impensé.</p>
|
||||
<p>Ne pas être en conflit signifie parfois s&#8217;adapter aux autres, parfois ne pas (assez) s&#8217;écouter, et ne pas se faire&nbsp;entendre. </p>
|
||||
<p><strong>Alors que je pensais gérer le conflit …</strong></p></summary><content type="html">
|
||||
|
@ -2062,8 +2097,8 @@ obtenir le même résultat à partir de la même&nbsp;entrée.</p>
|
|||
une collection <span class="caps">JSON</span>. Chaque élément contient un identifiant unique généré sur
|
||||
le&nbsp;client.</p>
|
||||
<p>Par exemple, un enregistrement peut ressembler à&nbsp;:</p>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span> <span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span>
|
||||
<span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span> <span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Le <em>hash</em> de la collection est ensuite calculé, signé puis envoyé au serveur
|
||||
(voir plus bas pour les&nbsp;détails).</p>
|
||||
|
@ -2511,7 +2546,7 @@ des tests souvent&nbsp;!</p>
|
|||
</div>
|
||||
<p>Speaker:&nbsp;serge_sans_paille.</p>
|
||||
<p>Retour sur le passé des boucles: <span class="caps">ASM</span>, fortran, C. Avec <span class="caps">APL</span>, la boucle est
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait pas etre …</p></summary><content type="html"><div class="admonition note">
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait …</p></summary><content type="html"><div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N&#8217;hésitez pas
|
||||
à les completer si&nbsp;besoin.</p>
|
||||
|
@ -3233,7 +3268,7 @@ d&#8217;écriture sur une collection&nbsp;d&#8217;enregistrements.&l
|
|||
<li><strong>La synchronisation</strong> : une série de leviers pour récupérer et renvoyer des
|
||||
changements sur les données, sans perte ni collision, en utilisant les&nbsp;timestamps.</li>
|
||||
<li><strong>Les permissions</strong> : les droits d&#8217;un utilisateur sur une collection ou un enregistrement
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#id3" id="id1">[1]</a>.</li>
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</li>
|
||||
<li><strong>Opérations par lot</strong>: une <span class="caps">URL</span> qui permet d&#8217;envoyer une série de requêtes
|
||||
décrites en <span class="caps">JSON</span> et d&#8217;obtenir les réponses&nbsp;respectives.</li>
|
||||
</ul>
|
||||
|
@ -3255,17 +3290,17 @@ de <em>Firefox Sync</em> pour la gestion de la concurrence et de&
|
|||
<p>Il est <a class="reference external" href="http://cliquet.readthedocs.org/en/latest/api/index.html">documenté en détail</a>.</p>
|
||||
<p>Dans un monde idéal, ce protocole serait versionné, et formalisé dans une <span class="caps">RFC</span>.
|
||||
En rêve, il existerait même plusieurs implémentations avec des technologies différentes
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#id4" id="id2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="id3" rules="none">
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -3273,7 +3308,7 @@ En rêve, il existerait même plusieurs implémentations avec des technologies d
|
|||
<h2>Le&nbsp;toolkit</h2>
|
||||
<div class="section" id="choix-techniques">
|
||||
<h3>Choix&nbsp;techniques</h3>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#id6" id="id5">[3]</a>.</p>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a>.</p>
|
||||
<p><strong>Pyramid</strong> est un framework Web qui va prendre en charge tout la partie <span class="caps">HTTP</span>,
|
||||
et qui s&#8217;avère pertinent aussi bien pour des petits projets que des plus&nbsp;ambitieux.</p>
|
||||
<p><strong>Cornice</strong> est une extension de <em>Pyramid</em>, écrite en partie par Alexis et Tarek,
|
||||
|
@ -3286,10 +3321,10 @@ rigoureux, gérer les entêtes <span class="caps">CORS</span>, fourn
|
|||
<p><strong>Cliquet</strong> utilise les deux précédents pour implémenter le protocole et fournir
|
||||
des abstractions, mais on a toujours <em>Pyramid</em> et <em>Cornice</em> sous la main pour
|
||||
aller au delà de ce qui est proposé&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id5">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
(Flask), mais n&#8217;étions pas satisfaits de l&#8217;approche pour la configuration
|
||||
de l&#8217;<span class="caps">API</span>. En particulier du côté magique.</td></tr>
|
||||
</tbody>
|
||||
|
@ -3381,18 +3416,18 @@ avec <em>Colander</em>, et ensuite déclarer une&nbsp;resource:&
|
|||
<p>Désormais, la resource <span class="caps">CRUD</span> est disponible sur <tt class="docutils literal">/v1/bookmarks</tt>, avec toutes
|
||||
les fonctionnalités de synchronisation, filtrage, tri, pagination, timestamp, etc.
|
||||
De base les enregistrements sont privés, par&nbsp;utilisateur.</p>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span> <span class="err">h</span><span class="kc">tt</span><span class="err">p</span> <span class="err">GET</span> <span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span> <span class="mi">200</span> <span class="err">OK</span>
|
||||
<span class="err">...</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;data&quot;</span><span class="p">:</span> <span class="p">[</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;id&quot;</span><span class="p">:</span> <span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;last_modified&quot;</span><span class="p">:</span> <span class="mi">1437034418940</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span><span class="w"> </span><span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="w"> </span><span class="err">GET</span><span class="w"> </span><span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span><span class="w"></span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span><span class="w"> </span><span class="mi">200</span><span class="w"> </span><span class="err">OK</span><span class="w"></span>
|
||||
<span class="err">...</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;data&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;url&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;last_modified&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1437034418940</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">]</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="etape-3">
|
||||
|
@ -3683,7 +3718,7 @@ concept repose sur <a class="reference external" href="https://fr.wikipedia.o
|
|||
<a class="reference external" href="https://tools.ietf.org/html/draft-dejong-remotestorage-05">*Remote Storage*</a>,
|
||||
mais pour l&#8217;instant les cas d&#8217;utilisations ne se sont pas encore présentés&nbsp;officiellement.</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<div class="section" id="a-venir-1">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons probablement amenés à introduire la gestion de la concurrence dans
|
||||
le client <span class="caps">JS</span>, en complément de ce qui a été fait sur le serveur, pour permettre
|
||||
|
@ -3698,17 +3733,17 @@ que <a class="reference external" href="https://github.com/mozilla-services/k
|
|||
<h2>Contenus applicatifs de&nbsp;Firefox</h2>
|
||||
<p>Aujourd&#8217;hui Firefox a un cycle de release de six semaines. Un des objectifs
|
||||
consiste à désolidariser certains contenus applicatifs de ces cycles
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#id4" id="id3">[1]</a>.</p>
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</p>
|
||||
<p>Il s&#8217;agit de données <span class="caps">JSON</span> et binaire qui doivent être versionnées et synchronisées par
|
||||
les navigateurs (<em>lecture seule</em>).</p>
|
||||
<p>Il y a plusieurs outils officiels qui existent pour gérer ça (<em>Balrog</em>, <em>Shavar</em>, &#8230;),
|
||||
et pour l&#8217;instant, aucun choix n&#8217;a été fait. Mais lors des conversations avec
|
||||
l&#8217;équipe en charge du projet, ce fût vraiment motivant de voir que même pour
|
||||
ce genre de besoins internes, <em>Kinto</em> est tout aussi pertinent&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
été intégrées récemment vont redevenir des <em>add-ons</em> \o/.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -3722,7 +3757,7 @@ un prototype pour améliorer <em>Awesome bar</em>, qui fusionnerait
|
|||
<p>Nous ne pouvons pas en dire beaucoup plus pour l&#8217;instant, mais les fonctionnalités
|
||||
de collections d&#8217;enregistrements partagées entre utilisateurs de <em>Kinto</em>
|
||||
correspondent parfaitement à ce qui est envisagé pour le futur du navigateur&nbsp;:)</p>
|
||||
<div class="section" id="id5">
|
||||
<div class="section" id="a-venir-2">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons donc probablement amenés, avant de la fin de l&#8217;année, à introduire des
|
||||
fonctionnalités d&#8217;indexation et de recherche <em>full-text</em> (comprendre <em>ElasticSearch</em>).
|
||||
|
@ -3744,7 +3779,7 @@ ou un équivalent à <em>Alexa.com Top 500</em> pour fournir la comp
|
|||
interroger le moteur de&nbsp;recherche.</p>
|
||||
<p>L&#8217;exercice pourrait être poussé jusqu&#8217;à la synchronisation d&#8217;états <em>React</em>
|
||||
entre périphériques (par exemple pour les&nbsp;onglets).</p>
|
||||
<div class="section" id="id7">
|
||||
<div class="section" id="a-venir-3">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Si <em>browser.html</em> doit stocker des données de navigation, il faudra ajouter
|
||||
des fonctionnalités de chiffrement sur le client <span class="caps">JS</span>. Ça tombe bien, c&#8217;est un
|
||||
|
@ -3905,7 +3940,7 @@ du&nbsp;sens.</p></content><category term="Réfléxions"></category></
|
|||
et Kinto 1.0&nbsp;!</p>
|
||||
</summary><content type="html"><p><em>Cet article est repris depuis le blog « Service de Nuages » de mon équipe à&nbsp;Mozilla</em></p>
|
||||
<p>Aujourd&#8217;hui, c&#8217;est jour de fête : nous venons de publier Cliquet <strong>2.0</strong>
|
||||
<a class="footnote-reference" href="#id5" id="id1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#id6" id="id2">[2]</a>.</p>
|
||||
<a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a>.</p>
|
||||
<blockquote class="epigraph">
|
||||
<p>L&#8217;aboutissement de 3 années de R&amp;D&nbsp;!</p>
|
||||
<p class="attribution">&mdash;Rémy</p>
|
||||
|
@ -3926,7 +3961,7 @@ fonctionnalités que l&#8217;on attendait depuis longtemps, comme la gestion
|
|||
s&#8217;empêcher de voir toutes les choses qui doivent toujours être améliorées,
|
||||
notamment sur la documentation et les&nbsp;performances.</p>
|
||||
<p>On peut déjà entrevoir à quoi l&#8217;écosystème va ressembler, et c&#8217;est prometteur.
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#id7" id="id3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
données locales du navigateur avec une instance de&nbsp;Kinto.</p>
|
||||
<p>N&#8217;hésitez vraiment pas à nous solliciter pour discuter avec vous si vous avez
|
||||
des problématiques proches : nous accueillons avec plaisir toutes sortes de
|
||||
|
@ -3935,34 +3970,34 @@ la solution ou de la manière de communiquer avec le monde extérieur. Si vous
|
|||
souhaitez nous contacter, vous pouvez laisser un commentaire ici ou nous
|
||||
contacter sur le canal <a class="reference external" href="irc://irc.mozilla.org/#storage">#storage</a> sur le réseau <span class="caps">IRC</span> de&nbsp;Mozilla.</p>
|
||||
<p>Et ce n&#8217;est que le début ! Le futur se dessine dans notre feuille de route
|
||||
<a class="footnote-reference" href="#id8" id="id4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="id5" rules="none">
|
||||
<a class="footnote-reference" href="#footnote-4" id="footnote-reference-4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
microservices <span class="caps">HTTP</span> tels que les APIs <em><span class="caps">REST</span></em> ayant des besoins de
|
||||
synchronisation.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
arbitraires, attachées à un compte Firefox (mais le système d&#8217;authentification
|
||||
est <em>pluggable</em>).</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id7" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<a class="reference external" href="https://github.com/mozilla-services/cliquetis">https://github.com/mozilla-services/cliquetis</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id8" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-4" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</content><category term="Technologie"></category></entry><entry><title>Service de nuages : Stocker et interroger les permissions avec Kinto</title><link href="https://blog.notmyidea.org/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html" rel="alternate"></link><published>2015-05-26T00:00:00+02:00</published><updated>2015-05-26T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2015-05-26:/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html</id><summary type="html"><p class="first last">Comment faire pour stocker et interroger la base de données au sujet des permissions avec Kinto&nbsp;?</p>
|
||||
|
@ -4078,13 +4113,13 @@ avantages (lisibilité, unicité, cohérence avec les&nbsp;URLs)</p>
|
|||
<div class="section" id="les-tables">
|
||||
<h3>Les&nbsp;tables</h3>
|
||||
<p>Pour le stockage des principals et des&nbsp;permissions:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">user</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">perms</span><span class="p">(</span><span class="n">ace</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">user</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">perms</span><span class="p">(</span><span class="n">ace</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La table <em>perms</em> va associer des <em>principals</em> à chaque <em><span class="caps">ACE</span></em>&nbsp;(e.g.&#8220;/buckets/blog:write&#8220;).</p>
|
||||
<p>Pour le stockage des&nbsp;données:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">object</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">type</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">parent_id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">data</span> <span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="n">write_principals</span> <span class="nb">TEXT</span><span class="p">[],</span> <span class="n">read_principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">object</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">write_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[],</span><span class="w"> </span><span class="n">read_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La colonne <em>parent_id</em> permet de savoir à qui appartient l&#8217;objet
|
||||
(e.g. groupe d&#8217;un <em>bucket</em>, collection d&#8217;un <em>bucket</em>, <em>record</em> d&#8217;une
|
||||
|
@ -4092,53 +4127,53 @@ collection,&nbsp;&#8230;).</p>
|
|||
</div>
|
||||
<div class="section" id="exemple-d-utilisateur">
|
||||
<h3>Exemple&nbsp;d&#8217;utilisateur</h3>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="exemple-d-objets">
|
||||
<h3>Exemple&nbsp;d&#8217;objets</h3>
|
||||
<div class="section" id="bucket">
|
||||
<h4>Bucket</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;bucket&#39;</span><span class="p">,</span>
|
||||
<span class="k">NULL</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;bucket&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="group">
|
||||
<h4>Group</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;group&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;group&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Ce groupe peut être gére par <tt class="docutils literal">fxa:alexis</tt> puisqu&#8217;il a la permission
|
||||
<tt class="docutils literal">write</tt> dans le <em>bucket</em>&nbsp;parent.</p>
|
||||
</div>
|
||||
<div class="section" id="collection">
|
||||
<h4>Collection</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;collection&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;collection&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Cette collection d&#8217;articles peut être lue par tout le monde,
|
||||
et gérée par les membres du groupe <tt class="docutils literal">moderators</tt>, ainsi que
|
||||
|
@ -4146,56 +4181,56 @@ et gérée par les membres du groupe <tt class="docutils literal">moderato
|
|||
</div>
|
||||
<div class="section" id="records">
|
||||
<h4>Records</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;record&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="interroger-les-permissions">
|
||||
<h3>Interroger les&nbsp;permissions</h3>
|
||||
<div class="section" id="id1">
|
||||
<div class="section" id="obtenir-la-liste-des-principals-d-un-ace-1">
|
||||
<h4>Obtenir la liste des &#8220;principals&#8221; d&#8217;un <span class="caps">ACE</span></h4>
|
||||
<p>Comme vu plus haut, pour vérifier une permission, on fait l&#8217;union des
|
||||
<em>principals</em> requis par les objets hérités, et on teste leur
|
||||
intersection avec ceux de&nbsp;l&#8217;utilisateur:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span> <span class="n">required_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span> <span class="k">AS</span> <span class="n">p</span>
|
||||
<span class="k">FROM</span> <span class="n">perms</span>
|
||||
<span class="k">WHERE</span> <span class="n">ace</span> <span class="k">IN</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span>
|
||||
<span class="p">),</span>
|
||||
<span class="n">user_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="k">user</span>
|
||||
<span class="k">WHERE</span> <span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">SELECT</span> <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="n">user_principals</span> <span class="n">a</span>
|
||||
<span class="k">INNER</span> <span class="k">JOIN</span> <span class="n">required_principals</span> <span class="n">b</span>
|
||||
<span class="k">ON</span> <span class="n">a</span><span class="p">.</span><span class="n">p</span> <span class="o">=</span> <span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">p</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">perms</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">ace</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">),</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">user</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="n">b</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="filtrer-les-objets-en-fonction-des-permissions">
|
||||
<h4>Filtrer les objets en fonction des&nbsp;permissions</h4>
|
||||
<p>Pour filtrer les objets, on fait une simple intersection de liste
|
||||
(<em>merci PostgreSQL</em>):</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="k">data</span>
|
||||
<span class="k">FROM</span> <span class="k">object</span> <span class="n">o</span><span class="p">,</span> <span class="k">user</span> <span class="n">u</span>
|
||||
<span class="k">WHERE</span> <span class="n">o</span><span class="p">.</span><span class="k">type</span> <span class="o">=</span> <span class="s1">&#39;record&#39;</span>
|
||||
<span class="k">AND</span> <span class="n">o</span><span class="p">.</span><span class="n">parent_id</span> <span class="o">=</span> <span class="s1">&#39;/buckets/blog/collections/article&#39;</span>
|
||||
<span class="k">AND</span> <span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span> <span class="k">OR</span>
|
||||
<span class="n">o</span><span class="p">.</span><span class="n">write_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">AND</span> <span class="n">u</span><span class="p">.</span><span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">data</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="n">o</span><span class="p">,</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">u</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="k">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">parent_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="w"> </span><span class="k">OR</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">write_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Les listes s&#8217;indexent bien, notamment grâce aux <a class="reference external" href="http://www.postgresql.org/docs/current/static/indexes-types.html">index <span class="caps">GIN</span></a>.</p>
|
||||
</div>
|
||||
|
@ -4641,7 +4676,7 @@ une réponse satisfaisante à ces&nbsp;besoins.</p>
|
|||
<div class="section" id="le-concept-de-principal">
|
||||
<h3>Le concept de « principal&nbsp;»</h3>
|
||||
<p>Un <em>principal</em>, en sécurité informatique, est une entité qui peut être
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#id2" id="id1">[1]</a> En Français il s&#8217;agit
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> En Français il s&#8217;agit
|
||||
du « commettant », l&#8217;acteur qui commet l&#8217;action (oui, le terme est conceptuel&nbsp;!)</p>
|
||||
<p>Il peut s&#8217;agir aussi bien d&#8217;un individu, d&#8217;un ordinateur, d&#8217;un
|
||||
service ou d&#8217;un groupe regroupant l&#8217;une de ces entités, ce qui
|
||||
|
@ -4650,10 +4685,10 @@ est plus large que le classique « <em>user id</em>&nbsp;».<
|
|||
<p>Par exemple, un utilisateur est identifié de manière unique lors de la
|
||||
connexion par le système d&#8217;authentification dont le rôle est de
|
||||
définir une liste de <em>principals</em> pour l&#8217;utilisateur se&nbsp;connectant.</p>
|
||||
<table class="docutils footnote" frame="void" id="id2" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<a class="reference external" href="https://en.wikipedia.org/wiki/Principal_%28computer_security%29">https://en.wikipedia.org/wiki/Principal_%28computer_security%29</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -4662,17 +4697,17 @@ définir une liste de <em>principals</em> pour l&#8217;utilisate
|
|||
<h3>La différence entre rôle et&nbsp;groupe</h3>
|
||||
<p>De but en blanc, il n&#8217;est pas évident de définir précisément la
|
||||
différence entre ces deux concepts qui permettent d&#8217;associer
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#id4" id="id3">[2]</a></p>
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<p>La différence est principalement sémantique. Mais on peut y voir une
|
||||
différence dans la « direction » de la relation entre les deux&nbsp;concepts.</p>
|
||||
<ul class="simple">
|
||||
<li>Un rôle est une liste de permissions que l&#8217;on associe à un <em>principal</em>.</li>
|
||||
<li>Un groupe est une liste de <em>principals</em> que l&#8217;on peut associer à une&nbsp;permission.</li>
|
||||
</ul>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<a class="reference external" href="http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference">http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -5319,16 +5354,16 @@ terme, et que <em>Remote Storage</em> devienne une facette de notre&
|
|||
<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&nbsp;distante.</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">db</span> <span class="o">=</span> <span class="n">new</span> <span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new</span><span class="w"> </span><span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span>
|
||||
<span class="n">_id</span><span class="p">:</span> <span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span>
|
||||
<span class="n">name</span><span class="p">:</span> <span class="s1">&#39;David&#39;</span><span class="p">,</span>
|
||||
<span class="n">age</span><span class="p">:</span> <span class="mi">68</span>
|
||||
<span class="p">});</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">_id</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;David&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">age</span><span class="p">:</span><span class="w"> </span><span class="mi">68</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Le projet a le vent en poupe, bénéficie de nombreux contributeurs,
|
||||
|
@ -5795,33 +5830,33 @@ on the server (so you don&#8217;t need to store&nbsp;anything).</p>
|
|||
finally came up factorizing everything in a library for express, named
|
||||
<a href="https://github.com/mozilla-services/express-hawkauth">express-hawkauth</a>.</p>
|
||||
<p>In order to plug it in your application, you&#8217;ll need to use it as a&nbsp;middleware:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">express</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span>
|
||||
<span class="k">var</span> <span class="n">hawk</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">express</span><span class="p">();</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">express</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">express</span><span class="p">();</span><span class="w"></span>
|
||||
|
||||
<span class="k">var</span> <span class="n">hawkMiddleware</span> <span class="o">=</span> <span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span>
|
||||
<span class="n">hawkOptions</span><span class="p">:</span> <span class="p">{},</span>
|
||||
<span class="n">getSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="k">pass</span> <span class="n">to</span> <span class="n">the</span> <span class="n">cb</span> <span class="n">the</span> <span class="n">key</span> <span class="ow">and</span> <span class="n">algorithm</span> <span class="k">for</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">given</span> <span class="n">token</span> <span class="n">id</span><span class="o">.</span> <span class="n">First</span> <span class="n">argument</span> <span class="n">of</span> <span class="n">the</span> <span class="n">callback</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span>
|
||||
<span class="o">//</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="s2">&quot;key&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">:</span> <span class="s2">&quot;sha256&quot;</span><span class="p">});</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">createSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="n">stores</span> <span class="n">a</span> <span class="n">session</span> <span class="k">for</span> <span class="n">the</span> <span class="n">given</span> <span class="n">id</span> <span class="ow">and</span> <span class="n">key</span><span class="o">.</span>
|
||||
<span class="o">//</span> <span class="n">Argument</span> <span class="n">returned</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">setUser</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">that</span> <span class="n">uses</span> <span class="n">req</span> <span class="ow">and</span> <span class="n">res</span><span class="p">,</span> <span class="n">the</span> <span class="n">hawkId</span> <span class="n">when</span> <span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="o">//</span> <span class="n">that</span> <span class="n">it</span> <span class="n">can</span> <span class="n">tweak</span> <span class="n">it</span><span class="o">.</span> <span class="n">For</span> <span class="n">instance</span><span class="p">,</span> <span class="n">you</span> <span class="n">can</span> <span class="n">store</span> <span class="n">the</span> <span class="n">tokenId</span> <span class="k">as</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">user</span><span class="o">.</span>
|
||||
<span class="n">req</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">tokenId</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">hawkOptions</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">getSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="k">pass</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">cb</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">algorithm</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">token</span><span class="w"> </span><span class="n">id</span><span class="o">.</span><span class="w"> </span><span class="n">First</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">callback</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="n">key</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;key&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">algorithm</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;sha256&quot;</span><span class="p">});</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">createSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="n">stores</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">session</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">key</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">Argument</span><span class="w"> </span><span class="n">returned</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">setUser</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">uses</span><span class="w"> </span><span class="n">req</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">hawkId</span><span class="w"> </span><span class="n">when</span><span class="w"> </span><span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">tweak</span><span class="w"> </span><span class="n">it</span><span class="o">.</span><span class="w"> </span><span class="n">For</span><span class="w"> </span><span class="n">instance</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="n">store</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">tokenId</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">user</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">req</span><span class="o">.</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tokenId</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span> <span class="n">hawkMiddleware</span><span class="p">);</span>
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>If you pass the createSession parameter, all non-authenticated requests
|
||||
|
@ -6842,8 +6877,8 @@ ailleurs, pour finalement déployer la chose chez
|
|||
<p>Après quelques péripéties, j&#8217;ai réussi à faire tourner le tout, ça à été
|
||||
un peu la bataille au départ pour installer virtualenv (j&#8217;ai du faire
|
||||
des changements dans mon <span class="caps">PATH</span> pour que ça puisse marcher), voici mon&nbsp;`.bash_profile`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span> <span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span>
|
||||
<span class="k">export</span> <span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span><span class="w"></span>
|
||||
<span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Et après y&#8217;a plus qu&#8217;à installer avec&nbsp;`easy_install`:</p>
|
||||
|
@ -6943,7 +6978,7 @@ PATH=.:\$PATH nc -w1 $(echo %h | sed &#39;s/^.*+//;/:/!s/$/ %p/;s/:/ /&#
|
|||
</code></pre></div>
|
||||
|
||||
<p>On peut donc spécifier des &#8220;sauts&#8221; ssh du&nbsp;style:</p>
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">ssh</span><span class="w"> </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><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Ensuite on peut essayer de&nbsp;rajouter:</p>
|
||||
|
@ -7028,7 +7063,7 @@ décembre&nbsp;2012:</p>
|
|||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
<p>Les états ont crée la propriété interellectuelle pour relancer
|
||||
l&#8217;industrie après les dégats de la guerre et les …</p></summary><content type="html">
|
||||
l&#8217;industrie après les dégats de la guerre …</p></summary><content type="html">
|
||||
<p><a href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed">http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed</a></p>
|
||||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
|
@ -8877,16 +8912,16 @@ $ ant
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a simple example of how to use boilerpipe in Java, from their&nbsp;sources</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span> <span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">java.net.URL</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">java.net.URL</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Oneliner</span> <span class="p">{</span>
|
||||
<span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="p">(</span><span class="kd">final</span> <span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="p">{</span>
|
||||
<span class="kd">final</span> <span class="n">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span>
|
||||
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Oneliner</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="kd">final</span><span class="w"> </span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">URL</span><span class="w"> </span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>To run&nbsp;it:</p>
|
||||
|
@ -9250,14 +9285,14 @@ unison .vimrc ssh://notmyidea.org:20006/.vimrc
|
|||
<p>It is also possible to put all the informations in a config file, and
|
||||
then to only run unison. (fire up vim&nbsp;\~/.unison/default.prf.</p>
|
||||
<p>Here is my&nbsp;config:</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="na">root</span> <span class="o">=</span> <span class="s">/home/alexis</span>
|
||||
<span class="na">root</span> <span class="o">=</span> <span class="s">ssh://notmyidea.org:20006</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">/home/alexis</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">ssh://notmyidea.org:20006</span><span class="w"></span>
|
||||
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">.vimrc</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dotfiles</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dev</span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">.vimrc</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dotfiles</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dev</span><span class="w"></span>
|
||||
|
||||
<span class="na">follow</span> <span class="o">=</span> <span class="s">Name *</span>
|
||||
<span class="w"> </span><span class="na">follow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">Name *</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>My vimrc is in fact a symbolic link on my laptop, but I don&#8217;t want to
|
||||
|
@ -9685,35 +9720,35 @@ $ gnome-background-generator -p ~/Images/walls -s
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a extract of the&nbsp;`&#8212;help`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span>
|
||||
<span class="o">$</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="o">--</span><span class="n">help</span>
|
||||
<span class="n">usage</span><span class="p">:</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span><span class="w"></span>
|
||||
<span class="o">$</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"></span>
|
||||
<span class="n">usage</span><span class="p">:</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span><span class="w"></span>
|
||||
|
||||
<span class="n">A</span> <span class="n">simple</span> <span class="n">command</span> <span class="n">line</span> <span class="k">tool</span> <span class="n">to</span> <span class="n">generate</span> <span class="n">an</span> <span class="n">XML</span> <span class="n">file</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">gnome</span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span> <span class="n">to</span> <span class="n">have</span> <span class="n">dynamic</span> <span class="n">walls</span>
|
||||
<span class="n">A</span><span class="w"> </span><span class="n">simple</span><span class="w"> </span><span class="n">command</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="k">tool</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">generate</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">XML</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">gnome</span><span class="w"></span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">have</span><span class="w"> </span><span class="n">dynamic</span><span class="w"> </span><span class="n">walls</span><span class="w"></span>
|
||||
|
||||
<span class="n">optional</span> <span class="n">arguments</span><span class="p">:</span>
|
||||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">show</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span>
|
||||
<span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">,</span> <span class="o">--</span><span class="n">path</span> <span class="n">PATH</span> <span class="n">Path</span> <span class="n">to</span> <span class="n">look</span> <span class="k">for</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">output</span> <span class="k">is</span>
|
||||
<span class="n">specified</span><span class="p">,</span> <span class="n">will</span> <span class="n">be</span> <span class="n">used</span> <span class="n">too</span> <span class="k">for</span> <span class="n">outputing</span> <span class="n">the</span> <span class="n">dynamic</span><span class="o">-</span>
|
||||
<span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span><span class="o">.</span> <span class="n">Default</span> <span class="n">value</span> <span class="k">is</span> <span class="n">the</span> <span class="n">current</span>
|
||||
<span class="n">directory</span> <span class="p">(</span><span class="o">.</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">,</span> <span class="o">--</span><span class="n">output</span> <span class="n">OUTPUT</span>
|
||||
<span class="n">Output</span> <span class="n">filename</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">filename</span> <span class="k">is</span> <span class="n">specified</span><span class="p">,</span> <span class="n">a</span>
|
||||
<span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span> <span class="n">will</span> <span class="n">be</span> <span class="n">generated</span> <span class="ow">in</span> <span class="n">the</span>
|
||||
<span class="n">path</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">You</span> <span class="n">can</span> <span class="n">also</span> <span class="n">use</span> <span class="s2">&quot;-&quot;</span> <span class="n">to</span>
|
||||
<span class="n">display</span> <span class="n">the</span> <span class="n">xml</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">stdout</span><span class="o">.</span>
|
||||
<span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span> <span class="n">TRANSITION_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">transitions</span> <span class="n">must</span> <span class="n">last</span> <span class="p">(</span><span class="n">default</span> <span class="n">value</span>
|
||||
<span class="k">is</span> <span class="mi">2</span> <span class="n">seconds</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span> <span class="n">DISPLAY_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">a</span> <span class="n">picture</span> <span class="n">must</span> <span class="n">be</span> <span class="n">displayed</span><span class="o">.</span> <span class="n">Default</span>
|
||||
<span class="n">value</span> <span class="k">is</span> <span class="mi">900</span> <span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">s</span><span class="p">,</span> <span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span> <span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span>
|
||||
<span class="s1"> properties</span>
|
||||
<span class="s1"> -b, --debug</span>
|
||||
<span class="n">optional</span><span class="w"> </span><span class="n">arguments</span><span class="p">:</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">h</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"> </span><span class="n">show</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">exit</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">path</span><span class="w"> </span><span class="n">PATH</span><span class="w"> </span><span class="n">Path</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">look</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">output</span><span class="w"> </span><span class="k">is</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="n">too</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">outputing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">current</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">directory</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">output</span><span class="w"> </span><span class="n">OUTPUT</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Output</span><span class="w"> </span><span class="n">filename</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">generated</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">path</span><span class="w"> </span><span class="n">containing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</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="n">also</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s2">&quot;-&quot;</span><span class="w"> </span><span class="n">to</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">display</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">xml</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">stdout</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">transitions</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="p">(</span><span class="n">default</span><span class="w"> </span><span class="n">value</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">picture</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">displayed</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">900</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">s</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span><span class="w"> </span><span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span><span class="w"></span>
|
||||
<span class="s1"> properties</span><span class="w"></span>
|
||||
<span class="s1"> -b, --debug</span><span class="w"></span>
|
||||
</code></pre></div></content><category term="Technologie"></category></entry><entry><title>How to install NGINX + PHP 5.3 on FreeBSD.</title><link href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html" rel="alternate"></link><published>2010-10-10T00:00:00+02:00</published><updated>2010-10-10T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-10:/how-to-install-nginx-php-53-on-freebsd.html</id><summary type="html">
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -9756,30 +9791,30 @@ the&nbsp;server.</p>
|
|||
<p>That&#8217;s a simple thing in fact, but it could be good to have something
|
||||
that will work without effort over&nbsp;time.</p>
|
||||
<p>Here&#8217;s a sample of my&nbsp;configuration:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span> <span class="p">{</span>
|
||||
<span class="err">server_name</span> <span class="err">ndd</span><span class="p">;</span>
|
||||
<span class="err">set</span> <span class="err">$path</span> <span class="err">/path/to/your/files</span><span class="p">;</span>
|
||||
<span class="err">root</span> <span class="err">$path</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server_name</span><span class="w"> </span><span class="err">ndd</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">set</span><span class="w"> </span><span class="err">$path</span><span class="w"> </span><span class="err">/path/to/your/files</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">root</span><span class="w"> </span><span class="err">$path</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="err">location</span> <span class="err">/</span> <span class="err">{</span>
|
||||
<span class="err">index</span> <span class="err">index.php</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="err">location</span><span class="w"> </span><span class="err">/</span><span class="w"> </span><span class="err">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">index</span><span class="w"> </span><span class="err">index.php</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~*</span> <span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span> <span class="p">{</span>
|
||||
<span class="err">access_log</span> <span class="err">off</span><span class="p">;</span>
|
||||
<span class="err">expires</span> <span class="err">30d</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~*</span><span class="w"> </span><span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">access_log</span><span class="w"> </span><span class="err">off</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">expires</span><span class="w"> </span><span class="err">30d</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~</span> <span class="p">.</span><span class="nc">php</span><span class="o">$</span> <span class="p">{</span>
|
||||
<span class="err">fastcgi_param</span> <span class="err">SCRIPT_FILENAME</span> <span class="err">$path$fastcgi_script_name</span><span class="p">;</span>
|
||||
<span class="err">fastcgi_pass</span> <span class="err">backend</span><span class="p">;</span>
|
||||
<span class="err">include</span> <span class="err">fastcgi_params</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="err">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="p">.</span><span class="nc">php</span><span class="o">$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_param</span><span class="w"> </span><span class="err">SCRIPT_FILENAME</span><span class="w"> </span><span class="err">$path$fastcgi_script_name</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_pass</span><span class="w"> </span><span class="err">backend</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">include</span><span class="w"> </span><span class="err">fastcgi_params</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="err">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">upstream</span> <span class="nt">backend</span> <span class="p">{</span>
|
||||
<span class="err">server</span> <span class="err">127.0.0.1:9000</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nt">upstream</span><span class="w"> </span><span class="nt">backend</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server</span><span class="w"> </span><span class="err">127.0.0.1:9000</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>And that&#8217;s it&nbsp;!</p></content><category term="Technologie"></category></entry><entry><title>Pelican, a simple static blog generator in python</title><link href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html" rel="alternate"></link><published>2010-10-06T00:00:00+02:00</published><updated>2010-10-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-06:/pelican-a-simple-static-blog-generator-in-python.html</id><summary type="html">
|
||||
|
|
|
@ -651,7 +651,7 @@ décembre&nbsp;2012:</p>
|
|||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
<p>Les états ont crée la propriété interellectuelle pour relancer
|
||||
l&#8217;industrie après les dégats de la guerre et les …</p></summary><content type="html">
|
||||
l&#8217;industrie après les dégats de la guerre …</p></summary><content type="html">
|
||||
<p><a href="http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed">http://www.dailymotion.com/video/x5nhq0_les-semences-paysannes_news#from=embed</a></p>
|
||||
<p>A l&#8217;heure actuelle, il est interdit pour deux agriculteurs de
|
||||
s&#8217;échangers des semences dans le but d&#8217;en revendre la&nbsp;production.</p>
|
||||
|
|
|
@ -120,7 +120,7 @@ des tests souvent&nbsp;!</p>
|
|||
</div>
|
||||
<p>Speaker:&nbsp;serge_sans_paille.</p>
|
||||
<p>Retour sur le passé des boucles: <span class="caps">ASM</span>, fortran, C. Avec <span class="caps">APL</span>, la boucle est
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait pas etre …</p></summary><content type="html"><div class="admonition note">
|
||||
cachée au fur et à mesure des évolutions. Écrire une boucle ne devrait …</p></summary><content type="html"><div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">Voici quelques notes prises durant la PyconFR 2015, à Pau. N&#8217;hésitez pas
|
||||
à les completer si&nbsp;besoin.</p>
|
||||
|
|
|
@ -1,5 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau - Réfléxions</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/reflexions.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2021-11-11T00:00:00+01:00</updated><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alexis Métaireau - Réfléxions</title><link href="https://blog.notmyidea.org/" rel="alternate"></link><link href="https://blog.notmyidea.org/feeds/reflexions.atom.xml" rel="self"></link><id>https://blog.notmyidea.org/</id><updated>2022-05-06T00:00:00+02:00</updated><entry><title>Fatigue relationnelle</title><link href="https://blog.notmyidea.org/fatigue-relationnelle.html" rel="alternate"></link><published>2022-05-06T00:00:00+02:00</published><updated>2022-05-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-06:/fatigue-relationnelle.html</id><summary type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets …</p></summary><content type="html">
|
||||
<p>Depuis peu, je me retrouve confronté à mon manque d&#8217;envie d&#8217;être avec d&#8217;autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu&#8217;il y a quelques&nbsp;années.</p>
|
||||
<p>Je ne sais pas exactement d&#8217;où cela vient : si c&#8217;est un des nombreux effets psychologiques que le <span class="caps">COVID</span> à eu sur moi, si j&#8217;accorde trop de place aux collectifs dans ma vie (travail, habitation, ami⋅es), ou si simplement mes envies ne sont plus les mêmes qu&#8217;il y a quelques années, mais le résultat est bel et bien&nbsp;là.</p>
|
||||
<p>Malgré tout j&#8217;ai envie d&#8217;être disponible pour les personnes qui comptent pour moi, et je réfléchis donc à différentes solutions : déménager et habiter en solo, faire moins d&#8217;activités extérieures ou bien m&#8217;isoler plus souvent dans les espaces&nbsp;collectifs.</p>
|
||||
<p>Le fait de retourner potentiellement habiter en solo vient questionner mon rapport au collectif omniprésent dans ma vie, et qui jouit d&#8217;un statut particulier pour moi. Le collectif semble être quasiment un <em>objectif en soi</em>, et donc quelque-part partir de ces espaces collectifs serait une sorte&nbsp;d&#8217;échec.</p>
|
||||
<p>Entrouvrir cette possibilité me plaît parce-que ça me pousse à accepter mes limites et à mettre en balance ma qualité de relation aux autres avec mes valeurs collectivistes. Du collectif, oui, mais peut-être avec un mix différent&nbsp;?</p>
|
||||
<p>Ça fait également écho à ma <a href="conflit.html">gestion du conflit</a>. Je me rends compte que j&#8217;ai besoin d&#8217;évoluer dans des collectifs qui partagent cette culture de la gestion du conflit (plutôt que de son&nbsp;évitement).</p></content><category term="Réfléxions"></category></entry><entry><title>Accueil, transmission et confiance</title><link href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" rel="alternate"></link><published>2022-05-01T00:00:00+02:00</published><updated>2022-05-01T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2022-05-01:/accueil-transmission-et-confiance.html</id><summary type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec …</li></ul></summary><content type="html">
|
||||
<p>Nous avons depuis peu une nouvelle recrue à la brasserie. Je m&#8217;en réjouis pour plusieurs raisons&nbsp;:</p>
|
||||
<ul>
|
||||
<li>Ma charge de travail devrait baisser de manière considérable et me permettre d&#8217;avancer sur des sujets de fond, pour progressivement changer l&#8217;équilibre dans mon métier&nbsp;;</li>
|
||||
<li>J&#8217;ai désormais quelqu&#8217;une avec qui échanger sur les problématiques techniques du métier de livreur / commercial&nbsp;;</li>
|
||||
</ul>
|
||||
<p>Mais cela me fait aussi peur : cela va nécessairement bousculer l&#8217;équilibre — parfois fragile — en place entre les associés actuels. Même si je vois cette évolution d&#8217;un bon œil, les transitions sont parfois&nbsp;difficiles.</p>
|
||||
<p>Ça me donne donc envie de construire une relation de confiance, et de donner les moyens à cette nouvelle arrivante de s&#8217;y&nbsp;retrouver.</p>
|
||||
<h2 id="transmission">Transmission</h2>
|
||||
<p>Cela me pose donc de nouvelles questions, autour de l&#8217;accueil et de la&nbsp;transmission.</p>
|
||||
<p>Il me semble que l&#8217;enjeu est de laisser une liberté d&#8217;action progressive pour mettre la personne en confiance, puis de réussir à « lâcher le bébé&nbsp;».</p>
|
||||
<p>Mais il s&#8217;agit aussi de réussir à juger si la communication est aisée, et de ne pas nécessairement partir du principe que tout sera génial. C&#8217;est une relation de travail, pas une&nbsp;amitié.</p>
|
||||
<p>De son côté également il doit y avoir des questionnements. Je mets une attention particulière à les accueillir : les questionnement sont bienvenus, voir même&nbsp;attendus.</p>
|
||||
<p>Le pire pour moi serait d&#8217;avoir quelqu&#8217;un qui à peur de ne pas savoir, et qui dit qu&#8217;elle sait plutôt que de laisser la place pour&nbsp;l&#8217;apprentissage.</p>
|
||||
<h2 id="faire-confiance">Faire&nbsp;confiance</h2>
|
||||
<p>Il me semble qu&#8217;il peut exister deux types de confiance&nbsp;:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p><em>Laisser la possibilité de se tromper</em> : il est possible de faire confiance à l&#8217;autre dans son apprentissage, pour qu&#8217;iel se sente légitime à faire <em>ses</em> choix, ceux qu&#8217;il⋅elle estimera les bons, et qui seront donc les bons — par définition&nbsp;;</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>La <em>confiance relationnelle</em>, de l&#8217;ordre des relations inter-personnelles, de la relation à l&#8217;autre. Parce que c&#8217;est aussi une rencontre, et que je cherche à créer des relations de travail où l&#8217;on peut se dire les choses sans se blesser, en confiance&nbsp;donc.</p>
|
||||
</li>
|
||||
</ol></content><category term="Réfléxions"></category></entry><entry><title>Conflit</title><link href="https://blog.notmyidea.org/conflit.html" rel="alternate"></link><published>2021-11-11T00:00:00+01:00</published><updated>2021-11-11T00:00:00+01:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2021-11-11:/conflit.html</id><summary type="html">
|
||||
<p>J&#8217;ai pensé durant de nombreuses années que je savais gérer le conflit, alors que c&#8217;était en fait&nbsp;impensé.</p>
|
||||
<p>Ne pas être en conflit signifie parfois s&#8217;adapter aux autres, parfois ne pas (assez) s&#8217;écouter, et ne pas se faire&nbsp;entendre. </p>
|
||||
<p><strong>Alors que je pensais gérer le conflit …</strong></p></summary><content type="html">
|
||||
|
|
|
@ -468,8 +468,8 @@ obtenir le même résultat à partir de la même&nbsp;entrée.</p>
|
|||
une collection <span class="caps">JSON</span>. Chaque élément contient un identifiant unique généré sur
|
||||
le&nbsp;client.</p>
|
||||
<p>Par exemple, un enregistrement peut ressembler à&nbsp;:</p>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span> <span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span>
|
||||
<span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span> <span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">&quot;id&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;b7dded96-8df0-8af8-449a-8bc47f71b4c4&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s2">&quot;fingerprint&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3&quot;</span><span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Le <em>hash</em> de la collection est ensuite calculé, signé puis envoyé au serveur
|
||||
(voir plus bas pour les&nbsp;détails).</p>
|
||||
|
@ -950,7 +950,7 @@ d&#8217;écriture sur une collection&nbsp;d&#8217;enregistrements.&l
|
|||
<li><strong>La synchronisation</strong> : une série de leviers pour récupérer et renvoyer des
|
||||
changements sur les données, sans perte ni collision, en utilisant les&nbsp;timestamps.</li>
|
||||
<li><strong>Les permissions</strong> : les droits d&#8217;un utilisateur sur une collection ou un enregistrement
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#id3" id="id1">[1]</a>.</li>
|
||||
(<em>encore frais et sur le point d&#8217;être documenté</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</li>
|
||||
<li><strong>Opérations par lot</strong>: une <span class="caps">URL</span> qui permet d&#8217;envoyer une série de requêtes
|
||||
décrites en <span class="caps">JSON</span> et d&#8217;obtenir les réponses&nbsp;respectives.</li>
|
||||
</ul>
|
||||
|
@ -972,17 +972,17 @@ de <em>Firefox Sync</em> pour la gestion de la concurrence et de&
|
|||
<p>Il est <a class="reference external" href="http://cliquet.readthedocs.org/en/latest/api/index.html">documenté en détail</a>.</p>
|
||||
<p>Dans un monde idéal, ce protocole serait versionné, et formalisé dans une <span class="caps">RFC</span>.
|
||||
En rêve, il existerait même plusieurs implémentations avec des technologies différentes
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#id4" id="id2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="id3" rules="none">
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -990,7 +990,7 @@ En rêve, il existerait même plusieurs implémentations avec des technologies d
|
|||
<h2>Le&nbsp;toolkit</h2>
|
||||
<div class="section" id="choix-techniques">
|
||||
<h3>Choix&nbsp;techniques</h3>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#id6" id="id5">[3]</a>.</p>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a>.</p>
|
||||
<p><strong>Pyramid</strong> est un framework Web qui va prendre en charge tout la partie <span class="caps">HTTP</span>,
|
||||
et qui s&#8217;avère pertinent aussi bien pour des petits projets que des plus&nbsp;ambitieux.</p>
|
||||
<p><strong>Cornice</strong> est une extension de <em>Pyramid</em>, écrite en partie par Alexis et Tarek,
|
||||
|
@ -1003,10 +1003,10 @@ rigoureux, gérer les entêtes <span class="caps">CORS</span>, fourn
|
|||
<p><strong>Cliquet</strong> utilise les deux précédents pour implémenter le protocole et fournir
|
||||
des abstractions, mais on a toujours <em>Pyramid</em> et <em>Cornice</em> sous la main pour
|
||||
aller au delà de ce qui est proposé&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id5">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
(Flask), mais n&#8217;étions pas satisfaits de l&#8217;approche pour la configuration
|
||||
de l&#8217;<span class="caps">API</span>. En particulier du côté magique.</td></tr>
|
||||
</tbody>
|
||||
|
@ -1098,18 +1098,18 @@ avec <em>Colander</em>, et ensuite déclarer une&nbsp;resource:&
|
|||
<p>Désormais, la resource <span class="caps">CRUD</span> est disponible sur <tt class="docutils literal">/v1/bookmarks</tt>, avec toutes
|
||||
les fonctionnalités de synchronisation, filtrage, tri, pagination, timestamp, etc.
|
||||
De base les enregistrements sont privés, par&nbsp;utilisateur.</p>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span> <span class="err">h</span><span class="kc">tt</span><span class="err">p</span> <span class="err">GET</span> <span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span> <span class="mi">200</span> <span class="err">OK</span>
|
||||
<span class="err">...</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;data&quot;</span><span class="p">:</span> <span class="p">[</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;id&quot;</span><span class="p">:</span> <span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span>
|
||||
<span class="nt">&quot;last_modified&quot;</span><span class="p">:</span> <span class="mi">1437034418940</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span><span class="w"> </span><span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="w"> </span><span class="err">GET</span><span class="w"> </span><span class="s2">&quot;http://localhost:8000/v1/bookmarks&quot;</span><span class="w"></span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span><span class="w"> </span><span class="mi">200</span><span class="w"> </span><span class="err">OK</span><span class="w"></span>
|
||||
<span class="err">...</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;data&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;url&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;http://cliquet.readthedocs.org&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;cc103eb5-0c80-40ec-b6f5-dad12e7d975e&quot;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">&quot;last_modified&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1437034418940</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">]</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="etape-3">
|
||||
|
@ -1344,7 +1344,7 @@ concept repose sur <a class="reference external" href="https://fr.wikipedia.o
|
|||
<a class="reference external" href="https://tools.ietf.org/html/draft-dejong-remotestorage-05">*Remote Storage*</a>,
|
||||
mais pour l&#8217;instant les cas d&#8217;utilisations ne se sont pas encore présentés&nbsp;officiellement.</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<div class="section" id="a-venir-1">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons probablement amenés à introduire la gestion de la concurrence dans
|
||||
le client <span class="caps">JS</span>, en complément de ce qui a été fait sur le serveur, pour permettre
|
||||
|
@ -1359,17 +1359,17 @@ que <a class="reference external" href="https://github.com/mozilla-services/k
|
|||
<h2>Contenus applicatifs de&nbsp;Firefox</h2>
|
||||
<p>Aujourd&#8217;hui Firefox a un cycle de release de six semaines. Un des objectifs
|
||||
consiste à désolidariser certains contenus applicatifs de ces cycles
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#id4" id="id3">[1]</a>.</p>
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, &#8230;</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</p>
|
||||
<p>Il s&#8217;agit de données <span class="caps">JSON</span> et binaire qui doivent être versionnées et synchronisées par
|
||||
les navigateurs (<em>lecture seule</em>).</p>
|
||||
<p>Il y a plusieurs outils officiels qui existent pour gérer ça (<em>Balrog</em>, <em>Shavar</em>, &#8230;),
|
||||
et pour l&#8217;instant, aucun choix n&#8217;a été fait. Mais lors des conversations avec
|
||||
l&#8217;équipe en charge du projet, ce fût vraiment motivant de voir que même pour
|
||||
ce genre de besoins internes, <em>Kinto</em> est tout aussi pertinent&nbsp;!</p>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>La bonne nouvelle c&#8217;est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
été intégrées récemment vont redevenir des <em>add-ons</em> \o/.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -1383,7 +1383,7 @@ un prototype pour améliorer <em>Awesome bar</em>, qui fusionnerait
|
|||
<p>Nous ne pouvons pas en dire beaucoup plus pour l&#8217;instant, mais les fonctionnalités
|
||||
de collections d&#8217;enregistrements partagées entre utilisateurs de <em>Kinto</em>
|
||||
correspondent parfaitement à ce qui est envisagé pour le futur du navigateur&nbsp;:)</p>
|
||||
<div class="section" id="id5">
|
||||
<div class="section" id="a-venir-2">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Nous serons donc probablement amenés, avant de la fin de l&#8217;année, à introduire des
|
||||
fonctionnalités d&#8217;indexation et de recherche <em>full-text</em> (comprendre <em>ElasticSearch</em>).
|
||||
|
@ -1405,7 +1405,7 @@ ou un équivalent à <em>Alexa.com Top 500</em> pour fournir la comp
|
|||
interroger le moteur de&nbsp;recherche.</p>
|
||||
<p>L&#8217;exercice pourrait être poussé jusqu&#8217;à la synchronisation d&#8217;états <em>React</em>
|
||||
entre périphériques (par exemple pour les&nbsp;onglets).</p>
|
||||
<div class="section" id="id7">
|
||||
<div class="section" id="a-venir-3">
|
||||
<h3>À&nbsp;venir</h3>
|
||||
<p>Si <em>browser.html</em> doit stocker des données de navigation, il faudra ajouter
|
||||
des fonctionnalités de chiffrement sur le client <span class="caps">JS</span>. Ça tombe bien, c&#8217;est un
|
||||
|
@ -1433,7 +1433,7 @@ de données sur le Web&nbsp;:)</p>
|
|||
et Kinto 1.0&nbsp;!</p>
|
||||
</summary><content type="html"><p><em>Cet article est repris depuis le blog « Service de Nuages » de mon équipe à&nbsp;Mozilla</em></p>
|
||||
<p>Aujourd&#8217;hui, c&#8217;est jour de fête : nous venons de publier Cliquet <strong>2.0</strong>
|
||||
<a class="footnote-reference" href="#id5" id="id1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#id6" id="id2">[2]</a>.</p>
|
||||
<a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a>.</p>
|
||||
<blockquote class="epigraph">
|
||||
<p>L&#8217;aboutissement de 3 années de R&amp;D&nbsp;!</p>
|
||||
<p class="attribution">&mdash;Rémy</p>
|
||||
|
@ -1454,7 +1454,7 @@ fonctionnalités que l&#8217;on attendait depuis longtemps, comme la gestion
|
|||
s&#8217;empêcher de voir toutes les choses qui doivent toujours être améliorées,
|
||||
notamment sur la documentation et les&nbsp;performances.</p>
|
||||
<p>On peut déjà entrevoir à quoi l&#8217;écosystème va ressembler, et c&#8217;est prometteur.
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#id7" id="id3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a> dont l&#8217;objectif est de synchroniser les
|
||||
données locales du navigateur avec une instance de&nbsp;Kinto.</p>
|
||||
<p>N&#8217;hésitez vraiment pas à nous solliciter pour discuter avec vous si vous avez
|
||||
des problématiques proches : nous accueillons avec plaisir toutes sortes de
|
||||
|
@ -1463,34 +1463,34 @@ la solution ou de la manière de communiquer avec le monde extérieur. Si vous
|
|||
souhaitez nous contacter, vous pouvez laisser un commentaire ici ou nous
|
||||
contacter sur le canal <a class="reference external" href="irc://irc.mozilla.org/#storage">#storage</a> sur le réseau <span class="caps">IRC</span> de&nbsp;Mozilla.</p>
|
||||
<p>Et ce n&#8217;est que le début ! Le futur se dessine dans notre feuille de route
|
||||
<a class="footnote-reference" href="#id8" id="id4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="id5" rules="none">
|
||||
<a class="footnote-reference" href="#footnote-4" id="footnote-reference-4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l&#8217;implémentation de
|
||||
microservices <span class="caps">HTTP</span> tels que les APIs <em><span class="caps">REST</span></em> ayant des besoins de
|
||||
synchronisation.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
arbitraires, attachées à un compte Firefox (mais le système d&#8217;authentification
|
||||
est <em>pluggable</em>).</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id7" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l&#8217;<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<a class="reference external" href="https://github.com/mozilla-services/cliquetis">https://github.com/mozilla-services/cliquetis</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id8" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-4" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</content><category term="Technologie"></category></entry><entry><title>Service de nuages : Stocker et interroger les permissions avec Kinto</title><link href="https://blog.notmyidea.org/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html" rel="alternate"></link><published>2015-05-26T00:00:00+02:00</published><updated>2015-05-26T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2015-05-26:/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html</id><summary type="html"><p class="first last">Comment faire pour stocker et interroger la base de données au sujet des permissions avec Kinto&nbsp;?</p>
|
||||
|
@ -1606,13 +1606,13 @@ avantages (lisibilité, unicité, cohérence avec les&nbsp;URLs)</p>
|
|||
<div class="section" id="les-tables">
|
||||
<h3>Les&nbsp;tables</h3>
|
||||
<p>Pour le stockage des principals et des&nbsp;permissions:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">user</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">perms</span><span class="p">(</span><span class="n">ace</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">user</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">perms</span><span class="p">(</span><span class="n">ace</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La table <em>perms</em> va associer des <em>principals</em> à chaque <em><span class="caps">ACE</span></em>&nbsp;(e.g.&#8220;/buckets/blog:write&#8220;).</p>
|
||||
<p>Pour le stockage des&nbsp;données:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">object</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">type</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">parent_id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">data</span> <span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="n">write_principals</span> <span class="nb">TEXT</span><span class="p">[],</span> <span class="n">read_principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">object</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">write_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[],</span><span class="w"> </span><span class="n">read_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La colonne <em>parent_id</em> permet de savoir à qui appartient l&#8217;objet
|
||||
(e.g. groupe d&#8217;un <em>bucket</em>, collection d&#8217;un <em>bucket</em>, <em>record</em> d&#8217;une
|
||||
|
@ -1620,53 +1620,53 @@ collection,&nbsp;&#8230;).</p>
|
|||
</div>
|
||||
<div class="section" id="exemple-d-utilisateur">
|
||||
<h3>Exemple&nbsp;d&#8217;utilisateur</h3>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:alexis&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="exemple-d-objets">
|
||||
<h3>Exemple&nbsp;d&#8217;objets</h3>
|
||||
<div class="section" id="bucket">
|
||||
<h4>Bucket</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;bucket&#39;</span><span class="p">,</span>
|
||||
<span class="k">NULL</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;bucket&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;blog&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{&quot;fxa:alexis&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="group">
|
||||
<h4>Group</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;group&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/groups/moderators&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;group&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;moderators&quot;, &quot;members&quot;: [&#39;</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">&#39;]}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Ce groupe peut être gére par <tt class="docutils literal">fxa:alexis</tt> puisqu&#8217;il a la permission
|
||||
<tt class="docutils literal">write</tt> dans le <em>bucket</em>&nbsp;parent.</p>
|
||||
</div>
|
||||
<div class="section" id="collection">
|
||||
<h4>Collection</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;collection&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;collection&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;article&quot;}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;system.Everyone&quot;}&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;/buckets/blog/groups/moderators&quot;}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Cette collection d&#8217;articles peut être lue par tout le monde,
|
||||
et gérée par les membres du groupe <tt class="docutils literal">moderators</tt>, ainsi que
|
||||
|
@ -1674,56 +1674,56 @@ et gérée par les membres du groupe <tt class="docutils literal">moderato
|
|||
</div>
|
||||
<div class="section" id="records">
|
||||
<h4>Records</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;record&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">&#39;{}&#39;</span><span class="p">,</span> <span class="s1">&#39;{}&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/articles&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{&quot;name&quot;: &quot;02f3f76f-7059-4ae4-888f-2ac9824e9200&quot;,</span>
|
||||
<span class="s1"> &quot;title&quot;: &quot;Stocker les permissions&quot;, ...}&#39;</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;{}&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="interroger-les-permissions">
|
||||
<h3>Interroger les&nbsp;permissions</h3>
|
||||
<div class="section" id="id1">
|
||||
<div class="section" id="obtenir-la-liste-des-principals-d-un-ace-1">
|
||||
<h4>Obtenir la liste des &#8220;principals&#8221; d&#8217;un <span class="caps">ACE</span></h4>
|
||||
<p>Comme vu plus haut, pour vérifier une permission, on fait l&#8217;union des
|
||||
<em>principals</em> requis par les objets hérités, et on teste leur
|
||||
intersection avec ceux de&nbsp;l&#8217;utilisateur:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span> <span class="n">required_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span> <span class="k">AS</span> <span class="n">p</span>
|
||||
<span class="k">FROM</span> <span class="n">perms</span>
|
||||
<span class="k">WHERE</span> <span class="n">ace</span> <span class="k">IN</span> <span class="p">(</span>
|
||||
<span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span>
|
||||
<span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span>
|
||||
<span class="p">),</span>
|
||||
<span class="n">user_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="k">user</span>
|
||||
<span class="k">WHERE</span> <span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">SELECT</span> <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="n">user_principals</span> <span class="n">a</span>
|
||||
<span class="k">INNER</span> <span class="k">JOIN</span> <span class="n">required_principals</span> <span class="n">b</span>
|
||||
<span class="k">ON</span> <span class="n">a</span><span class="p">.</span><span class="n">p</span> <span class="o">=</span> <span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">p</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">perms</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">ace</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog:read&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:write&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article:read&#39;</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">),</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">user</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="n">b</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="filtrer-les-objets-en-fonction-des-permissions">
|
||||
<h4>Filtrer les objets en fonction des&nbsp;permissions</h4>
|
||||
<p>Pour filtrer les objets, on fait une simple intersection de liste
|
||||
(<em>merci PostgreSQL</em>):</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="k">data</span>
|
||||
<span class="k">FROM</span> <span class="k">object</span> <span class="n">o</span><span class="p">,</span> <span class="k">user</span> <span class="n">u</span>
|
||||
<span class="k">WHERE</span> <span class="n">o</span><span class="p">.</span><span class="k">type</span> <span class="o">=</span> <span class="s1">&#39;record&#39;</span>
|
||||
<span class="k">AND</span> <span class="n">o</span><span class="p">.</span><span class="n">parent_id</span> <span class="o">=</span> <span class="s1">&#39;/buckets/blog/collections/article&#39;</span>
|
||||
<span class="k">AND</span> <span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span> <span class="k">OR</span>
|
||||
<span class="n">o</span><span class="p">.</span><span class="n">write_principals</span> <span class="o">&amp;&amp;</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">AND</span> <span class="n">u</span><span class="p">.</span><span class="n">id</span> <span class="o">=</span> <span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">data</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="n">o</span><span class="p">,</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">u</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="k">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;record&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">parent_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;/buckets/blog/collections/article&#39;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="w"> </span><span class="k">OR</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">write_principals</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;fxa:natim&#39;</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Les listes s&#8217;indexent bien, notamment grâce aux <a class="reference external" href="http://www.postgresql.org/docs/current/static/indexes-types.html">index <span class="caps">GIN</span></a>.</p>
|
||||
</div>
|
||||
|
@ -2021,7 +2021,7 @@ une réponse satisfaisante à ces&nbsp;besoins.</p>
|
|||
<div class="section" id="le-concept-de-principal">
|
||||
<h3>Le concept de « principal&nbsp;»</h3>
|
||||
<p>Un <em>principal</em>, en sécurité informatique, est une entité qui peut être
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#id2" id="id1">[1]</a> En Français il s&#8217;agit
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> En Français il s&#8217;agit
|
||||
du « commettant », l&#8217;acteur qui commet l&#8217;action (oui, le terme est conceptuel&nbsp;!)</p>
|
||||
<p>Il peut s&#8217;agir aussi bien d&#8217;un individu, d&#8217;un ordinateur, d&#8217;un
|
||||
service ou d&#8217;un groupe regroupant l&#8217;une de ces entités, ce qui
|
||||
|
@ -2030,10 +2030,10 @@ est plus large que le classique « <em>user id</em>&nbsp;».<
|
|||
<p>Par exemple, un utilisateur est identifié de manière unique lors de la
|
||||
connexion par le système d&#8217;authentification dont le rôle est de
|
||||
définir une liste de <em>principals</em> pour l&#8217;utilisateur se&nbsp;connectant.</p>
|
||||
<table class="docutils footnote" frame="void" id="id2" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<a class="reference external" href="https://en.wikipedia.org/wiki/Principal_%28computer_security%29">https://en.wikipedia.org/wiki/Principal_%28computer_security%29</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -2042,17 +2042,17 @@ définir une liste de <em>principals</em> pour l&#8217;utilisate
|
|||
<h3>La différence entre rôle et&nbsp;groupe</h3>
|
||||
<p>De but en blanc, il n&#8217;est pas évident de définir précisément la
|
||||
différence entre ces deux concepts qui permettent d&#8217;associer
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#id4" id="id3">[2]</a></p>
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<p>La différence est principalement sémantique. Mais on peut y voir une
|
||||
différence dans la « direction » de la relation entre les deux&nbsp;concepts.</p>
|
||||
<ul class="simple">
|
||||
<li>Un rôle est une liste de permissions que l&#8217;on associe à un <em>principal</em>.</li>
|
||||
<li>Un groupe est une liste de <em>principals</em> que l&#8217;on peut associer à une&nbsp;permission.</li>
|
||||
</ul>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Plus d&#8217;informations :
|
||||
<a class="reference external" href="http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference">http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -2699,16 +2699,16 @@ terme, et que <em>Remote Storage</em> devienne une facette de notre&
|
|||
<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&nbsp;distante.</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">db</span> <span class="o">=</span> <span class="n">new</span> <span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new</span><span class="w"> </span><span class="n">PouchDB</span><span class="p">(</span><span class="s1">&#39;dbname&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span>
|
||||
<span class="n">_id</span><span class="p">:</span> <span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span>
|
||||
<span class="n">name</span><span class="p">:</span> <span class="s1">&#39;David&#39;</span><span class="p">,</span>
|
||||
<span class="n">age</span><span class="p">:</span> <span class="mi">68</span>
|
||||
<span class="p">});</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">_id</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;dave@gmail.com&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">name</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;David&#39;</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">age</span><span class="p">:</span><span class="w"> </span><span class="mi">68</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span>
|
||||
<span class="n">db</span><span class="o">.</span><span class="n">replicate</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="s1">&#39;http://example.com/mydb&#39;</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Le projet a le vent en poupe, bénéficie de nombreux contributeurs,
|
||||
|
@ -3133,33 +3133,33 @@ on the server (so you don&#8217;t need to store&nbsp;anything).</p>
|
|||
finally came up factorizing everything in a library for express, named
|
||||
<a href="https://github.com/mozilla-services/express-hawkauth">express-hawkauth</a>.</p>
|
||||
<p>In order to plug it in your application, you&#8217;ll need to use it as a&nbsp;middleware:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">express</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span>
|
||||
<span class="k">var</span> <span class="n">hawk</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">express</span><span class="p">();</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">express</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">&quot;express-hawkauth&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">express</span><span class="p">();</span><span class="w"></span>
|
||||
|
||||
<span class="k">var</span> <span class="n">hawkMiddleware</span> <span class="o">=</span> <span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span>
|
||||
<span class="n">hawkOptions</span><span class="p">:</span> <span class="p">{},</span>
|
||||
<span class="n">getSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="k">pass</span> <span class="n">to</span> <span class="n">the</span> <span class="n">cb</span> <span class="n">the</span> <span class="n">key</span> <span class="ow">and</span> <span class="n">algorithm</span> <span class="k">for</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">given</span> <span class="n">token</span> <span class="n">id</span><span class="o">.</span> <span class="n">First</span> <span class="n">argument</span> <span class="n">of</span> <span class="n">the</span> <span class="n">callback</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span>
|
||||
<span class="o">//</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="s2">&quot;key&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">:</span> <span class="s2">&quot;sha256&quot;</span><span class="p">});</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">createSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="n">stores</span> <span class="n">a</span> <span class="n">session</span> <span class="k">for</span> <span class="n">the</span> <span class="n">given</span> <span class="n">id</span> <span class="ow">and</span> <span class="n">key</span><span class="o">.</span>
|
||||
<span class="o">//</span> <span class="n">Argument</span> <span class="n">returned</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">setUser</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">that</span> <span class="n">uses</span> <span class="n">req</span> <span class="ow">and</span> <span class="n">res</span><span class="p">,</span> <span class="n">the</span> <span class="n">hawkId</span> <span class="n">when</span> <span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="o">//</span> <span class="n">that</span> <span class="n">it</span> <span class="n">can</span> <span class="n">tweak</span> <span class="n">it</span><span class="o">.</span> <span class="n">For</span> <span class="n">instance</span><span class="p">,</span> <span class="n">you</span> <span class="n">can</span> <span class="n">store</span> <span class="n">the</span> <span class="n">tokenId</span> <span class="k">as</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">user</span><span class="o">.</span>
|
||||
<span class="n">req</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">tokenId</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">hawkOptions</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">getSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="k">pass</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">cb</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">algorithm</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">token</span><span class="w"> </span><span class="n">id</span><span class="o">.</span><span class="w"> </span><span class="n">First</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">callback</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="n">key</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;key&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">algorithm</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;sha256&quot;</span><span class="p">});</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">createSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="n">stores</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">session</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">key</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">Argument</span><span class="w"> </span><span class="n">returned</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">setUser</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">uses</span><span class="w"> </span><span class="n">req</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">hawkId</span><span class="w"> </span><span class="n">when</span><span class="w"> </span><span class="n">they</span><span class="s1">&#39;re known so</span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">tweak</span><span class="w"> </span><span class="n">it</span><span class="o">.</span><span class="w"> </span><span class="n">For</span><span class="w"> </span><span class="n">instance</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="n">store</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">tokenId</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">user</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">req</span><span class="o">.</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tokenId</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span> <span class="n">hawkMiddleware</span><span class="p">);</span>
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;/hawk-enabled-endpoint&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>If you pass the createSession parameter, all non-authenticated requests
|
||||
|
@ -3463,8 +3463,8 @@ ailleurs, pour finalement déployer la chose chez
|
|||
<p>Après quelques péripéties, j&#8217;ai réussi à faire tourner le tout, ça à été
|
||||
un peu la bataille au départ pour installer virtualenv (j&#8217;ai du faire
|
||||
des changements dans mon <span class="caps">PATH</span> pour que ça puisse marcher), voici mon&nbsp;`.bash_profile`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span> <span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span>
|
||||
<span class="k">export</span> <span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span><span class="w"></span>
|
||||
<span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Et après y&#8217;a plus qu&#8217;à installer avec&nbsp;`easy_install`:</p>
|
||||
|
@ -3527,7 +3527,7 @@ PATH=.:\$PATH nc -w1 $(echo %h | sed &#39;s/^.*+//;/:/!s/$/ %p/;s/:/ /&#
|
|||
</code></pre></div>
|
||||
|
||||
<p>On peut donc spécifier des &#8220;sauts&#8221; ssh du&nbsp;style:</p>
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">ssh</span><span class="w"> </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><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Ensuite on peut essayer de&nbsp;rajouter:</p>
|
||||
|
@ -4698,16 +4698,16 @@ $ ant
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a simple example of how to use boilerpipe in Java, from their&nbsp;sources</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span> <span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">java.net.URL</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">java.net.URL</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Oneliner</span> <span class="p">{</span>
|
||||
<span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="p">(</span><span class="kd">final</span> <span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="p">{</span>
|
||||
<span class="kd">final</span> <span class="n">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span>
|
||||
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Oneliner</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="kd">final</span><span class="w"> </span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">URL</span><span class="w"> </span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">URL</span><span class="p">(</span><span class="s">&quot;http://notmyidea.org&quot;</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>To run&nbsp;it:</p>
|
||||
|
@ -5021,14 +5021,14 @@ unison .vimrc ssh://notmyidea.org:20006/.vimrc
|
|||
<p>It is also possible to put all the informations in a config file, and
|
||||
then to only run unison. (fire up vim&nbsp;\~/.unison/default.prf.</p>
|
||||
<p>Here is my&nbsp;config:</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="na">root</span> <span class="o">=</span> <span class="s">/home/alexis</span>
|
||||
<span class="na">root</span> <span class="o">=</span> <span class="s">ssh://notmyidea.org:20006</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">/home/alexis</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">ssh://notmyidea.org:20006</span><span class="w"></span>
|
||||
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">.vimrc</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dotfiles</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dev</span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">.vimrc</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dotfiles</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dev</span><span class="w"></span>
|
||||
|
||||
<span class="na">follow</span> <span class="o">=</span> <span class="s">Name *</span>
|
||||
<span class="w"> </span><span class="na">follow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">Name *</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>My vimrc is in fact a symbolic link on my laptop, but I don&#8217;t want to
|
||||
|
@ -5344,35 +5344,35 @@ $ gnome-background-generator -p ~/Images/walls -s
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a extract of the&nbsp;`&#8212;help`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span>
|
||||
<span class="o">$</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="o">--</span><span class="n">help</span>
|
||||
<span class="n">usage</span><span class="p">:</span> <span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span>
|
||||
<span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">shell</span><span class="w"></span>
|
||||
<span class="o">$</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"></span>
|
||||
<span class="n">usage</span><span class="p">:</span><span class="w"> </span><span class="n">gnome</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">generator</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">s</span><span class="p">]</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">[</span><span class="o">-</span><span class="n">b</span><span class="p">]</span><span class="w"></span>
|
||||
|
||||
<span class="n">A</span> <span class="n">simple</span> <span class="n">command</span> <span class="n">line</span> <span class="k">tool</span> <span class="n">to</span> <span class="n">generate</span> <span class="n">an</span> <span class="n">XML</span> <span class="n">file</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">gnome</span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span> <span class="n">to</span> <span class="n">have</span> <span class="n">dynamic</span> <span class="n">walls</span>
|
||||
<span class="n">A</span><span class="w"> </span><span class="n">simple</span><span class="w"> </span><span class="n">command</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="k">tool</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">generate</span><span class="w"> </span><span class="n">an</span><span class="w"> </span><span class="n">XML</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">gnome</span><span class="w"></span>
|
||||
<span class="n">wallpapers</span><span class="p">,</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">have</span><span class="w"> </span><span class="n">dynamic</span><span class="w"> </span><span class="n">walls</span><span class="w"></span>
|
||||
|
||||
<span class="n">optional</span> <span class="n">arguments</span><span class="p">:</span>
|
||||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">show</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span> <span class="ow">and</span> <span class="n">exit</span>
|
||||
<span class="o">-</span><span class="n">p</span> <span class="n">PATH</span><span class="p">,</span> <span class="o">--</span><span class="n">path</span> <span class="n">PATH</span> <span class="n">Path</span> <span class="n">to</span> <span class="n">look</span> <span class="k">for</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">output</span> <span class="k">is</span>
|
||||
<span class="n">specified</span><span class="p">,</span> <span class="n">will</span> <span class="n">be</span> <span class="n">used</span> <span class="n">too</span> <span class="k">for</span> <span class="n">outputing</span> <span class="n">the</span> <span class="n">dynamic</span><span class="o">-</span>
|
||||
<span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span><span class="o">.</span> <span class="n">Default</span> <span class="n">value</span> <span class="k">is</span> <span class="n">the</span> <span class="n">current</span>
|
||||
<span class="n">directory</span> <span class="p">(</span><span class="o">.</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">o</span> <span class="n">OUTPUT</span><span class="p">,</span> <span class="o">--</span><span class="n">output</span> <span class="n">OUTPUT</span>
|
||||
<span class="n">Output</span> <span class="n">filename</span><span class="o">.</span> <span class="n">If</span> <span class="n">no</span> <span class="n">filename</span> <span class="k">is</span> <span class="n">specified</span><span class="p">,</span> <span class="n">a</span>
|
||||
<span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span> <span class="n">file</span> <span class="n">will</span> <span class="n">be</span> <span class="n">generated</span> <span class="ow">in</span> <span class="n">the</span>
|
||||
<span class="n">path</span> <span class="n">containing</span> <span class="n">the</span> <span class="n">pictures</span><span class="o">.</span> <span class="n">You</span> <span class="n">can</span> <span class="n">also</span> <span class="n">use</span> <span class="s2">&quot;-&quot;</span> <span class="n">to</span>
|
||||
<span class="n">display</span> <span class="n">the</span> <span class="n">xml</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">stdout</span><span class="o">.</span>
|
||||
<span class="o">-</span><span class="n">t</span> <span class="n">TRANSITION_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span> <span class="n">TRANSITION_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">transitions</span> <span class="n">must</span> <span class="n">last</span> <span class="p">(</span><span class="n">default</span> <span class="n">value</span>
|
||||
<span class="k">is</span> <span class="mi">2</span> <span class="n">seconds</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">d</span> <span class="n">DISPLAY_TIME</span><span class="p">,</span> <span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span> <span class="n">DISPLAY_TIME</span>
|
||||
<span class="n">Time</span> <span class="p">(</span><span class="ow">in</span> <span class="n">seconds</span><span class="p">)</span> <span class="n">a</span> <span class="n">picture</span> <span class="n">must</span> <span class="n">be</span> <span class="n">displayed</span><span class="o">.</span> <span class="n">Default</span>
|
||||
<span class="n">value</span> <span class="k">is</span> <span class="mi">900</span> <span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span>
|
||||
<span class="o">-</span><span class="n">s</span><span class="p">,</span> <span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span> <span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span>
|
||||
<span class="s1"> properties</span>
|
||||
<span class="s1"> -b, --debug</span>
|
||||
<span class="n">optional</span><span class="w"> </span><span class="n">arguments</span><span class="p">:</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">h</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">help</span><span class="w"> </span><span class="n">show</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">help</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">exit</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="n">PATH</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">path</span><span class="w"> </span><span class="n">PATH</span><span class="w"> </span><span class="n">Path</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">look</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">output</span><span class="w"> </span><span class="k">is</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="n">too</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">outputing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">current</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">directory</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="n">OUTPUT</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">output</span><span class="w"> </span><span class="n">OUTPUT</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Output</span><span class="w"> </span><span class="n">filename</span><span class="o">.</span><span class="w"> </span><span class="n">If</span><span class="w"> </span><span class="n">no</span><span class="w"> </span><span class="n">filename</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">specified</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">dynamic</span><span class="o">-</span><span class="n">wallpaper</span><span class="o">.</span><span class="n">xml</span><span class="w"> </span><span class="n">file</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">generated</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">path</span><span class="w"> </span><span class="n">containing</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">pictures</span><span class="o">.</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="n">also</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s2">&quot;-&quot;</span><span class="w"> </span><span class="n">to</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">display</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">xml</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">stdout</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">t</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">transition</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">TRANSITION_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">transitions</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="p">(</span><span class="n">default</span><span class="w"> </span><span class="n">value</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">time</span><span class="w"> </span><span class="n">DISPLAY_TIME</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Time</span><span class="w"> </span><span class="p">(</span><span class="ow">in</span><span class="w"> </span><span class="n">seconds</span><span class="p">)</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">picture</span><span class="w"> </span><span class="n">must</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">displayed</span><span class="o">.</span><span class="w"> </span><span class="n">Default</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="mi">900</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="n">mn</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">-</span><span class="n">s</span><span class="p">,</span><span class="w"> </span><span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">background</span><span class="w"> </span><span class="s1">&#39;&#39;&#39;try to set the background using gnome-appearance-</span><span class="w"></span>
|
||||
<span class="s1"> properties</span><span class="w"></span>
|
||||
<span class="s1"> -b, --debug</span><span class="w"></span>
|
||||
</code></pre></div></content><category term="Technologie"></category></entry><entry><title>How to install NGINX + PHP 5.3 on FreeBSD.</title><link href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html" rel="alternate"></link><published>2010-10-10T00:00:00+02:00</published><updated>2010-10-10T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-10:/how-to-install-nginx-php-53-on-freebsd.html</id><summary type="html">
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -5415,30 +5415,30 @@ the&nbsp;server.</p>
|
|||
<p>That&#8217;s a simple thing in fact, but it could be good to have something
|
||||
that will work without effort over&nbsp;time.</p>
|
||||
<p>Here&#8217;s a sample of my&nbsp;configuration:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span> <span class="p">{</span>
|
||||
<span class="err">server_name</span> <span class="err">ndd</span><span class="p">;</span>
|
||||
<span class="err">set</span> <span class="err">$path</span> <span class="err">/path/to/your/files</span><span class="p">;</span>
|
||||
<span class="err">root</span> <span class="err">$path</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server_name</span><span class="w"> </span><span class="err">ndd</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">set</span><span class="w"> </span><span class="err">$path</span><span class="w"> </span><span class="err">/path/to/your/files</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">root</span><span class="w"> </span><span class="err">$path</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="err">location</span> <span class="err">/</span> <span class="err">{</span>
|
||||
<span class="err">index</span> <span class="err">index.php</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="err">location</span><span class="w"> </span><span class="err">/</span><span class="w"> </span><span class="err">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">index</span><span class="w"> </span><span class="err">index.php</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~*</span> <span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span> <span class="p">{</span>
|
||||
<span class="err">access_log</span> <span class="err">off</span><span class="p">;</span>
|
||||
<span class="err">expires</span> <span class="err">30d</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~*</span><span class="w"> </span><span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">access_log</span><span class="w"> </span><span class="err">off</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">expires</span><span class="w"> </span><span class="err">30d</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~</span> <span class="p">.</span><span class="nc">php</span><span class="o">$</span> <span class="p">{</span>
|
||||
<span class="err">fastcgi_param</span> <span class="err">SCRIPT_FILENAME</span> <span class="err">$path$fastcgi_script_name</span><span class="p">;</span>
|
||||
<span class="err">fastcgi_pass</span> <span class="err">backend</span><span class="p">;</span>
|
||||
<span class="err">include</span> <span class="err">fastcgi_params</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="err">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="p">.</span><span class="nc">php</span><span class="o">$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_param</span><span class="w"> </span><span class="err">SCRIPT_FILENAME</span><span class="w"> </span><span class="err">$path$fastcgi_script_name</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_pass</span><span class="w"> </span><span class="err">backend</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">include</span><span class="w"> </span><span class="err">fastcgi_params</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="err">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">upstream</span> <span class="nt">backend</span> <span class="p">{</span>
|
||||
<span class="err">server</span> <span class="err">127.0.0.1:9000</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nt">upstream</span><span class="w"> </span><span class="nt">backend</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server</span><span class="w"> </span><span class="err">127.0.0.1:9000</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>And that&#8217;s it&nbsp;!</p></content><category term="Technologie"></category></entry><entry><title>Pelican, a simple static blog generator in python</title><link href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html" rel="alternate"></link><published>2010-10-06T00:00:00+02:00</published><updated>2010-10-06T00:00:00+02:00</updated><author><name></name></author><id>tag:blog.notmyidea.org,2010-10-06:/pelican-a-simple-static-blog-generator-in-python.html</id><summary type="html">
|
||||
|
|
|
@ -55,30 +55,30 @@ 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>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span> <span class="p">{</span>
|
||||
<span class="err">server_name</span> <span class="err">ndd</span><span class="p">;</span>
|
||||
<span class="err">set</span> <span class="err">$path</span> <span class="err">/path/to/your/files</span><span class="p">;</span>
|
||||
<span class="err">root</span> <span class="err">$path</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">server</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server_name</span><span class="w"> </span><span class="err">ndd</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">set</span><span class="w"> </span><span class="err">$path</span><span class="w"> </span><span class="err">/path/to/your/files</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">root</span><span class="w"> </span><span class="err">$path</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="err">location</span> <span class="err">/</span> <span class="err">{</span>
|
||||
<span class="err">index</span> <span class="err">index.php</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="err">location</span><span class="w"> </span><span class="err">/</span><span class="w"> </span><span class="err">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">index</span><span class="w"> </span><span class="err">index.php</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~*</span> <span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span> <span class="p">{</span>
|
||||
<span class="err">access_log</span> <span class="err">off</span><span class="p">;</span>
|
||||
<span class="err">expires</span> <span class="err">30d</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~*</span><span class="w"> </span><span class="o">^.+.(</span><span class="nt">jpg</span><span class="o">|</span><span class="nt">jpeg</span><span class="o">|</span><span class="nt">gif</span><span class="o">|</span><span class="nt">css</span><span class="o">|</span><span class="nt">png</span><span class="o">|</span><span class="nt">js</span><span class="o">|</span><span class="nt">ico</span><span class="o">|</span><span class="nt">xml</span><span class="o">)$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">access_log</span><span class="w"> </span><span class="err">off</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">expires</span><span class="w"> </span><span class="err">30d</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">location</span> <span class="o">~</span> <span class="p">.</span><span class="nc">php</span><span class="o">$</span> <span class="p">{</span>
|
||||
<span class="err">fastcgi_param</span> <span class="err">SCRIPT_FILENAME</span> <span class="err">$path$fastcgi_script_name</span><span class="p">;</span>
|
||||
<span class="err">fastcgi_pass</span> <span class="err">backend</span><span class="p">;</span>
|
||||
<span class="err">include</span> <span class="err">fastcgi_params</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="err">}</span>
|
||||
<span class="w"> </span><span class="nt">location</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="p">.</span><span class="nc">php</span><span class="o">$</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_param</span><span class="w"> </span><span class="err">SCRIPT_FILENAME</span><span class="w"> </span><span class="err">$path$fastcgi_script_name</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">fastcgi_pass</span><span class="w"> </span><span class="err">backend</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">include</span><span class="w"> </span><span class="err">fastcgi_params</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="err">}</span><span class="w"></span>
|
||||
|
||||
<span class="nt">upstream</span> <span class="nt">backend</span> <span class="p">{</span>
|
||||
<span class="err">server</span> <span class="err">127.0.0.1:9000</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nt">upstream</span><span class="w"> </span><span class="nt">backend</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="err">server</span><span class="w"> </span><span class="err">127.0.0.1:9000</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>And that’s it !</p>
|
||||
|
|
22
index.html
22
index.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index10.html
22
index10.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index11.html
22
index11.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index12.html
22
index12.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index13.html
22
index13.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index14.html
22
index14.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index15.html
22
index15.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
216
index16.html
Normal file
216
index16.html
Normal file
|
@ -0,0 +1,216 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Alexis Métaireau</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/main.css" type="text/css" />
|
||||
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis Métaireau ATOM Feed" />
|
||||
</head>
|
||||
<body>
|
||||
<section id="links">
|
||||
<li>
|
||||
<a class="selected" href="https://blog.notmyidea.org/" id="site-title">Blog</a>
|
||||
</li>
|
||||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
J’ai pensé durant de nombreuses années que je savais gérer le conflit, alors que c’était en fait impensé. Ne pas être en conflit signifie parfois s’adapter aux autres, parfois ne pas (assez)...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-01T00:00:00+01:00">01 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/cooperation-et-travail.html" id="page-title">Coopération et travail</a></h1>
|
||||
Je parle souvent de coopération, que j’imagine comme « un fonctionnement collectif, dans lequel chacun⋅e y trouve son compte ». Or je me rends aujourd’hui compte que cette définition mets de côté...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-09-13T00:00:00+02:00">13 septembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/rentree.html" id="page-title">Rentrée</a></h1>
|
||||
Trois semaines de vacances m’ont fait le plus grand bien. Je suis toujours autant étonné par ma capacité à repousser mes limites quand je suis la tête dans le guidon, ce qui était le cas...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-08-04T00:00:00+02:00">04 août 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/faire-de-la-musique-sous-linux.html" id="page-title">Faire de la musique sous Linux</a></h1>
|
||||
Update du 07/08 : ajout des infos sur le noyau temps réel Faire de la musique electronique à été pour moi l’occasion de réinstaller Windows pour pouvoir utiliser Ableton Live, un des logiciels les...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-05-08T00:00:00+02:00">08 mai 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/vaccination-et-risques.html" id="page-title">Vaccination et risques</a></h1>
|
||||
Je m’intéresse un peu tardivement a la question des différents vaccins, pour pouvoir mieux comprendre comment ceux cis fonctionnent et quels sont les risques liés. Cette réflexion n’est en aucun...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-26T00:00:00+01:00">26 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/facebook-competition-ethique-et-marketing.html" id="page-title">Facebook, compétition, éthique et marketing.</a></h1>
|
||||
En créant la brasserie du Vieux Singe, le fait de créer une page facebook s’est posé comme une évidence. Il s’agit de l’outil de facto pour communiquer avec son « audience ». J’ai donc créé une...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-25T00:00:00+01:00">25 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/routine.html" id="page-title">Routine</a></h1>
|
||||
Si vous pensez que l’aventure est dangereuse, je vous propose d’essayer la routine…. Elle est mortelle ! — Paulo Coelho J’ai toujours attaché une connotation négative à la routine. La routine,...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-15T00:00:00+01:00">15 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-le-temps.html" rel="bookmark" title="Permalink to Prendre le temps">Prendre le temps</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/limites-horaires.html" rel="bookmark" title="Permalink to Limites horaires">Limites horaires</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prendre-soin.html" rel="bookmark" title="Permalink to Prendre soin">Prendre soin</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/remettre-les-choses-a-plus-tard.html" rel="bookmark" title="Permalink to Remettre les choses à plus tard">Remettre les choses à plus tard</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/au-dela-de-la-penetration.html" rel="bookmark" title="Permalink to Au delà de la pénétration">📖 Au delà de la pénétration</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/la-conjuration-des-egos.html" rel="bookmark" title="Permalink to La conjuration des égos">📖 La conjuration des égos</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/break-technologique.html" rel="bookmark" title="Permalink to Break technologique">Break technologique</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/assurance-chomage.html" rel="bookmark" title="Permalink to Assurance chômage">Assurance chômage</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/prix-libre-et-conscient.html" rel="bookmark" title="Permalink to Prix libre et conscient & culpabilisation">Prix libre et conscient <span class="amp">&</span> culpabilisation</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/ecran-et-dependances.html" rel="bookmark" title="Permalink to Écran et dépendances">Écran et dépendances</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/groupe-de-paroles-hommes.html" rel="bookmark" title="Permalink to Groupe de paroles hommes">Groupe de paroles hommes</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/ignorance-et-vertu.html" rel="bookmark" title="Permalink to Ignorance et vertu">Ignorance et vertu</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/fatigue-et-competition.html" rel="bookmark" title="Permalink to Fatigue et compétition">Fatigue et compétition</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/francis-dupuis-deri-democratie.html" rel="bookmark" title="Permalink to Francis Dupuis Déri, Démocratie.">Francis Dupuis Déri, Démocratie.</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/musique-creation-et-partage.html" rel="bookmark" title="Permalink to Musique, création et partage">Musique, création et partage</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/elitisme-et-apprentissage.html" rel="bookmark" title="Permalink to Élitisme et apprentissage">Élitisme et apprentissage</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/travail-passion-et-limites.html" rel="bookmark" title="Permalink to Travail, passion et limites.">Travail, passion et limites.</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/leffondrement-parlons-en.html" rel="bookmark" title="Permalink to L’effondrement, parlons-en…">📖 L’effondrement, parlons-en…</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/refuser-detre-un-homme.html" rel="bookmark" title="Permalink to Refuser d’être un homme">📖 Refuser d’être un homme</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/antisexisme-ou-antiracisme-un-faux-dilemme.html" rel="bookmark" title="Permalink to Antisexisme ou antiracisme ? Un faux dilemme">📖 Antisexisme ou antiracisme ? Un faux dilemme</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/egologie.html" rel="bookmark" title="Permalink to Égologie">📖 Égologie</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/hommes-anarchistes-face-au-feminisme.html" rel="bookmark" title="Permalink to Hommes Anarchistes face au féminisme">📖 Hommes Anarchistes face au féminisme</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/les-illusions-liberales-individualisme-et-pouvoir-social.html" rel="bookmark" title="Permalink to Les illusions libérales, individualisme et pouvoir social">📖 Les illusions libérales, individualisme et pouvoir social</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/open-space-technology.html" rel="bookmark" title="Permalink to Open space technology">📖 Open space technology</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/rupture-anarchiste-et-trahison-pro-feministe.html" rel="bookmark" title="Permalink to Rupture anarchiste et trahison pro-féministe">📖 Rupture anarchiste et trahison pro-féministe</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/ours.html" rel="bookmark" title="Permalink to Ours">Ours</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/velo.html" rel="bookmark" title="Permalink to Vélo">Vélo</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/un-espace-des-communs-rennais.html" rel="bookmark" title="Permalink to Un espace des communs Rennais ?">Un espace des communs Rennais ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/comment-la-non-violence-protege-letat.html" rel="bookmark" title="Permalink to Comment la non-violence protège l’état">📖 Comment la non-violence protège l’état</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/un-an.html" rel="bookmark" title="Permalink to Brasserie - petit bilan, après un an d’existence">Brasserie - petit bilan, après un an d’existence</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/de-mozilla-a-la-brasserie-du-vieux-singe.html" rel="bookmark" title="Permalink to De Mozilla à la Brasserie du Vieux Singe">De Mozilla à la Brasserie du Vieux Singe</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/groupement-dachats-partage-dexperience.html" rel="bookmark" title="Permalink to Groupement d’achats & partage d’expérience">Groupement d’achats <span class="amp">&</span> partage d’expérience</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/webnotes.html" rel="bookmark" title="Permalink to Webnotes">Webnotes</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/faire-moins.html" rel="bookmark" title="Permalink to Faire moins">Faire moins</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/neipa-3.html" rel="bookmark" title="Permalink to NEIPA #3"><span class="caps">NEIPA</span> #3</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/neipa-2.html" rel="bookmark" title="Permalink to NEIPA #2"><span class="caps">NEIPA</span> #2</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/larrivee-du-trouble-ou-comment-faire-des-neipa.html" rel="bookmark" title="Permalink to L’arrivée du trouble (ou comment faire des NEIPA ?)">L’arrivée du trouble (ou comment faire des <span class="caps">NEIPA</span> ?)</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/un-club-des-brasseurs-amateurs-rennais.html" rel="bookmark" title="Permalink to Un club des brasseurs amateurs Rennais">Un club des brasseurs amateurs Rennais</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/brasserie-du-vieux-singe-installation-en-cours.html" rel="bookmark" title="Permalink to Brasserie du Vieux Singe — Installation en cours.">Brasserie du Vieux Singe — Installation en cours.</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/comment-est-ce-que-vous-generez-vos-formulaires.html" rel="bookmark" title="Permalink to Comment est-ce que vous générez vos formulaires ?">Comment est-ce que vous générez vos formulaires ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/cloisonnement-des-activites.html" rel="bookmark" title="Permalink to Cloisonnement des activités ?">Cloisonnement des activités ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/avez-vous-confiance-en-ssl.html" rel="bookmark" title="Permalink to Avez vous confiance en SSL?">Avez vous confiance en <span class="caps">SSL</span>?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/focusing-on-what-matters.html" rel="bookmark" title="Permalink to Focusing on what matters">Focusing on what matters</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/retours-sur-un-atelier-zeronet.html" rel="bookmark" title="Permalink to Retours sur un atelier ZeroNet">Retours sur un atelier ZeroNet</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/lhorizon.html" rel="bookmark" title="Permalink to L’horizon">L’horizon</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/service-de-nuages-garantir-lintegrite-des-donnees-via-des-signatures-fr.html" rel="bookmark" title="Permalink to Service de nuages : Garantir l’intégrité des données via des signatures">Service de nuages : Garantir l’intégrité des données via des signatures</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/lets-encrypt-haproxy.html" rel="bookmark" title="Permalink to Let’s Encrypt + HAProxy">Let’s Encrypt + HAProxy</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/ateliers-dautodefense-numerique.html" rel="bookmark" title="Permalink to Ateliers d’autodéfense numérique">Ateliers d’autodéfense numérique</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-mail-doit-il-mourir.html" rel="bookmark" title="Permalink to Le mail doit-il mourir ?">Le mail doit-il mourir ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/rencontres-python-francophones-2015.html" rel="bookmark" title="Permalink to Rencontres python francophones, 2015">Rencontres python francophones, 2015</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pyconfr-2015-assemblee-generale.html" rel="bookmark" title="Permalink to PyconFR 2015 — Assemblée générale">PyconFR 2015 — Assemblée générale</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pyconfr-2015-hospital-des-tests-en-prod.html" rel="bookmark" title="Permalink to PyconFR 2015 — Hospital - des tests en prod">PyconFR 2015 — Hospital - des tests en prod</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pyconfr-2015-we-dont-need-your-loop.html" rel="bookmark" title="Permalink to PyconFR 2015 — We don’t need your loop">PyconFR 2015 — We don’t need your loop</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pyconfr-2015-cliquet.html" rel="bookmark" title="Permalink to PyconFR 2015 — Cliquet">PyconFR 2015 — Cliquet</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pyconfr-2015-geoalchemy.html" rel="bookmark" title="Permalink to PyconFR 2015 — Geoalchemy">PyconFR 2015 — Geoalchemy</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pyconfr-2015-sql-alchemy.html" rel="bookmark" title="Permalink to PyconFR 2015 — SQL Alchemy">PyconFR 2015 — <span class="caps">SQL</span> Alchemy</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pyconfr-2015-table-ronde-diversite.html" rel="bookmark" title="Permalink to PyconFR 2015 — Table ronde diversité">PyconFR 2015 — Table ronde diversité</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/web-distribution-signing.html" rel="bookmark" title="Permalink to Web distribution signing">Web distribution signing</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pourquoi-cliquet" rel="bookmark" title="Permalink to Service de nuages : Pourquoi avons-nous fait Cliquet ?">Service de nuages : Pourquoi avons-nous fait Cliquet ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/charte-et-evenements-non-mixtes-au-sein-de-lafpy.html" rel="bookmark" title="Permalink to Charte et événements non-mixtes au sein de l’Afpy">Charte et événements non-mixtes au sein de l’Afpy</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/service-de-nuages-perspectives-pour-lete-fr.html" rel="bookmark" title="Permalink to Service de nuages : Perspectives pour l’été">Service de nuages : Perspectives pour l’été</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/roles.html" rel="bookmark" title="Permalink to Rôles">Rôles</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/service-de-nuages-achievement-unlocked-fr.html" rel="bookmark" title="Permalink to Service de nuages : Achievement unlocked">Service de nuages : Achievement unlocked</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/service-de-nuages-stocker-et-interroger-les-permissions-avec-kinto-fr.html" rel="bookmark" title="Permalink to Service de nuages : Stocker et interroger les permissions avec Kinto">Service de nuages : Stocker et interroger les permissions avec Kinto</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/les-problemes-de-pgp.html" rel="bookmark" title="Permalink to Les problèmes de PGP">Les problèmes de <span class="caps">PGP</span></a></li>
|
||||
<li><a href="https://blog.notmyidea.org/travail-et-creativite.html" rel="bookmark" title="Permalink to Travail et créativité">Travail et créativité</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/simplifier-les-preuves-didentites.html" rel="bookmark" title="Permalink to Simplifier les preuves d’identités">Simplifier les preuves d’identités</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/phrases-de-passe-et-bonnes-pratiques.html" rel="bookmark" title="Permalink to Phrases de passe et bonnes pratiques">Phrases de passe et bonnes pratiques</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/chiffrement.html" rel="bookmark" title="Permalink to Chiffrement">Chiffrement</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/language.html" rel="bookmark" title="Permalink to Language">Language</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html" rel="bookmark" title="Permalink to Service de nuages : La gestion des permissions">Service de nuages : La gestion des permissions</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/eco-systeme-et-stockage-generique.html" rel="bookmark" title="Permalink to Eco-système et stockage générique">Eco-système et stockage générique</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/service-de-nuages-fr.html" rel="bookmark" title="Permalink to Service de nuages !">Service de nuages !</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-secret-du-bonheur.html" rel="bookmark" title="Permalink to Le secret du bonheur">Le secret du bonheur</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/whats-hawk-and-how-to-use-it.html" rel="bookmark" title="Permalink to What’s Hawk and how to use it?">What’s Hawk and how to use it?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/quel-metier-quelle-utilite.html" rel="bookmark" title="Permalink to Quel métier, quelle utilité ?">Quel métier, quelle utilité ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/retours-sur-deux-ans-a-mozilla.html" rel="bookmark" title="Permalink to Retours sur deux ans à Mozilla">Retours sur deux ans à Mozilla</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-carnets-desquisse.html" rel="bookmark" title="Permalink to Des carnets d’esquisse">Des carnets d’esquisse</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/francois-elie-quelle-ecole-pour-la-societe-de-linformation.html" rel="bookmark" title="Permalink to François Elie : Quelle école pour la société de l’information ?">François Elie : Quelle école pour la société de l’information ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/notes-economie-libidinale-et-economie-politique.html" rel="bookmark" title="Permalink to Notes: Économie libidinale et économie politique">Notes: Économie libidinale et économie politique</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-revenu-de-base.html" rel="bookmark" title="Permalink to Le revenu de base">Le revenu de base</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/des-profils-de-confiance-partout-et-pour-tout.html" rel="bookmark" title="Permalink to Des profils de confiance partout et pour tout ?">Des profils de confiance partout et pour tout ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/implementing-cors-in-cornice.html" rel="bookmark" title="Permalink to Implementing CORS in Cornice">Implementing <span class="caps">CORS</span> in Cornice</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/new-year-python-meme-2012.html" rel="bookmark" title="Permalink to New year python meme, 2012">New year python meme, 2012</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/status-board.html" rel="bookmark" title="Permalink to Status board">Status board</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/habitat-collectif.html" rel="bookmark" title="Permalink to Habitat collectif">Habitat collectif</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/tricot.html" rel="bookmark" title="Permalink to Tricot">Tricot</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/astuces-ssh.html" rel="bookmark" title="Permalink to Astuces SSH">Astuces <span class="caps">SSH</span></a></li>
|
||||
<li><a href="https://blog.notmyidea.org/gnome-3-extensions.html" rel="bookmark" title="Permalink to Gnome 3, extensions">Gnome 3, extensions</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/groovy.html" rel="bookmark" title="Permalink to “Groovy”"><span class="dquo">“</span>Groovy”</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/notre-dame-des-landes.html" rel="bookmark" title="Permalink to Notre dame des landes">Notre dame des landes</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/semences-paysannes.html" rel="bookmark" title="Permalink to Semences paysannes">Semences paysannes</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/languages.html" rel="bookmark" title="Permalink to Languages">Languages</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/cheese-code-wrap-up.html" rel="bookmark" title="Permalink to Cheese & code - Wrap-up">Cheese <span class="amp">&</span> code - Wrap-up</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/biere-maison.html" rel="bookmark" title="Permalink to Bière maison !">Bière maison !</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/motivation-benevolat-et-participation.html" rel="bookmark" title="Permalink to Motivation, bénévolat et participation">Motivation, bénévolat et participation</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/cheese-code-party-october-20-21.html" rel="bookmark" title="Permalink to Cheese & Code party: October 20-21">Cheese <span class="amp">&</span> Code party: October 20-21</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/circus-sprint-at-pyconfr.html" rel="bookmark" title="Permalink to Circus sprint at PyconFR">Circus sprint at PyconFR</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pourquoi-mozilla.html" rel="bookmark" title="Permalink to Pourquoi Mozilla?">Pourquoi Mozilla?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/lifestyle.html" rel="bookmark" title="Permalink to Lifestyle">Lifestyle</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/refactoring-cornice.html" rel="bookmark" title="Permalink to Refactoring Cornice">Refactoring Cornice</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/bidouille.html" rel="bookmark" title="Permalink to Bidouille">Bidouille</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/djangocong-2012.html" rel="bookmark" title="Permalink to Djangocong 2012">Djangocong 2012</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/generation-de-formulaires-geolocalises.html" rel="bookmark" title="Permalink to Génération de formulaires, geolocalisés ?">Génération de formulaires, geolocalisés ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/thoughts-about-a-form-generation-service-gis-enabled.html" rel="bookmark" title="Permalink to Thoughts about a form generation service, GIS enabled">Thoughts about a form generation service, <span class="caps">GIS</span> enabled</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/les-dangers-du-livre-numerique.html" rel="bookmark" title="Permalink to Les dangers du livre numérique">Les dangers du livre numérique</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/mozilla-first-months.html" rel="bookmark" title="Permalink to Mozilla, first months">Mozilla, first months</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/introducing-cornice.html" rel="bookmark" title="Permalink to Introducing Cornice">Introducing Cornice</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/quels-usages-pour-linformatique.html" rel="bookmark" title="Permalink to Quels usages pour l’informatique ?">Quels usages pour l’informatique ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html" rel="bookmark" title="Permalink to How are you handling your shared expenses?">How are you handling your shared expenses?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/la-simplicite-volontaire-contre-le-mythe-de-labondance.html" rel="bookmark" title="Permalink to La simplicité volontaire contre le mythe de l’abondance">La simplicité volontaire contre le mythe de l’abondance</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/using-dbpedia-to-get-languages-influences.html" rel="bookmark" title="Permalink to Using dbpedia to get languages influences">Using dbpedia to get languages influences</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pelican-9-months-later.html" rel="bookmark" title="Permalink to Pelican, 9 months later">Pelican, 9 months later</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/using-jpype-to-bridge-python-and-java.html" rel="bookmark" title="Permalink to Using JPype to bridge python and Java">Using JPype to bridge python and Java</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/un-coup-de-main-pour-mon-memoire.html" rel="bookmark" title="Permalink to Un coup de main pour mon mémoire !">Un coup de main pour mon mémoire !</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/travailler-moins-pour-mieux-travailler.html" rel="bookmark" title="Permalink to Travailler moins pour mieux travailler ?">Travailler moins pour mieux travailler ?</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/analyse-users-browsing-context-to-build-up-a-web-recommender.html" rel="bookmark" title="Permalink to Analyse users’ browsing context to build up a web recommender">Analyse users’ browsing context to build up a web recommender</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/working-directly-on-your-server-how-to-backup-and-sync-your-dev-environment-with-unison.html" rel="bookmark" title="Permalink to Working directly on your server? How to backup and sync your dev environment with unison">Working directly on your server? How to backup and sync your dev environment with unison</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/wrap-up-of-the-distutils2-paris-sprint.html" rel="bookmark" title="Permalink to Wrap up of the distutils2 paris’ sprint">Wrap up of the distutils2 paris’ sprint</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pypi-on-couchdb.html" rel="bookmark" title="Permalink to PyPI on CouchDB">PyPI on CouchDB</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/help-me-to-go-to-the-distutils2-paris-sprint.html" rel="bookmark" title="Permalink to Help me to go to the distutils2 paris’ sprint">Help me to go to the distutils2 paris’ sprint</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html" rel="bookmark" title="Permalink to Fork you! or how the social coding can help you">Fork you! or how the social coding can help you</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/how-to-reboot-your-bebox-using-the-cli.html" rel="bookmark" title="Permalink to How to reboot your bebox using the CLI">How to reboot your bebox using the <span class="caps">CLI</span></a></li>
|
||||
<li><a href="https://blog.notmyidea.org/dynamically-change-your-gnome-desktop-wallpaper.html" rel="bookmark" title="Permalink to Dynamically change your gnome desktop wallpaper">Dynamically change your gnome desktop wallpaper</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/how-to-install-nginx-php-53-on-freebsd.html" rel="bookmark" title="Permalink to How to install NGINX + PHP 5.3 on FreeBSD.">How to install <span class="caps">NGINX</span> + <span class="caps">PHP</span> 5.3 on FreeBSD.</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/pelican-a-simple-static-blog-generator-in-python.html" rel="bookmark" title="Permalink to Pelican, a simple static blog generator in python">Pelican, a simple static blog generator in python</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/an-amazing-summer-of-code-working-on-distutils2.html" rel="bookmark" title="Permalink to An amazing summer of code working on distutils2">An amazing summer of code working on distutils2</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/sprinting-on-distutils2-in-tours.html" rel="bookmark" title="Permalink to Sprinting on distutils2 in Tours">Sprinting on distutils2 in Tours</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/introducing-the-distutils2-index-crawlers.html" rel="bookmark" title="Permalink to Introducing the distutils2 index crawlers">Introducing the distutils2 index crawlers</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/use-restructured-text-rest-to-power-your-presentations.html" rel="bookmark" title="Permalink to Use Restructured Text (ReST) to power your presentations">Use Restructured Text (ReST) to power your presentations</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/first-week-working-on-distutils2.html" rel="bookmark" title="Permalink to first week working on distutils2">first week working on distutils2</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/a-distutils2-gsoc.html" rel="bookmark" title="Permalink to A Distutils2 GSoC">A Distutils2 GSoC</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-temps-des-graces-courrez-y.html" rel="bookmark" title="Permalink to Le temps des grâces, courrez-y !">Le temps des grâces, courrez-y !</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/semaine-de-lenvironnement-la-consommation-etudiante.html" rel="bookmark" title="Permalink to Semaine de l’environnement: La consommation étudiante">Semaine de l’environnement: La consommation étudiante</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/python-go.html" rel="bookmark" title="Permalink to Python ? go !">Python ? go !</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/amap-media-paniers-bio-a-5e.html" rel="bookmark" title="Permalink to AMAP + Média = Paniers bio à 5e ?!"><span class="caps">AMAP</span> + Média = Paniers bio à 5e ?!</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
</body>
|
||||
</html>
|
22
index2.html
22
index2.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index3.html
22
index3.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index4.html
22
index4.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index5.html
22
index5.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index6.html
22
index6.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index7.html
22
index7.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index8.html
22
index8.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
22
index9.html
22
index9.html
|
@ -15,6 +15,16 @@
|
|||
<li><a class="" href="https://blog.notmyidea.org/pages/projets.html">Projets</a></li>
|
||||
</section>
|
||||
<h1></h1>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-06T00:00:00+02:00">06 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/fatigue-relationnelle.html" id="page-title">Fatigue relationnelle</a></h1>
|
||||
Depuis peu, je me retrouve confronté à mon manque d’envie d’être avec d’autres personnes. Comme si mon quota d’interactions sociales était plus rapidement atteint qu’il y a quelques années. Je ne...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2022-05-01T00:00:00+02:00">01 mai 2022</time>
|
||||
<h1><a href="https://blog.notmyidea.org/accueil-transmission-et-confiance.html" id="page-title">Accueil, transmission et confiance</a></h1>
|
||||
Nous avons depuis peu une nouvelle recrue à la brasserie. Je m’en réjouis pour plusieurs raisons : Ma charge de travail devrait baisser de manière considérable et me permettre d’avancer sur des...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-11-11T00:00:00+01:00">11 novembre 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/conflit.html" id="page-title">Conflit</a></h1>
|
||||
|
@ -55,19 +65,11 @@
|
|||
<h1><a href="https://blog.notmyidea.org/reconnexion.html" id="page-title">Reconnexion ?</a></h1>
|
||||
Cela fait un an que j’ai décidé de me déconnecter pour laisser plus de place à d’autres projets. Me détacher de la maintenance de ihatemoney ; Supprimer la plupart des applications sur mes...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2021-01-01T00:00:00+01:00">01 janvier 2021</time>
|
||||
<h1><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" id="page-title">📖 Un féminisme décolonial</a></h1>
|
||||
J’ai aussi appris très tôt que si l’État veut écraser un mouvement ,il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d’une part pour réprimer, d’autre part pour...
|
||||
</section>
|
||||
<section class="section index">
|
||||
<time datetime="2020-03-06T00:00:00+01:00">06 mars 2020</time>
|
||||
<h1><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" id="page-title">Forum ouvert, animation et posture</a></h1>
|
||||
Début Février j’ai participé à un Forum Ouvert. Il s’agit de la troisième fois, et cette fois ci j’étais particulièrement attentif aux procédés mis en place pour sa tenue, puisque je faisais...
|
||||
</section>
|
||||
<section>
|
||||
<h1>Anciens articles...</h1>
|
||||
<ul>
|
||||
<li><a href="https://blog.notmyidea.org/un-feminisme-decolonial.html" rel="bookmark" title="Permalink to Un féminisme décolonial">📖 Un féminisme décolonial</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/forum-ouvert-animation-et-posture.html" rel="bookmark" title="Permalink to Forum ouvert, animation et posture">Forum ouvert, animation et posture</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/artfevre-2020-defi-artistique-en-fevrier.html" rel="bookmark" title="Permalink to Artfevre 2020 - Défi artistique en février">Artfevre 2020 - Défi artistique en février</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/le-piege-du-developpement-personnel.html" rel="bookmark" title="Permalink to Le piège du développement personnel">Le piège du développement personnel</a></li>
|
||||
<li><a href="https://blog.notmyidea.org/packager-du-python-pour-debian.html" rel="bookmark" title="Permalink to Packager du python pour Debian">Packager du python pour Debian</a></li>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<article>
|
||||
<p><em>Cet article est repris depuis le blog « Service de Nuages » de mon équipe à Mozilla</em></p>
|
||||
<p>Aujourd’hui, c’est jour de fête : nous venons de publier Cliquet <strong>2.0</strong>
|
||||
<a class="footnote-reference" href="#id5" id="id1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#id6" id="id2">[2]</a>.</p>
|
||||
<a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> et Kinto <strong>1.0</strong> <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a>.</p>
|
||||
<blockquote class="epigraph">
|
||||
<p>L’aboutissement de 3 années de R&D !</p>
|
||||
<p class="attribution">—Rémy</p>
|
||||
|
@ -49,7 +49,7 @@ fonctionnalités que l’on attendait depuis longtemps, comme la gestion des
|
|||
s’empêcher de voir toutes les choses qui doivent toujours être améliorées,
|
||||
notamment sur la documentation et les performances.</p>
|
||||
<p>On peut déjà entrevoir à quoi l’écosystème va ressembler, et c’est prometteur.
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#id7" id="id3">[3]</a> dont l’objectif est de synchroniser les
|
||||
Il y a déjà un client JavaScript <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a> dont l’objectif est de synchroniser les
|
||||
données locales du navigateur avec une instance de Kinto.</p>
|
||||
<p>N’hésitez vraiment pas à nous solliciter pour discuter avec vous si vous avez
|
||||
des problématiques proches : nous accueillons avec plaisir toutes sortes de
|
||||
|
@ -58,34 +58,34 @@ la solution ou de la manière de communiquer avec le monde extérieur. Si vous
|
|||
souhaitez nous contacter, vous pouvez laisser un commentaire ici ou nous
|
||||
contacter sur le canal <a class="reference external" href="irc://irc.mozilla.org/#storage">#storage</a> sur le réseau <span class="caps">IRC</span> de Mozilla.</p>
|
||||
<p>Et ce n’est que le début ! Le futur se dessine dans notre feuille de route
|
||||
<a class="footnote-reference" href="#id8" id="id4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="id5" rules="none">
|
||||
<a class="footnote-reference" href="#footnote-4" id="footnote-reference-4">[4]</a>.</p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l’implémentation de
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td><strong>Cliquet</strong> est une boite à outils pour faciliter l’implémentation de
|
||||
microservices <span class="caps">HTTP</span> tels que les APIs <em><span class="caps">REST</span></em> ayant des besoins de
|
||||
synchronisation.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td><strong>Kinto</strong> est un service pour stocker, synchroniser et partager des données
|
||||
arbitraires, attachées à un compte Firefox (mais le système d’authentification
|
||||
est <em>pluggable</em>).</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id7" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l’<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Cliquetis, la bibliothèque JavaScript pour consommer l’<span class="caps">API</span> <span class="caps">HTTP</span> de Kinto —
|
||||
<a class="reference external" href="https://github.com/mozilla-services/cliquetis">https://github.com/mozilla-services/cliquetis</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id8" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-4" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-4">[4]</a></td><td>La feuille de route de Kinto: <a class="reference external" href="https://github.com/mozilla-services/kinto/wiki/roadmap">https://github.com/mozilla-services/kinto/wiki/roadmap</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
|
|
@ -69,8 +69,8 @@ obtenir le même résultat à partir de la même entrée.</p>
|
|||
une collection <span class="caps">JSON</span>. Chaque élément contient un identifiant unique généré sur
|
||||
le client.</p>
|
||||
<p>Par exemple, un enregistrement peut ressembler à :</p>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">"id"</span><span class="o">:</span> <span class="s2">"b7dded96-8df0-8af8-449a-8bc47f71b4c4"</span><span class="p">,</span>
|
||||
<span class="s2">"fingerprint"</span><span class="o">:</span> <span class="s2">"11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3"</span><span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="p">{</span><span class="s2">"id"</span><span class="o">:</span><span class="w"> </span><span class="s2">"b7dded96-8df0-8af8-449a-8bc47f71b4c4"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s2">"fingerprint"</span><span class="o">:</span><span class="w"> </span><span class="s2">"11:D5:D2:0A:9A:F8:D9:FC:23:6E:5C:5C:30:EC:AF:68:F5:68:FB:A3"</span><span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Le <em>hash</em> de la collection est ensuite calculé, signé puis envoyé au serveur
|
||||
(voir plus bas pour les détails).</p>
|
||||
|
|
|
@ -55,7 +55,7 @@ une réponse satisfaisante à ces besoins.</p>
|
|||
<div class="section" id="le-concept-de-principal">
|
||||
<h3>Le concept de « principal »</h3>
|
||||
<p>Un <em>principal</em>, en sécurité informatique, est une entité qui peut être
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#id2" id="id1">[1]</a> En Français il s’agit
|
||||
authentifiée par un système informatique. <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a> En Français il s’agit
|
||||
du « commettant », l’acteur qui commet l’action (oui, le terme est conceptuel !)</p>
|
||||
<p>Il peut s’agir aussi bien d’un individu, d’un ordinateur, d’un
|
||||
service ou d’un groupe regroupant l’une de ces entités, ce qui
|
||||
|
@ -64,10 +64,10 @@ est plus large que le classique « <em>user id</em> ».</p>
|
|||
<p>Par exemple, un utilisateur est identifié de manière unique lors de la
|
||||
connexion par le système d’authentification dont le rôle est de
|
||||
définir une liste de <em>principals</em> pour l’utilisateur se connectant.</p>
|
||||
<table class="docutils footnote" frame="void" id="id2" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Pour en savoir plus sur les <em>principals</em> :
|
||||
<a class="reference external" href="https://en.wikipedia.org/wiki/Principal_%28computer_security%29">https://en.wikipedia.org/wiki/Principal_%28computer_security%29</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -76,17 +76,17 @@ définir une liste de <em>principals</em> pour l’utilisateur se conne
|
|||
<h3>La différence entre rôle et groupe</h3>
|
||||
<p>De but en blanc, il n’est pas évident de définir précisément la
|
||||
différence entre ces deux concepts qui permettent d’associer
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#id4" id="id3">[2]</a></p>
|
||||
des permissions à un groupe de <em>principals</em>. <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<p>La différence est principalement sémantique. Mais on peut y voir une
|
||||
différence dans la « direction » de la relation entre les deux concepts.</p>
|
||||
<ul class="simple">
|
||||
<li>Un rôle est une liste de permissions que l’on associe à un <em>principal</em>.</li>
|
||||
<li>Un groupe est une liste de <em>principals</em> que l’on peut associer à une permission.</li>
|
||||
</ul>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[2]</a></td><td>Plus d’informations :
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Plus d’informations :
|
||||
<a class="reference external" href="http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference">http://stackoverflow.com/questions/7770728/group-vs-role-any-real-difference</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -105,7 +105,7 @@ concept repose sur <a class="reference external" href="https://fr.wikipedia.org/
|
|||
<a class="reference external" href="https://tools.ietf.org/html/draft-dejong-remotestorage-05">*Remote Storage*</a>,
|
||||
mais pour l’instant les cas d’utilisations ne se sont pas encore présentés officiellement.</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<div class="section" id="a-venir-1">
|
||||
<h3>À venir</h3>
|
||||
<p>Nous serons probablement amenés à introduire la gestion de la concurrence dans
|
||||
le client <span class="caps">JS</span>, en complément de ce qui a été fait sur le serveur, pour permettre
|
||||
|
@ -120,17 +120,17 @@ que <a class="reference external" href="https://github.com/mozilla-services/kint
|
|||
<h2>Contenus applicatifs de Firefox</h2>
|
||||
<p>Aujourd’hui Firefox a un cycle de release de six semaines. Un des objectifs
|
||||
consiste à désolidariser certains contenus applicatifs de ces cycles
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, …</em>) <a class="footnote-reference" href="#id4" id="id3">[1]</a>.</p>
|
||||
relativement longs (ex. <em>règles de securité, dictionnaires, traductions, …</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</p>
|
||||
<p>Il s’agit de données <span class="caps">JSON</span> et binaire qui doivent être versionnées et synchronisées par
|
||||
les navigateurs (<em>lecture seule</em>).</p>
|
||||
<p>Il y a plusieurs outils officiels qui existent pour gérer ça (<em>Balrog</em>, <em>Shavar</em>, …),
|
||||
et pour l’instant, aucun choix n’a été fait. Mais lors des conversations avec
|
||||
l’équipe en charge du projet, ce fût vraiment motivant de voir que même pour
|
||||
ce genre de besoins internes, <em>Kinto</em> est tout aussi pertinent !</p>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id3">[1]</a></td><td>La bonne nouvelle c’est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>La bonne nouvelle c’est que toutes les fonctionnalités <em>third-party</em> qui ont
|
||||
été intégrées récemment vont redevenir des <em>add-ons</em> \o/.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -144,7 +144,7 @@ un prototype pour améliorer <em>Awesome bar</em>, qui fusionnerait <span class=
|
|||
<p>Nous ne pouvons pas en dire beaucoup plus pour l’instant, mais les fonctionnalités
|
||||
de collections d’enregistrements partagées entre utilisateurs de <em>Kinto</em>
|
||||
correspondent parfaitement à ce qui est envisagé pour le futur du navigateur :)</p>
|
||||
<div class="section" id="id5">
|
||||
<div class="section" id="a-venir-2">
|
||||
<h3>À venir</h3>
|
||||
<p>Nous serons donc probablement amenés, avant de la fin de l’année, à introduire des
|
||||
fonctionnalités d’indexation et de recherche <em>full-text</em> (comprendre <em>ElasticSearch</em>).
|
||||
|
@ -166,7 +166,7 @@ ou un équivalent à <em>Alexa.com Top 500</em> pour fournir la complétion d
|
|||
interroger le moteur de recherche.</p>
|
||||
<p>L’exercice pourrait être poussé jusqu’à la synchronisation d’états <em>React</em>
|
||||
entre périphériques (par exemple pour les onglets).</p>
|
||||
<div class="section" id="id7">
|
||||
<div class="section" id="a-venir-3">
|
||||
<h3>À venir</h3>
|
||||
<p>Si <em>browser.html</em> doit stocker des données de navigation, il faudra ajouter
|
||||
des fonctionnalités de chiffrement sur le client <span class="caps">JS</span>. Ça tombe bien, c’est un
|
||||
|
|
|
@ -104,7 +104,7 @@ d’écriture sur une collection d’enregistrements.</li>
|
|||
<li><strong>La synchronisation</strong> : une série de leviers pour récupérer et renvoyer des
|
||||
changements sur les données, sans perte ni collision, en utilisant les timestamps.</li>
|
||||
<li><strong>Les permissions</strong> : les droits d’un utilisateur sur une collection ou un enregistrement
|
||||
(<em>encore frais et sur le point d’être documenté</em>) <a class="footnote-reference" href="#id3" id="id1">[1]</a>.</li>
|
||||
(<em>encore frais et sur le point d’être documenté</em>) <a class="footnote-reference" href="#footnote-1" id="footnote-reference-1">[1]</a>.</li>
|
||||
<li><strong>Opérations par lot</strong>: une <span class="caps">URL</span> qui permet d’envoyer une série de requêtes
|
||||
décrites en <span class="caps">JSON</span> et d’obtenir les réponses respectives.</li>
|
||||
</ul>
|
||||
|
@ -126,17 +126,17 @@ de <em>Firefox Sync</em> pour la gestion de la concurrence et de l’«
|
|||
<p>Il est <a class="reference external" href="http://cliquet.readthedocs.org/en/latest/api/index.html">documenté en détail</a>.</p>
|
||||
<p>Dans un monde idéal, ce protocole serait versionné, et formalisé dans une <span class="caps">RFC</span>.
|
||||
En rêve, il existerait même plusieurs implémentations avec des technologies différentes
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#id4" id="id2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="id3" rules="none">
|
||||
(Python, Go, Node, etc.). <a class="footnote-reference" href="#footnote-2" id="footnote-reference-2">[2]</a></p>
|
||||
<table class="docutils footnote" frame="void" id="footnote-1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-1">[1]</a></td><td>Voir notre <a class="reference external" href="https://blog.notmyidea.org/service-de-nuages-la-gestion-des-permissions-fr.html">article dédié sur les permissions</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id4" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-2" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-2">[2]</a></td><td>Rappel: nous sommes une toute petite équipe !</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -144,7 +144,7 @@ En rêve, il existerait même plusieurs implémentations avec des technologies d
|
|||
<h2>Le toolkit</h2>
|
||||
<div class="section" id="choix-techniques">
|
||||
<h3>Choix techniques</h3>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#id6" id="id5">[3]</a>.</p>
|
||||
<p><em>Cliquet</em> implémente le protocole en Python (<em>2.7, 3.4+, pypy</em>), avec <a class="reference external" href="http://trypyramid.com/">Pyramid</a> <a class="footnote-reference" href="#footnote-3" id="footnote-reference-3">[3]</a>.</p>
|
||||
<p><strong>Pyramid</strong> est un framework Web qui va prendre en charge tout la partie <span class="caps">HTTP</span>,
|
||||
et qui s’avère pertinent aussi bien pour des petits projets que des plus ambitieux.</p>
|
||||
<p><strong>Cornice</strong> est une extension de <em>Pyramid</em>, écrite en partie par Alexis et Tarek,
|
||||
|
@ -157,10 +157,10 @@ rigoureux, gérer les entêtes <span class="caps">CORS</span>, fournir la valida
|
|||
<p><strong>Cliquet</strong> utilise les deux précédents pour implémenter le protocole et fournir
|
||||
des abstractions, mais on a toujours <em>Pyramid</em> et <em>Cornice</em> sous la main pour
|
||||
aller au delà de ce qui est proposé !</p>
|
||||
<table class="docutils footnote" frame="void" id="id6" rules="none">
|
||||
<table class="docutils footnote" frame="void" id="footnote-3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id5">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
<tr><td class="label"><a class="fn-backref" href="#footnote-reference-3">[3]</a></td><td>Au tout début nous avons commencé une implémentation avec <em>Python-Eve</em>
|
||||
(Flask), mais n’étions pas satisfaits de l’approche pour la configuration
|
||||
de l’<span class="caps">API</span>. En particulier du côté magique.</td></tr>
|
||||
</tbody>
|
||||
|
@ -252,18 +252,18 @@ avec <em>Colander</em>, et ensuite déclarer une resource:</p>
|
|||
<p>Désormais, la resource <span class="caps">CRUD</span> est disponible sur <tt class="docutils literal">/v1/bookmarks</tt>, avec toutes
|
||||
les fonctionnalités de synchronisation, filtrage, tri, pagination, timestamp, etc.
|
||||
De base les enregistrements sont privés, par utilisateur.</p>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span> <span class="err">h</span><span class="kc">tt</span><span class="err">p</span> <span class="err">GET</span> <span class="s2">"http://localhost:8000/v1/bookmarks"</span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span> <span class="mi">200</span> <span class="err">OK</span>
|
||||
<span class="err">...</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">"data"</span><span class="p">:</span> <span class="p">[</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nt">"url"</span><span class="p">:</span> <span class="s2">"http://cliquet.readthedocs.org"</span><span class="p">,</span>
|
||||
<span class="nt">"id"</span><span class="p">:</span> <span class="s2">"cc103eb5-0c80-40ec-b6f5-dad12e7d975e"</span><span class="p">,</span>
|
||||
<span class="nt">"last_modified"</span><span class="p">:</span> <span class="mi">1437034418940</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">}</span>
|
||||
<div class="highlight"><pre><span></span><span class="err">$</span><span class="w"> </span><span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="w"> </span><span class="err">GET</span><span class="w"> </span><span class="s2">"http://localhost:8000/v1/bookmarks"</span><span class="w"></span>
|
||||
<span class="err">HTTP/</span><span class="mf">1.1</span><span class="w"> </span><span class="mi">200</span><span class="w"> </span><span class="err">OK</span><span class="w"></span>
|
||||
<span class="err">...</span><span class="w"></span>
|
||||
<span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://cliquet.readthedocs.org"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"cc103eb5-0c80-40ec-b6f5-dad12e7d975e"</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="nt">"last_modified"</span><span class="p">:</span><span class="w"> </span><span class="mi">1437034418940</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">]</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="etape-3">
|
||||
|
|
|
@ -138,13 +138,13 @@ avantages (lisibilité, unicité, cohérence avec les URLs)</p>
|
|||
<div class="section" id="les-tables">
|
||||
<h3>Les tables</h3>
|
||||
<p>Pour le stockage des principals et des permissions:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">user</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">perms</span><span class="p">(</span><span class="n">ace</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">user</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">perms</span><span class="p">(</span><span class="n">ace</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La table <em>perms</em> va associer des <em>principals</em> à chaque <em><span class="caps">ACE</span></em> (e.g.“/buckets/blog:write“).</p>
|
||||
<p>Pour le stockage des données:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">object</span><span class="p">(</span><span class="n">id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">type</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="n">parent_id</span> <span class="nb">TEXT</span><span class="p">,</span> <span class="k">data</span> <span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="n">write_principals</span> <span class="nb">TEXT</span><span class="p">[],</span> <span class="n">read_principals</span> <span class="nb">TEXT</span><span class="p">[]);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">object</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">write_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[],</span><span class="w"> </span><span class="n">read_principals</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">[]);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>La colonne <em>parent_id</em> permet de savoir à qui appartient l’objet
|
||||
(e.g. groupe d’un <em>bucket</em>, collection d’un <em>bucket</em>, <em>record</em> d’une
|
||||
|
@ -152,53 +152,53 @@ collection, …).</p>
|
|||
</div>
|
||||
<div class="section" id="exemple-d-utilisateur">
|
||||
<h3>Exemple d’utilisateur</h3>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">'fxa:alexis'</span><span class="p">,</span> <span class="s1">'{}'</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">'fxa:alexis'</span><span class="p">,</span><span class="w"> </span><span class="s1">'{}'</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">user</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span><span class="s1">'fxa:natim'</span><span class="p">,</span>
|
||||
<span class="s1">'{"/buckets/blog/groups/moderators"}'</span><span class="p">);</span>
|
||||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">'fxa:natim'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{"/buckets/blog/groups/moderators"}'</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="exemple-d-objets">
|
||||
<h3>Exemple d’objets</h3>
|
||||
<div class="section" id="bucket">
|
||||
<h4>Bucket</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">'/buckets/blog'</span><span class="p">,</span>
|
||||
<span class="s1">'bucket'</span><span class="p">,</span>
|
||||
<span class="k">NULL</span><span class="p">,</span>
|
||||
<span class="s1">'{"name": "blog"}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">'{}'</span><span class="p">,</span> <span class="s1">'{"fxa:alexis"}'</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'bucket'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{"name": "blog"}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{}'</span><span class="p">,</span><span class="w"> </span><span class="s1">'{"fxa:alexis"}'</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="group">
|
||||
<h4>Group</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">'/buckets/blog/groups/moderators'</span><span class="p">,</span>
|
||||
<span class="s1">'group'</span><span class="p">,</span>
|
||||
<span class="s1">'/buckets/blog'</span><span class="p">,</span>
|
||||
<span class="s1">'{"name": "moderators", "members": ['</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">']}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">'{}'</span><span class="p">,</span> <span class="s1">'{}'</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog/groups/moderators'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'group'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{"name": "moderators", "members": ['</span><span class="n">fxa</span><span class="p">:</span><span class="n">natim</span><span class="s1">']}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{}'</span><span class="p">,</span><span class="w"> </span><span class="s1">'{}'</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Ce groupe peut être gére par <tt class="docutils literal">fxa:alexis</tt> puisqu’il a la permission
|
||||
<tt class="docutils literal">write</tt> dans le <em>bucket</em> parent.</p>
|
||||
</div>
|
||||
<div class="section" id="collection">
|
||||
<h4>Collection</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">'/buckets/blog/collections/articles'</span><span class="p">,</span>
|
||||
<span class="s1">'collection'</span><span class="p">,</span>
|
||||
<span class="s1">'/buckets/blog'</span><span class="p">,</span>
|
||||
<span class="s1">'{"name": "article"}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">'{"system.Everyone"}'</span><span class="p">,</span>
|
||||
<span class="s1">'{"/buckets/blog/groups/moderators"}'</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog/collections/articles'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'collection'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{"name": "article"}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{"system.Everyone"}'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{"/buckets/blog/groups/moderators"}'</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Cette collection d’articles peut être lue par tout le monde,
|
||||
et gérée par les membres du groupe <tt class="docutils literal">moderators</tt>, ainsi que
|
||||
|
@ -206,56 +206,56 @@ et gérée par les membres du groupe <tt class="docutils literal">moderators</tt
|
|||
</div>
|
||||
<div class="section" id="records">
|
||||
<h4>Records</h4>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="k">object</span> <span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="k">type</span><span class="p">,</span> <span class="n">parent_id</span><span class="p">,</span> <span class="k">data</span><span class="p">,</span>
|
||||
<span class="n">read_principals</span><span class="p">,</span> <span class="n">write_principals</span><span class="p">)</span>
|
||||
<span class="k">VALUES</span> <span class="p">(</span>
|
||||
<span class="s1">'/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200'</span><span class="p">,</span>
|
||||
<span class="s1">'record'</span><span class="p">,</span>
|
||||
<span class="s1">'/buckets/blog/collections/articles'</span><span class="p">,</span>
|
||||
<span class="s1">'{"name": "02f3f76f-7059-4ae4-888f-2ac9824e9200",</span>
|
||||
<span class="s1"> "title": "Stocker les permissions", ...}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span>
|
||||
<span class="s1">'{}'</span><span class="p">,</span> <span class="s1">'{}'</span><span class="p">);</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="n">parent_id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">read_principals</span><span class="p">,</span><span class="w"> </span><span class="n">write_principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog/collections/articles/records/02f3f76f-7059-4ae4-888f-2ac9824e9200'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'record'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog/collections/articles'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{"name": "02f3f76f-7059-4ae4-888f-2ac9824e9200",</span>
|
||||
<span class="s1"> "title": "Stocker les permissions", ...}'</span><span class="p">::</span><span class="n">JSONB</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'{}'</span><span class="p">,</span><span class="w"> </span><span class="s1">'{}'</span><span class="p">);</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="interroger-les-permissions">
|
||||
<h3>Interroger les permissions</h3>
|
||||
<div class="section" id="id1">
|
||||
<div class="section" id="obtenir-la-liste-des-principals-d-un-ace-1">
|
||||
<h4>Obtenir la liste des “principals” d’un <span class="caps">ACE</span></h4>
|
||||
<p>Comme vu plus haut, pour vérifier une permission, on fait l’union des
|
||||
<em>principals</em> requis par les objets hérités, et on teste leur
|
||||
intersection avec ceux de l’utilisateur:</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span> <span class="n">required_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span> <span class="k">AS</span> <span class="n">p</span>
|
||||
<span class="k">FROM</span> <span class="n">perms</span>
|
||||
<span class="k">WHERE</span> <span class="n">ace</span> <span class="k">IN</span> <span class="p">(</span>
|
||||
<span class="s1">'/buckets/blog:write'</span><span class="p">,</span>
|
||||
<span class="s1">'/buckets/blog:read'</span><span class="p">,</span>
|
||||
<span class="s1">'/buckets/blog/collections/article:write'</span><span class="p">,</span>
|
||||
<span class="s1">'/buckets/blog/collections/article:read'</span><span class="p">)</span>
|
||||
<span class="p">),</span>
|
||||
<span class="n">user_principals</span> <span class="k">AS</span> <span class="p">(</span>
|
||||
<span class="k">SELECT</span> <span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="k">user</span>
|
||||
<span class="k">WHERE</span> <span class="n">id</span> <span class="o">=</span> <span class="s1">'fxa:natim'</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">SELECT</span> <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span>
|
||||
<span class="k">FROM</span> <span class="n">user_principals</span> <span class="n">a</span>
|
||||
<span class="k">INNER</span> <span class="k">JOIN</span> <span class="n">required_principals</span> <span class="n">b</span>
|
||||
<span class="k">ON</span> <span class="n">a</span><span class="p">.</span><span class="n">p</span> <span class="o">=</span> <span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">p</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">perms</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">ace</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog:write'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog:read'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog/collections/article:write'</span><span class="p">,</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="s1">'/buckets/blog/collections/article:read'</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">),</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">unnest</span><span class="p">(</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">user</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'fxa:natim'</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">user_principals</span><span class="w"> </span><span class="n">a</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">INNER</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">required_principals</span><span class="w"> </span><span class="n">b</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">p</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="section" id="filtrer-les-objets-en-fonction-des-permissions">
|
||||
<h4>Filtrer les objets en fonction des permissions</h4>
|
||||
<p>Pour filtrer les objets, on fait une simple intersection de liste
|
||||
(<em>merci PostgreSQL</em>):</p>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="k">data</span>
|
||||
<span class="k">FROM</span> <span class="k">object</span> <span class="n">o</span><span class="p">,</span> <span class="k">user</span> <span class="n">u</span>
|
||||
<span class="k">WHERE</span> <span class="n">o</span><span class="p">.</span><span class="k">type</span> <span class="o">=</span> <span class="s1">'record'</span>
|
||||
<span class="k">AND</span> <span class="n">o</span><span class="p">.</span><span class="n">parent_id</span> <span class="o">=</span> <span class="s1">'/buckets/blog/collections/article'</span>
|
||||
<span class="k">AND</span> <span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span> <span class="o">&&</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span> <span class="k">OR</span>
|
||||
<span class="n">o</span><span class="p">.</span><span class="n">write_principals</span> <span class="o">&&</span> <span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span>
|
||||
<span class="k">AND</span> <span class="n">u</span><span class="p">.</span><span class="n">id</span> <span class="o">=</span> <span class="s1">'fxa:natim'</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">data</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">object</span><span class="w"> </span><span class="n">o</span><span class="p">,</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">u</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="k">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'record'</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">parent_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'/buckets/blog/collections/article'</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="p">(</span><span class="n">o</span><span class="p">.</span><span class="n">read_principals</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="w"> </span><span class="k">OR</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">o</span><span class="p">.</span><span class="n">write_principals</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">principals</span><span class="p">)</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">u</span><span class="p">.</span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'fxa:natim'</span><span class="p">;</span><span class="w"></span>
|
||||
</pre></div>
|
||||
<p>Les listes s’indexent bien, notamment grâce aux <a class="reference external" href="http://www.postgresql.org/docs/current/static/indexes-types.html">index <span class="caps">GIN</span></a>.</p>
|
||||
</div>
|
||||
|
|
|
@ -67,8 +67,8 @@ ailleurs, pour finalement déployer la chose chez
|
|||
<p>Après quelques péripéties, j’ai réussi à faire tourner le tout, ça à été
|
||||
un peu la bataille au départ pour installer virtualenv (j’ai du faire
|
||||
des changements dans mon <span class="caps">PATH</span> pour que ça puisse marcher), voici mon `.bash_profile`:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span> <span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span>
|
||||
<span class="k">export</span> <span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="n">PYTHONPATH</span><span class="o">=~/</span><span class="n">modules</span><span class="o">/</span><span class="w"></span>
|
||||
<span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">bin</span><span class="p">:</span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="p">:</span><span class="o">$</span><span class="n">PATH</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>Et après y’a plus qu’à installer avec `easy_install`:</p>
|
||||
|
|
|
@ -62,16 +62,16 @@ $ ant
|
|||
</code></pre></div>
|
||||
|
||||
<p>Here is a simple example of how to use boilerpipe in Java, from their sources</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span> <span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">java.net.URL</span><span class="p">;</span>
|
||||
<span class="kn">import</span> <span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">package</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.demo</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">java.net.URL</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="kn">import</span><span class="w"> </span><span class="nn">de.l3s.boilerpipe.extractors.ArticleExtractor</span><span class="p">;</span><span class="w"></span>
|
||||
|
||||
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Oneliner</span> <span class="p">{</span>
|
||||
<span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="p">(</span><span class="kd">final</span> <span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="p">{</span>
|
||||
<span class="kd">final</span> <span class="n">URL</span> <span class="n">url</span> <span class="o">=</span> <span class="k">new</span> <span class="n">URL</span><span class="p">(</span><span class="s">"http://notmyidea.org"</span><span class="p">);</span>
|
||||
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Oneliner</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="kd">final</span><span class="w"> </span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">URL</span><span class="w"> </span><span class="n">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">URL</span><span class="p">(</span><span class="s">"http://notmyidea.org"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">ArticleExtractor</span><span class="p">.</span><span class="na">INSTANCE</span><span class="p">.</span><span class="na">getText</span><span class="p">(</span><span class="n">url</span><span class="p">));</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>To run it:</p>
|
||||
|
|
|
@ -160,33 +160,33 @@ on the server (so you don’t need to store anything).</p>
|
|||
finally came up factorizing everything in a library for express, named
|
||||
<a href="https://github.com/mozilla-services/express-hawkauth">express-hawkauth</a>.</p>
|
||||
<p>In order to plug it in your application, you’ll need to use it as a middleware:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span>
|
||||
<span class="k">var</span> <span class="n">express</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">"express"</span><span class="p">);</span>
|
||||
<span class="k">var</span> <span class="n">hawk</span> <span class="o">=</span> <span class="n">require</span><span class="p">(</span><span class="s2">"express-hawkauth"</span><span class="p">);</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">express</span><span class="p">();</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">javascript</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">express</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">"express"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">require</span><span class="p">(</span><span class="s2">"express-hawkauth"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="n">app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">express</span><span class="p">();</span><span class="w"></span>
|
||||
|
||||
<span class="k">var</span> <span class="n">hawkMiddleware</span> <span class="o">=</span> <span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span>
|
||||
<span class="n">hawkOptions</span><span class="p">:</span> <span class="p">{},</span>
|
||||
<span class="n">getSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="k">pass</span> <span class="n">to</span> <span class="n">the</span> <span class="n">cb</span> <span class="n">the</span> <span class="n">key</span> <span class="ow">and</span> <span class="n">algorithm</span> <span class="k">for</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">given</span> <span class="n">token</span> <span class="n">id</span><span class="o">.</span> <span class="n">First</span> <span class="n">argument</span> <span class="n">of</span> <span class="n">the</span> <span class="n">callback</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span>
|
||||
<span class="o">//</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="s2">"key"</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">:</span> <span class="s2">"sha256"</span><span class="p">});</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">createSession</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">which</span> <span class="n">stores</span> <span class="n">a</span> <span class="n">session</span> <span class="k">for</span> <span class="n">the</span> <span class="n">given</span> <span class="n">id</span> <span class="ow">and</span> <span class="n">key</span><span class="o">.</span>
|
||||
<span class="o">//</span> <span class="n">Argument</span> <span class="n">returned</span> <span class="k">is</span> <span class="n">a</span> <span class="n">potential</span> <span class="n">error</span><span class="o">.</span>
|
||||
<span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
<span class="n">setUser</span><span class="p">:</span> <span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span> <span class="n">res</span><span class="p">,</span> <span class="n">tokenId</span><span class="p">,</span> <span class="n">cb</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">//</span> <span class="n">A</span> <span class="n">function</span> <span class="n">that</span> <span class="n">uses</span> <span class="n">req</span> <span class="ow">and</span> <span class="n">res</span><span class="p">,</span> <span class="n">the</span> <span class="n">hawkId</span> <span class="n">when</span> <span class="n">they</span><span class="s1">'re known so</span>
|
||||
<span class="o">//</span> <span class="n">that</span> <span class="n">it</span> <span class="n">can</span> <span class="n">tweak</span> <span class="n">it</span><span class="o">.</span> <span class="n">For</span> <span class="n">instance</span><span class="p">,</span> <span class="n">you</span> <span class="n">can</span> <span class="n">store</span> <span class="n">the</span> <span class="n">tokenId</span> <span class="k">as</span> <span class="n">the</span>
|
||||
<span class="o">//</span> <span class="n">user</span><span class="o">.</span>
|
||||
<span class="n">req</span><span class="o">.</span><span class="n">user</span> <span class="o">=</span> <span class="n">tokenId</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">var</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">hawk</span><span class="o">.</span><span class="n">getMiddleware</span><span class="p">({</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">hawkOptions</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">getSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="k">pass</span><span class="w"> </span><span class="n">to</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">cb</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">algorithm</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">token</span><span class="w"> </span><span class="n">id</span><span class="o">.</span><span class="w"> </span><span class="n">First</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">callback</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="n">key</span><span class="p">:</span><span class="w"> </span><span class="s2">"key"</span><span class="p">,</span><span class="w"> </span><span class="n">algorithm</span><span class="p">:</span><span class="w"> </span><span class="s2">"sha256"</span><span class="p">});</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">createSession</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">which</span><span class="w"> </span><span class="n">stores</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">session</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">key</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">Argument</span><span class="w"> </span><span class="n">returned</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">potential</span><span class="w"> </span><span class="n">error</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">cb</span><span class="p">(</span><span class="nb nb-Type">null</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">setUser</span><span class="p">:</span><span class="w"> </span><span class="n">function</span><span class="p">(</span><span class="n">req</span><span class="p">,</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">tokenId</span><span class="p">,</span><span class="w"> </span><span class="n">cb</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="n">function</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">uses</span><span class="w"> </span><span class="n">req</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">res</span><span class="p">,</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">hawkId</span><span class="w"> </span><span class="n">when</span><span class="w"> </span><span class="n">they</span><span class="s1">'re known so</span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">that</span><span class="w"> </span><span class="n">it</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">tweak</span><span class="w"> </span><span class="n">it</span><span class="o">.</span><span class="w"> </span><span class="n">For</span><span class="w"> </span><span class="n">instance</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="n">store</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">tokenId</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="o">//</span><span class="w"> </span><span class="n">user</span><span class="o">.</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">req</span><span class="o">.</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tokenId</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="p">}</span><span class="w"></span>
|
||||
<span class="p">});</span><span class="w"></span>
|
||||
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/hawk-enabled-endpoint"</span><span class="p">,</span> <span class="n">hawkMiddleware</span><span class="p">);</span>
|
||||
<span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/hawk-enabled-endpoint"</span><span class="p">,</span><span class="w"> </span><span class="n">hawkMiddleware</span><span class="p">);</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>If you pass the createSession parameter, all non-authenticated requests
|
||||
|
|
|
@ -86,14 +86,14 @@ unison .vimrc ssh://notmyidea.org:20006/.vimrc
|
|||
<p>It is also possible to put all the informations in a config file, and
|
||||
then to only run unison. (fire up vim \~/.unison/default.prf.</p>
|
||||
<p>Here is my config:</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="na">root</span> <span class="o">=</span> <span class="s">/home/alexis</span>
|
||||
<span class="na">root</span> <span class="o">=</span> <span class="s">ssh://notmyidea.org:20006</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">/home/alexis</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">ssh://notmyidea.org:20006</span><span class="w"></span>
|
||||
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">.vimrc</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dotfiles</span>
|
||||
<span class="na">path</span> <span class="o">=</span> <span class="s">dev</span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">.vimrc</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dotfiles</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="na">path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dev</span><span class="w"></span>
|
||||
|
||||
<span class="na">follow</span> <span class="o">=</span> <span class="s">Name *</span>
|
||||
<span class="w"> </span><span class="na">follow</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">Name *</span><span class="w"></span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>My vimrc is in fact a symbolic link on my laptop, but I don’t want to
|
||||
|
|
Loading…
Reference in a new issue