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 suis développeur PHP5, et j'ai rencontré avant-hier un petit problème :

Je codais une classe, dans laquelle une fonction possède une dizaine de gros tableaux associatifs. Jusque là, rien d'anormal. Mais au moment de tester, j'ai obtenu de jolis « Undefined variable » sur les noms de ces tableaux. Je copie/colle le nom pour vérifier une éventuelle erreur de frappe, toujours pareil.

Je décide de refaire ces tableaux associatifs, car ils contiennent des simples et doubles quotes imbriquées, et je me dis que ça a dû provoquer un problème à un moment. Mais ça ne se résous toujours pas.
Après une heure de cafouillage, je finis par aller voir mon chef de projet, qui vient et règle le problème en une minute… L'erreur se situait entre le nom de la variable et le signe "égal" : il y avait une tabulation (qui pourtant ne pose pas de problème d'habitude).

Entre Eclipse qui m'a affiché les tabulations à la même taille qu'un espace, l'interpréteur PHP, et surtout moi : PEBKAC.
PEBKAC #7822 proposé par Alain le 21/05/2013 | 53 commentaires | 👍🏽 👎🏽 +98
PHP et éclipse :|

J'veux pas troller, mais des vrais éditeurs, genre N++ ou Sublime Text ça existe, et tu as pas de soucis.
Commentaire #93410 écrit par A-xis le 21/05/2013 à 17h41 | 👍🏽 👎🏽
Loin de moi l'idée de faire de la promo pour Eclipse (je ne connais pas Sublime Text) ou du troll, mais je ne suis pas sûr que gérer un SVN ou des dépôts avec Notepad++ soit faisable... Et en milieu pro, c'est quand même fondamental :-P

J'ai bossé pas mal d'années sous Notepad++, et depuis 2-3 ans je suis sous Eclipse... Bah honnêtement entre les options de refactoring, les fonctionnalités liées à SVN (commit / update, toussa...), l'auto-complétion (pas pour le PHP natif, mais au sens "projet" : l'auto-complétion des classes, méthodes, attributs, dans un projet MVC), le support de la syntaxe PHPDoc (je ne sais pas si N++ le fait, je le reconnais), les templates, et le fait de coder beaucoup plus rapidement qu'avant... Bah je ne reviendrai pas sous Notepad++ :-/

C'est à mon sens la différence entre un éditeur de texte (très bon, au demeurant), et un IDE plus "complet" en fonctionnalités (franchement depuis que j'y ai goûté, je ne peux plus coder sans serveur SVN).

