왜 사람이 00:30에 "gimme gimme gimme"를 인쇄합니까?


1625

우리는 자동 테스트 중 일부가 00:30에 실행될 때 실패하지만 하루 종일 제대로 작동한다는 것을 알았습니다. stderr에서 "gimme gimme gimme"메시지와 함께 실패하지만 예상하지 못했습니다. 이 결과를 얻는 이유는 무엇입니까?



54
나는 그것을 얻지 못한다. 테스트 스크립트가 왜 실패해야 할지를 man으로 호출합니까?
— Joshua

19
@Joshua "manpath"- 'man -w'를 원했기 때문입니다. 답을보십시오.
— Jaroslav Kucera

67
역사를 위해 왜 매분마다 'man-w'를해야합니까? 실제로 무엇을 테스트하고 있습니까?
— Olivier Dulac

22
@OlivierDulac 테스트에서 한 번만 트리거됩니다. 우리는 테스트 순서를 재정의했으며 00:30에 트리거되면서 갑자기이 오류가 발생했습니다.
— Jaroslav Kucera

답변:


2146

친애하는 @colmmacuait , 0001 시간에 "man"을 입력하면 " gimme gimme gimme "가 인쇄되어야한다고 생각합니다. #abba @ marnanel -2011 년 11 월 3 일

그게 내 잘못이야 내가 제안 했어 죄송합니다.

거의 모든 이야기가 커밋됩니다. 사람의 관리자는 나의 좋은 친구입니다. 그리고 6 년 전 어느 날 자정 이후에 사람을 불러 오면 " gimme gimme gimme "라는 Abba 노래 때문에 " gimme gimme gimme a man "이라고 인쇄했습니다. 자정 이후 ":

음, 그는 실제로 않았다 넣어 에서 . 몇몇 사람들은 그것을 발견하기 위해 즐겁게 지 냈으며, 우리는 오늘날까지 대부분 잊어 버렸습니다.

분명히 Col을 말할 수 는 없지만 이것이 아무런 문제를 일으키지 않을 것이라고는 생각하지 않았습니다. 나는 결국 하나가 나타났다는 것에 놀라지 말아야한다고 생각하지만 6 년이 걸렸다.

( 커밋 메시지 는 Thomas라고 부릅니다. 토마스는 온라인에서 많이 사용하지 않지만 법적 이름입니다.)

이 문제는 commit 84bde8 로 해결되었습니다 : Man with Running man -w은 더 이상이 부활절 달걀을 유발하지 않습니다.


361
죄송합니다! 오류가 아닌 경우에 영향을 미치지 않습니다. git.savannah.gnu.org/cgit/man-db.git/commit/…을 구현할 때 이것을 고려하지 않았습니다 . 마스터에서 수정 : git.savannah.gnu.org/cgit/man-db.git/commit/…
— 콜린 왓슨

3
의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
— terdon

13
의견은 설명을 요구하거나 답변 의 기술적 요점을 논의하기 위한 것입니다. 이스터 에그의 장점에 대해 논의하고 싶다면 채팅하십시오 .
— terdon

8
맘마 미아, 이제 정말 알아!
— 엔리코 마리아 데 안젤리 스

3
아마도 사람은
— Patrick Taylor

423

에 부활절 달걀입니다 man. man페이지를 지정하지 않고 또는을 사용하여 실행하면 -w"gimme gimme gimme"가 stderr에 출력되지만 00:30에만 출력됩니다.

# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man

종료 코드는 항상 0입니다.

올바른 출력은 항상 다음과 같아야합니다.

# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1

문자열 "gimme gimme gimme"은 RHEL, OpenSUSE, Fedora, Debian 등에서 찾을 수 있으므로 실제로는 배포판에 따라 다릅니다. 당신은 할 수 grep귀하의 man바이너리 확인합니다.

이 코드는 이 커밋 에 의해 추가 된 출력을 담당합니다 .

