Google Groups and FeedDemon Woes

I’ve been having a couple of issues recently with a Google Groups hosted list that I manage, for which no solutions seem to be available.

Issue #1 – Google Groups Atom Feed id and link attribute broken

I’ve detailed this issue more in my post to the Is Something Broken forum on the Google Groups website, but so far there’s no resolution. Basically the Atom feeds generated by Google Groups generate a id and link attribute that contains a relative link without an FQDN so that when viewed from an RSS reader, the links are broken because the RSS reader passes a URL without an FQDN to the web browser. I hope this gets fixed as it seems like a pretty major problem.

When viewed from Firefox’s Live Bookmarks it works fine, but not otherwise.

The RSS 2.0 feed generated by Google Groups does have an FQDN in the link attribute so it works properly. The “obvious” solution (other than fixing the issue, which is up to Google) is to use the RSS 2.0 feed instead of the Atom feed but that creates another problem.

UPDATE (18/06/2008): As of today, Google seems to have fixed the issue with the Atom feeds.

Issue #2 – FeedDemon 2.7 does not handle the pubDate in the RSS 2.0 feeds correctly

The pubDates in the RSS 2.0 feed seem to be generated correctly, like the following:

<pubDate>Fri, 06 Jun 2008 00:02:27 UT</pubDate>

When the RSS 2.0 feed is added to FeedDemon in synced mode (where it syncs with the Newsgator servers), it seems to ignore the pubDate and pick some arbitrary date for all the entries, and all the entries share this same date.

When the RSS 2.0 feed is added in non-synced mode (where FeedDemon pulls from the feed server directly), all the pubDates are respected and it works properly. In Firefox Live Bookmarks it works properly too.

With the Atom 1.0 feed from Google, the dates are correct in all cases but the links are broken. But at the moment users are in a quandry as there appear to be problems in both Google’s feed implementation and FeedDemon’s parsing of Google’s feeds.

UPDATE (08/06/2008): Nick Bradbury, the creator of FeedDemon has been able to reproduce the bug and has added it to the FeedDemon bug tracking database.

Planet Bohra – The Bohra Pulse

As an experiment, I’ve set up a website called Planet Bohra. This website contains all the Dawoodi Bohra owned blogs that I’m aware of, and aggregates them into a single page that shows them in reverse-chronological order, newest first.

My intent in doing so is to create a site that lets the reader get a feel for the “Bohra pulse”. Our community is so diverse and community members have such varied talents and interests that it’s often both interesting and inspiring to read about others’ thoughts, experiences and views about their areas of interest or expertise.

At the moment the site is new and I don’t have a large number of blogs listed. I therefore ask you to comment with your full name and blog URL if you’d like your blog to be added to the Planet Bohra website and aggregated there.

I hope that it can be a useful resource and invite any comments or suggestions. On my friend’s blog, some comments regarding the setup have already been made, and I do agree with the general sentiment that it’s too disorganised. I’ve not figured out a way to solve this, but at the same time I think that part of the beauty of the site is to breathe in the diversity of thought.

Goodbye Movable Type, Hello WordPress

I’ve moved my blog over from Movable Type to WordPress. The main problems I’ve had with Movable Type are that the comment and trackback handling is confusing and sub-par, and the theme interface is god-awful. I’ve been thinking about making the switch for more than a year but never got around to it because of the daunting task of making sure that all my old permalinks, category and date archive pages have an HTTP 301 redirect to the new WordPress pages.

The most common method for doing this seems to be to maintain the old MT install in parallel with the new WP install and have MT publish pages that have HTTP 301 redirects to the new WP pages. Another alternative is to use mod_rewrite in a .htaccess file. However this is complicated when the MT dirify directive is used because there is no systematic way to translate from the old links to new. So the only “automated” way of doing this was to maintain the old MT install and publish HTTP 301 redirects through that.

I really didn’t want to do this, and wanted to deprecate MT immediately. So I opted for the “low-tech” method of manually coding just over 200 redirects in my .htaccess file. This covered the 186 individual entries, plus the date-based and category-based archive pages.

I assume that having over 200 redirects in my .htaccess file will incur some kind of performance penalty during pageloads, but it’s not noticeable to me. The main advantage is that I can now forget that MT ever existed on my blog and Google and other search engines will transfer whatever SEO karma I had on my old links to the new ones automatically.

MovableType hit hard by Comment Spam

In the last few months, comment spam has become a huge issue, recently culminating in many hosts taking their customers’ MT blogs offline. In related news, Six Apart has hired Jay Allen of MT-Blacklist fame to help them combat comment spam.

I’m hoping that with Jay Allen on board, MT will get some real comment spam fighting tools, including the following:

  1. Integration of supported MT-Blacklist into default MT install.
  2. Addition of a toggle for disabling/enabling comments/trackback in the power entry editing interface, so we can do this in batches.

blog housekeeping

I’ve been doing some housekeeping on my blog over the last few days, and have made a few changes and additions:

  1. In addition to the faux blog post about Firefox that IE users see, I’ve added browser sniffing code to my Firefox sidebar box, which serves different content according to what browser you use to view it. Currently, it’s capable of differentiating between (and serves different content to) the following:
    • Firefox
    • Gecko-based, non Firefox
    • Internet Explorer
    • Opera / Safari / Konqueror
    • Others

    There’s no real reason for this, other than one of the PHP tutorials for beginners happened to cover user agent sniffing at an early stage, so I thought I’d tinker with it.

  2. I’ve added TypeKey support to comments. Later on I might enable comment moderation for non-Typekey enabled commenters.
  3. I’ve added a class to my blog called aebrahim-mozillaAdvertising. Any form of static Firefox or Thunderbird advertising is enclosed within this class. Feel free to do whatever you want with it using userContent.css (or whatever alternate method your browser supports).
  4. I’ve made my blog’s HTTP headers a little more sensible. I’ve added Last-Modified headers to all pages, and added charset=utf-8 to the Content-Type header. I’ve also added Vary: User-Agent to the blog homepage.

