<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://aurelien.bompard.org/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>Gauret</title>
  <link>http://aurelien.bompard.org/</link>
  <atom:link href="http://aurelien.bompard.org/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Le site perso du Gauret : blog, liens divers, grouikeries.</description>
  <language>fr</language>
  <pubDate>Thu, 29 Dec 2011 23:11:07 +0100</pubDate>
  <copyright>CC-BY-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Mais c'est quoi l'ESS ?</title>
    <link>http://aurelien.bompard.org/post/2011/09/09/Mais-c-est-quoi-l-ESS</link>
    <guid isPermaLink="false">urn:md5:ddc986d03dd3f7b9d50c0d644bb907a6</guid>
    <pubDate>Fri, 09 Sep 2011 14:50:00 +0200</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Écologie et société</category>
        <category>libre</category>    
    <description>    &lt;p&gt;On parle beaucoup d&amp;#8217;Économie Sociale et Solidaire, mais finalement savez-vous ce que c&amp;#8217;est&amp;#160;? La &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/%C3%89conomie_sociale_et_solidaire&quot;&gt;page Wikipedia&lt;/a&gt; donne une courte définition, mais le novice que je suis ne sait pas toujours où elle commence et où elle s&amp;#8217;arrête.&lt;/p&gt;
&lt;p&gt;Heureusement, une amie &lt;em&gt;geekette&lt;/em&gt; travaille dans ce domaine, et a publié &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.limine.fr/spip.php?article18&quot;&gt;un article très clair sur le sujet&lt;/a&gt;. Merci Antoinette&amp;#160;!&lt;/p&gt;
&lt;p&gt;J&amp;#8217;en profite pour lui faire un peu de pub, puisqu&amp;#8217;elle travaille en tant qu&amp;#8217;indépendante dans la sociologie des organisations&amp;#160;: c&amp;#8217;est quelqu&amp;#8217;un de tout à fait équilibré, suffisamment geek pour comprendre une conversation d&amp;#8217;informaticiens (et c&amp;#8217;est pas toujours facile avec nous ;-)), mais aussi suffisamment persévérante pour détricoter les problèmes relationnels qui freinent les entreprises et les associations. Voilà, la pub s&amp;#8217;arrête là, si vous êtes intéressés &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.limine.fr&quot;&gt;voici son site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour en revenir à l&amp;#8217;économie sociale et solidaire, son lien avec les logiciels libres en terme de valeurs partagées n&amp;#8217;est plus à démontrer. Là aussi de très bons articles ont été écrits sur le sujet, je vous recommande &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.framablog.org/index.php/post/2009/12/01/economie-sociale-logiciel-libre&quot;&gt;cet article de Framasoft&lt;/a&gt; et &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.scil.coop/2011/07/16/de-leconomie-sociale-et-solidaire-et-du-logiciel-libre/&quot;&gt;un article de la SCIL&lt;/a&gt; qui détaillent bien le sujet. On voit aussi que les associations de ces deux mondes commencent à se rapprocher, notamment avec la création de l&amp;#8217;&lt;a hreflang=&quot;fr&quot; href=&quot;http://ai2l.org/&quot;&gt;AI2L&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Il semble clair aujourd&amp;#8217;hui qu&amp;#8217;il y a là un vaste terrain d&amp;#8217;entente, et que nous avons beaucoup à apprendre les uns des autres pour faire avancer nos causes communes. Affaire à suivre, et de près.&lt;/p&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2011/09/09/Mais-c-est-quoi-l-ESS#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2011/09/09/Mais-c-est-quoi-l-ESS#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/135</wfw:commentRss>
      </item>
    
  <item>
    <title>XHTML2ODT sort en version 1.3</title>
    <link>http://aurelien.bompard.org/post/2011/07/16/XHTML2ODT-sort-en-version-1.3</link>
    <guid isPermaLink="false">urn:md5:1071aeba5b98b4453db22cd42d539f21</guid>
    <pubDate>Sat, 16 Jul 2011 15:11:00 +0200</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Développement</category>
        <category>libre</category><category>odf</category>    
    <description>    &lt;p&gt;Après environ 1 an de développements épisodiques, voici une nouvelle version de la bibliothèque &lt;a hreflang=&quot;fr&quot; href=&quot;http://xhtml2odt.org/wiki/WikiStart/fr&quot;&gt;XHTML 2 ODT&lt;/a&gt;, permettant de convertir du HTML bien formé en &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/OpenDocument&quot;&gt;ODT&lt;/a&gt;, le format standard de bureautique.&lt;/p&gt;
&lt;p&gt;Parmi les nouveautés, des améliorations de conversion de certaines balises (&lt;code&gt;dl&lt;/code&gt; et &lt;code&gt;span&lt;/code&gt; par exemple), des améliorations dans la gestion des images, l&amp;#8217;ajout de paquets RPM et Deb, et la gestion du HTML généré par &lt;a hreflang=&quot;en&quot; href=&quot;http://www.lyx.org/&quot;&gt;Lyx&lt;/a&gt; et &lt;a hreflang=&quot;en&quot; href=&quot;http://elyxer.nongnu.org/&quot;&gt;Elyxer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En ce qui concerne le packaging, des paquets RPM et Deb sont générés par le &lt;a hreflang=&quot;en&quot; href=&quot;https://build.opensuse.org/project/show?project=home:abompard:xhtml2odt&quot;&gt;OpenSuSE Build Service&lt;/a&gt;, qui est un outil vraiment très intéressant quand on cible plusieurs distributions. Pour cette version, j&amp;#8217;ai aussi créé un &lt;em&gt;feed&lt;/em&gt; &lt;a hreflang=&quot;en&quot; href=&quot;http://0install.net/&quot;&gt;Zero Install&lt;/a&gt;. Zero Install est une méthode d&amp;#8217;installation d&amp;#8217;applications qui vient en parallèle du système natif de la distribution (mais &lt;a hreflang=&quot;en&quot; href=&quot;http://0install.net/distribution-integration.html&quot;&gt;qui s&amp;#8217;intègre avec&lt;/a&gt;). C&amp;#8217;est très utile pour des applications qui sont mis à jour très fréquemment, comme Firefox par exemple, ou pour distribuer une application sous une forme indépendante de la distribution. Je vous laisse creuser le sujet si ça vous intéresse, mais c&amp;#8217;est un ensemble d&amp;#8217;outils qui mériteraient d&amp;#8217;être plus connus.&lt;/p&gt;
&lt;p&gt;Rendez-vous sur &lt;a hreflang=&quot;en&quot; href=&quot;http://xhtml2odt.org/wiki/WikiStart/fr&quot;&gt;le site du projet xhtml2odt&lt;/a&gt; ou directement sur &lt;a href=&quot;http://xhtml2odt.org/dl/&quot;&gt;la page de téléchargement&lt;/a&gt; pour récupérer la dernière version de la bibliothèque.&lt;/p&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2011/07/16/XHTML2ODT-sort-en-version-1.3#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2011/07/16/XHTML2ODT-sort-en-version-1.3#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/134</wfw:commentRss>
      </item>
    
  <item>
    <title>Le bouddhiste serait-il agile ?</title>
    <link>http://aurelien.bompard.org/post/2011/06/25/Le-bouddhiste-serait-il-agile</link>
    <guid isPermaLink="false">urn:md5:896df9eb8a1d96633ee077896544a915</guid>
    <pubDate>Sat, 25 Jun 2011 14:02:00 +0200</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Pensées diverses</category>
        <category>bouddhisme</category><category>long</category>    
    <description>&lt;p&gt;Non, il ne s&amp;#8217;agit pas de disserter sur la souplesse des moines
