February 6, 2004
@ 05:00 PM

A few days ago XML 1.1 became an official W3C recommendation. Mark Pilgrim, contrary to W3C guidelines, has celebrated by converting his RSS feed to XML 1.1 which means it currently cannot be processed by any Microsoft XML technologies from the XML parsers in the .NET Framework to MSXML which is used in a host of products from Internet Explorer to Office 2003.

This is the first step in fragmenting the interoperability on the Web gained by XML. It seems the next step will be W3C sanctioned binary XML. Anyway let's get back to XML 1.1. What exactly is wrong with it one might ask? The biggest thing wrong with it is that it is backwards incompatible with XML 1.0. A good summary of all the things you need to know about XML 1.1 is covered in Chapter 3 of Elliote Rusty Harrold's Effective XML

Everything you need to know about XML 1.1 can be summed up in two rules:

  1. Don't use it.

  2. (For experts only) If you speak Mongolian, Yi, Cambodian, Amharic, Dhivehi, Burmese or a very few other languages and you want to write your markup (not your text but your markup) in these languages, then you can set the version attribute of the XML declaration to 1.1. Otherwise, refer to rule 1.

XML 1.1 does several things, one of them marginally useful to a few developers, the rest actively harmful.

  • It expands the set of characters allowed as name characters

  • The C0 control characters (except for NUL) such as form feed, vertical tab, BEL, and DC1 through DC4 are now allowed in XML text provided they are escaped as character references.

  • C1 control characters (except for NEL) must now be escaped as character references

  • NEL can be used in XML documents, but is resolved to a line feed on parsing.

  • Parsers may (but do not have to) tell client applications that Unicode data was not normalized

  • Namespace prefixes can be undeclared

XML is a lousy format for most of the things it is used for. The one benefit it has is that it is widely supported and a guaranteed way to interoperate in a cross-platform manner. By tampering with this the W3C is effectively diluting one of the few benefits of using XML. This is an regrettable occurence. Unfortunately it looks like things will get worse now that the W3C also wants to dabble in “binary XML”.


Categories: XML

A mailing list dedicated to discussing RSS Bandit is now available. Details on how to susbscribe to the mailing list or view its archives are available here.

Also thanks to all the folks that sent in feature requests. Torsten and I will sift through the two dozen responses, extract the various feature requests, discard some, prioritize the rest, enter them in the RSS Bandit feature request database then get coding.


Categories: RSS Bandit

I just tried out the President Match tool which tries to figure pick which US presidential candidate shares your views based on a poll and my results were

    1. Kucinich 100%
    2. Kerry       96%
    3. Sharpton  90%
    4. Edwards   90%
    5. Dean        89%
    6. Clark        87%
    7. Liberman   83%
    8. Bush         37%

I'm unsurprised by how far away George Bush is from representing my perspectives but I am surprised that Kerry comes so close. I'm definitely going to do some research into his position on certain issues. I had an ex-grilfriend call me a long time ago gushing about Kucinich who told me I'd love his campaign if I ever looked into it, I guess she was right.


February 4, 2004
@ 05:52 AM

Based on recent reports it looks like Colin Powell is practically admitting there were no Weapons of Mass Destruction in pre-war Iraq although this was the primary justification for the US invading the country in an action that has left an estimated 8000 civilians dead. That's quite a number who've lost their lives over a clerical error which happens to have spiralled the US deficit and made a few defence contractors richer.

I was curious as to whether I could look up the definition of “war crime” and see if starting a war for bogus reasons qualifies. My search lead me to the Crimes of War project and an article entitled Who Owns the Rules of War? which had these interesting paragraphs

The enduring law established at Nuremberg has thus turned out not to be the ''crime of aggression'' but a reaffirmation of war crimes as traditionally understood -- with two important innovations made necessary by the Nazi death camps: genocide and crimes against humanity. Nuremberg also had serious gaps. Most significant, it failed to address the terror bombing of civilians and the deliberate consuming of whole cities (Dresden, Tokyo) by fire -- the most enthusiastic practitioners of the latter being the Allies.

The failure to prosecute the Allies for firebombing cities is one of the strongest arguments today for why war-crimes tribunals should not be conducted by the victors. Many regard this argument as so clinching, in fact, that the mere charge of ''victor's justice'' is enough to end debate.

