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 dois analyser un programme écrit par mon patron, et trouver pourquoi il donne des résultats incohérents.
La tâche semble aisée, puisque c'est moi qui ai décrit l'algorithme. Mais après quelques minutes, je constate qu'une grande partie des variables à des noms comme "s", "p", "c", "a", "l", "ss", "sp", "t", "lp", etc.

Même si leur rôle est commenté à côté de la définition, le programme est particulièrement illisible, et il faut sans cesse faire des aller-retours entre le code et les définitions. PEBKAC.
PEBKAC #6816 proposé par Muphins le 31/01/2013 | 54 commentaires | 👍🏽 👎🏽 +197
Plus le nom des variables est court, plus le code est rapide, tu devrais le savoir...

Et puis c'est ton patron qui a codé le programme, donc le problème ne peut venir que de ton algo.
Commentaire #76692 écrit par Link le 31/01/2013 à 08h46 | 👍🏽 👎🏽
"une grande partie des variables à des noms" hmm...
Commentaire #76693 écrit par Cartman34 le 31/01/2013 à 08h47 | 👍🏽 👎🏽
Ca me rappelle quand mon frère et moi étions enfants, nous dessinions des jeux de cartes. Il y avait toutes sortes d'abréviations et symboles obscures dessus. Mais nous les comprenions et mémorisions, nous seuls, car ils faisaient partie d'une terrible et nébuleuse logique interne à notre inconscient basée sur l'algorithmie, les associations d'idées et les techniques du Pictionary.
Commentaire #76695 écrit par Biaise le 31/01/2013 à 08h59 | 👍🏽 👎🏽
C'est parce que lui, c'est un vrai, il n'a pas besoin de variables dans son code. Il ne fait que du code point-free en Haskell, en APL et en Forth. Les variables c'est pour les lopettes !

Tu devrais déjà lui être reconnaissant d'être descendu a ton niveau !
Commentaire #76696 écrit par b0fh le 31/01/2013 à 08h59 | 👍🏽 👎🏽
c'est toi qui manque d'ouverture d'esprit, il ne faut pas s'arrêter aux noms des variables et savoir s'adapter. Tu mériterait un CTLP petit garnement !!

nan plus sérieusement je te comprends. Le mien faisant pareil, les compteurs qui s'appellent i,ii,iii... ou cpt,cpt2,cpt3... Ajoute à ca une indexation du code complètement aléatoire au gré dès copier/coller, des algos à la mord-moi-le-noeud ...

Vive les pseudo développeurs devenus responsables
Commentaire #76697 écrit par achille le 31/01/2013 à 09h02 | 👍🏽 👎🏽
Go refactor'n'debug, go !
Commentaire #76699 écrit par Alibi le 31/01/2013 à 09h10 | 👍🏽 👎🏽
A la rigueur, la variable "i" dans un for, pourquoi pas (même si je suis un fana du for each).
Après, pour les autres variables... aouch, PEBKAC validé.
Commentaire #76701 écrit par Sihn le 31/01/2013 à 09h19 | 👍🏽 👎🏽
Si c'est du javascript c'est pas forcément idiot ?
Commentaire #76703 écrit par JS Powaa le 31/01/2013 à 09h37 | 👍🏽 👎🏽
Coder de facon illisible c'est forcémenent idiot.
Commentaire #76709 écrit par aaaa le 31/01/2013 à 09h56 | 👍🏽 👎🏽
Un foreach, et pourquoi pas le fameux while(list()=each()) ? C'est super fun et ça nécessite en plus un reset au début.
Alala on m'a tellement saouler avec ça en cours que je suis passé direct au foreach... :-P
Commentaire #76711 écrit par juu le 31/01/2013 à 09h58 | 👍🏽 👎🏽
ça me rappelle le TI-BASIC qui ne nous permet comme variable qu'une lettre de l'alphabet et la lettre grecque thêta...
Commentaire #76712 écrit par ROB le 31/01/2013 à 09h59 | 👍🏽 👎🏽
Coté casio c'était pareil.
Commentaire #76720 écrit par but2ene le 31/01/2013 à 10h10 | 👍🏽 👎🏽
C'est de l'obscuration de code.
C'est assez courant en javascript, même si généralement on utilise un logiciel/plugin pour le faire.
Commentaire #76726 écrit par Bilgetz le 31/01/2013 à 10h35 | 👍🏽 👎🏽
Bah il voulait un peu offusquer son code :/

