halloween, costumes comments edit

We saw a huge increase in the trick-or-treat count this year compared to the previous years we’ve tracked.

Trick-or-Treaters by Year: 237 kids in year
2008.

Usually in the 7:00 - 7:30 pm time block we see a decrease in trick-or-treaters showing up; this year we saw a huge increase. We again ran from about 6:00p to 8:30p and that seemed to encompass the majority of visitors. There may have been some folks we missed pre-6:00p, but we had quite a lull after about 8:20p so shut it down at 8:30p.

  • Lots more little kids this year compared to last year, where we saw average age increase.
  • Halloween was on a Friday this year and I think that contributed to the increase in visitors. More parents willing to take their kids out for longer if they don’t have to get up early the next day.
  • We got the animated Halloween projector running and showing a “Happy Halloween” message on the garage, which I think contributed to the number of visitors. A more festive atmosphere increases interest.
  • This is the second year for the new daylight saving time change due to the energy bill that passed, but I don’t think it affected the trick-or-treat count.

Around the 7:00p time we ran dreadfully low on candy. With about 15 pieces left, Jenn hopped in the car and headed to the store, at which point a tidal wave of kids showed up and drained me of the last of the candy. I raided the cupboards and subsequent visitors drained me of all of my Indiana Jones fruit snacks and small packets of Swedish Fish that I nabbed from the candy jar at work. By the time Jenn got back (only 15 minutes later) I was into handing out my stash of chewy ginger candy, which is pretty spicy stuff that I’m sure caused some surprised faces on a few youngsters. (Sorry, kids, it’s all I had!)

I had a few favorite costumes that came by, but the three most memorable:

  • A kid of unknown age had a huge homemade fabric garbage can costume. A great costume by any count, but I had to ask where to put the candy since there were no arms, bags, or other receptacles. The garbage can rotated 90 degrees and a little flap opened with a hand poking out - “Put it in my hand.”
  • A middle-school aged kid was a Lego brick made of cardboard and paper. Really accurate - six Lego studs hanging out of the front, the whole thing to scale… but no arm holes, so his dad was carrying his candy bag.
  • A high school kid with a banana costume, a backpack, and a plastic knife. Normally I don’t like handing candy out to older kids, but when a banana shows up and yells, “I’m a banana! Put the candy in the bag!” I was dying laughing. You win - here’s your candy.

A banner year for trick-or-treaters this year. Next year I’m considering doing more than just the projector on the garage. I think Halloween falls on a Saturday next year, so I anticipate even more trick-or-treaters.

media, windows comments edit

Since I’ve set up my Windows Vista Media Center, there are two things I’ve been working on fixing.

First, there’s some weirdness with my display resolution (TV runs 1366x768, computer will only do 1280x768), but I think that’s tied to the fact that I’m using DVI/VGA instead of HDMI to connect it. I’ll keep you posted on that. [UPDATE: Using HDMI fixes the display resolution weirdness. Recommended over DVI/VGA.]

Second, I’m backing up my Media Center PC every night with my Windows Home Server, but for some reason, while the PC will wake up so it can be backed up, it just wouldn’t go back to sleep after that. It’s not that it would go to sleep and wake up again randomly, it’s that once awake, it wouldn’t sleep unless I forced it back to sleep. That’s the problem I fixed.

While researching, I came across this great tutorial on fixing sleep mode problems in Vista that pointed me down some avenues I would never have thought of.

The solution to my sleep mode problems:

  • In power options, I changed the “Multimedia Settings/When sharing media” setting to “Allow Computer to Sleep.”
  • Reduced the time to turn off the display to 15 minutes.
  • Reduced the time to go to sleep to 30 minutes.
  • Switched to a different screen saver. This is one of those things I’d never have thought of. According to the tutorial, some screen savers interfere with the ability of the computer to sleep. I recommend the “Bubbles” screen saver.

I don’t know if it was just one of those things that fixed it or the combination of several, but I didn’t have to turn off any of the abilities of the devices to wake the computer or mess with any other settings. Since I wasn’t sharing media from the computer (though I was reading from a shared media location), I don’t think it was that setting, and I can’t imagine reducing the times had anything to do with it, so I’m thinking it was the screen saver.

If you’re having Vista sleep troubles, check out that tutorial.

net comments edit

I love FxCop and static analysis tools in general. Anything that can help me write better, more standard and usable code that follows best practices is a great thing. I like running FxCop on any of my projects as part of the continuous integration cycle with all of the rules turned on.

Well, all but a select few.

See, while the out-of-the-box rules are great, there are a few that don’t seem to jive with almost any of the projects I’ve ever been on. Here’s the list of rules I don’t run, and a few I consider not running based on project needs and goals.

