Looking back at 2009
by David • January 2, 2010 • Personal, Technology
Seeing as it’s a new year and all, I guess I can do a year-in-review post. 2009 had a few high points, but on the whole, it wasn’t a particularly exciting or memorable year for me.
Family: My sister got married in May and I had the honor of participating in the wedding. Specifically, since our Dad passed away almost 20 years ago, I had the honor of standing in for him and giving her away. Not that she was actually the family’s property or anything, and it was actually quite a nice service… a bit non-traditional and quite quick, just how I think they should be. ;)
Aside from that, 2009 did not bring a great deal of change to my family.
Work: My unnamed employer here in Akron is doing quite well. Thanks in no small part to the professional services group I work in, we had a number of record quarters this year. In addition, thanks to busting ass for the client I support, they had a pretty good year as well, at least in the area where we work with them. Balanced against that is the fact I’ve had to deal with quite a bit of stress and schedule pressure in the second half of the year, and unfortunately, it looks like early 2010 will continue that trend. This also means that I will not be attending CodeMash 2010 next week, a fact which makes me kind of sad. I’ve really enjoyed attending CodeMash the past two years, but even though it’s only two days I just don’t have the time to slip it into my schedule this year.
Aside from hitting a number of record quarters, we’ve also grown to about twice as many employees as when I originally started working here three years ago. This includes two additional developers, which puts me in a sort of unofficial lead developer position for the group, mostly by virtue of having far more experience in our systems than either of the new guys.
Technology: In November, I had a less than pleasant experience with the new Motorola Droid. Thanks to the idiots in Verizon’s billing department, it took over a month to get that sorted out after they tried to charge me for two months of service and the early termination fee. Seriously, Verizon, get your act together – this isn’t the first time I’ve had problems with your billing department. This isn’t rocket surgery! ;)
I’ve continued to be happy so far with my iPhone 3G, particularly after picking up the Magellan Roadmate 2010 application for it. It works surprisingly well and doesn’t require the special augmented-GPS mount to be accurate; my only serious complaint is that startup times on the iPhone 3G are very slow, on the order of around a minute. Presumably this is not the case on the iPhone 3GS since it has a faster processor. It also gets my speed wrong on a very consistent basis, telling me that I’m doing 6mph when I’m actually doing 70. Despite that, it still has my correct location at all times… I’m assuming the superior GPS chip in the iPhone 3GS does a better job with this.
In November, I also built a new desktop PC based on an Intel Core i5 processor, running Windows 7. It’s amazing to me how fast this thing is – it makes the quad core Xeon desktop I have at work seem a bit slow. I also really love Win7 – I liked Vista and never had the issues with it that a lot of people did, but even so, Win7 is a terrific upgrade and I like many of the new features, particularly the changes to the taskbar.
I must also note that it runs Left 4 Dead 2 – a thoroughly entertaining game – exceptionally well.
Google Chrome quickly became my browser of choice on Windows platforms in 2009 – it’s faster than Firefox and if you run the beta or dev channel it has extensions support so you still have Flashblock. I’d still like to see a version of the Targeted Advertising Cookie Opt-out extension for Chrome, but I’m sure something like that is coming eventually. I also find that I’m liking the WebKit engine a little more than Firefox’s gecko engine, though they both continue to be good. Internet Explorer, on the other hand, continues to be mostly garbage. IE8 is an improvement over 7 and adds some useful developer tools, but it annoys me that I mostly use those tools to figure out why a page works correctly in everything except IE.
Software Development: In 2009, I continued to work almost exclusively in C# and JavaScript. I’ve made a somewhat half-hearted effort to learn Ruby and Ruby on Rails, but I don’t feel particularly at ease with it, and in my opinion none of the tooling comes anywhere close to Visual Studio 2008. JetBrains RubyMine is probably the closest thing we get right now, and it still doesn’t feel as capable to me as VS does.
I did make much more extensive use of jQuery this year, and it’s awesome. I really wish it had been invented in 2000 or so; it would have made some big projects at my former employer a lot easier to do. I’m looking forward to exploring it further in 2010.
In the C# realm, I spent much of 2009 working to wring as much advantage as possible out of the new C# 3/.NET 3.5 features. Although I still find myself somewhat uncomfortable with the actual LINQ syntax, I love the LINQ extension methods, and I now use them as much as I can so long as it’s appropriate. For most array and collection operations, I think it’s more appropriate to use LINQ operations rather than a foreach loop, since I think they more clearly express what your intent is. I particularly use the .Select() method quite heavily to do map-style operations where I need to transform data from an array into something else.
I’ve also started using the LINQ to XML classes (specifically, XDocument and XElement) quite heavily as I find they are far easier to work with than the traditional XmlDocument class. This is especially true if you have to deal with namespaces in your XML. Perhaps later I’ll blog about this particular topic…
Late this year, I also allowed a coworker to talk me into using Windows Communication Foundation for a large web service I have to interact with, and in retrospect, I wish I hadn’t. Contrary to his claims, I’m not at all happy with the proxy classes it auto-generated for me. I can see the benefit in not having to spend time writing your own web service code. However, if you’re interacting with a very complicated service with a lot of types and collections and creating a library that will be used across a number of applications, I honestly think you may be better off writing your own web service code. Yes, you will lose some time on that, but if the service API is stable you may more than make it up later by having a coherent framework to work with, instead of arrays of object[] containing more arrays of object[].
I also have to say I am not a fan of .NET libraries that emphasize configuration (usually in XML) over code. This is probably because I tend to distrust anything I can’t step-through debug if necessary.
I’ve also started using Rails-style database migrations courtesy of Migrator.NET. I really cannot say enough about how much easier database deployment is with this. Once the database has been created on the remote server, a single command allows me to quickly create my entire database schema remotely in just a few seconds – it’s tremendously useful. It’s also great for updating already-running apps because, if you’re rigorous about using it, you’ll have a complete running history of the database changes you made locally. When you update your application, you won’t have it die because you forgot some intermediate step where you added a column to an existing table, or changed its size.
I’m somewhat interested in Project Roundhouse as a replacement to this, but at this point in time I don’t feel it’s mature or well-documented enough for me to want to use it at work.
Judging by the size of this section, I was clearly at least somewhat passionate about software development in 2009. ;)
Personal Stuff: 2009 really wasn’t particularly eventful in my personal life, either, particularly in the last half of the year. I’m generally a “work to live” sort – owing to deadline constraints, I did not do as good of a job this year as I should have in managing the balance between my work and personal lives.
As a result of that, I’ve maintained my gym membership but haven’t gone nearly as much as I should have, nor have I been cooking at home nearly as much as I should. It’s very difficult to find the motivation to do either when you support a client that’s in central time and thus you often don’t get home from work until 6:30 or 7:00. I haven’t quite figured out how to deal with that, but it’s something I need to do something about.
This also means that I didn’t do a whole lot of swing dancing in 2009. Even most Friday nights I haven’t been getting home until later, and that point I’m usually tired and annoyed and don’t feel like being social. I also feel like my dance skills seriously plateaued early in 2009; as much as I like Lindy Hop, I think I have to concentrate too much on the beat and setting up my moves to ever really be a natural at it. Combined with not having time for classes, this left me feeling like I was stuck in a bit of a rut and lacking motivation to go out and dance.
All in all, 2009 wasn’t a bad year at all, but I wouldn’t call it an especially exceptional one, either. There are many things that I’m grateful for – my friends, my family, my continued employment – and a number of things that could’ve gone better, such as the dating department. :)
Here’s hoping for an awesome 2010… but more on that later.

I’m going to have to start using the term “rocket surgery.”
All that and not a single mention of me? I mean you squeezed l4d2 in there, but nothing about the best (ff) player in l4d2 history!
It was a good enough year, looking forward to muddling through another one with you and the irc gangs :) Maybe I’ll even make it up there-abouts at some point and I can even poke you with a stick or something.
Pingback: Looking Ahead to 2010
Pingback: Looking Ahead to 2010: Revised and Improved!