Hanalei, Hawaii 9/2/2010
438 Posts and Counting

Make BDD Your BFF

Monday, September 21, 2009 -

symmetry

I just can’t say enough about BDD (Behavio[u]r Driven Design) and how it’s helping me with an application I’m writing (which you’ll know all about soon enough). I’ve stopped myself from soooo many stupid errors it’s unbelievable – and since I’ve been writing so many opinion posts lately, I thought I’d do an end to end BDD post for the masses.

Magical Dynamic Mystery Tour

Thursday, September 03, 2009 -

Phil Haack is not only a good friend, he’s also a damn good writer. He has a talent for focusing sharply on a point, and then supporting it with quick wit and a fat brain – a deadly combination should you find yourself disagreeing with him or his point of view.

With his last post on the new C# dynamic keyword – I found myself in just such a position – and it’s going to get ugly. Phil: you’ve been served my friend! It’s a Blog Fight – pass the popcorn!

OK not really – but these discussions are fun and I was going to leave a really long comment on Phil’s blog – instead I’ll just write my own post.

My Enemy, My Self

Monday, August 31, 2009 -

I’m building an application which I’ll talk more about later – but this one’s different from other applications I’ve built: this one’s for me. In the same way teaching your spouse/significant other how to do X is a major pain in the ass, building your own application makes you do dumb, silly things (I think Jeff Atwood might be able to back me up on this one…). This, friends, is a story of my pain to ease your Monday blues.

I Love Reviews

Thursday, August 20, 2009 -

I’m a bit steamed. I walked around the block, hugged my cat, infused my chakras with candles made from persimmon and sage by a monk in Kalalau… I even took a few deep breaths. It’s not working and I feel compelled to tell you why.

Temet Nosce

Tuesday, August 11, 2009 - This post is a bit of a downer – at least for me – but it comes on the heals of this Tweet by Scott: One of those positions is mine. I’ve made the tough decision to leave Microsoft and go back to working for myself.

Be a Good Jedi: Build Your Own Blog

Monday, August 10, 2009 - Every developer has a blog, and every developer bitches about it – mostly because (and this is my theory) they always think they can do better themselves. The only people who don’t bitch about their blogs are the guys who are building the engines (they just bitch about each other’s :).

Uncle Bill Never Reads Rob’s Blog

Monday, August 03, 2009 - I got a comment on my post suggesting you learn ASP.NET MVC from a person whom I’ve talked to a lot over the years – Gerry Lowry: There are four nerd diner nerds, We've hear from one that's ornery, but what about the second, third, and the head honcho fourth?

You’re Not Your Data Access

Thursday, June 11, 2009 - Seems I touched off a bit of a “swirl” with a comment I made on my last blog post: I think, in general, the .NET crowd overthinks and over-engineers just about everything I said as much in my MIX presentation, where I basically challenged ASP.

Jumping The 20 Fence

Thursday, May 21, 2009 - Before I worked at Microsoft I worked at/with/for various startups. Depending on who you talked to, I was involved in building rockets, the Next Big Thing, and a Super Whamadyne Paradigm-Shifter.

A Long, Long Day

Monday, May 04, 2009 -

