I often think to myself that there is a lot of background racism in the United States. By background racism, I mean racism that is so steeped into the culture that it isn't even noticed unless pointed out by outsiders. One example sprang to mind after reading Robert Scoble's post Did China beat Christopher Columbus by decades? where he writes

Speaking of Chinese, I'm reading a book "1421 The Year China Discovered America" that makes a darn good case that Christopher Columbus didn't discover America. He's done a ton of work that shows that the Chinese were actually here 60 years prior and that Christopher Columbus actually had copies of their maps!

That basically throws out a whole ton of history I learned in elementary school.

What I find interesting is this concept of "discovering America". There were already people on the North American content when Columbus [or the Chinese] showed up in the 15th century. So "discovered" really means "first European people to realize the American continent existed". Now every child in America is brought up to believe that Europeans showing up on some land that was already inhabited by natives is "discovering America" and introducing it to the world. 

This makes me wonder how much the history lessons I received growing up in Nigeria differs from the version British kids got about the African colonies. Perhaps there is also some white guy celebrated for having "discovered Africa" and civilizing the black savages who he met when he got there. At least whatever tribes that welcomed whoever he was aren't extinct today, too bad you can't say the same for the tribes that greeted Columbus.    


Categories: Ramblings

July 6, 2004
@ 09:50 AM

Whenever I'm up late and can't sleep I like checking out the HipHopMusic.com. I like reading the discussions, where else can I find a discussion of a lawsuit being filed against Snoop Doggy Dogg for using a voice mail message on his album detoriorate into gang bangers threatening to cap each other over the Web or watch a review of Jay-Z's most recent album turn into a six month long discussion about whether Jay-Z is the greatest of all time (G.O.A.T.) or not.

Speaking of hip hop the new album by 213 (Snoop, Nate Dogg and Warren G), The Hard Way, is scheduled to drop within the next month. I've been waiting over 10 years for this album. There is a God in heaven listening to our prayers. :)


July 6, 2004
@ 07:48 AM

To help both our users and the RSS Bandit development team I have produced an RSS Bandit Product Roadmap. From the introduction to the roadmap

As the user base and development team of RSS Bandit has grown the need for planning and strategy documentation for future versions of RSS Bandit has become self evident. This document describes the goals for future versions of RSS Bandit as well as provide a plan for achieving these goals. As RSS Bandit is an Open Source project worked on by members of the RSS Bandit community in their free time these plans and goals will not be fixed which is why this document is a living document available on the wiki. There are three primary goals of this road map

  • it is a way to communicate to our end users what features are planned for the next release
  • it communicates the prioritization of various features as well as defines owners for feature areas
  • it defines the requirements of each feature in enough detail that the RSS Bandit development team can implement these features

At the current time this road map describes the future of the current version of RSS Bandit (v1.2.0.114) and the following version. Since we do not know the what version number an RSS Bandit release will use until it is released we will use code names for future releases. The release following v1.2.0.114 is codenamed Wolverine after the character from the X-Men comic book.

This document is primarily for the benefit of Torsten, Phil and myself although I am sure our users will find it of interest as well. If you have any feedback on the roadmap, let me know by posting a comment.


Categories: RSS Bandit

July 4, 2004
@ 08:40 PM

In The Problem With Online Music Tim Bray writes

The New York Times today hits the nail on the head: if you’re buying music over the net, you’re buying it in severely damaged condition. When I plug my computer into the really good stereo at home, the difference between the way music sounds coming off CD or vinyl or a good FM signal, and the crippled version from MP3 compression isn’t subtle. I used to think that if you were listening to music on headphones on a bus or train or plane or in a crowd, the MP3 lossage really didn’t matter much.

Then there are people like me who have a Bose sound system in their car but find out much to our chagrin that MP3s playing off of an iPod sound better than CDs since the iPod has EQs and the car stereo does not.


In chapter 26, of The Dilbert Principle Scott Adams proposes guidelines for good management which should promote a healthy workplace. On pages 317 & 318 he writes

Rule for "one off" activities: consistency. Resist the urge to tinker. It's always tempting to "improve" the prganizational structure, or to rewrite the company policy to address a new situation, or to create committee to improve employee morale. Individually, all those things seem to make sense. But experience shows that you generally end up with something that is no more effective than what you started with.
The best example of a fruitless, "one off" activity that seems like a good idea is the reorganization. Have you ever seen an internal company reorganization that dramatically improved either the effectiveness of the employees or quality of the product?