Don’t run:

  • CA2210 - AssembliesShouldHaveValidStrongNames: I like being able to consume third-party components, some of which might be open source. Unfortunately, not all of these will be strongly-named, and you can’t have a strong-named assembly that depends on assemblies that aren’t strong-named. Strong naming also becomes problematic when you want to provide or consume a plugin framework where people can easily drop assemblies into a folder and have them registered with an app. Versioning nightmare. Strong name where it makes sense, but not everything needs it.
  • CA1020 - AvoidNamespacesWithFewTypes: You run into this a lot when you have several assemblies contributing to a single namespace or when you’re early in a project and you’re still building things up. It might be okay to turn on later, but honestly, I never do.
  • CA1014 - MarkAssembliesWithClsCompliant: If I’m working in a very small project or something entirely standalone where I don’t depend on anything else, I can get this to work. If it’s not just a small project or standalone, I try marking things as CLS-compliant and all hell breaks loose. I start marking individual types as non-CLS-compliant based on compiler recommendations, which causes other types to be marked as non-CLS-compliant, and eventually nearly every type is marked as non-CLS-compliant. The root cause is usually that some central class has a dependency on some third-party component that isn’t CLS-compliant. In the end, it doesn’t seem worth the trouble. (Of course, I only really have C# clients for my stuff, so this might change if/when I have other languages needing to consume my output.)
  • CA1805 - DoNotInitializeUnnecessarily: This is basically, “Don’t say ‘bool x = false;’” because initializing fields to default values is redundant. I’m a huge fan of being explicit, though, and while it might be redundant, the microperf you get doesn’t outweigh the long-term readability and maintainability of the code.
  • CA2243 - AttributeStringLiteralsShouldParseCorrectly: This one says that any string literal that you pass to an attribute needs to be parseable into a System.Uri, System.Guid, or System.Version. That’s crap. Metadata attributes can be used for so much more than conveying those three types of information and ignoring every instance of where you might want to do that is just a pain.
  • CA1016 - MarkAssembliesWithAssemblyVersion: Most of my projects run in continuous integration and it’s the responsibility of the build server to properly assign the assembly version… but we run static analysis on developer environments, too, and a developer build is always version 0.0.0.0, which equates to “no version” and fails this rule. I know the assembly will be properly versioned in production so I don’t need a rule constantly popping up warnings in a development environment to tell me there’s a problem that I don’t actually have.

Consider not running:

  • CA1044 - PropertiesShouldNotBeWriteOnly: When you use dependency injection, you may legitimately have set-only properties on something. Most of the time, yeah, you’ll want an associated “get” for the property, but maybe not, depending on your design.
  • CA1303 - DoNotPassLiteralsAsLocalizedParameters: This one makes you localize all of your exception messages… and that’s sort of painful if you’re not distributing your stuff to folks who need localized exception messages.
  • CA1702 - CompoundWordsShouldBeCasedCorrectly: Turning this on, when you have a domain-specific language you’re working with, can cause a dictionary-related nightmare. For example, you might have “Doghouse” as a word (a legitimate compound word) and it’ll say “it should be DogHouse.” Uh, no. So then you get to fight with the dictionary, which is a never-ending battle. Leave this on until you start really running into it and see how much dictionary-battling you’d have to do to comply before just turning it off. One or two words, no big deal. A full grammar, problems.
  • CA1724 - TypeNamesShouldNotMatchNamespaces: The description of this rule on MSDN says it’ll only get raised if you have a type that is called “Collections,” “Forms,” “System,” or “UI.” I have run into this in several other cases - like a type named “MyNamespace.Security” (with security-related utility methods in it” conflicting with “System.Web.Security.” Watch and see where you run into this - it may or may not be worth running.
  • CA2209 - AssembliesShouldDeclareMinimumSecurity: If you haven’t fought code access security before, go ahead and keep this enabled. Good luck with that. Sometimes it can be solved with a one-line assembly attribute. Most times it becomes a gordian knot of horrors.
  • CA1006 - DoNotNestGenericTypesInMemberSignatures: This one says you can’t, say, declare a parameter or return value of type IList<ICollection<String>> because it’s confusing and hard to use. The side effect is that you also can’t have things like IList<Guid?> because the nullable Guid? is considered a generic. When you’re writing WCF service contracts, you really need that nullable type there because it affects the schema that gets generated and helps with interoperability. If you have a lot of these… well, this rule becomes more of a nuisance than anything. Depending on your design goals, you may or may not want this rule.
  • Rules involving URLs as System.Uri instead of System.String: There are several rules that tell you if you have a method or property that has “Url” in it that it needs to be of type System.Uri instead of System.String. Particularly at a web tier, passing System.Uri around is a pain that you really don’t need. In other places, maybe it’s helpful. Depends on your project. These rules are:

Every other rule I leave on, and for the most part I don’t exclude warnings - I fix the issue raised. In some cases it seems sort of stupid, but when the end product comes out, it’s consistent, maintainable, and consumable by others. Just the way I like it.

gaming, xbox comments edit

I finally wore out my original Rock Band drums last night:

That shadow is a
dent.

The shadow I circled in the picture above is actually a big dent in the pad. The underlying plastic is broken and the only thing holding it together is the rubber liner on top of the pad. Lame.

I’m seriously considering picking up the Ion Drum Rocker as a replacement since I’ve heard nothing but good about it, but I’ve also heard I should try out the new Guitar Hero: World Tour drum kit first. I have a party I’m going to in a couple of weeks where I’ll have a chance to try the GH drums, so I’ll wait until then to make a decision. Honestly, right now… those Ion drums are looking goooood.

media, windows comments edit

I have been considering ways to add to my Vista Media Center experience and one of the things I’m interested in doing is adding YouTube and other online media sources so I don’t have to hop into a browser to see them. I haven’t tried it yet, but I came across Yougle Vista - a plugin for Windows Vista Media Center to integrate YouTube, Flickr, Apple Trailers, and several other online media sources right into the interface. Might have to try that out.