<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://letshaveadream.info/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/">
<channel>
  <title>Let's have a dream</title>
  <link>http://letshaveadream.info/</link>
  <description>Vincent Demeester personal weblog.</description>
  <language>en</language>
  <pubDate>Thu, 24 Jul 2008 16:07:56 +0200</pubDate>
  <copyright>Vincent Demeester &quot;work&quot;, licensed under a Creative Commons Attribution-Share Alike 2.0 France License.</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Plouf !</title>
    <link>http://letshaveadream.info/post/2008/07/18/Plouf</link>
    <guid isPermaLink="false">urn:md5:96e73064afe7cb1b2a2be80836bc97d2</guid>
    <pubDate>Fri, 18 Jul 2008 11:42:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Quotidien</category>
        <category>letshaveadream</category>    
    <description>    &lt;p&gt;&lt;em&gt;Devant la richesse des derniers titres de mon blog, je dois faire palir d'envie (ou pas).&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Le manque de billets et de nouvelles de moi s'explique assez facilement :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;J'ai déménager très récemment (un petit mois) et je n'ai toujours pas internet. Je m'en passe plutôt bien, ça fait en quelques sorte des vacances d'internet.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li&gt;J'ai eu quelques coups de sous-motivation et je suis de temps en temps &lt;em&gt;overbooké&lt;/em&gt; au boulot.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li&gt;J'attends avec impatience la version 1.0 de &lt;a href=&quot;http://djangoproject.com&quot; hreflang=&quot;en&quot;&gt;Django&lt;/a&gt; pour passer définitivement sur ce framework mes sites web et faire quelques chose de propre sur du stable.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sinon, cela fait bientôt 2 ou 3 mois que j'ai un Mac Mini, et donc &lt;strong&gt;Apple OS X&lt;/strong&gt;. C'est beau, c'est propre, c'est puissant et c'est un UNIX ! C'est le discours du geek débutant sur Os X, et c'était le mien pendant le premier mois. Depuis ça a changé. J'aime bien Mac Os X, mais je n'en ferais pas mon système d'exploitation principale, je reviendrais dessus, mais c'est trop fermé, ça prends autant les bons que les mauvais coté d'un UNIX avec certain mauvais côté similaire à Windows (fs non case sensitive, etc..). Donc définitivement, FreeBSD et quelques distributions linux (openSUSE, debian, gentoo, voire ubuntu) ont un bel avenir dans mon parc informatique :D&lt;/p&gt;


&lt;p&gt;&lt;em&gt;@coco : l'asile, ils veulent pas de moi ;)&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/07/18/Plouf#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/07/18/Plouf#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/23</wfw:commentRss>
      </item>
    
  <item>
    <title>Oups I did it again.</title>
    <link>http://letshaveadream.info/post/2008/07/08/Oups-I-did-it-again</link>
    <guid isPermaLink="false">urn:md5:fd38af1b6db3ce4176f064abef4c4fab</guid>
    <pubDate>Tue, 08 Jul 2008 09:08:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Quotidien</category>
            
    <description>    &lt;p&gt;&lt;strong&gt;---&lt;/strong&gt;&lt;br /&gt;
oO&quot;&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Vous avez probablement deviné.&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Vivement la version 1.0 de Django.&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/07/08/Oups-I-did-it-again#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/07/08/Oups-I-did-it-again#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/22</wfw:commentRss>
      </item>
    
  <item>
    <title>Switcher je suis, Logiciels OS X indispensables</title>
    <link>http://letshaveadream.info/post/2008/05/25/Switcher-je-suis-Logiciels-OS-X-indispensables</link>
    <guid isPermaLink="false">urn:md5:cc1be0041b6fd7d0fdd2c275dadd66b4</guid>
    <pubDate>Sun, 25 May 2008 17:29:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
        <category>apple</category><category>mac</category><category>mini</category><category>osx</category><category>unix</category>    
    <description>    &lt;p&gt;Ce n'est pas la fin du monde, et aucun pan du continium espace temps ne s'est effondré. Mais je suis désormais sous &lt;strong&gt;Mac OS X&lt;/strong&gt;, comment quoi, tout est toujours possible. Cela fait 5 jours maintenant que j'ai un ordinateur frappé de la &lt;a href=&quot;http://www.apple.com/fr&quot; hreflang=&quot;fr&quot;&gt;Pomme&lt;/a&gt;, et je ne suis pas déçu, bien au contraire.&lt;/p&gt;


&lt;h2&gt;Hardware&lt;/h2&gt;

&lt;p&gt;Le mac mini est une belle bette. Très simple visuellement, ça fait pas trop de lumière, y a juste les connecteur qu'il faut. Dans la babbasse c'est plutôt bien aussi puisque c'est &quot;de loin&quot; les meilleures performances que j'ai depuis longtemps (je me traine des PCs vieux de 7 et 3 ans). Au niveau connecteurs, c'est presque juste, mais avec un hub usb (et un disque dur usb qui fait également hub usb) tout va bien.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://farm4.static.flickr.com/3021/2511894378_a1c1f33ecd_b.jpg&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3021/2511894378_a1c1f33ecd.jpg&quot; alt=&quot;mac mini&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;Mac OS X&lt;/h2&gt;

&lt;p&gt;Je ne vais pas détailler ce que j'aime et/ou pas dans le système d'exploitation de la pomme. Mais ma première impression peut se résumer en&amp;nbsp;: &lt;strong&gt;homogène&lt;/strong&gt;, &lt;strong&gt;beau&lt;/strong&gt; et bénéficiant de la &lt;strong&gt;puissance&lt;/strong&gt; des &lt;strong&gt;Unix&lt;/strong&gt;. En gros, c'est assez proche du système d'exploitation dont je rêve. Les logiciels installé par défaut sont surtout très bien intégré. Tout est assez simple à prendre en main. Je pense que la courbe d'apprentissage est assez linéaire.&lt;/p&gt;


&lt;p&gt;Enfin, la &lt;em&gt;surprise&lt;/em&gt; du chef, les raccourcis clavier Emacs (CTRL+A, etc..) marche dans toutes les applications.. J'aime&amp;nbsp;!&lt;/p&gt;


&lt;h2&gt;Software&lt;/h2&gt;

&lt;p&gt;C'est l'objet de ce billet.. Après 5 jours, voilà la liste des logiciels que j'utilise souvent, ou que je trouve nécessaire&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AppCleaner&lt;/strong&gt;&amp;nbsp;: nettoyer les applications qu'on a installé pour tester.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TextMate&lt;/strong&gt;&amp;nbsp;: l'éditeur de texte de référence sous Mac OS X.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emacs&lt;/strong&gt;&amp;nbsp;: parce que je ne change pas tant que ça.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adium&lt;/strong&gt;&amp;nbsp;: le pidgin d'OS X.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Colloquy&lt;/strong&gt;&amp;nbsp;: client IRC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Burn&lt;/strong&gt;&amp;nbsp;: graver en toute simplicité&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CyberDuck&lt;/strong&gt;&amp;nbsp;: client ftp, sftp, webdav, amazon S3..&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logiciel MacUpdate&lt;/strong&gt;&amp;nbsp;: pour trouver les mise à jour&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Max&lt;/strong&gt;&amp;nbsp;: pour convertir des fichiers audio.. Je m'en sers pour mettre mes ficher FLAC dans un conteneur Ogg pour qu'iTunes les lise (grace à XiphQT).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NeoOffice&lt;/strong&gt; et/ou &lt;strong&gt;openOffice&lt;/strong&gt; 2/3&amp;nbsp;: pour la suite office (openOffice 3 n'a pas besoin de X11, mais c'est une beta)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iWork&lt;/strong&gt;&amp;nbsp;: parce que KeyNote est indispensable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MPlayer&lt;/strong&gt;&amp;nbsp;: version OSX (et une compilée à la mano aussi), parce que QuickTime sux&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QuickSilver&lt;/strong&gt;&amp;nbsp;: parce que c'est le meilleur des launcher&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sshfs&lt;/strong&gt; et &lt;strong&gt;macfuse&lt;/strong&gt;&amp;nbsp;: pour pouvoir monter des disque via ssh.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;unrarX&lt;/strong&gt;&amp;nbsp;: pour pouvoir ouvrir des rar.. pratique.. (ou juste unrar).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TImeMachineScheduler&lt;/strong&gt;&amp;nbsp;: pour pouvoir customizer un peu TimeMachine (qui fait des sauvegardes trop rapporchées à mon gout)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MacTex&lt;/strong&gt;&amp;nbsp;: texlive 2007 sous mac.. Parce que moi, j'aime LaTeX :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ScreenFlick&lt;/strong&gt;&amp;nbsp;: pour les screencasts.. mais j'ai pas de sous.. :'(&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transmission&lt;/strong&gt;&amp;nbsp;: client torrent simple, gratuit et efficace&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Growl&lt;/strong&gt;&amp;nbsp;: pour les notifications toute mini.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Java SE 6&lt;/strong&gt;&amp;nbsp;: la mise à jour bien venue d'Apple pour avoir le SDK de java en version 1.6&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XCode&lt;/strong&gt;&amp;nbsp;: parce que.. je sais pas, pour le tester.. :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wrap&lt;/strong&gt;&amp;nbsp;: pour pouvoir se déplacer de &quot;Space&quot; en &quot;Space&quot; avec la souris.. (et donc surtout de déplacer les fenêtre sur d'autres Space).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;extfsX&lt;/strong&gt;&amp;nbsp;: pour pouvoir monter (en read-only) des disques dur formatter dans le système de fichier de Linux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NewsFire&lt;/strong&gt;&amp;nbsp;: lecteur RSS/Atom pratique et simple.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et j'ai gardé le meilleur pour la fin&amp;nbsp;: &lt;strong&gt;MacPort&lt;/strong&gt;.. Parce que ça permet d'avoir un système de port à la FreeBSD (basiquement le même mais un peu adapté), et donc disposé de tous plein de logiciels open source facilement, en les compilant.&lt;/p&gt;


