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!