Sites that should die

I really thought sites like this didn’t exist any more. Ads everywhere, animated gif ads at that, narrow content, tacky icons and a mid-sized content spread over 6 pages. Jesus. I clicked the “Print version” icon of an article hoping to be taken to a plain text version all on one page that might actually be useful to me.

Who was I trying to kid? The print version, once you’ve clicked it, appears in a new popup window with the same animated gif ads and tacky colour icons as the normal page. It even retains the article index, which takes up an entire inch and a half column on the left that stretches the length of the page, but get this – because the content is now all on one page, there’s nothing in the index so the space is just completely wasted and the content forced into an even smaller space! The only difference from the normal page is that you lose the main site banner and main navigation and the content is all on one page. Of course, since this window is in a popup so is only half as wide as your main browser window, you don’t really gain anything at all except you don’t have to click “next page”. Absolutely dire.

I think the thing that really tickles me though, is that what lead me to this site was a link to one article in particular, titled “XHTML 2.0 Explained“; the bad experience I’d had so far whilst just trying to read the article didn’t fill me with the greatest confidence. I’ve got to say one thing though, and that’s that if you’re writing about HTML, or XHTML, you really should at least try and validate. There are situations where you can’t, and the validator isn’t perfect, but really – there are limits. At least they remembered to use a DOCTYPE.

Atom over XMPP

Finally! Now that Sam Ruby‘s sent it to the atom-syntax mailing list and Mark Pilgrim‘s b-linked it people are finally *finally* beginning to take notice of this.

I genuinely think that this is the most exciting thing you could possibly want to do with Atom.

stpeter, ralphm and Bob Wyman (and probably others) have been working hard on getting pubsub into a workable and working state, developing software that uses it, and feeding back into the spec process. It’s been a joy to watch.

I already have a hacked version of Syndirella which I use that uses pubsubxmpp to connect to pubsub.com’s XMPP delivery service (via JEP-0060) and then parse the Atom content using Atom.NET and provides the items to the user completely transparently. It just looks like any other feed except that it’s updated by push, not pull, and is updated in real time – when a new article is published, that’s when I’m reading it.

