GeekSpeak comments edit

Was messing about on the computer this morning when I noticed that Vista thinks I’m not connected to the Internet, even though I am. The “Network and Sharing Center” says I have “Local Only” access right now… but I can get to sites on the Internet, so obviously that’s very wrong.

As it turns out, this is a known issue for Vista and Windows 2008 computer that have more than one network adapter. My computer has a wireless and a wired adapter, so I guess I qualify. I found a little additional discussion (not much) in a forum thread. Not sure why it just started doing this today; it was working fine before. No network changes have happened… except I had to reboot my router yesterday. I wonder if that’s what started it. Maybe another router reboot is in order.

gaming, xbox comments edit

I got my Ion Drum Rocker drum set delivered yesterday and set it up last night. It occurred to me after I’d played with it for a while in Rock Band 2 that I’d finally gotten a chance to play with all of the various gaming drum kits - the Ion, the standard Rock Band, and the Guitar Hero World Tour - and I should probably post a decent comparison since I’d not seen such a thing out there.

For reference, and so you know where I’m coming from:

  • I was in drama in high school, not band, and I have no musical training.
  • I primarily play Xbox 360, though my GHWT experience was on the Wii.
  • I like the Rock Band game more than GHWT. The set list is better and I have a lot invested in downloadable content.
  • I generally play on the “Hard” difficulty, though I’ll fall back to “Medium” if the song’s really difficult on drums. I’m not awesome by any means, but I can hold my own.
  • The whole reason I started seriously looking at the Ion kit was that I put a hole through the yellow pad in my original Rock Band kit.

Rock Band Drum Kit

Rock Band Drum
Kit

I had the Rock Band 1 kit up until a week or so ago. It’s decent, though the pads are really loud when you hit them so I have to really crank up the amp to get the music to be louder than the smack-smack-smack of the drum kit. I tried getting some of those rubber silencers they sell, but they didn’t work - instead they just absorbed the hits I was making so I would randomly miss more notes. (I’ve heard that these work better on the new Rock Band 2 kits than the original Rock Band kits. I haven’t tried that.)

Portability on the kit is good - you can pick it up with one hand and move it around, and it easily disassembles to go in your car when you need to take it to a friend’s house. This is good for putting it in the other room when you’re done playing so your living room doesn’t look like a studio.

The kick pedal doesn’t move around because it’s latched to a bar on the bottom of the kit. The downside of this is that if it’s not well positioned, you don’t get much flexibility on how it gets placed. You eventually get used to it, though. I didn’t have any of the problems with the pedal breaking like I heard some other folks having.

I never got 100% on a song - ever, even on easy - because the kit would seem to randomly not register notes. (How can you get 99% on Hard and never get 100% on Easy?) This was the most frustrating bit about this kit - I legitimately couldn’t tell, in many cases, if the calibration was off, if the kit was misbehaving, or if I really just sucked as a drummer. (Admittedly, I very well may suck, but come on - never once a 100%? Never?)

Guitar Hero World Tour Drum Kit

Guitar Hero World Tour Drum
Kit

I played the GHWTkit over at a friend’s house for a couple of hours, so I don’t have as much experience with it as I do my Rock Band kit. The pads are significantly quieter than the Rock Band kit and I didn’t feel like I was missing any notes due to the kit - I felt a lot more confident that if I was missing a note, it was due to my own incompetence. (That sounds like a bad thing, but it’s not - I was able to tell where I needed to practice and improve rather than never quite being sure.)

The pads on the GHWT kit don’t have any real moving pieces the way the Rock Band kit does. The Rock Band pads sort of “float” and when you hit them the pad depresses, touches a sensor, and the hit is registered. The GHWTpads seem to be pressure sensitive in-and-of-themselves, so it’s a bit more like a real electronic drum kit. There’s also a little more rebound to them, which is nice.

The kick pedal on the GHWTkit felt much flimsier than the one on the Rock Band kit. Also, there was really nothing tethering it to the ground so it traveled all over the place while playing and I was very frustrated by having to reach down between songs and constantly reposition it.

The big/obvious addition here is that of the cymbals. Rather than leave the hi-hat as a pad even with the rest of the drums, it’s raised up, closer to the way it’d be in a real drum set. It changes the way you play and it takes some getting used to if you’re used to the standard Rock Band kit. Once you get the hang of it, it feels pretty natural and it’s nice.

