October 2002
Compared to the long straight organized roads through endless
flat prairie of Alberta, even British motorways look like a maze
of twisty little fog-bound lanes... let alone the back-streets
of London or Oxford. I’m surprised tourists
from North America don’t get claustrophobia.
Alas! What photos I took are on Jamie Lokier’s
digital camera in far-off Bristol. Well, I say far-off,
but in Canadian terms it’s trivial, of course.
I managed to throw my back out getting the suitcases lined
up ready for driving to the flight home—one moment
I was putting down Jeremy’s black bag, the next
I was all curled up in agony. Luckily I was able to
unkink enough to hobble in to the car using a chair as an ersatz
zimmer frame. The airport at Calgary loaned me a wheelchair so
I had no trouble getting through check-in and customs. At
Gatwick the wheelchairs have small back wheels, which means the
occupant cannot wheel themselves, and instead must put up with
being pushed around by an attendant. This infuriates my sister
Kate no end. (She cannot use her own chair at the airport
because wheelchairs have to be checked in as luggage.)
I have also discovered that those electric golf-cart things
are not as fun to be driven around in than you might hope.
Still, I am
recovering my mobility now.
In an earlier note I listed
four namespaces used in
RSS and RSS for the same element names.
One of these has now been unmade: the RSS specification never explicitly
mentioned the namespace, but the sample file included an
xmlns
attribute. While I was away in Canada,
this was
removed to ensure backward compatibility with
RSS 0.91. This makes sense (there exist examples of
applications that genuinely are broken by this), but is kind of icky.
There is still the old RSS 0.9 format—which did use its own
namespace—but given that even RSS 1.0 did not preserve that, I think
we can assume it is dead too. I assume that the programs
that were broken by the fleeting addition of the RSS-2.0 namespace are
also incapable of parsing RSS-1.0 data?
I just tried printing a copy of the RSS 2.0 spec., but
because he chose to use a fixed-width table for the text, it is
clipped all down the right-hand side of the page, making it
useless. Goddammit!
Update (2002-10-14):
I have removed the namespace declaration from
my experimental RSS feed.
The
TAG
rejects HLink, not many dead
scream the headlines. Is this the end for XHTML 2?
What’s XHTML 2? It is the next step in the bridge
from HTML 4.01 to the futuristic world of
‘pure’ XML documents. XLink is a recommendation
from the W3C for how XML documents should express links to other
resources. HLink is a new proposal from the XHTML committee for how
XML documents should express links to other resources. In
effect, they are saying that XLink is inadequate and they need
to replace it. TAG
have
expressed an opinion that XLink should be used instead,
presumably on the grounds that we don’t want to have
two W3C recommendations for one and the same thing.
Can XLink replace the special-purpose linking attributes in
HTML? I suppose we can imagine replacing img
and object
tags with something like
<object
xlink:type="simple"
xlink:show="embed"
xlink:actuate="onLoad"
xlink:href="myLogo.gif"
width="400" height="300">
My Logo
</object>
In principal the first three attributes (which would be the same
for all images) can be given default values in the DTD. This is
the approach used in SVG
and MathML.
The problem is that it
prevents the XML document in question from being stand-alone.
That is, the DTD must be downloaded and parsed before the
document can be rendered. SVG fudges this; SVG documents often do
not have DOCTYPE
s, and SVG viewers
in effect use a DTD compiled in to the software. All very messy.
There’s another problem: the HTML tag img
also allows for URIs for the low-res version
(lowsrc
attribute), a long description
(longdesc
), and an client-side image-map
(usemap
). XHTML 2 also wants to add an
href
attribute to all elements (so any element in
the document can be a link). I’m not sure that XLink
defines xlink:show
values for all of these. Even
if it does, we cannot have more than one simple XLink link per
element (since we can only have one xlink:href
attribute). We could possibly follow the same system as XTM, with one child element per link:
<object style="width:400px; height:300px;">
<source xlink:href="myLogo.gif"/>
<usemap xlink:href="#logoMap"/>
[My Logo]
</object>
(Here we are assuming that the DTD is used to generate default
values for the other Xlink attributes—but do we really
want to rely on all XML browsers being validating
browsers...?)
The question is, will this work? Yes, if we are using a
specialized XHTML-2-savvy browser (one which understands
object
and source
, and knows how to
interpret them). If the aim is to make XHTML 2
implementable using only XML + CSS 2 + XLink + XBase, without
making XHTML a special case, then the answer is no.
The upshot of this is that, if the
W3C want to make
XHTML 2 just another XML format, displayable in a generic
XML browser, then it looks like XLink is not quite right for the
job. It may well be that I am missing something, and the
above example can be reworked to work with XLink. It might be
that lowsrc
and longdesc
are dumb
features that no-one wants to carry over in to XHTML 2
anyway. But my naïve understanding of XLink and the nascent
XHTML 2 suggests that the XHTML working group might have a
point.
How is this going to end? Right now it looks to an outsider
like the question is being discussed less in terms of technical
issues like what XHTML’s goals are, and more in terms of
committees and procedure and politics and such-like. We may end
up with an XHTML 2 that requires a specialized XHTML 2
browser (requiring upgrades to existing browsers that recognize
the XML namespaces or the DOCTYPE
, or any of the
other stupid heuristics in use today to distinguish different
flavours of HTML). The dawn of XML as a fully-fledged hypertext
mark-up language will delayed by a few more years...
I really should not be writing about this—I have
plenty of other things to work on. I just find it
difficult to tune out all these arguments about XHTML when
that’s what I work with every day...
Mark
Pilgrim announced a RSS validator, and much to my chagrin my
RSS feed
didn’t validate because the date format was wrong
(I omitted the time-of-day part, which is mandatory in RFC 2822).
This after I had carefully investigated RFC-2822-format
dates specifically only a few weeks later. I have now
fixed this and my
RSS feed validates.
Proposal
for Extremely Simple Syndication (XSS), a profile (a
restricted subset) of RSS 2.0,
proposed by Tim Appnel (tima)
[pointer from Mark
Pilgrim]. This is the same acronym as I timidly suggested for the
successor to RSS 0.92. I had started on
something I was going to call XSS myself, but tima’s is
headed in the same direction, so I should probably just
withdraw my inchoate drafts to prevent any confusion...
I had started drafting a proposal myself, but in the end
I don’t have time to do it properly (my evenings at
home should be spent on the CAPTION
web-site...). Oh, well. Excuses, excuses.
On the subject of things I don’t have time to do: Lars
Marius Garshol points to a treatment of
RSS data in AsTMa=. (AsTMa= is a linear notation for Topic Maps). I would
like to do a proper treatment of interoperable syndication data
in topic-map format, but, again, no time...
Dave
Whiner asks that people not use variations on the
white-on-orange XML icon (used to link to RSS data). So
I have changed the link on my pages to use the
‘standard’ image.
An information system for one’s mobile phone. A lousy
user interface, partly necessitated by the small form factor.
And every second counts, because it is charged by time, not a
per-byte or flat-rate fee.
Therefore, obviously, WAP is only useful for information
I really need, and which I need right now,
and for which I cannot simply go home and use my usual
internet connection. Such as, to pick a topic at random, train times.
So it was I found myself in Lydney
yesterday (Sunday). Lydney might or might not be a lovely
village, but from the train station all you see is a few
house-backs, a bus graveyard, a rusty wrecked car, and two
doorless brick shelters. The paper timetable listed no trains
for over three hours. We wanted confirmation before
wandering off to look for a pub. The Railway Enquiries number
(0845 748 4950) was busy. In desperation I thought
I’d see if WAP could manage the job. My Virgin phone has
two links marked Travel. Both lead to adverts for
special offers and no actual information. In the end, after
twenty minutes of wandering through the menu structure and
gritting my teeth at tiny progress indicators, I found
Google. Google found several train timetables, including one
Dutch one, and (amazingly) a 500 error page or two. One of them
worked. Praise Google!
WAP does have a link to PocketBeer.com, which
located the nearest pub—in another village–but when
I tried to follow a link to a page with the pub’s
address, I got a 500 again. Argh.
It was very cold and windy, and Jeremy and I were still
dressed in the clothes we wore to her sister Ellë’s
wedding, not to mention clutching a bouquet of very exotic
flowers.
In the end it was the much-overlooked press-button information
point that supplied the most authoratative and useful
confirmation of the train times. It also warned us that,
because of severe weather, train times were liable to change.
By happy chance, someone else pressed the button for the other
platform, which alerted us to a train we had overlooked in the
opposite direction, which was much earlier than the one we were
interminably waiting for. It would at least take us to a
station in an actual city, with the prospect of food, hot
drinks, and maybe even a warm room to wait in. So we worked out
an alternative route. Pressing the button again, we discovered
the message had changed—the robot apologised profusely for
cancelling the train we had just decided not to catch. We were
aware of some fallen trees on the way to the station, but this
was this was the first indication of just how badly the train
system was affected.
WAP, despite being accessed via a device that knows my location
to within a hundred metres, is incapable of delivering such
locally specific information. (Even the pub guide requires that
I enter the name of the town using the keypad.)
0845 748 4950 is similarly useless: you can press 1 to
enquire about the weather, but it is organized not
geographically, but according to the companies that run the
services. Useless, in fact.
In the end the journey home, which took 3 hours total on
Saturday, took twelve full hours (Taxi from the hotel at 11:30,
bus from the Oxford train station arriving 23:30). The
Lydney–Goucester leg was the most dramatic, actually
having to stop at an apple orchard because the wreck of one of
the trees had fallen over the line. I have never been so
pleased to see Didcot Parkway train station.
My RSS 0.9x feed failed to validate
after my last entry—because I included an HTML 4
character entity in the title. (I used
—
to create an em-dash.) This is OK for
HTML, but forbidden in RSS. I have fixed the script that
generates the file so it converts these entities in to the
corresponding Unicode character. Sorry for any inconvenience.
My back-burner project for the CAPTION web site is something
that I shall give the working name of Picky Picky Game.
This game will work in rounds, with everyone able to vote for
a picture from this round at the same time as people are
submitting pictures for the next round.
The idea is that we make a comic strip out of
the favourite pictures from each round.
A round might last a week or a month (depending on how often
people submit new pictures), so I want to make it a
configuration parameter. The code I was working on today
was the routine that works out the current round number, given
today’s date, the start date, and the period. For example,
if we had 2-week rounds and had started on 1 January 2002, then
we would today (2002-10-31) be in Round 21.