About the author

Steven HarmanSteven Harman is a passionate developer who believes that writing great software isn't just a job, its a craft.

ASP.NET MVP

For recent posts and more about me, scroll to the bottom.

Subscribe

  • Subscribe to my feed. via RSS
  • Subscribe via email via email

Jobs

Badges

  • Subtext Project
  • Support Subtext
  • HiddenNetwork.com Banner

January 2008 Entries

Central Ohio .NET Developers Group Gets Organized

My local .NET developers group has been a loosely run non-organization since its inception. And yet, we’ve flourished. Right now the average attendance is around 50-60 people per meeting. But we’ve we outgrown our training wheels and it’s time to step up and officially get organized. CONDG (con-dug) Central Ohio .NET Developers Group This past week we officially filed the necessary paperwork to become a non-profit organization. Chairman of the Board Myself along with three of the other current leaders of the group were asked to serve as...

Stop Refactorbating or You'll Go Blind!

During a hallway conversation at CodeMash a few of us were telling war stories and/or fish tales about some of the coding horrors we’d seen over our careers. At one point the conversation was focused on code churn and compulsive refactoring. And then suddenly, without warning, I blurted out a single word that caused the entire discussion to screech to a halt. That word: refactorbation. When I looked around I saw a smile on nearly every face, but could tell that no one knew what I was talking about. And why would they... I didn’t...

Expectation Based Testing with Mocks

Last week I talked about Rubifying your C# code by adding the .Each() extension method to the IEnumerable<T> interface. I was discussing that code with one of the guys at work and he asked a brilliant question So, how did you test that? I was floored. Being such a test-first fan boy I couldn’t believe that I had failed to write that little extension method in a TDD manner. Hell, I hadn’t even done TAD! So how do I test it? There are no doubt a plethora of ways to test this...

CodeMash Open Space Podcast: Open Source on .net

I recently attended CodeMash, the biggest-little-conference around, and had a great time. While the sessions and content at the conference are first class, they aren’t what bring people back. Its the conference attendees, the hallway conversations, and the vibe that bring folks back and make the conference what it is. As a matter of fact, I only made it to a hand full of the sessions this year. Why? Because the rest of the time I was caught up in Open Spaces talks and adhoc conversations with wicked-smart guys like Dustin Campbell, Keith Elder, Bill Wagner,...

Visual Studio Tip: Kill that Build!

At the day job I spend the majority of my time in Visual Studio, writing, refactoring, debugging, and banging my face against code. C# code specifically. And what is my #1 complaint about C#? The Compilation Tax. I get over taxed! I have a little problem that causes me to pay that tax more often that I think I ought to. I have some kind of weird internal clock that causes my fingers to issue the Ctrl + S, Ctrl + Shift + B keystrokes every five minutes, causing the IDE to freeze up while it...

Get Ruby-esq Each Iterators in C# 3.0

Yes, Ruby and other dynamic languages are all the rage these days. Yes, using Extension Methods in C# 3.0 is overplayed. But you know what... I don’t care! So I’m going to show you an Extension Method that will bring a little Ruby-goodness to your hum-drum C# world. The Ruby goodness One of my favorite control structures in Ruby is the each method. This method can be used on any string, array, or hash to quickly iterate over each character of a string, item of an array, or key/value pair of a hash. That’s...

Value Type Parameters Are Still Value Types, Even in a Lambda Expression

Today I was refactoring some unit tests, trying to get rid of some funky smelling tests, I made the all to common mistake of trying to be too clever. The smell This particular project has several entities that have a Timestamp field, represented by a byte array in the domain objects - err, code... depending the semantics you use. What I found to be particularly stinky was the inline byte arrays that were scattered all through the test code. And what’s worse, most of the arrays weren’t even of the correct size! For the record, they should...