(mais c'est mon avis personnel, il n'engage que moi ; je ne dirai pas que j'ai raison avec ces affirmations)
Commentaire #93411 écrit par Clem le 21/05/2013 à 17h54 | 👍🏽 👎🏽
"a affiché les tabulations à la même taille qu'un espace"
"entre le nom de la variable et le signe égal"
...c'est toi le PEBKAC. Car tu n'as pas l'air de saisir le principe des tabulations...
De plus, j'ai du mal à comprendre en quoi une tabulation poserais problème... T'es sur que le soucis venait de là?
Commentaire #93412 écrit par Sihn le 21/05/2013 à 17h55 | 👍🏽 👎🏽
Ca peut arriver suite à un copier/coller avec des espaces insécables. Ca se voit pas du tout mais le code du caractère n'est pas le même et l'interpréteur s'explose...
Commentaire #93413 écrit par cpn42 le 21/05/2013 à 17h59 | 👍🏽 👎🏽
Suis-je le seul a avoir envie de troll un camarade en remplaçant " " par " " dans tout son code ?
Je vous assure, ils sont différents ^^
Commentaire #93416 écrit par Skyfire le 21/05/2013 à 18h10 | 👍🏽 👎🏽
Personnellement, je trouve qu'Eclipse a tendance à se rapprocher de plus en plus de l'usine à gaz. Mais bon, c'est vrai que c'est toujours plus pratique qu'un simple Notepad++ pour les projets complexes.
Commentaire #93417 écrit par Skefrep le 21/05/2013 à 18h12 | 👍🏽 👎🏽
Oui, parce qu'ici on parle de boulot dans une entreprise. Et si le projet est planté parce que tu as fait une merveilleuse petite blague en remplaçant les espaces par des espaces insécables, tu te feras difficilement bien voir...
Commentaire #93418 écrit par Skefrep le 21/05/2013 à 18h14 | 👍🏽 👎🏽
Je suis au lycée et je parle pour mes potes hein !
Je ne conseille pas de faire ça en entreprise, loin de moi cette idée (niark nark...)
Commentaire #93422 écrit par Skyfire le 21/05/2013 à 18h17 | 👍🏽 👎🏽
J'ai eu le même genre de parcours (avec VisualStudio (C#) à la place d'Eclipse) et maintenant je n'utilise Notepad++ que pour afficher des fichiers texte (ou à la rigueur afficher un fichier source sans démarrer l'IDE qui fait un peu usine à gaz à ses heures).
Commentaire #93423 écrit par Raizarachi le 21/05/2013 à 18h19 | 👍🏽 👎🏽
Eclipse ? Pebkac. NetBeans FTW.
Commentaire #93426 écrit par Troll le 21/05/2013 à 18h33 | 👍🏽 👎🏽
J'ai longtemps utilisé N++, simple, léger, plein de plugin mais avec des projets complexes c'est moins productif que Eclipse je trouve, ne serait ce que pour l'auto-complétion des méthodes/classes perso avec les arguments.

Notepad++ a un plugin pour la gestion des SVN, mais Eclipse fait parti de l'environnement de dev de la boîte, utilisant les deux je préfère largement le deuxième personnellement.

Concernant l'erreur, il y a avait un/des char formant(s) un espace entre la variable et le "=", apres je n'ai jamais eu de problème même en mettant 10 tabulations/espaces.

