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.
Ayant à mettre en place un site et cherchant à limiter le code que j'aurais à écrire pour faciliter la maintenance, j'ai eu à utiliser divers plugins et, pour certains, à les adapter à mon usage. Cela m'a permis de découvrir de grands moments de design logiciel, comme :
if ( 1 == 1 ) {', '$_POST['dat'].'x' != 'x'

Ou encore, avec bonus spécial pour les noms de variables :
foreach($userinfo[$rolemgt] as $v) {
      if ( preg_match('/^WP /',trim($v) ) ) {
        $aa = explode(",",$a[1]);
        foreach($aa as $vv) { 

Le plugin est certainement très utile, mais pour un projet supporté depuis plus de trois ans, il n'a même plus l'excuse de la jeunesse. Au développeur, PEBKAC.
PEBKAC #8332 proposé par Taiki le 07/08/2013 | 11 commentaires | 👍🏽 👎🏽 +140
J'avoue ne pas comprendre le

$_POST['dat'].'x' != 'x'

Pour le reste, bonne adaptation. En effet, il est recommandé de rire 5 minutes par jour, je pense que là, tu as gagné dix ans.
Commentaire #106009 écrit par Aaargh!!! le 07/08/2013 à 12h50 | 👍🏽 👎🏽
Moi c'est ce qui suit l'accolade que je ne comprends pas :
- On pourrait d'abord penser qu'il cherche à concaténer des chaines, mais non...
- On pourrait d'abord penser qu'il cherche vérifier une condition, mais non...

Pour le deuxième exemple, lapin compris.
Commentaire #106019 écrit par Link le 07/08/2013 à 13h40 | 👍🏽 👎🏽
Si c'était dans un if, j'aurais dit que ce bout de code permet de vérifier si $_POST['dat'] est vide... Mais bon, quand même, quoi, ne pas connaitre if(!$_POST['dat']), et prétendre pouvoir faire un plugin...
Commentaire #106024 écrit par ProgForever le 07/08/2013 à 13h52 | 👍🏽 👎🏽
Ce n'est pas visible mais c'est sensé être deux morceaux de code:
if ( 1 == 1 ) {, et $_POST['dat'].'x' != 'x'

C'est justement le truc: le code est super dense, les noms de variables d'une grande utilité et avec une petite regex d'une haute complexité parce que si on a du CPU, c'est pour le consommer!

(je n'ai pas enlevé les commentaires, c'est vraiment comme ça)
Commentaire #106027 écrit par Taiki le 07/08/2013 à 14h17 | 👍🏽 👎🏽
!$_POST['dat'] flinguerai les 0, false & co, un isset() serait plus adapté.
Pour le reste du plugin, ça reste un truc assez sophistiqué (une interface LDAP)
Commentaire #106028 écrit par Taiki le 07/08/2013 à 14h18 | 👍🏽 👎🏽
Sinon, ce code était dans un if(), mais la condition était longue et j'était un peu crevé quand j'ai découpé le code pour le mettre dans le pebkac
Commentaire #106036 écrit par Taiki le 07/08/2013 à 14h33 | 👍🏽 👎🏽
Chaque fois que vous utilisez une regex pour un truc aussi basique au lieu d'un strncmp(), un développeur se met au Java.

J'espère m'être fait comprendre.
Commentaire #106054 écrit par iFrancois le 07/08/2013 à 15h47 | 👍🏽 👎🏽
L'avantage du java c'est que tout est fait pour t'empecher de faire des regexps.
Commentaire #106059 écrit par aaa le 07/08/2013 à 16h22 | 👍🏽 👎🏽
Everytime you use an unuseful Regex, God kills a firefly.
--> http://xkcd.com/378/
Commentaire #106066 écrit par Ishido le 07/08/2013 à 17h27 | 👍🏽 👎🏽
Malheureusement, c'est très fréquent. On ne peut pas empêcher les mauvais devs de dev (libertés, droits etc...ce genre de conneries) alors du coup on se retrouve très souvent avec des applications mal conçues ou programmées salement.
C'est pour ça que je fais beaucoup de choses par moi même, car à force des les utiliser... y'en a marre.
Commentaire #106129 écrit par Cartman34 le 07/08/2013 à 20h59 | 👍🏽 👎🏽
Ça, c'est du code de quelqu'un qui a vu ça dans un script shell, qui a pas cherché pourquoi c'est utile, et qui l'applique à l'envers dans un autre langage.
Voir les scripts ./configure, par exemple : if test "x$CONFIG_SHELL" != x; then ...

La note en bas de http://tldp.org/LDP/abs/html/comparison-ops.html#FTN.AEN3662 semble indiquer qu'il s'agit d'un bug avec les variables vides dans certaines versions de bash ...

Mais c'est peut être utile en php, vu la complexité et la quasi-absence de logique des comparaisons (à quand le ====, après le == foireux et le === foireux aussi ?) dans ce langage.
Commentaire #106135 écrit par tonton le 07/08/2013 à 21h48 | 👍🏽 👎🏽