Monthly Archives: December 2003

Biculturalism, VB and C#

One more thing that might not really last the month until I get back, so I’ll get it out now… One of the recurring questions/debates that goes around the web is “why have two languages (i.e. VB and C#) when one would do?” This is a question that begs an involved discussion but I think Joel Spolsky’s discussion of the separate cultures of Unix and Windows provides an excellent starting place. Replace “Unix” with “C/C++/C#/Java” and “Windows” with “VB” and I think he starts to capture the essence of the reasons why VB exists.

Maybe in February I can elaborate on my thoughts on this, although I’m not sure I can explain it better than Joel does. I thought this particularly captures my feelings in response to people who say that “C# and VB are the same language with slightly different syntax”:

What’s left is cultural differences. Yes, we all eat food, but over there, they eat raw fish with rice using wood sticks, while over here, we eat slabs of ground cow on bread with our hands. A cultural difference doesn’t mean that American stomachs can’t digest sushi or that Japanese stomachs can’t digest Big Macs, and it doesn’t mean that there aren’t lots of Americans who eat sushi or Japanese who eat burgers, but it does mean that Americans getting off the plane for the first time in Tokyo are confronted with an overwhelming feeling that this place is strange, dammit, and no amount of philosophizing about how underneath we’re all the same, we all love and work and sing and die will overcome the fact that Americans and Japanese can never really get comfortable with each others’ toilet arrangements.

Couldn’t have said it better myself…

Ship gifts

As I prepare to do my final packing for Africa (weight limit: 33 lbs for 4 weeks, ug), I’m reminded of the quaint tradition of ship gifts at Microsoft and wonder again why ship gifts tend to be so bad. Ship gifts, in case it isn’t obvious, are gifts that the company gives a development team when a product finally makes it out the door.

I’m reminded of this because the duffel bag that I’m packing is pretty much the only ship gift that I’ve gotten in nearly 12 years at Microsoft that I think is actually worth a damn. As a gift for shipping Access ’97, everyone got these really nice High Sierra duffel bags with a tasteful “Access’ 97” sewn into the bag. The duffel is really great — besides being rugged, it also expands from normal size up to a bigger size in case you buy stuff on your trip or need a little extra space. I’ve taken the bag all kinds of places and it was my primary bag on my last really long trip, my monthlong honeymoon to Spain four years ago.

In comparison, the 8 or 9 other ship gifts have either been entirely forgotten or were so cheap and/or useless that they’ve been tossed out. I know, I know, the old adage about looking a gift horse in the mouth applies here, and it’s not like Microsoft doesn’t pay me a living wage. So what am I complaining about? Mostly the waste. I mean, for shipping Access ’95, we were given a pretty decent letterman’s jacket that was marred by, excuse my French, a butt-ugly Access logo that I think was supposed to be purple but ended up looking more pink. Some sewing minded coworkers managed to get the logo patch off without destroying the jacket, but who’s got the time (or the equipment for that matter)? Instead, it’s been taking up space in my closet for the past eight years because I can’t bring myself to throw it out or give it away.

In a lot of ways, ship gifts are just a part of the love affair that corporate America as a whole has with cheap, useless and/or ugly swag. And I do think most of the time it’s just a huge waste, fueled by everyone’s love of getting something, even a crappy something, for nothing. (And based on my own behavior at trade shows, this is the pot calling the kettle black.) I think we’d all be a lot better off either getting high quality useful stuff that we’re not going to toss or leave in the hall closet for years or just not getting anything at all. It’s not like we need most of this stuff.

But, then, that’s just my $0.02…

Bandwidth is a terrible thing to waste

I noticed this morning that starting somewhere around Dec. 20th, the bandwidth being consumed by my blog made a huge spike. A quick browse of my server log suggests some culprits. It looks like someone(s) or something(s) have been making automated sweeps of my blog from all kinds of different IP addresses. It’s not a search engine like Google or anything — just periodically all the front page links of my blog will be hit.

I don’t have time to track this down before I leave, but I am taking a few minor steps to try and limit the amount of bandwidth this is consuming. Forthwith, the month view and category view of my blog will only show titles rather than the entire entries. (I also fixed a bug that resulted in the category view not being sorted by date/time, which indicates to me most people aren’t using that view anyway.) I also reined in the number of entries that are returned by a category RSS feed — I was returning 50 items, which appears to be some number left over from the original BlogX codebase. I lowered it to a much more reasonable 10 items, which is what you get on the main RSS feed.

Anyway, hopefully nobody will notice nothing. When I get back I’ll delve further into the mystery of who’s scanning my site so regularly…

Year-end reassessment

Sam Gentile has a post in which he ruminates on “my blog […] and the place it plays in my life.” I don’t know what motivated Sam to do his thinking, but I am finding myself starting to do some end-of-year thinking about blogging and other subjects. The serious thinking is going to be postponed until after I get back from Africa, but I have been doing this blogging thing long enough to have some idea of what its about and to start to form some opinions as to what I’d like to do with it.

My book will also be close to being published when I get back, which will give me an opportunity to think about how I feel about the whole authoring thing and where I want to go with that. And taking a whole month off from work also provides an excellent chance to “hit the big red switch” and do some thinking about where I and VB might be going. (No worries, I’m not thinking of making a career change or anything radical like that. It’s just a good time to do some reassessing and thinking about the future. Mmmmmm…. Orcas… Longhorn…)

Guess we’ll just have to see…

And let me add…

…that while normally New York is a wonderful and crazy town, New York at Christmas is a wonderful and insane town. Just when I thought I’d never seen so many people in the same place at one time before, we’d go somewhere else and it would be even worse. One of those things in life you want to do once and then say “Been there, done that.”

We went to New York with my wife’s family, which included my 6 year old niece and 9 year old nephew. We did a bunch of “kids in New York” stuff like going to the Radio City Music Hall Christmas show and going to see the tree at Rockefeller Center. The most fun thing was going ice skating at Wollman Rink in Central Park. Beautiful scenery and my niece was a complete natural at skating (it was her first time).

I think, though, the most impressive sight I saw was the Christmas house in the Bronx. Absolutely insane. Pictures don’t even do it justice. You just have to see it to believe it.

A plug for “Code Generation in .NET”

I just wanted to put in a quick plug for Code Generation in .NET, Kathleen Dollard’s new book. Besides being an author, Kathleen’s also a passionate VB user and we’ve had many discussions over the years about the design and progress of the language. She’s also incredibly passionate about code generation and given some of the detailed emails that she’s sent me on the subject, this book can’t help but be great. If you’re doing code generation in .NET, I’m sure this is going to be the book to buy.

Going on vacation

I just thought I’d add that the slowness of blog entries that’s been creeping in over the past few weeks is about to get a whole lot worse. I’m going to be leaving next week for a Christmas vacation on the East Coast and then on January 1st, I’m going to be leaving to spend a month in Africa! Needless to say, I won’t be blogging much between now and next February.

The Christmas trip is nothing out of the ordinary, just visiting family, but the Africa trip is shaping up to be pretty cool. My wife Andrea and I are going to be visiting Kenya and Tanzania during our stay on the continent. Andrea’s dad worked in the US foreign service during the 70’s, so she spent many of her formative years in Nairobi. She hasn’t had a chance to go back to visit since they moved back so we’re taking the opportunity to go back and see some of the places that she grew up. While we’re there we’re also going to be going on a safari in Tanzania – I believe it’s going to be migration season, so we should be able to see lots of animals out on the Serengeti. All in all, it’s going to be pretty exciting. The only downside has been that this is our third try at the trip – two previous attempts have had to be put off due to little geopolitical contremps like the Iraqi war. Hopefully, everything should be pretty quiet for our trip!

Anyway, the end result of all this is that I’ll probably post very little between now and the New Year and then nothing after that until February. Just so’s everyone knows where I am and don’t get to thinking that I just lost interest in blogging or something.

(In the event that we end up in places that have Internet cafes – highly unlikely – I may post a few “field reports.” We’ll just have to see.)

[Update: The original title for this entry was “Going dark,” which is a phrase that means “turning out the lights” or “shutting down.” The original title referred to the fact that my blog is going to “go dark” for a month and a half while I am gone because I won’t be able to update it. However, upon reflection I realized that the title may be misconstrued, so I’m changing it to “Going on vacation” for clarity.]

One step closer…

Well, another step towards getting in print – it appears that Amazon now has my book in their database!

There it is, in all it’s glory. Amazon seems to be a little confused, though. For some reason they don’t seem to know that it won’t be published until March. And you can’t find my book by searching on my author name.

Also, when the book is actually published, there’ll be a cool quote on the front cover but you’ll just have to wait to see that one…

Why internal blogs don’t make it

Scoble wrote yesterday about the fact that even though there are a growing number of MS people with external blogs (enough to force the move off of GDN), there hasn’t been a commensurate number of internal blogs. In fact, I’d have to say that pretty much most of the internal blogs that I’ve read are a dismal failure, and I’ve dropped every single one out of NewsGator. Robert speculates that the problem has to do with discoverability and linking, but I think the problem goes deeper than that. Specifically, I don’t think internal blogs work very well because:

  1. External blogs make Microsoft people be more open and less insular in the way that they talk about things. Public blogs expose our thoughts to a pretty broad range of people, so we have to assume less and explain more. Internal blogs, on the other hand, allow us to make lots of assumptions about shared knowledge, meaning that internal blogs tend to be more dry and less interesting. Which, in turn, makes them less fun to write.
  2. External blogs expose us to people who don’t agree with what we have to say, to put it mildly. This provokes lively debate and interesting discussions in a way that is harder to replicate internally. I’m not saying we’re the Borg here, but there is a shared culture within the company that makes people a bit more decorous. Decorum also makes people, I think, less likely to rock the boat on internal blogs. This doesn’t make much sense since people inside the company read external MS blogs too, but there you are.
  3. It’s like the old Friends joke where the gynecologist says about his work, “It’s like being a waitress. When you get home, the last thing you want to do is look at another cup of coffee.“ Most of us spend our days talking to and emailing other Microsoft employees. The last thing we want to do is write the equivalent of another memo. It’s much more fun to talk to outside people.
  4. One of the big things that external MS blogs provide is information about what MS is doing. Internally, there are a lot of resources available to employees that often trump blogs. (Not that there isn’t room for improvement, as Scoble notes.) I don’t read Chris Brumme’s or Suzanne Cooke’s excellent blogs anymore because a good amount of the information they talk about is available in internal specifications. And if there’s something piece of information I can’t find, I have the luxury of calling them up or scheduling a meeting with them to get my questions answered.

I’m pretty skeptical whether internal blogs really will ever work. I’m more intrigued as to whether collaborative technologies like wikis can make a big difference. After I get back from some major vacation (more on that later), it’s something I’d like to explore inside of the VB team.