Simon Willison’s Weblog

Subscribe

July 2003

July 1, 2003

time_since() on Feedster

This is pretty cool: Scott’s taken Nat’s time-since function and added it to Feedster, giving a quick indication of how long ago an item was posted.

Join the Buzz

Artima.com keeps getting better and better. In addition to the world’s most interesting collection of technical bloggers, Bill Venners has just added Artima Technology Buzz, a collection of community based public aggregators. They work a bit like the Python Programmer Weblogs page, but covering a wider range of topics and with the important difference that you can add your RSS feed up to the relevant community yourself. I’ve just added some of my category feeds to the relevant sections—you can add your own site using the links in each section, but you need to register a user account on Artima first.

Further reading on the RNIB redesign

There’s been a flurry of blogger activity concerning the RNIB redesign over the weekend. isolani created an XHTML/CSS redesign independantly of mine, while Tom Gilder took mine as a starting point and made several improvements. Ben Meadowcroft has posted an open letter summarising the concerns felt by him and others over the way the redesign has been implemented. Meanwhile, Julie Howell (the RNIB’s Good Web Design campaign co-ordinator and a well respected member of the Web Accessibility community) has replied on Tom Gilder’s blog promising to collate feedback and pass it on to the web team (Julie herself was not involved in the redesign). It’s good to see they’re listening, but I really wish they would hurry up and fix their broken links!

Simple FTP uploading with Python

Here’s a nice example of a simple Python script which can be bound to the right-click menu in Windows and used to quickly upload files to a specific FTP server.

July 2, 2003

The Verbosity of Echo

Sam Ruby has called for people to start experimenting with the current (very early) Echo example feeds, and the response has been pretty impressive; check out these feeds from Joel Spolsky, Phil Ringnalda and Mark Pilgrim. Now that Echo has progressed to a stage where there are concrete feeds to examine, I have some serious concerns over the verbosity of the format. As they stand, Echo feeds contain a lot of duplicated information. Considering that the default behaviour of aggregators is to poll a feed for updates once an hour, any unnecessary information in the feed itself is going to have a very real monetary cost in terms of burnt bandwidth.

[... 257 words]

Knowledge Representation Timeline

This is pretty impressive: A Timeline of knowledge-representation that starts at the dawn of the Universe and continues through the whole of human history right up to the present day.

CSS Roundup

  • SitePoint are running a CSS Design Contest, inspired by the Zen Garden.
  • CSS/Exp is Mark Schenk’s collection of CSS experiments which show off some pretty advanced CSS, much of which oonly works in Opera due to its full support of generated content.
  • CSS Destroy is a similar collection, with an emphasis on pushing CSS to its limits and beyond.

More unobtrusive DHTML

I’ve talked about unobtrusive DHTML before, and here’s a superb example of it in practise from Chris Casciano. His zeitgeist is enhanced by some clever javascript which hides and reveals tables of data when certain page elements are clicked. View source, and you’ll see that the document contains only structural HTML, with no embedded javascript at all. The special behaviour is added by an external Javascript file which adds the necessary event handlers when it loads, based on the structure of the existing document. This approach maintains the usability of the information in a non-javascript supporting environment, while seriously enhancing the maintainaility of the page as new structural elements can be added to the HTML which will pick up the special behaviour without any further modification to the javascript needed.

Norwegian Hixie

Congratulations Hixie on his new job at Opera software, in sunny Norway. That’s a pretty exciting opportunity. Does this mean he’ll be contributing less to the Mozilla project? (Dave Hyatt has managed to keep working on it despite his move to Apple).

July 3, 2003

RDF and PHP

If you’re still struggling to get to grips with what RDF is actually for, you could do worse than read this guide to Parsing FOAF with PHP. It shows how the FOAF flavour of RDF can be processed using the PHP RAP library, and in doing so demonstrates how RDF documents are built from collections of triples anmd how these triples can be queried to extract useful information. If you’ve ever used Prolog, RDF is actually a very similar concept.

Scribbling.net web site tips

Some useful tips from Scribbling.net:

[... 49 words]

Accessing cookies with application/xml+xhtml

I’m completely stuck on this one. When serving XHTML documents to Mozilla as application/xml+xhtml, the available DOM is for an XML document rather than an HTML document. This means it’s missing the document.cookie object normally used to access cookies from Javascript. I can’t figure out how you access cookies without it (I’ve searched Bugzilla to no avail). Anyone got any ideas? I sure wish the Mozilla project provided better documentation on this stuff.

July 4, 2003

Nail, Bang, Head

D. Keith Robinson:

[... 210 words]

Simple Python Sockets

Moshe Zadka: Networking for non-programmers (and a follow up), via Hans Nowak. A nice gently introduction to sockets, with example code using Python’s socket library.

