<?xml version="1.0" encoding="UTF8" ?>
<rss version="2.0">

<channel>
  <title>bruit aléatoire au sein du réseau ...</title>
  <link>http://ange.librium.org</link>
  <description>... nuages dans un ciel d'azur</description>
      
  <item>
    <title>Re Travail</title>
    <link>/07-12-2010/Re-travail.html</link>
		<pubDate>Mon Jul 12 12:52:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Re travail&lt;/h2&gt;
&lt;p&gt;Pour ceux qui lisent un peu ce qui sort en livre autour de Ruby, et notament de Ruby On Rails ils auront probablement vu passer &lt;a href="http://37signals.com/rework/"&gt;Rework&lt;/a&gt;. C&#8217;est un petit livre écrit par David Heinemeier Hanson et Jason Fried fondateurs et employés de 37Signals.&lt;/p&gt;
&lt;p&gt;Si vous êtes intéressés une bonne partie du contenu, ou au moins de l&#8217;esprit est dans &lt;a href="http://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Le principe général est le suivi : vous expliquer comment ils ont fait, ou du moins les conclusions qu&#8217;ils ont tiré de leur aventure jusqu&#8217;ici. Dehors les formes lourdes de marketing, management et embauche, voici des idées beaucoup plus légères et directes. Une lecture intéressante donc.&lt;/p&gt;
&lt;h3&gt;Padrino&lt;/h3&gt;
&lt;p&gt;Je continue ma route avec Padrino pour le moment, ce qui est rafraichissant mais change pas vraiment de Rails en fait, si ce n&#8217;est l&#8217;architecture plus simple et plus directe. Cela m&#8217;a forcé de regarder de prés JQuery et de l&#8217;adopter.&lt;/p&gt;
&lt;p&gt;Encore plein de découvertes donc. Et le mac tient bien la charge, pas vraiment les 10 heures, mais pas loin de 6 à 8 heures suivant les utilisations. Très agréable de pouvoir se passer de se brancher en milieu de journée surtout quand je suis en déplacements.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Padrino Haml DataMapper</title>
    <link>/06-14-2010/Padrino-Haml-DataMapper.html</link>
		<pubDate>Mon Jun 14 18:52:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Padrino Haml DataMapper&lt;/h2&gt;
&lt;p&gt;Le temps passe à une vitesse folle, et j&#8217;ai à peine le temps de voir correctement toutes les technos que je peux aborder pour tester.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.padrinorb.com"&gt;Padrino&lt;/a&gt; se confirme comme un très bon outil. La documentation n&#8217;est pas encore très intuitive je trouve mais la &lt;em&gt;petite&lt;/em&gt; communauté de développeurs est très chaleureuse, un peu comme ce que j&#8217;ai connu à mes débuts dans RubyOnRails, et dans un chan alternatif traitant principalement de Rails.&lt;/p&gt;
&lt;p&gt;J&#8217;en ai profité pour tester et adopter &lt;a href="http://haml-lang.com/"&gt;Haml&lt;/a&gt; et &lt;a href="http://sass-lang.com/"&gt;Sass/Scss&lt;/a&gt; qui sont aussi une très bonne découverte. &lt;a href="http://twitter.com/bartocc"&gt;Julien Palmas&lt;/a&gt; m&#8217;en avait parlé et d&#8217;autres avant lui et j&#8217;ai finalement cédé. Mis à part la syntaxe &#8220;à la Pyhton&#8221; de Haml ça me plaît assez.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://datamapper.org/"&gt;DataMapper&lt;/a&gt; est une alternative à ActiveRecord, plus léger paraît il, plus rapide et sans besoin forcé de migrations. J&#8217;ai essayé, mais j&#8217;ai dû revenir en arrière et repasser à ActiveRecord à cause de DelayedJob qui n&#8217;a pas de fork stable qui supporte correctement DataMapper. Très triste.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://patterntap.com/"&gt;PatternTap&lt;/a&gt; se confirme comme une très très bonne source d&#8217;inspiration et d&#8217;idées en matière de design web, avec de véritables perles &#8230;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Nouvelle machine</title>
    <link>/06-14-2010/Nouvelle-machine.html</link>
		<pubDate>Mon Jun 14 18:52:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Nouvelle machine&lt;/h2&gt;
&lt;p&gt;Voila que je me remets à laisser passer du temps entre les posts, diantre. Après un week un peu relax, avec un tout petit peu de code, de la lecture et des tests je me suis décidé à acheter une nouvelle machine. Jusqu&#8217;ici, enfin depuis trois semaines je travaillais sur un MacBook Pro CoreDuo prêté par un ami. Comme celui ci veut vendre cette machine et que j&#8217;ai enfin touché quelques sous grâce à un contrat j&#8217;ai pû m&#8217;offrir une nouvelle machine.&lt;/p&gt;
&lt;p&gt;Et j&#8217;ai pris, pour de multiples raisons, notamment financières (mais pas seulement) un MacBook Pro 13,3&quot; (édition 2010). Le déballage reste similaire à tous les déballages que vous pouvez voir sur le net : petite boite, petit lappy alu, etc &#8230;&lt;/p&gt;
&lt;p&gt;La machine se révèle effectivement de petite taille, à peine plus grande qu&#8217;un A4. Légère aussi, enfin 2kg quand même. L&#8217;écran m&#8217;a rapidement convaincu d&#8217;avoir une machine bien finie, il est juste magnifique, les couleurs pètent etc &#8230;&lt;/p&gt;
&lt;p&gt;Niveau autonomie c&#8217;est un peu magique aussi. Les 10h annoncées ne sont peu être pas si difficile à atteindre que ça. Au moment où j&#8217;écris ces lignes il m&#8217;annonce 6 heures et 13 minutes restantes pour 68% restants. Je n&#8217;ai ni bluetooth ni airport d&#8217;activé certes mais cela reste très potable avec.&lt;/p&gt;
&lt;p&gt;Fin de soirée j&#8217;ai toujours 25% de batterie dispo et pourtant je lui fait télécharger des grosses mises à jour en wifi. Il m&#8217;annonce 1h50 restantes après des heures d&#8217;utilisations. La question évidement c&#8217;est de savoir combien de temps cela sera comme ça on verra.&lt;/p&gt;
&lt;p&gt;En bref : plutôt content de l&#8217;investissement après une petite journée passée à l&#8217;utiliser. Machine légère mais efficace, et utilisable pour travailler quand même.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Sinatra Padrino Carrierwave</title>
    <link>/06-12-2010/Sinatra-Padrino-Carrierwave.html</link>
		<pubDate>Sat Jun 12 00:45:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Sinatra Padrino Carrierwave&lt;/h2&gt;
&lt;p&gt;Après des années à utiliser RubyOnRails j&#8217;ai décidé de regarder un peu à côté pour voir ce qui se passe et comment ça marche.&lt;/p&gt;
&lt;p&gt;Parmis les noms qui reviennent souvent : &lt;a href="http://www.sinatrarb.com/"&gt;Sinatra&lt;/a&gt; et &lt;a href="http://www.padrinorb.com/"&gt;Padrino&lt;/a&gt;. Padrino est une sorte de projet par dessus Sinatra. Et Sinatra est un framework similaire à RubyOnRails mais plus léger, bien plus léger.&lt;/p&gt;
&lt;p&gt;J&#8217;ai eu la chance de croiser un développeur utilisant Padrino sur le channel de Sinatra, j&#8217;ai donc regardé de plus prés. Ayant besoin de coder quelque chose de simple, léger pour traiter une grande quantité de données j&#8217;ai donc tenté la chance.&lt;/p&gt;
&lt;p&gt;Je reviendrai sur ce framework prochainement je pense, une fois que j&#8217;aurai fait un tour plus complet mais d&#8217;hors et déjà je peux vous dire que j&#8217;ai beaucoup apprécié. Certes pour le moment je suis surtout axé sur une partie non web de l&#8217;application, mais la simplicité de l&#8217;application est appréciable. Simple de se brancher ici et là, de modifier une configuration etc &#8230;&lt;/p&gt;
&lt;p&gt;J&#8217;ai aussi besoin de gérer l&#8217;upload de fichiers. Habituellement on entend vite &#8220;paperclip&#8221; quand on pose cette question. Je ne sais pas comment je suis tombé sur &lt;a href="http://carrierwave.rubyforge.org"&gt;Carrierwave&lt;/a&gt;. Relativement simple, pratique il permet de &#8220;taper&#8221; dans différents services de stockage de données : &lt;span class="caps"&gt;AWS&lt;/span&gt; S3, Rackspace Cloud Files, et MongoDB GridFS. Dans le cas d&#8217;images on a le choix entre utiliser RMagick, &lt;a href="http://seattlerb.rubyforge.org/ImageScience.html"&gt;ImageScience&lt;/a&gt;, ou MiniMagick pour générer différentes résolutions.&lt;/p&gt;
&lt;p&gt;D&#8217;ailleurs, jetez un oeil à ImageScience, en remplacement de ImageMagick.&lt;/p&gt;
&lt;p&gt;Après quelques tests, problèmes de configuration etc &#8230; J&#8217;ai réussi à faire marcher tout ça. Un dernier problème que j&#8217;ai rencontré c&#8217;est le fait que Carrierwave utilise un répertoire temporaire, de cache, pour préparer son boulot etc &#8230; Par défaut il essaye d&#8217;écrire dans &lt;em&gt;uploads/tmp/&lt;/em&gt;, ce qui est à la limite faisable sur un serveur maison. Mais ça ne marche pas chez Heroku puisque seul &lt;em&gt;tmp/&lt;/em&gt; est accessible en écriture. Après une rapide recherche j&#8217;ai trouvé un &lt;a href="http://codingfrontier.com/carrierwave-on-heroku"&gt;article&lt;/a&gt; sur un blog que j&#8217;ai déjà croisé cette semaine.&lt;/p&gt;
&lt;p&gt;Une semaine plutôt chargée donc. Mais une très bonne impression générale sur Padrino, et Carrierwave.&lt;/p&gt;
&lt;p&gt;Ah oui j&#8217;ai dût patcher &lt;a href="http://github.com/mcansky/mail"&gt;Mail&lt;/a&gt; et &lt;a href="http://github.com/mcansky/delayed_job"&gt;delayed_job&lt;/a&gt; pour les faire marcher avec mon appli. Rien de bien important mais tout de même.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>iPhone at last</title>
    <link>/06-08-2010/IPhone-at-last.html</link>
		<pubDate>Tue Jun 08 13:45:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;iPhone at last&lt;/h2&gt;
&lt;p&gt;Ca y est l&#8217;iPhone est sorti ! &#8220;oui l&#8217;iPhone 4&#8221; non l&#8217;iPhone. Si on regarde bien le produit qui vient d&#8217;être annoncé il est le premier iPhone doté de ce qu&#8217;il faut pour &#8220;concurrencer&#8221; les téléphones qui sortent sur le marché depuis 2 ou 3 ans. Beaucoup de gens se sont plaint de l&#8217;abscence d&#8217;une camera sur la face avant de l&#8217;appareil, du multitâche et avant ça de quelques autres points.&lt;/p&gt;
&lt;p&gt;Après plusieurs années le téléphone d&#8217;Apple a enfin la capacité de faire de la vidéo conf (qu&#8217;on a pu voir marcher il y a déjà quelques années avec d&#8217;autres modèles) il a enfin le multi tâche etc &#8230;&lt;/p&gt;
&lt;p&gt;Si on regarde un peu comment cet iPhone est arrivé sur le marché on pourrait facilement faire un parallèle avec les méthodes récentes de développement logiciel. Comme vous pourriez le lire dans &#8220;&lt;em&gt;Getting Real&lt;/em&gt;&#8221; le principe que beaucoup de développeurs essayent d&#8217;utiliser, surtout dans les start ups, c&#8217;est de développer en utilisant des itérations autour d&#8217;un même principe :&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;définir un jeu de fonctionnalités miniales pour une première version&lt;/li&gt;
	&lt;li&gt;développer ces fonctionnalités&lt;/li&gt;
	&lt;li&gt;mettre en ligne cette version&lt;/li&gt;
	&lt;li&gt;recevoir les critiques et les demandes&lt;/li&gt;
	&lt;li&gt;définir un jeu de fonctionnalités pour la version suivante en fonction du plan global de fonctionnalités et des informations obtenues au point précédent&lt;/li&gt;
	&lt;li&gt;reprendre le processus au point 2&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;On pourrait dire que c&#8217;est une méthode utilisée dans toute l&#8217;industrie, chaque produit d&#8217;une gamme continue d&#8217;être amélioré. Oui, mais à ce point. En général une voiture est conçue comme une voiture, ou un appareil ménager comme un appareil ménager dans le sens où sur des produits de ce type il est difficile de motiver des changements fréquents, et surtout difficile de sortir un produit simple pour une première version, puis une version suivante un peu améliorée et espérer que les gens vont changer de voiture du coup. Les prix ne sont pas les mêmes. Je pense que le cas de l&#8217;iPhone (ou de l&#8217;iPod) est vraiment particulier, ou du moins, spécifique à cette gamme de produits.&lt;/p&gt;
