Question
- Une question a été soulevée sur la raison pour laquelle des tests automatisés échouaient à une heure précise. Les tests échouaient à 00:30 et affichaient de façon inattendue le message « gimme gimme gimme » sur stderr.
Réponse 1
- Ce problème était dû à un easter egg de la commande
man.
- Lorsqu’on exécute la commande
man à 00:30, le message « gimme gimme gimme » est affiché.
- Cet easter egg vient de la chanson d’ABBA « Gimme! Gimme! Gimme! (A Man After Midnight) ».
- Le problème a été corrigé via le commit 84bde8. Désormais, l’exécution de
man -w ne déclenche plus cet easter egg.
Réponse 2
- Cet easter egg était inclus dans le code source de la commande
man et ne s’affichait qu’à une heure précise.
- Il a été observé dans plusieurs distributions, dont RHEL, OpenSUSE, Fedora et Debian.
- L’easter egg a été supprimé par Colin Watson, développeur de
man-db.
Réponse 3
- Cet easter egg devait être supprimé dans la version 2.8.0 de
man-db.
- Il a fait rire beaucoup de monde, mais a aussi causé des désagréments à certaines personnes.
- Colin Watson a laissé ouverte la possibilité d’ajouter à l’avenir un easter egg sous une autre forme.
Résumé de GN⁺
- Cet article traite d’un problème causé par un easter egg de la commande
man. Inspiré d’une chanson d’ABBA, il ne se déclenchait qu’à une heure précise.
- Le problème a été résolu lorsque le développeur de
man-db a supprimé l’easter egg. Cela a permis d’éviter des erreurs inattendues dans les environnements de test automatisés.
- Cet article constitue un bon exemple de la manière dont des easter eggs peuvent provoquer des problèmes dans les environnements de développement et de test logiciel. Un autre projet doté d’une fonctionnalité similaire est la commande
info.
3 commentaires
Si l’on veut ajouter ce genre d’easter egg, c’est aussi une bonne idée de vérifier au préalable si l’entrée/sortie standard est un TTY. Dans un script shell, on peut le vérifier avec
[[ -t 1]].mana donc été traduit par « homme », haha.Avis sur Hacker News
Par le passé, en développant une web app de télémédecine, j’avais mis en place une fonctionnalité où les patients remplissaient un questionnaire en ligne puis leurs réponses étaient affichées au médecin. Dans chaque service de chaque système médical, il fallait afficher les questions selon une logique différente. Pendant le débogage, un message
I SEE YOU!!!laissé par erreur a été repéré par un patient en psychiatrie. Après ça, j’ai commencé à utiliser aaa et 111 comme marqueurs de debugSi un logiciel est gratuit et que son mainteneur n’est pas payé, alors quelques easter eggs sont un faible prix à payer. Dans une entreprise, un développeur avait ajouté dans les T&C que l’utilisateur cédait son âme à la société. C’était pour vérifier si la direction relisait bien les T&C
Le code devrait être amusant, et si l’open source devient trop sérieux, c’est à cause des entreprises. Quand j’écris des programmes pour moi-même, j’ajoute parfois des easter eggs pour rappeler aux utilisateurs qu’il y a un être humain derrière
Colin Watson, le développeur de man-db, a complètement supprimé les easter eggs. Cela pouvait nuire aux utilisateurs
En configurant FreePBX, j’ai ajouté sur l’extension 666 le rire de Vincent Price dans Thriller de Michael Jackson. Mais à cause d’une erreur système, tous les appels ont été routés vers le 666, ce qui a mis mes collègues mal à l’aise
J’ai installé Ubuntu sur un NAS QNAP Celeron, mais à une certaine heure il y avait un kernel panic. C’était dû à un bug de dégradation du silicium sur les appareils J1900
Il me faut une hypothèse expliquant pourquoi il existe un test qui appelle la commande man sans argument. C’est peut-être simplement pour vérifier que man est bien installé