<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.unelectronlibre.info/journal/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Un Electron Libre...</title>
  <link>http://www.unelectronlibre.info/journal/</link>
  <atom:link href="http://www.unelectronlibre.info/journal/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Bloc-notes de Nicolas Steinmetz</description>
  <language>fr</language>
  <pubDate>Fri, 29 Aug 2008 12:05:13 +0200</pubDate>
  <copyright>Creative Commons NC-BY-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Intégration : Recette interne</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/27/Integration-%3A-Recette-interne</link>
    <guid isPermaLink="false">urn:md5:092907e0f0e4362ba11da2e900fb8171</guid>
    <pubDate>Wed, 27 Aug 2008 17:49:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Intégration</category>
        <category>intégration</category><category>recette</category><category>test</category>    
    <description>    &lt;p&gt;La recette arrivant en bout de course d'un projet, elle est souvent sacrifiée pour compenser les retards de développements pour des bonnes et/ou mauvaises raisons. Il arrive donc souvent que la version livrée en recette a peu été testée (voir pas du tout ou pas de façon suffisamment significative).&lt;/p&gt;


&lt;p&gt;Cela conduit à différentes choses :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les jours payés par le client ne sont pas utilisés à cet effet,&lt;/li&gt;
&lt;li&gt;L'effort de recette coté client explose puisqu'il doit assurer la recette en lieu et place du prestataire&lt;/li&gt;
&lt;li&gt;L'effort de recette coté presta va également exploser coté prestataire et non être réduit comme escompté car il aura (souvent) tendance à :
&lt;ul&gt;
&lt;li&gt;multiplier les livraisons correctives partielles&lt;/li&gt;
&lt;li&gt;générer de nombreux aller/retour pour cause de non-correction voir régression&lt;/li&gt;
&lt;li&gt;exploser le cout de livraison (packaging, documentation, etc)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Désorganise tant le prestataire que le client du fait de cette charge à absorber dans des plannings qui ne le permettent pas forcément&lt;/li&gt;
&lt;li&gt;Au final, une tension croissante va pourrir les relations entre le client et le prestataire, sans compter la démotivation croissante de part et d'autres pour faire avancer le projet. Sans compter que cela ternit l'image de marque du prestataire et peut mettre fin à tout travail potentiel entre le prestataire et le client.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Au final, tout le monde est clairement &lt;strong&gt;perdant&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;Quelques pistes d'amélioration :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mieux estimer les périodes de recette (structurellement sous estimée) et qu'elle fasse partie du budget du projet. A croire qu'annoncer une période de recette est une honte en matière de programmation... Attention, il faut quand même que cette durée reste cohérente avec la taille/complexité de l'application.&lt;/li&gt;
&lt;li&gt;Etre transparent/honnête avec son client en disant qu'il y aura un retard de livraison le temps de faire la recette. Après tout, c'est logique, le temps perdu au niveau du développement ne se rattrappe jamais par magie...&lt;/li&gt;
&lt;li&gt;Mieux résister à la pression interne de livrer &amp;quot;à tout prix et/ou au plus vite&amp;quot; au client&lt;/li&gt;
&lt;li&gt;Prendre le temps de faire cette recette&lt;/li&gt;
&lt;li&gt;Coté presta, prévoir des zones tampons si des projets doivent se succéder afin qu'un retard sur un projet n'en condamne pas un autre. Cela suppose aussi que le chef de projet remonte les infos à temps à sa hiérarchie.&lt;/li&gt;
&lt;li&gt;Dans le cas de plusieurs itérations, faire en sorte d'en avoir le moins possible pour ne pas se démotiver dans les phases de recette,&lt;/li&gt;
&lt;li&gt;S'il y a des applications auxquelles se connecte le projet, soit vous êtes en mesure de mettre en place &lt;strong&gt;réellement&lt;/strong&gt; cette plateforme chez le prestataire, soit il faut venir faire des tests d'intégration chez le client&lt;/li&gt;
&lt;li&gt;Faire venir le prestataire sur site pour pouvoir travailler de concert et éviter les parties de ping-pong par mail ou téléphone,&lt;/li&gt;
&lt;li&gt;Se dire que ce retard sera compensé par le fait que tout ce qui a été dit dans le paragraphe précédent ne se produira pas... ou dans une moindre mesure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enfin, si le jour de la livraison il y a un retard de dernière minute ou une opération plus longue que prévue, prévenir le plus tôt possible le client et le tenir informé des éventuels reports de livraison. Ou alors se donner une vraie marge pour tenir les horaires. Cela évite en outre que le client excédé vous appelle pour savoir où vous en êtes et à quelle heure vous allez livrer.&lt;/p&gt;


&lt;p&gt;Tout cela suppose également que le chef de projet ait une visibilité suffisamment bonne sur le travail de ces développeurs et qu'il connaisse suffisamment bien le produit sur lequel il travaille pour que ces estimations soient les plus justes possibles. Faute de quoi, il risque de se trouver dans une fort mauvaise posture (vécu inside).&lt;/p&gt;


&lt;p&gt;A ce jour, une telle méthode m'aurait épargné un gros nombre des 100 bugs trouvés juste en cliquant à droite et à gauche (sans prendre en compte les specs fonctionnelles d'un projet) et les 5 livraisons que j'ai réduit à 3 intégrations. Je tairais le nom de la SSII, vu que ce n'est pas propre à cette SSII et que j'espère que d'autres équipes projets de cette SSII travaillent de façon plus satisfaisante. Pour avoir de l'autre coté, j'en garde également des mauvais souvenirs et des conditions de travail déplorables, se retrouvant entre le marteau (le client) et l'enclume (sa hierarchie).&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/27/Integration-%3A-Recette-interne#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/27/Integration-%3A-Recette-interne#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/527</wfw:commentRss>
      </item>
    
  <item>
    <title>Résolutions de rentrée</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/26/Resolutions-de-rentree</link>
    <guid isPermaLink="false">urn:md5:547c098e9b0a120f02b96dfeab3a8e5b</guid>
    <pubDate>Tue, 26 Aug 2008 21:42:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Ma Vie</category>
            
    <description>    &lt;ul&gt;
&lt;li&gt;Faire avancer le projet Atome, surtout que la contrib &amp;quot;&lt;a href=&quot;http://docs.djangoproject.com/en/dev/ref/contrib/comments/&quot;&gt;comments&lt;/a&gt;&amp;quot;, nouvelle formule &lt;a href=&quot;http://code.djangoproject.com/changeset/8557&quot;&gt;vient d'attérir&lt;/a&gt; dans &lt;a href=&quot;http://docs.djangoproject.com/en/dev/releases/1.0-beta-2/&quot;&gt;django 1.0 beta2&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Me (re)mettre à faire de l'acquisition et du montage vidéo - vu les cassettes DV qui commencent à s'empiler; ce serait dommage de pas le faire, ni de les visionner. Enfin, je veux arriver à faire mieux que ma soeur sous Windows Movie Maker...&lt;/li&gt;
&lt;li&gt;S'occuper de ces *** de dents de sagesse et analyses sanguines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus de résolution, ce serait du suicide... :-P&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/26/Resolutions-de-rentree#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/26/Resolutions-de-rentree#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/526</wfw:commentRss>
      </item>
    
  <item>
    <title>Intégration : Cahier de recette (cet ami qui vous veut du bien)</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/21/Integration-%3A-Cahier-de-recette-cet-ami-qui-vous-veut-du-bien</link>
    <guid isPermaLink="false">urn:md5:fe67958f85b0128e1535af545a05f2a5</guid>
    <pubDate>Thu, 21 Aug 2008 17:45:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Intégration</category>
        <category>bonne pratique</category><category>cahier de recette</category><category>développement</category><category>intégration</category><category>recette</category><category>test</category>    
    <description>    &lt;p&gt;Je vais lancer une série &amp;quot;Intégration&amp;quot; dans laquelle je vais parler de points vue dans mon quotidien ou dans mon passé en SSII.&lt;/p&gt;


&lt;p&gt;Cela faisait un moment que je voulais écrire ce billet, convaincu de plus en plus que le cahier de recette devient un élément de plus en plus crucial dans un projet informatique.&lt;/p&gt;


