Simon Willison’s Weblog

Subscribe

July 2002

July 5, 2002

Rasmus Lerdorf’s blog

Rasmus Lerdorf (the creator of PHP) has a blog. His latest entry discusses Palladium, and asks if it will actually help build up the alternative market of non wintel users.

Hixie BSc

Hixie BSc (Hons) passed his degree. Congrats :)

Opera and Macromedia

Macromedia to Embed the Opera Browser in Web Authoring Products—it seems Opera could soon be providing the rendering engine for Dreamweaver’s preview mode, at least on the Mac. Great news for CSS layout enthusiasts as from what I’ve heard Dreamweaver MX still does a lousy job of previewing CSS positioning in the editor.

Stupid Danish newspapers

More deep linking stupidity (via Scripting News). A judge in Denmark has ruled in favour of a newspaper who took a search engine to court over “deep linking”, despite the search engine’s spider following the robots.txt standard (it seems the newspaper didn’t bother to implement a robots.txt file). Dave Winer summed things up perfectly:

[... 86 words]

Final table tip

A final table tip from Mark: Providing a summary for tables. Mark explains the summary attribute which should be attached to every <table> tag to summarise the purpose of the table. Tables used for layout should include an empty summary attribute to show they are layout tables (in a similar way to empty alt tags for layout images). The summary attribute is only used by text to speech browsers, so I’m slightly confused as to why it should be included for layout tables—surely if the attribute is empty a speech browser will skip tstraight over it as if it wasn’t there?

&lt;strong&gt; and &lt;em&gt;

Caveat Lector: <em>, <strong>, and markup assumptions. Dorothea Salo explains these semantic tags, why they exist and when they should be used, and throws in a bit of HTML history as well.

Kevin Burton

Kevin Burton:

[... 95 words]

More on deep linking

It seems there’s more to the Danish deep linking story than first meets the eye. This comment on Slashdot clarifies some important details:

[... 163 words]

elgooG

elgooG (via the Google Weblog).

Janis Ian

Janis Ian: The Internet Debacle—An Alternative View (via Scripting News). This is an excellent, well researched piece on the problems facing the American music industry by an artist with over 20 albums under her belt.

[... 154 words]

July 6, 2002

Better blogrolling

Stuart at kryogenix.org saw my post about blo.gs and re-implemented his blogroll to update from his blo.gs subscriptions, complete with last updated times. It’s such a brilliant idea that I’ve implemented it here as well. blo.gs allow you to syndicate your subscriptons in various formats, but by far the most useful is favorites.xml, which orders them by last time updated and includes information on the time they last notified blo.gs of an update. It took less than 10 minutes to write a short PHP script to parse the XML and a few minutes more to set up a cron job to grab the XML file every hour. This is impressive stuff—thanks to blo.gs, XML and idea-sharing-via-blog myself and Stuart both have an automatically updated list of blogs right there on our sites.

More on blo.gs

More info on blo.gs syndication. Phil Ringnalda has published a PHP script which can be used to syndicate a blogroll from blo.gs. For people without the capability to run server side scripts, blo.gs also syndicate blogrolls in a javascript file which uses document.write commands to display a blogroll on a page.

More blogroll fun

Stuart has added an extra innovation to his blogroll. Clicking on a link there now sets a cookie (via javascript) recording your visit—these are then used to display a ’new’ icon if a blog has been updated since your last visit. The only downside is that the system can only track visits made through links on Stuart’s site. Stuart says that easily automated stuff like this is why he recommends using a system like Moveable Type rather than rolling your own blog software. He’s right, but I treat writing my own as an entertaining learning excercise—I get to play with RSS, web services, XML parsing, the fun never stops ;)

Interesting suggestion

Micah Sittig made an interesting suggestion in a comment attached to an earlier entry. Micah suggested adding an inert ?lastUpdated=time attribute to links in my blog roll, causing browsers to display links to blogs that have been updated since the last visit in a different colour. I’ve implemented this temporarily, but I’m slightly worried about whether or not this constitutes abuse of the XHTML standard. The additional query string doesn’t break any of the blogs on my blogroll but it is still resulting in fundamentally different page request being sent, which could lead to problems. I’ll leave it for the moment, but I think this may need reconsidering in the future.

Mozilla sidebar added

Thanks to another excellent suggestion from Micah, this site now has an experimental Mozilla sidebar. Click here to try it out (only Mozilla or NS6 owners need apply).

[... 67 words]

The Two Way Web

