Simon Willison’s Weblog

Subscribe

Entries

Filters: Sorted by date

Notepad popups

Ever time I see something like this I’m reminded of how truly irritating the internet would be if I hadn’t switched to Firebird.

Neat tip for clean URLs

Here’s one of the neatest tips for clean URLs I’ve seen yet, from Thijs van der Vossen. He’s come up with a mod_rewrite rule that checks to see if the requested file exists if you add .html on to the end of it, and serves it up if that’s the case. I’m posting the full code snippet here because it’s just too good to risk losing to link-rot in the distant future:

[... 88 words]

More links

Clearing out another several days worth of tabs. Some day I’m gonna get me a link-roll.

A better image replacement technique

Over on Kryogenix, Stuart has solved the CSS image replacement problem with some clever application of the overflow: hidden; property. The Fahrner Image Replacement technique is often used to replace a heading with a background image (see most of the designs in the CSS Zen Garden for examples), but has the disadvantages that it requires an additional <span> tag to be added to the code and that some screen readers which follow the display: none; directive skip straight over the replaced text without reading it. Stuart’s new technique solves both problems, and works in modern browsers from IE 5/Win upwards.

Minor comment system improvements

I should have made these a long time ago: thanks Nat for reminding me ;) Comments no longer require an email address, and provide a proper error page with the comment intact if you forget to enter your name. They also now add http:// on to your site URL for you if you forget to enter it yourself. I added the last feature in the code that displays the comments, so it should fix all of the older comments with invalid URLs as well.

[... 116 words]

Excellent PHP 5 Overview

HarryF’s PHP5: Coming Soon to a Webserver Near You is the most detailed overview of the features we can expect from the next major PHP release that I’ve seen yet.

XHTML for future-proof content

Don Park questions the benefits of emitting XHTML. In one sense, Don is right; publishing a whole site using XHTML in this day and age brings very little benefit and can cause a great deal of grief. But just because XHTML doesn’t provide advantages when publishing whole sites does not mean it should be written off entirely. As I’ve said on this blog many times before, XHTML offers an excellent format for future-proofing site content, especially chunks of content kept in a database. Keith D. Robinson makes some excellent points along the same lines in his latest essay, Standards, Semantic Markup, Distributed Authorship and Knowledge Management:

[... 299 words]

Marketing Firebird

Blake Ross has published a page on Marketing Firebird. He makes an interesting comparison between Firebird and Kazaa, pointing out that Kazaa has over 3.1 million downloads a week with promotion only via word-of-mouth:

[... 325 words]

Page Readability Bookmarks

I’ve long been a proponent of flexible web pages rather than restricting sites to a hard coded width in pixels, but now that I’ve started surfing at 1280x1024 I’m beginning to realise how true the statements about an optimum width for readable text really are. The simple solution would be to surf with my browser window resized to a sensible size, but old habits die hard. Instead, I made myself the following bookmarklet:

[... 157 words]

The Doomsday Algorithm

I always thought you had to be an idiot savant to be able to state the day of the week for any date in history, but it turns out there’s a reasonably simple trick to it. The Doomsday Algorithm was first invented by Dr John Conway, also famous for creating the game of life. Rudy Limeback’s detailed explanation provides everything you need to know about the algorithm, how it works and how to memorise it.

Applications of RDF

Shelley Powers: RDF: Ready for Prime Time gives an overview of the many applications and services already deployed that use RDF in some way. Via that article, RDF in Mozilla Docs and RDF in fifty words or less, both published by the Mozilla project.

On Metadata

Tim Bray’s series On Search now has a table of contents page linking to each of the previous entries. The most recent article covers metadata, and includes some insightful commentary on the huge problem of gathering metadata from users in the first place.

Python 2.3

After numerous alphas and betas, Python 2.3 has been released. Python.org has highlights of the release, while A.M. Kuchling’s What’s New in Python 2.3 goes in to a bit more detail. There’s some great new stuff, but the feature that particularly caught my eye is this:

[... 147 words]

Quality news site URLs

Nathan Ashby-Kuhlman is devoting this week on his blog to discussion and analysis of news site’s URLs.Nathan’s 5 attributes for a good URL are worth repeating here as they succintly describe my own opinions:

[... 378 words]

Superb CSS template/tutorial

I’m not sure how I missed this one. Holly Bergevin’s Perched Upon a Lily Pad is a CSS demo that shows off a 3 column layout with a flexible header, full length columns, horizontal navigation bar and complete descriptions of exactly how it all works contained within the page. It’s very educational (I’ve learnt a trick or two just by reading it) and a great example of solid, cross-browser CSS design.