&lt;p&gt;Idéalement, je vois une première version réalisée à l'issue de la phase des spécifications. Sans aller parler de &amp;quot;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Test_Driven_Development&quot;&gt;Test Driven Development&lt;/a&gt;&amp;quot;  (Développement piloté par les tests, qui l'on peut résumer synthétiquement par le fait d'écrire les tests &lt;strong&gt;avant&lt;/strong&gt; de coder quoi que ce soit), l'idée de rédiger le cahier de tests à l'issue de la phase de spécifications a tout son sens selon moi. Rédiger le cahier de recette (technique et/ou fonctionnel) à cette étape apporte les avantages suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cela permet de consigner par écrit ce qui semble parfois &amp;quot;tellement évident&amp;quot; à certains membres du projet et qui peut ne pas l'être pour d'autres ou bien pas si évident que cela (périmètre de tests, éléments à tester, conditions de tests, etc).&lt;/li&gt;
&lt;li&gt;On peut s'apercevoir qu'il y a des manques dans les spécifications que l'on peut alors enrichir (règles de gestion, cas non imaginés de premier abord, etc) : imaginons par ex un intranet groupe avec une authentification intégrée, par défaut, on imagine très bien le cas du français se connectant sur l'application depuis son poste france, mais que se passe-t-il s'il se déplace dans une filliale pour laquelle l'authentification intégrée n'est pas en place ? L'utilisateur pourra-t-il se connecter malgré tout à l'application ?).&lt;/li&gt;
&lt;li&gt;Dans le cas d'une relation avec un prestataire, cela évite les mauvaises surprises en phase de recette (le cas de recette 12, pourtant tellement évident coté client et absolument pas (pré)vu par le prestataire)&lt;/li&gt;
&lt;li&gt;A l'issue de la phase de développement, vous pouvez demander au prestataire de vous indiquer le résultat de sa recette vis à vis de ce cahier de recette (qui aura pu être complété/détaillé entre temps).&lt;/li&gt;
&lt;li&gt;Lors de la phase de recette, vous avez un référentiel sur lequel peut s'appuyer votre démarche de recette.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En tout état de cause, il est important de faire vivre votre cahier de recette : de test très macro (état initial &amp;gt; étapes &amp;gt; résultat) réalisés dans un premier temps, vous pourrez le compléter (nouveaux cas) ou bien le détailler/préciser ou encore définir des &amp;quot;sous-cas&amp;quot; de tests.&lt;/p&gt;


&lt;p&gt;Il est également important de communiquer ce cahier de recette aux parties impliquées pour avoir leur réaction et échanger. Cela peut le cas échéant donner lieu à des avenants/aménagements des phases de développement (cas d'évolution). Le fait que ce soit dans votre cahier de recette ne veut pas forcément dire qu'il doit être accepté systématiquement par votre équipe de développement / prestataire ; en effet, si cela n'est pas dans le périmètre de départ ou a un impact trop significatif sur les développements, il vous faudra en discuter (c'est sur qu'en cas d'engagement au forfait...)&lt;/p&gt;


&lt;p&gt;Pour être honnête, moi même en SSII, j'ai très peu appliqué cette méthode - seulement lors de mes dernières missions en AMOA lorsque j'étais en SSII ou pour un projet interne actuel chez mon actuel employeur. Dernièrement, lors d'un POC (Proof Of Concept / Prototype), j'avoue avoir été étonné que personne ne s'en est pré-occupé avant que j'en fournisse un - permettant d'ailleurs de découvrir le cas du français en déplacement dans une autre filliale par ex. Tout le monde savait qu'il fallait tester deux fonctions &amp;quot;authentification&amp;quot; et &amp;quot;indexation&amp;quot; et il a bien été démontré que cette soit-disant évidence des tests n'allait pas de soit sur de nombreux sujets ou tout bonnement sur le périmètre même du POC.&lt;/p&gt;


&lt;p&gt;La seule explication au fait que cela ne soit pas plus utilisé à présent dans les méthodes de développement est un temps de spécification mal estimé conduisant à ce qu'il soit négligé / repoussé à la phase de tests. Vous en voyez d'autres (bonnes|mauvaises) raisons ?&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/21/Integration-%3A-Cahier-de-recette-cet-ami-qui-vous-veut-du-bien#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/21/Integration-%3A-Cahier-de-recette-cet-ami-qui-vous-veut-du-bien#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/525</wfw:commentRss>
      </item>
    
  <item>
    <title>Apache : authentification intégrée sauf pour certains clients dont on ne connait pas la provenance réseau</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/21/Apache-%3A-authentification-integree-sauf-pour-certains-clients-dont-on-ne-connait-pas-la-provenance-reseau</link>
    <guid isPermaLink="false">urn:md5:6ad8626efd7e7d541eea65298074ea83</guid>
    <pubDate>Thu, 21 Aug 2008 13:01:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Trucs de geek</category>
        <category>active directory</category><category>anonyme</category><category>apache</category><category>authentification</category><category>mod_auth_ntlm_winbind</category><category>mod_setenvif</category>    
    <description>    &lt;p&gt;Cas d'étude : une application auxquels les collaborateurs d'une entreprise accèdent via une authentification intégrée. Pour les filliales ne disposant pas du SSO ou pour permettre à des utilisateurs extérieurs de se connecter à l'application, une connexion anonyme doit être mise en place.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Solution retenue&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apache 2.2&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/&quot;&gt;mod_auth_ntlm_winbind&lt;/a&gt; pour l'authentification sur Active Directory via Samba / Kerberos&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html&quot;&gt;mod_setenvif&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Principe&lt;/strong&gt; : par défaut, le serveur va chercher à authentifier l'utilisateur par authentification intégrée.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Exception&lt;/strong&gt; : pour l'indexation de l'application, il faut autoriser l'accès anonyme au serveur&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Problématique&lt;/strong&gt; : seuls les plages IP des pays utilisant l'authentification intégrée est connue. Il faut donc permettre l'accès en anonyme à tout le monde &lt;strong&gt;sauf&lt;/strong&gt; ces IP là.&lt;/p&gt;


&lt;p&gt;L'importance ici tient dans la directive Order, Allow , Deny, Satisfy et SetEnvIf.&lt;/p&gt;

&lt;pre&gt;LoadModule auth_ntlm_winbind_module modules/mod_auth_ntlm_winbind.so
LoadModule setenvif_module modules/mod_setenvif.so
&amp;nbsp;
&amp;lt;Location /&amp;gt;
    Order Deny,Allow
    Deny From All
&amp;nbsp;
    &amp;lt;IfModule mod_auth_ntlm_winbind.c&amp;gt;
        AuthName &amp;quot;NTLM Authentification&amp;quot;
        NTLMAuth on
        NTLMAuthHelper &amp;quot;/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp&amp;quot;
        NTLMBasicAuthoritative on
        AuthType NTLM
    &amp;lt;/IfModule&amp;gt;
&amp;nbsp;
    Require valid-user
	&amp;lt;fModule mod_setenvif.c&amp;gt;
		# Declaration des clients utilisant l'authentification intégrée
		SetEnvIf Remote_Addr &amp;quot;10\.(10|13|14|19|20|44|45|49)\.[0-9]{1,3}\.[0-9]{1,3}&amp;quot; pays # Pays 1
		SetEnvIf Remote_Addr &amp;quot;10\.(70|18|48)\[0-9]{1,3}\.[0-9]{1,3}&amp;quot; pays # Pays 2
&amp;nbsp;
		# Declaration de l'IP du robot indexant le site
		SetEnvIf Remote_Addr &amp;quot;10\.135\.255\.(1|44|35|244)&amp;quot; indexation
	
		# Declaration de la machine pour generation du cache statique
		SetEnvIf Remote_Addr &amp;quot;(127\.0\.0\.1|10\.135\.255\.45)&amp;quot; local
		
		# Sont autorises en anonyme &amp;quot;tout le monde&amp;quot; sauf les pays avec authentification intégrée.
		Allow from env=local env=indexation !env=pays
	&amp;lt;/IfModule&amp;gt;
	Satisfy any