Dave Winer: The Two Way Web. The Two-Way-Web is a vision for the Web as an easy writing and publishing environment. This is an old essay from March 2001 (I only found it today) which describes a vision of a web where content can be quickly and easily edited through a variety of tools, which communicate with content management systems using XML-RPC and SOAP. This is all stuff I’ve been thinking about recently, so it looks like I’m only a year and a half behind Dave ;)

July 7, 2002

Paper Scissors Stone

Paper Scissors Stone is more complicated than I thought (via BoingBoing). This article from 1999 describes the second international RoShamBo programming contest, in which entrants had to provide a program that could play other programs at the classic childhood game:

[... 143 words]

Google OR

Another gem from the Google Weblog—Google not only accepts OR as a search modifier but allows you to use | instead and still get the same results.

Using web widgets wisely

Jodi Bollaert: Using Web widgets wisely. This is first in a two part series explaining the best practise for designing user interfaces using the form elements available in HTML.

Ooh Muse.net

I’ve been reading up on Muse.Net, and I like what I see. Muse.Net is a loosely-coupled, XML Web service derived Internet digital media supply chain. What that means in English is a system to let you listen to your private MP3 collection from any internet connected PC in the world, viasome very funky web service based technology. Your MP3s stay hosted on your own PC (so you need an always on internet connection) while the Muse.Net central service keeps track of what you’ve got and lets you log in from anywhere to listen remotely. Best of all the web service interface lets you do all kinds of fun things—for example techno weenie’s OPML directory of his collection. For more detailed info check out the excellent Muse.Net FAQ.

July 8, 2002

Zeldman on accessibility

Jeffry Zeldman: Many web practitioners still believe that accessiblity is an ugly, no-frills affair. Not true. An excellent piece on accessibility issues.

Language independant storage

Today’s (obvious) XML realisation: Using XML for storage gives you a platform and language independant storage layer. If you later want to rewrite an application in a different language the data is there and ready to be processed, with no conversion necessary. OK so it’s something that is shouted from the rooftops by XML advocates at every available opportunity but today I realised it for myself :)

Why workflow?

I’m having trouble understanding the importance of workflow in a CMS. As I see it, managing content assets and controlling which assets are ready for publication can be thought of as two very seperate processes. After all, content can and should be deployed in a whole variety of ways. A piece of content that is not yet ready for publication in a brochure may well be ready for publication on a web site (or may be fit a site aimed at one audience but not yet ready for a site targetted elsewhere). Why tie the publication readiness of an item of content directly to the content, when it would make more sense to attach it to the place where the content will be published—so a site editor can decide when content is ready for publication without permanently altering the status of the content. Or have I completely missed the point?

New bookmarklet

webgraphics have a new bookmarklet which measures the “weight” of a page (the combined size of the page and its graphics) and displays it along with an estimate of download times over different connections. Unfortunately it does not measure external JS or CSS files, and does not work in Mozilla. If you’re in to bookmarklets (explained here) take a look at webgraphics’ excellent favelets collection at the bottom of the right hand column of their front page.

Sites bow to IE

CNET: Even though all the major browsers are considered to be up to snuff on standards compliance, some Web authors still find it easier to code directly to IE--and test only with IE--rather than to open standards. Tell us something we didn’t know. Steve Champeon replies over at the Web Standards project and highlights some inaccuracies in the article but the basic message remains unfortunately true.

July 9, 2002

XML-RPC debugging

Via techno weenie: A Python XML-RPC debugging proxy script. This solves the problem of XML-RPC errors from PHP being sent out with the XML-RPC response packet and breaking any XML parser trying to recieve the packet. Instead you can test your script by aiming at the proxy script which will dump any problems to the console for you.

Using SCP

I’m slowly migrating this blog to another server (and rewriting it to use mySQL instead of serialized objects at the same time). After about half an hour of trying to figure out the best way of transferring the whole blog/ directory from this server to the new one without using FTP I figured out a way of doing it with scp (thanks to this tutorial):

[... 95 words]

Webdocs.org

Webdocs.org is an online library of various freely available software documentation. The site uses frames with a tree style navigation menu on the left and loads (externally hosted) documentation on the right. At the moment they only cover Python but more will be added soon—in the meantime the Python collection is quite impressive.

Mozilla oddity

Mozilla oddity—if you rename a bookmark to the the same name as it’s shortcut keyword the shortcut keyword will stop functioning. I couldn’t see it in Bugzilla so I’ve submitted it as bug 156418.

CherryPy

CherryPy is an interesting open source Python application server. Dynamic sites are constructed in a special templating language which is then compiled by CherryPy to create a stand alone executable Python script complete with a built in web server. This can then be deployed anywhere with a Python interpreter. CherryPy comes with an excellent tutorial and a small but useful set of HOWTOs.