Concernant l'utilisation des tabulations, je ne comprend pas la remarque de "Sihn" , utiliser des tab pour indenter le code ou l'espacer pour le rendre lisible, il me semble que c'est fait pour ca mais je peux me tromper.
Commentaire #93428 écrit par alain le 21/05/2013 à 18h36 | 👍🏽 👎🏽
Eclipse a toujours été et sera toujours une usine à gaz. N'empêche que quand on a besoin de gros gaz qui tâche, on est bien content de l'avoir.
La lourdeur est tout de même relativement justifiée par l'apport de nombreuses fonctionnalités, en particulier le refactoring mentionné par Clem (oui, je sais, on peut le faire sous vi/emacs aussi...).
Et puis si la lourdeur est si génante, je suis persuadé qu'il est possible de se build sa propre mouture d'eclipse avec juste les plugins qui vont bien, et d'en avoir une version allegée.
Commentaire #93431 écrit par Noraa le 21/05/2013 à 18h46 | 👍🏽 👎🏽
Let's feed the troll, with downvotes !
Commentaire #93432 écrit par mini le 21/05/2013 à 18h50 | 👍🏽 👎🏽
"a affiché les tabulations à la même taille qu'un espace" => +1, souci de définition de la tabulation là.
De plus, j'ai du mal à comprendre en quoi une tabulation poserais problème => pourquoi serait-elle acceptée en même temps? je pense qu'ils ont une syntaxe du type "<TOKEN><ESPACE>=<ESPACE><EXPR>"
On se dirait bien qu'on accepte plus que l'espace, genre les tabulations. Mais dans ce cas, accepte-on aussi les espaces insécables, ou d'autres caractères UTF-8 d'espacement (je suis sûr qu'il existe un espace long ou autre connerie ;), est-ce-qu'on accepte aussi les passages à la ligne, qui peuvent être vu comme des caractères d'espacement? Bref, il faut tirer la ligne à un point, et l'espace est quand même le plus largement utilisé.
Ce que l'on peut regretter cependant, c'est que cette syntaxe n'ai pas été reprise à la lettre par le validateur syntaxique d'Eclipse, ce qui aurait permit d'économiser un certain temps sur cette erreur stupide.
Commentaire #93434 écrit par Noraa le 21/05/2013 à 18h54 | 👍🏽 👎🏽
Pour l'erreur cela doit donc probablement correspondre à l'espace insécable dont parle cpn42.
Pour la remarque de Sihn le truc c'est que la tabulation ne correspond pas à un nombre précis d'espace : elle te permet de ramener le texte suivant la tabulation au "plateau" suivant. Tes colonnes sont découpées en tabulations (une toutes les 4 colonnes la plupart du temps) et lorsque tu ajoutes une tabulation le prochain caractère sera écrit au début de la tabulation suivante, à savoir une à quatre colonnes plus loin.
Commentaire #93438 écrit par Noraa le 21/05/2013 à 18h59 | 👍🏽 👎🏽
eclipse est configurable pour transformer toutes les tabulations en espaces, tout comme vim ou n++ d'ailleurs.
Commentaire #93442 écrit par Alfred456654 le 21/05/2013 à 19h10 | 👍🏽 👎🏽
Je confirme, il m'arrive en voulant aller trop vite de mettre des espaces insécables... et je m'en mors les doigts pendant la phase de débuggage !!

A mon avis, c'est ce qui a du se passer, plus qu'une erreur de tabulation qui, je pense, n'aurait pas posé de problème.
Commentaire #93452 écrit par Morrock le 21/05/2013 à 19h22 | 👍🏽 👎🏽
zut, je ne l'avais pas vu à temps mais une partie de ma merveilleuse syntaxe (qui peut d'ailleurs être éronné en d'autres points), a été considérée comme du markdown. Il fallait lire "<TOKEN><ESPACE>*=<ESPACE>*<EXPR>"
Commentaire #93459 écrit par Noraa le 21/05/2013 à 19h39 | 👍🏽 👎🏽
Il n'est pas interdit d'évoluer... de grandir... de ne plus mettre de CTB partout...
Commentaire #93465 écrit par Aaargh!!! le 21/05/2013 à 20h04 | 👍🏽 👎🏽
Je trouve que Eclipse est parfait pour le développement style Java. Après, tout ce qui est Web, je trouve que Netbeans le gère mieux. ;)
Commentaire #93472 écrit par theveritable le 21/05/2013 à 20h44 | 👍🏽 👎🏽
Si on met le troll de coté (promis c'est pas moi), je trouve Eclipse très lent par moment (scan des projets qui se révèlent assez fréquents), alors que j'ai beaucoup moins ce problème avec Netbeans.

C'est peut être une question de configuration, si vous avez des astuces je suis preneur.
Commentaire #93473 écrit par TuXiC69 le 21/05/2013 à 20h53 | 👍🏽 👎🏽
c'est marrant ça, moi c'est totalement l'inverse : après n'avoir juré que par éclipse, j'ai tester vim, depuis, je ne peux plus m'en passer !

bref, je m'abstient de voter sans savoir exactement d'où viens cette espace
Commentaire #93477 écrit par khrogos le 21/05/2013 à 21h07 | 👍🏽 👎🏽
Oui, ça arrive, genre quand Maven fait sa mauvaise tête.
Cela dit, l'ajout d'un SSD transforme la vie en mon petit poney ^^
Commentaire #93478 écrit par mini le 21/05/2013 à 21h07 | 👍🏽 👎🏽
SVN, en ligne de commande c'est quand même mieux :-)
Sérieusement j'aurai du mal à revenir en mode "graphique".
Commentaire #93481 écrit par juu le 21/05/2013 à 21h42 | 👍🏽 👎🏽
La tabulation ne pose pas de souci, je pense plutôt à un espace insécable.
Commentaire #93483 écrit par juu le 21/05/2013 à 21h45 | 👍🏽 👎🏽
« Mais dans ce cas, accepte-on aussi les espaces insécables, ou d'autres caractères UTF-8 d'espacement »

Ben, on accepte n'importe quel caractère blanc, tel que défini par les standards POSIX. C'est à dire [ /t/n/r/f/v], ce qui exclut les espaces insécables.

J'ai testé pour m'en assurer, et c'est effectivement la définition retenue par l'interpréteur PHP. Tout passe sans problème, mis à part /f et /v qui balancent des warnings au passage, ce qui n'arrête donc pas l'exécution. Après, si Eclypse ne retient pas les mêmes définitions que PHP lui même, bah effectivement, PEBKAC.
Commentaire #93485 écrit par Hart le 21/05/2013 à 21h51 | 👍🏽 👎🏽
Ça se voit dans un certains éditeurs, avec la bonne configuration. L'espace classique laissera apparaitre un point gris au milieu de la ligne d'écriture, là où l'espace insécable n'en aura pas, voir aura un fond grisé pour être tout de suite très repérable.
Commentaire #93488 écrit par Hart le 21/05/2013 à 22h02 | 👍🏽 👎🏽
Ah, la faute ne vient pas du tout d'Eclipse, En fait, avec une espace insécable, le nom de variable se retrouve défini à $foo  au lieu de $foo. Normal, puisque ça n'est pas un caractère blanc, et en conséquence, $foo n'existe pas.

PEBKAC confirmé, mais pas pour Eclipse, ni pour PHP !
Commentaire #93490 écrit par Hart le 21/05/2013 à 22h06 | 👍🏽 👎🏽
Moi je fais les mises à jour , et les trucs compliqué en ligne de commande, les comparaison de fichier, les commits( selectifs) , les refactorings je les fais sous Eclipse.
D'ailleurs je me demande comment tu fais des refactorings en ligne de commande?
Commentaire #93491 écrit par aaa le 21/05/2013 à 22h07 | 👍🏽 👎🏽
Je ne vois pas le rapport entre cette erreur et ce que je dis.

Et sinon je viens de tester l'espace insécable (code 160) entre le nom de variable et le singe "=":
$a =123; echo $a; et j'obtiens PHP Notice: Undefined variable: $a, ce qui correspond bien à l'erreur d'alain.
Par contre, si je fais echo $a ; (avec l'espace insécable collé), j'obtiens bien 123.
Commentaire #93493 écrit par juu le 21/05/2013 à 22h22 | 👍🏽 👎🏽
sans doute d'un copier coller que j'ai du faire et qui devais contenir un caractère ou une tab et que eclipse a du afficher de la même taille qu'un espace, j'avais eu la même erreur que Juu d'ailleurs: ( PHP Notice: Undefined variable )
Commentaire #93494 écrit par alain le 21/05/2013 à 22h29 | 👍🏽 👎🏽
@Hart, t'as fait disparaître le message sur lequel j'avais répondu.
En tout cas c'est super, je viens d'apprendre qu'on peut écrire des variables en plusieurs mots (visuellement) et ça marche.
$une variable en plusieurs mots = 123;
 echo $une variable en plusieurs mots; // affiche 123
 

Est-ce que la coloration syntaxique va se faire avoir... ?
Commentaire #93495 écrit par juu le 21/05/2013 à 22h34 | 👍🏽 👎🏽
@aaa, le refactoring j'aime pas, je ne laisse jamais l'ordinateur faire tout seul quelque chose. J'édite mon code, pas l'ordi. Je fonctionne peut-être à l'ancienne mais je veux modifier moi même mes fichiers, un petit grep pour trouver ce dont j'ai besoin ça suffit, et ça me permet en plus de me remémorer les emplacements et les utilisations, et ça j'aime.
Commentaire #93499 écrit par juu le 21/05/2013 à 22h50 | 👍🏽 👎🏽
Autant je suis completement d'accord pour la complétion, le refactoring et certains autre arguments.
Autant je suis désolé mais le support SVN c'est juste du confort (faible) pour ne pas "sortir" de l'IDE
TortoiseSVN est très bon pour gérer du SVN avec une GUI et c'est indépendant d'une IDE et très utilisé, donc pas de souci pour passer d'un environnement a un autre a ce niveau là, si on prend trop l'habitude d'un outils intégré a un IDE par contre ca risque d'être déstabilisant si on a besoin d'utiliser un version manager en dehors d'une IDE précise.

sinon je dirait que:
Text editor < IDE pour le dev
N++ > all pour les taches textes courantes
eclipse == usine a gaz (mais pas simple de trouver aussi bien pour certains langages)
Commentaire #93513 écrit par DePassage le 21/05/2013 à 23h35 | 👍🏽 👎🏽
@alain : Pour info eclipse est configurable pour afficher des manière différente les espaces et les autres caractères "blanc".
Pour les convaincus de Netbeans, j'ai envie de rappeler que Netbeans est le petit frère d'Eclipse, il est juste spécialisé dans le web, comme Aptana (qui l'est pour le PHP au passage)
Enfin, pour le troll, je suis sous Dreamweaver au boulot :p
Commentaire #93514 écrit par Crok le 21/05/2013 à 23h39 | 👍🏽 👎🏽
à une certaine époque le réglage par défaut de mon clavier faisait que quand je faisait maj+espace ca faisait un espace insécable au lieu d'un espace.

codant assez souvent ca m'a pas mal emmerdé et meme une ou 2 fois provoqué une erreur que j'avait du mal a retrouver ! (quand on tappe un truc en majuscule le doigt enfoncé sur maj et qu'on enchaine avec un espace on a naturellement tendance a pas relacher maj ou du moins pas tout de suite ...)

c'est resté un moment comme ca parce que j'avais la flemme de faire des recherche pour régler mon clavier correctement pour virer ce bind stupide ...

bref ceci ferait un très bon auto-pebkac j'imagine xD
Commentaire #93515 écrit par DePassage le 21/05/2013 à 23h40 | 👍🏽 👎🏽
alain, j'espère que tu n'écris rien en YAML, parce que les tabulations ne pardonnent pas :p
Commentaire #93517 écrit par neeko le 21/05/2013 à 23h49 | 👍🏽 👎🏽
Eh bien, si pour toi grandir implique ne plus devoir rigoler, ta vie doit être bien triste :(
Commentaire #93525 écrit par N le 22/05/2013 à 02h58 | 👍🏽 👎🏽
Eh bien, si pour toi grandir implique ne plus rigoler, ta vie doit être bien triste :(
Commentaire #93526 écrit par N le 22/05/2013 à 03h02 | 👍🏽 👎🏽
Désolé message au mauvais endroit
Commentaire #93527 écrit par N le 22/05/2013 à 03h03 | 👍🏽 👎🏽
Oui, mais tu choisit d'utiliser une usine a gaz qui est lourde, avec le grand nombre d'inconvénient que cela entraine ;)
N++ gère SVN via un plugin, itou pour l'auto complétion
Et pour le fait de coder avec un gestionnaire de version, je ne peux qu'être d'accord avec toi :D mais quoi qu'il arrive tu DOIT avoir un client qui ne depend pas de ton IDE pour tous les fichiers qu'il ne prendra pas en charge ^^

Enfin bon, ne pas savoir configurer son éditeur pour mettre des espaces a la place d'une tabulation, ou un signe distinctif est dommage ^^
Commentaire #93530 écrit par A-xis le 22/05/2013 à 07h37 | 👍🏽 👎🏽
Tient, c'est ma conf ça :D
Commentaire #93531 écrit par A-xis le 22/05/2013 à 07h41 | 👍🏽 👎🏽
Ne pas troller, ne pas troller ><
Commentaire #93533 écrit par A-xis le 22/05/2013 à 07h45 | 👍🏽 👎🏽
Si c'est juste l'auto complétion qu'il te faut, et pas tous les outils de débogage qui alourdissent un poil éclipse, regarde du côté de Sublime Text, qui outre le fait d'être beau et d'avoir la classe, et également très puissant
Commentaire #93534 écrit par A-xis le 22/05/2013 à 07h48 | 👍🏽 👎🏽
Merci Hart, en effet :)
Commentaire #93568 écrit par Noraa le 22/05/2013 à 10h18 | 👍🏽 👎🏽
Le vrai pebkac c'est que personne ne lui ai fait remarqué qu'il codais comme un porki, et que si rien ne vous choque dans cette phrase c'est un bon pebkac pour vous "Je codais une classe, dans laquelle une fonction possède une dizaine de gros tableaux associatifs. Jusque là, rien d'anormal."
Commentaire #93587 écrit par Axel le 22/05/2013 à 11h01 | 👍🏽 👎🏽
j'avoue que c'est bizarre de trouver ca normal (dans le sens courant), m'enfin on a pas le détail de la classe, ca peut très bien être justifié par un besoin très particulier, donc pas évident de se prononcer a ce point quand même.
mais effectivement vu de très loin, sous cet angle là, cette classe semble être potentiellement une bonne candidate à un refactoring.
Commentaire #93590 écrit par DePassage le 22/05/2013 à 11h16 | 👍🏽 👎🏽
Il y a une option dans Eclipse pour afficher les espaces.
C'est moche au début, mais on s'y habitue. Et c'est pratique lorsque les règles de codage de la boite imposent d'utiliser des tabulations composées de 4 espaces au lieu du simple tab.
Commentaire #93601 écrit par Peredur le 22/05/2013 à 13h02 | 👍🏽 👎🏽
Le troll caché, c'est qu'entre troller Eclipse ou PHP, il choisit Eclipse.
Commentaire #93625 écrit par b0fh le 22/05/2013 à 14h29 | 👍🏽 👎🏽
On s'en fout qu'Eclipse soit lourd (et pas tant que ça), j'ai 8 Go de RAM et je t'en ouvre 5 si j'veux ! Na !
Pour le reste, on peut dire ce qu'on veut mais Eclipse reste le meilleur IDE pour PHP, il gère pas parfaitement l'autocompletion et autre fonctionnalité issues de Java mais ça reste le meilleur.
(Il galère avec les include mais c'est compréhensible, quand ça devient trop complexe...)
Noooon, pas de refactoring avec PHP, juste Ctrl+H :D (Barbare mode)

@DePassage Mais... comparer TortoiseSVN aux outils SVN pour Eclipse (e.g Subclipse)... C'est du Troll en soi, quand t'es dans le projet, dans l'éditeur, c'est 50 fois plus rapide et pratique d'utiliser Eclipse.
Commentaire #93662 écrit par Cartman34 le 22/05/2013 à 18h29 | 👍🏽 👎🏽
concernant les tableaux associatifs je ne pouvais faire autrement,
cette classe permet d'importer un xml, certaines balises contiennent un entiers qui permettent de coder des valeurs du style <bien>1<bien> avec
1=>location
2=>vente
...
et j'ai besoin d'avoir la valeur textuel correspondante donc je passe par ces tableaux associatifs.
ils ne sont utiliser que dans cette classe donc le refactoring ne sert à rien dans ce cas précis
Commentaire #93674 écrit par alain le 22/05/2013 à 20h46 | 👍🏽 👎🏽
PHP fonctionne très bien si on le garde a jours et qu'on ne l'utilise QUE pour du web. Et c'est le langage le plus utilisé pour faire des pages web :| (ce qui ne signifie pas que ce soit le meilleur ou le plus adapté)

Moi, mes pages, je les codes en assembleurs. C'est un poil plus long. Surtout la reimplementation de http.
Commentaire #93693 écrit par A-xis le 23/05/2013 à 08h03 | 👍🏽 👎🏽
Et le fait de pouvoir maintenir facilement le code lors du changement de structure de ton xml ?
De plus des méthodes d'une dizaine de lignes sont beaucoup plus lisible qu'une seule de 600.
Commentaire #94176 écrit par Crok le 25/05/2013 à 11h47 | 👍🏽 👎🏽