&lt;p&gt;Ainsi, si on y regarde, l&#8217;iPhone a évolué selon ce principe. Dès la première version le produit est &#8220;viable&#8221;, ce n&#8217;est pas une version d&#8217;essai ou quoi que ce soit, mais il ne correspond pas au produit final voulu par le constructeur. Cependant cela permet à la firme d&#8217;affiner le produit à la demande, et ainsi éviter la casse. Le premier modèle correspond à un produit minimal nécessaire pour tester le marché introduisant une part d&#8217;innovation, mais pas trop, afin de limiter les coûts. Au fur et à mesure, le produit est amélioré, rapproché de la liste de fonctionnalités voulues tout en écoutant les démandes des clients.&lt;br /&gt;
Le petit plus c&#8217;est que cela permet de capitaliser sur chaque version du produit. Puisqu&#8217;elle comporte son lot d&#8217;améliorations les clients d&#8217;une version précédente seront forcément intéressés par un changement d&#8217;appareil après une ou deux générations. Tout le monde y trouve son compte (en terme de consommation).&lt;/p&gt;
&lt;p&gt;Autre bonus pour des entreprises comme Apple : depuis le lancement du premier iPhone la technologie a grandement évolué, ce qui leur a permis de faire évoluer le produit avec. Plutôt que de prendre le risque pour un premier modèle d&#8217;utiliser une technologie pas encore très au point ils ont fait le pari de garder quelque chose qui marche et de le vendre afin de gagner un peu de temps pour intégrer un meilleur produit par la suite.&lt;/p&gt;
&lt;p&gt;Ainsi l&#8217;iPhone 4 correspond probablement à ce que Apple avait en tête depuis un certain temps. On ne peut que saluer là la stratégie marketing et industrielle de la firme qui mène de main de maitre sa communication (leaks organisés, keynotes, &#8230;), l&#8217;évolution de ses produits à la bonne vitesse etc &#8230;&lt;/p&gt;
&lt;p&gt;On peut aussi saluer une nouvelle fois la mauvaise foi d&#8217;Apple qui annonce &#8220;tout réinventer&#8221; avec un produit qui n&#8217;est pas si révolutionnaire que ça. Mais c&#8217;est là la force du marketing.&lt;/p&gt;
&lt;p&gt;On remarquera qu&#8217;avec une telle machine de communication, il est difficile pour d&#8217;autres constructeurs de faire autre chose que &#8220;suivre&#8221;, leurs innovations étant mis à l&#8217;écart par le bruit généré.&lt;/p&gt;
&lt;p&gt;Bref Apple continue sur sa lancée et ses habitudes : &#8220;iPhone 4 : on vous pompe des sous, encore une fois.&#8221;. En attendant la prochaine itération &#8230;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>MemCached Jekyll</title>
    <link>/06-08-2010/MemCached-Jekyll.html</link>
		<pubDate>Tue Jun 08 00:18:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;MemCached Jekyll&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;[english version at bottom]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;En réflechissant à une solution pour un problème je me suis penché sur &lt;a href="http://memcached.org"&gt;&lt;strong&gt;memcached&lt;/strong&gt;&lt;/a&gt; et comment le faire marcher avec &lt;strong&gt;thin&lt;/strong&gt; et &lt;strong&gt;nginx&lt;/strong&gt;.&lt;br /&gt;
Je me suis vite rendu compte d&#8217;un problème de taille : Nginx et son module memcached ne remplissent pas memcached avec le contenu tout neuf. Il faut utiliser un script pour ça, hélàs le seul que j&#8217;ai trouvé était en Perl. En quelques minutes j&#8217;ai trouvé une doc sur une gem Ruby pour taper dans memcached (&lt;em&gt;memcached-client&lt;/em&gt;). Après un break je m&#8217;y suis donc remis.&lt;/p&gt;
&lt;p&gt;Mais j&#8217;avais un autre soucis : nginx ne semblait pas se connecter sur le memcached, il allait directement voir thin. Sombre idiot que je suis, nginx est simple et efficace, il faut pas chercher compliqué mais logique. Mon problème était que je pensais qu&#8217;en lui donnant l&#8217;adresse du serveur http pour qui il faisait proxy (thin), et du serveur memcached il se débrouillerait pour retrouver ses petits. Et bien non. C&#8217;est illogique.&lt;/p&gt;
&lt;p&gt;La solution c&#8217;est de d&#8217;abord lui dire d&#8217;aller voir memcached et d&#8217;ensuite taper sur thin si memcached lui renvoie un 404. La bonne configuration est donc la suivante :&lt;br /&gt;
&lt;script src="http://gist.github.com/429260.js?file=gistfile1.txt"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;Oui cette configuration s&#8217;attend à ce qu&#8217;il y ait tout dans le memcached, c&#8217;est normal c&#8217;est un Jekyll que j&#8217;ai mis derrière pour tester. Mais dans le cas où vous ne voudriez pas tout, il vous suffit de rajouter quelques conditions.&lt;/p&gt;
&lt;p&gt;Ah donc mon nginx allait désormais correctement demander au memcached s&#8217;il avait du pain. Mais il fallait mettre du pain dans la poche de memcached pour qu&#8217;il puisse dire &#8220;oui&#8221;. J&#8217;ai donc fait un script pour ça (utilisant memcached-client), publié sur github : &lt;a href="http://github.com/mcansky/kanjied"&gt;kanjied&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;MemCached Jekyll&lt;/h2&gt;
&lt;p&gt;So, looking for a solution about a problem I&#8217;ve got, I&#8217;ve looked into &lt;a href="http://memcached.org"&gt;&lt;strong&gt;memcached&lt;/strong&gt;&lt;/a&gt; and how to make it work with &lt;strong&gt;thin&lt;/strong&gt; and &lt;strong&gt;nginx&lt;/strong&gt;.&lt;br /&gt;
I quickly saw a problem : Nginx and its memcached module are not adding initial content to memcached. We need to use a script for that. Alas the only one I found was in Perl. After few minutes I found a doc about the &lt;em&gt;memcached-client&lt;/em&gt; rubygem.&lt;/p&gt;
&lt;p&gt;But the main trouble was that nginx didn&#8217;t seem to connect to memcached, it was always just asking to thin. As the stupid code monkey I am I didn&#8217;t realise how much simple and logic nginx is. My problem was that I was thinking that giving nginx both memcached and proxy lines in the main config of the server would make him figure out from where it should grab the content to send back. In fact, nginx is simple : it checks only one. The solution is simple : tell him to check memcached for the content, if it&#8217;s not there memcached will send back a 404, and then on that case you can tell nginx where to go : thin. So here is the config :&lt;br /&gt;
&lt;script src="http://gist.github.com/429260.js?file=gistfile1.txt"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;Yes, that is a very simple one, checking everyfiles with memcached, if you need to check only few ones just add filters. I was using this just to test with Jekyll so &#8230;&lt;/p&gt;
&lt;p&gt;So now nginx was requesting content correctly to memcached, but I still needed to put content there. So I read the memcache-client doc and wrote a small script to do exactly that : &lt;a href="http://github.com/mcansky/kanjied"&gt;kanjied&lt;/a&gt;.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Twitt moi tendre, twitt moi vrai</title>
    <link>/06-07-2010/Twitt-moi-tendre-twitt-moi-vrai.html</link>
		<pubDate>Mon Jun 07 00:18:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Twitt moi tendre, twitt moi vrai&lt;/h2&gt;
&lt;p&gt;Han chui trop à la mode j&#8217;ai un twitter et tout ! Oui bon je n&#8217;y dis pas grand chose mais j&#8217;y trouve son utilité pour suivre un peu ce qui se passe du côté de RubyOnRails, Sinatra, la neutralité du Net, les gens avec qui je bosse de prés ou de loin. Je m&#8217;en suis servi récemment pour trouver des contacts de graphistes pour mes projets. (et ça marche).&lt;/p&gt;
&lt;h3&gt;Twitter &amp; Jekyll&lt;/h3&gt;
&lt;p&gt;Comme précédement avec les commentaires il n&#8217;est pas évident d&#8217;insérer ses tweeeeets dans un blog Jekyll. La solution est à nouveau en Javascript. J&#8217;ai trouvé un court article : &lt;a href="http://think2loud.com/adding-twitter-to-your-website-with-javascript/"&gt;&lt;em&gt;Adding Twitter to your website with Javascript&lt;/em&gt;&lt;/a&gt; qui m&#8217;a renvoyé vers &lt;a href="http://remysharp.com/2007/05/18/add-twitter-to-your-blog-step-by-step/"&gt;&lt;strong&gt;Twitter.js&lt;/strong&gt;&lt;/a&gt;. Dans ce dernier lien on trouve une explication simple et claire de la marche à suivre. Et comme vous pouvez le constater à la racine de ce site, ça marche.&lt;/p&gt;
&lt;h3&gt;Bonus&lt;/h3&gt;
&lt;p&gt;En bonus, pour fêter la nouvelle semaine (oui moi je fête les Lundi) une &lt;a href="http://pinktentacle.com/2010/06/hayaku-a-time-lapse-journey-through-japan/"&gt;animation&lt;/a&gt; réalisée à partir de photos prises au Japon. Un conseil : mettez en plein écran avec le son.&lt;/p&gt;
&lt;h3&gt;&lt;span class="caps"&gt;CSS&lt;/span&gt; 3&lt;/h3&gt;
&lt;p&gt;&lt;span class="caps"&gt;CSS&lt;/span&gt; 3 est aussi à la mode, une petite page histoire de : &lt;a href="http://mashable.com/2010/06/04/awesome-css3-techniques/"&gt;&lt;em&gt;7 Awesome CSS3 Techniques You Can Start Using Right Now&lt;/em&gt;&lt;/a&gt;. Miam. J&#8217;ai pas encore fini de dépiler tous les links que j&#8217;ai récolté dans la vidéo dont je parlais &lt;a href="http://blog.arbousier.info/06-04-2010/Police-Design.html"&gt;précédement&lt;/a&gt;, celui ci vient de la récolte du jour sur HN.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Mort du Web Ouvert</title>
    <link>/06-05-2010/Mort-du-Web-ouvert.html</link>
		<pubDate>Sat Jun 05 12:49:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Mort du Web Ouvert&lt;/h2&gt;
&lt;p&gt;Mon ex collègue &lt;a href="http://twitter.com/sdouche"&gt;sdouche&lt;/a&gt; a twitté deux articles relativement similaires et tous les deux intéressants : &lt;a href="http://www.nytimes.com/2010/05/23/magazine/23FOB-medium-t.html"&gt;&lt;em&gt;Death of the Open Web&lt;/em&gt;&lt;/a&gt; (ce matin, traduit &lt;a href="http://www.framablog.org/index.php/post/2010/06/04/apple-ipad-carre-vip-web"&gt;ici&lt;/a&gt;), &lt;a href="http://affordance.typepad.com/mon_weblog/2010/05/la-boutique-contre-le-bazar.html"&gt;La boutique contre le bazar&lt;/a&gt; (il y a quelques jours, et qui est basé sur le précédent).&lt;/p&gt;
&lt;p&gt;Ces deux articles traitent du même sujet : le phénomène de découpage du Web entre des zones ouvertes, publiques, et des zones soumises à péages et privées. Le constat est simple : depuis l&#8217;arrivée de l&#8217;AppStore (sur les iPhone,iPod touch et iPad) c&#8217;est un web différent qui se construit. Une certaine population trouvant le Web Ouvert trop sale migrent vers des les centres résidentiels et commerciaux aspetisés et immaculés de la marque de la Pomme.&lt;/p&gt;
&lt;p&gt;Je trouve les deux articles très intéressants, mais je pense que ce n&#8217;est pas nouveau. La plateforme iphone OS fourni aux vendeurs de contenu ce que les fournisseurs d&#8217;accès à Internet (&lt;span class="caps"&gt;FAI&lt;/span&gt;) tentent de faire depuis quelques années : un espace confiné, filtré et épuré.&lt;br /&gt;
Vous vous souvenez des récentes publicités &#8220;Il y a Internet et Internet par O*&#8221; ? Les &lt;span class="caps"&gt;FAI&lt;/span&gt; ont tenté de juguler le piratage, et de canaliser les activités de leurs abonnés en leur faisant miroiter des plateformes propres et mieux fournies que l&#8217;Internet sauvage, l&#8217;Internet &#8220;Farwest&#8221;. &lt;span class="caps"&gt;AOL&lt;/span&gt; avait tenté cela pendant des années, en vain.&lt;/p&gt;
&lt;p&gt;Il y a un grand débat qui a commencé il y a des mois et qui se déroule aux Etats Unis, en Europe et ailleurs à propos de la &#8220;Neutralité du Net&#8221;. La célèbre &lt;span class="caps"&gt;NKM&lt;/span&gt;, madame internet du gouvernement, a même fait réaliser une enquête publique sur Internet par ses services.&lt;br /&gt;
La question est grave, le sujet important et les conséquences très très importantes pour le futur de, n&#8217;ayons pas peur de le dire, nos Démocraties (avec un &lt;strong&gt;grand&lt;/strong&gt; D oui).&lt;/p&gt;
&lt;p&gt;Or, pendant ce temps, comme depuis le lancement de l&#8217;iPod, Apple avance tranquillement d&#8217;un pas qui n&#8217;en dit rien ou presque vers la non neutralité d&#8217;Internet. La démarche est fine, et au combien bien pensée.&lt;/p&gt;
&lt;p&gt;L&#8217;iMac fut l&#8217;allumette qui ralluma le brasier dans lequel le phoenix Apple repris vie. L&#8217;iPod fût l&#8217;étape suivante, la graîne d&#8217;un arbre qui donnera beaucoup de fruits à la firme. L&#8217;iMac redonna confiance en Apple de la part de ses clients historiques, il attira aussi un certain nombre de nouveaux, ou motiva le retour d&#8217;anciens. Mac OS X fût un énorme coup de turbo pour cela. L&#8217;iPod lui a permis d&#8217;augmenter énormément la base utilisateur. Bien moins cher qu&#8217;un Mac et très vite à la mode il s&#8217;est vite retrouvé dans beaucoup de poches, sacs et serviettes, mais pour l&#8217;utiliser il fallait iTunes (et il faut toujours iTunes). iTunes ne marchent que sur Mac, et Windows. Mais très vite les nouveaux clients d&#8217;Apple, se sont laisser séduire et ont acheté un Mac. Les offres étudiantes et certains modèles (mac mini, ibook puis macbook) étant relativement abordables cela ne fût pas si dur. Et puis ils sont à la mode alors &#8230;&lt;/p&gt;
&lt;p&gt;L&#8217;iPod était dans la place, il a été le lecteur mp3 des années 2000, un hit sans précédent dans l&#8217;histoire commerciale. Puis arriva l&#8217;internet mobile, et Apple sorti un iPod qui fait téléphone ainsi qu&#8217;une version tronquée qui a quasiement toutes les fonctionnalités du téléphone (écran tactile, internet, mail, &#8230;). Pile au bon moment. Les fanas se sont jetés dessus, et 3 générations d&#8217;iPhone et d&#8217;iPod Touch plus tard, les gens en achètent encore.&lt;/p&gt;
&lt;p&gt;Ces deux joujous utilisent un système spécialement conçu pour eux : iPhoneOS. Limité, avec des règles particulières, et dont le développement d&#8217;application passe obligatoirement par Apple. C&#8217;est Apple qui valide si oui ou non une application donnée peut être vendue et installée car il faut utiliser l&#8217;AppStore pour cela.&lt;br /&gt;
Ils en ont tous révé, Apple l&#8217;a fait, et cela a été accepté par leurs clients car le marketing autour du produit a rendu la question complètement secondaire. Vous voulez le gadget que tout le monde veut acheter ? Alors acceptez les conditions d&#8217;utilisation ! Vous aurez accès à des milliers d&#8217;applications pour tout faire.&lt;/p&gt;
&lt;p&gt;L&#8217;iPhone est cependant limité en terme d&#8217;utilisation : l&#8217;écran est petit, et il n&#8217;est pas très pratique pour faire ce que 80% des utilisateurs font sur Internet : lire et composer des emails, lire des journaux en ligne, poster des informations sur différents sites. L&#8217;iPad vient donc combler cette niche tout en l&#8217;étirant un peu, avec l&#8217;AppStore comme cadenas.&lt;/p&gt;
&lt;p&gt;Peu après la sortie de l&#8217;iPad Apple a changé quelques règles de l&#8217;AppStore : pas de Flash, développement d&#8217;applications seulement avec leurs outils, et pas de pornographie (entre autres).&lt;/p&gt;
&lt;p&gt;L&#8217;iPad est donc taillé pour tuer l&#8217;Internet Ouvert et pas seulement le Web Ouvert. Le Web n&#8217;est qu&#8217;une couche, qu&#8217;une part de l&#8217;Internet. Le Web c&#8217;est un peu les autoroutes à 6 voies de l&#8217;Internet, mais à côté il y a les routes nationales, départementales, le réseau ferré, les bateaux, etc &#8230; Tout cela, &lt;em&gt;tout&lt;/em&gt; cela, l&#8217;iPad le barricade. Apple, avec l&#8217;iPad a construit une six voies goudronnée du plus beau goudron, avec des arbres et du gazon tout le long, avec des péages à l&#8217;entrée. Le point important c&#8217;est que cette iRoute ne longe pas les autres, non, elle coupe tout droit et dans tous les sens. Elle relie sauvagement toutes les directions, sans se préoccuper des routes qu&#8217;elle coupe.&lt;/p&gt;
&lt;p&gt;Apple décide par où passe cette route, et ce que ses utilisateurs voient, quitte à déplacer la route de 100km si un endroit devient &#8220;barbare&#8221; du jour au lendemain pour Apple. Et ils ont le droit. Pourquoi ? Parce que vous êtes chez eux. L&#8217;AppStore, iPhoneOS c&#8217;est chez eux, et donc vous devez vivre par les règles qui y ont cours.&lt;/p&gt;
&lt;p&gt;Ce que les &lt;span class="caps"&gt;FAI&lt;/span&gt; ont cherché à faire Apple l&#8217;a fait. Apple contrôle comment et à quoi ses utilisateurs ont accès : musique, films, journaux, &#8230; On a longtemps eu peur de Google, mais je pense qu&#8217;on ferait bien de regarder de prés ce qu&#8217;Apple nous prépare. Désormais, de boût en boût Apple contrôle sa plateforme et ce qu&#8217;elle affiche.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Jekyll, Heroku, Comments</title>
    <link>/06-04-2010/Jekyll-Heroku-Comments.html</link>
		<pubDate>Fri Jun 04 19:32:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Jekyll, Heroku, Comments&lt;/h2&gt;
