The Daily WTF: Edition Française fr.thedailywtf.com/ Curious Perversions in Information Technology Jocelyn Demoy Message d'erreur: Il n'y en aura pas pour tout le monde ! syndication.thedailywtf.com/~r/WTF/FR/~3/yTDd1w6KXjc/Il-ny-en-aura-pas-pour-tout-le-monde-!.aspx Message d'erreur Wed, 02 Sep 2009 05:00:00 GMT 6667 <p>En effet, il y en a m&ecirc;me plus du tout (<strong>Will</strong>)</p> <p><img src="/img/spacer.gif"> 11 fr.thedailywtf.com/Comments/Il-ny-en-aura-pas-pour-tout-le-monde-!.aspx fr.thedailywtf.com/Articles/Il-ny-en-aura-pas-pour-tout-le-monde-!.aspx Jocelyn Demoy Entretiens d'embauche: Le test de la question technique (T) syndication.thedailywtf.com/~r/WTF/FR/~3/NaGWpLep1y0/Le-test-de-la-question-technique-(T).aspx Entretiens d'embauche Fri, 07 Aug 2009 05:00:00 GMT 6644 <p><img style="margin: 5px; float: right;" src="/img/spacer.gif"> 13 fr.thedailywtf.com/Comments/Le-test-de-la-question-technique-(T).aspx fr.thedailywtf.com/Articles/Le-test-de-la-question-technique-(T).aspx Jocelyn Demoy Message d'erreur: Les Experts syndication.thedailywtf.com/~r/WTF/FR/~3/uqpPlnaxJcs/Les-Experts.aspx Message d'erreur Wed, 05 Aug 2009 05:00:00 GMT 6647 <p>Hier soir j'ai regard&eacute; l'&eacute;pisode des experts miami &quot;Au rythme des balles&quot;. J'ai tout particuli&egrave;rement appr&eacute;ci&eacute; le passage ou les &quot;experts&quot; utilisent un programme permettant d'obtenir une <em>adresse ip</em> &agrave; partir d'une simple adresse email.</p> <p>Rien a dire, le proxy du suspect &eacute;tait vraiment vraiment puissant...</p> <p style="margin-left: 40px;"><img src="/img/spacer.gif"> 33 fr.thedailywtf.com/Comments/Les-Experts.aspx fr.thedailywtf.com/Articles/Les-Experts.aspx Jocelyn Demoy Code du jour: Ca peut paraitre redondant et stupide ... syndication.thedailywtf.com/~r/WTF/FR/~3/WAUFTy4OzgU/Ca-peut-paraitre-redondant-et-stupide-.aspx Code du jour Fri, 31 Jul 2009 05:00:00 GMT 6643 <p><img style="float: right; margin: 5px; px; px" src="/img/spacer.gif"> 8 fr.thedailywtf.com/Comments/Ca-peut-paraitre-redondant-et-stupide-.aspx fr.thedailywtf.com/Articles/Ca-peut-paraitre-redondant-et-stupide-.aspx Jocelyn Demoy Code du jour: On ne sait jamais... syndication.thedailywtf.com/~r/WTF/FR/~3/9UnCmV-GrDc/On-ne-sait-jamais.aspx Code du jour Thu, 30 Jul 2009 05:00:00 GMT 6641 <p>Voici une fonction qui est <em>utilis&eacute;e partout </em>dans le projet dans lequel travaille <strong>Aline</strong>. Elle permet de s'assurer que VB.NET ne va pas transformer la cha&icirc;ne de caract&egrave;res en param&egrave;tre en autre chose...</p> <p> &nbsp; &nbsp;Private Function AttrToString(ByVal Value As String) As String<br /> &nbsp; &nbsp; &nbsp; &nbsp;Dim sRet As String<br /> &nbsp; &nbsp; &nbsp; &nbsp;sRet = &quot;&quot; &amp; Value<br /> &nbsp; &nbsp; &nbsp; &nbsp;Return sRet<br /> &nbsp; &nbsp;End Function</p> <p><a class="feedads.g.doubleclick.net/~a/iAXPQlFVxR_RQ8r28thWN8vshms/0/da"><img src="/img/spacer.gif"> 8 fr.thedailywtf.com/Comments/On-ne-sait-jamais.aspx fr.thedailywtf.com/Articles/On-ne-sait-jamais.aspx Jocelyn Demoy Code du jour: Pour le budget 2010 (T) syndication.thedailywtf.com/~r/WTF/FR/~3/u4nl4fNdBPg/Pour-le-budget-2010-(T).aspx Code du jour Thu, 28 May 2009 05:00:00 GMT 6589 <p><img style="margin: 5px; float: right;" src="/img/spacer.gif"> 11 fr.thedailywtf.com/Comments/Pour-le-budget-2010-(T).aspx fr.thedailywtf.com/Articles/Pour-le-budget-2010-(T).aspx Jocelyn Demoy Code du jour: Mot de passe oublié (T) syndication.thedailywtf.com/~r/WTF/FR/~3/dRXR6QIg_Ig/Mot-de-passe-oublie-(T).aspx Code du jour Wed, 27 May 2009 05:00:00 GMT 6578 <p>Mot de passe oubli&eacute;? Pas de soucis, vous pouvez toujours utiliser le mot de passe d'invitation que l'on vous a envoy&eacute; lors de la cr&eacute;ation de votre compte !</p> <p>Envie d'essayer avec un autre compte? Pas de soucis, vous pouvez utiliser ce m&ecirc;me mot de passe pour vous connecter sous chaque compte !</p> <pre style="margin-left: 40px;"> CREATE PROCEDURE [spAUTH] @EMAIL VARCHAR(100), @PSWD VARCHAR(20) AS SELECT USER_ID, FIRST_NAME + ' ' + LAST_NAME AS FULL_NAME, EMAIL, PSWD FROM USER WHERE (IS_ACTIVE = 1) AND (IS_DELETED = 0) AND (EMAIL = @EMAIL) AND (PSWD = @PSWD) UNION SELECT USER_ID, FIRST_NAME + ' ' + LAST_NAME AS FULL_NAME, EMAIL, PSWD FROM USER WHERE (IS_ACTIVE = 1) AND (IS_DELETED = 0) AND (EMAIL = @EMAIL) AND (DBO.GET_INVITATION_PWD() = @PSWD) </pre> <p>Apr&egrave;s avoir r&eacute;cup&eacute;r&eacute; du choc li&eacute; &agrave; la vision de ce code, <strong>Ben </strong>ajouta : &quot; J'ai v&eacute;rifi&eacute;, DBO.GET_INVITATION_PWD() n'a pas &eacute;t&eacute; mis &agrave; jour depuis qu'il a &eacute;t&eacute; cr&eacute;&eacute;, il y a plus de deux ans&quot;.</p> <p><a class="feedads.g.doubleclick.net/~a/_CqqtAtYDGO7-adEs_lYNP0bTFc/0/da"><img src="/img/spacer.gif"> 1 fr.thedailywtf.com/Comments/Mot-de-passe-oublie-(T).aspx fr.thedailywtf.com/Articles/Mot-de-passe-oublie-(T).aspx Jocelyn Demoy Code du jour: Barnier ne peut pas se connecter (T) syndication.thedailywtf.com/~r/WTF/FR/~3/MBV3wTA07e8/Barnier-ne-peut-pas-se-connecter-(T).aspx Code du jour Tue, 19 May 2009 16:00:00 GMT 6576 <p>&quot;Barnier ne peut pas se connecter,&quot; lan&ccedil;a le responsable de <strong>David</strong>, &quot;Il faut r&eacute;parer &ccedil;a. De suite !&quot;</p> <p>Quelle meilleure fa&ccedil;on de commencer une semaine? Quand Barnier ne pouvait pas se connecter, cela sous-entendait qu'il ne pouvait pas ex&eacute;cuter ses rapports d'activit&eacute;. Et &ccedil;a sous-entendait aussi que la soci&eacute;t&eacute; toute enti&egrave;re devait stopper toute activit&eacute; et se concentrer sur son nouvel objectif archi prioritaire : les rapports de Barnier.</p> <p>A contrecoeur, David appela Barnier. Comme pr&eacute;vu, celui-ci n'&eacute;tait pas content du tout. &quot;Ca n'arr&ecirc;te pas de me demander mon foutu code PIN,&quot; jurait Barnier, &quot;Pourquoi est-ce que je dois tout le temps le retaper ce satan&eacute; code PIN? Il me faut absolument ces rapports!&quot;.</p> <p>Pour des raisons inconnues, le syst&egrave;me de reporting de la soci&eacute;t&eacute; utilisait un code PIN de quatre chiffres pour authentifier ses utilisateurs. David s&eacute;lectionna son nom dans la liste des logins, et saisit son code PIN : 7734. Et le syst&egrave;me fonctionna &agrave; merveille. Enfin, aussi merveilleusement que ce vieux syst&egrave;me de reporting PHP le permettait.</p> <p>Personne n'avait touch&eacute; au code depuis des ann&eacute;es, David pensa donc que le probl&egrave;me venait du navigateur web de Barnier. Peut-&ecirc;tre un probl&egrave;me de fichier cache? De zone de confiance? Cookies d&eacute;sactiv&eacute;s? Fichiers corrompus? David essaya toutes ces possibilit&eacute;s en vain, Barnier devenait de plus en plus &eacute;nerv&eacute;.</p> <p>&quot;Ou sont mes rapports?&quot; Insista Barnier, &quot;Je les veux tout de suite&quot;.</p> <p>Sur un coup de t&ecirc;te David demanda &agrave; Barnier quel &eacute;tait son code PIN. &quot;Hmphf&quot;, toussa Barnier, &quot;Je viens juste de le changer, et maintenant il va encore falloir que je le change ! Mon foutu code PIN est 0010!&quot;</p> <p>Et l&agrave;, dans la t&ecirc;te de David, ce fut le d&eacute;clic. Il cr&eacute;a un nouvel utilisateur, lui sp&eacute;cifia le code PIN &quot;0010&quot; et se connecta avec. Il navigua ensuite sur le site, puis attendit pendant dix secondes pour recliquer sur un lien&hellip; avant d'&ecirc;tre &eacute;ject&eacute; sur la mire de login.</p> <p>Pour confirmer son soup&ccedil;on, il jeta un coup d'oeil au code...</p> <p>&nbsp;</p> <pre style="margin-left: 40px;"> $_SESSION['TIMEOUT'] = $this-&gt;getTimeOut(); </pre> <p>&nbsp;</p> <p>Creusant un peu plus loin, David rechercha la fonction getTimeOut...</p> <p>&nbsp;</p> <pre style="margin-left: 40px;"> function getTimeOut() { return $_POST['pin_number']; } </pre> <p>&nbsp;</p> <p>Craignant de d&eacute;molir le vieux syst&egrave;me PHP, David remis le code PIN de Barnier &agrave; 1337 et lui conseilla de ne plus jamais le changer pour une valeur inf&eacute;rieure &agrave; 1000...</p> <p><a class="feedads.g.doubleclick.net/~a/WGIawffjuSOGjGUBKG7L5_Zy0Ks/0/da"><img src="/img/spacer.gif"> 11 fr.thedailywtf.com/Comments/Barnier-ne-peut-pas-se-connecter-(T).aspx fr.thedailywtf.com/Articles/Barnier-ne-peut-pas-se-connecter-(T).aspx Jocelyn Demoy Code du jour: Trop de fonctions (T) syndication.thedailywtf.com/~r/WTF/FR/~3/sKyHrlt1vBw/Trop-de-fonctions-(T).aspx Code du jour Mon, 23 Mar 2009 05:00:00 GMT 6499 <p>Comme il &eacute;tait le plus exp&eacute;riment&eacute; de son groupe lorsque l'on parlait de C#, c'est souvent &agrave; <strong>Yakir</strong> que les d&eacute;veloppeurs posaient leurs questions. R&eacute;cemment, un de ses coll&egrave;gues, James, lui demanda la meilleure fa&ccedil;on de stocker des centaines d'objets en m&eacute;moire. Yakir lui r&eacute;pondit : &quot;Cela d&eacute;pend de ce que tu souhaites en faire. Si tu veux l'utiliser via un index, le plus simple c'est l'Arraylist. Par contre, si tu veux utiliser le syst&egrave;me de cl&eacute;/valeur, alors prend une Hashtable.&quot;</p> <p>Les besoins de l'application de James semblaient mieux coller avec l'utilisation d'une Hashtable, il d&eacute;cida donc de l'impl&eacute;menter. Quelques heures plus tard, il revint vers Yakir : &quot;Ton syst&egrave;me de Hashtable ne marche pas super&quot; expliqua James, &quot;Tu ne connais pas quelque chose de plus efficace?&quot;.</p> <p>&nbsp;&quot;Euuu&quot;, r&eacute;pondit Yakir, &quot;rien n'est vraiment plus efficace qu'une Hashtable. Quel est exactement ton probl&egrave;me?&quot;</p> <p>&quot;C'est juste trop lent&quot;, r&eacute;pondit James, &quot;D&egrave;s que j'ai des donn&eacute;es dans ma liste il faut presque cinq secondes pour ajouter, retirer ou retrouver un &eacute;l&eacute;ment.&quot;</p> <p>A ce moment Yakir sut qu'il y avait un probl&egrave;me et d&eacute;cida de jeter un petit coup d'&oelig;il au code de James, voici ce qu'il vit :</p> <pre> class HashTable { public object[] keys; public object[] values; public HashTable() { keys = new object[0]; values = new object[0]; } public void Add(object key, object value) { Array.Resize(ref keys, keys.Length + 1); Array.Resize(ref values, values.Length + 1); keys[keys.Length - 1] = key; values[values.Length - 1] = value; } public void Remove(object key) { object[] tempKeys = new object[0]; object[] tempValues = new object[0]; for (int i = 0; i &lt;= keys.Length - 1; i++) { if (!keys[i].Equals(key)) { Array.Resize(ref tempKeys, tempKeys.Length + 1); Array.Resize(ref tempValues, tempValues.Length + 1); tempKeys[tempKeys.Length - 1] = keys[i]; tempValues[tempValues.Length - 1] = values[i]; } } keys = tempKeys; values = tempValues; } public object GetItem(object key) { for (int i = 0; i &lt;= keys.Length - 1; i++) { if (keys[i].Equals(key)) { return values[i]; } } return null; } public int NumberOfItems { get { return keys.Length; } } } </pre> <p>&quot;Oula!&quot; dit Yakir. &quot; Mais pourquoi tu n'as pas utilis&eacute; les Hashtables du Framework .net? Tu sais, celle de System.Collections dont je t'ai parl&eacute;.&quot;</p> <p>&quot;J'ai jet&eacute; un coup d'&oelig;il&quot;, expliqua James, &quot;mais il y avait trop de fonctions, ce qui signifie que la collection aurait &eacute;t&eacute; plus lente. Ma classe elle ne contient que 3 fonctions, c'est donc plus efficace.&quot;</p> <p><a class="feedads.g.doubleclick.net/~a/c8kVxuwtAHauk5nLGbC0-8mKXTo/0/da"><img src="/img/spacer.gif"> 10 fr.thedailywtf.com/Comments/Trop-de-fonctions-(T).aspx fr.thedailywtf.com/Articles/Trop-de-fonctions-(T).aspx Jocelyn Demoy Article de fond: Notepad Translation Error (T) syndication.thedailywtf.com/~r/WTF/FR/~3/lRIkXjUEq3g/Notepad-Translation-Error-(T).aspx Article de fond Fri, 13 Mar 2009 05:00:00 GMT 6494 <p>Savoir rejetter une faute sur un tiers est un art puissant qui n&eacute;cessite d'&ecirc;tre utilis&eacute; avec agilit&eacute;. Dans certains cas la situation rend la chose plut&ocirc;t simple. On peut citer le classique &quot;C'est &agrave; cause du prestataire mais lui en parle pas &ccedil;a le mettrait mal &agrave; l'aise&quot;, o&ugrave; encore le &quot;Ha &ccedil;a .... encore une peau de banane que X a laiss&eacute; derri&egrave;re lui&quot; (remplacez le X par un coll&egrave;gue parti, vous noterez le bonus x2 lorsque le coll&egrave;gue est prestataire). Certains font preuve d'une imagination incroyable pour r&eacute;ussir &agrave; se sortir des pires situations, parfois &ccedil;a passe, parfois pas. La r&egrave;gle d'or est pourtant simple : s'assurer de bien cerner les limites des connaissances de son interlocuteur, et lui envoyer un argument hors limite avec un aplomb sans faille. Malheureusement pour eux, les &eacute;diteurs du logiciel que <strong>Rick </strong>utilisait n'ont pas fix&eacute; cette limite bien loin...</p> <p>Depuis plusieurs jours, Rick &eacute;tait en conflit avec un &eacute;diteur de logiciel. Le syst&egrave;me de Rick &eacute;tait sens&eacute; communiquer avec le logiciel de l'&eacute;diteur en utilisant des fichiers XML. Probl&egrave;me, les fichiers en provenance du syst&egrave;me &eacute;diteur revenaient dans un format XML incorrect. Rick envoya donc un message au contact technique (&quot;Terry&quot;) signalant que les donn&eacute;es retourn&eacute;es n'&eacute;taient pas valides. Terry lui r&eacute;pondit qu'il allait analyser le fichier en question.</p> <p>Le probl&egrave;me que Rick avait d&eacute;couvert concernait le format des quotes d'un des attributs du fichier XML. En effet, l'un d'entre eux avait des simples quotes alors que le reste du fichier &eacute;tait bien en double quote. Terry r&eacute;pondit que le fichier XML utilisait uniquement des doubles quotes et pour soutenir son propos, il envoya &agrave; Rick des copies d'&eacute;cran issues de XMLSpy et d'IE montrant que le fichier &eacute;tait effectivement uniquement compos&eacute; de doubles quotes.</p> <p style="margin-left: 40px;"><img src="/img/spacer.gif"> 4 fr.thedailywtf.com/Comments/Notepad-Translation-Error-(T).aspx fr.thedailywtf.com/Articles/Notepad-Translation-Error-(T).aspx Jocelyn Demoy Code du jour: Developpeur 1, Crise 0 syndication.thedailywtf.com/~r/WTF/FR/~3/Ic7rGqqvi2c/Developpeur-1,-Crise--0.aspx Code du jour Tue, 10 Mar 2009 04:30:00 GMT 6486 <p><img src="/img/spacer.gif"> 7 fr.thedailywtf.com/Comments/Developpeur-1,-Crise--0.aspx fr.thedailywtf.com/Articles/Developpeur-1,-Crise--0.aspx Jocelyn Demoy Article de fond: Requête futile (T) syndication.thedailywtf.com/~r/WTF/FR/~3/LI1xH9hJxJI/Requête-futile-(T).aspx Article de fond Fri, 06 Mar 2009 06:00:00 GMT 5903 <p>Je suis s&ucirc;r que nous avons tous des histoires de projets cauchemardesques que nous h&eacute;ritons de nos clients. Que ce soit un programme critique &eacute;crit (en JavaScript) par le cousin de la secr&eacute;taire, ou un projet o&ugrave; on laisse les utilisateurs faire eux-m&ecirc;mes l'analyse de leur outil de gestion de production.<strong> Jakeypoo</strong> nous fait partager un de ses pires cauchemars :</p> <p>Imaginez ma surprise quand je suis tomb&eacute; sur un de ces projets avec ses pages ASP bien &eacute;crites et comment&eacute;es : Je me suis dit que &ccedil;a allait &ecirc;tre facile.</p> <p>Mon boss me demanda que l'on se mette ensemble &agrave; travailler sur le diagramme de la base comme &ccedil;a il serait capable de se r&eacute;f&eacute;rer aux noms de colonnes, cl&eacute;s, etc. Je lan&ccedil;ais notre logiciel de mod&eacute;lisation de base et d&eacute;couvris avec horreur le nom des tables en cours de traitement.</p> <blockquote><em>Cn.&nbsp; CnAdr.&nbsp; CnAdrPrf.&nbsp; CnAdrPrfPh_1.&nbsp; CnAdrSal.&nbsp; CnAttr... (ca rame ...)</em><br /> <em> CnRelEdu_1Attr.&nbsp; CnRelEdu_1AttrCat_1.</em></blockquote> <p>&nbsp;</p> <p>Pas de cl&eacute;s &eacute;trang&egrave;res? Ok, ce n&rsquo;est pas grave. Fallait bien s'y attendre, continuons. Pas... pas de cl&eacute;s primaires? Dans aucune des tables ?<br /> Ok Jake. T'es un mec astucieux, regarde le diagramme. La table &quot;Cn&quot; (Centre nerveux?) semble plut&ocirc;t importante. Regardons ce que nous avons l&agrave;.</p> <p>&nbsp;</p> <blockquote> <img src="/img/spacer.gif"> 9 fr.thedailywtf.com/Comments/Requête-futile-(T).aspx fr.thedailywtf.com/Articles/Requête-futile-(T).aspx Jocelyn Demoy Article de fond: Sauvegarde Ping Pong (T) syndication.thedailywtf.com/~r/WTF/FR/~3/rJM4dSB_Z20/Sauvegarde-Ping-Pong-(T).aspx Article de fond Thu, 26 Feb 2009 07:00:00 GMT 6370 <p><img src="/img/spacer.gif"> 10 fr.thedailywtf.com/Comments/Sauvegarde-Ping-Pong-(T).aspx fr.thedailywtf.com/Articles/Sauvegarde-Ping-Pong-(T).aspx Jocelyn D
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.