Mengapa pria mencetak “beri aku beri aku beri” pukul 00:30?


1624

Kami telah memperhatikan bahwa beberapa pengujian otomatis kami gagal ketika dijalankan pada pukul 00:30 tetapi bekerja dengan baik sepanjang hari. Mereka gagal dengan pesan "beri aku beri aku beri" di stderr, yang tidak diharapkan. Mengapa kita mendapatkan hasil ini?



54
Saya tidak mengerti. Mengapa skrip pengujian Anda memanggil man di mana seharusnya gagal?
Yosua

19
@ Yosua Karena kami menginginkan "jalur" - 'lelaki-w'. Lihat jawabannya.
Jaroslav Kucera

67
Demi sejarah, mengapa Anda perlu melakukan 'pria-w' setiap menit? apa yang sebenarnya kamu uji?
Olivier Dulac

22
@OlivierDulac Dipicu hanya sekali dalam ujian. Kami telah menata ulang urutan tes dan tiba-tiba kesalahan ini muncul karena dipicu pada pukul 00:30 ...
Jaroslav Kucera

Jawaban:


2145

Dear @colmmacuait , saya berpikir bahwa jika Anda mengetik "man" pada jam 0001 itu harus mencetak "gimme gimme gimme". #abba @marnanel - 3 November 2011

eh, itu salah saya, saya sarankan. Maaf.

Hampir seluruh cerita ada di komit. Pemelihara manusia adalah teman baik saya, dan suatu hari enam tahun yang lalu saya bercanda mengatakan kepadanya bahwa jika Anda memohon pria setelah tengah malam itu harus mencetak " gimme gimme gimme ", karena lagu Abba disebut " Gimme gimme gimme a man setelah tengah malam ":

Yah, dia memang benar-benar meletakkannya di . Beberapa orang merasa geli ketika menemukannya, dan kami kebanyakan melupakannya sampai hari ini.

Saya tidak bisa berbicara untuk Kol , jelas, tetapi saya tidak berharap ini akan menyebabkan masalah: tes seperti apa yang akan merusak penguraian output dari manusia tanpa halaman yang ditentukan? Saya kira saya seharusnya tidak terkejut bahwa seseorang muncul pada akhirnya, tetapi butuh enam tahun.

( Pesan komit memanggil saya Thomas, yang merupakan nama depan sah saya meskipun saya tidak menggunakannya secara online.)

Masalah ini telah diperbaiki dengan komit 84bde8 : Running man dengan man -wtidak akan lagi memicu telur paskah ini.


361
Ups! Itu tidak pernah dimaksudkan untuk mempengaruhi kasus non-kesalahan. Saya tidak memperhitungkan ini ketika saya menerapkan git.savannah.gnu.org/cgit/man-db.git/commit/… . Diperbaiki master: git.savannah.gnu.org/cgit/man-db.git/commit/…
Colin Watson

3
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
terdon

13
Komentar tersebut untuk meminta klarifikasi dan / atau mendiskusikan poin-poin teknis dari suatu jawaban. Jika Anda ingin mendiskusikan manfaat telur Paskah, silakan bawa untuk mengobrol .
terdon

8
Mamma mia, sekarang aku benar-benar tahu!
Enrico Maria De Angelis

3
mungkin manusia membutuhkan parameter --seriously
Patrick Taylor

422

Ini adalah telur paskah di man. Ketika Anda menjalankan mantanpa menentukan halaman atau dengan -w, itu output "beri aku beri aku beri" ke stderr, tetapi hanya pada 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

Kode keluar selalu 0.

Output yang benar harus selalu:

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

String "gimme gimme gimme" dapat ditemukan di RHEL, OpenSUSE, Fedora, Debian dan mungkin lebih, jadi itu bukan distro yang spesifik. Anda dapat memverifikasi biner grepAnda man.

Kode ini bertanggung jawab untuk output , ditambahkan oleh komit ini :

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");

Saya telah menghubungi dukungan RHEL tentang masalah ini.

String ini berasal dari lagu ABBA yang terkenal Gimme! Beri aku Beri aku (Seorang Pria Setelah Tengah Malam) .


Pengembang man-db, Colin Watson, memutuskan bahwa ada cukup kesenangan dan ceritanya tidak akan dilupakan dan menghapus telur paskah sepenuhnya .

Colin terima kasih!


147
Pada platform yang faketimetersedia, Anda dapat mencoba ini tanpa perlu mengubah waktu sistem: faketime '00:30:00' man(Debian 8).
roaima


38
Penulis sekarang telah mengencangkan telur paskah untuk hanya berjalan man, bukan man -w: git.savannah.nongnu.org/cgit/man-db.git/commit/src/… dan komentar Colin tentang pengakuan Marnanel's confessio ^ Wanswer .
Martijn Pieters

21
Sebutkan bahwa komit awal dipicu pada 12:01. Komit tindak lanjut mengubah bahwa menjadi 12:30 dengan pesan log komit "setengah dua belas" yang sekali lagi dikutip dari lagu yang sama.
egmont

6
@ 0x90 man -wmencetak jalur pencarian halaman buku panduan saat ini, yang merupakan hal yang mungkin cukup Anda gunakan sebagai blok bangunan untuk hal lain, misalnya jika hal yang Anda otomatisasi melibatkan menginstal atau menguji halaman manual.
Colin Watson

363

Setelah beberapa refleksi, saya telah menghapus telur Paskah ini . Itu akan hilang di man-db 2.8.0 mendatang.

Saya senang bahwa itu membuat beberapa orang tersenyum, yang setelah semua tujuan itu, dan pemberitahuan Twitter saya dan seterusnya hari ini menunjukkan bahwa kebanyakan orang berpikir itu lebih lucu daripada mengganggu. Tetap saja, beberapa orang merasa hal itu menjengkelkan, dan enam tahun sepertinya berjalan cukup baik untuk hal semacam itu; itu mungkin tidak akan mendapatkan eksposur yang jauh lebih baik daripada yang sudah ada sebelumnya melalui pertanyaan ini. Saatnya menidurkannya.


121
Saya sangat sedih Anda memutuskan itu. IMO terlalu banyak orang memilikinya untuk telur paskah.
Seth

36
Saya tidak akan mengesampingkan menambahkan sesuatu yang berbeda di masa depan, meskipun dengan lebih hati-hati! Tapi itu agak basi, dan humor memang membutuhkan kebaruan.
Colin Watson

31
Saya harus setuju dengan @Seth, sedih melihat sesuatu yang membuat sebagian besar dari kita tersenyum, kita membutuhkan lebih dari itu di dunia ini.
Videonauth

189
Saya harap ini tidak merusak alur kerja apa pun xkcd.com/1172
Lakshay Garg

73
@ColinWatson Saya pikir menonaktifkan ini dalam aliran default adalah ide yang bagus, sehingga tidak merusak alur kerja siapa pun. Tetapi pada saat yang sama, sayang sekali mahakarya seperti itu harus dihapus. Anda bisa menambahkan bendera khusus seperti man -abbadan ketika ditembakkan setelah tengah malam akan memberikan telur paskah.
Bartlomiej Skwira
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.