Commits as Poetry

February 6th, 2009

Although I can’t remember where, I once heard the sentiment Code is Poetry. I’ve always looked at coding as an art form and there is a definite distinction between clean and ugly code.

That’s not what this post is about. This post is about me being a smart ass.

The following e-mail came in on the Spacewalk mailing list this morning.

Folks have been doing pretty good with using the proper commit message
format. I applaud you for that. But, yes there is a bug, can we try
and use more descriptive commit messages? They don't have to be epic
poems, but something other than:
- a few more schema fixes
- fixed bug XXXX

Don’t get me wrong, I completely agree with it. Back on the RHQ project, there were an annoying number of commit messages that just said “Fixed JIRA 12345″. That’s irritating since you have to consult JIRA to find out what a commit was about, and if there was still an issue you couldn’t tell what the developer was at least attempting to do.

But like I said, I’m a jackass. I picked up on the “epic poems” part of that request and decided my next commit message would be done in the form of a haiku:

484285 -
Large classes are bad
Refactor and make cleaner
So can fix next bug

It was easier than I thought it would be. Next time to make things a bit trickier, I’m thinking of trying iambic pentameter. Who says code is the only place you can find poetry in a software project?

Will FOSS get me a job?

November 3rd, 2008

I came across the following e-mail linked from the Planet Fedora feed.

Here is an excerpt:

“Trivial example here. The curricula mandates that you learn about data
structures and prescribes certain books and the like. However, the
actual implications of using various ‘like’ data structures or, an
appreciation of the trade-off between algorithms would come if you start
looking at code beyond what is provided by the syllabus.

And, such an effort would stand you in good stead irrespective of which
company you aspire to join or, what programming language you intend to
become a master at.

Having a scientific temper – the ability to grasp the core of the
problem, figure out a pattern to search and adhere to some logical (and
sometimes illogical) reasoning is what will get you a job.”

As both a teacher and an open source developer, this e-mail really resonates with me. I began this semester of Algorithms & Data Structures II by attempting to describe the difference between a theoretical exploration of computer science and actual “real world” software development. I say “attempting” because I acknowledge that until you’ve been in both areas, it’s difficult to fully understand the distinction.

One of my biggest goals in my classes has been an attempt to expose students to both of these aspects. I make sure to cover the required material for the class. But I also supplement it with my experiences from working on real software projects. Being able to pull up one of the open source projects I work on and show students real applications of the concepts behind a domain model or where recursion would actually be used in a non-trivial example is an extremely valuable aspect of the class.

I recommend reading the entire contents of the original e-mail. It’s not too long and does a great job of explaining the benefits of real project work while pursuing an academic degree.

Read the full e-mail here.