Geek goals, mind. I'm not going all existential on you :-)
While I was at home, without Internet access, I had time to think of things I wanted to do this year. Here's what I came up with.
- Compile SeaMonkey. I've used a Mozilla-based browser for years now, and for a long part of that time, I've used nightly builds. These are the result of taking the state of the codebase every night and creating a build out of that. As a result, you're on the bleeding edge, but things often break. This satisfied me for a long time, but you can be even more up to date – pull a copy of the source code, compile and build it yourself. This is the ultimate in currentness!
- Build an AJAX "Web 2.0" website. I've had an idea for another geek website for a while now (yes, I know, GBusMaps isn't finished and I've had another idea). I battered this around my head for a bit (and even came up with a database schema which I scribbled down on paper while I was at home), and thought it would be fairly easy. And I thought about doing it the AJAX way (all wooshy, where things happen without having to reload the page). So the idea turned more into an excuse to learn how to make a cross-browser client-side application that could talk to server side web services using XML.
- (Maybe) learn a new language. I'm considering Perl, or maybe Python, since it seems to be the new language de jour.
And not two weeks into the year, and I'm already one third the way through my goals. Compiling SeaMonkey from the CVS trunk was actually very straightforward, and I'm typing this entry from my new build. I've even written some scripts to automate the whole procedure and leave me with a normal Windows installer that I can then invoke as usual.
Unfortunately, as I hinted above, things will break on these builds, and not only am I using pre-alpha software but am pulling it at a random time when there's no guarantee that someone won't have checked in something that broke the tree (e.g. in this build, if I middle-click to open a link in a new tab, I just get a bunch of errors thrown at me). But that's not the point. The point is that it's so cool. And also, although I'm unlikely to hack on SeaMonkey myself, it does mean that I can apply patches that haven't made it into the main codebase yet, for testing.
Okay, so maybe I should be thinking about loftier matters at this time of year, but I've never really been one for new year's resolutions, and these projects are all interesting, useful (in a limited way, I admit) and fun.