&lt;p&gt;Ceux qui me suivent depuis le début de cette version du blog doivent se souvenir de mes postes précédents sur &lt;a href="http://wiki.github.com/mojombo/jekyll/"&gt;Jekyll&lt;/a&gt;. Pour ceux qui ont raté ces épisodes voici un rappel : Jekyll est un moteur de blog statique. Vous écrivez vos posts dans des fichiers texte, vous éxécutez une petite commande (&lt;em&gt;jekyll&lt;/em&gt;) qui va vous générer des fichiers html en utilisant les fichiers texte précédement cités et des &lt;em&gt;templates&lt;/em&gt; écrits par vos soins. C&#8217;est chouette, c&#8217;est un truc de faignant qui ne veut pas avoir une usine à gaz pour publier du texte.&lt;/p&gt;
&lt;h2&gt;Sauf que &#8230;&lt;/h2&gt;
&lt;p&gt;Sauf que évidement ça ne fait pas le café. C&#8217;est statique et vous n&#8217;avez pas de commentaires etc &#8230; Bon si vous vous fichez éperdument de ce que disent les gens ça peut vous convenir, si ce n&#8217;est pas le cas, comment faire ? Il existe au moins deux solutions : &lt;a href="http://disqus.com/"&gt;Disqus&lt;/a&gt; et &lt;a href="http://intensedebate.com/home"&gt;Intense Debate&lt;/a&gt;. J&#8217;ai pris l&#8217;option de tester ID, plutôt que Disqus, me demandez par pourquoi, le logo ptet &#8230; &#8216;fin bon ça marche. Une balise script et deux clics après l&#8217;inscription.&lt;/p&gt;
&lt;h2&gt;Ah ouai, mais &#8230;&lt;/h2&gt;
&lt;p&gt;Bon ça c&#8217;était ce matin, et cet aprem je suis tombé sur &lt;a href="http://jstorimer.com/2009/12/29/jekyll-on-heroku.html"&gt;&lt;em&gt;Jekyll on Heroku&lt;/em&gt;&lt;/a&gt; un petit post, tout simple avec quelques lignes de Ruby qui permettent de faire marcher un blog Jekyll chez Heroku. Ouai. Comme ça. Pif paf pouf. Hop. Oui donc évidement j&#8217;ai migré ça. Donc depuis vous pouvez accéder à ce blog depuis &lt;a href="http://ange.librium.org"&gt;http://ange.librium.org&lt;/a&gt; mais aussi depuis &lt;a href="http://blog.arbousier.info"&gt;http://blog.arbousier.info&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;C&#8217;est chou quand même tout ça.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Police et Design</title>
    <link>/06-04-2010/Police-Design.html</link>
		<pubDate>Fri Jun 04 02:16:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Police et Design&lt;/h2&gt;
&lt;p&gt;Etant en pleine montée de charge sur mon activité de développeur web j&#8217;ai de plus en plus besoin d&#8217;avoir des bases en Design Web. Jusqu&#8217;ici je m&#8217;étais toujours considéré comme un développeur pas du tout doué en quoi que ce soit d&#8217;artistique. Je laissais donc le design de côté. Mais voilà quand on est fauché, ou que notre entreprise n&#8217;a pas beaucoup de sous, il faut bien faire avec ce qu&#8217;on a. J&#8217;ai donc tenté tant bien que mal de faire des trucs potables.&lt;/p&gt;
&lt;p&gt;J&#8217;ai la chance d&#8217;avoir dans mes contacts des gens forts capables dans leurs domaines. Notament M. &lt;a href="http://t37.net/"&gt;F de Villamil&lt;/a&gt; qui publie régulièrement des posts intéressants sur le développement, le design web, et les interfaces utilisateur. Il m&#8217;a récement aidé à finaliser un projet d&#8217; &lt;a href="http://toulouserb.org/events/1"&gt;affiche&lt;/a&gt;. J&#8217;ai aussi quelques graphistes et designers dans mon carnet d&#8217;adresses notament après avoir demandé à mes contacts et à Twitter. Mais hélàs mes finances ne me permettent pas encore de m&#8217;offrir les services d&#8217;un designer super doué.&lt;/p&gt;
&lt;p&gt;J&#8217;ai donc quelques autres solutions, notament travailler en troc avec certains. Mais j&#8217;aimerai bien pouvoir tester quelques idées sans trop investir non plus. C&#8217;est là qu&#8217;une conf comme &lt;a href="http://djangoconeu.blip.tv/file/3685673/"&gt;&lt;em&gt;Making your frontend suck less&lt;/em&gt;&lt;/a&gt; (&#8220;Rendez votre interface moins pourrie&#8221;) peut être très intéressante. En anglais à nouveau, et donnée lors du Django Con Europe 2010, elle commence par cette phrase : &#8220;&lt;em&gt;Good design is not some magical creative voodoo process—it is a discipline, like good software development.&lt;/em&gt;&#8221; (&#8220;Un bon design n&#8217;est pas une sorte de porcessus créatif voodoo magique; c&#8217;est une discipline, comme un bon développement logiciel.&#8221;).&lt;br /&gt;
En un peu moins d&#8217;une heure &lt;a href="http://djangopeople.net/idan/"&gt;Idan Gazit&lt;/a&gt; couvre des principes de base de Design Web pour les développeurs : organisation de l&#8217;interface, polices, couleurs, &#8230; Très intéressant.&lt;/p&gt;
&lt;p&gt;Comme vous avez peut être remarqué j&#8217;ai d&#8217;ailleurs changé les polices de ce blog. Une fois parce que j&#8217;avais beaucoup aimé une police que j&#8217;avais croisé ailleurs, et une autre fois (ce que vous voyez) après le visionnage de cette conf. Je pense que du coup, cela se lit mieux.&lt;/p&gt;
&lt;p&gt;Bon évidement cela ne m&#8217;a pas transformé en Designer Web extraordinaire, mais bon je m&#8217;endormirai moins bête.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Mais vous allez changer ?</title>
    <link>/06-03-2010/Mais-vous-allez-changer.html</link>
		<pubDate>Thu Jun 03 11:23:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Mais vous allez changer ?&lt;/h2&gt;
&lt;p&gt;Depuis que j&#8217;essaye de suivre un peu ce qui passe sur HN je tombe sur des perles. Littéralement. Des articles ou des vidéos qui sont vraiment très intéressants et qui motivent à avancer, changer, etc &#8230; Pour le moment tout ces écrits sont en anglais. Je les traduirai peut être si j&#8217;ai le temps. Si vous croisez une traduction faites moi signe merci.&lt;/p&gt;
&lt;h3&gt;Getting Real&lt;/h3&gt;
&lt;p&gt;Un des premiers links que j&#8217;ai vu : &lt;a href="http://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;. Le livre par &lt;span class="caps"&gt;DHH&lt;/span&gt; et l&#8217;équipe de 37 Signals. Intéressant, bon on sent vite l&#8217;empreinte de &lt;a href="http://loudthinking.com"&gt;&lt;span class="caps"&gt;DHH&lt;/span&gt;&lt;/a&gt;, mais cela reste intéressant à lire.&lt;/p&gt;
&lt;h3&gt;Vous êtes une petite boite agissez en tant que telle&lt;/h3&gt;
&lt;p&gt;Un peu dans la même veine que HN il y a un petit blog appellé &#8220;&lt;em&gt;a smart bear&lt;/em&gt;&#8221; (&#8220;un ours futé&#8221;). On y trouve quelques postes intéressants, notament celui ci : &lt;a href="http://blog.asmartbear.com/youre-a-little-company-now-act-like-one.html"&gt;You are a little company now act like one&lt;/a&gt; (&#8220;Vous êtes une petite boite agissez en tant que telle&#8221;). Je trouve l&#8217;idée de fond très adaptée à ce qu&#8217;on a l&#8217;habitude de faire en France : paraître plus gros que ce que l&#8217;on est.&lt;br /&gt;
Dans cet article l&#8217;auteur explique pourquoi vouloir paraître plus gros que ce que l&#8217;on est ne sert à rien et ne marche pas. Quand on est petit, que nos produits débutent, ce ne sont pas les grosses compagnies qui vont acheter. Non ce sont plutôt des entreprises plus petites, qui veulent un relationnel particuliers avec vous, et qui ne sont pas inquiètes d&#8217;être confrontés à des bugs. Et pour cela il faut être honnête et direct. Enfin lisez l&#8217;article vous verrez.&lt;/p&gt;
&lt;h3&gt;Le prix de vente le plus fou&lt;/h3&gt;
&lt;p&gt;L&#8217;article suivant, m&#8217;a fait sourire, et m&#8217;a rendu curieux de tester la chose dans un avenir plus ou moins proche. Intitulé &lt;a href="http://thefreelancery.com/2010/04/the-scariest-pricing-idea-ever-that-works/"&gt;&lt;em&gt;The scariest pricing idea ever&lt;/em&gt;&lt;/a&gt; (&#8220;Le prix de vente le plus fou&#8221;) l&#8217;auteur y décrit comment, après quelques hésitations, il a décidé d&#8217;opter pour une méthode relativement inattendue pour facturer ses prestations. Il leur a simplement dit :&lt;/p&gt;
&lt;p&gt;&#8220;&lt;em&gt;Voila ce que je suggère. Laissez moi me jeter à l&#8217;eau et faire le travail comme on en a discuté. Je travaillerai aussi dur que je peux et je ferai le travail aussi bien qu&#8217;il peut l&#8217;être.&lt;/em&gt;&#8221;&lt;/p&gt;
&lt;p&gt;&#8220;&lt;em&gt;Quand on aura fini, payez moi un prix que vous estimez être la valeur du travail que j&#8217;ai fourni, par rapport à ce qu&#8217;il a apporté à votre projet.&lt;/em&gt;&#8221;&lt;/p&gt;
&lt;p&gt;&#8220;&lt;em&gt;J&#8217;accepterai n&#8217;importe quel prix que vous déciderez, sans poser de question. Enfin, tant que c&#8217;est plus d&#8217;un dollar 65.&lt;/em&gt;&#8221;&lt;/p&gt;
&lt;p&gt;Je pense que c&#8217;est typiquement quelque chose qui serait vraiment atypique dans le paysage français. Mais l&#8217;article vaut le coup d&#8217;être lu ne serait ce que pour ébranler certaines de nos convictions françaises, et de nos doutes.&lt;br /&gt;
L&#8217;auteur décrit différents cas de figures qu&#8217;il a vécu, il donne ses conseils sur quand et avec qui utiliser cette méthode etc &#8230;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Hacker Monthly</title>
    <link>/06-02-2010/HN-Monthly.html</link>
		<pubDate>Wed Jun 02 11:23:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;Hacker Monthly&lt;/h2&gt;