That clarified things for me. The definition and prosecution of a “war crime” is really up to the victors so the answer to my question is that it is highly unlikely that the events leading up to the debacle in Iraq will ever be considered a “war crime”. The rest of the article goes further in convincing me that the term “war crime” is a mostly meaningless phrase which has never been uniformly applied and for which there are very few if any useful metrics.


Categories: Ramblings

February 4, 2004
@ 04:20 AM

Every once in a while someone asks whether I plan to add support for reading newsgroups via NNTP to RSS Bandit. I believe I've reached the point where I'm bored enough to actually give it a shot and since there don't seem to be any freely available libraries that provide this functionality for .NET and have licencing requirements I'm comfortable with I may have to write the NNTP code myself.

The only question is whether this is actually functionality people are interested in or not. I definitely would use it since I monitor newsgroups like microsoft.public.dotnet.xml and microsoft.public.xml but would the average RSS Bandit user think it was a worthwhile feature or would my time be better spent elsewhere?


Categories: RSS Bandit

February 3, 2004
@ 05:36 PM

Below is the list of features I want to add over the coming months in order of priority. If you're interested in RSS Bandit's development post a response with the list of features you would like to see in order of priority.

  1. Support synchronizing RSS Bandit state accros multiple machines using SIAM.

  2. Experiment with ways to improve performance like removing dependence on SgmlReader and working on multithreading issues..

  3. Work on getting localized versions of RSS Bandit for various languages. Need to recruit translators.  

  4. Figure out how to locate interesting content. Perhaps via Technorati integration?

  5. Support blog posting using ATOM API.

  6. Support ATOM syndication format.

I'm really running out of ideas of features to add to RSS Bandit. It seems we already have more features than most other Windows desktop aggregators and there is only so much more we can add. Torsten is still looking at doing weird, wild, wonderful stuff like seeing what it would look like to add ThreadArcs to RSS Bandit.


Categories: RSS Bandit

In his post entitled Business Rules, OCL, XML and Schemas Daniel Cazzulino writes

DonXML is proposing extensions to OCL to express business rules that can be used at code-gen time and at run-time. He mentions my Schematron implementation called Schematron.NET, which allows many business rules to be expressed simply in terms of standard XPath expressions. I believe such an XPath-based language is good enough to express almost every business rule.

Udi Dahan commented as an example, a rule "only a bank manager can authorize a loan above X" which he said couldn't be expressed with Don's idea. It could, indeed, with something along these lines (XPath-like):

<assert test="sec:principal-role('BankManager') and po:Loan/@Amount < 1000">
  Only a BankManager can place a loan of more than $1000.

Using rules-based XML validation is a good way to augment the capabilities of the W3C XML Schema language which is traditionally used to describe message structures in SOAP-based XML Web Services. In the post on Daniel's blog Udi Dahan asks

I like the technique. I'm still puzzling over the strategy. From a SOA approach, where does this go ? What makes it different/better than any other rules engine ? You've given me something to think about. Thank you.

In an SOA approach the rules are part of the message contract. A service endpoint can accept certain kinds of messages that satisfy its message contract. Using a rule-based language like Schematron just makes for writing a tighter contract than one could write using a traditional XML schema language like XSD.

In fact, Aaron Skonnard wrote an article on MSDN entitled Extend the ASP.NET WebMethod Framework by Adding XML Schema Validation  that introduced this to some degree which he followed up with two episodes of MSDN TV; Validating Business Rules with XPath Assertions, Pt. 1 and Validating Business Rules with XPath Assertions, Pt. 2


Categories: XML

I've been trying out Orkut some more and I'm now pretty sure I think it is lame. There is the problem I mentioned previously in that it doesn't provide a way to create a hierarchy of friendships (i.e. differentiate friends from acquintances, business partners from co-workers, etc) which by the way Don Park has an interesting solution for called Friendship Circles. The other reason I've decided it rubs me wrong is that it tends to encourage the collapsing of the various facets of a person's s social life as pointed out by Warren Ellis along  with other criticisms which I agree with. Warren Ellis wrote

