I’ve put a page of hacks up; just somewhere for code
snippets and minimal programs, hopefully of use to others. Hacks so far:
download-files.pl is a relatively
smart file downloader, intended to watch for occasionally–changing files, that
also gives me a nice excuse to rant about
the state of RSS readers’ HTTP implementations.
One obvious culprit is
which is getting
right, but totally ignoring
Expires and overoptimistically checking twelve times as frequently
Dave Winer had some interesting ideas about
dynamic choice of
ttl (RSS’s equivalent of
but obviously this stuff doesn’t work if clients ignore it.
Yes, there’s also room for smartness on the
but that doesn’t let you ignore the server.
(If I was
I’d suggest that this interplay of declarative/predictive timings somehow
linked in to the whole
Worse by far is
now. It’s not making conditional requests at all, and is fetching a fresh
new copy of my feed every time it checks. Okay, it’s only a preview release, but
you’d expect browser authors to have a better grasp of HTTP than this.
If we’re being pedantic (we are), it’s also getting its
RFC 2616, section 3.8: it’s
token ["/" product-version],
not the ‘
that’s being sent
getting this right is a shibboleth of pedantry.
And there’s something delightfully archaelogical about Opera’s quirk of
announcing itself as
“Netscape Navigator’s development codename, but with a later version
because they couldn’t change the token (actually, really Internet Explorer
pretending to be Netscape), except really it was Opera
One day someone’s going to need to spoof Opera.).
Pithy moral: the web’s an ecosystem, and its ongoing success depends on the steady correction of even minor problems like these. Mechanisms that foster this (automated patches and updates, open source and public bug tracking systems) are a Good Thing.
Real moral: I get angry when I see broken things. (Time, again. Could be significant.)