Comfort Blog

Talking at the 4th Friday cabal today with William, Wendy, and Matt. As always, wediscussed a wide array of topics. Remember when you discovered Napster, and the magic of discovering music new and old?Isall beauty relative,and if not, why can you not intellectually explain why one piece of music is beautiful and another is not? Comfort Blog has some nice music; a wide variety of stuff to discover. Harlan the Beat Maker is completely new to me, but at the same time brings random memories rushing back. I’ve been listening to WebJay playlists to discover new music, too. My brother forwarded the link to Basic Hip Digital Oddio; Hang ‘Em High is just too cool.

The Comfort Blog RSS feedis provided by FeedBurner. FeedBurner now uses a ?Pretty RSS? skin; it looks very nice.

XML is Evil

[Via Sean Palmer] Ted Nelson explains why XML is evil.He concludes,?I don’t mind people using it as long as they don’t believe in it. We need to keep looking for neutral representation that can represent any structure whatever without warping or surplus meaning.?

Ted often suffers from ?Not Invented Here, Try My Stuff Instead? syndrome and sometimes makes judgements without really understanding what he’s talking about (for example, he claims that ?semantic web? is based on XML, which is not at all true, and he ignores that RDF data model is NOT hierarchical, and is in fact exactly intended to escape the hierarchy that he complains about).

But Ilove his rants, and agree with him 100% about ?use it without believing in it?. We need smart people providing counterpoints like this, to avoid becoming too religious about our technologies. We invented XML as a tool to serve us, not the other way ’round. For the same reason, I really liked PaulT’s erstwhile ?xmlsuck?, and in some ways I miss the rowdy anti-XML days of a few years ago.


Completely off-topic, this new example of wacky redacting is just hilarious. In 1999, we released the file with no redactions, but now we have re-released it to remove all of the ?secrets?. The fact that Pinochet drank pisco sours is considered a ?secret? now. One imagines a drunken redactor working feverishly in the night. His eyes light up! ?Pisco sours!Must redact! Protect the bodily fluids!!?

Nullable Types in C#

Patrick Logan critiques the nullable value types in C#. I have to admit, I was a major advocate of this feature. It not only makes mapping to relational data easier, it makes mapping to XML/XSD easier. And if your code doesn’t manipulate data (as relational or XML), then what does it do?!?

His comments about testing null equality are interesting. I think that C# is technically wrong, but for different reasons that Patrick. You see, I have always felt that (null == null) should always equal false. If the values are missing, how can you know they are equal?!? But I guess that’s just my data-guy bias.

The Orange XML Icon

Scoble likes the orange XML icon. The icon is OK for 1999, but I’d like to see all of the little orange icons (and the blue ones, too) disappear within the next five years.

For RSS to be truly mainstream, subscribing to a web page needs to be a simple as printing. When I want to print a web page, I don’t have to go scroll through the page and hunt for a little orange “print me!” icon.

The icon is really useful only for people who already know how it’s used. If you told your mom [1] to ?go to Reuters and subscribe to their page?, do you think she would be able to figure out that she’s supposed to click the orange xml icon? Or do you think she’d do better with a toolbar button/menu item titled ?subscribe?? Now, for people who do understand what the icon is for, do you think it’s more usable to hunt-n-click, or use a single, consistent UI like printing?

In addition, the orange XML icon is not very accessible. A standard toolbar button/menu item would have a standard button name, keyboard accelerators, and so on. Then RSS feeds could be usedin apps which are not web apps but nevertheless provide feeds. For example, when I am looking at a list of bugs in our bug-tracking database, I would like to be able to subscribe to be notified when new bugs matching the criteria are raised. This is easy enough to do today, but it would be nice to have a standard toolbar button that was immediately recognizable. This is especially important for accessibility for people with disabilities. RSS in principle should be extremely useful for people with disabilities, since it strips away the distractions and provides just the content, and automates browsing of multiple sites. However, subscribing to a site is a nightmare for a disabled person. The orange XML icon is a graphic; it can’t even be read with a screen reader! Right-click an icon, highlight a URL, cut-paste into some application, etc. How terrible! How much easier if there were a standard key accelerator, and standard control ID that could be used by screen readers!