Shaolin&amp;#8230; &lt;img src=&quot;/blog/themes/gauret/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Voici un article de plus dans ma &lt;a href=&quot;http://aurelien.bompard.org/post/2009/08/18/J.K.-Rowling%2C-une-experte-de-la-philosophie-bouddhiste&quot;&gt;petite&lt;/a&gt; &lt;a href=&quot;http://aurelien.bompard.org/post/2010/12/11/%C3%89gollum&quot;&gt;série&lt;/a&gt; reliant le
bouddhisme à la culture occidentale contemporaine. Cette fois ci je vais
essayer de faire un lien entre deux domaines qui m&amp;#8217;intéressent au plus
haut point&amp;#160;: le bouddhisme et l&amp;#8217;informatique.&lt;/p&gt;    &lt;p&gt;Pour le public non-geek, il faut savoir que les méthodes organisationnelles utilisées pour développer du logiciel sont en pleine évolution depuis quelques années, avec l&amp;#8217;arrivée de ce qu&amp;#8217;on appelle les &amp;#8220;méthodes agiles&amp;#8221;. Petite introduction, les experts (dont je ne fais pas partie) voudront bien me pardonner les approximations.&lt;/p&gt;
&lt;p&gt;Jusqu&amp;#8217;à la fin des années 90 (et même un peu plus tard), les méthodes de développement informatiques étaient calquées sur les méthodes d&amp;#8217;ingénierie classiques du monde matériel. Quand on veut construire un bâtiment, on demande d&amp;#8217;abord à des architectes, qui vont passer un certain temps à écouter leur client et à définir des plans précis de ce qu&amp;#8217;il faut construire. Quand les calculs et la rédaction sont terminés, la réalisation est confiée à des ouvriers, qui vont alors passer la majeure partie du temps du projet à construire le bâtiment.&lt;/p&gt;
&lt;p class=&quot;extimage flickr&quot; style=&quot;text-align:center;margin:2em 0;font-size:80%&quot;&gt;
&lt;a href=&quot;http://www.flickr.com/photos/garrettwade/5556162395/&quot; class=&quot;image&quot; title=&quot;Antique-Architects-Folding-Rule-02D1208_1-2400&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5150/5556162395_f72825e75b_m.jpg&quot; alt=&quot;Antique-Architects-Folding-Rule-02D1208_1-2400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://creativecommons.org/licenses/by-sa/2.0/&quot; class=&quot;license&quot; title=&quot;Paternité - Partage selon les Conditions Initiales&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;&lt;img src=&quot;http://aurelien.bompard.org/images/cc.png&quot; alt=&quot;Creative Commons&quot; /&gt;&lt;/a&gt;
&amp;#8220;&lt;a href=&quot;http://www.flickr.com/photos/garrettwade/5556162395/&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;Antique-Architects-Folding-Rule-02D1208_1-2400&lt;/a&gt;&amp;#8221;
par &lt;a href=&quot;http://www.flickr.com/photos/garrettwade/&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;Garrett Wade&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Le monde de l&amp;#8217;informatique étant relativement jeune à l&amp;#8217;époque, on s&amp;#8217;est inspiré de ce qui marchait bien ailleurs, et on a suivi la même organisation&amp;#160;: un architecte logiciel traduit les besoins exprimés par le client en un document qu&amp;#8217;on appelle &amp;#8220;spécifications&amp;#8221;, qui décrit quelles fonctionnalités le logiciel aura, et comment il fonctionnera. Ensuite, ce document est transmis à une équipe de développeurs qui va programmer le logiciel.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Spécifications, juin 2011&quot; style=&quot;margin: 0 auto; display: block; border: 1px solid #6b6b6b;&quot; alt=&quot;Spécifications&quot; src=&quot;http://aurelien.bompard.org/blog/public/.specifications_s.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Au bout de plusieurs années, on s&amp;#8217;est finalement rendu compte que ça ne fonctionnait pas, parce que le monde du logiciel est très différent du monde matériel, notamment en terme de temps nécessaire pour les différentes étapes, et en terme de vitesse d&amp;#8217;évolution des besoins des clients. On s&amp;#8217;est rendu compte que les besoins des clients évoluaient trop vite par rapport au temps nécessaire à la production du document de spécifications. Si vous êtes intéressé par les détails de cette comparaison, voici &lt;a hreflang=&quot;en&quot; href=&quot;http://www.martinfowler.com/articles/newMethodology.html&quot;&gt;l&amp;#8217;excellent article d&amp;#8217;origine&lt;/a&gt;, que j&amp;#8217;encourage tout professionnel de l&amp;#8217;informatique à lire.&lt;/p&gt;
&lt;p&gt;Pour en revenir à notre sujet, les informaticiens ont commis une erreur de jeunesse&amp;#160;: ils ont essayé de figer dans le marbre quelque chose qui est intrinsèquement changeant&amp;#160;: le besoin du client. Devant cet échec, ils ont inventé d&amp;#8217;autres méthodes, appelées méthodes &amp;#8220;agiles&amp;#8221;, dont l&amp;#8217;objectif n&amp;#8217;est pas de bloquer le changement mais de s&amp;#8217;y adapter (démos, itérations courtes, backlog, etc.). Ces méthodes sont très généralement reconnues comme une avancée positive, une évolution de la maturité de l&amp;#8217;informatique en général&amp;#160;: en reconnaissant que le changement est inévitable et en cherchant à s&amp;#8217;y adapter, on est mieux en phase avec la réalité.&lt;/p&gt;
&lt;p class=&quot;extimage flickr&quot; style=&quot;text-align:center;margin:2em 0 2em 2em;font-size:80%;float:right;&quot;&gt;
&lt;a href=&quot;http://www.flickr.com/photos/babasteve/2249740073/&quot; class=&quot;image&quot; title=&quot;Bhutan: prayer bubbles&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2320/2249740073_0d90f4acc0_m.jpg&quot; alt=&quot;Bhutan: prayer bubbles&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://creativecommons.org/licenses/by/2.0/&quot; class=&quot;license&quot; title=&quot;Paternité&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;&lt;img src=&quot;http://aurelien.bompard.org/images/cc.png&quot; alt=&quot;Creative Commons&quot; /&gt;&lt;/a&gt;
&amp;#8220;&lt;a href=&quot;http://www.flickr.com/photos/babasteve/2249740073/&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;Bhutan: Prayer Bubbles&lt;/a&gt;&amp;#8221;
par &lt;a href=&quot;http://www.flickr.com/photos/babasteve/&quot; onclick=&quot;window.open(this.href);return false;&quot;&gt;babasteve&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Et c&amp;#8217;est là que je vais faire le pont (voire le viaduc) avec le bouddhisme. Pour le bouddhisme, l&amp;#8217;égo est une erreur d&amp;#8217;interprétation de la réalité&amp;#160;: l&amp;#8217;Homme aime la stabilité, donc il se construit mentalement une sorte de &amp;#8220;personne&amp;#8221; qu&amp;#8217;il considère comme ayant une existence propre, alors qu&amp;#8217;en fait il n&amp;#8217;en est rien&amp;#160;: nous ne sommes que l&amp;#8217;accumulation de nos expériences, de nos décisions, et de notre flux de conscience. Tout change, et tout est inter-dépendant.&lt;/p&gt;
&lt;p&gt;Selon le bouddhisme, ou du moins ce que j&amp;#8217;en ai compris, ce qu&amp;#8217;on appelle &amp;#8220;moi&amp;#8221; ou &amp;#8220;égo&amp;#8221; n&amp;#8217;a pas de réalité en soi, ce n&amp;#8217;est qu&amp;#8217;une convention. Quand on nomme un fleuve &amp;#8220;Amazone&amp;#8221; ou &amp;#8220;Gange&amp;#8221;, il s&amp;#8217;agit d&amp;#8217;une convention, il n&amp;#8217;y a rien de concret et de stable dans ce fleuve (même son lit varie en permanence). C&amp;#8217;est pour cela que le bouddhisme dit que l&amp;#8217;égo est une imposture qu&amp;#8217;il faut démasquer, une inadéquation avec la réalité.&lt;/p&gt;
&lt;p&gt;De la même façon que l&amp;#8217;informaticien cherchait à produire un document de spécification stable, fixe, en ignorant le fait qu&amp;#8217;au fur et à mesure de sa rédaction il divergeait de plus en plus de la réalité, nous nous sommes mis dans la tête qu&amp;#8217;il existe un &amp;#8220;moi&amp;#8221; ou un &amp;#8220;égo&amp;#8221; stable, fixe, et qui correspond à notre identité. Dans les deux cas, c&amp;#8217;est une dissonance avec la réalité qui cause beaucoup de souffrances&amp;#160;: l&amp;#8217;informaticien refuse ou proteste de manière véhémente quand on le force à reconnaître que les besoins du client ont changé et qu&amp;#8217;il faut modifier sa spécification, et l&amp;#8217;humain se sent vexé voire insulté quand on met en lumière l&amp;#8217;écart entre son égo et la réalité.&lt;/p&gt;
&lt;p&gt;Les méthodes agiles, comme le bouddhisme, proposent de reconnaître que le changement est inévitable et qu&amp;#8217;il vaut mieux savoir s&amp;#8217;y adapter, plutôt que de s&amp;#8217;accrocher à une stabilité éphémère et illusoire. C&amp;#8217;est un progrès dans ce que le bouddhisme appelle la connaissance, c&amp;#8217;est à dire tout simplement l&amp;#8217;adéquation avec la réalité. On peut aussi parler de maturité. À la différence bien sûr que le bouddhisme travaille sur quelque chose de beaucoup plus fondamental que la gestion de projet informatique&amp;#160;: l&amp;#8217;esprit humain.&lt;/p&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2011/06/25/Le-bouddhiste-serait-il-agile#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2011/06/25/Le-bouddhiste-serait-il-agile#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/133</wfw:commentRss>
      </item>
    
  <item>
    <title>Comment écrire du code testable</title>
    <link>http://aurelien.bompard.org/post/2011/04/03/Comment-%C3%A9crire-du-code-testable</link>
    <guid isPermaLink="false">urn:md5:9c54a4543e74429ee502e3123d91253b</guid>
    <pubDate>Sun, 03 Apr 2011 20:55:00 +0200</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Développement</category>
        <category>libre</category><category>long</category>    
    <description>&lt;p&gt;Je vous propose les diapositives d&amp;#8217;une présentation que j&amp;#8217;ai réalisée récemment, concernant les méthodes de développement permettant d&amp;#8217;écrire un code facilement testable.&lt;/p&gt;    &lt;p&gt;Il y a quelques semaines, j&amp;#8217;ai visionné &lt;a hreflang=&quot;en&quot; href=&quot;http://www.youtube.com/watch?v=XcT4yYu_TTs&quot;&gt;la présentation&lt;/a&gt; de &lt;a hreflang=&quot;en&quot; href=&quot;http://misko.hevery.com/&quot;&gt;Miško Hevery&lt;/a&gt; chez Google à ce sujet, et j&amp;#8217;ai tout de suite été conquis par sa clarté et son pragmatisme. Avec son accord, j&amp;#8217;ai entrepris de la traduire et de l&amp;#8217;adapter en français.&lt;/p&gt;