I found this excerpt particularly relevant because at my day job [at Microsoft] reorganizations are a way of life. Based on conversations with coworkers and my experiences being in Redmond just over 2 years, the average product team goes through one reorganization a year. The average B0rg drone has the line between them and the CEO in the org chart altered at least once a year. At least one news publication has described it as Microsoft's Annual Spring Reorg. When I first got to Microsoft I'd heard people joke about this but having gone through 2 changes in management and 2 team reorgs in as many years the jokes don't seem as far fetched any more. 

About a year ago [or longer] there was a 'meet-the-CEO' style meeting where Steve Ballmer gave a talk followed by a Q & A session with employees in one of teh conference rooms. I didn't attend because I knew the room would be filled to capacity but did watch the live Webcast. One of the things he talked about was the negative effect of frequent reorgs. Paraphrasing, I believe he said with reorgs we take teams of people who've learned how to work together and function as a team and disrupt them by asking them to start the team building process all over again with new counterparts. Recently I noticed another detriment to regular reorganizations which involve changes of management.

Our team recently had a project post mortem where we discussed what things had gone right or wrong on the journey towards getting to beta 1 of v2.0 of the .NET Framework. One of the things that came up were issues with some management decisions that were made at the start of the project which were reinforced during the middle of the project by new management. What I found interesting was that the main management folks who had made these decisions weren't part of the post mortem because they'd been reorged away. Our team has had 3 general managers in the 2.5 years I've been working here and we've been working on Whidbey for almost the entire time. What struck me is that it means that these folks who are now off in other parts of the B0rg cube haven't had to see the pros and cons of the various decisions they made unfold over time or what the ramifications of various trade offs and risky bets they made have been. The entire point of gaining experience is to learn from it. Frequent reorganizations prevent this learning process from occuring. 

Thanks, Dilbert.  


Categories: Life in the B0rg Cube

At Microsoft one of our goals in developing software is that backwards compatibility when moving from one version of software to the next is high priority. However in certain cases the old behavior may be undesirable enough that we break compatibility. An example of such undesirable behavior are bugs that lead to incorrect results or security issues. Below is a list of breaking changes in the System.Xml namespace in beta 1 of v2.0 of the .NET Framework.

  1. Extension of xs:anyType which changes the content type to mixed="false" results in error.
  2. Add an enumeration member to XmlWriter.WriteState to indicate that the writer is in error state. Change writer to disallow further writes when in error state.
  3. ##other namespace constraint now treated correctly on wild cards.
  4. Instances of DateTime object returned by XmlValidatingReader that represent xs:time and other date & time related W3C XML Schema types now initialized using DateTime.MinValue
  5. Incorrect implementation of XSD derivation hierarchy for xs:ENTITY and xs:NCName corrected.
  6. XSD List Types Not Validated Correctly.
  7. Changed to reliably fail when XmlTextReader source stream switches encoding between calls to ResetState()
  8. XmlTextReader should apply the same security restrictions as the XmlReaders that can be created via the static XmlReader.Create() methods

I was directly involved in the decision making process for most of these breaking changes since many are in the W3C XML Schema area which I am responsible for. If any further clarifications about any of the breaking changes is needed, please post a comment with your question below.


Categories: Life in the B0rg Cube | XML

July 4, 2004
@ 04:24 AM

I just noticed that the most recent version of RSS Bandit has had over 20,000 downloads in just over a month. It seems like every day I find a new blog post from someone who's switched to RSS Bandit or just started using it as their first aggregator describing their improved user experience compared to other aggregators. Thanks for the support, there is even better stuff on the way.

I've been busy with work so in the meantime Torsten and Phil have been working on bug fixes for some of our most pressing user requests. In between releases we try to produce stable builds which early adopters can test to see if certain persistent bugs have been fixed. These RSS Bandit daily builds do not have an installer but can be downloaded and run directly by double-clicking on the RssBandit.exe icon after unzipping the folder. For example, the 6/15/2004 build fixes an issue with downloading feeds from behind a firewall. It should be noted that these interim builds are not expected to be release quality and have not been tested as rigorously as a full release that ships with an installer. However if you are interested in keeping pace with RSS Bandit development and providing feedback in making it an even better aggregator then keeping up with our daily builds is one way to do that. 

