Simon Willison’s Weblog

Subscribe
Atom feed

Entries

Filters: Sorted by date

Stuart gets slashdotted

Congratulations Stuart on getting slashdotted. How’s the server holding out?

First impressions

I’m slowly working my way through both Eric Meyer on CSS and CSS: Separating Content From Presentation. Initial impressions are that they were well worth the money—the two books complement each other very well indeed. Separating Content from Presentation (SCfP from now on) seems to be the more technical of the two—it provides excellent descriptions of the intricacies of the CSS specification and has some superb information on browser differences, with some good advice for web developers who need their sites to look reasonable in Netscape 4. Eric’s book is more flamboyant, with full colour pages and a “project” formula that introduces CSS techniques through a variety of interesting case studies. Full reviews can wait until I have finished reading the two books.

Working on some cool new stuff

Slow blogging day today—I’ve been hit by a round of Aquarionics Syndrome ;)

The Register and browser share

The Register: approximately 25 per cent of readers access our site using non-Microsoft browsers (mentioned in passing in an article on Alexa). Now for some pure speculation. I can’t imagine that this percentage was nearly as impressive 6 to 8 months ago, simply because 6 to 8 months ago there weren’t really that many serious alternatives to IE—Mozilla was still in beta and most of the other Gecko engine browsers were still pretty shakey. With Mozilla past 1.0 and some great Gecko browsers being built on top of it (Chimera at al) IE is no longer necessarily the best choice. I just wish I had access to some ’real’ statistics to further understand the ways in which the browser market is changing.

Ooh a mystery...

I hate to be mysterious, but I have two very exciting projects in the pipe line. I don’t even know yet if they will make it to production, but if they do they could be very cool indeed.

W3C recommendations explained

Confused about the difference between W3C Notes, Working Drafts, Candidate Recommendations, Public Recommendations and normal Recommendations? So was I, until I found this handy list of definitions on the official site.

Using CVS

Harry Fuecks on SitePoint: Harness the Power of CVS for Your Site. I’ve been wanting to get in to CVS for quite a while but I’ve been put off by the lack of a good “getting started” guide. Harry’s tutorial is everything I’ve been looking for—it explains concepts and terminology, describes when you would want to use CVS and shows exactly how to use it on a Windows machine.

Don’t expect to hear much from me for a while

My Amazon order has arrived.

Real World Style

Real World Style: These techniques work. I know, because I use them every day in my real world job. Mark Newhouse provides a whole site dedicated to CSS tips, tricks and full blown public domain layouts specifically designed to work with Netscape 4 (and Unix machines). This is an invaluable resource for web developers who want to start using modern techniques but still have to cater for an audience with troublesome browser preferences.

CETIS

CETIS is the Centre for Education Technology Interoperability Standards. Their site is regularly updated and contains a wealth of information about a whole range of interesting technologies, including metadata standards and plenty of stuff on web services and XML. It also acts as an interesting insight in to technology plans within the UK’s academic community.

I know I’m bloody well subscribed

It’s the first day of the month. I don’t believe in rabbits, but I do believe in Mailman—I just had my fourth “monthly reminder” email of the day. It beats me why the lists I am subscribed to see fit to email me once a month to remind me of my description—you would have thought the dozens of emails I get from them every day would be enough of a hint. In my opinion this is one default option the web could do without.

Ooooooooooh

placenamehere.com: Chris Casciano’s Digital Playground. I love this design—Chris uses beautiful black and white photos for page backgrounds and carefully positions the main navigational element on each page to fit in with the background image. This is a great example of the new design techniques being made possible by a combination of CSS and creative talent. I just wish I had some of the latter :)

LUMS in CSS

I’ve been messing around with CSS today, trying to convert this page to use standards compliant CSS and XHTML while keeping the overall look and feel. My efforts so far can be seen here—I’ve knocked the HTML file size down from 27KB to 7KB (although that doesn’t take the new external CSS file in to account) and it seems to work in Opera, Mozilla and IE on Windows. There is a slight issue at 800x600 (the breadcrumbs dissapear) and it looks terminally boring in Netscape 4 but on the whole it’s come out pretty well.

MySQL text limits

Today’s scary discovery: MySQL TEXT fields have a limit of 65,000 bytes. If you insert anything larger than that in to a normal TEXT field mySQL will silently truncate your data without telling you (meaning software checks are probably a good idea). MEDIUMTEXT will store 16 million characters and LONGTEXT can handle over 4 trillion, but this information does not appear to be readily available in the online mySQL manual (although it is hinted at in this table). Something to bare in mind when designing database applications.

Styles of blogging

There’s a great discussion going on at the heart of things concerning different styles of blogging and the way the format is evolving. The range of formats evident across the blogosphere fascinates me—there are as many different styles as there are blogs, and each blogger’s style is constantly evolving. Personally I want to move towards more of a unique-content-generation model (as opposed to my current link farm) but at the same time my experiments with meta data mean that the more “shallow” content I have the more chance I will get to do interesting things with relationships between entries.

CSS selectors tutorial

Since it took me a while to find this page today, here is it for future reference. Westciv’s Guide to CSS Selectors is an excellent explanation of selectors, a key element of CSS. A good understanding selectors makes styling any part of a document possible with less code and more flexibility.

