Simon Willison’s Weblog

Subscribe
Atom feed

Entries

Filters: Sorted by date

TMs

I’ve been trying to get my head around Topic Maps, a powerful but complex standard for building intricate networks of metadata. I couldn’t even begin to describe them myself but the following resources have proved very useful:

Windows SSL support in Python

Adding SSL support to Python on Windows is as easy as dropping a couple of DLLs and a .pyd file in to your Python DLLs directory. Grab the zip file from this page and off you go. I haven’t tried it out yet but it appears to work—the socket.ssl function miraculously appeared when I installed the new files. Why is this useful? Because it opens the way for secure XML-RPC calls from Python applications...

Instant PHP Web Services

XML-RPC Class Server is a really clever piece of code. It consists of a single file which you can drop in a directory full of PHP .class.php files to instantly provide an XML-RPC interface to every class in the directory. Private methods that begin with an underscore are not included in the web service. Unfortunately the system requires PHP’s XML-RPC extensions to be enabled.

PHP object overloading

I’m not sure how this one snuck under the radar, but PHP now supports object overloading (as of version 4.2.0). It can be implemented by creating class methods __set(), __get() and __call() and then applying the new overload() function to the class name. The documentation claims that __call() is not yet supported but is apparently out of date. Standard warnings about the experimental and unfrozen nature of the extension apply.

Random links with Google

Paul Freeman has come up with new use for the Google API—generating random links. The idea is simple but effective—a random theme is selected and searched for (via pygoogle), then another search is run on the title of one of the top ten results to return a random link and description.

Browser testing tip

I have Mozilla, Netscape 4, Internet Explorer and Opera installed on my Windows PC. I use Mozilla for browsing and the other three for testing. It turns out that all four browsers can be loaded with a specific URL from the command prompt like this:

[... 100 words]

Apple HCI guidelines

Apple’s Aqua Human Interface Guidelines (via a link on the Pinstripe Theme for Mozilla page). Interesting reading, and an excuse for a new category. I’m doing a course on HCI next term so I imagine I’ll be blogging a fair amount of related information in the future.

Excite UK now powered by AllTheWeb

The Register: Tiscali to launch Excite across Europe. From Excite.co.uk:

[... 101 words]

Evil but sometimes unavoidable

I’ve seen a few questions on various forums and mailing lists asking if there is a way of using target=“blank” on links in XHTML Strict without running in to a validation error. I’ve put together an example page showing a method of fixing this using the DOM, which also demonstrates Andrew Clover’s fun-but-ugly Evil Mangled Comments Hack.

Swannie’s blog

Mark Swanborough (a friend from Uni) now has a blog. He’s getting hooked already.

[... 44 words]

IBM accessibility center

IBM’s Accessibility Center has a plethora of useful information and resources, including a free 30 day trial of their Home Page Reader text-to-speech browser software.

Useful tips from Craig Saila

Craig Saila’s Web Building Tips include all kinds of frequently asked but infrequently answered questions relating to various areas (mostly client side) of web design and development. The rest of the site is full of quality content along similar lines and is well worth exploring.

Lycos tip the balance

Fantastic news for the web standards movement: Lycos Europe goes XHTML and CSS for layout (via Zeldman and the W3C evangelism mailing list). The new layout can be seen here—at the time of writing it had a few validation errors but hopefully they will be fixed before launch. The one thing CSS positioning advocates really need is a “big” site to start using CSS for layout, and it looks like Lycos are going to provide just that.

Using XML

Using XML on A List Apart:

[... 67 words]

PythonCard and PyCrust

Patrick O’Brien: Building GUI Applications with PythonCard and PyCrust. I’m a big fan of PythonCard, an excellent toolkit for creating GUI applications in Python that seperates the GUI layout from the program logic and makes it ridiculously easy to put together a basic GUI in a short space of time. Patrick is the developer of PyCrust, an interactive shell for debugging and interacting with GUI components, and is also a contributor to PythonCard as a whole. Patrick and Kevin Altis, the lead developer of PythonCard, will be presenting a session on PythonCard at OSCON on Thursday.

Floats clarified

Floats, an alternative perspective. A useful overview of how CSS floats should work based on the specification.

