My Developer Resolutions For 2009

written by Scott Muc on Tuesday, December 30 2008

I've never made any New Years resolutions before. This year I'm going to break that trend simply to create a checklist of tasks to keep me on track. I easily get distracted, but having to check things off a list is a sure way for me to stay focused.

Not wanting to over do it, I made goals that are easily attainable. Hopefully upon completion I'll get more ambitious the next time around.

Development Goals:

Lately I've been spending a lot of time thinking about "the build". Strangely enough, I get a lot of satisfaction out of a useful build environment. When I can checkout some code and be able to build and run a local instance of an application with a single command line execution, I feel great sense of value from the work put into my build scripts. These thoughts have heavily influenced my technical aspirations for 2009.

Learn A New Build System

I Love NAnt, but I'm really starting to hate XML. It's not that I want to ditch NAnt because I know it well, and it does the job. It's just that I think it's could practice to see how the same thing can be done in other ways.

  • Boobs Bake - Written by the great Ayende and uses the Boo language as its syntax.
  • PSake - Written by James Kovacs and is written in PowerShell. I've yet to get into PowerShell and a build system seems like a natural place to start learning it. The one downside is that I don't believe it'll work in a Linux environment (or any environment without PowerShell for that matter).
  • Rake - Ruby is another language I would like to learn and build scripts is yet another applicable task for it. Rake has a fairly large user base and it's cross platform so it's a strong contender.

I don't really need to learn any of these considering I've accomplished quite a bit with NAnt (You can compile and deploy the CBC Radio 3 site in one command). Still, if I can get away from the XML build files tasks would be more concise and easier to extend.

Implement a Continuous Integration Setup

I've mentioned how much I love the one line build execution. What I hate is when that one line build execution breaks! I don't know a whole lot about CI, but just the ability to have an automated build health check is reason enough for me to implement CI. Automated testing, and deployment are just bonuses. The only one I have some knowledge about is CruiseControl.Net written by the folks at ThoughtWorks. If it's good enough for Martin Fowler's team, it's good enough for me.

Change Version Control System

Subversion has changed my life. I wish I had used it (or any versioning system) when in University. In fact, that's the first thing I would recommend any new Comp-Sci student to learn is some sort of version system. It'll save you so much hassle in the long run, and you'll be versioning ninja once you get out into the workforce.

I've been reading about distributed version systems and like the idea of decoupling my repository from a server. I recently found a great article comparing other systems and there are two other systems that I want to try:

  • Git - Written by Linus Torvalds, this distributed versioning system is quite powerful and has lots of mainstream support. I've seen discussions where some say Git is a bit too difficult, but once understood is extremely powerful.
  • Bazaar - A distributed version system with a focus on usability. The one interesting note on their website is that their code base has over 10,000 unit tests! Whether or not I use it, I'm sure the code base would be an interesting read in how to write python applications.

Life Organization:

Bookmarks

I still have great pain in maintaining my browser bookmarks. I use Delicious, and love the FireFox integration, but now that doesn't matter now that I'm using Chrome now. I'm still brainstorming ideas and may post later about how I'm going to move forward.

Calendar

One of my favourite features of my phone is how it syncs with my work Outlook calendar. The problem is that I'm not at work all the time (wait, that's a problem?). I want an ubiquitous calendar. When I refer to a calendar, I mean the one calendar to rule them all and in darkness... oops, I mean... When I say I'm doing something on a particular date and time, I want my announcement cascaded to all calendar applications I use. Notice I didn't say how I announce an appointment. I don't want to limit myself to adding events in Outlook, my phone, or my Google apps calendar. So I'm on the lookout a calendaring strategy that allows me to add events to my "abstract" calendar. Good luck with that, eh?

Similar Posts

  1. My Developer Resolutions For 2010
  2. A New Beginning (or Goodbye 20's, Hello 30's)
  3. Unit Testing Domain Persistence With NDbUnit, NHibernate and SQLite

Comments

  • Silvor.gold on on 12.30.2008 at 5:39 PM

    Silvor.gold avatar

    Striking boobs off the list was a good idea. Any girl that comes across your resolutions list is very unlikely to give you a viewing.

    The fact that you slipped in a lord of the rings reference while resolving to become an Outlook Calendar super-user pretty much secures your 2009 to be another 'untouchable year'.

    Decoupled repository indeed.

  • Shannon on on 12.30.2008 at 7:40 PM

    Shannon avatar

    I'm so relieved I didn't google you before I met you.

  • Ted Jardine on on 2.12.2009 at 10:53 PM

    Ted Jardine avatar

    You've likely figured it out and it's not near as good as Firefox Delicious integration, but support.delicious.com/.../comments.php somewhere in the comments provides some workarounds.

  • Tobin Harris on on 6.18.2009 at 2:35 PM

    Tobin Harris avatar

    Sounds like you're gonna be a busy guy this year ;)

    I use Rake and keep meaning to try PSake. I've also prototyped Golem with James Gregory (Fluent NHibernate guy) (http://github.com/tobinharris/golem/tree/master) and am getting value from it (although it's not ready for public enjoyment yet!).

    Plaxo is free and is pretty good for cross-platform calendaring. I use their plugins to keep my Outlook/Exchange and SmartPhone in sync with my Mac calendar and iPhone. It also integrates with Google. And it works with contacts, notes and calendar.

Post a comment

Options:

Size

Colors