- Easter egg spécifique à la R12
Bon mon but c’était surtout à la base de refaire le fameux easter egg avec la fonction reshape. Définition d’un easter egg sur wikipédia:
En informatique, un easter egg (locution anglaise, littéralement « Å“uf de Pâques ») est une fonction cachée au sein d’un programme (animation, jeu, message, etc.) accessible à partir d’un mot clé ou d’une combinaison de touches et de clics.
Un easter egg n’est pas assimilable à un virus : il n’abîme ni le programme original, ni les autres données, et ne se propage pas ; il est caché et a été inséré volontairement par les développeurs. Il peut s’agir de la liste des auteurs du logiciel, d’un jeu, d’une blague, d’une séquence inédite, de bruitages. On en trouve aussi dans les jeux vidéo (Diablo est un exemple célèbre). Les niveaux cachés sont souvent classés comme easter eggs ainsi que les clins d’Å“il ou références dans les jeux vidéo.
Il existe donc plusieurs easter eggs dans MATLAB et celui que je vous présente aujourd’hui n’est réalisable qu’avec la R12. En tapant 3 fois la commande reshape(1, [-1 -1])
on obtiendra 3 messages différents:
Don’t do this again!.
Cleve says you should be doing something more useful.
Seriously, size argument cannot be negative.
Le deuxième message fait référence à Cleve Moler , confère mon poste sur funtool.
En voici la preuve en image , j’ai tapé ces commandes dans la R12sp1 comme on peut le voir le 08 Novembre 2010 (utilisation de la commande date
) :
Refaire cette commande une quatrième fois retournera le dernier message:
Seriously, size argument cannot be negative
En R2010b , l’erreur sera toujours la même:
Size vector elements should be nonnegative
J’ai voulu inspecter comment la fonction reshape était écrite en R12. Malheureusement , cette fonction à l’époque n’était pas éditable :
reshape.m est toujours une built-in de MATLAB , c’est à dire que la commande exist retournera le code 5 et qu’on n’aura pas accès au code MATLAB source. En revanche depuis la R14 , reshape.m est éditable , et on peut donc lire les commentaires: