The Lost Gospel of Judas

I can feeel a rant coming…. I’ve just watched The Lost Gospel of Judas on Channel 4 (a UK TV station). I thought this could be a really interesting program, examining the evidence for it being true or not. Instead it was 60 minutes of speculation, tension-building (”Could this be…”) and tedious reconstructions.

Why is it that whenever there is a question up for debate, the lone voice against perceived wisdom is given as much airtime and weight on TV than the generally held viewpoint? In this case a lady from an American university, going against 1700 years of Christian tradition, was given a prominant position to put the view that the gospel of Judas was another valid telling of the gospel story with equal weight of that in Mark or Luke - that it should be read alongside them but had a different role, being advanced level material (ie if you were a clever Christian you’d read and understand it).

Bollocks to that. While their main thrust appeared to be that “There were many different Christianitys around following 30+ gospels and they were slowly crushed”, there was no weight given to the fact (yes this is one of the few facts around!) that the gospel of Judas was written by gnostics. Well to be fair to them one male scholar commented on how gnosticism was considered heresy by Christians, however this lady continued to push the point that they were just another branch of Christians, who Irenaus was jeleous of and so wrote out of the Christian story (one man’s heresy is another man’s choice, implying that therefore Christianity today is not valid and yadda yadda yadda).

Now I am not theologian or old testament scholar, but to have gone on the wrong track for nearly 2000 years seems pretty damn impressive. There’s plenty of evidence that gnostics were considered heretics by the mainstream Christian church back at the start as well; not that there was an equal split and both were compatible. Most scholars consider gnosticism not the be part of Christianity but its own sect.

Oh, and Happy Christmas all :)

Facebook and XHTML Strict

Facebook proudly declares itself to be XHTML 1.0 Strict via the doctype embedded on every page. However, as anyone who has had a peek at the source code will be able to confirm, this is not even wishful thinking but a downright lie. Forget the usual “I’m trying to be valid but a few mistakes are bound to creep in” problem (which is as far as I often get); these guys are defining custom attributes, repeating ID tags and not escaping ampersands in URLs.

I was digging into the “Invite friends to an event” page because I wanted to see how the “Invite Friends on Facebook” search was so responsive (I tried something similar a few months back and gave up). Turns out it’s extremely simple, but makes huge use of custom attributes on tags. Validating the page gave me over 300 errors.

Two points:

  1. Why should anyone care?? Facebook have created something amazingly popular with sort-of a web 2.0 interface and it works in all major browsers. Who can complain about that? Well, I’m going to. Leaving aside issues of ‘That’s not fair!!’ because they’ve taken a pragmatic approach that got the job done fast and which I wouldn’t be happy using, the point of standards is to be a standard. If Facebook don’t have any intention of being valid XHTML 1.0 why claim to be so? What happens in the future if browsers tighten up? Is Facebook only looking to the short-term, until someone purchases it and its founders’ profit?
  2. Could everything Facebook have done be done without custom attributes, or are they a necessary evil? Looking at it I’d say it can all be done without, but some of the Javascript code would be more complicated and tied to the HTML structure (having to get certain data from child elements).

Incidentally Facebook could have the best of both worlds: extend the XHTML doctype to allow these attributes and have valid code at in the process!

Google Base Documentation error

For anyone else who’s read the Google Base XSD file and is wondering why an Atom 1.0 file created against this specification won’t validate if they use PayPal - it’s because that attribute, despite being in the XSD, isn’t in the live schema.

Just to add to the mess, the XSD file and  documentation also say that price_type can only have two values: “negotiable” or “starting”.  However if you create a product entry via the online interface on the Google Base website, you can set the price_type to “Fixed”.

This begs the question - what are they validating against?  What is the point of having an XSD file if it’s not there for validation?

Google Base is rough at the edges, and it’s a shame they didn’t put more work into it before releasing it.  I miss certain features, such as fetching an XML feed of products from my website rather than having to upload the file to Google Base.

When accessibility excludes everyone

I’ve just been looking round for a prospective client who wants an open blog on their site (I know… bad idea), but is bound under the UK DDA which prevents the use of inaccessible graphical captchas.

In the same week I’ve enabled limited graphical CAPTCHA’s on Phorum over on sendcard.org. The Akismet plugin was catching the spam well, but I was sick of deleting it manually (currently Phorum can’t delete it automatically). The Postgres mailing list has also been discussing using one for comments in their manual.

At some point common sense has to come into accessibility. I dislike CAPTCHAs (I have good eyesight yet often can’t read them), but they deter the spammer and save me a bit of work (unlike say Akismet, where the spammer keeps on spamming not knowing they’ve been caught, and I have to wade through confirming all are spam). Now which is better… a forum or comment system with a CAPTCHA, or no forum/comment system?

Some people propose asking a text-based question or problem, such as “What is the capital of France?” or “What is 7 times 3?”. There’s a few problems with these:

  • These set up a barrier for dyslexic or dyspraxic people.
  • For people who don’t speak English (or whatever language your website is in, they are difficult if not impossible.
  • They require more effort than reading a list of characters! OK, so CAPTCHA’s are hard to read and require effort, but not mental work. I don’t want to drag my brain onto another topic after writing a post (and I have a physics degree, so it’s not like they’re impossible)

You must have seen the blogs that are disabling comments due to spam. Doing so makes the comments inaccessible to 100% of the people. I suggest that while being totally inclusive would be the best outcome, excluding 1% of people is preferable to excluding 100%.

Update: Jeff Croft wrote a rant on accessibility while I was finishing this, which is worth reading!

Project & customer management software, time tracking and invoicing

As I’m sure many of you have experienced, one of the first challenges when you set up your own design business is keeping track of everything to do, how long you’ve spent on tasks, client and project details, and who’s been invoiced (and not paid).

Being a bit of a software junkie I’ve been looking around for some software to use, which will take care of project & customer management, time tracking and invoicing. To my surprise all the software I’ve found is designed for Macs - iBiz, Studiometry and iRatchet.

Studiometry is the only one offering a version to run on Windows XP, and I’m currently trying it out. The trouble is, it feels like a dead product - the front page of their website announces that version 4 will be released in late July, and it’s now the end of August. I also entered a pre-sales ticket to test the support time, and have had no response in over a week, which is not a good sign.

I also don’t want a remotely hosted solution, such as sidejobtrack. I know hosted solutions are spoken of as ‘the future’ and are becoming increasingly popular but

  • Client data is sensitive data (eg passwords)
  • My internet connection goes down sometimes, or I have to work away from an always-on connection.

A locally hosted solution would be another option (indeed I could write it myself). This time though my reluctance is to do with the interface - I still like the responsiveness and ease-of-use of a desktop application. I also don’t want to spend the time reinventing the wheel. However, I’ll certainly consider locally hosted solutions!

So… what are the options available for PC-based developers? I guess Mac users were the original one-man businesses offering design and development services, which is why they have these programs.

I’m not changing operating system just to use iRatchet - I’ve bought way too many Windows-only software licenses!

What do you do?

Isolationist U.S. Companies [Rant]

This is the first in an occasional series of posts about companies who are isolationist, offer terrible customer service or annoy me in a different way.

First up is Newegg.com. As many of you know, prices of pretty much everything are lower in the US than in the UK. I needed another CompactFlash card for my camera, and someone pointed out that newegg.com are selling a Transcend 2GB 120x card for $38.99. I haven’t found anywhere in the UK near that price, so I visited newegg.com.

There’s nothing on the front page or at the top of other pages to say they only ship inside the US. Having been caught out before, I look at the “Frequently Asked Questions” and “Knowledge Base” at the bottom of the page, to try to determine where they ship to.

I tried these links...

Nothing. That’s good, I must be in luck! A US company that recognises there is a world beyond its shores and the 52nd state of Iraq.

Happy, I browsed back through the site and added the CompactFlash card to my cart. And realised there was no way to select shipping to outside the USA.

Then I saw it, at the bottom of the cart:
IMPORTANT SHIPPING INFORMATION

The small print (literally!)

Why not make it clearer on the site? Why require me to add it to my cart before finding out whether I can have it shipped to me? I fully understand companies who don’t ship outside their country (it’s so much easier to deal with the postal service - no customs declarations etc) but for goodness sake make it obvious from the start if someone arrives from a non-US IP address! It shows a distinct disregard for their brand outside the US, and for potential customers. Perhaps they never tried any user-interaction studies for the site - or spoke to anyone outside the country when designing the site.

Dreamhost Alternative?

I really like Dreamhost web hosting. Featurewise they provide more than any other shared hosting provider I’ve come across, and the freedom you get to install your own programs (trac, PHP, SpamAssassin, Django & Rails) is something I’ve only previously seen on dedicated servers or VPS web hosting (not that I’ve done many of those things, but hey - it’s nice to know it’s possible!).

In recent weeks Dreamhost has been having some problems. Actually that’s an understatement. They’ve been having big problems. Not as bad as the problems my last hosting company had which drove me to leave (at least Dreamhost always have backups to restore), but enough to make me question hosting commercial sites with them.

Is there an alternative to Dreamhost web hosting, that matches the features and freedom available? I’m happy to pay more… although obviously the cheaper the better! I cannot justify the cost of a dedicated server (it’s also too much hassle) and I’ve been put off Virtual Private Servers because the RAM isn’t burstable (I can see myself running out of this fast - many databases and concurrent visitors).

Some of the freedom is unnecesary: if Dreamhost configured their SpamAssassin carefully there’d be no need to run my own instance, so I can live without that.

Some other hosting company must have seen the need for geeky/techie hosting - if not there’s a (demanding) market out there!

Podcasting talks and lectures

Recently I’ve been asked to put a number of talks and lectures online for our local Christians in Science group. The usual structure is to separate the lecture into a couple of audio files; providing a track for the main talk and another for the question and answer session. The last talk had 3 speakers and they wanted 3 separate MP3 files posted online, one for each speaker.

I provide a M3U for people who want to listen to everything, but this time I thought I’d provide a podcast as well, widening the audience reach (hopefully, as talks on Science & Religion aren’t always people’s first choice to listen to ;)). At which point the separate tracks, so handy when downloading via the website, became a problem.

