November 25, 2003
@ 09:30 PM

I'm probably the last geek in the US to have seen Matrix Revolutions and like most I'm of mixed minds about the experience. On the one hand as an action flick the movie isn't bad but as a Matrix sequel there are just too many issues with it that will probably prevent the multiple repeat viewings that I have enjoyed with the previous two movies.

Looking at the comments on the recent Slashdot poll about Matrix Revolutions it seems most people had to come up "deeper meanings" for the movie to prevent watching it from seeming like a waste of money. I've tried but I can't, as a Matrix movie it was anti-climactic especially after the confusing roller coaster ride that was Matrix Reloaded. Like everyone my beef is with the large number of unanswered questions from the previous movies. The paucity of martial arts fighting in this movie was also a minus.

However, if this was the first movie in the series I'd seen I'd probably have considered it a good movie.


 

Categories: Movie Review

The LiveJournal FAQ states

All journals on LiveJournal have an RSS feed, located at a URL of the form http://www.livejournal.com/users/exampleusername/data/rss/, where "exampleusername" is replaced by your username.

Only the 25 most recent entries are displayed on this RSS feed. Protected entries are visible if the user requesting the RSS feed is able to authenticate with LiveJournal and has permission to see the entries. For example, if you view your RSS feed in your browser while logged in, you will see all your most recent entries in it. However, someone who is not logged in, or someone you do not list as a friend, would not be able to see any protected entries in the feed. For most RSS aggregators and newsreaders, this will mean that only public entries are included. This is because they generally do not provide any means of cookie authentication.

I can't tell which stuns me more the fact that LiveJournal implemented an "authentication" mechanism that requires RSS aggregators to reuse steal cookies from your browser instead of using well defined HTTP authentication mechanisms or the fact that they implemented this ghetto authentication mechanism knowing full well that most aggregators don't support it.

Based on my reading of the FAQ, a user has to login via the website then somehow pass the cookie sent from the server in the HTTP response to their aggregator of choice which then uses this cookie in HTTP requests for the RSS feed?  All this, instead of password protecting the RSS feed using standard web practices?

We just got a feature request to somehow support this in RSS Bandit but it seems so wrong to encourage this broken design chosen by LiveJournal that I'm tempted to refuse the request. Is there anyone else subscribed to a LiveJournal RSS feed that thinks having this feature (the ability to view protected LiveJournal feeds) is important? So far, I believe this is the first LiveJournal specific request we've gotten.


 

Categories: RSS Bandit

Via a post on Don Box's weblog I noticed that quotes from my weblog have been used to further an incorrect assumption about Microsoft's technological direction with regards to XML technologies in the future versions of Windows (aka LongHorn) and other products.

Steve Gillmor writes

A key inducement for migrating to Longhorn is WinFS. FS means future storage, and the scheme is a new file storage system that will make it easier to store and find data. Instead of leveraging the XSD standard, Microsoft designers rolled a new schema language to handle WinFS' new capabilities
...

Clearly, Microsoft wants developers to create tomorrow's applications on Longhorn and WinFS. Right?  So why did Dare Obasanjo, program manager for .Net Framework XML schema technologies, have this to say: "The W3C XML Schema Definition language is far from being targeted for elimination from Microsoft's actively developed portfolio." Obasanjo listed a dozen Microsoft products using XSD, including "Yukon," Visual Studio .Net, "Indigo," Word, Excel and InfoPath

The last three form the core of Office System 2003, which Bill Gates touted as the strategic development platform for the near future at the New York launch. With Longhorn still far away, Microsoft is asking developers to invest in XSD for now—only to have to unlearn and migrate when Longhorn appears in 2006.

As several people have pointed out WinFS schema and XSD do completely different things. A few people have suggested that Microsoft "embrace and extend" XSD to make it suitable to describe WinFS types but bitter experience has shown that this course of action usually leads to confusion amongst our customers and recrimination from industry watchers. In the words of Chris Rock, "You could drive a car with your feet if ya want to, that doesn't make it a good  idea!".

However Steve Gillmor's piece does point out the fact that the next couple of Microsoft releases targetted at developers will be bringing a number of new technologies for developers to learn and there will be pushback from those who don't see why they have to adjust to the changing landscape. Just today, I got an email from someone who pointed out that users of data access technologies in the .NET Framework will now have almost half a dozen distinct query languages to chose from when retrieving data including OPath, XPath, XQuery, and SQL. There are reasons why each one exists

  • OPath is an object query language
  • SQL is a relational query language
  • XPath is a dynamically typed language for addressing parts of an XML document
  • XQuery is a statically typed language for performing sophisticated queries on one or more XML documents.

