Simon Willison’s Weblog

Entries in Feb, 2003

Filters: Type: entry × Year: 2003 × Month: Feb ×

Problems in Nirvana

Simon Phipp is Chief Technology Evangelist at Sun, and recently participated as a speaker on the “.NET Nirvana” Geek Cruise. His blog entries covering the event make interesting reading. To cut a long story short, after a couple of presentations on Java web services and open source coftware the Microsoft contingent at the event requested that he be barred from attending an evening Q & A. Simon makes the following observation:

[... 228 words]

Blogging and journalism

I’ve been pretty much ignoring the whole “Blogging vs Journalism” thing but recently I’ve begun to understand what the big fuss is about. One of the most popular arguments put forth by journalists concerned by competition from blogs is that the information contained therein isn’t as reliable thanks to a lack of an editor to check facts. Rubbish. I can’t remember the last time I read a technology article in the main stream press about something I have more than a passing interest in that didn’t have at least a few errors. Some of the blogs I read on the other hand are written by subject matter experts—these people are not being paid to knock out 750 vaguely relevant words on a breaking story, they are voluntarily providing their insights because they are heavily involved with the topic at hand.

[... 308 words]

Quasar usability

I had my first ever Quasar (otherwise known as laser tag) experience last night with the Bath University Computer Science Society (BCSS). Due to various misunderstandings our booking failed to materialise, but Quasar were very nice and said we could play against another group at 7.30pm. They failed to mention that the other group had an average age of about 9. Suffice to say it was an entertaining match, which we won by a very small margin (little kids spend all day running about; lazy students don’t).

[... 424 words]

PHP5 Preview

A great preview describing the features we have to look forward to in PHP 5. Proper object reference handling is going to be sweet.

[... 28 words]

Doing forms justice

Dan Loda: Doing forms justice. A demonstration of how labels, accesskeys, fieldsets and CSS can make a form that’s usable, accessible and looks great. He even uses an optgroup in a select box, an element I’ve never seen demonstrated before.

[... 44 words]

Pingback redux

I think I’ve worked out a way of implementing Pingback (or a Pingback-like system) without any need for XML-RPC, <link> elements or custom HTTP headers.

[... 663 words]

Browser detection reconsidered

Leonard Lin on The Folly of Depending on CSS Parsing Bugs:

[... 333 words]

Mail models

Matthew Thomas offers a fascinating example of usability gone horribly wrong (the explanation is provided here). Incidentally, while showing the above to my girlfriend she uncovered an interesting usability issue on Matthew’s site itself— “is this a collaborative weblog then?” she asked, having spotted the Posted by mpt on 2/24/03; 3:51:24 AM text below the entry. Clicking on the name link provided no extra information, bringing up a screen with no useful content at all. I imagine this is an issue with the CMS powering the blog, but it does neatly demonstrate how some CMS features can detract from the unserstandibility of a site.

[... 123 words]

Safe HTML checker

I’ve finally enabled a subset of HTML in my comments. In doing so, I had several requirements that needed to be fulfilled:

[... 227 words]

Slow professional suicide

Al Sparber makes perfect sense in article from June last year:

[... 180 words]

SSH public key authentication

I’ve been having fun with SSH lately. Did you know you can set up SSH so you can log in to servers without having to provide a password? It’s called “public key authentication” and is apparently more secure than using a normal password. You generate a public/private key using a program called ssh-keygen, and store a copy of the public key on the server(s) you wish to authenticate with. When you attempt to log in, the server sends you a message encrypted with your public key—your machine decrypts it and sends back the original message, proving your identity.

[... 194 words]

Python for Java programmers

Python and Jelly: Scripting Power for Java and XML incorporates an excellent introduction to Python and Jython for Java programmers, with a whole bunch of comparative code samples and comprehensive coverage of differences between the two languages.

[... 38 words]

More Python advocacy

Intelligent Enterprise: For all of you unfamiliar with Python, get ready for the “next big thing.”

[... 18 words]

Watch out for Javascript in referrals

Here’s a good reminder why you should always encode < and > as HTML entities when displaying content from an untrusted (i.e external) source: Kasia in a nutshell was hit by a false referrer containing javascript deliberately aimed at hijacking the page the referrer was displayed on:

[... 76 words]

Get a better browser!