I’ve really only heard three good arguments for the little orange icon; listed here with my responses:

  • It’s the only thing that works consistently right now. That’s true, and it has certainly served a purpose. But it’s not that consistent. It’s a nice start, but we can do better in 2004. This functionality belongs in IE, and all other web clients. It needs to be as consistent as printing. Opera, Netscape, IE should all use the same button and similar UI for subscribing.
  • It lets you put multiple links in the page, if you have multiple feeds available. This is a fine goal, but I’m still not convinced the orange XML icon gives the best usability for this scenario. And this is not just for the accesibility reasons mentioned above. One problem here is that it’s often difficult to tell if the multiple links are for the same feed (in different formats), or for different content feeds. I think that less than 50% of sites which have multiple links actually have separate content. It’s also impossible to tell if the feed linked is a feed for the whole site, or for a specific page. So I think that this ?multiple feeds? is a nice goal, but is broken in most cases. First, I would point out that nobody wants to be forced to choose between multiple feeds for the same content (RSS 0.9, RSS 1.0, RSS 2.0, etc.). It would be much better if the page would show only the feed format that the user’s client was configured to handle. And I personally think it would be better if the ?Subscribe? button simply provided the user with a list of feeds available (using text to describe each feed), and then the user could select (?Subscribe tothe whole site?, ?Subscribe to the ‘Life in the Borg Cube’ Category?, ?Subscribe to comments in this post?).
  • It visibly demonstrates the value of XML. Again, I wouldn’t argue with this. RSS is the most successful application of XML ever (in terms of deployed base and developers affected). And the icon is kind of a nice shout-out to XML. But XML is not all that meaningful to your mom, and it’s not really user-friendly to expect normal people to embrace TLAs like XML and RSS (especially when there are better alternatives). And the badge becomes a sort of ?gang colors? used by various factions to promote their own competing formats. To get consistent use of the one true orange XML icon, you have to convince the entire ecosystem of developers to give up their own gang affiliations. But to get the whole world to use a single ?subscribe button?, you just have to convince a couple of browser vendors.

Anyway, I have talked to quite a few people about this since first discussing with Julien, and I have learned that some people really like right-clicking that little icon. So I wouldn’t begrudge site designers who want to use the darned thing (at least for now). And I have no problem is the graphic used on the toolbar button is a little orange XML icon, if people are attached to that graphic. But I really believe that it needs to be standardized at the level of other built-in-commands like ‘print’. Also note that I am talking about standardizing the UI, *not* about standardizing theaggregator client. When you print a web page, you can print to whichever printers are registered on your system. The same should be true of subscribing in an aggregator. And a final note, this is really easy to implement.

[1] When we use our mothers or grandmothersas usability test cases, it’s not out of a notion that our mothers (or women in general) are not computer-savvy. It’s simply because we have higher standards for our mothers than for ourselves when it comes to computer usability — geeks regularly tolerate all sorts of ridiculously unusable stuff that we would never expect our mothers to use (can you say ?Linux on the desktop??).

RFID Scalability

[via Tim Bray] Geoff Arnold says ?I am intrigued by the impact of RFID tags and other sensor technology on IT. But my interest is fairly narrow: I’m curious about what kind of workloads these technologies will impose on corporate data centres. To understand this, I want to get a handle on the numbers: the sensor event rates (both the flow rate and the burstiness), what kind of intermediate aggregation and filtering will be performed, and what the resulting datacenter workload will look like.? Geoff complains that people have trouble staying on topic when he brings up the subject.

First, I think it might have something to do with the fact that the subject is not all that complicated. My short answer, if Geoff brought it up in a meeting, would be (in Scottish accent) ?It’s HUGE!!! It’s a virtual planetoid!! Head! Move!?. But seriously, I’ve had the chance to review a couple of rather large-scale RFID architectures in the past six months, and have seen lots of thought about where the strains in data flow will be with (for example) a large retailer or government agency. In my opinion, the fears of data explosion are highly exaggerated. Once you start drilling into the scenarios, you find that there are plenty of opportunities for aggregation, things that do not need to be fed in real-time, and so on. RFID is being adopted right now typically by larger customers, and the data demands are increased, but these are challenges that any experienced data warehousing or plant-floor data collection person will have faced before (and exaggeration of data flows is a common ocurrence in these areas too). OTOH, RFID presentssome technical challenges which are very interesting, besides scale.

I was especially interested by Geoff’s assertion that people get ?off track? by ignoring the scale issues. I think he’s right that people ignore scale, but I can remember just a few short years ago when it was the opposite. During the height of the dot-com bubble, you could sidetrack any business discussion by saying, ?Yes, but, will it scale??. The common perception was that Internet scale was at least two orders of manitude larger than brick-and-mortar scale, and if a business launched without being able to sustaina bazilliontransactions per second, they were soon out of business. People abandoned all reason when those words were uttered (much like the other magikal phrase, ?But … is it secure??)

