Simon Willison’s Weblog


November 2003

Nov. 1, 2003

Halloween Decorations

Spotted so far:

[... 66 words]

Nov. 2, 2003

That G5 Cluster

Confessions of the World’s Largest Switcher is the best coverage I’ve seen to date of Virginia Tech’s 1,100 Dual G5 Mac cluster, now the third fastest supercomputer in the world and built for a fraction of the price of its rivals. Mac Supercomputer Just Got Faster on Wired has some more information.

Web design and usability guidelines’s Research-Based Web Design & Usability Guidelines lose instant credibility for being available only as a 39.2 MB PDF file [ Update: this statement is incorrect—see my correction ], with all of the usability and accessibility problems that brings with it. I’m on a fast connection here so I downloaded them anyway to have a look. There’s actually a lot of good things I can say about them—the document is attractively laid out, the guidelines clear and easy to follow and each is backed up by references to academic research (hence the title). There are however some guidelines with which I completely disagree, in particular the ones in chapter 4, entitled “Hardware and Software”:

[... 431 words]

Nov. 5, 2003

Javascript Mojo

Stuart Langridge has released a couple of very neat new Javascript experiments. sorttable makes any data table on a page “sortable” by clicking the table headers. I’ve seen this effect used to demonstrate Microsoft’s proprietary “behaviors” technology but Stuart’s solution has the advantage of being standards compliant and working across different browsers. Best of all, it follows the principles of inobtrusive DHTML and hooks in to the markup using only a class attribute.

[... 257 words]

Nov. 6, 2003

easytoggle and debugging in Safari

I’ve been working on a new inobtrusive DHTML effect: easytoggle, which is an inobtrusive implementation of the common effect where links or tabs can be clicked to reveal part of a page while hiding the other parts. It’s similar in some ways to the Multi part forms with Javascript technique.

[... 548 words]

Usability guidelines available online after all

In an earlier entry about’s Research based Web Design & Usability Guidelines I criticised them heavily for not providing an HTML alternative to the huge PDF file containing the guidelines. It has since been pointed out that the guidelines are in fact also available as HTML. I’d like to apologise to the authors of the site, although I would also like to suggest that they add a link to the HTML version from the PDF page. Thanks go to Adam Bramwell for alerting me to my mistake.

Nov. 7, 2003

Multiple Internet Explorers

In possibly the best news web designers will hear this year, Joe Maddalone of Insert Title Web Designs has discovered a way of running multiple versions of Internet Explorer on one installation of Windows! The problem of testing in different versions of IE has plagued developers for years, and it’s fantastic to see a solution that doesn’t involve running multiple partitions with separate Windows installations or shelling out for VMWare or VirtualPC.

[... 204 words]

Nov. 9, 2003

Full page zoom

For as long as I’ve understood the issue, I’ve been an advocate of liquid layouts over fixed widths for web page design. Liquid layouts are layouts like the one used by this site, where the page adjusts to fix the size of the user’s browser window. Fixed widths on the other hand are sites such as where the width of the page is fixed no matter how large or small the browser window gets.

[... 401 words]

Nov. 11, 2003

Innovation chez Orchard

Dunstan Orchard’s great looking blog has had a whole bunch of upgrades, and some of them are pretty interesting. Firstly, he’s taken my blockquote citations script and modified it to handle citations that aren’t links in an intelligent way. He also now has a comment spam blacklist (I really need to work out the syndication details for that and publish some code).

[... 169 words]

Browser testing utopia

10 browsers on one Windows machine, including 5 different versions of Internet Explorer

[... 41 words]

More required reading

Via Craig, Big John and Holly Bergevin present Float: The Theory and Flowing and Positioning: Two Page Models. Both articles take a complex topic and present it in clear, straight forward terms with excellent illustrations and the kind of insight in to browser bugs (in particular the vagaries of IE) that you just won’t find anywhere else.

Nov. 12, 2003

Roundup of roundups

There’s blogging a list of links, and then there’s blogging a list of lists of links:

[... 152 words]

Nov. 13, 2003

The little things

We put together a bookmarklet today that allows our editing staff to jump instantly from looking at a story on one of our web sites to the interface for editing it within our current content management system. It took about 5 minutes development time, plus an extra 15 minutes spent showing it to people, setting it up on machines and demonstrating how it works. It’s hard to over state how well this new shortcut was received by the people who spend hours every day using the system. For end users, a little feature can sometimes go a very long way.

Easy installers for PHP scripts

I tried out FUDforum last night, after Rasmus Lerdorf recommended it in a comment on Jeremy Zawodny’s blog. Feature wise, it’s pretty impressive but still doesn’t quite do it for me—I want something that’s trivial to integrate with an existing authentication system and outputs valid HTML (or XHTML) out of the box. Rasmus says it’s the only board he’s seen that doesn’t have obvious security holes though so it’s probably worth checking out if you need to set up a forum of that kind.