My workload at my day job has eased, so in the next few weeks I have time to work with Torsten on fixing a number of our reported bugs as well as prioritizing and implementing various feature requests. One thing I have noticed is that a number of people would like to get insight into our plans for the next release. The first cut at this was my prioritized Top 10 list of features for the next version of RSS Bandit. However that list doesn't take into account a number of smaller feature items we'd like to do nor does it give much detail about what we will do. Both Torsten and Phil would like to see proper specifications for the next release (requirements document, design docs, etc) which I'd gladly write since writing specs is something I was doing for fun before it became my day job. However this is work that would take away from coding time and since there'd only be one or two other readers of the document(s) I'm unsure as to whether just adding more detail to our existing communication practices isn't a better bet for the long run.

Whatever is decided, we will be blogging about features as they are being implemented and providing builds which showcase the new features so we can get feedback from users.  The only question is how detailed we will be about discussing features before they actually show up as downloadable bits.


Categories: RSS Bandit

July 4, 2004
@ 01:20 AM

After being confused by a number of blog posts I read over the past few hours it just hit me that both Sun and Apple are using the code name Tiger for the next version of their flagship software product. That clears up a bunch of confusion.


Categories: Technology

July 3, 2004
@ 06:49 PM

I just got back from vacation. A week on the beach, sans laptop, sipping mai tais is good for the soul.

Whenever I travel by air I try to use the flight time to catch up on reading popular fiction. This time around I planned to do something different and finish reading Michael Brundage's XQuery: The Xml Query Language but forgot it in my mad dash to the airport. I decided to fallback on a tradition I started a few years ago and searched for a book by Terry Pratchett at one of the airport bookstores. In the past year or two I have noticed that I have been unable to find books by Terry Pratchett in airport bookstores in the United States although I did buy some of his books at Heathrow airport last year. At first, I thought it was because he hadn't published anything new recently but I noticed books from authors that are much longer in the tooth like Jeffrey Archer, Jackie Collins, Robert Ludlum, Sidney Sheldon, Mario Puzo, Danielle Steele and Anne Rice. The conclusion I can draw is that there is some Clear Channel-like company that owns a majority of the bookstores located in airports in the United States which has placed an embargo on the works of Terry Pratchett. I ended up settling for the turgid prose of Anne Rice's Memnoch the Devil and Scott Adams' excellent The Dilbert Principle.

Memnoch the Devil was disappointing. I'd enjoyed the previous books in the series (Interview with the Vampire, The Vampire Lestat and Queen of the Damned) although I did find the subsequent book in the series, The Vampire Armand, quite dreadful and threw it away without finishing it. The book was fairly unimaginative [especially compared to what authors like Neil Gaiman have done with similar themes], predictable and most annoyingly inconsistent with the very religious works it was supposed to be based on.

The Dilbert Principle was very entertaining and had me introspective about work. I definitely feel there's a lot in the book that rings through about Microsoft as is probably true with any large company. I did find some of his ideas on how to create an enjoyable and challenging workplace spot on although I doubt they'll ever penetrate the consciousness of Corporate America.


I now need to catch up on email. Over 500 messages in my Yahoo! inbox (over 450 from the atom-syntax mailing list) and about 700 in my work inbox. Then there's the 1000 unread blog entries in RSS Bandit. Welcome to information overload...


Categories: Ramblings

I'm in the end stages of doing the spec work for the various components in the System.Xml namespace  I am responsible for in the Whidbey betas. After the 4th of July holidays we plan to start doing initial brain storming for what feature work we should do in Orcas/Longhorn. I thought it would be valuable to have various users of XML in the .NET Framework suggest what they'd like us to do in the Orcas version of System.Xml. What changes would people like to see? For example, I'm putting Schematron and XPathReader on the 'nice to have' list. No idea is too unconventional since this is the early brainstorming and prototyping phase.

Caveat: The fact that a technology is mentioned as being on our 'nice to have' list or is suggested in a comment to this post is not an indication that it will be implemented in future versions of the .NET Framework.


Categories: Life in the B0rg Cube | XML