Pour les compteurs, je fais pareil (bon ça s'arrête à i et j, donc c'est pas gênant), mais il est vrai que de temps en temps, c'est dur de trouver un nom de variable qui la représente bien et pas trop longue.
Commentaire #76727 écrit par Myosotys le 31/01/2013 à 10h37 | 👍🏽 👎🏽
Ah non, pas de while pour parcourir un tableau ou une collection! X) (en tout cas, pas si je peux l'éviter)
Commentaire #76728 écrit par Sihn le 31/01/2013 à 10h44 | 👍🏽 👎🏽
Avec un bon IDE tu peux renommer une variable et propager la modification automatiquement à toutes les lignes qui l'utilisent.
Commentaire #76729 écrit par Acorah le 31/01/2013 à 11h00 | 👍🏽 👎🏽
Ah oui tiens, j'ai mal relu.
"... ont des noms ..."
Pardonnez moi cette erreur.
Commentaire #76730 écrit par Muphins le 31/01/2013 à 11h07 | 👍🏽 👎🏽
En TI-BASIC tu peux nommer des listes et indexer certaines variables appartenant à la même fonction, tu gagne en lisibilité et en nombre de variables utilisables
Commentaire #76732 écrit par Muphins le 31/01/2013 à 11h11 | 👍🏽 👎🏽
C'est le cas ici, on utilise Visual Studio. Mais comme je n'ai fait qu'apporter une petite correction, je ne pouvais pas changer tous ses noms, vu que mon patron va continuer d'éditer le code.
Commentaire #76733 écrit par Muphins le 31/01/2013 à 11h15 | 👍🏽 👎🏽
C'est la partie, pas les variables, donc a et pas ont!
Commentaire #76734 écrit par Link le 31/01/2013 à 11h23 | 👍🏽 👎🏽
Je suis offusqué que Myosotys et Bilgetz ne sachent pas écrire obfusquer/obfuscation. ;)

Même si j'avoue que le dictionnaire de Firefox ne connait pas ses mots.
Commentaire #76735 écrit par Rexaonath le 31/01/2013 à 11h26 | 👍🏽 👎🏽
<troll>Visual studio, un bon IDE?? </troll>

je sais -----> []
Commentaire #76739 écrit par Garf365 le 31/01/2013 à 12h07 | 👍🏽 👎🏽
Ca dépend des TI. Sur la 89 (et modèles suivants), tu pouvais parfaitement utiliser des noms de variables de plusieurs lettres (maxi 8 lettres)

Bon après, vu que les seules touches accessibles sans avoir à activer l'alpha-lock étaient x, y, z et t, les variables de mes programmes s'appelaient souvent xx, yy, xy, zzz, xt, par flemme ... Pratique pour débugger quand ça marche pas...
Commentaire #76746 écrit par ZK456 le 31/01/2013 à 12h47 | 👍🏽 👎🏽
En fait ton patron a trouvé une bonne solution pour occuper son équipe quand il n'y pas assez de boulot :o)
Commentaire #76766 écrit par Siggy le 31/01/2013 à 13h49 | 👍🏽 👎🏽
ces mots ! Ça se permet de corriger l'orthographe et la massacre en même temps ? Deux personnes à exécuter ici !
Commentaire #76772 écrit par Grammar Nazi le 31/01/2013 à 13h59 | 👍🏽 👎🏽
"La lettre grecque" ? Et ben, ils devaient écrire des bouquins sympa à l'époque.
Commentaire #76775 écrit par John Nash le 31/01/2013 à 14h50 | 👍🏽 👎🏽
Normal : www.acbm.com/virus/num_22/informaticiens-protegez-votre-emploi.html
Commentaire #76778 écrit par Fred le 31/01/2013 à 14h57 | 👍🏽 👎🏽
Bande de faibles...

 int i = 0;
 int ii = maListe.Count();
 until i == ii
 {
    unTrucImprobable();
    i = i + 1;
 }
 
