Best Language Log Post Ever

One of the many blogs I read every day is Language Log, which is a group of qualified linguistics experts from major universities commentating (or is that commenting?) on the nuances of human communication.

It’s usually interesting, if you are interested in languages at all. I, for example, try very hard to speak French, and even a little Spanish, and I’m fascinated by this stuff in general.

I particularly love the way French sounds, and in fact I was just humming a tune by Carla Bruni, a French singer, on the tour bus on the way back to the hotel. So you can imagine the frame of mind I was in when I read this hilarous post by Geoffrey Pullum.

MVP Summit, Day 2

After getting diverted to the bay area for a couple of days, I arrived in Seattle Thursday night at about 8:30. I missed the keynotes by the top brass, but I did arrive in time for the stuff that matters most (to me). Today was filled with technical presentations and sessions with the product teams. It was easily the most productive day of Microsofting that I have had since the first Driver DevCon.

Today’s discussions largely focused on driver development and testing best practices. A ton of work has gone into these areas over the last few years, and it’s really starting to show. We saw presentations on some old favorites (e.g. PreFAST) and some new things that I can’t wait to test (e.g. Driver Test Manager). The theme of the day, and indeed of the last few years, was clearly about improving code quality, reducing bugs, and enhancing security. Microsoft has done a great job executing against those goals, and we as a driver development community stand to benefit considerably. I have way too much to discuss, so I’m going to spread it out over a few days with several posts on the tools we spent so much time discussing.

In the meantime, though, I have just one observation. The party tonight was held at the Experience Music Project Center in downtown Seattle. On the second floor is a small Jimi Hendrix shrine where, if you look closely enough, you’ll see the Greatest Guitar God Of All Time playing a $150 imported Stratocaster. And the worst part is, it’s strung right handed. Oh well, it’s not like he was from Seattle or anything. Oh wait…

Now, somebody get me some more of that Kool Aid that Scoble was serving at the company meeting!

1394 (Firewire) Debugging with WinDBG

I do have one minor excuse for my recent posting frequency: the blog engine that my hosting provider runs, .Text, is Older Than God™, and has eaten over 1/2 of my recent posts. That, combined with the fact that I have to post from Firefox because every build of Safari (Mac’s default web browser) in the last year has crashed and burned on the .Text editing screen, has resulted in such amazing frustration that I just don’t post as often as I want to. I hear from Susan Bradley, the MVP who runs this server, that we will be going to Community Server soon. Woohoo!

I spent the day troubleshooting a crashing driver. A shipping crashing driver. The best part is that this driver only crashes in the context of another third-party driver that seems to be shipping on every Toshiba laptop built in the last year. Naturally, we lack source code to that driver, and by the time the system crashes, we’re staring at a random page fault in a far-off place, with the third-party driver at the top of the stack. We know only that neither driver can be made to crash without the other, and that when put together, a crash is immediate and ugly. Well, that’s something, I guess.

It did provide me with a reason to try out some technologies that I’ve been late in playing with, though. The crashing laptop has a firewire port but not a com port, and as I have only one usb-serial converter, I was forced into trying out firewire debugging. It was a snap to set up and was a lot faster than com, even at 115,200 bps. I know that several people that know of what they speak have declared firewire debugging to be unusable, but I love it. The cable was a bit on the expensive side (*why* do cables have to cost so much? Lord…), but otherwise this has been a 100% postitive experience.

To set firewire up, you need to first ascertain what kind of cable to buy – there are two types of connector out there, and it’s easy to buy the wrong one. My Mac laptop and my PC desktop have one type, and my PC laptop has the other. Don’t guess wrong. Then again, what kind of idiot would guess wrong? [blushes briefly]

The target is set up similarly to a serial target, except you set /DEBUGPORT=1394 and /CHANNEL={something; i use 0} in place of comX and /BAUDRATE. To connect from the host, simply pick the 1394 tab and enter the chosen channel.

There are more details available in this presentation from Microsoft, and of course in the WinDBG manual.

Happy debugging!

MVP Summit

I’m heading off to the MVP summit at the end of next week. Looks like a really cool event; I can’t wait. Work’s been bonkers lately, hence the low post volume. I’m enbarking on a very interesting filesystems-related project this month, which looks like fun.

There was/is a thread on NTDEV about it at the moment; it reminds me of some of the investigating I did and reported on here a few months back.

Unrelated: i just got my first real RSS reader set up (I had been using Safari RSS, which doesn’t count). This is going to use much more time than it saves. Some time I’ll post the list of feeds I read. It’s getting serious. 🙂

The fine folks that run the blog server I’m on (Thanks, Susan!) are getting serious about upgrading us to Community Server. Here’s hopin’ they get their SQL magic worked out. I love kernel mode!

[edited 9/27 for typos]