(Ideally I think I’d have a hacked version of FeedThing to do this instead, just because it would mean an app that could actually redraw without me noticing, but that would mean dusting off my c++ and I’m not quite that desperate yet. 😉

This is a big step towards my perfect aggregator. In fact, if Atom starts supporting the concept of a “read state” on items then I could implement a proper distributed aggregator system using Atom over XMPP as its core extremely easily.

I can’t wait.

Oops, stpeter points out that I should also have credited pgmillard, who actually wrote the pubsub spec! Sorry about that Peter!

New MSN transport for Jabber

James Bunton has completely rewritten the MSN transport for Jabber in Python using the Twisted framework which has built-in support for Jabber.

This looks to not only clear up long-standing bugs and memory leaks with the original msn-t but also comes with far better installation instructions (in wiki format no less so you can edit them yourself) which go all the from installing Python and Twisted on Windows, Mandrake and Debian to writing the configuration files you’ll need.

I have two MSN accounts and so use two MSN transports (msn.here.dk and msn.jabber.zim.net.au) and at only one of them tends to be up at a time so I’ll be looking at running two PyMSNt instances on my jabber server (jabbernet.org) so I can reduce the reliance on external services (also it means it’ll be in my own best interest to keep them running). With the new useful instructions it should be any easy job. I’ll let you know. 🙂

Virus strikes!

The Internet Storm Center has published a chart showing the historical trends in probes from Internet worms. The frequency is up to about 20 minutes, which means that if you connect an unfirewalled, unpatched new Windows XP machine to the Internet and start downloading the patches to protect you from worms, you will be infected before the patches have downloaded and installed.

I’d just like to back this up with my own experience – last week my girlfriend got a new laptop. We connected it to the net to download the latest virus updates for Symantec AntiVirus and before it had finished the machine was already infected. It wasn’t anything serious and it was a quick job to clean up but nevertheless it was still a problem that, if things continue as they are, will only get worse with time, especially for people who don’t know what they’re doing and have no idea of how to get the latest virus updates.

Joy to the world

It’s fairly rare that I mention anything actually personal on here, but at the weekend two of my best friends got married to one another. The weather was glorious and the day really couldn’t have been any better.

I was kept pretty busy as an usher but still managed to take a couple of pictures during the day.

criticising atom

I always feel really bad when I criticise Atom, here are people using their own time (and time is money) to drive a project they think is worth it. I think it’s worth it too. I think Mark Pilgrim summed it up quite neatly yesterday Really Simple Syndication is really only simple if you’re doing it incorrectly and a usable alternative would just be so good to have.

The flip side (because there’s always a flip side) is that I want it now. I want to use it now. I want it working as a drop-in replacement for RSS now. I’d give my eye teeth to be able to drop RSS 0.9 and 2.0 today. But of course I can’t. Atom’s at 0.3. It’s well defined, and progress is being made, but I want the syndication format to build up steam so I can replace my RSS.

Of course I could contribute. I could drive it forward by contributing. Anyone can contribute. Except that in all honesty, I’m a dumbass. I have no idea how to write a Pace, let alone a good one. I have no idea how to argue a point at an intelligent enough level to have the rest of the mailing list nodding their heads in agreement. So I don’t.

So what to do? Forge on ahead and write extensions (like the way Mark uses the rel=”via” for his b-links, and writes an article on xml.com about it, even though it’s not in the spec?) and hope aggregator authors include enough of your work for it to become part of a de-facto spec instead of de-iure? Or fastidiously only use elements which are only in the spec, and wait for changes before you can use something you would already be able to use in RSS?

I feel sure the list would say “if you need something that’s in RSS, use RSS” but basically, I don’t want to. Maybe I should just use RSS 1.0 for everything until Atom’s at such a stage that it can actually deal with my demands? But what a hassle. *sigh*

Syndirella with Atom and a question about comments

For a bit of fun the other day I sat down and added Atom support to Syndirella using the Atom.NET library. This was just as much a learning experience for me, since I’ve never used C# before, nor got into the nitty-gritty of writing applications for Atom, despite following all the conversations around it.

Adding basic support turned out to be surprisingly easy, and took me around two hours – someone who already knew C# could probably have done it in half an hour or thereabouts.

What’s caught me out more than anything is how items are supposed to link to their HTML comments page.

RSS 2.0 has an item <comments> subelement of <item> which points to the URL of the comments for a particular item. Easy enough.

One of the wfw namespace elements is wfw:commentRSS which contains the URI of the RSS feed for comments on that Item (although Chris Sells’ alluded-to specification appears unreachable, Roger Benningfield’s explanation is good). Again, easy enough. Which brings us, naturally, to Atom’s interpretation.

In Atom, a comment is an entry (example). I think I’m safe in saying that’s the way it’s going to stay. There is no inherent differences between a comment on a post and the original post itself in an Atom feed (see the feed for one of Sam Ruby’s posts for an example – and hey, whilst we’re looking at that feed, that alternate rel link looks wrong to me – surely it should be href=”/blog/1813″ ?).

The LinkTagMeaning page on the Atom wiki shows that the link tag is being slightly overused. In fact, looking (when I originally wrote this post!), there’s discussion about it even now on the Atom mailing list. In the case of comments, there’s a proposed rel value of “comments” which points to [a]n Atom Feed for all comments on just this entry, which seems like a drop-in replacement for wfw:commentRss. But is there where it should be? And if, as the recent discussion seemed to indicate, it won’t be, then were will it go? And what should people who want to do this kind of thing now do? Just forge on ahead? Wait? How long? I don’t know why, but for a project which started so long ago, it seems as though there’s a lot of stuff I still can’t do in Atom that I can in RSS.

Flickr feeds

I don’t know when they started, but Flickr provides photo feeds in both RSS 2.0 and Atom! Hurrah! Maybe I should splice my own feeds together after all?

The problem is I now have various elements of me with feeds: my blog (Atom feed), what I’m listening to (RSS 1.0 feed), my bookmarks (RSS 1.0 feed) and my photos (RSS 2.0 or Atom feed). So if I want to splice, which way do I go? Do I convert everything to Atom? What benefits would I, as a publisher, have if I did that? Or should I convert it all to RSS 1.0? In theory that would mean I could do “interesting” things with my RDF data, but what could I actually do?

My biggest target at the moment is providing comment feeds for my posts. If I publish RSS 1.0 or 2.0 I can use the wfw:commentRss to provid a feed for post comments easily enough (Phil Ringnalda is probably the best known blogger who does this well, just look at his RSS feed, although it seems very RSS 2.0 and very non-RDF), but what about Atom? Sam Ruby currently posts a feeds per-post which include comments but there’s no differentiation between his original post and the following comments in both his RSS feed for a post (example) and the Atom feed for a post (example). Rubbish.

Feed splicing

I’ve been keeping my eye on FeedBurner since it came out, but I never really had a use for it. When they announced a partnership with Flickr I was pretty impressed, and yesterday I finally got around to actually taking a look into splicing the atom feed for this blog together with my flickr photos (there really aren’t many, don’t get excited) to produce an RSS feed. It was very interesting.

As soon as I’d done that, I instantly wanted to splice my blog feed, my del.icio.us bookmarks feed and the BBC “On This Day” feed together. But you can’t. I admit I was pretty disappointed, I’d got pretty excited about the possibilities – instant stitching and republishing of any N feeds would be amazing!

Exactly why you can’t do it is explained on the FeedBurner weblog today:

you should be able to splice your blog feed and moblog feed together, but you probably shouldn’t splice major media company’s news feed into your blog feed and then pump ads into the feeds. That would be what we call “problematic.”

Aha, yes now. That would be a good reason. I hope they work out how they can do this, because whilst I could write an app to take an arbitrary feeds and republish them as one, I really don’t want to have to. I want some magic on the web to do it for me. Surely that’s the point of all this decentralised stuff, isn’t it?