2P by neo 2달전 | favorite | 댓글 3개

질문

  • 특정 시간에 자동 테스트가 실패하는 이유에 대한 질문이 제기됨. 테스트는 00:30에 실패하며, 예상치 못한 "gimme gimme gimme"라는 메시지를 stderr에 출력함.

답변 1

  • 이 문제는 man 명령어의 이스터 에그 때문임.
  • man 명령어를 00:30에 실행하면 "gimme gimme gimme"라는 메시지가 출력됨.
  • 이 이스터 에그는 ABBA의 노래 "Gimme! Gimme! Gimme! (A Man After Midnight)"에서 유래함.
  • 이 문제는 커밋 84bde8을 통해 해결됨. 이제 man -w를 실행해도 이 이스터 에그가 발생하지 않음.

답변 2

  • 이 이스터 에그는 man 명령어의 소스 코드에 포함된 것으로, 특정 시간에만 출력됨.
  • RHEL, OpenSUSE, Fedora, Debian 등 여러 배포판에서 발견됨.
  • 이스터 에그는 man-db의 개발자인 Colin Watson에 의해 제거됨.

답변 3

  • 이 이스터 에그는 man-db 2.8.0 버전에서 제거될 예정임.
  • 이스터 에그는 많은 사람들에게 웃음을 주었지만, 일부에게는 불편함을 주었음.
  • Colin Watson은 향후 다른 형태의 이스터 에그를 추가할 가능성을 열어둠.

GN⁺의 정리

  • 이 기사는 man 명령어의 이스터 에그로 인해 발생한 문제를 다루고 있음. 이스터 에그는 ABBA의 노래에서 영감을 받아 추가된 것으로, 특정 시간에만 작동함.
  • 이 문제는 man-db의 개발자가 이스터 에그를 제거하면서 해결됨. 이로 인해 자동화된 테스트 환경에서의 예기치 않은 오류가 방지됨.
  • 이 기사는 소프트웨어 개발 및 테스트 환경에서 이스터 에그가 어떻게 문제를 일으킬 수 있는지를 보여주는 좋은 사례임. 비슷한 기능을 가진 다른 프로젝트로는 info 명령어가 있음.

이런 류의 이스터에그를 넣을거라면 표준입출력이 TTY인지 한 번 검사하는 것도 좋은 방법이죠. 셸스크립트라면 [[ -t 1]]로 검증 가능합니다.

man이 남성으로 번역됐군요ㅎㅎ

Hacker News 의견
  • 과거에 텔레메디신 웹 앱을 개발할 때, 환자들이 온라인 설문지를 작성하여 의사에게 답변을 보여주는 기능을 구현했음. 각 의료 시스템의 부서마다 다른 논리로 질문을 표시해야 했음. 디버그 과정에서 실수로 남긴 "I SEE YOU!!!"라는 메시지가 정신과 환자에게 발견되었음. 이후 디버그 마커로 aaa와 111을 사용하게 되었음

  • 소프트웨어가 무료이고 유지보수자가 급여를 받지 않는다면, 몇 가지 이스터에그는 작은 대가임. 한 회사에서 개발자가 T&C에 사용자가 영혼을 회사에 양도한다는 내용을 추가했음. 이는 경영진이 T&C를 검토하는지 확인하기 위한 것이었음

  • 코딩은 재미있어야 하며, 오픈소스가 너무 진지해지는 것은 기업 때문임. 개인적으로 프로그램을 작성할 때 이스터에그를 추가하여 사용자에게 인간적인 면을 상기시킴

  • man-db의 개발자인 Colin Watson이 이스터에그를 완전히 제거했음. 이는 사용자에게 해를 끼칠 수 있기 때문임

  • FreePBX를 설정할 때 666 확장 번호에 Michael Jackson의 Thriller에서 Vincent Price의 웃음소리를 추가했음. 그러나 시스템 오류로 모든 전화가 666으로 연결되어 동료들이 불쾌함을 느꼈음

  • QNAP Celeron NAS에 Ubuntu를 설치했으나 특정 시간에 커널 패닉이 발생했음. 이는 J1900 장치의 실리콘 열화 버그 때문이었음

  • man 명령어를 인수 없이 호출하는 테스트가 있는 이유에 대한 가설이 필요함. 이는 man이 설치되었는지 확인하기 위한 것일 수 있음