&lt;p&gt;J'en ai forcément oublié, et puis je me suis pas relu et j'ai pas envie.. J'ai pas mis les liens, puisque qu'un petit google dessus, ça marche très bien. C'est un billet fait très très vite fait. Je reviendrais sur tout ça bien plus tard.. Quand letshaveadream aura sa nouvelle peau de serpent (django) (&lt;a href=&quot;http://letshaveadream.info/public/Picture_3.png&quot; hreflang=&quot;fr&quot;&gt;preview&lt;/a&gt;).&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/05/25/Switcher-je-suis-Logiciels-OS-X-indispensables#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/05/25/Switcher-je-suis-Logiciels-OS-X-indispensables#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/20</wfw:commentRss>
      </item>
    
  <item>
    <title>Préparatifs...</title>
    <link>http://letshaveadream.info/post/2008/05/05/Preparatifs</link>
    <guid isPermaLink="false">urn:md5:438a662693090dc8a7075d6288448556</guid>
    <pubDate>Mon, 05 May 2008 15:23:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
        <category>apple</category><category>django</category><category>letshaveadream</category><category>mac</category><category>osx</category><category>python</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://letshaveadream.info/public/apple.png&quot; alt=&quot;Apple&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; /&gt;Quelques évenements à venir, mais je n'en dis pas plus, laissons parler les images.
&lt;img src=&quot;http://letshaveadream.info/public/letshaveadream.png&quot; alt=&quot;Miam&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;J-(4+8)&lt;/strong&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/05/05/Preparatifs#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/05/05/Preparatifs#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/19</wfw:commentRss>
      </item>
    
  <item>
    <title>Refonte, à la biologeek</title>
    <link>http://letshaveadream.info/post/2008/04/24/Refonte-a-la-biologeek</link>
    <guid isPermaLink="false">urn:md5:a5807818961f5e6a8badfaf6ed7c9f13</guid>
    <pubDate>Thu, 24 Apr 2008 15:52:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
        <category>django</category><category>dotclear</category><category>letshaveadream</category><category>reST</category>    
    <description>    &lt;p&gt;Je suis un peu &lt;em&gt;provocateur&lt;/em&gt;, mais j'annonce, avec probablement &lt;strong&gt;1 an d'avance&lt;/strong&gt; (*), le refonte en &lt;a href=&quot;http://www.djangoproject.com&quot; hreflang=&quot;en&quot;&gt;Django&lt;/a&gt; de ce blog, mais bien entendu, tout se fera de manière transparente, et comme &lt;a href=&quot;http://www.biologeek.com&quot; hreflang=&quot;fr&quot;&gt;David&lt;/a&gt;, je vais prendre mon temps... Au passage, le design aussi sera.. plus leché, et &lt;em&gt;mine&lt;/em&gt; (vous le connaissez déjà en partie).&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Pourquoi ?&lt;/strong&gt;&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;C'est la raison essentielle de cette refonte : reprendre le contrôle du code de l'application dont je me sers pour avoir la liberté de faire ce qui me plaît facilement et rapidement. Je ressens une énorme frustration actuellement à ne pas pouvoir ajouter les fonctionnalités qui me semblent intéressantes sans devoir passer par un plugin (lorsqu'il existe...). D'autant que je dois avoir une aversion au moins équivalente pour PHP de celle que j'ai pour Java (hop un petit troll au passage ça fait pas de mal ;-)).&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;En enlevant la petite phrase sur Java, je suis complètement d'accord. J'aime bien &lt;a href=&quot;http://dotclear.net&quot; hreflang=&quot;en&quot;&gt;Dotclear&lt;/a&gt;, mais, je sais pas, je préfère reST, et je sais pas..&lt;/p&gt;


&lt;p&gt;&lt;em&gt;(*) C'est surtout une manière de pas m'imposer une date à respecter.&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/04/24/Refonte-a-la-biologeek#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/04/24/Refonte-a-la-biologeek#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/18</wfw:commentRss>
      </item>
    
  <item>
    <title>Deploiement : Ant et Tomcat sont dans un bateau</title>
    <link>http://letshaveadream.info/post/2008/04/22/Deploiement-%3A-Ant-et-Tomcat-sont-dans-un-bateau</link>
    <guid isPermaLink="false">urn:md5:9806e52009d5aa64746e3bcfa57b04a3</guid>
    <pubDate>Tue, 22 Apr 2008 15:48:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Java</category>
        <category>ant</category><category>catalina</category><category>deploy</category><category>java</category><category>scp</category><category>ssh</category><category>sshexec</category><category>tomcat</category>    
    <description>    &lt;p&gt;J'ai mis un peu de temps à comprendre de façon &lt;em&gt;sommaire&lt;/em&gt; de la façon dont fonctionne la &lt;code&gt;deploy task&lt;/code&gt; sous ant, fournis par tomcat, alors autant en faire profiter tout le monde..&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Edition 23.04&lt;/strong&gt; : il est à noter que j'ai ensuite découvert le &lt;em&gt;Tomcat client deployer&lt;/em&gt;, téléchargeable pour les version &lt;strong&gt;5.x&lt;/strong&gt; et &lt;strong&gt;6.x&lt;/strong&gt; au moins. La documentation se trouve &lt;a href=&quot;http://tomcat.apache.org/tomcat-5.5-doc/deployer-howto.html&quot; hreflang=&quot;en&quot;&gt;ici&lt;/a&gt;. La technique expliqué ci-dessous doit être similaire, sauf qu'elle est intégré à votre &lt;code&gt;build.xml&lt;/code&gt;.&lt;/p&gt;


&lt;h2&gt;But&lt;/h2&gt;


&lt;p&gt;Le but de l'opération est assez simple : être en mesure, via une commande &lt;code&gt;ant&lt;/code&gt;, de déployer un projet &lt;strong&gt;J2EE&lt;/strong&gt; sur le Servlet Containre &lt;a href=&quot;http://tomcat.apache.org&quot; hreflang=&quot;en&quot;&gt;Tomcat&lt;/a&gt;. Pour aller un peu plus loin, je voulais aussi pouvoir avoir &lt;em&gt;plusieurs profils de déploiement&lt;/em&gt;, ou autrement dit, pouvoir déployer le code sur différent &lt;strong&gt;Tomcat&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;Préalable(s)&lt;/h2&gt;


