The Google Wake-Up Call

by Micah Dubinko
February 23, 2005

„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

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

A Renaissance of rel

The 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
XHTML Friends
specification. Tantek, incidentally, now works for Technorati, a key
player in the revitalization of rel.

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
the 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
specific name nofollow was
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
alternate names:
noendorse and
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
of various
flavors. It
differs in a key respect, though; while folksonomy efforts give
power to authors at all levels, nofollow favors those
with their own websites.

Here’s how 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
and spammers.

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 nofollow is
actually reducing comment spam.

Web Application (for real this time)

Ever since March 2001, when the Mozilla project enabled XML
, 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 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.

XML BeLux Schema

A series of XML Schema workshops with the industry experts, including
Priscilla Walmsley, Eric van der Vlist, and Rick Jelliffe.

Semantic Technologies for Publishing Managers

This conference is coming up in New York on March 9.

Ten new XQuery family

Jonathan Robie reminds us of ten new XQuery-family documents recently
published, all available from the W3C Technical

New and Updated Tools

Topologi Markup Editor
and five

Documents and Data

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

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:
: This must-read
document is now a W3C Recommendation.

Bloated monster



Kommentar verfassen

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

Du kommentierst mit Deinem Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )


Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )


Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )


Verbinde mit %s