In fact, I think decision-makers have to be careful, because certain vendors can make a whole lot of cash by making you panic about scalability. RFID is unique enough, and it is big, so decision-makers could potentially be tricked into believing that the rules have completely changed. But before you go spend $10 million on hardware, run the models and figure it out for yourself.And remember,a terabyte of storage costs $1,000 dollars today, and we all learned some lessons about excess capacity during the Internet boom. Think.

Why RDF?

Dare is asking what benefit RDF has over XML plus namespaces, schema, and XSLT. More accurately, Dare is pointing to Eliotte, who asks those questions.I will answer with a question: Why did WinFSchoose a?triple? based data model, rather thanXML infosets or even relational?The underlying storage is relational data model, and we have plenty of experience with doing XML infoset (tree) data model, so either option should have been less risky. It’s not as if we didn’t spend lots of resources evaluating the other options, so why did we reject XML and relational in favor of ?triples??

I think people underestimate the importance of a triple-based data model for many scenarios. Even without ?inference? and ontology mapping, the triples database is a huge win. WinFS is going to enable numerous application scenarios that simply are not practical to implement with today’s technology. WinFS is not based on RDF, of course, but they both share similar data models. And, while the scope of WinFS is local and ?Semantic Web? is global, the scenarios are not that different. When you start to imagine what it would be like to extend WinFS stores to publish and synchronize data with one another, oralternately imagine a ?personal semantic web?, you can begin to see that the visions have some serious overlap.

Note that I didn’t really explain ?why RDF?, since I’ve done that enough times already. I’m just making an observation that, if you believe that WinFS has value, and if you believe that WinFS made the right decision by going with a triple-based data model, then you already understand ?why RDF?.


Who knew that you can write custom calendar providers for Outlook? Sometimes I’m fooled by our critics into thinking that Microsoft embraces lock-in.

RSS Politics

W3C had a meeting in NYC to discuss possibility of taking on the Atom spec. It’s an interesting read.

Basically, the discussion between Sam and Eric seems to have been productive. Sam and Eric are both open-minded about the extent to which RDF is or is not used in the new spec, and W3C seems willing to accomodate concerns about schedule, RF, and so on. Eric makes some points about how the process between WG/IG has worked in the SW activity, and I can concur that the SW activity has really improved in this area in the past couple of years.

Bob Wyman characteristicallyexpressed some fears about Microsoft:

There are W3C members who could join and get a vote who are in the RSS camp. Microsoft guys keep talking about RSS and trashing Atom. If we’re in the IETF, and have RSS vs. Atom, chair can say, fine, we have rough consensus on what Atom should be. You can go do RSS. In W3C, voting no because Atom shouldn’t exist.

Fortunately Eric and David set him straight right away, but apparently Lucas Gonze didn’t read the whole transcript. He posted Bob’s comment and piled on with his own gems:

Google loves Atom, Microsoft hates Google, and Dave hates Atom. — (on a new line) — I had a brief email conversation with Dave Winer today, and I thought: what an angry guy. It was really distasteful.

Since so many people are making claims about Microsoft, I might as well jump in.

First, be very clear. The ?debate? over Atom vs. RSS is a complete non-issue for Microsoft.Weuse RSS to serve thousands of customers right now, and most of the people setting up RSS feeds have never heard of the political ?debates?. RSS works for them, and that’s all they care about. On the other hand, if Atom ever reaches v1.0 and we had a business incentive to use it, we would use it. No need for debate.

Now, of the three or four people at Microsoft who know enough about Atom to have said anything about it, I wouldn’t say that anyone has trashed the format. I and others have pointed out that it’s just fine for what it does; just like RSS. If anything, I have asked hard questions about why I or any business decision maker should be spending resources on the whole debate right now. If a business has deployed using RSS, what financial motive would they have to switch to a new, nearly identical, format once it ships? I’ve got nothing against the Atom people inventing new syndication formats, but I just don’t see why *I* should be involved right now. There’s no good reason.

The other comment I’ve made before is that the Atom community is not being served by the polarizing attitudes of some participants. The ?us vs. them? comments arenot helpful, especially when untrue, and the constant personalization (?Support Atom because I hate Dave Winer!?) justdamages the credibility of the whole group (many of whom might have good motives for being involved).

In other words,I think most businessdecision makers feel the same way I do –They really don’t care to hear aboutyour petty personal politics and agendas. Just tell them what’s in it for them, andthey might support Atom. If you think that’s ?trashing? Atom, then you’re losing an important opportunity to make your case.

