Changaco's blogChangacohttp://changaco.oy.lc/blog/Changaco's blogsikiwiki2015-12-21T15:57:47ZGoodbye Gratipayhttp://changaco.oy.lc/blog/goodbye-gratipay/2015-09-13T16:46:41Z2015-04-17T11:15:51Z
<p>I have been Gratipay's <a href="https://github.com/gratipay/gratipay.com/graphs/contributors?from=2014-04-01&to=2015-04-15&type=c">top developer</a> for a year, but now the time
has come for me to leave the team.</p>
<h2 id="why">Why?</h2>
<p>A few days ago Gratipay's founder decided to start banning users from the site,
for reasons that are not acceptable to me.</p>
<p>To be clear, I don't care specifically about <a href="https://twitter.com/infinitechan">infinitechan</a> and <a href="https://twitter.com/rabite">rabite</a>
(the two users being kicked out), I had never even heard of them before joining
the Gratipay team, same as I hadn't heard of Shanley Kane before the so-called
<a href="http://geekfeminism.wikia.com/wiki/Gittip_crisis">"Gittip crisis"</a>.</p>
<h2 id="whatnow">What now?</h2>
<p>Leaving <a href="https://gratipay.com/Gratipay/members/">the Gratipay team</a> is greatly diminishing my income, as I was
receiving $110/week through it.</p>
<p>I don't plan to start a fork of Gratipay. I am currently <a href="https://github.com/Changaco/legi.py">working on French
open data</a>, then I'm not sure what I'll do. I may try to turn my idea
of a new programming language (a mix of Haskell and Python, to put it
simplistically) into something concrete (anyone wants to help with that?).</p>
<p>I will keep <a href="https://gratipay.com/Changaco/">my Gratipay account</a> open for now, but I am also
looking for other ways to fund my work.</p>
<p><strong><em>Edit:</strong> Gratipay <a href="https://medium.com/gratipay-blog/gratipay-2-0-2453d3c53077">has strayed even further away</a> from the original idea of Gittip, and I've received requests for an alternative, so I'm now working on <a href="http://liberapay.com/">Liberapay</a>.</em></p>
<h2 id="postscriptum">Post Scriptum</h2>
<p>Gratipay was not <a href="https://twitter.com/rabite/status/588377441078349824">messing</a> with Weev's account prior to this,
the credit card of the person who was giving to him simply stopped working,
which is a very common problem.</p>
<p>Gratipay <a href="https://gratipay.com/about/pricing">doesn't take a cut of payments</a>, so <a href="https://twitter.com/SecretGamerGrrl/status/588465222232383488">tweets like this</a>
are ridiculous.</p>
Gratipay, un site de crowdfunding pas comme les autreshttp://changaco.oy.lc/blog/pr%C3%A9sentation-gratipay/2015-12-21T15:57:47Z2014-08-29T15:05:51Z
<p><strong><em>Mise à jour:</strong> Gratipay a changé de politique, j'ai <a href="http://changaco.oy.lc/blog/goodbye-gratipay/">quitté le site</a>, je prépare actuellement le lancement de <a href="https://liberapay.com/">Liberapay</a> pour le remplacer.</em></p>
<p>Gittip vient d'être rebaptisé Gratipay (<a href="https://medium.com/gratipay-blog/gratitude-gratipay-ef24ad5e41f9">annonce en anglais</a>),
et a été récemment traduit (partiellement) en français, voilà donc une bonne
occasion pour moi de vous présenter ce site de financement participatif un peu
spécial.</p>
<p><figure class="figure-img "><img src="http://changaco.oy.lc/blog/gratipay-accueil.png" /><figcaption>Page d'accueil de Gratipay</figcaption></figure></p>
<h2 id="spcificitsdegratipay">Spécificités de Gratipay</h2>
<p>Tout d'abord le principe du site est que les dons sont <strong>récurrents</strong>: ils sont
effectués chaque semaine (le jeudi). Les dons ne sont pas liés à une tâche
spécifique comme le lancement d'un projet, l'implémentation d'une nouvelle
fonctionnalité ou la correction d'un bug ; ils sont <strong>anonymes</strong> et financent le
développement continu des projets d'un individu ou d'une équipe.</p>
<p>Ce modèle a pour but de fournir des revenus stables à long terme, ce dont les
biens communs comme le logiciel libre ou la culture libre ont énormément besoin,
notamment parce qu'en l'absence d'un <a href="http://fr.wikipedia.org/wiki/revenu%20de%20base">revenu de base</a> nous ne
sommes pas libres de consacrer beaucoup de temps à des projets qui ne nous
fournissent pas de sources de revenus suffisantes pour survivre. Gratipay est un
moyen de financer ces projets sans compromettre leurs principes.</p>
<p>Autre point très important: contrairement à la majorité des autres plateformes
de crowdfunding, Gratipay ne prend pas de commission sur les dons. Le
développement du site est financé sur le site lui-même, par les dons volontaires
des utilisateurs à <a href="https://gratipay.com/Gratipay/">l'équipe Gratipay</a>.</p>
<p>Si vous faites des dons sur Gratipay et que vous utilisez une carte de crédit
pour les financer vous paierez des frais de transaction: ce sont ceux des
intermédiaires financiers, pas une commission du site.</p>
<p>Enfin, Gratipay est une <strong>entreprise ouverte</strong>, le <a href="https://github.com/gratipay/gratipay.com/">code du site</a>
est libre, les discussions "internes" se font publiquement sur GitHub ou dans
<a href="irc://chat.freenode.net/gratipay">le canal IRC #gratipay</a>, chacun peut donc
contribuer. Les contributeurs sont ajoutés aux <a href="https://gratipay.com/Gratipay/members/">membres de l'équipe Gratipay</a>,
et reçoivent ainsi une partie des dons qui financent le développement du site.</p>
<h2 id="larouteestlonguemaislavoieestlibre">La route est longue, mais la voie est libre…</h2>
<p>À l'heure où j'écris ce billet Gratipay a <a href="https://github.com/gratipay/gratipay.com/issues">+ de 360</a>
rapports de bug ou demandes de nouvelles fonctionnalités. C'est conséquent, et
il y a en effet beaucoup de choses à améliorer. Si vous êtes confronté à ces
défauts soyez patients, nous travaillons à les régler ; et si vous le pouvez
venez nous donner un coup de main, ou un coup de pouce financier.</p>
<p>Bref, <a href="https://gratipay.com/">rejoignez-nous sur Gratipay</a> ! <img src="http://changaco.oy.lc/smileys/smile.png" alt=":-)" /></p>
Revenu de base versus Impôt négatifhttp://changaco.oy.lc/blog/revenu-de-base-vs-imp%C3%B4t-n%C3%A9gatif/2014-08-29T08:01:45Z2013-06-01T12:56:44Z
<p>Le <a href="http://fr.wikipedia.org/wiki/revenu%20de%20base">revenu de base</a> (RdB) et l'<a href="http://fr.wikipedia.org/wiki/imp%F4t%20n%E9gatif">impôt négatif</a> (IN) sont deux mécanismes de redistribution à la fois très proches et fondamentalement différents.</p>
<h2 id="similitudes">Similitudes</h2>
<p>Quand ils sont financés de la même manière, le RdB et l'IN aboutissent au même résultat: les revenus nets sont identiques.</p>
<p>Illustration avec un impôt proportionnel:</p>
<p><figure class="figure-img "><img src="http://changaco.oy.lc/blog/allocation-universelle-vs-imp%C3%B4t-n%C3%A9gatif.png" alt="Comparaison entre l'allocation universelle et l'impôt négatif" /><figcaption>(images provenant de Wikimedia Commons, merci à l'auteur, licence CC-By-SA)</figcaption></figure></p>
<h2 id="diffrences">Différences</h2>
<p>Avec le RdB, le solde entre ce que chacun reçoit et verse à l'État est implicite. Avec l'IN, le solde entre les impôts à payer et le crédit d'impôt universel est explicitement calculé, et seule la différence est prélevée ou versée.</p>
<p>Ce mode de fonctionnement peut donner l'impression que l'IN coûte moins cher puisqu'on prélève moins d'impôts, mais en réalité le taux d'imposition est le même. L'IN peut même coûter plus cher que le RdB car il nécessite de traquer tous les revenus de chaque contribuable, alors que le RdB peut être financé par un impôt à taux unique prélevé à la source.</p>
<p>De plus, l'IN pose un problème de délai entre le moment où le citoyen a besoin d'un complément de revenu et le moment où il le reçoit, car un crédit d'impôt est versé a posteriori, une fois les revenus de la période connus et le solde calculé. L'IN nécessite donc un système de versement anticipé, et de recouvrement en cas de trop perçu.</p>
<p>Pour finir, l'IN reste dans une logique d'assistanat, tandis que le RdB est versé à tous et ne stigmatise donc pas les bénéficiaires de la solidarité nationale.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Le revenu de base et l'impôt négatif peuvent aboutir à un même effet redistributif, mais la façon dont ils y parviennent peut entraîner des effets secondaires différents.</p>
Revenu de base et impôt à taux uniquehttp://changaco.oy.lc/blog/revenu-de-base-imp%C3%B4t-taux-unique/2014-08-29T08:01:45Z2013-05-18T19:19:31Z
<p>Que se passe-t-il quand on associe un <a href="http://fr.wikipedia.org/wiki/revenu%20de%20base">revenu de base</a> et un impôt à taux unique ? On obtient un taux "réel" d'imposition progressif.</p>
<p>Prenons un impôt sur le revenu de 25% et un revenu de base de 500€ par mois non imposable:</p>
<table>
<col align="left" />
<col align="right" />
<col align="right" />
<col align="right" />
<col align="right" />
<thead>
<tr>
<th> </th>
<th>Revenus (RdB + autres)</th>
<th>Impôt versé</th>
<th>Impôt net</th>
<th>Taux "réel"</th>
</tr>
</thead>
<tbody>
<tr>
<th align="left">1</th>
<td align="right">500 + 0</td>
<td align="right">0</td>
<td align="right">-500</td>
<td align="right">0%</td>
</tr>
<tr>
<th align="left">2</th>
<td align="right">500 + 500</td>
<td align="right">125</td>
<td align="right">-375</td>
<td align="right">12,5%</td>
</tr>
<tr>
<th align="left">3</th>
<td align="right">500 + 1000</td>
<td align="right">250</td>
<td align="right">-250</td>
<td align="right">16,7%</td>
</tr>
<tr>
<th align="left">4</th>
<td align="right">500 + 2000</td>
<td align="right">500</td>
<td align="right">0</td>
<td align="right">20%</td>
</tr>
<tr>
<th align="left">5</th>
<td align="right">500 + 4000</td>
<td align="right">1000</td>
<td align="right">+500</td>
<td align="right">22,2%</td>
</tr>
<tr>
<th align="left">6</th>
<td align="right">500 + 16000</td>
<td align="right">4000</td>
<td align="right">+3500</td>
<td align="right">24,2%</td>
</tr>
</tbody>
</table>
<p>On constate que le taux est bien progressif, il tend vers 25%.</p>
<p>Voyons ce que ça donne graphiquement. Le taux réel:
<figure class="figure-img "><img src="http://changaco.oy.lc/blog/revenu-de-base+imp%C3%B4t-taux-unique_taux-r%C3%A9el.png" alt="Graphique du taux réel" /></figure></p>
<p>Le revenu réel:
<figure class="figure-img "><img src="http://changaco.oy.lc/blog/revenu-de-base+imp%C3%B4t-taux-unique_revenu-r%C3%A9el.png" alt="Graphique du revenu réel" /></figure></p>
<p>Pour une proposition plus complète de système à revenu de base et impôt à taux unique, voir le <a href="http://www.allocationuniverselle.com/">site de Marc de Basquiat</a>. Liens directs: <a href="http://www.allocationuniverselle.com/doc/ReductionTheseAU2012-02-07Basquiat.pdf">le résumé de sa thèse</a> et <a href="http://www.allocationuniverselle.com/doc/microsimulation_AU_Marc_de_Basquiat_2012-10-21.xlsx">la microsimulation correspondante</a>.</p>
La novlangue politiquehttp://changaco.oy.lc/blog/La_novlangue_politique/2014-08-29T16:32:52Z2013-04-21T14:47:39Z
<p>Les discours et débats politiques sont couramment ruinés par le mésusage (intentionnel ou non) de certains mots. On nomme parfois ceci la <a href="http://fr.wikipedia.org/wiki/novlangue">novlangue</a> même si ce n'est pas réellement une nouvelle langue mais seulement une dérive de certains termes.</p>
<h2 id="dmocratieetrpublique">Démocratie et République</h2>
<p>Commençons par démocratie et république. Aussi loin que je me souvienne j'ai toujours entendu dire que la France est une république démocratique, qu'il faut la défendre et y participer, notamment via les élections. Mais ces dernières années <a href="http://forum.hardware.fr/hfr/Discussions/politique/election-democratique-sujet_101300_1.htm#t28870866">des voix se sont levées contre cette vision</a>.</p>
<p>En effet selon leurs sens originels, "démocratie" et "république" sont deux régimes politiques opposés.</p>
<p>Dans une démocratie les citoyens exercent directement le pouvoir, ils n'élisent personne pour gouverner à leur place. Pour les tâches ne pouvant être accomplies par l'ensemble des citoyens, des représentants sont tirés au sort. Ce sont des mandats de courtes durées et les sélectionnés doivent rendre des comptes.</p>
<p>À l'opposé, une république est une oligarchie élective. Le peuple renonce à exercer le pouvoir en le confiant à une élite gouvernante, comme en atteste cette <a href="http://fr.wikiquote.org/wiki/Emmanuel-Joseph_Siey%C3%A8s">citation de l'abbé Sieyès</a> (un des auteurs de la première Constitution française):</p>
<blockquote>
<p>Les citoyens qui se nomment des représentants renoncent et doivent renoncer à faire eux-mêmes la loi ; donc ils n'ont pas de volonté particulière à imposer. Toute influence, tout pouvoir leur appartient sur la personne de leur mandataire, mais c'est tout. S'ils dictaient des volontés ce ne serait plus un état représentatif, ce serait un état démocratique.</p>
</blockquote>
<p>On peut être démocrate ou républicain (aucun rapport avec le bipartisme des États-Unis), ce sont deux positions défendables, mais on ne peut pas être les deux en même temps.</p>
<h2 id="technocratie">Technocratie</h2>
<p>Face à des lois comme HADOPI, certaines personnes s'y connaissant ou croyant s'y connaître en informatique ont commencé à remettre en cause la légitimité des parlementaires à légiférer sur des domaines qu'ils ne maîtrisent pas.</p>
<p>Or en république la seule légitimité est celle de l'élection, et en démocratie celle de la citoyenneté. Le régime dans lequel les "experts" sont au pouvoir s'appelle la technocratie.</p>
<p>Cette <a href="http://www.bortzmeyer.org/pas-sage-en-seine-politiques.html">citation de Stéphane Bortzmeyer</a> résume bien le problème de cette approche:</p>
<blockquote>
<p>Est-ce que les lois sur l'Internet doivent être faites exclusivement par les geeks, les lois sur l'agriculture uniquement par des paysans et les lois sur la santé seulement par des médecins ?</p>
</blockquote>
<p>Une loi sur tel ou tel domaine n'affecte pas que les professionnels ou amateurs du domaine en question, elle affecte potentiellement la population entière. C'est pour ça que ce ne sont pas les "experts" qui doivent décider mais bien des représentants de toute la population.</p>
<h2 id="anarchismeetlibralisme">Anarchisme et Libéralisme</h2>
<p>Dans les idéologies anti-autoritaires, l'anarchisme et le libéralisme ont souffert des déformations et contre-vérités.</p>
<p>Le mot "anarchie" est fréquemment utilisé péjorativement comme synonyme de désordre alors que l'anarchie est l'absence de gouvernement, d'autorité, pas l'absence d'ordre. Les anarchistes sont également souvent assimilés à des utopistes ou des terroristes.</p>
<p>Ces préjugés font que plusieurs groupes de personnes hésitent à se revendiquer de l'anarchisme alors qu'ils font clairement partie de la grande famille anarchiste, c'est par exemple le cas d'Anonymous ("<em>No leaders no followers</em>") et des <a href="http://blog.p2pfoundation.net/">défenseurs du P2P</a>.</p>
<p>Le libéralisme a plutôt dérivé dans l'autre sens. Il a été sali par des néo-libéralismes consécutifs qui lui ont fait dire tout et son contraire, s'éloignant toujours plus du sens originel de défense de la liberté des citoyens pour se focaliser seulement sur le rôle de l'État dans l'économie.</p>
<p>De nombreuses personnes accusent le libéralisme de tous les maux et en particulier d'être responsable de la crise économique et financière actuelle, alors qu'en réalité qualifier notre économie de libérale est un contresens du même niveau que d'affirmer que nous sommes en démocratie.</p>
<h2 id="communismesocialismeetcapitalisme">Communisme, Socialisme et Capitalisme</h2>
<p>Ce trio issu des travaux de Marx a été tellement détourné que l'utiliser est un terrain très glissant. Aucun de ces termes n'a de définition précise et consensuelle, chacun traîne une pléthore de préjugés. En général je les boycott en les qualifiant de clivages dépassés.</p>
<h2 id="marxismegaullismekeynsianismeetc">Marxisme, Gaullisme, Keynésianisme, etc</h2>
<p>Il faut arrêter de désigner des courants de pensée par les noms de famille des personnes qui les ont soi-disant lancé: Marxisme, Gaullisme, Keynésianisme, etc. S'ils étaient encore vivants, avec quel pourcentage de ce qui est dit en leurs noms seraient-ils d'accord ?</p>
<h2 id="gaucheversusdroite">Gauche versus Droite</h2>
<p>Le faux clivage gauche/droite, en plus de n'avoir aucune définition précise et consensuelle, n'a aucun sens étymologique. Il divise artificiellement le pays en deux camps prétendument opposés et a été critiqué comme étant une vision simpliste de la politique. Plusieurs représentations en deux dimensions ont été créées, certaines conservant un axe gauche/droite:</p>
<ul>
<li><a href="http://www.politicalcompass.org/">The Political Compass</a></li>
<li><a href="http://www.gaucheliberale.org/post/2011/11/04/Carte-2D-du-Paysage-Politique-Fran%C3%A7ais-%28PPF%29-mise-%C3%A0-jour-novembre-2011">Carte 2D du Paysage Politique Français</a></li>
</ul>
<p>et d'autres l'abandonnant complètement:</p>
<ul>
<li><a href="http://changaco.oy.lc/politim%C3%A9trie/changaco_ae.html">Test de politimétrie Autoritarisme/Égalitarisme</a></li>
</ul>
<h2 id="conclusion">Conclusion</h2>
<p>Le langage est la base de tout échange d'idées, si nous n'utilisons pas correctement des mots aux définitions claires et consensuelles le dialogue est impossible.</p>
Introduction à la monnaiehttp://changaco.oy.lc/blog/introduction-monnaie/2013-06-01T19:09:51Z2012-10-25T15:25:39Z
<p>La monnaie est un pilier de l'économie, c'est son instrument de mesure, dont le rôle est de faciliter les échanges dans l'espace et dans le temps qui sont impossibles avec un simple troc. Pourtant, le fonctionnement et l'histoire de la monnaie ne sont pas enseignés à tous, alors qu'ils sont aussi fondamentaux que ceux de l'État.</p>
<p>Savez-vous qui crée la monnaie et selon quelles règles ? Le simple fait de devoir poser la question montre bien le problème, seul le peuple a la légitimité de choisir le fonctionnement de cet outil fondamental, pourtant il n'a jamais été consulté sur ce sujet.</p>
<h2 id="lefonctionnementactuel">Le fonctionnement actuel</h2>
<p>Ce que l'on appelle couramment "la monnaie" est en réalité composé de deux monnaies différentes, détaillées ci-dessous.</p>
<h3 id="monnaiefiduciaire">Monnaie fiduciaire</h3>
<p>Aussi appelée monnaie centrale en référence à la banque qui en a acquis le monopole d'émission, elle forme la base monétaire. Fiduciaire signifie qu'elle est basée sur la confiance, car contrairement aux pièces d'or utilisées dans le passé un billet de banque n'a pas de valeur intrinsèque. Il n'est qu'un moyen d'échanger des richesses, pas une richesse en lui-même.</p>
<p><figure class="figure-img float-right"><img src="http://changaco.oy.lc/blog/gold.png" alt="Gold Reserves by region in the 20th century" /><figcaption>Réserves d'or par région au 20e siècle</figcaption></figure></p>
<p>Jusqu'à la deuxième guerre mondiale, les monnaies centrales étaient directement basées sur l'or, un billet représentait une certaine quantité d'or stockée dans les coffres de la banque centrale correspondante. Mais à la fin de cette guerre, les réserves d'or de l'Europe avaient baissé d'un tiers, tandis que celles des États-Unis avaient été multipliées par deux. Ce déséquilibre rendait impossible le retour à l'étalon-or.</p>
<p>Un nouveau système est donc mis en place en 1946: seul le dollar est directement basé sur l'or, et les autres monnaies sont indexées sur le dollar. Ce sont les <a href="http://fr.wikipedia.org/wiki/accords%20de%20Bretton%20Woods">accords de Bretton Woods</a>, qui créent notamment le <a href="http://fr.wikipedia.org/wiki/Fonds%20Mon%E9taire%20International">Fonds Monétaire International</a> qui existe toujours aujourd'hui.</p>
<p>Puis ce sont les "Trente Glorieuses", l'Europe se reconstruit et ses banques centrales se retrouvent avec de grandes quantités de dollars. Elles décident d'échanger ces dollars contre de l'or et triplent leurs réserves en 25 ans. Cette asymétrie où seul le dollar était basé sur l'or devenait donc nuisible pour les États-Unis (et pour le reste du monde par ricochet), qui décident en 1971 de supprimer la convertibilité.</p>
<p>Le fonctionnement des monnaies centrales n'a pas évolué depuis. Elles sont complètement basées sur la confiance et plus du tout limitées par l'or. Elles s'échangent à taux flottants basés sur l'offre et la demande.</p>
<h3 id="monnaiescripturale">Monnaie scripturale</h3>
<p>Elle est ainsi nommée car elle n'est qu'un jeu d'écriture dans les bilans des banques commerciales. Elle est aussi appelée monnaie-dette car elle est émise par ces banques quand elles accordent des crédits à leurs clients, et détruite au fur et à mesure que ceux-ci sont remboursés.</p>
<p>Autrement dit, et contrairement à ce que le terme "emprunt" suggère, les banques n'utilisent pas l'épargne des uns pour permettre aux autres d'investir, elles créent de la nouvelle monnaie temporaire.</p>
<p>Ce fonctionnement porte le nom de "réserves fractionnaires" car le montant des "dépôts" gérés par la banque est plus élevé que la quantité de monnaie centrale qu'elle a en "réserve" (terme hérité de l'origine du mécanisme où les réserves étaient des quantités d'or).</p>
<h2 id="dfauts">Défauts</h2>
<p>Premièrement tout ça est bien plus compliqué que nécessaire, et on utilise mal un outil dont on ne comprend pas bien le fonctionnement.</p>
<p>Deuxièmement, en période de crise les banques accordent moins de crédits, ce qui ralentit la croissance de la masse monétaire voire cause une décroissance.[^evolution-euro] Or le PIB et la masse monétaire sont interdépendants, donc une crise mineure peut démarrer un cercle vicieux (la masse monétaire et le PIB se font baisser l'un l'autre) aboutissant à une récession majeure affectant tout le monde. Ce fonctionnement est donc fondamentalement <strong>instable</strong>, source de bulles et de crises.</p>
<p>Troisièmement, <strong><a href="http://www.tetedequenelle.fr/2011/12/monnaie-inegalites-richesses/">la dette accroît les inégalités</a></strong>. Pour obtenir un crédit il faut pouvoir présenter à la banque une garantie. Un pauvre n'en a bien sûr pas ou peu et ce sont donc les riches qui profitent le plus de la création monétaire scripturale. De surcroît, les intérêts que prélèvent les banques sont une sorte de taxe sur l'ensemble de l'économie, qui profite surtout aux grands acteurs de la finance, c'est à dire une fois de plus aux riches.</p>
<p>Cette caractéristique est aggravée par l'État, qui s'interdit de créer directement de la monnaie, mais s'autorise un déficit budgétaire financé par la création monétaire des banques privées. Cela a pour conséquence qu'en 2011 plus de 12%[^PLF2011] des recettes brutes de l'État (équivalent à plus de 76% de l'impôt sur le revenu par exemple) sont parties dans le remboursement de la dette publique. Là encore ce sont les riches qui récupèrent les intérêts.[^arnaque-dette]</p>
<h2 id="conclusion">Conclusion</h2>
<p>Le problème avec le creusement permanent des inégalités dû à un système monétaire fondamentalement cassé, c'est qu'elles finissent par atteindre un seuil où elles sont dangereuses pour l'ensemble de la société.</p>
<p>Je vous invite à lire <a href="http://changaco.oy.lc/revenu-de-base-solution-anti-crises/">mon billet précédent</a> pour une explication et illustration du problème ainsi qu'une solution.</p>
<h2 id="rfrences">Références</h2>
<p>[^evolution-euro]: <a href="http://4.bp.blogspot.com/-_1jpCA7ql-w/UGdRW19r33I/AAAAAAAABZE/8X_seRI3-28/s1600/M1M2M3%E2%82%AC_2012_09.png">Évolution de la masse monétaire de la zone euro de 1997 à 2012</a></p>
<p>[^PLF2011]: 45.4/353.4, chiffres du <a href="http://www.assemblee-nationale.fr/13/projets/pl2824.asp">projet de loi de finance pour 2011</a></p>
<p>[^arnaque-dette]: voir ces deux graphiques : <a href="http://www.les-crises.fr/images/images-diverses/2011/alternatives/charge-nette-dette-1.jpg">charge-nette-dette-1.jpg</a> et <a href="http://www.les-crises.fr/images/images-diverses/2011/alternatives/charge-nette-dette-2.jpg">charge-nette-dette-2.jpg</a></p>
Le revenu de base: une solution anti-criseshttp://changaco.oy.lc/blog/revenu-de-base-solution-anti-crises/2013-06-01T19:09:51Z2012-10-22T18:08:25Z
<p>Qu'est-ce qu'une crise ? C'est le moment où se résorbe brutalement un déséquilibre. Tout système a un état d'équilibre vers lequel il revient toujours, et plus on s'en éloigne plus la probabilité d'un rééquilibrage violent augmente.</p>
<p>L'équilibre de l'économie est celui des échanges, qui sont rendus possibles et mesurés par l'outil qu'est la monnaie. Quand un pays est déficitaire il "perd" de la monnaie, quand il est excédentaire il en "gagne".</p>
<p>Il est bon de rappeler que cette deuxième situation n'est pas plus une bonne chose que la première, car un excédent est forcément compensé par le déficit d'un autre pays. La position idéale de toutes les balances est l'équilibre, c'est à dire quand les pays profitent des échanges sans créer d'inégalités entre eux.</p>
<h2 id="lexempledelazoneeuro">L'exemple de la zone euro</h2>
<p>Après avoir énoncé ces généralités, regardons l'exemple de la zone euro. Il est singulier car la Banque Centrale Européenne est en fait une institution qui regroupe les banques centrales des États membres, on a donc accès à la fois à la balance courante globale de la zone euro et à ses composantes.</p>
<p>C'est d'ailleurs là le problème de cette zone, nous avons instauré une monnaie commune, mais pas de mécanisme pour équilibrer les balances à l'intérieur de celle-ci.</p>
<p><img src="http://changaco.oy.lc/blog/eurozone-payments-balance.png" alt="Eurozone Current Account Balances (Balances Courantes de la zone euro)" /></p>
<p>Comme vous pouvez le voir sur le graphique ci-dessus, la balance de la zone euro est proche de l'équilibre (à part en 2008), donc une position presque idéale. Autrement dit, la zone euro n'est pas du tout au bord de la faillite.</p>
<p>Par contre prises individuellement, certaines de ses composantes ne sont pas du tout idéales. Notamment l'Allemagne du côté des excédents, l'Espagne, la France et l'Italie du côté des déficits.</p>
<p>Cependant si on relativise ces chiffres en fonction de la population de chaque pays, on se rend compte que les "mauvais élèves" seraient en fait plutôt le Luxembourg et la Grèce:</p>
<p><img src="http://changaco.oy.lc/blog/eurozone-payments-balance-relative-to-population.png" alt="Eurozone Current Account Balances relative to population (Balances Courantes de la zone euro relatives aux nombres d'habitants)" /></p>
<p>C'est à dire qu'il y a trop d'euros au Luxembourg, et pas assez en Grèce, une grande surprise n'est-ce pas ?</p>
<p>On pourrait faire la même analyse pour d'autres tailles de zones géographiques si on connaissait les chiffres correspondants. On trouverait probablement qu'il y a trop de monnaie à Paris par rapport au reste du pays, qu'il y a de fortes différences entre quartiers à l'intérieur des villes, etc. Le revenu médian est en général utilisé comme indicateur partiel pour ces niveaux, on peut par exemple constater les <a href="https://en.wikipedia.org/wiki/List_of_U.S._states_by_income">inégalités de revenu entre les États des États-Unis</a>.</p>
<h2 id="redistribuerlescartespourquepersonnenesortedujeu">Redistribuer les cartes pour que personne ne sorte du jeu</h2>
<p>Soyons clairs, nous ne cherchons pas à supprimer toutes les inégalités, simplement à les ramener à des niveaux acceptables, de façon à ce qu'elles ne causent plus de crises économiques et sociales, ou pire de guerres.</p>
<p>Pour atteindre ce but, la solution la plus simple et la plus efficace est <a href="http://monnaielibre.creationmonetaire.info/monnaie-libre-n18-thomas-paine-et-le-revenu-de-base/">connue depuis longtemps</a>: le <a href="http://fr.wikipedia.org/wiki/revenu%20de%20base">revenu de base</a>, un revenu inconditionnel, versé dès la naissance et cumulable avec tout autre revenu.</p>
<p>Évidemment il ne va pas tout régler à lui seul, et son effet est sur le long terme, mais il est un mécanisme de base qui permet de s'assurer que les inégalités ne dépassent jamais un certain seuil où elles deviennent dangereuses. Quand un phénomène économique fait pencher la balance en "faveur" d'une minorité, le revenu de base redistribue une partie des cartes pour que personne ne sorte du jeu.</p>
<p>Concrètement pour la zone euro, au lieu de perdre son temps à jouer le pompier des banques, la BCE créerait de la monnaie et la donnerait directement aux citoyens chaque mois, en augmentant le montant tous les ans à taux constant.</p>
<p>On choisit ce taux de façon à ce que la monnaie soit stable à court terme (pas d'hyper-inflation) mais fondante à long terme (pour qu'elle continue toujours de circuler). La <a href="http://www.creationmonetaire.info/2012/11/theorie-relative-de-la-monnaie-2718.html">Théorie Relative de la Monnaie</a> recommande une valeur entre 5% et 10% pour une espérance de vie moyenne des citoyens de 80 ans. Si on choisissait ce taux minimum de 5%, le dividende s'élèverait en 2013 à environ 120€ par mois pour chaque citoyen de la zone euro, puis quelques euros de plus l'année d'après, etc.</p>
<p>En plus de ce revenu européen tiré de la création monétaire, chaque État pourrait compléter le revenu de base en réattribuant les fonds actuellement consacrés aux aides sociales conditionnelles. Faire converger les montants de ces aides nationales permettrait de réduire progressivement les inégalités à l'intérieur de la zone euro.</p>
<p>Concrètement pour la France, dont le système de protection sociale est déjà <a href="http://revenudebase.info/2012/09/interview-marc-basquiat-revenu-de-base/">proche d'une allocation universelle</a> (mais sans les avantages qu'apporte son inconditionnalité), cela correspond à 400€/mois pour un adulte et 200€/mois pour un enfant.</p>
<p>Au total, on pourrait donc verser au moins 520€ par mois en 2013 à tous les adultes français, sans toucher au niveau des impôts, uniquement en simplifiant les fonctionnements de l'euro et du système français de protection sociale.</p>
<p>Le seul obstacle est la volonté des peuples, c'est à dire la votre, celle de votre famille, de vos voisins, etc. Selon une <a href="http://www.colibris-lemouvement.org/sites/default/files/etude_ifop_colibris.pdf">étude Ifop d'avril 2012</a> seulement 14% des français se disent "tout à fait favorables" à la mise en place d'un revenu de base, 65% n'ont qu'une opinion faible sur le sujet avec une légère majorité contre (31% et 34%), et 21% y sont résolument opposés.</p>
Parsing an indented tree in Haskellhttp://changaco.oy.lc/blog/parse-indented-tree/2012-06-04T17:49:16Z2012-06-04T17:49:16Z
<p>An example of how to parse an indented tree of data in Haskell using <a href="http://hackage.haskell.org/package/parsec">Parsec</a> and <a href="http://hackage.haskell.org/package/indents">indents</a>.</p>
<pre class="sourceCode literate literatehaskell"><code class="sourceCode literatehaskell"><span class="ot">></span> <span class="kw">import</span> Control.Applicative
<span class="ot">></span> <span class="kw">import</span> Data.Char (isSpace)
<span class="ot">></span> <span class="kw">import</span> Data.Either.Utils (forceEither)
<span class="ot">></span> <span class="kw">import</span> Data.Monoid
<span class="ot">></span> <span class="kw">import</span> System.Environment (getArgs)
<span class="ot">></span> <span class="kw">import</span> Text.Parsec <span class="kw">hiding</span> (many, optional, (<|>))
<span class="ot">></span> <span class="kw">import</span> Text.Parsec.Indent</code></pre>
<p>A basic tree structure:</p>
<pre class="sourceCode literate literatehaskell"><code class="sourceCode literatehaskell"><span class="ot">></span> <span class="kw">data</span> <span class="dt">Tree</span> <span class="fu">=</span> <span class="dt">Node</span> [<span class="dt">Tree</span>] <span class="fu">|</span> <span class="dt">Leaf</span> <span class="dt">String</span></code></pre>
<p>A simple serialization function to easily check the result of our parsing:</p>
<pre class="sourceCode literate literatehaskell"><code class="sourceCode literatehaskell"><span class="ot">></span> serializeIndentedTree tree <span class="fu">=</span> <span class="fu">drop</span> <span class="dv">2</span> <span class="fu">$</span> s (<span class="fu">-</span><span class="dv">1</span>) tree
<span class="ot">></span> <span class="kw">where</span>
<span class="ot">></span> s i (<span class="dt">Node</span> children) <span class="fu">=</span> <span class="st">"\n"</span> <span class="fu"><></span> (<span class="fu">concat</span> <span class="fu">$</span> <span class="fu">replicate</span> i <span class="st">" "</span>) <span class="fu"><></span> (<span class="fu">concat</span> <span class="fu">$</span> <span class="fu">map</span> (s (i<span class="fu">+</span><span class="dv">1</span>)) children)
<span class="ot">></span> s _ (<span class="dt">Leaf</span> text) <span class="fu">=</span> text <span class="fu"><></span> <span class="st">" "</span></code></pre>
<p>Our main function and some glue:</p>
<pre class="sourceCode literate literatehaskell"><code class="sourceCode literatehaskell"><span class="ot">></span> main <span class="fu">=</span> <span class="kw">do</span>
<span class="ot">></span> args <span class="ot"><-</span> getArgs
<span class="ot">></span> input <span class="ot"><-</span> <span class="kw">if</span> <span class="fu">null</span> args <span class="kw">then</span> <span class="fu">return</span> example <span class="kw">else</span> <span class="fu">readFile</span> <span class="fu">$</span> <span class="fu">head</span> args
<span class="ot">></span> <span class="fu">putStrLn</span> <span class="fu">$</span> serializeIndentedTree <span class="fu">$</span> forceEither <span class="fu">$</span> parseIndentedTree input
<span class="ot">></span>
<span class="ot">></span> parseIndentedTree input <span class="fu">=</span> runIndent <span class="st">""</span> <span class="fu">$</span> runParserT aTree () <span class="st">""</span> input</code></pre>
<p>The actual parser:</p>
<p>Note that the indents package works by storing a <code>SourcePos</code> in a <code>State</code> monad. Its combinators don't actually consume indentation, they just compare the column numbers. So where we consume <code>spaces</code> is very important.</p>
<pre class="sourceCode literate literatehaskell"><code class="sourceCode literatehaskell"><span class="ot">></span> aTree <span class="fu">=</span> <span class="dt">Node</span> <span class="fu"><$></span> many aNode
<span class="ot">></span>
<span class="ot">></span> aNode <span class="fu">=</span> spaces <span class="fu">*></span> withBlock makeNode aNodeHeader aNode
<span class="ot">></span>
<span class="ot">></span> aNodeHeader <span class="fu">=</span> many1 aLeaf <span class="fu"><*</span> spaces
<span class="ot">></span>
<span class="ot">></span> aLeaf <span class="fu">=</span> <span class="dt">Leaf</span> <span class="fu"><$></span> (many1 (satisfy (<span class="fu">not</span> <span class="fu">.</span> <span class="fu">isSpace</span>)) <span class="fu"><*</span> many (oneOf <span class="st">" \t"</span>))
<span class="ot">></span>
<span class="ot">></span> makeNode leaves nodes <span class="fu">=</span> <span class="dt">Node</span> <span class="fu">$</span> leaves <span class="fu"><></span> nodes</code></pre>
<p>An example tree:</p>
<pre class="sourceCode literate literatehaskell"><code class="sourceCode literatehaskell"><span class="ot">></span> example <span class="fu">=</span> <span class="fu">unlines</span> [
<span class="ot">></span> <span class="st">"lorem ipsum"</span>,
<span class="ot">></span> <span class="st">" dolor"</span>,
<span class="ot">></span> <span class="st">" sit amet"</span>,
<span class="ot">></span> <span class="st">" consectetur"</span>,
<span class="ot">></span> <span class="st">" adipiscing elit dapibus"</span>,
<span class="ot">></span> <span class="st">" sodales"</span>,
<span class="ot">></span> <span class="st">"urna"</span>,
<span class="ot">></span> <span class="st">" facilisis"</span>
<span class="ot">></span> ]</code></pre>
<p>The result:</p>
<pre><code>% runhaskell parseIndentedTree.lhs
lorem ipsum
dolor
sit amet
consectetur
adipiscing elit dapibus
sodales
urna
facilisis </code></pre>
Les vrais chiffres de la présidentiellehttp://changaco.oy.lc/blog/Les_vrais_chiffres_de_la_pr%C3%A9sidentielle/2013-06-01T19:09:51Z2012-04-23T22:03:18Z
<p><em>Ce billet se base sur les <a href="http://elections.interieur.gouv.fr/PR2012/">résultats publiés par le Ministère de l'Intérieur</a>.</em></p>
<h2 id="lesscoresdescandidatsrelativiss">Les scores des candidats relativisés</h2>
<p>Dans les résultats officiels les pourcentages des candidats ne sont calculés qu'en fonction des suffrages exprimés. Nous allons les relativiser en fonction des inscrits sur les listes électorales, mais aussi de la population en âge de voter car beaucoup de personnes ne peuvent pas, ne veulent pas ou ont oublié de s'inscrire sur les listes.</p>
<p>J'aurais aussi aimé calculer l'abstention réelle mais je n'ai pas trouvé de données à jour sur le nombre de français majeurs non privés du droit de vote.</p>
<p>Pour la non-participation je me base sur <a href="http://www.insee.fr/fr/themes/tableau.asp?reg_id=0&ref_id=ccc">la pyramide des âges publiée par l'INSEE</a> qui estime à environ 50 892 994 le nombre de personnes résidant en France ayant 18 ans ou plus, ce qui donne (par soustraction des 46 037 545 inscrits) environ 4 855 449 non inscrites parmi celles-ci.</p>
<h3 id="premiertour">Premier tour</h3>
<table>
<col align="left" />
<col align="right" />
<col align="right" />
<col align="right" />
<col align="right" />
<thead>
<tr>
<th>Candidat</th>
<th>Voix</th>
<th>% des exprimés</th>
<th>% des inscrits</th>
<th>% des majeurs</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><em>blancs + non-part.</em></td>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"><strong>29,49 %</strong></td>
</tr>
<tr>
<td align="left">François Hollande</td>
<td align="right">10 273 582</td>
<td align="right">28,63 %</td>
<td align="right">22,32 %</td>
<td align="right">20,19 %</td>
</tr>
<tr>
<td align="left"><em>blancs + abstention</em></td>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"><strong>22,05 %</strong></td>
<td align="right">19,95 %</td>
</tr>
<tr>
<td align="left">Nicolas Sarkozy</td>
<td align="right">9 753 844</td>
<td align="right">27,18 %</td>
<td align="right">21,19 %</td>
<td align="right">19,17 %</td>
</tr>
<tr>
<td align="left">Marine Le Pen</td>
<td align="right">6 421 773</td>
<td align="right">17,90 %</td>
<td align="right">13,95 %</td>
<td align="right">12,62 %</td>
</tr>
<tr>
<td align="left">Jean-Luc Mélenchon</td>
<td align="right">3 985 298</td>
<td align="right">11,11 %</td>
<td align="right">8,66 %</td>
<td align="right">7,83 %</td>
</tr>
<tr>
<td align="left">François Bayrou</td>
<td align="right">3 275 349</td>
<td align="right">9,13 %</td>
<td align="right">7,11 %</td>
<td align="right">6,44 %</td>
</tr>
<tr>
<td align="left">Eva Joly</td>
<td align="right">828 451</td>
<td align="right">2,31 %</td>
<td align="right">1,80 %</td>
<td align="right">1,63 %</td>
</tr>
<tr>
<td align="left">Nicolas Dupont-Aignan</td>
<td align="right">644 086</td>
<td align="right">1,79 %</td>
<td align="right">1,40 %</td>
<td align="right">1,27 %</td>
</tr>
<tr>
<td align="left">Philippe Poutou</td>
<td align="right">411 178</td>
<td align="right">1,15 %</td>
<td align="right">0,89 %</td>
<td align="right">0,81 %</td>
</tr>
<tr>
<td align="left">Nathalie Arthaud</td>
<td align="right">202 562</td>
<td align="right">0,56 %</td>
<td align="right">0,44 %</td>
<td align="right">0,40 %</td>
</tr>
<tr>
<td align="left">Jacques Cheminade</td>
<td align="right">89 572</td>
<td align="right">0,25 %</td>
<td align="right">0,19 %</td>
<td align="right">0,18 %</td>
</tr>
</tbody>
</table>
<p>Résultats:</p>
<ul>
<li>blancs + abstention arrive en deuxième position au coude à coude avec François Hollande</li>
<li>blancs + non-participation arrive en première position loin devant le PS</li>
</ul>
<h3 id="secondtour">Second tour</h3>
<table>
<col align="left" />
<col align="right" />
<col align="right" />
<col align="right" />
<col align="right" />
<thead>
<tr>
<th>Candidat</th>
<th>Voix</th>
<th>% des exprimés</th>
<th>% des inscrits</th>
<th>% des majeurs</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">François Hollande</td>
<td align="right">18 003 044</td>
<td align="right">51,63 %</td>
<td align="right">39,11 %</td>
<td align="right">35,37 %</td>
</tr>
<tr>
<td align="left">Nicolas Sarkozy</td>
<td align="right">16 864 167</td>
<td align="right">48.37 %</td>
<td align="right">36,63 %</td>
<td align="right">33,14 %</td>
</tr>
<tr>
<td align="left"><em>blancs + non-part.</em></td>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"><strong>31,49 %</strong></td>
</tr>
<tr>
<td align="left"><em>blancs + abstention</em></td>
<td align="right"> </td>
<td align="right"> </td>
<td align="right"><strong>24,26 %</strong></td>
<td align="right">21,95 %</td>
</tr>
</tbody>
</table>
<p>La légitimité de François Hollande est donc plutôt faible, avec seulement 39,11% des inscrits sur les listes électorales qui ont voté pour lui au second tour, contre 42,68% pour Sarkozy en 2007.</p>
<h2 id="loppositionlumps">L'opposition à l'UMPS</h2>
<p>56,50% des inscrits sur les listes électorales n'ont <strong>pas</strong> voté pour l'UMPS au premier tour. Autrement dit les deux grands partis ne rassemblent même pas une majorité des électeurs.</p>
<p>Au deuxième tour c'est un électeur sur quatre (24,26%) qui a boycotté l'UMPS contre un sur cinq en 2007 (19,56%).</p>
<h2 id="conclusion">Conclusion</h2>
<p><strong>Que nous apprennent ces chiffres ?</strong></p>
<p>Ces chiffres sont une façon de plus d'argumenter que l'élection présidentielle est une mascarade qui n'a rien de démocratique.</p>
<p><strong>Quelles sont les alternatives ?</strong></p>
<p>On peut:</p>
<ul>
<li>changer de mode de scrutin, par exemple passer au <a href="http://www.votedevaleur.org/">vote de valeur</a></li>
<li>supprimer le poste de président de la République, considérant qu'un élu ne peut pas représenter 65 millions de personnes</li>
<li>supprimer la République pour <a href="http://le-message.org/">instaurer une Démocratie</a> (regardez par exemple cette <a href="https://www.youtube.com/watch?v=oN5tdMSXWV8">conférence d'Étienne Chouard</a>)</li>
</ul>
<p>Dans tous les cas il nous faut une nouvelle Constitution…</p>
Announcing feed-push and sendxmpp-pyhttp://changaco.oy.lc/blog/Announcing_feed-push_and_sendxmpp-py/2014-08-29T16:32:52Z2012-04-16T12:30:25Z
<p>Polling RSS/Atom feeds wastes a lot of resources, for example "of all bandwidth generated by [The Pirate Bay] today nearly half comes from the RSS feed"[^1].</p>
<p>Until today I used to poll the feeds of my websites, watching for contributions on wikis and comments on my blog.</p>
<p>Now I receive updates instantly via XMPP thanks to these two scripts:</p>
<p><a href="https://github.com/Changaco/feed-push">feed-push</a> is a daemon that watches local RSS/Atom files for changes and executes commands when new articles appear. It is written in python2 and depends on gamin and feedparser.</p>
<p>sendxmpp is the XMPP equivalent of sendmail, <a href="https://github.com/Changaco/xmpputils">sendxmpp-py</a> is a python3 replacement for the old sendxmpp written in Perl.</p>
<h2 id="rants">Rants</h2>
<p>I couldn't find a cross-platform library to watch files/directories accessible from python to use in feed-push. I fell back to gamin which only works on Linux and FreeBSD at the time I'm writing this post.</p>
<p>sendxmpp should be provided by the XMPP server (in my case prosody) the same way SMTP servers provide sendmail.</p>
<p>There is still no way for a developer to provide a cross-distribution and easy way for users to cleanly install its software, the only tool I know of that tries to solve this problem is <a href="https://gitorious.org/pkgxx">pkg++</a> but it's not even close to being ready.</p>
<p><br></p>
<h2 id="references">References</h2>
<p>[^1]: <a href="https://torrentfreak.com/torrent-less-pirate-bay-sees-massive-drop-in-bandwith-120308/">Torrent-less Pirate Bay Sees Massive Drop in Bandwith</a></p>
DNS problems and alternativeshttp://changaco.oy.lc/blog/DNS_problems_and_alternatives/2014-08-29T16:32:52Z2011-12-10T13:34:21Z
<p>Replacing the <abbr title="Domain Name System">DNS</abbr> is a recurrent topic. In this post I try to explain the problems and give a list of existing or proposed alternatives.</p>
<h2 id="problemsofthedns">Problems of the DNS</h2>
<p>A little terminology first : the DNS has two functions, registering and resolving names. Critics of the registration mechanisms are mostly political, resolution problems are mostly technical.</p>
<h3 id="censorship">Censorship</h3>
<p>The US government has <a href="http://torrentfreak.com/feds-seize-130-domain-names-in-mass-crackdown-111125/">seized many domain names in November 2011</a>, as it had done the year before. Contrary to what some people said, <a href="http://domainincite.com/icann-had-no-role-in-seizing-torrent-domains/">the ICANN was not involved in those operations</a>. It was <a href="http://en.wikipedia.org/wiki/Verisign">Verisign</a>, the operator of the .com, .net, and .name generic top-level domains, that was ordered to seize the domains. As a result, some sites have fled generic TLDs controlled by US companies.</p>
<h3 id="economicvampirismanddomainparking">Economic vampirism and domain parking</h3>
<p>The DNS is a big profitable business.</p>
<p>The name renting (you can't buy a domain name) business works like this : client → registrar (domain manager) → registry (<abbr title="Top-Level Domain">TLD</abbr> manager) → ICANN (root manager). Some of these organizations are nonprofit (e.g. ICANN), but that doesn't mean people working for them don't profit (there are high salaries, expensive dinners, trips, etc). Others are corporations that make very good profits[^1].</p>
<p>X.509 certificates are another business. They are delivered by Certificate Authorities and used in TLS. This security model has been widely criticized[^2][^3][^4] and there are plans to put certificates directly in DNS records[^5][^6], and others to replace X.509 by OpenPGP[^7].</p>
<p>Finally, there is the very annoying <a href="http://en.wikipedia.org/wiki/domain%20parking">domain parking</a> business.</p>
<h3 id="technicalproblems">Technical problems</h3>
<p>Being very old, the DNS also has technical weaknesses.</p>
<p>The first is slow propagation of records because the DNS uses time-based caches.</p>
<p>The second is that records are not stored in a P2P network, but by authoritative servers, which can be taken down by <abbr title="Denial of Service">DoS</abbr> attacks if they aren't sufficiently protected. This is rarely a problem in practice though.</p>
<h2 id="whyhaventtheproblemsbeensolvedyet">Why haven't the problems been solved yet ?</h2>
<p>Well, because different people want things that are contradictory. The problem is often known as <a href="http://en.wikipedia.org/wiki/Zooko%27s%20triangle">Zooko's triangle</a>, but there are in fact more than three desirable properties for identifiers :[^8]</p>
<ul>
<li>We want to <strong>choose</strong> a <strong>unique</strong> and <strong>memorable</strong> name so we can communicate it to somebody else even if we don't have our computer with us at the moment. Some people who always have their smartphone with them may argue that this property is not important anymore, but not everybody has a smartphone.</li>
<li>We want a <strong>censorship-free</strong> system.</li>
<li>We want our <strong>trademarks</strong> to be registered only by us.</li>
<li>We want links between documents that are <strong>stable in time</strong>, the Web doesn't like broken URLs.</li>
<li>We want the registration process to be <strong>easy, fast and free of charge</strong>.</li>
<li>We want a name to be <strong>resolvable</strong> to an address, otherwise it's of no use to us.</li>
<li>We want names that are <strong>recoverable</strong> in case of hijacking or loss of credentials.</li>
</ul>
<h2 id="existingorproposedalternatives">Existing or proposed alternatives</h2>
<p>I can't help but start by my own DNS replacement proposal. <img src="http://changaco.oy.lc/smileys/smile.png" alt=":)" /> The <a href="http://changaco.oy.lc/ins/">Internet Naming System</a> acknowledges that there is no perfect solution and chooses to keep a central authority for name allocation. It makes censorship automatically detectable but not impossible.</p>
<p>Projects for P2P registration of names :</p>
<ul>
<li><a href="http://dot-bit.org/">Dot-BIT</a> (<a href="irc://irc.freenode.net/namecoin">#namecoin on freenode</a>) uses Bitcoin-like proof-of-work (which assumes that honest nodes have the majority of computing power)</li>
<li><a href="http://www.p2pns.org/">P2PNS</a> assumes that a vast majority of peers is honest</li>
<li><a href="http://lauren.vortex.com/archive/000787.html">IDONS: Internet Distributed Open Name System</a> (<a href="http://forums.gctip.org/forum-34.html">forum</a>) seems dead</li>
<li><a href="irc://irc.efnet.org/dns-p2p">#dns-p2p</a>, which used to have a wiki on dot-p2p.org, never gave anything and is dead</li>
</ul>
<p>Technical solutions for improving resolution :</p>
<ul>
<li><a href="http://beehive.systems.cs.cornell.edu/codons.php">CoDoNS</a></li>
<li><a href="http://huitema.wordpress.com/2011/01/03/a-simple-p2p-dns-proposal/">A simple P2P DNS proposal</a></li>
</ul>
<p>Other projects :</p>
<ul>
<li><a href="http://opennicproject.org/">OpenNIC</a> (<a href="irc://irc.freenode.net/opennic">#opennic on freenode</a>, <a href="http://lists.darkdna.net/mailman/listinfo">OpenNIC lists</a>) is an alternative root</li>
<li><a href="http://dns.telecomix.org/">Telecomix Censorship-proof DNS</a> (<a href="irc://irc.telecomix.org/dns">#dns on telecomix IRC</a>)</li>
</ul>
<p>Other proposals :</p>
<ul>
<li>on the <a href="http://lists.zooko.com/mailman/listinfo/p2p-hackers">p2p-hackers list</a> :
<ul>
<li><a href="http://lists.zooko.com/pipermail/p2p-hackers/2010-December/002598.html">Secure, decentralized DNS (a.k.a. solving Zooko's triangle)</a></li>
<li><a href="http://lists.zooko.com/pipermail/p2p-hackers/2010-December/002587.html">.p2p domain</a></li>
</ul></li>
<li><a href="http://roland.entierement.nu/blog/2010/10/02/for-a-truly-acentric-internet.html">For a truly acentric Internet</a>, proposes to abandon meaningful identifiers (an old proposition that comes back regularly)</li>
<li><a href="http://www.templetons.com/brad/dns/">Problems, Goals and a Fix for Domain Names</a>, proposed to only allow trademarks as TLDs</li>
</ul>
<h2 id="referencesandcredits">References and credits</h2>
<p>[^1]: <a href="http://www.chemla.org/textes/voleur.html">Confessions d'un voleur</a> [fr]</p>
<p>[^2]: <a href="https://www.eff.org/deeplinks/2010/03/researchers-reveal-likelihood-governments-fake-ssl">New Research Suggests That Governments May Fake SSL Certificates</a></p>
<p>[^3]: <a href="https://docs.google.com/present/view?id=df9sn445_206ff3kn9gs">It's Time to Fix HTTPS</a></p>
<p>[^4]: <a href="http://lair.fifthhorseman.net/~dkg/tls-centralization/">Technical Architecture shapes Social Structure: an example from the real world</a></p>
<p>[^5]: <a href="http://tools.ietf.org/wg/dane/">DNS-based Authentication of Named Entities - IETF Working Group</a></p>
<p>[^6]: <a href="http://www.bortzmeyer.org/jres-dane-2011.html">Exposé sur les clés dans le DNS à JRES</a> [fr]</p>
<p>[^7]: <a href="http://web.monkeysphere.info/">The Monkeysphere Project</a></p>
<p>[^8]: <a href="http://www.bortzmeyer.org/no-free-lunch.html">Inventer un meilleur système de nommage: pas si facile</a> [fr]</p>
<p>Thanks to Stéphane Bortzmeyer for helping with this post.</p>
Privacy and distant storagehttp://changaco.oy.lc/blog/Privacy_and_distant_storage/2014-08-29T16:32:52Z2010-08-30T22:45:55Z
<p>Some people seem to think that their data is only safe in their own homes. I agree that not keeping a local copy or storing unprotected personal documents on a machine you don't control are bad things. But I was reminded today (while trolling on <a href="http://www.numerama.com/">Numerama</a>, a French tech-related news site) that having them home doesn't make them safe from:</p>
<ul>
<li>hardware failures such as hard drive breakdowns (although <a href="http://smartmontools.sourceforge.net/">smartmontools</a> may be able to alert you before it is too late)</li>
<li>disasters such as fire</li>
</ul>
<p>Of course, if your home burns, loosing your files will be the least of your concerns, but if you know they are safe it is one less thing to worry about.</p>
<p>Then I realized that having backups in different geographic places does not necessarily endanger your privacy, it just depends on how you do it. What you need is to encrypt and/or cut the data so that the people who will store it for you will not be able to read or exploit it (just like <a href="http://en.wikipedia.org/wiki/Freenet">Freenet</a> does for different reasons).</p>
<p>So the next question is where to store it ? I came to see three possibilities:</p>
<ul>
<li>pay for some storage service, might be necessary if you have a lot of data</li>
<li>share storage space with peers, this was my original thought</li>
<li>share storage space with family and/or friends, this the safest of the three and credit goes to Kaliko for suggesting it to me in a chat room</li>
</ul>
<p>I believe, like many others, that a good place for such sharing software is in <a href="http://en.wikipedia.org/wiki/residential%20gateway">residential gateway</a>s, maybe we'll see it implemented someday in the <a href="http://wiki.debian.org/FreedomBox">Freedom Box</a> ?</p>
Code indentation and alignmenthttp://changaco.oy.lc/blog/Code_indentation_and_alignment/2012-04-16T12:31:10Z2010-06-01T15:09:22Z
<p>In this post I try to summarize the different points of view on the tabs versus spaces war.</p>
<h2 id="decompositionoftheproblem">Decomposition of the problem</h2>
<p>Firstly, you need to understand the difference between the <strong>tab key</strong> and the <strong>tab character</strong>. What your text editor does when you press the tab key is a matter of configuration and has nothing to do with the problem discussed here.</p>
<p>Secondly, we need to distinguish <strong>indentation</strong> and <strong>alignment</strong>, this is explained in <a href="http://www.iovene.com/61">TABs vs Spaces. The end of the debate.</a> and shows why the historical rendering of tabs is not fit for alignment.</p>
<h2 id="thesolutions">The solutions</h2>
<h3 id="useonlyspaces">Use only spaces</h3>
<p>This is the solution proposed by many and is notably exposed in <a href="http://www.jwz.org/doc/tabs-vs-spaces.html">Tabs versus Spaces: An Eternal Holy War.</a></p>
<p>The obvious solution when dynamic doesn't work is to fall back to static. Using only spaces does indeed work for both indentation and aligning and you can configure most text editors to make it as easy as using tabs. So, what's wrong with it ? Here's a list :</p>
<ul>
<li>you can't use proportional fonts</li>
<li>you can't easily change the indentation width</li>
<li>your files are larger</li>
</ul>
<p>The two first points are all about freedom, maybe you don't like proportional fonts to code, but some people do.</p>
<p>As to the third point, people usually reject it by saying that it doesn't matter nowadays because of disks capacity, network speed and compression. Still, I wanted to make a <em>quick and dirty</em> measure of the impact of the 4 spaces policy on python 2.6 on my system as of June 2010 ( done in zsh ) :</p>
<pre><code># cd /usr/lib/python2.6
# for f in **/*(/); do mkdir -p "../python2.6.spaces/$f" "../python2.6.tabs/$f"; done;
# for f in **/*.py; do cp "$f" "../python2.6.spaces/$f"; cp "$f" "../python2.6.tabs/$f"; done;
# du -h --max-depth=0 python2.6.*
43M python2.6.spaces
43M python2.6.tabs
# cd ../python2.6.tabs
# sed 's/^\(\t*\) /\1\t/' -i **/*.py
# du -h --max-depth=0 ../python2.6.tabs
41M ../python2.6.tabs
# sed 's/^\(\t*\) /\1\t/' -i **/*.py
# du -h --max-depth=0 ../python2.6.tabs
39M ../python2.6.tabs
... I did it two more times but the rounded number stayed 39M
</code></pre>
<p>The result is that using 4 spaces instead of tabs makes files about 10% bigger. If you get a different result or tested something else than python 2.6 I invite you to post a comment.</p>
<h3 id="usespacesforalignment">Use spaces for alignment</h3>
<p>Since the problem with tabs is alignment, some people argue that you can use whatever you want for indentation as long as you use spaces for alignment. If you choose to use tabs, the indentation width is no longer an issue and most of the space waste goes away, but you still can't use proportional fonts.</p>
<h3 id="elastictabstops">Elastic tabstops</h3>
<p>This solution solves all the issues listed here and makes alignment easier. How ? By redefining the way the tab character is displayed. It's all explained in <a href="http://nickgravgaard.com/elastictabstops/">Elastic tabstops - a better way to indent and align code</a>. The downside is that text editors have to be modified.</p>
<h2 id="myopinion">My opinion</h2>
<p>I use tabs for indentation, spaces for alignment and I wish elastic tabstops were more widely known, implemented and used.</p>
Réponse à Daniel Glazmanhttp://changaco.oy.lc/blog/R%C3%A9ponse_%C3%A0_Daniel_Glazman/2013-06-01T19:09:51Z2010-05-16T20:49:20Z
<p>Comme le dit le dicton populaire : « mieux vaut tard que jamais ». Je vais donc profiter de l'ouverture de mon blog pour répondre à un message de Daniel Glazman, mais ce billet concerne aussi Tristan Nitot.</p>
<p>Commençons par poser le décor, l'histoire commence avec une <a href="http://standblog.org/blog/post/2010/04/02/Interview-Glazman-BlueGriffon">interview de Daniel Glazman par Tristan Nitot</a>. Ayant le Standblog dans mon lecteur de flux je lis l'article et trouvant étrange le modèle économique choisi par M. Glazman je décide de laisser un commentaire :</p>
<blockquote>
<p>Encore et toujours en train d'essayer de vendre des copies, quand allez-vous comprendre que ce n'est pas un modèle viable ?<br />
Voir entre autres : <a href="http://hcsoftware.sourceforge.net/jason-rohrer/freeDistribution.html">Free Distribution</a>.</p>
</blockquote>
<p>J'avoue que c'était plutôt <em>trollesque</em>, j'aurais pu commencer par une question plus neutre sur le pourquoi du modèle économique choisi.</p>
<p>C'est là que commencent les choses intéressantes. Tout d'abord, les commentaires étaient modérés à priori ce qui compliquait le débat en introduisant de longs délais, on a continué malgré tout, jusqu'à ce que M. Nitot ferme les commentaires, sans donner d'explication. <a href="http://changaco.oy.lc/blog/#note1" id="note1_c1" title="Aller à la note 1">1</a></p>
<p>Puis quelqu'un qui est abonné au blog de M. Glazman m'envoie un message sur Jabber pour me signaler que celui-ci a publié un billet pour continuer le débat : <a href="http://www.glazman.org/weblog/dotclear/index.php?post/2010/04/07/Usual-suspects">Usual suspects - <Glazblog/></a>.</p>
<p>Je réponds donc là-bas, mais M. Glazman en a vite marre et ferme les commentaires à son tour, en laissant ce message :</p>
<blockquote>
<p>A ce point, crevé par le jetlag, une crève monumentale et mon retour tardif de Paris hier soir, ce commentateur me les broute menu-menu. Ses arguments sont tellement nuls ("<cite>Si BlueGriffon était financé par Mozilla on ne serait pas en train de parler de tout ça</cite>" et si ma tante en avait...) que j'en ai franchement ras-le-bol d'offrir une tribune à cette personne ; je ferme donc les commentaires sur cet article mais je laisse sa prose, elle fera date...</p>
</blockquote>
<p>Tout d'abord je tiens à faire remarquer que j'ai passé pas mal de temps à rédiger mes commentaires or la majorité de mes propos n'a pas eu de réponse, par exemple ma question dans mon dernier commentaire sur la fiabilité du modèle économique choisi :</p>
<blockquote>
<p>je ne vois pas en quoi le modèle économique de la vente d'extensions propriétaires serait sûr. Par exemple si la communauté développe les mêmes en libre que ferez-vous ? La course aux fonctionnalités ?</p>
</blockquote>
<p>Enfin, et c'est la motivation première de ce billet, je tiens à dénoncer cette pratique de la fermeture des commentaires totalement contraire à la liberté d'expression, il y a des façons plus civilisées de clore un débat, qu'il soit <em>trollesque</em> ou non.</p>
<p><a id="note1" href="http://changaco.oy.lc/blog/#note1_c1">↑</a> <strong>Édit :</strong> on me rétorque que les commentaires sont fermés automatiquement aux bouts de 3 jours sur le Standblog. À cela je réponds deux choses :</p>
<ul>
<li>je ne vois aucune mention de ça sur ledit blog, il me semble que la moindre des choses serait de le signaler</li>
<li>je suis autant en désaccord avec cette pratique qu'avec la fermeture manuelle</li>
</ul>