media, music comments edit

When I’m working (coding) I generally like some sort of music that either doesn’t have any words or is otherwise reasonably peaceful so I’m not, like, compelled to sing along or something. I also like music that sort of flows, so stuff that’s very dissonant or has an oddly syncopated rhythm, stuff that has a lot of high-pitched sirens, and so forth… that’s not so much my thing.

The list of what I listen to changes quite a bit - I have a lot of music

  • but right now, my top go-to albums for while I’m drumming out some code are (in no particular order)…
Album Description
Mirror's Edge Soundtrack Mirror’s Edge Soundtrack (MP3) - I really liked the game and the soundtrack was equally awesome. Only available in MP3 format, but that’s fine.
Tron: Legacy Reconfigured Tron: Legacy Reconfigured (CD/MP3) - The original version of the soundtrack was good, but the remixes take it up a Whole. Other. Level.
Peter Gabriel - Secret World Live Peter Gabriel - Secret World Live (CD) - This one isn’t electronic and it appears to be out of print, or at least, not directly available from Amazon (which is roughly the same thing, right?) but I find myself turning to this one a lot for some calm getting-down-to-work music.
Imogen Heap - Speak For Yourself Imogen Heap - Speak For Yourself (CD/MP3) - I actually discovered this one through Pandora and am now hooked on Imogen Heap. This is my favorite so far, particularly the song “Hide and Seek.”
Massive Attack - Mezzanine Massive Attack - Mezzanine (CD) - You’re familiar with this one if you watch House. The theme song is “Teardrop” from this album. All the songs are kind of different here (they don’t all sound like the same style) so it’s there’s a little something for everyone.
Hybrid - Wider Angle Hybrid - Wider Angle (MP3) - I like the recorded half of this much more than the live half, but the recorded half just flows. I particularly like “If I Survive,” which I originally heard on the PS2 game Kinetica.
Fluke - Risotto Fluke - Risotto (CD/MP3) - This has been a long-time favorite of mine. Originally I got hooked on this from the Sliver soundtrack (which is also pretty good).
Conjure One Conjure One - Conjure One (CD/MP3) - I have a friend who’s brother engineers these guys (that’s how I heard about them to begin with). Very cool music, sort of Enigma-ish.
Blue Man Group - Audio Blue Man Group - Audio (CD/MP3/DVD) - Sort of entrancing / hypnotic, which is cool for PVC pipe. The live show is amazing - be sure to go if you get the chance. The DVD to this has a really nice 5.1 surround mix of the music, which isn’t too helpful for an iPod or whatever, but is awesome on your home theater.
Sarah Brightman - Harem Sarah Brightman - Harem (CD/MP3) - There is just something about Sarah Brightman that I love. This is one of my favorites and the one I listen to most. There are a couple tracks on here that are a little “meh” but the really good ones outweigh the ones you have to skip.

I realized after putting this together that I could make this like a “top 25” list but then… nah. Plus, I switch it up a lot, so these are what I’m listening to now, but I may get into an Anna Phoebe mood or something for a week, which would mean this list would change. (I actually started with a top five and decided that wasn’t long enough, so I upped it to ten.)

Got any awesome recommendations? Leave ‘em in the comments!

net, vs comments edit

If you’ve enabled FxCop to run on your projects in Visual Studio, chances are you’ve seen the dreaded CA0060 warning:

MSBUILD : warning : CA0060 : The indirectly-referenced assembly ‘SomeAssembly, Version=1.2.3.4, Culture=neutral, PublicKeyToken=abcdef1234567890’ could not be found. This assembly is not required for analysis, however, analysis results could be incomplete. This assembly was referenced by: C:\Path\To\Some\Dependency.dll.

The MSDN docs on this warning say that you should just add a reference to the indirectly referenced assembly so FxCop can find it. The problem is, if you already have a reference to a later version of the indirect dependency, you can’t really reference both versions.

I found a forum post that explains that you can change the behavior of FxCop to allow resolution of dependency assemblies to look at the strong name info but ignore the version. You do that by adding the following to FxCopCmd.exe.config in the C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop folder:

<add key="AssemblyReferenceResolveMode" value="StrongNameIgnoringVersion" />

Of course, if you do that, it affects every single solution on your machine. Plus, you have to tell every developer on your team to make the same change, and… ugh. No.

A little Reflectoring shows that you can actually specify a lot more on the command line than running FxCopCmd /? says you can. Here are the ones I found that don’t show up:

  • assemblycomparemode
  • dump
  • failonassert
  • outputculture
  • targetframeworkversion
  • trace
  • tracefile

That assemblycomparemode one is what ties to the AssemblyResolveReferenceMode value from FxCopCmd.exe.config. In fact, you can pass this value in on the command line if you were running FxCopCmd.exe manually:

FxCopCmd.exe /assemblycomparemode:StrongNameIgnoringVersion [and the rest of your parameters]