&lt;p&gt;Ma lecture du matin, midi et soir : &lt;a href="http://news.ycombinator.com/"&gt;Hacker News&lt;/a&gt; publie une version mensuelle des meilleurs articles passés : &lt;a href="http://hackermonthly.com/"&gt;Hacker Monthly&lt;/a&gt;. Bref de quoi relire ou lire de très bons articles si vous les avez ratés sur ce feed de fous.&lt;/p&gt;
&lt;p&gt;Hacker News, ou YCombinator est une entreprise spécialisée dans le financement de startups dans leurs moments de création. Le feed &#8220;Hacker News&#8221; voit donc passer une quantité phénoménale d&#8217;informations intéressantes : innovations, lancement de services, nouveaux sites, &#8230;&lt;/p&gt;
&lt;p&gt;L&#8217;url m&#8217;a été passé par celui qui m&#8217;a fait découvrir Rails et motivé pour pas mal de trucs, et avec qui, enfin, après des années à lui demander de me faire signe, je vais bosser.&lt;/p&gt;
&lt;p&gt;Je vous recommande donc cette lecture (en anglais) et notament l&#8217;article de la page 26.&lt;/p&gt;
&lt;h2&gt;Heroku&lt;/h2&gt;
&lt;p&gt;Dans les pages de ce magazine vous trouverez un pub pour &lt;a href="http://heroku.com"&gt;Heroku&lt;/a&gt;, hébergeur d&#8217;application Ruby. J&#8217;ai récement migré mon site &#8220;pro&#8221; là bas, et j&#8217;y ai mis le site Toulouse.rb aussi.&lt;br /&gt;
Heroku est un hébergeur d&#8217;applications. Vous louez un espace pour y mettre votre application et vous réglez avec des curseurs les capacités de cet espace : réactivité http, tâches de fond, envoi d&#8217;emails, taille maximum de la base de données, &#8230; Evidement cela influe sur le prix.&lt;/p&gt;
&lt;p&gt;Heroku est basé sur un &lt;em&gt;cloud&lt;/em&gt; (buzzword+1) et vous simplifie donc la vie en retirant la problématique de la gestion des serveurs physiques de votre bureau.&lt;/p&gt;
&lt;p&gt;Heroku ne propose pas de système de stockage de fichiers, à la place il faut utiliser un service comme &lt;span class="caps"&gt;AWS&lt;/span&gt; S3. Avantage de cette solution : pas besoin de se préoccuper de la redondance, de la sauvegarde, etc &#8230; C&#8217;est Amazon qui s&#8217;en occupe.&lt;/p&gt;
&lt;p&gt;Hou mazette ! Beaucoup moins de problèmes donc en perspective. Et le coût ? Le coût est comparable à un hébergement dédié, voir un peu moins. &lt;a href="http://smugmug.com"&gt;Smugmug&lt;/a&gt;, hébergeur de photos, grand utilisateur d&#8217;Amazon S3, affirme que l&#8217;utilisation de ce service lui permet d&#8217;économiser des milliers de dollars. Si on regarde rapidement, on gagne, en tous cas, beaucoup de temps. Pour une petite entreprise, ou une équipe qui cherche à développer un produit pour le mettre en ligne et avoir un retour rapide une solution comme Heroku est vraiment un plus.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>We are doing it !</title>
    <link>/06-01-2010/We-are-doing-it.html</link>
		<pubDate>Tue Jun 01 20:00:00 +0200 2010</pubDate>
    <description>&lt;h2&gt;We are doing it !&lt;/h2&gt;
&lt;p&gt;C&#8217;est en effet avec un certain degré de surprise que je me suis rendu compte que je m&#8217;étais embarqué dans une aventure dans laquelle je ne me serai pas vraiment vu il y a un an. D&#8217;où mon &#8220;&lt;em&gt;We are doing it&lt;/em&gt;&#8221; (&#8220;Nous le faisons&#8221;).&lt;/p&gt;
&lt;p&gt;Il y a quelques temps maintenant que je n&#8217;ai pas posté ici non plus. Misère misère. Figurez vous donc que voila désormais un peu plus d&#8217;un mois que j&#8217;ai créé mon Auto Entreprise suite à une tentative avortée de signature de &lt;span class="caps"&gt;CDI&lt;/span&gt; dans une petite entreprise de la région toulousaine. Je me suis en effet aperçu en faisant cet essai que je n&#8217;étais pas vraiment chaud pour intégrer une société, car j&#8217;avais un certain nombre d&#8217;idées dans la tête, dans mon moleskine favori et entre les deux.&lt;/p&gt;
&lt;p&gt;Après avoir pondu une petite série d&#8217;articles pour &lt;span class="caps"&gt;GNU&lt;/span&gt; Linux Magazine (Identification dans RubyOnRails 1 (le 2 sera publié prochainement), Introduction à Cucumber (publié ce mois ci)) j&#8217;ai décidé d&#8217;essayer de me lancer dans l&#8217;aventure. Et voila que je reprend contact avec un vieil ami qui me propose un peu de boulot, puis avec un autre vieil ami que je tanais régulièrement pour bosser avec lui, ça va donc se faire. D&#8217;autres amis sont déjà preneurs d&#8217;un petit produit réalisé par mes soins, j&#8217;ai trouvé quelques contacts Ruby sur Toulouse, et lance, avec l&#8217;un deux, &lt;a href="http://toulouserb.org"&gt;Toulouse.rb&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Me voila donc assis à bosser pour différents projets, à lire des publications comme &lt;a href="http://news.ycombinator.com/"&gt;Y Combinator/Hacker News&lt;/a&gt;, &lt;a href="http://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;, à me renseigner sur différents types de sociétés (pour sortir du mode Auto Entrepreneur), à bosser avec des gens à 700Km de chez moi &#8230; bref on dirait bien que je suis dans une ambiance startup &#8230;&lt;/p&gt;
&lt;p&gt;De nouvelles aventures &#8230;&lt;/p&gt;
&lt;p&gt;En passant mon site &#8220;pro&#8221; : &lt;a href="http://www.arbousier.info"&gt;arbousier.info&lt;/a&gt;.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Pagination Lovin'</title>
    <link>/02-18-2010/Pagination-Lovin.html</link>
		<pubDate>Thu Feb 18 12:00:00 +0100 2010</pubDate>
    <description>&lt;h2&gt;Pagination Lovin&#8217;&lt;/h2&gt;