For those not familiar with podcasts, here’s an overview of the structure.

A podcast is effectively a RSS feed for a ‘radio show’ (for want of a better description). It’s also the name given to the audio within it - so “listen to a podcast” is referring to the audio, not the RSS feed :)
Inside the podcast are many items: usually one item per show. The Item will contain details such as the show’s title, a description of the show and other associated details.

Inside each item (yes it’s all confusingly nested) is an enclosure. The enclosure specifies the MP3 file which contains the audio show.

Right. It sounds more complex than it is, but for the discussion coming that structure (RSS feed/podcast -> Item -> Enclosure) will be important.

My problem was that for our local group of Christians in Science, we put on 4-5 events a year. That would suggest each event should be an item. However there are many audio files for each event. Technically you can have many enclosures in an item, but iTunes doesn’t support this feature, which if you care about a sizable chunk of the podcast listeners is a big problem.

So what can I do? Put each audio file in a separate item was my first thought. In a way this makes more sense, as it allows a different description for each speaker. However, if you stumble across one of the files, how will you know it’s speaker 2 of 4 at the event?

This raised another question: what consists of a podcast? I had originally planned to have one RSS feed for CiS-CS listing all events. With multiple items for one event, should I create a separate RSS feed (podcast) for each talk and lecture? Again, that makes sense at one level, but then there’s no way to keep up to date with new talks as they’re posted online, which defeats the point of podcasting in the first place!

So what have I done? I took the coward’s route out, and haven’t put up a podcast yet!

Which approach makes the most sense to you?

So many Javascript libraries…

Having spent two evenings looking at Javascript libraries and not being able to decide which to use (there’s so many of them!) I’m going to throw the question open: which Javascript library do you use and why?

I’ve looked at Prototype, Dojo, Mochikit, JSQuery… they all seem to imply they’re the best and yet do the same things as other libraries. I’ve heard stories about prototype polluting built-in Javascript something-or-others which does put me off. But enough of my views - what do you think?

What am I trying to do?

My goal might have some bearing on the question I guess ;) I’m retro-fitting an old template driven site with a way to specify unique page titles and meta tags and want an ‘edit’ button on each page visible when logged in as an administrator, which when clicked on will open an inline window (or modal window as they’re properly called) and allow me to edit these fields.

There’s also other parts of the site where inline editing would be very useful, for example the photo gallery captions and descriptions.

So far I’ve seen Prototype-based code that would do these, but its style of programming leaves me cold. And for the above fetching the modal window contents via XHR would be fine, but I also want to add a modal window to move images from one category to another. The number of categories in the gallery would make fetching the window contents via XHR very slow (as you’d have to transfer ~200 categories every time). I suppose the best option is to use a hidden div in the HTML page for the window, which means crud on the page.

As you’ve probably noticed I’ve made no mention of how this should degrade. That’s intentional, as I’m the only person using this application and I’m trying to keep things simple(!). Although if the libraries you can recommend would help with this, so much the better :)

Google encourages (unobtrusive) link farms

I use the word link farms, but I could have equally well used ‘partner sites’, ‘featured links’, or ‘popular searches’; all of which are used instead.

You may be wondering what on Earth I’m talking about. Link farms are so last century, the search engines don’t respect them any longer and will likely blacklist your site for using them (or gateway pages). However, link farms are all around and growing in usage. They’re back in a very sneaky form. You’ve probably seen these on sites, like these links that were along the bottom of an antique dealer’s site.

links on an antique dealer site

With Google’s Pagerank putting weight on the number of incoming links, every possible strategy is being used. A site without incoming links is pretty pointless now, particularly if you’re in a highly competitive market such as renting florida villas. So the owners promoting these sites take the opportunity to purchase links from other sites. Sites with irrelevant content. Whole sites built just to provide links to other sites to increase their search engine ranking.

Today it’s nowhere as obvious as the link-farms of yesteryear. Oh no, these guys have learned their lesson. Neither are most computer-generated junk; instead a few of the sponsored links are added to proper-looking pages.

Let’s suppose the search engines agreed this was not a good way to measure popularity (he who buys the most links is the most popular). They would have a problem. How can you tell the difference between a page of content with random links placed at the bottom of the page to purposefully increase search engine ranking and a blog with a selection of random links in the linkblog?

Here’s an example I found which for a computer would (should?) be hard to distinguish automatically:

blog side-links totally unrelated to the content

I don’t want to play that game. To me it feels like match fixing, fiddling the accounts - it just shouldn’t be done. I believe it’s an ethical problem - it may work, but it isn’t measuring whether the content of the site is good, or whether the site provides a relevant match. There’s also the wrinkle that to do well in search engine results, why should I pay people to clutter up the internet with more useless search engine fodder?

As always, your thoughts are appreciated.

Continue reading →