Caleb Tennis's blog

eXtreme Programming for non-extremists?

I've followed the concepts of Extreme Programming now for a while, but I've never fully bought into it. Here's why.

My programming experience, outside of some contributions to open source projects, has been for internal software projects only. That said, it's important to make sure the quality of said programs is just as high as anything a customer would be using - in this case, my customers are also my co-workers.

The Power of the Lambda

In one of the (non-Ruby) applications I maintain, there is a function that is responsible for handling unit conversions. It looks something like this:

double UnitConvert(double value, string from_unit, string to_unit)

So that I can do this:

double value = UnitConvert(5.0, "feet", "inches")

The underlying part of this code has to figure out exactly how to convert between the two units. In a nutshell, there's a big hash of known unit conversions that gets loaded when the program starts up, and it can interpolate, trace paths, and figure out how to fill in any gaps that may exist. In all actuality, it's a pretty smart piece of code.

Ruby 1.8.3

Ruby 1.8.3 has been released. The source is available here.

There have been some reports of it not playing well with established Rails installations, so be prepared to revert to 1.8.2 if necessary.

Why *you* need to learn Ruby on Rails

Editor's Note: For those of you who may have missed it, the Pragmatic Programmers have just launched a new series called "Pragmatic Fridays" and their first book was released last week. As an even more interesting note, the first one entitled "Rapid GUI Development with QtRuby" was written by our own Caleb Tennis.

In the movie "The Shawshank Redemption", after the character Brooks Hatlan got out of prison (after being cooped up for a very long time), he opines that: "...The world went and got itself in a big damn hurry". He wasn't able to cope in the outside world after living in prison for so long. He liked his old lifestyle better.

The same thing exists in software/tech world. In order to survive, you've got to stay afloat with knowing something about the latest and greatest happenings. No doubt you know that Microsoft is releasing a new version of Windows next year called "Vista". I'm sure you're aware of lots of the latest gadgets coming out of Steve Jobs' hands.

Well, if you're a web developer, no doubt you've heard of Ruby on Rails. But, more importantly, have you tried it?

Establishing a Baseline

Whenever my company receives a new project, many times we are requested to establish a baseline set of data, which is used as a comparison to make sure something isn't amiss with our setup.

The customer can use this information to draw a conclusion that we are either matching their own data well (meaning our setup must be fairly similiar to theirs), or we are totally off and need to find the problem.

I can tell you that the latter is no fun at all. But it's even LESS fun to get three months into a project only to find that one very small installation error has completely ruined all of the generated data.

Introducing Me (Caleb)

I'm an electrical engineer by trade, though most of my time is spent doing custom software development for a small R&D company in south central Indiana. My work mostly revolves around the diesel engine industry, but I'm also very active in the open source community which is where I get a lot of my programming tools from.

My main interests are in the GUI world, particularly around Agile methods and Rapid Development. I am a huge fan of Ruby and preach its use where I can. I'm also involved with the KDE project, Gentoo Linux, and Ruby on Rails.

Most of my professional work centers around Linux, though I also do plenty with Mac OSX. The only time I use Windows is to work with Office documents people might send me, and to play a little online poker.

Interestingly enough, I went to college with CodeSnipers' very own Keith Casey. I hope he doesn't hold it against me.