Simon Willison’s Weblog


December 2009

Dec. 2, 2009

Namespaces. Python’s approach to imports is possibly my favourite feature of the language. I love being able to scan up to the top of a file in my text editor and see exactly where every symbol comes from, no IDE required.

# 9:31 am / namespaces, python, import, ide, christopher-lenz

Mark Coleran’s screen design portfolio. Mark Coleran designs computer interfaces for films—Movie OS. His portfolio includes The Bourne Identity, Lara Croft: Tomb Raider, Mission Impossible 3 and many more.

# 9:34 am / mark-coleran, movieos, design

Google Analytics goes async. This is excellent news—the latest version of the Google Analytics JavaScript is designed to allow for asynchronous loading, so it won’t hold up the rendering of your page. Analytics and banner ads are the two worst offenders when it comes to slowing down page loads. Now if only a banner ad vendor would follow suit...

# 6:30 pm / google, google-analytics, analytics, ads, performance, steve-souders, async, javascript

Dec. 4, 2009

Opening Up Code, Looking For Volunteers. Zed Shaw’s Librelist is a new service for open source project mailing lists, aiming to be donation supported in a similar way to Freenode IRC. The code is all available, and is written in Lamson and Django.

# 9:25 am / open-source, mailinglists, librelist, freenode, zed-shaw, lamson, django

Dec. 5, 2009

Looking for tennis courts on aerial photos. shows a map of tennis courts in the Bay Area, identified using computer vision techniques (with OpenCV) applied to satellite photos.

# 8:56 am / satellite, computervision, tennis, opencv The rise and fall of MySpace (via) Lots of stuff about the internal politics at News Corporation. Of particular interest: MySpace have to take feature proposals to News Corp for approval. Meanwhile, Facebook are leading the industry in their use of A/B testing to figure out exactly what features their users will respond well to.

# 5:09 pm / ab-testing, buckettesting, facebook, myspace, newscorporation

What’s coming in Django 1.2 (presentation notes). I wrote up some background notes for the talk on Django 1.2 I gave at DJUGL last week.

# 5:10 pm / django, python, djugl, speaking

Yahoo! OpenID: Now with Attribute Exchange! The nice thing about this is that an e-mail address obtained from Yahoo! via attribute exchange has already been verified, so you don’t need to perform the e-mail roundtrip yourself. I expect a lot of OpenID consuming sites will end up with internal whitelists of OpenID providers who they trust to provide verified e-mail addresses, with users of sites not on the whitelist still getting e-mailed a verification link.

# 5:25 pm / verification, email, openid, yahoo, attributeexchange

Language Detection: A Witch’s Brew? The Flickr team make the case for using the Accept-Language header over IP detection to pick a site’s language, with a simple UI for switching languages in case you get it wrong. They’ve been using this for two and a half years without any significant problems.

# 5:30 pm / languagdetection, flickr, language, i18n, l10n, http

jQuery 1.4 Alpha 1 Released. Impressively the new version contains no new features at all (correct me if I’m wrong), instead focusing on significant performance improvements to the existing API.

# 5:31 pm / performance, jquery, javascript

Python’s Moratorium—Let’s think about this. Jesse Noller explains the thinking behind the Python Language Moratorium (no new language features until Python 3.3) in great detail. It’s principally about allowing both end users and alternative implementations to catch up. The standard library will continue to evolve as normal.

# 5:33 pm / python, jessenoller

Version 1 Sucks, But Ship It Anyway. I think I should probably get this tattooed on to my skull.

# 5:36 pm / jeff-atwood

Dec. 6, 2009

EtherPad is Back Online Until Open Sourced. Fantastic news. EtherPad just got acquired by Google and announced the team would be joining the Google Wave effort and the existing service would be shut down. Lots of people complained, so they’re going to keep it alive until they’ve open sourced the code!

# 9:08 am / etherpad, open-source, google, google-wave

Any sufficiently advanced damage control is indistinguishable from ethics.


# 9:31 am / ethics, hacker-news, etherpad, google

Dec. 8, 2009

Panic’s lost 1982 artwork. Found. Jaw-droppingly beautiful re-imagination of Panic’s software line-up as Atari console products, complete with box art and 80’s watercolour illustrated posters.

# 10:59 pm / panic, art, retro, atari, design

Real time online activity monitor example with node.js and WebSocket. A neat exploration of Node.js—first hooking a “tail -f” process up to an HTTP push stream, then combining that with HTML 5 WebSockets to achieve reliable streaming.

