I had a four-day-weekend this past weekend but, while it should have been a fairly mild time, it turned out to be a stress-filled pain.

The reason I was off was to help Jenn with some shoulder surgery she was having on Thursday. I’d need to be around to help while she was laid up with pain meds and I figured that would mean some food runs while she slept it off. Phoenix would stay with my parents until Saturday afternoon so we could get everything settled by weekend time. Get a little done around the house, take care of Jenn, no big deal, right?

Wednesday night my parents called up and cancelled because my mom’s cat, Xena, started having some health problems… and on Saturday she ended up having to be put down. She was 16, so I’ve known her almost half my life, and she was totally a part of the family. She always wanted to bite me for some reason, but I think it was because my dad liked to play with her and rile her up (which she loved) and she wanted to play with me, too. I’ll miss that bad little girl.

Anyway, that left us without a babysitter, so we got Jenn’s sister to cover for us. That worked out well – what a lifesaver! – except for the part where we weren’t planning on having Phoenix return until Saturday afternoon. Jenn’s sister had plans first thing in the morning so Phoenix came back early.

The early return wouldn’t have been a big deal except I promised my friend John I’d help him that morning to fix his Windows Home Server that went down during the week. So I had to cancel on him, which I feel bad about, but Jenn couldn’t handle the toddler all doped up and with only one arm working.

In the meantime, Thursday night I was told my grandpa (my last remaining grandparent) was in the hospital with a stroke, unable to move his legs. We found out later that it was something more like an infection of some nature, not a stroke, but still – hospitalized.

I didn’t blog it earlier, but Phoenix grabbed my glasses a couple of weeks ago while I was in the shower and Jenn took her eyes off her for like two seconds. I’m not sure how Phoe managed to rip the arm clean off the glasses, but she did, so I got to get new glasses. I picked them up on Tuesday… but by Friday they were driving me nuts. Straight lines were straight in the center of my lenses, but looked all curved the further away from center they got, sort of like looking through a mild fisheye lens. I took the glasses in on Friday and the optician said that indicates my eyes aren’t adapting to the lens material well. My old lenses were plastic, the new ones were polycarbonate. I ordered some new lenses made of a different material and handed back my glasses. I’ll be on my old/spare glasses for a week and a half or so. Fantastic.

The DST change didn’t help anything since Sunday we had to run a specific errand by 10:30a and we forgot about the time change so it really had to be done by 9:30a… so there was a lot of “Oh, crap, hurry up and get ready! Go! Go! Go!”

Sunday also marked my last day of prednisone. I’ve been fighting some Eustachian tube dysfunction for about a year now and the last few months my ENT has been trying to fight it with a bunch of different drugs… but it’s not working, and Sunday was my last day of my last ditch treatment effort, so I’m gathering it means I’m going to end up with a tube in my ear like you see on kids that get ear infections. I know it’s not a “big deal,” but it still scares the crap out of me, so there’s a low-level simmering going on in my mind about that. I’ll have to make another appointment, probably later this week or next, and find out.

Honestly, after all that, I really couldn’t wait to get back to work. Not that work isn’t stressful (particularly recently), but at least it’s a type of stress I can just bury myself in. Could it be worse? Sure, things can always be worse… but here’s hoping this week tapers off a bit.

subtext, blog, sql, downloads comments edit

Tim Heuer figured out the right stored procedure to modify in Subtext to disable tracking of referrals altogether. I’m all for this since it means less need to monitor my database and remove/shrink the referral table.

I updated my Subtext Database Maintenance page so you can fix your DB up with a single click. Enable/disable, push-button style. All yours, free, YMMV. Do note that it does actually modify the stored proc, so if you’ve got your DB locked down or you’ve customized stuff, this may not be something you want to do. You have been warned.

net, coderush, vs comments edit

I’m pleased to announce I’ve got the CR_Documentor release up and running in the Visual Studio Gallery!

CR_Documentor in the Extension

You can either get it from the gallery, or, from the Visual Studio Extension Manager, search for “documentor,” “dxcore,” “coderush,” or other related terms and it’ll come up.

It’s a full VSIX installer, so it’ll install right into Visual Studio without you needing to download, unzip, or do anything additional.

(I think I’m the first DXCore plugin with a VSIX installer to appear in the gallery, so… I have to say, I’m a little proud. Huge props to the DevExpress folks who made this possible.)

CR_Documentor in the Recently Added list of the VS

downloads, vs, coderush comments edit

The latest version of CR_Documentor,,  has been released.

This version is an update to .NET 4 in preparation for a VSIX-based installer (think Visual Studio Gallery) so it will only support Visual Studio 2010.

It also resolves a small issue where some interfaces changed in DXCore 11.2.8 and the plugin was throwing exceptions. You will need the latest CodeRush/Refactor/DXCore (11.2.8) or things may not work. (I admittedly haven’t tried it on earlier versions.)

Free, as always, so go get it! And watch for the VSIX installer, coming soon!

net, testing, net comments edit

I love Typemock Isolator. I do. The power it gives me to deal with legacy code interaction testing is phenomenal.

However, every once in a while, I’ll get an odd failure that doesn’t make sense. Today’s error message looks like this:

    SetUp method failed. SetUp : TypeMock.ArrangeActAssert.NestedCallException :
    *** WhenCalled does not support using a property call as an argument.
    -   To fix this pass null instead of LoggerWrapperImpl.Logger

    * Example - this would work:
    -   MyObj argument = Something.Other().GetStuff();
    -   Isolate.WhenCalled(() => ObjUnderTest.MethodUnderTest(argument))...;
    * Example - this would not work:
    -   Isolate.WhenCalled(() => ObjUnderTest.MethodUnderTest(Something.Other().GetStuff()))...;
    at cv.a()
    at hg.a()
    at dj.a(Boolean A_0)
    at do.b(Boolean A_0)
    at iz.b(Boolean A_0)
    at iz.a(Object A_0, Boolean A_1, Func`1 A_2, Action A_3, Action A_4, Action A_5)
    at iz.b(Object A_0)

We weren’t doing anything odd in the test that failed, and we have other tests that do very similar stuff. What gives?

Doing a little poking around in the TeamCity build logs, I found that the failing test…

  • Was the first one to run in the given test assembly, and
  • The test fixture setup had a call to mock a static method on a static class.

Which means static construction wasn’t happening on the static class and was causing some weird problems.

I fixed the issue by adding a real call to a static method on the class – just enough to get static construction to run first. Then everything worked perfectly.

Why did it pass on my dev box and not on the build box? Tests were getting run in a different order. Static construction was happening on the class in a different test.

Like I said, I love Typemock, but sometimes… sometimes there are some gotchas.