Linux

apt-get moo: da dove viene la mucca

Scremato leggero, va giù che è un piacere

Scrivete apt-get moo e compare una mucca. La vera storia della Super Mucca nascosta nel gestore dei pacchetti di Debian, del suo calendario, dei suoi parenti, e del perché questo blog ha una mucca al comando.

cowsay

Aprite un terminale su una qualunque macchina Debian o Ubuntu e scrivete il comando meno professionale della storia dell’amministrazione di sistema:

$ apt-get moo
                 (__)
                 (oo)
           /------\/
          / |    ||
         *  /\---/\
            ~~   ~~
..."Have you mooed today?"...

Tutto qui. Nessun pacchetto installato, nessun repository aggiornato, nessun inferno di dipendenze. Solo una mucca, e una domanda («Avete muggito oggi?») a cui nessuno ha mai risposto onestamente. Benvenuti su cowsayso: la nostra mucca viene da qui.

Una mucca nascosta nel gestore dei pacchetti

APT, lo strumento che installa i programmi su Debian, è arrivato con Debian 2.1 nel marzo 1999. È un software serio, collaudato, che tiene aggiornati i sistemi Debian. E in fondo alla sua pagina di aiuto, dopo tutte le opzioni serie, c’è questo:

$ apt-get help | tail -1
                                        This APT has Super Cow Powers.

«Questo APT ha i Super Poteri della Mucca». Nel codice sorgente la mucca ha perfino un commento tutto suo: «our trustworthy super cow since 2001», la nostra fidata super mucca dal 2001. Funziona anche con il comando più recente apt: apt moo vi dà la stessa mucca.

🐄
La mucca dice: ogni strumento serio merita un angolino poco serio. Ricorda che l’hanno scritto delle persone.

Più muggiti, più mucca

La mucca non è sola. Ogni moo in più sulla riga di comando evoca un parente diverso:

$ apt-get moo moo
                 (__)
         _______~(..)~
           ,----\(oo)
          /|____|,'
         * /"\ /\
           ~ ~ ~ ~
..."Have you mooed today?"...
$ apt-get moo moo moo
                     \_/
   m00h  (__)       -(_)-
      \  ~Oo~___     / \
         (..)  |\
___________|_|_|_____________
..."Have you mooed today?"...

Secondo il codice sorgente, la seconda mucca è un contributo di Fernando Ribeiro e la terza di Robert Millan, entrambe arrivate tramite una segnalazione di bug. Con più di tre moo, APT sceglie una delle mucche in base all’orologio. E se gli chiedete di stare molto zitto con -qq, la mucca resta a casa ed esce solo la domanda:

$ apt-get -qq moo
Have you mooed today?
🐄
Leggere il codice sorgente per capire come funziona un easter egg. Giusto. Metà dei programmatori ha cominciato così.

La mucca ha un calendario

La frase sotto la mucca non è sempre la stessa. Il codice controlla la data, e in alcuni giorni dell’anno la mucca dice altro. Le abbiamo verificate tutte, spostando l’orologio:

DataLa mucca diceTradotto
16 agostoThree moos for Debian!Tre muggiti per Debian!
25 dicembreHappy package management day!Buona giornata della gestione dei pacchetti!
7 novembreWhoever needs milk, bows to the animal.Chi ha bisogno di latte, s’inchina all’animale.
18 febbraioIt’s a Bird ... It’s a Plane ... It’s Super Cow!È un uccello… è un aereo… è Super Mucca!

Il 16 agosto è il compleanno di Debian: il progetto è stato fondato da Ian Murdock il 16 agosto 1993. Per le altre date il codice non dà spiegazioni, e la mucca nemmeno.

# il calendario della mucca, senza aspettare un anno
$ sudo apt-get install faketime
$ faketime '2025-08-16 12:00' apt-get -qq moo
Three moos for Debian!

Il 1° aprile, invece, la mucca si prende il giorno libero e manda qualcun altro. Il codice attribuisce questo animale a Christopher Allan Webber, su proposta di Paul Tagliamonte:

               _     _
              (_\___( \,
                )___   _  Have you smashed some milk today?
               /( (_)-(_)    /
    ,---------'         \_
  //(  ',__,'      \  (' ')
 //  )              '----'
 '' ; \     .--.  ,/
    | )',_,'----( ;
    ||| '''     '||
🐄
Perché il 7 novembre e il 18 febbraio? Dipende. Il codice non lo dice, e la mucca non risponde alle domande.

Intanto aptitude nega tutto

Debian ha un altro gestore di pacchetti, aptitude. Chiedetegli di muggire e fa finta di niente. Chiedeteglielo di nuovo, a voce sempre più alta, e piano piano cede:

$ aptitude moo
There are no Easter Eggs in this program.
$ aptitude -v moo
There really are no Easter Eggs in this program.
$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
$ aptitude -vvv moo
Stop it!
$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

Tradotto: «Non ci sono easter egg in questo programma», «Non ci sono davvero», «Non te l’avevo già detto?», «Smettila!», «Va bene, va bene, se ti do un easter egg te ne vai?», «D’accordo, hai vinto». E quello non è un cappello. È il boa che ha inghiottito un elefante, il primo disegno del Piccolo Principe, quello che tutti i grandi scambiano per un cappello.

🐄
Negare cinque volte di fila l’esistenza di un easter egg. Sbagliato. Mentire agli utenti non va mai bene. Detto questo, al sesto livello confessa tutto, quindi la mucca concede la libertà vigilata.

E poi è arrivato cowsay

La mucca di questo blog è un’altra bestia, di un altro programma. cowsay l’ha scritto in Perl Tony Monroe nel 1999, e fa una cosa sola: fa dire a una mucca quello che scrivete. Su Debian abita in /usr/games/cowsay, il che vi dice esattamente quanto si prende sul serio:

$ cowsay "Hello, world"
 ______________
< Hello, world >
 --------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Da più di venticinque anni questa mucca ripete le parole degli altri. Ha visto di tutto: rilasci falliti, certificati scaduti, deploy del venerdì pomeriggio. A un certo punto ha deciso di avere opinioni sue.

🐄
Mettere una mucca in uno strumento serio. Giusto. Se un terminale riesce a farvi sorridere alle tre di notte, sta facendo più del suo lavoro.

Perché un blog con una mucca al comando

Il patto è questo. Qui raccontiamo le storie dietro la tecnologia che usate tutti i giorni, con tutti i dettagli tecnici e zero solennità. Ogni articolo vi dice subito quanto è pesante: scremato, parzialmente scremato o intero. Questo è scremato: potreste leggerlo alla nonna.

E in ogni articolo arriva la mucca e vi dice cosa è giusto e cosa è sbagliato. I suoi verdetti li avete già visti. Abituatevi: quello che dice la mucca è legge.

🐄
Morale: anche il software più serio ha posto per una mucca. Scrivete apt-get moo una volta al giorno, leggete il sorgente quando siete curiosi, e non fidatevi mai di un programma che giura di non avere easter egg. La mucca ha parlato, e la mucca è legge.

Muuu. 🐄

Ti è piaciuto? Segui il feed RSS e non ti perdi il prossimo articolo. Niente email, niente spam: parola di mucca.

Feed RSS