Wednesday, May 28, 2008
Over the past two weeks, I've been adding a bunch of new tools to the old toolkit.  First was Ninject, which I decided to take out for a spin after seeing Nate's excellent talk at the Cleveland Day of .Net.  That started me down a grand path of goodness.  I had been using xUnit in yet another attempt to get unit testing off the ground.  I had tried in the past, but kept failing when it came to doing anything complex.  It turns out I was trying to do dependency injection by hand - and failing miserably at it.  With Ninject, a lot of the resistance to developing for testability is removed and writing testable code and the unit tests that go along with them are easy/fun/addictive - you pick the adjective.

With my new found passion for unit testing, I looked for other tools that could help.  NCover was a natural fit - not only am I striving to always have green unit tests, they need to have a high level of code coverage.  Fast forward a couple days and I discover NDepend - quite by accident - and fell in love with the extremely detailed and insightful metrics.  The most recent addition to the toolkit is testdriven.net.  It brings all the tools together in a nice convenient right-click package.  I'll have to re-evaluate things once ReSharper 4.0 goes RTM and xUnit supports it, but for now, my toolbox overflows with goodness and programming is fun again.

5/28/2008 8:55 PM Eastern Daylight Time  #    Disclaimer  |  Comments [0]  | 
 Tuesday, May 27, 2008
Last week, my cable company performed a massive channel realignment in my area.  Of course, we'd been receiving literature about it for months.  The only problem was that there was no specific date mentioned.  We had a technician tell us in early March that it would be done "by the end of the month".  Whe the change finally did come, it came in true cable company style - with absolutely no warning.  In my case, it managed to take down my cable modem which left me without internet for the better part of a week.

Given the complete lack of warning, coupled with the dead internet connection, it was no surprise that my TiVo had no idea that all of my channel numbers had changed.  Once the internet was back up, I forced the TiVo to phone home, expecting to get the lineup change.  No Dice.  As of yesterday afternoon, the TiVo was still showing and recording from the incorrect channels.

If you've read this far, you're probably guessing that this is a rant about TiVo's poor customer service.  Nothing could be further from the truth.  I opened up a support ticket online yesterday afternoon.  I didn't expect to hear anything, especially since it was a national holiday.  The auto responder email said that a linup specialist would get back to me in 5 to 7 business days.  To my great suprise, I got a response within an hour.  The response was helpful, courteous, most of all - solved the problem completely on the first try.  It turns out, TiVo was completely ahead of the game - my TiVo had downloaded the new linup weeks ago and was just waiting for TiVo to hear from the cable company so that they could activate it.  TiVo never got the notification - which frankly didn't suprise me.  Better yet, TiVo anticipated these situations and provides an "advanced options" function on the linup selection to allow you to activate the linup on demand.  It's great when the system works transparently - but when it doesn't, it nice to know that you have a company that has the support and technology to get you up and running with the minimum of downtime.  Thanks TiVo.

5/27/2008 7:52 AM Eastern Daylight Time  #    Disclaimer  |  Comments [0]  | 
 Monday, May 26, 2008
Between the internet outage last week, and the trip to Detroit over the weekend, I have not had much uninterrupted time to explore the new MacBook.  Now that Lilly and Mary Beth are sleeping, I'm finally getting a chance.  I'm reading "Switching to the Mac - Tiger Edition" which is a very easy read and is not too out of date - so far.  I have a Leopard specific book on the way too which should be here soon.

So far it has been mostly smooth sailing.  I do find myself missing the page up/down and home buttons and haven't quite memorized the keyboard shortcuts, but I think that will be something I can overcome.  The single-button mouse has been a non-issue since I use a blutetooth multi-button mouse most of the time and command-click is becoming second nature for those times when I don't bother taking the mouse out of the briefcase.

Sleep mode is an absolute treat.  I don't know if it is the "newness" of the machine - I hope not, but this machine goes into and out of sleep mode with ease.  It's the first laptop I've ever owned where I had to turn off the "go to sleep mode when shutting the lid" option within a day of owning it.

mac
5/26/2008 1:49 PM Eastern Daylight Time  #    Disclaimer  |  Comments [0]  | 
 Friday, May 23, 2008
As a pseudo-Mother's Day present to both my wife and mother, I am taking Lilly and Pluto to Detroit for the weekend and leaving Mary Beth behind.  Now, I've watched Lilly for long periods and have done my fair share of the child raising duties, but this will be the first time that I don't have MB's help for an extented period.  Wish me luck.

