Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis !
Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
Dans le code d'un système de gestion de contenu, j'ai pu trouver ceci :

for (var i = 1; true; i++) {
  if (i < 10) { ... }
  else break;
}

PEBKAC.
PEBKAC #7098 proposé par guy777 le 28/02/2013 | 33 commentaires | 👍🏽 👎🏽 +263
C'est vrai que ça manque d'optimisation. Il aurait plutôt dû écrire :

var i = 1
 while (true) {
     if (i < 10) {
         for(var j = i; j = i+1; j++) {
             ....
         }
     else {
         break;
     } 
 }
Commentaire #81414 écrit par TD le 28/02/2013 à 17h58 | 👍🏽 👎🏽
<joke>
Ben oui, mais avec tous ces vilains pirates sur le net il faut penser "obfuscation" dès la conception...
</joke>
Commentaire #81415 écrit par pTree le 28/02/2013 à 18h01 | 👍🏽 👎🏽
Woputain mes yeux
Commentaire #81421 écrit par Garfunk le 28/02/2013 à 18h34 | 👍🏽 👎🏽
for(var j = i; j = i+1; j++)

Tu sors quand de ta boucle ?
Commentaire #81422 écrit par Link le 28/02/2013 à 18h35 | 👍🏽 👎🏽
Mon coeur a cessé de battre pendant 15 bonnes secondes...

Je sais pas si je voudrais savoir de quel logiciel il s'agit. Il pourrait s'arrêter définitivement, pour le coup.
(oui je suis jeune et innocent, et je crois encore aux logiciels "importants" bien codés... pour l'instant...)
Commentaire #81424 écrit par Derjik le 28/02/2013 à 18h54 | 👍🏽 👎🏽
Après 1 itération ?
Commentaire #81427 écrit par codeur le 28/02/2013 à 19h20 | 👍🏽 👎🏽
Excuser mon ignorance, mais c'est en quel langage ? Sinon, j'ai pas compris ce que faisais le code.
Commentaire #81428 écrit par qwerty le 28/02/2013 à 19h29 | 👍🏽 👎🏽
Quand j = i + 1

Commentaire #81429 écrit par Hart le 28/02/2013 à 19h32 | 👍🏽 👎🏽
une manière plus correcte d'écrire la même chose aurait été :

for (var i = 1; i<10; i++) {
[code]
}

Là le code donné fait une boucle "for" avec une condition d'arrêt qui n'arrête rien (true), et rajoute un test à l'intérieur de la boucle pour éviter que ça tourne infiniment...enfin bref, c'est n'importe quoi.

Sinon pour le langage, "var" c'est en C# je crois (quelqu'un peut confirmer?).
Commentaire #81432 écrit par Elissa :-) le 28/02/2013 à 19h40 | 👍🏽 👎🏽
Je dirais tout de suite, vu que la condition est fausse dès le départ :p
Commentaire #81435 écrit par BSK le 28/02/2013 à 19h45 | 👍🏽 👎🏽
C'est aussi en JS... C'est de la syntaxe très très classique.
Commentaire #81440 écrit par Aetol le 28/02/2013 à 20h04 | 👍🏽 👎🏽
Tu sortira surtout jamais du while, vu que i n'est jamais incrémenté.
Commentaire #81441 écrit par Aetol le 28/02/2013 à 20h06 | 👍🏽 👎🏽
Si c'est du JavaScript (ça y ressemble, mais il manque un point-virgule à la fin de la première ligne), j=i+1 n'est pas une comparaison mais une attribution. La valeur de cette expression est alors toujours 2, ce qui sera interprété comme vrai.

Et comme ça a déjà été signalé, même avec une comparaison, ça ne marche pas puisque j==i+1 sera tout de suite faux, on ne sortira jamais du while puisque i ne change jamais... et en plus il manque une accolade fermante. Je compte donc... 5 pebkac en 10 lignes. Pas mal, mais peut mieux faire.
Commentaire #81443 écrit par korinthen le 28/02/2013 à 20h37 | 👍🏽 👎🏽
Moi, ça ne me choque pas du tout. Sauf le i++. En toute logique, il faudrait i=i+1.

Le jour où je ponds un tel code, je me pend au câble wifi :D
Commentaire #81450 écrit par CrazyCat le 28/02/2013 à 21h34 | 👍🏽 👎🏽
Just... Why ?
Commentaire #81459 écrit par Till Gray le 28/02/2013 à 23h21 | 👍🏽 👎🏽
OpenSSL ne l'est pas <3
Commentaire #81460 écrit par Taiki le 28/02/2013 à 23h57 | 👍🏽 👎🏽
Tu as oublié de mettre les balises <troll> ...
Commentaire #81461 écrit par Noname le 01/03/2013 à 00h32 | 👍🏽 👎🏽
C'est une peu pour tout en fait...
Commentaire #81475 écrit par Shadam le 01/03/2013 à 09h26 | 👍🏽 👎🏽
@CrazyCat
J'espère que c'est de l'humour...
La syntaxe i++ est classique pour incrémenter une boucle for en C, C++...

Par contre un gros BREAK pour sortir d'une boucle, ça pique pas un peu...

J'en connais qui jette des cailloux pour moins que ça!
Commentaire #81478 écrit par Sorci3r le 01/03/2013 à 09h32 | 👍🏽 👎🏽
C'est ça, achève-moi :| ><
Commentaire #81501 écrit par Derjik le 01/03/2013 à 10h58 | 👍🏽 👎🏽
++i aurait été plus efficace
Commentaire #81505 écrit par yan le 01/03/2013 à 11h10 | 👍🏽 👎🏽
L'ironie était pourtant facilement détectable...
Commentaire #81511 écrit par Navi le 01/03/2013 à 12h29 | 👍🏽 👎🏽
Tu as oublié les balises <ironie></ironie> (enfin je l'espère !)
Commentaire #81514 écrit par IroniqueMan le 01/03/2013 à 12h41 | 👍🏽 👎🏽
Il est payé à la ligne de code, c'est pas possible autrement.

Ou alors il est c*n.
Commentaire #81535 écrit par Aaargh!!! le 01/03/2013 à 13h58 | 👍🏽 👎🏽
Ne jamais exclure cette dernière piste.
Commentaire #81539 écrit par Sihn le 01/03/2013 à 14h12 | 👍🏽 👎🏽
Apparemment pas pour tout le monde vu les 18 votes négatifs sur son commentaire. :/
Commentaire #81556 écrit par Youplà le 01/03/2013 à 16h59 | 👍🏽 👎🏽
http://www.youtube.com/watch?v=8bnh3bGUUH8
Commentaire #81557 écrit par Youplà le 01/03/2013 à 17h00 | 👍🏽 👎🏽
Bah oui c'est de l'humour...

D'ailleurs, une question me turlupine : pourquoi le langage laisse la possibilité de faire des trucs du genre
for (i=0; j !=k; a=b*c) {...}
alors que personne un minimum sérieux n'écrira ça ?
Autre question : comment vous faite du minicode dans les commentaires ?
Commentaire #81616 écrit par Aetol le 01/03/2013 à 20h43 | 👍🏽 👎🏽
«Comment faites-vousdu minicode dans les commentaires ?» serait plus correct.

Réponse : Nous, on lit le blog.
Commentaire #81639 écrit par Geist le 02/03/2013 à 04h47 | 👍🏽 👎🏽
Ah ben je me coucherai moins `con`
Commentaire #81645 écrit par Aetol le 02/03/2013 à 09h12 | 👍🏽 👎🏽
Zut, ça marche pas...
Commentaire #81646 écrit par Aetol le 02/03/2013 à 09h13 | 👍🏽 👎🏽
C'est un ECM très connu et aussi très cher. La très grande majorité du code est propre et bien écrit mais une lib (celle ou j'ai vu ce code) à dû être confiée à un stagiaire car l'ensemble du code est pourri ! Ils ont laissé plein de variables inutilisées, du code "unreachable", etc... !!!!
Commentaire #81705 écrit par guy777 le 04/03/2013 à 12h03 | 👍🏽 👎🏽
C'est effectivement du JavaScript...
J'aurais fais un while personnellement à la place de cet immonde for !
Commentaire #81706 écrit par guy777 le 04/03/2013 à 12h03 | 👍🏽 👎🏽