Via Scott, this oh-so-true quote from a Microsoft “next-generation technology” consultant:

[... 377 words]

Calendars and crawlers

Douglas Bowman has been having some amusing problems with robots and his calendar. The calendar, visible on every page of the site, automatically adds a “next month” and “previous month” link to allow surfers to browser through the archive in both directions. Unfortunately, Doug ommitted the logic to stop showing a “previous month” link when there were no earlier entries. An enterprising crawler started following the links, and didn’t stop until it had reached 1542!

[... 113 words]

DNS mess

As the recent lack of updates demonstrates, I’ve been getting stuck in to a pretty time consuming new project. It should have launched several days ago but I made a right royal hash of the DNS settings—hopefully everything will be working fine in about 24 hours time.

[... 119 words]

SQL slammer analysed

Robert Graham’s analysis of SQL Slammer cleared up quite a few things I had been wondering about the worm. It confirms that the majority of the infections were caused not by SQL Server (as reported widely by the press) but by the embedded MSDE component, which is far less likely to be patched (or firewalled off from the public internet) than SQL Server.

[... 128 words]

Eric Meyer’s colour blender

Eric Meyer’s Color Blender is an incredibly useful tool for picking colours for a web site. Give it two different hexadecimal colour codes and it will calculuate and display between 1 and 10 “midpoint” colours. It’s fun to play with and great for tracking down that elusive perfect shade of green...

[... 52 words]

Google aquire Blogger

Lots of analysis around the blogosphere today of Google’s surprise aquisition of Blogger. Cory Doctorow’s analysis is (in my opinion) especially worth reading. Personally, I just hope Google do something about Blogger’s revolting archive URLs :)

[... 53 words]

Agent Frank

l.m.orchard has released the code for his oft-discussed personal web proxy in the form of Agent Frank. It looks really neat, but unfortunately as it’s written in Java and I don’t have space on my shiny new Linux install to get Java set up I can’t play with it yet (looks like I’ll have to finally shell out for the new hard drive I’ve been promising myself). Cute logo though :)

[... 79 words]


micro_httpd is a very small Unix-based HTTP server—so small in fact that it is implemented in just 150 lines of C. From the perspective of a relative C newbie the code makes fun reading.

[... 38 words]

Classes for pages

This weekend I started work on my latest web project, further details of which will no doubt follow soon. For the moment I’ll just say that it follows the classic news/articles/users with logins model—basically another small-to-medium sized PHP content management system.

[... 482 words]

Image Drag bookmarklet fixed

Boris Zbarsky offered a fix for my image drag bookmarklet’s problems in Strict doctype pages. The problem was due to Mozilla, when operating in strict mode, refusing to absolutely position elements that don’t have a unit of measurement specified. The bookmarklet now works perfectly on pretty much every page I’ve tried it on.

[... 61 words]

Indexing hypertext

Dorothea Salo explains the thorny problem of indexing (the back-of-a-book kind rather than the search-engine-spider kind) marked up electronic documents. Another example of what my first year software engineering lecturer would call a “wicked problem”.

[... 39 words]

Label elements

Peter Van Djick asks why does hardly anyone use LABEL tags? It’s a very good question—in my opinion label tags, like title attributes on links, are a complete no-brainer. They’re well supported by all modern browsers, completely backwards compatible (in that there are no ill effects for older browsers), great for accessibility and easy to implement. They’re much more than just an accessibility issue—the usability of a form is dramatically increased by the addition of label tags, especially for radio and check boxes where they greatly increase the “target area” for the user to click on.

[... 235 words]

Validity would be nice

In-Valids is an enjoyable rant by Joe Clark chastising the big guys on the web for being completely incapable of producing valid HTML.

[... 27 words]

Nice titles

Stuart has posted yet another inobtrusive DHTML gem—Nice Titles, inspired by a thread on web graphics.

[... 28 words]


Mark invoked the lazy web earlier today in a bid to find a good way of bulk optimizing PNG files. Several people recommended pngcrush in the comments and it sounds like a fantastically useful piece of software—apparently it can run 114 different lossless compression methods on an image and automatically chose the most efficient one.

[... 65 words]

Hashing client-side data

Via Scott, a clever PHP technique for ensuring data sent to the browser as a cookie or hidden form variable isn’t tampered with by the user:

[... 248 words]