The cow says…

If you’ve seen my Confident Code talk you know I’m a fan of the cowsay utility.

cowsay "Quack"
< Quack >
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

In fact, I like it so much I wanted to share it with people who might not have had a chance to try it yet. So I put it on the web.

Enjoy it for all of your ASCII-animal speech-bubble needs. The source code is on GitHub if you’re curious. Interesting implementation notes:

  • It was written from scratch starting last Saturday night and then over part of last Sunday.
  • The original Cowsay program, written in Perl, is included in the app. I use IO.popen to open a Perl process and generate the ASCII art.
  • I started with a simple Sinatra service. Then I added Rails in, and mounted the Sinatra service in the routes file.
  • I use Erector for views, and DataMapper for persistence (what little there is).

On a personal note…

It’s a silly little app, but it’s kind of a big milestone for me personally. All my programming career I’ve worked on other people’s projects. I’ve made regular attempts to kick off projects of my own in my spare time, but invariably I’d get sucked back into day-job/client work, lose momentum, and stop in the middle. My home directory is littered with half-completed project repos.

As sad as it may sound, I think this marks the first time I’ve been able to find a small enough project scope that I could actually launch a working V1. I’d proven to myself that I could write libraries and books, but until now I still hadn’t proven I could launch an app of my own.

So, yay for me!

This entry was posted in Announcements. Bookmark the permalink.
  • Casper Klenz-Kitenge

    Congrats on shipping!

  • crnixon

    Congrats! I’m glad you made this post because I have the same problem: I can ship other people’s stuff, no problem, but never finish up my own stuff. It’s been easy to get down on myself about it, and it’s good to know that other devs I respect have the same issue and can overcome it.

  • Stephen Ball

    Woot! Shipping is awesome.

    • Avdi Grimm

      Yes it is :-)

  • Jim Gay

    Fantastic resource. Does it provide an API for mash-ups?

  • Grant Hollingworth

    Is small.cow no longer included with cowsay? That’s my favourite.

    Anyway, this reminded me to put my ancient cowfortune up on GitHub. It’s been in my .profile for ten years now…

  • Pingback: New screencast available: “Creating Part 1: Zero to Heroku” | Virtuous Code