Commentaire #76785 écrit par Shadam le 31/01/2013 à 15h18 | 👍🏽 👎🏽
Arrêtez-moi si je me trompe, mais le notepad tout con de XP fait ça de base aussi, non ?
Commentaire #76786 écrit par Zodd le 31/01/2013 à 15h19 | 👍🏽 👎🏽
Ou alors tu renommes tout et tu apprends à ton boss les bonnes pratiques.

Surtout que VS permet un clic droit sur une variable (à sa déclaration) pour la renommer et le répercuter partout dans le code.
Commentaire #76789 écrit par Shadam le 31/01/2013 à 15h22 | 👍🏽 👎🏽
>"Ce n'est pas parce que la variable « fTaux » - pardon - « z1nSs4tz » existe déjà dans votre fonction que vous n'avez pas le droit d'en faire un nom de fonction dans le même programme!"

J'adore :D
Commentaire #76790 écrit par Shadam le 31/01/2013 à 15h30 | 👍🏽 👎🏽
Bah quand même, l'exécution pour ses/ces est compréhensible, mais ma faute ne mérite qu'une légère torture!!
Commentaire #76793 écrit par Myosotys le 31/01/2013 à 15h44 | 👍🏽 👎🏽
Je me dois de répondre: "obfuscate" se traduit en français par "offuscation" ou "assombrissement", et surtout pas par le néologisme "obfuscation".
Commentaire #76796 écrit par Little grammar nazi le 31/01/2013 à 15h56 | 👍🏽 👎🏽
Presque, on dit de l'obfuscation, pas de l'obscuration.

Ou, si on veut être irréprochable du point de vue de l'académie française, on peut dire «rendre le code impénétrable».
Commentaire #76797 écrit par FBM le 31/01/2013 à 15h59 | 👍🏽 👎🏽
Et je me dois de répondre : les termes d'informatique en Anglais ne devraient jamais être traduits.
Commentaire #76799 écrit par FBM le 31/01/2013 à 16h02 | 👍🏽 👎🏽
Tu te trompes, on ne parle pas de rechercher/remplacer, mais de refactoring "intelligent".

Si j'ai une variable i, et une autre qui s'appelle i2, et des "if" et "continue" et d'autres mots contenant un "i", bon courage avec le notepad pour ne remplacer ques les "i" représentant ma variable...
Commentaire #76800 écrit par FBM le 31/01/2013 à 16h04 | 👍🏽 👎🏽
@FBM: Autant je suis d'accord sur le ridicule de l'invention de nouveau mot pour ne pas avoir à utiliser de mot anglais (coucou "mot-dièse" et "devermineur"), autant là on est dans un cas où le mot français existait bien avant l'avènement de l'informatique. Offuscation est un terme qui est aussi utilisé en astronomie, et qui veut dire assombrir.
Commentaire #76805 écrit par Little grammar nazi le 31/01/2013 à 16h30 | 👍🏽 👎🏽
D'accord avec Shadam, ton boss continuera à faire du code impossible à maintenir avec une philosophie pareille. S'il revient maintenir le code, il s'y retrouvera lui-même mieux. Et si tu lui expliques comment refactoriser lui-même, il y a des chances qu'il le fasse tout seul la prochaine fois.

Et s'il te fait un caca nerveux, va voir ailleurs, la vie est trop courte pour se faire chier avec des boulets.
Commentaire #76818 écrit par Eric D le 31/01/2013 à 17h33 | 👍🏽 👎🏽
Pour moi ce sont bien les variables qui ONT des noms, et pas la partie...
Commentaire #76834 écrit par Astalaseven le 31/01/2013 à 18h00 | 👍🏽 👎🏽
Il me semble que dans ce cas-là, "a" et "ont" sont tous les deux corrects.
Commentaire #76851 écrit par Banon le 31/01/2013 à 18h25 | 👍🏽 👎🏽
Cela se sent que tu as souffert, Link ! Bienvenue au club !
Commentaire #76877 écrit par Aaargh!!! le 31/01/2013 à 19h00 | 👍🏽 👎🏽
et le lien en anglais est pire :)
Commentaire #76881 écrit par Fred le 31/01/2013 à 19h31 | 👍🏽 👎🏽
@Sihn :
char °strcpy(char °dest, const char °src)
 {
         char °ret = dest;
         while (°dest++ = °src++);
         return ret;
 }


EDIT : « * » remplacés par « ° » pour cause de markdown intrusif :/
          Clem, par pitié O/ O_ O/ O_ O/ O_
Commentaire #76889 écrit par BSK le 31/01/2013 à 19h51 | 👍🏽 👎🏽
Quelqu'un connait le rituel pour invoquer Grammar Nazi?
Commentaire #76892 écrit par Link le 31/01/2013 à 20h24 | 👍🏽 👎🏽
http://fr.wikipedia.org/wiki/Obfuscation :(
Commentaire #76898 écrit par anon le 31/01/2013 à 21h14 | 👍🏽 👎🏽
Ah oui, cette fonctionnalité...

Pour ma part je tape plusieurs combinaisons à la suite, style "espace+i+espace", "(i+espace", etc dans ce genre de cas quand je dois travailler sous Np++/Kate/Gedit, mais c'est vrai qu'on n'est pas à l'abri des oublis (genre un i==truc sans espaces).
Commentaire #76905 écrit par Zodd le 31/01/2013 à 23h00 | 👍🏽 👎🏽
link a bien raison, c'est "une partie" des variables qui "a" des noms raccourcis ;)
Commentaire #76906 écrit par rubix le 01/02/2013 à 00h38 | 👍🏽 👎🏽
https://fr.wikipedia.org/wiki/Discussion:Obfuscation :(

Merci wikipédia...
Commentaire #76948 écrit par Little grammar nazi le 01/02/2013 à 10h01 | 👍🏽 👎🏽
Yes ça devient chiant, je vais faire en sorte que le markdown ne s'interprète pas dans un ensemble code.
Commentaire #76964 écrit par Clem le 01/02/2013 à 11h30 | 👍🏽 👎🏽
D'après ce site, les deux sont corrects : http://www.aidenet.eu/grammaire04k.htm (paragraphe §472 / a - Accord).
Si quelqu'un trouve une source plus officielle ça m'intéresse.
Commentaire #77008 écrit par Acorah le 01/02/2013 à 14h29 | 👍🏽 👎🏽
http://knowyourmeme.com/photos/271654
Commentaire #77030 écrit par 1138 le 01/02/2013 à 16h35 | 👍🏽 👎🏽
http://memegenerator.net/instance/34183022
Commentaire #77033 écrit par 1138 le 01/02/2013 à 16h45 | 👍🏽 👎🏽
Acorah: Le Larousse ? :-)

http://www.larousse.com/en/dictionnaires/francais/partie/58387/difficu[...]
Commentaire #77048 écrit par Astalaseven le 01/02/2013 à 17h46 | 👍🏽 👎🏽
Bon bah, je mettrai "a" la prochaine fois alors ^^
Commentaire #77100 écrit par Muphins le 01/02/2013 à 21h27 | 👍🏽 👎🏽