Failure is inevitable


Welcome to the new try-catch-FAIL!

After several years of limping by with a subpar layout, I finally have a nice(ish) theme!  To go along with that, I’ve made several other changes to the bog.  I decided not to abandon  While there are alternatives, each has some serious drawbacks, and in the end, my biggest complaint with was the lack of useful CAPTCHA, which was fixed in 1.6.1.  Another change is the switch to Disqus for comments.  While the new build does have reCAPTCHA built-in, I still wanted something a little nicer, and Disqus looks quite promisin... [More]

Comments disabled

Comments are disabled until I find time to migrate this blog off of  The volume of spam comments has hit intolerable levels.  If you wish to comment on a post, please E-mail me instead.

Heavy controller actions? The Message Bus Pattern to the rescue!

I recently derailed (badly) while working on a simple requirement for RageFeed: new user registration.  We decided to use the baked-in ASP.NET membership and profile providers, and I found myself adding a lot of code to facilitate the registration workflow.  This was a problem in and of itself, but I realized I had a bigger problem when I stopped and looked at the tremendous number of test cases for my controller.  I had drifted so slowly into a bad design that I didn’t even realize it was happening until it was too late.  Fortunately, all was not lost.  A design patte... [More]

Want to be a better developer?

I've been trying to put together a link list of things that have helped me improve as a developer over the last couple of years.  This is far from complete, but it's a start.  I'm not saying this is an absolute "you have to know these things" list or that it will work for everyone out there, it's just things I've found to be really helpful for me.  As always, your mileage may vary.  SOLID Principles - These principles have helped me a ton.  They aren't rules to be followed blindly, but I've found that understanding the reasoning behind them and trying to... [More]