The Google Wake-Up Call
"Genius is one percent inspiration, ninety-nine percent perspiration." -- Thomas Alva Edison
This week I'll be looking at some broad developments in the XML world and on the web. Especially in the software realm, new and useful technologies have a way of quietly developing under the guidance of one or a few stewards, sometimes for years, without being widely noticed. Even with a small circle of direct influence, though, these technologies have the subtle effect of priming the minds of those who come across them.
Then one day, some large, visible company does something that takes full advantage of the new technology. Pow! Suddenly everyone's talking (or blogging) about it. All the pieces were already there, the company merely put them together in a clever and highly visible way.
One company that is making this a habit, not to mention fitting the description of "visible", is Google. Let's see what influence they've had on XML lately.
A Renaissance of rel
rel attribute has been a part of HTML for a long
time, though sadly neglected for much of its life. Added to a
hyperlink, it specifies a relationship embodied in or by that
link. One of the pioneers of increased
rel usage was Tantek Çelik with his work on the
Network specification. Tantek, incidentally, now works for Technorati, a key
player in the revitalization of
Google entered the fray by not only helping to develop but also,
more importantly, to evangelize a tiny
specification that has come to be known as
nofollow, based on the value that goes inside
rel attribute. In short, a link with
nofollow will be ignored for the purposes of Google's
PageRank™ algorithm, or similar systems, presumably to
discourage spammers from plastering automated comments across
unsuspecting weblogs. As we will see, it has more far-reaching
Community reaction was swift and intense. Almost universally, the
criticized, as commentators pointed out that the
spec says nothing about whether or not a spiderer
will follow the link, only whether to analyze it. Some
unrelated. Others had deeper objections.
In any case,
nofollow is here now and reasonably
deployed. In some ways, it is akin to other folksonomy efforts, like voting or
differs in a key respect, though; while folksonomy efforts give
power to authors at all levels,
nofollow favors those
with their own websites.
nofollow shifts the balance of power on
the web. Imagine you create a weblog to talk about cameras, or your
novel-in-progress, or whatever. Since you are ultimately responsible
for all content on the site, your role is that of
editor-in-chief. If you decide to allow comments, you add a lower
level to the authorship food chain. Now Google's advice is to have a
default of a
nofollow badge on all such contributed content. Of course, as editor-in-chief,
you can disregard Google's advice, or implement it selectively, perhaps such
that only unauthenticated users get
nofollow. This gives more web-shaping
power to the editor-in-chiefs of the world, at the expense of ordinary users
As a side effect, this encourages folks to start their own
weblog. If you want your voice to be heard, become your own
editor-in-chief. Conveniently, Google offers just such a
service. The jury's still out on whether
actually reducing comment spam.
Web Application (for real this time)
Ever since March 2001, when the Mozilla project enabled XML Extras, it's been easier to build cross-browser web applications. A key component of this toolkit is XMLHttpRequest, a script-accessible API for reading and writing XML "behind the scenes", without the usual full-page reload associated with web applications. (See the XML.com article by Drew McLellan, "Very Dynamic Web Interfaces", for some ideas about using XMLHttpRequest.) Typically, though, this capability had been underutilized. Not any more.
GMail did wonders for demonstrating the power and responsiveness possible in a web application. Google Maps goes even further, though it retrieves its XML via a hidden iframe technique instead of XMLHttpRequest. The Google Maps jaw-dropper is the user interface; smooth panning, zooming, useful keyboard support, all things you'd expect to see in a conventional desktop app. Once again, there's nothing entirely new here, just an outstanding assembly of existing pieces. Expect to see some revived technical competition among mapping web sites, as well as nearly all other interactive web services (in the general sense, not SOAP and friends).
There is a minor downside: Under the hood, Google Maps transforms and renders incoming XML with client-side XSLT, which isn't currently working in Safari and Opera. This style of development makes frequent use of code branching based on functional detection, and yes, lots of testing.
Another useful data point is that Mac users (via Firefox in this case) embrace Google Maps. If the same application were written as a cross-platform executable, it's likely that Apple User Interface loyalists would have been up in arms, demanding something with the specific look and feel of other OS X applications. Applications that run in the browser are judged against different rules. This alone could be an advantage for development, beyond the usual reasons like zero-install and letting someone else worry about backups.
A question in the minds of many is whether it takes Google-like resources to write these kinds of web applications. Plenty of evidence says "no". Powerful web applications like Flickr, Mappr, and even Verity LiquidOffice have been developed by much smaller client-side teams. The primary challenge is working in large volume with ECMAScript, which has to be treated as a full programming language. Typically, increased interaction with a server will be part of the application as well. Smaller, focused teams will be able to accomplish great things.
Dale Carnegie's book How to Win Friends and Influence People recounts a story about how Charles Schwab, working with one of his steel mill managers, was able to overcome a lull in production. He simply chalked a "6" on the floor, representing the output of the day shift. The overnight shift became motivated enough to produce a "7". Seeing that, the day shift pitched in, ending up with a proud "10" chalked on the floor. The mill went from worst producer to best producer.
We're seeing something similar today in the web applications sphere. As a result of Google's showy displays, lots of developers are getting inspired to new heights, and lots of great technology is getting to the mainstream.
Births, Deaths, and Marriages
Announcements from the XML world since last XML-Deviant.
A series of XML Schema workshops with the industry experts, including Priscilla Walmsley, Eric van der Vlist, and Rick Jelliffe.
This conference is coming up in New York on March 9.
Ten new XQuery family drafts
Jonathan Robie reminds us of ten new XQuery-family documents recently published, all available from the W3C Technical Reports page.
New and Updated Tools
Documents and Data
Also in XML-Deviant
Various quotations and statistics from recent XML list activity.
Henry Thompson offers his personal insight into XML Schema design decisions.
"Not all databases are backward enough to store dates and numbers in binary format" - Rick Marshall
Back of the envelope for xml-dev (Feb 14-20): 150 posts by 51 posters; the top four posters sent more than one-third of all messages. 40798 words, 2335 sentences, overall readability grade level: 11.2.
Character Model for the World Wide Web 1.0: Fundamentals: This must-read document is now a W3C Recommendation.
Bloated monster sighting.