Diagonal shapes with CSS

Information on Border Slants (via Paul Hammond). Border slants are the effect whereby diagonal lines can be created using pure CSS, by taking advantage of the fact that thick borders around a box meet at an angle. This article describes the effect in detail and shows how it can be used to achieve a number of interesting shapes, then goes on to show off with an impressive Valentine’s Day Heart. See also Tantek’s awesome pentagon site map and A Study of Regular Polygons.

XML-RPC Errata

Fredrik Lundh: Unofficial XML-RPC Errata, a work in progress. It’s good to see that the unicode limitation has finally been cleaned up. What would be really useful is if someone could work out a list of all of the older implementations that only support ASCII strings.

Reintroducing HTML

Jay Small: Reintroduce yourself to HTML. A call to web authors everywhere to go back to their roots and realise that HTML is not something that should be avoided. He makes some great points, such as the following:

[... 161 words]

Browser innovation is anything but dead

Rafe Colburn slams Marc Andreessen for his recent comments regarding browser innovation. Marc thinks browser innovation has been dead for the last five years. To make a statement like that he must have missed out on Mozilla, Firebird, Safari, Opera and all the other Gecko variants. Which leads to the worrying conclusion that he’s either still using Netscape 4 or (even worse) he browses with IE!

Custom XML templating with PHP

Dynamic XML conversion using the SAX parser and a stack is the best new article I’ve seen on PHPBuilder in a very long time. It introduces several interesting ideas. The first is something I’ve been thinking about for a while now: using PHP’s output buffering to implement a kind of templating system so that all of the scripts in a system just have to generate an intermediate content type, then the output buffering function adds on the HTML framework and finalises the page. The second idea is ingenious: invent XML elements to represent specific behaviours, then handle them with a SAX before the page is displayed. Here’s some example code from the article:

[... 280 words]

July 6, 2003

Food for thought

The internet is shit. Food for thought, via Ben Hammersley.

Google oddities

Dave Winer:

[... 182 words]

overflow: hidden

I’ve never really played with the CSS overflow property, partly because I don’t trust it to work in a decent number of browsers. Haiko Hebig’s Title Pictures show off a clever use for the property to display varying amounts of an image depending on the user’s browser size; what’s more, I’ve tested it and it works in Gecko, Opera 7 and IE6 (no IE5 to test on at the moment).

Fixing an IE scrolling glitch

Mike Golding offers a solution to the slightly odd IE bug whereby divs in CSS layout sites suffer glitches as the page is scrolled (from December 2002):

[... 151 words]

July 7, 2003

John Robb leaves UserLand

From Scripting.com:

[... 108 words]

Handling dates in Java

I could have really done with this a few months ago: Making Sense of Java’s Dates.

More Java

Simon Brunning has a great selection of online Java resources. I should really give it its own category.

Linus Interview

Linux creator an open source, an interesting interview with Linus Torvalds covering the IBM/SCO case, leaving Transmeta and his opinions of Silicon Valley.

July 8, 2003

Programming Language People

Via Joe Grossberg, Chris Rathman’s collection of mugshots of the creators of a large number of important programming languages. There’s actually a surprisingly low beard quotient (although it’s nice to see Unix/C gurus Ken Thompson, Dennis M. Ritchie and Brian Kernigan all sport a decent amount of facial hair). On a related note, I recently came across 99 Bottles of Beer, a simple program implemented in 571 different languages. Fascinating stuff.

July 9, 2003

Textile 2

Textile 2 is now available for testing, courtesy of Dean Allen. Textile is one of the more popular structured-text style markup languages, which translate a simple markup language in to HTML. What made the original Textile special was that it concentrated squarely on structural markup, providing intuitive shortcuts for most structural XHTML elements. Textile 2 takes this further, but also introduces a number of presentational effects such as block alignment. Beta PHP code is available in addition to the demo.

[... 201 words]

Filtering AOL

Burningbird starts a discussion on how much harm the addition of AOL users will cause to the blogging eco-system. She compares this development to the chaos caused when AOL users were first introduced to Usenet. I don’t see that there’s a problem. To my mind, the thing that separates blogging from the many other forms of internet discussion (forums, Usenet, mailing lists etc) is that it comes with its own built in filtering mechanisms. I’ll take myself as an example. While I don’t use an aggregator, I do use my blogroll to keep track of roughly 70 bloggers who have a very high signal to noise ratio. Through them, I am frequently directed to other bloggers of a similar calibre. I’ve seen it claimed that there are over half a million blogs on the ’net, but the social network I maintain through my blogroll means that while I only see a fraction of those, that fraction tracks most of the information of interest to me.

[... 218 words]

2003 » July

MTWTFSS
 123456
78910111213
14151617181920
21222324252627
28293031