However stating it bluntly there are twice as many query languages that will exist whenever the next version of SQL Server & Visual Studio ship than in the last version (OPath & XQuery are the new comers). I suspect that much the same way Steve Gillmor is writing "the sky is falling" style articles about the fact that there will be a schema language for describing WinFS types seperate from that for describing XML documents (yet as Mike Deem points out no seems to be asking why not use SQL 'CREATE TABLE' statements to define WinFS types) there will be similar complaints about the amount of choice we are giving developers with regards to data access technologies and query languages.

Sometimes I wonder whether developers would prefer an Über-language with everything and the kitchen sink integrated into it. Would developers really prefer that instead of having divergent query languages we just had one (i.e. SQL) with proprietary extensions for the different data domains which was used ubiqitously everywhere to query XML documents, in-memory objects, relational databases, text files, etc? If reporters like Jon Udell and Steve Gillmor are to be believed then this is the preferred approach to building software since on the surface people get to reuse their skills except that things will work differently than they expect. I'm actually curious to hear from developers who read my weblog as to which approach they think is preferrable. For example, should one use SQL to query relational databases and XPath/XQuery for XML or should SQL be the universal query language used by all with any additions needed for XML querying being grafted on to it in most likely a proprietary manner? 

This inquiring mind would like to know.


 

Categories: Life in the B0rg Cube

November 23, 2003
@ 01:11 AM

Last night a went to an Irish bar with a couple of friends to watch the Rugby World Cup. It was a well-fought match that went into overtime with a number of tense moments eventually resulting in England being victorious over Ireland Australia . The price of admission was a bit steep ($20) but raucous bar atmosephere was a fun way to watch my first rugby match. It reminded me of American Football with no pads and soccer-isms like "offsides", "throw ins" and "free kicks". The fact that the ball could only be moved forward by running or kicking which explained all the backward passes was also quite different from American Football. Definitely an interesting experience.

Last weekend I was at the Drunk Puppet Nite which also turned out to be an interesting experience.  Although, the fliers make it seem like it's all puppet shows there were at least three dramatic pieces without puppets of the nine or ten I saw. The quality of the show ranged from very good to abysmal. Some of the puppet shows were funny because they were well done (the one with the kid whose talking toilet convinces him to steal laxatives so he can get to "eat some butt chocolate")  while others were because they were so poorly done (two guys who seemed to have been tripping off of acid with hand puppets arguing about who ate what from who's refridgerator) . Other aspects of the show were just plain weird, for instance the scene that consisted entirely of two matronly women at a church service [complete with choir music in the background] who ate bananas in a very suggestive manner. The show cost $15, considering that this is the price of two movie tickets or three movies from Blockbuster I'd say that price was a little steep and $10 would be more fair. In definitely, beat sitting around the house though.

On an unrelated note, one thing that connected both nights in my mind was that at both events I was the black guy. Just me, no other persons of African descent were in the audience. I'm completely used to it now but often wonder if it shouldn't bother me in some way.  

Anyway, I'm off to get a haircut.


 

Categories: Ramblings

Robert Scoble writes

We talked about a bunch of things. I laid out some things that I'd like to see RSS become. I'm gonna talk to Dave about that.

For instance, I have a vision of a day when every single Microsoft employee will have a weblog. Now, what happens when you have 55,000 people weblogging inside of a corporation? Well, for one, I want to see weblogs in different ways? Why shouldn't it be possible to see results from a search engine in order of where you are on the org chart, for instance? So, how can you match RSS data up with your domain data that's stored in Exchange and/or other corporate data stores?

How about seeing data from corporate webloggers based on revenues? Or other metrics?

Also, one thing I miss is being able to tell readers what I think are my most important items.