&lt;p&gt;Certaines librairies en plus sont nécessaire au bon fonctionnement de ces &lt;em&gt;tâches Ant&lt;/em&gt;. Nous utilisons les &lt;code&gt;tasks&lt;/code&gt; de déploiement et les &lt;code&gt;task&lt;/code&gt; ssh. Il est nécessaire d'ajouter les 2 librairies suivantes dans le classpath de Ant.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;catalina-ant.jar&lt;/strong&gt; : provenant de Apache Tomcat. La librairie se trouve dans le répertoire Tomcat, puis server/lib/catalina-ant.jar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;jsch-xxx.jar&lt;/strong&gt; : permet l'utilisation des tâches sshexec et scp.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En temps normal, les librairies nécessaires sont dans &lt;code&gt;${basedir}/lib/ant&lt;/code&gt;, et le fichier &lt;code&gt;build.xml&lt;/code&gt; les prend en considération. On verra dans la &lt;em&gt;Mise en place&lt;/em&gt; qu'il peut en être autrement (on embarque tout avec nous).&lt;/p&gt;


&lt;p&gt;Dans mon cas particulier, les ports d'apache tomcat ne sont pas ouvert sur l'exterieur, et la manager de tomcat non plus, et ceci pour des raisons presque évidentes de sécurité. Il est alors nécessaire de faire un tunnel ssh, avec les moyens du bord. Voici un exemple, en ligne de commande, sous Linux :&lt;/p&gt;

&lt;pre class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ssh&lt;/span&gt; -N -p &lt;span style=&quot;color: #000000;&quot;&gt;22&lt;/span&gt; root&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;host -L &lt;span style=&quot;color: #000000;&quot;&gt;9080&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;127.0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.1&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;8080&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Ici, le port distant &lt;strong&gt;8080&lt;/strong&gt; de la machine host est redirigé, via un &lt;em&gt;tunnel ssh&lt;/em&gt;, au port local &lt;strong&gt;9080&lt;/strong&gt;. Ainsi, l'instance distante tomcat, ainsi que son manager, vont être accessible en local, sur le port &lt;strong&gt;9080&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;Mise en place&lt;/h2&gt;


&lt;p&gt;La façon dont le déploiement s'effectue va suivre les différentes étapes :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Compilation&lt;/strong&gt; : étape normale de ant&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Génération du war&lt;/strong&gt; : un fichier war (web archive) est généré (dans distbin/war/)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upload du war&lt;/strong&gt; sur la machine distante, en utilisant ssh, dans le répértoire /tmp/&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Un-deploy&lt;/strong&gt; de l'application, afin de pouvoir la re-déployer ensuite.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy&lt;/strong&gt; de l'application.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reload&lt;/strong&gt; du context de l'application.&lt;/li&gt;
&lt;li&gt;Diverses tâches : suppression du war dans le /tmp/ et copie des fichiers images nécessaires.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nous allons maintenant étudiés comment mettre en place ces &lt;em&gt;étapes&lt;/em&gt; dans notre &lt;code&gt;build.xml&lt;/code&gt;.&lt;/p&gt;


&lt;h3&gt;Définir les tâches&lt;/h3&gt;


&lt;p&gt;La première étape va être de définir les tâches. Prenons par exemple la tâche &lt;code&gt;deploy&lt;/code&gt;, fournit par le fichier &lt;strong&gt;catalina-ant.jar&lt;/strong&gt;. Nous avons les deux librairies java dans le répertoire &lt;code&gt;lib/ant/&lt;/code&gt;. La définition de la tâche &lt;code&gt;deploy&lt;/code&gt; se fait en début de fichier, en utilisant le tag &lt;code&gt;taskdef&lt;/code&gt;.&lt;/p&gt;

&lt;pre class=&quot;xml&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;taskdef&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;deploy&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;classname&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;org.apache.catalina.ant.DeployTask&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/catalina-ant.jar&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/taskdef&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Nous spécifions à ant le &lt;em&gt;classpath&lt;/em&gt;, pour qu'il trouve la &lt;strong&gt;classe&lt;/strong&gt; &lt;code&gt;Deploytask&lt;/code&gt;. Il est à noter que &lt;code&gt;${lib.ant}&lt;/code&gt; est définit en début de fichier, pointant vers le dossier où les librairies sont. Nous faisons de même pour les autres &lt;em&gt;tâches&lt;/em&gt;, soit :&lt;/p&gt;

&lt;pre class=&quot;xml&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;taskdef&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;deploy&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;classname&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;org.apache.catalina.ant.DeployTask&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/catalina-ant.jar&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/taskdef&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;taskdef&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;reload&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;classname&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;org.apache.catalina.ant.ReloadTask&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/catalina-ant.jar&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/taskdef&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;taskdef&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;undeploy&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;classname&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;org.apache.catalina.ant.UndeployTask&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/catalina-ant.jar&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/taskdef&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;taskdef&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;sshexec&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;classname&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;org.apache.tools.ant.taskdefs.optional.ssh.SSHExec&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/jsch.jar&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/ant-jsch.jar&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/taskdef&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;taskdef&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;scp&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;classname&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;org.apache.tools.ant.taskdefs.optional.ssh.Scp&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/jsch.jar&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;pathelement&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${lib.ant}/ant-jsch.jar&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/classpath&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/taskdef&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;Gestion des profils&lt;/h3&gt;


&lt;p&gt;On va utiliser une astuce pour pouvoir spécifier un profil a &lt;strong&gt;ant&lt;/strong&gt; et surtout en définir un par défault. Pour définir une variable au moment de l'exécution de ant, il faut faire quelque chose du genre : &lt;code&gt;ant -Dprofil=xxx&lt;/code&gt;. Tout se passe en 3 lignes :&lt;/p&gt;

&lt;pre class=&quot;xml&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;property&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;profil&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;local&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;property&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;undeploy&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- On charge un fichier en fonction du profil.. définit par défault ou écraser par la ligne de commande --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;property&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;file&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${basedir}/${profil}.properties&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;Le fichier xxx.properties&lt;/h4&gt;


&lt;p&gt;Le fichier &lt;code&gt;${profil}.properties&lt;/code&gt; contient toutes les variables nécessaire au déploiement. Dans mon cas, voici mon &lt;code&gt;local.properties&lt;/code&gt; :&lt;/p&gt;


&lt;pre&gt; deploy.host=localhost
 deploy.username=vincent
 deploy.password=412hez
 deploy.app.path=/qualif
 deploy.app.webip=127.0.0.1
 deploy.app.webimages=/usr/share/energy/images
 deploy.manager=http://${deploy.host}:8180/manager
 deploy.manager.username=admin
 deploy.manager.password=xxxxxxxx&lt;/pre&gt;


&lt;h3&gt;Tâche et astuces finale&lt;/h3&gt;


&lt;p&gt;Enfin, on définit les tâches, mais faudra vous débrouiller pour les tâches de compilation, de génération du &lt;code&gt;war&lt;/code&gt;, et autres (très bien documenté).&lt;/p&gt;


&lt;p&gt;On va aussi faire preuve de malice ici. Mon profil par défaut est un profil local, je n'ai donc pas besoin de &lt;code&gt;scp&lt;/code&gt; ou de &lt;code&gt;sshexec&lt;/code&gt;. J'ai donc ici utilisé les &lt;strong&gt;conditions&lt;/strong&gt;, en définissant une variable d'un façon différente en fonction du profil, et ainsi appeler ensuite un tâche différente.&lt;/p&gt;


&lt;p&gt;Pour le reste, c'est du classique, et du &lt;em&gt;bien documenté&lt;/em&gt; sur le site de &lt;a href=&quot;http://ant.apache.org&quot; hreflang=&quot;en&quot;&gt;ant&lt;/a&gt;.&lt;/p&gt;

