Simon Willison’s Weblog

Subscribe
Atom feed

Entries

Filters: Sorted by date

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.

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]

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.

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.

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.

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?

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 :)

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.

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.

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.

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.

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]

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 ;)

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]

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.

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 ;)

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.

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.

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]

elgooG

elgooG (via the Google Weblog).

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]

Kevin Burton

Kevin Burton:

[... 95 words]

<strong> and <em>

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.

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?

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]

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.

Hixie BSc

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

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.

More Python advocacy

More Python advocacy: PYTHON: Yes, You SHOULD Be Using it! The article contains some background information on Python and why it is worth knowing, but the bulk of the article consists of a getting started guide for Python on Linux, complete instructions on using the interactive prompt, code samples and a small CGI script. It is worth noting that the CGI script example should not be deployed anywhere accessible to the public as it could allow crackers to execute code of their chosing on your web server.

Funky popups

Funky javascript popup windows (via wdf-list).