A number of these features have nothing to do with RSS, although I've seen several people claim otherwise. Scoble's post is just the most recent. Lots of people (including myself) see RSS news aggregators as being a step towards building a universal information aggregator. The closest thing to universal information aggregators that exist today are Personal Information Managers like Microsoft Outlook. At it's most basic description, Outlook is a mail reader meaning it nows how to use SMTP to send messages from one server to another; and how to retrieve messages  using either POP or IMAP. However over time Outlook has evolved into my primary interface to accessing information about people I interact with in a daily basis. I usually ask Outlook questions like

  1. Where are all the messages I've received from person X [about topic Y]?
  2. Where all the messages I have to respond to in the next Z days?
  3. Where are all the messages I received between date A and date B?
  4. Who is person X in my organization (who's his boss? what is his title?) 
  5. What is person X's schedule like for today or for the week?
  6. What meeting rooms are available for today or for the week?
  7. What do I have scheduled to do today?
  8. What is person X's phone number or email address?
  9. How do I let everyone who sends me a message know that I'll be on vacation?
  10. Show me internal discussion forums or mailing lists about topic X?

All of this functionality is exposed in a consistent user interface and it is hard for me as an end user to tell whether SMTP, IMAP, POP3 or whatever else is being used to service these requests. This is the same direction I believe people will want to go with news aggregators especially when I read some of the forward thinking feature requests that come from people like Marc Canter and Ray Ozzie. Even though at its most primal, an RSS news aggregator is a client that polls for messages in RSS format using HTTP there is a lot more functionality people want from want from clients.

The obvious (and in my opinion the wrong) way to solve these feature requests is add a lot of extra yet optional functionality to the base protocol, RSS. However using the Outlook example, it is clear that one doesn't need to completely go this route to solve the problem after all not all 10 of the pieces of functionality I described above have to do with SMTP (although a lot do). 

There are two reason's why I find WinFS interesting when it comes to build a universal information aggregator. Both of which have been pointed out by Mike Deem, the first is that  WinFS will be an item store which means that it will be possible to store abstract concepts such as "person" or "contact" on your file system as opposed to just concrete files such as buddylist.xml. The second is that WinFS's schemas play an even larger part in making WinFS what it is. The idea that there will be a common schema for “Person“ and “Document“ and “Album“ that can be shared, and extended, by thousands of Windows applications. The really important thing is having a shared concepts and schemas for both local applications and globally networked applications. Being able to actually store a person's contact info, weblog posts, mail messages, schedule and more on the file system and have these all linked together without the limitation that they all have to be the same file or that one must tie their client application to a database products makes developing a lot of the functionality I get from Outlook or that Scoble would like to get from an RSS aggregator much simpler. Being able to retrieve a calendar event from the Internet as XML either via some XML Web Service or HTTP GET then map that to a local concept of a calendar event on my machine which could then be used across applications would be very useful.

Of course, WinFS is currently at a stage that people like Diego Doval would call vaporware so this is just supposition on my part from reading Mike Deem's blog and conversations we've had as opposed to stuff that actually will ship in a future version of Windows. Even then the programming model may leave much to be desired, e.g the following code snippet from Mike Deem's blog

For example, to find all the people who live in the New York metropolitan region, you would write code like the following:

Person.FindAll(“IncomingRelationships.Cast(System.Storage.Contacts.HouseholdMember).Household.OutgoingRelationships.Cast(System.Storage.Core.ContactLocations).Location.MetropolitanRegion = ‘New York’“ );

So needless to say it isn't a slam dunk that "WinFS will solve all our problems" but I think the general ideas and functionality it brings to the table could prove very useful. In the meantime, I plan to hack the features I believe should be in a universal information aggregator client into RSS Bandit and will work with likeminded souls in moving the state of the art in that direction.


 

Categories: RSS Bandit

In his recent article entitled Binary Killed the XML Star? Kendall Clark writes

Many XML proponents and users came out of various binary exchange and format camps, and they are very unwilling to return to what were for them, or so it would seem, dark days. In this case, however, given the real power of those who most seem to want a binary variant -- including Sun, IBM, and Microsoft -- they may have to adopt a carefully tactical plan to limit the damage, rather than preventing the fight completely.

This claim by Kendall Clark seems to contradict the conclusions in the postion papers provided by both Microsoft and IBM at the The W3C Workshop on Binary Interchange of XML Information Item Sets.

IBM's position paper concludes with

IBM believes that wherever possible, implementations of the existing XML 1.x Recommendation should be optimized to meet the needs of customers. While we expect to see non-standard binary forms used internally within certain vendors’ implementations, including perhaps our own, we are not yet convinced that there is justification to standardize an interchange format other than XML 1.x. We thus believe that it would be premature for the W3C to launch a formal workgroup, or to recharter an existing group, to develop a Binary XML Recommendation

Microsoft's position paper concludes with

For different classes of applications, the criterion (minimize footprint or minimize parse/generate time) for the binary representation is different and often conflicting. There is no single criterion that optimizes all applications. Consequently, a binary standard could result in a suite of allowable representations that clients and servers must be prepared to receive and process. This is a retrograde step from the portability goals of XML 1.0. Furthermore, the optimal binary representation depends on the machine and OS architectures on each end — translating between binary representations negates much of the advantages that binary XML has over text.

Besides the position paper from Microsoft there've have been many comments both in Weblogs and mailing lists from Microsoft people against this movement for a standardized binary XML format (oxymoron that it is). There have been weblog posts by myself, Joshua Allen and Omri Gazitt (all of whom work on XML technologies at Microsoft) decrying the movement towards binary XML and thus potential fragmentation of the XML world.

There have also been a number of posts by Microsoft employees against  standardized binary XML on mailing list such as XML-DEV some of which have been quoted on Elliotte Rusty Harold's Cafe con Leche XML News website

I fear that splitting the interop story of XML into a textual and Infoset-based/binary representation, we are going to get the "divide and conquer" effect that in the end will make XML just another ASN.1: a niche model that does not deliver the interop it promises and we will be back to lock-in.

--Michael Rys on the xml-dev mailing list, Tue, 18 Nov 2003

XML has succeeded in large part because it is text and because it is perceived as "the obvious choice" to many people. The world was a lot different before XML came around, when people had to choose between a dizzying array of binary and text syntaxes (including ASN.1). Anyone who tries to complicate and fragment this serendipitous development is, IMO, insane.

--Joshua Allen on the xml-dev mailing list, Tue, 18 Nov 2003

Unfortunately, it seems that Kendall Clark must have missed the various discussions, weblog posts and the position paper where Microsoft's view of the importance of textual XML 1.0 were put forth. 


 

Categories: XML

November 18, 2003
@ 08:46 PM

Robert Scoble writes

Rob Fahrni answered back and said "Scoble's on one of the best teams inside Microsoft." I've landed on a good one, yes, but I totally disagree that it's the best. I've seen tons of teams that are doing interesting things. By the way, he says Visio is a failure? Well, does the Visio team have any webloggers? Does it have an RSS feed? How are you supposed to sell software if you don't have a relationship with your customers?

On the surface it reads like Robert Scoble is claiming that if you don't have a blogger on your team nor an RSS feed then you don't have a relationship with your customers. This is probably the funniest thing I've seen all week.

Scoble's post reminds me of the Cult of the Cluetrain Manifesto article by John Dvorak. It's always unfortunate when people take a bunch of decent ideas and turned them into near-religious beliefs. Being in touch with your customers in an informal and accessible manner is nice but it isn't the only way to communicate with your customers nor is it necessary to make you successful.

I love my iPod. I love my TiVo. I love my Infiniti G35. I love Mike's Hard Lemonade and Bacardi O3. None of these products have official webloggers that I'm aware of nor do they have an RSS feed for their websites that I'm subscribed to.  Furthermore, if competing products did it wouldn't change the fact that I'd still be all over the my iPod/TiVo/G35/etc.

Blogging and RSS feeds are nice, but they are the icing on the cake of interacting with and satisfying your customer needs not the end all and be all of them.


 

Categories: Ramblings

Elliotte Rusty Harold writes

In XSLT 1.0 all output is XML. A transformation creates a result tree, which can always be serialized as either an XML document or a well-formed document fragment. In XSLT 2.0 and XQuery the output is not a result tree. Rather, it is a sequence. This sequence may contain XML; but it can also contain atomic values such as ints, doubles, gYears, dates, hexBinaries, and more; and there's no obvious or unique serialization for these things. For instance, what exactly are you supposed to do with an XQuery that generates a sequence containing a date, a document node, an int, and a parentless attribute? How do you serialize this construct? That a sequence has no particular connection to an XML document was very troubling to many attendees.

Looking at it now, I'm seeing that perhaps the flaw is in thinking of XQuery as like XSLT; that is, a tool to produce an XML document. It's not. It's a tool for producing collections of XML documents, XML nodes, and other non-XML things like ints. (I probably should have said it that way last night.) However, the specification does not define any concrete serialization or API for accessing and representing these non-XML collections. That's a pretty big hole left to implementers to fill.

The main benefits of XQuery are as a better way to retrieve data from one or more XML documents than previous methods (i.e. a better XPath) not as a way to transform one XML structure to another (i.e. XSLT). I assume that if Elliotte Rusty Harold isn't familiar with APIs that provided XPath as a standalone language such as the .NET Framework's XPathNavigator, the Oracle XDK, or Jaxen since all of these provide a way to get atomic values (number, string, or boolean) as well as nodes from querying an XML document.

Similrly, there is no well defined way to serialize the results of performing an arbitrary XPath on an XML document. The tough parts for implementers aren't atomic values or XML fragments as Elliotte Rusty Harrold describes both more mundane things like attribute values. For instance consider the following document

<test xmlns:e="http://www.example.com" e:id="1" />

queried using the following XPath expression

/*/@*[1]

which returns the first attribute of the document element. How would one serialize these results? There are a bunch of options such as

  1. e:id="1"
  2. {http://www.example.com}id="1"
  3. @e:id="1"
  4. {xmlns:e="http://www.example.com"}id="1"

All of which I could argue are valid serializations of the attribute node returned by that query. By the way, the .NET Framework uses the first serialization if one calls XmlNode.OuterXml on the XmlAttribute object returned by executing that query on an XmlDocument object.

So what's my point? That the situation Elliotte Rusty Harrold bemoans as being unique to XQuery has always existed with XPath. Even more, as Oleg Tkachenko points out there is an  XSLT 2.0 and XQuery 1.0 Serialization draft recommendation which specifies how to serialize instances of the XPath 2.0/XQuery data model which even resolves the question about how one would serialize the results of the query above

It is a serialization error if an item in the sequence is an attribute node or a namespace node.

Short answer, you can't.


 

Categories: XML

Mike Sanders says that businesses are clamoring for web based apps:

SEPTEMBER 29, 2003 ( INFOWORLD ) - Web applications rule the enterprise. That's the indisputable conclusion to be drawn from this year's InfoWorld Programming Survey. Despite directives from Microsoft Corp. and others that developers abandon server-based HTML applications for fat desktop clients, the ease of "zero deployment" through the browser continues to win the day.

Only a fool what count Microsoft out. But only a fool would ignore what businesses are proclaiming loudly from their desktops - we want more browser apps now

[via James Robertson]

One of the biggest problems I face as a Program Manager is that product teams often focus on features instead of functionality. Since Microsoft is very developer-centric it is very easy for us to focus on the implementation details of customer requests instead of focusing on their requirements and business cases. The job of a PM is to ensure that we focus on the latter instead if the former.

The InfoWorld article and the subsequent comment by Mike Sanders are examples of concentrating on features ([D]HTML applications) as opposed to functionality (zero deployment applications).

The primary message from the InfoWorld article isn't that users do not want rich client applications like Mike Sanders implies but that they'd rather have zero deployment than a rich client. The main lesson I take away from this isn't that users do not want rich client applications but that if one plans to provide a rich client solution then it should be a zero deployment solution as well*.

* In today's world, this typically means using Flash or Javascript.
 

Categories: Life in the B0rg Cube

From Microsoft Announces Availability of Open and Royalty-Free License For Office 2003 XML Reference Schemas

Microsoft Corp. today announced the availability of a royalty-free licensing program for its Microsoft® Office 2003 XML Reference Schemas and accompanying documentation. ... Microsoft's new Office 2003 versions of Word, Excel and the InfoPath (TM) information-gathering program utilize schemas that describe how information is stored when documents are saved as XML....

To ensure broad availability and access, Microsoft is offering the royalty-free license using XML Schema Definitions (XSDs), the cross-industry standard developed by the W3C. The license provides access to the schemas and full documentation to interested parties and is designed for ease of use and adoption. The Microsoft Office 2003 XML Reference Schemas include WordprocessingML (Microsoft Office Word 2003), SpreadsheetML (Microsoft Office Excel 2003) and FormTemplate XML schemas (Microsoft Office InfoPath 2003).

The biggest gripe when Office 2003's XML support was announced was that the schemas for WordprocessingML (aka WordML) and co. were proprietary. This was reported in a number of fora including Slashdot & C|Net news. I wonder how many will carry the announcements that these schemas are available for all to peruse and reuse in a royalty free manner?

Update: On C|Net news: Microsoft pries open Office 2003

Update2: On Slashdot: Microsoft Word Document ML Schemas Published


 

Categories: XML