Right now, it looks pretty much like an iteration of the Tribe.net system, with an eye on Friendster's apparent main function as a dating system. (Which means, oddly, it requests your business profile at the same time as it's asking you where you like to be fingered.) (Okay, maybe not.)...

My current list of friends is mostly folks I know through geeking at work or on the Internet. Some I'd call friends and some I'd call acquaintances. Particularly interesting to me is the stark contrast that would show up if I actually had some of the folks I actually consider my close friends up there next to folks who's primary connection to me is work or being subscribed to the same mailing lists. It would be folks with completely different, contrasting sets of people.

However this isn't what I found interesting. I noticed that folks could form groups or communities on Orkut about specific topics and one of the ones I found by exploring the various friend-of-a-friend links was the Legalize Marijuana community. Considering that the various links I followed were mostly professional relationships I thought it was particularly bold and mayhap foolhardy for folks to do the equivalent of labelling themselves as drug users or at least “pro-drug”. I find this aspect of social software fascinating. I have already begun to notice how a blog collapses the various facets of one's character as one tries to serve different audiences including from friends & family to co-workers & customers.  Adding to this delicate dance by exposing ones relationships from the mundane & innocent to the illicit & illegal to all and sundry including your boss, co-workers, business partners and any random person with an Orkut account is probably more than I can stomach. That doesn't change the fact that there is somewhat of a voyeuristic thrill navigating some of these relationships. I just wonder how many private and business relationships have been or will be started or ended on the strength of some of the things discovered by navigating the various friend-of-a-friend links between various individuals.

By the way, the rest of Warren Ellis's criticisms of Orkut are also ones I share so I'm including them below instead of repeating them myself in poorer prose

It's coping pretty well as it starts taking the weight of several thousand early explorers. Most of whom, if they follow the accelerating process that's left Friendster a relative wasteland and given Tribe a bit of an echo, will be out of there again in a few weeks. It's faster than Fuckster and Tribe, but it shows that all these friend-of-a-friend things have really hit a wall. I mean, what can you actually do aside from invite all your friends and piss about on a couple of small message boards? Message boards that, unlike Tribe, allow anonymous postings and therefore devalue the message board experience? What happens after that? After you've gotten all your friends in -- whom you send email to or IM regularly in any case, presumably. That's it. All done. Until, I guess, yet another social network system opens and you start all over again. These things want to be a hub for your Internet community experience, but they're just not necessary enough. Tribe gets closest, but it's nothing you're going to leave as an open window on your desktop all day. The first new social network system that builds an IM program into its structure may have a shot...

And that has to be their goal. I mean, who builds a social network system that doesn't want people to use it all the time?

If services like Orkut and Friendster were part of portals I was already using such as Yahoo! or MSN then I'd probably stick around but as standalone sites they just don't make much sense. Maybe part of their goal is to get bought by bigger companies who hopefully can figure out what to do with them [which seems to be the case with Orkut] in which case it looks like the dot bomb era isn't quite dead yet.


Categories: Ramblings

February 3, 2004
@ 06:22 AM

My work machine has a toasted harddrive, my TiVo's hard drive is also toasted which will cost $100 to get replaced under warranty, my cable splitter is busted so I can either watch cable TV or use the Internet but not both, I've had to manage the fact that first feature I designed from scratch for the next version of System.Xml was optimized for the wrong scenarios and should probably be pulled from beta 1 of the .NET Framework, and I just found out the Deli next door simultaneously stopped carrying both Mike's Hard Iced Tea and Bacardi Silver O3 since it looks like I was the primary customer buying either beverage.

I fucking hate Mondays.


Categories: Ramblings

Thanks to Ron Green for pointing out some problems with the recent RSS Bandit installer. Attempting an installation on a machine that didn't have RSS Bandit installed previously failed.  Also an empty docked panel showed up in the UI on successful installs. Both issues have been fixed and the installer has been refreshed.  

As usual you can download RSS Bandit from here.

By the way there was a feature missing from my list yesterday.

FEATURE: Can post to your blog about a specific entry using a plugin that launches w::bloggar (if installed on the machine).

That's it. Hopefully this should now work for everyone.


Categories: RSS Bandit