I didn’t get a chance to play Rock Band with this kit so I don’t know how Rock Band handles the fact that this kit has five pads (three drums, two cymbals) instead of the four that Rock Band expects. I assume that you just don’t use the cymbal on the right when you’re in Rock Band. By all accounts the GHWTkit is compatible with Rock Band (and vice versa) so it deals with it somehow.

At the time of this writing, they don’t sell the GHWT kit by itself - you have to buy it with the complete band set for GHWT. I already have four plastic guitars and a mic - I don’t need more guitars or another mic, so this was a bit disappointing. However, it did give me an excuse to get the…

Ion Drum Rocker

Ion Drum
Rocker

This thing is, by all accounts, the mother of all gaming drum sets. It’s basically a real electronic drum kit that just has a control box that allows it to interface with your system (in my case, Xbox 360). In fact, you have the option to buy a different control box to swap in and allow you to actually play it like electronic drums - outside of the game - so, for all intents and purposes, you’re buying a real instrument.

Setup is tricky, as you’ll read about on the web, but not difficult, just time consuming. Part of the benefit of the kit is its flexible setup: you can position any of the pads in pretty much any position you want to customize the experience to your needs. That’s actually kind of its downside, too, if you’re not an experienced drummer because you spend a lot of the first few hours of play fiddling with drum and cymbal positioning in an effort to get it “just right.” All of it is hand-tightened, though, so it’s easy to pretty quickly get things moved around as you need. I’m trying to get my kit set up as if it were a real kit, which is made that much more difficult because I don’t have any background and most stuff on the web just says “make sure it works for you.” That doesn’t tell me much. That said, there are several YouTube videos from helpful folks that tell you things to consider as you set up real kits that I’ll probably take advantage of. For example, I found a good high-level one explaining cymbal placement.

The pads are quiet - a bit quieter than GHWT, even. They also have a nicer bounce to them and, much as it may or may not matter, a nicer surface texture. The drums and cymbals feel far sturdier than either the Rock Band or GHWTkits (as well they should) and definitely seem to be built to take a pounding. I’m not going to be putting a stick through the tops of these any time soon.

Portability is far lower than the other two kits because this thing is so frickin’ big. The pads are bigger, the cymbals are bigger, and when you get it all configured, you’ll find things are spread out a little more than on the smaller kits. It’s also much heavier (somewhere around 30 - 40 pounds) so you won’t be one-handing this one into the other room like you did with the other kits. You also probably won’t be trucking it to your friend’s house unless you want to spend the time disassembling, reassembling, and reconfiguring the kit. They say it “folds up for storage” and you probably could… if you don’t mind re-setting it up to your liking every time.

The kick pedal on this set is, by far, the sturdiest of the three sets. All metal workings - not just metal on top of plastic or whatever. The spring on the pedal isn’t terribly resistant, though, which (for me) sometimes ends up in double-hits on the kick drum because my foot gets a little out of control. I’m sure it’s just a “human calibration” issue. It doesn’t anchor to the kit frame, but it doesn’t move around, either, because there are these two pointed screws that you can adjust so it anchors the pedal right to the carpet. (If you’re on hardwood floors you can adjust it so the screws won’t scratch your floor, and there’s rubber on the bottom of the pedal so it will still not slide around.)

With this kit, even in the short time I’ve played with it, I can already tell that when I miss a note, it’s my fault. Every time I miss, I instantly already know what I was doing wrong. In the few hours I played, never once did I feel like it ever dropped a note.

Something I’m quickly finding out: I am going to have to re-learn how to play. I’ve gotten so used to the tight setup of the smaller kits (and the lack of cymbals) that now I’ve got a better kit I’m actually doing worse because I have to adjust my internal timings - how far it is from one pad to another, stop using the yellow pad for the hi hat and use the actual yellow cymbal, stop using the green pad for the crash and actually use the green cymbal, etc. Not a bad thing, but something to get used to.

Summary

  • I like, in order of best kit to worst kit: Ion, GHWT, Rock Band.
  • If you have the choice (and the $300 to spend), go for the Ion. It is, without a doubt, the superior drumming experience. Especially if you primarily play the drums in the game.
  • If you don’t have the choice but can afford to get the whole GHWT band set (again, at the time of this writing, they don’t sell the kit by itself), do that. Even the whole band kit is only $180 or something, which will save you some cash and get you yet another plastic guitar.
  • If you’re really going budget, the Rock Band 2 kit sells standalone for $50. It’s not great, but it works.

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.