&lt;p&gt;Presque deux mois sans posts pfff &#8230; terrible terrible pas bieng.&lt;/p&gt;
&lt;p&gt;Bon j&#8217;ai pas chômé, avec un projet qui se finit tout en Rails, et payé. Bref premier gros projet pro en Rails pour moi \o/.&lt;/p&gt;
&lt;p&gt;Et en faisant quelques derniers patchs je suis tombé sur un os : comment dire à will_paginate (le plugin de pagination que j&#8217;utilise) d&#8217;utiliser une base d&#8217;url pour ses liens plutôt que d&#8217;utiliser l&#8217;url courante ?&lt;/p&gt;
&lt;p&gt;En effet gros problème pour moi : j&#8217;ai décidé d&#8217;appeller will_paginate au sein d&#8217;un partial. Ce partial pouvant être appellé au chargement d&#8217;une page ou juste lors d&#8217;un update ajax d&#8217;un bout de celle ci. Dans le premier cas le lien vers les pages suivantes seront correctement générés et feront appel à la bonne action du bon controlleur. Dans le deuxième cas, c&#8217;est l&#8217;action qui a appellé le partial qui sera utilisé comme lien.&lt;/p&gt;
&lt;p&gt;Après quelques recherches je suis tombé sur l&#8217; &lt;a href="http://gitrdoc.com/mislav/will_paginate/tree/master/"&gt;api doc&lt;/a&gt; de &lt;a href="http://gitrdoc.com/rdoc/mislav/will_paginate/b3b0f593ea9b1da13a64bc825dfe17b6bbc2828b/classes/WillPaginate/ViewHelpers.html#M000134"&gt;will paginate&lt;/a&gt; . Et sur l&#8217;option que je cherchais : :params. Bref :&lt;/p&gt;
&lt;script src="http://gist.github.com/307915.js?file=gistfile1.txt"&gt;&lt;/script&gt;</description>
  </item>
    
  <item>
    <title>Rails gems & plugins</title>
    <link>/12-21-2009/Rails-Gems.html</link>
		<pubDate>Mon Dec 21 12:00:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Rails Gems &amp; plugins&lt;/h2&gt;
&lt;p&gt;Rails est devenu un framework assez imposant depuis les premières versions que j&#8217;ai pu toucher en &#8230; 2005 si je ne m&#8217;égare pas. Ce qui pouvait être relativement complexe à faire en ces temps la est devenu très facile maintenant.&lt;/p&gt;
&lt;h3&gt;Authentification&lt;/h3&gt;
&lt;p&gt;Le processus d&#8217;identification des utilisateurs est souvent un point important d&#8217;une appli web. Personnellement après avoir testé Restful Authentification j&#8217;ai opté pour &lt;a href="http://github.com/binarylogic/authlogic"&gt;Authlogic&lt;/a&gt;. Simple et relativement complète cette gem permet d&#8217;intégrer rapidement un système d&#8217;authentification et de gestion de sessions (login, logout, &#8230;).&lt;/p&gt;
&lt;h3&gt;Authorisation&lt;/h3&gt;
&lt;p&gt;La gestion d&#8217;authorisations est un autre problème (qui a droit d&#8217;aller où et de faire quoi ?), il y a de nombreuses solutions pour gérer cela mais j&#8217;ai dernièrement choisi de faire ça moi même. En fait cela ne prend que quelques helpers et méthodes ici et là.&lt;/p&gt;
&lt;h3&gt;Préférences de l&#8217;application&lt;/h3&gt;
&lt;p&gt;Si l&#8217;on a besoin de stoquer, en dur (hors d&#8217;une base de données), des informations que l&#8217;on veut utiliser facilement dans les vues ou les layouts il y a une très bonne Gem qui s&#8217;appelle &lt;a href="http://github.com/binarylogic/settingslogic/"&gt;SettingsLogic&lt;/a&gt; (vu précédement).&lt;/p&gt;
&lt;h3&gt;Génération de &lt;span class="caps"&gt;PDF&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;J&#8217;ai récément eu besoin de générer des &lt;span class="caps"&gt;PDF&lt;/span&gt; depuis Rails, je me souviens qu&#8217;il y a quelques années générer des &lt;span class="caps"&gt;PDF&lt;/span&gt; était la croix et la bannière. Mais une rapide recherche vous indiquera &lt;a href="http://github.com/sandal/prawn"&gt;Prawn&lt;/a&gt; et son compagnon &lt;a href="http://github.com/thorny-sun/prawnto"&gt;Prawnto&lt;/a&gt; . Ce qui vous sauvera des heures de boulot.&lt;/p&gt;
&lt;h3&gt;Nifty Scaffold&lt;/h3&gt;
&lt;p&gt;Certains des précédents point m&#8217;ont été comptés par &lt;a href="http://railscasts.com/"&gt;RailsCast&lt;/a&gt; et un truc que j&#8217;ai mis un peu de temps à adopter sont les &lt;a href="http://github.com/ryanb/nifty-generators"&gt;Nifty Scaffold&lt;/a&gt; des scripts pour vos applis Rails qui vous facilitent grandement la vie. Plus besoin de se prendre la tête pour rajouter un modèle, un controlleur et les vues qui vont avec, paf un coup de Nifty Scaffold va vous générer le code qu&#8217;il faut. Il y a certes des points un peu génant (les attr_accessible par exemple) mais cela fait quand même gagner un temps fou.&lt;/p&gt;
&lt;p&gt;bon appétit &#8230;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Git, Gitg, Gitosis</title>
    <link>/12-15-2009/Git-Gitg-Gitosis.html</link>
		<pubDate>Tue Dec 15 21:00:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Git, Gitg, Gitosis&lt;/h2&gt;
&lt;p&gt;Du beau, du bon, dubonnet comme ils disaient. Et bien le titre est incomplet il manque Trac. Oui après la débacle d&#8217;il y a quelques mois j&#8217;ai décidé de remettre le couvert. Au menu : Gitosis, Gitg une interface convi en &lt;span class="caps"&gt;GTK&lt;/span&gt;, et Trac.&lt;/p&gt;
&lt;h3&gt;Gitosis, GitWeb&lt;/h3&gt;
&lt;p&gt;Git d&#8217;abord, git toujours : j&#8217;utilise depuis un bout de temps git pour mes projets, avec ses avantages toussa toussa. Et récement j&#8217;ai mis un serveur Gitosis en place, avec Nginx pour Gitweb. J&#8217;ai, dirait-on oublié de vous en parler.&lt;/p&gt;
&lt;p&gt;J&#8217;ai commencé par trouver de bons tutos &lt;a href="http://www.perevillega.com/installation-guides/gitosis-git-repository/"&gt;LA&lt;/a&gt; et surtout &lt;a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way"&gt;LA&lt;/a&gt; sur le sujet. Le dernier tuto déchire sa race et j&#8217;ai juste pas envie de tout recopier.&lt;/p&gt;
&lt;p&gt;Nginx est aussi relativement simple à mettre en place en suivant &lt;a href="http://blog.chavant.info/2009/05/30/gitosis-gitweb-nginx"&gt;CE&lt;/a&gt; tuto.&lt;/p&gt;
&lt;h3&gt;Trac&lt;/h3&gt;
&lt;p&gt;Bon ensuite, pour des besoins pro j&#8217;avais besoin d&#8217;un truc pour gérer des tickets, des milestones toussa, donc bon Anisette n&#8217;étant stable encore, j&#8217;ai attrapé Trac et je l&#8217;ai collé sur une Lenny.&lt;br /&gt;
L&#8217;install se passe maintenant tout en douceur :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
$&gt; apt-get install trac trac-git
$&gt; cd /var/trac
$&gt; trac-admin initenv projet
[blabla] : spécifier git comme type de dépot
$&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Editez le trac.ini pour y rajouter (à la fin) :&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
[components]
tracext.git.* = enabled&lt;/p&gt;
&lt;p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Remontez dans le fichier et cherchez la ligne git_bin et spécifier là le path complet vers le binaire git.&lt;/p&gt;
&lt;p&gt;Voila maintenant le tracd peut être lancé (histoire de tester).&lt;/p&gt;
&lt;p&gt;Attention si comme moi vous avez le nginx qui tourne sur le port 80 tout ça risque de poser problème. La solution que j&#8217;ai trouvé c&#8217;est de mettre un lighttpd en frontal avec un proxy, et le nginx qui écoute sur un autre port. Le lighttpd fait donc proxy devant le nginx (sur le port 8080) et le tracd (sur le port 8081). Voici un exemple pour le port 8081 :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
$HTTP["host"] == "one.host.whatever" {
        proxy.balance = "fair"
        proxy.server  = ( "" =&gt; ( ( "host" =&gt; "0.0.0.0",
                                        "port" =&gt; 8081 ))
                        )
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Il vous suffit de rajouter quelque chose de similaire dans votre &lt;pouet&gt;/lighttpd/conf-available/10-proxy.conf sans oublier d&#8217;activer le module en question.&lt;/p&gt;
&lt;p&gt;Vous voudrez probablement avoir des users dans le web trac. Pour cela il faut créer un htdigest :&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
$&gt; htdigest [-c] htdigestfile realm username&lt;/p&gt;
&lt;p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Ensuite :&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
$&gt; trac-admin /var/trac/projet
TA&gt; permission add username TRAC_ADMIN&lt;/p&gt;
&lt;p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Consultez la doc en local de Trac : http://one.host.whatever/projet/wiki/TracPermissions&lt;/p&gt;
&lt;h3&gt;Gitg&lt;/h3&gt;
&lt;p&gt;Le plus sympa pour la fin. Je suis un grand fan de la ligne de commande mais des fois il y a des outils graphiques qui aident bien à bosser. Je ne vous ai pas parlé de Gedit sous perf &#8220;Textmate&#8221; (ca ne saurait tarder) mais je vais vous parler de Gitg. Giggle m&#8217;avait déjà bien plus pour voir graphiquement le statut d&#8217;un dépôt, mais puisqu&#8217;il n&#8217;aide pas vraiment plus que ça je ne l&#8217;ai pas vraiment adopté. Et voilà que je tombe sur Gitg. J&#8217;ai souvent un soucis moi : commenté mes commits. C&#8217;est terrible je n&#8217;y arrive pas, et je me dis à chaque fois que voir le diff en même temps que je tape mon commit message serait super pratique. Un &lt;em&gt;git diff | more&lt;/em&gt; d&#8217;un côté, un &lt;em&gt;git commit&lt;/em&gt; de l&#8217;autre ? Faisable mais quand on a un outil graphique qui permet de mettre des couleurs c&#8217;est encore mieux. Et bien &lt;strong&gt;gitg&lt;/strong&gt; fait ça super bien tout en affichant l&#8217;arbre.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
$&gt; apt-get install gitg

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Miam.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Rails etc</title>
    <link>/12-15-2009/Rails-etc.html</link>
		<pubDate>Tue Dec 15 08:00:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Rails etc&lt;/h2&gt;
&lt;p&gt;(titre à imaginer sur l&#8217;air de &#8216;Aux armes Etc&#8217; de Gainsbourg).&lt;/p&gt;
&lt;p&gt;Pas mal occupé sur un gros projet en Rails ( \o/ ) donc pas de posts. Un bref listing quand même :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;mod_rails tourne super bien&lt;/li&gt;
	&lt;li&gt;mongrel aussi (sous Debian Lenny)&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://github.com/binarylogic/settingslogic/"&gt;SettingsLogic&lt;/a&gt; et &lt;a href="http://github.com/binarylogic/authlogic"&gt;Authlogic&lt;/a&gt; sont deux gem/plugins très intéressants pour une appli rails, il manque un système d&#8217;authorisations par rôles mais ce n&#8217;est pas très dur à implémenter soi même.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://github.com/defunkt/acts_as_textiled"&gt;acts_as_textiled&lt;/a&gt; et &lt;a href="http://github.com/felttippin/textile-editor-helper"&gt;textile_editor_helper&lt;/a&gt; sont forts utiles aussi pour &#8220;textiler&#8221; une application Rails&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Youpiiii&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Debootstrap savior</title>
    <link>/12-03-2009/debootstrap-savior.html</link>
		<pubDate>Thu Dec 03 08:00:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Debootstrap savior&lt;/h2&gt;
&lt;p&gt;Après des jours passés à coder sur Tulipe, et quelques autres choses, je me suis rendu sur Paris pour un bref et rapide week end, avant de partir j&#8217;éteind les machines et prend soin de couper leur alimentation en basculant les interrupteurs des multi-prises.&lt;/p&gt;
&lt;p&gt;Lundi soir, à mon retour, l&#8217;une des machines, la plus vieille, ma station de travail, refuse de démarrer. Elle grésille lorsqu&#8217;on l&#8217;a met sous tension met refuse de démarrer.&lt;/p&gt;
&lt;p&gt;Heureusement j&#8217;avais prévu de laisser 20Go de libre sur Retz, la nouvelle machine à base de Core i5, comme elle tourne sous debian, un coup de debootstrap m&#8217;a permit d&#8217;installer rapidement une ubuntu 9.10 &#8230;&lt;/p&gt;
&lt;h2&gt;Retz et freebsd&lt;/h2&gt;
&lt;p&gt;J&#8217;ai ensuite déplacé le HD de la station dans la nouvelle station, modifié le grub et tenté un boot. Evidement il ne retrouve pas ses petits, donc une heure de casse tête à essayer de booter avec une clef d&#8217;install sur un FreeBSD pour modifier le fstab, fail encore. Solution : utiliser grub pour booter le loader puis passer les bons paramètres au kernel  pour qu&#8217;il monte la bonne partition en root. Edit du fstab, reboot.&lt;/p&gt;
&lt;h2&gt;&lt;span class="caps"&gt;NFS&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Cette mésaventure a donc démontré le besoin d&#8217;utiliser Thetys comme il se doit : avec du &lt;span class="caps"&gt;NFS&lt;/span&gt; pour monter le /home. Ca marche nickel sous FreeBSD, mais sous Ubuntu, il se vautre lamentablement au lancement de X. Et c&#8217;est en vain que j&#8217;ai essayé de faire coincider les uid de mes users sur les deux machines. Solution : on monte quand même le home en &lt;span class="caps"&gt;NFS&lt;/span&gt;, mais dans un répertoire du home &#8230;&lt;/p&gt;
&lt;h2&gt;Retz et kvm&lt;/h2&gt;
&lt;p&gt;Cette machine étant, au départ, prévue pour faire de la virt ça me fait un peu tiquer de l&#8217;utiliser &#8220;juste&#8221; pour coder. Donc j&#8217;ai installé kvm, et là ooohhh ca marche vachement facilement.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
# lvcreate -n blah -L4G &lt;your_vg&gt;
# sudo kvm -m 256 -cdrom ./debian-503-i386-businesscard.iso -boot d /dev/vg/lv_kvm1
# sudo kvm -m 256 /dev/vg/lvm_kvm1 -redir tcp:2222::22
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;La première ligne permet de créer un volume logique dans un groupe de volume &lt;span class="caps"&gt;LVM&lt;/span&gt; (oui j&#8217;ai de la place à plus savoir qu&#8217;en faire).&lt;br /&gt;
Le premier appel à &lt;span class="caps"&gt;KVM&lt;/span&gt; vous permet d&#8217;installer la VM en utilisant une iso pour booter et lancer l&#8217;install, à priori oui n&#8217;importe quel OS.&lt;br /&gt;
Le deuxième est le lancement direct de la VM. J&#8217;essaye toujours de comprendre comment on lance ça avec libvirt et tout.&lt;br /&gt;
Le &lt;a href="http://www.webstrat.fr/goodies/web-technologies/creer-une-machine-virtuelle-avec-kvm-sous-linux-ubuntu"&gt;Howto&lt;/a&gt; que j&#8217;ai suivi.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Bon malgré les problèmes que cette machine en rade me pose ça m&#8217;a forcé la main pour mettre en place le &lt;span class="caps"&gt;NFS&lt;/span&gt; et permis de voir rapidement l&#8217;utilisation de &lt;span class="caps"&gt;KVM&lt;/span&gt;.&lt;br /&gt;
Le retour sous Ubuntu n&#8217;est pas forcément apprécié par contre &#8230; mais l&#8217;install d&#8217;un FreeBSD prend un peu trop de temps, oui je peux toujours utiliser le FreeBSD que j&#8217;ai déplacé d&#8217;une machine à l&#8217;autre.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>I am a Passenger</title>
    <link>/12-03-2009/I-am-a-passenger.html</link>
		<pubDate>Thu Dec 03 08:00:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;I am a Passenger&lt;/h2&gt;
&lt;p&gt;Alors pour un projet en cours qui doit tourner sur Apache et qui est écrit en Rails il m&#8217;a fallu mettre en place Phusion Passenger aka mod_rails.&lt;/p&gt;
&lt;p&gt;Sur une petite Lenny dans un kvm (cf article précédent) j&#8217;ai donc installé les paquets suivants :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
# apache et tout le tralala
&gt; sudo aptitude install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
&gt; sudo aptitude install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd \
	php5-imagick php5-mcrypt php5-memcache php5-mhash php5-mysql php5-pspell php5-snmp \
	php5-sqlite php5-xmlrpc php5-xsl
# ruby
&gt; sudo apt-get install ruby ruby1.8 ruby1.8-dev build-essential libopenssl-ruby
# rubygems venant d'un backport
&gt; sudo echo "deb http://www.backports.org/debian lenny-backports main contrib non-free" &gt;&gt; /etc/apt/sources.list
&gt; sudo apt-get update
&gt; sudo apt-get -t lenny-backports install rubygems1.8
&gt; sudo gem install rails passenger sqlite3-ruby
&gt; sudo -s 
&gt; export PATH=/var/lib/gems/1.8/bin/:$PATH
&gt; passenger-install-apache2-module
# suivre les instructions

# créez une app rails quelque part :
&gt; cd /var/www
&gt; rails test
&gt; rm test/public/index.html
# editez le application_controller.erb :
&gt; vim test/app/controllers/application_controller.rb
# rajouter la methode suivante :
def index
	render :text =&gt; "working it iz !"
end
# rajoutez un vhost :
&gt; vim /etc/apache2/sites-available/testapp
&lt;VirtualHost *:80&gt;

  ServerName  yourhost
  ServerAlias www.domain1.com

  DocumentRoot /var/www/test/public

&lt;/VirtualHost&gt;
# on active le vhost
&gt; a2ensite testapp
# on active le module rewrite
&gt; a2enmod rewrite
# on redemarre apache2
&gt; /etc/init.d/apache2 restart
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Voila ca devrait tourner.&lt;/p&gt;
&lt;p&gt;Sources : &lt;a href="http://articles.slicehost.com/2009/4/9/debian-lenny-installing-apache2-and-php5" title="slicehost"&gt;Installing Apache2 and PHP5&lt;/a&gt; , &lt;a href="http://articles.slicehost.com/2009/7/3/debian-lenny-installing-passenger-with-apache"&gt;Installing Passenger with Apache&lt;/a&gt;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Nouvelle machine</title>
    <link>/11-17-2009/Nouvelle-Machine.html</link>
		<pubDate>Tue Nov 17 18:20:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Nouvelle machine&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;Passé un entretien&lt;/li&gt;
	&lt;li&gt;Regardé un peu et plus Django (&lt;span class="caps"&gt;OMG&lt;/span&gt; du python)&lt;/li&gt;
	&lt;li&gt;Survécu à l&#8217;item précédent&lt;/li&gt;
	&lt;li&gt;Commandé et reçu une nouvelle machine&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;La machine&lt;/h3&gt;
&lt;h4&gt;La config&lt;/h4&gt;
&lt;p&gt;Donc nouvelle machine. Pour pouvoir me faire la main et approfondir plein de&lt;br /&gt;
choses (Virt, Puppet, Smtps etc etc etc &#8230;) j&#8217;ai donc&lt;br /&gt;
eu la possibilité d&#8217;acquérir une nouvelle machine. Plateforme : i5.&lt;/p&gt;
&lt;p&gt;La config complète :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;i5 750 (2.6GHz, 4 coeurs, 8Mo de cache, VT, &#8230;)&lt;/li&gt;
	&lt;li&gt;ASRock P55MPro&lt;/li&gt;
	&lt;li&gt;4Go (2&#215;2Go) de &lt;span class="caps"&gt;RAM&lt;/span&gt; DDR3 (GSkill PC12800)&lt;/li&gt;
	&lt;li&gt;Alim Corsair 400W&lt;/li&gt;
	&lt;li&gt;Antec Mini P180&lt;/li&gt;
	&lt;li&gt;Seagate 750Go 32Mo&lt;/li&gt;
	&lt;li&gt;Seagate 160Go 16Mo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J&#8217;ai sauvé une &#8216;vieille&#8217; CG en &lt;span class="caps"&gt;PCI&lt;/span&gt; Express en y rajoutant un Zalman alu/cu que&lt;br /&gt;
j&#8217;ai découpé pour pouvoir le monter.&lt;/p&gt;
&lt;p&gt;Toute la config vient de chez materiel.net sauf le &lt;span class="caps"&gt;CPU&lt;/span&gt; qui lui a été acheté dans&lt;br /&gt;
une boutique à Toulouse pour grapiller quelques roubles. J&#8217;aurai aussi pût&lt;br /&gt;
l&#8217;acheter chez Pixmania qui avait un très bon prix.&lt;/p&gt;
&lt;p&gt;J&#8217;ai longtemps hésité à prendre cette config ou une config à base de Quad Core&lt;br /&gt;
mais finalement la possibilité d&#8217;upgrade futurs sur cette plateforme m&#8217;a semblé&lt;br /&gt;
être un fait important.&lt;/p&gt;
&lt;p&gt;Pourquoi une CM ASRock ? Tout d&#8217;abord je voulais du Micro &lt;span class="caps"&gt;ATX&lt;/span&gt;, notament à cause&lt;br /&gt;
du boitier que j&#8217;avais choisi pour sa finition propre et sa bonne ventilation&lt;br /&gt;
(marre des boitiers bas de gamme mal ventilés et bruyants). Ensuite parmis&lt;br /&gt;
celles ci, comme la plupart des CM à base de P55, la plupart coûtent un bras, il&lt;br /&gt;
n&#8217;y a que quelques modèles qui ont un prix raisonnable. Pour ce que je veux en&lt;br /&gt;
faire l&#8217;ASRock ou l&#8217;Intel suffisent, et l&#8217;Intel supporte moins de fréquences que&lt;br /&gt;
l&#8217;ASRock pour la Ram.&lt;/p&gt;
&lt;p&gt;Pourquoi de la GSkill ? Parce qu&#8217;elle est relativement bon marché, bien notée et&lt;br /&gt;
que c&#8217;est la seule marque où j&#8217;ai pu trouver des barrettes ne demandant pas plus&lt;br /&gt;
de 1,6V. J&#8217;aurai bien pris des éco mais elles ne sont pas encore dispo.&lt;/p&gt;
&lt;p&gt;Pourquoi une alim Corsair ? J&#8217;ai cherché un rapport qualité prix plutôt bon. Ne&lt;br /&gt;
voulant pas tomber dans les premiers prix (comme le reste de la config) j&#8217;ai&lt;br /&gt;
donc choisit une alim 80+ de bonne facture. Selon les tests que j&#8217;ai lu c&#8217;est&lt;br /&gt;
une des Alims 400W qui tient le mieux la route. Allez roule.&lt;/p&gt;
&lt;p&gt;Pourquoi M.net ? J&#8217;ai une config qui vient de chez &lt;span class="caps"&gt;LDLC&lt;/span&gt;, et en voila une de chez&lt;br /&gt;
M.net. Leurs sites sont relativement bien faits, mais j&#8217;ai une préférence pour&lt;br /&gt;
M.net à cause de leur point de retrait sur Toulouse qui m&#8217;économise 10 à 40&lt;br /&gt;
euros.&lt;/p&gt;
&lt;p&gt;Plus d&#8217;infos dans &lt;a href="http://ange.librium.org/pub/i5_config.html"&gt;cet article&lt;/a&gt; .&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Tmux, Jekyll, OpenSMTPd</title>
    <link>/11-06-2009/tmux-jekyll-opensmtpd.html</link>
		<pubDate>Fri Nov 06 18:20:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Tmux, Jekyll, OpenSMTPd&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;Modifié mes templates Jekyll pour pouvoir générer un &lt;a href="http://ange.librium.org/rss.xml"&gt;véritable flux &lt;span class="caps"&gt;RSS&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Remplacé ma console screen par une console &lt;a href="http://www.gcu.info/2009/11/smtp-ouvre-toi/"&gt;Tmux&lt;/a&gt; en la déplaçant, pour tester, sur ma machine DragonflyBSD&lt;/li&gt;
	&lt;li&gt;Codé un peu en Ruby (voir page GitHub)&lt;/li&gt;
	&lt;li&gt;Posté un court article sur &lt;a href="http://gcu.info"&gt;Gcu.info&lt;/a&gt; à propos de la &lt;a href="http://www.gcu.info/2009/11/smtp-ouvre-toi/"&gt;sortie d&#8217;OpenSMTPd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Un rapide mot sur tmux&lt;/h3&gt;
&lt;p&gt;Pourquoi tmux ? Alors c&#8217;est une très bonne question. J&#8217;ai croisé quelques lutins disant qu&#8217;ils avaient laché screen pour tmux&lt;br /&gt;
ces derniers temps. J&#8217;ai eu quelques soucis avec screen, rien de bien méchant, et j&#8217;en ai donc profité pour essayer. Apparement rien de bien changeant&lt;br /&gt;
sauf que tmux est sous licence &lt;span class="caps"&gt;BSD&lt;/span&gt;, et qu&#8217;il offre un bon support UTF8.&lt;/p&gt;
&lt;h3&gt;Jekyll et liquid&lt;/h3&gt;
&lt;p&gt;A nouveau mes problèmes de templates Jekyll venait de moi et de ma mauvaise utilisation de Liquid. J&#8217;ai cependant été horifié de découvrir qu&#8217;on ne pouvait pas utiliser&lt;br /&gt;
directement du Ruby dans les templates Liquid. &lt;b&gt;gargl&lt;/b&gt; Donc après quelques recherches j&#8217;ai trouvé qu&#8217;il fallait employer des &lt;a href="http://wiki.github.com/tobi/liquid/liquid-for-designers"&gt;fonctions propres à Liquid&lt;/a&gt; pour cela.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
	# il ne faut pas faire :
	post.content.gsub(/&lt;/, "&amp;lt;").gsub(/&gt;/,"&amp;gt;")&lt;/p&gt;
&lt;p&gt;# il faut faire :&lt;br /&gt;
	post.content | replace:&#8220;&lt;&#8221;,&#8220;&lt;&#8221; | replace:&#8220;&gt;&#8221;,&#8220;&gt;&#8221;&lt;br /&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Rails, Grit again</title>
    <link>/11-04-2009/Rails-grit-again.html</link>
		<pubDate>Wed Nov 04 22:00:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Rails &amp; Grit : again&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;Plein de code écrit dans Anisette : &lt;i&gt;203 subs and 413 adds in 7 commits&lt;/i&gt; me disent donc ces lignes de code tout fraiches.&lt;br /&gt;
 Bon ca ralentit à max l&#8217;appli à cause des requêtes que ça fait &#8230; bref &lt;span class="caps"&gt;TODO&lt;/span&gt;. A suivre sur mon &lt;a href="http://github.com/mcansky/anisette"&gt;compte GitHub&lt;/a&gt; .&lt;/li&gt;
	&lt;li&gt;Des cvs envoyés&lt;/li&gt;
&lt;/ul&gt;</description>
  </item>
    
  <item>
    <title>Mongrel, rails et compagnie</title>
    <link>/11-03-2009/Mongrel-rails.html</link>
		<pubDate>Tue Nov 03 20:00:00 +0100 2009</pubDate>
    <description>&lt;h2&gt;Mongrel, rails et compagnie&lt;/h2&gt;
&lt;p&gt;Journée super productive :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;maintenance des serveurs debian et des sites&lt;/li&gt;
	&lt;li&gt;mises à jours des gem surtout via les backports pour lenny&lt;/li&gt;
	&lt;li&gt;installation et configuration de Mongrel pour servir http://dev.arbousier.info&lt;/li&gt;
	&lt;li&gt;configuration du compte github&lt;/li&gt;
	&lt;li&gt;publication du code d&#8217;Anisette et des scripts à la configuration&lt;/li&gt;
	&lt;li&gt;création d&#8217;un script de démarrage propre pour Mongrel&lt;/li&gt;
	&lt;li&gt;article précédement cité publié&lt;/li&gt;
	&lt;li&gt;Anisette est maintenant relativement propre et utilisable, plus de développement à faire cependant&lt;/li&gt;
	&lt;li&gt;recherche de boulot, création de plaquettes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Dans la foulée&lt;/h3&gt;
&lt;p&gt;Remise en ligne et update de Jekyll, et prise de têtes avec les changements de ce dernier.&lt;br /&gt;
Méfiez vous donc de tout ce qui gère les catégories.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Wordpress Short Code</title>
    <link>/07-28-2009/WordPressShort.html</link>
		<pubDate>Tue Jul 28 02:00:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;WordPress Short Code&lt;/h2&gt;
&lt;p&gt;Bossant actuellement sur un site en &lt;span class="caps"&gt;PHP&lt;/span&gt; avec Wordpress j&#8217;ai eu besoin d&#8217;insérer un calendrier Google Calendar dans une page ou des posts &#8230; Au départ je faisais ça bourrin en collant le code html fournit par Google Calendar. Mais ce genre de choses n&#8217;est pas forcément à la portée de tout le monde et, de plus, le fait qu&#8217;il faut entrer ça dans la section html de l&#8217;éditeur me déplaît. J&#8217;ai donc regardé du côté des &lt;b&gt;shortcode&lt;/b&gt; de Wordpress et j&#8217;en ai écris un pour faciliter l&#8217;ajout de tels calendriers. Ce code est publié sous licence &lt;span class="caps"&gt;MIT&lt;/span&gt;.&lt;/p&gt;
&lt;pre&gt;
  &lt;code&gt;
    /* google calendar short code */
    /*
      generating gcalendar iframe code using default info or passed by args
      only id is required, other info can be generated by default
      the id can be passed as simply the calendar id or its full id (with the @group...)
      others can be passed as args using same syntax as google in their own generated code :
          - height
          - width
          - showTitle
          - showDate
          - showNav
          - showPrint
          - showTabs
          - showTz
          - showCalendars
          - mode
          - ctz
          - color
          - bgcolor
      if not specified the value used is not google default but this code's
    */
    // [gcal id="calid"]
    function google_calendar($atts) {
    	$args = shortcode_atts(array(
        'id' =&gt; null,
    		'height' =&gt; '500',
        'width' =&gt; '500',
        'showTitle' =&gt; '0',         /* 0 = not showing */
        'showDate' =&gt; '0',          /* 0 = not showing ; google default */
        'showNav' =&gt; '0',           /* 0 = not showing ; google default */
        'showPrint' =&gt; '1',         /* 0 = not showing ; google default */
        'showTabs' =&gt; '0',          /* 0 = not showing */
        'showTz'  =&gt; '1',           /* 0 = not showing ; google default */
        'showCalendars' =&gt; '0',     /* 0 = not showing */
        'mode' =&gt; 'AGENDA',         /* AGENDA, WEEK, MONTH , default from google calendar is month */
        'ctz' =&gt; 'Europe%2FParis',  /* obvious isn't it ? */
        'color' =&gt; 'A32929',        /* google default */
        'bgcolor' =&gt; 'ffffff',      /* google default */
    	), $atts);

      if ($args['id'] == null) {
        return "Empty ID !";
      }
      $id_array = preg_split('/@/',$args['id']);
      $args['id'] = $id_array[0];

      $wanted_args = array("showTitle", "showDate", "showNav", "showPrint", "showTabs", "showTz", "showCalendars");
      foreach($wanted_args as $arg_key) {
        if ($args[$arg_key] != 1) {
          $optionnal_stuff .= $arg_key."=0&amp;amp;";
        }
      }
      $optionnal_stuff .= "mode={$args['mode']}&amp;amp;";

      return "&lt;iframe src=\"https://www.google.com/calendar/embed?{$optionnal_stuff}height={$args['height']}&amp;amp;wkst=1&amp;amp;bgcolor=%23{$args['bgcolor']}&amp;amp;src={$args['id']}%40group.calendar.google.com&amp;amp;color=%23{$args['color']}&amp;amp;ctz={$args['ctz']}\" style=\" border-width:0 \" width=\"{$args['width']}\" height=\"{$args['height']}\" frameborder=\"0\" scrolling=\"no\"&gt;&lt;/iframe&gt;";

    }
    add_shortcode('gcal', 'google_calendar');
  &lt;/code&gt;
&lt;/pre&gt;</description>
  </item>
    
  <item>
    <title>BSD</title>
    <link>/07-28-2009/BSD.html</link>
		<pubDate>Tue Jul 28 02:00:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;&lt;span class="caps"&gt;BSD&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Alors comme évidement à chaque fois, le contenu de mon blog se fait rare, disparate et vide.&lt;br /&gt;
Bon alors j&#8217;ai quasi rien foutu mis à part un peu de peinture et de bricolage :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;DragonFlyBSD : maintenance et mise à jour : migration vers 2.4.1.&lt;/li&gt;
	&lt;li&gt;DragonFlyBSD : mise à jour des packages via pkgsrc (avec la sortie de &lt;a href="http://leaf.dragonflybsd.org/mailarchive/users/2009-10/msg00069.html"&gt;pkgsrcQ3&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;pkgsrc : écriture de nouveaux pkgsrc pour pouvoir installer logwatch et &lt;a href="http://reductivelabs.com/trac/puppet/"&gt;puppet&lt;/a&gt; 0.25&lt;/li&gt;
	&lt;li&gt;FreeBSD : install de la 8rc1 en remplacement d&#8217;Ubuntu, pas mécontent du tout de quitter la banquise.&lt;/li&gt;
	&lt;li&gt;Etude de cas : Intel Core i5 : vais je ou non me monter un serveur de dév / test avec de la virt et ce cpu nouvelle gen ?&lt;/li&gt;
	&lt;li&gt;Construction de mon acitivité d&#8217;indépendant : &lt;a href="http://www.arbousier.info"&gt;http://www.arbousier.info&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Rédaction d&#8217;un article pour Gnu/Linux Magazine France à paraître le mois prochain sur Ruby et Grit. Grit est une librairie utilisée par GitHub pour accéder et manipuler des dépôts Git.&lt;/li&gt;
&lt;/ul&gt;
petite liste. A suivre.
Une semaine de vacances en Suisse.</description>
  </item>
    
  <item>
    <title>BzzBZZBSD</title>
    <link>/07-22-2009/BzzBZZBSD.html</link>
		<pubDate>Wed Jul 22 00:00:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;BzzBZZBSD&lt;/h2&gt;
&lt;p&gt;Ayant besoin de mettre en place un serveur de fichier @home j&#8217;ai décidé d&#8217;acquérir une box pour la dédier à cela. Donc Shuttle K45, 1Go de &lt;span class="caps"&gt;RAM&lt;/span&gt;, Pentium Ebidule, deux disques de 750Go et roule.&lt;/p&gt;
&lt;p&gt;Premier problème : un seul connecteur d&#8217;alim sata, détour par un supermarché pour chopper le nécessaire sur le chemin du retour de l&#8217;antenne locale du vendeur de l&#8217;internet. Arrivée, déballage, montage, 15 minutes plus tard la machine était prête à démarrer.&lt;/p&gt;
&lt;p&gt;Je voulais utiliser une clef &lt;span class="caps"&gt;USB&lt;/span&gt; pour lancer l&#8217;install mais l&#8217;image utilisée essayait tout le temps le boot pxe &#8230; dommage, bidouille lecteur CD, gravure et hop install de &#8230; DragonFly &lt;span class="caps"&gt;BSD&lt;/span&gt; sur la machine.&lt;/p&gt;
&lt;p&gt;Pourquoi cet os ? Tout d&#8217;abord parce que je n&#8217;y ai presque jamais touché, deuxièmement parce que c&#8217;est un &lt;span class="caps"&gt;BSD&lt;/span&gt; et que j&#8217;ai un faible en ce qui les concerne et enfin parce qu&#8217;il propose &lt;span class="caps"&gt;HAMMER&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Pas MC Hammer, mais un FS nouvelle génération qui intègre de quoi faire des mirrors et des snapshots de tout ou partie d&#8217;un FS &#8230; yummy. Donc le K45 ne supporte pas le &lt;span class="caps"&gt;RAID&lt;/span&gt;, mais pas de soucis j&#8217;ai collé un hammer &lt;em&gt;mirror-copy&lt;/em&gt; et ça fait le même effet.&lt;/p&gt;
&lt;p&gt;La machine ronronne comme un chaton et j&#8217;ai retrouvé mes marques habituelles avec PF, pkgsrc et compagnie&#8230; Un &lt;span class="caps"&gt;BSD&lt;/span&gt; quoi.&lt;/p&gt;
&lt;p&gt;Que du bon :) C&#8217;est à peauffiner cependant je ne suis pas tout à fait sûr de mes manip niveau &lt;span class="caps"&gt;HAMMER&lt;/span&gt;. A suivre donc &#8230;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Anisette</title>
    <link>/07-07-2009/Anisette.html</link>
		<pubDate>Tue Jul 07 16:00:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;Anisette&lt;/h2&gt;
&lt;p&gt;Comme je passais du temps à chercher un truc qui fasse pile ce dont j&#8217;avais besoin j&#8217;ai fini par trouvé les ingrédients et à faire quelque chose dans mon coin. Réinvention de la roue si vous voulez, je m&#8217;en tape, j&#8217;avais besoin d&#8217;un truc qui me montre mes commits, les logs, les diffs, qui me permette de faire des mini rapports de bug et de mettre à jour leur état via les commits messages.&lt;/p&gt;
&lt;p&gt;Bref je me suis fait un cocktail avec &lt;a href="http://grit.rubyforge.org/"&gt;Grit&lt;/a&gt; et du Rails. Résultat : Anisette (oui bon hein aucune idée pour le nom). Le code est sous &lt;span class="caps"&gt;MIT&lt;/span&gt;, et dispo dans ce dépôt &lt;strong&gt;git://git.arbousier.info/anisette.git&lt;/strong&gt; Un &lt;a href="http://ange.librium.org/pub/sc_2.png"&gt;screenshot&lt;/a&gt; ?&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Jekyll, Liquid, burp</title>
    <link>/07-06-2009/GitFouya.html</link>
		<pubDate>Mon Jul 06 16:00:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;Jekyll, Liquid, burp&lt;/h2&gt;
&lt;p&gt;En postant le précédant post je me suis rendu compte que mes templates étaient cassés : les dates s&#8217;affichaient mal et les pieds de page étaient tout moche. Après avoir creusé j&#8217;ai trouvé quelques méthodes à utiliser pour régler le problème des dates :&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
  &lt;p&gt;{ { post.date | date(&amp;1, "%x") } }&lt;/p&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Le &lt;em&gt;&amp;1&lt;/em&gt; permet de passer &lt;em&gt;post.date&lt;/em&gt; en argument de la méthode &lt;em&gt;date&lt;/em&gt; &#8230; pfffiou merci &lt;em&gt;bash&lt;/em&gt;. J&#8217;ai trouvé la méthode &lt;em&gt;date&lt;/em&gt; sur la &lt;a href="http://liquid.rubyforge.org/"&gt;doc de référence de Liquid&lt;/a&gt;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Chomdu Criseeeeuuu</title>
    <link>/07-06-2009/ChomduCriseeeeuuu.html</link>
		<pubDate>Mon Jul 06 13:00:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;Chomdu Criseeeeuuu&lt;/h2&gt;
&lt;p&gt;Bon, j&#8217;ai bien essayé de ne pas poster sur le sujet mais la &lt;em&gt;ahem&lt;/em&gt; j&#8217;ai un peu envie de vider le sac. Exercice probablement inutile et peu productif mais &#8230;&lt;/p&gt;
&lt;p&gt;La criseeeeuuu est là, et les chiffres du &lt;a href="http://timeswampland.files.wordpress.com/2009/02/joblosses26091.gif"&gt;chômage grossissent&lt;/a&gt; (en vert la crise actuelle, en bleu celle de 90 et en rouge celle de 2001). Nombreux sont ceux qui, à gauche, tirent à boulet orange sur les gouvernements, les patrons, etc &#8230; A mon sens tout celà n&#8217;est que sensationnalisme pour obtenir plus de voix et d&#8217;encartés dans leur propre petit club. L&#8217;idée étant évidement d&#8217;essayer d&#8217;avoir un poids suffisant pour influencer les décisions politiques.&lt;/p&gt;
&lt;p&gt;Sur la rive d&#8217;en face on entend beaucoup de choses aussi. Sachant qu&#8217;ils ont le drapeau et qu&#8217;ils sont donc les seuls à pouvoir décider ils essayent tant bien que mal de garder leur bateau à flot en posant des rustines là où c&#8217;est possible.&lt;/p&gt;
&lt;h3&gt;Home, un film de &lt;span class="caps"&gt;YAB&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Quand certaines de mes connaissances ont vu &lt;strong&gt;Home&lt;/strong&gt; ils ont comme reçu un électrochoc, d&#8217;autres n&#8217;ont eu qu&#8217;un bref soupir, mais la plupart se sont dit &#8220;&lt;strong&gt;effarés&lt;/strong&gt;&#8221; par l&#8217;ampleur du désastre qu&#8217;on leur montrait. Après avoir vu &lt;strong&gt;Un Jour sur Terre&lt;/strong&gt; et &lt;em&gt;&lt;strong&gt;Manufactured Landscapes&lt;/strong&gt;&lt;/em&gt; (Paysages manufacturés), on peut se poser encore plus de questions.&lt;/p&gt;
&lt;p&gt;Le constat est là : on a modifié la planète allant jusqu&#8217;à redessiner les cours d&#8217;eau, les montagnes et les vallées, l&#8217;air que l&#8217;on respire et l&#8217;eau des océans. Quasiement tout centimères carré porte l&#8217;empreinte, directe ou indirecte de notre activité. Bon soit.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;What would Gandhi do&lt;/em&gt; ?&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Qu&#8217;est ce que ferait Gandhi ?&lt;/em&gt; Si vous avez lu mon ancien blog (désormais perdu dans les limbes de l&#8217;internet) vous savez qu&#8217;une personne du siècle dernier m&#8217;a beaucoup marqué à travers les films, et livres que j&#8217;ai lu : &lt;strong&gt;Mohandas K. Gandhi&lt;/strong&gt;. A réfléchir à ce qui se passe actuellement je trouve son message d&#8217;actualité : guerres, problèmes sociaux, ethniques et écologiques font rage, et son message de paix, de tolérance, et de re-localisation des moyens de production ne peut que raisonner en ce temps.&lt;/p&gt;
&lt;p&gt;La pensée de Gandhi est souvent résumée ainsi : &#8220;N&#8217;utilise pas la violence, ne répond pas à la violence par la violence, mais laisse celui qui te torture voir le faux de son acte et de son idée au travers de ta souffrance&#8221;. On peut aussi creuser dans le côté sociologique et économique de ses actions puisqu&#8217;il a été connu pour encourager les Indiens à bruler les vêtements importés d&#8217;Angleterre et à réapprendre le filage de la laine et le tissage afin de redevenir indépendants et, en même, temps de redonner un travail honnête et un prix honnête pour le travail local.&lt;/p&gt;
&lt;p&gt;La Crise Economique et la Crise Ecologique actuelles sont liées de façon importante sous différents angles. Dans &#8220;&lt;em&gt;Manufactured Landscapes&lt;/em&gt;&#8221; on peut voir une usine produire des centaines, des milliers de fer à repasser par jour/semaine. On peut rapidement se demander où vont ces containers de fer à repasser ?! Quel &lt;em&gt;marché&lt;/em&gt; peut il ingurgiter une telle quantité de fer à repasser, et s&#8217;il le peut, que fait on de la quantité de fer à repasser (au moins égale à la moitié si ce n&#8217;est au trois quarts) qui se font remplacer ?&lt;br /&gt;
Qui peut sainement penser que, encore encore encore et encore, la production sans cesse croissante de biens dans des usines toujours plus grandes pourra être avalée par le &lt;em&gt;marché&lt;/em&gt; ?&lt;br /&gt;
Le postulat de départ de notre civilisation post industrielle est erroné : le &lt;em&gt;marché&lt;/em&gt; n&#8217;est pas en perpetuelle expansion. Ce postulat entraîne la grande majorité des problèmes sociaux économiques et écologiques actuels :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;la délocalisation entraine une hausse du niveau moyen d&#8217;éducation/formation nécessaire au fur et à mesure que l&#8217;économie devient basée sur le service et non la production (donc du chomage)&lt;/li&gt;
	&lt;li&gt;la production industrielle entraine une grande abondance de biens consommables&lt;/li&gt;
	&lt;li&gt;l&#8217;abondance de biens devant être absorbée le marketing entre en jeu afin de créer les réflexes et besoins chez le client devenu consommateur&lt;/li&gt;
	&lt;li&gt;la sur-consommation ainsi générée produit un surplus de déchêts auquel viennent s&#8217;ajouter des déchêts produits par un effet de bord du marketing et de l&#8217;éducation des consommateurs : emballages, prospectus &#8230;&lt;/li&gt;
	&lt;li&gt;les déchêts ne pouvant être absorbés par un système de retraitement à la traine ils sont vendus et expédiés loin, dans ces mêmes pays qui produisent les biens mais qui ne peuvent recycler non plus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il est important de noter que ces 5 points sont applicables à bien des cas de notre société : des céréales aux meubles en passant par bien d&#8217;autres choses &#8230;&lt;/p&gt;
&lt;p&gt;Ce que Gandhi avait craint pour son pays arrive donc, d&#8217;une façon systématique et à très grande échelle, à l&#8217;échelle de la planète. Il rêvait d&#8217;une anarchie éclairée structurant un réseau fédéral d&#8217;unités sociales de base, nous avons créé une monarchie folle structurée en pyramide branlante reposant sur des sables mouvants.&lt;/p&gt;
&lt;p&gt;La relocalisation des moyens de production et de distribution re tisserait probablement le tissu local, créerait des emplois et diminuerait notre dépendance vis à vis des transports. Au lieu d&#8217;avoir une brasserie monstrueuse et centrale en Hollande produisant pour le globe entier, on peut aisément imaginer des brasseries de taille raisonnable localisés plus prés des pôles consomateurs. Etc &#8230;&lt;/p&gt;
&lt;h3&gt;Mutation ?&lt;/h3&gt;
&lt;p&gt;Tout est voué au changement, tout. Ce qui apparaît doit disparaître. Une telle relocalisation, à grande échelle, changerait énormément de choses, et provoquerait à coup sûr l&#8217;effondrement de la plupart des empires qui sont nés, il y a plus d&#8217;un siècle ou moins, du phénomène inverse. A mon sens c&#8217;est pourtant la seule façon que l&#8217;on ait de survivre, de toute façon nous n&#8217;avons pas grand chose à perdre. Si nous relocalisons suffisement bien, et intelligement, nous pourrions donner à nos petits enfants les outils nécessaires à leur survie si les pays venaient à s&#8217;écrouler. Nous pourrions aussi, nous rapprocher un peu du rêve d&#8217;anarchie éclairée de Mohandas K. Gandhi. Ca ne serait pas évident, ni très facile, et il faudrait dire non à toutes les formes d&#8217;égocentrismes et d&#8217;égoïsme qui ne manqueront pas d&#8217;essayer de maintenir le système actuel ou d&#8217;en rétablir un similaire. Voilà bien ce qui est problématique : l&#8217;acharnement de chacun d&#8217;entre nous, moi le premier, à ne pas faire les sacrifices nécessaires à l&#8217;actuel survie de la planète, de cette immense collocation &#8230;&lt;/p&gt;
&lt;p&gt;Pensez deux minutes à la quantité de choses que cela implique, tant au niveau individuel qu&#8217;étatique voir mondial &#8230; Si certains pays sont déjà (ou toujours) à un tel niveau d&#8217;organisation, ce n&#8217;est pas le cas (plus le cas) de la plupart &#8230;&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Git on trac</title>
    <link>/06-30-2009/GitOnTrac.html</link>
		<pubDate>Tue Jun 30 12:29:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;Git on Trac&lt;/h2&gt;
&lt;p&gt;Bossant toujours sur du php avec mon fidèle compagnon &lt;strong&gt;git&lt;/strong&gt; j&#8217;ai cherché à publier le code sur un dépôt public, et via Trac. J&#8217;ai eu beaucoup de mal à trouver une conf multiprojets qui marche, et j&#8217;ai même testé Redmine quand j&#8217;en ai eu marre de Trac.&lt;/p&gt;
&lt;h3&gt;Git poush, git clone&lt;/h3&gt;
&lt;p&gt;Dans les articles que j&#8217;avais publié, il y a plus d&#8217;un an maintenant j&#8217;avais zappé un paragraphe super important je pense : comment créer un dépôt et pousser vers celui ci. Le problème étant que bien souvent on crée le dépôt lorsqu&#8217;à déjà une certaine base de code disponible et un certain nombre de branches en l&#8217;air. Pas question dans ce cas là d&#8217;exporter le dépôt, de virer la copie locale et de faire un clone du dépôt distant. Non il faut simplement rajouter un dépôt distant à votre dépôt local :&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
&lt;code&gt;
  git remote add NOM ssh://USER@NOM:/PATH/TO/DEPOT
&lt;/code&gt;&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;
Hop c&#8217;est dans la boîte.&lt;/p&gt;
&lt;h3&gt;Trac.conf.fail&lt;/h3&gt;
&lt;p&gt;Donc la suite logique était de mettre un outil convivial pour voir les logs et tout à partir du web. Un truc comme &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt; donc. Le souci c&#8217;est que je voudrais avoir un support multi projet chose que Trac ne connaît pas (en fait si, vous verrez plus bas) vraiment. Donc armé de mon couteau je me suis jeté dans le web à la recherche d&#8217;une doc décrivant la mise en place de Trac multiprojet avec Lighttpd. Ce qui s&#8217;est soldé par un echec, la conf étant un peu obscure.&lt;/p&gt;
&lt;h3&gt;Redmine.interface.fail&lt;/h3&gt;
&lt;p&gt;Après quelques heures j&#8217;ai finalement accepté l&#8217;avis de mes camarades-lutins du &lt;a href="http://gcu.info"&gt;jardin magique&lt;/a&gt; et j&#8217;ai testé &lt;a href="http://www.redmine.org"&gt;Redmine&lt;/a&gt; . C&#8217;est du Rails donc ça ne peut que me plaire me direz vous, eh bien &#8230; après avoir réussi à l&#8217;installer et le faire marcher j&#8217;en suis arrivé à la conculsion que je suis particulièrement attaché à l&#8217;interface de Trac. Donc exit Redmine.&lt;/p&gt;
&lt;h3&gt;Trac.doc.win&lt;/h3&gt;
&lt;p&gt;La nuit porte conseil, et c&#8217;est donc frais et dispo que je suis reparti dans les docs de Trac pour découvrir, après avoir à nouveau tenté de rajouter une conf propre à Lighttpd, qu&#8217;il était possible d&#8217;utiliser &lt;strong&gt;tracd&lt;/strong&gt; en &lt;a href="http://www.mail-archive.com/trac-users@googlegroups.com/msg06084.html"&gt;mode multiprojet&lt;/a&gt; . Pour parfaire l&#8217;intégration aux vhosts existant il faut rajouter une conf proxy à Lighttpd :&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
&lt;code&gt;
  server.modules   += ( "mod_proxy" )
  $HTTP["host"] =~ "git.arbousier.info" {
    proxy.server = ("" =&gt; ( "trac" =&gt; ( "host" =&gt; "127.0.0.1", "port" =&gt; 5000 )))
  }
&lt;/code&gt;&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;
J&#8217;ai aussi du rajouter une ligne dans la configuration &lt;strong&gt;vhost&lt;/strong&gt; afin d&#8217;éviter qu&#8217;il ne cherche à appliquer celle ci pour ce host particulier. Pour cela il suffit d&#8217;entourer la configuration par :&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
&lt;code&gt;
  $HTTP["host"] != "git.arbousier.info" {&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;configuration vhost&lt;br /&gt;
  }&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Enfin, on ajoute l&#8217;&quot;authentification&quot;:http://trac.edgewall.org/wiki/TracStandalone (using authentification) : hop le tour est joué.&lt;/p&gt;
&lt;p&gt;Wiiiizzzz&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>Jekyll</title>
    <link>/05-21-2009/Jekyll.html</link>
		<pubDate>Thu May 21 18:21:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;Jekyll&lt;/h2&gt;
&lt;p&gt;Cherchant à remettre quelque chose en place pour publier des textes, des infos et du contenu&lt;br /&gt;
j&#8217;ai longtemps hésité sur l&#8217;outil à utiliser. Je n&#8217;ai pas trop envie d&#8217;avoir à me prendre la&lt;br /&gt;
tête tous les mois pour mettre à jour Wordpress ou un autre moteur similaire. J&#8217;ai des besoins&lt;br /&gt;
limités et je suis un fan des scripts. Etant aussi un fan de Git j&#8217;aime bien l&#8217;utiliser pour&lt;br /&gt;
gérer ce que j&#8217;écris. Je ne sais trop comment je suis tombé sur &lt;a href="http://github.com/mojombo/jekyll/"&gt;Jekyll&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ecrit en Ruby et relativement simple à utiliser il permet de générer un site internet statique&lt;br /&gt;
organisé.&lt;/p&gt;
&lt;p&gt;Un des problèmes à utiliser Jekyll est &lt;em&gt;liquid&lt;/em&gt; pour faire des templates un peu évolués. Mais après&lt;br /&gt;
quelques heures de recherche et de tests tout s&#8217;arrange. J&#8217;ai donc réussi à mettre en place&lt;br /&gt;
un &lt;em&gt;blog&lt;/em&gt; avec des catégories multiples, et un flux rss.&lt;/p&gt;
&lt;p&gt;Tout ce code est donc accessible via &lt;strong&gt;git&lt;/strong&gt; sur ce &lt;a href="git://git.arbousier.info/blog.git"&gt;dépôt&lt;/a&gt;.&lt;/p&gt;</description>
  </item>
    
  <item>
    <title>L'Empire Contre Attaque</title>
    <link>/05-21-2009/LEmpireContreAttaque.html</link>
		<pubDate>Thu May 21 17:00:00 +0200 2009</pubDate>
    <description>&lt;h2&gt;L&#8217;Empire qui de dit pas son nom&lt;/h2&gt;
&lt;p&gt;Certains diront qu&#8217;ils ont vu venir le vent, d&#8217;autres qu&#8217;ils tombent des nues, et d&#8217;autres&lt;br /&gt;
nieront tout ce qui suit. Pourtant les faits sont là et l&#8217;accumalation de ceux dresse un&lt;br /&gt;
tableau des plus alarmants.&lt;/p&gt;
&lt;h3&gt;Un jeune militant&lt;/h3&gt;
&lt;p&gt;A y regarder de plus prés on aurait pu se dire qu&#8217;il y avait une certaine volonté carrièriste&lt;br /&gt;
chez cet homme depuis bien longtemps. En regardant de vieilles vidéos on peut en effet trouver&lt;br /&gt;
les mêmes traits dans le jeune militant qui participe à un débat il y a une vingtaine d&#8217;années&lt;br /&gt;
et dans le jeune président qui monopolise les débats vingt ans plus tard. Peut être &#8230;&lt;/p&gt;
&lt;h3&gt;Symptômes&lt;/h3&gt;
&lt;p&gt;Mais passons tout de suite à l&#8217;étude des symptômes, ce qui me fait tiquer, et qui en fait tiquer&lt;br /&gt;
d&#8217;autres : l&#8217;accumulation de nominations, les copinages bien placés, la main mise sur le parti&lt;br /&gt;
dont il est issu, la main mise sur le parlement, le gouvernement fantôme.&lt;/p&gt;
&lt;h4&gt;Les nominations&lt;/h4&gt;
&lt;p&gt;Depuis les premiers jours de la présidence c&#8217;est un véritable balais que l&#8217;on peut observer.&lt;br /&gt;
Les unes après les autres les places importantes dans les groupes de médias publics, semi-publics,&lt;br /&gt;
dans les grands groupes français, et dans les administrations, sont attribués à des fidèles,&lt;br /&gt;
à des hommes jurés du Président. Nombreux ont été les présidents qui l&#8217;ont fait, mais on&lt;br /&gt;
assiste ici à des placements systèmatiques dans tous les secteurs clés (médias, industrie,&lt;br /&gt;
administration).&lt;/p&gt;
&lt;h4&gt;Les copinages&lt;/h4&gt;
&lt;p&gt;Les grands groupes privés sont aussi liés au Président, non pas par des nominations mais par des amitiés&lt;br /&gt;
choisies et entretenues. Ainsi Dassault, Boloré et Bouyges constituent, entre autres, un cercle&lt;br /&gt;
&lt;em&gt;d&#8217;amis du président&lt;/em&gt;. Ceux qui ne sont pas dirigés par le Président le sont par ses amis, qui&lt;br /&gt;
croient dans les mêmes valeurs, tout du moins tant que leurs intérêts se rejoignent. Et les autres ?&lt;br /&gt;
Les autres sont mis à l&#8217;écart : critiqués et rabaissés (Libération), attaqués en justice (Médiapart)&lt;br /&gt;
ou rendus tout simplement &lt;em&gt;non valide&lt;/em&gt; (les blogs par la loi de modernisation de la presse).&lt;/p&gt;
&lt;h4&gt;La main mise sur le parti&lt;/h4&gt;
&lt;p&gt;Président de la République &lt;strong&gt;et&lt;/strong&gt; Président de l&#8217;UMP ? Pas dans les papiers mais bien dans les faits&lt;br /&gt;
avec un déplacement et un discours en meeting de l&#8217;UMP pour les campagnes électorales. Comme s&#8217;il&lt;br /&gt;
ne laissait pas les rennes à qui que ce soit d&#8217;autres, comme si c&#8217;était toujours lui le patron.&lt;br /&gt;
Et de fait, on l&#8217;a vu à plusieurs reprises c&#8217;est lui le patron.&lt;/p&gt;
&lt;h4&gt;La main mise sur le parlement&lt;/h4&gt;
&lt;p&gt;De part la majorité écrasante de l&#8217;UMP à l&#8217;Assemblée Nationale et de sa bonne avance au Sénat,&lt;br /&gt;
l&#8217;UMP domine le parlement. Le parti empêche tout débat et toute construction en faisant de&lt;br /&gt;
véritables boulevards pour les lois demandées par le Président de la République. Ce que le&lt;br /&gt;
Président veut, le Parlement le vote (on l&#8217;a à nouveau vu avec Hadopi).&lt;/p&gt;
&lt;h4&gt;Le gouvernement fantôme&lt;/h4&gt;
&lt;p&gt;Il est double en fait. Le président s&#8217;est entouré d&#8217;un carré de super conseillés qui lui soufflent&lt;br /&gt;
tout ce qu&#8217;il doit savoir aux oreilles. Il décide et donne les ordres aux ministres qui, coute&lt;br /&gt;
que coute doivent alors les suivre. Ainsi un pesudo gouvernement invisible décide tout à l&#8217;Elysée&lt;br /&gt;
et le gouvernement qui n&#8217;est devenu qu&#8217;une ombre de lui même agît.&lt;/p&gt;
&lt;p&gt;De part ces 5 méthodes le Président conduit le pays comme il conduirait une entreprise : en&lt;br /&gt;
contrôlant tout, en décidant tout. Cela n&#8217;est pas une République, cela est une Monarchie, un&lt;br /&gt;
Empire.&lt;/p&gt;
&lt;h3&gt;On est toujours en Démocratie&lt;/h3&gt;
&lt;p&gt;Selon la Constitution en cours il est vrai que nous sommes toujours en Démocratie. Mais réfléchissez&lt;br /&gt;
bien : si vous additionnez les 5 points précédents, et sachant que ce Président a de très bonnes&lt;br /&gt;
relations avec la ministre de l&#8217;Intérieur et donc la Police, cela fait beaucoup de pouvoirs&lt;br /&gt;
dans les mains d&#8217;un même homme. La République, la Démocratie, sont basés sur le principe&lt;br /&gt;
de la séparation des pouvoirs afin de permettre l&#8217;égalité de tous.&lt;/p&gt;
&lt;h3&gt;Que faire ?&lt;/h3&gt;
&lt;p&gt;Tant que l&#8217;on est en Démocratie, le Président ne peut museler plus qu&#8217;il ne le fait déjà le&lt;br /&gt;
Parlement (réforme du règlement exceptée) et les médias indépendants. Il nous reste donc ces&lt;br /&gt;
deux voix pour nous faire entendre et essayer de faire changer le cours des choses : contacter&lt;br /&gt;
nos représentants élus, faire du bruit dans les médias.&lt;/p&gt;
&lt;p&gt;Il est urgent de se faire entendre avant que cet Empire qui ne dit pas son nom soit effectivement&lt;br /&gt;
là.&lt;/p&gt;</description>
  </item>
    

</channel>

</rss>
