Because people won't put up with much if there's no benefit for them anyway.
Recently my wife and I were trying to work out why she couldn't submit her address details to a website, even though I could. As we watched her behaviour in filling out the form, we encountered error after error: or rather, exceptional circumstance after exceptional circumstance. And it was clear that very few of the circumstances had been considered, that error handling was the absolute bare minimum, that the form was set up to be almost a trial to use.
It's our BBC. It's your BBC. Tell the Trust what you want.
Everyone in a particular demographic will now know that the BBC director general, Mark Thompson, has announced a plan to close two of the most Reithian of radio stations, 6Music and the Asian Network. If you're up in arms about these closures, you can still do something about it.
Wrapping python-boto in scriptable magic to back up your websites to S3
Simon Willison put together an excellent short-and-simple backup script over a year ago now, and I've used it intermittently to make backups. It takes files, whole directories, or the output of shell commands, and wraps it all up into a datestamped gzip file, before sending the whole thing up to an Amazon S3 account. It's a nice little piece of kit, in other words.
Social media meets being social.
There's been a change in the speakers for Oxford Geek Night 16 on Wednesday 17 February. We're really happy that Chris Thorpe will still be giving his keynote talk, about how social media is all about the social and not about the media. Alongside Chris' talk will be a keynote from Oxford's very own Garrett Coakley, who will be talking about how to run a successful online community.
Wednesday 17 February: stick it in your diaries.
After a slightly longer break between Oxford Geek Nights to make room for Christmas and the rest, I'm pleased to announce the sixteenth Oxford Geek Night will be on Wednesday 17 February, 2010. That's next year! Well, in just under two months' time.
Blocks are a bit neglected in Drupal: here's one way to use them more flexibly
Blocks aren't what you might call "first-class citizens" in Drupal 5 or 6 (or 7, as far as I'm aware). Block functionality is provided by a range of functions and database tables, but ultimately there's no thingness, no Ding an sich tying them together as an object the way that a node of content or a user might be.
You can move much of your theme logic out of template.php in Drupal 5, by following Drupal 6 code patterns
One of the useful aspects of Drupal 6's themeing is theme preprocessing. This occurs in between a module (or Drupal core) calling theme() and rendering the actual template file (or function), and arbitrarily alter the variables passed between the module layer and the theme layer. In this way preprocess hooks act much like Django's context preprocessors, providing ways for modules to "communicate" at the point of themeing.
Panels and panes are like regions and blocks, done properly if a bit madly
When finished this site will implement several different layouts: blogposts, "static" pages, short "nuggets", blog archives, taxonomy listing and probably a bespoke front page. Although these will all have the same underlying seven-column layout, that can still present some problems that are usually solved in Drupal with many different theme files and a lot of "regions" in which you can put "blocks" of content.
You might think it's coincidence, but we plan all of these clever yet subtle connections meticulously. Honest.
OGN15 is in a bit over a week's time, on Wednesday 25 November. It promises to be a great evening as usual, with varied keynote and microslot talks and the usual Oxford(shire) geek chat and networking.
Hierarchical grid comes next. And some proper design chops, maybe.
In the spirit of getting it out there, I've now begun implementing a columnar grid system on my site. As discussed in Mark Boulton's excellent talk at DrupalCon Paris 2009, and reported briefly in my live notes from the conference. such grid systems are a basic underpinning of consistency and visual clarity on a site. You start at the grid, then decide how your actual page elements are going to fit into it.