Toujours dans le cadre de ma haute école d'informatique, alors que j'assistais à un cours de langage C (que j'avais déjà appris bien avant par moi-même), nous parlions des structures.
J'étais un peu dissipé, jusqu'à ce que j'entende ceci : "Attention que les membres de votre structure ne se suivent pas forcément en mémoire, car ils sont alignés sur des adresses paires".
Je savais que c'était faux, mais je n'avais pas réalisé au moment même pour quelle raison : cela n'était vrai qu'à l'époque des processeurs 16 bits (alignement sur 16 bits, alias deux octets). Ceci explique pourquoi il est formellement interdit d'utiliser des
int
dans le code, pour le type "bien plus économe"
short
.
En quelle année sommes-nous ? Ah oui, 2013… L'école a un programme très à jour. PEBKAC.
Il y a quelques mois, dans ma haute école d'informatique, nous devions écrire un jeu de Puissance 4 en langage C (rudimentaire, en console) avec possibilité de jouer contre l'ordinateur (donc implémenter un semblant d'adversaire).
Après avoir programmé et ajusté un adversaire m'ayant mis une raclée (20 à 0 pour lui), je vérifie une dernière fois que toutes les consignes sont respectées, et je rends mon programme, fier de moi.
Mon professeur me convoque le lendemain et m'annonce que j'ai reçu la note de 0/20 pour une raison : « Vous avez utilisé des
int
à la place des
short
».
Passons sur le fait que ça n'était pas dans les consignes, j'ai voulu savoir pourquoi, et on m'a rétorqué que mon programme consommait de fait plus de mémoire.
Alors, en quelle année on est déjà ? Ah oui, 2013… De plus, avec la pile, la consommation mémoire est la même. J'ai bien essayé de lui expliquer, mais en vain… PEBKAC.
Alors que je lisais un article sur le Web au sujet de deux consoles de la dernière génération, je suis tombé sur la phrase suivante :
« Pour commencer, les deux consoles seraient équipées de la puce Jaguar d'AMD, qui est un APU 64 bits x86 ».
64 bits x86… Il faudrait se décider. PEBKAC.
Assis dans la bibliothèque de mon quartier, j'observais la façon dont ma voisine utilisait son ordinateur portable. Le déplacer en le soulevant par l'écran, déjà pas bien conseillé pour sa durée de vie...
Mais en l'éteignant, son Windows se mit à lancer le processus de mise à jour. Je l'ai alors entendu dire à voix haute : « Ah, encore ! », avant de forcer l'extinction en gardant enfoncé le bouton d'alimentation de sa machine.
Cet ordinateur risque de rendre bientôt l'âme. PEBKAC.
Ma belle-sœur me téléphone un peu paniquée, apparemment son ordinateur portable aurait un virus rendant la machine inutilisable.
Elle m'annonce avoir consulté un technicien, qui lui aurait dit qu'elle avait attrapé « le pire virus qui existe », j'ai nommé « hacking system ».
Dois-je préciser que son backup est corrompu, et qu'elle n'avait pas jugé utile d'en faire une sauvegarde ?
Sans oublier qu'elle vient d'acheter un disque dur externe de 2 To avec prise USB 3, sans même en avoir une sur son ordinateur. PEBKAC.
Je testais une ancienne démo de mon moteur de jeu, qui est en développement. La démo ne fait que déplacer une source sonore de gauche à droite. Distrait, je la lance.
Je remarque très vite que la source sonore ne commence pas à gauche mais à droite, et se déplace vers le côté opposé.
Un changement d'axe ? Un problème de repère ? Peut-être bien une erreur gravissime dans les calculs mathématiques ?...
Non, ça, c'était avant de remarquer que mon haut-parleur de gauche portait la mention « Right Speaker ». PEBKAC.
En école supérieure d'informatique, j'ai le plaisir "d'apprendre le langage C", que je connais déjà par auto-didactisme, et heureusement pour moi. Cependant, j'ai pu assister à quelques erreurs de mes professeurs :
- D'après eux, "Code::Blocks" est un compilateur (je lui ai fait remarquer que c'était GCC qui faisait office de compilateur, et que "Code::Blocks" n'était au fond qu'une interface, mais je cite : "On ne va pas jouer sur les mots").
- Nous apprenons bien évidemment le C89, avec ses limitations. C'est vrai quoi, ce n'est pas comme si une nouvelle norme du langage C était sortie ces 23 dernières années.
- Il faut toujours utiliser "fflush(stdin);" après une entrée clavier. Pas mal pour des programmes dits "ANSI".
- Et pour finir en beauté, "else if" est une pratique à proscrire, pour son équivalent "bien plus lisible" d'un nouveau bloc "if" dans le précédent bloc "else".
Non mais je vous jure... PEBKAC.