src/man.c-1167- if (first_arg == argc) {
src/man.c-1168-   /* 
http://twitter.com/#!/marnanel/status/132280557190119424 */
src/man.c-1169-   time_t now = time (NULL);
src/man.c-1170-   struct tm *localnow = localtime (&now);
src/man.c-1171-   if (localnow &&
src/man.c-1172-       localnow->tm_hour == 0 && localnow->tm_min == 30)
src/man.c:1173:     fprintf (stderr, "gimme gimme gimme\n");

이 문제에 대해 RHEL 지원팀에 문의했습니다.

문자열은 잘 알려진 ABBA 노래 Gimme 에서 온 것입니다 ! 김미! 김미! (자정 이후의 남자) .


man-db 개발자 인 콜린 왓슨 (Colin Watson)은 재미가 충분하다고 결정했으며 이야기는 잊혀지지 않고 부활절 달걀을 완전히 제거했습니다 .

콜린 감사합니다!


147
사용 faketime가능한 플랫폼 에서는 시스템 시간을 변경하지 않고도이 작업을 시도 할 수 있습니다 : faketime '00:30:00' man(Debian 8).
— roaima

5
@rrauenza buzilla 티켓이 있습니다 : bugzilla.redhat.com/show_bug.cgi?id=1515352
— Jaroslav Kucera

38
만에 실행에 저자는 이제 부활절 달걀을 강화했다 man,하지 man -w: git.savannah.nongnu.org/cgit/man-db.git/commit/src/... 및 Marnanel의 confessio ^ Wanswer 콜린의 코멘트 .
— Martijn Pieters

21
초기 커밋이 오전 12시 1 분에 트리거되었다고 가정하겠습니다. 후속 커밋은 커밋 로그 메시지 "12시 반"이라는 메시지와 함께 12시 30 분으로 변경되었으며 같은 노래에서 다시 인용되었습니다.
— egmont

6
@ 0x90 man -w은 현재 매뉴얼 페이지 검색 경로를 인쇄합니다. 예를 들어 자동화하려는 것이 매뉴얼 페이지의 설치 또는 테스트와 같은 경우 다른 것의 빌딩 블록으로 상당히 합리적으로 사용할 수있는 것입니다.
— 콜린 왓슨

364

약간의 반영 후, 나는 이 이스터 에그를 제거했습니다 . 다가오는 man-db 2.8.0에 나옵니다.

나는 그것이 일부 사람들을 미소 짓게해서 기쁘다. 결국 그 목적이 전부 였고, 트위터 알림은 오늘날 대부분의 사람들이 성가신 것보다 더 재미 있다고 생각한다고 제안한다. 그럼에도 불구하고 어떤 사람들은 성가신 것을 알게되었고 6 년은 그런 종류의 일에는 꽤 좋은 달리기 인 것 같습니다. 아마도이 질문에 의해 이미 예상치 못한 노출보다 훨씬 더 나은 노출을 얻지 못할 것입니다. 잠자리에들 시간입니다.


121
당신이 결정한 것이 정말 슬 sad습니다. 부활절 달걀에 너무 많은 사람들이 IMO를 가지고 있습니다.
— 세스

36
앞으로는 더주의를 기울이지 만 다른 것을 추가하는 것을 배제하지 않을 것입니다! 그래도 조금 낡았 고 유머에는 참신함이 필요합니다.
— 콜린 왓슨

31
@Seth에 동의해야합니다. 대부분의 사람들이 미소를 짓게 된 것은 슬픈 일입니다. 우리는이 세상에서 더 많은 것을 필요로합니다.
— Videonauth

189
나는이 모든 워크 플로우를 아프게하지 않았 으면 좋겠 xkcd.com/1172
— Lakshay Garg를

73
@ ColinWatson 기본 흐름에서 이것을 비활성화하는 것이 좋은 생각이므로 다른 사람의 작업 흐름을 방해하지 않습니다. 그러나 동시에, 걸작을 제거해야한다는 것은 부끄러운 일입니다. man -abba자정 이후에 발사했을 때 와 같은 특별한 깃발을 추가 하면 부활절 달걀을 줄 수 있습니다.
— Bartlomiej Skwira
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.