Except, you’re running from inside Visual Studio, so you don’t have access to the command line… or do you?

Poking through the C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\CodeAnalysis\Microsoft.CodeAnalysis.Targets file that gets installed with Visual Studio (and is what runs FxCop), it turns out that if you provide a property called $(CodeAnalysisAdditionalOptions) with the list of additional command line options you want for FxCop, they’ll be passed in. You just have to do a little manual .csproj hacking to add the property.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <!-- This is the first PropertyGroup in your project. -->
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <!-- ...and all the other stuff, then before the group end: -->
    <CodeAnalysisAdditionalOptions>/assemblycomparemode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
  </PropertyGroup>
  <!-- ...and then the rest of your project file. -->
</Project>

Now when FxCop runs, that command line parameter list will be passed in along with everything else and the CA0060 warning will go away. Plus, the setting is transported along with the individual project, so it doesn’t affect your installed config files and you don’t have to get any developers to do anything to their machines. Done!

home comments edit

I’m pissed off with home improvement.

See, the thing is, I’m not really handy. I like to think I am. I can put up a new light fixture with the best of them. Tightening screws on squeaky chair legs or whatever, I have that covered. Much more than that… I’m sort of at a loss.

About three weeks back my dad helped me fix some baseboards that had water damage. At the time, I figured I had put off this crown moulding project in our downstairs bathroom for seven years already and it was probably time to undertake that, so I decided to pick up some crown moulding to put up. Couldn’t be that much different than baseboards, right? Just baseboards at the top of your wall instead of the bottom, right?

The best advice I can give you: If you want to put up crown moulding, call The Guy.

When I say “The Guy,” I’m talking about any contractor who will come in with experience in the crown moulding arena and put it up for you in a professional fashion. In conversation, you might refer to this person as “your crown moulding guy” when you hand a poor sap like me his (or her) business card.

I had what I thought to be all the right equipment. I had the compound miter saw. I had the angle measuring tool. I was all set to go.

I measured out the first couple of pieces and the angle between the walls, cut them out, and put them up. They looked awesome. See? I even took a picture:

The start of my crown moulding
project.

Nice crisp corners, all professional. I was stoked.

Then I tried to fit the next piece in. I could get one corner in place, but the other corner… didn’t fit quite right. It wasn’t too far off, though, and I figured a little caulk and I’d be good. I muscled forward.

Corner after corner, things started getting further and further off. That was when I noticed something:

My walls aren’t flat, my ceiling isn’t flat, and the corners between the walls and the ceiling isn’t square.

The corners from wall to wall are square, but that’s the only thing in the bathroom that is. There’s one wall where the ceiling makes sort of a “wave” where it connects to the wall, going up and down rather than straight. On another wall it’s even worse - you take the crown moulding, run it from one corner to another, and there’s a gap between the crown moulding and the ceiling so big I can put my fingers in there.

But I would not be deterred! I could flex the moulding into place! I could fill that gigantic gap with some patching plaster! It would work!

Two or three hours a night after work for a week and we get to the weekend. I stand back and look at the horrendous corners, the places on the ceiling where I got a little carried away with the patching plaster and filled in the texture, and the ridiculously obvious use of wood filler in areas, and… it was unsalvageable. I showed Jenn and she concurred.

I tore the moulding down, took it out back, and chopped the shit out of it with an axe. You know, so it’d fit in the garbage can better. Right? Right?

I chipped the patching plaster away from the ceiling, spackled up the nail holes, and retextured the ceiling where the plaster got out of hand. All we had left to do was paint the spackle areas…

…Except Home Depot doesn’t sell the paint we used for that bathroom anymore, so we had to get a color match. No problem there, we got the color matched perfectly…

…Except we didn’t get the sheen matched right, so we had some shiny spots and some matte spots where the different paint was used, which resulted in having to repaint the entire bathroom.

All of the patching and retexturing and painting and everything was another hour or two each night for a week. Two weeks, many hours, and around $100… and we’re back to square one. Maybe I could have just handed someone $100 to come over and kick me in the nuts and we could have called it a day.

What this boils down to is: Call The Guy.

I wish I could say this was the end of our current home improvement troubles, but it’s not.

A few nights ago we were sitting watching television and we heard a big “thump” like a bird hit the back sliding glass door. I went out back to see what was up and didn’t see any bird, so I went back inside. As I did, I tried to shut the screen door and it just wouldn’t shut. Investigating further, it turns out the frame on the door was flexed out of shape, dented in a certain spot, so now it doesn’t slide on the track right. Oh, and look over there, in the middle of the back porch there’s a river rock the size of a baseball. How the heck did that get there? (Putting two and two together, I’m guessing someone threw it, so I’m glad it just hit my screen door and not the glass, but still.) So now I have to get a new screen door ($45) which is not a huge deal except that I can’t actually fit a screen door into my car, so I have to get some help trucking that home. It’s never simple.