&lt;p&gt;Mon objectif était avant tout de garder une présentation généraliste (indépendante du langage de programmation, du framework ou du projet), et de pouvoir l&amp;#8217;utiliser dans le cadre de mon travail pour essayer de diffuser les bonnes habitudes de la testabilité auprès de mes collègues.&lt;/p&gt;
&lt;p&gt;J&amp;#8217;ai finalement eu l&amp;#8217;occasion de donner cette présentation sur mon lieu de travail, qui s&amp;#8217;est très bien passée, mais dont l&amp;#8217;enregistrement n&amp;#8217;est malheureusement pas diffusable. Quoi qu&amp;#8217;il en soit, j&amp;#8217;ai pu tester &amp;#8220;en conditions réelles&amp;#8221; la qualité des diapos et l&amp;#8217;importance des concepts présentés par &lt;a hreflang=&quot;en&quot; href=&quot;http://misko.hevery.com/&quot;&gt;Miško&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si le sujet vous intéresse, j&amp;#8217;attache à ce billet le fichier ODP&lt;sup&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2011/04/03/Comment-%C3%A9crire-du-code-testable#pnote-1&quot; id=&quot;rev-pnote-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;  de la présentation. Les points à aborder oralement sont dans la section &amp;#8220;notes&amp;#8221; de chaque diapo, pensez-donc à la lire. De plus, certaines diapos utilisent des animations, il est donc préférable de lire la présentation en mode &amp;#8220;diaporama&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Quand j&amp;#8217;ai demandé à Miško si je pouvais réutiliser ses diapos, &lt;a hreflang=&quot;en&quot; href=&quot;http://misko.hevery.com/presentations/#comment-6990&quot;&gt;il n&amp;#8217;a demandé&lt;/a&gt; qu&amp;#8217;une citation de son nom. Dans le même esprit, je place donc cette présentation sous licence &lt;a hreflang=&quot;fr&quot; href=&quot;http://creativecommons.org/licenses/by/2.0/fr/&quot;&gt;Creative Commons Attribution (BY)&lt;/a&gt;, c&amp;#8217;est à dire que vous pouvez la réutiliser comme bon vous semble à condition de citer le nom des auteurs (Miško et moi).&lt;/p&gt;
&lt;p&gt;Pour pouvoir comprendre et suivre cette présentation, il faut connaître au minimum les concepts suivants&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Programmation Orientée Objet&lt;/li&gt;
&lt;li&gt;Quelques &lt;em&gt;design patterns&lt;/em&gt; courants (&lt;em&gt;Factory&lt;/em&gt; et &lt;em&gt;Singleton&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Tests unitaires&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les sujets abordés au cours de la présentation sont&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Le développement piloté par les tests (ou &lt;em&gt;Test-driven development&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;L&amp;#8217;injection de dépendances&lt;/li&gt;
&lt;li&gt;La loi de Déméter&lt;/li&gt;
&lt;li&gt;La théorie des bugs (par Miško)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les exemples de codes utilisés dans la présentation sont en Python, parce que c&amp;#8217;est le langage que je maîtrise le mieux et celui avec lequel je travaille au quotidien, mais les concepts sont applicables à n&amp;#8217;importe quel autre langage. De plus, un des principaux exemples de code est disponible aussi en Java, pour ceux qui préfèrent.&lt;/p&gt;
&lt;p&gt;La présentation dure environ une heure. Si vous décidez de réutiliser ces diapos, vous n&amp;#8217;êtes évidemment pas obligés de m&amp;#8217;en faire part, mais j&amp;#8217;aimerais bien si possible avoir des retours pour les améliorer et intégrer les meilleures remarques.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&amp;#8220;&lt;a hreflang=&quot;fr&quot; href=&quot;http://aurelien.bompard.org/blog/public/testable/Ecrire_code_testable.odp&quot;&gt;Comment écrire du code testable&lt;/a&gt;&amp;#8221; au format ODP&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://aurelien.bompard.org/blog/public/testable/Ecrire_code_testable.svg&quot; onclick=&quot;window.open(this.href); return false;&quot;&gt;Une version lisible dans le navigateur web&lt;/a&gt; (nouvelle fenêtre), grâce à un procédé qui fera l&amp;#8217;objet d&amp;#8217;un prochain billet&amp;#8230; &lt;img src=&quot;/blog/themes/gauret/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J&amp;#8217;espère que ces diapos pourront vous aider à diffuser la &amp;#8220;bonne parole&amp;#8221; de la testabilité aussi largement que possible&amp;#160;!&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&amp;#160;:&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2011/04/03/Comment-%C3%A9crire-du-code-testable#rev-pnote-1&quot; id=&quot;pnote-1&quot;&gt;1&lt;/a&gt;] S&amp;#8217;ouvre avec &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.libreoffice.org/&quot;&gt;LibreOffice&lt;/a&gt; ou &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.openoffice.org/&quot;&gt;OpenOffice&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2011/04/03/Comment-%C3%A9crire-du-code-testable#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2011/04/03/Comment-%C3%A9crire-du-code-testable#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/132</wfw:commentRss>
      </item>
    
  <item>
    <title>Le plus gros pollueur de la planète</title>
    <link>http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te</link>
    <guid isPermaLink="false">urn:md5:84bad9ddba6c559476d7ab1382759437</guid>
    <pubDate>Tue, 21 Dec 2010 12:00:00 +0100</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Écologie et société</category>
            
    <description>    &lt;p&gt;On dit un peu partout que la Chine a très récemment dépassé les États Unis sur le podium des pays les plus émetteurs de gaz à effet de serre, et a donc décroché la triste première place. Je voudrais faire part d&amp;#8217;un commentaire que j&amp;#8217;ai entendu récemment de la part d&amp;#8217;un économiste&lt;sup&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#pnote-1&quot; id=&quot;rev-pnote-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;, et que je trouve très intéressant.&lt;/p&gt;
&lt;p&gt;On sait tous que la Chine est devenue «&amp;#160;l&amp;#8217;usine du monde&amp;#160;», c&amp;#8217;est là qu&amp;#8217;est concentrée la production manufacturière de la planète (ainsi que dans quelques pays voisins). Donc voilà&amp;#160;: si moi, européen, je décide de m&amp;#8217;acheter un ordinateur portable dernier cri qui sera fabriqué en Chine, à quel pays doit-on imputer les émissions associées&amp;#160;? Actuellement, elles seront imputées à la Chine, mais est-ce juste&amp;#160;?&lt;/p&gt;
&lt;p&gt;De mon point de vue, puisque c&amp;#8217;est moi qui ai commandé le produit, je porte la responsabilité des émissions liées à sa fabrication. On va bien sûr me rétorquer que les moyens de production choisis par la Chine (électricité au charbon, quasi-absence de normes anti-pollution, rejets toxiques etc.) ne sont pas sous mon contrôle, et que je n&amp;#8217;y peux donc rien. Mais selon moi c&amp;#8217;est faux&amp;#160;: je peux influer sur la façon dont la Chine produit les marchandises, tout simplement en achetant ailleurs&amp;#160;! En faisant jouer le «&amp;#160;marché&amp;#160;» finalement. Si j&amp;#8217;achète un produit fait par exemple en Suisse, en Norvège ou &amp;#8212; horreur&amp;#160;! &amp;#8212; en France, je sais que l&amp;#8217;énergie électrique est assez peu émettrice de CO2, que les normes environnementales existent et sont appliquées, sans même parler des émissions liées au transport&lt;sup&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#pnote-2&quot; id=&quot;rev-pnote-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Si on considère donc que c&amp;#8217;est celui qui commande le produit qui est responsable de ses émissions, les États Unis sont encore loin devant la Chine, et nous, l&amp;#8217;Europe, ne sommes pas mal placés non plus dans cette course vers le mur.&lt;/p&gt;
&lt;p&gt;Je n&amp;#8217;ai pourtant pas d&amp;#8217;affinité particulière avec la Chine&lt;sup&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#pnote-3&quot; id=&quot;rev-pnote-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;, mais il faut reconnaître que cette fois on les accuse à tort, et qu&amp;#8217;il faudrait commencer par balayer devant notre porte.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&amp;#160;:&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#rev-pnote-1&quot; id=&quot;pnote-1&quot;&gt;1&lt;/a&gt;] dont je ne retrouve plus le nom malheureusement, honte à moi&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#rev-pnote-2&quot; id=&quot;pnote-2&quot;&gt;2&lt;/a&gt;] et quelques autres &amp;#8220;détails&amp;#8221; comme&amp;#160;: un salaire minimum pour les employés, une sécurité sociale, des horaires décents, quelques congés de temps en temps, &amp;#8230; mais ce n&amp;#8217;est pas le sujet ici, aussi vaste et important soit-il&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#rev-pnote-3&quot; id=&quot;pnote-3&quot;&gt;3&lt;/a&gt;] Tibet, droits de l&amp;#8217;Homme, démocratie, environnement, etc&amp;#8230; la liste est longue &lt;/p&gt;
&lt;/div&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2010/12/21/Le-plus-gros-pollueur-de-la-plan%C3%A8te#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/131</wfw:commentRss>
      </item>
    
  <item>
    <title>Égollum</title>
    <link>http://aurelien.bompard.org/post/2010/12/11/%C3%89gollum</link>
    <guid isPermaLink="false">urn:md5:27eebd9e2875536f1caa1da8a318d194</guid>
    <pubDate>Sun, 12 Dec 2010 09:00:00 +0100</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Pensées diverses</category>
        <category>bouddhisme</category>    
    <description>    &lt;p&gt;Je &lt;a href=&quot;http://aurelien.bompard.org/post/2009/08/18/J.K.-Rowling%2C-une-experte-de-la-philosophie-bouddhiste&quot;&gt;continue&lt;/a&gt; dans ma série des comparaisons anachroniques entre les idées bouddhistes et la culture contemporaine. C&amp;#8217;est idiot mais je trouve ça marrant &lt;img src=&quot;/blog/themes/gauret/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;En y réfléchissant, il me semble que l&amp;#8217;égo est à la conscience ce que &lt;a hreflang=&quot;fr&quot; href=&quot;http://fr.wikipedia.org/wiki/Gollum&quot;&gt;Gollum&lt;/a&gt; est à Sméagol (dans Le Seigneur des Anneaux bien sûr)&amp;#160;: on est tentés de faire appel à lui pour passer des caps difficiles, attirés par le sentiment de sécurité et de puissance qu&amp;#8217;il apporte, sans se rendre compte que le remède est pire que le mal.&lt;/p&gt;

&lt;p&gt;
&lt;video controls=&quot;controls&quot; style=&quot;width: 400px; height: 255px; display: block; margin: 0 auto;&quot;&gt;
&lt;source type=&quot;video/h264&quot; src=&quot;http://aurelien.bompard.org/blog/public/gollum.mp4&quot;/&gt;
&lt;source type=&quot;video/ogg&quot; src=&quot;http://aurelien.bompard.org/blog/public/gollum.ogv&quot;/&gt;
&lt;script src=&quot;http://aurelien.bompard.org/blog/public/flowplayer/flowplayer-3.2.4.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;a href=&quot;http://aurelien.bompard.org/blog/public/gollum.mp4&quot;
   style=&quot;display:block;width:400px;height:208px;margin:0 auto;&quot;
   id=&quot;player&quot;&gt;
&lt;/a&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flowplayer(&quot;player&quot;, &quot;/blog/public/flowplayer/flowplayer-3.2.5.swf&quot;, {
clip: {
autoPlay: false,
autoBuffering: true
}
});
&lt;/script&gt;
&lt;/video&gt;
&lt;/p&gt;

&lt;p&gt;Il me semble essentiel de bien distinguer la confiance en soi (en ses capacités en tant qu&amp;#8217;être humain), et la croyance en l&amp;#8217;égo, qui apparaît plus stable, plus facile et plus rassurant, mais qui est en fait bien plus fragile lorsqu&amp;#8217;il est mis à l&amp;#8217;épreuve de la réalité.&lt;/p&gt;
&lt;p&gt;Gollum n&amp;#8217;a jamais réussi à s&amp;#8217;en libérer. Le pourrons-nous&amp;#160;?&lt;/p&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2010/12/11/%C3%89gollum#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2010/12/11/%C3%89gollum#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/130</wfw:commentRss>
      </item>
    
  <item>
    <title>Si j'étais président de l'Europe</title>
    <link>http://aurelien.bompard.org/post/2010/12/05/Si-j-%C3%A9tais-pr%C3%A9sident</link>
    <guid isPermaLink="false">urn:md5:a2ece5085af5a27e0bc529e6839c82e8</guid>
    <pubDate>Sun, 05 Dec 2010 15:36:00 +0100</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Écologie et société</category>
            
    <description>    &lt;p&gt;Je suis tombé sur &lt;a hreflang=&quot;en&quot; href=&quot;http://www.bbc.co.uk/sn/hottopics/climatechange/climate_challenge/index_1.shtml&quot;&gt;un petit jeu&lt;/a&gt; en Flash par la BBC qui propose de se mettre dans la peau du président de l&amp;#8217;Europe entre 1990 et 2100. L&amp;#8217;objectif étant d&amp;#8217;éviter le changement climatique tout en gardant un continent prospère et en restant populaire.&lt;/p&gt;
&lt;p&gt;Chaque tour dure 10 ans, et on choisit les politiques à mener dans 5 secteurs principaux. Chaque politique influence les ressources financières, l&amp;#8217;énergie, la nourriture, l&amp;#8217;eau et le rejet de gaz à effet de serre. Il y a aussi des négociations internationales pour décider les autres pays à prendre des engagements sur le climat.&lt;/p&gt;
&lt;p&gt;Bref, un petit jeu sans prétentions mais assez rigolo, que je vous encourage &lt;a hreflang=&quot;en&quot; href=&quot;http://www.bbc.co.uk/sn/hottopics/climatechange/climate_challenge/index_1.shtml&quot;&gt;à essayer&lt;/a&gt;. Mes scores&amp;#160;: 96% en écologie, 27% en économie, et 50% en popularité (au bout du 3ème essai quand même &lt;img src=&quot;/blog/themes/gauret/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; ).&lt;/p&gt;
&lt;p&gt;Merci à &lt;a hreflang=&quot;fr&quot; href=&quot;http://cedric.ringenbach.com/2010/12/10/climate-challenge-un-jeu-interactif-sur-le-climat/trackback/&quot;&gt;Cédric&lt;/a&gt; pour le lien. Dans le même esprit&amp;#160;: &lt;a hreflang=&quot;fr&quot; href=&quot;http://climcity.cap-sciences.net/&quot;&gt;Clim City&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2010/12/05/Si-j-%C3%A9tais-pr%C3%A9sident#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2010/12/05/Si-j-%C3%A9tais-pr%C3%A9sident#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/129</wfw:commentRss>
      </item>
    
  <item>
    <title>De l'action sur le front de la conversion ODT</title>
    <link>http://aurelien.bompard.org/post/2010/08/13/De-l-action-sur-le-front-de-la-conversion-ODT</link>
    <guid isPermaLink="false">urn:md5:83b0f26c2184d3f585afa58d1969d438</guid>
    <pubDate>Fri, 13 Aug 2010 21:34:00 +0200</pubDate>
    <dc:creator>Aurélien</dc:creator>
        <category>Développement</category>
        <category>dotclear</category><category>libre</category><category>long</category><category>odf</category>    
    <description>&lt;p&gt;L&amp;#8217;été s&amp;#8217;est révélé très fructueux pour mes différents projets logiciels autour du format ODT. Voici un petit tour d&amp;#8217;horizon des dernières nouveautés.&lt;/p&gt;    &lt;h3&gt;Dokuwiki&lt;/h3&gt;
&lt;p&gt;J&amp;#8217;ai publié une nouvelle version de &lt;a hreflang=&quot;en&quot; href=&quot;http://www.dokuwiki.org/plugin:odt&quot;&gt;mon plugin d&amp;#8217;export ODT pour Dokuwiki&lt;/a&gt;. Le changement principal est la prise en compte de la coloration syntaxique fournie par Dokuwiki. Vous pouvez voir un exemple de ce que ça donne sur &lt;a hreflang=&quot;fr&quot; href=&quot;http://aurelien.bompard.org/wiki/playground/syntaxhighlighting&quot;&gt;cette page de mon wiki&lt;/a&gt;. Les couleurs du wiki et celles du document ODT ne sont pas exactement les mêmes, c&amp;#8217;est normal&amp;#160;: &lt;/p&gt;
&lt;p&gt;C&amp;#8217;est une fonctionnalité qu&amp;#8217;on m&amp;#8217;avait déjà demandé par le passé, et il s&amp;#8217;est avéré que ce n&amp;#8217;était pas si compliqué que ça à réaliser, principalement grâce au fait que la syntaxe CSS et la syntaxe des styles dans ODT XML sont très similaires. Ça c&amp;#8217;est un format bien conçu, chapeau.&lt;/p&gt;
&lt;p&gt;La nouvelle version du plugin est disponible en téléchargement depuis &lt;a hreflang=&quot;en&quot; href=&quot;http://www.dokuwiki.org/plugin:odt&quot;&gt;la page officielle du plugin&lt;/a&gt; ou &lt;a hreflang=&quot;en&quot; href=&quot;http://aurelien.bompard.org/projects/files/dokuwiki-odt/&quot;&gt;directement chez moi&lt;/a&gt;. Vérifiez la signature GPG si vous le voulez/pouvez.&lt;/p&gt;
&lt;h3&gt;XHTML2ODT&lt;/h3&gt;
&lt;p&gt;Mon projet principal autour du format ODT est clairement &lt;a hreflang=&quot;fr&quot; href=&quot;http://xhtml2odt.org/wiki/WikiStart/fr&quot;&gt;XHTML2ODT&lt;/a&gt;, le convertisseur XHTML vers ODT (comme son nom l&amp;#8217;indique &lt;img src=&quot;/blog/themes/gauret/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; ). Au début de la semaine, j&amp;#8217;ai publié la version 1.0, ce qui est toujours une étape importante dans un projet logiciel. Le code qui la constitue a servi de fondation à deux plugins d&amp;#8217;export depuis plusieurs mois maintenant, et est très largement couvert par plus d&amp;#8217;une centaine de tests unitaires.&lt;/p&gt;
&lt;p&gt;J&amp;#8217;ai profité des jours suivants dans la semaine pour avancer le développement du projet sur certaines fonctionnalités qui semblaient intéressantes. Dans la même veine que pour le plugin Dokuwiki, j&amp;#8217;ai ajouté la prise en compte de la coloration syntaxique fournie par deux moteurs&amp;#160;: &lt;a hreflang=&quot;en&quot; href=&quot;http://pygments.org/&quot;&gt;Pygments&lt;/a&gt; (en Python) et &lt;a hreflang=&quot;en&quot; href=&quot;http://qbnz.com/highlighter/&quot;&gt;GeSHi&lt;/a&gt; (en PHP). Tout n&amp;#8217;est pas encore parfaitement géré, mais le fonctionnement de la coloration syntaxique pour GeSHi ouvre peut-être la voie à une gestion plus large des styles CSS inclus directement dans le code HTML, par le biais de la balise &amp;lt;style&amp;gt; (c&amp;#8217;est ainsi que GeSHi procède).&lt;/p&gt;
&lt;p&gt;Enfin, GeSHi a aussi une fonctionnalité amusante&amp;#160;: il peut numéroter les lignes du code. Cette fonctionnalité est aussi prise en compte et conservée lors de la conversion en ODT.&lt;/p&gt;
&lt;p&gt;Tout ce nouveau code a été publié dans la version 1.1 de &lt;a hreflang=&quot;fr&quot; href=&quot;http://xhtml2odt.org/wiki/WikiStart/fr/&quot;&gt;XHTML2ODT&lt;/a&gt;, que vous pourrez trouver sur &lt;a hreflang=&quot;en&quot; href=&quot;http://xhtml2odt.org/dl/&quot;&gt;la page de téléchargement&lt;/a&gt;. Au passage, j&amp;#8217;en ai profité pour corriger un petit bug dans la conversion des espaces en mode préformaté, et pour ajouter un petit script de conversion en bash. Le but n&amp;#8217;est pas de l&amp;#8217;amener au même niveau de fonctionnalités que ses cousins Python et PHP, mais de montrer simplement comment mettre en œuvre les feuilles XSL.&lt;/p&gt;
&lt;p&gt;Enfin, autre changement non technique mais non moins important&amp;#160;: la licence s&amp;#8217;est assouplie. J&amp;#8217;ai passé le code de GPL v2 ou plus à &lt;a hreflang=&quot;fr&quot; href=&quot;http://org.rodage.com/lgpl.fr.html&quot;&gt;LGPL v2 ou plus&lt;/a&gt;. Concrètement, cela signifie que si vous insérer le code dans une autre application, et que vous la distribuez, vous n&amp;#8217;avez plus besoin de mettre votre application sous GPL. La seule contrainte restante est de publier les changements que vous avez fait sur le code XHTML2ODT lui-même, si vous en avez fait. C&amp;#8217;est tout, rien d&amp;#8217;autre.&lt;/p&gt;
&lt;p&gt;Dernière petite nouvelle, j&amp;#8217;ai écrit un article de quatre pages pour le magazine (papier&amp;#160;!) &lt;a hreflang=&quot;fr&quot; href=&quot;http://programmez.com/&quot;&gt;Programmez!&lt;/a&gt; au sujet d&amp;#8217;XHTML2ODT, il devrait sortir à la rentrée. Je vous tiendrai au courant, ça va de soi &lt;img src=&quot;/blog/themes/gauret/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Export ODT pour Trac&lt;/h3&gt;
&lt;p&gt;
J&amp;#8217;ai publié une nouvelle version du &lt;a hreflang=&quot;en&quot; href=&quot;http://trac-hacks.org/wiki/OdtExportPlugin&quot;&gt;plugin d&amp;#8217;export Trac&lt;/a&gt;, pour profiter des évolutions de la bibliothèque principale en ce qui concerne la coloration syntaxique. Vous pouvez voir le résultat en vous rendant sur la page &lt;a hreflang=&quot;en&quot; href=&quot;http://xhtml2odt.org/wiki/WikiProcessors&quot;&gt;WikiProcessing&lt;/a&gt; (fournie par défaut dans Trac) et en cliquant tout en bas sur le lien &amp;#8220;OpenDocument&amp;#8221;. Ou plus directement, en &lt;a hreflang=&quot;en&quot; href=&quot;http://xhtml2odt.org/wiki/WikiProcessors?format=odt&quot;&gt;cliquant ici&lt;/a&gt;. Tada&amp;#160;! Le petit bout de code en C au milieu de la page est colorisé.&lt;/p&gt;
&lt;p&gt;Dans cette nouvelle version, j&amp;#8217;ai aussi tiré parti du système d&amp;#8217;ajout de styles proposé maintenant directement dans XHTML2ODT, ce qui simplifie grandement le plugin. Si vous voulez faire un plugin d&amp;#8217;export ODT pour une appli en Python, le plugin Trac peut être une bonne source d&amp;#8217;inspiration.&lt;/p&gt;
&lt;h3&gt;Export ODT pour Dotclear&lt;/h3&gt;
&lt;p&gt;Là aussi, j&amp;#8217;ai publié une nouvelle version du &lt;a hreflang=&quot;fr&quot; href=&quot;http://plugins.dotaddict.org/dc2/details/odt&quot;&gt;plugin d&amp;#8217;export Dotclear&lt;/a&gt; pour profiter des avancées de la bibliothèque. Dotclear ne fait pas de coloration syntaxique par défaut, mais il existe un plugin pour cela, qui s&amp;#8217;appelle &lt;a hreflang=&quot;fr&quot; href=&quot;http://plugins.dotaddict.org/dc2/details/syntaxehl&quot;&gt;syntaxehl&lt;/a&gt;, et qui utilise GeSHi en dessous. Le plugin peut fonctionner avec ou sans numérotation des lignes, les deux modes sont traduits en ODT.&lt;/p&gt;
&lt;p&gt;Pour que ce soit plus parlant, voici un exemple de ce qui est produit par le plugin SyntaxeHL&amp;#160;:&lt;/p&gt;

&lt;pre class=&quot;php php&quot; style=&quot;font-family:inherit&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;/* Commentaire */&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; syntaxeHl
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; static &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; registerFunc&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$wiki2xhtml&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;

    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   
        &lt;span style=&quot;color: #000088;&quot;&gt;$dir&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;dirname&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900; font-weight: bold;&quot;&gt;__FILE__&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'/geshi/geshi/'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #000088;&quot;&gt;$od&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;opendir&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;

        &lt;span style=&quot;color: #b1b100;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;readdir&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$od&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   
            &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;is_file&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;substr&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,-&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'.php'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;

            &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   
                &lt;span style=&quot;color: #000088;&quot;&gt;$lang&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;str_replace&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'.php'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
                &lt;span style=&quot;color: #000088;&quot;&gt;$wiki2xhtml&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;registerFunction&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'macro:['&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$lang&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;']'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'syntaxeHl'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'parse'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;

            &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; static &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; parse&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;

    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   
        &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;global&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$core&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #000088;&quot;&gt;$settings&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$core&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;blog&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;settings&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;syntaxehl&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;

&amp;nbsp;
        &lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;trim&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;preg_replace&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;/^(\[(.*)\]$)/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #006699; font-weight: bold;&quot;&gt;$2&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;

        &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; GeSHi&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$settings&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'syntaxehl_enable_klink'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;enable_keyword_links&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;

        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$settings&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'syntaxehl_enable_linenum'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;enable_line_numbers&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;GESHI_NORMAL_LINE_NUMBERS&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;//if($settings-&amp;gt;get('syntaxehl_enable_css_classes')) $geshi-&amp;gt;enable_classes();&lt;/span&gt;

        &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;enable_classes&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;



&lt;p&gt;Et maintenant, avec la numérotation des lignes&amp;#160;:&lt;/p&gt;


&lt;pre class=&quot;php php&quot; style=&quot;font-family:inherit&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;/* Commentaire */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; syntaxeHl&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; static &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; registerFunc&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$wiki2xhtml&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000088;&quot;&gt;$dir&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;dirname&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900; font-weight: bold;&quot;&gt;__FILE__&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'/geshi/geshi/'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000088;&quot;&gt;$od&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;opendir&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;readdir&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$od&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;            &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;is_file&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;substr&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,-&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'.php'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;            &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;                &lt;span style=&quot;color: #000088;&quot;&gt;$lang&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;str_replace&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'.php'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$f&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;                &lt;span style=&quot;color: #000088;&quot;&gt;$wiki2xhtml&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;registerFunction&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'macro:['&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$lang&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;']'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'syntaxeHl'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'parse'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;            &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; static &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; parse&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;   &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;global&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$core&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000088;&quot;&gt;$settings&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$core&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;blog&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;settings&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;syntaxehl&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;trim&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;preg_replace&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;/^(\[(.*)\]$)/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #006699; font-weight: bold;&quot;&gt;$2&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; GeSHi&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$args&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$settings&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'syntaxehl_enable_klink'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;enable_keyword_links&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$settings&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'syntaxehl_enable_linenum'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;enable_line_numbers&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;GESHI_NORMAL_LINE_NUMBERS&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;//if($settings-&amp;gt;get('syntaxehl_enable_css_classes')) $geshi-&amp;gt;enable_classes();&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;        &lt;span style=&quot;color: #000088;&quot;&gt;$geshi&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;enable_classes&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;



&lt;p&gt;Pour voir ce que cela donne en ODT, il vous suffit d&amp;#8217;exporter ce billet de blog (le bouton est en haut à droite). Sympathique, non&amp;#160;?&lt;/p&gt;
&lt;p&gt;Enfin, comme pour le plugin Trac, j&amp;#8217;en ai profité pour déléguer l&amp;#8217;ajout des styles à XHTML2ODT lui-même, ce qui simplifie grandement le code. Si vous cherchez à faire un plugin d&amp;#8217;export ODT en PHP, le plugin d&amp;#8217;export Dotclear est un bon candidat pour chercher l&amp;#8217;inspiration.&lt;/p&gt;
&lt;p&gt;Vous pouvez télécharger et installer le plugin depuis &lt;a hreflang=&quot;fr&quot; href=&quot;http://plugins.dotaddict.org/dc2/details/odt&quot;&gt;sa page sur DotAddict&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Flattr&lt;/h3&gt;
&lt;p&gt;Ça fait plusieurs semaines que j&amp;#8217;entends parler de &lt;a hreflang=&quot;en&quot; href=&quot;http://flattr.com/&quot;&gt;Flattr&lt;/a&gt;, ce nouveau service qui veut révolutionner le micro-paiement. Tuxicoman y a même consacré &lt;a hreflang=&quot;fr&quot; href=&quot;http://tuxicoman.jesuislibre.net/2010/08/flattr-la-solution-au-micropaiement.html&quot;&gt;un article&lt;/a&gt; assez élogieux. En deux mots, la différence par rapport à PayPal, c&amp;#8217;est qu&amp;#8217;on affecte avant toute chose un &amp;#8220;budget&amp;#8221;, c&amp;#8217;est à dire une somme fixe d&amp;#8217;argent, qui sera distribuée entre les différentes choses pour lesquelles vous aurez cliqué sur le bouton &amp;#8220;Flattr&amp;#8221;. Son concernés bien évidemment les logiciels (libres ou pas), mais aussi la musique, les vidéos, les écrits, et autres.&lt;/p&gt;
&lt;p&gt;À la fin du mois, votre budget mensuel est donc réparti, et si vous n&amp;#8217;avez cliqué sur rien il est distribué à des organisation caritatives. Le budget minimum est de deux euros, c&amp;#8217;est donc pas la mort. Si vous ne remplissez plus votre compte, il est désactivé temporairement bien sûr.&lt;/p&gt;
&lt;p&gt;Le fait d&amp;#8217;affecter un budget mensuel fixe, qui partira de toute façon, est à mon avis ce qui fait toute la différence. J&amp;#8217;ai décider de &lt;a hreflang=&quot;en&quot; href=&quot;https://flattr.com/profile/abompard&quot;&gt;me créer un compte&lt;/a&gt; pour voir ce que ça donne à l&amp;#8217;usage, et pour soutenir les projets qui me plaisent. Bien sûr, j&amp;#8217;en ai profité pour enregistrer les projets dont je suis l&amp;#8217;auteur, mais que ce soit clair&amp;#160;: je ne m&amp;#8217;attends pas à rouler sur l&amp;#8217;or du jour au lendemain &lt;img src=&quot;/blog/themes/gauret/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt; Toutefois, si mes quelques bouts de code vous plaisent et que vous avez un compte sur Flattr, vous trouverez tous les liens &lt;a hreflang=&quot;en&quot; href=&quot;https://flattr.com/profile/abompard&quot;&gt;sur mon profil&lt;/a&gt;. Les projets de conversion ODT ci-dessus sont normalement tous enregistrés.&lt;/p&gt;
&lt;h3&gt;À vous les studios&lt;/h3&gt;
Voilà pour le flash nouveautés concernant mes projets de conversion ODT, j&amp;#8217;espère que ces nouvelles versions vous plairont. N&amp;#8217;hésitez pas à remonter les bugs sur les trackers associés, que vous pourrez trouve à partir de &lt;a hreflang=&quot;en&quot; href=&quot;http://aurelien.bompard.org/projects/&quot;&gt;ma page d&amp;#8217;index&lt;/a&gt;.&lt;br /&gt;
&lt;p&gt;Bon, OK, certaines personnes pourraient objecter qu&amp;#8217;il y aurait de meilleures façons de passer ses vacances.&lt;/p&gt;</description>
    
    
    
          <comments>http://aurelien.bompard.org/post/2010/08/13/De-l-action-sur-le-front-de-la-conversion-ODT#comment-form</comments>
      <wfw:comment>http://aurelien.bompard.org/post/2010/08/13/De-l-action-sur-le-front-de-la-conversion-ODT#comment-form</wfw:comment>
      <wfw:commentRss>http://aurelien.bompard.org/feed/atom/comments/128</wfw:commentRss>
      </item>
    
</channel>
</rss>
