<?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; Dev Web</title>
	<atom:link href="http://www.touilleur-express.fr/category/devweb/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>Présentation HTML5 par Patrick Chanezon, conférence Innovation Web</title>
		<link>http://www.touilleur-express.fr/2010/03/14/html5/</link>
		<comments>http://www.touilleur-express.fr/2010/03/14/html5/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 09:59:32 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=3339</guid>
		<description><![CDATA[Patrick Chanezon de Google est passé en France pour présenter l&#8217;évolution du développement Web et de la plate-forme lors de la conférence &#171;&#160;Innovation Web&#160;&#187; en décembre 2009. Cette conférence est organisée par l&#8217;association étudiante GET. Celle-ci a pour but la promotion des technologies Google auprès des étudiants et plus largement, des développeurs.

Patrick est évangéliste pour les API chez Google. Nous nous sommes croisés à Devoxx en novembre 2009, et c&#8217;est un très bon souvenir. Lors de cette conférence il a présenté les dernières évolutions du côté HTML5, qui devient une ...]]></description>
			<content:encoded><![CDATA[<p>Patrick Chanezon de Google est passé en France pour présenter l&#8217;évolution du développement Web et de la plate-forme lors de la conférence &laquo;&nbsp;<a href="http://www.g-e-t.fr/" target="new2">Innovation Web</a>&nbsp;&raquo; en décembre 2009. Cette conférence est organisée par l&#8217;association étudiante <a href="http://sites.google.com/a/g-e-t.fr/get/about">GET</a>. Celle-ci a pour but la promotion des technologies Google auprès des étudiants et plus largement, des développeurs.<br />
<a href="http://www.touilleur-express.fr/wp-content/patrick_chanezon_gtug_paris.jpg"><img src="http://www.touilleur-express.fr/wp-content/patrick_chanezon_gtug_paris.jpg" alt="" title="patrick_chanezon_gtug_paris" width="396" height="335" class="alignnone size-full wp-image-3341" /></a><br />
Patrick est évangéliste pour les API chez Google. Nous nous sommes croisés <a href="http://www.touilleur-express.fr/2009/11/20/devoxx-2009-derniere-soiree-derniere-journee/">à Devoxx en novembre 2009</a>, et c&#8217;est un très bon souvenir. Lors de cette conférence il a présenté les dernières évolutions du côté <strong>HTML5</strong>, qui devient une plate-forme de développement à part entière.</p>
<p>HTML5 devient une standardisation des capacités avancées des navigateurs. Depuis 2008, et l&#8217;arrivée des navigateurs modernes comme Safari, Chrome ou Firefox, le nombre de développement sur la plate-forme Web s&#8217;accélère très rapidement. Depuis un an, la plus part des navigateurs ont ajouté le support des nouvelles technologies, ce que l&#8217;on regroupe dans le terme HTML 5.</p>
<p>Les performances des machines virtuelles JavaScript ont augmenté d&#8217;un facteur 100 depuis le 3ème trimestre 2008. Patrick explique que Google a introduit un nouveau moteur JavaScript open-source appelé <a href="http://code.google.com/p/v8/">V8</a>, et utilisé entre autre par Chrome. Là où Java grâce à un typage fort, permet des optimisations et donc de bonnes performances, JavaScript souffre d&#8217;un handicap lié à son caractère dynamique et faiblement typé.</p>
<blockquote><p>JavaScript is a dynamic programming language: properties can be added to, and deleted from, objects on the fly. This means an object&#8217;s properties are likely to change. Most JavaScript engines use a dictionary-like data structure as storage for object properties &#8211; each property access requires a dynamic lookup to resolve the property&#8217;s location in memory. This approach makes accessing properties in JavaScript typically much slower than accessing instance variables in programming languages like Java and Smalltalk. In these languages, instance variables are located at fixed offsets determined by the compiler due to the fixed object layout defined by the object&#8217;s class. Access is simply a matter of a memory load or store, often requiring only a single instruction. (from <a href="http://code.google.com/intl/fr/apis/v8/design.html">Google V8 design page</a>)</p></blockquote>
<p>V8 va plus loin en générant du code machine directement sans passer par la génération de bytecodes. Le moteur dispose aussi d&#8217;un ramasse-miettes (Garbage Collector) afin de suivre finement le cycle de vie des objets. Cela me rappelle un problème de mémoire insoluble sur le moteur JScript d&#8217;Internet Explorer que nous avions trouvé en 2007, lié <a href="http://www.ibm.com/developerworks/web/library/wa-memleak/">aux références circulaires</a>. C&#8217;est l&#8217;une des raisons pour lesquelles il faut rester prudent avec GWT et les vieux navigateurs comme IE6.</p>
<p> <a href="http://fr.wikipedia.org/wiki/HTML5">HTML5</a> est une spécification comme explique Patrick Chanezon, qui ajoute un ensemble de nouvelles balises et de nouveaux attributs pour les balises existantes.</p>
<blockquote><p>[...[HTML5 introduit huit nouvelles APIs qui pourront aider à créer des applications web et qui peuvent être utilisées ensemble avec de nouveaux éléments introduits pour les applications dont :<br />
- une API de dessin 2D utilisé avec la nouvelle balise canvas;<br />
- une API pour jouer des vidéos et des sons/musiques utilisé avec les nouvelles balises video et audio;<br />
- une API utilisée pour les applications hors-lignes;<br />
- une API d'édition en combinaison avec le nouvel attribut contenteditable;<br />
- une API de drag and drop en combinaison avec l'attribut draggable;<br />
- une API qui permet l'accès à l'historique et permet aux pages d'en ajouter pour prévenir les problèmes de bouton retour-en-arrière.</p>
<p>Extrait de l'article <a href="http://fr.wikipedia.org/wiki/HTML5">HTML5 de Wikipedia</a>
 </p></blockquote>
<p>Pour les possibilités de tout ce qui est 2D avec la balise Canvas, Patrick montre le travaille de <strong>Paul Rouget</strong>, TechnoEvangelist pour Mozilla Corporation, et dont le site est une belle vitrine des possibilités des nouveaux navigateurs, capable de supporter HTML5.</p>
<p>Si vous avez Firefox, allez essayer vous-même <a href="http://demos.hacks.mozilla.org/openweb/imageUploader/" target="ne">ici</a> l'application développée par Paul, qui est assez bluffante. <a href="http://hacks.mozilla.org/2010/02/an-html5-offline-image-editor-and-uploader-application/" target="test">Cette page</a> donne une liste complète des différentes démonstrations HTML5.</p>
<p>Patrick explique ensuite les problèmes de droits dans les codecs vidéos et audios. Mozilla ne peut pas implémenter H264 par exemple, ou il faudrait verser des royalties. Le tag video est plus ou moins supporté selon les navigateurs. Patrick parle de <strong>Marc Pilgrim</strong> qui a écrit <a href="http://diveintohtml5.org/video.html">un article assez long</a>, détaillant les différences entre les codecs, sur les différents formats vidéos, le tout en rapport avec HTML5. La mauvaise nouvelle est qu'il n'existe pas pour l'instant de combinaison de conteneurs (OGG,MP4,AVI) d'une part, de codecs d'autre part (H.264, MPEG4-ASP, Theora) et de codecs audios (MP3, AAC) qui fonctionne dans l'ensemble des navigateurs. Il faudra donc prévoir différentes combinaisons afin d'être certain que sa vidéo fonctionne dans la plupart des navigateurs.</p>
<p>Patrick montre alors la démonstration où l'on voit <strong>Tristan Nitot</strong> sur un fond vert. Regardez <a href="http://www.mozbox.org/pub/green/index.xhtml" target="test">cette démonstration</a> avec Firefox, vous verrez que Tristan est détouré en temps réel sur le deuxième Canvas. C'est cool non ?<br />
Il y a d'autres démonstrations <a href="http://3liz.org/blog/rldhont/index.php/2009/02/24/232-html5-css3-svg-la-magie-du-web-ouvert">dans cet article</a> si vous voulez tester par vous même.</p>
<p>Le code suivant suffit à transformer en pixel transparent, l'ensemble des pixels dans la gamme de couleur "vert-pomme" :</p>
<pre class="brush:javascript">
var processor = {
  timerCallback: function() {
    if (this.video.paused || this.video.ended) {
      return;
    }
    this.computeFrame();
    var self = this;
    setTimeout(function () {
        self.timerCallback();
      }, 0);
  },

  doLoad: function() {
    this.video = document.getElementById("video");
    this.c1 = document.getElementById("c1");
    this.ctx1 = this.c1.getContext("2d");
    this.c2 = document.getElementById("c2");
    this.ctx2 = this.c2.getContext("2d");
    var self = this;
    this.video.addEventListener("play", function() {
        self.width = self.video.videoWidth / 2;
        self.height = self.video.videoHeight / 2;
        self.timerCallback();
      }, false);
  },

  computeFrame: function() {
    this.ctx1.drawImage(this.video, 0, 0, this.width, this.height);
    var frame = this.ctx1.getImageData(0, 0, this.width, this.height);
		var l = frame.data.length / 4;

    for (var i = 0; i < l; i++) {
      var r = frame.data[i * 4 + 0];
      var g = frame.data[i * 4 + 1];
      var b = frame.data[i * 4 + 2];
      if (g > 100 &#038;&#038; r > 100 &#038;&#038; b < 43)
        frame.data[i * 4 + 3] = 0;
    }
    this.ctx2.putImageData(frame, 0, 0);
    return;
  }
};
</pre>
<p>(Adresse du code source : <a href="http://www.mozbox.org/pub/green/main.js">http://www.mozbox.org/pub/green/main.js</a>)</p>
<p>Ce script utilise la fonction drawImage afin de dessiner pixel par pixel, chacun des pixels. La variable frame est un tableau rgb-alpha. Lors de l&#8217;itération, si le pixel actif est dans une plage de couleur correspondant au vert pomme, alors le pixel actif est transformé en transparent. Le code RGB du vert utilisé est ici 100,100,43. Et le tout en JavaScript bien entendu.</p>
<p>Patrick remonte ensuite une démonstration avec de la musique. Cela me rappelle il y a 15 ans et les démos sur Amiga, Atari ST et CPC6128. Là je passe pour un vieux, mais j&#8217;assume à fond.<br />
Aujourd&#8217;hui il serait possible de refaire des démos, mais directement dans le navigateur Web.</p>
<p>Il nous montre ensuite des démos en 3D et du texture Mapping avec les fonctions 2D et des Canvas tirées <a href="http://gyu.que.jp/jscloth/">d&#8217;un site Japonais</a>. Il y a de la réflexion de texture, des effets de lumières, bref du lourd.</p>
<p>Concernant la 3D il y a 2 spécifications : O3D et WebGL. La première est une proposition de Google, et elle fonctionne grâce à un plugin. La deuxième, WebGL, fonctionne avec les dernières fonctions de Firefox. Pour l&#8217;instant il n&#8217;y a pas de standards, mais Google pousse O3D.</p>
<p><a href="http://code.google.com/intl/fr/apis/o3d/">Le site Google O3D</a> donne un bon nombre d&#8217;exemples tous assez impressionnant. J&#8217;ai installé le plugin O3D et je vous conseille la démo <a href="http://o3d.googlecode.com/svn/trunk/samples/beachdemo/beachdemo.html">Beach</a>.</p>
<p><a href="http://www.touilleur-express.fr/wp-content/o3d_google_beach.png"><img src="http://www.touilleur-express.fr/wp-content/o3d_google_beach.png" alt="" title="o3d_google_beach" width="568" height="499" class="alignnone size-full wp-image-3346" /></a></p>
<p>Il montre ensuite une démo où le détecteur de mouvement du Mac, l&#8217;accéléromètre, est lié à une propriété d&#8217;un Canvas. Patrick bouge son Mac et nous voyons les rectangles d&#8217;une page Web se mettre à tourner. C&#8217;est plus une démonstration technique, que quelque chose de réellement utile.</p>
<p>La dernière démonstration de Paul Rouget est vraiment impressionnante. <a href="http://blog.mozbox.org/post/2009/04/12/Firefox-35%3A-a-new-experiment-with-Canvas-Video">L&#8217;article complet de Paul</a> détaille le fonctionnement, je vous laisse tester avec une version récente de Firefox.</p>
<p>Patrick parle aussi de <a href="http://code.google.com/intl/fr/chrome/chromeframe/">Chrome Frame</a> pour Internet Explorer. Ce plugin permet d&#8217;utiliser le moteur JavaScript de Chrome dans Internet Explorer, ce qui permet de ne pas changer ses habitudes (ah ah ah) et de conserver ce bel outil qu&#8217;est Internet Explorer (<em>ah ah ah je me plie en 4</em>). Bon&#8230;</p>
<p>Fin de la présentation de Patrick Chanezon.<br />
Merci beaucoup !</p>
<p><strong>Conclusion</strong><br />
L&#8217;apport d&#8217;un standard comme HTML5 va accélérer le déploiement d&#8217;applications complètes. Il reste encore des points à régler concernant les codecs vidéos, audios et les formats. La balise Canvas permet de faire réellement de la 2D sans plugins externes dans le navigateur. Les moteurs JavaScript proposent aujourd&#8217;hui des performances bien supérieures à ce qui se faisait il y a encore 2 ans.</p>
<p>Je pense qu&#8217;il ne faut pas enterrer la solution Flash d&#8217;Adobe, open-source depuis quelques années. Des outils libres existent (<a href="http://swfmill.org/">swfmill</a>, <a href="http://www.mtasc.org/">motion-twin action script compiler</a>, le site <a href="http://osflash.org/">OSFlash</a>) qui permettent de développer librement en Flash. J&#8217;ai le sentiment que le développeur n&#8217;a jamais vraiment regardé Flash et le langage ActionScript. Et il semble découvrir dans l&#8217;univers HTML5 et le JavaScript des fonctions qui existent dans le monde Flash depuis 3 ans. D&#8217;un autre côté, avoir un standard libre et ouvert est une excellente nouvelle. J&#8217;espère seulement que la compétition entre les navigateurs respectera les standards, afin de ne pas retomber sur des problèmes de compatibilité cross-navigateur comme il y a 10 ans. Je dirai aux développeurs Java de regarder la plate-forme Flex, qui offre déjà de quoi construire des applications d&#8217;entreprise. HTML5 ne proposera des solutions standards et outillés d&#8217;ici 2 ans je pense. Nous en sommes encore à la phase exploratoire. Nous n&#8217;avons pas encore attaqué la pente des early-adopters et des sites HTML5.</p>
<p>Tout reste à faire.</p>
<p><strong>Références</strong><br />
- <a href="http://www.youtube.com/user/gtugs#p/a/u/0/qI2uRBlIl-c">La vidéo de la conférence</a> enregistrée le 11 décembre 2009 à l&#8217;EFREI<br />
- Site officiel du projet V8, moteur Javascript open-source : <a href="http://code.google.com/intl/fr/apis/v8/intro.html">http://code.google.com/intl/fr/apis/v8/intro.html</a><br />
- Le site de Mark Pilgrim est une mine d&#8217;explication sur HTML5 : <a href="http://diveintohtml5.org">http://diveintohtml5.org</a><br />
- A voir avec Firefox 3.6 : <a href="http://hacks.mozilla.org/2010/02/an-html5-offline-image-editor-and-uploader-application/">le site des démonstrations HTML5</a> par Paul Rouget sur Mozilla.org</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2010/03/14/html5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Wave : premiers tests</title>
		<link>http://www.touilleur-express.fr/2009/07/19/google-wave-premiers-tests/</link>
		<comments>http://www.touilleur-express.fr/2009/07/19/google-wave-premiers-tests/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 14:34:16 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1824</guid>
		<description><![CDATA[Ce matin un email dans ma boîte aux lettres : &#171;&#160;Bonjour Nicolas Martignole, voici vos codes d&#8217;accès à Google Wave&#8230; Amusez-vous bien !&#171;&#160;.
Si le mail n&#8217;était pas arrivé un dimanche matin à 00h03, j&#8217;aurai bien cru un moment que j&#8217;étais une personne très importante pour que l&#8217;on me donne un compte&#8230; En fait Google a annoncé le 17 juillet dernier que 5800 comptes Google Wave avaient été distribué lors de la conférence Google I/O et qu&#8217;au cours de l&#8217;été, 20 000 nouveaux comptes seront ouverts. Bref c&#8217;est donc une histoire ...]]></description>
			<content:encoded><![CDATA[<p>Ce matin un email dans ma boîte aux lettres : &laquo;&nbsp;<em>Bonjour Nicolas Martignole, voici vos codes d&#8217;accès à Google Wave&#8230; Amusez-vous bien !</em>&laquo;&nbsp;.</p>
<p>Si le mail n&#8217;était pas arrivé un dimanche matin à 00h03, j&#8217;aurai bien cru un moment que j&#8217;étais une personne très importante pour que l&#8217;on me donne un compte&#8230; En fait Google a annoncé <a href="http://googlewavedev.blogspot.com/2009/07/google-wave-sandbox-update.html">le 17 juillet dernier</a> que 5800 comptes Google Wave avaient été distribué lors de la conférence Google I/O et qu&#8217;au cours de l&#8217;été, 20 000 nouveaux comptes seront ouverts. Bref c&#8217;est donc une histoire de temps aussi pour vous si vous avez fait la demande.<br />
Premiers arrivés, premiers servis. Je m&#8217;étais inscrit quelques heures après l&#8217;annonce, grâce à l&#8217;information trouvée sur Twitter. Si vous souhaitez faire une demande de compte, rendez-vous <a href="https://services.google.com/fb/forms/wavesignupfordev/">sur la page Google Wave</a>.</p>
<p>Bref avant de vous parler de mes premiers pas avec <a href="http://wave.google.com/">Google Wave</a>, j&#8217;en profite pour revenir sur <a href="http://www.universite-du-si.com/">l&#8217;USI 2009</a>. Suite à sa présentation des outils Google pour l&#8217;entreprise, Didier Girard de SFEIR a proposé d&#8217;organiser une présentation de Google Wave avec Guillaume Laforge de SpringSource, chef de projet de Groovy. C&#8217;est donc dans une petite salle de 50 personnes que nous avons pu voir Google Wave pour l&#8217;une des premières fois en France.<br />
<img src="http://www.touilleur-express.fr/wp-content/img_0342_wave02.jpg" alt="img_0342_wave02" title="img_0342_wave02" width="400" height="300" class="alignnone size-full wp-image-1826" /></p>
<p>Guillaume Laforge (à gauche) et Didier Girard (à droite) débutent la présentation par une diapo qui explique Google Wave en 140 caractères, à la Twitter. Notez cette idée pour vos prochaines présentations. Si vous n&#8217;êtes pas en mesure de résumer votre contenu en un message twitter, vous pouvez encore bosser. Excellente idée de Didier.<br />
<img src="http://www.touilleur-express.fr/wp-content/img_0343_google_wave01.jpg" alt="img_0343_google_wave01" title="img_0343_google_wave01" width="480" height="360" class="alignnone size-full wp-image-1825" /><br />
J&#8217;aime bien aussi l&#8217;idée de Didier de se présenter non pas comme un Geek ou un Boss mais comme&#8230; un Beek ou un Goss !</p>
<p><img src="http://www.touilleur-express.fr/wp-content/img_0345.jpg" alt="img_0345" title="img_0345" width="480" height="288" class="alignnone size-full wp-image-1827" /></p>
<p><strong>Google Wave en quelques mots</strong><br />
Wave est le nouvel outil de communication propulsé par Google qui ressemble à un client de messagerie électronique, auquel des fonctions de messageries instantanées ont été ajoutées. Lorsque vous éditez un message pour répondre, et qu&#8217;un autre destinataire est en ligne, vous voyez littéralement l&#8217;autre personne &laquo;&nbsp;taper&nbsp;&raquo; son texte en direct sous vos yeux. C&#8217;est donc un mélange de twitter, de client mail et d&#8217;IRC/Chat.</p>
<p>Google Wave c&#8217;est aussi le concept de Robot qui vient du monde IRC. Ces invités virtuels peuvent être ajoutés à votre conversation. Lorsqu&#8217;ils sont présents, le texte que vous tapez est analysé en temps réel afin de l&#8217;enrichir et de fournir de nouveaux services. Vous tapez un numéro de téléphone ? Un robot le reconnaît et ajoute une URL skype pour appeler le numéro. Vous tapez une adresse ? Un lien vers Google Maps est ajouté automatiquement.</p>
<p>Il est possible aussi d&#8217;ajouter des robots capables de traduire à la volée votre texte. Dans la vidéo de la démonstration, on voit un francophone écrire un texte en français, et celui-ci est traduit en anglais à la volée. Il est donc possible d&#8217;imaginer de nouveaux outils, qui seront eux-même hébergé sur Google App Engine, la plateforme de Cloud Computing de Google.</p>
<p>Didier Girard a implémenté un Robot capable de reconnaître un tag SMS. Lors de la démonstration, il tape &laquo;&nbsp;SMS:0600112233 ceci est un test&nbsp;&raquo;, et quelques instants plus tard un message est affiché sur son téléphone portable. Un robot écoute la &laquo;&nbsp;Wave&nbsp;&raquo; et a reconnu le mot clé &laquo;&nbsp;SMS:&nbsp;&raquo;. Après avoir extrait le numéro de téléphone, il se charge d&#8217;envoyer un vrai SMS au téléphone de Didier. La démonstration va plus loin puisque nous avons tous participé en envoyant un SMS qui s&#8217;est affiché&#8230; dans la Wave !</p>
<p><strong>A quoi pourra servir Google Wave ?</strong><br />
Après la démonstration, je discute un peu avec Didier. Nous sommes d&#8217;accord pour dire que nous venons de voir &laquo;&nbsp;quelque chose&nbsp;&raquo; mais qu&#8217;il est encore tôt pour se rendre compte de la portée de ce nouvel outil de communication. Quelque part j&#8217;essaye de me souvenir de la première fois que j&#8217;ai utilisé un client de messagerie en 94 à l&#8217;Ecole&#8230; De la première fois où j&#8217;ai envoyé un SMS à un ami, où j&#8217;ai commencé à Twitter&#8230; On ne se rend pas alors très bien compte si ce que l&#8217;on fait fera parti de notre quotidien dans quelques mois ou non.</p>
<p>Je me souviens aussi de projets comme <a href="http://www.icq.com/">ICQ</a> en 97, que vous connaissez peut-être. Mais qui se souvient en 1996 du projet Marimba, fondé par <a href="http://en.wikipedia.org/wiki/Kim_Polese">Kim Polese</a> une ancienne dirigeante de SUN Microsystems ? A l&#8217;époque c&#8217;était THE application. Le principe consistait à pousser de l&#8217;information vers le client, un peu comme nos Widgets de météo et d&#8217;information sur Mac. Racheté par BMC Software en 2004, le produit n&#8217;existe plus&#8230; Kim Polese était la responsable produit de Java chez SUN en 1996&#8230; Je m&#8217;en souviens car j&#8217;ai travaillé avec SUN France à cet époque et que Marimba était le truc à la mode.</p>
<p>Alors à quoi pourra bien servir Google Wave ?<br />
J&#8217;imagine de vrais usages, comme lorsque répondez pour la 6e fois dans un email, et que votre email ressemble à une conversation de Chat et que vous perdez un temps précieux avec vos correspondants. J&#8217;imagine aussi ce nouveau système de réunion, à la fois tableau blanc interactif, document partagé mais aussi plus proche du courrier électronique&#8230;</p>
<p>De mon côté j&#8217;essayerai bien d&#8217;écrire un Robot pour Wave. Mon Geek Day Robot vous proposerait de vous tenir informé des prochaines soirées de Geek, de vous dire qui viendra et de vous donner quelques informations. Là expliqué comme cela, je sens pas un grand enthousiasme. Mais pas de soucis, je vous montrerai cela dès que possible.</p>
<p><strong>L&#8217;interface de Google Wave</strong><br />
Comme vous pouvez le constater sur cette capture d&#8217;écran, c&#8217;est relativement simple :<br />
<img src="http://www.touilleur-express.fr/wp-content/wavetouilleur.jpg" alt="wavetouilleur" title="wavetouilleur" width="800" height="396" class="alignnone size-full wp-image-1831" /></p>
<p>La zone de Navigation sur la gauche rappelle un client de messagerie électronique classique. La zone Contact permet en bas à gauche de retrouver vos amis. La zone centrale marquée &laquo;&nbsp;By Me&nbsp;&raquo; sur la capture d&#8217;écran, est la zone qui liste les différentes Waves. A droite enfin, le contenu de ces fameuses Wave. Par rapport à un email classique, les correspondants/contributeurs de la Wave sont listés en haut. Les Robots lorsqu&#8217;ils sont invités par le créateur de la Wave, apparaissent en haut.</p>
<p><strong>Bon alors, raconte&#8230;</strong><br />
Quelques minutes après m&#8217;être authentifié, je commence par lire les messages dans les plus grosses Waves. Mes premiers pas me font penser à un Wiki qui serait mis à jour sous mes yeux. Je vois ainsi un utilisateur entrain de compléter un des articles. Chacun de ses caractères, presque la vitesse à laquelle il tape, c&#8217;est assez bluffant. Google Docs propose un système similaire mais croyez-moi, il y a une différence entre les deux. J&#8217;y reviens après vous avoir laissé admirer une autre capture d&#8217;écran :<br />
<img src="http://www.touilleur-express.fr/wp-content/wave02.jpg" alt="wave02" title="wave02" width="790" height="453" class="alignnone size-full wp-image-1836" /></p>
<p>Une Wave c&#8217;est donc un document partagé avec l&#8217;enregistrement de la conversation des différents contributeurs du document. Une ligne de temps avec des commandes &laquo;&nbsp;avance rapide&nbsp;&raquo;, &laquo;&nbsp;retour au début&nbsp;&raquo; permet de rejouer la Wave et de voir l&#8217;avancement des discussions entre les membres de la conversation. Ou comment rejouer de l&#8217;instantané&#8230; Imaginez un instant l&#8217;espace de stockage et la puissance nécessaire pour réaliser ce boulot, qui n&#8217;a rien d&#8217;exceptionnel, à part le fait que&#8230; personne d&#8217;autres ne pourrait le faire.</p>
<p>Google s&#8217;appuie sur sa plateforme de Cloud Computing afin d&#8217;ajuster la quantité de puissance (et d&#8217;énergie électrique un jour) pour que le système fonctionne correctement. Chacun de vos caractères est envoyé au serveur, qui peut ainsi retourner aux autres contributeurs vos messages. Et l&#8217;édition à plusieurs fonctionne même très bien, bien mieux que sur Google Spreadsheets.</p>
<p>Techniquement, Google Wave c&#8217;est <strong>du GWT</strong> du côté client ce qui rassure tout le monde quant à la pérennité de GWT. Cette fois-ci c&#8217;est bon, GWT est la technologie de rendu avec HTML 5 de Google. Côté serveur, une API permettra aussi d&#8217;intégrer ses propres Waves dans son site. Dès demain, nous pourrons donc avec une Wave attachée à mes billets sur le Touilleur Express, et chacun de vous pourra alors voir les autres lecteurs et discuter en temps réel à propos de l&#8217;article&#8230; &laquo;&nbsp;<em>Hé tu as vu comment il raconte encore n&#8217;importe quoi ? Waaah il est trop fort ce nicolas, je vais appeler mon chien Touilleur Express en hommage ! Tu sais que depuis que je lis le Touilleur Express j&#8217;ai les cheveux qui repoussent ? </em>&laquo;&nbsp;.</p>
<p>Notez que je ne vous encourage pas à dire n&#8217;importe quoi&#8230; Comme toujours je suis très sérieux&#8230;</p>
<p>Bon c&#8217;est pas tout, mais j&#8217;ai un joujou avec lequel m&#8217;amuser alors je vous laisse.</p>
<p>Y&#8217;a la zone de commentaires froide en dessous où tu peux laisser un commentaire si tu veux.</p>
<p><strong>Références</strong><br />
- Je vous recommande <a href="http://francois.goldgewicht.com/2009/06/03/google-wave-en-quelques-mots/">l&#8217;article de François Goldgewicht</a> qui présente Wave en quelques mots.<br />
- <a href="https://services.google.com/fb/forms/wavesignupfordev/">Faire une demande pour un compte Google Wave</a><br />
- <a href="https://www.google.com/a/wavesandbox.com">La page de démarrage</a> de Google Wave SandBox, une fois que votre compte est actif<br />
- <a href="http://www.application-servers.com/post/2009/05/28/Google-Wave">L&#8217;article de Didier Girard</a> sur Application-Servers.com</p>
<p>http://francois.goldgewicht.com/2009/06/03/google-wave-en-quelques-mots/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/07/19/google-wave-premiers-tests/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>USI 2009 : l’ergonomie entre forme et fonction, une recette par l’exemple</title>
		<link>http://www.touilleur-express.fr/2009/07/06/usi-2009-l%e2%80%99ergonomie-entre-forme-et-fonction-une-recette-par-l%e2%80%99exemple/</link>
		<comments>http://www.touilleur-express.fr/2009/07/06/usi-2009-l%e2%80%99ergonomie-entre-forme-et-fonction-une-recette-par-l%e2%80%99exemple/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 19:54:19 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[usi]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=1772</guid>
		<description><![CDATA[Amélie Boucher présente l&#8217;ergonomie, avec une présentation pétillante et un contenu vraiment intéressant. Comprendre l&#8217;ergonomie en une heure, contrat rempli. Elle est l&#8217;auteur du livre &#171;&#160;Ergonomie Web&#171;&#160;, un livre de référence à lire par tous les concepteurs et les geeks. Elle est aussi la créatrice du site ergolab.net.
Une petite définition pour commencer :
&#171;&#160;L&#8217;ensemble des connaissances relatives à l&#8217;homme et nécessaires pour concevoir des outils, des machines et des dispositifs qui puissent être utilisés avec un maximum de confort, de sécurité et d&#8217;efficacité.&#160;&#187; (Alain Wisner) 
Comme elle dit, quand on a ...]]></description>
			<content:encoded><![CDATA[<p>Amélie Boucher présente l&#8217;ergonomie, avec une présentation pétillante et un contenu vraiment intéressant. Comprendre l&#8217;ergonomie en une heure, contrat rempli. Elle est l&#8217;auteur du livre &laquo;&nbsp;<a href="http://ergonomie-sites-web.com/">Ergonomie Web</a>&laquo;&nbsp;, un livre de référence à lire par tous les concepteurs et les geeks. Elle est aussi la créatrice du site <a href="http://ergolab.net">ergolab.net</a>.</p>
<p>Une petite définition pour commencer :</p>
<blockquote><p>&laquo;&nbsp;L&#8217;ensemble des connaissances relatives à l&#8217;homme et nécessaires pour concevoir des outils, des machines et des dispositifs qui puissent être utilisés avec un maximum de confort, de sécurité et d&#8217;efficacité.&nbsp;&raquo; (Alain Wisner) </p></blockquote>
<p>Comme elle dit, quand on a dit cela, on a tout dit et en fait on a rien dit.<br />
L&#8217;ergonomie c&#8217;est regarder une application pour qu&#8217;elle soit utilisable et que ce qu&#8217;elle propose soit utile.<br />
 &#8211; être utile : est-ce que je réponds ou non à un besoin ?<br />
 &#8211; être utilisable : pour remplir une fonction, quelle est la facilité d&#8217;utilisation ?</p>
<p>L&#8217;ergonomie est aussi une science pour &laquo;&nbsp;améliorer&nbsp;&raquo; et pas simplement constater comme elle va nous le montrer. On comprend donc que le travail d&#8217;ergonome est d&#8217;améliorer la communication entre la machine et la personne.</p>
<p>Elle parle d&#8217;abord de <strong>l&#8217;Utile</strong>, de ce que nous mettons dans nos applications. Quel développeur n&#8217;a pas codé des fonctions sans vraiment penser à son utilité ? Une application doit servir à quelque chose, une fonction doit être utile, et il ne faut pas hésiter à faire des tests utilisateurs afin de se rendre compte de ce qui est utile dans un logiciel informatique.</p>
<p>Concernant ensuite <strong>l&#8217;Utilisabilité</strong>, un logiciel ou un site informatique doit être facile à utiliser, facile à apprendre, instinctif. Avez-vous lu la notice de votre ipod par exemple ?<br />
L&#8217;utilisabilité c&#8217;est aussi proposer une interface qui n&#8217;induit pas en erreur, qui ne soit pas ambiguë. Pensez à Windows qui pour éteindre votre ordinateur&#8230; vous demande de cliquer sur &laquo;&nbsp;Démarrer&nbsp;&raquo;&#8230;</p>
<p>Elle parle ensuite d&#8217;une notion intéressante : une application doit paraître simple, au risque sinon de décourager les utilisateurs. Combien d&#8217;utilisateurs n&#8217;osent pas utiliser un site parce qu&#8217;il &laquo;&nbsp;paraît compliqué&nbsp;&raquo; ? Pensez à votre grand-mère devant votre dernier téléphone portable&#8230;</p>
<p>La question se pose : mais comment je fais ?<br />
Une application ne doit pas retirer de prime abord des fonctions. Il convient tout d&#8217;abord de masquer le trop de fonction, de sorte que seul l&#8217;indispensable soit visible. Elle démontre son argument avec une application qui présente un mode de saisie avancé, mode qui n&#8217;est pas actif par défaut. L&#8217;iPod Schuffle par exemple est un exemple de la simplification. L&#8217;écran LCD n&#8217;étant pas indispensable à la fonction de base qui est &laquo;&nbsp;j&#8217;écoute de la musique&nbsp;&raquo;, celui-ci a été retiré.</p>
<p>Masquer pour alléger l&#8217;interface oblige à hiérarchiser et à créer des workflows, ce qui simplifie le travail du développeur finalement. Le site Adobe Buzzword ou le traitement de texte Pages sur Mac par exemple, sont des exemples de logiciels qui masquent la complexité.</p>
<p>Pour certaines fonctions peu utilisées, Amélie explique ensuite le principe de la fonction experte. Prenez par exemple la fonction qui permet de classer les icônes sur l&#8217;iPhone. Celle-ci s&#8217;active en gardant le doigt appuyé sur un des icônes, et permet de ranger ses applications. Elle est complètement invisible, seul un expert connaît cette fonction&#8230; et en parlera autour de lui.</p>
<p>Elle continue la présentation en expliquant que le rôle de l&#8217;ergonome est aussi de trouver la bonne fonction, celle qui améliore l&#8217;efficience. Pour cela elle nous montre un outil de traduction en ligne. Composé d&#8217;une zone de saisie, de deux listes déroulantes avec les langues et d&#8217;un bouton traduire. L&#8217;ergonome a ajouté un lien &laquo;&nbsp;Permuter&nbsp;&raquo; qui permet d&#8217;inverser les sélections entre les 2 listes, ce qui fait gagner du temps.</p>
<p>Les fonctions doivent être optimisées, elles doivent être visibles et utilisables. 4 besoins fondamentaux sont nécessaires :<br />
 &#8211; l&#8217;emplacement (caché dans la barre, en haut, dans un menu&#8230;)<br />
 &#8211; la nature (zone de saisie, bouton)<br />
 &#8211; le format (gros/petit/couleur)<br />
 &#8211; la terminologie ( &laquo;&nbsp;nouvel email&nbsp;&raquo; moins bien que &laquo;&nbsp;envoyer un message&nbsp;&raquo;)</p>
<p>Elle termine la présentation par une explication sur les techniques pour améliorer l&#8217;utilité et l&#8217;utilisabilité des sites, en parlant des tests à l&#8217;aveugle, focus groups, benchmark, questionnaire de satisfaction. Il y a aussi l&#8217;appel à l&#8217;expert, qui grâce à ses connaissances peut nous aider à concevoir un logiciel utile et utilisable.</p>
<p>En conclusion, une bonne introduction sur l&#8217;ergonomie pour des Geeks comme pour des Boss.<br />
Les développeurs informatiques n&#8217;apprennent pas à bien concevoir. Ils apprennent à concevoir. Il y a un côté petit-chimiste chez nous qui fait que nous sommes très fort pour faire des choses pas utiles ou pas utilisables, même parfois les deux.</p>
<p><strong>Bonus spécial pour toi lecteur</strong><br />
Je te propose pour terminer des exemples de sites pour te faire peur<br />
- <a href="http://www.gamequarium.com/">Gamequarium</a> a le mérite de se dire que finalement on est pas si mauvais en CSS<br />
- <a href="http://www.capstoneideas.com/">CapstoneIdeas</a> avec un système de navigation très pratique, moi j&#8217;ai rien compris<br />
- <a href="http://www.thehorizontalway.com/">Horizontal Way</a> : va chercher le nonosse à droite de l&#8217;écran<br />
- <a href="http://www.bow-wowbooks.com/">BowWowBooks</a> un site qui veut vendre des livres mais qui fait tout pour que tu ne comprennes pas qu&#8217;ils veulent vendre des livres&#8230; ou des croquettes pour chien<br />
- Piqué chez FredCavazza : <a href="http://havenworks.com/">le pire site web de tous les temps</a>, paraît que c&#8217;est fait exprès.</p>
<p>Encore une bonne présentation de l&#8217;USI 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2009/07/06/usi-2009-l%e2%80%99ergonomie-entre-forme-et-fonction-une-recette-par-l%e2%80%99exemple/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Compte-rendu du BarCamp Java</title>
		<link>http://www.touilleur-express.fr/2008/10/01/compte-rendu-du-barcamp-java/</link>
		<comments>http://www.touilleur-express.fr/2008/10/01/compte-rendu-du-barcamp-java/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 22:38:37 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[BarCampJavaParis]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=343</guid>
		<description><![CDATA[Un peu au dernier moment sur une suggestion de Florent de Jaxio, je suis allé au premier BarCamp organisé entre autre par Luc Bizeul d&#8217;OCTO Technology, dans leurs locaux sur les Champs-Elysées.
Organisation excellente de l&#8217;équipe d&#8217;OCTO, environ 50 personnes étaient présentes. Parmies les têtes connues de la communauté Java : Antonio Goncalves (Paris JUG), Alexis Moussine-Pouchkine, Eric Mignot Scrum Master chez Pyxis, Jean-Laurent de Morlhon que j&#8217;avais croisé chez Reuters il y a longtemps, bref beaucoup de monde présent pour cette première.
Après un tour de salle, où chacun se présente ...]]></description>
			<content:encoded><![CDATA[<p>Un peu au dernier moment sur une suggestion de Florent <a href="http://www.touilleur-express.fr/2008/06/03/rencontre-avec-la-societe-jaxio-et-le-produit-celerio/">de Jaxio</a>, je suis allé au premier <a href="http://barcamp.org/JavaCampParis">BarCamp</a> organisé <a href="http://www.octo.com/">entre autre par Luc Bizeul d&#8217;OCTO Technology</a>, dans leurs locaux sur les Champs-Elysées.</p>
<p>Organisation excellente de l&#8217;équipe d&#8217;OCTO, environ 50 personnes étaient présentes. Parmies les têtes connues de la communauté Java : Antonio Goncalves (Paris JUG), Alexis Moussine-Pouchkine, Eric Mignot Scrum Master chez Pyxis, Jean-Laurent de Morlhon que j&#8217;avais croisé chez Reuters <a href="http://www.touilleur-express.fr/2006/06/05/maven2-ou-la-ruee-vers-louest/">il y a longtemps</a>, bref beaucoup de monde présent pour cette première.</p>
<p>Après un tour de salle, où chacun se présente par son nom, son entreprise et 3 tags qui l&#8217;intéressent, nous avons tous rempli des post-its afin de préparer un tableau et de répartir par salle les discussions. Difficile de choisir un sujet sur un thème précis. Les thèmes les plus demandés : TDD, Spring et JEE.</p>
<p><img src="http://www.touilleur-express.fr/img/barcamp/IMG_0041.jpg" alt="barcamp paris" /></p>
<p><strong>Spring vs JEE ? JEE est-il mort ?</strong><br />
Pour ma part j&#8217;ai décidé de suivre en premier la discussion &laquo;&nbsp;Spring vs JEE&nbsp;&raquo; très intéressante, animée entre autre par Antonio. Dans une salle d&#8217;une dizaine de personne, nous avons bien entendu parlé de l&#8217;actualité de SpringSource concernant la politique de licence. Pour Julien : les discussions ont été très constructives, la majorité des personnes présentes partagent la volonté de SpringSource d&#8217;offrir un service de qualité et de ne pas devoir maintenir un nombre incalculable de version. Finalement c&#8217;était une petite tempête dans un verre d&#8217;eau.<br />
Les discussions les plus intéressantes ont été amenées par une personne, développeur Python chevronné (désolé je n&#8217;ai pas pris ton nom) qui posait des questions autour de Spring par rapport à JEE. Antonio a apporté son expérience sur JEE 5/6 et le travail de la JSR afin d&#8217;expliquer les arbitrages lors de la sélection de ce qui doit être un standard par rapport à ce qui ne doit pas l&#8217;être. Ainsi les fonctions de clustering, de cloud-computing et de cache ne font pas parties de la spec JEE 6. Par contre, Spring a dynamisé le travail sur JEE 5, Antonio était interrogatif (si c&#8217;est le mot) sur l&#8217;annonce de Rod Johnson de supporter le profil A et le profil B pour JEE6. Le profil A : servlets/jsp. Le profil B : on ajoute EJB3.1. Comme il l&#8217;explique, Spring va apporter son support sur cette partie. Le profil C contient 32 spécifications, dont le support des EJB2.1, plus pour des raisons historiques.</p>
<p>Une question : pourquoi Spring est aussi dynamique ? pourquoi cela marche ?<br />
A cela, Florent Ramière répond tout simplement : ce sont les meilleurs développeurs, qui forment une équipe soudée de qualité. De plus, une autre personne ajoute que sans le devoir de formalisme de devoir faire une spécification comme JEE, Spring est forcément plus dynamique.</p>
<p>Est-ce que trop de Spring tuera Spring ?<br />
Quelqu&#8217;un parle de l&#8217;idée d&#8217;un projet en trop un jour dans le panier de Spring qui risquerait de les décrédibiliser. Est-ce que Spring avec S2AP ne joue pas la carte du solo player ? On reparle de l&#8217;idée de travailler avec un standard pour un client institutionnel par rapport à travailler avec un seul vendeur, SpringSource. Les discussions fusent car les avis sont partagés. En fait je vois que pas mal de monde méconnait l&#8217;activité de SpringSource, et tout est un peu mélangé.</p>
<p>Faut-il attendre JEE6 ou pas ?<br />
Question un peu vague, qui n&#8217;a pas de réponse toute faite. Antonio explique que des avancées majeures comme WebBeans, venant de JBoss Seam, ou même JSF2.0 feront de la future spec de Java un socle solide et standard. Comme dirait Alexis de SUN : les standards, y&#8217;a que cela de vrai (il bosse pour SUN).</p>
<p>Globalement j&#8217;ai trouvé la discussion vraiment intéressante, chacun essayant d&#8217;apporter son point de vue sur le sujet. Je pense que Spring est devenu un standard de facto, et que comme tout excelllente plateforme, peut-être que les jaloux ont décidé de taper dessus histoire de s&#8217;occuper. Mais vue la qualité de l&#8217;équipe, je pense que tout ceci va retomber.</p>
<p>De mon côté j&#8217;ai expliqué à tout le monde le positionnement de SpringSource tel que julien <a href="http://www.touilleur-express.fr/2008/09/20/rencontre-avec-julien-dubois-responsable-de-springsource-france/">me l&#8217;a expliqué</a>. J&#8217;en ai profité aussi pour parler de la production afin que les développeurs n&#8217;oublient pas que ce qu&#8217;ils codent, doit être administrable. Pour cela j&#8217;ai parlé de la démo des produits de SpringSource, en défendant qu&#8217;il y a un sens à ce que ce soit des outils payants. Le public visé n&#8217;est pas le même que le framework Spring.</p>
<p>Enfin tout le monde a parlé d&#8217;IoC, le mot pour définir Spring, la puissance de Spring et comme dit Antonio, quelque chose que JEE n&#8217;a pas à ce niveau.</p>
<p><strong>Scrum dans la vraie vie</strong><br />
Pour le coup j&#8217;étais content, c&#8217;est l&#8217;un de mes petits post-its <img src='http://www.touilleur-express.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . J&#8217;ai retrouvé entre autre Eric Mignot de Pyxis, excellent orateur, ainsi que Jean-Laurent de Morlhon. Autour de la table, une dizaine de personne, mon voisin Olivier pose des questions pointues sur Scrum, François s&#8217;interroge sur comment facturer un projet développé avec Scrum, mon voisin en face explique Scrum dans son équipe, il travaille pour une administration, etc.</p>
<p>Mais avant cela, Antonio qui ne connaissait pas Scrum a joué le rôle de candide. Exercice donc en premier : expliquer et définir Scrum. Pourquoi on en parle ? A quoi cela sert-il ? Pour quel public ?</p>
<p>Des questions tournent sur les projets traditionnels, en particulier pour les marchés publiques. Est-ce que Scrum peut s&#8217;envisager lorsqu&#8217;il faut répondre par un cahier des charges et un engagement fixe ?</p>
<p>J&#8217;avoue avoir pas mal parlé, passionné par Scrum. Mais indéniablement, Eric a fait passer son expérience de coach Agile, avec une gymnastique bien rodée pour expliquer et répondre aux questions phares sur Scrum.</p>
<p><strong>Le buffet</strong><br />
Le buffet après 2 heures de discussions était le bienvenue. De mon côté j&#8217;ai discuté de la place des développeurs Java, nous avons échangé sur les différents profils de gens qui font du Java. Comme le disait l&#8217;un de nous, l&#8217;informatique offre un accès assez large et le premier venu peut commencer à &laquo;&nbsp;faire de l&#8217;informatique&nbsp;&raquo;. Ensuite pour monter la chaîne technique, le travail au quotidien n&#8217;offre pas sur un plateau de la connaissance. Nous étions d&#8217;accord pour dire qu&#8217;en Java, il faut se tenir au courant, et se remettre en question régulièrement. Je ne dis pas essayer chaque semaine un nouveau framework. Je dis simplement profiter d&#8217;un petit événement comme celui-ci pour prendre un verre et partager ses connaissances et sa passion.<br />
La passion, le moteur qui anime les personnes qui étaient là ce soir. A un BarCamp il n&#8217;y a rien à prouver, rien à gagner. Même si j&#8217;ai vu/senti la volonté de certains de s&#8217;exposer et de parler d&#8217;eux plutôt que des sujets, finalement j&#8217;ai trouvé l&#8217;ensemble de la soirée très ouverte et sympathique.</p>
<p>A quand le prochain BarCamp ?</p>
<p>Quelques photos prises avec l&#8217;iPhone :<br />
<img src="http://www.touilleur-express.fr/img/barcamp/IMG_0042.jpg" alt="barcamp" /><br />
<img src="http://www.touilleur-express.fr/img/barcamp/IMG_0043.jpg" alt="barcamp" /><br />
<img src="http://www.touilleur-express.fr/img/barcamp/IMG_0044.jpg" alt="barcamp" /><br />
<img src="http://www.touilleur-express.fr/img/barcamp/IMG_0045.jpg" alt="barcamp" /></p>
<p><strong>(OFF)</strong><br />
Félicitations à Julien Dubois qui je crois savoir est papa d&#8217;une petite fille.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/10/01/compte-rendu-du-barcamp-java/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Google Developer Day le 18 septembre</title>
		<link>http://www.touilleur-express.fr/2008/08/08/google-developer-day-le-18-septembre/</link>
		<comments>http://www.touilleur-express.fr/2008/08/08/google-developer-day-le-18-septembre/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 07:02:03 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=274</guid>
		<description><![CDATA[Sur invitation de la société SpringSource, je participerai au Google Developer Day le 18 septembre à Paris. Cette journée de présentation des différentes technologies de Google permettra aux développeurs de se tenir informé sur les API de Google, de se rencontrer et de faire des échanges.
L&#8217;agenda de la journée contient des sessions sur Android, les Mashups, Google App Engine, les API YouTube, Open Social et surtout GWT. Avis à la population : session sur GWT faite par des pointures de Google.
L&#8217;inscription est gratuite, même si le nombre de place est ...]]></description>
			<content:encoded><![CDATA[<p>Sur invitation de la société SpringSource, je participerai au <a href="http://code.google.com/intl/fr/events/developerday/2008/about.html">Google Developer Day</a> le 18 septembre à Paris. Cette journée de présentation des différentes technologies de Google permettra aux développeurs de se tenir informé sur les API de Google, de se rencontrer et de faire des échanges.</p>
<p><a href="http://code.google.com/intl/fr/events/developerday/2008/agenda.html">L&#8217;agenda</a> de la journée contient des sessions sur Android, les Mashups, Google App Engine, les API YouTube, Open Social et surtout GWT. Avis à la population : session sur GWT faite par des pointures de Google.</p>
<p>L&#8217;inscription est gratuite, même si le nombre de place est limité. Donc si vous êtes intéressés, et pas en vacances, profitez-en pour vous inscrire.</p>
<p>Merci à Julien Dubois de <a href="http://www.springsource.com/fr">SpringSource</a>, et donc je ne manquerai pas de faire un compte-rendu ici sur le blog de cette journée.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/08/08/google-developer-day-le-18-septembre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exadel Flamingo : JBoss Seam et Adobe Flex ensemble</title>
		<link>http://www.touilleur-express.fr/2008/07/31/jboss-seam-et-adobe-flex/</link>
		<comments>http://www.touilleur-express.fr/2008/07/31/jboss-seam-et-adobe-flex/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 13:51:22 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[flamingo]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[jboss seam]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=262</guid>
		<description><![CDATA[Votre souci : vous souhaitez une interface cliente riche tout en disposant d&#8217;une architecte puissante du côté du serveur. Comment faire ?
Regardons ce qu&#8217;il se passe aujourd&#8217;hui : terminé le temps de la page HTML qui se recharge complètement. Les utilisateurs finaux veulent de l&#8217;interactivité, une interface riche et une ergonomie fantastique. D&#8217;un autre côté, le souci pour vous en tant qu&#8217;architecte est de conceptualiser et écrire une couche de service correcte.
Pour le projet sur lequel je travaille, nous avons une application développée avec JBoss Seam en début d&#8217;année. Le ...]]></description>
			<content:encoded><![CDATA[<p>Votre souci : vous souhaitez une interface cliente riche tout en disposant d&#8217;une architecte puissante du côté du serveur. Comment faire ?</p>
<p>Regardons ce qu&#8217;il se passe aujourd&#8217;hui : terminé le temps de la page HTML qui se recharge complètement. Les utilisateurs finaux veulent de l&#8217;interactivité, une interface riche et une ergonomie fantastique. D&#8217;un autre côté, le souci pour vous en tant qu&#8217;architecte est de conceptualiser et écrire une couche de service correcte.</p>
<p>Pour le projet sur lequel je travaille, nous avons une application développée avec JBoss Seam en début d&#8217;année. Le développement avec IceFaces des écrans principaux ne m&#8217;a pas pris beaucoup de temps. Par contre, s&#8217;agissant d&#8217;une application de surveillance et de monitoring, j&#8217;ai pas mal de difficultés à obtenir un résultat puissant en terme d&#8217;ergonomie et de réactivité. Je me suis donc tourné avec bonheur vers Adobe Flex. Le fait aussi de pouvoir fonctionner en mode déployé avec Adobe AIR est un plus.</p>
<p>En prenant JBoss Seam et Adobe Flex, il est possible de faire une application vraiment puissante. Pour cela, <a href="http://exadel.com/web/portal/flamingo">Exadel Flamingo</a> est vraiment la dernière brique qu&#8217;il me manquait pour finaliser l&#8217;architecture. Flamingo est un outil très puissant qui permet tout d&#8217;abord de générer rapidement une application type CRUD avec une interface utilisateur en Flex. Si vous avez testé seam-gen, vous voyez ce que je veux dire. Flamingo utilise le protocole binaire AMF d&#8217;Adobe pour la communication entre l&#8217;interface cliente déployée en Flash du côté navigateur et donc, la partie serveur basée sur JBoss Seam. C&#8217;est similaire à un déploiement avec BlazeDS ou LiveCycle. Cela dit, en terme d&#8217;échanges d&#8217;objets, je me demande si JBoss Seam va aussi loin que LiveCycle.</p>
<p>L&#8217;intérêt de Flamingo est qu&#8217;en générant du code pour vous, il facilite l&#8217;écriture en ActionScript du côté du client. Après avoir défini une Entité du côté de Seam, vous pouvez facilement appeler un ensemble de méthode simple pour effectuer la recherche ou la mise à jour de votre entité à partir du code ActionScript. Flamingo est donc avant tout un générateur de code destiné à réduire la quantité de code à écrire, et qui facilite l&#8217;accès aux Entity EJB3 gérées par Seam.</p>
<p>Les échanges entre le client en Flex et le serveur JBoss Seam peuvent s&#8217;effectuer soit via une Servlet spéciale de Flamingo, soit via la partie Remoting de JBoss Seam.</p>
<p>Flamingo travaille avec Maven2 pour générer la glue entre JBoss Seam d&#8217;une part et les technologies RIA comme Flex ou JavaFX d&#8217;autre part.</p>
<p>Le mieux sera de vous écrire un petit exemple complet pour que vous puissiez vous faire une idée de l&#8217;intérêt de Flamingo. Désolé faute de temps je vous laisserai que deux URL pour que vous puissiez regarder :</p>
<p>- <a href="http://demo.flamingo.exadel.com/booking/home.seam">version JBoss Seam avec JSF seul<br />
</a>- <a href="http://demo.flamingo.exadel.com/booking/booking.html">version Adobe Flex avec protocole AMF</a></p>
<p>Retrouvez d&#8217;autres urls à cette adresse :<br />
<a href="http://demo.flamingo.exadel.com/booking/booking.html">http://demo.flamingo.exadel.com/booking/booking.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/07/31/jboss-seam-et-adobe-flex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Débriefing comme d&#039;habitude à pas d&#039;heure de la soirée Paris JUG</title>
		<link>http://www.touilleur-express.fr/2008/07/09/debriefing-comme-dhabitude-a-pas-dheure-de-la-soiree-paris-jug/</link>
		<comments>http://www.touilleur-express.fr/2008/07/09/debriefing-comme-dhabitude-a-pas-dheure-de-la-soiree-paris-jug/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 23:27:24 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[paris jug]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=209</guid>
		<description><![CDATA[Débriefing à chaud dans le RER du Paris JUG. J&#8217;essaye toujours autant que possible de vous donner à chaud un retour sur la soirée. C&#8217;est un peu comme une photo argentique de la soirée&#8230; Pas bidouillée, pas retravaillée&#8230; On travaille à l&#8217;ancienne ici.
Eric Lefevre de Valtech a proposé d&#8217;organiser à la rentrée un Open Space Technology. L&#8217;idée est de se retrouver afin de discuter entre personnes du Paris JUG sur des sujets technos en suivant un ordre libre. Lisez son article pour comprendre mieux le principe et ensuite vous pouvez ...]]></description>
			<content:encoded><![CDATA[<p>Débriefing à chaud dans le RER du Paris JUG. J&#8217;essaye toujours autant que possible de vous donner à chaud un retour sur la soirée. C&#8217;est un peu comme une photo argentique de la soirée&#8230; Pas bidouillée, pas retravaillée&#8230; On travaille à l&#8217;ancienne ici.</p>
<p><a href="http://ericlefevre.net/wordpress/">Eric Lefevre</a> de Valtech a proposé d&#8217;organiser à la rentrée <a href="http://ricky81.developpez.com/interview/valtech-days-2007/open-space-technology/">un Open Space Technology</a>. L&#8217;idée est de se retrouver afin de discuter entre personnes du Paris JUG sur des sujets technos en suivant un ordre libre. Lisez son article pour comprendre mieux le principe et ensuite vous pouvez en discuter sur la mailing liste du Paris JUG (enfin je crois qu&#8217;il y a une mailing list non ?? quelqu&#8217;un pour confirmer ?).</p>
<p>La soirée était découpée en 2 présentations : tout d&#8217;abord MDA puis ensuite Adobe Flex et les échanges client-serveur.</p>
<p>MDA a reçu un accueil un peu frais de la part de la centaine de personnes présentes ce soir. Pourtant j&#8217;ai trouvé la présentation assez précise et bien menée par Grégory Weinbach <a href="http://www.objetdirect.com/html/index.html">d&#8217;Objects Directs</a>. Il connait son sujet. Pour ma part je n&#8217;ai pas expérimenté MDA bien que l&#8217;équipe installée à côté de notre équipe travaille avec MDA depuis 6 mois. Grégory Weinbach après avoir présenté le principe de MDA explique qu&#8217;il faut faire la distinction entre les frameworks MDA et les outils MDA. Il explique que la modélisation apporte de l&#8217;Agilité dans la création d&#8217;un logiciel. Il est possible de travailler par itération et l&#8217;expression des besoins fonctionnels rapproche le développeur du client. Ce client est alors plus satisfait car il est aussi acteur de cette modélisation. Il explique aussi que l&#8217;on retrouve des modélisations types qui sont soit trop techniques, soit qui cherchent à modéliser à outrance, soit qui sont &laquo;&nbsp;PSM&nbsp;&raquo;&#8230; Je ne sais pas ce que c&#8217;est que PSM, donc je ne pourrai pas vous l&#8217;expliquer ici. MDA propose aussi une indépendance technique. On code en quelque sorte au niveau du modèle en modélisant les composants métiers. Par exemple une Liste, une Form, une Vue. Ensuite les interactions et les règles métiers sont ajoutées, ce qui permet d&#8217;avoir un programme cohérent.</p>
<p>Pour la partie dynamique, l&#8217;architecte peut utiliser UML 2 ou un langage abstrait (ASL) pour donner vie à son Modèle. Là dessus il explique que la modélisation uml dynamique n&#8217;est pas facile, et que les outils ne contraignent pas assez le développeur. Tout ceci pour rester indépendant du langage cible qui n&#8217;est alors pas important. Le modèle exprimé, il est enfin possible de générer du code afin de le compiler&#8230; ou pas (VBScript ça se compile ?)</p>
<p>Les questions de l&#8217;assistance du Paris JUG étaient assez précises. Dont une question monologue tartine et vas-y que je te raconte ma vie très intéressante&#8230; Il y a eu des questions sur les outils, et il est vrai qu&#8217;en tant que développeurs nous aurions souhaité voir un peu cela de plus près. Un peu d&#8217;expérience de l&#8217;Architecte nous aurait intéressé.</p>
<p><strong>Bon et ton avis dans tout cela ?</strong></p>
<p>Mes sentiments sur MDA : non MDA n&#8217;est pas une méthode Agile. Adepte de Scrum je crois que ce soir c&#8217;était un petit tirage de couverture. Il ne me semble pas que la modélisation apporte une quelconque agilité. MDA n&#8217;est pas encore maitrisé par les développeurs et demande un effort de formation pour fonctionner correctement.</p>
<p>Ensuite j&#8217;ai eu une drôle d&#8217;impression en entendant que MDA c&#8217;est &laquo;&nbsp;les Architectes&nbsp;&raquo; et que la caste des &laquo;&nbsp;Développeurs&nbsp;&raquo; passe au second plan. Le besoin d&#8217;avoir un Analyste, est-il encore d&#8217;actualité ? Un Analyste qui ne ferait que de la modélisation avec une compétence financière, ça doit valoir une fortune&#8230;</p>
<p>Je reste très perplexe sur l&#8217;offre &laquo;&nbsp;indépendance du langage&nbsp;&raquo;. Dans le domaine des applications webs, faut-il rappeler la part de marché de Java ? Est-ce que nous avons déjà vu un projet passer d&#8217;un langage à un autre ? Je comprends très bien qu&#8217;il est important de montrer que l&#8217;effort doit se faire au niveau de la modélisation du PIM (Plateform Independant Model). Mais où sont les contraintes de mise en production ? Les contraintes d&#8217;architecture ? Les tests fonctionnels et unitaires font-ils partie aussi du code généré ?</p>
<p>Pour ma part je creuserai le sujet MDA, bien que j&#8217;en ai entendu et fait l&#8217;expérience sur la modélisation d&#8217;instruments financiers l&#8217;an passé. A suivre donc&#8230;</p>
<p><strong>Flex, la petite claque</strong></p>
<p>Cher lecteur, il y avait une personne dans la salle avec un grand sourire. Cette personne c&#8217;était moi. La présentation de Flex nous a montré la puissance et la simplicité des échanges entre le client Flash ou AIR et un serveur distant utilisant BlazeDS. Tout d&#8217;abord pour les personnes qui étaient là ce soir, nous avons eu un sacré orateur. Avez-vous la technique de &laquo;&nbsp;<em>je vous tape 5 lignes de MXML de la main droite tout en parlant au micro tenu de la main gauche ?</em>&laquo;&nbsp;.</p>
<p>James Ward est l&#8217;auteur du fameux Census dont je vous ai déjà parlé. Allez on prend sa souris et nous allons tous regarder cette url : <a href="http://www.jamesward.com/census/">http://www.jamesward.com/census/</a>. Cette application vous explique les temps de chargement relatif entre votre propre navigateur et son serveur selon la technologie utilisée. Vous pouvez donc comparer du HTML simple, du Dojo, du JSON,  du XML chargé avec AJAX ou encore de l&#8217;AMF, le format binaire compressé et optimisé de Flex. Allez y faire un tour je vous attends ici pour continuer&#8230;</p>
<p>James nous a ensuite montré successivement comment lire un flux XML avec l&#8217;objet HTTPRequest. Ensuite comment charger un objet Flex directement via RemoteObject. Ensuite une démonstration assez bluffante de DataService avec 2 pages webs qui s&#8217;échangent des données. Il a montré la partie Producer et Consumer en codant un chat en 10 mn à peine, de la main droite et en parlant au micro je vous le rappelle&#8230; Comme je disais à mon voisin : &laquo;&nbsp;<em>c&#8217;est moi ou j&#8217;ai l&#8217;impression que tout est accéléré ?</em>&nbsp;&raquo;</p>
<p>Les personnes de l&#8217;assemblée ont été franchement séduites. Je crois qu&#8217;un bon nombre de développeurs vont essayer eux-même Flex afin de s&#8217;en faire une idée encore plus précise.</p>
<p>Cela tombe bien cher lecteur, je risque fortement de t&#8217;en parler de plus en plus dans les jours qui viennent&#8230; Stay tuned !</p>
<p>Demain c&#8217;est costard cravate et <a href="http://www.tremplin-entreprises.senat.fr/">journée au Sénat</a>. Je vais voir Jaxio. Ca va être fun !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/07/09/debriefing-comme-dhabitude-a-pas-dheure-de-la-soiree-paris-jug/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Flex, BlazeDS, Spring, Hibernate all together with Maven</title>
		<link>http://www.touilleur-express.fr/2008/07/08/flex-blazeds-spring-hibernate-all-together-with-maven/</link>
		<comments>http://www.touilleur-express.fr/2008/07/08/flex-blazeds-spring-hibernate-all-together-with-maven/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 07:03:31 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[blazeds]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=205</guid>
		<description><![CDATA[Note: first post ever in english but I really thought it would matter.
For those who wants to play with Flex, BlazeDS, Spring, Hibernate using a set of Maven projet, François le Droff wrote a good article. He managed to set-up a nice environment that was really helpfull for me when I started to add maven support to my own project.
Read http://blogs.adobe.com/francoisledroff/2008/05/my_blazeds_xdoclet_spring_hibe.html
However my project use Charts and when I tried to add support for Charts, it doesn&#8217;t compile anymore with Maven. I managed to fix various issues and I will report ...]]></description>
			<content:encoded><![CDATA[<p>Note: first post ever in english but I really thought it would matter.</p>
<p>For those who wants to play with Flex, BlazeDS, Spring, Hibernate using a set of Maven projet, François le Droff wrote a good article. He managed to set-up a nice environment that was really helpfull for me when I started to add maven support to my own project.</p>
<p>Read <a href="http://blogs.adobe.com/francoisledroff/2008/05/my_blazeds_xdoclet_spring_hibe.html">http://blogs.adobe.com/francoisledroff/2008/05/my_blazeds_xdoclet_spring_hibe.html</a></p>
<p>However my project use Charts and when I tried to add support for Charts, it doesn&#8217;t compile anymore with Maven. I managed to fix various issues and I will report there how to make it work.</p>
<p><strong>Add new mirror to your maven configuration</strong></p>
<p>First, as explained on its post, add its repository to your maven configuration file<br />
Here is my settings.xml :</p>
<pre>
&lt;settings&gt;
    &lt;localRepository&gt;&gt;/Users/nicolasmartignole/.m2/repository&lt;/localRepository&gt;
    &lt;offline&gt;false&lt;/offline&gt;

    &lt;proxies&gt;
    &lt;/proxies&gt;

    &lt;servers&gt;
    &lt;/servers&gt;

    &lt;mirrors&gt;
        &lt;mirror&gt;
            &lt;id&gt;ibiblio&lt;/id&gt;
            &lt;mirrorOf&gt;central&lt;/mirrorOf&gt;
            &lt;name&gt;Ibiblio central repos.&lt;/name&gt;
            &lt;url&gt;http://www.ibiblio.org/maven2&lt;/url&gt;
        &lt;/mirror&gt;
    &lt;/mirrors&gt;

    &lt;profiles&gt;
        &lt;profile&gt;
            &lt;id&gt;defaultProfile&lt;/id&gt;
            &lt;activation&gt;
                &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
            &lt;/activation&gt;

            &lt;repositories&gt;
                &lt;repository&gt;
                    &lt;id&gt;fna-repository&lt;/id&gt;
                    &lt;name&gt;fna-repository&lt;/name&gt;
                    &lt;url&gt;http://fna.googlecode.com/svn/trunk/fna/fna_m2_repository/&lt;/url&gt;
                    &lt;releases&gt;
                        &lt;enabled&gt;true&lt;/enabled&gt;
                    &lt;/releases&gt;
                    &lt;snapshots&gt;
                        &lt;enabled&gt;false&lt;/enabled&gt;
                    &lt;/snapshots&gt;
                &lt;/repository&gt;
            &lt;/repositories&gt;

            &lt;pluginRepositories&gt;
                &lt;pluginRepository&gt;
                    &lt;id&gt;fna-repository&lt;/id&gt;
                    &lt;name&gt;fna-repository&lt;/name&gt;
                    &lt;url&gt;http://fna.googlecode.com/svn/trunk/fna/fna_m2_repository/&lt;/url&gt;
                    &lt;releases&gt;
                        &lt;enabled&gt;true&lt;/enabled&gt;
                    &lt;/releases&gt;
                    &lt;snapshots&gt;
                        &lt;enabled&gt;false&lt;/enabled&gt;
                    &lt;/snapshots&gt;
                &lt;/pluginRepository&gt;
            &lt;/pluginRepositories&gt;
        &lt;/profile&gt;
    &lt;/profiles&gt;
&lt;/settings&gt;
</pre>
<p><strong>Create a simple project from scratch</strong></p>
<p>Now it&#8217;s time to create your first maven project with Flex. I will call my new project &laquo;&nbsp;Lombok&nbsp;&raquo; and it will be part of &laquo;&nbsp;Treck&nbsp;&raquo; which is my company name.</p>
<pre class="xml">

mvn archetype:create
-DarchetypeGroupId=com.droff
-DarchetypeArtifactId=blazeds-xdoclet-spring-hibernate-archetype
-DarchetypeVersion=1.0
-DgroupId=org.treck
-DartifactId=lombok
</pre>
<p><strong>Create a new IDEA IntelliJ project</strong></p>
<p>Go to the new created folder (cd lombok) and type-in </p>
<pre>mvn idea:idea -DjdkName=1.5
</pre>
<p>This will create a new IntelliJ Project.<br />
You can also create a new Eclipse project with :</p>
<pre>
 mvn eclipse:eclipse
</pre>
<p><strong>Compile time !</strong></p>
<p>It&#8217;s now time to build the first project. There&#8217;s nothing special here since François&#8217;s project come with a nice CRUD application that works with HSQL database and Hibernate.</p>
<p>Simply type &laquo;&nbsp;mvn install&nbsp;&raquo; and wait for compilation</p>
<p><strong>Deploy time</strong></p>
<p>Once your project has been compiled you can now start the local Jetty servlet container. BlazeDS has already been configured for you with a simple amf service.</p>
<p>Enter</p>
<pre>
cd java_webapp
mvn jetty:run-exploded
</pre>
<p>If everything went well you should see something similar to the folowing output :</p>
<pre>...
...
6 juil. 2008 09:34:50 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet
INFO: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@bc5edf] of Hibernate SessionFactory for HibernateTransactionManager
6 juil. 2008 09:34:50 org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization completed in 1465 ms
2008-07-06 09:34:50.252::INFO:  Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 10 seconds.</pre>
<p>Open a web browser and check http://localhost:8080/lombok</p>
<p><strong>Time to add some more difficulties</strong></p>
<p>So far, so good. Now when I tried to import my existing Flex application into this sandbox, I started to encounter some difficulties. I will explain here how I manage to fix them.</p>
<p>First, let&#8217;s edit the simple MXML application and add a new Chart component. I let you create a working MXML from Flex Buider. My sample is based on a dataProvider that is an ArrayCollection of values.</p>
<pre name="code" class="xml">...
&lt;mx:LineChart id="linechart1" width="617" height="210" dataProvider="{todoItems}" showDataTips="true"&gt;
    &lt;mx:series&gt;
           &lt;mx:LineSeries yField="cpuIdle" form="curve" displayName="Idle"/&gt;
       &lt;/mx:series&gt;
   &lt;mx:horizontalAxis&gt;
           &lt;mx:CategoryAxis categoryField="name"/&gt;
   &lt;/mx:horizontalAxis&gt;

&lt;/mx:LineChart&gt;
</pre>
<p>Now if you try to compile with mvn install the project you should see this error</p>
<pre>...
[ERROR]  Could not resolve &lt;mx:LineChart&gt; to a component implementation.
...
BUILD FAILURE</pre>
<p><strong>Add 2 dependencies to your pom.xml</strong></p>
<p>Edit <strong>flex_app/pom.xml</strong> and add the following dependencies</p>
<pre class="xml" name="code">
&lt;dependency&gt;
    &lt;groupId&gt;com.adobe.flex.sdk&lt;/groupId&gt;
    &lt;artifactId&gt;datavisualization&lt;/artifactId&gt;
    &lt;type&gt;swc&lt;/type&gt;
    &lt;scope&gt;merged&lt;/scope&gt;
    &lt;version&gt;3.0.0.477&lt;/version&gt;
&lt;/dependency&gt;
&lt;!-- Add this to avoid the Unable to resolve resource bundle charts for locale en US error //--&gt;
&lt;dependency&gt;
    &lt;groupId&gt;com.adobe.flex.sdk&lt;/groupId&gt;
    &lt;artifactId&gt;datavisualization&lt;/artifactId&gt;
    &lt;version&gt;3.0.0.477&lt;/version&gt;
    &lt;type&gt;resource-bundle&lt;/type&gt;
    &lt;classifier&gt;en_US&lt;/classifier&gt;
&lt;/dependency&gt;
</pre>
<p>Update also the rvin.mojo plugin version to read (still editing flex_app/pom.xml)</p>
<pre class="code" class="xml">
&lt;plugins&gt;
       &lt;plugin&gt;
           &lt;groupId&gt;info.rvin.mojo&lt;/groupId&gt;
           &lt;artifactId&gt;flex-compiler-mojo&lt;/artifactId&gt;
           &lt;!-- Update here to the correct version --&gt;
           &lt;!-- &lt;version&gt;1.0-beta4&lt;/version&gt; --&gt;
           &lt;extensions&gt;true&lt;/extensions&gt;
</pre>
<p>At the end of the file you can also add a new repository (or edit your settings.xml)</p>
<pre class="xml">

&lt;repositories&gt;
     &lt;repository&gt;
         &lt;id&gt;flex-mojos-repository&lt;/id&gt;
         &lt;url&gt;http://svn.sonatype.org/flexmojos/repository/&lt;/url&gt;
         &lt;releases&gt;
             &lt;enabled&gt;true&lt;/enabled&gt;
         &lt;/releases&gt;
     &lt;/repository&gt;
 &lt;/repositories&gt;
</pre>
<p><strong>Update your local repository</strong></p>
<p>To fix this issue you need to manually import a SWC component and a resource bundle into your local mavené repository. You also need to update the pom.xml so that the flex compiler add at compile time in the external-libs the chart component.</p>
<p>First, I read that you need to import the SWC component that are bundled with Flex Builder. Don&#8217;t know exactly why but it doesn&#8217;t work if you import datavisualisation component from an external flex SDK 3.0. So here is how to import the Chart component into maven :</p>
<pre>

mvn install:install-file -DgroupId=com.adobe.flex.sdk
-DartifactId=datavisualization
-Dversion=3.0.0.477
-Dpackaging=swc
-Dfile="/Applications/Adobe Flex Builder 3/sdks/3.0.0/frameworks/libs/datavisualization.swc"
</pre>
<p>Then you need to import the resource bundle</p>
<pre>

mvn install:install-file -DgroupId=com.adobe.flex.sdk
  -DartifactId=datavisualization
  -Dversion=3.0.0.477 -Dclassifier=en_US
  -Dpackaging=swc
  -Dfile="/Applications/Adobe Flex Builder 3/sdks/3.0.0/frameworks/local/locale/en_US/datavisualization_rb.swc"
</pre>
<p>If you forget to import the resource bundle you&#8217;ll see this error message:</p>
<pre>Unable to resolve resource bundle "charts" for locale "en_US".</pre>
<p><strong>Rebuild</strong></p>
<p>The application should now build completly with the Chart. It&#8217;s really important to specify in the pom.xml a scope of &laquo;&nbsp;merged&nbsp;&raquo; for the datavisualization plugin as shown below:</p>
<pre>
&lt;dependency&gt;
&lt;groupid&gt;com.adobe.flex.sdk&lt;/groupid&gt;
&lt;artifactid&gt;datavisualization&lt;/artifactid&gt;
&lt;type&gt;swc&lt;/type&gt;
&lt;scope&gt;merged&lt;/scope&gt;
&lt;version&gt;3.0.0.477&lt;/version&gt;
&lt;/dependency&gt;</pre>
<p>If you don&#8217;t specify this scope, everything will compile but when you deploy the SWF file on Jetty and press refresh, Flash shows an error message with something like</p>
<pre>VerifyError: Error #1014: Class mx.charts::LineChart could not be found.</pre>
<p>The reason is that the datavisualization needs to be included within the SWF and shall not be loaded as an external library.</p>
<p>I hope that it will help some of you if you play with this nice mojo and with Flex Chart</p>
<p>To conclude a screenshot I took this morning of Chart:</p>
<p><img src="http://www.touilleur-express.fr/img/divers/capture_flex_chart.jpg" alt="Flex Chart Blazeds" width="300" height="242" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/07/08/flex-blazeds-spring-hibernate-all-together-with-maven/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Compte-rendu de la journée Valtech RIA</title>
		<link>http://www.touilleur-express.fr/2008/06/20/compte-rendu-de-la-journee-valtech-ria/</link>
		<comments>http://www.touilleur-express.fr/2008/06/20/compte-rendu-de-la-journee-valtech-ria/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 09:36:37 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=195</guid>
		<description><![CDATA[Hier grosse journée. Tout d&#8217;abord chez Valtech pour assister à une journée de présentation et de formation sur les 3 technologies phares des applications riches : Microsoft Silverlight, Adobe Flex et Google Web Toolkit. Ensuite réunion avec l&#8217;OSSGTP (où j&#8217;ai fait la connaissance de Didier Girard qui était aussi à session Valtech). Voici un petit compte-rendu rapide sur mes impressions de cette journée.
L&#8217;organisation de Valtech était à la hauteur de l&#8217;événement. Environ 90 personnes étaient présentes. En majorité des développeurs Java. Il y avait quelques développeurs .NET, PHP et des ...]]></description>
			<content:encoded><![CDATA[<p>Hier grosse journée. Tout d&#8217;abord chez Valtech pour assister à une journée de présentation et de formation sur les 3 technologies phares des applications riches : Microsoft Silverlight, Adobe Flex et Google Web Toolkit. Ensuite réunion avec l&#8217;OSSGTP (où j&#8217;ai fait la connaissance de <a href="http://www.application-servers.com/">Didier Girard</a> qui était aussi à session Valtech). Voici un petit compte-rendu rapide sur mes impressions de cette journée.</p>
<p>L&#8217;organisation de Valtech était à la hauteur de l&#8217;événement. Environ 90 personnes étaient présentes. En majorité des développeurs Java. Il y avait quelques développeurs .NET, PHP et des graphistes. Mais le premier constat, c&#8217;est que soit le fichier de prospection de Valtech n&#8217;a contacté que des équipes Java, soit clairement un développeur client riche en France n&#8217;est pas un graphiste mais un développeur&#8230; </p>
<p>Nous étions environ une cinquantaine dans mon groupe. Tout le monde était équipé d&#8217;un portable avec les différents environnements de développement installés grâce à un CD donné par Valtech. La première session sur Google Web Toolkit était animé par Sami Jaber de DNG Consulting, ancien directeur technique chez Valtech Toulouse. Sami a été interviewé plusieurs fois dans 01 Informatique (<a href="http://www.01net.com/article/343197.html">ici</a>, là sur <a href="http://www.01net.com/editorial/382646/avec-javafx-sun-repart-a-la-conquete-de-l-utilisateur/">JavaFX </a>et <a href="http://www.01net.com/editorial/381614/sami-jaber-fondateur-de-dng-consulting-societe-de-conseil-specialisee-dans-les-architectures-orientees-services-et-le-web-2.0/">ici sur RDA</a>). <a href="http://www.dotnetguru2.org/sami/">Son blog</a> parle aussi de .NET. Je retiens plusieurs points sur sa présentation. Tout d&#8217;abord il explique que GWT n&#8217;est pas réellement comparable à SilverLight ou Flex. Il n&#8217;y a pas de plugin et pas de rendu vectoriel. GWT est orienté application web riche. L&#8217;avantage de GWT est son intégration complète dans l&#8217;espace de travail du développeur. Le développeur écrit en Java une application similaire à de la programmation ave Swing pour décrire votre interface et vos actions. Ce code génère du Javascript avec l&#8217;outil GWT qui est ensuite déployé vers le client. L&#8217;un des points forts de GWT est la génération optimisée du Javascript selon le navigateur ainsi que selon la langue de l&#8217;utilisateur. GWT prend en charge la complexité de gestion des différents navigateurs et permet donc de ne se concentrer que sur la partie métier. A peu de chose prêt c&#8217;est ce que nous faisons avec mon équipe sur le framework Karma depuis 3 ans, pour la finance. Là où par contre GWT va plus loin, c&#8217;est son intégration dans l&#8217;environnement de travail. Chez nous la productivité n&#8217;est pas mirobolante car la phase de debug est assez délicate. Sur GWT la productivité est bien meilleure que notre solution.</p>
<p>GWT seul est pauvre en terme de composants graphiques. Cependant il faut savoir qu&#8217;un bon nombre des librairies Javascript sont en court de portage vers GWT. Sami a présenté une intégration de la librairie <a href="http://extjs.com/products/extjs/">ExtJS</a> dans le projet <a href="http://extjs.com/products/gxt/">Ext GWT</a> (ou GXT) qui m&#8217;a particulièrement intéressé. ExtJS est une librairie très puissante mais difficile à programmer proprement, car c&#8217;est du Javascript. Il existe bien une taglib pour ExtJS mais je ne suis pas convaincu. Ext GWT par contre est vraiment une librairie qui a un avenir au sens industriel du terme. Je vois déjà les applications chez Thomson-Reuters qui pourraient en bénéficier pour pas très cher. La librairie est disponible soit sous licence GPL v3, soit sous licence commerciale si vous souhaitez l&#8217;intégrer dans un produit. C&#8217;est la mode en ce moment.</p>
<p>GWT est donc une librairie et un moteur complet qui permet de travailler d&#8217;Eclipse (ou d&#8217;IDEA IntelliJ) rapidement, sans devoir déployer son application et perdre du temps. L&#8217;exemple de Sami utilisait <a href="http://openejb.apache.org/">Apache OpenEJB</a>, un tout petit moteur EJB3 qui a l&#8217;avantage de se lancer très vite par rapport à un JBoss. Je ne parle même pas d&#8217;IBM Websphere et compagnie&#8230;</p>
<p><strong>Deuxième séance: Microsoft Silvertlight beta 2 release 2</strong>. Je ne vais pas m&#8217;étendre. Très décevant. La présentation était moyenne, les 2 présentateurs ont proposé d&#8217;axer la présentation sur l&#8217;intégration entre l&#8217;utilisation de Microsoft Blend et d&#8217;un outil de développement C#/XAML afin d&#8217;expliquer la séparation entre le design graphique et la partie codage. Mon sentiment sur ce que j&#8217;ai vu, c&#8217;est que Silverlight n&#8217;est pas encore terminé. Certes on parle d&#8217;une béta. Mais en fin de présentation, l&#8217;un des speakers a expliqué que dès aujourd&#8217;hui il était possible d&#8217;aller en production avec un support qui sera assuré par Microsoft&#8230; Moi désolé mais je n&#8217;ai rien compris.</p>
<p>J&#8217;ai apprecié Microsoft Blend qui est un outil puissant pour construire son interface. Il écrase Flex Builder car il permet vraiment d&#8217;aller très loin sur les effets graphiques et de présentation. En terme d&#8217;ergonomie, je trouve qu&#8217;il y a encore quelques points à clarifier, mais l&#8217;outil est utilisable pour faire une interface très sympa. Du côté de XAML et du pont avec la partie métier et service, une application cliente Silverlight est agnostique avec la partie serveur. Elle peut donc être client d&#8217;un Tomcat sans soucis. Silverlight supporte un grand nombre de modèle de communication comme REST ou RPC. Il y a une couche de sécurité que je n&#8217;ai pas vu du côté de Flex. Anecdote cependant qu&#8217;un des présentateurs a laché : le contenu XAP d&#8217;un fichier silverlight est placé dans le cache du navigateur. Il serait possible de récuperer ce contenu pour le décompiler et en faire ce que l&#8217;on veut. Il explique donc qu&#8217;il faut faire attention à ne pas stocker de choses sensibles dans l&#8217;application, mais à aller les chercher sur le serveur. Ce qui me paraît logique.
</p>
<p>Quoi d&#8217;autre sur Silverlight ? je vous passe les manipulations assez acrobatiques que nous avons dû faire car il y a un souci de Namespace sur la dernière version de Blend. C&#8217;était folklorique. Moi en tant que client j&#8217;attendrai encore un peu avant de m&#8217;en servir pour un client final. Je n&#8217;ai pas du tout aimé la partie C#. Cela dit, Silverlight a aussi un support pour PHP et Ruby. Donc on peut envisager d&#8217;écrire autrement la partie Page de l&#8217;application. Voili voilà.</p>
<p>Nous avons terminé la journée par la présentation qui m&#8217;a le plus bluffé : Adobe Flex. Je connais bien la techno puisque l&#8217;an passé j&#8217;ai réalisé tout un prototype avec Flex de l&#8217;une de nos applications. Je voulais rester afin de voir comment présenter Flex aux gens qui ne connaissent pas. <a href="http://www.baao.com">Yann Chevalier de Baao</a> nous a fait une superbe présentation. C&#8217;est un très bon speaker et je pense que toute la salle a réussi à réaliser les ateliers qu&#8217;il présentait. Nous avons codé un player de vidéo en Flex, avec une timeline, des boutons Pause et Stop et un compteur de temps. Cela permet de voir comment utiliser le Designer pour créer l&#8217;interface. Ensuite comment binder un composant à un événement. Comment déclarer un composant réutilisable&#8230; Bref une très bonne présentation. Rien à dire, je reste convaincu que pour l&#8217;instant Flex a une bonne longueur d&#8217;avance sur Silverlight. Flex est pensé par des graphistes, des ergonomes, des développeurs Flash qui ont une grande expérience du Web là où Silverlight est orienté développeur. Cependant j&#8217;ai vu qu&#8217;en terme de rendu, Silverlight est plus puissant dans ses effets graphiques. Là où pour l&#8217;instant cela pêche un peu, c&#8217;est que des applications avec de la vidéo et des cubes qui tournent, il y a peu d&#8217;intérêt à en faire&#8230; Nous sommes encore en phase de transition vers du Web un peu plus riche, ce que GWT qui reste sur du HTML et du JS fait très bien.</p>
<p>En conclusion, je suis reparti avec un tee-shirt GWT. C&#8217;est pas marrant à dire mais les teeshirts Silverlight sont restés sur les tables de la salle d&#8217;accueil. Problème de publique je pense. Les gens présents étaient en majorité des pro-Java et malheureusement le fossé continue à se creuser. J&#8217;en suis responsalbe aussi en faisant du bashing ici. Mais je ne vais pas pipoter en racontant que c&#8217;est une techno mature et prête à être mise en production chez un client, un trader, dans une salle de marché&#8230; C&#8217;est une bonne techno mais avec un concurrent comme Adobe Flex et un produit comme <a href="http://labs.adobe.com/wiki/index.php/Thermo">Thermo </a>qui devrait bientôt arriver, la concurrence va être rude pour Silverlight. A noter en juillet nous devrions avoir une présentation sur Flex par l&#8217;équipe d&#8217;Adobe France aux Paris Java User Group (Paris JUG).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/06/20/compte-rendu-de-la-journee-valtech-ria/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Quelques sites indispensables pour vos développements Webs</title>
		<link>http://www.touilleur-express.fr/2008/06/17/quelques-sites-indispensables-pour-vos-developpements-webs/</link>
		<comments>http://www.touilleur-express.fr/2008/06/17/quelques-sites-indispensables-pour-vos-developpements-webs/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 06:05:01 +0000</pubDate>
		<dc:creator>Nicolas Martignole</dc:creator>
				<category><![CDATA[Dev Web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.touilleur-express.fr/?p=194</guid>
		<description><![CDATA[Ce matin un post qui n&#8217;a rien à voir avec Java, ni Apple&#8230; pour une fois !
J&#8217;ai en réserve un bon nombre d&#8217;adresse que j&#8217;utilise lorsque je dois valider un site, créer rapidement un logo ou trouver une mise en page CSS sympathique. Je n&#8217;ai pas tout repris ici mais voici déjà quelques uns de mes liens.
BrowserShots est un site qui vous permet de tester votre site internet avec différents navigateurs. Pour cela le site visite votre page et effectue une capture d&#8217;écran, que vous pouvez ensuite télécharger. Le Touilleur ...]]></description>
			<content:encoded><![CDATA[<p>Ce matin un post qui n&#8217;a rien à voir avec Java, ni Apple&#8230; pour une fois !</p>
<p>J&#8217;ai en réserve un bon nombre d&#8217;adresse que j&#8217;utilise lorsque je dois valider un site, créer rapidement un logo ou trouver une mise en page CSS sympathique. Je n&#8217;ai pas tout repris ici mais voici déjà quelques uns de mes liens.</p>
<p><a href="http://browsershots.org/">BrowserShots</a> est un site qui vous permet de tester votre site internet avec différents navigateurs. Pour cela le site visite votre page et effectue une capture d&#8217;écran, que vous pouvez ensuite télécharger. Le Touilleur Express par exemple ne marche pas très bien avec certaines versions d&#8217;Opéra. Pratique et rapide.<br />
<a href="http://browsershots.org/">http://browsershots.org/<br />
</a></p>
<p>L&#8217;adresse de courrier électronique poubelle, vous connaissez ? Disons que vous avez besoin de vous inscrire afin de recevoir un email d&#8217;un site marchand un peu douteux, le site <a href="http://spambox.us/">SpamBox</a> propose de créer un email valable une heure seulement. Cependant avant de m&#8217;en servir, je vérifierai bien si ce site lui-même n&#8217;en profite pas pour récupérer votre vraie adresse email pour la revendre&#8230; On est jamais trop prudent.</p>
<p>Le logo en flamme, le logo en flamme ! Si vous cherchez quelques tutoriaux afin de créer votre logo en flamme, allez jeter un oeil sur <a href="http://www.designvitality.com/blog/2007/09/photoshop-text-effect-tutorial/">le blog de DesignVitality</a>. J&#8217;aime particulièrement les designs Web 2.0.</p>
<p>Le site <a href="http://www.dafont.com/fr/">DaFont</a> offre une très grande collection de polices pour réaliser des applications webs, des sites et des logos. Il y a des polices très originales qui permettent de réaliser la patte d&#8217;un site en quelques instants.</p>
<p>Le site qu&#8217;il faut avoir dans ses bookmarks car il contient finalement un peu prêt tout ce dont j&#8217;ai besoin lorsque je crée un habillage : <a href="http://webdevelopersfieldguide.com/">http://webdevelopersfieldguide.com/.</a> Par exemple <a href="http://colourmod.com/">une roue colométrique</a> pour l&#8217;équilibre des couleurs. Ou un système comme <a href="http://www.degraeve.com/color-palette/index.php">DeGraeve.com</a> qui se base sur une image pour vous proposer une carte de couleurs.</p>
<p>Pour suivre l&#8217;actualité autour d&#8217;Ajax et des librairies comme <a href="http://www.prototypejs.org/">Prototype</a> ou <a href="http://script.aculo.us/">Script.aculo.us</a>, je vous avais déjà parlé <a href="http://ajaxian.com/">d&#8217;Ajaxian.com.</a> Le site propose souvent des articles assez pointus sur Ajax et Javascript.</p>
<p>En ce moment nous corrigeons des problèmes de Closures en Javascript. Je cherchais sur le net un outil que j&#8217;avais testé il y a 2 ans pour identifier des closures&#8230; Je tappe quelques mots et je tombe&#8230; sur mon blog&#8230; Ca fait bizarre de se répondre à soi-même&#8230; Si vous voulez briller en société et expliqué à un client ou à un consultant ce qu&#8217;est une Closure, je vous redonne <a href="http://blog.morrisjohns.com/javascript_closures_for_dummies">cette page</a> très bien faite, avant de vous proposer à mon tour une explication en français dans le texte prochainement. Oui on ne  le dit pas assez, mais un certain nombre de librairies Ajax peuvent causer des problèmes de mémoire du côté du navigateur.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.touilleur-express.fr/2008/06/17/quelques-sites-indispensables-pour-vos-developpements-webs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

