Hacker News new | past | comments | ask | show | jobs | submit login
Cowsay (wikipedia.org)
106 points by tontonius 9 months ago | hide | past | favorite | 38 comments



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.


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


The default data file[1] contains 500kB of plaintext fortunes, this seems plausible.

[1]: http://bxr.su/OpenBSD/games/fortune/datfiles/fortunes


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.


I know a guy who got fired for doing this.


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.


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.


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?


    -----------------------------------------
    < pg says 'What problem does this solve?' >
     -----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||


The best startups always look like toys initially.


The worst too though.

I.e. watch out for survivorship bias.


Cowsay has been around for decades. It's here to stay.


Note that my reply was about startups, and not about cowsay (which is not a startup).


> cowsay (which is not a startup).

True, but just wait until we unleash the first CaaS (Cowsay as a Service) on the world in a few weeks...

We're going to make a gazillion dollars! I can feel it.


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


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


It's a tad silly that they made this the default


That’s not the only silly thing they did. Ansible is awful.


I found this out by accident. I wasn't mad.


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


That's an excellent idea. It neatly distinguishes a script that completes successfully from a script that exits prematurely.


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.


If they like ponies then check out ponysay, just an alternative with some cute colorful ponies in the terminal!


Colorful ponies? Blasphemy!

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

    fortune | cowsay | lolcat


next project: use sed (or your favourite shell/scripting language) as a filter in front of ponysay, to rewrite "anybody"->"anypony", "somebody"->"somepony", etc.


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


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.


> 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.


For Apple users, you can use the `say` command which is included in macOS.


Interesting take from the git repo: some files were committed 25years ago ! See by example https://github.com/tnalpgge/rank-amateur-cowsay/blob/master/...


> 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...


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


perhaps the only good program ever written?


Let’s not forget sl


Oh yeah, just for a second I thought it wasn’t irony. Let’s set up the guardrails.


And gti


All the best hackers pipe their script output to cowsay.


It's a bit weird finding `cowsay -f sodomized` though lol




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: