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.
Raconté par un ami : (NB pour la suite : ce n'était pas du code synchrone, multi-threadé, ou avec des accès en mémoire concurrents qui auraient pu modifier les valeurs des variables à la volée)

Un collègue, tout fier d'avoir trouvé un code « compliqué », nous lance : « Alors ça, à débugger c'est énorme ! ». Et nous montre un test d'un if, qui pouvait se résumer de la manière suivante :
« Si (A et B et C) ou (A et (non B) et (non C)) ou (A et (non B) et C) ou (A et B et (non C)) alors […] »

Il nous a soutenu mordicus que non, ce n'était pas du tout équivalent à « Si (A) alors […] ». PEBKAC.
PEBKAC #9156 proposé par Vanivan le 23/12/2013 | 23 commentaires | 👍🏽 👎🏽 +161
Il suffit d'aller sur un site de boole pour voir que son truc sert à rien...
Commentaire #123502 écrit par Link le 23/12/2013 à 17h41 | 👍🏽 👎🏽
Tu gagnes un point INTERNET, à découper dans ton écran !
Commentaire #123504 écrit par Clapiote le 23/12/2013 à 17h47 | 👍🏽 👎🏽
Une bonne vieille table de vérité aurait pourtant du lui prouver...
Commentaire #123507 écrit par Acorah le 23/12/2013 à 17h55 | 👍🏽 👎🏽
Génial ! J'ai droit à quoi avec 10 points ?
Commentaire #123508 écrit par Link le 23/12/2013 à 18h01 | 👍🏽 👎🏽
Un ticket pour une visite du centre d'entrainement pour les futur Grammar Nazis et un nouveau clavier.
Commentaire #123515 écrit par ROB (pas loggué) le 23/12/2013 à 18h59 | 👍🏽 👎🏽
Un nouvel écran me semblerais plus approprié :P
Commentaire #123523 écrit par blag le 23/12/2013 à 19h46 | 👍🏽 👎🏽
Il se passe quoi si les variables ne sont pas assignées dans votre langage?
Commentaire #123526 écrit par Chipotage le 23/12/2013 à 20h26 | 👍🏽 👎🏽
Han le méchant ! il te dit ce que tu gagnes et il te le donne même pas... Tiens :
  ____   ____   ____   ____   ____   ____   ____   ____   ____
 /  __) (____) (____) (____) (____) (____) (____) (____) (__  /
 |_|                                                        |_|
  _            _                     _         _             _
 | |          / |       _ __   ___  (_) _ __  | |_          | |
 | |          | |      | '_ / / _ / | || '_ / | ._|         | |
 |_|          | |      | |_) | (_) || || | | || |_          |_|
  _           |_|      | .__/ /___/ |_||_| |_||___|          _
 | |                   |_|                                  | |
 | |                                                        | |
 |_|     _____         _                             _      |_|
  _     |_   _| _ __  | |_   ___  _ __  _ __    ___ | |_     _
 | |      | |  | '_ / | ._| / _ /| '__)| '_ /  / _ /| ._|   | |
 | |     _| |_ | | | || |_ |  __/| |   | | | ||  __/| |_    | |
 |_|    |_____||_| |_||___| /__/ |_|   |_| |_| /__/ |___|   |_|
  _                                                          _
 | |__   ____   ____   ____   ____   ____   ____   ____   __| |
  /___) (____) (____) (____) (____) (____) (____) (____) (____/
 
Commentaire #123527 écrit par Limeila le 23/12/2013 à 21h08 | 👍🏽 👎🏽
Un écran plus grand serait fort utile pour voir le message du dessus correctement. Pourquoi un entraînement avec GN ?
Commentaire #123529 écrit par Link le 23/12/2013 à 21h19 | 👍🏽 👎🏽
d'après le préambule, on peut supposer que tout est bien assigné, et qu'il n'y a pas de pièges de n'importe quel genre...
Commentaire #123530 écrit par o4b le 23/12/2013 à 21h32 | 👍🏽 👎🏽
En fait, chaque morceau du test (A, B et C) étaient des tests eux-mêmes, avec -de mémoire, si je ne m'abuse- au moins un test "telle variable est non nulle" suivie d'un test sur sa valeur.
Donc au final, le code correspondait bien aux A, B et C de mon post.
Ce qui me chagrine quand même, c'est que la personne n'a pas compris au début que c'était équivalent. On a quand même pris le temps de lui expliquer nez en moins.
Commentaire #123533 écrit par Vanivan le 23/12/2013 à 23h08 | 👍🏽 👎🏽
Certaines personnes sont complètements imperméables à l'algèbre de Bool.
Ils arrivent souvent à s'en sortir en imbriquant une quantité pharaonique de IF au lieu de réfléchir à un algorithme plus simple.

Le pire que j'ai vu était un SWITCH CASE avec toutes les possibilités pour 6 variables booléennes, et le code "dupliqué" pour chaque variante. Il y avait environs 100ko de code pour cette seule fonction... qu'il m'a fallu débugger car ça ne fonctionnait pas. Mon algorithme de remplacement, qui fonctionnait lui, faisait 30 lignes.
Commentaire #123537 écrit par OzoneGrif le 24/12/2013 à 00h35 | 👍🏽 👎🏽
Mais tous les langages n'intègrent pas le principe du tiers exclu.

Par exemple (pour en prendre un que tout le monde connait), en SQL, (a or not a) est faux si a est null.
Commentaire #123540 écrit par b0fh le 24/12/2013 à 01h03 | 👍🏽 👎🏽
Pas faux, j'avais oublié que les variables pouvaient être indéfinies. Et comme le PEBKAC n'écarte pas cette possibilité, il faudrait voir si le langage utilisé gère cette situation, ou si le code en amont du test initialise toujours les variables.
Commentaire #123562 écrit par ygnobl le 24/12/2013 à 10h18 | 👍🏽 👎🏽
(A et B et C) ou (A et (non B) et (non C)) ou (A et (non B) et C) ou (A et B et (non C))
= (A.B.C) + ( A . b . c ) + ( A . b . C ) + (A . B . c)
= A . [(B.C)+(b.c)+(b.C)+(B.c)]
= A . [ B . (c+C) + b . ( C+c ) ]
= A . [ B . 1 + b . 1 ]
= A . ( B + b )
= A . 1
= A

C'est la manière la plus lente d'essayer de lui faire comprendre je pense, quoiqu'on peut rajouter des lignes.
Commentaire #123579 écrit par MonsieurJeSaisRien le 24/12/2013 à 11h08 | 👍🏽 👎🏽
J'avais un collègue débutant qui était très fort pour nous pondre ce genre d'assertions à rallonge.
Commentaire #123613 écrit par aDev le 24/12/2013 à 13h38 | 👍🏽 👎🏽
Certaines personnes devraient meme arreter d'essayer d'approcher un langage de programmation.
Commentaire #123680 écrit par trucmuche le 25/12/2013 à 10h25 | 👍🏽 👎🏽
PS : TOUTES les possibilites???? 2^6???? omg jveux meme pas imaginer la tronche du code Oo
Commentaire #123681 écrit par trucmuche le 25/12/2013 à 10h26 | 👍🏽 👎🏽
Ben, 100 ko, t'en as, des lignes de code à pisser pour cette quantité. Alors, 100 ko pour une pauvre fonction, avec un pauvre test à 2 balles, le mec il cherchait vainement à prouver qu'il faisait pas fesse de bouc sur son lieu de travail.
Commentaire #123776 écrit par Aaargh!!! le 26/12/2013 à 11h24 | 👍🏽 👎🏽
Non mais si le mec il sait pas ça, il a dû s'arrêter de coder en maternelle. C'est vraiment la base, 1e année, 1er cours, 1e heure...
Commentaire #123777 écrit par Aaargh!!! le 26/12/2013 à 11h26 | 👍🏽 👎🏽
J'étais sûr que Link fréquentais les sites de bool. XD
Commentaire #134999 écrit par Fox le 21/03/2014 à 14h40 | 👍🏽 👎🏽
Tu étais dans une maternelle pour enfants "simples d'esprits", c'est ça ?
Moi en maternelle on a commencé par la chromodynamique quantique et la théorie de la fission nucléaire.
Commentaire #145068 écrit par Somadeva le 13/09/2014 à 23h11 | 👍🏽 👎🏽
Somadeva, on avait convenu de ne pas parler ici de mon QI ridiculement bas. T'es pas sympa.
Commentaire #145103 écrit par Aaargh!!! le 15/09/2014 à 14h53 | 👍🏽 👎🏽