# 11:07 pm / node, javascript, comet, html5, websockets, http

Dec. 9, 2009

Mobius Sliced Linked Bagel. “It is much more fun to put cream cheese on these bagels than on an ordinary bagel. In additional to the intellectual stimulation, you get more cream cheese, because there is slightly more surface area.”

# 8:03 am / bagels, mathematics, breakfast, mobius, food, funny

Fixing Django Management Commands. Zachary Voase proposes dramatically improving Django’s management command API for Django 1.3. I’m in favour—management commands are one of the only APIs in Django that I have to look up every single time I use. My optfunc library was written partially with management commands in mind—Zachary favours the argparse library.

# 8:41 am / django, managementcommands, zachary-voase, argparse, optfunc, python

Dec. 11, 2009

GeoPlanet data available again (via) Good news: the Yahoo! GeoPlanet data dump is available again. An issue with one of their data providers meant they had to remove that supplier’s data from the dump, but it’s now been separated and the dataset is live gain. By the end of 2010 they intend to derive all of the data from completely open sources.

# 8:17 am / geoplanet, yahoo, geo, mapping

A piece with a lot of screenshots about the close tab behaviour in Google Chrome. If you click “close” with your mouse, Chrome doesn’t resize the remaining tabs until you mouse away from the area. This means you can click “close” multiple times without having to chase the close button. I hadn’t noticed this, partly because Chrome doesn’t do it if you hit Command-W. They even switch the position of the close button in RTL languages such as Arabic.

# 9:19 am / google, chrome, usability, ui, tabs

The View from Above. Andy Allan’s notes on three different projects that aerial imagery with OpenStreetMap. Andy and friends hired a small plane and took their own aerial photographs of Stratford-upon-Avon as a demo for a GIS conference. Aid agencies in the Philippines benefitted from OSM and a donation of high quality satellite imagery. Rural Georgia now has hiqh quality images from 2007 thanks to the Department of Agriculture.

# 9:32 am / openstreetmap, aerialimagery, satellites, mapping, andy-allan

Dec. 14, 2009

Recently Google Translate announced the ability to hear translations into English spoken via text-to-speech (TTS). Looking at the Firebug Net panel for where this TTS data was coming from, I saw that the speech audio is in MP3 format and is queried via a simple HTTP GET (REST) request:

Weston Ruter

# 1:13 pm / text-to-speech, translate, google-translate, google, westonruter

Going Nuts with CSS Transitions. Nat’s article for this year’s 24ways—adding special effects to images using CSS rotation, box shadows and the magical -webkit-transition property.

# 1:16 pm / webkit, transitions, css, animation, natalie-downe, 24-ways, rotation

Guardian iPhone app. Released today, ad-free, £2.39 for the application, has an excellent offline mode. I helped build the backend web service, which is a Django app running on EC2.

# 1:29 pm / guardian, ec2, django, iphone, python

Dec. 15, 2009

HTTP + Politics = ? Mark Nottingham ponders the technical implications of Australia’s decision to apply a filter to all internet traffic. Australia is large enough (and far enough away from the northern hemisphere) that the speed of light is a performance issue, but filtering technologies play extremely poorly with optimisation technologies such as HTTP pipelining and Google’s SPDY proposal.

# 3:36 pm / http, mark-nottingham, australia, google, filtering, politics, performance, spdy, pipelining

Semantic Versioning. Tom Preston-Werner provides a name, specification and URL describing the relatively widely used Major.Minor.Patch versioning system. This is really useful—by giving something a name and a spec, people can say “this project uses semantic versioning” and skip having to explain their backwards compatibility policy in full.

# 9:53 pm / tom-preston-werner, versioning, open-source, software, naming-things, semanticversioning

Unicode code converter (via) Fantastically useful tool to convert strings of characters in to every unicode and/or escaping syntax you can possibly imagine.

# 10:10 pm / escaping, unicode, tools

StartupBoeing—Starting an Airline (via) Boeing’s guide to starting your own airline.

# 10:38 pm / boeing, airline, startups

Dec. 16, 2009

Notes from the No Lone Zone. A computer scientist with a background in cryptography visits a Titan II ICBM launch complex.

# 10:02 am / security, cryptography, icbm, coldwar, history

Some Darwinists might say your optimal strategy would be to pair-bond with the older male but surreptitiously allow the younger, sexy male to fertilise you. But be careful, most men consider being cuckolded the greatest of betrayals.

The Guardian's Evolutionary Agony Aunt

# 3:20 pm / evolution, the-guardian, funny

2009 » December