[... 275 words]

Extracting EXIF data with Python

I’ve been rewriting the photo gallery management system for in Python. One of the new features is that the system can automagically extract caption and photographer information from the photos, provided the information has previously been added to the jpeg file as EXIF data. I tried several methods of doing this but eventually settled on because it worked straight away using a simple process_file() function and doesn’t require any additional software. Recommended.

The good and the ugly has a new feature on their search page—a really nice implementation of an auto complete text widget in Javascript. Even better, the search page is valid XHTML 1.0 Strict and uses CSS for the layout. Let’s hope this is an indication of things to the come for the rest of the site, which still mostly consists of tag soup.

[... 368 words]

Nov. 14, 2003

Click Maps

I’m not a very visual person; complex entity relation ship diagrams, data flow diagrams and the like are usually completely lost on me, and I try to avoid them when they are mandated by coursework at University. Give me a text based SQL schema any day. Click Maps on the other hand I could learn to like—they’re nice and straight forward and solve the very real problem of planning how different parts of a web application will link to each other.

An apology

It turns out that the Javascript on mentioned previously was not deliberately obfuscated to protect the code from prying eyes; it was merely compressed to reduce the size of the script. See this comment for further details. I’d like to apologise to the maintainers of for jumping the gun on this issue. Incidentally, the unobfuscated code is now available in CVS.

Nov. 15, 2003

Analysing methodologies

Joel Spolsky on analysing development methodologies:

[... 98 words]

High security is low security

Via Crypto-Gram, a great piece from Bruce Tognazzini about how tough security measures can actively reduce the security of a system:

[... 225 words]

Nov. 16, 2003

Linux on the desktop at IBM

Spotted on Slashdot, IBM’s Open Source Desktop—Directions for today... and Tomorrow presentation includes one slide that really caught my attention:

[... 95 words]

Nov. 17, 2003

Contribute hammering FTP servers?

We’re having a problem at work with Macromedia Contribute. We host sites for a number of local companies, and one of them wants to use Contribute to update its site. The problem is that whenever Contribute tries to connect to our FTP server, it opens up 30 simultaneous connections, effectively running a denial of service that prevents other clients from logging in during peak times. I’ve searched the ’net and haven’t found any references to this problem; does anyone know anything about the issue? We’re running ProFTPD 1.2.9 and the client is using Macromedia Contribute 2.

Nov. 19, 2003

Sprint PCS goes CSS

The Sprint PCS site has relaunched, using XHTML 1.0 transitional and CSS. It’s another great example of a mostly web standards compliant commerical/corporate; there are a few validation errors thanks to a quarrelsome CMS. France Rupert is the lead developer behind the new site and is promising a detailed writeup of the process and challenges behind the redesign. France hails from Kansas City, so hopefully we’ll be able to get him along to a web meetup in the not too distant future.

[... 155 words]

Teaching CSS: there’s a long way to go

This email to the css-discuss mailing list does a great job of describing the confusion and frustration that still confronts traditional web developers who are only just starting out on the road to mastering CSS. When you’ve “got it”, it’s easy to forget how much of a paradigm shift it is away from old school table methods. Here’s an extract:

[... 314 words]

Contribute / ProFTPd problem solved

After further analysis of the Contribute problem described earlier, we discovered that Contribute was opening a new FTP connection every time we clicked a link within the application even before we had hit the “edit page” button to fire up the editing mode. Switching the connection over to use SFTP instead of FTP had the same problem, with a secure connection being opened for each link we clicked instead. The connections remained open until we shut down Contribute.

[... 137 words]

Nov. 22, 2003


cgi_buffer is voodoo magic for Perl, Python and PHP scripts that automatically handles a bunch of bandwidth saving HTTP tricks such as Content-Length headers (which enable persistent connections), ETags for caching and GZip content compression. Pretty neat.

Status Notification

Status Notification is a web application pattern from Ian Bicking that uses sessions to solve the problem of how to display simple status messages without displaying whole pages with just a one line message on them or passing a message in a URL. My current project could certainly benefit from this.

Nov. 23, 2003

The underscore hack

Via Web-Graphics, Petr Pisar’s Underscore Hack provides a new way of targetting CSS rules specifically at Internet Explorer on Windows. As with all such hacks, the pros and cons of using this approach need to be closely examined before deploying it. The hack takes advantage of the fact that adding an underscore to the start of a property name causes that declaration to be ignored by every browser except IE for Windows. However, the hack takes the dangerous step of using one bug to solve another. Peter-Paul Koch explained why this is a risky thing to do in a recent column for Digital Web magazine:

[... 431 words]

Perl Slurp-Eaze (via) I once saw an expensive CMS self destruct after $/ was redefined

# 11:51 pm / perl

FunFormKit Quick Start. You wouldn’t believe how similar this is to a system we’ve just created at work

# 11:53 pm

2003 » November