&lt;pre class=&quot;xml&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;deploy&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;depends&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;compile_java&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;filter&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;token&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;WEBIP&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.app.webip}&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;copy&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;todir&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${dist.tomcat.WEB-INF}&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;filtering&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;yes&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;fileset&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;dir&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${src.conf}&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/copy&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;antcall&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;target&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;war&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;echo&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;message&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Deploying ${basedir}/${war}/${name}-${version}.war on Tomcat : ${deploy.manager}..&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;condition&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;property&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;deployer.function&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;local&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;else&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;default&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;equals&lt;/span&gt; arg1=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${profil}&amp;quot;&lt;/span&gt; arg2=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;local&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/condition&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;condition&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;property&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;deploy.undeploy&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;else&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;istrue&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${undeploy}&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/condition&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;antcall&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;target&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;scp-${deployer.function}&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;antcall&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;target&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;undeploy-${deploy.undeploy}&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- (re)Deploy app --&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;deploy&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;url&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;username&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager.username}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;password&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager.password}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.app.path}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;localWar&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/tmp/${name}-${version}.war&amp;quot;&lt;/span&gt;
         &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- Reload the Context --&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;reload&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;url&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;username&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager.username}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;password&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager.password}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.app.path}&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;lt;!-- Remove the temporary war file --&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;antcall&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;target&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;sshexec-${deployer.function}&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/target&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;scp-local&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;echo&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Local deployement, no need to to scp, just copy..&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/echo&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;copy&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;file&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${war}/${name}-${version}.war&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;todir&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/tmp/&amp;quot;&lt;/span&gt; &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/target&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;scp-default&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;scp&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;file&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${war}/${name}-${version}.war&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;todir&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.username}:${deploy.password}@${deploy.host}:/tmp/&amp;quot;&lt;/span&gt;
        &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/target&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;sshexec-local&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;echo&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Local deployement, no need to do sshexec&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/echo&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/target&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;undeploy-yes&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;undeploy&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;url&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;username&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager.username}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;password&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.manager.password}&amp;quot;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.app.path}&amp;quot;&lt;/span&gt;
        &lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/target&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;undeploy-no&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;echo&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;No un-deploy&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/echo&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/target&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;target&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;sshexec-default&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;sshexec&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;host&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.host}&amp;quot;&lt;/span&gt;
   	            &lt;span style=&quot;color: #000066;&quot;&gt;username&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.username}&amp;quot;&lt;/span&gt;
    	            &lt;span style=&quot;color: #000066;&quot;&gt;password&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;${deploy.password}&amp;quot;&lt;/span&gt;
    	            &lt;span style=&quot;color: #000066;&quot;&gt;command&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;rm /tmp/${name}-${version}.war&amp;quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/target&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h2&gt;Usage&lt;/h2&gt;


&lt;p&gt;La procédure est censée être la plus simple possible, en admettant que le port de tomcat est ouvert, et que le manager de tomcat est actif. Il ne s'agit que d'une ligne de commande :&lt;/p&gt;

&lt;pre class=&quot;bash&quot;&gt;ant deploy&lt;/pre&gt;


&lt;p&gt;Le profil de déploiement peut également se spéficier. Par défaut, il s'agit du profil local, dont les propriétés sont disponible dans le fichiers local.properties.&lt;/p&gt;

&lt;pre class=&quot;bash&quot;&gt;ant -&lt;span style=&quot;color: #007800;&quot;&gt;Dprofil=&lt;/span&gt;toto deploy&lt;/pre&gt;


&lt;p&gt;En spécifiant le profil toto, par exemple, ant va chercher les propriétés dans toto.properties et fait le déploiement selon ces propriétés.&lt;/p&gt;


&lt;p&gt;Il est à noter qu'il faut forcément undeploy le context pour pouvoir le redéployer. &lt;strong&gt;Ant n'est pas très intelligent&lt;/strong&gt; sur ce point (c'est là entre autre qu'on dit &lt;strong&gt;vive Maven&lt;/strong&gt;), et se plantera en bon et due forme au moment du &lt;code&gt;undeploy&lt;/code&gt;.. s'il n'a pas été déjà déployé. Pour cela, un petit booléen peu être passé en argument :&lt;/p&gt;

&lt;pre class=&quot;bash&quot;&gt;ant -&lt;span style=&quot;color: #007800;&quot;&gt;Dprofil=&lt;/span&gt;ns -&lt;span style=&quot;color: #007800;&quot;&gt;Dundeploy=&lt;/span&gt;false deploy&lt;/pre&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/04/22/Deploiement-%3A-Ant-et-Tomcat-sont-dans-un-bateau#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/04/22/Deploiement-%3A-Ant-et-Tomcat-sont-dans-un-bateau#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/15</wfw:commentRss>
      </item>
    
  <item>
    <title>Tiny move</title>
    <link>http://letshaveadream.info/post/2008/04/20/Tiny-move</link>
    <guid isPermaLink="false">urn:md5:4852ddae27bb7357580f0015849d5d80</guid>
    <pubDate>Sun, 20 Apr 2008 13:02:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
            
    <description>    &lt;p&gt;Si vous voyez ce billet, le déménagement s'est bien passé.. Faut juste que je &lt;strong&gt;re&lt;/strong&gt;trouve un thème qui me plait.&lt;/p&gt;

&lt;pre class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Comment&lt;/span&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;SRC_ENV=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$HOME/sources/env&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; -e &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Adjust permission for bin files&amp;quot;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;file&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt; `&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;ls&lt;/span&gt; -B &lt;span style=&quot;color: #007800;&quot;&gt;$SRC_ENV&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin`;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;do&lt;/span&gt;
    &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;chmod&lt;/span&gt; +x &lt;span style=&quot;color: #007800;&quot;&gt;$SRC_ENV&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$file&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;done&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;Oups.. il semble y avoir qqs soucis avec le thèmes et/ou des plugins XD&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/04/20/Tiny-move#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/04/20/Tiny-move#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/14</wfw:commentRss>
      </item>
    
  <item>
    <title>Documents : organisation en espace daté</title>
    <link>http://letshaveadream.info/post/2008/04/15/Documents-%3A-organisation-en-espace-date</link>
    <guid isPermaLink="false">urn:md5:67440ccb1884a511aa808e0114ccaa61</guid>
    <pubDate>Tue, 15 Apr 2008 10:50:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Life hacks</category>
        <category>beagle</category><category>date</category><category>documents</category><category>index</category><category>linux</category><category>mail</category><category>openSUSE</category><category>semantique</category><category>tracker</category>    
    <description>    &lt;p&gt;Je reviens sur l'organisation de mes &lt;strong&gt;documents&lt;/strong&gt; (ainsi que de mes &lt;strong&gt;mails&lt;/strong&gt; par la même occasion), inspiré par un &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.la-grange.net/2002/08/06&quot;&gt;billet&lt;/a&gt; de &lt;a hreflang=&quot;fr&quot; href=&quot;http://la-grange.net&quot;&gt;karl&lt;/a&gt;, pointé par &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.biologeek.com/journal/&quot;&gt;David&lt;/a&gt; il y a quelques temps. Ma technique personnelle est, de façon certaine, à améliorer, on peut même presque dire que j'expérimente, &lt;em&gt;pendant que je le peux encore&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;En petite introduction, très très rapide (au pire, lire le billet de karl), organiser ces documents dans un espace daté, c'est les organiser dans un architecture dossier reflétant des dates, soit : &lt;code&gt;{YYYY}/{MM}/{DD}/&lt;/code&gt;. Aujourd'hui, les documents que j'ai enregistrer ou produit sont conserver dans le répertoire &lt;code&gt;2008/04/15&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Pourquoi l'espace daté ?&lt;/h2&gt;
