Thursday, May 07, 2009

Thursday Afternoon Quarterbacking

So the rain, coming down all week, may have just stopped, too bad for the ducks but I'll take it... I was going to race Michaux on Sunday, but since I didn't know of anyone going, among those I'd normally hang out with -- and also because of the rain -- I just blew it off. I didn't ride Saturday though it was nice enough (pre-race rest, just in case I went) and I haven't done any riding since either.
 
What have I been up to? Well, Saturday was a domestic interlude, as Anne and I got around to fixing her fence; Sunday we got up late and walked over to Blue Sky for breakfast, and then spent most of the day just goofing around, like on the computer and such. Monday night was yoga, Tuesday was the gym followed by dinner at Brew Works, and last night was yoga again, followed again by Brew Works as we had an impromptu birthday celebration for a friend. Despite the activity, I have been avoiding the scale...
 
Back On The Boat: Some more Linux voyaging this week, as I played with the computer itself, rather than using the computer to play with other things...
 
Ubuntu inherited a neat "package manager" from debian called apt, and it really makes installing or upgrading software a breeze. Software that's available through the package manager is presented as packages, which I think are just lists of what needs to be installed to get the software to work -- this includes other software (also represented as packages) that the original software depends on. The package manager then does all the heavy lifting, including resolving all these dependencies and finding the software where it's stored on the internet, and installs the software. This can be done from the command line, but there's also a graphical user interface, which has the advantage of showing all available packages. (It also checks daily for software updates.)
 
But a lot of the software isn't really associated with Ubuntu/Debian, and apt-style packaging might be an afterthought for the developer, who may just be a hobbyist like myself. Usually, someone eventually makes a package for the software, but the inevitable result is that the latest version available through the package manager lags the actual latest version. OK fine, usually the latest packaged version is good enough, but what if it isn't?
 
That's the boat I found myself in the other day: my GPS unit uses a relatively new file format for its output, and while there are websites that let me convert the files from that format to others (like Google Earth's format, which I use a lot), the main GPS conversion program was only recently updated to handle the new format. This latest version came out in maybe October, and there is as yet no updated package available for my system.
 
The solution was to just do it the old-fashioned way, downloading a compressed file containing the program source code, then running ./configure and make to install it. This always was the most satisfying way to install stuff, it always felt like I was really getting my hands dirty under the hood and I poo-poohed the package managers even as I used them. Until... partway through the install process, the compiler barfed a bunch of error messages and the process ground to a halt. I Googled the errors, found I had unresolved dependencies (which I then resolved using apt-get), and on the second try everything went fine. Thus I was hoist on the petard of why apt beat make...
 
Rough Week: Tuesday was a bad day at work, we had a major round of layoffs. It was a deep cut too, about 14% (say 50 of 350) at my office was let go. I'm still here and I think I'm safe for now, but if there are other rounds I'd probably be vulnerable. (Cutting any deeper wouldn't leave a viable company, but that's not any insurance.) Lot of my friends are gone, it's been lonely and depressing all week.
 
A Voyage Of My Own: I first got the laptop so I could play with programming, specifically that material packaging program I was fooling with, but with all the other things going on in the real world (yoga, biking, date nights), as well as competing computer projects, and diversions -- Facebook, anyone? -- this was pushed to the back burner, which is a pity because it's not a big task: what I've dragged out for six months (and counting) could have been finished with just a few hours of concentrated effort.
 
I have not given it those hours of concentration, but watching gpsbabel compile the other day sort of gave me the bug again. I rewrote a big chunk of the program into more modular form, getting the new version of the test program to work just like the original, and the other day I finally wrote the meat of the packing algorithm. I'll probably finish it over the next week or so, but now it's probably a moot point: I don't think I'll need it at work, and I sure don't feel like giving to them as a parting gift. Pity, but I'm having my fun.
 
Tonight is the gym, then it's an early night at home despite having off tomorrow. I'll probably get in a good road ride (rain or shine, dammit!) plus a bit of towpath tomorrow, and Saturday is the big Raystown Lake Grand Opening. Sunday is probably more riding, plus Mother's Day festivities.