Students and the web

Point. Click. Think? (via from the orient). This is an interesting, well written piece on the effect that the web is having on student learning and research habits. Looking back at my first year at Uni I am probably a text book example of the symptoms the article describes—I hardly ventured in to the library at all, getting most of my additional course information from the web. Then again a Computer Science degree is probably better suited to web research than many other courses.

My shortest entry ever

Wow.

The CSS bug ring

Killer CSS link: Position Is Everything, part of the CSS bug ring. Big John on CSS-Discuss is probably the single most helpful individual I have ever encountered on a mailing list—he explains the most complicated (and simple) of solutions quickly, comprehensibly and in easy to understand terms. Position Is Everything is his collection of common but complex CSS browser bugs, complete with full explanations and any effective workarounds. The site links in to the CSS bug ring, a small ring of five sites providing more of the same. Truly an indespensable resource for anyone with an interest in CSS.

Reasons not to use Access

I’ve never used MS Access for anything web related, and I certainly don’t intend to at any point in the future. however, I do see a lot of questions regarding Access on various forums and mailing lists. Nine Reasons NOT To Use MS Access To Power A DB-Driven Website (published 29th June 2002) is an excellent article explaining exactly why using Access on the web is a really bad idea.

aqTree2

Stuart has updated aqTree, his excellent unordered-list-to-dynamic-tree script. The script is a clever piece of Javascript that uses the DOM to turn a nested unordered list in to a Windows Explorer style tree, without needing to add any extra HTML code. The new version is rather nice and less crufty now.

Tabs are not MDI

Dave Hyatt explains why Mozilla’s tabbed browsing is different to (and better than) Opera’s MDI model:

[... 162 words]

Multi-lingual PHP

A thread on SitePoint got me thinking about how PHP’s little known parse_ini_file() function could be used to easily manage multiple language versions of web site messages. Sections could be set up for each supported language, with message definitions repeated in each section. You could even have a default message section at the top which is used when a message has not been defined for a particular language. The comments on the parse_ini_file manual page suggest that the function is not particularly suitable for large scale use—PHP exits if the ini file is malformed and it can’t handle files larger than 16,382 bytes. That said, rolling a more reliable native PHP version should be a trivial project.

Funky stuff coming soon

Peter Van Dijck has unveiled the Secret Metadata Project (here and here), so I hguess it’s time for me to come clean as well :) I’m working with him on a proof-of-concept PHP application for XFML, his markup language for exchanging faceted metadata. So far I’m really enjoying the challenge—I get to play with XML and collaborate on an exciting new project with an extremely talented information architect. The application is shaping up at an impressive rate, and we hope to have something live and doing things within a couple of weeks.

XHTML 1.1 Woes

Tim Luoma on thelist poined out this table, which details the media types that can be used when serving XHTML documents. The table shows that XHTML 1.1 should not be served with a text/html Content-Type header. Unfortunately using any of the allowed headers (application/xhtml+xml, application/xml or text/xml) will cause Netscape 4 to pop up a “download file” dialog, and is likely to cause problems in other older browsers as well. Looks like I’ll be sticking with XHTML 1.0 Strict for a good while to come. I don’t really understand the hurry to move to XHTML 1.1 exhibited by some developers—to my mind, the single biggest advantage of XHTML is the fact that it allows documents to be parsed by any XML parsing tool, and this benefit is available in XHTML 1.0.

Back to normal at diveintomark

Mark Pilgrim has made his first update since finishing his accessibility series a week ago. He has launched a new site design (as previewed on css-discuss) in an attractive shade of blue, and posted a catch up of the many events that took place over the weeks that his blog was devoted to accessibility. My favourite quote:

[... 89 words]

XHTML ODP attribution

The ODP require you to display an attribution on any page that reuses ODP data. The recommended attribution fails to validate as XHTML, so I created an XHTML compliant alternative which looks visually identical (at least in standards compliant browsers) but uses <div>s with CSS styles. ODP editor in chief rdkeating25 has informally approved my alternative version on the ODP editor forums so I’m ready to go—at least as soon as I finish writing a script to parse data from their pages ;)

Another free Python book

How to Think Like a Computer Scientist: Learning with Python is a new Python text book covered by the GNU Free Documentation License and available on the web. The thread discussing it on Slashdot gives mixed reviews, with other recommended free alternatives including Mark Pilgrim’s Dive Into Python and Thinking in Python by Bruce Eckel.

FacetMaps

Yet another interesting take on XML metadata representations: FacetMaps. A facet map (as I understand it) is a way of combining facets with hierarchies, best explained by the excellent interactive three minute concept intro on the site. One of the main contrasts to XFML is that in a Facet Map Facets, rather than Topics, are the principle categorisation element. A resource in a Facet Map is linked directly to one or more facets, rather than going through a topic. The XML format is pretty simple (a lot simpler than XTM and XFML) so I might have a go at a PHP implementation at some point.

The mind of God

Red Herring: Dinner with the mind behind the mind of God, an informal interview with Sergey Brin, cofounder of Google. The “mind of God” reference stems from this quote:

[... 74 words]