Tuesday, June 10, 2008

And now for something completely different

One of the interesting things about working at a start-up company (indeed, one of the things that got me excited about moving to this new job) is that there is a lot of work to be done and people need to be able to step up and take on a variety of projects which require different skill sets. Now that may work on the customer-focused software has wound down I'm picking up a new project working on some internal workflow software for manging the way we create optical maps and do identification of those maps.

This is a completely different part of the system than what I've been working on, involves a completely different set of code and, in fact, involves a completely different programming language. After languishing and collecting dust for over 5 years I'm brushing off my Perl programming knowledge and starting to put it to use. So far I've been working on understanding the code that is already there (thankfully the man who wrote it was very conscientious about clean, understandable code) and getting an idea of how things are laid out. That being said, it's still Perl! For those that don't have programming experience with Perl, it's often said that it's a "write once, read never" language ... meaning that you just write something to get a job done and then you never go back and look at the code again. It's not the prettiest programming language. Here's a short example:


for (my $i=0; $i<=$#vals; $i+=2)
{
my ($c, $flag) = ( $vals[$i], $vals[$i+1] );
$flag = ($flag eq "n") ? 0 : 1;
push @rle, $flag for ( 1 .. $c);
}


Yeah... isn't that nice and easy on the eyes?

Yesterday I had my first meeting with some of the scientists in the company who will be using the software that I'll be creating and got some very good ideas about things that it should do and how it should look and behave. It was very nice to be talking to users (even if they're my coworkers) and seeing how the software I'm going to write is going to make a huge difference in the way they do their work. I'm excited to have something new and interesting to work on and I'm glad that it's going to be something useful.