Imported From Epistula web development XML

ESF's second birthday

In the great and powerful world of weblogs, anything older than a week, that has vanished into the archives, is dead, gone, and will never be seen again.

Well, almost. ESF appears to have reappeared on people’s radar, and since today is exactly two years (and one month, damn) to the day that I released the spec, I thought it might be time for a little retrospective on why it existed, why it still exists, and where it went.

Well, like a small child with a paintbrush, it went everywhere. Plugins and templates exist for almost every major weblogging tool (Including an MT plugin just to create the required date format) and an increasingly scary number of minor ones. There’s even a feed reader for it (Which has, irritatingly, “extended” the format to allow a text description, which is somewhat against the spirit of the format). Oh, and a CPAN module to create and read it. I’m absolutely freaking amazed by all of this. I created the format for two main reasons:

  1. I was annoyed at the syndication wars
  1. Epistula needed it.

    The second was the actual reason for all this. I wanted a basic format to include a list the last x items of a section without hitting the database each time. I wanted to use an existing feed format for that, but really didn’t want to touch XML parsing with a sixty-foot pole at that point in the system. Because I was – and am – a *nix Admin, the most natural format for me to put this in was something approaching the classic news/mail format, which has passed data between systems for decades without needing to involve XML. I swapped the colon-separated format of that with a tabbed-based format, mostly because anyone using colons in a title field can be forgiven, but anyone using tabs has larger problems already. Hash marks marking non-parsed items is traditional, and after that it really just built itself.

    The two technical decisions it comes under fire most often for are that it sets the mime-type to text/plain and that it uses Epoch time format, both of which I’d probably do differently if I were to write ESF mk2. The mime-type was chosen because it really *is* just a text document, and can be read as such. Also, I’m not sure creating a new mime-type for a tin pot format is at all responsible, and it was never really meant to go as far as it did.

    The date is less excusable. When I was doing background reading for all this I saw that for every method of displaying the time, there were three or four variations to be detected accounted for (From the case of the time/date delimiter to the order of the pieces), so I fell back to the one format I felt was most common to all languages, Unix’s default Epoch time. Of course, this doesn’t allow for any kind of time zoning and isn’t actually supported by MT, so in future I’ll stick to the ISO standard (And indeed for Aquaintances Feed Instances – something of a natural successor to ESF, though it never got released – which was a mail/news based format for single articles, I used the ISO standard).

    So it’s this first, this hatred of the XML based format wars, that got Epistula published. I fully accept that anger is an incredibly bad reason to put a new specification into the wild, and is the fountain of fuckwittery from which a number of the recent syndication debarcles have spewn forth, and this was September 2002, when RSS 0.92, RSS 1.0 and various variations were appearing, all incompatible, all increasingly difficult to parse (And I really don’t like XML modules), and I didn’t – and don’t – want full content feeds. So I created a brand new format with thin slivers of metadata that shouldn’t ever break the bandwidth-bank, wasn’t ever going to change (Scout’s Honour) and, above all, could be parsed with a regular expression or two.

    The problems haven’t gone away. Bloglines’ Web Services Thingy is helping to solve the bandwidth problem, but the more I watch Atom’s development, the more it worries me as it gets more and more complicated, and more and more things that feeds will have because one day something will come along to support them.

    ESF is the simplest thing that could possibly work, and that’s why it exists.

Imported From Epistula Those who evolve Work

One Week

I arrived at 11:00 on Monday.

I’d started at 06:00. One bus had failed to be where I thought it would be, another had recently had it’s timetable changed not to stop at our stop, and I had no idea where any of the buses I want to catch stopped. Eventually, I got to where I wanted to be, and took a taxi across Bedford.

The new office is a single huge room. No dividers, no offices. There’s a kitchen, a conference room and a Room of Junk, but the main room where everyone works (Everyone, directors, coders, admins, designers) has no divisions between people, which is slightly odd. I have my Headphones of +5 Deafness To Anything Else, though, so I’m all right.

When I went in I was pointed at a nice new desk with a nice new computer under it and two nice new monitors over it (Mmm. Xinerama) and I was handed a selection of distro disks. I opted for a download of Ubuntu instead because in a work environment I don’t want to have to explain why I’m waiting for the new release of Gnome to compile for half the morning (Which is a problem with Gentoo) and the new machine is an AMD64, so I wanted a proper 64 bit install.

The AMD64 is, by the way, terribly, terribly nice. Linux on the Desktop is still not quite as there as people seem to think it is, esspecially when it come to just being able to pick a text editor (The “Choose your default text editor” dialog is broken in Gnome 2.8 (Which I’m not sure how could have made it into a release, but never mind). A couple of things (like Wine, for example) won’t work under AMD64 yet, so I’m having to live without the office-default time/task tracking thing in favour of the web-based interface.

Most of the rest of the week was spent learning how the office works, how the software works, and where I fit within both. Surfice to say I’m doing Cool Things that – once again – I shall mention when and if I’m allowed to do so.

The only blot on the horizon is the commute. Getting from Bedford to Hitchin and back again is fairly easy, and takes about an hour. But from Letchworth to Hitchin – which is about 10 miles up the road – typically takes about half an hour, and never arrives within half an hour of my connection. So I spend half an hour getting 10 miles, another half hour waiting for the bus, and a final hour getting to Bedford.

General effect of this is that I have to get up at 05:30, and don’t get back until 20:15, leaving me an hour, maybe two, before I have to go to bed again. And it’s this that’s currently killing me.

So, Learning to drive next month, then.