00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01011111 01011111 01011111 01011111 01011111 01011111 01011111 01011111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00101110 00101101 00100111 00100111 00100111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00100111 01111110 00101110 00101100 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00101110 00101101 00100010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100010 00101101 00101110 00101100 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00101111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100010 00111010 00101100 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00111111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 01111101 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00111010 00100111 01011110 00100111 00101110 00101110 01111101 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00111010 00100010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00111111 00101110 00101110 00101110 00101110 00101110 01011111 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00111010 00100111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 01011111 01011111 00101110 00101000 00101110 00101110 00101110 00101110 00101110 00100010 01111110 00101101 00101100 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00111010 00100111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00101000 01011111 00101110 00101110 00101110 00101110 00100010 01111110 00101100 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100010 01111110 00101100 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00111010 00100111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01011111 00101111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01111011 00101110 00101110 01011111 00100100 00111011 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00100010 00111101 00101100 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100010 00101101 00101100 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00101110 00101101 01111110 00101101 00101100 01111101 00101100 00101110 01111110 00100010 00111011 00101111 00101110 00101110 00101110 00101110 01111101 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101000 00101000 00101110 00101110 00101110 00101110 00101110 00101010 01111110 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100010 00111101 00101101 00101110 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00100010 00111011 00101100 00101100 00101110 00101111 00100111 00101110 00101110 00101110 00101110 00101111 00100010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00001101 00001010 00101110 00101110 00101110 00101100 00101100 00101100 01011111 01011111 01011111 00101110 00100111 01111110 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00100010 01111110 00101110 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00101110 00101110 00101110 00101110 00101110 01111101 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101000 00101110 00101110 00101110 00101110 00100111 00111101 00101101 00101100 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101000 00101110 00101110 00101110 00101110 00101110 00101110 00111011 01011111 00101100 00101100 00101101 00100010 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00101110 00100111 01111110 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00101101 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 01111110 00101110 00101010 00101101 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01111100 00101100 00101110 00101111 00101110 00101110 00101110 00101110 00101110 00101100 01011111 01011111 00001101 00001010 00101100 00101100 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01111101 00101110 00111110 00101101 00101110 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01111100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00111101 01111110 00101101 00101100 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00100111 00111101 01111110 00101101 00101100 01011111 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00111101 01111110 00101101 00101100 00101100 00101110 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00111010 00101100 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01011111 01011111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00111101 00101101 00101100 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100 00100101 00100111 00111110 00101101 00101101 00111101 00111101 00100111 00100111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01011111 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 01011111 00101100 00101101 00100101 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00100111 00001101 00001010 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101110 00101100

What Should Microsoft Do For .NET Open Source?

Sunday, May 03, 2009 - I've been reading a lot of old blog posts tonite regarding Microsoft and Open Source - it really reminds me of the interesting stances the company has taken over the last 5 to 10 years (I've only been working with Microsoft for just about 2 years now). For instance - I read a post from Scoble that goes over why "Web 2.

…In Which We Discuss Writing a Book on MVC

Friday, April 24, 2009 - “I can’t believe you’re using your blog to pimp you’re book! You’re such a … [not a nice word]”.

I Spose I’ll Just Say It: You Should Learn MVC

Wednesday, April 22, 2009 - I’m never shy about my opinion – why start now? I’ve been reading a lot of posts flying about on whether you should learn MVC, Summing up the differences so you can decide when to use it, I even found a post that offers a scorecard approach!

Tip: Using Full Text Search With a Table-Valued Function

Monday, April 13, 2009 - I’ve been working with the SubSonic forums lately (CommunityServer) as I prep them for retirement (archiving, searchable). One thing I really need to is to be able to run accurate searches based on free text – so over the weekend I’ve been goofing around with Full Text indexing and it hit me that not a lot of people know a little trick you can pull with a Table-valued function.

Full Text Indexing SQL

Saturday, April 11, 2009 - This is one of those posts that’s for me to remember (cause I always forget it) and perhaps could come in handy for you too. From time to time I need to setup Full Text Indexing (yes I know there’s lots of alternative) and I hate using the IDE if I don’t have to.

Rolling a Bubble – ASP.NET MVC is Ms-PL

Thursday, April 02, 2009 - I'm sure you've seen the news: I'm excited today to announce that we are also releasing the ASP.NET MVC source code under the Microsoft Public License (MS-PL).

Cool Extension Methods for New StringOr

Wednesday, April 01, 2009 - Eilon is a madman. If you ever get the chance to actually meet the guy you’ll see right away that part of his brain is engaged in quasi – dimensional pursuits.

Nerddinner and a Free Book!

Tuesday, March 10, 2009 - Finally! Today we're announcing something pretty dang cool: a FREE ASP.

Patterns, Purists, and Sinkholes

Wednesday, February 11, 2009 - Before I was a geek, I was a Geologist. A Geophysicist to be precise - but mostly I just tell people I was a Geologist.

5 Secrets To Ninja Writing

Tuesday, February 03, 2009 - Sometimes I find myself with absolutely nothing to say and yet decide to write a post anyway. Do you ever have that problem?