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.
Je fais partie d'un club de robotique, et je suis responsable du code d'asservissement des robots. J'ai récupéré le code écrit par mon prédécesseur, code qui a la réputation au sein du club de mal fonctionner.
Pour l'instant, je n'ai pas trouvé de bugs ou de cas de mauvais fonctionnement, mais plutôt des perles comme celle-ci (langage C++) :

if (NbTours == 0)
{
  ThetaCercle = ThetaCercle;
  if (!fin)
  {
    fin = true;
  }
}

Alors certes, ce code fonctionne, mais l'auteur reste à mes yeux un bon… PEBKAC.
PEBKAC #9070 proposé par baudouin le 06/12/2013 | 40 commentaires | 👍🏽 👎🏽 +208
Je reste stupéfait devant l'efficacité d'un tel code. Ce mec est un grand maître, pas de doute.
Commentaire #121488 écrit par Youplà le 06/12/2013 à 12h54 | 👍🏽 👎🏽
C'est un code de La Palice !
Commentaire #121489 écrit par aDev le 06/12/2013 à 12h57 | 👍🏽 👎🏽
J'ai quand même mis deux minutes à comprendre qu'il voulait juste mettre la variable fin à true si le nombre de tour est à 0 :p
Commentaire #121495 écrit par Amaury le 06/12/2013 à 13h11 | 👍🏽 👎🏽
On se demande ce qui se passe dans la tête de certains quand même pour pondre ça. Traduire la réalité en règles logiques, c'est pourtant pas si compliqué.
Commentaire #121498 écrit par titouille le 06/12/2013 à 13h13 | 👍🏽 👎🏽
IL y a des oublis. Il faut aussi définir :

define true = !false
define false = !true

Sinon ça ne fonctionnera pas.
Commentaire #121499 écrit par Aaargh!!! le 06/12/2013 à 13h16 | 👍🏽 👎🏽
Oui mais seulement si elle n'est pas déjà true ! Sinon c'est le bordel.
Commentaire #121509 écrit par Belore le 06/12/2013 à 13h39 | 👍🏽 👎🏽
n'importe quoi........ je pense que tu n'as jamais fait de C++

Commentaire #121511 écrit par OO' le 06/12/2013 à 13h48 | 👍🏽 👎🏽
Je pense que tu n'as jamais entendu parler du sarcasme.
Commentaire #121513 écrit par Noname le 06/12/2013 à 13h50 | 👍🏽 👎🏽
Et tu peux encore y apporter des optimisations. Par exemple, le code suivant produit le même résultat :
Commentaire #121514 écrit par Noname le 06/12/2013 à 13h52 | 👍🏽 👎🏽
Ou alors c'est OO' qui faisait du sarcasme... Hmmmmm...
Commentaire #121517 écrit par Moot le 06/12/2013 à 14h03 | 👍🏽 👎🏽
Mon mentor Jacques de Chabannes m'a tout appris!
Commentaire #121518 écrit par Captain Obvious le 06/12/2013 à 14h05 | 👍🏽 👎🏽
Sarcasmception !
Commentaire #121522 écrit par A-xis le 06/12/2013 à 14h21 | 👍🏽 👎🏽
Sarcasmception, plus connu sous le nom de "Trolls trolling trolls". Avec possibilité de récursion infinie.
Commentaire #121525 écrit par anon le 06/12/2013 à 14h25 | 👍🏽 👎🏽
Ouaip... Ou fin = nbTours == 0
Commentaire #121530 écrit par Shadam le 06/12/2013 à 16h10 | 👍🏽 👎🏽
Ouah ! J'imagine un forum avec que des trolls dessus, et qui se renvoient la balle, ça fait peur. Je pense qu'ils seraient susceptibles de créer un trou noir en surchargeant le /dev/null...
Commentaire #121532 écrit par Epok__ le 06/12/2013 à 16h38 | 👍🏽 👎🏽
Non, ça ne produit pas le même résultat si nbTours est différent de 0.
Commentaire #121533 écrit par Tharkun le 06/12/2013 à 16h38 | 👍🏽 👎🏽
Bah si nbTours != 0 alors fin == false donc c'est bien ce que je dis :

if (nbTours == 0)
 {
    fin = true;
 }
 else
 {
    fin = false;
 }


Donc fin = nbTours == 0
Commentaire #121537 écrit par Shadam le 06/12/2013 à 17h03 | 👍🏽 👎🏽
Moi, je vote pour un nouveau cas de schizophrénie aaargh!!!esque !
Commentaire #121541 écrit par Picc le 06/12/2013 à 17h32 | 👍🏽 👎🏽
Dont ceci :
if (you.kill(him))
 {
    him.isDead = true;
 }
Commentaire #121542 écrit par Picc le 06/12/2013 à 17h37 | 👍🏽 👎🏽
Dans le code affiché, rien ne dit que fin = false si nbTours != 0.
Donc ton code ne produit pas le même résultat
Commentaire #121543 écrit par tony83 le 06/12/2013 à 17h47 | 👍🏽 👎🏽
Heu en fait j'ai tort et Shadam a raison, je le concède ...

Va commettre le seppuku
Commentaire #121544 écrit par Noname le 06/12/2013 à 17h49 | 👍🏽 👎🏽
Picc : J'étais sincère en me répondant. En C++ c'est n'importe quoi.