Andit’s silly to say that ?Microsoft Hates Google?, as if that explains away any comments that people have made about Google’s questionable actions. The two blogging products most associated with Microsoft; Dare Obasanjo’s RSS Bandit, and dasBlog (Clemens, Dare, and Omar) have both enabled Atom and RSS both for quite some time, and worked well with the community. On the other hand, Google sites were working fine with RSS, and Google then deliberately disabled RSS and forced usage of the evolving Atom drafts, driving a wedge into the community. Perhaps Google had noble ?don’t be evil motives?, or perhaps they were not so noble. Google is not beyond reproach, and nobody should apologize for holding them accountable. I would expect people to hold Microsoft accountable (and people do) if we made a move like that.

APL, J, and Gunnar Shuffle

Ten daysago, Gunnar Kudrjavetsposed a really tricky algorithm challenge. I spent some time trying to solve it, and then jumped into the comments section to see how others were doing. I noticed that some people were using a programming language called ‘J‘, which is based on APL. Now, I highly doubt that the solutions in ‘J’ have the desired memory or CPU characteristics, butthey fitin a single cryptic line of code.

So I downloaded J, and went through the 200pp tutorial. I’m now a dangerous amateur. The language reminds me of a mix between lisp and awk. Doing math is a joy. One nice feature is the way that everything is multidemensional; atoms, items, lists, tables, and so on. The other interesting (strange?) feature is tacit definitions. Between those two concepts, you can so really amazing things. Here are some strange things I noticed:

  • 5 * 3 + 1 = 20
  • while. and whilst. have different semantics
  • namespaces are called ‘locales’

Anyway, I was standing in line at the Cafe today, and I noticed a person with ?Gunnar Kudrjavets? on his badge. I went over and introduced myself, ?hey, I have now learned to program in ‘J’ because of your blog!?. He knew immediately what I was talking about, and we had a nice conversation about the shuffle problem. Getting people interested in APL was probably not his intent in posting the original challenge, but it was serendipitous to bump into the person responsible for prompting me to learn yet another arcane language.

Giving Credit

Today was a two-battery day [0], so I didn’t notice that Scoble and Dare are writing about me on their blogs. I think Dare’s history of blogging at Microsoft is pretty accurate. I could add a number of details about the early days, but mainly I just want to add that I think there have been three primary phases in the evolution of blogging at Microsoft.The main contribution of the ?first? bloggers was simply that we tested the waters andfelt out where the boundaries would be.

When I first started blogging, theclimate was not very favorable toward ?unedited voices?, even for employees posting to newsgroups and such. There was no explicit policy against these things, but people were scared and jumpy. And anyone who spoke with an unedited voice was guaranteed all sorts of interesting drama. If you had asked any of us during the first couple of years, you would have found us very suspicious of any high-level visibility of blogging, becuase ?the nail that sticks up is the one that gets pounded down?. If a co-worker came to you and started a sentence with ?I was reading your blog…?, your first thought would be ?Crap! How did he find out about it?!? This kind of fear is really unnecessary today (and not just because I’ve learned to moderate my opinions), butoldfears die hard. The fact that we have more than 600 bloggers listed now (and undoubtedly more than have chosen to be listed), and favorable statements from Bill, Steve, Eric Rudder on down should put everyone at ease.

This second phase of the history, where blogging started moving out of the shadows, was driven by the new generation of bloggers. At first, blogging spread through circles of influence that were pretty easy to track; people picked up blogging based on a trustedfriend or two who blogged, and nobody really evangelized it. Chris Anderson is quite a connector (in Gladwell terms) and directly influenced a lot of people to start, so after him things heated up enough that it was difficult to track who was coming from where. Chris and all of the .NET bloggers, and big names like Don Box started to legitimize blogging. Dare’s creation and stewardship of RSS Bandit (and the work of many on BlogX, dasBlog) bridged the .NET and blogging communities and further legitimized blogging. We started to get more new hires who brought blogging habits with them, and considered blogging to be just a normal thing.People’s bosses started blogging. Eventually we stopped worrying about whether our bosses would find out.

Somewhere in this second phase, Scoble joined the company, bringing along his huge audience and unshakable faith in blogs and aggregators. Not only did he he not worry about whether his boss would find out, he was prone to contact your boss and ask her why the heck she wasn’t blogging. That was the start of the third phase. Now we have lots of people openly discussing blogs and the technology behind blogs, and how we can leverage both to serve customers. There are still plenty of skeptics (which is a good thing, BTW), but the conversation has shifted dramatically from where it was just a few years ago. The fact that companies like Sun and IBM arenow following suit by publicly encouraging employees to blogis strong evidence that Microsoft was heading in the right direction.

[0] A two-battery day is a day when you have to spend so much time in meetings that you do not have time to recharge your laptop battery, and you deplete both your main and backup batteries.