Saturday, April 14, 2007

My current 'coolest reason to work at Microsoft'

So, I've done something new. I caused a feature to be added to a shipping Microsoft product. One that almost all my friends use on a daily basis.

We had a meeting with the MSBuild team a while ago, before we started converting our existing build system over to use MSBuild. In that meeting, we told the guys (Dan & Vlad) that we were wishing for a particular thing during our conversion. We were wishing that it was possible, in MSBuild, to know what directory we had called MSBuild.exe from. There are a lot of things you can tell in MSBuild, like the directory of the current project, and a bunch of other well-defined directories. But, you couldn't tell what directory you called msbuild.exe from.

I present to you a new property. I wish it was called the Cullen property, but it's not. They're adding it to the 'Orcas' MSBuild, which is shipping with .NET 3.5, whenever that ships. I think they called it MSBuildExecutionDirectory or something like that.

I didn't even know they were adding the property, I happened to see an email on an internal alias that said something to the effect of "We added this cool property cause the guys on Office Live asked for it". That was me!

Now, when my friends start using the next version of VS, they will be using something that I asked for, and was put in the product basically just because I asked for it. What other company can you work at and do that?


I was watching Walk the Line again today. When I turned it on, something stuck me. It's amazing to me that a guy could have written songs 40 years ago that still appeal to people now. I *love* all of the music in that movie. Johnny Cash wrote some great songs.

I know there have been other artists that have written songs that stuck around a long time, but my impression, at least, is that most of them are still appealing to the people that heard the music when they were young. Generally, the music doesn't appeal to those people's children.

I certainly don't expect that Mikayla will be a fan of Rage Against the Machine when she's 29. I doubt she'll even understand what the songs are trying to tell her. Not so with Johnny Cash's music. I still get his message, and still hear his voice in the music.


Tuesday, April 03, 2007

New computer goodness

I just bought a bunch of new stuff for my computer. Well, I actually only got two things, but it's going to make my home pc feel like a new machine.

I got a smoking hot new video card. This is the first video card i've had that's 'top o the line'. Well, almost top of the line. Top of the line was like $900, and I don't care about my computer that much anymore. It's an nVidia 7950GT. Like that means anything to my readers, right?

Here's the deal: Games have these sliders all over the place, which let you specify what level of detail and visual goodness you want in the game. Currently, most of my sliders are way to the left (little detail), and I run games at a low resolution (1024x768) compared to what I have my desktop set at (1600x1200).

Tomorrow, assuming the new card arrives, I'll be able to pump up my resolution to 1600x1200, and turn ALL the sliders all the way to the right. That means I'll be seeing sweat bead, and flies buzzing when I'm playing. yay for me!

I also got a new motherboard, since this new video card wouldn't work with my existing one. Luckily, I found a motherboard that supports my current CPU, so I don't have to get a new processor. The mobo also supports the newer Intel chips, though, so when I'm ready (next year's tax return, maybe), I can get the new quad processor chip from Intel, and more than double my computing horsepower. I'm totally stoked, and can't wait until tomorrow.

Disable Aero for better game perf in windowed mode

I've finally made the full switch to Vista. At work, at home, everywhere. Well, except for my crappy work laptop, which dies when it thinks about running Vista's eye candy goodness.

I had to wait a lot longer than I wanted to fully switch over. VS 2005 wasn't fully supported on Vista until recently, and at work, we have a critical piece of internal software that doesn't work on Vista.

That's actually a good lesson, and one that Raymond Chen would push for us all to learn. Don't use undocumented APIs* in your app, because they may go away in the next version.

So, one thing I've noticed is that Aero really slows down framerates of games, if you play in windowed mode. I personally notice this a lot with World of Warcrack, and I've heard on some internal aliases about people experiencing the same thing with their XNA apps.

Here's the fix: right click on your game executable, and select properties. Then go to the compatability tab, and check the box 'Disable Desktop Composition'. That's aero. Now, when you run the game, Vista will switch you to Vista basic, and then execute your game. When you exit the game, aero comes back.

This has been working for me for quite a while now, but there was one thing that was bothering me. Every time I switched off Aero, I got a windows alert that the color scheme had been changed to Vista Basic. I hate getting toast, and I have this compulsion to click the 'x' on toast messages. I found myself racing WoW, to click the x before the game loaded. No more! If you click in the body of the toast, you get another window, with the option to hide the toast message forever! I feel liberated. Really, I do.

Why does Aero affect frames per second (FPS) in games? I'll tell you why. Or at least, my theory why. Aero uses DirectX. Most games use DirectX. That means that when you have aero running, it's competing for resources with your game. More consumers = less resources for each one.

Normally you don't notice this, since normally, you're not using your graphics card to it's full extent. Throw in a modern 3d game, though, and your graphics card starts sweating a bit. Aero on top of the game will kill your framerates. I've seen/heard of drops of 20-30%.

So, disable Aero for better perf in games tha tyou run windowed mode.