Dive into accessibility

Mark Pilgrim’s accessibility series has come to an end, and he has compiled the whole lot in to a fantastic new resource: Dive Into Accessibility. This is going to be required reading for anyone with a conscience and a weblog (or any other kind of site) for years to come. I’ve fallen a bit behind on implementing Mark’s accessibility tips but I am set on using them on this site soon (probably along with the new design) and applying them to any sites I develop in the future. Thanks Mark.

CSS books galore

I’ve placed an order on Amazon for both Cascading Stylesheets: Seperating Content from Presentation and Eric Meyer on CSS. I’ll probably post a side-by-side comparison of the two books in a few weeks time.

New PHP vulnerability

Vulnerability found in PHP 4.2.0 and 4.2.1 involving HTTP POST requests. The PHP group have released PHP 4.2.2 which fixes this problem.

Ogg Vorbis

Ogg Vorbis has hit 1.0. Ogg Vorbis is an open, patent-free alternative format to MP3 that boasts some seriously impressive abilities. A sample page is available which includes WAV files to allow quality comparisons between different formats.

Catch up time

I had a great weekend, and now it’s catch-up time. I’ve managed to find 15 things from the weekend that I want to blog so I’ll try and spread them out over the next day or so.

I think I need more categories

No updates until Monday—I’m taking a long, offline weekend with my girlfriend.

Positioning tips

If you’re still struggling to get to grips with CSS layout techniques (heaven knows I am) Dorothea’s latest will teach you more in a single post than many lengthy tutorials do in their entirety. Floats for layout (as seen on this site) are out—they work for small areas but anything larger can cause performance problems and other unpleasantness. Relative positioning is unreliable, which leaves us with absolute positioning and clever use of margins, along with intelligent use of background images for decoration. Dorothea explains these techniques in concise detail, and relates them to AKMA’s redesign.

Pimping opportunity

Tip off for Stuart: The new Python Wiki includes an index of available web frameworks, but there’s no mention of Castalian yet.

Flash: Leave my text alone!

Moment of realisation: I just figured out what it is about Flash that bugs me so much. Flash is rubbish at text. Sure it can render text in pretty ways, but it never feels like real words. Flash takes good old fashioned text and locks it away in a pretty but shallow world, one that is out of reach of search engines, screen readers and my all important right mouse button. What good is text is text if I can’t search it, select it, copy it, paste it and generally processs it in whatever way I see fit? Flash is fine for graphics, animation and even some user interfaces (provided they don’t involve too much text) but please, please keep it away from anything I want to read.

Addition to the blogroll

Small Values of Coollinks to things that I find interesting by Simon Brunning. I turns out I find them interesting as well. Lots of Python stuff on there at the moment, including a link to the new Python Wiki.

Amazon search updated

I’ve updated PHP Amazon Search to implement a few more search methods, and altered the example script to allow searches for related items.

Fun with Amazon

There’s plenty of activity surrounding Amazon web services today. My limited demo barely scratches the surface of the possibilities—people are already experimenting with Amazon’s similarity search and Mark Pilgrim has released PyAmazon, a Python wrapper for the Amazon API. I’ve started listing alternative implementations on the PHP Amazon Search page, and I’ll be sure to blog the more innovative examples as and when I find them.

Amazon web services

Amazon have launched a brand new web service interface to their huge database of products. I’ve been playing around with it, and I’ve knocked together a simple search engine example in PHP, with the code available for anyone who wants it. I did a similar thing a few months ago when Google released their Web API so we’ve set up a new site at Incutio to host these and other open source projects—scripts.incutio.com. The site is only a few hours old and we’d love some feedback—contact us directly or add a comment to this entry.

Goodbye to BurningBird

Burningbird has hung up her wings. Dorothea thoughtfully blogs her departure, disagreeing with her suggestion that blogged content suffers from a lack of permanence. One of the reasons I blog is that I hope to increase my skill with the written word, so it is interesting to see someone at the opposite end of the spectrum who feels they must stop blogging to keep writing. As for permenance, I have often worried that particularly valuable articles can get lost in archives—to this end I hope to implement a permanent feature archive in my blog redesign, somewhere I can keep larger articles in a more easily surfed format than an archive.