Epok : tu veux parler de Hfr ou de Clubic ?
Commentaire #121547 écrit par Aaargh!!! le 06/12/2013 à 19h43 | 👍🏽 👎🏽
fin |= !nbTours
Commentaire #121549 écrit par b0fh le 06/12/2013 à 19h45 | 👍🏽 👎🏽
Arf, je connais ni l'un ni l'autre. Enfin, Clubic de nom. Aurais-je été préservé de cette apocalypse annoncée ?
Commentaire #121553 écrit par Epok__ le 06/12/2013 à 20h14 | 👍🏽 👎🏽
Rien à voir, mais je viens de croiser Grammar Nazi sur un site d'information parodique...
Commentaire #121558 écrit par hum le 06/12/2013 à 22h19 | 👍🏽 👎🏽
Sinon t'as JV mais on sort du monde réel.
Commentaire #121562 écrit par Aaargh!!! le 07/12/2013 à 06h00 | 👍🏽 👎🏽
Lien ?
Commentaire #121563 écrit par Aaargh!!! le 07/12/2013 à 06h00 | 👍🏽 👎🏽
Vu également : http://www.legorafi.fr/2013/12/06/paradis-mandela-et-paul-walker-se-me[...]
Commentaire #121564 écrit par val070 le 07/12/2013 à 08h27 | 👍🏽 👎🏽
Non, non, non et non !
Il n'y a pas de else dans le code d'origine.
Donc si nbtours != 0 alors... on ne fait rien !
Si fin était à true, il reste à true
Commentaire #121571 écrit par Tharkun le 07/12/2013 à 19h40 | 👍🏽 👎🏽
@Tharkun on ne sait pas à qui tu réponds, mais si c'était à moi, observe que quand nbtours != 0, on a (!nbtours) == 0.

On fait donc fin |= 0, ce qui ne fait effectivement rien.
Commentaire #121590 écrit par b0fh le 09/12/2013 à 01h13 | 👍🏽 👎🏽
Je ne vois pas le Pebkac si c'est juste dire dur mal pour quelque chose qui est faux, c'est du n'importe quoi.
Je suis codeur professionnel, j'ai codé de cette manière pendant des années chez Microsoft et j'étais responsable chez M$, j'ai notamment était à l'origine de Windows Millénium et Windows Vista.
Et j'ai jamais eut de problèmes.
Commentaire #121593 écrit par ctrl+alt+suppr le 09/12/2013 à 09h31 | 👍🏽 👎🏽
Oui mais vu qu'il y a un if (!fin) avant le fin = true ça veut dire que fin doit être à false de toute façon donc :

fin = nbTours == 0

Donc au pire on réaffecte false à une variable qui est déjà à false, épicétou !
Commentaire #121604 écrit par Shadam le 09/12/2013 à 12h08 | 👍🏽 👎🏽
Mais non. Sans contexte, on ne sait pas si fin = false au début de l'exécution.

Si au départ, fin = true et nbTours != 0, la version originale (et la mienne) laissent fin à true, la tienne met fin à false, c'est faux.
Commentaire #121606 écrit par b0fh le 09/12/2013 à 12h29 | 👍🏽 👎🏽
C'est loin pour moi le C++, mais fin peut aussi avoir une valeur indéterminée, si je ne m'abuse. Dans ce cas, fin |= 0 donne une erreur, non ?
Commentaire #121643 écrit par aDev le 09/12/2013 à 13h21 | 👍🏽 👎🏽
Car si JV alors je ne suis plus là ?
Commentaire #121650 écrit par aDev le 09/12/2013 à 13h50 | 👍🏽 👎🏽
Fun, mais les fautes c'est voulu ?
dire du* mal
notamment été*
jamais eu* de problème*(s) => pas une faute en soit mais zéro c'est plutôt singulier quand même.
Commentaire #121654 écrit par aDev le 09/12/2013 à 13h57 | 👍🏽 👎🏽
@b0fh
Je répondais à Shadam.
Ça fait quoi comme opérateur |= ?
Je ne me souviens pas avoir vu ça un jour, mais ça fait plus de dix ans que je n'ai pas fait de C++
Commentaire #121755 écrit par Tharkun le 09/12/2013 à 20h56 | 👍🏽 👎🏽
http://www.legorafi.fr/2013/01/22/apres-les-nazis-la-fondation-simon-w[...]

D'ailleurs plutôt grave de voir que même sur ce site les lecteurs manquent sérieusement de second degré. Comme quoi la communauté PEBKACienne est très éduquée.
Commentaire #121766 écrit par Millman le 09/12/2013 à 21h55 | 👍🏽 👎🏽
It's not a bug, it's a feature !



Bon ok je me rends, en fait quand t'es habitué à coder des trucs chiants et complexes (en C#, j'fais rarement du C++), tu passes à côté des trucs les plus simples :/
Commentaire #121781 écrit par Shadam le 10/12/2013 à 00h04 | 👍🏽 👎🏽
@Tharkun : | est l'opérateur booléen d'union bit à bit. Le OR (||) du binaire quoi.
|= est à | ce que += est à +

fin |= 0 donne donc fin, mais il faut que fin soit défini (comme je le remarquais plus haut).
Commentaire #121883 écrit par aDev le 10/12/2013 à 14h49 | 👍🏽 👎🏽