[... 97 words]

Validating HTML from behind a firewall

Steve Clay’s Private Validator is a really handy tool for people who working on intranet sites who want to be able to run them through the W3C’s validator. It’s a PHP script which you install on a server behind the firewall that has access to both the intranet and the outside world. It comes with a bookmarklet which activates the script. When the script is activated, it grabs the indicated page, then uploads it to the external validator and grabs the result. It’s pretty neat, but even neater would be some kind of desktop application that did the same thing. I can almost feel a Python script coming on.

PHP XPath Implementation

This looks like it could be really useful: an XPath implementation in pure PHP (no extra modules required), via More Like This.

Let’s go ::outside

Tom Gilder has started a series of posts looking ahead to CSS3. In his first installment, he describes the awesomely powerful ::outside pseudo-element. Using this, CSS3 authors can apply multiple backgrounds and borders to single elements (at the moment doing so requires fussing around with nested divs). If you don’t instantly see the importance of this, take a look at some of the attempts to render rounded box corners using CSS. All of them require the addition of extra presentational elements, none of which would be needed if we could use the ::outside selector instead.

Better web forms

Adam Kalsey has kicked off Simplified, a new series on web usability, with some thoughts on creating usable web forms. The conversation continues on Paul Scrivens’ blog, and covers a lot of interesting ground. D. Keith Robinson also has some tips on better form design in his latest Gorilla Web Tip.

Ludicrously simple templates with Python

A long, long time ago I wrote my first ever PHP templating system. It was pretty simple; it consisted of a function that took two arguments: the name of a template file, and an associative array of replacements to make on that file.

[... 251 words]

More CSS tips and tricks

Learn to search!

Slate: Digging for Googleholes:

[... 414 words]

Mailinator and email validation

So, Mailinator (via Joel). It’s a brilliant concept; whenever a site you don’t trust insists on you giving them an email address you invent something-random@mailinator.com and give them that instead. Then you go to the Mailinator site, enter the something-random and see the emails recently sent to that address.

[... 213 words]

Comment Authentication Prototype

I’ve built a prototype of the comment signature system discussed earlier. The prototype consists of an authentication server which anyone can register with and support on this blog for verifying signatures. So far it seems to work.

[... 434 words]

Mozilla 1.5a and Firebird 0.6.1

Mozilla 1.5 alpha is now available for download from Mozilla.org. Changenotes here (it looks like mostly improvements to Composer, but the ability to jump from the javascript debugger straight to the view source line in question could be handy). Asa is promising a new Firebird release soon:

[... 158 words]

You can’t keep a good man down

John Robb: NEVER (under any circumstances) publish a weblog to a domain that you don’t control. Nice to see he’s back.

Signing comments on blogs

Adrian Holovaty has implemented reserved comment names in his blog, a feature that prevents anyone apart from him from using the names “Adrian”, “Adrian H.” or “Adrian Holovaty” when posting a comment. François Nonnenmacher suggests extending the idea to allow people to “confirm” their authorship of comments on any blog using a TrackBack sent to their site that in turn causes them to be sent an alert email, which they can then use to confirm their comment. I like his idea of authentication based on URLs (email addresses are no good; they should not be publically displayed for fear of spam harvesters) but I think I’ve come up with an alternative authentication scheme that removes the need for the user to manually confirm authorship. This is pretty complicated, so bare with me.

[... 762 words]

BuyMusic, the latest sharecropper on the block

As seen on Blogzilla and Ordinary Life, BuyMusic are content to exist as a sharecropper. It looks like the restriction is due to their use of Windows Media as the format for their DRM protected files (BuyMusic is the Windows poor relative to Apple’s iTunes). Unfortunately, this could become common place in the next few years as the music industry tries to find ways of surviving in the digital age. After all, with more than 90% of PCs running Windows there’s no doubting that’s where most of the money is. I guess the music industry are happy to be sharecroppers, and anyone who choses non-Microsoft software will have to get used to being treated as second-class citizens.

A feature request for CSS3

One of the niggles I have with CSS 2 is that I frequently have to define colours multiple times. Consider this blog: I use orange in several places (as a background to the header, a border around the sidebar and a background to the sidebar h3 elements). Should I decide to change the shade of orange, or change it to another colour, I would have to alter my stylesheet in several places.

[... 245 words]

Scott Andrew on Typepad

Delimiter is Scott Andrew’s new TypePad blog. Unlike his primary blog which mostly talks about his adventures as a musician, Delimiter promises to cover fun and interesting Web stuff. Should be good. Congratulations to Scott for his new job at Amazon as well.

[... 86 words]