2 points par GN⁺ 2024-10-05 | 3 commentaires | Partager sur WhatsApp

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

 
tribela 2024-10-07

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]].

 
y15un 2024-10-05

man a donc été traduit par « homme », haha.

 
GN⁺ 2024-10-05
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 debug

  • Si 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é