&amp;lt;/Location&amp;gt;&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/21/Apache-%3A-authentification-integree-sauf-pour-certains-clients-dont-on-ne-connait-pas-la-provenance-reseau#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/21/Apache-%3A-authentification-integree-sauf-pour-certains-clients-dont-on-ne-connait-pas-la-provenance-reseau#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/524</wfw:commentRss>
      </item>
    
  <item>
    <title>Lecture : Practical Django Projects</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/17/Lecture-%3A-Practical-Django-Projects</link>
    <guid isPermaLink="false">urn:md5:924de86a64c253121b236e2b11b197c0</guid>
    <pubDate>Sun, 17 Aug 2008 15:23:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Python - Django</category>
        <category>django</category><category>lecture</category>    
    <description>    &lt;p&gt;Je viens de finir la lecture de &lt;a href=&quot;http://www.amazon.com/dp/1590599969&quot;&gt;Practical Django Projects&lt;/a&gt;, écrit par &lt;a href=&quot;http://www.b-list.org&quot;&gt;James Bennett&lt;/a&gt;, qui occupe le poste de &amp;quot;Django Release Manager&amp;quot; et qui a publié sur son blog de &lt;a href=&quot;http://www.b-list.org/weblog/categories/django/&quot;&gt;nombreux billets sur Django&lt;/a&gt; et les bonnes pratiques à avoir/appliquer. Autant le dire tout de suite, le livre est de la même qualité que ses billets : accessibles, pédagogiques et pertinents.&lt;/p&gt;


&lt;p&gt;Le livre se décompose en cinq grandes sections :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Présentation de Django&lt;/li&gt;
&lt;li&gt;Réalisation d'un CMS simple (permettant de poser les bases)&lt;/li&gt;
&lt;li&gt;Réalisation d'un &lt;a href=&quot;http://code.google.com/p/coltrane-blog/&quot;&gt;weblog&lt;/a&gt; (permettant de découvrir les concepts de &amp;quot;template tags&amp;quot;, manager, l'utilisation de librairies tiers, les vues génériques, etc)&lt;/li&gt;
&lt;li&gt;Réalisation d'un &lt;a href=&quot;http://code.google.com/p/cab/&quot;&gt;dépôt de code&lt;/a&gt; (qui complète les points abordés précédemment et permet d'aborder le gestionnaire de formulaires).&lt;/li&gt;
&lt;li&gt;Synthèse sur les bonnes pratiques à suivre pour du code flexible, adaptable, réutilisable, distribuable et surtout documenté !&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Autant je n'ai pas appris grand chose avec les deux premières sections, autant j'ai adoré la troisième et cinquième. Pour la quatrième section, mon niveau en python &amp;amp; django font que pas mal de choses me sont passées pour le moment au dessus de la tête et que cela ne répond pas à mes besoins immédiats (contrairement à la troisième section).&lt;/p&gt;


&lt;p&gt;Même si l'arrivée de la nouvelle interface d'administration et le fait que le code sur les &amp;quot;Signals&amp;quot; ait été réécrit font que quelques infimes parties du livre se trouvent aujourd'hui un peu obsolètes, le livre a le grand mérite de tout bien expliquer, de poser les bases et d'accompagner le lecteur dans une montée en puissance au niveau de sa maîtrise de Django.&lt;/p&gt;


&lt;p&gt;Le seul reproche que je peux formuler concerne la quatrième section où l'accent n'est mis que sur les nouveautés. Du coup, on appréhende moins la construction de l'application en tant que telle. A ce jour le &lt;a href=&quot;http://apress.com/book/view/1590599969&quot;&gt;code source utilisé dans le livre&lt;/a&gt; (section de gauche) n'étant pas encore dispo sur le site d'Apress, cela n'aide pas non plus pour prendre le train en route...&lt;/p&gt;


