Rants, rambles, news and notes from another geek

Get Your Own Geek Noise Goods!

GeekNoisePinkTeeEffective today, I’ve opened the Geek Noise Store where you can buy T-Shirts and other crap with my logo on it. It helps me pay for this site and you get to have my cool logo on your body.

I don’t actually expect anyone to buy any of this crap–except maybe my wife–but it is kinda fun. And setting one up at CafePress.com is easy and free, so why not?)

Sneak Preview of the ReSharper IDE

While digging around the JetBrains COnfluence site this evening, I ran across this page that has screenshots of the upcoming ReSharper IDE. Very cool!

I like the way they are formatting the XML comments on the fly in the editor. Very nice. Much nicer than having all that damn XML cluttering up your editor. I wonder if they have a friendly way of editing it as well. Probably.

I can’t wait for an EAP on this product. Hopefully I’ll at least get an EAP on ReSharper 2.0 for Whidbey soon. I’m dying without it.

Geek Notes 2005-04-15

As I’ve said before, I hate getting sick. I got a case of the stomach flu from one of my kids this week and it beat me down pretty good. But I’m back nowΓǪ

  • Visual Studio 2005 Beta 2 RTM - Yep it happened. We’ve been enjoying these new bits all week and they are pretty darn good. Still a few interesting bugs that you will have to work around, but things are pretty good from what I can see. It will be up on MSDN Subscriber Downloads shortly.
  • Google Sightseeing - A cool new blog that shows off some of the more interesting satellite photos people have found on Google Maps. [thanks to AaronX for sending this one in]
  • More FxCop Rules for EntLib - TShak is at it again, this time with one for making sure you use byte[] instead of string with Crypto functions and another making sure you dispose your Tracer classes in the right order.
  • Alternative Greeking - Greeking is that “Lorem ipsum” dummy text that designers use when doing mock-ups. But pseudo-greek is boring, so why not use Hillbilly? [via BoingBoing]
  • AJAX Wrapper for .NET - Looks interesting. I’ve been wanting to try something like this for a while but haven’t had time.
  • Accurate_with_KidStorTroopers Avatars - I love silly avatar generators. I’ve got a whole bunch of them that I use for MSN Messenger. One thing that I always try to do is create one that best represents what I think I look like. I created the one you see here using the this engine. What do you think? [via BoingBoing]
  • MSN Messenger 7.0 - The new version of MSN Messenger is out and while I like some of the new features (tag lines), I have to wonder what the UI design team was smoking. You think they could have packed any more crap in there? (Turn off the tabs and the mini-personal-icons and it cleans up a bit.)
  • What is a Breaking Change? - Brad Abrams points to an article on MS Downloads that helps to explain this challenging problem.
  • Pseudo Internationalization - Scott Hanselman points to an article and tool for creating resource files that look like localized ones for testing your I18N stuff. He also tweaked it a bit to work better in Continuous Integration settings.

Now playing: Porcupine Tree - Wedding Nails

Researching New Headphones

I love my iPod Shuffle. I’ve always got it with me. I use it in the car (I’ve been told this is illegal, but I’m not sure about WA), at work, doing yardwork, doing housework, etc. I love it.

But I’m not so in love with the iPod Earbuds that ship with it. Most people apparently aren’t all that impressed with them. So I started doing some research on replacements. I love my Bose Quiet Comfort noise cancellation ‘phones, but they are a little less portable than earbud and in-ear headsets.

Over at HeadRoom I found a nice little tool called Build-A-Graph that shows side-by-side comparisons of different models. But before building graphs, I did some digging on a couple of online forums and spent a few minutes looking at the HeadRoom In-Ear Canal Product Listings page. From that&nbsp_place_holder;research, I picked four models that I wanted to compare: Etymotic ER-6 (MSRP $149), Etymotic ER-4P ($330), Shure E2C (MSRP $119), and Sure E3C (MSRP $179).

Frequency Response

In order to have a baseline to compare to, let’s start by looking at the Frequency Response Graph for the Apple iPod Earbuds:

&nbsp_place_holder;Frequency Reponse Graph: Apple iPod Earbuds

OK. Now I can see why the Apple iPod Earbuds sound so bad. There is no bass! And that curve is far from the kind of flat curve I’d like to see.

By comparison, here is the Frequency Response Graph of the four I’m considering:

Frequency Response Graph: Etymotic ER-6, Etymotic ER-4P, Shure E2C, Shure E3C

Up through the midrange, these four models are all pretty darn good. The Shure E2Cs are a bit high on the low end, but as a bass lover, I may like that. They all get some interesting peaks and valleys up in the high end, but that wasn’t all that unexpected. To my (untrained) eye, the Etymotic ER-6 looks the best, but for the price the Shure E2C ain’t all that bad.

Isolation

The other thing that is important to me (as you can tell by the fact that I own the Bose Quiet Comfort) is how well the isolate me from the noises around me. I don’t travel as much as I used to, but there are always noises and such that get in the way. Turning up the volume is only an option to a point, as either your hearing will suffer or the amplifier in your device will start to show its lack of power. (Yes, I know all about headphone amps, but that is yet another thing to carry in my pocket–no thanks.)

Here is the Isolation Graph for the same four models:

Isolation Graph: Etymotic ER-6, Etymotic ER-4P, Shure E2C, Shure E3C

The Shure E2C isn’t shining all that well in this category, but it is certainly better than the graph for the Apple iPod Earbuds. Again, to my neophyte eye the Etymotics look better than the Shure, with the ER4-P slightly outshining the ER-6.

