<?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 blog de Fabien DUMINY</title>
	<atom:link href="http://www.duminy.fr/blog/?feed=rss2&#038;language=fr+en" rel="self" type="application/rss+xml" />
	<link>http://www.duminy.fr/blog</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Sun, 22 Nov 2009 14:56:48 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Paris JUG &#8211; Soirée Google</title>
		<link>http://www.duminy.fr/blog/?p=1126&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=paris-jug-soiree-google</link>
		<comments>http://www.duminy.fr/blog/?p=1126&amp;language=fr#comments</comments>
		<pubDate>Wed, 18 Nov 2009 19:08:56 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[Paris JUG]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=1126</guid>
		<description><![CDATA[Mardi 10 novembre, j&#8217;ai assisté à la soirée google du Paris JUG. Android Gabriel Kastenbaum et Stéphane Liétard nous présentent Android, un système d&#8217;exploitation open source pour les téléphones portables et les PDAs. La version 2 est sortie il y a 2 semaines et ajoute notamment le support de HTML 5. Depuis l&#8217;arrivée de l&#8217;iPhone, [...]]]></description>
			<content:encoded><![CDATA[<p>Mardi 10 novembre, j&#8217;ai assisté à la <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20091110">soirée google</a> du <a href="http://www.parisjug.org/">Paris JUG</a>.</p>
<h3>Android</h3>
<p><a href="http://twitter.com/GabrielKast">Gabriel Kastenbaum</a> et <a href="http://www.viadeo.com/fr/profile/stephane.lietard">Stéphane Liétard</a> nous présentent <a href="http://www.android.com/">Android</a>, un système d&#8217;exploitation open source pour les téléphones portables et les <a href="http://fr.wikipedia.org/wiki/Pda">PDA</a>s. La version 2 est sortie il y a 2 semaines et ajoute notamment le support de HTML 5.</p>
<p>Depuis l&#8217;arrivée de l&#8217;<a href="http://www.apple.com/fr/iphone/">iPhone</a>, Google a constaté que 50% des requêtes sur <a href="http://maps.google.fr/">Google Maps</a> viennent de l&#8217;iPhone. C&#8217;est pourquoi il a décidé d&#8217;<a href="http://www.businessweek.com/technology/content/aug2005/tc20050817_0949_tc024.htm">acheter Android</a>, un système d&#8217;exploitation open source et gratuit, dans l&#8217;espoir de s&#8217;imposer comme une meilleure solution pour les opérateurs téléphoniques face aux autres systèmes d&#8217;exploitation, qui coûtent très cher. Afin de distribuer les applications (gratuites ou non) pour Android, Google a créé <a href="http://www.android.com/market/">Android Market</a>.</p>
<p>Android utilise le noyau linux 2.6 sur lequel des API java ont été ajoutées. D&#8217;autre part, la machine virtuelle <a href="http://en.wikipedia.org/wiki/Dalvik_virtual_machine">Dalvik</a>, écrite spécialement pour Android, est nécessaire et ce n&#8217;est pas une machine virtuelle java. En effet, contrairement aux JVM qui se basent sur la pile, Dalvik utilise les registres du processeur et execute du bytecode optimisé (fichiers .dex), non compatible avec du bytecode java (fichiers .class ou .jar). Afin d&#8217;obtenir les fichiers .dex, il faut donc faire un prétraitement du bytecode java, ce qui permet aussi la réutilisation du code java existant. </p>
<p>Bien qu&#8217;il soit possible de développer en dehors d&#8217;<a href="http://www.eclipse.org">eclipse</a>, il est pratique d&#8217;<a href="http://developer.android.com/sdk/eclipse-adt.html">installer le plugin ADT</a> (Android Development Tools) dans celui-ci pour créer et déboguer facilement un projet Android. Ce plugin permet aussi de créer des IHMs par cliquer-glisser, ce qui génère un fichier xml de description. Mais il est aussi possible de créer des <a href="http://fr.wikipedia.org/wiki/IHM">IHM</a>s directement par programmation. La commande logcat du <a href="http://developer.android.com/sdk/index.html">SDK Android</a>, qui a son équivalent au niveau du plugin eclipse, permet d&#8217;afficher les messages de log d&#8217;Android, notamment les logs du système (gc, &#8230;) et bien sûr les logs de l&#8217;application en cours de développement. </p>
<p>Comme toutes les applications sont au même niveau, les applications standards peuvent être remplacées. Les principaux composants sont les <i>activities</i> (activités), les <i>services</i>, les <i>broadcast receivers</i> (récepteurs de messages diffusés) et les <i>content providers</i> (fournisseurs de contenu). Les <i>content providers</i> permettent, par exemple, le partage des contacts entre différentes applications. Un <i>intent</i> (intention) est un message entre composants. Cette approche permet aux composants de communiquer entre eux ou avec le système sans même qu&#8217;ils se connaissent. Il en résulte un couplage faible entre les composants.</p>
<h3>Google App Engine Java</h3>
<p>Ensuite, <a href="http://www.linkedin.com/pub/marc-antoine-garrigue/0/534/80b">Marc-Antoine Garrigue</a> et <a href="http://glaforge.free.fr/weblog/">Guillaume Laforge</a> font la présentation de <a href="http://code.google.com/intl/fr-FR/appengine/docs/java/overview.html">Google App Engine Java</a> (GAE), qui permet de faire du <a href="http://fr.wikipedia.org/wiki/Informatique_dans_le_nuage">cloud computing</a> plus simplement qu&#8217;avec <a href="http://aws.amazon.com/ec2/">Amazone EC2</a> et surtout gratuitement. GAE permet de déployer des applications développées en java ou avec d&#8217;autres languages basés sur la plateforme java.</p>
<p>Du point de vue du développeur, une application déployée sur GAE fonctionne de la même manière qu&#8217;il y ait 1 seul utilisateur ou 1 million d&#8217;utilisateurs. En effet, il gère la <a href="http://fr.wikipedia.org/wiki/Load_balancing">répartition de charge</a> et l&#8217;ajout de <a href="http://fr.wikipedia.org/wiki/Conteneur_de_servlets">conteneurs de servlets</a> si la charge le nécessite; tout cela se fait de manière transparente pour le développeur et l&#8217;utilisateur.</p>
<p>Certaines opérations sont interdites : écrire dans le système de fichiers, faire des requêtes (en réponse à l&#8217;utilisateur) qui durent plus de 30 secondes, créer un thread &#8230;<br />
Pour l&#8217;extensibilité du système, les requêtes ne doivent pas durer plus de 30 secondes mais l&#8217;<a href="http://code.google.com/intl/fr-FR/appengine/docs/java/taskqueue/overview.html">API de gestion des taches</a> permet de passer outre cette limite en executant certaines taches en arrière plan.</p>
<p>La base de données n&#8217;est pas une base de données relationnelle, on n&#8217;utilise ni <a href="http://java.sun.com/javase/technologies/database/">JDBC</a> ni le <a href="http://fr.wikipedia.org/wiki/Structured_Query_Language">SQL</a>. Le moteur de base de données s&#8217;appelle <a href="http://fr.wikipedia.org/wiki/BigTable">BigTable</a> : c&#8217;est une sorte de grande table de hachage. Afin de pouvoir réutiliser les applications et les frameworks existants, l&#8217;<a href="http://code.google.com/intl/fr-FR/appengine/docs/java/datastore/">API DataStore</a> du SDK GAE fournie une implémentation de <a href="http://java.sun.com/javaee/overview/faq/persistence.jsp">JPA</a> et de <a href="http://java.sun.com/jdo/">JDO</a> pour BigTable.</p>
<p>Comme GAE est ouvert aux autres languages basés sur la plateforme java, il est possible de déployer des applications développées en <a href="http://groovy.codehaus.org/">groovy</a>.<br />
Ainsi, grâce à <a href="http://gaelyk.appspot.com/">gaelyk</a> une surcouche en groovy au SDK de GAE, on peut faire tourner des <a href="http://groovy.codehaus.org/Groovlets">groovlets</a> (équivalents aux servlets java) sur GAE.</p>
<h3>Google Wave</h3>
<p>Et pour finir, <a href="http://www.application-servers.com/">Didier Girard</a> fait la présentation de <a href="http://wave.google.com/help/wave/about.html">Google Wave</a>, un outils de collaboration basé sur <a href="http://code.google.com/intl/fr-FR/webtoolkit/">GWT</a> et qui permet de regrouper des informations de différentes provenances telles que le mail, le chat, tout cela dans une même <i>wave</i>. Il est possible de développer un gadget en GWT, le déployer sur <a href="http://code.google.com/intl/fr-FR/appengine/">Google App Engine</a> et l&#8217;intégrer dans une <i>wave</i>.<br />
Didier fait la démonstration d&#8217;une <i>wave</i> de prise de congés dans une entreprise. Suivant la personne qui se connecte sur la <i>wave</i>, différentes actions sont possibles :</p>
<ul>
<li>un collaborateur peut poser ses congés</li>
<li>un manager peut valider ou refuser les congés de ses collaborateurs</li>
</ul>
<p>Par cliquer-glisser, un collaborateur peut ajouter les photos de ses vacances dans la <i>wave</i>.</p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/www.parisjug.org\/xwiki\/bin\/view\/Meeting\/20091110","http:\/\/www.parisjug.org\/","http:\/\/twitter.com\/GabrielKast","http:\/\/www.viadeo.com\/fr\/profile\/stephane.lietard","http:\/\/www.android.com\/","http:\/\/fr.wikipedia.org\/wiki\/Pda","http:\/\/www.apple.com\/fr\/iphone\/","http:\/\/maps.google.fr\/","http:\/\/www.businessweek.com\/technology\/content\/aug2005\/tc20050817_0949_tc024.htm","http:\/\/www.android.com\/market\/","http:\/\/en.wikipedia.org\/wiki\/Dalvik_virtual_machine","http:\/\/www.eclipse.org","http:\/\/developer.android.com\/sdk\/eclipse-adt.html","http:\/\/fr.wikipedia.org\/wiki\/IHM","http:\/\/developer.android.com\/sdk\/index.html","http:\/\/www.linkedin.com\/pub\/marc-antoine-garrigue\/0\/534\/80b","http:\/\/glaforge.free.fr\/weblog\/","http:\/\/code.google.com\/intl\/fr-FR\/appengine\/docs\/java\/overview.html","http:\/\/fr.wikipedia.org\/wiki\/Informatique_dans_le_nuage","http:\/\/aws.amazon.com\/ec2\/","http:\/\/fr.wikipedia.org\/wiki\/Load_balancing","http:\/\/fr.wikipedia.org\/wiki\/Conteneur_de_servlets","http:\/\/code.google.com\/intl\/fr-FR\/appengine\/docs\/java\/taskqueue\/overview.html","http:\/\/java.sun.com\/javase\/technologies\/database\/","http:\/\/fr.wikipedia.org\/wiki\/Structured_Query_Language","http:\/\/fr.wikipedia.org\/wiki\/BigTable","http:\/\/code.google.com\/intl\/fr-FR\/appengine\/docs\/java\/datastore\/","http:\/\/java.sun.com\/javaee\/overview\/faq\/persistence.jsp","http:\/\/java.sun.com\/jdo\/","http:\/\/groovy.codehaus.org\/","http:\/\/gaelyk.appspot.com\/","http:\/\/groovy.codehaus.org\/Groovlets","http:\/\/www.application-servers.com\/","http:\/\/wave.google.com\/help\/wave\/about.html","http:\/\/code.google.com\/intl\/fr-FR\/webtoolkit\/","http:\/\/code.google.com\/intl\/fr-FR\/appengine\/"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD0xMTI2JmFtcDtsYW5ndWFnZT1mcjx3cHRiPlBhcmlzIEpVRyAmIzgyMTE7IFNvaXLDqWUgR29vZ2xlPHdwdGI%2BaHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZzx3cHRiPkxlIGJsb2cgZGUgRmFiaWVuIERVTUlOWQ%3D%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=1126&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paris JUG &#8211; Soirée Atmosphere</title>
		<link>http://www.duminy.fr/blog/?p=1145&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=paris-jug-soiree-atmosphere</link>
		<comments>http://www.duminy.fr/blog/?p=1145&amp;language=fr#comments</comments>
		<pubDate>Tue, 17 Nov 2009 22:16:18 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[Paris JUG]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=1145</guid>
		<description><![CDATA[Jeudi 12 novembre, j&#8217;ai assisté à la soirée Atmosphere du Paris JUG. Actualité du Paris JUG Paris JUG est à devoxx09 cette semaine. Pour le deuxième anniversaire du Paris JUG, le thème sera l&#8217;open source en France. On recherche une salle pas chère pouvant contenir 250 à 300 personnes. Présentation d&#8217;Atmosphere Jean-Francois Arcand nous présente [...]]]></description>
			<content:encoded><![CDATA[<p>Jeudi 12 novembre, j&#8217;ai assisté à la <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20091112">soirée Atmosphere</a> du <a href="http://www.parisjug.org/">Paris JUG</a>.</p>
<h3>Actualité du Paris JUG</h3>
<ul>
<li>Paris JUG est à <a href="http://www.devoxx.com/display/DV09/Home">devoxx09</a> cette semaine.</li>
<li>Pour le deuxième anniversaire du Paris JUG, le thème sera l&#8217;open source en France. On recherche une salle pas chère pouvant contenir 250 à 300 personnes.</li>
</ul>
<h3>Présentation d&#8217;Atmosphere</h3>
<p><a href="http://www.java.net/blogs/jfarcand/">Jean-Francois Arcand</a> nous présente <a href="https://atmosphere.dev.java.net/">Atmosphere</a>, un framework portable et open source pour faire de l&#8217;ajax push ou du <a href="http://fr.wikipedia.org/wiki/Comet_%28informatique%29">Comet</a> (qui traite les requêtes ajax push de manière non bloquante).</p>
<p>Grâce à Atmosphere, basé sur les <a href="http://fr.wikipedia.org/wiki/POJO">POJO</a> et l&#8217;<a href="http://fr.wikipedia.org/wiki/Inversion_de_contr%C3%B4le">inversion de contrôle</a>, le développeur travaille indépendamment du serveur d&#8217;application (<a href="http://www.jboss.org/">JBoss</a>, <a href="http://tomcat.apache.org/">Tomcat</a>, <a href="https://glassfish.dev.java.net/">GlassFish</a>, <a href="http://code.google.com/intl/fr-FR/appengine/">Google App Engine</a> &#8230;) et du navigateur. Atmosphere peut gérer une <a href="http://fr.wikipedia.org/wiki/Grappe_de_serveurs">grappe de serveurs</a>. Il détecte aussi la fermeture du navigateur, ce qui permet de libérer les ressources utilisées sur le serveur.</p>
<p>Les messages sont diffusés de manière globale ou selective, immédiate ou retardée et peuvent être aggrégés (utile quand de nombreux messages sont envoyés en peu de temps). Leur diffusion peut se faire par différentes implémentations : <a href="http://www.jgroups.org/">JGroups</a>, <a href="http://java.sun.com/products/jms/">JMS</a> ou <a href="https://shoal.dev.java.net/">Shoal</a>.</p>
<p>Comme exemple de diffusion globale, Jean-François fait une démonstration dans laquelle une page est affichée dans 2 navigateurs; on déplace une image dans l&#8217;un des deux et celle-ci se déplace de même dans l&#8217;autre navigateur. Ensuite, pour illustrer la diffusion sélective, il nous montre un logiciel imitant <a href="http://twitter.com/">twitter</a> avec des <i>following</i> (les personnes dont l&#8217;utilisateur suit les messages) et <i>followers</i> (les personnes qui vont recevoir les messages de l&#8217;utilisateur).</p>
<p>Atmosphere spade server est une version contenant un serveur embarqué (basé sur <a href="https://grizzly.dev.java.net/">grizzly</a>, un <a href="http://fr.wikipedia.org/wiki/Fork#Embranchement_d.27un_projet_informatique">fork</a> de tomcat) : c&#8217;est peu utile en entreprise car souvent il existe déjà un serveur d&#8217;application. L&#8217;intérêt est donc essentiellement pour les tests unitaires.</p>
<p>Parmi les fonctionnalités à venir, il y a les transactions basées sur les cookies pour ne jamais perdre un évènement (quand le navigateur se reconnecte, il récupère les messages qu&#8217;il a manqué) ainsi que le support de la persistance. La version 1.0 devrait arriver vers juillet 2010.</p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/www.parisjug.org\/xwiki\/bin\/view\/Meeting\/20091112","http:\/\/www.parisjug.org\/","http:\/\/www.devoxx.com\/display\/DV09\/Home","http:\/\/www.java.net\/blogs\/jfarcand\/","https:\/\/atmosphere.dev.java.net\/","http:\/\/fr.wikipedia.org\/wiki\/Comet_%28informatique%29","http:\/\/fr.wikipedia.org\/wiki\/POJO","http:\/\/fr.wikipedia.org\/wiki\/Inversion_de_contr%C3%B4le","http:\/\/www.jboss.org\/","http:\/\/tomcat.apache.org\/","https:\/\/glassfish.dev.java.net\/","http:\/\/code.google.com\/intl\/fr-FR\/appengine\/","http:\/\/fr.wikipedia.org\/wiki\/Grappe_de_serveurs","http:\/\/www.jgroups.org\/","http:\/\/java.sun.com\/products\/jms\/","https:\/\/shoal.dev.java.net\/","http:\/\/twitter.com\/","https:\/\/grizzly.dev.java.net\/","http:\/\/fr.wikipedia.org\/wiki\/Fork#Embranchement_d.27un_projet_informatique"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD0xMTQ1JmFtcDtsYW5ndWFnZT1mcjx3cHRiPlBhcmlzIEpVRyAmIzgyMTE7IFNvaXLDqWUgQXRtb3NwaGVyZTx3cHRiPmh0dHA6Ly93d3cuZHVtaW55LmZyL2Jsb2c8d3B0Yj5MZSBibG9nIGRlIEZhYmllbiBEVU1JTlk%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=1145&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Présentation de BIRT</title>
		<link>http://www.duminy.fr/blog/?p=1045&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=presentation-de-birt</link>
		<comments>http://www.duminy.fr/blog/?p=1045&amp;language=fr#comments</comments>
		<pubDate>Wed, 04 Nov 2009 19:37:58 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[event]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=1045</guid>
		<description><![CDATA[Le 7 octobre, j&#8217;ai assisté à la présentation de BIRT par Jason Weathersby. BIRT est un outil de génération de rapports composé de 3 parties : le moteur de graphiques, le moteur de génération de rapports et le moteur de design. Les sources de données peuvent être de différents types : xml, scriptée (java, javacript) [...]]]></description>
			<content:encoded><![CDATA[<p>Le 7 octobre, j&#8217;ai assisté à la <a href="http://blog.zenika.com/index.php?post/2009/09/13/Ev%C3%A9nements-BIRT-avec-Jason-Weathersby">présentation de BIRT</a> par <a href="http://www.blogger.com/profile/13114050439576571984">Jason Weathersby</a>.</p>
<p><a href="http://eclipse.org/birt/phoenix/">BIRT</a> est un outil de génération de rapports composé de 3 parties : le moteur de graphiques, le moteur de génération de rapports et le moteur de design.<br />
Les sources de données peuvent être de différents types : xml, scriptée (java, javacript) et <a href="http://java.sun.com/javase/technologies/database/">jdbc</a> (vous pouvez utiliser un constructeur de requête similaire à celui de MS Access). Si nécessaire, vous pouvez même ajouter des colonnes calculées.</p>
<p>Comme le designer est basé sur la <a href="http://fr.wikipedia.org/wiki/Plateforme_client_riche">plateforme de client riche</a> d&#8217;<a href="http://www.eclipse.org/">eclipse</a>, vous pouvez directement déboguer le code javascript (qui est executé par <a href="http://www.mozilla.org/rhino/">Mozilla Rhino</a>) et les plugins sont gérés par <a href="http://www.osgi.org/">OSGi</a>.</p>
<p>Les rapports peuvent être construits par <a href="http://fr.wikipedia.org/wiki/Glisser-d%C3%A9poser">glisser-déposer</a> (drag&#038;drop) et exportés en pdf, ps, xls, ppt, doc ou html paginé. Grâce à un ensemble d&#8217;évènements, à différents niveaux (rapport, page, source de données), vous pouvez ajouter de l&#8217;interactivité à vos rapports en traitant les évènements aussi bien en javacript qu&#8217;en java. Par exemple, vous pouvez ouvrir une boite de dialogue sur un clic souris.</p>
<p>Les graphiques peuvent être exportés dans un fichier jpg, un fichier pdf, un composant <a href="http://www.eclipse.org/swt/">swt</a> ou <a href="http://fr.wikipedia.org/wiki/Swing_%28Java%29">swing</a>. Vous pouvez même les animer (exemple : faire tourner le graphique).</p>
<p>Le déploiement peut aussi bien se faire dans un serveur d&#8217;application <a href="http://fr.wikipedia.org/wiki/Java_EE">J2EE</a>,  dans une <a href="http://fr.wikipedia.org/wiki/Plateforme_client_riche">plateforme de client riche</a> ou dans une application indépendante.</p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/blog.zenika.com\/index.php?post\/2009\/09\/13\/Ev%C3%A9nements-BIRT-avec-Jason-Weathersby","http:\/\/www.blogger.com\/profile\/13114050439576571984","http:\/\/eclipse.org\/birt\/phoenix\/","http:\/\/java.sun.com\/javase\/technologies\/database\/","http:\/\/fr.wikipedia.org\/wiki\/Plateforme_client_riche","http:\/\/www.eclipse.org\/","http:\/\/www.mozilla.org\/rhino\/","http:\/\/www.osgi.org\/","http:\/\/fr.wikipedia.org\/wiki\/Glisser-d%C3%A9poser","http:\/\/www.eclipse.org\/swt\/","http:\/\/fr.wikipedia.org\/wiki\/Swing_%28Java%29","http:\/\/fr.wikipedia.org\/wiki\/Java_EE","http:\/\/fr.wikipedia.org\/wiki\/Plateforme_client_riche"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD0xMDQ1JmFtcDtsYW5ndWFnZT1mcjx3cHRiPlByw6lzZW50YXRpb24gZGUgQklSVDx3cHRiPmh0dHA6Ly93d3cuZHVtaW55LmZyL2Jsb2c8d3B0Yj5MZSBibG9nIGRlIEZhYmllbiBEVU1JTlk%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=1045&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Présentation de gradle</title>
		<link>http://www.duminy.fr/blog/?p=1015&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=presentation-de-gradle</link>
		<comments>http://www.duminy.fr/blog/?p=1015&amp;language=fr#comments</comments>
		<pubDate>Sun, 18 Oct 2009 15:25:06 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[event]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=1015</guid>
		<description><![CDATA[Le 25 juin dernier, j&#8217;ai assisté à la présentation de gradle par Hans Dockter, son créateur. gradle en quelques mots : gradle est un language de build au lieu d&#8217;un framework de build : il est plus flexible et adaptable aux cas particuliers les scripts de build sont écrits en groovy : cela donne un [...]]]></description>
			<content:encoded><![CDATA[<p>Le 25 juin dernier, j&#8217;ai assisté à la <a href="http://blog.zenika.com/index.php?post/2009/06/04/Pr%C3%A9sentation-Gradle-par-Hans-Dockter">présentation de gradle</a> par <a href="http://www.dockter.biz/">Hans Dockter</a>, son créateur.</p>
<p><a href="http://www.gradle.org/">gradle</a> en quelques mots :</p>
<ul>
<li>gradle est un language de build au lieu d&#8217;un framework de build : il est plus flexible et adaptable aux cas particuliers</li>
<li>les scripts de build sont écrits en <a href="http://groovy.codehaus.org/">groovy</a> : cela donne un outil très dynamique</li>
<li>fonctionne par dessus <a href="http://ant.apache.org/ivy/">ivy</a></li>
<li>interaction riche entre les taches</li>
<li>peut surveiller l&#8217;execution des tests et réagir suivant leur résultat</li>
<li>récupère tous les fichiers qui ont besoin d&#8217;être compilés</li>
<li>basé sur les conventions : permet de définir des règles à appliquer à tout projet dans une communauté/entreprise</li>
<li>permet d&#8217;executer certaines opérations standards sur une tache sans même que celle-ci ne le sache</li>
<li>support des plugins : ils peuvent être écrits en java</li>
<li>peut accéder au plan d&#8217;exécution d&#8217;un scénario (exemples : compile, clean&#8230;)</li>
<li>peut réagir à une exception donnée lorsqu&#8217;elle est levée</li>
<li>exclusion élégante de tache (A-> B et E, mais exclu B)</li>
<li>fusionnement élégant de taches (pour éviter qu&#8217;une tache ne s&#8217;execute plus d&#8217;une fois)</li>
<li>évitement élégant de taches (exemple: exclu une tache si le répertoire des classes est inchangé)</li>
<li>le script de build connait les classes compilées (écrites en groovy ou java). exemple : vous pouvez écrire &laquo;&nbsp;new MyBuild()&nbsp;&raquo; dans un script, où MyBuild est une classe développée en java</li>
<li>il existe un encapsuleur gradle pour utiliser gradle sans l&#8217;installer : c&#8217;est utile pour les projets open source pour utiliser une version donnée sans dépendre de ce qui est installé sur l&#8217;ordinateur de l&#8217;utilisateur</li>
<li>un support pour les projets C/C++ a de grandes chances de venir à cause d&#8217;un fort besoin</li>
<li>de la version 0.7 à 1.0 : il y aura des changements qui vont casser l&#8217;existant mais les notes de livraison expliqueront comment corriger les scripts existants</li>
</ul>
<p><a href="http://www.gradle.org/">gradle</a> versus <a href="http://ant.apache.org/">ant</a></p>
<ul>
<li>avec ant, il n&#8217;y a aucun moyen de manipuler une tache. Ce n&#8217;est pas le cas avec gradle grace à son API riche.</li>
<li>ant est basé sur xml, ce qui lui confère une interaction quasi unidirectionnelle. Gradle utilise <a href="http://groovy.codehaus.org/">groovy</a> pour fournir une interaction bidirectionnelle de manière orientée objet.</li>
<li>gradle peut appeler n&#8217;importe quelle tache de manière orientée objet :
<ol>
<li>importer un fichier build.xml créé pour ant</li>
<li>utiliser les cibles ant comme des taches gradle</li>
<li>ajouter quelques cibles manquantes dans le fichier build.xml</li>
</ol>
</li>
</ul>
<p><a href="http://www.gradle.org/">gradle</a> versus <a href="http://maven.apache.org/">maven</a></p>
<ul>
<li>gradle permet d&#8217;ajouter de nouveaux scopes maven, ce qui ne peut être fait avec maven
<li>
<li>gradle peut retrouver toutes les dépendances transitives d&#8217;un artefact maven</li>
<li>gradle peut retrouver les artefacts d&#8217;un repository maven ou les déployer sur un repository maven : il utilise maven pour faire ces taches, ce qui signifie qu&#8217;il est entièrement compatible avec maven</li>
<li>liberté complète pour la construction de projets multiples
<ul>
<li>maven utilise l&#8217;héritage de configuration et force à créer des projets synthétiques pour partager certaines taches/configurations. <a href="http://www.gradle.org/">Gradle</a> peut injecter de la configuration ou des taches dans tout projet</li>
<li>les dépendences peuvent s&#8217;exprimer en terme de projet</li>
</ul>
</li>
</ul>
<p><a href="http://www.gradle.org/">gradle</a> versus IDEs :</p>
<ul>
<li>il y a un support pour le déboggage (points d&#8217;arrêt &#8230;.) uniquement dans <a href="http://www.jetbrains.com/idea/nextversion/free_java_ide.html">IntelliJ IDEA</a> mais un support pour <a href="http://www.eclipse.org">eclipse</a> devrait arriver bientôt</li>
<li>il y a un support pour générer des projets <a href="http://www.eclipse.org">eclipse</a></li>
</ul>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/blog.zenika.com\/index.php?post\/2009\/06\/04\/Pr%C3%A9sentation-Gradle-par-Hans-Dockter","http:\/\/www.dockter.biz\/","http:\/\/www.gradle.org\/","http:\/\/groovy.codehaus.org\/","http:\/\/ant.apache.org\/ivy\/","http:\/\/www.gradle.org\/","http:\/\/ant.apache.org\/","http:\/\/groovy.codehaus.org\/","http:\/\/www.gradle.org\/","http:\/\/maven.apache.org\/","http:\/\/www.gradle.org\/","http:\/\/www.gradle.org\/","http:\/\/www.jetbrains.com\/idea\/nextversion\/free_java_ide.html","http:\/\/www.eclipse.org","http:\/\/www.eclipse.org"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD0xMDE1JmFtcDtsYW5ndWFnZT1mcjx3cHRiPlByw6lzZW50YXRpb24gZGUgZ3JhZGxlPHdwdGI%2BaHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZzx3cHRiPkxlIGJsb2cgZGUgRmFiaWVuIERVTUlOWQ%3D%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=1015&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CITCON Europe 2009 Paris</title>
		<link>http://www.duminy.fr/blog/?p=919&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=citcon-europe-2009-paris</link>
		<comments>http://www.duminy.fr/blog/?p=919&amp;language=fr#comments</comments>
		<pubDate>Sun, 27 Sep 2009 16:33:44 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[CITCON 2009]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=919</guid>
		<description><![CDATA[J&#8217;ai assisté au CITCON Europe 2009 Paris (CITCON signifie en français &#171;&#160;Conférence sur les tests et l&#8217;intégration continue&#160;&#187;). Le vendredi soir, nous avons d&#8217;abord commencé par nous présenter rapidement. Ensuite, ceux qui voulaient proposer un sujet l&#8217;écrivaient sur un papier, le présentaient à l&#8217;assemblée et le collaient sur le tableau représentant le planning du samedi. [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai assisté au <a href="http://citconf.com/wiki/index.php?title=Main_Page#CITCON_Europe_2009_Paris" target="_blank">CITCON Europe 2009 Paris</a> (CITCON signifie en français &laquo;&nbsp;Conférence sur les tests et l&#8217;intégration continue&nbsp;&raquo;). Le vendredi soir, nous avons d&#8217;abord commencé par nous présenter rapidement. Ensuite, ceux qui voulaient proposer un sujet l&#8217;écrivaient sur un papier, le présentaient à l&#8217;assemblée et le collaient sur le <a href="http://dedibox.mathieu-bolla.com/citcon-europe-2009/grand-3.html" target="_blank">tableau représentant le planning du samedi</a>. </p>
<p>Durant toute la journée de samedi, j&#8217;ai assisté à diverses sessions :</p>
<ul>
<li>
Session sur <a href="http://citconf.com/wiki/index.php?title=HudsonAndOtherPlugins" target="_blank">hudson et les besoins de nouveaux plugins</a>, dirigée par <a href="http://citconf.com/wiki/index.php?title=Douglas_Squirrel" target="_blank">Douglas Squirrel</a>. J&#8217;ai malheureusement manqué le début, lorsque Douglas a expliqué comment écrire un plugin pour <a href="https://hudson.dev.java.net/" target="_blank">hudson</a>. Si vous souhaitez écrire votre propre plugin pour <a href="https://hudson.dev.java.net/" target="_blank">hudson</a>, n&#8217;hésitez pas à écrire à <a href="http://www.kohsuke.org/" target="_blank">kohsuke</a> (le créateur d&#8217;<a href="https://hudson.dev.java.net/" target="_blank">hudson</a>) en postant un message sur la <a href="mailto:dev@hudson.dev.java.net">liste de diffusion pour les développeurs</a> ou à envoyer un mail à <a href="http://citconf.com/wiki/index.php?title=Douglas_Squirrel" target="_blank">douglas</a>.
</li>
<li>Session sur l&#8217;intégration et le déploiement continu (avec le cas de <a href="http://cruisecontrol.sourceforge.net/" target="_blank">cruise control</a>). Il y a notamment été question de chaine de déploiement dont voici un exemple typique dans le cas d&#8217;une mise en production : [gestionnaire de sources] : intégration continue -> tests d&#8217;intégration -> (&#8230;) -> tests de performance  : [environnement de production]. Sans le déploiement continu, cette chaine de développement existe déjà : c&#8217;est le processus organisationnel dont les étapes sont des opérations manuelles.<br />
Les questions que nous sommes amenés à nous poser dans ce type d&#8217;automatisation sont : Mais que faire si une étape échoue ? L&#8217;ignorer et passer à l&#8217;étape suivante ?<br />
Les étapes de la chaine peuvent dépendre des changements (petits ou gros), particulièrement si l&#8217;execution de la chaine complète prend beaucoup de temps.<br />
L&#8217;execution de 2 chaines en parallèle pourrait soulever certains problèmes si une étape a besoin d&#8217;un environnement dédié (exemple : tests de performances).</li>
<li>Session sur les tests unitaires avancés. L&#8217;un des participants nous a parlé des nouvelles fonctionnalités de <a href="http://www.junit.org/" target="_blank">JUnit</a> ajoutées depuis la version 4.4 (la dernière à ce jour étant la version 4.7). Il y a été question des annotations <i>Theory</i>, <i>Theories</i>, <i>DataPoint</i>, <i>DataPoints</i> et <i>Rule</i>. C&#8217;est très intéressant et il faudra que je regarde cela de plus près afin de le mettre en oeuvre pour <a href="http://www.jnode.org" target="_blank">JNode</a> si c&#8217;est utile.
</li>
<li>Session sur le <i><a href="http://fr.wikipedia.org/wiki/Cloud_computing" target="_blank">cloud computing</a></i>, les environnements distribués ou virtualisés. <a href="http://www.jetbrains.com/teamcity/" target="_blank">Teamcity</a> est un logiciel de build basé sur une architecture serveur + agents/esclaves. Déplacer ces 2 éléments vers une architecture de type <i><a href="http://fr.wikipedia.org/wiki/Cloud_computing" target="_blank">cloud computing</a></i> présente les avantages suivants :
<ul>
<li>diminution du coût de maintenance</li>
<li>optimisation du temps d&#8217;utilisation du processeur</li>
<li>meilleur gestion des pics de charge</li>
</ul>
</li>
<p>Mais cette architecture soulève d&#8217;autres problématiques :</p>
<ul>
<li>Les performances de la connection réseau
<li>
<li>Dans le domaine de la banque / finance : gestion de la sécurité et de la confidentialité des données</li>
<li>Gestion des environnements personnalisés (notamment matériels spécifiques) et leur maintenance</li>
<li>Gestion des temps d&#8217;indisponibilité</li>
<li>Restrictions sur les adresses <a href="http://fr.wikipedia.org/wiki/Adresse_IP" target="_blank">IP</a></li>
</ul>
<p>Ensuite, j&#8217;ai assisté à une présentation d&#8217;<a href="http://www.openqrm.com/" target="_blank">openQRM</a>, un serveur web qui permet de gérer un parc de machines virtuelles tournant sous différentes technologies de virtualisation telles que <a href="http://www.xen.org/" target="_blank">xen</a>, <a href="http://www.linux-kvm.org/page/Main_Page" target="_blank">kvm</a> et <a href="http://www.vmware.com/fr/" target="_blank">vmware</a>. Il gère aussi des fonctionnalités comme le <a href="http://fr.wikipedia.org/wiki/Preboot_Execution_Environment" target="_blank">démarrage depuis le réseau</a> (en anglais <i>boot pxe</i>) et les images (+ paquets optionnels) des machines virtuelles. Il faudra que j&#8217;étudie ça de plus près pour voir si ça pourrait être utile pour <a href="http://www.jnode.org" target="_blank">JNode</a> (il faudrait alors développer un plugin <a href="http://www.openqrm.com/" target="_blank">openQRM</a> pour gérer les plugins <a href="http://www.jnode.org" target="_blank">JNode</a>).
</li>
<li>Session sur les tests d&#8217;acceptation narratifs :
<ul>
<li><a href="http://studios.thoughtworks.com/agile-test-automation" target="_blank">Twist</a>, un logiciel commercial basé sur <a href="http://www.eclipse.org/" target="_blank">eclipse</a> et <a href="http://seleniumhq.org/" target="_blank">selenium</a> permet d&#8217;exprimer les tests sous forme de phrases compréhensibles par l&#8217;utilisateur. Ces tests sont enregistrés dans un simple fichier texte mais avec un certain formalisme. Il est également possible d&#8217;y ajouter des jeux de données sous forme de tables. Bien sûr, les vrais tests ne pas sont implémentés dans ce fichier mais l&#8217;environnement de développement de <a href="http://studios.thoughtworks.com/agile-test-automation" target="_blank">Twist</a> s&#8217;assure que celui-ci et les classes java les implémentant sont bien synchronisés.</li>
<li><a href="http://fitnesse.org/" target="_blank">FitNess</a> est un logiciel libre basé sur <a href="http://fit.c2.com/" target="_blank">Fit</a>, un framework pour les tests d&#8217;acceptation. Il permet d&#8217;exprimer les tests sous forme de phrases et dans une syntaxe de type <a href="http://fr.wikipedia.org/wiki/Wiki" target="_blank">wiki</a>.</li>
</li>
</ul>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/citconf.com\/wiki\/index.php?title=Main_Page#CITCON_Europe_2009_Paris","http:\/\/dedibox.mathieu-bolla.com\/citcon-europe-2009\/grand-3.html","http:\/\/citconf.com\/wiki\/index.php?title=HudsonAndOtherPlugins","http:\/\/citconf.com\/wiki\/index.php?title=Douglas_Squirrel","https:\/\/hudson.dev.java.net\/","https:\/\/hudson.dev.java.net\/","http:\/\/www.kohsuke.org\/","https:\/\/hudson.dev.java.net\/","mailto:dev@hudson.dev.java.net","http:\/\/citconf.com\/wiki\/index.php?title=Douglas_Squirrel","http:\/\/cruisecontrol.sourceforge.net\/","http:\/\/www.junit.org\/","http:\/\/www.jnode.org","http:\/\/fr.wikipedia.org\/wiki\/Cloud_computing","http:\/\/www.jetbrains.com\/teamcity\/","http:\/\/fr.wikipedia.org\/wiki\/Cloud_computing","http:\/\/fr.wikipedia.org\/wiki\/Adresse_IP","http:\/\/www.openqrm.com\/","http:\/\/www.xen.org\/","http:\/\/www.linux-kvm.org\/page\/Main_Page","http:\/\/www.vmware.com\/fr\/","http:\/\/fr.wikipedia.org\/wiki\/Preboot_Execution_Environment","http:\/\/www.jnode.org","http:\/\/www.openqrm.com\/","http:\/\/www.jnode.org","http:\/\/studios.thoughtworks.com\/agile-test-automation","http:\/\/www.eclipse.org\/","http:\/\/seleniumhq.org\/","http:\/\/studios.thoughtworks.com\/agile-test-automation","http:\/\/fitnesse.org\/","http:\/\/fit.c2.com\/","http:\/\/fr.wikipedia.org\/wiki\/Wiki"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD05MTkmYW1wO2xhbmd1YWdlPWZyPHdwdGI%2BQ0lUQ09OIEV1cm9wZSAyMDA5IFBhcmlzPHdwdGI%2BaHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZzx3cHRiPkxlIGJsb2cgZGUgRmFiaWVuIERVTUlOWQ%3D%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=919&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paris JUG &#8211; Soirée qualité du logiciel</title>
		<link>http://www.duminy.fr/blog/?p=918&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=paris-jug-soiree-qualite-du-logiciel</link>
		<comments>http://www.duminy.fr/blog/?p=918&amp;language=fr#comments</comments>
		<pubDate>Sun, 20 Sep 2009 15:18:11 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[Paris JUG]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=918</guid>
		<description><![CDATA[Mardi 15 septembre, j&#8217;ai assisté à la soirée qualité du logiciel du Paris JUG. Romain Pelisse et François Le Droff nous présentent des frameworks open source de contrôle qualité : pour contrôler le code pmd : peut détecter l&#8217;utilisation de float/double au lieu de BigDecimal hammurapi FlexPMD : comme pmd mais pour le language flex [...]]]></description>
			<content:encoded><![CDATA[<p>Mardi 15 septembre, j&#8217;ai assisté à la <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090915">soirée qualité du logiciel</a> du <a href="http://www.parisjug.org/">Paris JUG</a>.</p>
<p><a href="http://belaran.eu/">Romain Pelisse</a> et <a href="http://www.jroller.com/francoisledroff/">François Le Droff</a> nous présentent des frameworks open source de contrôle qualité :</p>
<ul>
<li>pour contrôler le code
<ul>
<li><a href="http://pmd.sourceforge.net/">pmd</a> : peut détecter l&#8217;utilisation de float/double au lieu de BigDecimal</li>
<li><a href="http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/products/hammurapi/index.html">hammurapi</a></li>
<li><a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD">FlexPMD</a> : comme pmd mais pour le language <a href="http://www.adobe.com/fr/products/flex/">flex</a></li>
</ul>
</li>
<li>pour détecter les copier/coller
<ul>
<li><a href="http://pmd.sourceforge.net/cpd.html">pmd-cpd</a></li>
<li><a href="http://www.redhillconsulting.com.au/products/simian/">simian</a></li>
<li><a href="http://condenser.sourceforge.net/">condenser</a></li>
</ul>
</li>
<li>pour analyser le code
<ul>
<li><a href="http://clarkware.com/software/JDepend.html">JDepend</a></li>
<li><a href="http://www.kclee.de/clemens/java/javancss/">JavaNCSS</a>, à remplacer de préférence par <a href="http://sonar.codehaus.org/">Sonar</a> squid qui est une optimisation de JavaNCSS mieux maintenue et intégrée dans Sonar.</li>
<li><a href="http://cap.xore.de/">CAP</a> (Code Analysis Plugin) pour <a href="http://www.eclipse.org">eclipse</a></li>
</ul>
</li>
<li>pour la gestion de la qualité (par agrégation et historisation)
<ul>
<li><a href="http://xradar.sourceforge.net/">XRadar</a> : agrégation de métriques, historisation de la qualité</li>
<li><a href="http://sonar.codehaus.org/">Sonar</a> : <a href="http://sonar.codehaus.org/author/oliviergaudin/">Olivier Gaudin</a> nous parle de la version 2.0, attendue pour la fin de l&#8217;année, et annonce que celle-ci intégrera des métriques sur le design</li>
</ul>
</li>
</ul>
<p>Ensuite, <a href="http://www.parisjug.org/xwiki/bin/view/Speaker/BrachfeldFrederic">Frederic Brachfeld</a> nous présente <a href="http://www.hello2morrow.com/products/sonarj">SonarJ</a> community edition, un logiciel qui permet de définir le découpage logique d&#8217;une architecture en couches et tranches. Il vérifie que des dépendences interdites ne sont pas faites. L&#8217;analyse se fait à partir du bytecode java ou du code source, sachant que le code source permet de fournir plus d&#8217;informations. Les jsp sont également gérées à condition d&#8217;avoir les classes compilées. SonarJ peut être utilisé en version standalone ou sous forme de plugin <a href="http://www.eclipse.org">eclipse</a> avec vue en temps réel des violations d&#8217;architecture. Un autre avantage de SonarJ est qu&#8217;il permet de voir la structure d&#8217;un logiciel que l&#8217;on ne connait pas.</p>
<p>Pour terminer, <a href="http://www.parisjug.org/xwiki/bin/view/Speaker/BellingardFabrice">Fabrice Bellingard</a> nous présente <a href="http://www.squale.org/">Squale</a> (Software QUALity Enhancement), une plateforme de qualimétrie open source, basée sur la notion d&#8217;audit et qui propose un plan d&#8217;action pour améliorer la note sur la qualité du logiciel analysé. Le plan proposé indique comment obtenir un maximum d&#8217;amélioration de la qualité tout en faisant un effort minimum. Même si la notion d&#8217;effort est quelque chose d&#8217;empirique, squale est un projet de recherche qui est en production dans l&#8217;industrie sur plus de 100 applications. Squale fait partie du <a href="http://www.gt-logiciel-libre.org/">groupe thématique « logiciel libre »</a> dans le <a href="http://www.systematic-paris-region.org/">pôle de compétitivité System@tic</a>. <a href="http://www.qualixo.com/">Qualixo</a>, le créateur de squale, participe aux groupes de travail du <a href="http://www.clubqualimetrie.fr">club qualimétrie</a> pour définir le standard <a href="http://fr.wikipedia.org/wiki/ISO_9126">iso 9126</a>, relatif à la mesure de la qualité d&#8217;un logiciel.</p>
<p>Grâce à cette soirée j&#8217;ai encore découvert de nouveaux logiciels open source que je ne connaissais pas, notamment ceux qui contrôlent la qualité du design d&#8217;un logiciel. Il faudrait que je les teste pour voir s&#8217;ils pourraient être utiles pour <a href="http://www.jnode.org">JNode</a>.</p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/www.parisjug.org\/xwiki\/bin\/view\/Meeting\/20090915","http:\/\/www.parisjug.org\/","http:\/\/belaran.eu\/","http:\/\/www.jroller.com\/francoisledroff\/","http:\/\/pmd.sourceforge.net\/","http:\/\/www.hammurapi.biz\/hammurapi-biz\/ef\/xmenu\/hammurapi-group\/products\/hammurapi\/index.html","http:\/\/opensource.adobe.com\/wiki\/display\/flexpmd\/FlexPMD","http:\/\/www.adobe.com\/fr\/products\/flex\/","http:\/\/pmd.sourceforge.net\/cpd.html","http:\/\/www.redhillconsulting.com.au\/products\/simian\/","http:\/\/condenser.sourceforge.net\/","http:\/\/clarkware.com\/software\/JDepend.html","http:\/\/www.kclee.de\/clemens\/java\/javancss\/","http:\/\/sonar.codehaus.org\/","http:\/\/cap.xore.de\/","http:\/\/www.eclipse.org","http:\/\/xradar.sourceforge.net\/","http:\/\/sonar.codehaus.org\/","http:\/\/sonar.codehaus.org\/author\/oliviergaudin\/","http:\/\/www.parisjug.org\/xwiki\/bin\/view\/Speaker\/BrachfeldFrederic","http:\/\/www.hello2morrow.com\/products\/sonarj","http:\/\/www.eclipse.org","http:\/\/www.parisjug.org\/xwiki\/bin\/view\/Speaker\/BellingardFabrice","http:\/\/www.squale.org\/","http:\/\/www.gt-logiciel-libre.org\/","http:\/\/www.systematic-paris-region.org\/","http:\/\/www.qualixo.com\/","http:\/\/www.clubqualimetrie.fr","http:\/\/fr.wikipedia.org\/wiki\/ISO_9126","http:\/\/www.jnode.org"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD05MTgmYW1wO2xhbmd1YWdlPWZyPHdwdGI%2BUGFyaXMgSlVHICYjODIxMTsgU29pcsOpZSBxdWFsaXTDqSBkdSBsb2dpY2llbDx3cHRiPmh0dHA6Ly93d3cuZHVtaW55LmZyL2Jsb2c8d3B0Yj5MZSBibG9nIGRlIEZhYmllbiBEVU1JTlk%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=918&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dates de FOSDEM 2010</title>
		<link>http://www.duminy.fr/blog/?p=906&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dates-de-fosdem-2010</link>
		<comments>http://www.duminy.fr/blog/?p=906&amp;language=fr#comments</comments>
		<pubDate>Fri, 31 Jul 2009 16:34:41 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[FOSDEM 2010]]></category>
		<category><![CDATA[JNode]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=906</guid>
		<description><![CDATA[Les dates de FOSDEM 2010 ont été annoncées plus tôt que les précédents FOSDEMs : ce sera le 6 et 7 février 2010. J&#8217;espère que nous serons là et, si les choses vont comme je le veux, je ferais une démonstration de JNode tournant sur mon eeePC var wordpress_toolbar_urls = ["http:\/\/www.fosdem.org\/2010\/","http:\/\/archives.fosdem.org\/","http:\/\/www.jnode.org"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw [...]]]></description>
			<content:encoded><![CDATA[<p>Les dates de <a href="http://www.fosdem.org/2010/" target="_blank">FOSDEM 2010</a> ont été annoncées plus tôt que les <a href="http://archives.fosdem.org/" target="_blank">précédents FOSDEMs</a> : ce sera le 6 et 7 février 2010.<br />
J&#8217;espère que nous serons là et, si les choses vont comme je le veux, je ferais une démonstration de <a href="http://www.jnode.org" target="_blank">JNode</a> tournant sur mon eeePC <img src='http://www.duminy.fr/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/www.fosdem.org\/2010\/","http:\/\/archives.fosdem.org\/","http:\/\/www.jnode.org"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD05MDYmYW1wO2xhbmd1YWdlPWZyPHdwdGI%2BRGF0ZXMgZGUgRk9TREVNIDIwMTA8d3B0Yj5odHRwOi8vd3d3LmR1bWlueS5mci9ibG9nPHdwdGI%2BTGUgYmxvZyBkZSBGYWJpZW4gRFVNSU5Z";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=906&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RMLL 2009 : firefox 3.5, HTML 5, finance et création libre</title>
		<link>http://www.duminy.fr/blog/?p=365&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rmll-2009-firefox-3-5-html-5-finance-et-creation-libre</link>
		<comments>http://www.duminy.fr/blog/?p=365&amp;language=fr#comments</comments>
		<pubDate>Mon, 27 Jul 2009 16:54:22 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[LSM 2009]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=365</guid>
		<description><![CDATA[Durant la RMLL 2009, j&#8217;ai assisté à la conférence intitulée Firefox 3.5, HTML 5 et au-delà. Firefox 3.5, grace à l&#8217;implication de l&#8217;équipe dans la normalisation, supporte déjà la plupart des fonctionnalités d&#8217;HTML 5, qui n&#8217;est pas encore finalisé. Ainsi, Firefox supporte la balise video pour inclure une vidéo dans une page web. Ensuite, pour [...]]]></description>
			<content:encoded><![CDATA[<p>Durant la <a href="http://2009.rmll.info/?lang=fr" title="RMLL 2009" target="_blank">RMLL 2009</a>, j&#8217;ai assisté à la conférence intitulée <a href="http://2009.rmll.info/Firefox-3-5-HTML-5-et-au-dela.html?lang=fr" target="_blank">Firefox 3.5, HTML 5 et au-delà</a>.</p>
<p><a href="http://www.mozilla-europe.org/fr/firefox/3.5/releasenotes/" target="_blank">Firefox 3.5</a>, grace à l&#8217;implication de l&#8217;équipe dans la normalisation, supporte déjà la plupart des fonctionnalités d&#8217;<a href="http://fr.wikipedia.org/wiki/HTML_5" target="_blank">HTML 5</a>, qui n&#8217;est pas encore finalisé. Ainsi, Firefox supporte la balise <i>video</i> pour inclure une vidéo dans une page web. Ensuite, pour démontrer la rapidité du nouveau moteur javascript <a href="https://wiki.mozilla.org/JavaScript:TraceMonkey" target="_blank">TraceMonkey</a>, nous avons vu des <a href="http://people.mozilla.com/~prouget/demos/DynamicContentInjection/play.xhtml" target="_blank">démonstrations</a> de traitement de vidéos en temps « réel » (oui, en javascript !) : reconnaissance de visage, vidéo qui tourne sur elle-même, <a href="http://fr.wikipedia.org/wiki/Incrustation" target="_target">incrustation d&#8217;une image sur un fond bleu</a> &#8230; Impressionnant !</p>
<p>Ensuite, j&#8217;ai assisté à la conférence intitulée <a href="http://2009.rmll.info/Finance-et-creation-libre.html?lang=fr" target="_blank">Finance et création libre</a>.</p>
<p><a href="http://mammique.net/" target="_blank">Camille Harang</a> nous parle de <a href="http://yooook.net/" target="_blank">yooook.net</a>, la plateforme innovante qu&#8217;il a créé afin de remunérer les auteurs de tout contenu numérique ou numérisable (logiciel, vidéo, archive, photos, musique &#8230;). Le concept est difficile à expliquer (je ne suis pas sûr d&#8217;avoir tout compris moi-même) mais c&#8217;est une sorte de combinaison subtile entre les licenses libres (permettant l&#8217;utilisation commerciale ou non), le partage de fichiers et les anciens modèles économiques avant l&#8217;arrivée d&#8217;internet.</p>
<p>Plutôt que de détailler le concept, je vous invite à aller voir la <a href="http://yooook.net/brochure_yooook_A4_150dpi.png" target="_blank">brochure explicative</a>. Si cela ne suffit pas, regardez <a href="http://yooook.net/tutorial/" target="_blank">le tutoriel et son exemple</a>.</p>
<p>Voila ! C&#8217;est le dernier article d&#8217;une <a href="http://www.duminy.fr/blog/?cat=14&#038;language=fr" target="_blank">longue série sur la RMLL 2009</a>. Certains articles pourraient être utiles pour <a href="http://www.jnode.org" target="_blank">JNode</a>. En tout cas, c&#8217;était vraiment une très belle réunion, avec beaucoup d&#8217;informations intéressantes et quelques contacts que je compte garder. Je compte bien aller à la RMLL 2010 (ce sera à Bordeaux) et, si les choses vont comme je le veux, je ferais une présentation et une démonstration de <a href="http://www.jnode.org" target="_blank">JNode</a>.</p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/2009.rmll.info\/?lang=fr","http:\/\/2009.rmll.info\/Firefox-3-5-HTML-5-et-au-dela.html?lang=fr","http:\/\/www.mozilla-europe.org\/fr\/firefox\/3.5\/releasenotes\/","http:\/\/fr.wikipedia.org\/wiki\/HTML_5","https:\/\/wiki.mozilla.org\/JavaScript:TraceMonkey","http:\/\/people.mozilla.com\/~prouget\/demos\/DynamicContentInjection\/play.xhtml","http:\/\/fr.wikipedia.org\/wiki\/Incrustation","http:\/\/2009.rmll.info\/Finance-et-creation-libre.html?lang=fr","http:\/\/mammique.net\/","http:\/\/yooook.net\/","http:\/\/yooook.net\/brochure_yooook_A4_150dpi.png","http:\/\/yooook.net\/tutorial\/","http:\/\/www.jnode.org","http:\/\/www.jnode.org"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD0zNjUmYW1wO2xhbmd1YWdlPWZyPHdwdGI%2BUk1MTCAyMDA5IDogZmlyZWZveCAzLjUsIEhUTUwgNSwgZmluYW5jZSBldCBjcsOpYXRpb24gbGlicmU8d3B0Yj5odHRwOi8vd3d3LmR1bWlueS5mci9ibG9nPHdwdGI%2BTGUgYmxvZyBkZSBGYWJpZW4gRFVNSU5Z";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=365&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RMLL 2009 : conférence de Richard Stallman</title>
		<link>http://www.duminy.fr/blog/?p=336&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rmll-2009-conference-de-richard-stallman</link>
		<comments>http://www.duminy.fr/blog/?p=336&amp;language=fr#comments</comments>
		<pubDate>Mon, 27 Jul 2009 10:52:51 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[LSM 2009]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=336</guid>
		<description><![CDATA[Durant la RMLL 2009, j&#8217;ai assisté à la conférence de Richard Stallman. J&#8217;ai malheureusement manqué les 30 premières minutes. Lorsque je suis arrivé, j&#8217;ai eu la surprise de constater que Richard Stallman (voir aussi son site personnel) faisait sa conférence en français. Après plus de 2 heures à l&#8217;écouter, j&#8217;ai pu constater qu&#8217;il parle bien [...]]]></description>
			<content:encoded><![CDATA[<p>Durant la <a href="http://2009.rmll.info/?lang=fr" title="RMLL 2009" target="_blank">RMLL 2009</a>, j&#8217;ai assisté à la <a href="http://2009.rmll.info/Conference-Richard-Stallman.html?lang=fr" target="_blank">conférence de Richard Stallman</a>.</p>
<p>J&#8217;ai malheureusement manqué les 30 premières minutes. Lorsque je suis arrivé, j&#8217;ai eu la surprise de constater que <a href="http://fr.wikipedia.org/wiki/Richard_Stallman" target="_blank">Richard Stallman</a> (voir aussi <a href="http://stallman.org/" target="_blank">son site personnel</a>) faisait sa conférence en français. Après plus de 2 heures à l&#8217;écouter, j&#8217;ai pu constater qu&#8217;il parle bien le français.</p>
<p>Il parle des 4 libertés (utiliser, étudier et modifier, distribuer des copies exactes, distribuer des versions modifiées d&#8217;un logiciel), du piratage informatique, qu&#8217;il compare aux pirates maritimes puis de la naissance de <a href="http://www.gnu.org/home.fr.html" target="_blank">GNU</a> et du noyau <a href="http://fr.wikipedia.org/wiki/Linux" target="_blank">Linux</a> (sous <a href="http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" target="_blank">license GNU</a>).</p>
<p>&laquo;&nbsp;<a href="http://www.gnu.org/home.fr.html" target="_blank">GNU</a> n&#8217;est pas unix, <a href="http://www.gnu.org/home.fr.html" target="_blank">GNU</a> est linux !&nbsp;&raquo; clame-il. Puis il nous donne quelques liens vers des sites web :</p>
<ul>
<li><a href="http://fsf.org" target="_blank">Fondation pour le logiciel libre</a> (FSF, Free Software Foundation)</li>
<li><a href="http://www.fsfe.org/index.fr.html" target="_blank">Fondation pour le logiciel libre en Europe</a></li>
<li><a href="http://www.fsffrance.org/index.fr.html" target="_blank">Fondation pour le logiciel libre en France</a></li>
<li><a href="http://mecenat-global.org/index-fr.html" target="_blank">Mecenat Global</a></li>
<li><a href="http://www.gnu.org/home.fr.html" target="_blank">www.gnu.org</a></li>
</ul>
<p>Le terme &#8216;open source&#8217; a été inventé en 1998 pour désigner le logiciel libre mais sans l&#8217;aspect éthique : il faut utiliser le terme &#8216;logiciel libre&#8217; (free software) et non pas &#8216;open source&#8217;.</p>
<p>Ensuite, il se déguise en <a href="http://stallman.org/saint.html" target="_blank">Saint IGNUcius</a> (<a href="http://stallman.org/saintignucius.jpg" target="_blank">sa photo</a>), de l&#8217;église <a href="http://fr.wikipedia.org/wiki/Emacs" target="_blank">Emacs</a>, pour prêcher pour le logiciel libre. Pour en savoir plus sur Saint IGNUcius, allez-voir <a href="http://uncyclopedia.wikia.com/wiki/St._Ignucius" target="_blank">son site sur uncyclopedia</a> : c&#8217;est évidemment de l&#8217;humour ! J&#8217;imagine que certaines personnes ne vont pas apprécier ce genre d&#8217;humour. Personnellement, je trouve cela drôle.</p>
<p>Pour terminer, il fait une vente aux enchères de sa mascotte <a href="http://www.gnu.org/home.fr.html" target="_blank">GNU</a>. Elle a été vendue à 200 €.</p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/2009.rmll.info\/?lang=fr","http:\/\/2009.rmll.info\/Conference-Richard-Stallman.html?lang=fr","http:\/\/fr.wikipedia.org\/wiki\/Richard_Stallman","http:\/\/stallman.org\/","http:\/\/www.gnu.org\/home.fr.html","http:\/\/fr.wikipedia.org\/wiki\/Linux","http:\/\/fr.wikipedia.org\/wiki\/Licence_publique_g%C3%A9n%C3%A9rale_GNU","http:\/\/www.gnu.org\/home.fr.html","http:\/\/www.gnu.org\/home.fr.html","http:\/\/fsf.org","http:\/\/www.fsfe.org\/index.fr.html","http:\/\/www.fsffrance.org\/index.fr.html","http:\/\/mecenat-global.org\/index-fr.html","http:\/\/www.gnu.org\/home.fr.html","http:\/\/stallman.org\/saint.html","http:\/\/stallman.org\/saintignucius.jpg","http:\/\/fr.wikipedia.org\/wiki\/Emacs","http:\/\/uncyclopedia.wikia.com\/wiki\/St._Ignucius","http:\/\/www.gnu.org\/home.fr.html"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD0zMzYmYW1wO2xhbmd1YWdlPWZyPHdwdGI%2BUk1MTCAyMDA5IDogY29uZsOpcmVuY2UgZGUgUmljaGFyZCBTdGFsbG1hbjx3cHRiPmh0dHA6Ly93d3cuZHVtaW55LmZyL2Jsb2c8d3B0Yj5MZSBibG9nIGRlIEZhYmllbiBEVU1JTlk%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=336&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RMLL 2009 : Acceleo et Eclipse Modeling</title>
		<link>http://www.duminy.fr/blog/?p=290&amp;language=fr#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rmll-2009-acceleo-et-eclipse-modeling</link>
		<comments>http://www.duminy.fr/blog/?p=290&amp;language=fr#comments</comments>
		<pubDate>Sun, 26 Jul 2009 17:58:48 +0000</pubDate>
		<dc:creator>fabien</dc:creator>
				<category><![CDATA[LSM 2009]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.duminy.fr/blog/?p=290</guid>
		<description><![CDATA[Durant la RMLL 2009, j&#8217;ai assisté à la conférence intitulée Acceleo et Eclipse Modeling. Obeo, entreprise née à Nantes en 2005 sous l&#8217;initiative de 3 associés, est rentable depuis le début. A la demande de ses clients, elle réalise des modèles de données et des générateurs de code avec Acceleo (créé par les fondateurs d&#8217;Obeo). [...]]]></description>
			<content:encoded><![CDATA[<p>Durant la <a href="http://2009.rmll.info/?lang=fr" title="RMLL 2009" target="_blank">RMLL 2009</a>, j&#8217;ai assisté à la conférence intitulée <a href="http://2009.rmll.info/MDA-Acceleo-and-Wiss.html?lang=fr" target="_blank">Acceleo et Eclipse Modeling</a>.</p>
<p><a href="http://www.obeo.fr/?&#038;lang=fr" target="_blank">Obeo</a>, entreprise née à Nantes en 2005 sous l&#8217;initiative de 3 associés, est rentable depuis le début. A la demande de ses clients, elle réalise des modèles de données et des générateurs de code avec <a href="http://acceleo.org/pages/accueil/fr" target="_blank">Acceleo</a> (créé par les fondateurs d&#8217;<a href="http://www.obeo.fr/?&#038;lang=fr" target="_blank">Obeo</a>).</p>
<p><a href="http://acceleo.org/pages/accueil/fr" target="_blank">Acceleo</a> fournit un environnement de travail pour créer des générateurs de code et les executer. Il définit une chaine d&#8217;execution commune à tous les générateurs de code, qu&#8217;ils soient commerciaux ou libres. On lui fournit en entrée un modèle UML ou autre (exemples : enchainement d&#8217;écrans, des droits, des drivers&#8230;) et le moteur execute le générateur de code pour produire, par exemple, du code source ou des fichiers de configuration en sortie.</p>
<p>Initialement sous licence <a href="http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" target="_blank">GPL</a>, le projet est passé sous licence <a href="http://www.eclipse.org/legal/epl-v10.html" target="_blank">EPL</a> afin d&#8217;être intégré dans <a href="http://www.eclipse.org/" target="_blank">eclipse</a>.</p>
<p><a href="http://acceleo.org/pages/accueil/fr" target="_blank">Acceleo</a> permet d&#8217;utiliser une architecture dirigée par les modèles (<a href="http://fr.wikipedia.org/wiki/Model_driven_architecture" target="_blank">MDA</a>), ce qui simplifie les développements, produit une documentation pérenne et facilite la compréhension du code source.</p>
<p>Voici quelques caractéristiques d&#8217;<a href="http://acceleo.org/pages/accueil/fr" target="_blank">Acceleo</a> :</p>
<ul>
<li>complétion de code</li>
<li>utilisation d&#8217;<a href="http://wiki.eclipse.org/index.php/EMF_Compare" target="_blank">EMF compare</a> pour comparer 2 versions d&#8217;un modèle</li>
<li>génération incrémentale de code</li>
<li>préservation du code déjà développé</li>
<li>pour créer le modèle : on peut utiliser <a href="http://www.eclipse.org/modeling/emf/" target="_blank">EMF</a> ou prendre des formats existants (par exemple xmi pour les modèles UML)</li>
</ul>
<p>S&#8217;il existe déjà un générateur de code pour un domaine et un langage donnés, alors il n&#8217;est pas nécessaire d&#8217;en réécrire un : une <a href="http://www.acceleo.org/pages/ferme-de-modules" target="_blank">communauté de partage de générateurs de code libres</a> se met en place pour faciliter la réutilisation. En ce qui concerne Java, on y trouve un générateur de code pour struts, pour les tests unitaires et pour le code d&#8217;accès aux bases de données. Il en existe aussi pour C, PHP et Python.</p>
<p><a href="http://acceleo.org/pages/accueil/fr" target="_blank">Acceleo</a>  peut être embarqué indépendamment d&#8217;eclipse et, à terme, pourrait devenir l&#8217;implémentation de référence de <a href="http://fr.wikipedia.org/wiki/Object_Management_Group" target="_blank">OMG</a> <a href="http://wiki.eclipse.org/M2T/MTL_Relaunch_Plan" target="_blank">MTL</a>. En effet, c&#8217;est le premier projet open source à l&#8217;implementer et il est soutenu par la <a href="http://en.wikipedia.org/wiki/Eclipse_Foundation" target="_blank">fondation eclipse</a>.</p>
<p>Je pense qu&#8217;<a href="http://acceleo.org/pages/accueil/fr" target="_blank">Acceleo</a> pourrait être utilisé dans <a href="http://www.jnode.org" target="_blank">JNode</a> (je suis contributeur depuis plusieurs années) pour générer le squelette d&#8217;un nouveau driver ou d&#8217;un plugin : cela permettrait aux nouveaux arrivants d&#8217;entrer plus facilement dans le code (cette démarche est applicable aux autres projets open source).</p>
<script type="text/javascript">var wordpress_toolbar_urls = ["http:\/\/2009.rmll.info\/?lang=fr","http:\/\/2009.rmll.info\/MDA-Acceleo-and-Wiss.html?lang=fr","http:\/\/www.obeo.fr\/?&#038;lang=fr","http:\/\/acceleo.org\/pages\/accueil\/fr","http:\/\/www.obeo.fr\/?&#038;lang=fr","http:\/\/acceleo.org\/pages\/accueil\/fr","http:\/\/fr.wikipedia.org\/wiki\/Licence_publique_g%C3%A9n%C3%A9rale_GNU","http:\/\/www.eclipse.org\/legal\/epl-v10.html","http:\/\/www.eclipse.org\/","http:\/\/acceleo.org\/pages\/accueil\/fr","http:\/\/fr.wikipedia.org\/wiki\/Model_driven_architecture","http:\/\/acceleo.org\/pages\/accueil\/fr","http:\/\/wiki.eclipse.org\/index.php\/EMF_Compare","http:\/\/www.eclipse.org\/modeling\/emf\/","http:\/\/www.acceleo.org\/pages\/ferme-de-modules","http:\/\/acceleo.org\/pages\/accueil\/fr","http:\/\/fr.wikipedia.org\/wiki\/Object_Management_Group","http:\/\/wiki.eclipse.org\/M2T\/MTL_Relaunch_Plan","http:\/\/en.wikipedia.org\/wiki\/Eclipse_Foundation","http:\/\/acceleo.org\/pages\/accueil\/fr","http:\/\/www.jnode.org"];var wordpress_toolbar_url = "http://www.duminy.fr/blog/wp-content/plugins/wordpress-toolbar/toolbar.php";var wordpress_toolbar_oinw = "oinw";var wordpress_toolbar_hash = "aHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZy8%2FcD0yOTAmYW1wO2xhbmd1YWdlPWZyPHdwdGI%2BUk1MTCAyMDA5IDogQWNjZWxlbyBldCBFY2xpcHNlIE1vZGVsaW5nPHdwdGI%2BaHR0cDovL3d3dy5kdW1pbnkuZnIvYmxvZzx3cHRiPkxlIGJsb2cgZGUgRmFiaWVuIERVTUlOWQ%3D%3D";</script>]]></content:encoded>
			<wfw:commentRss>http://www.duminy.fr/blog/?feed=rss2&amp;p=290&amp;language=fr</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
