Problems with RSS as it is deployed

I have a some longstanding issues with RSS for example the method for RSS autodiscovery, however the two most important problems with respect to RSS are:

  1. Entity encoding in the <description> element.
  2. Resolving relative URLs.

As I use a decent news aggregator, I don’t suffer from the second problem. The first problem however is something that should interest us all. As Tim Bray notes, entity encoding in the description element and then expecting the encoding to be resolved back is prone to errors. This is due to the under specified nature of the various RSS branches and people just doing it in an effort to crowbar HTML (not necessarily well formed XHTML fragments) into the early RSS deployments.

How to do it right! In order to include even html in your RSS then there are a few steps you need to take.

Step 1: Convert to RSS 1 or RSS 2, earlier 0.9x versions do not support what I am proposing here.
Step 2: Include the <encoded> element from the RSS 1.0 content module namespace, using the namespace prefix “content” as in <content:encoded> will work in more readers.
Step 3: Wrap your content in a CDATA section and put the result into the <content:encoded> element.
Step 4: Ensure the result is well formed XML.

This solution can be used to ensure that the content is included in an element recognised as holding encoded data, rather than the much abused description element. This is the method I use for my own feed which you can take a look at it to get some ideas.

Using the Vera typeface with CSS

As I mentioned yesterdaynew typeface, Vera, has been released that is suitable for open source projects. In order to use it a bit more fully I wrote a quick test page and compared the rendering of each of the fonts in my font viewer program with the fonts used by my web browser, Mozilla 1.3, to ensure that the right font was consistently applied. Below is a short list of each of the fonts and the appropriate CSS font selection properties that will request the desired font.

  • Bitstream Vera Sans.
    font-family:'Bitstream Vera Sans';
  • Bitstream Vera Sans Bold.
    font-family:'Bitstream Vera Sans';
    font-weight:bold;
  • Bitstream Vera Sans Oblique.
    font-family:'Bitstream Vera Sans';
    font-style:oblique;
  • Bitstream Vera Sans Mono.
    font-family:'Bitstream Vera Sans Mono';
  • Bitstream Vera Sans Bold Oblique.
    font-family:'Bitstream Vera Sans';
    font-weight:bold;
    font-style:oblique;
  • Bitstream Vera Sans Mono Bold.
    font-family:'Bitstream Vera Sans Mono';
    font-weight:bold;
  • Bitstream Vera Sans Mono Oblique.
    font-family:'Bitstream Vera Sans Mono';
    font-style:oblique;
  • Bitstream Vera Sans Mono Bold Oblique.
    font-family:'Bitstream Vera Sans Mono';
    font-weight:bold;
    font-style:oblique;
  • Bitstream Vera Serif.
    font-family:'Bitstream Vera Serif';
  • Bitstream Vera Serif Bold.
    font-family:'Bitstream Vera Serif';
    font-weight:bold;

I’ve uploaded the test file I used for the typeface. It includes some lorem ipsum text to help get a better feel for the typefaces.

Back from Holiday!

Yes I’ve been away in Cyprus for a short while, there was some great weather while I was over there and some excellent historical sites to visit. There was also some fun to be had as well as can be seen in the photographs below.

A photograph of me paragliding, this is me taking off Me taking off while paragliding.

A photograph of me paragliding, this is me in flight In flight.

I’ve received a few emails from my contact form where people have asked me something but then forgot to include their email! If you ask me a question make sure you include your email address. I have cleared up my contact form a bit so it should be harder to forget now.

In other news the Vera font 1.10 has been released. Hopefully this will lead to further improvements in the quality of freely available fonts. They are truetype fonts so they can be used with most modern operating systems that I know of, windows users can use them but they are distributed in a compressed format, I got the tar.gzip format, so they will have to use something like winzip to access them. thanks to Russell Beatie for pointing these fonts out.

RSS 1.0 Modules Explored: Taxonomy

In the first of an infrequent set of weblog entries I’ll be briefly exploring the RSS 1.0 modules. The first on the list is the Taxonomy module. The taxonomy module is a way of specifying topical structure within an RSS channel.

The Taxonomy modules has a namespace is referenced by including the following namespace in your RSS document.
xmlns:taxo = "http://purl.org/rss/1.0/modules/taxonomy/"

The modules contains two elements the “topic” and “topics” elements. Use of these elements, and the taxonomy namespace, is not very widespread at present (Syndic8 stats). The taxonomy module has many potential uses however. For example filtering an RSS channel by topic could be an interesting development for a large feeds. Other aggregation strategies could be based upon gathering items from a variety of channels with a commonly identified topic, this kind of meta information is potentially more useful than simple textual analysis to discover similarities, and may enable knowledge discovery even when synonyms to common terms are used. See the taxonomy module details for more information on how to integrate this module with an RSS 1.0 feed.

New Mozilla Roadmap Released

Big news from mozilla, a new roadmap for the application suite has been released. I’m not going into too much analysis of it here, but as far as I am concerned it takes things in the right direction. Rather than bundling everything as one “monolithic application” the new suite is based around separating the components out and thus cleaning up the user interface and easing integration with other applications. Ever since I figured out how to stop Mozilla (the browser) opening mozilla mail instead of my default mail client (Outlook Express) I’ve wished for a simpler UI and better integration with other applications.

So in summary the new roadmap is a good step, I fully support the mozilla teams efforts. This has been coming for a while with the release of the phoenix browsers and the recent information released regarding minotaur.

P.S. To get the default mail client activated use the following in a user.js files (the same folder as your prefs.js file)user_pref("network.protocol-handler.external.mailto", true);

A few useful links though: