<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Touilleur Express &#187; paris jug</title>
	<atom:link href="http://www.touilleur-express.fr/tag/paris-jug/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.touilleur-express.fr</link>
	<description>Blog sur Java, le métier de développeur et la vie de freelance par Nicolas Martignole</description>
	<lastBuildDate>Wed, 08 Feb 2012 11:54:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>La soirée du 11 mai 2010 au Paris JUG : Git, DVCS et l&#039;eXpress-Board</title>
		<link>http://www.touilleur-express.fr/2010/05/12/la-soiree-du-11-mai-2010-au-paris-jug-git-dvcs-et-lexpress-board/</link>
		<comments>http://www.touilleur-express.fr/2010/05/12/la-soiree-du-11-mai-2010-au-paris-jug-git-dvcs-et-lexpress-board/#comments</comments>
		<pubDate>Wed, 12 May 2010 20:23:36 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[express-board]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=3696</guid>
		<description><![CDATA[
Petit compte-rendu de la soirée du 11 mai 2010 au Paris JUG. Le thème de ce soir est consacré au principe de DVCS avec une présentation de Sébastien Douche. Puis ensuite une introduction à Git par David Gageot, suivie d&#8217;une présentation Maven 3 par Arnaud Héritier et Nicolas de Loof. Enfin une présentation de l&#8217;outil DeployIt par Guillaume Bodet et Benoît Moussaud.
Le W3C
Alexandre Bertails nous a tout d&#8217;abord présenté en 15 minutes le W3C et son nouveau poste au sein de l&#8217;équipe Système. Avant tout, allez voir le site web ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.touilleur-express.fr/wp-content/parisjug_mai2010.jpg"><img src="http://www.touilleur-express.fr/wp-content/parisjug_mai2010.jpg" alt="" title="parisjug_mai2010" width="500" height="231" class="size-full wp-image-3707" /></a></p>
<p>Petit compte-rendu de la soirée du <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20100511">11 mai 2010</a> au <a href="http://www.parisjug.org">Paris JUG</a>. Le thème de ce soir est consacré au principe de <a href="http://en.wikipedia.org/wiki/Distributed_version_control_system">DVCS</a> avec une présentation de Sébastien Douche. Puis ensuite une introduction à Git par David Gageot, suivie d&#8217;une présentation Maven 3 par Arnaud Héritier et Nicolas de Loof. Enfin une présentation de l&#8217;outil DeployIt par Guillaume Bodet et Benoît Moussaud.</p>
<p><strong>Le W3C</strong><br />
<a href="http://www.parisjug.org/xwiki/bin/view/Speaker/BertailsAlexandre">Alexandre Bertails</a> nous a tout d&#8217;abord présenté en 15 minutes le W3C et son nouveau poste au sein de l&#8217;équipe Système. Avant tout, allez voir <a href="http://www.w3.org/">le site web du W3C</a>. C&#8217;est un exemple de ce que l&#8217;on peut faire et qui respecte les standards du Web. Fondé en octobre 1994, le World Wide Web Consortium (W3C) est un organisme de standardisation, à but non lucratif, chargé de promouvoir et d&#8217;assurer la compatibilité des technologies comme HTML, XML, XHTML, RDF, SOAP ou CSS.<br />
Avec 65 groupes, environ 400 membres, 18 bureaux à travers le monde, Alexandre explique que le travail au quotidien ne manque pas. Ses outils pour travailler ? Les standards du Web. Il utile d&#8217;ailleurs pendant la présentation des slides réalisés en HTML5 sur un simple navigateur. Depuis son arrivée au W3C, il travaille sur différents sujets. Il y a du Java bien sûr, avec les outils de validation HTML, qui tourne sur le moteur Jigsaw. Des sites du W3C reçoivent entre 1 et 5 millions de hits par jour. Certains services sont en Java, et ça tourne !<br />
Alexandre sera là mardi 18 mai pour faire une présentation sur Scala lors de l&#8217;inauguration du Paris Scala User Groupe, en principe chez Xebia. Je vous tiens au courant, je suis inscrit et je compte bien y aller.</p>
<p><strong>I. DVCS</strong><br />
Sébastien Douche a ensuite donné une très bonne présentation de son expérience avec DVCS. J&#8217;ai vraiment bien aimé. Sympa, détendu et un poil polémique histoire que nous nous endormions pas. Comme on dit : SEB c&#8217;est bien.</p>
<p>Il lance ses slides et commence par se présenter. A chaque fois qu&#8217;il vient au Paris JUG, Antonio l&#8217;appelle &laquo;&nbsp;<em>Onon Palui</em>&laquo;&nbsp;.<br />
Il faut dire que Sébastien est un extraterrestre : c&#8217;est un expert Python, il ne fait pas de Java. Ce qui donne des bons échanges, parfois musclés, mais toujours sportifs.</p>
<p>Il nous propose de découvrir DVCS (le concept) et parle de  DCVS (qui est un logiciel). Directeur technique d&#8217;une Startup, il raconte sa propre expérience. Pour lui,  la gestion de version du code source est le premier filet de sécurité. Le deuxième étant les tests. Un développeur qui n&#8217;écrit pas de tests lorsqu&#8217;il écrit du code, n&#8217;est pas un développeur. Point à la ligne.</p>
<p>Avec son background, lorsqu&#8217;il prend le rôle de Tech Lead en 2007 dans son entreprise il arrive avec son package habituel : Trac et SVN. Comme nous, c&#8217;est quelqu&#8217;un qui fait du SVN depuis fort, fort, fort longtemps&#8230; et il a arrêté.</p>
<p>Le logiciel de sa Startup demande beaucoup de refactoring, à comparer avec la gestion du cycle de vie d&#8217;une application en maintenance. Il explique que pour une application avec 2 ou 3 ans de code, il y a des traces dans la neige pour skier. Son souci pour son produit, c&#8217;est que tout est à faire. Un peu comme descendre une piste de poudreuse la première fois. Le refactoring est important. Les développeurs ne sont pas toujours d&#8217;accord, les discussions fusent&#8230; et il commence à souffrir avec SVN.</p>
<p>Il se rend compte d&#8217;abord que SVN apporte de la souffrance. Les développeurs travaillent par &laquo;&nbsp;micro-commit/micro-merge&nbsp;&raquo;. Parfois même, ils font la course l&#8217;un, l&#8217;autre, afin de commiter avant l&#8217;autre&#8230; pour éviter le merge ! Cela nous fait rire car il a raison. Donc des commits très fréquents, sans parfois de réel intérêts pour le produit.</p>
<p>Après le micro-merge, il faut ensuite parfois faire des macro-merges. Vous vous dîtes : et les branches SVN ? Et bien tout le monde est d&#8217;accord pour dire que SVN traumatise. Faire des branches c&#8217;est compliqué. Il faut vraiment être motivé et avoir une personne dédiée pour cela&#8230; Quelle perte de temps.</p>
<p>Au final, Sébastien dit que SVN se transforme en outil de copie sophistiqué&#8230; pas en gestionnaire de code source. Il ne fait que de l&#8217;historisation.</p>
<p>Son souci c&#8217;est la valeur livrée. Il faut dire que c&#8217;est un passionné de l&#8217;Agilité. Il est l&#8217;un des organisateurs de <a href="conf.agile-france.org/">la conférence Agile France</a> qui aura lieu le 31 mai et le 1er juin à Paris.</p>
<p>Le but d&#8217;une équipe de développement logiciel est de livrer régulièrement de la valeur au client. Un logiciel qui marche, sur lequel il est possible de faire une démo à tout moment. Pour cela, il faut supprimer la douloureuse étape de l&#8217;intégration et de la livraison. Cela semble facile, mais c&#8217;est très difficile avec SVN.</p>
<p>La solution est simple : faire de l&#8217;isolation ! Au lieu d&#8217;avoir une vision &laquo;&nbsp;version par fichier&nbsp;&raquo; ou &laquo;&nbsp;vision par répertoire&nbsp;&raquo;, le principe des DVCS est de travailler sur des petits incréments, sur les différences des fichiers au sens contenu.</p>
<p>Sébastien prévient tout le monde : vous avez fait du SVN ? Le passage à Git, à Mercurial ou à Bazaar sera difficile. J&#8217;ai fait mes premiers pas avec <a href="http://bazaar.canonical.com/en/">Bazaar</a>, sur le framework Play! et c&#8217;est simple à comprendre. Le problème est que SVN nous a détruit le cerveau, et qu&#8217;il sera difficile de réapprendre.</p>
<p>La première notion importante dont parle Sébastien, <strong>c&#8217;est la notion de Workflow</strong>. Il existe plusieurs Workflows :<br />
- votre manière de commiter à vous, le workflow personnel<br />
- la manière de commiter/merger par rapport à vos collègues (inter-personnel)<br />
- le workflow organisationnel, imposé par le projet ou l&#8217;organisation</p>
<p>Le premier intérêt de Git ou Mercurial : comme chacun dispose d&#8217;un repository local, avec l&#8217;ensemble du projet, vous pourrez commiter à votre rythme, comme vous voulez, localement. C&#8217;est votre workflow perso.</p>
<p>Ensuite, lorsque vient le temps d&#8217;intégrer, le workflow interpersonnel permet de construire le logiciel en isolant les incréments des autres développeurs, pour construire si j&#8217;ai bien compris, la version &laquo;&nbsp;commune&nbsp;&raquo;.</p>
<p>Les nouveaux workflows apportent du vocabulaire différent. Sébastien et David parlent de Cherry Picking, de la possibilité d&#8217;envoyer des patchs facilement, de bosser sur plusieurs repositories&#8230;</p>
<p>Dans le monde SVN, quelqu&#8217;un qui fait des commits toutes les 10 mn gène ses voisins, qui doivent s&#8217;adapter à son Workflow. Dans le monde DVCS ce n&#8217;est pas le cas.</p>
<p>La 2eme notion : les DVCS sont orientés contenu. SVN est orienté ChangeSet. DVCS en fait se fiche pas mal des noms des répertoires ou des fichiers. Le principe c&#8217;est de travailler sur le contenu et de s&#8217;échanger le contenu, pas le contenant.</p>
<p>Pour conclure, Sébastien (dont j&#8217;ai résumé ici la présentation) donne les points qui ont changé pour lui :<br />
- Tout d&#8217;abord les développeurs sont focalisés sur le code, ils ne perdent pas de temps avec la gestion de source<br />
- Git ou Mercurial sont très souples, et vivent leur vie en dehors de l&#8217;organisation, ce qui vous laisse toute la liberté nécessaire pour travailler.<br />
- Les pushs de code se font vers un repo central ou vers le repo de ses voisins par fonction. C&#8217;est bien plus logique. Cela ressemble à une copie intelligente du code d&#8217;un poste de travail vers l&#8217;autre finalement<br />
- Les revues de code sont faciles à faire, et systématique.<br />
- Il est possible de faire des démos à tout moment, car la version commune marche forcément. Les démonstrations se font dès qu&#8217;une fonction est livrée.<br />
- Il y a moins de stress dans l&#8217;équipe<br />
- Le projet est beaucoup plus stable</p>
<p>Bref Sébastien nous encourage à regarder vers l&#8217;avenir et à nous remettre en question. Ce fut une présentation très sympa et bien animée.</p>
<p><strong>II. Git, la gestion de configuration qui vous veut du bien</strong><br />
David Gageot est <a href="https://beta.algodeal.com/home.html">le CTO d&#8217;AlgoDeal.com</a>. C&#8217;est un hedge fund qui recrute ses Quants sur Internet en proposant une plateforme de valorisation, pour pouvoir créer des algos de passage d&#8217;ordre automatique sur le marché. Le tout avec du Java, des technos sympathiques comme Voldermort par exemple.</p>
<p>Git est un outil de gestion de versions distribué créé par Linus Torvald (note : si tu ne connais pas Linus à 30 ans, tu as raté ta vie). Ecrit en C, c&#8217;est un outil bas niveau qui permet de gérer de manière décentralisée le code source d&#8217;un projet. En l&#8217;occurrence, le noyau Linux. Autant dire que c&#8217;est pas un truc de Mickey, et que le système est éprouvé. Mais pour Linux&#8230;</p>
<p>David comme Sébastien est très direct : oubliez SVN ! SVN pas bien ! SVN poubelle ! Celui qui fait repousser les cheveux, qui fait revenir l&#8217;être aimé, qui vous donne de beaux abdos c&#8217;est Git !</p>
<p>Lancé en avril 2005, suite à quelques différents autour de BitKeeper, Git est plutôt bien documenté. David cite le Git Community Book qui a été traduit en Français <a href="http://www.alexgirard.com/git-book/index.html">sur le site d&#8217;Alex Girard</a>.</p>
<p>Du côté des outils, Git est fournit avec un client Tcl/Tk. David cite <a href="http://gitx.frim.nl/index.html">GitX</a> pour Mac OS. Côté Windows il ne semble pas y avoir d&#8217;outils très performant pour l&#8217;instant.</p>
<p>Personne n&#8217;a parlé du support dans IDEA IntelliJ. Dommage car <a href="http://www.jetbrains.com/idea/features/version_control.html#Git_support">JetBrains explique que Git est supporté</a> sans devoir installer un plugin&#8230; comme dans l&#8217;autre logiciel là&#8230; néclipseu&#8230; Enfin bref vous me comprenez.</p>
<p>Pour continuer, David montre 2 fonctions clés de Git qui permettent de gagner du temps. Tout d&#8217;abord Git bisect puis ensuite le principe du build incassable.</p>
<p>Git bisect est un script qui permet de retrouver à quel moment votre logiciel a cassé. Pour illustrer cela, il prend un cas vécu : après Noël, il se rend compte que la commande &laquo;&nbsp;mvn eclipse:eclipse&nbsp;&raquo; ne marche plus sur son projet. En remontant sur d&#8217;anciennes versions, il se rend compte que c&#8217;est le cas depuis pas mal de temps&#8230; Mais impossible de trouver un commit évident.<br />
Grâce à Git bisect, il va pouvoir ressortir les versions antérieurs de son projet, pouvoir lancer son script maven, et détecter quand exactement celui-ci a cassé le build. Ce fut assez bluffant.<br />
La doc de Git Bisect est <a href="http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html">sur le site kernel.org</a>. Déjà, cela fait plus sérieux qu&#8217;un site pingouin.com&#8230;</p>
<p>David parle ensuite du build incassable. Ce fut très intéressant. Pour illustrer cela, il nous montre son écran de contrôle Hudson : il est éteint. Et un gros sticker vert affiche &laquo;&nbsp;Build is Ok&nbsp;&raquo;. Car l&#8217;intégration continue de son projet ne casse jamais.</p>
<p>Pour ce faire, lorsqu&#8217;un développeur veut commiter, il va utiliser un petit script qui grâce à Git, va préparer une version dans un répertoire de travail sur le poste du développeur. Ensuite, le projet se compile, et si jamais le build fonctionne, alors Git termine le commit vers le serveur central. Et c&#8217;est tout !</p>
<p>David explique que dans l&#8217;ancien système basé sur SVN, il fallait parfois 11 minutes pour faire un &laquo;&nbsp;mvn clean install&nbsp;&raquo;. Et souvent, il allait prendre un café avec ses collègues. Aujourd&#8217;hui, plus besoin de perdre du temps, et il prend moins de café. Emmanuel Bernard me glisse à l&#8217;oreille : &laquo;&nbsp;<em>Du coup, Git c&#8217;est un peu Anti-Social comme système : tu ne bois plus de café avec tes collègues </em>&nbsp;&raquo; LOL <img src='http://www.touilleur-express.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )))</p>
<p>Bref Git c&#8217;est pas forcément plus simple, sur Windows ça pique un peu les yeux. Mais qui développe encore sur Windows ?</p>
<p>Fin du show, moi j&#8217;ai beaucoup aimé. David redonnera la présentation complète à la conférence <a href="http://conf.agile-france.org/">Agile France</a> et aussi<a href="www.universite-du-si.com/"> à l&#8217;USI 2010</a>. A ce propos, <a href="http://www.touilleur-express.fr/2010/04/16/usi-2010-la-conference-des-geeks-et-des-boss-le-1er-et-le-2-juillet-2010/">il reste 3 places pour ceux qui sont intéressés</a>.</p>
<p><strong>Le moment du buffet</strong><br />
<a href="http://www.express-board.fr/" alt="new2"><img src="http://www.touilleur-express.fr/wp-content/logo_expressboard_petit.jpg" alt="" title="logo_expressboard_petit" width="200" height="58" class="alignleft size-full wp-image-3698" /></a><br />
Après cette première heure, 220 geeks ont soif. Et lorsque le geek a soif, il descend prendre un verre. Pour l&#8217;accueillir : un buffet offert par <a href="http://www.express-board.fr">l&#8217;eXpress-Board</a>, le site d&#8217;offres d&#8217;emplois que j&#8217;ai lancé en mars dernier. Pour moi ce fut l&#8217;occasion de rencontrer des candidats, des gens intéressés par la partie technique, des annonceurs intéressés comme la société qui fait <a href="http://www.touilleur-express.fr/2009/12/04/merci-a-lequipe-primeweb/">le lapin Nabaztag</a>, un éditeur de logiciel dans la sécurité, et beaucoup de candidats intéressés. Le message que plusieurs m&#8217;ont dit : on veut pouvoir déposer un mini-CV et être contacté. Donc le message est reçu, et je vais travailler sur cette partie. L&#8217;une des personnes (Yann je crois) m&#8217;a donné quelques idées très sympathiques, bref ce fut très sympa.</p>
<p><strong>Maven 3 et Deploy It</strong><br />
<a href="http://www.touilleur-express.fr/wp-content/parisjug_arnaud_nicolas.jpg"><img src="http://www.touilleur-express.fr/wp-content/parisjug_arnaud_nicolas.jpg" alt="" title="parisjug_arnaud_nicolas" width="400" height="271" class="alignright size-full wp-image-3712" /></a> Ben là&#8230; désolé Arnaud et Nicolas&#8230; désolé Guillaume et Benoît&#8230; mais je n&#8217;étais pas là. J&#8217;ai passé une heure à discuter avec pas mal de monde et je n&#8217;ai pas assisté à la suite.</p>
<p>Enfin la 3ème mi-temps fut courte, c&#8217;est pas tout mais il y a du boulot.</p>
<p><strong>Conclusion</strong><br />
DVCS et Git, très intéressant. On attend un peu de voir les outils, et de comprendre les concepts, mais cela semble prometteur. En même temps, je pense que SVN sera encore là pour longtemps&#8230; comme Java.</p>
<p>Merci aux gars qui étaient là ce soir et qui ont parlé de l&#8217;eXpress-Board à leur société. La petite cacahuète de la table 4 c&#8217;est Pierre, le méga gros fromage sur la table 1 c&#8217;est grâce à Paul, la bonne bouteille de Bordeaux c&#8217;est grâce à Geoffrey&#8230; Tout cela grâce à tout le monde.<br />
<a href="http://www.touilleur-express.fr/wp-content/parisjug_buffet1.jpg"><img src="http://www.touilleur-express.fr/wp-content/parisjug_buffet1.jpg" alt="" title="parisjug_buffet" width="500" height="140" class="alignnone size-full wp-image-3709" /></a><br />
Je crois au concept des annonces distribuées. Si nous devons faire une analogie avec SVN versus Git, voici ce que je dirai : SVN a besoin d&#8217;un serveur central pour fonctionner, comme un site d&#8217;offres d&#8217;emplois classique. Git au contraire vous permet de cloner en local le contenu et de travailler sans devoir subir un Workflow lourd.</p>
<p>Le site l&#8217;eXpress-Board c&#8217;est exactement pareil : les offres sont disponibles <a href="http://www.express-board.fr/feed">via un flux RSS</a> comme un Blog. Vous pouvez donc les ajouter sur votre Google Reader et suivre celles-ci sans devoir venir sur le site. Vous pouvez même partager ces offres comme autant de billets de blogs sur votre interface Google Reader.</p>
<p>Je crois plus à la force du réseau et au bouche à oreille pour trouver un boulot. Les offres du site ne sont donc que les étincelles qui doivent ensuite amener les candidats à contacter les annonceurs. Enfin vous l&#8217;avez compris, en donnant votre avis sur les offres, vous encouragez les annonceurs qui sortent du lot. Et écrire une annonce différente est loin d&#8217;être facile.<br />
Je conseille donc aux sociétés qui souhaitent passer une annonce de demander à leurs Geeks et à leurs développeurs. Cela prend 10 minutes, et c&#8217;est un projet passionnant.</p>
<p>En fait, si j&#8217;étais un responsable RH, je ferai un concours pour que mes gars préparent une annonce. Et ensuite, l&#8217;annonce la plus sympa est mise en ligne sur le site. Si un candidat signe et rejoint alors la société, et bien je verserai la prime de cooptation à la personne qui a écrit l&#8217;annonce.</p>
<p>C&#8217;est tout pour ce soir, à bientôt.</p>
<p>(le bonhomme au milieu c&#8217;est moi)<br />
<a href="http://www.touilleur-express.fr/wp-content/Touilleur_Express.jpg"><img src="http://www.touilleur-express.fr/wp-content/Touilleur_Express.jpg" alt="" title="Touilleur_Express" width="480" height="320" class="alignright size-full wp-image-3714" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2010/05/12/la-soiree-du-11-mai-2010-au-paris-jug-git-dvcs-et-lexpress-board/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Soirée Performance au Paris JUG lundi 18 janvier</title>
		<link>http://www.touilleur-express.fr/2010/01/13/soiree-performance-au-paris-jug-lundi-18-janvier/</link>
		<comments>http://www.touilleur-express.fr/2010/01/13/soiree-performance-au-paris-jug-lundi-18-janvier/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 12:15:43 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=2854</guid>
		<description><![CDATA[
L&#8217;année 2010 repart et nous vous proposons une première soirée dans une nouvelle salle le lundi 18 janvier. Nous recevrons Kirk Pepperdine, que nous avions déjà reçu en avril 2008 dans une toute petite salle à Paris. Kirk est un Java Champion tout comme Antonio Goncalvès. Il est souvent présent aux conférences en Europe. J&#8217;ai eu la chance de dîner avec lui à Jazoon 2009 à Zurich, c&#8217;est un sacré gaillard.
Rendez-vous donc le lundi 18 janvier, de 19h15 à 22h30 dans les locaux de la Sorbonne Paris IV, métro Ligne ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.touilleur-express.fr/wp-content/Juggy_version7_marcel1.jpg"><img src="http://www.touilleur-express.fr/wp-content/Juggy_version7_marcel1.jpg" alt="" title="Juggy_version7_marcel" width="150" height="150" class="alignnone size-full wp-image-2856" /></a><br />
L&#8217;année 2010 repart et nous vous proposons une première soirée dans une nouvelle salle le lundi 18 janvier. Nous recevrons Kirk Pepperdine, que nous avions déjà reçu <a href="http://www.touilleur-express.fr/2008/04/09/presentation-de-kirk-pepperdine-au-paris-java-user-group/">en avril 2008</a> dans une toute petite salle à Paris. Kirk est un Java Champion tout comme Antonio Goncalvès. Il est souvent présent aux conférences en Europe. J&#8217;ai eu la chance de dîner avec lui à Jazoon 2009 à Zurich, c&#8217;est un sacré gaillard.</p>
<p>Rendez-vous donc le lundi 18 janvier, de 19h15 à 22h30 <a href="http://www.parisjug.org/xwiki/bin/view/Location/SorbonneParisIV">dans les locaux de la Sorbonne Paris IV</a>, métro Ligne 3 Malesherbes.<br />
N&#8217;oubliez pas de vous inscrire  sur le site du Paris JUG.</p>
<p>Sinon le mardi 9 février aura lieu <strong>le deuxième anniversaire du Paris JUG</strong> avec une soirée exceptionnelle. Nous avons réservé une grande salle et un hall d&#8217;exposition, afin d&#8217;accueillir tout le monde. Comme vous le savez, les soirées du Paris JUG sont souvent complètes quelques jours avant celles-ci. Cette fois-ci c&#8217;est une salle de 500 places, un espace où nous vous offrirons un buffet, et très certainement quelques stands pour des exposants. Marquez-bien cette date dans votre agenda : mardi 9 février, à la Sorbonne aussi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2010/01/13/soiree-performance-au-paris-jug-lundi-18-janvier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retour sur la soirée JSF 2.0 et Servlet 3.0</title>
		<link>http://www.touilleur-express.fr/2009/10/16/retour-sur-la-soiree-jsf-2-0-et-servlet-3-0/</link>
		<comments>http://www.touilleur-express.fr/2009/10/16/retour-sur-la-soiree-jsf-2-0-et-servlet-3-0/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 08:19:33 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=2098</guid>
		<description><![CDATA[Mardi dernier au Paris JUG c&#8217;était une soirée placée sous le thème JEE6 avec une présentation de Java Server Faces 2.0 et de la spécification des Servlets 3.0. Damien Gouyette et François Petitit ont présenté les dernières évolutions de JSF 2. Remy Maucherat de JBoss RedHat a présenté la spécification des Servlets 3.0
Retour express
Olivier Croisier de Zenika, auteur du blog &#171;&#160;The Coder&#8217;s Breakfast&#160;&#187; a publié un compte-rendu détaillé, ainsi que Mathieu Petitdent d&#8217;Object Direct. Du coup je ne vois pas trop l&#8217;utilité de vous resservir le même contenu, donc pas ...]]></description>
			<content:encoded><![CDATA[<p>Mardi dernier <a href="http://www.parisjug.org">au Paris JUG</a> c&#8217;était une soirée placée sous le thème JEE6 avec une présentation de Java Server Faces 2.0 et de la spécification des Servlets 3.0. Damien Gouyette et François Petitit ont présenté les dernières évolutions de JSF 2. Remy Maucherat de JBoss RedHat a présenté la spécification des Servlets 3.0</p>
<p><strong>Retour express</strong><br />
Olivier Croisier de Zenika, auteur du blog &laquo;&nbsp;<a href="http://thecodersbreakfast.net/">The Coder&#8217;s Breakfast</a>&nbsp;&raquo; a publié <a href="http://thecodersbreakfast.net/index.php?post/2009/10/14/Compte-rendu-du-Paris-JUG-JSF2-/-Servlets-3">un compte-rendu détaillé</a>, ainsi que <a href="http://blog.objetdirect.com/javaee/paris-jug-octobre-2009-jsf2-et-servlet-30">Mathieu Petitdent</a> d&#8217;Object Direct. Du coup je ne vois pas trop l&#8217;utilité de vous resservir le même contenu, donc pas de retour cette fois-ci pour moi.</p>
<p><strong>Emmanuel Bernard au Paris JUG</strong><br />
La soirée a été marquée cependant par la présence <a href="http://blog.emmanuelbernard.com/">d&#8217;Emmanuel BERNARD</a>, de JBoss RedHat, pour la première fois. Auteur du livre <a href="http://www.manning.com/bernard/">Hibernate Search in Action</a>, et fondateur du Podcast &laquo;&nbsp;<a href="http://lescastcodeurs.com/">Les CastCodeurs</a>&laquo;&nbsp;, Emmanuel a surtout annoncé la sortie le 8 octobre dernier <a href="https://www.hibernate.org/412.html">d&#8217;Hibernate Validator 4.0</a>. Il s&#8217;agit tout d&#8217;abord de l&#8217;implémentation de référence <a href="http://www.touilleur-express.fr/2008/06/06/jsr-303-vous-avez-valide-votre-bean/">de la JSR-303</a>.</p>
<p>Plutôt que de dupliquer du code de Validation au niveau de la vue, de la base de données ou des services métiers, l&#8217;idée de la JSR-303 est de proposer une validation au niveau du POJO. La JSR-314 (JSF 2.0) propose les Validators, mais plutôt que de dupliquer ce code de validation, l&#8217;idée de la JSR-303 est de proposer à JSF 2.0 un moteur de validation. De même avec JPA 2.0. A priori en décembre Emmanuel Bernard devrait nous en parler plus précisément, avec des exemples de code. Rendez-vous donc à la fin de cette année.</p>
<p><strong>La troisième et la quatrième mi-temps</strong><br />
Changement de lieu, nous étions au Vavin. Service très pro, ambiance sympa et un peu bruyante. C&#8217;est toujours un plaisir de discuter avec tout le monde, de voir des têtes connues de la communauté parisienne, bref très sympa. Si vous voulez un teeshirt dédicacé d&#8217;Arnaud Héritier sur Maven2, une casquette JEE6 par Antonio Goncalves, ou un caleçon eXo Platform par Julien Viet, il faut venir au Paris JUG.</p>
<p>A propos des enrouleurs et du kakimono. Mardi soir nous avions 3 grands enrouleurs pour mettre en valeur nos sponsors Platinium. Même si j&#8217;ai réalisé les montages avec Adobe Illustrator, c&#8217;est grâce à l&#8217;aide de Karine VACCA <a href="http://www.321idcom.fr/">de l&#8217;agence 3-2-1 idCom</a> que nous avons eu de beaux enrouleurs, livrés à temps et de bonne qualité. Donc si vous cherchez une agence sympa pour faire de la communicaton, du marketing, organiser un événement comme une formation, ou un séminaire, contactez de ma part <a href="http://www.321idcom.fr/">3-2-1 idCom</a> Travail sérieux et professionnel, encore merci pour son aide.</p>
<p><strong>Articles du blog le Touilleur Express connexes</strong><br />
Vous pouvez relire 2 articles sur Emmanuel Bernard :<br />
- <a href="http://www.touilleur-express.fr/2009/06/25/jazoon-day-3-hibernate-search/">Présentation à Jazoon sur Hibernate Search</a> article de juin 2009.<br />
- <a href="http://www.touilleur-express.fr/2008/06/06/jsr-303-vous-avez-valide-votre-bean/">JSR-303, avez-vous validé votre Bean ?</a> article de juin 2008.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/10/16/retour-sur-la-soiree-jsf-2-0-et-servlet-3-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compte-rendu de la soirée Qualité du Logiciel au Paris JUG, le 15 septembre 2009</title>
		<link>http://www.touilleur-express.fr/2009/09/18/compte-rendu-de-la-soiree-qualite-du-logiciel-au-paris-jug-le-15-septembre-2009/</link>
		<comments>http://www.touilleur-express.fr/2009/09/18/compte-rendu-de-la-soiree-qualite-du-logiciel-au-paris-jug-le-15-septembre-2009/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 12:14:41 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1960</guid>
		<description><![CDATA[Début de la nouvelle saison du Paris JUG ce mardi 15 septembre avec une soirée sur la qualité du logiciel. La soirée était divisée en 4 sessions de 30 minutes. Après une présentation de la démarche qualité et des différents types d&#8217;outils open-sources, nous avons eu 3 présentations sur Sonar, SonarJ et Squale. Une superbe soirée avec 200 personnes dans une salle comble.
1)Contrôle Qualité avec des outils open-source par François le Droff et Romain Pelisse
Romain Pelisse et François le Droff débutent par une bonne présentation afin passer en revue les ...]]></description>
			<content:encoded><![CDATA[<p>Début de la nouvelle saison du Paris JUG ce mardi 15 septembre avec une soirée sur la qualité du logiciel. La soirée était divisée en 4 sessions de 30 minutes. Après une présentation de la démarche qualité et des différents types d&#8217;outils open-sources, nous avons eu 3 présentations sur Sonar, SonarJ et Squale. Une superbe soirée avec 200 personnes dans une salle comble.</p>
<p><strong>1)Contrôle Qualité avec des outils open-source</strong> par François le Droff et Romain Pelisse</p>
<p>Romain Pelisse et François le Droff débutent par une bonne présentation afin passer en revue les outils open-sources. <a href="http://www.parisjug.org/xwiki/bin/view/Speaker/PelisseRomain">Romain</a> est contributeur du projet <a href="http://pmd.sourceforge.net/">PMD</a> et leader du projet <a href="http://xradar.sourceforge.net">XRadar</a>. <a href="http://www.parisjug.org/xwiki/bin/view/Speaker/LeDroffFrancois">François</a> est contributeur sur XRadar. Tout d&#8217;abord, quelques mots sur la qualité. Mesurer la qualité de son logiciel, c&#8217;est d&#8217;abord contrôler sa complexité. Lorsque votre logiciel ne fonctionne plus, vous êtes victime d&#8217;une tragédie, pas d&#8217;une statistique. J&#8217;en profite pour vous parler d&#8217;un document de 1995 qui ne fait que 8 pages et qui résume plus globalement le Chaos du développement logiciel : <a href="http://www.projectsmart.co.uk/docs/chaos-report.pdf">The Chaos Report</a> par the Standish Group Report. Bref la qualité c&#8217;est fun, et l&#8217;on peut même parler de <strong>Développement Piloté par la Qualité</strong>.</p>
<p>Qui est responsable de la qualité ? Tout le monde. Du développeur au Chef de projet en passant par l&#8217;Architecte. Quand ? Tout le temps. La Qualité n&#8217;est pas une option que l&#8217;on ajoute à posteriori. C&#8217;est une démarche qui doit faire partie du cycle de compilation et de déploiement de votre logiciel. Comment mettre en place des outils d&#8217;analyse de la qualité ? L&#8217;intégration continue est un bon endroit pour mettre en place ces outils. Ce qui est intéressant par contre dans un produit comme SonarJ que l&#8217;on verra ensuite, c&#8217;est qu&#8217;il est possible de mettre en place ces outils dans l&#8217;environnement de développement. Un des points forts d&#8217;IDEA IntelliJ c&#8217;est l&#8217;intégration d&#8217;un moteur de qualité qui est présent au moment de l&#8217;écriture de votre code. C&#8217;est bien souvent quelque chose que les développeurs découvrent, alors que finalement cela devrait être obligatoire dans un IDE en 2009.</p>
<p>Il existe différents types d&#8217;outils pour l&#8217;analyse du code Java. Des outils d&#8217;analyse statique, du bytecode, des archives Java et d&#8217;autres comme l&#8217;analyse de la couverture de tests de votre code. <a href="http://pmd.sourceforge.net/">PMD</a> est un moteur d&#8217;analyse du code source Java, intégré avec un grand nombre d&#8217;IDE. Il permet d&#8217;identifier les bugs potentiels, le code mort, le code mal optimisé, le tout avec environ 250 règles. C&#8217;est un appareil de radiographie qui vous permet d&#8217;analyser du code de manière statique. Mon favori c&#8217;est aussi <a href="http://findbugs.sourceforge.net/">FindBugs</a>, un projet qui ne paye pas de mine mais qui génère des statistiques vraiment intéressantes pour trouver des bugs dans votre code. Les outils d&#8217;analyse du bytecode sont un peu moins précis mais permettent de détecter des cas que l&#8217;analyse de code source ne peut pas trouver. L&#8217;analyse du bytecode permet de générer des métriques de package sur le nombre de classes concrètes, abstraites et publiques. Il permet de détecter les dépendances cycliques, de calculer le degré d&#8217;abstraction ou d&#8217;instabilité du package. Je pense que le produit <a href="http://www.xdepend.com/">XDepend</a> dont je vous ai parlé <a href="http://www.touilleur-express.fr/2009/05/22/pour-faire-de-larcheologie-dans-du-code-java/">il y a quelques mois</a>, correspond à cette description. Il y a aussi des outils d&#8217;analyse des dépendances. Pratique afin de voir le sac de noeuds de votre projet Maven. Vous pouvez d&#8217;ailleurs retrouver une liste des outils d&#8217;analyse statique <a href="http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis">sur Wikipedia</a> si vous cherchez un outil pour du C/C++/Java ou .NET.</p>
<p>En conclusion pour cette première présentation, c&#8217;était un sans faute. Rythme parfait, et après 30 minutes nous étions en plein dans le sujet.</p>
<p>La présentation complète est en ligne :<br />
<img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNTMyNjI2MDcwOTAmcHQ9MTI1MzI2MjYxMjYwNSZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89YWRlODEzNjM4YWMwNDhhYThiZmJkYWNmZGM5MTY1ODYmb2Y9MA==.gif" />
<div style="width:425px;text-align:left" id="__ss_2005162"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/francoisledroff/soire-qualite-logicielle-paris-jug-tour-dhorizon-des-outils-open-source" title="Soirée Qualite Logicielle Paris JUG : Tour d&#39;horizon des outils open source">Soirée Qualite Logicielle Paris JUG : Tour d&#39;horizon des outils open source</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pjug-qualitelogicielle-2009-final-090916050132-phpapp02&#038;stripped_title=soire-qualite-logicielle-paris-jug-tour-dhorizon-des-outils-open-source" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pjug-qualitelogicielle-2009-final-090916050132-phpapp02&#038;stripped_title=soire-qualite-logicielle-paris-jug-tour-dhorizon-des-outils-open-source" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/francoisledroff">François Le Droff</a>.</div>
</div>
<p><strong>2)Sonar</strong> par Olivier Gaudin<br />
Olivier est l&#8217;un cofondateur de la société <a href="http://www.sonarsource.com">SonarSource</a>, éditeur du logiciel open-source <a href="http://www.sonar.org">Sonar</a>. Sa présentation était construite autour de la définition des 7 péchés capitaux du développeur, et de la réponse de l&#8217;outil Sonar. Sonar permet de collecter, d&#8217;analyser et de générer des rapports de la qualité pour la plateforme Java. Intégré à Maven, l&#8217;outil permet de mettre en place et de suivre l&#8217;évolution dans le temps d&#8217;indicateurs de qualité.</p>
<p>Olivier commence <a href="http://www.parisjug.org/xwiki/bin/download/Meeting/20090915/2009-15-09-Sonar.pdf">sa présentation</a> avec la phrase suivante : &laquo;&nbsp;A well-written program is a program where the cost of implementing a feature is constant throughout the program&#8217;s lifetime.&nbsp;&raquo; de Itay Maman. Ce sera d&#8217;ailleurs la même idée qui sera reprise ensuite avec la présentation de SonarJ. L&#8217;objectif de Sonar est de proposer un moyen de maîtriser l&#8217;érosion technique et de conserver un indicateur de la qualité, capable de remonter dans le temps.</p>
<p>Les métriques d&#8217;analyse de la complexité d&#8217;un logiciel ne sont pas neuves. La complexité cyclomatique, les standards de programmation, les tests unitaires, en fait tout ceci a bientôt 20 ans. Sonar propose de mesurer, de visualiser, d&#8217;agir et de suivre les améliorations dans le temps. Avant de commencer avec Sonar, Olivier appuie le fait qu&#8217;il soit indispensable de mettre en place un gestionnaire de code source, un environnement d&#8217;intégration continue, un moteur de construction du logiciel maîtrisé comme Maven et un gestionnaire d&#8217;incident comme Jira. Quelque part, la gestion des incidents devrait faire partie de Sonar pour moi. Ce serait aussi le moyen de mesurer les progrès réalisés non ?</p>
<p><a href="http://fr.wikipedia.org/wiki/P%C3%A9ch%C3%A9_capital">Les 7 péchés capitaux</a> s&#8217;appliquent très bien à ce que nous faisons, nous, les développeurs. Que ce soit l&#8217;avarice, l&#8217;envie ou la gourmandise, en effet on pense aux non-respect des standards de programmation, à la duplication de code, au manque de tests unitaires, aux mauvais commentaires, aux bugs potentiels, à la complexité du code, bref à tout ce qu&#8217;un développeur peut produire. Pour répondre à cela, Sonar propose un tableau de bord avec une vue synthétique plutôt bien pensée. Un indicateur vous donne ainsi le montant de votre dette technique en dollars. Ce montant est calculé si votre équipe devait fixer l&#8217;ensemble des problèmes identifiés, avec un prix unitaire par élément. Cela donne une idée du prix de la dette technique de votre logiciel.</p>
<p>Olivier termine par une démonstration de l&#8217;interface de Sonar. L&#8217;interface est plutôt bien pensée. Les indicateurs radars, les courbes d&#8217;évolution, tout ceci nous donne un sentiment de qualité sur le logiciel. Je pense que Sonar est un produit rapide et simple à mettre en oeuvre, et qu&#8217;il est dommage de s&#8217;en passer si votre projet est déjà en place avec Maven par exemple. La version 2.0 est prévue pour la fin de cette année</p>
<p><strong>3)SonarJ</strong></p>
<p>Frédéric Brachfeld présente ensuite le produit SonarJ, dont <a href="http://www.hello2morrow.com">la version 5.0</a> vient justement de sortir. SonarJ est un produit dont j&#8217;ai déjà parlé plusieurs fois sur le Touilleur Express (<a href="http://www.touilleur-express.fr/2009/05/22/pour-faire-de-larcheologie-dans-du-code-java/">ici</a> et <a href="http://www.touilleur-express.fr/2008/07/05/presentation-de-sonarj/">surtout là</a>). C&#8217;est un produit qui se résume par une image : une ceinture de sécurité. Il permet de définir des règles d&#8217;architecture en se reposant sur le découpage par package Java, mais surtout via un plugin dans Eclipse, de s&#8217;assurer que ces règles sont respectées lors de l&#8217;édition du code et de la création de nouvelles classes. La démonstration s&#8217;est terminée un peu difficilement, ce que je regrette pour Frédéric. Moi j&#8217;ai vu ce produit, et j&#8217;ai vu une présentation de Frédéric chez mon ancien employeur qui m&#8217;avait bluffé. Vraiment l&#8217;effet &laquo;&nbsp;Wahouu&nbsp;&raquo; pendant la démonstration. Ce qu&#8217;il faut bien comprendre, c&#8217;est que c&#8217;est un moyen de rendre plus intelligent votre code source, pour un effort relativement simple. C&#8217;est aussi un outil qui vous permet de réorganiser votre code source. J&#8217;entendais des gens critiquer la séance de découpage des packages et dire &laquo;&nbsp;ouais dans la vraie vie les packages ne sont jamais si bien rangés&nbsp;&raquo;&#8230; ce qui est tout à fait vrai. Mais justement, cet outil permet de reprendre la main sur un sac de noeuds, il permet de reranger le code. Et surtout, il permet de s&#8217;assurer que le code ne redevient pas n&#8217;importe quoi en quelques semaines.</p>
<p>J&#8217;en parle comme si j&#8217;avais des actions chez SonarJ, ce qui n&#8217;est pas le cas. J&#8217;en parle car j&#8217;étais déçu que la démonstration ne se passe pas comme prévu. J&#8217;aurais aimé cet effet &laquo;&nbsp;Wahouu&#8230;&nbsp;&raquo;. Testez le produit, c&#8217;est le seul qui apporte de la Qualité non pas à posteriori mais à priori. Il vous aide au moment d&#8217;écrire votre code, pas une fois qu&#8217;il est commité dans Subversion.</p>
<p><a href="http://www.hello2morrow.com/products/sonarj/community_license">Version open-source</a> de SonarJ.</p>
<p><strong>4)Squale</strong><br />
Enfin pour terminer, et là j&#8217;ai trouvé que la présentation venait conclure parfaitement la soirée, nous avons eu une présentation de Squale (Software QUALity Enhancement) par <a href="http://www.parisjug.org/xwiki/bin/view/Speaker/BellingardFabrice">Fabrice Bellingard</a>. La démarche du produit est de proposer une offre différente des produits existants. Squale analyse du code Java, du C, du C++ et du Cobol. Le point fort que Fabrice présente dès le début, c&#8217;est l&#8217;élaboration de modèles évolués. Je m&#8217;explique. Plutôt que de définir des métriques à effet de seuil, le moteur travaille avec des métriques linéaires. Là où un produit affiche un carré vert si la méthode doSomething fait 30 lignes, et un carré rouge si celle-ci fait 31 lignes, Squale propose une approche différente en lissant justement cet effet. Cela permet de rendre plus pertinent l&#8217;analyse et de donner des résultats plus précis afin de suivre la qualité de votre logiciel.</p>
<p><a href="http://www.qualixo.com/Squale/squale.html">Squale </a>s&#8217;adresse au développeur afin qu&#8217;il identifie les zones à risque. Il s&#8217;adresse au Chef de projet qui souhaite par exemple contractualiaser un niveau de qualité, et mettre en place des exigences en terme de tests afin de travailler avec un prestataire exterieur. Enfin il s&#8217;adresse aux responsables du produit, en offrant des indicateurs de plus haut niveau, afin de donner une idée de la complexité d&#8217;une application.</p>
<p>Les métriques dans le développement logiciel sont certainement aussi nombreuses que le nombre de langage existant. Mais l&#8217;un des indicateurs qui marche bien, c&#8217;est le &laquo;&nbsp;WTF per minut&nbsp;&raquo;. Lorsque vous lisez du code écrit par quelqu&#8217;un d&#8217;autre, combien de fois dites-vous à voix haute : &laquo;&nbsp;mais c&#8217;est quoi ce b&#8230; ?&nbsp;&raquo;. Plus sérieusement, Fabrice explique par contre que la recherche a validé avec des modèles des axiomes comme &laquo;&nbsp;la probabilité d&#8217;avoir un bug dans une méthode est proportionnel à la complexité cyclomatique de celle-ci&nbsp;&raquo;. Et c&#8217;est une des caracteristiques importantes de Squale.</p>
<p>Squale est aussi développé en collaboration avec l&#8217;Inria-Futurs de Lille et LIASD-Paris 8. Les modèles de qualité sont donc validés par des chercheurs. De plus, l&#8217;entreprise Qualixo qui développe le produit, travaille avec PSA et Air France afin d&#8217;utiliser de réels projets pour affiner les modèles. C&#8217;est aussi une caractéristique importante du produit.</p>
<p>Après cette présentation, Fabrice a effectué une démonstration du produit. L&#8217;approche de l&#8217;analyse s&#8217;effectue sur 4 niveaux. Tout d&#8217;abord la collecte des données brutes, ensuite l&#8217;analyse des pratiques (comme les règles de nommage), le respect de critères ensuite et enfin des facteurs qualitatifs comme l&#8217;estimation du coût de maintenance. L&#8217;interface Web de Squale permet en fait de naviguer dans son projet. Des indicateurs de ROI, en plus des indicateurs classiques de complexité du code, offrent aussi une vue plus pour les managers et les décideurs. Ainsi j&#8217;imagine qu&#8217;il sera possible de décider de ne pas refactorer un module de code, car sa dette technique est trop élevée.</p>
<p>L&#8217;interface gagnerait à être un peu plus jolie, et un ergonome pourrait aussi aider à classer l&#8217;information et à proposer un modèle de navigation. Les données par contre et le principe des modèles est le point fort du logiciel <a href="http://www.qualixo.com/Squale/squale.html">Squale</a>. Une bonne présentation qui m&#8217;a intéressé, surtout lorsque l&#8217;on pense qu&#8217;il permet de supprimer cet effet de seuil &laquo;&nbsp;bien/pas bien&nbsp;&raquo; qui n&#8217;est pas très constructif sur les autres outils.</p>
<p><strong>Conclusion</strong><br />
Pour terminer finalement je repense à la première présentation, où faire de la qualité a été expliqué très simplement. C&#8217;est pour votre bien, c&#8217;est bon et c&#8217;est indispensable. Mesurer permet de contrôler, et d&#8217;évaluer aussi la quantité de travail en plus de la qualité. Il faut faire de la qualité, mettre en place ces outils sur vos projets.<br />
<strong>Post-Scriptum:</strong><br />
1) Alexandre Boutin sur <a href="http://www.agilex.fr/2009/08/agile2009-jour-2/">son blog</a> pointe une conférence Agile 2009 sur le thème &laquo;&nbsp;<a href="http://agile2009.com/node/2989">Tout d&#8217;abord, tuer toutes les métriques</a>&nbsp;&raquo; en anglais.<br />
Je cite :</p>
<blockquote><p>&laquo;&nbsp;L’approche proposée est assez intéressante puisqu’il s’agit de regarder les métriques sous un nouvel angle, celui du comportement. Pour chaque métrique il est intéressant de se poser les 3 questions suivantes : En quoi cette métrique génère un comportement positif ? En quoi elle génère un comportement négatif ? Quel type de comportement permet de contourner la métrique ?<br />
Les orateurs ont également insisté sur le fait que le comportement ( »behaviour ») est émergent et changeant, donc ce qui est vrai à un instant ne l’est plus quelques mois après … et donc il faut être prêt à changer de métrique. [...]&laquo;&nbsp;</p></blockquote>
<p>2) Le <a href="http://jamesshore.com/Blog/An-Approximate-Measure-of-Technical-Debt.html">Spag</a> est une unité de mesure de la dette technique, présenté par James Shore. Encore merci au blog d&#8217;Alexandre qui est très complet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/09/18/compte-rendu-de-la-soiree-qualite-du-logiciel-au-paris-jug-le-15-septembre-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Paris JUG : retour sur la soirée RIA (Adobe Flex et JavaFx) partie 1</title>
		<link>http://www.touilleur-express.fr/2009/07/09/paris-jug-retour-sur-la-soiree-ria-adobe-flex-et-javafx-partie-1/</link>
		<comments>http://www.touilleur-express.fr/2009/07/09/paris-jug-retour-sur-la-soiree-ria-adobe-flex-et-javafx-partie-1/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 20:34:37 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1791</guid>
		<description><![CDATA[A défaut de son, au Paris JUG on a de l&#8217;humour. Je prends mon iphone et je balance sur Twitter une contrepètrie pour résumer la galère dans laquelle nous sommes : &#171;&#160;Contrepetrie : panne de micro&#160;&#187;.
Avant tout, merci à François le Droff et à Simon Ritter. Assurer une présentation avec un micro bricolé avec un ampli, cela a certainement cassé leur présentation, et on est désolé&#8230; La prochaine session se déroulera au Zenith avec Gogo-danseuses, et j&#8217;ai proposé que l&#8217;on investisse dans un micro  HF type casque afin que ...]]></description>
			<content:encoded><![CDATA[<p>A défaut de son, au Paris JUG on a de l&#8217;humour. Je prends mon iphone et je balance sur Twitter une <a href="http://fr.wikipedia.org/wiki/Contrepèterie">contrepètrie</a> pour résumer la galère dans laquelle nous sommes : <strong>&laquo;&nbsp;Contrepetrie : panne de micro&nbsp;&raquo;</strong>.</p>
<p>Avant tout, merci à François le Droff et à Simon Ritter. Assurer une présentation avec un micro bricolé avec un ampli, cela a certainement cassé leur présentation, et on est désolé&#8230; La prochaine session se déroulera au Zenith avec Gogo-danseuses, et j&#8217;ai proposé que l&#8217;on investisse dans un micro  HF type casque afin que nos speakers puissent utiliser leur PC tout en parlant. Ne loupez pas la saison 3 du Paris JUG et ses nouveaux épisodes, ça sera mieux.</p>
<p><strong>Adobe Flex, BlazeDS, Spring Flex par François le Droff</strong><br />
François le Droff a <a href="http://www.jroller.com/francoisledroff/">un blog</a> que j&#8217;ai commencé à lire il y a presque 6 ans, il est d&#8217;ailleurs dans la blogoliste en bas à gauche. Il est architecte Java, travaille chez Adobe France en tant que consultant. La présentation de ce soir sera sur les dernières nouveautés de Flex, un tour de LiveCycle Data Services ES, une présentation de Spring Flex et enfin pour terminer une rapide démo de <a href="http://labs.adobe.com/technologies/flashcatalyst/">Flash Catalyst</a>. Après un rappel sur Flash, où l&#8217;on apprend que près de 700 millions de player flash sont installés, François explique que le moteur de Flash fonctionne avec une VM depuis la version 9, qui est une réécriture très importante du moteur de Flash. Flash 10 apporte encore plus de puissance, le support de fonctions de vidéos avancées, et on retient de cette partie que Flash est maintenant partout. Regardez YouTube! par exemple.</p>
<p>Après une présentation de l&#8217;offre d&#8217;Adobe, un peu marketing mais il faut bien cela pour comprendre la suite, François axe ensuite sa présentation sur la partie serveur, afin de nous présenter Adobe LiveCycle Data Sercices. Cette suite d&#8217;application pour entreprise est l&#8217;offre d&#8217;Adobe pour créer des applications type Software as a Service, en offrant des services utilisant Flex, PDF mais aussi XML, HTML et Ajax, pour offrir aux clients vos données et des applications riches. L&#8217;effort d&#8217;Adobe est de présenter des solutions pour que vos données d&#8217;entreprise deviennent des services pour vos clients externes sur Internet.</p>
<p>Côté client, 4 technologies : Adobe Acrobat Reader (PDF), Adobe Flash, HTML et Adobe AIR.<br />
Au niveau conteneur de service, le moteur d&#8217;Adobe offre différents connecteurs techniques, et donc différents protocoles. Gestion des données, publication de message, générateur de formulaires et de documents PDF, sécurité et signature numérique, bref le socle de service permet d&#8217;externaliser les données avec différents formats, en utilisant différents protocoles, plus ou moins optimisé. De l&#8217;HTTP, de l&#8217;AMF qui est un protocole ouvert et libre, ou encore le protocole RTMP (real time media protocol) qui sont tous <a href="http://codemoiunmouton.wordpress.com/2009/01/21/adobe-publie-le-protocole-rtmp/">ouverts</a> et donc que vous pouvez implémenter librement.</p>
<p>François explique les différences entre la version professionnelle et commerciale, Adobe LiveCycle DS, et le logiciel open-source <a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/">BlazeDS</a>. BlazeDS est un composant Java déployé du côté serveur qui permet d&#8217;exposer à un client type Flex très facilement des données, en offrant une couche d&#8217;échanges de messages. Fonctionne avec Adobe Flash Player ou Adobe AIR. BlazeDS permet de pousser des données vers le navigateur ou le client Adobe AIR en utilisant différentes technologies comme <a href="http://en.wikipedia.org/wiki/Comet_(programming)">COMET</a> ou du simple pooling HTTP. BlazeDS est un WAR que vous ajoutez à votre application pour facilement envoyer et recevoir des messages avec un client Flex.<br />
La version LiveCycle DS offre plus de fonctions d&#8217;entreprise, avec le support de la sécurité, moins de limitation sur le nombre de Threads, mais je n&#8217;ai pas noté toutes les différences.</p>
<p>François aborde ensuite une partie pour nous, les geeks : Spring et Flex. Je ne vais pas pouvoir reprendre ici tout ce qu&#8217;il a montré, mais on retient au final que Flex s&#8217;intègre avec Spring de la manière suivante : nouvelles annotations qui vous permettent d&#8217;injecter le RemotingMessagingService de BlazeDS dans votre Bean Spring. Passage via la DispatcherServlet de Spring qui se charge de rerouter vers les composants serveurs de BlazeDS ce qui arrive. <del datetime="2009-07-10T10:25:26+00:00">Je vous recommande de lire par exemple &laquo;&nbsp;<a href="http://fponchel.developpez.com/tutoriel/flex3/integration/blazeds-spring/">Intégration de Flex 3, BlazeDS et Spring sous Flex Builder 3</a>&nbsp;&raquo; de Franck Ponchel sur Developpez.com pour comprendre le principe. A lire aussi, le tutorial de Sébastien Arbogast &laquo;&nbsp;<a href="http://www.adobe.com/devnet/flex/articles/fullstack_pt1.html">Flex, Spring, BlazeDS full stack on Adobe Developer Connection</a>&laquo;&nbsp;.</del> <strong>Updated:</strong><em>Les liens pointent vers des articles de l&#8217;ancienne version. L&#8217;intégration entre Spring et Adobe Flex va beaucoup plus loin, allez voir plutôt <a href="http://www.jroller.com/francoisledroff/entry/compte_rendu_de_la_soir%C3%A9e">l&#8217;article de François</a> qui précise et corrige mes propos. Merci et désolé François !</em></p>
<p>François nous explique aussi que le compilateur Flex étant open-source, il est très facile d&#8217;intégrer maven2 et le compilateur Flex afin d&#8217;utiliser par exemple de l&#8217;intégration continue pour construire son projet. Il nous montre enfin quelques slides sur <a href="http://www.springsource.org/spring-flex">SpringFlex</a>, le projet sponsorisé par SpringSource, et qui vous permet d&#8217;intégrer Adobe Flex très rapidement dans une application Spring.</p>
<p>En conclusion, une présentation plutôt technique comme nous aimons, nous les geeks. Il y avait quelques parties un peu longues à mon goût, et vue les conditions offertes à François ce n&#8217;était pas facile pour lui, et il s&#8217;en est bien sorti. Donc si vous faîtes du Flex, allez regardez sur le site communautaire d&#8217;Adobe : <a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/">opensource.adobe.com</a>.</p>
<p><strong>Le buffet, le buffet, le buffet</strong><br />
Il y avait moins de monde ce soir au Paris JUG. 322 personnes selon les organisateurs au Falstaff à la troisième mi-temps, 152 personnes selon la police. Le buffet permet de croiser des têtes connues et de nouvelles personnes.</p>
<p>Venir au Paris JUG c&#8217;est aussi avec une relation sociale avec des gens comme vous. Je parle de ceux qui portent des teeshirts &laquo;&nbsp;<em>Glassfish and Spring Rulez</em>&nbsp;&raquo; et boivent du coca light en trempant une chips dedans avant de vous serrer la main. Le vieux geek se reconnaît à sa belle chemise, son costard, un MacBook Pro et un air fatigué. Il est fatigué car il a codé jusqu&#8217;à 4h du matin. Il trempe toujours ses chips dans son coca, c&#8217;est comme cela que je les repère lorsqu&#8217;en me serrant la main, un mélange de sucre et de sel vient recouvrir mes phalanges (que c&#8217;est beau&#8230;).</p>
<p>Le commercial a mis une cravate humoristique pour se fondre dans la masse. Il est super content d&#8217;être là, il y a une super ambiance, vous êtes super, dis-donc tu connais pas quelqu&#8217;un qui cherche une superbe boîte de super service pour super-pas-cher ? Super ! allez on s&#8217;appelle !</p>
<p>Le gars qui vous reconnaît car &laquo;&nbsp;VouZeteuLeTouyeur&nbsp;&raquo; ça c&#8217;est cool. J&#8217;aime bien. J&#8217;aime aussi la variante, plus marrante : le gars qui vous parle du Touilleur mais qui sait pas que c&#8217;est vous. C&#8217;est marrant.</p>
<p>Y&#8217;a le gars qui pense que vous êtes une bête parce que vous avez parlé une fois de Spring AOP sur votre blog. C&#8217;est le bonhomme qui m&#8217;embarque dans une discussion sur l&#8217;AOP et qui parle comme cela :<br />
<em>- <font color='darkgreen'>Dis-moi le Touilleur, toi qui t&#8217;y connais, lorsque je déclare dans mon fichier de conf de bean un auto-proxy, est-ce que je mets bean class &#8216;égal&#8217; DefaultAdvisorAutoProxyCreator ou pas ? </font>&nbsp;&raquo;<br />
- euh&#8230; attends je reprends du coca et des chips&nbsp;&raquo;<br />
<font color='darkgreen'>- Est-ce que le tissage avec AspectJ n&#8217;est pas  uniquement automatique ?</font><br />
- (moi obligé de répondre) Spring par la pratique, page 141, je te cite de tête le chapitre : Avec AspectJ le tissage est uniquement automatique. Le seul contrôle dont dispose le développeur est de tisser ou non les aspects à base d&#8217;annoation via le tag aop:aspectj-autoproxy. [...] Le bean DefaultAdvisorAutoProxyCreator se déclare comme suit&#8230;<br />
&lt;bean class=&nbsp;&raquo;org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator&nbsp;&raquo;/&gt;<br />
- <font color='darkgreen'>&#8230;gné ?</font><br />
- &laquo;&nbsp;tiens passe moi encore du coca s&#8217;il te plait&#8230; et des chips&#8230;. Demande sinon à Antonio il doit savoir cela&nbsp;&raquo;<br />
</em><br />
Donc ne me posez pas des questions de geek, j&#8217;en sais rien. Je suis là pour tremper mes chips dans mon coca-light et ensuite allez bénir avec mes mains le maximum de personnes. Qu&#8217;on se le dise !</p>
<p><strong>JavaFx par Simon Ritter</strong><br />
Allez j&#8217;en garde pour la prochaine fois, je vous raconterai JavaFx un peu plus tard.<br />
Suite au prochain numéro.</p>
<p><strong>[Update 10 juillet]</strong><br />
J&#8217;ai remplacé LiveCycle ES par DS, j&#8217;ai confondu les deux. Pour plus de détails, et pour voir les slides, François a résumé la présentation, et il a partagé ses slides <a href="http://www.jroller.com/francoisledroff/entry/compte_rendu_de_la_soir%C3%A9e">sur son blog</a>. Merci.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/07/09/paris-jug-retour-sur-la-soiree-ria-adobe-flex-et-javafx-partie-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Eric Evans, Domain Driven Design au Paris JUG</title>
		<link>http://www.touilleur-express.fr/2009/06/16/eric-evans-domain-driven-design-au-paris-jug/</link>
		<comments>http://www.touilleur-express.fr/2009/06/16/eric-evans-domain-driven-design-au-paris-jug/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 23:35:35 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1503</guid>
		<description><![CDATA[Cher lecteur bonjour. Lorsque tu liras ces quelques lignes, je serai entrain de dormir. En effet, prévu de longue date, ce mardi 16 juin est une journée off, ce qui m&#8217;arrange bien par ailleurs.
Alors tu t&#8217;es inscrit pour la soirée Domain-Driven-Design organisée par le Paris JUG. Tu es arrivé à l&#8217;heure, c&#8217;est bien. Saches que tu étais 111 personnes ce soir. Qu&#8217;il y avait 168 inscrits. Et note cher lecteur que nous avons mobilisé ces 168 personnes en 4 jours. Merci Twitter, merci aux blogs qui ont fait suivre l&#8217;information ...]]></description>
			<content:encoded><![CDATA[<p>Cher lecteur bonjour. Lorsque tu liras ces quelques lignes, je serai entrain de dormir. En effet, prévu de longue date, ce mardi 16 juin est une journée off, ce qui m&#8217;arrange bien par ailleurs.</p>
<p>Alors tu t&#8217;es inscrit pour la soirée Domain-Driven-Design organisée par le Paris JUG. Tu es arrivé à l&#8217;heure, c&#8217;est bien. Saches que tu étais 111 personnes ce soir. Qu&#8217;il y avait 168 inscrits. Et note cher lecteur que nous avons mobilisé ces 168 personnes en <strong>4 jours</strong>. Merci Twitter, merci aux blogs qui ont fait suivre l&#8217;information (SFEIR, Xebia, Zenika) et surtour un grand merci à l&#8217;EPITA qui nous a reçu.</p>
<p> Antonio a eu vent de la venue d&#8217;Eric mardi dernier. Nous en avons discuté mardi soir entre l&#8217;équipe, le canal historique (Antonio, David et Zouher) et les dissidents, dit &laquo;&nbsp;la Crew&nbsp;&raquo; à savoir Tanguy, Charles, José et moi-même. Et motivé comme pas deux, nous voilà engagé pour trouver une salle pour 180 personnes, ce qui fut possible grâce à Tanguy Bayard de SFEIR et Nicolas le Coz de Xebia, ancien de l&#8217;EPITA.</p>
<p>Arrivé tôt, me voilà déguisé en videur, pendant que Tanguy colle les affiches partout dans l&#8217;EPITA pour guider nos juggeurs vers l&#8217;amphi A04. Quand je dis déguisé en videur, je me retrouve à t&#8217;accueillir, toi cher Jugeur qui est venu, pas comme les 58 qui n&#8217;ont pas pu venir. Cela me permet aussi de démontrer un certain talent à reconnaître les gens, avec un &laquo;&nbsp;Salut Laurent&nbsp;&raquo; ou un &laquo;&nbsp;Salut Claire, Salut Claude&nbsp;&raquo; du plus belle effet. C&#8217;est ça d&#8217;être un bloggeur, à force on connait beaucoup de monde, même si le monde ne vous connaît pas en retour. Le déguisement de videur sans doute&#8230; Bref passons.</p>
<p><strong>Début</strong></p>
<p>La séance commence. Soyons un peu plus sérieux pour parler contenu. Eric Evans nous présente ce soir <a href="http://domaindrivendesign.org/">Domain Driven Design</a>. L&#8217;objectif de la présentation sera de présenter la conception pilotée par le domaine. Aucuns frameworks, pas de mots techniques, du bon sens comme dit mon voisin du Coder&#8217;s Breakfast sur Twitter. Mais du bon sens sacrément intelligent, ce qui vaut le coup de passer 2 heures avec Eric.</p>
<p>Passons rapidement sur le style. C&#8217;est vrai qu&#8217;il a un côté un peu mou, ce qui rend un peu long la présentation. C&#8217;est le fond qui est intéressant. A l&#8217;issue de la présentation je suis partagé. Je ne peux pas dire que j&#8217;ai été complètement emballé, ce serait faux. J&#8217;ai entendu quelques concepts intéressants qui me donnent envie d&#8217;aller plus loin.</p>
<p>Eric a écrit un livre de 560 pages appelé &laquo;&nbsp;<a href="http://www.amazon.fr/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/ref=sr_1_1?ie=UTF8&#038;s=english-books&#038;qid=1245106821&#038;sr=8-1">Domain Driven Design, Tackling Complexity in the Heart of Software</a>&laquo;&nbsp;. La présentation dure 2 heures. L&#8217;article du Touilleur doit faire environ 1500 caractères&#8230; Bref tu l&#8217;auras compris cher lecteur, il sera difficile de te résumer ici tout ce que j&#8217;ai vu. Allez bonne soirée à demain.</p>
<p>Non soyons sérieux&#8230; Voici ce que j&#8217;ai entendu et que je dois te raconter. La définition du &laquo;&nbsp;domaine&nbsp;&raquo; pour commencer, est la sphère de connaissance qui influence notre activité d&#8217;après Eric. Tout d&#8217;abord il explique qu&#8217;il faut se faire aider et encadrer d&#8217;expert métier pour comprendre le métier, et donc le modèle de votre logiciel.<br />
Il débute la présentation par l&#8217;exemple d&#8217;un Cargo, qui transporte des containeurs de Hong-Kong vers San Francisco. Il nous demande : comment modéliser ce transport de marchandise ?</p>
<p>La première approche classique, avec une Entité Cargo, est de stocker en base une ligne par parcours. Ce qui l&#8217;embête dans cette approche c&#8217;est que le Business n&#8217;a pas forcément envie d&#8217;entendre parler de base de données. Il dit même qu&#8217;en travaillant de la sorte, un jour votre MOA débarque avec un schéma de base de données au lieu de vous expliquer le besoin&#8230; pas faux.</p>
<p>Soit un Cargo qui a une relation de n &laquo;&nbsp;Stop&nbsp;&raquo;. Chaque stop a une date de chargement et de déchargement. Ok ce modèle fonctionne. Prenons ensuite un Cargo qui a une Leg, ou parcours. Ce parcours a un point de départ et un point d&#8217;arrivée. Cela marche aussi.</p>
<p>Dès le départ, il explique que le modèle dans la conception Objet est une <strong>projection</strong> déformée de la réalité. Pour illustrer son propos, il prend l&#8217;exemple d&#8217;une carte du monde. On voit dans le premier slide une carte Chinoise. La Chine est représentée au milieu, le reste autour. Ensuite une projection de Mercator avec les USA en plein milieu. Le message passe : quelque soit le vrai domaine, le domaine objet est une projection qui apporte nécessairement une déformation.</p>
<p>Pour lui, un modèle est donc un système d&#8217;abstractions qui peut être utilisé pour résoudre un problème.</p>
<p>Ensuite vient l&#8217;utilisabilité. Un modèle n&#8217;a de sens que s&#8217;il est possible de l&#8217;utiliser. Il nous explique qu&#8217;il est inutile de tenter de créer un modèle exhaustif, qui sera forcément trop compliqué. Il nous conseille de travailler par itération, et la suite de la présentation va donc s&#8217;axer sur la technique de conception de ce modèle.</p>
<p>Tout d&#8217;abord posez vous cette question &laquo;&nbsp;<strong>Qu&#8217;est-ce qui est le plus utile ?</strong>&laquo;&nbsp;. Prenez quelques scénarii réels de votre client pour piloter votre conception. C&#8217;est ce qu&#8217;il va faire dans la suite de sa démonstration.</p>
<p>Alors vous avez conçu votre Cargo et vos routes, votre bateau est parti de Hong-Kong vers San Francisco. Maintenant prenons le cas où le client décide de changer de destination alors que le bateau est au milieu du Pacifique. Comment votre modèle va-t-il gérer cela ? Il s&#8217;avère que le modèle construit sur les Legs (les routes) sera le plus adapté au problème du reroutage là où un modèle conçu avec des &laquo;&nbsp;Stops&nbsp;&raquo; ne sera pas adapté au changement facile.</p>
<p>Eric Evans en profite alors pour nous parler de ce qu&#8217;il appelle &laquo;&nbsp;ubiquitous language&nbsp;&raquo;. Lors de la conception objet, il nous demande d&#8217;utiliser un langage qui sera compris par tout le monde. Pour illustrer cela, il dit : &laquo;&nbsp;si demain vous démarrez un projet avec des Indiens, vous êtes d&#8217;accord pour parler et écrire uniquement en anglais non ? alors faites de même pour le design de votre modèle : utilisez un langage universel&nbsp;&raquo;.</p>
<p>Après avoir vu différents diagrammes, il complexifie encore la chose en ajoutant une troisième demande du métier : &laquo;&nbsp;Je veux la route la moins chère ou la route la plus rapide pour mon bateau&nbsp;&raquo;. Il reprend le modèle pour nous montrer que rapidement, ce modèle ne sera pas capable de résoudre cette demande. Cela lui permet alors de nous faire prendre conscience de quelque chose : un modèle n&#8217;a de sens qu&#8217;avec le Contexte qui l&#8217;utilise. Le calcul du &laquo;&nbsp;plus rapide&nbsp;&raquo; ou du &laquo;&nbsp;moins cher&nbsp;&raquo; se modélise avec des Arcs, des Routes, du calcul par graphe. Rien à voir avec le modèle du transport, un simple modèle père-enfants relativement simple.<br />
Il nous demande alors d&#8217;isoler nos modèles selon le contexte, afin de nous garantir de la surcomplexité. De sa propre expérience, la tentation est grande de n&#8217;utiliser qu&#8217;un seul modèle pour faire tout, ce qui conduit à une architecture pilotée par la technique, au lieu d&#8217;une architecture métier.</p>
<p>Le prérequis pour un modèle objet complexe est donc la disponibilité d&#8217;experts métiers, une écriture par itération, une définition des frontières du modèle très claire et une définition du contexte pour l&#8217;utilisation de ce modèle.</p>
<p>Lors de la séance des questions réponses, il dira qu&#8217;en effet le terme &laquo;&nbsp;Business Driven Design&nbsp;&raquo; est aussi une bonne représentation de ses idées.</p>
<p><strong>Conclusion</strong><br />
Nous restons un peu sur notre faim. D&#8217;un point de vue conception, je vous avoue qu&#8217;il est très difficile de te retranscrire ici ce que j&#8217;ai entendu. A titre personnel j&#8217;ai appris ce soir à voir le modèle à sa juste place, avec une prise de conscience du contexte. Ne pas chercher à être exhaustif, à créer des cas d&#8217;utilisations qui n&#8217;existent pas. Attention à ne pas aussi faire de la modélisation pilotée par la technique. Vous devez être en mesure d&#8217;exprimer toutes vos contraintes avec le code.<br />
Il cite pour terminer le framework <a href="http://www.qi4j.org/">Qi4J</a> dont Florent Ramière de <a href="http://www.jaxio.com/">Jaxio</a> et <a href="http://www.itaware.eu/category/francais/">Sébastien Letélié</a> m&#8217;ont déjà parlé. Quand 2 geeks vous parlent d&#8217;un sujet, il faut se renseigner. Voir à ce sujet les articles écrits par Sébastien comme <a href="http://www.itaware.eu/2008/08/24/programmation-orientee-composite/">celui-ci</a> par exemple.</p>
<p><strong>Off</strong><br />
La soirée se termine, tu rentres chez toi cher lecteur. Cela me permet de discuter avec des têtes connues ou pas, de rencontrer Patrice Lamarque d&#8217;eXo Platform et de discuter de la fusion JBoss Portal / eXo Portal, de parler avec Didier Girard d&#8217;une idée pour cette été, pour enfin terminer dans une Brasserie avec les Juggeurs, quelques têtes connues comme Eric &laquo;&nbsp;Bob&nbsp;&raquo; Mignot et Eric Evans.</p>
<p>Il est temps de prendre mon RER A garé en double file, et d&#8217;aller dormir. A bientôt, à jeudi soir pour les <a href="http://www.frenchsug.org/display/FRSUG/French+Scrum+User+Group">Scrumistes</a> et au 7 juillet pour les Juggeurs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/06/16/eric-evans-domain-driven-design-au-paris-jug/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Soirée Paris JUG sur Java Avancé</title>
		<link>http://www.touilleur-express.fr/2009/06/10/soiree-paris-jug-sur-java-avance/</link>
		<comments>http://www.touilleur-express.fr/2009/06/10/soiree-paris-jug-sur-java-avance/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 22:30:18 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1451</guid>
		<description><![CDATA[Annotations, Typages et Généricités, l&#8217;API Concurrent en Java, tel était le menu de la soirée du 9 juin 2009 au Paris JUG. Avec 24h de retard, un petit retour qui sera plus court que d&#8217;habitude.
La soirée s&#8217;est déroulée autour de 3 présentations. Philippe Prados d&#8217;Atos Origin, qui publie régulièrement dans différents magazines comme PROgrammez.com ou GNU/Linux Magazine France par exemple. Ensuite Denis Ah-Kang d&#8217;Atos Origin, Open Source Center. Et enfin Alexandre Bertails d&#8217;Atos Origin, qui a la chance de repasser ce soir après la soirée Web Sémantique du 11 mars ...]]></description>
			<content:encoded><![CDATA[<p>Annotations, Typages et Généricités, l&#8217;API Concurrent en Java, tel était le menu de <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090609">la soirée du 9 juin </a>2009 au Paris JUG. Avec 24h de retard, un petit retour qui sera plus court que d&#8217;habitude.</p>
<p>La soirée s&#8217;est déroulée autour de 3 présentations. Philippe Prados d&#8217;Atos Origin, qui publie régulièrement dans différents magazines comme <a href="http://www.programmez.com/">PROgrammez.com</a> ou <a href="http://www.gnulinuxmag.com/">GNU/Linux Magazine France</a> par exemple. Ensuite Denis Ah-Kang d&#8217;Atos Origin, Open Source Center. Et enfin Alexandre Bertails d&#8217;Atos Origin, qui a la chance de repasser ce soir après <a href="http://www.touilleur-express.fr/2009/03/11/compte-rendu-de-la-presentation-de-wicket-et-du-web-semantique/">la soirée Web Sémantique</a> du 11 mars dernier.</p>
<p><strong>Les Annotations et la JSR-269</strong><br />
<img src="http://www.touilleur-express.fr/wp-content/img_4066-300x225.jpg" alt="img_4066" title="img_4066" width="300" height="225" class="alignnone size-medium wp-image-1461" /><br />
Durant la première partie, Philippe Prados nous a présenté les Annotations en Java 5, puis ensuite la JSR-269 qui permet de créer des Annotations utilisées lors de la compilation du code source vers le bytecode. La JSR-269 &laquo;&nbsp;<a href="http://jcp.org/en/jsr/detail?id=269">Pluggable Annotation Processing API</a>&nbsp;&raquo; est donc une spécification d&#8217;annotation qui permet de déclarer des annotations au niveau de la source. Elle ne date pas d&#8217;aujourd&#8217;hui puisqu&#8217;elle est disponible depuis 2006. C&#8217;est peut-être inquiétant d&#8217;ailleurs de voir que les articles autour de cette spécification ne sont pas très frais comme sur <a href="http://blog.developpez.com/adiguba/p2077/java/annotations/annotation-processing-with-jsr-269/">Developpez.com</a> ou <a href="http://www.theserverside.com/news/thread.tss?thread_id=31587">TheServerSide</a>.</p>
<p><img src="http://www.touilleur-express.fr/wp-content/img_4069-300x225.jpg" alt="img_4069" title="img_4069" width="300" height="225" class="alignnone size-medium wp-image-1463" /><br />
La présentation était très complète, quoiqu&#8217;un peu rapide dans le rythme. Ce que j&#8217;ai retenu : ce système d&#8217;annotation permet d&#8217;ajouter du code comme une interface à une classe existante, il permet en quelques sortes d&#8217;écrire des ressources comme un fichier Web.xml automatiquement. C&#8217;est donc intéressant dans un premier temps pour la génération de ressources. J&#8217;ai ensuite vu une démonstration de génération de code. Difficile de trouver un use-case, de l&#8217;aveu même du présentateur. Mais intéressant&#8230; pour se dire que cela ressemble un peu trop à de la science-fiction.<br />
Je suis resté plus dubitatif durant la partie sur le pattern Decorator. L&#8217;intérêt d&#8217;un Dynamix Proxy en Java est justement d&#8217;avoir une classe qui implémente des interfaces connues à l&#8217;exécution, principe utilisé depuis longtemps en Java&#8230; Il faudra que je rédige un truc là-dessus.<br />
A propos des patterns justement, l&#8217;un des 23 patterns du <a href="http://www.tml.tkk.fi/~pnr/GoF-models/html/Proxy.html">Gang Of Four</a> s&#8217;appelle <em>Proxy</em> ou Procuration en Français, il appartient à la catégorie patterns structuraux. Le principe de ce pattern est d&#8217;envelopper un Objet dans un mandataire et d&#8217;utiliser ce mandataire à la place de l&#8217;objet original.</p>
<p><strong>Deuxième présentation : java.util.concurrent</strong><br />
<img src="http://www.touilleur-express.fr/wp-content/img_4078-300x225.jpg" alt="img_4078" title="img_4078" width="300" height="225" class="alignnone size-medium wp-image-1464" /><br />
Ensuite la deuxième présentation était sur l&#8217;api <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html">java.util.concurrent</a>. Présenté par Denis Ah-Kang d&#8217;Atos Origin. Dans un premier temps, après avoir rappelé les bases de la synchronisation et des problèmes connus en Java, Denis demande la signification de &laquo;&nbsp;volatile&nbsp;&raquo; à la salle. Grand silence, quelques mains courageuses se lèvent, les réponses arrivent péniblement&#8230; ce qui montre aussi que l&#8217;on parle d&#8217;un mot clé très peu utilisé en Java.<br />
Est-ce que &laquo;&nbsp;volatile&nbsp;&raquo; n&#8217;est pas un mot clé pour indiquer que cette variable est un poulet ? non ce n&#8217;est pas cela, dommage José <img src='http://www.touilleur-express.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Rien à voir avec la grippe aviaire.<br />
La bonne réponse : le mot clé volatile est un marqueur pour indiquer à la JVM que la variable sera accédée par plusieurs Threads. Par conséquence, la variable ne sera jamais caché dans le cache de chaque Thread, la valeur sera lue à chaque fois par les différentes Threads en mémoire. Et c&#8217;est là que l&#8217;on apprend que les Threads ont des caches de variables&#8230;<br />
Plus intéressant, lorsque vous mettez ce mot clé &laquo;&nbsp;volatile&nbsp;&raquo;, l&#8217;accès à la variable sera effectué dans un bloc synchronized utilisant l&#8217;instance. Un simple &laquo;&nbsp;synchronized(this)&nbsp;&raquo; finalement, comme on le voit lorsque l&#8217;on décompile le code avec javap (et pas javac).<br />
Sinon quoi d&#8217;autre ? volatile s&#8217;utilise sur des objets mais aussi sur des variables simples type &laquo;&nbsp;int&nbsp;&raquo;. Cela permet de rendre atomique par exemple l&#8217;incrémentation d&#8217;une variable de type &laquo;&nbsp;int i++&nbsp;&raquo;, car sachez-le, par défaut un simple &laquo;&nbsp;i++&nbsp;&raquo; n&#8217;est pas atomique en Java&#8230;<br />
Denis montre ensuite justement ce cas précis avec un bout de code simple, où l&#8217;on constate que les accès concurrents ne s&#8217;effectuent pas correctement.</p>
<p>Dans la suite de la présentation il aborde plus le côté API, la JSR-166 de Doug Lea entre autre. Je vous conseille de lire tranquillement sur internet, sur les différents blogs que vous rencontrez, il y a toujours quelques trucs à savoir. On oublie pas les 12 classes du package &laquo;&nbsp;<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/package-summary.html">java.util.concurrent.atomic</a>&nbsp;&raquo; par exemple, qui vous éviterons des soucis de synchronisation par exemple. La documentation sur ce sujet se trouve <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/package-summary.html#package_description">dans la javadoc de Java 5</a>.</p>
<p>Sinon pour la suite, je vous renvoie au meilleur article du monde entier cité par les plus grands de ce monde, soyons modeste, hop je suis comme cela : <a href="http://www.touilleur-express.fr/2008/11/27/brillez-en-societe-avec-votre-blockingdeque/">Brillez en société avec votre BlockingDeque</a>. Si Asterix et Obelix n&#8217;ont pas lu cet article, ils pourront optimiser leur campagne de chasse.<br />
<img src="http://www.touilleur-express.fr/wp-content/img_4074-300x225.jpg" alt="img_4074" title="img_4074" width="300" height="225" class="alignnone size-medium wp-image-1465" /></p>
<p><strong>La pause buffet</strong><br />
Le temps de prendre un peu de quoi boire, je croise pas mal de monde. A chaque fois, ces buffets sont trop courts. En fait nous devrions faire des buffets de 3h et une pause avec une présentation de 30 minutes. Qu&#8217;en pensez-vous ?<br />
Et si par exemple j&#8217;avais envie de ne faire que la présentation #1 pour ensuite discuter et boire un coup avec d&#8217;autres personnes ? Ah l&#8217;idée ne vient pas de moi, et cela permettrait même de faire entrer les gens qui ne souhaitent assister QUE à la deuxième présentation&#8230; Oh là je mets le souk là.<br />
Dites, vous en pensez quoi vous ?</p>
<p>Vous pouvez laisser un commentaire en dessous ?<br />
Je sais qu&#8217;il faut s&#8217;inscrire sur le Touilleur Express pour soumettre un commentaire. Je fais cela pour deux raisons : éviter le spam bien entendu, et ensuite revendre 3000$ votre adresse à tout le monde. Certaines adresses ne valent pas un clou sois-dit en passant.</p>
<p><strong>Dernière présentation sur le Typage et la Généricité</strong><br />
J&#8217;ai du boulot&#8230; Alexandre a fait une grosse présentation, une qui demande 3 heures de travail pour restituer le tout. Je vais faire plus court. Alexandre part d&#8217;un message passé par Emmanuel Bernard sur Twitter, en galère avec les templates et la généricité. Exemple que je n&#8217;ai pas sous les yeux bien entendu.</p>
<p>Petit rappel d&#8217;Alexandre, la différence entre le Typage Statique et le typage Dynamique, entre le Type fort et le typage faible, entre l&#8217;Heritage et le Sous-Typage, afin de suivre la suite.</p>
<p>Je retiens tout d&#8217;abord que bien que Java soit plutôt &laquo;&nbsp;Typage Statique&nbsp;&raquo;, le bytecode généré est du &laquo;&nbsp;Typage Dynamique&nbsp;&raquo;. Lorsque les Génériques ont été ajouté à la version 5 de Java, le choix de conserver une compatibilité au niveau du bytecode entraîne des choses pas très belles dans le bytecode.</p>
<p>Pour illustrer ce propos, je vais tenter de refaire l&#8217;exemple d&#8217;Alexandre (je sens que je suis encore parti pour écrire un billet de 10 pages)</p>
<p>Voici tout d&#8217;abord un bout de code Java 1.4 simple</p>
<pre name="code" class="java">
import java.util.*;

public class Test {
	public static void main(String args[]) throws Exception {

		List l=new ArrayList();
		l.add(new Integer(123));
		Integer i=(Integer)l.get(0); // notez ici le cast explicite
		System.out.println(i);   // affiche 123

	}
}
</pre>
<p>Je compile puis je décompile ma classe :</p>
<pre>
javac Test.java
javap -c Test
</pre>
<p>Voici le byte code généré :</p>
<pre>
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
  Code:
   0:	aload_0
   1:	invokespecial	#1; //Method java/lang/Object."<init>":()V
   4:	return

public static void main(java.lang.String[])   throws java.lang.Exception;
  Code:
   0:	new	#2; //class java/util/ArrayList
   3:	dup
   4:	invokespecial	#3; //Method java/util/ArrayList."</init><init>":()V
   7:	astore_1
   8:	aload_1
   9:	new	#4; //class java/lang/Integer
   12:	dup
   13:	bipush	123
   15:	invokespecial	#5; //Method java/lang/Integer."</init><init>":(I)V
   18:	invokeinterface	#6,  2; //InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
   23:	pop
   24:	aload_1
   25:	iconst_0
   26:	invokeinterface	#7,  2; //InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
   31:	checkcast	#4; //class java/lang/Integer
   34:	astore_2
   35:	getstatic	#8; //Field java/lang/System.out:Ljava/io/PrintStream;
   38:	aload_2
   39:	invokevirtual	#9; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
   42:	return

}

</init></pre>
<p>On voit notre constructeur par défaut. Le plus intéressant (alexandre tu me corriges si je me trompe) c&#8217;est la ligne 18 lorsque l&#8217;on ajoute l&#8217;Integer dans la liste.  L&#8217;ajout dans la liste de l&#8217;élément de type Integer s&#8217;effectue avec l&#8217;appel à l&#8217;interface de List, qui ici ne sait pas qu&#8217;il s&#8217;agit d&#8217;un Integer. Tout va bien.<br />
A la ligne 26 on dépile l&#8217;élément et à la ligne 31 on s&#8217;assure que le type retourné est bien un Integer.</p>
<p>Voyons maintenant la version Java 5 du même code, avec les génériques. Je change la valeur stockée pour enregistrer 456 au lieu de 123, pour le reste vous connaissez.</p>
<p>Le code Java tout d&#8217;abord</p>
<pre name="code" class="java">
import java.util.*;

public class Test {
	public static void main(String args[]) throws Exception {

		List&lt;Integer$gt; l=new ArrayList&lt;Integer&gt;();
		l.add(new Integer(456));
		Integer i=l.get(0); // plus besoin de cast
		System.out.println(i);

	}
}
</pre>
<p>Voyons si vous suviez&#8230; regardez ce code et dîtes-moi ce que vous en pensez :</p>
<pre>
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
  Code:
   0:	aload_0
   1:	invokespecial	#1; //Method java/lang/Object."<init>":()V
   4:	return

public static void main(java.lang.String[])   throws java.lang.Exception;
  Code:
   0:	new	#2; //class java/util/ArrayList
   3:	dup
   4:	invokespecial	#3; //Method java/util/ArrayList."</init><init>":()V
   7:	astore_1
   8:	aload_1
   9:	new	#4; //class java/lang/Integer
   12:	dup
   13:	sipush	456
   16:	invokespecial	#5; //Method java/lang/Integer."</init><init>":(I)V
   19:	invokeinterface	#6,  2; //InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
   24:	pop
   25:	aload_1
   26:	iconst_0
   27:	invokeinterface	#7,  2; //InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
   32:	checkcast	#4; //class java/lang/Integer
   35:	astore_2
   36:	getstatic	#8; //Field java/lang/System.out:Ljava/io/PrintStream;
   39:	aload_2
   40:	invokevirtual	#9; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
   43:	return

}

</init></pre>
<p>A part un sipush au lieu d&#8217;un bipush ligne 13&#8230; c&#8217;est la même chose.</p>
<p><strong>Java 5 et 6 ayant gardé une compatibilité descendante au nivea du bytecode, les Generiques ne sont pas exprimés dans le bytecode</strong>. Nous retrouvons simplement un &laquo;&nbsp;checkcast&nbsp;&raquo; ligne 32 afin de vérifier l&#8217;object retourné. Et ce, parce que les types des arguments d&#8217;une méthode Java sont <strong>invariants</strong>. C&#8217;est pour cette raison qu&#8217;à la ligne 19 l&#8217;ajout dans la liste est générique, on ajoute un Object dans la liste.</p>
<p>Ce que l&#8217;on retiendra donc : les génériques sont là pour nous aider lors de l&#8217;écriture du code, mais au final dans le bytecode, on retrouve les mécanismes de cast pour vérifier le type. Intéressant non ?</p>
<p>Alexandre aborde ensuite des sujets comme la JSR-303 &laquo;&nbsp;<a href="http://jcp.org/en/jsr/detail?id=303">Bean Validation</a>&nbsp;&raquo; qui souhaite ajouter des validateurs sur les POJO. Par exemple, une annotation @NonNull. J&#8217;en ai parlé il y a un an exactement sur le Touilleur Express <a href="http://www.touilleur-express.fr/2008/06/06/jsr-303-vous-avez-valide-votre-bean/">dans cet article</a> si cela vous intéresse.</p>
<p>Avec ce que vous avez lu plus haut, et je pense qu&#8217;Emmanuel Bernard nous expliquerait cela certainement mieux, comment sera implémenter ce @NonNull dans le bytecode ?<br />
Je pense simplement avec du code que nous aurions écrit autrement, avec un <em>if(objArg!=null)</em>&#8230; L&#8217;implémentation de ces annotations utilise-t-elle la JSR-269 que nous avons vu au début ? Ou utilise-t-elle un moteur d&#8217;enrichissement du bytecode comme ASM ou BCEL ?</p>
<p>Lisez les articles très intéressants sur le blog d&#8217;Emmanuel Bernard :<br />
- <a href="http://in.relation.to/Bloggers/ConstraintCompositionProposalInBeanValidationJSR303">Constraint composition proposal in Bean Validation (JSR 303)</a><br />
- <a href="http://in.relation.to/Bloggers/BeanValidationJSR303HitsProposedFinalDraft">Bean Validation (JSR 303) hits proposed final draft</a></p>
<p>La conclusion d&#8217;Alexandre est que les quelques soucis de Typages dans Java font que des langages dynamiques comme Groovy (qui génère du bytecode java) ont le vent en poupe. Alexandre est un fan de Scala, où les problèmes de typages sont résolus dans le langage et où le typage statique est utilisé à sa juste valeur.</p>
<p>Je m&#8217;arrête là car il est impossible de tout restituer ici sur le blog, vous verrez la présentation en vidéo dès que nous aurons terminé le montage.</p>
<p><strong>La conclusion de la soirée</strong><br />
Lors de la troisième mi-temps au Falstaff, nous avons finalement pas mal discuté entre les personnes qui font parties de l&#8217;organisation du Paris JUG. Je vous laisse quelques photos et aussi quelques vidéos. Spéciale dédicace pour Denis et ses problèmes de &laquo;&nbsp;Queue&nbsp;&raquo;.</p>
<p>Pour terminer quelques photos et une petite vidéo faite à l&#8217;arrache :</p>
<p><object width="580" height="360"><param name="movie" value="http://www.youtube.com/v/tqug41ZHzng&#038;hl=en&#038;fs=1&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tqug41ZHzng&#038;hl=en&#038;fs=1&#038;color1=0x3a3a3a&#038;color2=0x999999&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="360"></embed></object></p>
<p>A bientôt</p>
<p>PS: dédicace à ma mon épouse qui rentre de l&#8217;assemblée générale des copropriétaires pendant que je blogue&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/06/10/soiree-paris-jug-sur-java-avance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compte-rendu de la soirée Scrum au Paris JUG</title>
		<link>http://www.touilleur-express.fr/2009/04/16/compte-rendu-de-la-soiree-scrum-au-paris-jug/</link>
		<comments>http://www.touilleur-express.fr/2009/04/16/compte-rendu-de-la-soiree-scrum-au-paris-jug/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 20:09:57 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[scrum]]></category>
		<category><![CDATA[paris jug]]></category>
		<category><![CDATA[pjug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1105</guid>
		<description><![CDATA[
Avec 190 inscrits, encore une fois le Paris JUG a fait salle comble. Hier soir grâce à Eric &#171;&#160;Bob&#160;&#187; Mignot nous avons vu comment fonctionne Scrum. Je ne vais pas me lancer dans un résumé de notre présentation, car Olivier Croisier a posté un très bon résumé ce matin sur son blog, The Coder&#8217;s Breakfast.
La deuxième partie de la soirée a été animée par Guillaume Bodet, Directeur Technique de Xebia. L&#8217;objectif de la présentation est de répondre aux questions souvent posées par les clients que Guillaume rencontre, lors de la ...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.touilleur-express.fr/wp-content/img_0270-300x225.jpg" alt="img_0270" title="img_0270" width="300" height="225" class="alignnone size-medium wp-image-1109" /><br />
Avec 190 inscrits, encore une fois le Paris JUG a fait salle comble. Hier soir grâce à Eric &laquo;&nbsp;Bob&nbsp;&raquo; Mignot nous avons vu comment fonctionne Scrum. Je ne vais pas me lancer dans un résumé de <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090414">notre présentation</a>, car Olivier Croisier a posté un très bon résumé ce matin sur son blog, <a href="http://thecodersbreakfast.net/">The Coder&#8217;s Breakfast</a>.</p>
<p>La deuxième partie de la soirée a été animée par Guillaume Bodet, Directeur Technique de Xebia. L&#8217;objectif de la présentation est de répondre aux questions souvent posées par les clients que Guillaume rencontre, lors de la mise en place de Scrum. Le plan de la présentation :<br />
- Trouver le product owner<br />
- D&#8217;où vient le product backlog ?<br />
- Et mon planning ?<br />
- Mon projet est trop gros !<br />
- Et l&#8217;architecture alors ?</p>
<p>Dans un premier temps, la difficulté est de trouver le Product Owner. Rappel de la théorie : il est le propriétaire du produit, il doit porter la vision du produit, il est en charge du ROI, du budget et du planning de livraison. Guillaume présente le meilleur Product Owner au monde : <strong>Steve Jobs</strong> !<br />
Mais comment faire lorsqu&#8217;on a pas un Steve Jobs sous la main ? Tout d&#8217;abord il n&#8217;est pas forcément seul. Il doit par contre être responsable de tout et avoir une vision de ce que le projet ou le produit doit être.<br />
Guillaume liste dans un slide une liste des rôles existants dans les structures qui font de bons product owner :<br />
- Chez les Editeurs de Logiciels -> Responsable Produit<br />
- Web -> Le Directeur Marketing<br />
- Banque -> Chef de projet utilisateurs<br />
- Industrie -> AMOA + users groups</p>
<p>Guillaume Bodet aborde ensuite le Product Backlog. D&#8217;où vient ce PB ? Selon la littérature Agile, il émerge un peu par magie, sans finalement donner des repères assez solides pour commencer. Par son expérience, il explique que le démarrage d&#8217;un projet peut se faire avec un document d&#8217;une dizaine de pages, avec des critères d&#8217;estimation de la taille du projet, une présentation du ROI, l&#8217;évaluation du risque et la définition d&#8217;une équipe. Lorsqu&#8217;il explique cela, je pense alors à un Business Plan. C&#8217;est clairement un document synthétique qui donne la vision d&#8217;un projet d&#8217;entreprise, qui présente la partie budget, les équipes, sans chercher à définir en détails le produit.<br />
Il explique ensuite que les équipes de Xebia mettent en place des spécifications exécutables (TDD,TDR) afin d&#8217;aider le client à formaliser ses demandes. Contrairement à une idée reçue, Scrum ne supprime pas les documents de spécifications techniques ou fonctionnelles. Simplement, on cherche à être moins exhaustif sur les points qui ne seront pas développés en premier.</p>
<p>Le planning est important. Nous devons rendre compte de l&#8217;avancement. Il nous explique tout d&#8217;abord ce que les chefs de projets font en principe avec Microsoft Project et les diagrammes de Gantt. L&#8217;objectif d&#8217;<a href="http://fr.wikipedia.org/wiki/Diagramme_de_Gantt">un diagramme de Gantt</a> est d&#8217;effectuer un ordonnancement des tâches, afin de communiquer un planning. C&#8217;est ensuite un outil qui permet d&#8217;assurer le suivi de l&#8217;avancement. Il parle d&#8217;un dérapage souvent rencontré en conduite de projet :<br />
- vous définissez avec beaucoup d&#8217;efforts un planning type diagramme Gantt<br />
- chaque jour vous collectez le temps passé par chacun des développeurs. Problème : que se passe-t-il lorsque le temps estimé déborde ? vous devez alors réadapter le diagramme afin de faire &laquo;&nbsp;rentrer&nbsp;&raquo; cette mise à jour<br />
- vous perdez du temps pendant une heure à remettre à jour ce diagramme, pendant ce temps là vous ne faites rien de productif<br />
- ensuite vous êtes débordé, donc un assistant chef de projet se charge de mettre à jour ce machin. Bravo vous faites preuve de délégation.</p>
<p>Bref le planning classique est parfois une souffrance, voire une grosse perte de temps. A cela, l&#8217;Agile répond : on ne fait pas de planning, ce qui n&#8217;est pas forcément mieux. Guillaume explique que scrum propose de faire des plannings de release, afin de s&#8217;assurer que le développement d&#8217;un produit ou d&#8217;un logiciel suit une roadmap, respecte la vision du product owner.</p>
<p><img src="http://www.touilleur-express.fr/wp-content/img_0271-300x229.jpg" alt="img_0271" title="img_0271" width="300" height="229" class="alignnone size-medium wp-image-1110" /></p>
<p>Guillaume parle aussi parfois de nous, praticiens de Scrum, qui tentont de vendre le Burndown Chart comme une prévision de l&#8217;avenir&#8230; ce qui n&#8217;est pas le cas. Il explique que c&#8217;est un outil destiné avant tout à faciliter la communication entre le Product Owner et l&#8217;équipe, ni plus ni moins. Pour terminer, j&#8217;ai apprecié sa vision de la plannification. Il y a 5 niveaux de plannification :<br />
- au niveau quotidien, défini lors du stand-up meeting du matin<br />
- au niveau de l&#8217;itération (sprint planning)<br />
- au niveau de la release (release planning)<br />
- au niveau de la vision du produit (roadmap)<br />
- au niveau de la vision annuelle</p>
<p>Il rappelle qu&#8217;un plan fixe des objectifs, la planification permet ensuite d&#8217;adapter ce plan à la vraie vie. Pour preuves, il parle de la démarche d&#8217;<a href="http://fr.wikipedia.org/wiki/Dwight_David_Eisenhower">Einsenhower</a>, général durant la 2ème guerre mondiale et 34ème président des Etats-unis qui a juste réussi le plus gros projet de notre histoire : <a href="http://fr.wikipedia.org/wiki/Op%C3%A9ration_Overlord">l&#8217;opération Overlord</a>.</p>
<p>Les estimations et la plannification : c&#8217;est un sujet qui me passionne. J&#8217;ai bien aimé l&#8217;évocation de Cocomo II mais bon, il y a d&#8217;autres méthodes moins hype, je vous prépare un billet sur ce que je suis entrain de faire avec mon équipe en ce moment.<br />
J&#8217;en profite pour vous proposer de relire un billet de décembre dernier : <a href="http://www.touilleur-express.fr/2008/12/11/devoxx-presentation-sur-les-estimations-du-temps-de-dev/">Devoxx les estimations de temps</a>.</p>
<p>Ensuite Guillaume parle du cas des projets qui ne pourraient pas faire de Scrum car &laquo;&nbsp;ils sont trop gros&nbsp;&raquo;<br />
Il partage tout d&#8217;abord l&#8217;expérience du Projet ProRail PUB, la refonte du SI du système des chemins de fer hollandais. Avec un budget supérieur au million, 25 personnes ont réalisé en 8 mois une première version. La v1 était opérationnelle. De nouvelles versions continues à être mise en production tous les 3 mois. Les gros projets se divisent en plusieurs équipes. La mise en place de Scrum of Scrum permet de coordonner le développement d&#8217;une plateforme. C&#8217;est donc possible, en conservant une taille respectable d&#8217;équipe (&lt;15 personnes).</p>
<p>L&#8217;architecture ensuite est importante. Il casse le mythe des Agilistes qui vous disent que &laquo;&nbsp;l&#8217;architecture émerge&nbsp;&raquo; tel un iceberg&#8230; C&#8217;est faux. C&#8217;est au prix d&#8217;un travail d&#8217;analyse, de spécifications, d&#8217;études de faisabilité que les projets se construisent une architecture. Il a une pensée émue aussi pour les équipes d&#8217;Architecture transverse qui sont parfois déconnectées des équipes de terrain. Un architecte internet doit faire partie d&#8217;une équipe Scrum. L&#8217;architecture se pilote par le besoin, comme dit Scott Ambler. La modélisation doit se faire à plusieurs, il ne faut pas laisser à une seule personne le soin de décider d&#8217;une architecture : c&#8217;est bien trop dangereux. Enfin il rappelle l&#8217;importance de rester simple (et humble) et de penser qu&#8217;il est plus important de livrer un produit qui fonctionne, qu&#8217;une documentation exhaustive qui ne fait pas gagner d&#8217;argent.</p>
<p>En conclusion, j&#8217;ai trouvé que la présentation de Guillaume complétait bien la première partie.</p>
<p>Merci à l&#8217;équipe du Paris JUG de nous avoir donné l&#8217;occasion de faire 2 heures sur Scrum et les méthodes Agile !</p>
<p><strong>Annonces et informations</strong><br />
En début de soirée, Tanguy Bayard a fait une présentation de 10 minutes vraiment sympa. Il a présenté le principe du Paris JUG à l&#8217;équipe de direction de <a href="http://www.sfeir.com/">SFEIR</a>. Grâce à lui, SFEIR est devenu sponsor annuel du Paris JUG ! Franchement bravo et merci à SFEIR.</p>
<p><a href="http://www.oxiane.com/">Oxiane</a> est aussi un nouveau sponsor, vous pouvez lire leur blog très sympa, merci à Gabriel Kastenbaum.</p>
<p>Enfin Antonio a parlé du podcast &laquo;&nbsp;<a href="http://lescastcodeurs.com/">Les Cast Codeurs</a>&nbsp;&raquo; dont je vous parlerai dans un autre billet. <img src='http://www.touilleur-express.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>The 3ème mi-temps</strong><br />
Enfin en 3ème partie de soirée, entouré de Florent Ramière, de David Gagot, de Jean-Michel Bea, de Sébastien Douche, de Cyrille Leclerc et de Thomas nous avons pas mal discuté de Google App Engine. Je pense qu&#8217;il y a beaucoup de restrictions et que de parler de Java alors qu&#8217;il y a tant de limitations, c&#8217;est un point important à ne pas négliger. David explique qu&#8217;en même temps nous parlons d&#8217;une version béta de ce support. Qu&#8217;avec le temps d&#8217;ici 6 mois nous aurons aussi apprivoisé ce nouveau système. Je demande à Florent si pour SpringFuse il serait prêt à basculer d&#8217;Amazon EC2 à Google App Engine (GAE). A vue de nez oui, maintenant en perdant une base de données ou un système de fichier, cela fonctionnera en utilisant le moteur BigTable. Il va y réfléchir, même si ce serait plus pour tester que pour vraiment s&#8217;en servir.<br />
David et Florent parlent ensuite de Mockito versus EasyMock, après une discussion sur <a href="http://citconf.com/">Citcon</a> très intéressante. C&#8217;est sans doute la bonne bière qui m&#8217;a aussi convaincu de m&#8217;inscrire pour mi septembre ! Avec Thomas et Florent nous parlons aussi pas mal sur Google et le dernier Barcamp. Florent parle aussi des premiers retours des clients de SpringFuse, avec un démarrage très fort sur un gros projet entre autre.</p>
<p>Enfin voilà, fin de la 14ème soirée du Paris JUG. L&#8217;occasion encore de discuter entre geeks et passionnés, de voir que presque 200 personnes sont venues nous écouter présenter Scrum avec Eric.</p>
<p>Eric, merci à toi d&#8217;être venu. Départ le lendemain pour Bordeaux, tu étais la semaine dernière au Canada, je sais que tu bouges beaucoup mais merci d&#8217;être passé nous parler de Scrum.</p>
<p>Je vous prépare un podcast avec l&#8217;enregistrement de la soirée avec mon histoire de machine à laver <img src='http://www.touilleur-express.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/04/16/compte-rendu-de-la-soiree-scrum-au-paris-jug/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Recrutement en 2009</title>
		<link>http://www.touilleur-express.fr/2009/04/08/recruter/</link>
		<comments>http://www.touilleur-express.fr/2009/04/08/recruter/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 20:21:23 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1073</guid>
		<description><![CDATA[Pierre est directeur des ressources humaines chez un grand éditeur. La crise a du bon, les candidats se montrent moins gourmands, il est temps de commencer à chercher de nouveaux candidats pour renforcer ses équipes. Mais par quoi commencer ? Comment trouver de bons candidats dans cet univers de personnes qui font du Java ? Voyons comment il va mener sa quête au candidat idéal&#8230;
Pierre lit comme chaque matin le blog le Touilleur Express, une tasse de café à la main :
Un rapide tour des différents acteurs du marché de ...]]></description>
			<content:encoded><![CDATA[<p><em>Pierre est directeur des ressources humaines chez un grand éditeur. La crise a du bon, les candidats se montrent moins gourmands, il est temps de commencer à chercher de nouveaux candidats pour renforcer ses équipes. Mais par quoi commencer ? Comment trouver de bons candidats dans cet univers de personnes qui font du Java ? Voyons comment il va mener sa quête au candidat idéal&#8230;</em></p>
<p>Pierre lit comme chaque matin le blog le Touilleur Express, une tasse de café à la main :</p>
<blockquote><p>Un rapide tour des différents acteurs du marché de notre secteur montre que les pages de recrutement sont encore plutôt bien remplies. OCTO Technology a publié un communiqué de presse <a href="http://blog.octo.com/octo-recrute-communique-de-presse-du-300309/">le 30 mars dernier</a> afin d&#8217;annoncer le désir de recruter jusqu&#8217;à 40 personnes (sur 100 collaborateurs actuellement) d&#8217;ici à fin 2009. La crise actuelle ne nous a pas fait oublier ce qu&#8217;il se passait il y a deux ans : les profils Java avec 2 à 4 ans d&#8217;expérience étaient rares et difficiles à intéresser. Quand le marché se tend, c&#8217;est aussi l&#8217;occasion de ré-équilibrer la relation candidat-employeur. Il y a deux ou trois ans, nous parlions de speed-dating, de soirée Poker afin de séduire des candidats. Aujourd&#8217;hui le vent a tourné.</p></blockquote>
<p>Il est bien gentil, mais je ne trouve pas grand chose de neuf pour lancer ma chasse&#8230; Notre entreprise a décidé de se repositionner sur la plateforme Java. Nous souhaitons profiter de ce début d&#8217;année afin d&#8217;engager rapidement 3 développeurs Java.<br />
Je prends mon cahier et commence à lister mes pistes pour trouver quelques potentiels :<br />
- cooptation et réseau d&#8217;anciens<br />
- réseaux sociaux<br />
- annonce sur sites classiques comme Monster.fr<br />
- chasseur de tête<br />
- &#8230;</p>
<p>Ok, voyons d&#8217;abord la cooptation.<br />
Le plan chez nous est que chaque salarié touche jusqu&#8217;à 2000 EUR, si son coopté passe avec succès la période d&#8217;essai. L&#8217;an passé sur nos 550 collaborateurs nous avons ainsi recruté&#8230; attendez où est ce powerpoint ?  ah c&#8217;est là !!! 4 personnes.</p>
<p>Bon pas un franc succès&#8230; Que raconte le Touilleur là dessus ?</p>
<blockquote><p>[...] Ce réseau quelque part je le trouve assez plat. Avez-vous envie de recruter 2 Paul Durand promo 97 ? pas forcément. Du côté des anciens collègues, le mercato entre SSII est &laquo;&nbsp;réglementé&nbsp;&raquo;. Afin de suivre un système éthique, les acteurs des différents cabinets responsables s&#8217;accordent afin de ne pas se piquer les consultants les uns les autres. Il est donc parfois difficile de contacter d&#8217;anciens collègues [...]</p></blockquote>
<p>Bref je peux faire passer un email en interne afin de relancer la machine, peut-être organiser un concours et faire gagner une participation à un salon professionnel&#8230; A réflechir&#8230;. Je mets donc 4&#215;2000 = 8000 EUR de budget sur la première ligne de mon cahier et je passe à la suivante.</p>
<p>Les réseaux sociaux&#8230;</p>
<p>Mes assistantes de recrutement sont toutes inscrites sur Viadeo, LinkedIn, MySpaces, Facebook&#8230; mais je trouve que le résultat ne va pas dans mon sens : RECRUTER ! L&#8217;an passé nous avons par contre décidé d&#8217;utiliser systématiquement Viadeo et LinkedIn pour &laquo;&nbsp;profiler&nbsp;&raquo; nos candidats, détecter et valider les profils. Je ne me suis pas privé de téléphoner à quelques personnes de mon réseau pour me renseigner sur mes candidats, ce qui m&#8217;a aussi permis de repêcher des profils mal vendus sur LinkedIn&#8230;<br />
Dingue comment cet outil peut être aussi tranchant lorsqu&#8217;il est mal utilisé.</p>
<p>Le deuxième souci c&#8217;est que mon réseau ne voit pas ces candidats. Nous avons beaucoup de mal à nous connecter à eux. En effet, moi j&#8217;ai mis mes amis DRH du réseau &laquo;&nbsp;DRH User Group&nbsp;&raquo; mais à part eux, j&#8217;avoue que je n&#8217;ai pas de contacts intéressants&#8230;</p>
<p>Bon je mets 0 candidat directement, par contre je prends un abonnement professionnel à Viadeo et LinkedIn pour toute l&#8217;équipe, hop, 5000 EUR.</p>
<p>Voyons ce que dit le Touilleur ensuite sur les annonces classiques sur <a href="http://www.monster.fr">Monster.fr</a> ou <a href="http://www.lesjeudis.com">Lesjeudi.com</a>&#8230;.</p>
<blockquote><p>
[...] Les annonces sur les sites classiques me font penser à du chalutage en règle. Une campagne de 15 jours coûte 560 EUR pour une seule annonce sur Monster.fr en mars 2009. Pour ce prix, avec quelques mots clés bateaux comme J2EE et Struts, vous êtes certain en tant que recruteur de ramasser un peu tout ce qui traine. Pas de soucis ensuite si vous pouvez recevoir 50 CV, peut-être plus aujourd&#8217;hui, et que vous avez moyen de trier rapidement les poissons&#8230;
</p></blockquote>
<p>Ah.<br />
Mais d&#8217;où il sort ces chiffres ? aaah je vois cela sur <a href="http://ecommerce.monster.fr/products/SingleJobPosting.aspx?mode=prod">la page Entreprise de Monster.fr</a> Bigre il a raison&#8230;<br />
Voyons si je mets 3 annonces pour 30 jours&#8230; 1515 EUR HT.<br />
Ok je note cela dans ma ligne, c&#8217;est le prix.</p>
<p>Là où il a raison c&#8217;est le coût caché. Je me souviens l&#8217;an passé, nous avons publié une annonce mal rédigée par un chef de projet débordé. Il avait mis Sturts au lieu de Struts&#8230; Nous ne savions pas que c&#8217;était pas bon&#8230; Hop une annonce pour rien. Et cette autre annonce où nous avons reçu un nombre impressionnant de CV, c&#8217;est le travail de Sandrine à plein temps&#8230; Appeler les candidats qui ont trouvé entre temps, vérifier les CV, les références&#8230; Et au final je ne suis toujours pas certain de trouver les meilleurs candidats.</p>
<p>Rien sur les chasseurs de têtes&#8230; Mais est-ce que je suis prêt à payer une chasse pour 3 profils de développeur Java ? Voyons combien m&#8217;avait coûté la chasse de ce chef d&#8217;équipe. Salaire annuel : 75 000 EUR avec primes, et nous avions versé 10% au chasseur, soit 7500. C&#8217;est un excellent élément mais je ne suis pas certain de pouvoir faire la même chose pour 3 candidats, avec une fourchette de salaire allant de 35 à 55 k EUR&#8230;<br />
J&#8217;abandonne cette idée.</p>
<p>Bon que raconte le Touilleur Express ?</p>
<blockquote><p>
[...] les recrutements seront peut-être moins dynamiques, mais nous sortons d&#8217;une période qui était exceptionnelle. Il faut donc continuer à renforcer son CV et à se faire connaître des recruteurs en venant par exemple au Paris JUG.<br />
A mardi prochain !
</p></blockquote>
<p>Bon, j&#8217;avoue que je n&#8217;ai toujours pas trouvé de nouvelles idées pour recruter. Je vais essayer de contacter Nicolas pour voir&#8230;</p>
<p>- Salut Nicolas, c&#8217;est Pierre de GrosEditeurQueTuConnais,<br />
- Salut Pierre<br />
[<em>longues discussions sur pleins de sujets</em>]<br />
- Et sinon, tu as des idées pour trouver de nouveaux candidats ? des gens bons en Java, sympathiques, motivés ?<br />
- Et bien tu as la réponse à la fin de l&#8217;article, relis-bien<br />
- &#8230; désolé je ne vois pas<br />
- Paris JUG<br />
- &#8230; ?<br />
- C&#8217;est une association qui permet à des passionnés de Java de se retrouver chaque mois, qui fonctionne grâce à des sponsors.<br />
- Et en quoi cela va-t-il m&#8217;aider moi GrosEditeurQueToutLeMondeConnais ?<br />
- Tu peux te faire connaître de la communauté, avec un budget raisonnable tu peux avoir accès aux personnes les plus geeks de la communauté Java, qui elles-mêmes connaissent d&#8217;autres personnes<br />
- Bah si c&#8217;est pour payer de la bière à 10 personnes<br />
- Pas du tout, c&#8217;est très sérieux. Il y a plus de 180 personnes à chaque fois, les réunions sur Paris sont courues par le tout-paris, les geeks les plus connus de la communauté open-source Java.<br />
- Comment cela fonctionne-t-il ?<br />
- Tu peux devenir sponsor à l&#8217;année. J&#8217;ai en tête le cabinet Zenika qui s&#8217;est fait connaître au même niveau que Xebia ou Valtech par exemple, et qui organise aussi ses événements<br />
- &#8230; et si je souhaite simplement participer une fois ?<br />
- et bien tu peux devenir sponsor de la soirée seulement. Cela te permet déjà de communiquer.<br />
- Wow&#8230; et ça marche ?<br />
- Je ne dis pas que ça fait repousser les cheveux, mais tu as accès à une mine d&#8217;or, que peu de personnes connaissent&#8230; Ensuite à toi aussi de participer et de proposer à tes équipes de faire une présentation par exemple<br />
- Ok, je contacte qui maintenant ?<br />
- Tu envoies un email à team@parisjug.org de ma part ou sinon sur le site du <a href="http://www.parisjug.org">ParisJUG</a><br />
- Merci Nicolas !<br />
- De rien !<br />
 <img src='http://www.touilleur-express.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/04/08/recruter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Soirée du Paris JUG et inauguration du French SUG</title>
		<link>http://www.touilleur-express.fr/2009/03/08/soiree-du-paris-jug-et-inauguration-du-french-sug/</link>
		<comments>http://www.touilleur-express.fr/2009/03/08/soiree-du-paris-jug-et-inauguration-du-french-sug/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 12:18:21 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[french sug]]></category>
		<category><![CDATA[paris jug]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=843</guid>
		<description><![CDATA[Deux événements sur mon agenda : mardi 10 mars soirée Web avec Apache Wicket et le Web sémantique au Paris JUG. La première présentation organisée par Carl Azoury et Nicolas Andre de Zenika a pour thème Apache Wicket. La deuxième partie traite du Web sémantique par Alexandre Bertails d&#8217;Atos Origin.
Plus de détails sur cette page.
La semaine suivante à Paris aura lieu l&#8217;inauguration du French Scrum User Group. Le French SUG est une nouvelle association libre et ouverte à tous. Elle a pour objectif la promotion des pratiques de Scrum en ...]]></description>
			<content:encoded><![CDATA[<p>Deux événements sur mon agenda : mardi 10 mars soirée Web avec Apache Wicket et le Web sémantique <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090310">au Paris JUG</a>. La première présentation organisée par Carl Azoury et Nicolas Andre de Zenika a pour thème Apache Wicket. La deuxième partie traite du Web sémantique par Alexandre Bertails d&#8217;Atos Origin.<br />
Plus de détails <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090310">sur cette page</a>.</p>
<p>La semaine suivante à Paris aura lieu l&#8217;inauguration du French Scrum User Group. Le French SUG est une nouvelle association libre et ouverte à tous. Elle a pour objectif la promotion des pratiques de Scrum en France. Jeudi 19 mars, la soirée inaugurale sera placée sous le parrainage exceptionnel de Jeff Sutherland, l&#8217;un des cofondateurs de Scrum. </p>
<p>Les détails de la soirée sont sur <a href="http://www.meetup.com/frenchsug/">la page MeetUp</a>. Il y a déjà plus de 130 personnes inscrites, ce qui promet un événement exceptionnel. Enfin avec 250 personnes inscrites sur le groupe MeetUp, c&#8217;est un vrai plébiscite. </p>
<p>A mardi ou à  jeudi prochain pour ceux qui lisent le Touilleur Express.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/03/08/soiree-du-paris-jug-et-inauguration-du-french-sug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