All in all, I’m leaning toward Etymotics. The Shure E2C looks pretty good for the price, but the ER-6 only list a few bucks more and it looks like they sound so much better. So it looks like it will come down to this question: Do I want to spend $300 for the ER-4P or do I want to spend $100 for the ER-6?

(If anyone has any experience reports&nbsp_place_holder;or recommendations, I’d love to hear them. Please post in comments so everyone else can share too. Thanks.)

UPDATE: I just found this article on ecoustics.com that explains Frequency Response Graphs, specifically what matters and what doesn’t on the graphs.

When to Checkin When Doing TDD?

Yesterday I was discussing TDD with one of the developers on my project. He is and experienced developer but new to Test-Driven Development.

One of the things that took a little getting used to, other than the whole “write the tests first” part, was the frequent checkin process that most TDD developers use.

He sent me the following TDD workflow asked me, “So when do I checkin?”

  1. Write the test code.
  2. Compile the test code.&nbsp_place_holder;(It should fail because you haven’t implemented anything yet.)
  3. Implement just enough to compile.
  4. Run the test and see it fail.
  5. Implement just enough to make the test pass.
  6. Run the test and see it pass.
  7. Refactor for clarity and to eliminate duplication.
  8. Go back to step 1

He pointed out, correctly, that there is a task implied by step 7 which is “Run all of your tests to make sure the refactoring hasn’t broken anything.” But since I think of the refactoring process as assuming that you do that, I left it out.

But his original question wasn’t really about the TDD cycle, per se, but was more about how it relates to the checkin cycle. I suggested the following modified list (I suppose I should draw a nice flowchart for this, but I’m lazy):

  1. Write the test code.
  2. Compile the test code.&nbsp_place_holder;(It should fail because you haven’t implemented anything yet.)
  3. Implement just enough to compile.
  4. Run the test and see it fail.
  5. Implement just enough to make the test pass.
  6. Run the test and see it pass.
  7. Refactor for clarity and to eliminate duplication.
  8. Pull updates from the server to get any changes from other people
  9. Compile the code, fix it if it is broken
  10. Re-run all tests, to see if others’ changes have broken your tests. If they pass go to step 11 if they fail go to step 5.
  11. Check in the code
  12. Repeat from the top

Another question he asked was if there should be a checkin between step 6 and step 7. I guess I would say, yes if you don’t have time right now to do step 7 (e.g. you are going home or something). But if you wanted to commit after step 6, I think you should go to step 8 instead of going to step 11.

HmmmΓǪ maybe this does need a flowchart. If I have time I’ll draw one up and post a follow-up.

I’m curiousΓǪ what process do you follow with respect to TDD and source code commits? Does this list ring true with you?

How to Run Unit Tests for EntLib V1

Apparently people are having issues running the unit tests in EntLib. There is a thread on the EntLib workspace where this is being discussed.

Brian Button has kindly posted a write-up on his blog explaining what you need to do to get started using the tests.

BTW, Tom Hollander has posted a survey about the EntLib unit tests. If you care about such things, please take 30 seconds and fill it out, as it will help us learn more about what you (our customers) think of these things.

If You're Happy and You Know It, You Can Fly

Go checkout this picture that my wife just posted.

What you are seeing is my son, Finn, flying. I make a big pile of feather pillows and throw him into them. As you can see from the look on his face, he loves it.

Geek Notes 2005-04-03

Have you noticed how useless the internet and the blogsphere gets on April 1st? It is funny and all that, but I’ve actually gotten to the point where I just avoid everything on that day. I was forwarded some good ones, like Visual Studio 2005 on Linux, but in general it was all just too annoying.

  • PaironPairOn - A new two person chair for all your pair programming needs. Yeah, I know this is an April Fool’s joke, but this is a good one. Don’t you just love that picture?
  • NewsGator’s New Pricing Model - I decided shortly after coming to MS that I didn’t want my RSS inside of Outlook, so I bailed on NG. But apparently, a number of folks are leaving now for a whole new reason: their new pricing model. TShak pinged me on this last week, asking what I use, and I told him: OmeaReader.
  • More Good Command Line Tricks - I use the pushd/popd stuff every day, but I had completely forgotten about F7. Cool.
  • A Comparative Look at Some Ruby Idioms - I think I’ve mentioned that Ruby is my language of the year, and while digging for help with some problem or another, I found this useful article. And while I’ve got you thinking about Ruby, take a look at the Ruby QuickRef.
  • Google Does Weather - I assume everyone else saw this earlier this monthΓǪ just type “weather , " and you'll get a four day weather forecast. This link is for Redmond, WA. [via [Boing Boing](http://www.boingboing.net/2005/03/05/google_search_now_of.html)]
  • UN Landmine Commercial - Another one from Boing Boing. While this commercial is work-friendly (i.e. no nudity) it is very startling and may not be appropriate for all viewers.

Resharper 2.0 Plans Are Out

I know I’ve mentioned it before, but I am hooked on ReSharper. Not having it inside of Visual Studio 2005 is killing me (and a few others around here).

But yesterday, the folks at JetBrains posted the ReSharper 2.0 Plan.

Highlights:

  • Support of Visual Studio 2005 and Visual Studio 2003
  • Support of C# 2.0 (under Visual Studio 2005 only)
  • Support of VB.NET (refactorings, usage search, navigation, code formatter)
  • Support of ASP.NET (almost all features implemented for C# and VB.NET for code inside ASP pages)
  • Cross-language refactoring
  • Open API (plug-ins support)
  • Loading in background
  • New preprocessor directives handling (no errors caused by use of preprocessor directives anymore!)
  • New Refactorings
  • On-the-fly Code Highlighting
  • “Create file from Live Template” feature
  • File structure view with regions, drag&drop etc

Bring it on! I’m ready.