June at paulcarvill.com, the home of Paul Carvill on the web 2010 at paulcarvill.com, the home of Paul Carvill on the web

link: paulcarvill at flickr

paulcarvill.com

Hi, I'm Paul Carvill and I'm a web developer. I am Head of Interface Development at LBi, Europe's largest digital agency.

I also like walking, cooking, Bollywood and rock 'n' roll.

Archive for June, 2010

links for 2010-06-09

Thursday, June 10th, 2010

links for 2010-06-08

Wednesday, June 9th, 2010
  • "The RDFa Working Group has published the First Public Working Draft of the RDFa API. RDFa API provides a mechanism that allows Web-based applications using documents containing RDFa markup to extract and utilize structured data in a way that is useful to developers. The specification details how a developer may extract, store and query structured data contained within one or more RDFa-enabled documents. The design of the system is modular and allows multiple pluggable extraction and storage mechanisms supporting not only RDFa, but also Microformats, Microdata, and other structured data formats."
    (tags: w3c rdfa)
  • Prepare yourself for exactly one million of these richly detailed, practically useless infographics. Then just go and read the updated-daily specs themselves.
    (tags: html5)
  • Googler Brad Neuberg says, "There's been a fair bit of discussion recently about what some folks mean when they say HTML5. I use HTML5 in the wider sense, so it's only right that I take a stab at defining what I mean when I say something is part of HTML5."

Internet time

Tuesday, June 8th, 2010

Me and @agentdeal have both recently been noticing an increased interest in analogue clock-based time interfaces on the web. Pleasingly, the practice has been implemented across web development disciplines, proving that it’s not just loopy Flash developers who spend their time making utterly pointless widget-y gizmos — even Steve Jobs and his panting army of fanboys can have a go!

The trend seems to have started with bbc.co.uk’s lovingly crafted piece of old test card nostalgia, made using Canvas:

It continues in spectacular fashion with the new Times paywall site thetimes.co.uk, which has a heartbreakingly pathetic laurel-wreathed carriage clock, rendered in Flash, updating in real time, presumably sitting atop a digital mantelpiece as a retirement gift to the online news industry:

The newest kid on the block, and definitely the showiest, is the timezone-straddling multi-clock Flash display of Globe Trotter, purveyor of hand made luxury luggage:

What fascinates me about all this is that surely every single example here and elsewhere is completely redundant. Is there a device anywhere that doesn’t display the time and/or date somewhere in the interface? I’m pretty sure that anything running a web browser also has a clock or calendar in view a mere eyeball movement away. But that is what makes these internet clocks so great — each is a conceit made of whimsy and I love them.

links for 2010-06-07

Tuesday, June 8th, 2010

links for 2010-06-03

Friday, June 4th, 2010
  • "Some exciting news this morning: We have reached agreement in principle to incorporate FiveThirtyEight's content into NYTimes.com.

    In the near future, the blog will "re-launch" under a NYTimes.com domain. It will retain its own identity (akin to other Times blogs like DealBook), but will be organized under the News:Politics section."

  • Bill Gates was rocking an iPad-style computing device way back 2006! "Paper is no longer a big part of my day. I get 90% of my news online, and when I go to a meeting and want to jot things down, I bring my Tablet PC. It's fully synchronized with my office machine so I have all the files I need. It also has a note-taking piece of software called OneNote, so all my notes are in digital form."
  • A Freedom of Information request to Prime Minister's Office by Tom Watson.

    "I would [like] to see both paper and electronic records of the discussions that took place around the appointment Andy Coulson as Director of Communications. In particular I would like to see all documentation relating to his status – on what terms he is employed, who pays him etc."

  • "I’ve read a bunch of articles and blogs about this whole situation by publicists and marketing folk wondering what BP should do to save their brand from @BPGlobalPR. First of all, who cares? Second of all, what kind of business are you in? I’m trashing a company that is literally trashing the ocean, and these idiots are trying to figure out how to protect that company? One pickledick actually suggested that BP approach me and try to incorporate me into their actual PR outreach. That has got to be the dumbest, most head-up-the-ass solution anyone could possibly offer."
    (tags: bp twitter)

links for 2010-06-02

Thursday, June 3rd, 2010
  • Very effective visualization of the size and scale of the BP oil disaster in the Gulf of Mexico. Move the oil slick over your house to see how big it is.
  • Lovely solar system-esque Twitter big-bang poster: "Here it is, our next Web Trend Map. No Metro lines, no URLS. This time, it’s the 140 most influential people on twitter, sorted by #name #handle #category #influence #activity. Plus: When they started tweeting and what they first said."
  • AppengineJS is a port of the App Engine Python SDK to JavaScript. Why not use NodeJS? "Well, NodeJS is a valid, if over hyped, solution. But it only helps you come up with a toy application. With 'toy' I mean an application that runs on your laptop or your staging server. For a production app you need deployment processes, multi version processes, system setup, server tuning, database scaling, backup processes, security policies, monitoring, profiling, admin console etc, etc. App Engine is the easiest way to go from toy to production (though Heroku-Node may provide a viable alternative)."

links for 2010-06-01

Wednesday, June 2nd, 2010

How to handle a Python BadKeyError exception in Google AppEngine

Tuesday, June 1st, 2010

This drove me nuts an hour tonight. If you’re trying to get an entity key using something like:

yourKey = someString
candidate = Candidate( key=db.Key(yourKey) )

and you get a BadKeyError, it’s because the string you’re sending in isn’t the right length. Also, AppEngine doesn’t return None from the Key method but instead returns a BadKeyError exception. You can handle this by doing:

yourKey = someString
try:
   candidate = Candidate( key=db.Key(yourKey) )
except db.BadKeyError:
   # handle the exception here