• Smartphone Based GPS

    This week I'm in Minneapolis for a client and I had requested a GPS unit for the rental car as I have no idea where I am and don't like being lost. Unfortunately Enterprise didn't have any units, so we were stuck with paper (I say we because my wife and son came along for the trip). My client loaned me a Treo 800w as a GPS unit as it has real GPS in it. I'm not sure if Windows Mobile was what I don't like about it or that its GPS routing seemed to really suck. Since it doesn't have all the maps loaded, it had to make a network connection to get the maps; for some reason, it seems to fail to connect despite having a full EVDO signal. Then when it did load the data, it didn't reroute or announce the turns basically making it useless. My wife was operating the unit while I was driving and I have threatened to run over the unit because of how useless it is. It's possible we were doing something wrong (I played with it and wasn't impressed; I don't think familiarity with Windows Mobile would have helped).

    Will the iPhone 3G GPS be any better for navigation? Well, it won't have all the maps pre-loaded and who knows if it will announce turns. We'll have to wait and see. I might be spoiled as the GPS in my wife's CRV is great, but I expect a lot from these devices.

    Next time I travel and have to rent a car, I'm definitely buying a GPS unit. I hesitated earlier this year and buying a unit, but I might just get one next week. I can't even put a price tag on being lost in a strange place!

  • Jack of all trades, master of ...

    In my line of work of being a contracting software engineer, I have to take on many different types of projects, some in fields that are foreign to me or touching parts of the operating system that I have never used before. I've had to learn a lot to get things going. For example, I learned how to setup and maintain Linux machines (thanks to Phil Karn for helping me first learn Linux for a work project) and learned how to administer a Mac OS X server.

    So with my ability to adopt to lots of different projects, I sometimes ask myself, what am I good at? Turns out, I'm pretty good at tackling whatever is thrown at me. I don't like doing anything half way and do my absolute best to become an expert at something because in many cases, my clients wouldn't come to me if someone else was already an expert!

    Doing a quick search on Wikipedia gives the full quote to the title of this blog entry.

  • No more mowing

    One of the things that has bugged me about our backyard was that the grass was always dead. Now that Aiden, our son, is walking, I wanted him to people able to play on the grass. My parents had EasyTurf installed, and I was pretty impressed with it. So, we had it installed on our backyard. Today was the day it got installed. I'm pleased so far as it is green and I don't have to deal with it anymore! While this wasn't cheap, it doesn't need to be watered (I'm doing my part to conserve water) and has a pretty long life. Hopefully in a few years I'll still be as pleased with my purchase as I am today.

  • The joys of writing code

    Yesterday and today I decided to tackle an issue in some of my code that I wrote for a client. This wasn't a huge chunk of code, but how it worked bugged me and was actually going to affect my current project. This chunk of code, unfortunately was in a kernel extension (KEXT) and is extremely hard to debug. Each time I made a slight mistake, my machine would crash and I'd have to restart. After 4 or 5 times doing things, I decided to get smart and use one of my test machines. Luckily one of the machines already had Xcode on it. Crashes on this machine aren't that bad as I can work on my main machine when it is restarting and it restarts much faster as I don't have so much junk on it.

    Anyway, after fighting with the code for something like 8 hours, I got it working how I wanted. Yeah! This is one aspect of development that I truly dislike; kernel extensions are hard and even if I was paid more, I wouldn't want to do them. In this particular case, the kernel extension is very minor because I convinced the client to change their firmware to make it minor. It didn't take much convincing as the more complex a kernel extension is, the more prone it is to crash (and take down the entire machine), require changes for the next OS update, and cost significantly more to write.

    So while I can tackle just about any code on the Mac, will I is another question. In this case, it was worth my time to investigate this issue.