5/23/2008 9:32 AM Eastern Daylight Time  #    Disclaimer  |  Comments [0]  | 
 Tuesday, May 20, 2008
This is my first post from by brand spankin' new MacBook.  So far, I'm in complete love with it.  Stay tuned for more details as I find my way through this new and exciting world.

mac
5/20/2008 9:56 PM Eastern Daylight Time  #    Disclaimer  |  Comments [2]  | 
Hopefully this is a sign that ReSharper 4.0 is getting closer to release.  Build 804 is listed as a "Beta Candidate".

found via Simone Chiaretta

5/20/2008 7:52 AM Eastern Daylight Time  #    Disclaimer  |  Comments [0]  | 
 Monday, May 19, 2008

As I mentioned previously, I’ve recently been considering the purchase of a MacBook.  Well, it didn’t take long – I’ve taken the plunge.  I decided to buy from Amazon.com, instead of directly from apply for a number of reasons:

  • I trust Amazon.com.  That’s not to say that they haven’t let me down on occasion, but as a general rule, they can be counted on.
  • They are offering a $100 rebate.
  • They are offering 24 months no interest with the Amazon card.
  • No sales tax.

I know that the first question that I will get from Rob when he shows up this morning is a big fat “Why?”.  Well, I’ve always been a bit of a closet Apple fanboy.  My first programming experience was in grade school with Logo on an Apple II.  My first programming book was an Apple programming book that I bought at the school book fair (if you want to know the truth, I bought the book because some of the examples had limericks which my 5th grade self could not resist – I actually had no computer at the time and my parents flipped out for wasting money.)  I also live in a three iPod house.  My 1 year old has her own iPod loaded with her custom play lists of lullaby music. 

The last time I flirted with purchasing a Mac was when the Mac Mini came out.  I passed at that point because it didn’t seem practical.  I was looking for a cheap way to get my hands on a Mac OS X device so that I could test the waters.  In the end, I figured that it wouldn’t get much use if it had to compete for resources (keyboard, monitor, etc.) with my primary box.  The laptop form factor makes much more sense for what I’m looking to do with it.  The fact that I can run windows on it is another bonus.  Worst case it becomes a very cool looking windows box.

I also had it ingrained in my psyche that Apple == expensive.  It turns out that the MacBook is reasonably affordable.  Starting at $1099.  $1499 ($1399 from Amazon) nicely equipped.  I’m looking forward to bloging my experiences.  I probably won’t do a big “unboxing” post – that’s been over done.

mac
5/19/2008 8:33 AM Eastern Daylight Time  #    Disclaimer  |  Comments [1]  | 
 Saturday, May 17, 2008

Today I attended the Cleveland Day of .Net.  Well, to be more accurate, I attended the first half, leaving during lunch to head home.  The three talks I made it to were really very good.

Joe O'Brien started the day with a good introduction to Ruby.  I had seen ruby a little bit while looking at rails for my current work project, but his talk really made things gel a little bit.  Also, the insight into how IronRuby is being developed was quite interesting.

The second talk, was Alan Stevens presentation on TDD.  He used the ASP.NET MVC as part of the demonstrations - something which I am very interested in and would have been the technology of choice for my work project if it was released.  Again, I've read quite a bit about TDD in the past, but Alan helped the concepts to gel.  He is a very dynamic speaker, and if you have a chance to catch one of his talks, you should make sure to attend.

Finally, Nate Kohari gave a talk about something that was almost completely new to me - Dependency Injection/Inversion of Control with Ninject.  Nate did a great job.  I wouldn't have guessed that this was his first talk in front of a large group.  He kept the attention of the audience, finished right on time and completely kept his cool when the projector broke down mid-way through the talk.  Interesting to note - it was Alan who "refactored" the power connection to the projector on the fly and got it back up and running without blowing the bulb.  When I got home, I downloaded the Ninject bits and spent a few hours getting it to work in some of the unit tests that I'm working on for my day job.  So, in an ironic turn of events, Nate may be working for Merge again, just without getting paid for it :)  I have a long way to go before I grok Ninject, but I'm looking forward to giving it a go, and having fun blogging about it along the way.

One of the most surprising thing to see at a .Net conference was that all three of these speakers gave their presentations with MacBooks.  Seeing Vista and Leopard running on a sleek black MacBook got my juices flowing and now I'm very close to buying one of my own.  I just have to have what all the cool kids have.

5/17/2008 9:49 PM Eastern Daylight Time  #    Disclaimer  |  Comments [2]  |