UPDATE: I’ve removed most of the advertising because I think it’s annoying.

disabled comments for old posts

Due to increasingly large amounts of comment spam, I’ve disabled comments for posts that aren’t featured on the front page of my blog. If you really want to comment on other posts, feel free to email me and ask for a particular entry to be opened up for commenting. I’ll be more than happy to do that.

I really wish I didn’t have to do this, but given that over 95% of comments on older posts are spam, I feel that I have no choice, since I’m getting sick of logging into MT to delete comment spam.

If any Movable Type developers are reading this, can we please have an interface in the entry power-editing mode for toggling the comment and trackback status of posts? That would have turned what was a 35 minute long task task into a 5 minute long task.

If any comment spammers are reading this, you suck. You take a good thing and spoil it for everybody.

movable type or wordpress?

I now have a real web hosting account with, and am looking to move my blog there at some point in the very near future. However, I still haven’t decided whether to use Movable Type or WordPress.

I’m looking for some input on this decision, and would really appreciate it if people could comment about their experiences with either one or the other, and try and guide me here as to their relative merits.

I should note that I am not interested in hearing arguments about licensing issues. I’m already aware of them, and have decided that they don’t matter to me. I am however very interested in hearing your comments about technical merits, or feature comparisons. Right now I’m leaning towards MovableType 3.0, but that could change.

I should also note that I’m somewhat tempted to stick with Blogger, but the lack of RDF feeds and post categories is somewhat of a damper on that sentiment.

blogger & xhtml 1.0 strict validation

I contacted Blogger about some validation issues I’m having with their Blogger-generated code. They acknowledged the problem, but said that working on it was a low-priority task. I’m reproducing the email exchange below:

Date: Mon, 17 May 2004 18:08:06 -0700
From: “Blogger Support”
To: “Ali Ebrahim (3181470, )”
Subject: Re: XHTML 1.0 is broken on Individual Post Pages
User-Agent: Neotonic Trakken/2.10.3

Hi there,

Thanks for letting us know about this validation issue. Unless they
actually break functionality somewhere in Blogger or are causing true
accessibility issues, they will likely be treated as low-priority.

-Blogger Support

Original Message Follows:
From: “Ali Ebrahim (3181470, )”
Subject: XHTML 1.0 is broken on Individual Post Pages
Date: Thu, 13 May 2004 11:43:28 -0700


The individual post pages contain invalid XHTML 1.0 code, stopping them from validating as valid XHTML 1.0 Strict. This is very easy to fix, as the problems are not complicated.

There are 3 (minor) problems that I see:

a) Many of the links have ampersands in them, but they are not properly escapced as XHTML requires. When you have an ampersand anywhere on an XHTML page as part of the page text or as part of an href attribute it should be sent as ‘&amp;’, not as ‘&’.

b) The 1×1 pixel delete post image does not have an alt attribute. This is required by XHTML 1.0 Strict.
c) Users are allowed to enter invalid XHTML tags in their comments. For example, capital letters are not valid in tags in XHTML, but users are allowed to enter <I>foo</I> in their comments. If they do this, the tags should automatically be converted to lowercase to this: <i>foo</i>.

I know that Blogger has made a big push towards being XHTML 1.0 Compliant, and if you fix these small minor errors, then your pages will validate fully everywhere, as long as users don’t break them themselves.

Ali Ebrahim

more standards compliance

After dragging my feet for a long time, I just made another site I manage standards compliant. Since I’m not going to be maintaining the site much longer, I didn’t really want to invest too much time in my endeavour, so I just made it validate to HTML 4.01 Transitional, and made sure that the CSS validated as well. This now means I no longer manage any sites that are not standards compliant, which is nice :).

I shall have to impress upon the next webmaster how important it is to adhere to web standards. Standards compliance is a Good Thing™, and here’s why. Everyone should be writing pages to be standards compliant. If you’re not, you should :). If you write pages specifically for Internet Explorer, you shouldn’t call yourself a web developer.

xhtml 1.0 strict compliance & site redesign

I was a little bored, so I brought my blog up to XHTML 1.0 Strict compliance (as far as possible) and redesigned the site completely using a new template. The only parts of my blog that are now non standards-compliant are comments that users enter, where they are allowed to enter malformed XHTML (like capital letters for HTML tags), and also certain bits of code that are generated by the Blogger engine, over which I have no control. Hopefully now my blog will render better in browsers like Opera, where it was rendering poorly before.

You may be wondering why I chose XHTML 1.0 instead of HTML 4.01. Blogger made the choice very easy for me. Almost all of the code it generates is XHTML style code (like <img src=”foo” />), which is inconsistent with HTML (which uses <img src=”foo”>). So I chose XHTML 1.0 by default.

Ordinarily for XHTML 1.0 pages, I’d have an opening statement of <?xml version=”1.0″ encoding=”UTF-8″?>, but since this throws Internet Explorer into Quirks Mode, and causes terrible rendering, I forced not to do this.

Hopefully this will also fix the issue that a lot of people were having with the pageload stalling halfway and displaying garbage.