<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5962517211271527432</id><updated>2011-07-30T12:23:49.466-07:00</updated><category term='sonar'/><category term='io'/><category term='visualization'/><category term='pagespeed'/><category term='optimisation'/><category term='agile'/><category term='java'/><category term='python'/><category term='ksar'/><category term='valtech'/><category term='velocity2009'/><category term='r'/><category term='performance'/><category term='language'/><category term='statistics'/><category term='redmine'/><category term='monitoring'/><category term='yslow'/><category term='testing'/><category term='sar'/><category term='code check'/><category term='curl'/><category term='gae'/><category term='sonar; valtech'/><title type='text'>Claude au pays des 4J</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-1381956826247222841</id><published>2010-05-08T05:02:00.001-07:00</published><updated>2010-05-08T09:13:45.260-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><title type='text'>Changement de fil</title><content type='html'>C'est la fin de ce blog sous Blogspot.&lt;br /&gt;&lt;br /&gt;Il ne s'arrête pas vraiment puisqu'il continue sous Wordpress à cette adresse &lt;a href="http://cfalguiere.wordpress.com/"&gt;http://cfalguiere.wordpress.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Mon nouvel article est &lt;a href="http://cfalguiere.wordpress.com/2010/05/02/des-outils-de-reporting-en-ligne/"&gt;là&lt;/a&gt;.    Tous les agrégateurs n'ayant pas encore été mis à jour, je continue à  poster les liens ici.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pourquoi j'ai changé ? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Je n'ai pas de grief particulier contre Blogspot.&lt;br /&gt;&lt;br /&gt;C'est simple à prendre en main donc pratique quand on se lance. Un inconvénient majeur pour moi est que les reformatages automatiques de texte ne permettent pas de mettre du code dans les posts, en particulier dès qu'il y du XML. Or vu la nature du blog, c'est un peu pénible. J'ai contourné le problème avec des images et puis au bout d'un moment j'ai cherché autre chose.&lt;br /&gt;&lt;br /&gt;Une autre raison de passer sous Wordpress est que je participe aussi à deux autre blogs, &lt;a href="http://blog.valtech.fr/wordpress/"&gt;Valtech&lt;/a&gt; et &lt;a href="http://jduchess.org/duchess-france/"&gt;Duchess France&lt;/a&gt; et ces blogs sont sous Wordpress. C'est plus cohérent, et ça passe mieux dans les agrégateurs.&lt;br /&gt;&lt;br /&gt;Wordpress est un peu plus compliqué à prendre en main au départ, mais plus puissant.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;18 mois, le temps d'apprendre à marcher ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ce blog a duré environ 18 mois ici de Juin 2008 à début 2010 avec 14  articles, et presque autant de brouillons que je n'ai jamais eu le temps  de finaliser.&lt;br /&gt;&lt;br /&gt;Je continue ailleurs et j'espère que ceux (et celles) qui ont apprécié mes articles me suivront en adaptant leurs bookmarks et leurs flux.&lt;br /&gt;&lt;br /&gt;J'ai repris l'essentiel du contenu dans le nouveau blog.&lt;br /&gt;&lt;a href="http://cfalguiere.wordpress.com/"&gt;http://cfalguiere.wordpress.com/&lt;/a&gt; pour la suite de cette aventure ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-1381956826247222841?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/1381956826247222841/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=1381956826247222841' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1381956826247222841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1381956826247222841'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2010/05/changement-de-fil.html' title='Changement de fil'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-7996057135998177592</id><published>2010-01-31T07:35:00.000-08:00</published><updated>2010-04-10T10:38:51.338-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sonar; valtech'/><title type='text'>Sonar against a non-maven multi-modules project</title><content type='html'>I’ve explained a few monthes ago &lt;a href="http://claude-falguiere.blogspot.com/search/label/sonar"&gt;how to run Sonar against a non-maven project&lt;/a&gt;. &lt;p&gt;The workaround is to create a POM  with an explicit source directory and set the Sonar property sonar.dynamicAnalysis to false.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;What if the project has many source folders ?&lt;br /&gt;&lt;br /&gt;The article is posted &lt;a href="http://cfalguiere.wordpress.com/2010/01/30/sonar-against-a-non-maven-multi-module-project/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-7996057135998177592?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/7996057135998177592/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=7996057135998177592' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/7996057135998177592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/7996057135998177592'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2010/01/sonar-against-non-maven-multi-modules.html' title='Sonar against a non-maven multi-modules project'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-7117174300696652355</id><published>2010-01-17T11:26:00.001-08:00</published><updated>2010-01-24T06:03:58.203-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='pagespeed'/><category scheme='http://www.blogger.com/atom/ns#' term='yslow'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><title type='text'>Retour d'expérience YSlow et Page Speed</title><content type='html'>J'ai beaucoup utilisé YSlow ces temps ci, en particulier parce pour la première fois j'ai reçu des exigences de performance incluant le grade &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;YSlow&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Je ne reviendrai pas sur la présentation de ces deux outils. Il existe de nombreux commentaires listant la mise en oeuvre et décrivant les règles.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://developer.yahoo.com/yslow/"&gt;Yahoo's YSlow&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/intl/fr/speed/page-speed/"&gt;Google's Page Speed&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Je voudrais simplement faire un retour d'expérience sur &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;YSlow&lt;/span&gt; &lt;/span&gt;et &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Page Speed&lt;/span&gt;.  C'est un retour QA plus que développeur, car j'interviens sur un projet dans la phase d'optimisation juste avant les tests de performance.&lt;br /&gt;&lt;br /&gt;Les deux sont des plugins &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt; et s'installent très facilement. Ils apparaissent ensuite comme onglets dans Firebug. Bien sûr, l'utilisation de Firebug implique que l'application tourne sur Firefox. Pour IE, il existe AOL Page Test, que je n'ai pas testé, vu qu'il a obstinément refusé de fonctionner.&lt;br /&gt;&lt;br /&gt;Même s'ils apparaissent très similaires et sont basés en gros sur les mêmes Best Practices, les deux outils ne sont pas positionnés de la même manière.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 102, 0);font-size:130%;" &gt;YSlow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;YSlow&lt;/span&gt; &lt;/span&gt;facilite la communication sur les performances :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le grade général permet d'avoir une appréciation globale du niveau de performance, et par conséquent de communiquer sur l'évolution de ce niveau&lt;/li&gt;&lt;li&gt;Un rapport HTML peut être généré très facilement et diffusé &lt;/li&gt;&lt;li&gt;Ces rapports peuvent aussi être stockés pour comparer les résultats dans le temps&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;YSlow &lt;/span&gt;a permis de déterminer rapidement le besoin de configurer les modules Apache &lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html"&gt;mod_expires&lt;/a&gt; et &lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html"&gt;mod_deflate&lt;/a&gt;.&lt;br /&gt;Une fois cette opération faite &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;YSlow &lt;/span&gt;a permis de vérifier facilement que les dates d'expiration de cache sont maintenant correctes et que les contenus sont compressés.&lt;br /&gt;&lt;br /&gt;En revanche, &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;YSlow &lt;/span&gt;est assez général sur les recommandations. La règle a appliquer est présentée de manière très claire mais elle n'est pas appliquée au cas particulier. La conséquence est qu'il faut plus d'effort pour estimer le gain que l'on peut espérer de la correction et donc motiver une correction rapide.&lt;br /&gt;&lt;br /&gt;C'est là qu'intervient &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Page Speed&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;Page Speed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Page Speed&lt;/span&gt; &lt;/span&gt;fourni un état très complet, des propositions de correction et une évaluation du gain. Je ne suis pas vraiment la cible car je ne développe pas les pages sur ce projet. Il m'a tout de même servi pour plusieurs choses :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Evaluer la minification des JavaScripts : le gain de la minification des JavaScript est de 150Ko par page sur les pages testées et une action pour mettre en place &lt;a href="http://www.dojotoolkit.org/docs/shrinksafe"&gt;Dojo's ShrinkSafe&lt;/a&gt; est "rentable". Or cet outil est disponible mais personne n'a jamais eu le temps d'insérer le script dans le build&lt;/li&gt;&lt;li&gt;inspecter les headers facilement : Les pages sont en HTTPS et les headers ne sont pas disponibles dans &lt;a href="http://www.fiddler2.com/fiddler2/"&gt;Fiddler&lt;/a&gt;. L'onglet resources de &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Page Speed&lt;/span&gt; affiche les headers requête et réponse et le texte ou contenu de chaque resource.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"Smusher" les images : &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;YSlow&lt;/span&gt; fournit aussi ce service mais en passant les URLs des images au site &lt;a href="http://www.smushit.com/"&gt;smushit.com&lt;/a&gt;. Or le site en développement n'est pas accessible depuis Internet. &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Page Speed&lt;/span&gt; génère automatiquement la version "smushée" de chaque image. Cela a permis de traiter rapidement 5 images sur lesquelles il y avait un gain de plus de 1Ko.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Evaluer le CSS : constater que certaines maladresses sur le CSS sont classées "très mauvais" et nécessitent une action.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Avant de conclure, quelques conseils tirés de mon expérience &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;YSlow&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;Les jeux de règles YSlow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;YSlow&lt;/span&gt; &lt;/span&gt;permet de créer des jeux de règles spécifiques. C'est utile lorsque certaines règles ne sont pas applicables :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le support des navigateurs interdit la mise en oeuvre de certaines règles&lt;/li&gt;&lt;li&gt;L'application n'est pas dans un environnement permettant l'évaluation de la règle. C'est le cas en particulier de la règle "Use a CDN"souvent difficile à vérifier en développement  (un CDN est un Content Delivery Network, c'est à dire un service de cache tel qu'&lt;a href="http://www.akamai.com/"&gt;Akamaï&lt;/a&gt; ou &lt;a href="http://uk.limelightnetworks.com/index.php"&gt;Limelight&lt;/a&gt;) &lt;/li&gt;&lt;/ul&gt;Les jeux de règles sont accessibles via le bouton Edit à côté du nom de règle.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Une fois définies les règles via les cases à cocher, sauvez le ruleset. Il apparaitra dans les Custom Sets sur la gauche&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(204, 0, 0);"&gt;Redémarrez Firefox !&lt;/span&gt; : les mises à jour ne sont sauvées qu'au moment de l'arrêt de Firefox. J'ai refait le ruleset 2 ou 3 fois suite à des plantages Firefox ;-)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d91qggHlEM/S1OMUBA-f2I/AAAAAAAAAHk/Alh6-TxELNs/s1600-h/yslow-ruleset2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 106px;" src="http://4.bp.blogspot.com/_6d91qggHlEM/S1OMUBA-f2I/AAAAAAAAAHk/Alh6-TxELNs/s400/yslow-ruleset2.png" alt="" id="BLOGGER_PHOTO_ID_5427836251409383266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;La gestion du cache&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;YSlow&lt;/span&gt; &lt;/span&gt;se base sur le comportement de Firefox. Il est important que tous les contenus soient rechargés pour que leur statut soit mis à jour.&lt;br /&gt;&lt;br /&gt;C'est particulièrement visible sur les dates de cache :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Juste après la mise en place des directives pour mod_expires, les données sont affichées à jour. La date est dans plus de 48h et satisfait la règles "Add expire headers".&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Le lendemain, la règle est violée car la date d'expiration n'étant pas atteinte Firefox n'a pas rechargé les contenus statiques. Et les contenus en cache sont maintenant valides pour moins de 48h. &lt;/li&gt;&lt;li&gt;Forcer le rechargement marche dans une certaine mesure, mais n'agit pas sur toutes les ressources. Le plus fiable est de vider le cache pour avoir les fichiers à jour.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;font-size:130%;" &gt;En conclusion &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Les deux outils sont très utiles pour améliorer la qualité des pages Web.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;YSlow&lt;/span&gt; s'adresse plutôt aux personnes qui valident l'application et au suivi qualité&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Page Speed&lt;/span&gt; est plutôt destiné aux développeurs qui vont optimiser les pages.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Posts similaires :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://claude-falguiere.blogspot.com/2009/07/sur-velocity-2009.html"&gt;Velocity 2009&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-7117174300696652355?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/7117174300696652355/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=7117174300696652355' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/7117174300696652355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/7117174300696652355'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2010/01/retour-dexperience-yslow-et-page-speed.html' title='Retour d&apos;expérience YSlow et Page Speed'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d91qggHlEM/S1OMUBA-f2I/AAAAAAAAAHk/Alh6-TxELNs/s72-c/yslow-ruleset2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-6898845832797390665</id><published>2009-12-20T11:30:00.000-08:00</published><updated>2010-01-24T06:16:15.757-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><category scheme='http://www.blogger.com/atom/ns#' term='r'/><title type='text'>R</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://addictedtor.free.fr/graphiques/graphiques/graph_118.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 225px; height: 225px;" src="http://addictedtor.free.fr/graphiques/graphiques/graph_118.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I discovered R a few month ago, and it's exactly the tool I was looking for to perform Exploratory Data Analysis on IT data (analyse of monitoring data, logs, performance tests results, workload analysis, code checks).&lt;br /&gt;&lt;br /&gt;I used to do all that computation with Excell or ad hoc Java programs. Excell is great for small amounts of data, but when it comes to analyse 300000 lines of result, they won't fit in Excell (at least before Excell 2007).&lt;br /&gt;&lt;br /&gt;R let me write scripts to compute statistics that I can run on data every day or when the test session ends with a minimum of manipulations. They are also easy to adapt when need be.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=118"&gt;rabbit&lt;/a&gt; is done with R as an illustration of 3D capabilities. I've found it at the &lt;a href="http://addictedtor.free.fr/graphiques/"&gt;R Graph Gallery&lt;/a&gt;. This site worth visiting to discover R graphic capabilities. I like R graphics. They are really neat and configurable. R comes with plots and histograms, very handly functions to convert data to graphics and advanced visualization features.&lt;br /&gt;&lt;br /&gt;When I decided to write a post on R I balanced between a brief "WoW!" and a long run tutorial with all the nice things in R. As I'm to lazy to write a definitive tutorial on R, I decided to write a mind map and organize things I know about R up to now. I've also set up a pageflake with usefull links and blogs feeds.&lt;br /&gt;&lt;table width="95%"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td align="right"&gt;&lt;br /&gt;&lt;a href="http://www.mindmeister.com/37638437/r"&gt;R mind map &lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mindmeister.com/37638437/r"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 164px;" src="http://3.bp.blogspot.com/_6d91qggHlEM/Sz8aff9U5rI/AAAAAAAAAG4/DjuHW8FE0uI/s320/mindmapR.png" alt="" id="BLOGGER_PHOTO_ID_5422081604834354866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.pageflakes.com/cfalguiere/26808452"&gt;R pageflake&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pageflakes.com/cfalguiere/26808452"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 172px;" src="http://2.bp.blogspot.com/_6d91qggHlEM/Sz80iHoAOvI/AAAAAAAAAHI/AbrVXbqSwIg/s320/pageflakeR.png" alt="" id="BLOGGER_PHOTO_ID_5422110237144398578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please feel free to comment the mind map or pageflake as comments to that blogs. I'am new to R and may have make mistakes or ignored usefull resources.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-6898845832797390665?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/6898845832797390665/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=6898845832797390665' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/6898845832797390665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/6898845832797390665'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/12/r.html' title='R'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d91qggHlEM/Sz8aff9U5rI/AAAAAAAAAG4/DjuHW8FE0uI/s72-c/mindmapR.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-782930399415370041</id><published>2009-07-25T06:30:00.000-07:00</published><updated>2009-12-06T10:05:22.053-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curl'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='io'/><title type='text'>Appeler Curl depuis un program Python 3.1</title><content type='html'>&lt;div&gt;Curl (un client HTTP en ligne de commande) est très pratique à utiliser pour tester manuellement les requêtes Rest. Il permet en particulier de manipuler les headers ou les méthodes HTTP.&lt;br /&gt;&lt;br /&gt;Par exemple :&lt;br /&gt;&lt;pre&gt;&lt;code&gt;# envoi des données en JSON en paramétrant le header&lt;br /&gt;curl -i -H 'Content-Type: application/json'&lt;br /&gt;-d '{"items":[{"title": "AAA AAA", "description": "aaa aaa aaa",&lt;br /&gt;"link": "http:AAA.com"}]}'  http://${SERVER}/rest/messages&lt;br /&gt;&lt;br /&gt;# suppression du message avec la methode DELETE&lt;br /&gt;curl -X DELETE http://${SERVER}/rest/messages/1&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;J'ai fait un petit programme Python pour faciliter la construction des différentes requêtes Rest. Le programme Python permet de sélectionner le server GAE local/remote, le type d'opération, le variant pour l'input, l'output demandé et saisir les données à envoyer.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Appeler Curl m'a posé quelques problèmes.&lt;br /&gt;Pycurl (une intégration curl/python) n'existe pas pour python 3.1.  J'ai donc implémenté les appels de commande externes directement en Python. Mais j'ai eu un peu de mal à trouver les informations car les I/O Python ont pas mal changées au cours du temps. Voici le code qui permet d'appeler une commande et récupérer la sortie standard en Python 3.1.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d91qggHlEM/SmsJK5La7aI/AAAAAAAAAF4/1N3tTdQag4A/s1600-h/runCommand.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 399px; height: 216px;" src="http://3.bp.blogspot.com/_6d91qggHlEM/SmsJK5La7aI/AAAAAAAAAF4/1N3tTdQag4A/s400/runCommand.png" alt="" id="BLOGGER_PHOTO_ID_5362389864066772386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;On utilise &lt;code&gt;Popen&lt;/code&gt; du module &lt;code&gt;subprocess&lt;/code&gt;. La méthode &lt;code&gt;communicate()&lt;/code&gt; crée un tableau où 0 contient la sortie standard et 1 la sortie erreur.&lt;br /&gt;Si vous voulez rediriger la sortie erreur sur la sortie standard, utilisez &lt;code&gt;stderr=STDOUT&lt;/code&gt;.&lt;br /&gt;Pour une raison qui m'échappe le passage de la commande en tableau a cessé de fonctionner, mais la concaténation de chaînes à résolu ce problème.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-782930399415370041?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/782930399415370041/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=782930399415370041' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/782930399415370041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/782930399415370041'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/07/appeler-curl-depuis-un-program-python.html' title='Appeler Curl depuis un program Python 3.1'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d91qggHlEM/SmsJK5La7aI/AAAAAAAAAF4/1N3tTdQag4A/s72-c/runCommand.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-1240605664986597566</id><published>2009-07-05T06:34:00.001-07:00</published><updated>2009-09-03T08:15:22.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='optimisation'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><category scheme='http://www.blogger.com/atom/ns#' term='velocity2009'/><title type='text'>Sur Velocity 2009</title><content type='html'>Enfin des choses qui bougent sur le thème performance ...&lt;br /&gt;&lt;br /&gt;La conférence &lt;a href="http://en.oreilly.com/velocity2009"&gt;Velocity "Web Performance and Operations Conference"&lt;/a&gt; s'est tenue du 22 au 24 juin à San Jose, CA.&lt;br /&gt;&lt;br /&gt;On y trouvait des représentants des plus gros sites Web (Facebook, Google, Microsoft, Twitter, Yahoo, etc) réunis pour discuter des problématiques d'exploitation et souvent de performance de leurs sites.&lt;br /&gt;&lt;br /&gt;Je n'y étais malheureusement pas mais fort heureusement beaucoup de présentations et même des vidéos de sessions sont en ligne.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/8011986@N02/2964298027/"&gt;&lt;img src="http://farm4.static.flickr.com/3273/2964298027_a32d8f75bc.jpg?v=0" height="194" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;Brooks Elliott&lt;/small&gt;&lt;br /&gt;&lt;h4&gt;Qu'est ce qui ressort ?&lt;/h4&gt;&lt;div&gt;Tout d'abord, ces sites sont tous des sites commerciaux, très fréquentés où les performances sont nécessairement un enjeu. D'ailleurs Performance n'a pas toujours le même sens selon les interventions : il peut signifier ROI, expérience de l'utilisateur ou efficacité technique.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;D'une manière générale, les participants constatent que dans les applications "Web 2.0"/AJAX les problèmes de performance perçue proviennent pour une bonne part de la &lt;span style="font-style: italic; font-weight: bold;"&gt;restitution dans le navigateur&lt;/span&gt; (environ 50% du temps total). La plupart des outils cités sont des outils d'analyse du comportement sur le poste client et d'optimisation du Web design. &lt;/div&gt;&lt;br /&gt;Je ne pense pas qu'ils aient ignoré la partie serveur (on voit passer par ci par là des outils plus classiques), mais il existe déjà des outils pour la partie réseau/serveur et le sujet est peu à même de déplacer les foules. Ils sont inclus dans le mantra le mantra "&lt;span style="font-weight: bold; font-style: italic;"&gt;mesurer, mesurer, mesurer, visualiser et analyser les données pour comprendre le problème&lt;/span&gt;" que l'on retrouve un peu partout. Juste pour préciser au cas où, mesurer la production.&lt;br /&gt;&lt;br /&gt;Bien qu'Agile cela n'apparaisse pas directement, on sent que le développement de la plupart de ces application est Agile (résolutions itératives des problèmes,  rythme rapide des mises à jour en particulier). On voit donc l'envers du décor, quand les projets sont livrés pour être exploités et ne marchent pas forcément aussi bien que l'on souhaiterait. Les solutions sont souvent différentes de celles qu'on rencontre dans des secteurs plus classiques. En particulier ce sont plus souvent des solutions mixant l'infrastructure et le développement de l'application (travail sur les caches et les proxies à différent niveaux de l'infrastructure par exemple).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/ppdigital/2327029777/"&gt;&lt;img src="http://farm3.static.flickr.com/2094/2327029777_94fb98d800.jpg?v=0" heigh="166" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;Darren Hester&lt;/small&gt;&lt;br /&gt;&lt;h4&gt;Mesurer, mesurer, mesurer et comprendre &lt;/h4&gt;Tout d'abord une session avec un titre interminable&lt;br /&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/8523"&gt;The User and Business Impact of Server Delays, Additional Bytes, and HTTP Chunking in Web Search&lt;/a&gt; de Eric Schurman (Microsoft) et Jake Brutlag (Google) qui présentent les résultats de tests utilisateurs qu'ils ont menés sur leurs moteurs de recherche. C'est intéressant et assez abordable. Prenez le temps de regarder la vidéos car les slides seuls sont assez laconiques.&lt;br /&gt;&lt;br /&gt;Ils ont dans les deux cas appliqués la méthodologie  &lt;span style="font-weight: bold; font-style: italic;"&gt;A/B Testing&lt;/span&gt; (ou Split A/B Testing) utilisée habituellement en marketing pour choisir entre différents designs. L'A/B Testing utilise dans l'arrière boutique des méthodes statistiques de tests d'hypothèses basées sur des comparaisons de séries (variante de test de Khi2 type GTest, ZTest). Il nécessite une infrastructure qui permet de servir différentes versions du site à différents utilisateurs et de collecter les mesures.&lt;br /&gt;&lt;br /&gt;La page Wikipedia sur A/B testing est un peu jargon. Vous trouverez sur ces deux pages des explications destinées au marketing plus faciles à appréhender dans le contexte :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.seinsights.com/emarketing/test-ab-testing/"&gt;Test AB (AB Testing)&lt;/a&gt; (en français)&lt;/li&gt;&lt;li&gt;&lt;a href="http://20bits.com/articles/an-introduction-to-ab-testing/"&gt;An Introduction to A/B Testing&lt;/a&gt; (un peu plus détaillée mais en anglais)&lt;/li&gt;&lt;li&gt;et un exemple chez Google &lt;a href="http://www.ressacmedia.com/blog/google/google-website-optimizer-un-service-de-ab-testing-gratuit/"&gt;Google Website Optimizer; un service de A/B testing gratuit&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;En l'occurrence, ils ont soumis les utilisateurs a des versions de site plus ou moins lentes, ou dont les pages ont été refactorées selon diverses techniques pour mesurer l'impact sur l'usage et donc les revenus du site. Les constats sont que les utilisateurs &lt;span style="font-weight: bold; font-style: italic;"&gt;commencent à percevoir l'attente à partir de 500ms&lt;/span&gt; mais aussi qu'ils ne sont pas impactés de la même manière &lt;span style="font-weight: bold; font-style: italic;"&gt;selon la façon dont s'affiche la page&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;On trouve un peu plus de détails l'utilisation de l'A/B Testing et d'autres moyens utilisés dans la présentation &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/8970"&gt;Performance-Based Design - Linking Performance to Business Metrics &lt;/a&gt; de Aladdin Nassar (Microsoft - Hotmail) et une moisson de sigles aussi : PBD Performance Based Design, RPI Relative Performance Index, PLT (ah non celui là c'est juste Page Load Time). C'est aussi en vidéo.&lt;br /&gt;&lt;br /&gt;Philip Dixon (Shopzilla) dans &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7709"&gt;Shopzilla's Site Redo - You Get What You Measure&lt;/a&gt; fait un retour d'expérience sur la refonte complète de leur site. Peu technique mais intéressant quand même pour les problématiques et le vécu. C'est aussi en vidéo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/aussiegall/286709039/"&gt;&lt;img src="http://farm1.static.flickr.com/113/286709039_105881e4b9.jpg?v=0" height="187" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;aussiegall&lt;/small&gt;&lt;br /&gt;&lt;h4&gt;Les outils&lt;/h4&gt;Pas de bon artisan sans de bons outils.&lt;br /&gt;Plusieurs présentations ont été consacrées à des outils d'analyse dans le client :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/8488"&gt;Performance Tools&lt;/a&gt; par Eric Goldsmith (AOL), Simon Perkins (Simtec Limited), Stoyan Stefanov (Yahoo! Inc), Jim Pierson (Microsoft), Jan Odvarko (Freelance). Attention il y a deux présentations attachées :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Performance Tools Presentation [ZIP] sur  &lt;a href="http://pagetest.wiki.sourceforge.net/"&gt;Page Test&lt;/a&gt; d'AOL&lt;/li&gt;&lt;li&gt;Performance Tools Presentation 1 [PPTX] sur &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=119f3477-dced-41e3-a0e7-d8b5cae893a3&amp;amp;displaylang=en"&gt;VRTA&lt;/a&gt; de Microsoft&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/10137"&gt;Page Speed&lt;/a&gt; par Bryan McQuade (Google), Richard Rabbat (Google, Inc.) sur &lt;a href="http://code.google.com/intl/fr/speed/page-speed/"&gt;Google Page Speed&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7579"&gt;Jiffy&lt;/a&gt;, une extension Firefox pour analyser le temps de réponse dans la partie client par Scott Ruthfield de Rooster Park Consulting.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/geishaboy500/2777962535/"&gt;&lt;img src="http://farm4.static.flickr.com/3172/2777962535_208b4ac418.jpg?v=0" heigh="165" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;geishaboy500&lt;/small&gt;&lt;br /&gt;&lt;h4&gt;Optimiser le Web Design&lt;/h4&gt;Maintenant qu'on a compris d'où vient le problème, il faut lui trouver une solution.&lt;br /&gt;&lt;br /&gt;Julien Lecomte (Yahoo!) présente dans &lt;a href="http://en.oreilly.com/velocity2008/public/schedule/detail/1544"&gt;High-performance Ajax Applications&lt;/a&gt; diverses techniques pour améliorer les temps de réponse du JavaScript. Attention c'est très technique et nécessite une bonne connaissance du développement JavaScript.&lt;br /&gt;&lt;br /&gt;Si vous n'êtes pas un expert JavaScript vous préfèrerez probablement la présentation plus pédagogique de Douglas Crockford (Yahoo!) &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7094"&gt;Ajax Performance&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Si vous n'en avez pas assez :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Une autre présentation d'optimisations JavaScript  &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7510"&gt;Writing Efficient JavaScript&lt;/a&gt; de Nicholas Zakas (Yahoo!),&lt;/li&gt;&lt;li&gt;ou Steve Souders (Google) présente ses 14 règles et analyse l'impact de plusieurs techniques en JavaScript et CSS dans &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/8807"&gt;Website Performance Analysis,&lt;/a&gt;&lt;/li&gt;&lt;li&gt;ou Dave Artz (AOL) &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7579"&gt;The Secret Weapons of the AOL Optimization Team,&lt;/a&gt;&lt;/li&gt;&lt;li&gt;ou &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7611"&gt;Frontend Performance Engineering in Facebook&lt;/a&gt; par David Wei (Facebook Inc.), Changhao Jiang (Facebook Inc.).&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/9340"&gt;Go with the Reflow&lt;/a&gt;  de Lindsey Simon (Google) est une présentation très spécifiquement sur le reflow en Javascript, c'est à dire le repositionnement des objects graphiques dans la page. Ce comportement du navigateur est cause d'un certain nombre de ralentissement dans le client.&lt;br /&gt;&lt;br /&gt;Une très belle présentation sur CSS de Nicole Sullivan (Consultant) &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7676"&gt;The Fast and the Fabulous: 9 ways engineering and design come together to make your site slow&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Et pour finir avec le Web design, Stoyan Stefanov (Yahoo!) présente dans &lt;a href="http://en.oreilly.com/velocity2008/public/schedule/detail/2405"&gt;Image Optimization: How Many of These 7 Mistakes Are You Making&lt;/a&gt; divers outils et techniques qui permettent d'améliorer le poids des images dans les pages Web.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/ecstaticist/407573589/"&gt;&lt;img src="http://farm1.static.flickr.com/150/407573589_7fe4281630_m.jpg" height="187" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;ecstaticist&lt;/small&gt;&lt;br /&gt;&lt;h4&gt;Rails&lt;/h4&gt;La présentation sur Twitter est particulièrement intéressante pour ceux qui s'intéressent à Rails. &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7479"&gt;Fixing Twitter: Improving the Performance and Scalability of the World's Most Popular Micro-blogging Site&lt;/a&gt; par John Adams (Twitter) présente l'architecture, le reporting et le process de déploiement mis en place, les techniques de cache mises en oeuvre. C'est aussi en vidéo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/7973320@N07/2792554600/"&gt;&lt;img src="http://farm4.static.flickr.com/3057/2792554600_757f6bf9a1.jpg?v=0" heigh="187" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;hounddiggity&lt;/small&gt;&lt;br /&gt;&lt;h4&gt;Deployer&lt;/h4&gt;Passons un peu du coté de nos amis (si, si) de la production.&lt;br /&gt;&lt;br /&gt;Une présentation très sympa sur les rapports devs/ops de John Allspaw &amp;amp; Paul Hammond (Yahoo!)  &lt;a href="http://en.oreilly.com%20/velocity2009/public/schedule/detail/7641"&gt;10+ Deploys Per Day: Dev and Ops Cooperation at Flickr&lt;/a&gt; et la nécessité d'un respect mutuel pour faciliter les déploiements fréquents et rapides.&lt;br /&gt;&lt;br /&gt;Pourquoi il ne faut pas compter sur l'administrateur Apache pour vous améliorer tout ça d'un coup de zip : &lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/9072"&gt;Beyond Gzipping&lt;/a&gt; de Tony Gentilcore (Google) montre que la compression des flux n'est pas une panacée car 15% des utilisateurs ont quand même des réponses non compressées. Le problème est dû aux firewalls et proxies qui altèrent les headers HTTP.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/8859"&gt;Scalable Internet Architectures&lt;/a&gt;  par Theo Schlossnagle (OmniTI) présente quelques slides intéressants sur les pratiques de cache et de partitionnement/sharding de base de données.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7693"&gt;Introduction to Managed Infrastructure with Puppet&lt;/a&gt; présente l'outil de configuration management Puppet pour le déploiement d'application distribuées.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jannem/3312115991/"&gt;&lt;img src="http://farm4.static.flickr.com/3616/3312115991_cc2a483d06.jpg?v=0" height="194" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;Chocolate Tools par JanneM&lt;/small&gt;&lt;br /&gt;&lt;h4&gt;Les outils cités&lt;/h4&gt;J'ai regroupé ici divers outils cités dans ces présentations ou d'autres que je n'ai pas reportées.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;JavaScript/DOM&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.httpwatch.com/"&gt;HttpWatch&lt;/a&gt; analyse/profilage poste client, adon IE et Firefox (commercial)&lt;/li&gt;&lt;li&gt;&lt;a href="http://pagetest.wiki.sourceforge.net/"&gt;PageTest &lt;/a&gt;analyse/profilage poste client, addon IE (AOL, opensource)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7579"&gt;Jiffy&lt;/a&gt; analyse/profilage poste client, addon Firefox&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=119f3477-dced-41e3-a0e7-d8b5cae893a3&amp;amp;DisplayLang=en%20Visual%20Round%20Trip%20Analyzer"&gt;Visual Round Trip Analyzer&lt;/a&gt; analyse/profilage poste client, add on IE (Microsoft, free)&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/intl/fr/speed/page-speed/"&gt;Page Speed&lt;/a&gt; analyse/profilage/suggestions sur poste client, add-on Firebug  (Google, opensource)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.blogger.com/YSlow%20%20http://developer.yahoo.com/yslow/"&gt;YSlow&lt;/a&gt; analyse de page Web - addon Firebug (Yahoo!, gratuit)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://getfirebug.com/"&gt;Firebug &lt;/a&gt;analyse/debug poste client - addon Firefox (opensource)&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/msfast/"&gt;MSFast&lt;/a&gt; analyse/debug addon IE (opensource)&lt;/li&gt;&lt;li&gt;&lt;a href="http://jslint.com/"&gt;JSLint.com&lt;/a&gt; service en ligne d'analyse de code JavaScript&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stevesouders.com/cuzillion/"&gt;Cuzillion&lt;/a&gt; générateur de pages de test contenant diverses techniques JavaScript&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;Images &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://smush.it/"&gt;Smush.it&lt;/a&gt; service en ligne d'optimisation d'image&lt;/li&gt;&lt;li&gt;&lt;a href="http://spritegen.website-performance.org/"&gt;CSS Sprite Generator&lt;/a&gt; service en ligne de génération de CSS sprite à partir de plusieurs images dans le but de limiter le nombre de requêtes HTTP&lt;/li&gt;&lt;li&gt;&lt;a href="http://spriteme.org/%20%28in%20progress%29"&gt;SpriteMe&lt;/a&gt; idem&lt;/li&gt;&lt;li&gt;d'autres outils en ligne de commande sont cités dans la présentation Image Optimization&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;span style="font-style: italic;"&gt;Réseau / HTTP&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.fiddler2.com/fiddler2/"&gt;Fiddler&lt;/a&gt; analyse/debug http - addon IE (Microsoft, gratuit)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.charlesproxy.com/"&gt;Charles &lt;/a&gt;HTTP proxy (commercial)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/nexpert/"&gt;nExpert &lt;/a&gt; simulation de connexion réseau de différentes qualités (Windows)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/wansim/"&gt;WANSim&lt;/a&gt; simulation de connexion réseau de différentes qualités (Linux)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.clubic.com/telecharger-fiche57310-http-analyzer.html"&gt;HTTP Analyzer&lt;/a&gt; sniffer HTTP Windows&lt;/li&gt;&lt;li&gt;&lt;a href="http://varnish.projects.linpro.no/"&gt;Varnish &lt;/a&gt;cache HTTP&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;Surveillance&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.netmon.ca/"&gt;NetMon &lt;/a&gt;monitoring réseau Windows (commercial)&lt;/li&gt;&lt;li&gt;&lt;a href="http://ganglia.info/"&gt;Ganglia &lt;/a&gt;surveillance de systèmes distribués Linux (opensource)&lt;/li&gt;&lt;li&gt;&lt;a href="http://kite.keynote.com/"&gt;KITE &lt;/a&gt;service en ligne de mesure de performance sur les postes clients Web et RIA (Keynote, commercial avec un mode gratuit)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;Configuration Management&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://reductivelabs.com/products/puppet/"&gt;Puppet&lt;/a&gt; configuration management (commercial)&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;&lt;span style="font-weight: normal;"&gt;J'en ai probablement ratés quelques uns et je n'ai pas systématiquement noté les outils connus (Squid ou Nagios par exemple) ou les outils système)&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;A suivre ...&lt;br /&gt;&lt;/h4&gt;Google et Yahoo! ont lancé chacun leur site pour regrouper les initiatives :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Google &lt;a href="http://code.google.com/intl/fr/speed/"&gt;Let's make the web faster&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Yahoo! &lt;a href="http://developer.yahoo.com/performance/"&gt;Exceptional Performance&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-1240605664986597566?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/1240605664986597566/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=1240605664986597566' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1240605664986597566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1240605664986597566'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/07/sur-velocity-2009.html' title='Sur Velocity 2009'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/150/407573589_7fe4281630_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-7230476343890672372</id><published>2009-06-27T01:01:00.000-07:00</published><updated>2009-07-06T02:10:02.147-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sonar'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><category scheme='http://www.blogger.com/atom/ns#' term='gae'/><title type='text'>Running Sonar against a GAE Java project</title><content type='html'>&lt;div&gt;The GAE SDK generates a project that is not Maven enabled. Namely, source and target directories does not follow Maven conventions. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Sonar may be run against such a project by using Sonar light mode configuration. &lt;ul&gt;&lt;li&gt;We will write a minimal POM project and instruct Sonar to run only static analysis (code violations, complexity).  &lt;/li&gt;&lt;li&gt;For the time being, we will put dynamic analysis (unit test results and code coverage) aside as it requires code to be executed, therefore dependencies configuration. Sonar may actually report dynamic analysis if surefire and cobertura reports are available.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;But let's start with some simple configuration.&lt;br /&gt;You will need Sonar (1.8 minimum) and Maven 2. &lt;ul&gt;&lt;li&gt;&lt;a href="http://maven.apache.org/users/index.html"&gt;Install Maven&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.codehaus.org/display/SONAR/Install+Sonar"&gt;Install Sonar&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Write a POM&lt;/h4&gt;&lt;br /&gt;&lt;div&gt;Open the Eclipse project generated by GAE SDK and create a pom.xml file at the project's root. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Add your project's information (replace cirrus in the snapshot below by your project's information)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d91qggHlEM/SkX_3w7uAwI/AAAAAAAAAFQ/A_dxMKlBU34/s1600-h/projet.png"&gt;&lt;img style="margin: 5px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 202px;" src="http://1.bp.blogspot.com/_6d91qggHlEM/SkX_3w7uAwI/AAAAAAAAAFQ/A_dxMKlBU34/s400/projet.png" alt="" id="BLOGGER_PHOTO_ID_5351965065692971778" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Add GAE build information. You should not have to change these lines.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d91qggHlEM/SkYCiR2vBuI/AAAAAAAAAFg/eFiGFuoZjjE/s1600-h/build.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 284px;" src="http://1.bp.blogspot.com/_6d91qggHlEM/SkYCiR2vBuI/AAAAAAAAAFg/eFiGFuoZjjE/s400/build.png" alt="" id="BLOGGER_PHOTO_ID_5351967995108198114" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Add some Sonar configuration to skip dynamic analysis. You should not have to change these lines. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d91qggHlEM/SkYDOvvAOUI/AAAAAAAAAFo/9X8pwdboC4g/s1600-h/sonaroptions.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 399px; height: 106px;" src="http://3.bp.blogspot.com/_6d91qggHlEM/SkYDOvvAOUI/AAAAAAAAAFo/9X8pwdboC4g/s400/sonaroptions.png" alt="" id="BLOGGER_PHOTO_ID_5351968759043078466" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Depending on your repository and mirror, you may have to download sonar jars from the Codehaus repository.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d91qggHlEM/SkYD7pndq3I/AAAAAAAAAFw/GE-e6i2_2Js/s1600-h/fin..png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 399px; height: 166px;" src="http://4.bp.blogspot.com/_6d91qggHlEM/SkYD7pndq3I/AAAAAAAAAFw/GE-e6i2_2Js/s400/fin..png" alt="" id="BLOGGER_PHOTO_ID_5351969530494954354" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Run Sonar&lt;/h4&gt;&lt;br /&gt;&lt;div&gt;Now run sonar from the shell command line or configure an Eclipse launcher. As the Sonar maven plugin will send out data to Sonar during the build, the Sonar server must be running. &lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d91qggHlEM/SkX6VrVoq4I/AAAAAAAAAE4/0vi_klQrQUI/s1600-h/runsonar.png" style="text-decoration: none;"&gt;&lt;img style="margin: 5px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 56px;" src="http://2.bp.blogspot.com/_6d91qggHlEM/SkX6VrVoq4I/AAAAAAAAAE4/0vi_klQrQUI/s400/runsonar.png" alt="" id="BLOGGER_PHOTO_ID_5351958982517369730" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;It may take a while the first time, as maven will download tons of libraries and plugins.&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d91qggHlEM/SkX7GjRiuuI/AAAAAAAAAFA/6CrVIfY4m00/s1600-h/runsonarfin.png"&gt;&lt;img style="margin: 5px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 65px;" src="http://4.bp.blogspot.com/_6d91qggHlEM/SkX7GjRiuuI/AAAAAAAAAFA/6CrVIfY4m00/s400/runsonarfin.png" alt="" id="BLOGGER_PHOTO_ID_5351959822166309602" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;When it's done, Sonar's analysis report is available at http://localhost:9000.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d91qggHlEM/SkX8UZbP1qI/AAAAAAAAAFI/RxcLd4LcQEU/s1600-h/sonarpage.png" style="text-decoration: none;"&gt;&lt;img style="margin: 5px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 71px;" src="http://4.bp.blogspot.com/_6d91qggHlEM/SkX8UZbP1qI/AAAAAAAAAFI/RxcLd4LcQEU/s400/sonarpage.png" alt="" id="BLOGGER_PHOTO_ID_5351961159552456354" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;You may find usefull information about Sonar configuration including "Non-Maven" projects in  &lt;a href="http://docs.codehaus.org/display/SONAR/Analyzing+Java+Projects#Non-Maven%20projects%20%28sonar%20light%20mode%29"&gt;Analyzing Java Projects&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-7230476343890672372?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/7230476343890672372/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=7230476343890672372' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/7230476343890672372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/7230476343890672372'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/06/running-sonar-against-gae-java-project.html' title='Running Sonar against a GAE Java project'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d91qggHlEM/SkX_3w7uAwI/AAAAAAAAAFQ/A_dxMKlBU34/s72-c/projet.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-1230574883121784362</id><published>2009-06-21T03:05:00.000-07:00</published><updated>2009-06-26T00:45:43.679-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><title type='text'>Le ballet et l'agilité</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2350/2449103652_e006832183.jpg?v=0"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 250px; height: 166px;" src="http://farm3.static.flickr.com/2350/2449103652_e006832183.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt; &lt;p&gt;J'ai regardé un peu par hasard ce matin en déjeunant un &lt;a href="http://television.telerama.fr/tele/emission.php?id=13376104"&gt;documentaire&lt;/a&gt; sur l'expérience d'un groupe de jeunes Berlinois pour monter un spectacle de danse sur le &lt;a href="http://fr.wikipedia.org/wiki/Le_Sacre_du_printemps"&gt;Sacre du printemps&lt;/a&gt; de Stravinski accompagnés par le philharmonique de Berlin.  Le documentaire couvre tout le projet, des répétitions et jusqu'à la représentation, et montre toutes les difficultés qu'il rencontre.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;En particulier, il y a au bout d'un moment &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;un fossé&lt;/span&gt; &lt;/span&gt;qui se creuse entre 5 ou 6 des élèves qui se débrouillent bien et le reste des élèves qui freinent la progression. La danse est une activité difficile. C'est fatiguant et parfois douloureux. C'est ennuyeux quand il faut recommencer des dizaines de fois le même enchaînement jusqu'à ce que tout le groupe le mémorise et le réalise en rythme avec la musique et en coordination avec les autres dans ses déplacements. Et au delà de ça, c'est un art. Il faut que les danseurs expriment l'argument du ballet. Et le thème du Sacre du printemps n'est pas facile. C'est un rituel pour le retour du printemps qui se termine par le sacrifice d'un élu pour que le printemps revienne. Donc des sentiments probablement assez perturbants.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;En première approche&lt;/span&gt; le problème semble être imputable à ceux qui sont à la traîne. Ils ont leurs raisons : ils n'aiment pas la musique classique, ils n'ont aucune idée de ce que signifie faire des efforts, ils se contentent de faire le job parce qu'ils estiment que c'est suffisant. Certains sans forcément le reconnaître ont peur d'échouer et préfèrent échouer parce qu'ils n'ont pas fait ce qu'il faut qu'en ayant fait le maximum.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Le chorégraphe britannique &lt;a href="http://en.wikipedia.org/wiki/Royston_Maldoom"&gt;Royston Maldoom&lt;/a&gt; dans son approche pédagogique se montre très exigeant. Il leur explique qu'il pense qu'&lt;span style="font-weight: bold; font-style: italic;"&gt;ils peuvent faire mieux&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;(alors que l'encadrement local pense qu'ils sont à leur maximum). Il exprime aussi la &lt;span style="font-weight: bold; font-style: italic;"&gt;frustration&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;que ressentent ceux qui ont déjà compris à devoir refaire encore à cause de ceux qui ne sont pas concentrés. Je ne suis pas sûre que cela ait eu beaucoup d'effet puisqu'ils envisagent quelques temps plus tard de déplacer les meilleurs dans un autre groupe pour qu'ils puissent avancer à leur rythme. Mais il fallait qu'il le fasse pour être cohérent avec lui même. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ce qui est assez amusant, c'est que lorsqu'ils sont interrogés individuellement, &lt;a href="http://en.wikipedia.org/wiki/Royston_Maldoom"&gt;Royston Maldoom&lt;/a&gt; le chorégraphe et &lt;a href="http://fr.wikipedia.org/wiki/Simon_Rattle"&gt;Simon Rattle&lt;/a&gt; le chef d'orchestre reconnaissent que &lt;span style="font-weight: bold; font-style: italic;"&gt;ce sont eux qui sont différents&lt;/span&gt;. Qu'ils ont une exigence d'aller toujours plus haut et de ne pas se contenter d'atteindre l'objectif qu'ils ne peuvent partager qu'avec très peu de gens. C'est un discours de &lt;span style="font-weight: bold; font-style: italic;"&gt;passionné &lt;/span&gt;plus que d'artiste d'ailleurs. Les élèves qui sortent du lot énoncent aussi cette différence d'une manière moins rationalisée. Ils ont rencontré une personnalité, une activité, une perspective qui leur a donné la motivation de se dépasser.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Finalement le spectacle a lieu&lt;/span&gt;. Probablement pas aussi parfait que ce qu'il aurait pu être, mais le but de l'expérience était plus je pense de faire vivre quelque chose à ceux qui ont su en profiter. Certains de ceux qui n'aiment pas la musique classique ont trouvé que certains passages du &lt;a href="http://fr.wikipedia.org/wiki/Le_Sacre_du_printemps"&gt;Sacre du printemps&lt;/a&gt; étaient intéressants à sampler. D'autres ont pris confiance en leur capacité à réussir quelque chose.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Alors pourquoi ce grand détour par la danse, alors qu'en gros je parle plutôt d'informatique ?&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Parce qu'il y a &lt;span style="font-weight: bold; font-style: italic;"&gt;une similitude&lt;/span&gt; avec ce qui se passe dans les projets informatiques, surtout lorsque l'on aborde de nouvelles technologies. On ne se rend pas toujours compte que les techniques que nous maîtrisons ne sont pas forcément maîtrisées par les gens avec qui nous travaillons et que cela a un coût pour eux de les acquérir, voire parfois de reconnaître qu'ils ne les maîtrisent pas. Cela entraîne souvent une certaine frustration chez nous parce qu'on voudrait que ça aille plus vite, qu'ils adoptent ce qu'on leur présente comme la meilleure solution. Pire encore que leur manque de maîtrise, ça ne les passionne pas plus que ça.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ce documentaire m'a amenée à repenser à des discutions que nous avons eu cette semaine, en particulier avec &lt;a href="http://eric.lemerdy.free.fr/dotclear/index.php"&gt;Eric Le Merdy&lt;/a&gt; et &lt;a href="http://etienne.charignon.free.fr/spip/"&gt;Etienne Charignon&lt;/a&gt; à propos d'une question posée initialement par Eric sur les stratégies que l'on peut adopter pour amener les gens aux pratiques Agile : est il indispensable de commencer en &lt;span style="font-weight: bold; font-style: italic;"&gt;respectant strictement tous les préceptes&lt;/span&gt; ou peut on amener les gens à l'Agile &lt;span style="font-weight: bold; font-style: italic;"&gt;plus souplement par l'exemple&lt;/span&gt; ?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Comme le fait remarque Etienne, la première démarche relève encore souvent du projet pilote. On plonge le client en immersion dans un projet géré &lt;span style="font-style: italic; font-weight: bold;"&gt;100% SCRUM &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;et on leur dit qu'on sait qu'ils peuvent le faire. Cela s'apparente à l'expérience de réalisation d'un spectacle avec des professionnels. L'avantage de ce processus est de permettre une évaluation rationnelle et scientifique d'un ROI. Encore faut-il que les gens suivent. Comme dans l'expérience de ballet plus haut il est probable que certains adhèreront sans réserve et d'autres pas. Je doute que l'on puisse maintenir des pratiques Agiles sur la seule base d'un ROI. L'implication demandée est trop forte pour que le processus fonctionne de manière imposée. C'est probablement pour cela qu'Etienne constate des retours-arrière vers des projets "pâte à modeler". Tout le monde n'a pas vu la lumière mais certaines pratiques ont plu.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;D'un autre côté, la méthode souple &lt;/span&gt;revient à introduire par l'exemple certaines de bonnes pratiques comme faire des tests unitaires, ou du TDD. Mais est que ça revient à avoir un mode de pensée Agile ? Probablement pas. C'est un peu comme aller en cours de danse 1h par semaine. On fait quelques assouplissements et on se sent plus en forme, allez, on mange bio comme la prof de danse parce que ça à l'air de lui réussir. Mais je doute que l'on comprenne de cette manière ce que représente la préparation d'un spectacle de danse et l'accomplissement de le délivrer en public. C'est face à la difficulté que l'on comprend vraiment les enjeux d'une pratique.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;ça n'est pas inutile pour autant. D'abord, faire un peu de sport ça n'est pas si mal. Ensuite, je crois que les technologies se diffusent beaucoup de manière &lt;span style="font-weight: bold; font-style: italic;"&gt;virale&lt;/span&gt;. J'ai vu émerger Java, le Web, UML, XML, J2EE. Aucune de ces technologie n'a été adoptée facilement au départ parce qu'elles étaient rationnellement meilleures comme on peut le penser maintenant. Elles ont été portées par des gens &lt;span style="font-weight: bold; font-style: italic;"&gt;passionnés&lt;/span&gt;, qui y ont compris les avantages, on expliqué encore et encore, on fait découvrir ces technologies alors qu'ils étaient venus pour tout autre chose. La passion des gens est communicative même si on ne partage pas toujours tous les arguments présentés. Au bout d'un moment, la nouveauté fait partie du paysage, elle ne fait plus peur et on peut poser le problème du choix plus rationnellement.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Je ne vois pas d'opposition entre les deux stratégies. C'est plus une question de &lt;i&gt;&lt;b&gt;timing&lt;/b&gt;&lt;/i&gt;. La méthode souple amènera certains au grand saut dans un pilote, et voire plus si affinité. Dans le pire des cas, elle facilitera les choses pour plus tard en ayant appris certaines pratiques nécessaires dans un projet Agile ce qui facilitera les pilotes. Il faut juste être conscient que le saupoudrage de pratiques Agile n'est pas un projet Agile, c'est seulement une distribution d'échantillons. C'est peut être difficile à faire comprendre aux gens avec qui on travaille et qui sont tentés par la mode Agile.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Etienne pense que pour la stratégie en douceur, il faudra de la &lt;span style="font-weight: bold; font-style: italic;"&gt;persévérance et de la pugnacité&lt;/span&gt;. A mon avis, il en faudra pour les deux stratégies de toute manière. Et peut être encore plus pour transformer les projets "pâte à modeler" en projets &lt;span style="font-style: italic;"&gt;vraiment &lt;/span&gt;Agile. Ce qui compte c'est de rester &lt;span style="font-weight: bold; font-style: italic;"&gt;passionnés et à l'écoute&lt;/span&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;J'avais prévu au départ quelque chose plus lié à la musique suite à d'autres discussions. ça sera pour une autre fois.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;i&gt;La photo &lt;a href="http://www.flickr.com/photos/kevineddy/2449103652/"&gt;Modern Dance&lt;/a&gt; est de Kevin Eddy&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-1230574883121784362?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/1230574883121784362/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=1230574883121784362' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1230574883121784362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1230574883121784362'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/06/les-arts-de-la-scene-et-lagilite.html' title='Le ballet et l&apos;agilité'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-5732635332593603560</id><published>2009-05-06T10:21:00.000-07:00</published><updated>2009-05-06T13:14:57.557-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sonar'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><title type='text'>Générer un rapport PDF Sonar</title><content type='html'>Depuis Sonar 1.8, il existe un plugin de génération de rapport PDF. &lt;br /&gt;&lt;br /&gt;La mise en oeuvre est très très simple.&lt;br /&gt;Lancez la commande ci-dessous depuis un shell de commande ou l'IDE :&lt;br /&gt;&lt;div style="color: white; background-color: black; margin: 5px 0px 0px 0px; border: medium double rgb(127,127,255);padding: 5px 5px 5px 5px;"&gt;&amp;gt;mvn org.codehaus.sonar-plugins:pdf-report:0.1:generate -Dsonar.base.url=http://nommachine:9000&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;L'option -Dsonar.base.url n'est pas obligatoire, mais il se trouve que je ne peux pas faire tourner Sonar sur le port standard 9000. Attention, pas de / à la fin de l'url sinon l'url générée contient un // au début du path et il ne parviendra pas à lire les données. &lt;br /&gt;&lt;br /&gt;Il n'est pas nécessaire de télécharger le plugin, il automatiquement téléchargé et mis en place via maven.&lt;br /&gt;&lt;br /&gt;Le rapport en PDF est généré dans le répertoire target du projet maven racine. &lt;br /&gt;Il contient pour le projet et chaque module, les ratios du dashboard (voir image ci-dessous), les valeurs du radar par catégorie (Efficiency, Maintainability, Portability, Reliability, Usability) et les hotspots Most violated rules et Most violated files.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d91qggHlEM/SgHvSJtsw-I/AAAAAAAAACI/EfDtv8HAPVw/s1600-h/rapport-sonar.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://4.bp.blogspot.com/_6d91qggHlEM/SgHvSJtsw-I/AAAAAAAAACI/EfDtv8HAPVw/s320/rapport-sonar.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5332806528907658210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;La page du plugin se trouve là &lt;a href="http://docs.codehaus.org/display/SONAR/Sonar+PDF+Plugin"&gt;Sonar PDF Plugin&lt;/a&gt;.&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-5732635332593603560?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/5732635332593603560/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=5732635332593603560' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/5732635332593603560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/5732635332593603560'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/05/depuis-sonar-1.html' title='Générer un rapport PDF Sonar'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d91qggHlEM/SgHvSJtsw-I/AAAAAAAAACI/EfDtv8HAPVw/s72-c/rapport-sonar.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-1131882691555178026</id><published>2009-04-19T10:50:00.000-07:00</published><updated>2010-01-24T06:18:10.360-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='code check'/><category scheme='http://www.blogger.com/atom/ns#' term='sonar'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><title type='text'>Sonar 1.8 et la Sonar Plugin Library</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d91qggHlEM/SetqTAjV05I/AAAAAAAAABw/yUucyQSgBDE/s1600-h/sonar_poster_demi3.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 188px; height: 231px;" src="http://3.bp.blogspot.com/_6d91qggHlEM/SetqTAjV05I/AAAAAAAAABw/yUucyQSgBDE/s400/sonar_poster_demi3.png" alt="" id="BLOGGER_PHOTO_ID_5326467859094033298" border="0" /&gt;&lt;/a&gt; &lt;a href="http://sonar.codehaus.org/"&gt;SonarSource&lt;/a&gt; vient de rendre disponible la  &lt;a href="http://sonar.codehaus.org/downloads/"&gt;version 1.8&lt;/a&gt; de Sonar et un &lt;a href="http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/"&gt;espace&lt;/a&gt; pour les Sonar plugins réalisés par la &lt;a href="http://sonar.codehaus.org/support/"&gt;communauté Sonar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Pour ceux qui auraient raté les épisodes précédents, Sonar est un produit open source de qualimétrie pour le monde Java.&lt;br /&gt;&lt;br /&gt;Cet outil pilote l'exécution des outils d'analyse de code (PMD, Checkstyle, Findbugs) et de test unitaire sous Maven, historise et fait la synthèse de toutes ces informations. Il peut être étendu par plugins (par exemple &lt;a href="http://www.sonarsource.com/plugins/"&gt;PL/SQL&lt;/a&gt; ou l'&lt;a href="http://sonar.codehaus.org/a-new-hudson-plugin-for-a-closer-integration-with-sonar/"&gt;intégration Hudson&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Il se montre particulièrement indispensable sur des projets multi-modules où il est difficile d'avoir une vue d'ensemble de la qualité en utilisant chacun de ces outils et Maven Dashboard.&lt;br /&gt;Sonar agrège ces informations selon les catégories ISO (Efficiency, Maintenability, Portability, Reliablity, Usability) et permet une identification rapide du type d'impact sur un radar. La navigation projet / module / package permet d'avoir ces informations à différentes granularités.&lt;br /&gt;&lt;br /&gt;Plusieurs systèmes permettent de localiser facilement la classe et la portion de code où il faut agir en priorité pour améliorer la qualité :&lt;br /&gt;- un pavage qui permet de visualiser à chaque niveau l'importance des éléments et leur niveau de qualité&lt;br /&gt;- un nuage qui met en évidence les classes qu'il est facile d'améliorer et celles qui présentent le plus de risque&lt;br /&gt;- depuis la version 1.8, Sonar a ajouté les hotspots, des top5 des classes les plus indisciplinées, les plus longues à tester, les plus complexes, les moins testées ...&lt;br /&gt;&lt;br /&gt;En plus des hotSpots, la &lt;a href="http://sonar.codehaus.org/downloads/"&gt;version 1.8&lt;/a&gt; ajoute en particulier le paramétrage de Findbugs, l'affichage des duplications sur le code source et le support de maven 2.1.&lt;br /&gt;&lt;br /&gt;Vous cherchez encore des excuses pour ne pas évaluer la qualité de votre code ?&lt;br /&gt;Allez le voir fonctionner sur &lt;a href="http://nemo.sonar.codehaus.org/"&gt;Nemo&lt;/a&gt; et on en rediscute après.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-1131882691555178026?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/1131882691555178026/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=1131882691555178026' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1131882691555178026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1131882691555178026'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/04/sonar-18-et-la-sonar-plugin-library.html' title='Sonar 1.8 et la Sonar Plugin Library'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d91qggHlEM/SetqTAjV05I/AAAAAAAAABw/yUucyQSgBDE/s72-c/sonar_poster_demi3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-6072326280934127358</id><published>2009-02-12T02:58:00.000-08:00</published><updated>2009-04-08T11:12:07.929-07:00</updated><title type='text'></title><content type='html'>Deux articles intéressants sur le développement des jeux multijoueurs dans le numéro de Novembre/Décembre du magazine Queue!. &lt;br /&gt;ça se trouve là :&lt;br /&gt;&lt;a href="http://mags.acm.org/queue/20081112"&gt;http://mags.acm.org/queue/20081112&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-6072326280934127358?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/6072326280934127358/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=6072326280934127358' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/6072326280934127358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/6072326280934127358'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2009/02/deux-articles-interessants-sur-le.html' title=''/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-3241185805516394718</id><published>2008-10-28T01:12:00.000-07:00</published><updated>2010-01-24T06:20:57.230-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sar'/><category scheme='http://www.blogger.com/atom/ns#' term='ksar'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><category scheme='http://www.blogger.com/atom/ns#' term='monitoring'/><title type='text'>Ksar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ksar.atomique.net/images/screen1.jpg"&gt;&lt;img style="float: right; cursor: pointer; width: 198px; height: 162px;" src="http://ksar.atomique.net/images/screen1.jpg" alt="image kzar" border="0" /&gt;&lt;/a&gt; Ksar est un utilitaire open source écrit en Java qui permet de représenter graphiquement l'ensemble des métriques d'un rapport sar. Pratique et efficace.&lt;br /&gt;&lt;br /&gt;L'outil possède également différentes fonctions pour générer les rapports à distance en ssh, générer un rapport pdf, modifier la période affichée, etc.&lt;br /&gt;&lt;br /&gt;On peut consulter la présentation de l'outil et le télécharger&lt;br /&gt;via source forge &lt;a href="http://sourceforge.net/projects/ksar"&gt;http://sourceforge.net/projects/ksar&lt;/a&gt;&lt;br /&gt;ou directement par le site Ksar &lt;a href="http://ksar.atomique.net/"&gt;http://ksar.atomique.net/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-3241185805516394718?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/3241185805516394718/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=3241185805516394718' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/3241185805516394718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/3241185805516394718'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2008/10/ksar-est-un-utilitaire-ecrit-en-java.html' title='Ksar'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-1486646789712293469</id><published>2008-10-23T01:37:00.000-07:00</published><updated>2010-01-24T06:21:30.108-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redmine'/><category scheme='http://www.blogger.com/atom/ns#' term='valtech'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Utiliser Redmine pour gérer les tests</title><content type='html'>Redmine serait il devenu aussi un outil de test ? Et non ;-)&lt;br /&gt;&lt;br /&gt;Redmine (&lt;a href="http://www.redmine.org/"&gt;http://www.redmine.org/&lt;/a&gt;) est un outil open source qui se présente lui même comme une application Web de gestion de projet.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d91qggHlEM/Sd0NFh2rGII/AAAAAAAAABA/c8QDN_lrbXM/s1600-h/redmine.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 110px;" src="http://1.bp.blogspot.com/_6d91qggHlEM/Sd0NFh2rGII/AAAAAAAAABA/c8QDN_lrbXM/s200/redmine.gif" alt="" id="BLOGGER_PHOTO_ID_5322424723259988098" border="0" /&gt;&lt;/a&gt; Redmine est par défaut orienté développement.&lt;br /&gt;Les demandes que l’on peut gérer sont des évolutions ou des anomalies. Mais il est très facile de créer de nouveaux trackers pour créer des demandes qui concernent des opérations à réaliser sur la plate-forme de test ou des épreuves de test afin d'adapter le vocabulaire et les attributs.&lt;br /&gt;&lt;br /&gt;Un outil de rapport permet d’afficher les demandes en filtrant les données selon les trackers et les attributs et de décider des colonnes à afficher. Les demandes qui ont une date de début et de fin sont présentes dans des vues calendrier ou gantt. Il est aussi possible de faire une gestion du temps passé sur ces demandes et de faire des synthèses.&lt;br /&gt;&lt;br /&gt;L’outil est bien adapté aux petits projets que sont les campagnes de tests de performance.&lt;br /&gt;&lt;br /&gt;Redmine permet de partager via un site Web toutes les informations qui contribuent à un projet de test :&lt;br /&gt;- les documents de spécification ou des rapports via l’onglet document&lt;br /&gt;- des informations de statut au jour le jour via les annonces&lt;br /&gt;- des informations plus permanences sur les tests réalisés, les informations techniques peuvent être notées dans le wiki&lt;br /&gt;- les résultats de test générés sous forme de pages Web peuvent être déployés dans la partie Web statique et référencés dans le wiki&lt;br /&gt;&lt;br /&gt;Redmine a aussi quelques fonctions d’intégration intéressantes.&lt;br /&gt;- il permet de gérer une liste de participants et d’envoyer automatiquement des mails via les annonces, lorsque des demandes sont crées ou changent,&lt;br /&gt;- il permet de s’interfacer avec des SCM tels que Subversion pour partager des sources d’utilitaires ou de script&lt;br /&gt;- il existe des plug-ins qui permettent de s’interfacer avec des outils d’intégration continue qui peuvent être utilisés pour générer automatiquement certains documents&lt;br /&gt;&lt;br /&gt;En fait j’ai décidé de tester Redmine après une campagne de test ou les participants étaient sur 5 sites en France et en Belgique et où je constatais que je passais une bonne partie de mon temps à renvoyer des informations de planning, des documents et des fichiers de suivi excel par mail à des gens nouvellement arrivés sur le projet ou remplaçant quelqu’un.&lt;br /&gt;&lt;br /&gt;Ce qui m’avait arrêtée jusque là pour utiliser des outils comme Trac c’était le temps nécessaire pour installer l’outillage. Je fais des campagnes sur des sites différents à chaque fois et je préfère voyager léger.&lt;br /&gt;&lt;br /&gt;Alors pourquoi Redmine ?&lt;br /&gt;&lt;br /&gt;Parce que c’est du Rails. InstantRails s’installe (enfin se dézippe) dans le bon répertoire en quelques minutes. Une fois copié l’application rails Redmine dans le bon répertoire, on démarre InstantRails, on lance deux scripts pour créer la base et l’initialiser et l’application est accessible. C’est magique !&lt;br /&gt;&lt;br /&gt;Il faut environ une demi journée pour avoir en place les utilisateurs, les sous projets, les trackers spécifiques et les tâches de base ... et beaucoup plus de tranquillité par la suite pour se concentrer sur les tests.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-1486646789712293469?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/1486646789712293469/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=1486646789712293469' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1486646789712293469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/1486646789712293469'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2008/10/utiliser-redmine-pour-gerer-les-tests.html' title='Utiliser Redmine pour gérer les tests'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d91qggHlEM/Sd0NFh2rGII/AAAAAAAAABA/c8QDN_lrbXM/s72-c/redmine.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-336059317591872028</id><published>2008-08-19T02:13:00.000-07:00</published><updated>2009-04-15T04:50:21.804-07:00</updated><title type='text'>Crayon Physics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kloonigames.com/blog/wp-content/uploads/2007/06/crayon_shot_01.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://www.kloonigames.com/blog/wp-content/uploads/2007/06/crayon_shot_01.jpg" border="0" alt="" /&gt;&lt;/a&gt; Un jeu tout mignon basé sur les principes de la physique&lt;br /&gt;&lt;br /&gt;Le but du jeu est de déplacer la balle rouge pour qu'elle attrape les étoiles.  La balle est déplacée en dessinant des objets qui interagissent avec la balle.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kloonigames.com/blog/games/crayon"&gt;http://www.kloonigames.com/blog/games/crayon&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-336059317591872028?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/336059317591872028/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=336059317591872028' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/336059317591872028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/336059317591872028'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2008/08/crayon-physics.html' title='Crayon Physics'/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5962517211271527432.post-3250392860868972769</id><published>2008-06-18T11:01:00.000-07:00</published><updated>2008-08-19T02:10:46.246-07:00</updated><title type='text'></title><content type='html'>&lt;div&gt;C'est bien les feed RSS, mais ouvrir Google Reader et apprendre Ebsbjörn Svensson est mort, ça casse un peu le moral.  Je suis triste et en vacances. ça me laisse plein de temps pour essayer des trucs. Pourquoi pas mon blog à moi, pour voir ?  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5962517211271527432-3250392860868972769?l=claude-falguiere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://claude-falguiere.blogspot.com/feeds/3250392860868972769/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5962517211271527432&amp;postID=3250392860868972769' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/3250392860868972769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5962517211271527432/posts/default/3250392860868972769'/><link rel='alternate' type='text/html' href='http://claude-falguiere.blogspot.com/2008/06/cest-bien-les-feed-rss-mais-ouvrir.html' title=''/><author><name>Claude Falguière</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
