<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-870179203042068988</id><updated>2012-02-15T23:36:44.732-08:00</updated><category term='linux'/><category term='jackrabbit'/><category term='lean'/><category term='CARA'/><category term='tools'/><category term='java'/><category term='ddj'/><category term='maven'/><category term='hudson'/><category term='photos'/><category term='livres'/><category term='scott ambler'/><category term='présentation'/><category term='netbeans'/><category term='dreyfus'/><category term='dojo'/><category term='scrum'/><category term='agile'/><category term='opensource'/><category term='spring'/><category term='tips'/><category term='projet'/><category term='video'/><category term='tdd'/><category term='article'/><category term='/\ndy'/><title type='text'>themetest</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5441630029008149022</id><published>2009-03-13T08:26:00.000-07:00</published><updated>2009-03-19T01:14:32.737-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Le prix Turing 2008 pour Barbara Liskov</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n-yR1DrB0m4/Sbp9TADY04I/AAAAAAAAAEU/PjoLUZV4P5c/s1600-h/GoldPrizeAMT.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 198px; height: 200px;" src="http://1.bp.blogspot.com/_n-yR1DrB0m4/Sbp9TADY04I/AAAAAAAAAEU/PjoLUZV4P5c/s200/GoldPrizeAMT.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5312696475822117762" /&gt;&lt;/a&gt;&lt;br /&gt;Félicitations à Mme Liskov célèbre pour le principe de programmation objet qui porte son nom publié en 1987 :&lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2, then S is a subtype of T.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;Voici la nouvelle originale en français publiée sur &lt;a href="http://linuxfr.org//2009/03/12/25151.html"&gt;Linuxfr.org&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://fr.wikipedia.org/wiki/Principe_de_substitution_de_Liskov"&gt;Le principe de substitution de Liskov&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://blog.objectmentor.com/articles/2008/09/06/the-liskov-substitution-principle-for-duck-typed-languages"&gt;The Liskov Substitution Principle for "Duck-Typed" Languages&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5441630029008149022?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5441630029008149022/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/le-prix-turing-2008-pour-barbara-liskov.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5441630029008149022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5441630029008149022'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/le-prix-turing-2008-pour-barbara-liskov.html' title='Le prix Turing 2008 pour Barbara Liskov'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n-yR1DrB0m4/Sbp9TADY04I/AAAAAAAAAEU/PjoLUZV4P5c/s72-c/GoldPrizeAMT.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5607839385775444090</id><published>2009-03-13T02:25:00.000-07:00</published><updated>2009-03-19T01:14:32.745-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='dreyfus'/><category scheme='http://www.blogger.com/atom/ns#' term='livres'/><category scheme='http://www.blogger.com/atom/ns#' term='/\ndy'/><title type='text'>Pragmatic Thinking &amp; Learning</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 135px; height: 162px;" src="http://www.pragprog.com/images/covers/original/ahptl.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div xmlns=''&gt;&lt;p style='margin-bottom: 0cm'&gt;Je viens de terminé ce livre livre écrit par /\ndy Hunt. Il y reprend ce qu'il présente lors de workshops et de conférences depuis des années. Il commence par nous décrire le  &lt;a href='http://www.ehsavoie.com/2009/02/le-mdoele-dacquisitiondes-competences.html'&gt;&lt;i&gt;&lt;b&gt;modèle de Dreyfus&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; qui va nous servir de fil rouge tout au long du livre. En effet /\ndy va nous donner 34 conseils argumentés pour nous améliorer et nous faciliter le voyage de novice à expert.&lt;br/&gt;Le deuxième chapitre est consacré à notre cerveau et à son modèle de fonctionnement tel que décrit par les dernières avancées des neurosciences. Le schéma du cerveau comme étant un système à deux CPU partageant un bus pour accéder à la mémoire est vraiment excellent. On y retrouve les résultats sur la bilatéralisation du cerveau mais aussi le CPU à règles (Coté Gauche /  &lt;i&gt;L&lt;/i&gt; Brain) et le CPU à intuitions du modèle de Dreyfus (Coté Droit /  &lt;i&gt;R&lt;/i&gt; Brain).&lt;/p&gt;&lt;p style='margin-bottom: 0cm'&gt;Une fois ce bases posées on s'attaque au vif du sujet en analysant comment améliorer notre fonctionnement en ne se concentrant pas uniquement sur le CPU  &lt;i&gt;L&lt;/i&gt; mais en faisant fonctionner l'autre en parallèle.&lt;br/&gt;Cependant nos processeurs sont buggés tant au niveau matériel que logiciel. Il faut apprendre à connaître ces défauts pour essayer de les dépasser tant que faire se peut. Au niveau logiciel il faut reconnaître nos principaux préjugés, l'affinité générationnelle, et au niveau matériel la partie reptilienne et primitive de notre cerveau qui a tendance à court-circuiter notre cortex.&lt;br/&gt;Optimiser le fonctionnement de nos processeurs ne suffit pas, il faut maintenant les alimenter en informations pertinentes et donc apprendre à apprendre. On retrouve ici ce que j'avais exposé lors de la  &lt;a href='http://www.ehsavoie.com/2009/02/resister-la-pression.html'&gt;conférence sur le modèle de Dreyfus&lt;/a&gt; notamment le  &lt;i&gt;&lt;b&gt;Pragmatic Investisment Plan&lt;/b&gt;&lt;/i&gt;.&lt;br/&gt;Enfin les derniers chapitres donnent de bonnes pistes de réflexion sur comment modifier sa manière de travailler en étant efficace et donc en gardant l'aspect  &lt;i&gt;fun&lt;/i&gt;  &lt;span style='font-style: normal'&gt;de notre métier (à savoir pour moi le CODE ;o) ).&lt;/span&gt;&lt;br/&gt;J'ai vraiment adoré ce livre, il est très facile à lire et j'ai vraiment hâte de mettre en pratique les idées qu'on y retrouve. D'ailleurs pour faciliter cela les 48 maximes sont regroupées en dernière page et il ne reste plus qu'à choisir.&lt;br/&gt;J'ai décidé de commencer par améliorer ma gestion de ma connaissance en intégrant un wiki à ma prise de note et en réalisant des mind-maps. Pour ces derniers j'utilisais des logiciels tels que  &lt;a href='http://freemind.sourceforge.net/'&gt;&lt;i&gt;&lt;b&gt;Freemind&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; cependant rapidement je n'avançais plus, par contre j'ai remarqué, grâce au livre d'ailleurs, que si je les fais à la min sur une feuille de papier j'étais nettement plus efficace.&lt;br/&gt;Je vais mettre plus souvent en pratique le  &lt;b&gt;SEE IT, DO IT, TEACH IT&lt;/b&gt; et j'espère bien que les dojos vont me permettre d'évoluer à ce niveau là.&lt;br/&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n-yR1DrB0m4/Sbon99TxeMI/AAAAAAAAAEM/kgIWySd7T7o/s1600-h/bathduck.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 50px; height: 50px;" src="http://1.bp.blogspot.com/_n-yR1DrB0m4/Sbon99TxeMI/AAAAAAAAAEM/kgIWySd7T7o/s200/bathduck.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5312602655819921602" /&gt;&lt;/a&gt;&lt;br /&gt;Enfin je vais m'acheter un canard en plastique, l'idée du  &lt;b&gt;TALK TO THE DUCK&lt;/b&gt; m'a vraiment séduit : expliquer à un canard en plastique le problème rencontré pour en avoir une approche différente et souvent une solution.&lt;br/&gt;Bon, j'ai du pain sur la planche&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5607839385775444090?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5607839385775444090/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/pragmatic-thinking-learning.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5607839385775444090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5607839385775444090'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/pragmatic-thinking-learning.html' title='Pragmatic Thinking &amp;amp; Learning'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n-yR1DrB0m4/Sbon99TxeMI/AAAAAAAAAEM/kgIWySd7T7o/s72-c/bathduck.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3664849334265103743</id><published>2009-03-12T01:07:00.000-07:00</published><updated>2009-03-19T01:14:32.751-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Mise à jour des flux RSS</title><content type='html'>Bonjour,&lt;br /&gt;J'ai décidé de passer par &lt;a href="http://www.feedburner.com"&gt;Feedburner&lt;/a&gt; pour les flux RSS/Atom aussi pouvez vous faire migrer vos pointeurs vers &lt;a href="http://feeds2.feedburner.com/JavaInTheAlps"&gt;http://feeds2.feedburner.com/JavaInTheAlps&lt;/a&gt;.&lt;br /&gt;Bonne journée&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3664849334265103743?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3664849334265103743/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/mise-jour-des-flux-rss.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3664849334265103743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3664849334265103743'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/mise-jour-des-flux-rss.html' title='Mise à jour des flux RSS'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2945040817611767767</id><published>2009-03-10T03:46:00.000-07:00</published><updated>2009-03-19T01:14:32.757-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddj'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>Déploiement de progiciel en mode Agile</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_n-yR1DrB0m4/SbZHWMe5IoI/AAAAAAAAAD8/CMV1Ys9zNM0/s1600-h/logiciel-crm-id584.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_n-yR1DrB0m4/SbZHWMe5IoI/AAAAAAAAAD8/CMV1Ys9zNM0/s200/logiciel-crm-id584.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5311511257163571842" /&gt;&lt;/a&gt;&lt;br /&gt;Voilà un sujet rarement traité dans les ouvrages sur l'Agilité : la mise en oeuvre d'un progiciel. Cette nouvelle traduction de l'article &lt;a href="http://www.ddj.com/architect/212701603"&gt;"Agile Package Implementations"&lt;/a&gt; de &lt;a href="http://www.ambysoft.com/"&gt;Scott Ambler&lt;/a&gt; pour le &lt;a href="http://www.ddj.com/"&gt;Doctor Dobb's Journal&lt;/a&gt; donne les différentes étapes à suivre pour apporter le maximum de valeur et réduire les risques d'un déploiement de progiciel de manière Agile.&lt;br /&gt;&lt;a title="View DDJ - Architecture &amp;amp; Design - Agile Package Implementations on Scribd" href="http://www.scribd.com/doc/13136298/DDJ-Architecture-Design-Agile-Package-Implementations" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;DDJ - Architecture &amp; Design - Agile Package Implementations&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_297766494688565" name="doc_297766494688565" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=13136298&amp;access_key=key-1c7cbf80g4ihbp4h25su&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=13136298&amp;access_key=key-1c7cbf80g4ihbp4h25su&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_297766494688565_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt;   &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse/Academic-Work/?style=text-decoration%3A+underline%3B"&gt;Academic Work&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/agile" style="text-decoration: underline;"&gt;agile&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/progiciels" style="text-decoration: underline;"&gt;progiciels&lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Sinon le document est disponible chez GoogleDocs &lt;a href="http://docs.google.com/Doc?id=dhk7xdkk_239dnfsmbhb"&gt;ici&lt;/a&gt; ainsi que sur &lt;a href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-agile-package-implementations"&gt;Slideshare&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2945040817611767767?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2945040817611767767/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/deploiement-de-progiciel-en-mode-agile.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2945040817611767767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2945040817611767767'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/deploiement-de-progiciel-en-mode-agile.html' title='Déploiement de progiciel en mode Agile'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n-yR1DrB0m4/SbZHWMe5IoI/AAAAAAAAAD8/CMV1Ys9zNM0/s72-c/logiciel-crm-id584.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3722830729742937456</id><published>2009-03-09T07:21:00.000-07:00</published><updated>2009-03-19T01:14:32.763-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Manifeste pour un Développement de Qualité</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_n-yR1DrB0m4/SbUxoPrLRxI/AAAAAAAAAD0/uOBHWL711S4/s1600-h/manifesto.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 396px; height: 400px;" src="http://3.bp.blogspot.com/_n-yR1DrB0m4/SbUxoPrLRxI/AAAAAAAAAD0/uOBHWL711S4/s400/manifesto.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5311205903025522450" /&gt;&lt;/a&gt;&lt;br /&gt;Le célèbre Agile Manifesto s'est enrichi depuis cet été d'une cinquième phrase : &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;&lt;a href="http://blog.objectmentor.com/articles/2008/08/14/quintessence-the-fifth-element-for-the-agile-manifesto"&gt;"Craftsmanship Over Execution"&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;Pour rester dans cet esprit un nouveau manifeste est disponible pour les codeurs fous que nous sommes : &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;&lt;a href="http://manifesto.softwarecraftsmanship.org/main"&gt;"Craftmanship Manifesto"&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Je vous engage donc à aller le &lt;a href="http://manifesto.softwarecraftsmanship.org/sign/new"&gt;signer&lt;/a&gt; et surtout à le respecter :o)&lt;br /&gt;Bonne journée&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3722830729742937456?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3722830729742937456/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/manifeste-pour-un-developpement-de.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3722830729742937456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3722830729742937456'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/manifeste-pour-un-developpement-de.html' title='Manifeste pour un Développement de Qualité'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_n-yR1DrB0m4/SbUxoPrLRxI/AAAAAAAAAD0/uOBHWL711S4/s72-c/manifesto.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3022986481609377614</id><published>2009-03-05T23:49:00.000-08:00</published><updated>2009-03-19T01:14:32.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>Test Driven Development améliore la qualité</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://testdriven.com/programs/logo100.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 100px; height: 100px;" src="http://testdriven.com/programs/logo100.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Des études empiriques le prouvent le développement piloté par les tests (TDD pour les intimes) améliore notablement la qualité des logiciels. Cet &lt;a href="http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf"&gt;article &lt;/a&gt;écrit par &lt;a href="http://research.microsoft.com/en-us/people/nachin/"&gt;Nachiappan Nagappan&lt;/a&gt; (de chez Microsoft), &lt;a href="http://www.maximilien.com/homepage/about_me.html"&gt;E. Michael Maximilien&lt;/a&gt; (IBM), Thirumalesh Bhat (Microsoft), and &lt;a href="http://collaboration.csc.ncsu.edu/laurie/"&gt;Laurie Williams&lt;/a&gt; (North Carolina State University), et publié dans le journal  &lt;a href="http://www.springer.com/computer/programming/journal/10664"&gt;Emperical Software Engineering&lt;/a&gt; Volume 13, Number 3.&lt;br /&gt;L'article présente les résultats de quatre équipes variées(3 de Microsoft, 1 d'IBM) dans un contexte professionnel qui ont mis en œuvre les pratiques du TDD et ont observé une réduction du nombre de bugs par 1000 lignes de code de 40% à 90% pour une surcharge de développement de 15% à 35%. &lt;br /&gt;Cette étude confirme les retours d'Allianz lors de l'Agile Tour 2008 qui annonçait une surcharge de développement de 15% à 20%.&lt;br /&gt;Alors en attendant que mon patron m'offre une licence &lt;a href="http://junitmax.com/junitmax/subscribe.html"&gt;JUnitMax&lt;/a&gt; je vais aller écrire mes tests.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3022986481609377614?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3022986481609377614/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/test-driven-development-ameliore-la.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3022986481609377614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3022986481609377614'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/03/test-driven-development-ameliore-la.html' title='Test Driven Development améliore la qualité'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-7582859801219356904</id><published>2009-02-26T07:35:00.000-08:00</published><updated>2009-03-19T01:14:32.784-07:00</updated><title type='text'>Quart d'heure de détente</title><content type='html'>Je viens de découvrir le site &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.bugbash.net"&gt;Bug Bash&lt;/a&gt;&lt;/span&gt; et ses bandes dessinées humoristiques comme celles-ci :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.bugbash.net/strips/bug-bash20070219.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 730px; height: 245px;" src="http://www.bugbash.net/strips/bug-bash20070219.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.bugbash.net/strips/bug-bash20070319.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 730px; height: 245px;" src="http://www.bugbash.net/strips/bug-bash20070319.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.bugbash.net/strips/bug-bash20070402.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 730px; height: 245px;" src="http://www.bugbash.net/strips/bug-bash20070402.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-7582859801219356904?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/7582859801219356904/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/02/quart-d-de-detente.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7582859801219356904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7582859801219356904'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/02/quart-d-de-detente.html' title='Quart d&amp;#39;heure de détente'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8318741252143979387</id><published>2009-02-26T00:57:00.000-08:00</published><updated>2009-03-19T01:14:32.789-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dreyfus'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>Résister à la pression</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n-yR1DrB0m4/SaZestkO5NI/AAAAAAAAADs/K61KfdNmk3Y/s1600-h/brain-763982-1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 319px;" src="http://1.bp.blogspot.com/_n-yR1DrB0m4/SaZestkO5NI/AAAAAAAAADs/K61KfdNmk3Y/s320/brain-763982-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307033333141529810" /&gt;&lt;/a&gt;&lt;br /&gt;Le site &lt;span style="font-style:italic;"&gt;&lt;a href="http://www.sciam.com"&gt;American Scientific&lt;/a&gt;&lt;/span&gt; propose un article &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.sciam.com/article.cfm?id=how-to-avoid-choking-under-pressure&amp;print=true"&gt;How to Avoid Choking under Pressure&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;Cet article montre que sous pression il ne faut pas se concentrer outre mesure car sinon le cerveau se bloque et les performances se dégradent sensiblement. Ainsi ils indiquent qu'il faut se concentrer sur un mot mais guère plus pendant l'action et laisser son cervelet agir sans être bloqué ou gêné par le cortex cérébral.&lt;br /&gt;Qui ne se rappelle pas de son moniteur de ski qui vous fournit tellement d'instructions sur votre bâton, vos épaules, le parallélisme de vos skis, l'état de la piste,... qu'au moment de tourner vous chutez, le cerveau complètement embrouillé par tout ça.&lt;br /&gt;Bonne lecture :o)&lt;br /&gt;&lt;br /&gt;PS : n'oubliez pas que ce soir je présente, dans le cadre des réunion du &lt;a href="http://www.clubagile.org"&gt;CARA&lt;/a&gt;, le modèle de Dreyfus. Pour plus d'informations c'est &lt;a href="http://clubagile.org/le-club/reunions-du-club"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8318741252143979387?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8318741252143979387/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/02/resister-la-pression.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8318741252143979387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8318741252143979387'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/02/resister-la-pression.html' title='Résister à la pression'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n-yR1DrB0m4/SaZestkO5NI/AAAAAAAAADs/K61KfdNmk3Y/s72-c/brain-763982-1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8857049599168057466</id><published>2009-02-01T11:48:00.000-08:00</published><updated>2009-03-19T01:14:32.778-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dreyfus'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><title type='text'>Le modèle d'acquisition des compétences de Dreyfus</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n-yR1DrB0m4/SYX-wsJfbHI/AAAAAAAAADc/Y5-Cs7a2KHs/s1600-h/ahptl.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 133px; height: 160px;" src="http://1.bp.blogspot.com/_n-yR1DrB0m4/SYX-wsJfbHI/AAAAAAAAADc/Y5-Cs7a2KHs/s320/ahptl.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5297920649109400690" /&gt;&lt;/a&gt;&lt;br /&gt;L'article présente le modèle de Dreyfus qui essaye de définir les différentes étapes de l'acquisition des compétences. Ce modèle a été remis au goût du jour par le pragmatic programmer Andy Hunt dont je ne peux que vous conseiller les excellents ouvrages que sont : &lt;a href="http://www.pragprog.com/the-pragmatic-programmer"&gt;&lt;span style="font-weight:bold;"&gt;Pragmatic Programmer&lt;/span&gt;&lt;/a&gt; et &lt;a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"&gt;&lt;span style="font-weight:bold;"&gt;Refactor your Wetware&lt;/span&gt;&lt;/a&gt; que je suis d'ailleurs en train de terminer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="View Le Modèle d’acquisition de Compétences de Dreyfus on Scribd" href="http://www.scribd.com/doc/11560239/Le-Modele-dacquisition-de-Competences-de-Dreyfus" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Le Modèle d’acquisition de Compétences de Dreyfus&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_822598692167197" name="doc_822598692167197" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=11560239&amp;access_key=key-987crbtojs081iugpz3&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=11560239&amp;access_key=key-987crbtojs081iugpz3&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_822598692167197_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse/HowTo-Guides-DIY/Internet-Technology?style=text-decoration%3A+underline%3B"&gt;Internet &amp; Technolog&lt;/a&gt;              &lt;a href="http://www.scribd.com/browse/HowTo-Guides-DIY/?style=text-decoration%3A+underline%3B"&gt;How-To Guides &amp; DIY&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/skills" style="text-decoration: underline;"&gt;skills&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/dreyfus%20%20model" style="text-decoration: underline;"&gt;dreyfus  model&lt;/a&gt;       &lt;/div&gt;&lt;br /&gt;&lt;a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/fr/"&gt;&lt;img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/2.0/fr/88x31.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type"&gt;Le mod&amp;#232;le d'acquisition des comp&amp;#233;tences de Dreyfus&lt;/span&gt; by &lt;a xmlns:cc="http://creativecommons.org/ns#" href="http://www.ehsavoie.com/2009/02/le-mdoele-dacquisitiondes-competences.html" property="cc:attributionName" rel="cc:attributionURL"&gt;Emmanuel Hugonnet&lt;/a&gt; est mis &amp;#224; disposition selon les termes de la &lt;a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/fr/"&gt;licence Creative Commons Paternit&amp;#233;-Partage des Conditions Initiales &amp;#224; l'Identique 2.0 France&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8857049599168057466?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8857049599168057466/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/02/le-modele-d-des-competences-de-dreyfus.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8857049599168057466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8857049599168057466'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/02/le-modele-d-des-competences-de-dreyfus.html' title='Le modèle d&amp;#39;acquisition des compétences de Dreyfus'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n-yR1DrB0m4/SYX-wsJfbHI/AAAAAAAAADc/Y5-Cs7a2KHs/s72-c/ahptl.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8596261415391839889</id><published>2009-01-07T06:05:00.000-08:00</published><updated>2009-03-19T01:14:32.798-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddj'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>L'équipe agile distribuée</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n-yR1DrB0m4/SWS4xs0QKsI/AAAAAAAAADQ/KTdxlDECRfk/s1600-h/architecture-distribuee.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 250px; height: 250px;" src="http://1.bp.blogspot.com/_n-yR1DrB0m4/SWS4xs0QKsI/AAAAAAAAADQ/KTdxlDECRfk/s320/architecture-distribuee.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5288555026423229122" /&gt;&lt;/a&gt;&lt;br /&gt;Bonne année et bonne santé.&lt;br /&gt;Pour bien commencer cette nouvelle année je vous propose la traduction de l'article de &lt;a href="http://www.ambysoft.com/"&gt;Scott Ambler&lt;/a&gt; pour le &lt;a href="http://www.ddj.com/"&gt;Doctor Dobb's Journal&lt;/a&gt; sur le retour d'expérience d'IBM concernant les équipes agiles distribuées. L'agilité ne se résume pas à une petite équipe regroupée géographiquement et isolée sur son projet, Scott nous présente ici les problèmes liés à la distribution géographique et des pistes pour y remédier.&lt;br /&gt;Scott animera d'ailleurs une web conférence gratuite le 27/01/2009 à ce sujet. Pouir s'inscrire ça se passe &lt;a href="http://www.mmpubs.com/catalog/27-jan-2009-adapting-agile-for-use-with-distributed-teams-p-227.html"&gt;ici&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:477px;text-align:left" id="__ss_897408"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-the-distributed-agile-team-presentation?type=document" title="Ddj   Architecture &amp;amp;  Design   The Distributed Agile Team"&gt;Ddj   Architecture &amp;amp;  Design   The Distributed Agile Team&lt;/a&gt;&lt;object style="margin:0px" width="477" height="510"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-the-distributed-agile-team-1231336648794888-1&amp;stripped_title=ddj-architecture-design-the-distributed-agile-team-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-the-distributed-agile-team-1231336648794888-1&amp;stripped_title=ddj-architecture-design-the-distributed-agile-team-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-the-distributed-agile-team-presentation?type=document" title="View Ddj   Architecture &amp;amp;  Design   The Distributed Agile Team on SlideShare"&gt;document&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=document"&gt;Upload&lt;/a&gt; your own.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Pour ceux qui n'aiment pas slideshare, il est aussi disponible sur Google Docs &lt;a href="http://docs.google.com/Doc?id=dhk7xdkk_235g8bmhgcw"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8596261415391839889?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8596261415391839889/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2009/01/l-agile-distribuee.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8596261415391839889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8596261415391839889'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2009/01/l-agile-distribuee.html' title='L&amp;#39;équipe agile distribuée'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n-yR1DrB0m4/SWS4xs0QKsI/AAAAAAAAADQ/KTdxlDECRfk/s72-c/architecture-distribuee.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8454396143477608650</id><published>2008-12-18T08:28:00.000-08:00</published><updated>2009-03-19T01:14:32.804-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><category scheme='http://www.blogger.com/atom/ns#' term='CARA'/><title type='text'>Coding Dojo à Grenoble</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_n-yR1DrB0m4/SUp6uVVwkEI/AAAAAAAAADI/RmQQSzW0SjI/s1600-h/dojo.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_n-yR1DrB0m4/SUp6uVVwkEI/AAAAAAAAADI/RmQQSzW0SjI/s200/dojo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5281168449466306626" /&gt;&lt;/a&gt;&lt;br /&gt;Dans le cadre du &lt;a href="http://clubagile.org"&gt;CARA&lt;/a&gt;, nous organisons un Coding Dojo à Grenoble.&lt;br /&gt;Mais qu'est ce donc que cela: il s'agit d'un lieu d'entrainement (d'où le terme de dojo) pour pouvoir étudier, tester et apprendre des techniques et des langages de code. Fini la prise de risque sur un projet, venez vous entrainer dans un lieu sûr, sans risque, entouré des meilleurs professionnels de la région (c'est à dire vous ;o) ).&lt;br /&gt;Attention il ne s'agit pas d'une formation 'classique' avec un professeur et des élèves attentifs, ici tout le monde participe et tout le monde s'enrichit !!!&lt;ul&gt;&lt;li&gt;Vous rêvez d'apprendre Ruby sous Linux mais vous codez votre projet en C#.&lt;/li&gt;&lt;li&gt;Si vous parlez de langage fonctionnel à votre chef de projet il va vous regarder avec des yeux comme des soucoupes.&lt;/li&gt;&lt;li&gt;Si TDD vous évoque T'es Dans la Déprime sur un projet en cycle en V.&lt;/li&gt;&lt;li&gt;Si vous voulez vivre des sensations eXtrem Programming.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Bref, si ces phrases vous interpellent c'est qu'il est temps de venir nous rejoindre.&lt;br /&gt;&lt;br /&gt;Les informations et l'inscription se passent &lt;a href="http://clubagile.org/evenements/coding-dojo/"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8454396143477608650?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8454396143477608650/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/coding-dojo-grenoble.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8454396143477608650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8454396143477608650'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/coding-dojo-grenoble.html' title='Coding Dojo à Grenoble'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n-yR1DrB0m4/SUp6uVVwkEI/AAAAAAAAADI/RmQQSzW0SjI/s72-c/dojo.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5481276862483888087</id><published>2008-12-11T02:43:00.000-08:00</published><updated>2009-03-19T01:14:32.809-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='projet'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>MSP un an après</title><content type='html'>Il y a un plus d'un an je participais à l'aventure Mon Service Public et je réalisais avec quelques uns le kit d'intégration SSO pour l'administration française selon les protocoles de la Liberty Alliance.&lt;br /&gt;Aujourd'hui notre code passe enfin en production :o)&lt;br /&gt;Quelques liens qui en parlent :&lt;br /&gt;&lt;a href="http://www.service-public.fr/monservicepublic/index.html"&gt;Le site Mon Service Public&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.senat.fr/rap/a08-104-6/a08-104-63.html"&gt;Le Sénat&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mondepublic.fr/20081202/mon-service-publicfr-guichet-administratif-personnalise-attendu-pour-le-15-decembre/"&gt;Monde Public&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Un sacré projet qui nous a permis de valider pas mal de concepts et d'affiner les procédures de développement chez Orange Labs. Alalala la constructon d'artefacts multi-JDK sous Maven2, fut un poème ;o)&lt;br /&gt;Bon week-end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5481276862483888087?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5481276862483888087/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/msp-un-apres.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5481276862483888087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5481276862483888087'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/msp-un-apres.html' title='MSP un an après'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-7614513610291903902</id><published>2008-12-08T06:58:00.000-08:00</published><updated>2009-03-19T01:14:32.815-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>Scott Ambler sur InfoQ</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_n-yR1DrB0m4/ST5uT0JA7qI/AAAAAAAAADA/8adTJfl5EyI/s1600-h/december-08-starebig.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 380px; height: 230px;" src="http://4.bp.blogspot.com/_n-yR1DrB0m4/ST5uT0JA7qI/AAAAAAAAADA/8adTJfl5EyI/s400/december-08-starebig.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5277777100017823394" /&gt;&lt;/a&gt;&lt;br /&gt;Dans cet entretien Floyd Marinescu,responsable éditorial d'InfoQ, interroge Scott Ambler, Responsable de l'équipe pour la Mise en oeuvre des Developpements Agiles à IBM, sur l'état actuel des choses dans la communauté Agile, notamment en ce qui concerne sa mise en oeuvre, et sur les perspectives de l'Agilité.&lt;br /&gt;&lt;br /&gt;L'entretien est disponible ici: &lt;a href="http://www.infoq.com/interviews/Agile-Scott-Ambler"&gt;Scott Ambler On Agile’s Present and Future&lt;/a&gt; (38 min.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-7614513610291903902?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/7614513610291903902/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/scott-ambler-sur-infoq.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7614513610291903902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7614513610291903902'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/scott-ambler-sur-infoq.html' title='Scott Ambler sur InfoQ'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_n-yR1DrB0m4/ST5uT0JA7qI/AAAAAAAAADA/8adTJfl5EyI/s72-c/december-08-starebig.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-1442478958489516018</id><published>2008-12-02T02:46:00.000-08:00</published><updated>2009-03-19T01:14:32.821-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Lean Training avec Alan Shalloway</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_n-yR1DrB0m4/STUUrqnTKpI/AAAAAAAAACs/dmzTeS7bDxo/s1600-h/kanban_v1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_n-yR1DrB0m4/STUUrqnTKpI/AAAAAAAAACs/dmzTeS7bDxo/s400/kanban_v1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5275145278940457618" /&gt;&lt;/a&gt;&lt;br /&gt;La société &lt;a href="http://www.netobjectives.com"&gt;Net Objectives&lt;/a&gt; propose une série de webinaires gratuits sur le Lean présentés par &lt;a href="http://www.netobjectives.com/bio-alan-shalloway"&gt;Alan Shalloway&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Il s'agit d'une série de 6 session d'environ 90 minutes dont voici les sujets :&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;Session 1&lt;/span&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Introduction to Lean Software Development&lt;/span&gt;&lt;br /&gt;    * Lean as fast-flexible-flow&lt;br /&gt;    * Lean principles of software development&lt;br /&gt;    * The importance of value stream mapping&lt;br /&gt;    * Exercise: Value Stream Mapping&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;Session 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Five Reasons for Agility&lt;/span&gt;&lt;br /&gt;    * Add business value quickly&lt;br /&gt;    * Clarify needs of the customer&lt;br /&gt;    * Better project management&lt;br /&gt;    * Quick wins, quick learning&lt;br /&gt;    * Better for development&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Product Portfolio Management&lt;/span&gt;&lt;br /&gt;    * Driving from business value&lt;br /&gt;    * Minimizing work in progress&lt;br /&gt;    * Smaller projects add more value &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;Session 3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Lean as a Guide for Agile Methods&lt;/span&gt;&lt;br /&gt;    * Just In Time&lt;br /&gt;    * Contrasting Waterfall with Agility&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;Session 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;QA's role in Lean Agile Software Development&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;Session 5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How Business Analysts can help their teams&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-style:italic;"&gt;Session 6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Lean Anti-Patterns&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;pour s'inscrire ça se passe &lt;a href="http://www.netobjectives.com/free-seminar-schedule/lean-online-training-dec-2008"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-1442478958489516018?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/1442478958489516018/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/lean-training-avec-alan-shalloway.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1442478958489516018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1442478958489516018'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/12/lean-training-avec-alan-shalloway.html' title='Lean Training avec Alan Shalloway'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_n-yR1DrB0m4/STUUrqnTKpI/AAAAAAAAACs/dmzTeS7bDxo/s72-c/kanban_v1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3199085469620838404</id><published>2008-11-26T07:30:00.000-08:00</published><updated>2009-03-19T01:14:32.834-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Le retour des Exigence non fonctionnelles</title><content type='html'>&lt;a href='http://acobox.com' title='Blog Pictures | acobox.com' target=_blank&gt;&lt;img src='http://acobox.com/sites/default/files/images/Missing_square_edit.medium.gif' alt='Blog Pictures | acobox.com' title='Blog Pictures | acobox.com' border=0 hspace=10 vspace=10  align=right&gt;&lt;/a&gt;Je viens de lire un &lt;a href="http://blog.mountaingoatsoftware.com/?p=62"&gt;post&lt;/a&gt; de Mike Cohn sur la gestion des exigences non-fonctionnelles. Son contenu ainsi que ses réponses aux commentaires ne sont pas sans rappeler les articles de Scott que j'ai traduits : &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ehsavoie.com/2008/11/gestion-des-exigences-complexes.html"&gt;Gestion des exigences complexes&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.ehsavoie.com/2008/10/dpasser-les-exigences-fonctionnelles.html"&gt;Dépasser les exigences fonctionnelles&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;On voit bien qu'après la première phase d'adoption des méthodes agile, arrive le temps de la maturité et le passage à des 'gros' projets et les questions que cela soulève. En gardant l'esprit ouvert et en restant souple on passera ce cap lui aussi alors soyons Agiles.&lt;br /&gt;&lt;br /&gt;NdT: Sinon j'ai apprécié le terme contrainte plutôt qu'exigence non-fonctionnelle que je trouve un peu pataud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3199085469620838404?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3199085469620838404/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/le-retour-des-exigence-non.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3199085469620838404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3199085469620838404'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/le-retour-des-exigence-non.html' title='Le retour des Exigence non fonctionnelles'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8045585039719408047</id><published>2008-11-25T00:05:00.000-08:00</published><updated>2009-03-19T01:14:32.828-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddj'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>Gestion des exigences complexes</title><content type='html'>&lt;a href='http://acobox.com' title='Blog Pictures | acobox.com' target=_blank&gt;&lt;img src='http://acobox.com/sites/default/files/images/St_Mary_Axe_-_The_Gherkin_from_Leadenhall_St_-_Nov_2006.medium.jpg' alt='Blog Pictures | acobox.com' title='Blog Pictures | acobox.com' border=0 hspace=10 vspace=10  align=right&gt;&lt;/a&gt;La traduction du mois est de retour avec un nouvel article de &lt;a href="http://www.ambysoft.com/"&gt;Scott&lt;/a&gt; dans le &lt;a href="http://www.ddj.com"&gt;Doctor Dobb's Journal&lt;/a&gt; sur la gestion des exigences complexes. Scott nous expose ici la limitation des simples histoires d'utilisateur et les différents cas qui peuvent se produire pour lesquels il faut avoir une vision plus macroscopique du projet. La mise en œuvre des épopées ("epics")est l'une des premières solution qu'il propose mais cela ne suffit pas toujours surtout lorsque les projets grossissent.&lt;br /&gt;Bref un bon article sur le passage à l'échelle des méthodes agiles ;o)&lt;br /&gt;Bonne lecture.&lt;br /&gt;&lt;div style="width:477px;text-align:left" id="__ss_785920"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-complex-requirements-on-an-agile-project-presentation?type=document" title="Ddj   Architecture &amp;amp; Design   Complex Requirements On An Agile Project"&gt;Ddj   Architecture &amp;amp; Design   Complex Requirements On An Agile Project&lt;/a&gt;&lt;object style="margin:0px" width="477" height="510"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-complex-requirements-on-an-agile-project-1227622482717239-9&amp;stripped_title=ddj-architecture-design-complex-requirements-on-an-agile-project-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-complex-requirements-on-an-agile-project-1227622482717239-9&amp;stripped_title=ddj-architecture-design-complex-requirements-on-an-agile-project-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-complex-requirements-on-an-agile-project-presentation?type=document" title="View Ddj   Architecture &amp;amp; Design   Complex Requirements On An Agile Project on SlideShare"&gt;document&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=document"&gt;Upload&lt;/a&gt; your own.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Pour ceux qui n'aiment pas slideshare, il est aussi disponible sur Google Docs  &lt;a href="http://docs.google.com/Doc?id=dhk7xdkk_196dhz65cf8"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8045585039719408047?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8045585039719408047/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/gestion-des-exigences-complexes.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8045585039719408047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8045585039719408047'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/gestion-des-exigences-complexes.html' title='Gestion des exigences complexes'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-1440404510639698643</id><published>2008-11-18T03:36:00.000-08:00</published><updated>2009-03-19T01:14:32.871-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Agile et CMMI c'est officiel</title><content type='html'>&lt;a href='http://acobox.com' title='Blog Pictures | acobox.com' target=_blank&gt;&lt;img src='http://acobox.com/sites/default/files/images/Mountain-goats.medium.jpg' alt='Blog Pictures | acobox.com' title='Blog Pictures | acobox.com' border=0 hspace=10 vspace=10  align=right&gt;&lt;/a&gt;Depuis le temps que l'on en parle, David Anderson avait laissé entendre que c'était à l'étude mais je ne pensais pas que ça sortirait si vite. Et oui agilistes en herbe et papys des NTIC c'est fait fait, c'est officiel !!!Le SEI dans un rapport technique intitulé &lt;a href="http://www.sei.cmu.edu/publications/documents/08.reports/08tn003.html"&gt;CMMI® or Agile: Why Not Embrace Both!, Technical Note (CMU/SEI-2008-TN-003&lt;/a&gt; clarifie la position du CMMI par rapport aux pratiques Agiles: travaillons ensemble vers un meilleur développement logiciel !!!!&lt;br /&gt;Merci à&lt;br /&gt;&lt;a href="http://agilecmmi.com/"&gt;Hillel Glazer&lt;/a&gt; (Entinex, Inc.)&lt;br /&gt;Jeff Dalton (Broadsword Solutions Corporation)&lt;br /&gt;&lt;a href="http://www.agilemanagement.net/"&gt;David Anderson (David J. Anderson &amp;amp; Associates, Inc.)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.informit.com/authors/bio.aspx?a=1A147203-E647-4FF0-993E-B20296D8CC54"&gt;Mike Konrad&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sei.cmu.edu/staff/sshrum/"&gt;Sandy Shrum&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS : si vous voulez le &lt;a href="http://www.agilex.fr/2008/11/agile-et-cmmi/"&gt;retour d'Alex&lt;/a&gt; ou les commentaires de &lt;a href="http://www.qualitystreet.fr/?2008/11/17/180-agile-cmmi-le-rapprochement-officiel-et-cette-fois-c-est-le-sei-qui-vous-le-dit"&gt;QualityStreet&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-1440404510639698643?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/1440404510639698643/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/agile-et-cmmi-c-officiel.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1440404510639698643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1440404510639698643'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/agile-et-cmmi-c-officiel.html' title='Agile et CMMI c&amp;#39;est officiel'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5457072746531272849</id><published>2008-11-04T01:02:00.000-08:00</published><updated>2009-03-19T01:14:32.854-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddj'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>Flash Spécial : les Agilistes écrivent de la  documentation!</title><content type='html'>&lt;a href='http://acobox.com' title='Free blog image | acobox.com' target=_blank&gt;&lt;img src='http://acobox.com/sites/default/files/images/Fultondesign7.small.jpg' alt='Free blog image | acobox.com' title='Free blog image | acobox.com' border=0 hspace=10 vspace=10  align=left&gt;&lt;/a&gt;L'article de &lt;a href="http://www.ambysoft.com/"&gt;Scott Ambler&lt;/a&gt; intitulé &lt;a style="font-weight: bold;" href="http://www.ddj.com/architect/211201940"&gt;Newsflash: Agilists Write Documentation!&lt;/a&gt; sur &lt;a href="http://www.ddj.com/"&gt;Dr. Dobb's Journal&lt;/a&gt; remet en cause les idées reçues autour de l'Agilité:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Oui&lt;/span&gt; lorsqu'on est Agile on écrit de la documentation.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Oui&lt;/span&gt; une équipe agile modèlise.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Oui&lt;/span&gt; un projet agile est structuré autour d'une architecture.&lt;br /&gt;Je tiens à remercier Scott Ambler et Jon Erickson (du Dr. Dobb's Journal) qui ont gracieusement accepté ma requête pour pouvoir publier cette traduction.&lt;br /&gt;La voici donc :&lt;br/&gt;&lt;br /&gt;&lt;div style="width:477px;text-align:left" id="__ss_719126"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-newsflash-agilistes-write-documentation-presentation?type=document" title="DDJ - Architecture &amp;amp; Design - Newsflash - Agilistes Write Documentation"&gt;DDJ - Architecture &amp;amp; Design - Newsflash - Agilistes Write Documentation&lt;/a&gt;&lt;object style="margin:0px" width="477" height="510"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-newsflash-agilistes-write-documentation-1227622958182094-9&amp;stripped_title=ddj-architecture-design-newsflash-agilistes-write-documentation-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-newsflash-agilistes-write-documentation-1227622958182094-9&amp;stripped_title=ddj-architecture-design-newsflash-agilistes-write-documentation-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-newsflash-agilistes-write-documentation-presentation?type=document" title="View DDJ - Architecture &amp;amp; Design - Newsflash - Agilistes Write Documentation on SlideShare"&gt;document&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=document"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/documentation"&gt;documentation&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/modélisation"&gt;modélisation&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Pour ceux qui n'ont pas un compte slideshare, vous pouvez le voir &lt;a href="http://docs.google.com/Doc?id=dhk7xdkk_187fvdh84dq"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5457072746531272849?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5457072746531272849/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/flash-special-les-agilistes-ecrivent-de.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5457072746531272849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5457072746531272849'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/flash-special-les-agilistes-ecrivent-de.html' title='Flash Spécial : les Agilistes écrivent de la  documentation!'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-6824121357790315897</id><published>2008-11-03T00:02:00.000-08:00</published><updated>2009-03-19T01:14:32.877-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Développeur : l'artiste du 21ème siècle</title><content type='html'>&lt;a href='http://acobox.com' title='Free blog image | acobox.com' target=_blank&gt;&lt;img src='http://acobox.com/sites/default/files/images/chinesebook.preview.jpg' alt='Free blog image | acobox.com' title='Free blog image | acobox.com' border=0 hspace=10 vspace=10  align="right"&gt;&lt;/a&gt;Vendredi soir je surfais tranquillement sur Infoq lorsque j'ai vu une présentation intitulée &lt;a href="http://www.infoq.com/presentations/lego-hypothesis"&gt;&lt;span style="font-style:italic;"&gt;The Lego Hypothesis&lt;/span&gt;&lt;/a&gt;. Les lego ayant bercés mon enfance, j'ai commencé à regarder la présentation du néo-zélandais &lt;a href="http://www.victoria.ac.nz/engineering/staff/james-noble.aspx"&gt;James Noble&lt;/a&gt;. La présentation était intéressante sur plusieurs points : tout d'abord il nous présentait la naissance de l'ingénierie logiciel en 1968, puis la structure de gros programmes dans différents langages. Ce qu'il démontre c'est que nos programmes sont structurés comme des romans. Et là je ne peux m'empêcher de penser à cette notion qui me taraude depuis longtemps sur le processus de création et cette intuition qui fait que je pense depuis longtemps qu'un bon développeur est avant tout un artiste (ou un bâtisseur de cathédrales). De nombreux articles ont été écrits à ce sujet mais là on avait une 'preuve' formelle. &lt;br /&gt;Finalement quand on écrit un programme on est le 'nègre' du notre client, essayant d'écrire sa biographie avec ses &lt;span style="font-weight:bold;"&gt;histoires (d'utilisateur)&lt;/span&gt;. Or on n'imagine pas qu'une telle écriture se fasse d'un seul jet, que l'auteur après quelques heures de discussion se mette à écrire le roman qui sera lu une seule fois juste avant la publication.&lt;br /&gt;Si on poursuit la métaphore on voit bien qu'il va falloir écrire des chapitres que l'on va faire relire au fur et à mesure à notre client pour vérifier qu'on reste bien conforme à ce qu'il attend. Qui a prononcé le mot '&lt;span style="font-weight:bold;"&gt;itérations&lt;/span&gt;' ? ;o).&lt;br /&gt;On peut surement améliorer le parallèle mais tout ceci montre avec évidence, s'il en fallait encore, la pertinence des méthodes agiles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-6824121357790315897?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/6824121357790315897/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/developpeur-l-du-21eme-siecle.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/6824121357790315897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/6824121357790315897'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/11/developpeur-l-du-21eme-siecle.html' title='Développeur : l&amp;#39;artiste du 21ème siècle'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3342320500661490148</id><published>2008-10-30T02:58:00.000-07:00</published><updated>2009-03-19T01:14:32.883-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Quittons l'esprit Chimpanzé pour les Bonobos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_n-yR1DrB0m4/SQmHVDpDLbI/AAAAAAAAACc/f_IwYJyqylU/s1600-h/bonobo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 225px;" src="http://3.bp.blogspot.com/_n-yR1DrB0m4/SQmHVDpDLbI/AAAAAAAAACc/f_IwYJyqylU/s320/bonobo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5262886435383618994" /&gt;&lt;/a&gt;&lt;br /&gt;Hier j'ai eu la chance de participer à un webinaire: "Are Agilists the Bonobos of Software Development?" animé par &lt;a href="http://www.lindarising.org/"&gt;Linda Rising&lt;/a&gt; et organisé par l'&lt;a href="http://www.itmpi.org/"&gt;ITMPI&lt;/a&gt;. Ce séminaire avait été présenté à Agile 2006 et on trouve une interview qui en reprend les principaux points sur &lt;a href="http://www.infoq.com/news/2007/05/linda-rising-agile-bonobos"&gt;InfoQ&lt;/a&gt;.&lt;br/&gt;&lt;br /&gt;Elle y compare la culture des Chimpanzés (patriarcale, avec un mâle dominant organisée autour du rapport de force) et celle des Bonobos (plus douce et plus communautaire). Elle montre ensuite comment les pratiques agiles (notamment le pair-programming) relèvent plus de la culture Bonobo alors que les systèmes hiérarchiques eux sont plus chimpanzés. Il semblerait qu'appliquer les techniques bonobo permette un meilleur flot d'informations et une meilleure confiance en soi. Éléments qui manquent pour une féminisation du développement informatique.&lt;br/&gt;&lt;br /&gt;Une présentation bien rafraichissante en ces temps de pluie et de brouillard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3342320500661490148?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3342320500661490148/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/quittons-l-chimpanze-pour-les-bonobos.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3342320500661490148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3342320500661490148'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/quittons-l-chimpanze-pour-les-bonobos.html' title='Quittons l&amp;#39;esprit Chimpanzé pour les Bonobos'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_n-yR1DrB0m4/SQmHVDpDLbI/AAAAAAAAACc/f_IwYJyqylU/s72-c/bonobo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-4583928512818117558</id><published>2008-10-27T08:22:00.000-07:00</published><updated>2009-03-19T01:14:32.890-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Qui apporte la glue technique sur un projet Agile ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_n-yR1DrB0m4/SQXfpfBq8ZI/AAAAAAAAACU/gMxyWbAYgYA/s1600-h/hysteria_b000001fky.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 301px; height: 300px;" src="http://3.bp.blogspot.com/_n-yR1DrB0m4/SQXfpfBq8ZI/AAAAAAAAACU/gMxyWbAYgYA/s320/hysteria_b000001fky.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5261857643448430994" /&gt;&lt;/a&gt;&lt;br /&gt;Un petit billet que m'a inspiré l'article suivant: &lt;br /&gt;&lt;a href="http://www.fuzzylizard.com/archives/2008/10/21/983/"&gt;Who plays the role of technical producer on Agile teams?&lt;/a&gt;.&lt;br/&gt;&lt;br /&gt;Ce n'est pas sans rappeler la conversation que j'avais eue avec Hervé. Lorsque je lis de nombreux articles sur l'Agilité et ses corolaires je me pose souvent la question "Mais qui s'occupe de l'aspect technique de l'introduction de l'Agilité dans l'équipe ?". On a des coaches agiles, des scrum masters, ... mais qui valide que l'équipe applique correctement le TDD ? Qui vérifie la qualité du code ?&lt;br /&gt;Certains me répondront surement que c'est là la responsabilité de l'équipe et j'en conviens tout à fait. Mais si l'équipe doit, en plus d'apprendre à se gérer elle-même, mettre en oeuvre des bonnes pratiques qui sont tout sauf évidentes (le tests first par exemple, l'intégration continue, les mesures de qualité de code, l'analyse statique, etc.) elle ne s'en sortira pas bien. C'était d'ailleurs la conclusion d'Hervé (et je suis bien d'accord avec lui) : &lt;b&gt;&lt;span style="font-style:italic;"&gt;il faut un leader technique, pendant du coach agile, sur les projets agiles surtout dans les premières mises en oeuvre de l'agilité par une équipe&lt;/span&gt;&lt;/b&gt;.&lt;br/&gt;&lt;br /&gt;En bref, pour paraphraser l'article du début, avoir le meilleur groupe de musique du monde ne suffit pas, il faut aussi un bon producteur.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-4583928512818117558?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/4583928512818117558/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/qui-apporte-la-glue-technique-sur-un.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4583928512818117558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4583928512818117558'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/qui-apporte-la-glue-technique-sur-un.html' title='Qui apporte la glue technique sur un projet Agile ?'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_n-yR1DrB0m4/SQXfpfBq8ZI/AAAAAAAAACU/gMxyWbAYgYA/s72-c/hysteria_b000001fky.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-9140808132919664705</id><published>2008-10-16T07:02:00.000-07:00</published><updated>2009-03-19T01:14:32.896-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Netbeans 10 ans déjà</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.netbeans.org/birthday/index.html"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px;" src="http://www.netbeans.org/images/articles/birthday/cake-180.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Cela fait 10 ans que &lt;a href="www.netbeans.org"&gt;Netbeans&lt;/a&gt; existe :o))&lt;br /&gt;Je regarde en arrière et je me rends compte à quel point le temps a passé.&lt;br /&gt;Le temps où avoir 512 Mo de RAM sur un PC était un luxe. Eclipse n'existait pas et on avait VisualAge écrit en Smalltalk. Ça ramait dans tous les sens, les EJB 2.0 et 2.1 nous faisaient des misères, ....&lt;br /&gt;Joyeux anniversaire Netbeans, pour télécharger ça se passe &lt;a href="http://www.netbeans.org/downloads/index.html"&gt;ici&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-9140808132919664705?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/9140808132919664705/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/netbeans-10-ans-deja.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/9140808132919664705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/9140808132919664705'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/netbeans-10-ans-deja.html' title='Netbeans 10 ans déjà'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2461559929218197546</id><published>2008-10-15T05:08:00.000-07:00</published><updated>2009-03-19T01:14:32.906-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='présentation'/><title type='text'>Agile Tour Grenoble 2008: Retrospective</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.iwatchstuff.com/2007/04/20/Big-Lebowski-web.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px;" src="http://www.iwatchstuff.com/2007/04/20/Big-Lebowski-web.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;J'ai pu participer à 3 des présentations de l'Agile Tour 2008 à Grenoble.&lt;br /&gt;Tout d'abord :&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;eXtrem Programming – Retour d'expérience après 6 années de pratiques&lt;/span&gt; - &lt;span style="font-style:italic;"&gt;J-M. Voisin, Allianz Global Investor&lt;/span&gt; : un retour d'expérience fort intéressant où j'ai pu m'apercevoir qu'Allianz était dans la même ligne qu'Orange Labs sur le choix des outils et des pratiques. Le chiffre du jour : un projet en XP entraine un surcoût de 15% à la réalisation mais l'équipe qui passait de 50% de son temps en maintenance en est à moins de 10% (environ 1 bug par mois).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Senteurs Agiles&lt;/span&gt; - &lt;span style="font-style:italic;"&gt;T.Lissajoux, Octo&lt;/span&gt; : un atelier vraiment enrichissant et un jeu de cartes tout simplement génial. J'ai hâte de pouvoir en obtenir une version :o)).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Agilité et Avionique&lt;/span&gt; – &lt;span style="font-style:italic;"&gt;E. Chenu, Thales Avionics&lt;/span&gt; : depuis le temps que je voulais voir Emmanuel en vrai. C'est là qu'on voit le gouffre entre le monde de l'avionique et celui du SI. L'expression 'application critique' prend tout son sens. Une expérience intéressante car elle donne des clefs pour convaincre nos chers décideurs.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2461559929218197546?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2461559929218197546/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-tour-grenoble-2008-retrospective.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2461559929218197546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2461559929218197546'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-tour-grenoble-2008-retrospective.html' title='Agile Tour Grenoble 2008: Retrospective'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-854310238823840076</id><published>2008-10-13T00:43:00.000-07:00</published><updated>2009-03-19T01:14:32.912-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Master he is  breathing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.filmreference.com/images/sjff_03_img1400.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px;" src="http://www.filmreference.com/images/sjff_03_img1400.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Et oui le voilà, il est tout beau, il est tout chaud notre premier plugin Maven est enfin sorti en version 1.0.&lt;br /&gt;J'espère que vous allez tous pouvoir en profiter :o))&lt;br /&gt;Ça se passe &lt;a href="http://mojo.codehaus.org/scmchangelog-maven-plugin/"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-854310238823840076?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/854310238823840076/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/master-he-is-breathing.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/854310238823840076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/854310238823840076'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/master-he-is-breathing.html' title='Master he is  breathing'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3974125494472659113</id><published>2008-10-10T05:49:00.000-07:00</published><updated>2009-03-19T01:14:32.918-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='présentation'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><title type='text'>Agile Grenoble 2008 - Quelques photos.....</title><content type='html'>Voici &lt;a href="http://www.flickr.com/photos/23117434@N00/"&gt;quelques photos prises&lt;/a&gt; par &lt;a href="http://www.agilex.fr/"&gt;Alexandre Boutin&lt;/a&gt;, dont ces deux là où nous sommes en pleine action avec Rémy ;o) :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3039/2928325645_c37cdde387.jpg?v=0"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px;" src="http://farm4.static.flickr.com/3039/2928325645_c37cdde387.jpg?v=0" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3007/2928325237_3aef463415.jpg?v=0"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px;" src="http://farm4.static.flickr.com/3007/2928325237_3aef463415.jpg?v=0" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Devinez qui travaille chez Orange Labs et qui travaille chez Silverpeas ;o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3974125494472659113?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3974125494472659113/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-grenoble-2008-quelques-photos.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3974125494472659113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3974125494472659113'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-grenoble-2008-quelques-photos.html' title='Agile Grenoble 2008 - Quelques photos.....'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8813971306119616951</id><published>2008-10-10T00:31:00.000-07:00</published><updated>2009-03-19T01:14:32.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='présentation'/><category scheme='http://www.blogger.com/atom/ns#' term='hudson'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Agile Tour Grenoble 2008 - les slides</title><content type='html'>En attendant la rétrospective voici les slides que nous avons présentés Rémy et moi-même sur le retour d'expérience de la mise en place d'outils d'ingénierie logicielle à Orange Labs :&lt;br /&gt;&lt;br /&gt;La présentation :&lt;br /&gt;&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dhk7xdkk_16dt5v7b4p&amp;amp;size=l' frameborder='0' width='700' height='559'&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sinon les documents sont aussi disponibles sur slideshare (pour ceux qui ont un compte) :&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;en &lt;a href="http://www.slideshare.net/ehsavoie/at2008-grenoble-hugonnet-sanlaville-public-presentation-648829/download"&gt;pdf&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;en &lt;a href="http://www.slideshare.net/ehsavoie/at2008-grenoble-hugonnet-sanlaville-public-presentation-648830/download"&gt;powerpoint&lt;/a&gt; pour ceux qui veulent profiter des animations.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8813971306119616951?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8813971306119616951/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-tour-grenoble-2008-les-slides.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8813971306119616951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8813971306119616951'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-tour-grenoble-2008-les-slides.html' title='Agile Tour Grenoble 2008 - les slides'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2284676425347544464</id><published>2008-10-06T00:48:00.000-07:00</published><updated>2009-03-19T01:14:32.861-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddj'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>Dépasser les exigences fonctionnelles sur les projets de développement Agile</title><content type='html'>L'article de &lt;a href="http://www.ambysoft.com/"&gt;Scott Ambler&lt;/a&gt; intitulé&lt;a style="font-weight: bold;" href="http://www.ddj.com/architect/210601918"&gt;Beyond Functional Requirements On Agile Projects&lt;/a&gt; sur &lt;a href="http://www.ddj.com/"&gt;Dr. Dobb's Journal&lt;/a&gt; est très intéressant car il ne se contente pas de s'occuper de la partie réalisation au jour le jour d'un projet mais le prend dans sa globalité et présente différentes stratégies pour prendre en compte les exigences non fonctionnelles.&lt;br /&gt;J'ai donc décidé de le traduire afin qu'il soit relayé auprès des communautés francophones.&lt;br /&gt;Je tiens à remercier Scott Ambler et Jon Erickson (du Dr. Dobb's Journal) qui ont gracieusement accepté ma requête pour pouvoir publier cette traduction.&lt;br /&gt;La voici donc : &lt;a href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-beyond-functional-requirements-on-agile-projects-presentation/"&gt;Dépasser les exigences fonctionnelles sur les projets de développement Agile&lt;/a&gt;&lt;br /&gt;&lt;div style="width:477px;text-align:left" id="__ss_638449"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-beyond-functional-requirements-on-agile-projects-presentation?type=document" title="Ddj   Architecture &amp;amp; Design   Beyond Functional Requirements On Agile Projects"&gt;Ddj   Architecture &amp;amp; Design   Beyond Functional Requirements On Agile Projects&lt;/a&gt;&lt;object style="margin:0px" width="477" height="510"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-beyond-functional-requirements-on-agile-projects-1223279295126037-9&amp;stripped_title=ddj-architecture-design-beyond-functional-requirements-on-agile-projects-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=ddj-architecture-design-beyond-functional-requirements-on-agile-projects-1223279295126037-9&amp;stripped_title=ddj-architecture-design-beyond-functional-requirements-on-agile-projects-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/ddj-architecture-design-beyond-functional-requirements-on-agile-projects-presentation?type=document" title="View Ddj   Architecture &amp;amp; Design   Beyond Functional Requirements On Agile Projects on SlideShare"&gt;document&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=document"&gt;Upload&lt;/a&gt; your own.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Suite au commentaire de Miguel :&lt;br /&gt;Pour ceux qui n'ont pas un compte slideshare, vous pouvez le voir &lt;a href="http://docs.google.com/Doc?id=dhk7xdkk_14gs28xxpr"&gt;ici&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2284676425347544464?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2284676425347544464/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/depasser-les-exigences-fonctionnelles.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2284676425347544464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2284676425347544464'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/depasser-les-exigences-fonctionnelles.html' title='Dépasser les exigences fonctionnelles sur les projets de développement Agile'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8678724331602264631</id><published>2008-10-06T00:18:00.000-07:00</published><updated>2009-03-19T01:14:32.935-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='présentation'/><title type='text'>Agile Tour Grenoble 2008</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agiletour.com/sites/default/files/logo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://www.agiletour.com/sites/default/files/logo.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Il passera à Grenoble cette année : pour une fois qu'on n'a pas un évènement uniquement parisien. J'ai la grande chance de présenter avec Rémy nos expériences à &lt;a href="http://www.francetelecom.com/fr_FR/groupe/presence/pays/france/france-lab.html"&gt;Orange Labs&lt;/a&gt; pour mettre en place des outils facilitant le développement Agile.&lt;br /&gt;Pour les horaires ça se trouve &lt;a href="http://www.agiletour.com/grenoble_programme.html"&gt;ici&lt;/a&gt;. Nous serons à la séance de 17h15 à 18h00 dans l'Amphi Simplicité.&lt;br /&gt;Pour venir suivez le guide &lt;a href="http://www.agiletour.com/grenoble_lieuacces.html"&gt;ici&lt;/a&gt;.&lt;br /&gt;@jeudi donc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8678724331602264631?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8678724331602264631/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-tour-grenoble-2008.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8678724331602264631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8678724331602264631'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/10/agile-tour-grenoble-2008.html' title='Agile Tour Grenoble 2008'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-601687370910395095</id><published>2008-09-29T06:53:00.000-07:00</published><updated>2009-03-19T01:14:32.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Changement d'avatar</title><content type='html'>Comme me l'a fait remarquer Rémy mon joyeux avatarn'était pas sous licence LGPL mais sous  Creative Commons by-nc-sa. Ce qui signifie que je me devais de signaler qui en était l'auteur et le site d'origine (sous l'image), que l'usage commercial en était prohibé. Bref ça devenait compliqué surtout quand on essaye d'être cohérent et de l'utiliser partout.&lt;br /&gt;Je reviens donc à mes premières amours (licence poétique) et me revoilà chimiste et libre. J'en remercie Batux, l'auteur et son choix de licence.&lt;br /&gt;Je retourne à mes slides car il ne reste plus qu'une grosse semaine avant l'heure fatidique.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-601687370910395095?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/601687370910395095/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/changement-d.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/601687370910395095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/601687370910395095'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/changement-d.html' title='Changement d&amp;#39;avatar'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-6235431067424447247</id><published>2008-09-25T00:27:00.000-07:00</published><updated>2009-03-19T01:14:32.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Bad code m'a tuer</title><content type='html'>Etre professionnel c'est faire du bon code quitte à tricher et à ne pas en avertir son chef. Voilà une philosophie qui me parle :o))&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/6Va55HGJtgc" type="application/x-shockwave-flash" width="400" height="240" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Our industry is plagued by an epidemic of very bad code.&lt;/blockquote&gt;&lt;br /&gt;Robert Martin (known as Uncle Bob), founder of ObjectMentor.&lt;br /&gt;Uncle Bob rulezzzzzzzzzzzzz :o)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.jaoo.dk/2008/06/19/is-it-professional-to-cheat-the-boss/"&gt;La source JAOO.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-6235431067424447247?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/6235431067424447247/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/bad-code-m-tuer.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/6235431067424447247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/6235431067424447247'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/bad-code-m-tuer.html' title='Bad code m&amp;#39;a tuer'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-4239682413969432239</id><published>2008-09-22T02:15:00.000-07:00</published><updated>2009-03-19T01:14:32.958-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Agile s'exporte en dehors de l'informatique</title><content type='html'>C'était une tendance que l'on a observé à &lt;a href="http://submissions.agile2008.org/node/2781"&gt;l'Agile 2008&lt;/a&gt; dont voici les commentaires de ceux qui ont eu la chance d'y participer : &lt;a href="http://agilethinking.net/blog/2008/09/06/fashion-cycle/"&gt;agilethinking&lt;/a&gt; et &lt;a href="http://lyssaadkins.wordpress.com/2008/08/11/deep-learning-at-agile-2008/"&gt;Lyssa Adkins&lt;/a&gt;.&lt;br /&gt;Lors de ma discussion post-présentation, j'ai été surpris de constater que chez nous cela se pratique aussi (déjà devrais je dire vu que l'on a souvent plusieurs années de retard sur les USA). J'y ai rencontré un chef de projet qui essayait de mettre l'Agilité en oeuvre dans le monde du BTP. Bien sûr moyennant une adaptation du vocabulaire ;o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-4239682413969432239?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/4239682413969432239/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/agile-s-en-dehors-de-l.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4239682413969432239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4239682413969432239'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/agile-s-en-dehors-de-l.html' title='Agile s&amp;#39;exporte en dehors de l&amp;#39;informatique'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-668209381396945228</id><published>2008-09-19T08:08:00.000-07:00</published><updated>2009-03-19T01:14:32.940-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='présentation'/><title type='text'>Les slides</title><content type='html'>Je vais essayer de retravailler tout cela après l'Agile Tour, histoire d'enlever le superflu ;o) et pour que ça rende mieux :&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_607248"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/industrialisation-du-logiciel-introduction-et-bonnes-pratiques-presentation?type=powerpoint" title="Industrialisation Du Logiciel  - Introduction Et Bonnes Pratiques"&gt;Industrialisation Du Logiciel  - Introduction Et Bonnes Pratiques&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=industrialisation-du-logiciel-introduction-et-bonnes-pratiques-v12-1221836455203728-9&amp;stripped_title=industrialisation-du-logiciel-introduction-et-bonnes-pratiques-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=industrialisation-du-logiciel-introduction-et-bonnes-pratiques-v12-1221836455203728-9&amp;stripped_title=industrialisation-du-logiciel-introduction-et-bonnes-pratiques-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/ehsavoie/industrialisation-du-logiciel-introduction-et-bonnes-pratiques-presentation?type=powerpoint" title="View Industrialisation Du Logiciel  - Introduction Et Bonnes Pratiques on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/agile"&gt;agile&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/scrum"&gt;scrum&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-668209381396945228?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/668209381396945228/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/les-slides.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/668209381396945228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/668209381396945228'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/les-slides.html' title='Les slides'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-9094365940543195758</id><published>2008-09-19T01:58:00.000-07:00</published><updated>2009-03-19T01:14:32.967-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='présentation'/><title type='text'>Références</title><content type='html'>Voici les références que j'ai citées lors de ma présentation :&lt;br /&gt;&lt;a href=" http://www.crisp.se/henrik.kniberg/"&gt;Henrik Kniberg&lt;/a&gt; et son fameux Scrum form the trenches :&lt;br /&gt;&lt;a href="http://blog.crisp.se/henrikkniberg/"&gt;http://blog.crisp.se/henrikkniberg/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.agilemanagement.net/Articles/Weblog/blog.html"&gt;David Anderson&lt;/a&gt; et sa présentation à l'Agile 2008 pour une mise en place des kanbans Lean pour ajouter une chaine de pull à de l'Agile classique : &lt;a href="http://www.infoq.com/presentations/Agile-Directions-David-Anderson"&gt;la présentation&lt;/a&gt; et &lt;a href="http://wiki.aardrock.com/Future_Directions_for_Agile"&gt;la transcription partielle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Mary Poppendieck pour la partie&lt;a href="http://www.infoq.com/presentations/poppendieck-agile-leadership"&gt; management et lean&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://video.google.com/videoplay?docid=-5105910452864283694&lt;br /&gt;http://www.infoq.com/presentations/poppendieck-agile-leadership&lt;br /&gt;http://www.infoq.com/interviews/poppendieck-lean-2007&lt;br /&gt;&lt;br /&gt;Mike Cohn pour la gestion du &lt;a href="http://www.infoq.com/presentations/prioritizing-your-product-backlog-mike-cohn"&gt;backlog&lt;/a&gt;.&lt;br /&gt;Et enfin Scott Ambler (dont je parle 2 billets plus bas) sur &lt;a href="http://www.infoq.com/presentations/Agile-in-Practice-Scott-Ambler"&gt;l'état de l'Agile dans le monde de l'informatique&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Et enfin &lt;a href="http://emmanuelchenu.blogspot.com/"&gt;Emmanuel Chenu&lt;/a&gt; pour sa mise en oeuvre de l'Agilité et de Scrum.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-9094365940543195758?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/9094365940543195758/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/references.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/9094365940543195758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/9094365940543195758'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/references.html' title='Références'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5664964513257660833</id><published>2008-09-16T08:32:00.000-07:00</published><updated>2009-03-19T01:14:32.849-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>Scott Ambler</title><content type='html'>Je vous ai déjà parlé à de nombreuses reprises de ce cher canadien &lt;a href="http://www.ambysoft.com"&gt;Scott Ambler&lt;/a&gt;. Il était présent à Agile 2008 (lui :-( ) et a donné quelques chiffres clef sur la communauté Agile glanés à partir de l'étude du &lt;a href="http://www.ddj.com/architect/210200501"&gt;Doctor Dobb's Journal&lt;/a&gt;. &lt;br /&gt;La présentation est visible en ligne sur &lt;a href="http://www.infoq.com/presentations/Agile-in-Practice-Scott-Ambler"&gt;InfoQ&lt;/a&gt; et on peut trouver une partie des slides &lt;a href="http://www.ambysoft.com/surveys/practicesPrinciples2008.html"&gt;ici&lt;/a&gt;.&lt;br /&gt;J'attends avec impatience son prochain article dans lequel il devrait nous fournir une analyse encore plus complète de ses chiffres. Une nouvelle traduction en perspective ;o).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5664964513257660833?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.infoq.com/presentations/Agile-in-Practice-Scott-Ambler' title='Scott Ambler'/><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5664964513257660833/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/scott-ambler.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5664964513257660833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5664964513257660833'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/scott-ambler.html' title='Scott Ambler'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8168961217209595533</id><published>2008-09-16T05:48:00.000-07:00</published><updated>2009-03-19T01:14:32.973-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Ma première conférence</title><content type='html'>En attendant la superbe conférence à l'Agile Tour Grenoble 2008 de Rémy et moi-même sur le retour d'expérience d'Orange Labs quant à la mise au point autour de &lt;a href="http://maven.apache.org"&gt;Maven 2&lt;/a&gt; d'une forge à logiciels Agile, je vais donner ce jeudi ma toute première conférence au &lt;a href="http://www.cesi.fr"&gt;CESI&lt;/a&gt; à Lyon.&lt;br /&gt;Je compte y aborder l'Agilité surtout d'un point de vue développeur. Hélas je n'ai pas vu la conclusion &lt;a href="http://blog.objectmentor.com/articles/category/uncle-bobs-blatherings"&gt;d'Uncle Bob&lt;/a&gt;, un des mentors que j'adore. J'ai hâte de voir ça et de lire son &lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"&gt;Clean Code: A Handbook of Agile Software Craftsmanship&lt;/a&gt; où on trouvera encore plein de sources d'inspiration pour le codeur de base que je suis.&lt;br /&gt;@jeudi donc les lyonnais.&lt;br /&gt;@bientôt pour les autres.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8168961217209595533?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8168961217209595533/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/ma-premiere-conference.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8168961217209595533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8168961217209595533'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/ma-premiere-conference.html' title='Ma première conférence'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5250730217580103512</id><published>2008-09-11T04:16:00.000-07:00</published><updated>2009-03-19T01:14:32.980-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><title type='text'>Humour à 2 roupies .....</title><content type='html'>&lt;object width="400" height="370"&gt;&lt;param name="movie" value="http://www.grapheine.com/bombaytv/bt.swf?code=ba6a1eddbc7bd0db58ac5e2ab4b616e6"&gt;&lt;/param&gt;&lt;embed src="http://www.grapheine.com/bombaytv/bt.swf?code=ba6a1eddbc7bd0db58ac5e2ab4b616e6" type="application/x-shockwave-flash" width="400" height="370" allowScriptAccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5250730217580103512?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5250730217580103512/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/humour-2-roupies.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5250730217580103512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5250730217580103512'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/humour-2-roupies.html' title='Humour à 2 roupies .....'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2882593804776856017</id><published>2008-09-03T07:32:00.000-07:00</published><updated>2009-03-19T01:14:32.986-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'></title><content type='html'>15 jours sans posts, et pourtant je n'ai pas chomé ;o), je vous propose donc quelques présentations (in English).&lt;br /&gt;La présentation de David Anderson : &lt;a href="http://www.infoq.com/presentations/Agile-Directions-David-Anderson"&gt;Future Directions for Agile&lt;/a&gt; lors de la conférence Agile 2008 est vraiment excellente.&lt;br /&gt;Ses réflexions sur l'évolution de l'agilité et l'intégration dans un contexte d'entreprise vont dans le même sens (de mon point de vue) que les remarques de Scott Ambler dont je vous recommande la newsletter sur Doctor Dobb's Journal. La présentation &lt;a href=" http://www.parleys.com/display/PARLEYS/Home#talk=8094029;title=Evolving%20Agile;slide=1"&gt;Evolving Agile&lt;/a&gt; de Scott lors de Javapolis 2007 vaut aussi le coup d'oeil.&lt;br /&gt;Bons visionnages&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2882593804776856017?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2882593804776856017/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/15-jours-sans-posts-et-pourtant-je-nai.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2882593804776856017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2882593804776856017'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/09/15-jours-sans-posts-et-pourtant-je-nai.html' title=''/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-503444443089259482</id><published>2008-08-12T06:29:00.000-07:00</published><updated>2009-03-19T01:14:32.992-07:00</updated><title type='text'>Humour Agile</title><content type='html'>Juste parce que ça m'a fait sourire en ces temps d'acronymes à tire-la-rigo:&lt;br /&gt;&lt;a href="http://www.scottberkun.com/blog/2007/asshole-driven-development/"&gt;Assole Driven Development&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-503444443089259482?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/503444443089259482/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/08/humour-agile.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/503444443089259482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/503444443089259482'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/08/humour-agile.html' title='Humour Agile'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-8511393344800976157</id><published>2008-08-01T06:25:00.000-07:00</published><updated>2009-03-19T01:14:32.842-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ddj'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scott ambler'/><title type='text'>Les projets au forfait vont ils à l'encontre de l'éthique ?</title><content type='html'>L'article de &lt;a href="http://www.ambysoft.com/"&gt;Scott Ambler&lt;/a&gt; intitulé  &lt;a href="http://www.ddj.com/architect/209101238"&gt;Is   Fixed-Price   Software  Development  &lt;br /&gt;Unethical?&lt;/a&gt; sur &lt;a href="http://www.ddj.com"&gt;Dr. Dobb's Journal&lt;/a&gt; m'est appau comme une révélation. Il donne enfin une liste d'arguments chiffrés pour nous inciter à quitter le monde du projet au forfait 'classique' (où tout est figé).&lt;br /&gt;J'ai donc décidé de le traduire afin qu'il soit relayé auprès des communautés francophones.&lt;br /&gt;Je tiens à remercier Scott Ambler et Jon Erickson (du Dr. Dobb's Journal) qui ont gracieusement accepté ma requête pour pouvoir publier cette traduction.&lt;br /&gt;La voici donc : &lt;a href="http://docs.google.com/Doc?id=dhk7xdkk_13f3nmntws"&gt;Les projets au forfait vont ils à l'encontre de l'éthique ?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-8511393344800976157?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/8511393344800976157/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/08/les-projets-au-forfait-vont-ils-l-de-l.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8511393344800976157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/8511393344800976157'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/08/les-projets-au-forfait-vont-ils-l-de-l.html' title='Les projets au forfait vont ils à l&amp;#39;encontre de l&amp;#39;éthique ?'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-4333089557954111896</id><published>2008-07-28T02:48:00.000-07:00</published><updated>2009-03-19T01:14:32.998-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>Mon premier DOJO</title><content type='html'>Vendredi soir j'ai pu participer à mon premier &lt;a href="http://www.codingdojo.org/"&gt;DOJO &lt;/a&gt;de code grâce à deux étudiants brésiliens d'&lt;a href="http://www.ime.usp.br/~gold"&gt;Alfredo Goldman&lt;/a&gt; : Hugo et Mariana.&lt;br /&gt;Mais qu'est ce qu'un dojo de code me direz vous ?&lt;br /&gt;Ironiquement c'est un concept français qui revient dans nos contrées. En effet le premier dojo fut créé à Paris (il est d'ailleurs toujours en activité) par &lt;a href="http://bossavit.com/dojo"&gt;Laurent Bossavit&lt;/a&gt;.&lt;br /&gt;Vendredi soir, nous étions donc une petite dizaine dans une salle de l'Ensimag encore allumée en ce mois de vacances. Pour commencer le sujet proposé était une introduction à Ruby et au Test Driven Developpement (via &lt;a href="http://rspec.info/"&gt;rspec&lt;/a&gt;).&lt;br /&gt;L'audience était consistuée à la fois de membres du laboratoire qui nous accueillait ainsi que de quelques développeurs que j'oserai qualifier de professionnels ;o).&lt;br /&gt;Une bonne ambiance qui nous a fait ainsi entrer dans le monde Ruby. C'était en tout cas un réel plaisir d'apprendre ainsi.&lt;br /&gt;Alfredo j'attends avec impatience les supports et les liens afin qu'on puisse remettre cela à la rentrée.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-4333089557954111896?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/4333089557954111896/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/mon-premier-dojo.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4333089557954111896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4333089557954111896'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/mon-premier-dojo.html' title='Mon premier DOJO'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5182237110008481255</id><published>2008-07-25T06:22:00.000-07:00</published><updated>2009-03-19T01:14:33.005-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>Documentation documentation ....</title><content type='html'>Les aller-retours permanents entre le code et la documentation sont pour moi une perte de temps et d'énergie (Muda selon Lean). D'ailleurs c'est pour cette raison qu'XP préconise de réduire au maximum la documentation et de la faire au plus près du code.&lt;br /&gt;Qui n'a pas utilisé le retro-engineering des outils UML pour produire les diagrammes nécessaires plutôt que de les maintenir au fur et à mesure du développement ?&lt;br /&gt;D'où l'idée qui coniste à produire automatiquement la documentation à partir du code, ainsi on aurait une documentation continue et toujours en adéquation avec le code. C'est d'ailleurs ce que propose Paul Duvall dans son dernier article &lt;a href="http://www.ibm.com/developerworks/java/library/j-ap06108/index.html?ca=drs-"&gt;"Automation for the people: Pushbutton documentation"&lt;/a&gt;.&lt;br /&gt;Dans le même esprit j'avais déjà expérimenté &lt;a href="http://www.umlgraph.org/"&gt;UMLGraph&lt;/a&gt; mais cela restait laborieux. L'outil &lt;a href="http://code.google.com/p/apiviz/"&gt;Apiviz&lt;/a&gt; semble un pas en avant vers la bonne solution. J'espère le tester rapidement ;o)&lt;br /&gt;Bon week-end.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5182237110008481255?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5182237110008481255/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/documentation-documentation.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5182237110008481255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5182237110008481255'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/documentation-documentation.html' title='Documentation documentation ....'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-1865596379952429595</id><published>2008-07-24T00:55:00.000-07:00</published><updated>2009-03-19T01:14:33.011-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='hudson'/><title type='text'>Introduction à Hudson</title><content type='html'>Il y a quelques mois j'avais écrit une introduction à l'installation d'&lt;a href="https://hudson.dev.java.net"&gt;Hudson&lt;/a&gt; mais je n'arrivais pas à la partager sur ce blog :o(.&lt;br /&gt;Ce matin j'ai eu une illumination et grâce à GoogleDocs la voici :&lt;br /&gt;&lt;a href="http://docs.google.com/Doc?id=dhk7xdkk_2fpsgdzgk"&gt;Mise en place de Hudson&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-1865596379952429595?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/1865596379952429595/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/introduction-hudson.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1865596379952429595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1865596379952429595'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/introduction-hudson.html' title='Introduction à Hudson'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-9149508424786643291</id><published>2008-07-10T00:31:00.000-07:00</published><updated>2009-03-19T01:14:33.018-07:00</updated><title type='text'>Google Lively</title><content type='html'>Google vient de lancer &lt;a href="http://www.lively.com/"&gt;Lively&lt;/a&gt; une forme simplifiée de Second Life, vivement le partage d'application à la &lt;a href="https://lg3d-wonderland.dev.java.net/"&gt;Wonderland&lt;/a&gt; &lt;br/&gt;&lt;br /&gt;&lt;iframe src='http://embed.lively.com/iframe?rid=5955600845215116656&amp;edit_room=1' width='460' height='400' marginwidth='0' marginheight='0' frameborder='0' scrolling='no'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-9149508424786643291?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/9149508424786643291/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/google-lively.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/9149508424786643291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/9149508424786643291'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/google-lively.html' title='Google Lively'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2952617214466129497</id><published>2008-07-09T08:08:00.000-07:00</published><updated>2009-03-19T01:14:33.026-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Vidéos toujours</title><content type='html'>Pour continuer dans les présentations Agile chez Google avec quelques pointures :&lt;br /&gt;Mike Cohn avec Agile Estimations :&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fb9Rzyi8b90&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/fb9Rzyi8b90&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jeT0pOVg0EI&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/jeT0pOVg0EI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Voilà qui devrait permettre d'approfondir les échanges de la réunion de juin du Club Agile de Grenoble.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2952617214466129497?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2952617214466129497/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/videos-toujours.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2952617214466129497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2952617214466129497'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/videos-toujours.html' title='Vidéos toujours'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-5282429557415075389</id><published>2008-07-02T05:12:00.000-07:00</published><updated>2009-03-19T01:14:33.032-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Mary Poppendieck: The role of leadership in software development</title><content type='html'>Une vidéo excellente et très claire sur l'histoire du management: &lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ypEMdjslEOI&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ypEMdjslEOI&amp;hl=en" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;On comprend bien d'où l'on vient et où on espère aller :o)&lt;br /&gt;Un grand bravo à Mary et Tom Poppendieck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-5282429557415075389?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/5282429557415075389/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/mary-poppendieck-role-of-leadership-in.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5282429557415075389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/5282429557415075389'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/mary-poppendieck-role-of-leadership-in.html' title='Mary Poppendieck: The role of leadership in software development'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2397176429191236084</id><published>2008-07-01T23:36:00.000-07:00</published><updated>2009-03-19T01:14:33.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>Le modèle de Dreyfus</title><content type='html'>Ce modèle pour caractériser l'acquisition des connaissances (essentielle dans la capitalisation d'une équipe Agile) semble avoir le vent en poupe dernièrement dans le monde informatique.&lt;br /&gt;Andy Hunt célèbre pour son &lt;a href="http://pragprog.com/the-pragmatic-programmer"&gt;The Pragmatic Programmer: From Journeyman to Master&lt;/a&gt; explique sa vision dans l'interview suivante :&lt;br /&gt;&lt;p&gt;&lt;embed src="http://blip.tv/play/onK9vFYA" allowfullscreen="true" allowscriptaccess="always" height="360" width="480" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Pour plus d'informations :&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.enerjy.com/blog/?p=306"&gt;Le site de l'interview&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"&gt;Pragmatic Thinking and Learning: Refactor Your "Wetware"&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2397176429191236084?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2397176429191236084/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/le-modele-de-dreyfus.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2397176429191236084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2397176429191236084'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/07/le-modele-de-dreyfus.html' title='Le modèle de Dreyfus'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2683413837014572188</id><published>2008-06-11T00:38:00.000-07:00</published><updated>2009-03-19T01:14:33.063-07:00</updated><title type='text'></title><content type='html'>Un petit dessin qui n'est pas sans me rappeler quelqu'un :&lt;br /&gt;&lt;img src="http://www.nojhan.net/geekscottes/strips/geekscottes_101.png"/&gt;&lt;br /&gt;&lt;br /&gt;Il vient du site suivant : &lt;a href="http://www.nojhan.net/geekscottes/"&gt;Geekscottes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2683413837014572188?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2683413837014572188/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/06/un-petit-dessin-qui-nest-pas-sans-me.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2683413837014572188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2683413837014572188'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/06/un-petit-dessin-qui-nest-pas-sans-me.html' title=''/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-716273375977861154</id><published>2008-05-28T01:33:00.000-07:00</published><updated>2009-03-19T01:14:33.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>MOJO me voici ;)</title><content type='html'>Et voilà notre plugin Maven: scmchangelog-maven-plugin est enfin arrivé dans la sandbox de MOJO sur codehaus :). &lt;br /&gt;Un grand merci à Arnaud Héritier qui a permis cela !!!&lt;br /&gt;Pour rappel ce plugin permet de produire un changelog dynamiquement en parsant les commentaires de votre outils de gestion de configuration. Pour l'instant Subversion et Mercurial sont supportés mais j'espère bien intégrer de nouveaux produits.&lt;br /&gt;Avec je l'espère un nouveau projet opensource bientôt, je vais peut être enfin quitter le monde propriétaire ......&lt;br /&gt;&lt;br /&gt;Le lien &lt;a href="http://mojo.codehaus.org/scmchangelog-maven-plugin/"&gt;scmchangelog-maven-plugin&lt;/a&gt; :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-716273375977861154?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/716273375977861154/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/05/mojo-me-voici.html#comment-form' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/716273375977861154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/716273375977861154'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/05/mojo-me-voici.html' title='MOJO me voici ;)'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-4289809920948686168</id><published>2008-05-19T07:47:00.000-07:00</published><updated>2009-03-19T01:14:33.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jackrabbit'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><title type='text'>Rendre Jackrabbit configurable avec Spring-module</title><content type='html'>Voici une amélioration du RepositoryFactoryBean pour Jackrabbit de spring-modules qui permet d'utiliser un fichier .properties pour remplacer des clefs dans le fichier de configuration repository.xml :&lt;style type="text/css"&gt;&lt;!--code { font-family: Courier New, Courier; font-size: 10pt; margin: 0px; }--&gt;&lt;/style&gt;&lt;div align="left" class="java"&gt;&lt;table border="0" cellpadding="3" cellspacing="0" bgcolor="#ffffff"&gt;&lt;tr&gt;&lt;td nowrap="nowrap" align="top" align="left"&gt;&lt;code&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.io.IOException;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.io.InputStreamReader;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.io.Reader;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.io.StringReader;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.io.StringWriter;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.util.Iterator;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.util.List;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;java.util.Properties;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;javax.jcr.Repository;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.jackrabbit.api.JackrabbitRepository;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.jackrabbit.core.RepositoryImpl;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.jackrabbit.core.config.RepositoryConfig;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.springframework.core.io.ClassPathResource;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.springframework.core.io.DefaultResourceLoader;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.springframework.core.io.FileSystemResource;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.springframework.core.io.Resource;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.springframework.core.io.ResourceLoader;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.springmodules.jcr.RepositoryFactoryBean;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.xml.sax.InputSource;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;FactoryBean&amp;nbsp;for&amp;nbsp;creating&amp;nbsp;a&amp;nbsp;JackRabbit&amp;nbsp;(JCR-170)&amp;nbsp;repository&amp;nbsp;through&amp;nbsp;Spring&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;configuration&amp;nbsp;files.&amp;nbsp;Use&amp;nbsp;this&amp;nbsp;factory&amp;nbsp;bean&amp;nbsp;when&amp;nbsp;you&amp;nbsp;have&amp;nbsp;to&amp;nbsp;manually&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;configure&amp;nbsp;the&amp;nbsp;repository;&amp;nbsp;for&amp;nbsp;retrieving&amp;nbsp;the&amp;nbsp;repository&amp;nbsp;from&amp;nbsp;JNDI&amp;nbsp;use&amp;nbsp;the&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;JndiObjectFactoryBean&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;{@link&amp;nbsp;org.springframework.jndi.JndiObjectFactoryBean}&lt;/font&gt;&lt;font color="#008000"&gt;.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Sample&amp;nbsp;configuration&amp;nbsp;:&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;code&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;amp;lt;bean&amp;nbsp;id=&amp;#34;repository&amp;#34;&amp;nbsp;class=&amp;#34;BetterRepositoryFactoryBean&amp;#34;&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;amp;lt;!--&amp;nbsp;normal&amp;nbsp;factory&amp;nbsp;beans&amp;nbsp;params&amp;nbsp;--&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;property&amp;nbsp;name=&amp;#34;configuration&amp;#34;&amp;nbsp;value=&amp;#34;classpath:repository.xml&amp;#34;&amp;nbsp;/&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;property&amp;nbsp;name=&amp;#34;homeDir&amp;#34;&amp;nbsp;value=&amp;#34;file:///c:/tmp/jackrabbit&amp;#34;&amp;nbsp;/&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;property&amp;nbsp;name=&amp;#34;configurationProperties&amp;#34;&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;list&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;value&amp;amp;gt;classpath:/first.properties&amp;amp;lt;/value&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;value&amp;amp;gt;classpath:/second.properties&amp;amp;lt;/value&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;/list&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;lt;/property&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;amp;lt;/bean&amp;amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;/code&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@see&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;org.springframework.jndi.JndiObjectFactoryBean&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@author&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;Costin&amp;nbsp;Leau&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@author&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;Emmanuel&amp;nbsp;Hugonnet&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;BetterRepositoryFactoryBean&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;RepositoryFactoryBean&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Default&amp;nbsp;repository&amp;nbsp;configuration&amp;nbsp;file.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;final&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;DEFAULT_CONF_FILE&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;repository.xml&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Default&amp;nbsp;repository&amp;nbsp;directory.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;final&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;DEFAULT_REP_DIR&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;.&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Properties&amp;nbsp;configuration&amp;nbsp;the&amp;nbsp;repository.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;List&amp;nbsp;configurationProperties;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Home&amp;nbsp;directory&amp;nbsp;for&amp;nbsp;the&amp;nbsp;repository.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Resource&amp;nbsp;homeDir;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Repository&amp;nbsp;configuration&amp;nbsp;created&amp;nbsp;through&amp;nbsp;Spring.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;private&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;RepositoryConfig&amp;nbsp;repositoryConfig;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@see&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;org.springmodules.jcr.RepositoryFactoryBean#createRepository()&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Repository&amp;nbsp;createRepository&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;throws&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Exception&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;return&amp;nbsp;JackRabbit&amp;nbsp;repository.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;RepositoryImpl.create&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;repositoryConfig&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@see&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;org.springmodules.jcr.RepositoryFactoryBean#resolveConfigurationResource()&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;resolveConfigurationResource&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;throws&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Exception&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;read&amp;nbsp;the&amp;nbsp;configuration&amp;nbsp;object&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;repositoryConfig&amp;nbsp;!=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.configuration&amp;nbsp;==&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;log.debug&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;no&amp;nbsp;configuration&amp;nbsp;resource&amp;nbsp;specified,&amp;nbsp;using&amp;nbsp;the&amp;nbsp;default&amp;nbsp;one:&amp;#34;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;DEFAULT_CONF_FILE&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;configuration&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ClassPathResource&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;DEFAULT_CONF_FILE&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;homeDir&amp;nbsp;==&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;log.isDebugEnabled&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;log.debug&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;no&amp;nbsp;repository&amp;nbsp;home&amp;nbsp;dir&amp;nbsp;specified,&amp;nbsp;using&amp;nbsp;the&amp;nbsp;default&amp;nbsp;one:&amp;#34;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;DEFAULT_REP_DIR&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;homeDir&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;FileSystemResource&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;DEFAULT_REP_DIR&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;getConfigurationProperties&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;!=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;goodConfig&amp;nbsp;=&amp;nbsp;replaceVariables&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;loadConfigurationKeys&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;getConfiguration&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;configuration&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;true&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;repositoryConfig&amp;nbsp;=&amp;nbsp;RepositoryConfig.create&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;InputSource&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringReader&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;goodConfig&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;homeDir.getFile&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;.getAbsolutePath&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;else&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;repositoryConfig&amp;nbsp;=&amp;nbsp;RepositoryConfig.create&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;InputSource&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;configuration&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;.getInputStream&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;homeDir.getFile&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;.getAbsolutePath&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Performs&amp;nbsp;variable&amp;nbsp;replacement&amp;nbsp;on&amp;nbsp;the&amp;nbsp;given&amp;nbsp;string&amp;nbsp;value.&amp;nbsp;Each&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;code&amp;gt;&lt;/font&gt;&lt;font color="#008000"&gt;${...}&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;/code&amp;gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;sequence&amp;nbsp;within&amp;nbsp;the&amp;nbsp;given&amp;nbsp;value&amp;nbsp;is&amp;nbsp;replaced&amp;nbsp;with&amp;nbsp;the&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;value&amp;nbsp;of&amp;nbsp;the&amp;nbsp;named&amp;nbsp;parser&amp;nbsp;variable.&amp;nbsp;If&amp;nbsp;a&amp;nbsp;variable&amp;nbsp;is&amp;nbsp;not&amp;nbsp;found&amp;nbsp;in&amp;nbsp;the&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;properties&amp;nbsp;an&amp;nbsp;IllegalArgumentException&amp;nbsp;is&amp;nbsp;thrown&amp;nbsp;unless&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;code&amp;gt;&lt;/font&gt;&lt;font color="#008000"&gt;ignoreMissing&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;/code&amp;gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;is&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;code&amp;gt;&lt;/font&gt;&lt;font color="#008000"&gt;true&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;/code&amp;gt;&lt;/font&gt;&lt;font color="#008000"&gt;.&amp;nbsp;In&amp;nbsp;the&amp;nbsp;later&amp;nbsp;case,&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;the&amp;nbsp;missing&amp;nbsp;variable&amp;nbsp;is&amp;nbsp;not&amp;nbsp;replaced.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@param&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;value&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the&amp;nbsp;original&amp;nbsp;value&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@param&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;ignoreMissing&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;code&amp;gt;&lt;/font&gt;&lt;font color="#008000"&gt;true&lt;/font&gt;&lt;font color="#008000"&gt;&amp;lt;/code&amp;gt;&lt;/font&gt;&lt;font color="#008000"&gt;,&amp;nbsp;missing&amp;nbsp;variables&amp;nbsp;are&amp;nbsp;not&amp;nbsp;replaced.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@return&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;value&amp;nbsp;after&amp;nbsp;variable&amp;nbsp;replacements&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@throws&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;IllegalArgumentException&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;the&amp;nbsp;replacement&amp;nbsp;of&amp;nbsp;a&amp;nbsp;referenced&amp;nbsp;variable&amp;nbsp;is&amp;nbsp;not&amp;nbsp;found&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;replaceVariables&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;Properties&amp;nbsp;variables,&amp;nbsp;String&amp;nbsp;value,&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;boolean&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ignoreMissing&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;throws&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;IllegalArgumentException&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;StringBuffer&amp;nbsp;result&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringBuffer&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;Value:&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;+--+-+--------+-+-----------------+&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;|&amp;nbsp;|p|--&amp;gt;&amp;nbsp;|q|--&amp;gt;&amp;nbsp;|&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;+--+-+--------+-+-----------------+&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;p&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;q&amp;nbsp;=&amp;nbsp;value.indexOf&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;${&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;Find&amp;nbsp;first&amp;nbsp;${&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;while&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;q&amp;nbsp;!=&amp;nbsp;-&lt;/font&gt;&lt;font color="#990000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;result.append&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;value.substring&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;p,&amp;nbsp;q&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;Text&amp;nbsp;before&amp;nbsp;${&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;p&amp;nbsp;=&amp;nbsp;q;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;q&amp;nbsp;=&amp;nbsp;value.indexOf&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;}&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;q&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;2&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;Find&amp;nbsp;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;q&amp;nbsp;!=&amp;nbsp;-&lt;/font&gt;&lt;font color="#990000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;variable&amp;nbsp;=&amp;nbsp;value.substring&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;p&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;2&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;q&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;replacement&amp;nbsp;=&amp;nbsp;variables.getProperty&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;variable&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;replacement&amp;nbsp;==&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;ignoreMissing&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;replacement&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;${&amp;#34;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;variable&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;'}'&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;else&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;throw&amp;nbsp;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;IllegalArgumentException&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;Replacement&amp;nbsp;not&amp;nbsp;found&amp;nbsp;for&amp;nbsp;${&amp;#34;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;variable&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;}.&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;result.append&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;replacement&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;p&amp;nbsp;=&amp;nbsp;q&amp;nbsp;+&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;q&amp;nbsp;=&amp;nbsp;value.indexOf&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;${&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;p&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;Find&amp;nbsp;next&amp;nbsp;${&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;result.append&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;value.substring&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;p,&amp;nbsp;value.length&lt;/font&gt;&lt;font color="#000000"&gt;()))&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;Trailing&amp;nbsp;text&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;result.toString&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Shutdown&amp;nbsp;method.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;destroy&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;throws&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Exception&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;//&amp;nbsp;force&amp;nbsp;cast&amp;nbsp;(but&amp;nbsp;use&amp;nbsp;only&amp;nbsp;the&amp;nbsp;interface)&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;repository&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;instanceof&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;JackrabbitRepository&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;((&lt;/font&gt;&lt;font color="#000000"&gt;JackrabbitRepository&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;repository&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;.shutdown&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@return&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;Returns&amp;nbsp;the&amp;nbsp;defaultRepDir.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Resource&amp;nbsp;getHomeDir&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&amp;nbsp;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.homeDir;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@param&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;defaultRepDir&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;defaultRepDir&amp;nbsp;to&amp;nbsp;set.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;setHomeDir&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;Resource&amp;nbsp;defaultRepDir&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.homeDir&amp;nbsp;=&amp;nbsp;defaultRepDir;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@return&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;Returns&amp;nbsp;the&amp;nbsp;repositoryConfig.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;RepositoryConfig&amp;nbsp;getRepositoryConfig&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&amp;nbsp;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.repositoryConfig;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@param&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;repositoryConfig&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;repositoryConfig&amp;nbsp;to&amp;nbsp;set.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;setRepositoryConfig&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;RepositoryConfig&amp;nbsp;repositoryConfig&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.repositoryConfig&amp;nbsp;=&amp;nbsp;repositoryConfig;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@return&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;Returns&amp;nbsp;the&amp;nbsp;configuration&amp;nbsp;properties.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;List&amp;nbsp;getConfigurationProperties&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;configurationProperties;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@param&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;configurationProperties&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The&amp;nbsp;configuration&amp;nbsp;properties&amp;nbsp;to&amp;nbsp;set&amp;nbsp;for&amp;nbsp;the&amp;nbsp;repository.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;setConfigurationProperties&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;List&amp;nbsp;resources&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.configurationProperties&amp;nbsp;=&amp;nbsp;resources;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Load&amp;nbsp;all&amp;nbsp;the&amp;nbsp;configuration&amp;nbsp;properties&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@return&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Properties&amp;nbsp;loadConfigurationKeys&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;Iterator&amp;nbsp;iter&amp;nbsp;=&amp;nbsp;configurationProperties.iterator&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;Properties&amp;nbsp;props&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Properties&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ResourceLoader&amp;nbsp;loader&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;DefaultResourceLoader&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.getClass&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;.getClassLoader&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;location&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;while&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;iter.hasNext&lt;/font&gt;&lt;font color="#000000"&gt;())&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;try&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;location&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;iter.next&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;props.load&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;loader.getResource&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;location&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;.getInputStream&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;catch&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;IOException&amp;nbsp;e&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;log.info&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#990000"&gt;&amp;#34;Error&amp;nbsp;loading&amp;nbsp;resource&amp;nbsp;&amp;#34;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;location,&amp;nbsp;e&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;props;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;/**&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;Load&amp;nbsp;a&amp;nbsp;Resource&amp;nbsp;as&amp;nbsp;a&amp;nbsp;String.&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@param&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;config&amp;nbsp;the&amp;nbsp;resource&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@return&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;the&amp;nbsp;String&amp;nbsp;filled&amp;nbsp;with&amp;nbsp;the&amp;nbsp;content&amp;nbsp;of&amp;nbsp;the&amp;nbsp;Resource&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color="#005500"&gt;@throws&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;IOException&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#008000"&gt;*/&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;protected&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;getConfiguration&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;Resource&amp;nbsp;config&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;throws&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;IOException&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;StringWriter&amp;nbsp;out&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringWriter&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;Reader&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;try&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;reader&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;InputStreamReader&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;config.getInputStream&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;[]&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;buffer&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;char&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;[&lt;/font&gt;&lt;font color="#990000"&gt;8&lt;/font&gt;&lt;font color="#000000"&gt;]&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#c00000"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;c&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;while&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;((&lt;/font&gt;&lt;font color="#000000"&gt;c&amp;nbsp;=&amp;nbsp;reader.read&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;buffer&lt;/font&gt;&lt;font color="#000000"&gt;))&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;out.write&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;buffer,&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;c&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;out.toString&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;finally&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;if&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;reader&amp;nbsp;!=&amp;nbsp;&lt;/font&gt;&lt;font color="#0000c0"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;reader.close&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br /&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/code&gt; &lt;br /&gt;   &lt;/td&gt;&lt;br /&gt;   &lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-4289809920948686168?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/4289809920948686168/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/05/rendre-jackrabbit-configurable-avec.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4289809920948686168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4289809920948686168'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/05/rendre-jackrabbit-configurable-avec.html' title='Rendre Jackrabbit configurable avec Spring-module'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-1433056398194063081</id><published>2008-04-30T00:53:00.000-07:00</published><updated>2009-03-19T01:14:33.074-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jackrabbit'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>Jackrabbit et les tests unitaires</title><content type='html'>Je travaille actuellement avec &lt;a href="http://jackrabbit.apache.org"&gt;Jackrabbit&lt;/a&gt;. J'utilise spring-modules ce qui me permet de facilement instancier mon repository. Cependant comment avoir un repository pour mes tests unitaires. Grâce à ce &lt;a href="http://jbossdna.blogspot.com/2008/02/unit-testing-jackrabbit.html"&gt;post&lt;/a&gt; j'ai  un respository de test tout simple.&lt;br /&gt;Voici donc les éléments clefs de mon fichier de configuration :&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&amp;lt;FileSystem &lt;br /&gt;    class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"&amp;gt;&lt;br /&gt;  &amp;lt;param name="path" value="${rep.home}/repository" /&amp;gt;&lt;br /&gt; &amp;lt;/FileSystem&amp;gt;&lt;/fieldset&gt;&lt;br /&gt;et&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&amp;lt;PersistenceManager&lt;br /&gt;    class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager"&amp;gt;&lt;br /&gt;      &amp;lt;param name="persistent" value="false" /&amp;gt;&lt;br /&gt;    &amp;lt;/PersistenceManager&amp;gt;&lt;/fieldset&gt;&lt;br /&gt;et voilà :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-1433056398194063081?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/1433056398194063081/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/jackrabbit-et-les-tests-unitaires.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1433056398194063081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/1433056398194063081'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/jackrabbit-et-les-tests-unitaires.html' title='Jackrabbit et les tests unitaires'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3601011857245870299</id><published>2008-04-29T06:59:00.000-07:00</published><updated>2009-03-19T01:14:33.141-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Waterfall ou Agile</title><content type='html'>Un lien vers une vidéo plus que sympathique.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.chrisspagnuolo.com/ATaleOfTwoTeamsFlashVideo.aspx"&gt;Rusty &amp; Kate&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3601011857245870299?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3601011857245870299/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/waterfall-ou-agile.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3601011857245870299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3601011857245870299'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/waterfall-ou-agile.html' title='Waterfall ou Agile'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-289716301932190860</id><published>2008-04-15T08:00:00.000-07:00</published><updated>2009-03-19T01:14:33.134-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Estimations</title><content type='html'>Voila un excellent article qui donne à réfléchir sur l'estimation d'un projet/d'une tâche et comment traduire cela dans un intervalle d'incertitude.&lt;br /&gt;&lt;a href="http://leadinganswers.typepad.com/leading_answers/2008/01/software-estima.html"&gt;Sowftware Estimation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-289716301932190860?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/289716301932190860/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/estimations.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/289716301932190860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/289716301932190860'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/estimations.html' title='Estimations'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-2550525914704684684</id><published>2008-04-09T23:36:00.000-07:00</published><updated>2009-03-19T01:14:33.086-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Créer une référence JNDI sur une BasiDataSource</title><content type='html'>&lt;div align="left" class="java"&gt;&lt;table border="0" cellpadding="3" cellspacing="0" bgcolor="#ffffff"&gt;&lt;tr&gt; &lt;td nowrap="nowrap" valign="top" align="left"&gt;&lt;code&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitialContext&amp;nbsp;ic&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;InitialContext&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Construct&amp;nbsp;BasicDataSource&amp;nbsp;reference&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;Reference&amp;nbsp;ref&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Reference&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;javax.sql.DataSource&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;org.apache.commons.dbcp.BasicDataSourceFactory&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;null&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;driverClassName&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;org.postgresql.Driver&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;url&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;jdbc:postgresql://localhost:5432/postgres&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;username&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;postgres&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;password&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;postgres&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;maxActive&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;4&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;maxWait&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;5000&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;removeAbandoned&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;true&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ref.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;StringRefAddr&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;removeAbandonedTimeout&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;5000&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ic.rebind&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;#34;jdbc/Silverpeas&amp;#34;&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;ref&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/code&gt;    &lt;br /&gt;   &lt;/td&gt;&lt;br /&gt;  &lt;!-- end source code --&gt;&lt;br /&gt;   &lt;/tr&gt;&lt;br /&gt;  &lt;!-- start Java2Html link --&gt;&lt;br /&gt;   &lt;tr&gt;&lt;br /&gt;    &lt;td align="right"&gt;&lt;br /&gt;&lt;small&gt;&lt;br /&gt;&lt;a href="http://www.java2html.de" target="_blank"&gt;Java2html&lt;/a&gt;&lt;br /&gt;&lt;/small&gt;&lt;br /&gt;    &lt;/td&gt;&lt;br /&gt;   &lt;/tr&gt;&lt;br /&gt;  &lt;!-- end Java2Html link --&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-2550525914704684684?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/2550525914704684684/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/creer-une-reference-jndi-sur-une.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2550525914704684684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/2550525914704684684'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/creer-une-reference-jndi-sur-une.html' title='Créer une référence JNDI sur une BasiDataSource'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3359757934617090130</id><published>2008-04-01T01:02:00.000-07:00</published><updated>2009-03-19T01:14:33.093-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>Comment vendre la qualité à son responsable</title><content type='html'>Une petite vidéo intéressante où l'on donne des trucs et astuces pour faire accepter à sa direction de prendre en compte la qualité :&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://blip.tv/scripts/flash/showplayer.swf?tabType3=none&amp;tabUrl3=undefined&amp;tabTitle3=undefined&amp;tabType2=guide&amp;tabUrl2=http%3A%2F%2Fenerjy%2Eblip%2Etv%2Frss%2Fflash&amp;tabTitle2=Episodes&amp;tabType1=details&amp;tabUrl1=undefined&amp;tabTitle1=About&amp;enablejs=true&amp;feedurl=http%3A%2F%2Fenerjy%2Eblip%2Etv%2Frss%2Fflash&amp;file=http%3A%2F%2Fblip%2Etv%2Frss%2Fflash%2F777399&amp;brandlink=http%3A%2F%2Fenerjy%2Etv&amp;brandname=enerjy%2Etv&amp;showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" width="400" height="255" allowfullscreen="true" id="showplayer"&gt;&lt;param name="movie" value="http://blip.tv/scripts/flash/showplayer.swf?tabType3=none&amp;tabUrl3=undefined&amp;tabTitle3=undefined&amp;tabType2=guide&amp;tabUrl2=http%3A%2F%2Fenerjy%2Eblip%2Etv%2Frss%2Fflash&amp;tabTitle2=Episodes&amp;tabType1=details&amp;tabUrl1=undefined&amp;tabTitle1=About&amp;enablejs=true&amp;feedurl=http%3A%2F%2Fenerjy%2Eblip%2Etv%2Frss%2Fflash&amp;file=http%3A%2F%2Fblip%2Etv%2Frss%2Fflash%2F777399&amp;brandlink=http%3A%2F%2Fenerjy%2Etv&amp;brandname=enerjy%2Etv&amp;showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" /&gt;&lt;param name="quality" value="best" /&gt;&lt;embed src="http://blip.tv/scripts/flash/showplayer.swf?tabType3=none&amp;tabUrl3=undefined&amp;tabTitle3=undefined&amp;tabType2=guide&amp;tabUrl2=http%3A%2F%2Fenerjy%2Eblip%2Etv%2Frss%2Fflash&amp;tabTitle2=Episodes&amp;tabType1=details&amp;tabUrl1=undefined&amp;tabTitle1=About&amp;enablejs=true&amp;feedurl=http%3A%2F%2Fenerjy%2Eblip%2Etv%2Frss%2Fflash&amp;file=http%3A%2F%2Fblip%2Etv%2Frss%2Fflash%2F777399&amp;brandlink=http%3A%2F%2Fenerjy%2Etv&amp;brandname=enerjy%2Etv&amp;showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" quality="best" width="400" height="255" name="showplayer" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3359757934617090130?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3359757934617090130/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/comment-vendre-la-qualite-son.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3359757934617090130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3359757934617090130'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/04/comment-vendre-la-qualite-son.html' title='Comment vendre la qualité à son responsable'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-7509379267370363805</id><published>2008-03-12T02:24:00.000-07:00</published><updated>2009-03-19T01:14:33.127-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>Mock mock mock</title><content type='html'>&lt;p&gt;Comment tester une application J2EE 1.3 (et oui :-(( ) hors conteneur. Heureusement que l'on trouve pas mal de projets sympathiques sur le web :&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;Je conseille fortement &lt;a href="https://mock-javamail.dev.java.net/"&gt;Mock Javamail&lt;/a&gt; pour tester l'envoi et la réception de mail, il est très très simple d'utilisation et facilite grandement la vie.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;L'implémentation FileSystem de JNDI permet d'avoir un espace de nommage très facilement.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enfin pour la partie plus J2EE j'ai utilisé &lt;a href="http://mockrunner.sourceforge.net/"&gt;Mockrunner&lt;/a&gt; même si les factories ne sont pas compatibles JNDI et qu'il faille ajouter une instance d'ObjectFactory.&lt;br /&gt;Sans oublié les classes de tests de base que fournit Spring et qui sont un plaisir notamment pour les DAOs).&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Si on couple tout cela à EasyMock on est capable de faire du &lt;a href="http://fr.wikipedia.org/wiki/Test_Driven_Development"&gt;TDD&lt;/a&gt; correctement.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-7509379267370363805?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/7509379267370363805/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/03/mock-mock-mock.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7509379267370363805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7509379267370363805'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/03/mock-mock-mock.html' title='Mock mock mock'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-4227017272711210458</id><published>2008-02-05T02:17:00.000-08:00</published><updated>2009-03-19T01:14:33.104-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Groovy et Jonas</title><content type='html'>J'ai enfin réussi à faire comprendre l'intérêt de l'intégration continue et d'un outil comme Hudson auprès de mes voisins. Mais tout n'était pas si simple :o(( car alors on m'a gentiment expliqué qu'ici on utilise &lt;a href="http://wiki.jonas.objectweb.org/xwiki/bin/view/Main/WebHome"&gt;JOnAS&lt;/a&gt;.&lt;br /&gt;Et là surprise JOnAS utilise ASM 1.5.3 qui est fortement incompatible avec ASM 2.2 utilisé par &lt;a href="http://groovy.codehaus.org"&gt;Groovy&lt;/a&gt; et donc Hudson.&lt;br /&gt;Pour que tout fonctionne bien il faut ajouter un fichier jonas-web.xml dans le répertoire WEB-INF d'Hudson avec le contenu magique suivant :&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt;&lt;br /&gt;&amp;lt;jonas-web-app xmlns="http://www.objectweb.org/jonas/ns"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xsi:schemaLocation="http://www.objectweb.org/jonas/ns&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;http://www.objectweb.org/jonas/ns/jonas-web-app_4_0.xsd"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;java2-delegation-model&amp;gt;false&amp;lt;/java2-delegation-model&amp;gt;&lt;br /&gt;&amp;lt;/jonas-web-app&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;J'imagine que cela s'applique aussi pour &lt;a href="http://grails.codehaus.org"&gt;Grails&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;PS: voici la jolie exception que l'on récupérait&lt;br /&gt;&lt;code&gt;&lt;br /&gt;2008-02-05 09:47:36,929 : StandardContext.filterStart : Exception starting filter authentication-filter&lt;br /&gt;java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:213)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.codehaus.groovy.control.CompilationUnit$10.call(CompilationUnit.java:691)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:885)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:436)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:289)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at groovy.lang.GroovyShell.parseClass(GroovyShell.java:488)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at groovy.lang.GroovyShell.parse(GroovyShell.java:500)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at groovy.lang.GroovyShell.parse(GroovyShell.java:480)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at groovy.lang.GroovyShell.parse(GroovyShell.java:539)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at hudson.util.spring.BeanBuilder.parse(BeanBuilder.java:133)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at hudson.security.HudsonFilter.init(HudsonFilter.java:62)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-4227017272711210458?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/4227017272711210458/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/02/groovy-et-jonas.html#comment-form' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4227017272711210458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4227017272711210458'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/02/groovy-et-jonas.html' title='Groovy et Jonas'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-4804917613239705431</id><published>2008-01-29T06:47:00.000-08:00</published><updated>2009-03-19T01:14:33.110-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'></title><content type='html'>Quelques liens sur l'agilité et Scrum:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;tout d'abord un lien un petit peu vieux sur &lt;a href="http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/"&gt;Xebia&lt;/a&gt; à propos de Scrum et d'XP&lt;/li&gt;&lt;li&gt;un autre sur &lt;a href="http://blog.octo.com/index.php/2008/01/25/69-pourquoi-les-methodes-agiles-peinent-elles-a-penetrer-lentreprise"&gt;Octo&lt;/a&gt; qui résume bien les difficultés que l'on rencontre actuellement.&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br /&gt;J'en profite pour indiquer ce schéma qui symbolise à la perfection la mise en place d'eXtreme programming &lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.xprogramming.com/images/circles.jpg"&gt;&lt;img src="http://www.xprogramming.com/images/circles.jpg" width="420" height="400" border="0"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;on voit en bleu ce qui concerne le développeur, en vert ce qui concerne l'équipe et en rouge ce qui concerne le projet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-4804917613239705431?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/4804917613239705431/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/01/quelques-liens-sur-lagilite-et-scrum.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4804917613239705431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4804917613239705431'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/01/quelques-liens-sur-lagilite-et-scrum.html' title=''/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3917188224296963281</id><published>2008-01-14T01:13:00.000-08:00</published><updated>2009-03-19T01:14:33.121-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='hudson'/><title type='text'>TDD is the way</title><content type='html'>Un petit séminaire que j'ai contribué à animer m'a encore une fois convaincu que le Test Driven Development est la voie à suivre pour un code de qualité et un confort de développement inégalable.&lt;br /&gt;Je profite de ce petit mot pour chanter les louanges &lt;a href="http://hudson.dev.java.net"&gt;d'Hudson&lt;/a&gt; &lt;img style="valign:middle;cursor:hand;" src="http://deadlock.netbeans.org/hudson/static/06ffa9ef/favicon.ico" border="0" alt="" /&gt; qui est un outil formidable combiné avec &lt;a href="http://maven.apache.org"&gt;Maven2&lt;/a&gt; et les plugins Violations et Findbugs qui fournissent ce qui manque à Maven et son site: un historique de l'état du code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3917188224296963281?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3917188224296963281/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2008/01/tdd-is-way.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3917188224296963281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3917188224296963281'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2008/01/tdd-is-way.html' title='TDD is the way'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-7647282621317017022</id><published>2007-11-29T05:06:00.000-08:00</published><updated>2009-03-19T01:14:33.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Java et X11</title><content type='html'>Il n'y a pas à dire, développer sous un véritable OS change beaucoup de choses.&lt;br /&gt;On a remarqué récemment sous Windows nos collègues mettaient plus de &lt;b&gt;deux fois&lt;/b&gt; plus de temps à construire le projet que sous Linux; Et encore je ne parle pas des problèmes d'anti-virus quand on n'est pas administrateur du poste.&lt;br /&gt;Mais hélas parfois notre petit pingouin pose des soucis spécifiques notamment avec X11.&lt;br /&gt;Voici donc une petite astuce lorsque l'on se trouve avec l'erreur suivante:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Xlib: connection to ":0.0" refused by server&lt;br /&gt;Xlib: No protocol specified&lt;br /&gt;Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Il ne suffit pas de définir la variable d'environnement &lt;strong&gt;DISPLAY&lt;/strong&gt; mais aussi autoriser les connexions au serveur X grâce à a commande magique suivante :&lt;br /&gt;&lt;code&gt;&lt;br /&gt;xhost +localhost +LOCAL:all&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-7647282621317017022?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/7647282621317017022/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2007/11/java-et-x11.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7647282621317017022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/7647282621317017022'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2007/11/java-et-x11.html' title='Java et X11'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-157683811506602788</id><published>2007-11-20T05:53:00.000-08:00</published><updated>2009-03-19T01:14:33.099-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Working at a Distance is hard</title><content type='html'>Après avoir vécu un projet où la moitié de l'équipe était de l'autre coté de l'hexagone, je pense aussi que &lt;a href="http://www.notesfromatooluser.com/2007/10/working-at-a-di.html"&gt;Travailler à Distance est difficile&lt;/a&gt;.&lt;br/&gt;&lt;br /&gt;Si on pouvait mettre facilement en place un environnement à base d'&lt;a  href="http://www.opencroquet.org/index.php/Main_Page"&gt;OpenCroquet&lt;/a&gt;, je pourrais enfin arrêter de rebooter sous un OS primitif pour ouvrir une session netmeeting et voir une démo :o(.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-157683811506602788?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/157683811506602788/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2007/11/working-at-distance-is-hard.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/157683811506602788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/157683811506602788'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2007/11/working-at-distance-is-hard.html' title='Working at a Distance is hard'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-4110135652490554259</id><published>2007-11-20T05:47:00.000-08:00</published><updated>2009-03-19T01:14:33.116-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>The F5 Key Is Not a Build Process</title><content type='html'>Tout est dans le titre : &lt;a href="http://www.codinghorror.com/blog/archives/000988.html"&gt;&lt;span style="font-weight: bold;"&gt;The F5 Key Is Not a Build Process.&lt;/span&gt;&lt;/a&gt;. &lt;br/&gt;&lt;br /&gt;Je n'ai pas de meilleurs mots;)&lt;br/&gt;&lt;br /&gt;Je vais changer de poste pour rejoindre un éditeur et j'espère bien pouvoir mettre en place un vrai processus de build ainsi que des méthodologies agiles. D'ailleurs à ce propos je conseille les deux blogs suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.octo.com/index.php/Lean"&gt;Octo sur Lean&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.xebia.fr/"&gt;Xebia&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-4110135652490554259?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/4110135652490554259/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2007/11/f5-key-is-not-build-process.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4110135652490554259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/4110135652490554259'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2007/11/f5-key-is-not-build-process.html' title='The F5 Key Is Not a Build Process'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-870179203042068988.post-3213428216861761362</id><published>2007-09-11T01:59:00.000-07:00</published><updated>2009-03-19T01:14:33.147-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Aggrégation de Javadoc sous Maven2</title><content type='html'>&lt;pre wrap=""&gt;Message fort intéressant sur comment aggreger simplement la javadoc sous Maven2 en utilisant les options de javadoc : &lt;br/&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote  style="font-size:10px;"&gt;&lt;br /&gt;Following some recent post about javadoc aggregation, I tried to play with javadoc attachments and dependency unpacking with some success and it was quite easy. Here are the poms:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;For project exporting javadoc:&lt;/li&gt;&lt;br /&gt;&lt;span style="font-style:italic;font-size:10px;"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;project&amp;gt;&lt;br /&gt; &amp;lt;parent&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;merging-javadoc&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;oqube.maven&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;/parent&amp;gt;&lt;br /&gt; &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt; &amp;lt;groupId&amp;gt;oqube.maven.javadoc&amp;lt;/groupId&amp;gt;&lt;br /&gt; &amp;lt;artifactId&amp;gt;project1&amp;lt;/artifactId&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;build&amp;gt;&lt;br /&gt; &amp;lt;plugins&amp;gt;&lt;br /&gt;  &amp;lt;plugin&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;maven-javadoc-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;    &amp;lt;executions&amp;gt;&lt;br /&gt;    &amp;lt;execution&amp;gt;&lt;br /&gt;     &amp;lt;id&amp;gt;attach-javadocs&amp;lt;/id&amp;gt;&lt;br /&gt;     &amp;lt;goals&amp;gt;&lt;br /&gt;      &amp;lt;goal&amp;gt;jar&amp;lt;/goal&amp;gt;&lt;br /&gt;     &amp;lt;/goals&amp;gt;&lt;br /&gt;    &amp;lt;/execution&amp;gt;&lt;br /&gt;   &amp;lt;/executions&amp;gt;&lt;br /&gt;  &amp;lt;/plugin&amp;gt;&lt;br /&gt; &amp;lt;/plugins&amp;gt;&lt;br /&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;For project importing javadoc:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;font-size:10px;"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&amp;lt;project&amp;gt;&lt;br /&gt; &amp;lt;parent&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;merging-javadoc&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;oqube.maven&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;/parent&amp;gt;&lt;br /&gt; &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt; &amp;lt;groupId&amp;gt;oqube.maven.javadoc&amp;lt;/groupId&amp;gt;&lt;br /&gt; &amp;lt;artifactId&amp;gt;aggregate&amp;lt;/artifactId&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;build&amp;gt;&lt;br /&gt;  &amp;lt;plugins&amp;gt;&lt;br /&gt;   &amp;lt;plugin&amp;gt;&lt;br /&gt;    &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;    &amp;lt;artifactId&amp;gt;maven-dependency-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;    &amp;lt;executions&amp;gt;&lt;br /&gt;     &amp;lt;execution&amp;gt;&lt;br /&gt;      &amp;lt;id&amp;gt;unpack&amp;lt;/id&amp;gt;&lt;br /&gt;      &amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;&lt;br /&gt;      &amp;lt;goals&amp;gt;&lt;br /&gt;       &amp;lt;goal&amp;gt;unpack&amp;lt;/goal&amp;gt;&lt;br /&gt;      &amp;lt;/goals&amp;gt;&lt;br /&gt;      &amp;lt;configuration&amp;gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;&lt;br /&gt;       &amp;lt;artifactItems&amp;gt;&lt;br /&gt;        &amp;lt;artifactItem&amp;gt;&lt;br /&gt;         &amp;lt;groupId&amp;gt;oqube.maven.javadoc&amp;lt;/groupId&amp;gt;&lt;br /&gt;         &amp;lt;artifactId&amp;gt;project1&amp;lt;/artifactId&amp;gt;&lt;br /&gt;         &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;         &amp;lt;type&amp;gt;jar&amp;lt;/type&amp;gt;&lt;br /&gt;         &amp;lt;classifier&amp;gt;javadoc&amp;lt;/classifier&amp;gt;&lt;br /&gt;         &amp;lt;overWrite&amp;gt;true&amp;lt;/overWrite&amp;gt;&lt;br /&gt;         &amp;lt;outputDirectory&amp;gt;&lt;br /&gt;          ${project.build.directory}/site/project1-docs/&lt;br /&gt;         &amp;lt;/outputDirectory&amp;gt;&lt;br /&gt;        &amp;lt;/artifactItem&amp;gt;&lt;br /&gt;        &amp;lt;artifactItem&amp;gt;&lt;br /&gt;         &amp;lt;groupId&amp;gt;oqube.maven.javadoc&amp;lt;/groupId&amp;gt;&lt;br /&gt;         &amp;lt;artifactId&amp;gt;project2&amp;lt;/artifactId&amp;gt;&lt;br /&gt;         &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt;         &amp;lt;classifier&amp;gt;javadoc&amp;lt;/classifier&amp;gt;&lt;br /&gt;         &amp;lt;type&amp;gt;jar&amp;lt;/type&amp;gt;&lt;br /&gt;         &amp;lt;overWrite&amp;gt;true&amp;lt;/overWrite&amp;gt;&lt;br /&gt;         &amp;lt;outputDirectory&amp;gt;&lt;br /&gt;          ${project.build.directory}/site/project2-docs/&lt;br /&gt;         &amp;lt;/outputDirectory&amp;gt;&lt;br /&gt;        &amp;lt;/artifactItem&amp;gt;&lt;br /&gt;       &amp;lt;/artifactItems&amp;gt;&lt;br /&gt;       &amp;lt;outputDirectory&amp;gt;&lt;br /&gt;        ${project.build.directory}/site/project2-docs/&lt;br /&gt;       &amp;lt;/outputDirectory&amp;gt;&lt;/span&gt;&lt;br /&gt;     &amp;lt;/configuration&amp;gt;&lt;br /&gt;    &amp;lt;/execution&amp;gt;&lt;br /&gt;   &amp;lt;/executions&amp;gt;&lt;br /&gt;      &amp;lt;/plugin&amp;gt;&lt;br /&gt; &amp;lt;/plugins&amp;gt;&lt;br /&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;li&gt;It is then just a matter of adding links on site.xml:&lt;/li&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt;&lt;br /&gt;&amp;lt;project name="Javadoc aggregation test"&amp;gt;&lt;br /&gt;&amp;lt;publishDate position="bottom" format="dd-MM-yyyy"/&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt; &amp;lt;menu name="API Documentation"&amp;gt;&lt;br /&gt;  &amp;lt;item name="Project1" href="/project1-docs/index.html"/&amp;gt;&lt;br /&gt;  &amp;lt;item name="Project2" href="/project2-docs/index.html"/&amp;gt;&lt;br /&gt; &amp;lt;/menu&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Of course, this is not **true** aggregation, but it works fine. One could achieve true aggregation using similar technique but with:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;exporting sources&lt;/li&gt;&lt;br /&gt;&lt;li&gt;unpackgin source files and tweaking javadoc plugin to use these as inputs&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/870179203042068988-3213428216861761362?l=testehsavoie.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://testehsavoie.blogspot.com/feeds/3213428216861761362/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://testehsavoie.blogspot.com/2007/09/aggregation-de-javadoc-sous-maven2.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3213428216861761362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/870179203042068988/posts/default/3213428216861761362'/><link rel='alternate' type='text/html' href='http://testehsavoie.blogspot.com/2007/09/aggregation-de-javadoc-sous-maven2.html' title='Aggrégation de Javadoc sous Maven2'/><author><name>ehsavoie</name><uri>http://www.blogger.com/profile/15310007753097500007</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_n-yR1DrB0m4/SODdwJ_VizI/AAAAAAAAAB8/sihEspryW0E/S220/batux-chimie-tux.png'/></author><thr:total>0</thr:total></entry></feed>