&lt;p&gt;Pour tout ce qui est bonnes pratiques, elles sont présentes partout dans le livre. Point besoin d'attendre la 5ème section pour en bénéficier. L'auteur prend même au début le plaisir à montrer la &amp;quot;mauvaise façon&amp;quot; (ie sans prendre en compte les besoins d'extensibilité/flexibilité/...) puis montre ensuite la &amp;quot;bonne façon&amp;quot; de faire. Des conseils qui sont en général assez simple à suivre et donne de solides avantages au code généré (lisibilité, simplicité, réutilisabilité, etc).&lt;/p&gt;


&lt;p&gt;(Mal)heureusement, je n'avais pas de PC sous la main pour coder en parallèle. Je n'ai donc pas pu capitaliser / jouer avec ce qui a été abordé. (J'aurais en outre pu en profiter pour coder la base de mon projet Atome...)&lt;/p&gt;


&lt;p&gt;Pour conclure, si quelqu'un souhaite se mettre aujourd'hui à &lt;a href=&quot;http://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt;, je ne saurais trop lui recommander de lire en premier lieu &lt;a href=&quot;http://www.amazon.com/dp/1590597257&quot;&gt;&amp;quot;The definitive guide to Django : web development done right&amp;quot;&lt;/a&gt; puis ce livre ensuite. Avec ça et ensuite la &lt;a href=&quot;http://www.djangoproject.com/documentation/&quot;&gt;documentation en ligne&lt;/a&gt;, il est prêt pour mener à bien des projets (perso/pro).&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/17/Lecture-%3A-Practical-Django-Projects#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/17/Lecture-%3A-Practical-Django-Projects#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/523</wfw:commentRss>
      </item>
    
  <item>
    <title>Vrac de rentrée</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/16/Vrac-de-rentree</link>
    <guid isPermaLink="false">urn:md5:9786a430a06469ee42293a8dc7760c6d</guid>
    <pubDate>Sat, 16 Aug 2008 22:44:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>En Vrac</category>
        <category>compatibilité</category><category>css</category><category>django</category><category>ezpublish</category><category>html</category><category>navigateur</category><category>newsletter</category><category>python</category>    
    <description>    &lt;p&gt;Django 1.0 Alpha 2 puis Beta 1 sont sorties, au programme :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(alpha 2) Intégration de l'application de système d'information géographique &lt;a href=&quot;http://geodjango.org/&quot;&gt;GeoDjango&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;(alpha 2) Extensibilité des types Fichiers (FileField) et Images (ImageField) pour permettre une manipulation plus souple de ces types d'éléments&lt;/li&gt;
&lt;li&gt;(alpha 2) Compatibilité avec &lt;a href=&quot;http://www.jython.org/&quot;&gt;Jython&lt;/a&gt; (qui permet de faire fonctionner du code python dans une application Java pour faire simple)&lt;/li&gt;
&lt;li&gt;(beta 1) &lt;a href=&quot;http://www.djangoproject.com/documentation/contenttypes/#generic-relations&quot;&gt;Les relations génériques&lt;/a&gt; sont maintenant supportées dans l'interface d'admin et dans les formulaires&lt;/li&gt;
&lt;li&gt;(beta 1) Amélioration de la flexibilité de l'interface d'administration pour tout ce qui est antérieur ou postérieur à la sauvegarde d'un élément (cf &lt;a href=&quot;http://www.djangoproject.com/documentation/admin/#modeladmin-methods&quot;&gt;doc&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(beta 1) La &lt;a href=&quot;http://www.djangoproject.com/documentation/db-api/#forcing-an-insert-or-update&quot;&gt;distinction entre un INSERT et un UPDATE&lt;/a&gt; au niveau de la méthode save() est améliorée (comprendre, on peut la gérer soit même)&lt;/li&gt;
&lt;li&gt;(beta 1) Le middleware du cache a été éclaté en 3 - CacheMiddleWare continue à exister en tant que tel et est constuit sur la base de deux nouvelles classes (une pour créer le cache, l'autre pour le lire) (cf &lt;a href=&quot;http://www.djangoproject.com/documentation/cache/#the-per-site-cache&quot;&gt;doc&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;(beta 1) Les &lt;a href=&quot;http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges#Removedseveralmoredeprecatedfeaturesfor1.0&quot;&gt;fonctionnalités obsolètes&lt;/a&gt; et maintenues jusqu'alors sont supprimées (il faut donc renommer vos django.newforms en django.forms par ex).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour ceux qui veulent avoir un aperçu des progrès réalisés par Django en deux ans, ils peuvent lire &lt;a href=&quot;http://jeffcroft.com/blog/2008/jul/25/top-ten-things-suck-about-django-revisited/&quot;&gt;JeffCroft.com: Top ten things that suck about Django, revisited&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pour rester dans Python, Smile se pose la question &lt;a href=&quot;http://blog.smile.fr/faut-il-avoir-peur-de-python&quot;&gt;Faut-il avoir peur de Python&lt;/a&gt;, ça m'a rappelé &lt;a href=&quot;http://www.unelectronlibre.info/journal/post/2007/02/07/Devez-vous-innover-ou-vous-contenter-de-suivre-la-tendance-generale&quot;&gt;ce billet sur l'adoption (ou pas) des nouvelles techo / langages ayant le vent en poupe&lt;/a&gt;. Serais-je un tantinet médium ? &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Pour sortir un peu de python &amp;amp; django, un petit point sur la &lt;a href=&quot;http://blog.alsacreations.com/2008/07/31/420-compatibilite-navigateur-et-prise-de-tete&quot;&gt;compatibilité des sites avec les navigateurs avec une série d'astuces utiles&lt;/a&gt;. Dans la même veine, &lt;a href=&quot;http://t37.net/des-newsletters-en-html-parfaites-enfin-qui-marchent-et-c-est-deja-pas-mal&quot;&gt;un billet pour rendre vos newsletter en html lisibles sous vos webmails &amp;amp; clients mails&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Un petit &lt;a href=&quot;http://pwet.fr/blog/en_attendant_ez_publish_4_0_1_ou_4_1&quot;&gt;état des lieux sur eZ Publish 4.0 et ses bugs&lt;/a&gt; - ça me promet une rentrée épique ça &lt;img src=&quot;/journal/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Prochain billet : revue de lecture sur &lt;a href=&quot;http://www.amazon.com/dp/1590599969&quot;&gt;Practical django projects&lt;/a&gt; de &lt;a href=&quot;http://www.b-list.org/&quot;&gt;James Bennet&lt;/a&gt; ; il me reste les deux derniers chapitres à finir...&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/16/Vrac-de-rentree#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/16/Vrac-de-rentree#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/522</wfw:commentRss>
      </item>
    
  <item>
    <title>Conventions de codage (si tant est que j'en ai...)</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/16/Conventions-de-codage-si-tant-est-que-j-en-ai</link>
    <guid isPermaLink="false">urn:md5:08abc345b817997e8e39dd2e5ad5e441</guid>
    <pubDate>Sat, 16 Aug 2008 22:03:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Dev Web</category>
        <category>bonnes pratiques</category><category>code</category><category>css</category><category>développement</category><category>html</category><category>php</category><category>programmation</category><category>python</category>    
    <description>    &lt;p&gt;Quand j'ai vu cette chaine sur les conventions de codage se diffuser sur le web avant l'été (&lt;a href=&quot;http://case.oncle-tom.net/2008/07/23/conventions-de-programmation-necessaire-maturite/&quot;&gt;ici&lt;/a&gt; ou encore &lt;a href=&quot;http://prendreuncafe.com/blog/post/2008/07/23/Mes-conventions-de-codage&quot;&gt;là&lt;/a&gt;), je me disais &amp;quot;enfin une qui va me passer à coté, je peux dormir tranquille&amp;quot;, ne me considérant pas comme un développeur (ou alors un du dimanche &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; ) et n'étant pas non plus développeur de formation... Et bien non, &lt;a href=&quot;http://www.gasteroprod.com/blog/mes-conventions-de-codage.html&quot; hreflang=&quot;fr&quot;&gt;Nicolas Hoizey&lt;/a&gt; a décidé de me refiler cette chaine.&lt;/p&gt;


&lt;p&gt;Pour les projets réalisés dans un cadre professionnel, pour tout ce qui a été en html/css/php et autres boucles SPIP, j'ai par le passé tenté de bêtement copier ce que faisaient mes petits camarades. Cela se justifiait principalement par le fait que j'intervenais ponctuellement sur le code et ne souhaitait pas les perturber plus que nécessaire.&lt;/p&gt;


&lt;p&gt;Pour les projets réalisés dans un cadre professionnel et dont je suis à l'origine ou pour mes projets perso, je n'ai pas de règle précise, je vise surtout une logique de lisibilté.&lt;/p&gt;


&lt;p&gt;Cela donnera par ex pour un script bash dont l'objectif est de packager des fichiers par ex :&lt;/p&gt;

&lt;pre&gt;#
## Get relevant information for the packaging
#
&amp;nbsp;
# Do we need to send file on the front server ?
... some code ...
&amp;nbsp;
# Do we need to send file on the database server ?
... some code ...
&amp;nbsp;
#
## Let's build the package
#
&amp;nbsp;
# Package files for front server
... some code ...
&amp;nbsp;
# Package files for database server
... some code ...&lt;/pre&gt;


&lt;p&gt;Je prends souvent ce schéma pour tout ce qui a trait à l'administration système et pour les CSS (en adaptant les caractères de commentaires bien sur...).&lt;/p&gt;


&lt;p&gt;Pour continuer sur les CSS, mon ordre de fabrication de mon fichier va être le suivant :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Eléments globaux / génériques&lt;/li&gt;
&lt;li&gt;Section des plus &amp;quot;grandes&amp;quot; vers les plus &amp;quot;petites&amp;quot; (body &amp;gt; left &amp;gt; sidebar)&lt;/li&gt;
&lt;li&gt;Au sein de chaque section, en premier lieux les éléments de positionnement puis ceux de mise en forme (pour reprendre une logique du plus grand au plus petit)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L'idée étant de regrouper le code en des sous-ensemble logiques.&lt;/p&gt;


&lt;p&gt;Cela pourrait donner qqc comme :&lt;/p&gt;

&lt;pre class=&quot;css&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/********************************
*  Elements généraux/generiques
********************************/&lt;/span&gt;
&amp;nbsp;
body &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
h1 &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
a &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/********************************
* Zone gauche
********************************/&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #cc00cc;&quot;&gt;#left &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* Menu gauche */&lt;/span&gt;
&amp;nbsp;
#left &lt;span style=&quot;color: #cc00cc;&quot;&gt;#menu &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
#left #menu a&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Par contre, là où j'ai toujours eu un souci avec PHP par ex, c'est sur la convention à suivre sur la gestion des accolades (qui en plus suivant l'IDE, l'interpréation peut changer) :&lt;/p&gt;


&lt;p&gt;Ex :&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$toto&lt;/span&gt; == &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;toto&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    ... some code ...
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;ou&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$toto&lt;/span&gt; == &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;toto&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    ... some code ...
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;ou :&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$toto&lt;/span&gt; == &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;toto&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    ... some code ...
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;ou :&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$toto&lt;/span&gt; == &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;toto&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    ... some code ...
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Ou surement encore plein d'autres choses faisant que mon code au final se trouvait mal indenté (ou pas toujours de la même façon, ne parvenant pas à décider de ce qui était le plus lisible), surtout si les choses avaient tendance à s'imbriquer.&lt;/p&gt;


&lt;p&gt;Je pense d'ailleurs que c'est une des raisons pour lesquelles j'aime python. L'indentation que l'on doit respecter permet de donner une bonne lisibilité du code. En plus, la charte de bonne conduite est clairement &lt;a href=&quot;http://www.python.org/dev/peps/pep-0008/&quot;&gt;définie&lt;/a&gt;, même si je ne la suis pas encore dans son intégralité...&lt;/p&gt;

&lt;pre class=&quot;python&quot;&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;
Profile
&amp;nbsp;
This object is used to provide some common information regarding the profile of a user.
&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;color: #dc143c;&quot;&gt;Profile&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;models.&lt;span style=&quot;color: black;&quot;&gt;Model&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:
    CIVILITY_CHOICES = &lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;
         &lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'single'&lt;/span&gt;, _&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Single'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;,
         &lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'taken'&lt;/span&gt;, _&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Taken'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;,
    &lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    who = models.&lt;span style=&quot;color: black;&quot;&gt;ForeignKey&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #dc143c;&quot;&gt;User&lt;/span&gt;, unique=&lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;, verbose_name=_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Person'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;,&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    photo = models.&lt;span style=&quot;color: black;&quot;&gt;ImageField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;height_field=&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;80&amp;quot;&lt;/span&gt;, width_field=&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;80&amp;quot;&lt;/span&gt;, upload_to=&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;photos&amp;quot;&lt;/span&gt;, blank=&lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    street = models.&lt;span style=&quot;color: black;&quot;&gt;CharField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Address 1'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    street_bis = models.&lt;span style=&quot;color: black;&quot;&gt;CharField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Address 2'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;100&lt;/span&gt;, blank=&lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    zipcode = models.&lt;span style=&quot;color: black;&quot;&gt;IntegerField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Zip code'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    city = models.&lt;span style=&quot;color: black;&quot;&gt;CharField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'City'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    country = models.&lt;span style=&quot;color: black;&quot;&gt;CharField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Country'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    phone = models.&lt;span style=&quot;color: black;&quot;&gt;CharField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Phone'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;20&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    mobile = models.&lt;span style=&quot;color: black;&quot;&gt;CharField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Mobile'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;20&lt;/span&gt;, blank=&lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    civility = models.&lt;span style=&quot;color: black;&quot;&gt;CharField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Status'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, max_length=&lt;span style=&quot;color: #ff4500;&quot;&gt;20&lt;/span&gt;, choices=CIVILITY_CHOICES&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    birthdate = models.&lt;span style=&quot;color: black;&quot;&gt;DateField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Birth date'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
    children = models.&lt;span style=&quot;color: black;&quot;&gt;IntegerField&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;_&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Children'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;, blank=&lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;, null=&lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #0000cd;&quot;&gt;__unicode__&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;who&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;get_full_name&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Admin:
        list_display = &lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'who'&lt;/span&gt;,&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
        list_filter = &lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'who'&lt;/span&gt;,&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;
        search_fields = &lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'who'&lt;/span&gt;,&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Meta:
        verbose_name = _&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Civil state'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;
        verbose_name_plural = _&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;'Civil states'&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Pour le débat indentation vs espace, j'avoue avoir préféré les espaces. Etant feinéant, je profitais aussi de la fonction de nombreux IDE qui transforment la tabulation en 4 espaces (ce qui permettait de continuer à utiliser la touche tab pour indenter son code...)&lt;/p&gt;


&lt;p&gt;En tous cas, si je devais donner une conclusion à cet essai, que pour adopter une convention de codage, il faut :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Regarder si une convention n'est pas définie au niveau du language, si oui, alors l'adopter.&lt;/li&gt;
&lt;li&gt;Regarder si une convention n'est pas définie au niveau du programme que vous utilisez, si oui, alors l'adopter (et si elle entre en conflit avec celle du langue, tant pis pour le langage, il est plus logique d'avoir un code cohérent)&lt;/li&gt;
&lt;li&gt;Si aucune des deux n'est définie, voir pour trouver une convention qui vous va bien à vous et le cas échéant à vos coéquipiers (à ce titre, mieux vaut en discuter avant le début du code qu'après, ça évitera de vous marcher dessus ensuite...)&lt;/li&gt;
&lt;li&gt;Adopter une terminologie anglaise (penser que votre code et commentaires peuvent être lus/utilisés par un prestataire indien - que feriez vous si vous deviez reprendre un code dont les commentaires sont en chinois par ex ?)&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/16/Conventions-de-codage-si-tant-est-que-j-en-ai#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/16/Conventions-de-codage-si-tant-est-que-j-en-ai#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/521</wfw:commentRss>
      </item>
    
  <item>
    <title>Vacances...</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/08/01/Vacances</link>
    <guid isPermaLink="false">urn:md5:9d304a04c583b38d4868337a8bff5667</guid>
    <pubDate>Fri, 01 Aug 2008 17:00:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Ma Vie</category>
        <category>vacances</category>    
    <description>    &lt;p&gt;Ce blog repart en léthargie pour une bonne raison cette fois : des vacances &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Tout comme j'ai demandé à mes petits collègues de ne rien casser en mon absence, vous êtes priés d'en faire autant &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;On se revoit dans 15 jours avant notamment des &lt;a href=&quot;http://www.gasteroprod.com/blog/mes-conventions-de-codage.html&quot;&gt;conventions de codage&lt;/a&gt; à ce qu'il paraît... mais aussi de cahier de recette, d'intégration, de redirection sous IIS, etc  car j'ai plein de choses à dire sur ces sujets... &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/08/01/Vacances#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/08/01/Vacances#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/520</wfw:commentRss>
      </item>
    
  <item>
    <title>Django 1.0 alpha is out (mais en juillet)</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/07/23/Django-10-alpha-is-out-mais-en-juillet</link>
    <guid isPermaLink="false">urn:md5:d04628fe2856a627797015dae6f775f8</guid>
    <pubDate>Wed, 23 Jul 2008 09:11:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Python - Django</category>
        <category>admin</category><category>django</category><category>django-fr</category><category>escaping</category><category>orm</category><category>traduction</category><category>unicode</category><category>xss</category>    
    <description>    &lt;p&gt;Le framework &lt;a href=&quot;http://www.djangoproject.com&quot; hreflang=&quot;en&quot;&gt;Django&lt;/a&gt;, vient de sortir en version &lt;a href=&quot;http://www.djangoproject.com/weblog/2008/jul/21/10-alpha/&quot;&gt;1.0 alpha&lt;/a&gt;, premier jalon d'une série de release devant nous emmener à la version 1.0 final début septembre, comme l'annonce la &lt;a href=&quot;http://code.djangoproject.com/wiki/VersionOneRoadmap#schedule&quot;&gt;roadmap&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Au menu des &lt;a href=&quot;http://www.djangoproject.com/documentation/release_notes_1.0_alpha/&quot;&gt;principales nouveautés depuis la version 0.96.x&lt;/a&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/admin/&quot;&gt;Nouvelle interface d'administration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/unicode/&quot;&gt;Support de l'unicode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.djangoproject.com/wiki/QuerysetRefactorBranch&quot;&gt;Amélioration de l'ORM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.djangoproject.com/documentation/templates/#automatic-html-escaping&quot;&gt;L'autoescaping dans les templates&lt;/a&gt;, pour se prémunir des failles XSS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour ceux qui mettraient à jour leur site d'une version 0.96.x vers cette version, n'oubliez pas de consulter la liste des &lt;a href=&quot;http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges&quot;&gt;incompatibilités ascendantes&lt;/a&gt; et le traitement à &amp;quot;infliger&amp;quot; à votre code pour le faire évoluer.&lt;/p&gt;


&lt;p&gt;Sur la partie admin, je vous invite à consulter également la &lt;a href=&quot;http://code.djangoproject.com/wiki/NewformsAdminBranch&quot;&gt;page dédiée à cette fonctionnalité&lt;/a&gt; qui donne beaucoup d'informations pour la migration. A lire et voir également, ce &lt;a href=&quot;http://oebfare.com/blog/2008/jul/20/newforms-admin-migration-and-screencast/&quot;&gt;tutoriel et screencast pour la migration vers cette nouvelle interface d'administration&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Et pendant ce temps-là sur &lt;a href=&quot;http://www.django-fr.org/&quot;&gt;django-fr&lt;/a&gt;, &lt;a href=&quot;http://www.biologeek.com&quot;&gt;David&lt;/a&gt; a (enfin &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; ) publié mes traductions de &lt;a href=&quot;http://www.django-fr.org/documentation/webdesign/&quot;&gt;la contrib webdesign&lt;/a&gt;, &lt;a href=&quot;http://www.django-fr.org/documentation/modpython/&quot;&gt;l'installation de django avec Apache/mod_python&lt;/a&gt; ou sous &lt;a href=&quot;http://www.django-fr.org/documentation/fastcgi/&quot;&gt;fastcgi&lt;/a&gt;. Il faut d'ailleurs que je mette à jour ces deux documents suite &lt;a href=&quot;http://code.djangoproject.com/changeset/8015&quot;&gt;aux derniers commits&lt;/a&gt;...&lt;/p&gt;


&lt;p&gt;PS : désolé pour le jeux de mot... fatigue, besoin de vacances, tout ça tout ça... &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/07/23/Django-10-alpha-is-out-mais-en-juillet#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/07/23/Django-10-alpha-is-out-mais-en-juillet#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/519</wfw:commentRss>
      </item>
    
  <item>
    <title>Fin de la démo de MvMo</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/07/20/Fin-de-la-demo-de-MvMo</link>
    <guid isPermaLink="false">urn:md5:d2c1b6cec609a82d37940b6aee107097</guid>
    <pubDate>Sun, 20 Jul 2008 22:08:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Vie des sites</category>
        <category>mvmo</category>    
    <description>    &lt;p&gt;La démo de &lt;a href=&quot;http://www.unelectronlibre.info/projets/#mvmo-django&quot;&gt;MvMo&lt;/a&gt; hébergée précédemment sur mvmo-demo.unelectronlibre.info est coupée pour le moment au vu de sa &lt;del&gt;faible&lt;/del&gt; non-utilisation.&lt;/p&gt;


&lt;p&gt;Elle peut être rétablie à la demande...&lt;/p&gt;


&lt;p&gt;(promis, j'essaie de faire des billets intéressants bientôt...)&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/07/20/Fin-de-la-demo-de-MvMo#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/07/20/Fin-de-la-demo-de-MvMo#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/518</wfw:commentRss>
      </item>
    
  <item>
    <title>Aménagements d'été (suite) : Déménagement du Chaudron.</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/07/20/Amenagements-d-ete-suite-%3A-Demenagement-du-Chaudron</link>
    <guid isPermaLink="false">urn:md5:bf2b3e451aef1f3bc8dd101d5bbbd4cf</guid>
    <pubDate>Sun, 20 Jul 2008 00:59:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Vie des sites</category>
            
    <description>    &lt;p&gt;Le Chaudron est déplacé vers une nouvelle url : &lt;a href=&quot;http://www.unelectronlibre.info/projets/&quot;&gt;http://www.unelectronlibre.info/projets/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;La redirection générique est en place.&lt;/p&gt;


&lt;p&gt;Pour mes besoins actuels, &lt;a href=&quot;http://sphinx.pocoo.org/&quot;&gt;Sphinx&lt;/a&gt; et &lt;a href=&quot;http://hg.unelectronlibre.info/&quot;&gt;mes dépôts mercurial&lt;/a&gt; me suffisent amplement... Je mets donc redmine de coté pour le moment...&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/07/20/Amenagements-d-ete-suite-%3A-Demenagement-du-Chaudron#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/07/20/Amenagements-d-ete-suite-%3A-Demenagement-du-Chaudron#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/517</wfw:commentRss>
      </item>
    
  <item>
    <title>MiaM</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/07/19/MiaM</link>
    <guid isPermaLink="false">urn:md5:b0da648c190650e9ea956ca39e7fb130</guid>
    <pubDate>Sat, 19 Jul 2008 09:44:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Python - Django</category>
        <category>admin</category><category>django</category><category>forms</category>    
    <description>    &lt;p&gt;La branche tant attendue &lt;a href=&quot;http://code.djangoproject.com/wiki/NewformsAdminBranch&quot;&gt;newforms-admin&lt;/a&gt; est arrivée dans le &lt;a href=&quot;http://code.djangoproject.com/changeset/7967&quot;&gt;trunk&lt;/a&gt; de Django.&lt;/p&gt;


&lt;p&gt;Du coup, &lt;a href=&quot;http://code.djangoproject.com/changeset/7971&quot;&gt;django.newforms devient django.forms&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Un grand pas en avant de fait vers la &lt;a href=&quot;http://code.djangoproject.com/wiki/VersionOneRoadmap&quot;&gt;version 1.0&lt;/a&gt; et qui ouvre un grand nombre de possibilités pour la constitution de back-office d'une appli Django... (pas encore testé).&lt;/p&gt;


&lt;p&gt;Bref de quoi me motiver un peu plus pour me remettre à mes dev... &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Edit du 20/07&lt;/strong&gt; : A lire absolument en plus de la page sur la branche newforms-admin indiquée plus haut, &lt;a href=&quot;http://www.djangoproject.com/documentation/admin/&quot;&gt;la documentation sur l'interface d'administration&lt;/a&gt; et tout ce qui s'y réfère (modèles, options d'affichage, etc)&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/07/19/MiaM#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/07/19/MiaM#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/516</wfw:commentRss>
      </item>
    
  <item>
    <title>Aménagements d'été</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/07/05/Amenagements-d-ete</link>
    <guid isPermaLink="false">urn:md5:1d31d75e36dd3c13ef3597d0fdbc70d4</guid>
    <pubDate>Sat, 05 Jul 2008 23:50:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Vie des sites</category>
            
    <description>    &lt;p&gt;Après le &lt;a href=&quot;http://www.unelectronlibre.info/journal/post/2008/06/29/Deplacement-des-tutoriels-de-wikiunelectronlibreinfo-vers-wwwunelectronlibreinfo/tutoriels/&quot;&gt;dépoussièrement des tutoriels&lt;/a&gt;, c'est au tour de ce blog :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Passage de la racine de ce site dans le répertoire &amp;quot;journal&amp;quot; et les &amp;quot;index.php&amp;quot; ont disparu dans les urls. Normalement, toutes les redirections sont ok... Si bug, merci de le signaler...&lt;/li&gt;
&lt;li&gt;Le flux pour les commentaires change un peu (avis aux 2 abonné(e)s) : http://feeds.feedburner.com/UnElectronLibre/Commentaires&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Par contre, je trouve que le nouveau tableau de bord de dotclear 2 avec l'éditeur rapide de billet et l'intro des news, c'est moche à souhait: &lt;img src=&quot;/journal/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/07/05/Amenagements-d-ete#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/07/05/Amenagements-d-ete#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/515</wfw:commentRss>
      </item>
    
  <item>
    <title>Backup-Manager 0.7.7 : Bug fix sur la version FC9/i386</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/07/02/Backup-Manager-077-%3A-Bug-fix-sur-la-version-FC9/i386</link>
    <guid isPermaLink="false">urn:md5:093f8d8a01b7a78e09bf4718a0ea7743</guid>
    <pubDate>Wed, 02 Jul 2008 00:30:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Trucs de geek</category>
        <category>backup-manager</category><category>fedora</category>    
    <description>    &lt;p&gt;Une petite erreur sur la définition d'un chemin...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager-0.7.7-0.2.nicos.fc9.i386.rpm&quot;&gt;backup-manager-0.7.7-0.2.nicos.fc9.i386.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager-0.7.7-0.2.nicos.fc9.src.rpm&quot;&gt;backup-manager-0.7.7-0.2.nicos.fc9.src.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager.spec-fc9&quot;&gt;backup-manager.spec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La version FC9/x86_64 n'est pas touchée.&lt;/p&gt;


&lt;p&gt;N'ayant plus de FC8 sous le coude, je n'ai pas regardé et j'ai donc supprimé les paquets en conséquence.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/07/02/Backup-Manager-077-%3A-Bug-fix-sur-la-version-FC9/i386#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/07/02/Backup-Manager-077-%3A-Bug-fix-sur-la-version-FC9/i386#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/514</wfw:commentRss>
      </item>
    
  <item>
    <title>Déplacement des tutoriels de wiki.unelectronlibre.info vers www.unelectronlibre.info/tutoriels/</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/06/29/Deplacement-des-tutoriels-de-wikiunelectronlibreinfo-vers-wwwunelectronlibreinfo/tutoriels/</link>
    <guid isPermaLink="false">urn:md5:f11339ec7fb2be350ec9e25f36ee6b6c</guid>
    <pubDate>Sun, 29 Jun 2008 00:24:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Vie des sites</category>
        <category>documentation</category><category>dokuwiki</category><category>pygments</category><category>python</category><category>ReST</category><category>sphinx</category><category>tutoriels</category><category>wiki</category>    
    <description>    &lt;p&gt;Je pourrais me limiter à un &amp;quot;tout est dans le titre&amp;quot; mais ce serait pas bien...&lt;/p&gt;


&lt;p&gt;J'initialise (enfin) la première phase de ce qui devrait être un grand chamboulement à la fin &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Les tutoriels se déplacent donc d'un vieillissant &lt;a href=&quot;http://wiki.splitbrain.org/wiki:dokuwiki&quot; hreflang=&quot;en&quot;&gt;dokuwki&lt;/a&gt; vers l'espace &amp;quot;&lt;a href=&quot;http://www.unelectronlibre.info/tutoriels/&quot;&gt;Tutoriels&lt;/a&gt;&amp;quot; basé sur le jeune projet de documentation &lt;a href=&quot;http://sphinx.pocoo.org/&quot; hreflang=&quot;en&quot;&gt;Sphinx&lt;/a&gt; (NDLR, il sert notamment pour la future documentation de &lt;a href=&quot;http://docs.python.org/dev/&quot; hreflang=&quot;en&quot;&gt;Python&lt;/a&gt; et &lt;a href=&quot;http://code.djangoproject.com/changeset/7370&quot; hreflang=&quot;en&quot;&gt;Django&lt;/a&gt;).&lt;/p&gt;


&lt;p&gt;Sphinx est basé sur la syntaxe &lt;a href=&quot;http://docutils.sf.net/rst.html&quot; hreflang=&quot;en&quot;&gt;ReStructured Text&lt;/a&gt;, incorpore la &lt;a href=&quot;http://pygments.org/&quot; hreflang=&quot;en&quot;&gt;coloration syntaxique&lt;/a&gt;, gère des niveaux d'arborescence et est en mesure de sortir votre documentation sous plusieurs formats (HTML, LaTeX, PDF). Il est fait pour gérer de la documentation et il le fait plutôt bien.&lt;/p&gt;


&lt;p&gt;Certains pourraient dire qu'un wiki est plus sympa car plus ouvert mais bon vu le nombre d'apports externes que j'ai eu depuis son lancement, je risque pas grand chose. Merci quand même aux quelques contributeurs &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Il me reste encore à :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;del&gt;Mettre les sources sur un dépot mercurial accessible de tous&lt;/del&gt; &lt;strong&gt;&lt;a href=&quot;http://hg.unelectronlibre.info/hgwebdir.cgi/tutoriels/&quot;&gt;FAIT&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Annoncer la licence CC qui va bien&lt;/del&gt; : NC-BY-SA &lt;strong&gt;FAIT&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Rediriger wiki.unelectronlibre.info vers ce nouvel espace&lt;/del&gt; &lt;strong&gt;FAIT&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;J'ai profité de l'occasion pour faire le ménage, certains tutoriels ne seront donc plus disponibles une fois la migration des urls effectives. J'en ai également profité pour mettre à jour certains (remplacement de apt-get par aptitude, php4 par php5, corrections de fautes/typo, etc).&lt;/p&gt;


&lt;p&gt;Je peux donc oublier la syntaxe Dokuwiki maintenant (me reste encore celle de SPIP, Dotclear, Textile (Redmine) et reStructured Text (Doc Django, Projets Django, Tutoriels)). Elle me génait énormément quand je jouais simultanément avec Trac (car elles sont quasiment opposées dans leur principe, notamment pour les titres).&lt;/p&gt;


&lt;p&gt;Edit du 30/06 : Redirection OK, Licence OK, Source OK - J'ai même crée un &lt;a href=&quot;http://chaudron.unelectronlibre.info/projects/show/tutoriels&quot;&gt;projet tutoriels&lt;/a&gt; sur mon &lt;a href=&quot;http://chaudron.unelectronlibre.info/&quot;&gt;Chaudron&lt;/a&gt; pour toute remarque sur les tutoriels &lt;img src=&quot;/journal/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/06/29/Deplacement-des-tutoriels-de-wikiunelectronlibreinfo-vers-wwwunelectronlibreinfo/tutoriels/#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/06/29/Deplacement-des-tutoriels-de-wikiunelectronlibreinfo-vers-wwwunelectronlibreinfo/tutoriels/#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/513</wfw:commentRss>
      </item>
    
  <item>
    <title>Futilité de passage...</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/06/23/Futilite-de-passage</link>
    <guid isPermaLink="false">urn:md5:528065836a7b7d790bb61bcc1693384a</guid>
    <pubDate>Mon, 23 Jun 2008 23:32:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>En Vrac</category>
        <category>atome</category><category>backup-manager</category><category>code</category><category>del.icio.us</category><category>diigo</category><category>django</category><category>dotclear</category><category>favoris</category><category>hype</category><category>postgresql</category><category>python</category><category>redmine</category><category>rss</category><category>ssii</category><category>test</category><category>veille</category><category>éditeur</category>    
    <description>    &lt;ul&gt;
&lt;li&gt;Le &lt;a href=&quot;http://www.unelectronlibre.info&quot;&gt;Chaudron&lt;/a&gt;, à défaut d'être complet est à jour coté Redmine - cf &lt;a href=&quot;http://www.redmine.org/news/show/16&quot;&gt;Annonce de Redmine 0.7.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ce blog, ainsi que celui de &lt;a href=&quot;http://hugo.steinmetz.fr/&quot; hreflang=&quot;fr&quot;&gt;mon fils&lt;/a&gt; continuent de suivre le SVN de dotclear et sont donc sous &lt;a href=&quot;http://www.dotclear.net/blog/post/2008/06/21/Dotclear-20-RC2&quot;&gt;Dotclear 2.0 RC2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.jungledisk.com/2008/06/23/jungle-disk-desktop-20-released/&quot;&gt;Jungle Disk 2.0&lt;/a&gt; est sorti&lt;/li&gt;
&lt;li&gt;Le paramétrage du serveur est quasi fini, faut que j'injecte d'une facon ou d'une autre le backup des bases postgresql dans backup-manager&lt;/li&gt;
&lt;li&gt;Mon nombre de flux RSS suivis est passé de 100+ à une 30aine (et ça pourrait encore diminuer) - que de bruit en moins et de temps de gagné. Déjà que j'arrive pas à faire le quart de la moitié de ce que je voudrais faire... et ça m'inspire aussi que la veille / course au hype en SSII consomme un temps monstrueux pour un intérêt qui me parait aujourd'hui bien relatif...&lt;/li&gt;
&lt;li&gt;Intéressant de voir les projets depuis un client final. C'est là où on voit que les phases d'intégration, tests et documentation sont raremement à jamais appliquées en SSII, voir pas intégrées dans le process de développement pour des bonnes et mauvaises raisons - j'y reviendrais plus tard, ainsi que sur ce document qu'est le &amp;quot;cahier de tests&amp;quot;. Pour éviter toute mauvaise interprétation : moi aussi jusqu'à peu encore, j'ai aussi mal fait quand j'étais en SSII... c'est d'ailleurs assez rigolo de prédire quasiment à coup sur ce qui a été fait/pas fait par une SSII et trouver à coup quasi certains les points de manque sur une livraison...&lt;/li&gt;
&lt;li&gt;Diigo, c'est bientot fini car je trouve leur barre insupportable, la suggestion des tags est à chier et l'intrusion dans le menu en click droit est abusive. Pire que tout dans ce fameux menu, on ne peut pas faire juste &amp;quot;Bookmark&amp;quot; mais forcément &amp;quot;Bookmark &amp;amp; higlight&amp;quot;, chose pour lequel je n'ai trouvé aucun intérêt pour le moment. Retour sur del.icio.us sous peu... (juste après la publication de ce billet en fait...)&lt;/li&gt;
&lt;li&gt;Il a été vu ceci sur mon PC - il parait que je me serais remis à faire du code (à défaut de trouver un éditeur qui me convienne)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;django-admin.py startproject atome
django-admin.py startapp journal
django-admin.py startapp links&lt;/pre&gt;


&lt;p&gt;mais un bug lié à la version SVN de Django et de &lt;a href=&quot;http://code.google.com/p/django-tagging/&quot;&gt;django-tagging&lt;/a&gt; (dont j'ai trouvé la doc un peu limité sur l'intégration dans les modèles) m'a vite bloqué &lt;img src=&quot;/journal/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt; -&lt;/p&gt;


&lt;p&gt;Suite au prochain épisode...&lt;/p&gt;


&lt;p&gt;Edit 1 : Pour django-tagging, faudrait lire la &lt;a href=&quot;http://django-tagging.googlecode.com/svn/trunk/docs/overview.txt&quot;&gt;doc&lt;/a&gt; qui va bien aussi...&lt;/p&gt;


&lt;p&gt;Edit 2 : Ajout de la sortie de Jungle Disk 2.0&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/06/23/Futilite-de-passage#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/06/23/Futilite-de-passage#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/512</wfw:commentRss>
      </item>
    
  <item>
    <title>Tel un mouton de panurge...</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/06/09/Tel-un-mouton-de-panurge</link>
    <guid isPermaLink="false">urn:md5:7a5b96a6879e2f58da2104510da32d7c</guid>
    <pubDate>Mon, 09 Jun 2008 22:14:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>WWW, NTIC &amp; Co</category>
        <category>del.icio.us</category><category>diigo</category><category>favoris</category><category>marks</category>    
    <description>    &lt;p&gt;... je passe de del.icio.us vers &lt;a href=&quot;http://www.diigo.com&quot; hreflang=&quot;en&quot;&gt;diigo&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pour ceux qui suivent mes marks, c'est donc par ici : &lt;a href=&quot;http://www.diigo.com/rss/user/Nsteinmetz&quot;&gt;http://www.diigo.com/rss/user/Nsteinmetz&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Le compte del.icio.us va rester actif puisque je profite de la capacité de Diigo à sauver &amp;quot;ailleurs&amp;quot;...&lt;/p&gt;


&lt;p&gt;Pour ceux qui ne connaissent pas diigo, cf &lt;a href=&quot;http://t37.net/diigo-introduit-le-social-dans-bookmarking-social&quot; hreflang=&quot;fr&quot;&gt;là&lt;/a&gt;, &lt;a href=&quot;http://t37.net/diigo-reinvente-le-surligneur-et-les-notes-dans-la-marge-a-la-sauce-sociale&quot; hreflang=&quot;fr&quot;&gt;ici&lt;/a&gt;,  ou encore &lt;a href=&quot;http://www.gasteroprod.com/blog/diigo-l-ultra-social-permet-de-s-ajouter-comme-son-propre-ami.html&quot;&gt;là&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/06/09/Tel-un-mouton-de-panurge#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/06/09/Tel-un-mouton-de-panurge#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/511</wfw:commentRss>
      </item>
    
  <item>
    <title>RPM FC8 &amp; FC9 : Backup-Manager</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/06/02/RPM-FC8-FC9-%3A-Backup-Manager</link>
    <guid isPermaLink="false">urn:md5:3a34cd7d873fbcb41a07bea4f34c996c</guid>
    <pubDate>Mon, 02 Jun 2008 00:03:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Trucs de geek</category>
        <category>backup-manager</category><category>fedora</category><category>rpm</category>    
    <description>    &lt;p&gt;Juste pour indiquer qu'après les PKGBUILD d'Archlinux, je me mets au RPM de Fedora Core.&lt;/p&gt;


&lt;p&gt;Pour mon premier paquet, je me suis attaqué à &lt;a href=&quot;http://www.backup-manager.org&quot; hreflang=&quot;fr&quot;&gt;Backup-Manager&lt;/a&gt; dont j'ai besoin pour mon serveur dédié.&lt;/p&gt;


&lt;p&gt;Attention, il a été compilé sur une machine en &lt;strong&gt;x86_64&lt;/strong&gt; (ne fonctionnera donc pas en i386) sous &lt;strong&gt;FC9&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/x86_64/backup-manager-0.7.7-0.1.nicos.fc9.src.rpm&quot;&gt;backup-manager-0.7.7-0.1.nicos.fc9.src.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/x86_64/backup-manager-0.7.7-0.1.nicos.fc9.x86_64.rpm&quot;&gt;backup-manager-0.7.7-0.1.nicos.fc9.x86_64.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/x86_64/backup-manager.spec&quot;&gt;backup-manager.spec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La version &lt;strong&gt;i386&lt;/strong&gt; et pour &lt;strong&gt;FC8&lt;/strong&gt; &lt;del&gt;devrait arriver prochainement...&lt;/del&gt; est arrivée :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager-0.7.7-0.1.nicos.fc8.src.rpm&quot;&gt;backup-manager-0.7.7-0.1.nicos.fc8.src.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager-0.7.7-0.1.nicos.fc8.i386.rpm&quot;&gt;backup-manager-0.7.7-0.1.nicos.fc8.i386.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager.spec-fc8&quot;&gt;backup-manager.spec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La version &lt;strong&gt;i386&lt;/strong&gt; et pour &lt;strong&gt;FC9&lt;/strong&gt; est arrivée :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager-0.7.7-0.1.nicos.fc9.src.rpm&quot;&gt;backup-manager-0.7.7-0.1.nicos.fc9.src.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager-0.7.7-0.1.nicos.fc9.i386.rpm&quot;&gt;backup-manager-0.7.7-0.1.nicos.fc9.i386.rpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unelectronlibre.info/rpm/i386/backup-manager.spec-fc9&quot;&gt;backup-manager.spec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Edit du 02/06 : ajout de la version FC8/i386&lt;/p&gt;


&lt;p&gt;Edit du 09/06 : Restauration des commentaires suite à un petit problème sur postgresql + ajout des dépendances pour FC9 :&lt;/p&gt;

&lt;pre&gt;yum install -y perl-File-Slurp perl-XML-LibXML perl-CPAN
cpan
cpan&amp;gt; install Net::Amazon::S3
(répondre la valeur par défaut à toutes les questions)&lt;/pre&gt;


&lt;p&gt;Edit du 14/06 : Ajout de la version FC9/i386&lt;/p&gt;</description>
    
    
    
          <comments>http://www.unelectronlibre.info/journal/post/2008/06/02/RPM-FC8-FC9-%3A-Backup-Manager#comment-form</comments>
      <wfw:comment>http://www.unelectronlibre.info/journal/post/2008/06/02/RPM-FC8-FC9-%3A-Backup-Manager#comment-form</wfw:comment>
      <wfw:commentRss>http://www.unelectronlibre.info/journal/feed/rss2/comments/510</wfw:commentRss>
      </item>
    
  <item>
    <title>Si vous lisez ce billet...</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/05/31/Si-vous-lisez-ce-billet</link>
    <guid isPermaLink="false">urn:md5:6bacc759e5ee62f3fd392ccaa030ff73</guid>
    <pubDate>Sat, 31 May 2008 08:05:00 +0000</pubDate>
    <dc:creator>Nicolas Steinmetz</dc:creator>
        <category>Vie des sites</category>
        <category>conversion</category><category>dotclear</category><category>kimsufi</category><category>lighttpd</category><category>migration</category><category>ovh</category><category>postgresql</category>    
    <description>    &lt;p&gt;Cela veut dire que j'ai réussi à migrer DC2 de MySQL à PostgreSQL et que les DNS ont basculé.&lt;/p&gt;


&lt;p&gt;Pour ceux qui voudraient passer de MySQL à PostgreSQL sous Dotclear 2, c'est très simple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sur votre instance dotclear en MySQL : Import/Export &amp;gt; Export &amp;gt; Exporter tout le contenu&lt;/li&gt;
&lt;li&gt;Installer une nouvelle instance dotclear sur votre serveur avec PostgreSQL&lt;/li&gt;
&lt;li&gt;Sur votre instance dotclear en MySQL : Import/Export &amp;gt; Import &amp;gt; Import d'un fichier de sauvegarde complet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suivant la taille de votre blog, vous aurez peut être à uploader votre fichier de backup dans votre répertoire public de dotclear au préalable. Pensez à effacer le fichier une fois que la conversion est effective.&lt;/p&gt;


&lt;p&gt;Tous mes sites perso sont donc passés sur un &lt;a href=&quot;https://www.ovh.com/fr/produits/kimsufi08.xml&quot;&gt;Kimsufi 2008&lt;/a&gt; avec &lt;a href=&quot;http://www.lighttpd.net&quot;&gt;lighttpd&lt;/a&gt; comme serveur Web et &lt;a href=&quot;http://www.postgresql.org&quot;&gt;Postgresql&lt;/a&gt; comme serveur de base de données. Pour les langages de scripts, y a du PHP, Python (+ DJango) et Ruby (+ Rails &amp;quot;à cause&amp;quot; de Redmine).&lt;/p&gt;


&lt;p&gt;Petit retour &amp;quot;en arrière&amp;quot; donc sur le choix de nginx car j'ai été infoutu de comprendre comment faire fonctionner un site en PHP avec. Comme le support de PHP est très simple à mettre en place sous lighttpd, j'ai vite switché... et du coup &lt;a href=&quot;http://hg.unelectronlibre.info&quot;&gt;hg.unelectronlibre.info&lt;/a&gt; est à nouveau disponible (pareil, pas compris comment le faire avec nginx)&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Un mail effacé un peu vite - A mail deleted too quickly (django inside)</title>
    <link>http://www.unelectronlibre.info/journal/post/2008/05/20/Un-mail-efface-un-peu-vite-A-mail-deleted-too-quickly</link>
    <guid isPermaLink="false">urn:md5:96ec9be3c0fb14c74633484f8485b16e</guid>
    <pubDate>Tue, 20 May 2008 09:28:00 +0200</pubDate>
    <dc:creator>NiCoS</dc:creator>
        <category>Python - Django</category>
            
    <description>    &lt;p&gt;En consultant mes mails ce matin, en regardant mes spams, j'ai parcoucu la liste d'un oeil rapide en cliquant automatiquement sur &amp;quot;Supprimer tous les spams&amp;quot; quand mon oeil a été attiré par les mots &amp;quot;Parter Django Project&amp;quot; (ou quelque chose d'approchan). Si cette personne lit ce blog, je veux bien qu'elle me renvoit son mail sur la même adresse, je ferais plus attention sur les spams dans les jours à venir &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;When reading my new mails this morning, I jumped to the Spam section and clicked on &amp;quot;Delete all spams&amp;quot; button when my eye was attracted by a title looking like &amp;quot;Partner Django Project&amp;quot; (or something approaching). If the sender read this blog, I would appreciate that he sends me again the related mail on the same email adress. I would be more careful with spam mails in the following days &lt;img src=&quot;/journal/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Edit : Merci à &lt;a href=&quot;http://www.biologeek.com&quot; hreflang=&quot;fr&quot;&gt;David&lt;/a&gt; pour le forward du mail en provenance de Djangogigs apparemment (tiens, je me rappelle pas m'y être inscrit...)&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>