Oh, and our Scooba just died, so I’m going to have to get a new one of those. And Jenn’s car has something up with some belt or another, so that’s gotta get fixed. Man, it’s always something.

traffic comments edit

Dear Stop Light Idler:

I do not understand why you think it’s good to stop six car lengths back from the stop light and idle slowly forward, occasionally tapping the brakes, until you get to the actual stop line. I’m writing you today to ask your help so I can understand.

Do you feel you’re somehow being safer? That actually stopping at the line is not quite as safe as stopping 25m before the line?

Or is it that you don’t trust your brakes? I might - might - actually understand this one, since you do tap them several times during your idle-up-to-the-line, almost like you have to verify they’re still working; that, yes, the brakes will, in fact, continue to stop the car.

Maybe it’s that you’re trying to get some sort of “running start” at the light when it signals you to go. You know, so you can “beat” the car in the other lane off the line? Is that it? The drag racer in you?

Honestly, I’m at a loss. From back here, behind you, watching you inch-forward-and-stop, inch-forward-and-stop, inch-forward-and-stop… from back here, it just looks like you’re not paying attention. It also looks like you have no consideration for the line of cars behind you who would like to just sit at the signal and wait for it to change rather than constantly trying to keep up with your inching. Because you know that if the rest of the line doesn’t inch up with you, that the one driver who doesn’t move forward looks like a big douche for being the guy who’s got six car lengths in front of him and isn’t moving up.

You probably also don’t realize that some traffic signals are timed, but some are magnetically-sensitive. If you don’t actually get your car into that little box up there by the stop line, the signal won’t change. Or maybe you do, and that’s part of your daily plan to piss off the other drivers behind you.

Can you explain why you’re doing this? Is there even a reason? (If there is, are you sure it’s a good one?) Because, honestly, when I’m behind you, you ride my road rage nerve. If someone - and I’m not saying me, but someone - pulled you out of the car and punched you in the throat, I might not mind so much. Just sayin’.

Please, I implore you, stop being a traffic asshole. Just pull up to the damn light (or a reasonable distance behind the next car in front of you) and stop. No need to inch. No need to tap the brakes. Just hang out. Be zen about it.

Love,

Travis

home comments edit

Had a bit of a home improvement weekend.

We have these water fountains for the cats - one upstairs, one downstairs. We noticed that the one upstairs was getting filled a lot more often over the course of a week than it had been and figured it was just that the cats were more thirsty or something. No, turns out the fountain was leaking.

The short version is that the carpet was a bit wet and everything was generally OK except for the baseboards near the fountain, which had expanded (yay, pressboard!) and were basically water damaged so we had to replace them.

If you have to replace your baseboards in your house, just assume that Home Depot and Lowes will not have the exact type you have installed. They just won’t. I don’t care if you bought it there last week, that trim is now out of style and you’ll get something really close to what you had, but it won’t be exact. This will cause you to have to replace a bigger section than you really wanted to because they have to match. If you are unlucky, this means the entire room. (We were lucky and only had to replace a small corner by the door.)

Over the course of last week I got the new baseboard painted and got all the tools ready for the weekend job. Saturday my dad came over and showed me how to use the complex miter saw that I inherited a while ago but have basically ignored since I got it. Learning! Anyway, with his help we got the new section up and it looks like new. Actually, slightly better than new because the replacement I bought was the same pattern but a bit thicker and better quality than the baseboards originally in the room.

Of course, neither of us are professionals at this so replacing like four feet of baseboards took something like three hours. No cursing or drinking was involved/required, though. It went smoothly.

After that, my dad and I took a break and played the last few levels of Gears of War 2 on co-op, which was fun, while Jenn and my mom went shopping.

That was Saturday.

Sunday, other than the little chores that need to get done because you’re lazy about them all week, I finally got the opportunity to sit down with my new Lego set that I got thanks to the tax return. It’s a big 2503-piece behemoth Star Wars ship. (My favorite ship, in fact, from the Star Wars universe, which is why I bought it.) Phillips Double Chocolate Porter, my recently-acquired Reboot DVDs, and Legos. That’s a recipe for a nice afternoon, right there.

The Lego set has four separate instruction manuals. I only really got through the first 2/3 of the first manual in a couple of hours, so it looks like this will be a long project, which is fine. I like building Legos. It’s like putting together a super cool 3D puzzle. I’m recording it with our video camera so I can make a time-lapse video of the construction.

Slightly related: At the same time I bought the new baseboards, I also bought the crown moulding for the bathroom that we painted back in 2004. At the time we totally intended to put up crown moulding and then somehow it never happened. We didn’t have a saw, we didn’t have time, we didn’t have inclination. Well, now that I have the saw, I know how to use it, and I’m already in that DIY mode, I figure it’s time. I’ve got the boards, they’re painted, they just need to be cut and put up.