September, 2007

Blog - About

About Where are we going, and what's with the handbasket?

The Blog 

For the record, this blog will be about whatever is on my mind when I decide to write a blog entry. Judging by the things that I've been thinking about when the idea "I should write a blog about this" pops into my head, I suspect the blog will cover many different aspects of development. I will probably make posts on topics specific to my team's product (Platform Builder), make fun of the quirks of Microsoft culture, make fun of myself, make wild and crazy generalizations that apply to development on any platform, and perhaps even stray into non-development topics. You never know what the future holds! (That said, I expect most of my blog posts to be focused on programming for Windows NT.)

The Blogger 

I'm Doug Cook. I've been at Microsoft for about five and a half years now. (Six years if you count the internship, but I've learned that internships don't count for much, so it's five and a half.) I've been on the Platform Builder ("PB") IDE team since I started, so I'm kind of the old fogey of PB. I've successfully avoided management positions so far (with great power comes great responsibility).

  • Where are we going, and what's with the handbasket?

    Missing OS Design View tab in PB 5.0

    A common complaint about PB 5.0 is that the OS Design View tab will sometimes mysteriously disappear. The best answer I have is that people should be using PB 6.0. Unfortunately, that answer tends to make people want to punch me. In the interest of my...
  • Where are we going, and what's with the handbasket?

    Hash functions, tables and primes - oh my!

    If you have to write a hash function for something important (i.e. a .NET GetHashCode method or a C++ hash traits class), don't design your own. Steal one that has been well-tested. One of my favorites for speed, simplicity, and quality is the "Jenkins One-At-A-Time hash" (aka joaat hash - "one-at-a-time" refers to one byte hashed per iteration, though the algorithm is probably still mostly ok if you use a 16-bit char per iteration instead). You can find a good description of it and many others at For more information, see the Wikipedia entry on hash tables. If you see any locally-developed hash table implementation that requires a prime number of buckets, you might want to track down the author and suggest a better hash function that doesn't place a prime number constraint on the number of buckets. Prime numbers are not necessary if a high-quality hash function is used. (Keep in mind that the hash table author might be aware of better ways but is remaining backwards-compatible with previous releases or is protecting the clients of the hash table from their own bad hash functions.)...
  • Where are we going, and what's with the handbasket?

    PbcXml: Metadata in PB

    When Platform Builder interacts with a CE OS build tree ("winceroot", i.e. C:\WINCE600), it needs to know a little bit about the contents of that build tree. For example, it needs to know what SYSGEN variables are available and what they mean. It needs...
Page 1 of 1 (3 items)