&lt;p&gt;
La première question qui vient à l'esprit est, &lt;strong&gt;pourquoi utiliser un espace daté ?&lt;/strong&gt;. &lt;strong&gt;&lt;em&gt;Quel est l'apport et en quoi cela va-t-il me servir ?&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;Attention, je ne vous dis pas que cela va vous apporter quelque chose ;&amp;nbsp; si vous vous débrouillez très bien avec votre système actuel, ne changer pas, no soucis, ce n'est qu'un &quot;retour d'expérience&quot;.. &lt;/em&gt;Pour ma part, mes photos sont déjà classées par date (&lt;a hreflang=&quot;en&quot; href=&quot;http://f-spot.org&quot;&gt;f-spot&lt;/a&gt;), le passage pour tout mes documents a été un peu facilité.&lt;/p&gt;
&lt;p&gt;Je vais donc d'abord citer Karl, sur l'utilisation normal du système de fichier.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Le problème de l'organisation des fichiers actuelle est qu'elle est principalement mono thématique. Si je crée le répertoire &lt;code&gt;Documents/Photos/Normandie/Cotentin/&lt;/code&gt;
où je mets les photos du cotentin, ce n'est qu'une possibilité de
rangement. Je pourrais très bien mettre certaines de ces photos dans &lt;code&gt;Documents/Architecture/Eglise/&lt;/code&gt; car elles sont des images de vieilles églises.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C'est complètement le problème que je rencontrais. L'utilisation d'un espace daté, c'est &lt;strong&gt;la&lt;/strong&gt; solution de &lt;em&gt;simplicité&lt;/em&gt;, en l'absence d'un système de fichier sémantique (qui.. n'existe pas encore). On ne réfléchis pas, on sauvegarde le document à la date &lt;code&gt;now()&lt;/code&gt;. Ensuite, on profite du fait que certain fichier supporte les meta-données (ou on ruse dans le cas contraire) et on les remplis correctement. Ici il y a aussi quelques progrès à faire, plus ou moins à tous les niveaux (les outils, au niveau du système de fichier, ..). C'est assez dépendant des fichiers et de l'éditeur ou de l'application utiliser, donc ne nous éparpillons pas.&lt;/p&gt;
&lt;h2&gt;Comment s'y retrouver ?&lt;/h2&gt;
&lt;p&gt;C'est bien beau de ranger, mais ensuite il faut retrouver ce que l'on a rangé. Le fait de classer ces documents par date peut faciliter la recherche, si l'on se rappel de la date et/ou de l'évènement &lt;em&gt;attaché&lt;/em&gt; au document. Par contre, il n'y a plus de notion de classement dans &lt;strong&gt;&lt;em&gt;une&lt;/em&gt;&lt;/strong&gt; catégorie, et chercher tous les fichiers traitant des &lt;em&gt;champignons d'Ardennes du sud&lt;/em&gt;, on a un peu plus de mal.&lt;/p&gt;
&lt;p&gt;La plupart des système d'exploitation digne de ce nom (et des environnements graphiques) possède des &lt;strong&gt;&lt;em&gt;indexeurs&lt;/em&gt;&lt;/strong&gt; de contenu, ou &lt;strong&gt;moteur de recherche&lt;/strong&gt; (local), pour faire plus français. On a &lt;strong&gt;Spotlight&lt;/strong&gt; sous Mac OS X, &lt;strong&gt;tracker&lt;/strong&gt; et &lt;strong&gt;beagle&lt;/strong&gt; entre autre sous Linux, et je ne sais pas sous Windows. S'ils ont bien été fait, ceux-ci connaissent les meta-données, et pour peu que vous les renseignées bien au moment de la sauvegarde de vos fichiers, ils les indexeront de la bonnes manière. Ensuite, les fichiers traitant des&lt;em&gt; champignons d'Ardennes du sud&lt;/em&gt; vont seront restitués lors de votre recherche. J'ai longtemps été refractaire à ce genre d'outil, les &lt;em&gt;indexeurs&lt;/em&gt;. Je trouvais qu'ils avaient tendance à manger du temps CPU et de la mémoire, alors que je les trouvais inutile. Au fil du temps, j'ai commencé à en trouver l'utilité, puisque toutes les solutions de rangements que j'ai envisagé, n'ont jamais aboutie à quelques chose de correct et homogène.&lt;/p&gt;
&lt;p&gt;En fait, ci-dessus, c'est le &lt;strong&gt;cas idéal&lt;/strong&gt;, et ce cas.. n'existe pas. Prenons l'exemple de Linux, et plus particulière de &lt;a hreflang=&quot;en&quot; href=&quot;http://www.beagle-project.com&quot;&gt;beagle&lt;/a&gt;, distribué de base avec &lt;a hreflang=&quot;en&quot; href=&quot;http://opensuse.org&quot;&gt;openSUSE&lt;/a&gt; 10.x et plus (au contraire d'&lt;a hreflang=&quot;en&quot; href=&quot;http://www.ubuntu.com&quot;&gt;Ubuntu&lt;/a&gt; qui intègre &lt;a hreflang=&quot;en&quot; href=&quot;http://www.gnome.org/projects/tracker/&quot;&gt;tracker&lt;/a&gt;, mais je n'ai pas cherché de ce côté là). Bealge donc, supporte un certain nombre de fichier, mais pas tous, et pour plein de raison (il y a tellement de type de fichier qu'il est quasi impossible de tous les supporter.. sans compter les formats propriétaires). On se retrouve avec, dans les mains, une application incomplète, ce qui peut paraitre normal, quand on sait que la version actuelle de beagle est &lt;strong&gt;0.3.5&lt;/strong&gt;. Cependant, &lt;strong&gt;beagle&lt;/strong&gt; permet l'ajout de nouveau filtre (externe, ou pas je crois) ainsi que de nouveau backend. En gros, si le fichier n'est pas supporté, il est possible, via configuration xml ou autre, de l'ajouter. C'est &lt;strong&gt;ma&lt;/strong&gt; solution à moi, passer un &lt;em&gt;peu de temps&lt;/em&gt; à configurer mes filtres, et développer des backend s'il le faut, pour ensuite profiter au maximum de l'outil.&lt;/p&gt;
&lt;p&gt;Ce n'est pas parfait, loin de là, mais c'est en essayant, et en participant, qu'on fait avancer les choses. Enfin, j'aimerais encore une fois citer &lt;a hreflang=&quot;fr&quot; href=&quot;http://la-grange.net/&quot;&gt;karl&lt;/a&gt;, qui établie une liste sur pour &lt;strong&gt;un système de fichier organisé&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;&lt;li&gt;Toute création nouvelle de fichiers est sauvegardé dans le répertoire du jour dans l'espace daté.&lt;/li&gt;
&lt;li&gt;Chaque création est renseignée automatiquement par un minimum d'information telle que la date, le nom de l'auteur, la localisation géographique, adresse email de l'auteur, etc grâce à un système de préférences générales pour toutes les applications.&lt;/li&gt;
&lt;li&gt;Si le fichier contient lui même des informations, elles sont ajoutées à cette base (exemple données EXIF et IPTC d'une image numérique)&lt;/li&gt;
&lt;li&gt;Si l'auteur veut modifier ou ajouter des paramètres il peut le faire au moment de la sauvegarde ou après cette sauvegarde par un mécanisme de sélection et une fonction, ajout de données.&lt;/li&gt;
&lt;li&gt;Si au moment de la sauvegarde les informations entrées par l'auteur ou les informations trouvées dans le document contiennent des liens possibles vers d'autres documents déjà stockés, le système doit proposer d'associer et d'établir des liens entre ces documents quelque soit leur nature (email, photo, document texte, applications).&lt;/li&gt;
&lt;li&gt;L'information peut être stockée dans une base de donnée RDF.&lt;/li&gt;
&lt;li&gt;Votre système de fichier fonctionne par notion de vue thématique en recherchant dans la base de donnée.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Et pour les mails ?&lt;/h2&gt;
&lt;p&gt;Pour finir, j'ai encore une fois suivi &lt;a hreflang=&quot;fr&quot; href=&quot;http://la-grange.net/2008/03/26/organiser-courrier&quot;&gt;karl&lt;/a&gt; (décidément XD), et j'utilise également un espace daté pour mes mails. J'ai aussi la chance d'avoir mon propre serveur mail (installé avec mes petites mains de geek), et utilisant &lt;code&gt;Maildir&lt;/code&gt; plutôt que &lt;code&gt;mbox&lt;/code&gt; pour le format de stockage des mails, j'ai adapter le &lt;code&gt;.procmailrc&lt;/code&gt; que karl fournit comme suit.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Definition du repertoire de messagerie
MAILDIR=$HOME/Maildir
# calcul des variables mois et annees
MONTH=`date +%m`
YEAR=`date +%Y`
# Creation du repertoire annee s'il n'exsite pas
:0 ic
 * ? test ! -d $MAILDIR/.$YEAR
 | maildirmake -f $YEAR $MAILDIR
# Creation du repertoire mois s'il n'existe pas
:0 ic
 * ? test ! -d $MAILDIR/.$YEAR.$MONTH
 | maildirmake -f $YEAR.$MONTH $MAILDIR
# Transfert du message dans le dossier du mois
:0:
  *
  $MAILDIR/.$YEAR.$MONTH/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et de la même façon, j'utilise ensuite les dossiers intelligents (appelé Saved search sous Thunderbird). Une amélioration, serait de pouvoir &lt;strong&gt;stocker ces dossiers intelligents directement sur le serveur&lt;/strong&gt; (sous un format compréhensible par +/- n'importe quel client mail), car pour l'instant, pour chaque machine, je dois recréer ces dossiers localement.&lt;/p&gt;
&lt;p&gt;Je suis bien entendu ouvert à tout commentaire, amélioration, réaction.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;ps : hum.. il y aurait quelques amélioration à effectuées sur cette mise en page au passage...&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/04/15/Documents-%3A-organisation-en-espace-date#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/04/15/Documents-%3A-organisation-en-espace-date#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/4</wfw:commentRss>
      </item>
    
  <item>
    <title>Future organisation de shortbrain.org</title>
    <link>http://letshaveadream.info/post/2008/04/13/Future-organisation-de-shortbrainorg</link>
    <guid isPermaLink="false">urn:md5:839a3362f643c07c4634799f055e6173</guid>
    <pubDate>Sun, 13 Apr 2008 12:26:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
        <category>docutils</category><category>rst</category><category>shortbrain</category>    
    <description>    &lt;div class=&quot;document&quot; id=&quot;organisation-du-carnet&quot;&gt;

&lt;p&gt;Ce jour de dimanche 13 avril, j'ai arrêté ma décision sur la gestion de mon
carnet. Cela n'a pas été sans mal, mais il faut bien se décider un jour sinon,
on ne fait rien.&lt;/p&gt;
&lt;p&gt;Dans le concept c'est assez proche de ce que &lt;a class=&quot;reference external&quot; href=&quot;http://www.la-grange.net&quot;&gt;karl&lt;/a&gt; fait probablement. Je me suis même
essayé à l'organisation de mes documents par date (autrement dit tous mes
documents sont stocker dans des répertoires du type YYYY/MM/DD, mais j'y
reviendrais un autre jour, ou une autre fois). Je vais tenter d'expliquer le
façon dont cet espace (&lt;a class=&quot;reference external&quot; href=&quot;http://shortbrain.org&quot;&gt;shortbrain&lt;/a&gt;) est généré.&lt;/p&gt;
&lt;div class=&quot;section&quot; id=&quot;billets&quot;&gt;
&lt;h1&gt;Billets&lt;/h1&gt;
&lt;p&gt;Les billets (entrée du carnet), comme les entrées de la &lt;em&gt;base de
connaissances&lt;/em&gt;, sont classés de la même façon que le reste des documents.
Le seul élément qui les distingue est leur extension, de la forme &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;{nom}.log.rst&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;reference external&quot; href=&quot;http://shortbrain.org/project/short2web/&quot;&gt;short2web&lt;/a&gt; parcourt le dossiers
contenant les documents (classés par date). Si un fichier ayant l'extension
&lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;.log.rst&lt;/span&gt;&lt;/tt&gt; est
rencontré, un document html de la forme &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;{YYYY}-{MM}-{DD}-{titre|nom}.html&lt;/span&gt;&lt;/tt&gt; est généré.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;base-de-connaissances&quot;&gt;
&lt;h1&gt;Base de connaissances&lt;/h1&gt;
&lt;p&gt;Pour la &lt;em&gt;base de connaissances&lt;/em&gt;, les fichiers sont de la forme
&lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;{nom}.kb.rst&lt;/span&gt;&lt;/tt&gt;.
&lt;a class=&quot;reference external&quot; href=&quot;http://shortbrain.org/project/short2web/&quot;&gt;short2web&lt;/a&gt; procède de la même
façon, avec cependant une subtilité : une entrée dans la &lt;em&gt;base de
connaissances&lt;/em&gt; n'est pas figée dans le temps.&lt;/p&gt;
&lt;p&gt;Ma première approche (et je l'espère pas trop &lt;em&gt;naïve&lt;/em&gt;) est de gérer
ça par liens symboliques (je profite du fait que mon environnement est un
UNIX(-like) et qu'il offre ces possibilités). De façon assez général, le
fichier &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;{nom}.kb.rst&lt;/span&gt;&lt;/tt&gt;
est créé à une date fixe. A chaque fois qu'il est de nouveau éditer, on créer
un lien symbolique vers l'édition précédent. Ainsi on édite toujours le même
fichier, et &lt;a class=&quot;reference external&quot; href=&quot;http://shortbrain.org/project/short2web/&quot;&gt;short2web&lt;/a&gt; peut construire un
historique des éditions.&lt;/p&gt;
&lt;p&gt;Il me reste à définir la forme et l'endroit où le fichier est généré pour la
&lt;em&gt;base de connaissances&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;publication&quot;&gt;
&lt;h1&gt;Publication&lt;/h1&gt;
&lt;p&gt;Tout ce qui est expliqué plus haut, est pour l'instant généré en local, sur
l'une de mes machines de développement. Il faut se poser la question de la
publication. Et la, j'hésite entre deux &lt;em&gt;probables&lt;/em&gt; solutions :&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;Générer le tout en local, et l'uploader ensuite, de façon journalière,
d'une manière ou d'une autre (rsync, scp, ..)&lt;/li&gt;
&lt;li&gt;Utiliser le fait que me documents sont synchronisés (enfin, &lt;em&gt;vont
l'etre&lt;/em&gt;) et suivante le solutions de synchronisation, exécuter, de façon
journalière, ou à la réception (par l'utilisation des &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;hooks&lt;/span&gt;&lt;/tt&gt;, disponible dans la
plupart de scm actuel) pour exécuter les scripts de génération sur le serveur
hébergeant les Documents..&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J'hésite fortement. Et vous, qu'en pensez-vous ?&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;mise-en-place&quot;&gt;
&lt;h1&gt;Mise en place&lt;/h1&gt;
&lt;p&gt;Il ne me reste maintenant plus qu'à mettre ceci en place, ainsi que
d'intégrer le design et docutils. Enfin, je n'ai pas parlé ici de flux ATOM,
d'index, d'archives, etc..&lt;/p&gt;
&lt;p&gt;A noter au passage, l'utilisation des modules Python suivant : &lt;a hreflang=&quot;en&quot; href=&quot;http://docutils.sourceforge.net/&quot;&gt;docutils&lt;/a&gt;, &lt;a hreflang=&quot;en&quot; href=&quot;http://jinja.pocoo.org/&quot;&gt;Jinja&lt;/a&gt;, &lt;a hreflang=&quot;en&quot; href=&quot;http://pygments.org/&quot;&gt;Pygments&lt;/a&gt;, et.. c'est à peu près tout (ah si..
BeautifulSoup dans un avenir plus/moins proche)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/04/13/Future-organisation-de-shortbrainorg#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/04/13/Future-organisation-de-shortbrainorg#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/1</wfw:commentRss>
      </item>
    
  <item>
    <title>openSUSE counter</title>
    <link>http://letshaveadream.info/post/2008/04/05/openSUSE-counter</link>
    <guid isPermaLink="false">urn:md5:93f48bdf7cbc70d3516e7cf6b4d9fb0f</guid>
    <pubDate>Sat, 05 Apr 2008 22:58:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Linux</category>
        <category>linux</category><category>openSUSE</category>    
    <description>    &lt;div style=&quot;text-align:center&quot;&gt;


&lt;div id=&quot;countercontainer&quot; style=&quot;width: 256px; height: 256px; margin: 0;padding: 0;&quot;&gt;&lt;a id=&quot;nojavascriptlink&quot; href=&quot;http://www.opensuse.org&quot; name=&quot;nojavascriptlink&quot;&gt;&lt;img style=&quot;border: 0;&quot; alt=&quot;loading&quot; src=&quot;http://forgeftp.novell.com/opensuse-art/openSUSE11/web-banner/images/nojavascript.png&quot; width=&quot;256&quot; height=&quot;256&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/04/05/openSUSE-counter#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/04/05/openSUSE-counter#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/9</wfw:commentRss>
      </item>
    
  <item>
    <title>Facteur et news</title>
    <link>http://letshaveadream.info/post/2008/03/31/Facteur-et-news</link>
    <guid isPermaLink="false">urn:md5:e9db5043e4f906f1e14846408459a0e7</guid>
    <pubDate>Mon, 31 Mar 2008 20:44:00 +0200</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Quotidien</category>
        <category>Aperture</category><category>Django</category><category>docutils</category><category>geek</category><category>Mac</category><category>shortbrain</category>    
    <description>    &lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://farm3.static.flickr.com/2236/2378094912_634a0ae82e.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Le facteur est passé ce matin, et je suis plutôt content.. Faudra que je
fasse quelques reviews après avoir lu ces bouquins, mais la c'est l'excitation
qui prends le pas sur tout ! Et sinon.. quelques nouvelles :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ça m'étonne que beaucoup de gens le suive, mais l'information a été
diffusée.. J'ai envie d'un Mac.. un &lt;a href=&quot;http://letshaveadream.info/tag/Mac&quot;&gt;&lt;em&gt;Mac&lt;/em&gt;&lt;/a&gt;
&lt;em&gt;mini&lt;/em&gt; pour être précis (et &lt;a href=&quot;http://letshaveadream.info/tag/Aperture&quot;&gt;&lt;strong&gt;Aperture&lt;/strong&gt;&lt;/a&gt; qui est pour beaucoup).&lt;/li&gt;
&lt;li&gt;Un article sur &lt;a href=&quot;http://letshaveadream.info/tag/docutils&quot;&gt;docutils&lt;/a&gt; et reStructuredText
dans le Linux Magazine du mois.. Sweet !&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://shortbrain.org&quot;&gt;shortbrain.org&lt;/a&gt; est
bientôt sur les rails.. Je ne vais pas me voiler la fasse, l'inspiration est de
&lt;a hreflang=&quot;fr&quot; href=&quot;http://la-grange.net&quot;&gt;karl&lt;/a&gt; (pas le design, qui reste
comme l'actuel, mais l'espace carnet.. je suis complètement fan au passage :D).
Au départ je m'étais dit que j'allais le faire avec &lt;a hreflang=&quot;en&quot; href=&quot;http://www.djangoproject.com&quot;&gt;Django&lt;/a&gt;, mais ça imposait de développer un
bout d'&lt;acronym title=&quot;Atom Publishing Protocol&quot;&gt;APP&lt;/acronym&gt;, et tout et
tout.. alors que l'utilisation de &lt;strong&gt;git&lt;/strong&gt;, &lt;strong&gt;python&lt;/strong&gt;
et de petit script cron le tout sur mon dédié et mes différents ordinateurs est
plus simple (et terriblement plus &lt;a style=&quot;font-weight: bold; font-style: italic;&quot; href=&quot;http://letshaveadream.info/tag/geek&quot;&gt;geek&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/03/31/Facteur-et-news#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/03/31/Facteur-et-news#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/11</wfw:commentRss>
      </item>
    
  <item>
    <title>Mood of the week</title>
    <link>http://letshaveadream.info/post/2008/03/16/Mood-of-the-day</link>
    <guid isPermaLink="false">urn:md5:32dda34d490e5bf3ed9f015f40f0e62d</guid>
    <pubDate>Sun, 16 Mar 2008 15:24:00 +0100</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Quotidien</category>
            
    <description>    &lt;p&gt;Somewhere between :&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://letshaveadream.info/public/th_080_.gif&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And :&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://letshaveadream.info/public/th_074_.gif&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/03/16/Mood-of-the-day#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/03/16/Mood-of-the-day#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/5</wfw:commentRss>
      </item>
    
  <item>
    <title>Getting Things : un recentrage s'impose..</title>
    <link>http://letshaveadream.info/post/2008/03/09/Getting-Things-%3A-un-recentrage-simpose</link>
    <guid isPermaLink="false">urn:md5:3bf911040180936c524481ba4ab9ebce</guid>
    <pubDate>Sun, 09 Mar 2008 19:34:00 +0100</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Life hacks</category>
            
    <description>    &lt;img style=&quot;margin: 1em 0 0 1em; float: right;&quot; alt=&quot;&quot; src=&quot;http://letshaveadream.info/public/images/article.abstract.png&quot; /&gt;
&lt;p&gt;&lt;strong&gt;Getting Things&lt;/strong&gt; est pour moi l'avant &lt;acronym title=&quot;Getting Things Done&quot;&gt;GTD&lt;/acronym&gt;. Il faut déjà bien cibler ce que l'on veut
faire avec qu'elles soient effectivement faites. J'ai toujours manqué
cruellement d'organisation, laissant mourir dans l'œuf la plupart des projets
que j'ai entrepris. Il faut une fin à tout, et j'ai donc décidé de mettre fin à
cette mauvaise habitude dès maintenant. Il va me falloir procéder par étapes
assez simple dans l'énoncé, mais probablement beaucoup plus difficile à mettre
en place.&lt;/p&gt;
&lt;h2&gt;Analyse&lt;/h2&gt;
&lt;p&gt;La première étape peut paraitre très simple : il s'agit ici
d'&lt;strong&gt;analyser mes besoins et mes envies&lt;/strong&gt;, de les classer par
&lt;em&gt;importance&lt;/em&gt;. De cette analyse et ce classement, devrait me donner une
bonne idée des tâches à faire. Par expérience, j'ai toujours plein d'idées de
choses à faire (ce week end par exemple), mais j'en ai tellement (que je note
ou pas du reste) qu'en définitive, rien n'est fait (comme ce week end). Or le
plus important, c'est surtout d'&lt;strong&gt;agir&lt;/strong&gt;. D'&lt;a href=&quot;http://www.biologeek.com&quot; hreflang=&quot;fr&quot;&gt;autres&lt;/a&gt; &lt;a href=&quot;http://silent-strength.com&quot; hreflang=&quot;fr&quot;&gt;ont&lt;/a&gt; probablement déjà effectué
cette démarche (ou ont ça dans le sens, ce qui est loin d'être mon cas).&lt;/p&gt;
&lt;p&gt;J'ai donc entamé cette démarche, et voici mon résultat ; Il m'a été
quasiment impossible de classer.. mais le fait seul de les noter, ça fait déjà
du bien... pour se &lt;em&gt;recentrer&lt;/em&gt;..&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note : Long terme pour les tâches qui dureront dans le temps
(constante évolution) ou en tout cas qui ont un intérêt sur le long
terme&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;Long terme&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;$HOME &lt;em&gt;replicator&lt;/em&gt;&lt;/strong&gt; : Je suis amené à
travailler sur plusieurs ordinateur (rarement en même temps), et de mise à jour
ou réinstallation interviennent de temps en temps ; le but est d'avoir des
configurations unifiées, et des fichiers/documents synchroniser (avec bien
entendu des exceptions et des gestions différentes suivant les données).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Getting Things Done&lt;/strong&gt; : Je cherche une méthode/un outil
(Unix+GNOME) pour gérer efficacement mes &lt;em&gt;todolist&lt;/em&gt;, le plus complet
possible (j'y reviendrais)..&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Knowledge Base&lt;/strong&gt; : Parce que mon cerveau est comme un
éponge (&lt;em&gt;quand on le presse il se vide&lt;/em&gt;), et parce que j'ai envie de
partager, il me faut un endroit où tout noter (et m'imposer cette discipline de
tout noter).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Development website&lt;/strong&gt; : une sorte de
&lt;em&gt;sourceforge&lt;/em&gt; personnel. Je pense qu'il faut le coupler avec
&lt;em&gt;Knowledge Base&lt;/em&gt;, ce qui donnerais ainsi l'idée que j'ai en tête pour le
future de &lt;a href=&quot;http://shortbrain.org&quot; hreflang=&quot;en&quot;&gt;shortbrain&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local Backup&lt;/strong&gt; : se servir de mon petit système
embarquée Linksys NSLU2 comme d'un solution de backup locale.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Court et Moyen terme&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Identité en ligne&lt;/strong&gt; : ça devrait se passer &lt;a href=&quot;http://vincent.demeester.fr&quot; hreflang=&quot;fr&quot;&gt;ici&lt;/a&gt;..&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Design&lt;/strong&gt; : ce n'est pas mon domaine, mais quelques
fois, il faut mettre la main à la pâte (ce blog, shortbrain, etc..)..&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Je décide de m'arrêter la pour l'instant.. J'estime que toutes autres idées
devra passer après la mise en place de ces &lt;em&gt;nombreuses&lt;/em&gt; tâches.. Il va
sans dire que le temps pour faire tout ça peut aller du très long au très court
(le fait d'être en stage, d'avoir l'envie de se remettre au footing et à la
lecture n'aide pas.. surtout quand en plus on veut jouer de temps en temps à
PES et regarder quelques séries d&lt;em&gt;'animes japonais&lt;/em&gt;..&lt;/p&gt;
&lt;h2&gt;Mise en place&lt;/h2&gt;
&lt;p&gt;C'est la partie à venir. Cependant la première chose à regarder c'est :
&lt;strong&gt;Y a-t-il des outils déjà existant permettant de faire ce que je
souhaite&lt;/strong&gt;. Et la réponse est probablement oui, &lt;em&gt;mais non&lt;/em&gt;..&lt;/p&gt;
&lt;p&gt;Je reviendrais la dessus plus tard.&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/03/09/Getting-Things-%3A-un-recentrage-simpose#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/03/09/Getting-Things-%3A-un-recentrage-simpose#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/6</wfw:commentRss>
      </item>
    
  <item>
    <title>Online identity : first step</title>
    <link>http://letshaveadream.info/post/2008/03/03/Online-identity-%3A-first-step</link>
    <guid isPermaLink="false">urn:md5:308964007920d9f0a6f764dec2debe18</guid>
    <pubDate>Mon, 03 Mar 2008 23:33:00 +0100</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
        <category>identity</category><category>openid</category><category>xhtml</category>    
    <description>    &lt;pre&gt;
&amp;lt;link rel=&amp;quot;openid.server&amp;quot; href=&amp;quot;http://www.myopenid.com/server&amp;quot; /&amp;gt;
&amp;lt;link rel=&amp;quot;openid.delegate&amp;quot; href=&amp;quot;http://vincent.demeester.myopenid.com&amp;quot; /&amp;gt;
&lt;/pre&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/03/03/Online-identity-%3A-first-step#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/03/03/Online-identity-%3A-first-step#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/2</wfw:commentRss>
      </item>
    
  <item>
    <title>Lenovo Thinkpad x60s : Ubuntu 7.10, premières impressions</title>
    <link>http://letshaveadream.info/post/2008/03/01/Lenovo-Thinkpad-x60s-%3A-Ubuntu-710-premieres-impressions</link>
    <guid isPermaLink="false">urn:md5:2474de4e56eca17989cf108445964581</guid>
    <pubDate>Sat, 01 Mar 2008 23:13:00 +0100</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Linux</category>
        <category>battery</category><category>lenovo</category><category>linux</category><category>thinkpad</category><category>ubuntu</category>    
    <description>    &lt;p&gt;&lt;em&gt;Je le fais en français, puisque je suppose qu'il y a déjà eu des retours
en anglais.. Et puis parce que ce soir j'ai un peu la flemme d'écrire en
anglais&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Au départ, j'étais partit pour installé la version 8.04 alpha 5, histoire de
tester les derniers ajouts (que je connaissais déjà quand mon ACER tournait
sous Gentoo). Le retour est simple : c'est très prometteur, l'installeur
voit mon windows, me le &lt;em&gt;resize&lt;/em&gt;, etc.. il fait tout bien du premier
coup. Par contre le &lt;strong&gt;alpha&lt;/strong&gt; se sent, c'est très instable,
l'écran s'éteint de temps en temps, vraiment pas pratique. J'ai donc décidé
d'installer la version 7.10, version, normalement stable.&lt;/p&gt;
&lt;p&gt;Tout est effectivement stable, et marche bien.. Pardon, je vais trop vite,
&lt;strong&gt;tout&lt;/strong&gt; est un peu exagéré :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Le portable chauffe plus que sous Windows. Ce serait apparemment du à la
&lt;em&gt;non utilisation&lt;/em&gt; des possibilités &lt;em&gt;d'undervoltage&lt;/em&gt; du processeur
dans la machine, à creuser.&lt;/li&gt;
&lt;li&gt;La &lt;em&gt;battery life&lt;/em&gt; n'est pas indiqué par gnome-power-management,
pourtant un petit &lt;code&gt;cat /proc/acpi/battery/BAT0/state&lt;/code&gt; nous renvoie
bien ce que l'on attend.&lt;/li&gt;
&lt;li&gt;Et bien entendu, comme on aurait pu le supposer grâce au deux point
précédent, la batterie ne tiens pas vraiment les 4h30/5h qu'elle tient sous
Windows, dommage.. Je pense qu'il y a à creuser du côté de
&lt;code&gt;laptop-mode&lt;/code&gt;, car les fichiers de configuration par défaut me
paraissent un poil &lt;em&gt;light&lt;/em&gt;..&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Voilà, j'ai encore beaucoup de boulot, notamment avec mon petit NSLU2 tout
beauc (mais pas tout neuf), et pour d'autres choses encore..&lt;/p&gt;
&lt;p&gt;Je ferais probablement un billet plus complet, récapitulatif et suivis dans
le temps (en tout cas pour la version en cours d'ubuntu et/ou Linux, car je
n'exclus pas d'installer une &lt;a href=&quot;http://www.opensuse.org/&quot; hreflang=&quot;en&quot;&gt;opensuse&lt;/a&gt; 11 un jour).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;edition du 2 mars&lt;/strong&gt; : je reviens sur la &lt;em&gt;batterie
life&lt;/em&gt; qui marche, mais mets du temps.. Et le temps de batterie que j'ai est
de l'ordre de 2h/2h30 ce qui reste mi figure mi raisin, mais sans le
laptop-mode enabled.. C'est ce que je regarde en ce moment.&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/03/01/Lenovo-Thinkpad-x60s-%3A-Ubuntu-710-premieres-impressions#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/03/01/Lenovo-Thinkpad-x60s-%3A-Ubuntu-710-premieres-impressions#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/3</wfw:commentRss>
      </item>
    
  <item>
    <title>Hardware &amp; website update</title>
    <link>http://letshaveadream.info/post/2008/02/29/Hardware-website-update</link>
    <guid isPermaLink="false">urn:md5:4f1614f630d70d0f3d91d6acb14f8028</guid>
    <pubDate>Fri, 29 Feb 2008 22:31:00 +0100</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
        <category>linux</category><category>nslu2</category><category>thinkpad</category><category>ubuntu</category>    
    <description>    &lt;p&gt;These days, I decide a lot of the future of each of my domain name and by
the way all website I own or host. I also had some &lt;em&gt;new&lt;/em&gt; event that
allow me to play with hardware once again.&lt;/p&gt;
&lt;p&gt;First of all, I'm writing this entry from a &lt;strong&gt;Thinkpad x60s&lt;/strong&gt;
(by lenovo). I'm happy I have this laptop at work because it's exactly the kind
of laptop I would have bought. In the next few hours, I'm going to try Ubuntu
8.04 on it, or 7.10 if too unstable. I'll share my experience of this hardware
running under Linux here.&lt;/p&gt;
&lt;p&gt;Next, I am &lt;em&gt;re-installing&lt;/em&gt; my Linksys NSLU2, in order to make a quick
&amp;amp; dirty home backup solution. The operating system will run on a 4Go usb
key and is Debian. As always, an entry is on the road about it.&lt;/p&gt;
&lt;p&gt;Finally, my dreamhost subscription will come to a end in the next few weeks.
That's basically why I'm using Gandi blog for this weblog and why I'm
reorganizing my two dedicated server.. I'm currently working on the design of
my &lt;a href=&quot;http://vincent.demeester.fr&quot; hreflang=&quot;en&quot;&gt;online identity&lt;/a&gt;
page, as well as the new shortbrain design. The current &lt;a href=&quot;http://shortbrain.org&quot; hreflang=&quot;en&quot;&gt;shortbrain.org&lt;/a&gt; design will be use for
&lt;a href=&quot;http://letshaveadream.com&quot; hreflang=&quot;en&quot;&gt;letshaveadream.com&lt;/a&gt; which
is basically my personal static website (generated by short2web).&lt;/p&gt;
&lt;p&gt;See you soon ;)&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/02/29/Hardware-website-update#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/02/29/Hardware-website-update#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/10</wfw:commentRss>
      </item>
    
  <item>
    <title>Let's have a dream</title>
    <link>http://letshaveadream.info/post/2008/02/23/first</link>
    <guid isPermaLink="false">urn:md5:14153b1afb1c5e31b8b77a73780501c7</guid>
    <pubDate>Sat, 23 Feb 2008 13:32:00 +0000</pubDate>
    <dc:creator>vincent</dc:creator>
        <category>Geek</category>
            
    <description>    &lt;p&gt;And the &lt;strong&gt;dream&lt;/strong&gt; restart here. It's been at least 1 year and a
half that I did test &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.dotclear.net&quot;&gt;Dotclear&lt;/a&gt; the last time.&lt;/p&gt;
&lt;p&gt;Currently, I'm playing with the &lt;em&gt;cool&lt;/em&gt; theme developped by the gandi
blog team.. Playing with colors !&lt;/p&gt;</description>
    
    
    
          <comments>http://letshaveadream.info/post/2008/02/23/first#comment-form</comments>
      <wfw:comment>http://letshaveadream.info/post/2008/02/23/first#comment-form</wfw:comment>
      <wfw:commentRss>http://letshaveadream.info/feed/rss2/comments/8</wfw:commentRss>
      </item>
    
</channel>
</rss>