Friday, February 22, 2008

Yet another reason

Today, there was a fairly heated email exchange about parents, and working or staying home. Several folks got all in a tizzy, cause there was one guy that said 'the wrong thing'. I happen to disagree with his point of view, but that's not my point here.

Check out this response, honest, thoughtful, from one of my (20,000 +) coworkers (who I've never met before, btw).

practice with working with opposing views will make Microsoft a better place to work, make our strategies more thorough and our products better



These are the kinds of things that make me really love working at Microsoft. They're small, but they happen every day, reaffirming my decision to take this job.

Tuesday, May 15, 2007

Follow the leader

First, some disclaimers.
  1. I work for Microsoft, on Microsoft Office Live
  2. I do not work on C#, VB.Net, or even in Developer Division (DevDiv)

Ok, on to the point. Jeff Atwood recently posted about some frustration he's dealing with regarding the differences between C# and VB.Net. Here's the article: C# and the Compilation Tax

I noticed something when I worked at GeoAge (How's that for link love to the company that had to lay me off?). We were a VB.Net shop, and I'm pretty sure they still are. I was a C# dev at heart. One thing that I hated about using both languages was that Intellisense was a lot better in VB than in C#. Autocomplete in particular saved me thousands of keystrokes a day at work.

Then I started playing with VS 2005. Turns out that in 2005, C#'s intellisense seemed to take a huge cue from VB, and we had equivalent completion, and intellisense.

I've developed a theory. The VB team focuses a lot of energy on making developing code easier, while the C# team devotes time to making the language more powerful. I think the C# team then capatilizes (one version back) on the work from the VB team. Probably under a lot of pressure from their customers, since they see how much more productive VB devs can be.

So, I expect that in the next version or two of VS, we'll see background compilation in C#, and see the My namespace make it into C#. Those are my predictions.

Just hold on Jeff, and hopefully the C# team will make you happy. Of course, by the time they do, the VB team will have some new thing that makes their devs more productive, so you'll be wanting more from the C# team. It's a vicious cycle, but I think it makes C# a better language, and the .NET platform stronger. If you can deal with being a cycle back in productivity.

Funny SR71 Blackbird story

Someone sent this out on the MS pilots alias today. Go read it, it's short, and pretty funny.

http://www.jumbojoke.com/the_king_of_speed_844.html

Tuesday, May 08, 2007

Office Live is having a contest! Win $10K

I'm not eligible, of course, even though I'm an Office Live customer, and own a small business. Guess that's just the price of being a MSFT'ie.

Anwho, here's the info on the contest:

Enter the Capture More Customers Sweepstakes - $10,000 Grand Prize
Can potential customers find YOU in the Internet jungle?

Enter the Microsoft Office live Capture More Customers Sweepstakes and instantly receive a $50 Microsoft Office Live adManager* credit toward launching your first search campaign – PLUS have a chance to win these great prizes:

GRAND PRIZE:
$10,000 in cash for your business
DAILY PRIZES:
Customized search marketing plan for your business created by experts at “The Search Agency” ($500 value)

Enter today!

Need a Web site? Click here to learn more about the FREE Microsoft Office Live Web site offer.

Wednesday, May 02, 2007

If you're planning to use us an excuse to visit the Pac NW, better hurry

Courtney and I made a deal about a year ago. When we decided to take the job at MSFT, we agreed that we would site down one year later, and have a conversation. This conversation would revolve around whether or not we were happy living in the Seattle area.

Moving out here was a big change for us, and a particularly tough decision for Courtney, since she's never lived farther than 45 minutes away from her parents and grandparents. Obviously, we're more than 45 minutes away now.

A couple of weeks ago, the weather here changed. The sun came back out. You wouldn't believe the difference I noticed in Courtney's happiness level. I'm sure she saw the same in me. It's not like either of us was really pissed or anything, but we were both less cheerful than we're used to. This prompted us to start our discussion a couple of weeks early.

We've decided that we don't like living in the Pac NW, and that Microsoft isn't enough of a reason to stay here. It's actually a really tough decision for us, because both of us really enjoy working for MS (me more than Courtney). Both of us really miss our family and friends back in Florida, too, though.

Not to mention the financial burden of having a household in Florida and here, and our total inability to ever afford a house here (450k for a condo, anyone?). So, we're moving.

I'm trying to work a deal with my current team to let me work remotely, from Florida. This poses some challenges, not insurmountable (we do have a team in India and one in China, after all).

We will be moving no later than December, and we're hoping to move closer to August or September. It all depends on what happens with my current team, and with the feelers I put out for jobs at other teams in MS and other companies.

I'll keep you posted.

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?

Endurance

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.

Amazing.

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.

Saturday, March 10, 2007

We have job openings

If you're interested in working on cutting edge software services, drop me a line. We need testers (SDE/T) and devs (SDE). Contact me at cullen DOT waters AT Microsoft DOT com

Tuesday, November 14, 2006

Marine Christmas Poem

The embers glowed softly, and in their dim light,

I gazed round the room and I cherished the sight.

My wife was asleep, her head on my chest,

My daughter beside me, angelic in rest.

Outside the snow fell, a blanket of white,

Transforming the yard to a winter delight.

The sparkling lights in the tree I believe,

Completed the magic that was Christmas Eve.

My eyelids were heavy, my breathing was deep,

Secure and surrounded by love I would sleep.

In perfect contentment, or so it would seem,

So I slumbered, perhaps I started to dream.

The sound wasn't loud, and it wasn't too near,

But I opened my eyes when it tickled my ear.

Perhaps just a cough, I didn't quite know,

Then the sure sound of footsteps outside in the snow.

My soul gave a tremble, I struggled to hear,

And I crept to the door just to see who was near.

Standing out in the cold and the dark of the night,

A lone figure stood, his face weary and tight.

A soldier, I puzzled, some twenty years old,

Perhaps a Marine, huddled here in the cold.

Alone in the dark, he looked up and smiled,

Standing watch over me, and my wife and my child.

"What are you doing?" I asked without fear,

"Come in this moment, it's freezing out here!

Put down your pack, brush the snow from your sleeve,

You should be at home on a cold Christmas Eve!"

For barely a moment I saw his eyes shift,

Away from the cold and the snow blown in drifts..

To the window that danced with a warm fire's light

Then he sighed and he said "Its really all right,

I'm out here by choice. I'm here every night."

"It's my duty to stand at the front of the line,

That separates you from the darkest of times.

No one had to ask or beg or implore me,

I'm proud to stand here like my fathers before me.

My Gramps died at ' Pearl on a day in December,"

Then he sighed, "That's a Christmas 'Gram always remembers."

My dad stood his watch in the jungles of ' Nam ',

And now it is my turn and so, here I am.


I've not seen my own son in more than a while,

But my wife sends me pictures, he's sure got her smile.

Then he bent and he carefully pulled from his bag,

The red, white, and blue... an American flag.

I can live through the cold and the being alone,

Away from my family, my house and my home.

I can stand at my post through the rain and the sleet,

I can sleep in a foxhole with little to eat.

I can carry the weight of killing another,

Or lay down my life with my sister and brother,

Who stand at the front against any and all,

To ensure for all time that this flag will not fall."

"So go back inside," he said, "harbor no fright,

Your family is waiting and I'll be all right."

"But isn't there something I can do, at the least,

"Give you money," I asked, "or prepare you a feast?

It seems all too little for all that you've done,

For being away from your wife and your son."

Then his eye welled a tear that held no regret,

"Just tell us you love us, and never forget.

To fight for our rights back at home while we're gone,

To stand your own watch, no matter how long.

For when we come home, either standing or dead,

To know you remember we fought and we bled.

Is payment enough, and with that we will trust,

That we mattered to you as you mattered to us."

[Edit: I got a comment, supposedly from the author of this poem, asking for attribution. I obviously don't have any way to verify his identity, but I also don't want to steal anyone's limelight. So, here it is.]

The poem is actually entitled "A Soldier's Christmas" and was written by Michael Marks on December 7th, 2000. The works of Mr. Marks have been featured in the Washington Times, hang in the Titan Missile Museum, and are featured on the International War Veteran's Poetry Archive at http://www.iwvpa.net/marksmI know, because I am Michael Marks. LCDR Giles simply forwarded my poem long ago and had his email signature appended at the bottom, later misinterpreted as an authorship attribution.Could you PLEASE edit this post to include "Michael Marks, copyright Dec 7, 2000" before the kind comments by LCDR Giles, as the error gets copied and sent along. Thanks for helping me clear this up!Warmest regards,Michael Marks

[End Edit]

PLEASE, would you do me the kind favor of sending this to as many

people as you can? Christmas will be coming soon and some credit is due to our U.S. Service men and women for our being able to celebrate these festivities. Let's try in this small way to pay a tiny bit of what we

owe. Make people stop and think of our heroes, living and dead, who

sacrificed themselves for us.

LCDR Jeff Giles, SC, USN

30th Naval Construction Regiment OIC,

Logistics Cell One

Al Taqqadum, Iraq

Great training class

For the last day and a half, I've been attending a class on threading in C#.  The class is taught by Jeffrey Richter, one of the partners at Wintellect.

This is an amazing class.  I feel much more prepared to write asynchronous code now.  I've been taking a lot of notes, and will be posting a few new posts on how to do multi-threaded programming.

Stay tuned!

Monday, November 06, 2006

Are you a code mercenary?

Last week, there was some discussion on blogs about what motivates developers to work.

Rob Walling presented the argument that there are things he values more than money.

Today, Dennis Forbes presents his argument that he's definitely in it for the money, and so are most of us.

I proclaim that I am a mixture of both points of view. Money is important to me, obviously, or I wouldn't ask about salary when I get new jobs.

I would say that money is not the only thing that is important to me, or even the number one priority, though. I've got data to prove it, too.

I can't share the data with you, however. Give me a call if you're curious.

Sunday, November 05, 2006

The funny thing about lists

In my family, we have gotten tired of having no idea what to buy each other. All of us, spearheaded by my beautiful wife, signed up at this cool site, TheThingsIWant.com, and created gift lists.

This way, everone else knows a bunch of things that we want, and can basically pick something at random off the list, and be assured that we will enjoy the gift.

I don't know about other people, but I don't put anything on my list, unless I really want it. So, literally, anyone who knows me can pick an item completely at random from my list, and I will like it. Even if they think the present is boring, I will enjoy it.

It's funny, though. No one seems to want to use my list. Luckily, they contact my wife, who always has great gift ideas. Certainly makes me wonder why I spend the time putting things I want on my TheThingsIWant list, though.

Friday, November 03, 2006

My sentiments exactly

WO Fay, who is a combat artist in Iraq, generally posts some good stuff on his blog.  Sometimes, I disagree with the strength of his position. I think that's just a factor of my being out for several years, and him being at war.

Wednesday, though, he posted something that perfectly matches my own opinion.  Go read it.  Then and Now

Wednesday, November 01, 2006

My mind has been blown today

I'm sitting in a performance engineering class today.  There was a guy who came in right before the class started, and was on the waitlist.  He managed to get a seat, because some people didn't show up.

This guy, of course, chose to sit right next to me.

45 minutes later, this guy has not once moved his hand away from his nose.  He has been snorting every 10-15 seconds since he sat down, and for the past two minutes, has been digging around in his nose.

To be fair, I don't think he's picking his nose; it appears that his nose is bleeding.  But still, get a damn tissue, dude.

Monday, October 23, 2006

Some more remote desktop subtlety

If you are remote desktop'ed into a machine, then your clipboard is synced between your local machine and the remote machine. So, if you copy some data from a text file on the remote machine, you can paste that data into the local machine, and vice-versa.

This is not true, however, if you daisy chain your remote connections, as in the previous post.  Your local machine and machine A will be synced, and machines A and B will be synced, but you can't copy from machine B directly to your local machine.

What I do to get around this is to copy from B, then create a new text file on A. Paste the data from B into the text file, then copy the text from A, and paste it onto your local machine.

Or, you could save the data to a text file from B, directly onto your local machine's C drive, using the technique in the previous post.

Going a bit further with Remote Desktop

Phil Haack pointed us all to a blog entry by Steven Harman, which shows how to automagically map your remote drives to your remote desktop connected computer.  I'll go one step further.

Let's say you're remote desktopped into Machine A.  You are all super cool, now that you've read Steven's blog post, so you have easy access to your local computer's hard drive.

But, let's say you need to remote desktop into machine B, which you can only do from machine A (due to network limitations).

How do you map your local machine's hard drives all the way through to machine B?

It's simple, actually.  On machine A, in your remote desktop window, map a network drive to \\tsclient\c (if the c drive is the one you want mapped).

That drive should show up with a letter now, probably close to 'Z', unless you changed it during the mapping.

Now, if you remote into machine B, after following Steven's advice, you'll see a drive similar to 'Z on TSClient'.  That drive is actually the hard drive of your local machine, visible to both machines A and B.

Take note, however, that file operations to your local drive through a daisy-chained Remote Desktop connection will be noticeably slower than usual.

Thursday, October 19, 2006

2005 Yamaha R6(Raven) for sale

As much as it pains me, I have to say good bye to my baby. The wife and new daughter aren't too happy with the idea of me joyriding around on two wheels anymore, so it's got to go.

Here are the stats:

2005 Yamaha YZF-R6
Raven (black)
~3500 miles


Modifications:
semi-flush front turn signals (the lights protrude about 1" from the side of the fairings, but are the flush style of lights, not the stockers)
integrated rear turn signals
silver to black Micron slip-on exhaust
removed rear fender
flush license plate lights (bright white led)
hard wired garage door opener (currently wired for Genie doors, easily changed for other doors)

I am the only owner of the bike, I bought it new in Daytona, Florida, from Jim Walker Suzuki-Yamaha. I have all of the original paperwork, as well as all maintenance records.

All scheduled maintenance has been performed by certified Yamaha mechanics, on time per the schedule. Additionally, I did an extra oil change at 200 miles, just to be safe.

The bike is a lot of fun to ride, and really in great shape. It's been garaged since the first day I bought it. Currently, the bike is garaged at my house in Redmond, just 10 minutes or so from Main campus. I'm available any time to show the bike to interested parties.

I'm asking $7199 OBO.

I have a HJC helmet which matches the bike, XL, included with the bike, if it fits.

I also have a size 46 Alpine Stars TZ1 leather jacket for sale, $200. It's the black and grey color scheme. http://www.alpinestars.com/moto/jackets_tz1jacket.html

I'd appreciate it if you would share this information with anyone you know that is looking for a bike.