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

<channel>
	<title>Mieux coder</title>
	<atom:link href="http://www.mieuxcoder.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mieuxcoder.com</link>
	<description>De l'art de créer de meilleurs logiciels</description>
	<pubDate>Fri, 25 Mar 2011 08:52:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Dis papa, comment ça marche Google et Amazon ?</title>
		<link>http://www.mieuxcoder.com/2008/08/31/dis-papa-comment-ca-marche-google-et-amazon/</link>
		<comments>http://www.mieuxcoder.com/2008/08/31/dis-papa-comment-ca-marche-google-et-amazon/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 18:00:11 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<category><![CDATA[Livres]]></category>

		<category><![CDATA[collective]]></category>

		<category><![CDATA[intelligence]]></category>

		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/?p=170</guid>
		<description><![CDATA[Et ouais ! Comment Google arrive-il à trouver en un temps record exactement ce que je recherche ? Et comment Amazon arrive-t-il à devinez les livres qui m&#8217;intéressent ?
Moi je sais ! Et vous ?
Si vous savez, passez par la case départ, prenez vos 20.000 Francs (ou 200 euros) et revenez la semaine prochaine  [...]]]></description>
			<content:encoded><![CDATA[<p>Et ouais ! Comment Google arrive-il à trouver en un temps record exactement ce que je recherche ? Et comment Amazon arrive-t-il à devinez les livres qui m&#8217;intéressent ?</p>
<p>Moi je sais ! Et vous ?<br />
Si vous savez, <a href="http://toutsurlemonopoly.free.fr/index.html" onclick="javascript:pageTracker._trackPageview ('/outbound/toutsurlemonopoly.free.fr');">passez par la case départ</a>, prenez vos 20.000 Francs (ou 200 euros) et revenez la semaine prochaine <img src='http://www.mieuxcoder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Donc, pour ceux qui ne savent pas, je vous conseille vivement la lecture de <a href="http://www.amazon.fr/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.fr%2FProgramming-Collective-Intelligence-Building-Applications%2Fdp%2F0596529325%3Fie%3DUTF8%26s%3Denglish-books%26qid%3D1220190559%26sr%3D8-1&amp;tag=codpeo-21&amp;linkCode=ur2&amp;camp=1642&amp;creative=6746" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.fr');">Programming Collective Intelligence</a>. Ce livre explore et vous explique en profondeur quelques-uns des algorithmes les plus utilisés dans les site Web 2.0.</p>
<p><a href="http://www.amazon.fr/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.fr%2FProgramming-Collective-Intelligence-Building-Applications%2Fdp%2F0596529325%3Fie%3DUTF8%26s%3Denglish-books%26qid%3D1220190559%26sr%3D8-1&amp;tag=codpeo-21&amp;linkCode=ur2&amp;camp=1642&amp;creative=6746" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.fr');"><img class="alignleft size-medium wp-image-172" title="Programming Collective Intelligence" src="http://www.mieuxcoder.com/data/2008/08/programmingcollectiveintelligence.png" alt="" width="228" height="299" /></a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.fr/e/ir?t=codpeo-21&amp;l=ur2&amp;o=8" border="0" alt="" width="1" height="1" /><br />
Vous trouverez donc dans ce livre un chapitre intitulé <em>Making Recommandations</em> qui vous explique comment les meilleurs sites Web 2.0 arrivent à savoir, en fonction de ce que vous leur avez dit que vous aimiez, ce qui pourrait vous plaire. Grâce aux algorithmes expliqués, vous comprendrez mieux comment <a href="http://www.amazon.fr" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.fr');">Amazon</a> vous recommande des articles, ou ce qui fait le succès de sites comme <a href="http://www.last.fm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.last.fm');">last.fm</a> ou <a href="http://www.ilike.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.ilike.com');">iLike.com</a>.</p>
<p>Ce livre traite également des moteurs de recherche dans le chapitre <em>Searching and Ranking</em>. L&#8217;algorithme <a href="http://fr.wikipedia.org/wiki/PageRank" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/fr.wikipedia.org');">PageRank</a>, sur lequel Google a bâti son empire, y est expliqué en détail. J&#8217;ai également appris dans ce chapitre comment utiliser des réseaux neuronaux pour améliorer les résultats d&#8217;une recherche en fonction des liens qui sont cliqués par les utilisateurs.</p>
<p>Un autre sujet qui m&#8217;a passionné dans ce livre concerne le filtrage de document. L&#8217;auteur détaille plusieurs algorithmes de classification, notamment le très célèbre <a href="http://fr.wikipedia.org/wiki/Filtrage_bay%C3%A9sien_du_spam" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/fr.wikipedia.org');">fitrage bayésien</a> qui sert à déterminer si un email est un spam ou pas.</p>
<p>Enfin, un autre chapitre qui m&#8217;a beaucoup intéressé, c&#8217;est celui traitant des modèles de prix. Ce chapitre explique comment déterminer le prix d&#8217;un article en fonction de ses caractéristiques quand on connait le prix d&#8217;autres articles. A la fin du chapitre, on utilise l&#8217;API de eBay pour connaitre le prix final d&#8217;enchères concernant des ordinateurs portables et pour prévoir le juste prix d&#8217;enchères en cours. En jouant avec le programme, je me suis ainsi rendu compte que les variables les plus importante sont la taille de l&#8217;écran du portable et&#8230; la date de fin d&#8217;enchère !</p>
<p>Bref ce livre est vraiment génial. L&#8217;auteur utilise tout au long du livre la même technique pédagogique qui permet de bien comprendre chaque sujet abordé:</p>
<ul>
<li>D&#8217;abord fixer un objectif (par exemple, connaitre la liste des films qui sont susceptible de me plaire)</li>
<li>Ensuite décrire et expliquer l&#8217;algorithme qui permet d&#8217;atteindre cet objectif</li>
<li>Enfin la réalisation d&#8217;un petit programme en <a href="http://fr.wikipedia.org/wiki/Python_(langage)" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/fr.wikipedia.org');">Python</a> illustrant le concept et permettant de jouer sur les différents paramètres de l&#8217;algorithme étudié. Si vous ne connaissez pas Python, c&#8217;est une bonne occasion pour s&#8217;y mettre !</li>
</ul>
<p>En conclusion, si vous œuvrez dans le monde du Web 2.0, ou si vous êtes juste curieux de nature, procurez-vous ce livre d&#8217;urgence.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/08/31/dis-papa-comment-ca-marche-google-et-amazon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ne faites pas comme ma banque!</title>
		<link>http://www.mieuxcoder.com/2008/08/26/ne-faites-pas-comme-ma-banque/</link>
		<comments>http://www.mieuxcoder.com/2008/08/26/ne-faites-pas-comme-ma-banque/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 21:00:50 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Ergonomie]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/?p=148</guid>
		<description><![CDATA[Ma banque a récemment refait le site Web permettant de gérer ses compte en ligne. La version précédente commençait effectivement à dater esthétiquement parlant, mais elle permettait de faire ce qu&#8217;on lui demande (à savoir gérer ses comptes) de manière efficace.
La nouvelle version du site est esthétiquement plus léchée. Par contre, c&#8217;est une catastrophe au [...]]]></description>
			<content:encoded><![CDATA[<p>Ma banque a récemment refait le site Web permettant de gérer ses compte en ligne. La version précédente commençait effectivement à dater esthétiquement parlant, mais elle permettait de faire ce qu&#8217;on lui demande (à savoir gérer ses comptes) de manière efficace.</p>
<p>La nouvelle version du site est esthétiquement plus léchée. Par contre, c&#8217;est une catastrophe au niveau de l&#8217;ergonomie. C&#8217;est clair, maintenant à chaque fois que je me connecte sur le site de ma banque, je peste. Je peste contre l&#8217;ergonomie de ce foutu site qui me fait cliquer pour m&#8217;afficher des pages que je ne veux pas voir.</p>
<p>Des explications s&#8217;imposent. Commençons par la page qui s&#8217;affichent une fois que l&#8217;on a passé la page de login.</p>
<h3>Mon Espace</h3>
<p><a href="http://www.mieuxcoder.com/data/2008/08/bp1.png" target="_blank"><img class="alignnone size-medium wp-image-149" title="Mon Espace" src="http://www.mieuxcoder.com/data/2008/08/bp1-66p.png" alt="" width="599" height="467" /></a></p>
<p>Cette page ne m&#8217;intéresse pas !</p>
<p>Elle comporte 3 grandes zones de contenu. La première zone intitulée <strong>Vous et votre agence</strong> m&#8217;indique le nom de mon conseiller financier et le nom de mon agence. Vous trouvez vraiment que c&#8217;est une information super capitale ? Personnellement, mon agence je la connais. C&#8217;est là que j&#8217;ai ouvert mon compte ! Idem pour mon conseiller financier. A la rigueur, la seule information intéressante de cette première zone est la date de ma dernière connexion, pour me permettre de savoir si quelqu&#8217;un a piraté mon compte.</p>
<p>La seconde zone intitulée <strong>Vos coordonnées</strong> est encore plus dénuée d&#8217;intérêt. Elle m&#8217;affiche mon numéro de téléphone et mon adresse email. Il faudra que je m&#8217;en souvienne&#8230; Si un jour j&#8217;oublie mon numéro de téléphone ou mon adresse email, je sais maintenant où je peux les récupérer !</p>
<p>Et on termine avec la troisième et la pire zone, sobrement intitulée <strong>Actualités</strong>, mais qui n&#8217;a jamais affiché autre chose que de la publicité.</p>
<p>Bref, la page d&#8217;accueil au lieu de contenir les informations qui m&#8217;intéresse, comme le solde de mes comptes, m&#8217;affiche des trucs complètement inintéressants. Ce portail me permet tout de même d&#8217;aller sur l&#8217;onglet <strong>Mes Comptes</strong> qui affiche ce qui m&#8217;intéresse.</p>
<h3>Mes Comptes</h3>
<p><a href="http://www.mieuxcoder.com/data/2008/08/bp2.png" target="_blank"><img class="alignnone size-medium wp-image-154" title="Mes Comptes" src="http://www.mieuxcoder.com/data/2008/08/bp2-66p.png" alt="" width="591" height="391" /></a></p>
<p>Cette page m&#8217;interesse, mais elle m&#8217;énerve au plus haut point !</p>
<p>Elle liste dans un tableau tous mes comptes bancaires. Le tableau comporte:</p>
<ul>
<li>une colonne non cliquable avec le numéro du compte</li>
<li>une colonne non cliquable avec le type du compte</li>
<li>une colonne cliquable intitulée <strong>Intitulé personalisable</strong></li>
<li>une colonne cliquable avec le solde du compte (ici 999 999,99 euros)</li>
</ul>
<p>Non je n&#8217;ai pas gagné au loto ! J&#8217;ai juste retouché l&#8217;image <img src='http://www.mieuxcoder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Mais revenons à nos moutons. A chaque fois que je visite ce site, je clique sur le lien <span style="text-decoration: underline;">Compte Principal</span> espérant arriver sur la page listant les opérations que j&#8217;ai effectuées sur mon compte. Et invariablement, j&#8217;arrive sur la page suivante:</p>
<p><a href="http://www.mieuxcoder.com/data/2008/08/bp3.png"><img class="alignnone size-medium wp-image-155" title="Personalisation de l\'intitulé" src="http://www.mieuxcoder.com/data/2008/08/bp3-66p.png" alt="" width="591" height="391" /></a></p>
<p>D&#8217;où ma frustration&#8230; à chaque fois j&#8217;arrive sur la page qui me permet de changer l&#8217;intitulé de mon compte. Pourtant je le sais&#8230; mais à chaque fois, je fais l&#8217;erreur. En fait, il faut cliquer sur le solde du compte pour avoir le détail des opérations. C&#8217;est pas anti-intuitif ça ? C&#8217;est pas anti-ergonomique ?</p>
<p>Si on réfléchit 5 minutes, il est évident que tout le monde doit faire la même erreur que moi. Nous sommes dans la page de gestion des comptes, on nous présente un lien qui porte le nom du compte que l&#8217;on veut voir&#8230; alors forcement on clique dessus !</p>
<p>A mon avis, la meilleure solution pour cette page est de laisser la colonne <strong>Intitulé personalisable</strong> mais de la rendre non cliquable, ou alors de la laisser cliquable mais avec le même lien que la colonne <strong>Solde</strong>, puis d&#8217;ajouter un lien <span style="text-decoration: underline;">Personnaliser les intitulé de vos comptes</span> en dessous du tableau, pour personnaliser tous les intitulé d&#8217;un coup.</p>
<p>Et selon vous, comment cette page devrait-elle être conçue ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/08/26/ne-faites-pas-comme-ma-banque/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flex, une technologie qu&#8217;elle est bien</title>
		<link>http://www.mieuxcoder.com/2008/08/24/flex-une-technologie-quelle-est-bien/</link>
		<comments>http://www.mieuxcoder.com/2008/08/24/flex-une-technologie-quelle-est-bien/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 13:00:35 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Autre]]></category>

		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/?p=144</guid>
		<description><![CDATA[Travailler sur une application Flex/Java c&#8217;est bien. Jouer avec une application Flex/Java c&#8217;est encore mieux.
Voici donc un petit billet juste pour vous dire qu&#8217;actuellement, je passe du bon temps en jouant aux échecs grâce à Flex, Java et ChessCube.

Pour passez un bon moment la recette est donc la suivante:

Prenez un jeu ancestral qui a fait [...]]]></description>
			<content:encoded><![CDATA[<p>Travailler sur une application Flex/Java c&#8217;est bien. Jouer avec une application Flex/Java c&#8217;est encore mieux.</p>
<p>Voici donc un petit billet juste pour vous dire qu&#8217;actuellement, je passe du bon temps en jouant aux échecs grâce à Flex, Java et <a href="http://www.chesscube.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.chesscube.com');">ChessCube</a>.</p>
<p><a href="http://www.chesscube.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.chesscube.com');"><img class="alignnone size-medium wp-image-145" title="ChessCube" src="http://www.mieuxcoder.com/data/2008/08/chesscube-300x235.png" alt="" width="300" height="235" /></a></p>
<p>Pour passez un bon moment la recette est donc la suivante:</p>
<ul>
<li>Prenez un jeu ancestral qui a fait ses preuves (les échecs)</li>
<li>Ajoutez-y un peu de Flex et de Java</li>
<li>Mélangez le tout</li>
<li>Arrosez le tout d&#8217;un peu de Web 2.0 avec de la gestion d&#8217;amis</li>
</ul>
<p>Et pour ceux qui n&#8217;aiment pas les échecs, je vous propose une recette équivalente à base de Tetris. Le site s&#8217;appelle <a href="http://www.iminlikewithyou.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.iminlikewithyou.com');">I&#8217;m in like with you</a> et permet de jouer à plusieurs petits jeux dont <a href="http://www.iminlikewithyou.com/#/arcade/gamelobby/blockles" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.iminlikewithyou.com');">Blockles</a>, un Tetris-like aussi bon que celui de la GameBoy.</p>
<p><a href="http://www.iminlikewithyou.com/#/arcade/gamelobby/blockles" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.iminlikewithyou.com');"><img class="alignnone size-medium wp-image-146" title="Blockles" src="http://www.mieuxcoder.com/data/2008/08/blockles-300x239.jpg" alt="" width="300" height="239" /></a></p>
<p>Attention, c&#8217;est démoniaque et ne vous fera pas <a href="http://www.mieuxcoder.com/2008/08/17/lecture-estivale/" target="_self">Gagner en efficacité</a>. Au contraire&#8230; votre productivité risque de chuter sérieusement ! Je vous aurais prévenu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/08/24/flex-une-technologie-quelle-est-bien/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lecture estivale</title>
		<link>http://www.mieuxcoder.com/2008/08/17/lecture-estivale/</link>
		<comments>http://www.mieuxcoder.com/2008/08/17/lecture-estivale/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 15:15:33 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Livres]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/?p=126</guid>
		<description><![CDATA[Cet été, pour progresser et devenir un bon développeur,  je me suis mis à la lecture. Le premier livre que j&#8217;ai lu s&#8217;intitule Gagner en efficacité.


Ce genre de bouquin, c&#8217;est le fondement de la société américaine, c&#8217;est le rêve Américain à porté de main, c&#8217;est ce que l&#8217;Amérique sait faire de mieux. Bref le [...]]]></description>
			<content:encoded><![CDATA[<p>Cet été, pour progresser et devenir <a href="http://www.mieuxcoder.com/2008/08/10/le-bon-developpeur-suite/" target="_self">un bon développeur</a>,  je me suis mis à la lecture. Le premier livre que j&#8217;ai lu s&#8217;intitule <a href="http://www.amazon.fr/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.fr%2FGagner-en-efficacit%25C3%25A9-Patrick-M-Georges%2Fdp%2F270813504X&amp;tag=codpeo-21&amp;linkCode=ur2&amp;camp=1642&amp;creative=6746" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.fr');">Gagner en efficacité</a>.</p>
<p><a href="http://www.amazon.fr/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.fr%2FGagner-en-efficacit%25C3%25A9-Patrick-M-Georges%2Fdp%2F270813504X&amp;tag=codpeo-21&amp;linkCode=ur2&amp;camp=1642&amp;creative=6746" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.fr');"><img class="alignnone size-full wp-image-135" title="Gagner en efficacité" src="http://www.mieuxcoder.com/data/2008/08/gagner-en-efficacite.jpg" alt="Gagner en efficacité" width="179" height="250" /></a></p>
<p><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.fr/e/ir?t=codpeo-21&amp;l=ur2&amp;o=8" border="0" alt="" width="1" height="1" /></p>
<p>Ce genre de bouquin, c&#8217;est le fondement de la société américaine, c&#8217;est le rêve Américain à porté de main, c&#8217;est ce que l&#8217;Amérique sait faire de mieux. Bref le pays de l&#8217;oncle Sam regorgent de bouquins de ce genre. En voici quelques exemples pêchés sur Amazon.com</p>
<ul>
<li><a href="http://www.amazon.com/Think-Like-Billionaire-Become/dp/1585881465/ref=pd_sim_b_13" id="purchaseShvlLink0" title="Think Like a Billionaire, Become a Billionaire (Hardcover)" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.com');"><span id="purchaseShvlTitle0" class="shvl-cell-title">Think Like a Billionaire, Become a Billionaire</span></a> (Pensez comme un milliardaire, devenez un milliardaire)</li>
<li><a href="http://www.amazon.com/Think-BIG-Kick-Business-Life/dp/0061547832/ref=pd_sim_b_97" id="purchaseShvlLink0" title="Think BIG and Kick Ass in Business and Life (Hardcover)" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.com');"><span id="purchaseShvlTitle0" class="shvl-cell-title">Think BIG and Kick Ass in Business and Life</span></a> (que l&#8217;on pourrait traduire par &#8220;Pensez GRAND et déchirez au boulot et dans la vie&#8221;)</li>
<li><a href="http://www.amazon.com/How-Get-Rich-Greatest-Entrepreneurs/dp/1591842050/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1218923930&amp;sr=1-1" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.com');"><span class="srTitle">How to Get Rich</span></a> (Comment devenir riche)</li>
<li><a href="http://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034/ref=pd_sim_b_7" id="purchaseShvlLink0" title="How to Win Friends &amp; Influence People (Paperback)" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.com');"><span id="purchaseShvlTitle0" class="shvl-cell-title">How to Win Friends &amp; Influence People</span></a> (Comment se faire des amis et influencer les gens)</li>
<li><a href="http://www.amazon.com/Maximum-Achievement-Strategies-Skills-Succeed/dp/0684803313/ref=pd_sim_b_55" id="purchaseShvlLink0" title="Maximum Achievement: Strategies and Skills That Will Unlock Your Hidden Powers to Succeed (Paperback)" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.com');"><span id="purchaseShvlTitle0" class="shvl-cell-title">Maximum Achievement: Strategies and Skills That Will Unlock Your Hidden Powers to Succeed</span></a></li>
<li>Et cetera, et cetera</li>
</ul>
<p>Bref, ce genre de livre est une spécialité du pays de l&#8217;ongle Sam, mais celui-ci semble avoir été écrit par un français: le Dr Patrick M. Georges. C&#8217;est un neurochirurgien, également un professeur de management, ou alors l&#8217;inverse !</p>
<p>Ce livre se lit très facilement. La première partie dresse une bonne liste de conseils réparties en plusieurs chapitre. Comme l&#8217;auteur l&#8217;explique dans son ouvrage, tous les conseils ne s&#8217;appliquent pas à tout le monde, mais ils semblent tous pertinents. La seconde partie est une serie de situations où il faut retrouver et appliquer les conseils de la première partie. Bref, cette seconde partie n&#8217;apporte rien, de même que la troisième qui n&#8217;est qu&#8217;un résumé des conseils énumérés lors de la première partie.</p>
<p>Mais revenons aux conseils de la première partie. J&#8217;en connais et j&#8217;en respecte déjà certains (waouh, trop fort le gars). Voici donc les conseils que j&#8217;applique déjà à la lettre.</p>
<h3>Buvez moins d&#8217;alcool</h3>
<p>Bon d&#8217;accord celle-ci est facile. <img src='http://www.mieuxcoder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Mais bon c&#8217;est pas de ma faute si je préfère un Orangina bien frais à un Chateau Margaux. Je sais je fais honte à tous les vignerons français.</p>
<h3>Protegez-vous des voix ! Elles perturbent fortement votre intelligence.</h3>
<p>Je suis 100% d&#8217;accord avec ce conseil et l&#8217;appliquer n&#8217;est pas un mince affaire. Je milite pour ne pas <a href="http://www.mieuxcoder.com/2007/11/01/des-developpeurs-dans-un-open-space/" target="_self">travailler dans un open-space</a> mais je travaille malgré tout dans un bureau de 6 personnes. Aussi, lorsque je veux m&#8217;isoler pour travailler, je mets mon casque de walkman (même sans musique parfois).</p>
<h3>Un visage humain dans votre champ visuel et votre intelligence est perturbée</h3>
<p>Idem que ci-dessus, ne pas travailler dans un open-space me permet d&#8217;éviter les distractions des gens qui passent. Et j&#8217;ai investi dans un grand <a href="http://www.amazon.fr/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.fr%2FSamsung-SyncMaster-Moniteur-millions-couleurs%2Fdp%2FB0018DNO2O%2F&amp;tag=codpeo-21&amp;linkCode=ur2&amp;camp=1642&amp;creative=6746" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.fr');">écran 24&#8243;</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.fr/e/ir?t=codpeo-21&amp;l=ur2&amp;o=8" border="0" alt="" width="1" height="1" /> pour ne pas voir la personne qui est en face de moi (et accessoirement pour avoir plus de pixels pour travailler).</p>
<p>Le livre contient également un grand nombre de conseils auxquels J&#8217;adhère complètement et que je compte mettre en pratique à partir de la rentrée. Je ne sais pas si j&#8217;arriverais à tous les appliquer, mais je compte m&#8217;y employer. Ces bons conseils sont les suivants</p>
<h3>Organisez une pause privée par jour</h3>
<p>Je sais que je ne prends pas assez de temps pour réfléchir dans la journée. J&#8217;agis beaucoup, je ré-agis (aux mails, aux sollicitations, etc), mais je ne réfléchis pas assez. Je vais essayer de m&#8217;aménager une pause d&#8217;une demi-heure dans ma journée de travail &#8220;coupé&#8221; du monde pour réfléchir. Bill Gates avait sa <a href="http://money.cnn.com/2006/03/30/news/newsmakers/gates_howiwork_fortune/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/money.cnn.com');">Think Week</a>, je vais essayer d&#8217;avoir ma demi-heure de réflexion.</p>
<h3>Ne commencez pas votre journée par la lecture de votre courrier. Vos objectifs ont priorité sur ceux des autres.</h3>
<p>Là j&#8217;ai tout faux car je fais ça tous les matins depuis 3 ans. C&#8217;est mon rituel, je réponds à mes mails le matin avant de commencer le travail. Comme, je fais ça le plus souvent au calme chez moi, Je sais que je pourrais consacrer ce temps où ma concentration est maximale à faire des travaux nécessitant de la concentration.</p>
<p>Je vais repousser la lecture de mes mails à la fin de la matinée. La demi-heure juste avant le repas étant régulièrement propices à dérangements (collègues qui reviennent de réunions, faim qui commence à se faire sentir, etc.)</p>
<h3>Donnez à votre équipe un objectif mesurable toutes les semaines.</h3>
<p>Le stress et la démotivation prennent racine dans l&#8217;incertitude. J&#8217;ai suffisamment participé à des projets sans roadmap pour avoir intégré cette notion. Je vais donc essayer de ne pas connaitre cette erreur et toujours fixer un objectif mesurable pour la semaine suivante.<br />
Ce conseil est facile à dire mais pas évident à tenir à mon avis ! Rendez-vous dans 3 mois pour un premier debriefing.</p>
<p>Il y a encore plein d&#8217;autres conseils que je pourrais mettre en pratique mais je ne voudrais pas spolier l&#8217;auteur de son travail, ni me fixer des objectifs trop ambitieux.<br />
En conclusion, je vous conseille donc vivement ce livre qui se lit d&#8217;un trait, mais qu&#8217;il faudra conserver comme livre de chevet et relire régulièrement pour être sur de bien appliquer les quelques conseils que vous pensez important.</p>
<p>Je pense vraiment que chacun peut s&#8217;améliorer en appliquant quelques uns des conseils présents dans ce livre.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/08/17/lecture-estivale/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Le bon developpeur - Suite</title>
		<link>http://www.mieuxcoder.com/2008/08/10/le-bon-developpeur-suite/</link>
		<comments>http://www.mieuxcoder.com/2008/08/10/le-bon-developpeur-suite/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 21:00:54 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<category><![CDATA[conseils]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/?p=113</guid>
		<description><![CDATA[Toujours dans le chapitre Le bon développeur, voici la suite !
Ne laissez pas sortir le cochon qui est en vous
Même avec les plus belles intentions du monde, il est rare de tenir ses bonnes résolutions plus longtemps que quelques semaines. Aussi, même si vous avez décidé d&#8217;être un peu plus perfectionniste à l&#8217;avenir, vous n&#8217;êtes [...]]]></description>
			<content:encoded><![CDATA[<p>Toujours dans le chapitre <a href="http://www.mieuxcoder.com/2008/08/05/le-bon-developpeur/">Le bon développeur</a>, voici la suite !</p>
<h3>Ne laissez pas sortir le cochon qui est en vous</h3>
<p><img class="alignright size-full wp-image-117" title="cochon" src="http://www.mieuxcoder.com/data/2008/08/cochon.png" alt="" width="175" height="281" />Même avec les plus belles intentions du monde, il est rare de tenir ses bonnes résolutions plus longtemps que quelques semaines. Aussi, même si vous avez décidé d&#8217;être un peu plus perfectionniste à l&#8217;avenir, vous n&#8217;êtes pas a l&#8217;abri d&#8217;un moment de faiblesse. Moment de faiblesse qui vous amènerait a écrire du code de cochon: pas relu, bourré de bugs, mal indenté, &#8230;</p>
<p>Pour vous mettre a l&#8217;abri de ce genre de relâchement, ne prenez qu&#8217;une seule bonne habitude:<br />
Faire relire votre code par une personne autre que vous.</p>
<p>Lorsque vous estimez avoir terminé une tache ou une fonctionnalité, présentez vos travaux à une personne pour qu&#8217;elle prenne le temps avec vous de les relire. Cette personne peut être un collègue plus expérimenté ou moins expérimenté que vous, une personne travaillant sur un autre projet, peu importe.</p>
<p>Cette validation a plusieurs bénéfices:</p>
<ul>
<li>Pendant que vous développez, elle agit comme une <a href="http://www.linternaute.com/expression/langue-francaise/88/l-epee-de-damocles/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.linternaute.com');">épée de Damoclès</a>, pour vous empêcher de laisser sortir le cochon qui sommeille en chaque développeur</li>
<li>Après le développement, elle permet de trouver des bugs ou des situations auxquels vous n&#8217;aviez pas pensé.</li>
<li>Elle permet aux autres personnes de savoir ce que vous avez développé et permet l&#8217;échange entre développeurs</li>
</ul>
<p>Je vous conseille également, lorsque vous sentez que vous avez cerné comment implémenter la fonctionnalité ou la tache que l&#8217;on vous demande (après la phase &#8220;casser la faisabilité&#8221;), d&#8217;aller voir un de vos collègues et de lui exposer votre manière de résoudre le problème. Cela permet parfois de mettre en lumière des problèmes dans la solution originale, et cela permet souvent de trouver une solution meilleure que celle initialement envisagée.</p>
<h3>Cherchez a progresser</h3>
<p>C&#8217;est bête a dire, mais je connais beaucoup de développeurs qui cherchent &#8220;juste&#8221; a faire leur travail du mieux qu&#8217;ils peuvent. C&#8217;est une stratégie qui marche bien à court-terme. Néanmoins, ils ne progresseront que de leurs erreurs, c&#8217;est à dire pas beaucoup.<br />
Si vous voulez vraiment progresser en tant que développeur, je vous encourage vivement à lire des livres sur votre temps libre.<br />
Il existe quelques classiques que tout développeur doit avoir lu.</p>
<p>Je vous encourage, par exemple a aller voir la <a href="http://www.codinghorror.com/blog/archives/000020.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.codinghorror.com');">liste que conseillait Jeff Atwood en 2004</a> sur son blog, ou la liste de <a href="http://www.codinghorror.com/blog/archives/001108.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.codinghorror.com');">ses 5 livres indispensables</a>. Le blog de Joël Spolsky passe également en revue <a href="http://www.joelonsoftware.com/navLinks/fog0000000262.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.joelonsoftware.com');">des livres recommandés</a>.</p>
<p>Lisez également des journaux, magazines, ou autres blogs qui vous permettrons de mieux appréhender le développement en général.<br />
Lire régulièrement vous permettra de faire évoluer vos connaissance car l&#8217;industrie informatique évolue très vite. Une bonne partie vos connaissances actuelles sera démodé dans 5 ans et complètement obsolète dans 10 ans.</p>
<h3>Répétez vos gammes</h3>
<p>En fait, c&#8217;est un peu faux. Il y a certaines choses qui ne seront pas forcement obsolètes dans 10 ans. Je pense aux bases de l&#8217;informatique: ce qu&#8217;on apprend dans les cursus informatiques.</p>
<p>Voici quelques notions que je considère importante pour faire un bon boulot de développeur:</p>
<ul>
<li>A quoi sert, comment fonctionne, et comment est implémenté: un tableau, une liste chaînée, une pile, une queue et une table de hachage</li>
<li> A quoi sert et comment fonctionne un ramasse-miettes</li>
<li> A quoi sert et comment fonctionne un thread; comment partager des ressources entre plusieurs threads (sémaphores, mutex, lock, &#8230;)</li>
<li> Comment marche les réseaux et Internet: TCP/IP, DNS, DHCP, SMTP, POP, VPN, SSL, HTTP, FTP, etc.</li>
<li>Connaître les principales attaques informatiques: Cross-Scripting, SQL injection, Buffer overrun, etc.</li>
<li>Savoir se servir d&#8217;une machine linux</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/08/10/le-bon-developpeur-suite/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Le bon developpeur</title>
		<link>http://www.mieuxcoder.com/2008/08/05/le-bon-developpeur/</link>
		<comments>http://www.mieuxcoder.com/2008/08/05/le-bon-developpeur/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 19:59:46 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<category><![CDATA[conseils]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/?p=102</guid>
		<description><![CDATA[Le bon développeur, c&#8217;est un gars on lui file un objectif, y code !
Tout le monde peut devenir un bon développeur
Dans une entreprise, la différence entre un bon et un médiocre développeur n&#8217;est pas à mon sens une affaire de neurones. Une brute en algorithmie peut finalement se relever être un développeur tout ce qu&#8217;il [...]]]></description>
			<content:encoded><![CDATA[<p>Le bon développeur, c&#8217;est un gars on lui file un objectif, y code !</p>
<h3>Tout le monde peut devenir un bon développeur</h3>
<p>Dans une entreprise, la différence entre un bon et un médiocre développeur n&#8217;est pas à mon sens une affaire de neurones. Une brute en algorithmie peut finalement se relever être un développeur tout ce qu&#8217;il y a de plus mauvais pour une entreprise.<br />
C&#8217;est plutôt dans l&#8217;attitude que l&#8217;on reconnaît les bons développeurs.</p>
<h3>Apprenez à maîtriser plusieurs langages</h3>
<p>Une personne parlant déjà couramment Français, Anglais et Allemand aura plus de facilité à apprendre le Néerlandais, qu&#8217;une personne ne parlant que le Français. Avec les langages de programmation, c&#8217;est pareil, plus vous en maîtrisez, plus il est facile d&#8217;en apprendre de nouveaux.</p>
<p>Je vous conseille donc de sauter sur l&#8217;occasion si on vous propose de participer à un projet utilisant un langage que vous ne connaissez pas encore. Si l&#8217;occasion ne se présente pas, provoquez-la en apprenant par vous même un langage à la mode.</p>
<p>L&#8217;idéal pour un développeur est de connaître au moins 1 ou 2 langages dans chacune des catégories suivantes:</p>
<ul>
<li>Langages bas niveau: C, assembleur, &#8230;</li>
<li>Langages Orienté Objets; Java, C#, <a href="http://www.eiffel.com" onclick="javascript:pageTracker._trackPageview ('/outbound/www.eiffel.com');">Eiffel</a>, &#8230;</li>
<li>Langages de Script: Python, JavaScript, Groovy, &#8230;</li>
<li>Langages Fonctionnel: <a href="http://fr.wikipedia.org/wiki/Ruby" onclick="javascript:pageTracker._trackPageview ('/outbound/fr.wikipedia.org');">Ruby</a>, <a href="http://fr.wikipedia.org/wiki/Erlang_%28langage%29" onclick="javascript:pageTracker._trackPageview ('/outbound/fr.wikipedia.org');">Erlang</a>, Caml, &#8230;</li>
</ul>
<p>Le fait de connaître plusieurs langages vous permettra de vous sentir à l&#8217;aise avec tout type de code, de connaître les forces et les faiblesses de chaque langage pour en tirer la quintessence.<br />
Le bon développeur sait donc qu&#8217;on ne programme pas de la même façon en Java et en C.</p>
<h3>Soyez Perfectionniste</h3>
<p>Je connais trop de gens qui se satisfont d&#8217;une interface graphique médiocre ou d&#8217;une fonction à moitié développée. Je répète souvent à l&#8217;envi que lorsqu&#8217;on développe une fonctionnalité, écrire le code qui fonctionne ne représente même pas la moitie du travail.</p>
<p><img class="alignnone size-full wp-image-105" title="brouillon ou au propre?" src="http://www.mieuxcoder.com/data/2008/08/brouillon-ou-au-propre.png" alt="" width="488" height="254" /></p>
<p>Prenez l&#8217;exemple d&#8217;une épreuve de philosophie lors du bac, il y a une différence entre rendre un brouillon et rendre une copie propre et relue (OK, ça ne vous empechera pas de vous prendre un 4/20, mais ça c&#8217;est une autre affaire).</p>
<p>A titre d&#8217;exemple, voici les étapes minimum que je m&#8217;essaye de m&#8217;imposer lorsque j&#8217;écris une nouvelle fonctionnalité:</p>
<ol>
<li>Casser la faisabilité, obtenir un premier code qui marche dans le cas nominal, en écrivant des tests unitaires si besoin.</li>
<li>Pour chaque instruction, relire le code et gerer tous les cas d&#8217;erreurs qui pourraient se presenter</li>
<li>Refactoriser et si besoin optimiser le code si besoin</li>
<li>Mettre au propre:<br />
- Enlever les bouts de code commentés qui ne servent plus à rien.<br />
- Revoir le nommage des variables et des noms de méthodes<br />
- Enlever les warnings de compilation si besoin<br />
- Commenter les bouts de code qui ne sont pas triviaux à comprendre</li>
<li>Committer le code sur l&#8217;outil de gestion de sources (CVS, SubVersion, &#8230;)</li>
</ol>
<p>Inutile d&#8217;etre perfectionniste quand ce n&#8217;est pas necessaire, sur un prototype jetable par exemple.<br />
En revanche, ne faites pas l&#8217;erreur classique d&#8217;abaisser votre niveau d&#8217;attente envers vous-même parce que le projet est en retard. C&#8217;est justement quand on est pressé que le premier jet est bourré de fautes !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/08/05/le-bon-developpeur/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Etes vous un mauvais développeur?</title>
		<link>http://www.mieuxcoder.com/2008/07/22/etes-vous-un-mauvais-developpeur/</link>
		<comments>http://www.mieuxcoder.com/2008/07/22/etes-vous-un-mauvais-developpeur/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 21:41:07 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/?p=95</guid>
		<description><![CDATA[Comme l&#8217;écrit Thibault sur son blog, il est aisé de reconnaitre les mauvais développeurs:
Mais au fond, qu’est-ce qu’un mauvais développeur? Intuitivement, nous savons les reconnaître quand nous les voyons (ou quand nous voyons leur code).
Parce que bon, le mauvais développeur, il doit écrire un programme, et ben, il code, tandis que le bon développeur, il [...]]]></description>
			<content:encoded><![CDATA[<p>Comme l&#8217;écrit Thibault sur son <a href="http://www.miximum.fr/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.miximum.fr');">blog</a>, il est aisé de <a href="http://www.miximum.fr/methodes-et-outils/81-comment-devenir-un-mauvais-developpeur" onclick="javascript:pageTracker._trackPageview ('/outbound/www.miximum.fr');">reconnaitre les mauvais développeurs</a>:</p>
<blockquote><p>Mais au fond, qu’est-ce qu’un mauvais développeur? Intuitivement, nous savons les reconnaître quand nous les voyons (ou quand nous voyons leur code).</p>
<p>Parce que bon, le mauvais développeur, il doit écrire un programme, et ben, il code, tandis que le bon développeur, il doit écrire un programme, bon… il code. Mais bon, c’est un bon développeur</p></blockquote>
<p>Au passage, si vous ne savez pas différenciez le bon chasseur et le mauvais chasseur, commencez par <a href="http://www.dailymotion.com/video/x27eb1_les-inconnus-les-chasseurs_fun" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.dailymotion.com');">revoir vos classiques</a>.</p>
<p>Et donc, d&#8217;après Thibault, le mauvais développeur a une furieuse tendance à:</p>
<ul>
<li>Recoder ce qui existe déjà</li>
<li>Écrire un code illisible</li>
<li>Écrire beaucoup de commentaires</li>
<li>Optimiser à mort</li>
</ul>
<p>Mais pas seulement. Je rajouterais qu&#8217;il a aussi quelques autres mauvaises habitudes:</p>
<h2>Il aime chercher les ennuis</h2>
<p>Il parle en français, il écrit en français (enfin un dialecte qui y ressemble, les fautes d&#8217;orthographe et de grammaire en plus), donc notre mauvais développeur code en français.</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #003399;">String</span> enlèveLesAccents<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> chaîne<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003399;">String</span> résultat <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span>;
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> conteur <span style="color: #339933;">=</span> 0; conteur <span style="color: #339933;">&amp;</span>lt; chaîne.<span style="color: #006633;">length</span>; conteur<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">char</span> caractère <span style="color: #339933;">=</span> chaîne<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'é'</span> || caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'è'</span> || caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'ê'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			caractère <span style="color: #339933;">=</span> e;
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'à'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			caractère <span style="color: #339933;">=</span> a;
		<span style="color: #009900;">&#125;</span>
		résultat <span style="color: #339933;">+=</span> caractère;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> résultat;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Pour celui qui est derrière, c&#8217;est juste pénible de taper les accents.<br />
Il aime donc nommer ses variables et ses méthodes dans la langue de Molière avec les accents et tout et tout. Mais parfois il code quand même en anglais&#8230;</p>
<h2>C&#8217;est un adepte du copier/coller</h2>
<p>Et oui, notre mauvais développeur code parfois en anglais&#8230; quand il pompe du code sur internet ! Ca ne le dérange pas de mettre l&#8217;une en dessous de l&#8217;autre deux méthodes qui ne sont pas codé dans la même langue, qui n&#8217;ont pas la même indentation, les mêmes conventions, etc.</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #003399;">String</span> enlèveLesAccents<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> chaîne<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003399;">String</span> résultat <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span>;
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> conteur <span style="color: #339933;">=</span> 0; conteur <span style="color: #339933;">&amp;</span>lt; chaîne.<span style="color: #006633;">length</span>; conteur<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">char</span> caractère <span style="color: #339933;">=</span> chaîne<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>;
   <span style="color: #666666; font-style: italic;">// Remove german accents</span>
   <span style="color: #000066; font-weight: bold;">char</span> c <span style="color: #339933;">=</span> caractère;
   <span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #0000ff;">'ü'</span><span style="color: #339933;">:</span> c <span style="color: #339933;">=</span> <span style="color: #0000ff;">'u'</span>; <span style="color: #000000; font-weight: bold;">break</span>;
   <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #0000ff;">'ä'</span><span style="color: #339933;">:</span> c <span style="color: #339933;">=</span> <span style="color: #0000ff;">'a'</span>; <span style="color: #000000; font-weight: bold;">break</span>;
   <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #0000ff;">'ö'</span><span style="color: #339933;">:</span> c <span style="color: #339933;">=</span> <span style="color: #0000ff;">'o'</span>; <span style="color: #000000; font-weight: bold;">break</span>;
   <span style="color: #009900;">&#125;</span>
		caractère <span style="color: #339933;">=</span> c;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'é'</span> || caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'è'</span> || caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'ê'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			caractère <span style="color: #339933;">=</span> e;
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>caractère <span style="color: #339933;">==</span> <span style="color: #0000ff;">'à'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			caractère <span style="color: #339933;">=</span> a;
		<span style="color: #009900;">&#125;</span>
		résultat <span style="color: #339933;">+=</span> caractère;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> résultat;
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Il aime la concision</h2>
<p>Le mauvais développeur aime les noms de variable et de méthode concis.</p>
<p>Franchement on comprend tout de suite que la méthode qui suit enlève les accents de la chaine passée en paramètre. Non?</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;">elvAct<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> c<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> ... <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Le mauvais développeur adore donc les acronymes et les abréviations, surtout quand peu de personnes les connaissent.</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> calcPZT<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> p1, <span style="color: #000066; font-weight: bold;">double</span> p2, <span style="color: #000066; font-weight: bold;">double</span> p4<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> ... <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Et quand l&#8217;imagination fait défaut, le mauvais développeur sait toujours s&#8217;en sortir pour nommer ses variables: v1, v2, v3, &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> calcPTU<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> p1, <span style="color: #000066; font-weight: bold;">int</span> p2, <span style="color: #000066; font-weight: bold;">double</span> p3<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">double</span> v1;
	<span style="color: #000066; font-weight: bold;">int</span> v2;
	<span style="color: #003399;">String</span> v3;
	<span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> v4;
	v2 <span style="color: #339933;">=</span> p2 <span style="color: #339933;">+</span> <span style="color: #cc66cc;">7</span>;
	v1 <span style="color: #339933;">=</span> p1<span style="color: #339933;">*</span>4.12d <span style="color: #339933;">+</span> p3;
	v3 <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">+</span> v2;
	v4 <span style="color: #339933;">=</span> v3.<span style="color: #006633;">getBytes</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">+</span> v4.<span style="color: #006633;">length</span>;
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Il aime les mystères</h2>
<p>Le mauvais développeur aime tester plusieurs versions de son algorithme, et aime laisser des lignes commentées sans qu&#8217;on sache pourquoi, ou bien indiquer ce qui ne marche pas sans explications.</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> calcPTU<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> p1, <span style="color: #000066; font-weight: bold;">int</span> p2, <span style="color: #000066; font-weight: bold;">double</span> p3<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">int</span> v2 <span style="color: #339933;">=</span> p2 <span style="color: #339933;">+</span> <span style="color: #cc66cc;">7</span>;
<span style="color: #666666; font-style: italic;">//	if (v2 &lt; 9) {</span>
<span style="color: #666666; font-style: italic;">//		v2 = 9;</span>
<span style="color: #666666; font-style: italic;">//	}</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">double</span> v1 <span style="color: #339933;">=</span> p1<span style="color: #339933;">*</span>4.12d <span style="color: #339933;">+</span> p3;
	<span style="color: #003399;">String</span> v3 <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">+</span> v2;
	<span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> v4 <span style="color: #339933;">=</span> v3.<span style="color: #006633;">getBytes</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #666666; font-style: italic;">// TODO: Si p1 vaut 7, alors la fonction ne retourne pas le</span>
<span style="color: #666666; font-style: italic;">// bon résultat, il faudrait corriger ça dans une prochaine version.</span>
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">+</span> v4.<span style="color: #006633;">length</span>;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Remarquez le test sur v2 commenté sans qu&#8217;on sache le pourquoi du comment. Le mauvais développeur aime être mystérieux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/07/22/etes-vous-un-mauvais-developpeur/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Améliorez vos estimations</title>
		<link>http://www.mieuxcoder.com/2008/07/16/ameliorez-vos-estimations/</link>
		<comments>http://www.mieuxcoder.com/2008/07/16/ameliorez-vos-estimations/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 21:54:36 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/2008/07/16/ameliorez-vos-estimations/</guid>
		<description><![CDATA[Pouvez vous me dire avec précision en combien de temps vous courez un 400 mètres?
La réponse est certainement non, si vous ne connaissez pas votre temps sur 400, 200 ou 100 mètres. L&#8217;avantage d&#8217;un athlète, c&#8217;est qu&#8217;il s&#8217;est déjà chronométré des centaines de fois sur ces distances.  Avec tout cet historique, il est capable [...]]]></description>
			<content:encoded><![CDATA[<p>Pouvez vous me dire avec précision en combien de temps vous courez un 400 mètres?</p>
<p>La réponse est certainement non, si vous ne connaissez pas <em>votre temps</em> sur 400, 200 ou 100 mètres. L&#8217;avantage d&#8217;un athlète, c&#8217;est qu&#8217;il s&#8217;est déjà chronométré des centaines de fois sur ces distances.  Avec tout cet historique, il est capable d&#8217;estimer avec précision le temps qu&#8217;il va mettre pour courir la distance en se référant au temps qu&#8217;il avait mis un jour comme celui d&#8217;aujourd&#8217;hui (même état de forme, même conditions climatiques, &#8230;) et en l&#8217;extrapolant légèrement si besoin.</p>
<p><img src="http://www.mieuxcoder.com/data/2008/07/pisteathletisme.jpg" /></p>
<p>Et l&#8217;informatique&#8230; c&#8217;est comme la course à pied. La première étape pour faire une bonne estimation du cout d&#8217;une nouvelle fonctionnalité, c&#8217;est d&#8217;avoir des données objectives sur le cout réel d&#8217;une tâche similaire.</p>
<p>Si vous n&#8217;avez pas l&#8217;habitude de noter toutes les estimations que vous faites, puis de les comparer avec le temps que vous avez effectivement mis pour réaliser cette tache, vous pouvez grandement améliorer vos estimations en suivant les quelques conseils suivants.</p>
<p>Avant de commencer une tache, je vous conseille donc de faire une estimation du temps requis pour effectuer cette tache. Ensuite réalisez la dite tache, puis notez le temps que vous avez mis pour effectivement réaliser la tache. Lorsque vous aurez réalisé une dizaine de tache de la sorte, vous aurez assez d&#8217;information pour calculer votre qualité relative d&#8217;estimation.</p>
<p><img src="http://www.mieuxcoder.com/data/2008/07/equation-er.png" /></p>
<p>Une qualité d&#8217;estimation relative supérieure à 1 signifie que vous êtes généralement un peu optimiste dans vos estimations. Si a l&#8217;inverse votre qualité d&#8217;estimation relative est inférieure à 1, vous êtes plutôt du genre pessimiste. Dans tous les cas, plus vos estimations sont justes, plus votre qualité d&#8217;estimation relative est proche de 1.<br />
Ne soyez pas surpris ou frustré si au début, votre qualité d&#8217;estimation est de l&#8217;ordre de 3 ou de 0.33, elle s&#8217;améliorera au fil du temps.</p>
<p>Une fois votre première qualité d&#8217;estimation relative calculée, lorsqu&#8217;on vous donnera une nouvelle tache à estimer, faites votre estimation en âme et conscience, puis calculez une estimation corrigée.</p>
<p><img src="http://www.mieuxcoder.com/data/2008/07/equation-ec.png" /></p>
<p>Cette estimation corrigée devrait normalement être plus proche du résultat final car elle compense votre relative pessimisme ou optimisme. Faites ainsi pour les 5 taches suivantes que vous donnera a réaliser, puis recalculez votre vélocité relative.</p>
<p><img src="http://www.mieuxcoder.com/data/2008/07/equation-er2.png" /></p>
<p>Et ainsi si de suite&#8230; jusqu&#8217;à ce que vous n&#8217;ayez plus besoin de compenser vos estimations tellement elles se révèlent exactes !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/07/16/ameliorez-vos-estimations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Estimez-vous!</title>
		<link>http://www.mieuxcoder.com/2008/06/30/estimez-vous/</link>
		<comments>http://www.mieuxcoder.com/2008/06/30/estimez-vous/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 05:00:51 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<category><![CDATA[estimation retard]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/2008/06/30/estimez-vous/</guid>
		<description><![CDATA[C&#8217;est le grand mal des projets informatiques ! Je connais peu de projets qui prennent vraiment au sérieux la phase d&#8217;estimation. C&#8217;est pourtant à partir de ces estimations que sont établis de beaux diagramme de gantt qui se révèlent faux dès la première semaine de développement. Or un projet mal estimé c&#8217;est un projet qui [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est le grand mal des projets informatiques ! Je connais peu de projets qui prennent vraiment au sérieux la phase d&#8217;estimation. C&#8217;est pourtant à partir de ces estimations que sont établis de beaux diagramme de gantt qui se révèlent faux dès la première semaine de développement. Or un projet mal estimé c&#8217;est un projet qui démarre mal dans la vie&#8230; il sortira certainement en retard ou bâclé.</p>
<p>Pourtant estimer est une tache difficile qui mérite qu&#8217;on s&#8217;y attarde un minimum. Voici un petit quizz inspiré de celui que vous pouvez lire dans <em><a href="http://www.amazon.fr/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.fr%2FSoftware-Estimation-Demystifying-Black-Art%2Fdp%2F0735605351%3Fie%3DUTF8%26s%3Denglish-books%26qid%3D1213996739%26sr%3D8-1&amp;tag=codpeo-21&amp;linkCode=ur2&amp;camp=1642&amp;creative=6746" onclick="javascript:pageTracker._trackPageview ('/outbound/www.amazon.fr');">Software Estimation</a><img src="http://www.assoc-amazon.fr/e/ir?t=codpeo-21&amp;l=ur2&amp;o=8" style="border: medium none  ! important; margin: 0px ! important" width="1" border="0" height="1" /></em> de <em>Steve McConnel</em>. Essayez d&#8217;y répondre de telle sorte que vos estimations vous donne 90% chance d&#8217;avoir la bonne réponse. Si vous ne connaissez pas une réponse, n&#8217;allez pas voir sur Wikipedia mais faite plutôt une estimation suffisamment large pour englober la bonne réponse avec 90% de chance.</p>
<p><a href="http://www.mieuxcoder.com/data/2008/06/estimation-quizz.html">Faire le quizz</a></p>
<p><a href="http://www.mieuxcoder.com/data/2008/06/estimation-quizz.html"><img src="http://www.mieuxcoder.com/data/2008/06/estimation-quizz.png" alt="Quizz Estimation" /><br />
</a></p>
<p>Si vous avez 9 bonnes réponses ou plus, bravo !<br />
Vous savez estimer avec une certitude de 90%.</p>
<p>Si vous avez 8 bonnes réponses ou moins, vous avez été un peu trop optimiste dans vos estimations. Vous avez essayé sur certaines questions de mettre une fourchette qui se rapproche au maximum de la bonne réponse. C&#8217;est tout à votre honneur mais mieux vaut toujours une estimation trop large qu&#8217;une estimation fausse !</p>
<p>Le developpeur est en effet une espèce (allez savoir pourquoi) de nature plutot optimiste. Quand on lui demande combien de temps ca lui prendra de rajouter la fonctionnalité n°245, il vous répondra qu&#8217;il suffit d&#8217;ajouter un bouton ici, un bout de code là et que le tour est joué. En bref: &#8220;En 2h c&#8217;est bouclé !&#8221;.<br />
Dans la réalité au bout de 3h de travail, c&#8217;est presque fini.. mais pas complètement: &#8220;Donnes-moi encore 15 minutes pour boucler l&#8217;affaire&#8221;. Au bout de 4h, ça y est ! C&#8217;est fini&#8230; sauf qu&#8217;il reste encore 2 ou 3 bugs à corriger pour que ça puisse être livré. Classiquement, il aura fallu 1 journée de travail pour implémenter la fonctionnalité alors que la tache avait été estimée à 2h.</p>
<p>Pourquoi se mettre dans une situation comme ça tout seul? Quand on vous demande d&#8217;estimer une tache, n&#8217;essayez pas de faire votre kéké pour impressionner la galerie (genre, moi je code plus vite que tout le monde) et essayez de faire l&#8217;estimation la plus juste.</p>
<p>Quelques conseils pour terminer:</p>
<ul>
<li>Si vous manquez d&#8217;information pour faire votre estimation, prenez le temps de réunir les informations qu&#8217;il vous faut. Ça peut être de faire un mini prototype, d&#8217;aller regarder le temps effectivement pris pour faire une tache similaire, etc.</li>
</ul>
<ul>
<li>Si votre chef insiste pour vous faire baisser votre estimation, ne soyez pas politiquement correct. Dites-lui que vous pensez sincèrement que votre estimation est juste et qu&#8217;il peut consulter ses archives pour voir qu&#8217;une tache de ce genre prend effectivement le temps que vous avez estimé (et si votre chef ne garde pas un historique de chaque tache, avec l&#8217;estimation et le temps effectivement requis, demandez-lui de commencer à le faire.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/06/30/estimez-vous/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bouton ou hyperlien?</title>
		<link>http://www.mieuxcoder.com/2008/06/16/bouton-ou-hyperlien/</link>
		<comments>http://www.mieuxcoder.com/2008/06/16/bouton-ou-hyperlien/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 07:00:46 +0000</pubDate>
		<dc:creator>aranud</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[design bouton hyperlien]]></category>

		<guid isPermaLink="false">http://www.mieuxcoder.com/2008/06/16/bouton-ou-hyperlien/</guid>
		<description><![CDATA[Quand on développe une application Internet riche en HTML/AJAX, Flex ou Silverlight, nous sommes à la croisée des chemins, entre pages Web et applications riches.
Et quand vient l&#8217;heure d&#8217;ajouter un bouton à l&#8217;application, je me pose toujours la question de savoir s&#8217;il vaut mieux mettre un bouton qui ressemble à un&#8230;bouton, ou bien un bouton [...]]]></description>
			<content:encoded><![CDATA[<p>Quand on développe une application Internet riche en HTML/AJAX, Flex ou Silverlight, nous sommes à la croisée des chemins, entre pages Web et applications riches.</p>
<p>Et quand vient l&#8217;heure d&#8217;ajouter un bouton à l&#8217;application, je me pose toujours la question de savoir s&#8217;il vaut mieux mettre un bouton qui ressemble à un&#8230;bouton, ou bien un bouton qui ressemble à un hyperlien.</p>
<p><img src="http://www.mieuxcoder.com/data/2008/06/clickme.png" alt="Cliquez moi" /></p>
<p>On peut considerer que les hyperliens ont pour unique fonction d&#8217;amener l&#8217;utilisateur sur une nouvelle page HTML dans le navigateur. C&#8217;est leur vocation première et devrait donc rester leur vocation unique. Mais les applications Internet riches ont de ceci de particulier qu&#8217;elles n&#8217;ont en fait qu&#8217;une seule page qui peut changer du tout au tout. Un clic sur un bouton dans une telle application peut donc - meme si l&#8217;adresse de la page ne change pas - amener sur une autre interface graphique que l&#8217;on pourrait considérer comme une nouvelle page.</p>
<p>On pourrait donc utiliser les hyperliens dans les applications Internet riches quand l&#8217;action qui se trouve derrière le bouton va le faire changer d&#8217;interface graphique.</p>
<p><a href="http://www.mieuxcoder.com/data/2008/06/hyperlinkorbutton2.png"><img src="http://www.mieuxcoder.com/data/2008/06/hyperlinkorbutton2-thumbnail.png" /></a></p>
<p>Au niveau de l&#8217;ergonomie, on peut aussi remarquer que les boutons sont beaucoup plus voyant que les hyperliens. On pourrait donc réserver les boutons aux actions que l&#8217;on veut mettre en valeur, et mettre des hyperliens pour les actions que l&#8217;on ne veut pas mettre en avant.</p>
<p>Regardez l&#8217;interface de Google Analytics permettant de choisir une date et remarquez comme la commande <strong>Apply</strong> utilise un bouton et la commande <strong>Cancel</strong>, un hyperlien (Et pour mettre cette dernière encore moins en avant, notez que le mot cancel ne commence pas par une majuscule).</p>
<p><img src="http://www.mieuxcoder.com/data/2008/06/hyperlinkorbutton1.png" alt="Bouton ou hyperlien? les deux!" /></p>
<p>Que pensez-vous de cette utilisation des hyperliens dans les applications Internet riches ? Est-ce intuitif ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mieuxcoder.com/2008/06/16/bouton-ou-hyperlien/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

