Cowsay

106 points by tontonius 1 year ago | 38 comments
  • TaylorAlexander 1 year ago
    On every machine I operate, I put

    > fortune | cowsay

    in to my .bashrc. Every time I open a new terminal I get a cow telling me a fortune. I have done this for about 10 years now and it just feels right.

    • Xaiph_Rahci 1 year ago
      Mine is very similar (fortune -c | cowsay -f tux)

      I don't think I've ever seen a cookie repeat in over 10 years, but it might just be my poor memory

    • almatabata 1 year ago
      I do the exact same but I prefer the turtle to the default (https://github.com/schacon/cowsay/blob/master/cows/turtle.co...)

      It caused questions sometimes when I had to open a new terminal in a demo with the team.

      • bluedino 1 year ago
        I know a guy who got fired for doing this.
        • LinuxBender 1 year ago
          I used to send fortune to a printer display. It did backfire as some of the fortune quotes can be offensive if they get cut-off by the display. Flags are required to do the true one-liners. Nobody actually got upset as much more offensive things were shouted across the room daily [1] but leadership suggested it should be avoided.

          [1] - The Oracle system pw was intentionally as offensive as it could be and people would forget it on purpose so it could be shouted across the room. I have good memories of that place. It was laid back and the people were fun. It was acquired and parted out by a bank.

          • hnlmorg 1 year ago
            I’d wager there was more going on than just this. He was under performing, or failing in some other way and this was just the excuse to get rid of him.
            • ndsipa_pomu 1 year ago
              Well that doesn't seem reasonable or a valid excuse for firing someone (or at least in places with a minimum of employee protection). What problem does it cause if you customise your shell prompt?
          • mindcrime 1 year ago

                -----------------------------------------
                < pg says 'What problem does this solve?' >
                 -----------------------------------------
                    \   ^__^
                     \  (oo)\_______
                        (__)\       )\/\
                            ||----w |
                            ||     ||
            • nojs 1 year ago
              The best startups always look like toys initially.
              • thih9 1 year ago
                The worst too though.

                I.e. watch out for survivorship bias.

                • lambdaba 1 year ago
                  Cowsay has been around for decades. It's here to stay.
            • RadiozRadioz 1 year ago
              If you have this installed on your system and run an Ansible playbook, all the playbook logging will be automatically piped through cowsay.

              I'm not sure why anyone would want to, but you can disable this behavior by setting ANSIBLE_NOCOWS=1

              • bravetraveler 1 year ago
                I have a hard time finding where I land with this Easter egg.

                Someone who doesn't appreciate a little fun, probably won't have cowsay installed on their controller

                And yet... I've been toting around a role that's basically a list of packages to ensure are absent from the controller/managed hosts. Cowsay has been a long time resident

                For such a little piece of fun, I 'have' to maintain a lot unnecessarily (if I want useful output)

                I think this not being a "whoa neat" thing I encounter every now and then... but something I regularly endure, is part of it. We aren't all solo administrators

                • more-coffee 1 year ago
                  It's a tad silly that they made this the default
                  • allarm 1 year ago
                    That’s not the only silly thing they did. Ansible is awful.
                  • gdulli 1 year ago
                    I found this out by accident. I wasn't mad.
                  • wwilim 1 year ago
                    I like putting it at the end of scripts that take a long time, it's hard to miss the script having completed this way
                    • ndsipa_pomu 1 year ago
                      That's an excellent idea. It neatly distinguishes a script that completes successfully from a script that exits prematurely.
                    • vander_elst 1 year ago
                      I use this very often with my kids (3yo twins). It's fun for them to see animals, dragons and other things popping up on the white screen. I usually ask them what they what they want see, prepare it and then let them press on enter to display it. Simpler things e.g. 'gnu' or 'fox' they can type themselves.
                      • tarcar 1 year ago
                        If they like ponies then check out ponysay, just an alternative with some cute colorful ponies in the terminal!
                        • koolba 1 year ago
                          Colorful ponies? Blasphemy!

                          The Unix way is to do one thing and do it well:

                              fortune | cowsay | lolcat
                          • 082349872349872 1 year ago
                            next project: use sed (or your favourite shell/scripting language) as a filter in front of ponysay, to rewrite "anybody"->"anypony", "somebody"->"somepony", etc.
                        • starkparker 1 year ago
                          For fans of neofetch, you can replace the OS logo with a cowsay animal.

                            neofetch --ascii "$(fortune | cowsay -W 25)"
                          
                             __________________________    ...@fedora 
                            / Q. Why is this so        \   ----------------- 
                            | clumsy? A. The trick is  |   OS: Fedora Linux 39 (KDE Plasma) x86_64 
                            | to use Perl's strengths  |   Host: Laptop 13 (AMD Ryzen 7040Series) A5 
                            | rather than its          |   Kernel: 6.7.6-200.fc39.x86_64 
                            | weaknesses.              |   Uptime: 3 hours, 48 mins 
                            |                          |   Packages: 3936 (rpm), 50 (flatpak) 
                            | -- Larry Wall in         |   Shell: bash 5.2.26 
                            | <8225@jpl-devvax.JPL.NAS |   Resolution: 2256x1504 
                            \ A.GOV>                   /   DE: Plasma 5.27.10 
                             --------------------------    WM: kwin 
                                    \   ^__^               Theme: [Plasma], Breeze [GTK2/3] 
                                     \  (oo)\_______       Icons: [Plasma], breeze [GTK2/3] 
                                        (__)\       )\/\   Terminal: konsole 
                                            ||----w |      CPU: AMD Ryzen 5 7640U w/ Radeon 760M Graphics (12) @ 4.971GHz 
                                            ||     ||      GPU: AMD ATI c1:00.0 Phoenix1 
                                                           Memory: 4702MiB / 27742MiB
                          • dvh 1 year ago
                            For more practical use try espeak, I often use it in long running scripts that runs somewhere in background, e.g. it tells me when keyboard get disconnected because of the soldering iron or when it's time for dinner, or a pomodoro timer, or reminds me I should turn off IM when I put new work in time tracking app.
                            • mindcrime 1 year ago
                              > or a pomodoro timer,

                              That's one of my top uses for espeak. I have a script setup as /home/bin/work that looks like this:

                                  #!/bin/bash
                              
                                  sleepTime="20m" # default is 20 minutes
                              
                                  if [ -z "$1" ]; then
                                      echo "using sleepTime = $sleepTime"
                                  else
                                      echo "using sleepTime = $1"
                                      sleepTime=$1
                                  fi
                              
                              
                                  reset ; date ; echo "You should be working ($sleepTime)"  ; sleep $sleepTime ; reset ; echo "Time to take a break!" ; while true ;
                                     do
                                         espeak-ng "Time to take a break"; sleep 3s ;
                                     done
                              
                              This was inspired by another HN poster from a post a few years ago. I'd credit them, but I don't remember exactly who it was now.

                              That said, I'm sure this script could be improved considerably, but for my purposes it suffices.

                              • pimlottc 1 year ago
                                For Apple users, you can use the `say` command which is included in macOS.
                              • makapuf 1 year ago
                                Interesting take from the git repo: some files were committed 25years ago ! See by example https://github.com/tnalpgge/rank-amateur-cowsay/blob/master/...
                                • gregors 1 year ago
                                  > fortune | cowsay

                                  Definitely be careful about using fortune in a corporate environment or public space if you don't know what dat files you are using or you might just get an extremely unwelcome surprise.

                                  I was practicing a presentation and used to use fortune all the time. I forget exactly what it output but I remember being absolutely mortified about what could have happened if that had popped up during an internal company tech talk.

                                  Kudos to brew for keeping unsuspecting people safe

                                  https://github.com/Homebrew/homebrew-core/commit/3fb3c4c3e55...

                                  • taopai 1 year ago
                                    Cowsay was one of the first "hacky show your friends" command.

                                    I still use it when I want to impress someone.

                                    I've been using this a lot. Check this out:

                                    $ fortune | figlet | cowsay -n -f tux

                                    or

                                    $ fortune | cowsay -n -f dragon

                                    even this!

                                    $ fortune | cowsay -n -f dragon | cowsay -n | cowsay -n -tux

                                    • becquerel 1 year ago
                                      perhaps the only good program ever written?
                                      • pfarrell 1 year ago
                                        Let’s not forget sl
                                        • allarm 1 year ago
                                          Oh yeah, just for a second I thought it wasn’t irony. Let’s set up the guardrails.
                                          • ffsm8 1 year ago
                                            And gti
                                        • elif 1 year ago
                                          All the best hackers pipe their script output to cowsay.
                                          • Toorkit 1 year ago
                                            It's a bit weird finding `cowsay -f sodomized` though lol
                                            • 1 year ago