Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

MySQL Connector/Python. A pure Python implementation of the MySQL client/server protocol, meaning you can talk to a MySQL server from Python without needing to first install the MySQL client libraries (which often requires compiling from source).

# 2nd October 2009, 2:16 pm / databases, django, mysql, python

TypePad Motion. Launched today at FOWA, Motion is a microblogging application written in Django that uses the TypePad API for all persistent storage—which means you can deploy it as server-side code on your own site, but scaling horizontally is handled by TypePad (you just need to scale out the state-free front end).

# 1st October 2009, 3:51 pm / django, fowa, motion, python, sixapart, typepad

GeoDjango and the UK postcode database. Excellent introduction to GeoDjango using the recently leaked UK postcode database. Obviously, you should only follow the steps in this tutorial using the officially licensed database, available for a mere £1,700.

# 30th September 2009, 2:25 pm / chris-lamb, django, geodjango, geospatial, postcodes, uk

YUI 3.0.0: First GA Release of YUI’s Next-Generation Codeline. YUI 3 has some very neat ideas—everything is dynamically loaded, so you start with a tiny bootstrap script and call YUI().use(’module-name’) to load just the code you need. Congratulations to the team.

# 29th September 2009, 11:38 pm / javascript, libraries, yahoo, yui, yui3

Google Docs OCR. Whoa, the Google Docs API just got really interesting—you can upload an image to it (POST /feeds/default/private/full?ocr=true) and it will OCR the text and turn it in to a document. Since this is Google, I imagine they’ll also be using the processed documents to further improve their OCR technology.

# 29th September 2009, 9:57 pm / apis, googldocs, google, ocr

Simon Willison (simonw) on Twitter. I just realised I’ve never actually linked to my Twitter account on my blog. This is mainly an experiment to see if doing so makes my follower count go up...

# 29th September 2009, 9:49 pm / experiment, me, simonw, twitter

Python Logging 101. A really useful introduction to Python’s logging module by that module’s author, Vinay Sajip.

# 29th September 2009, 6:40 pm / logging, python, vinaysajip

openstreetmap genuine advantage. The OpenStreetMap data model (points, ways and relations, all allowing arbitrary key/value tags) is a real thing of beauty—simple to understand but almost infinitely extensible. Mike Migurski’s latest project adds PGP signing to OpenStreetMap, allowing organisations (such as local government) to add a signature to a way (a sequence of points) and a subset of its tags, then write that signature in to a new tag on the object.

# 29th September 2009, 9:49 am / cryptography, geospatial, mapping, michal-migurski, openstreetmap, pgp

“That’s maybe a bit too dorky, even for us.”. Astonishingly exciting: Flickr now have machine tag support for OpenStreetMap—tag a photo with osm:way=WAY_ID and Flickr will figure out what OSM feature you are talking about and link to it with a human readable description.

# 28th September 2009, 10:39 pm / flickr, machinetags, openstreetmap, photography

Google’s first press release. From 1999, announcing $25 million in equity funding. I’m impressed to see that the mission statement already stated “Google’s mission is to organize the world’s information, making it universally accessible and useful.”

# 27th September 2009, 8:35 pm / funding, google, pressrelease

shunit2 (via) xUnit style testing for shell scripts.

# 27th September 2009, 7:34 pm / bash, shell, shunit2, testing, unix, xunit

MySQL, Python and MacOS X 10.6 (Snow Leopard). I gave up on compiling things when I upgraded to Snow Leopard—I’m back to running Ubuntu in a VMWare instance, mounted over Samba so I can still use TextMate.

# 25th September 2009, 10:14 pm / macos, mysql, python, samba, snowleopard, textmate, ubuntu, vmware

Justniffer. Packet sniffing tool that can output sniffed HTTP traffic formatted the same way as an Apache access_log file.

# 25th September 2009, 10:12 pm / apache, justniffer, logging, networking, packetsniffing

OpenID: Now more powerful and easier to use! The OpenID+OAuth hybrid protocol (where a user can sign in with OpenID and grant an application access to their OAuth protected resources such as a contact list at the same time) is now supported by Google, Yahoo! and MySpace—this feels like OpenID finally coming of age.

# 25th September 2009, 9:08 pm / google, hybrid, identity, myspace, oauth, openid, yahoo

Adding signing (and signed cookies) to Django core. I’ve been increasing my participation in Django recently—here’s my proposal for adding signing and signed cookies to Django, which I’d personally like to see ship as part of Django 1.2.

# 24th September 2009, 7:31 pm / cookies, cryptography, django, security, signedcookies, signing

Gmail for Mobile: Reducing Startup Latency. Cheeky iPhone optimisation trick—parsing 200 KB of JavaScript takes an iPhone 2.2 device 2.6 seconds, so Gmail embeds code components in /* comments */ in a script tag and evals them on demand later on when the features are needed.

# 23rd September 2009, 10:29 pm / google, iphone, javascript, optimisation, performance

More technical details about Google Chrome Frame. It’s implemented as a Browser Helper Object, uses IE’s cookies, history and password-remembering, includes the WebKit developer tools and appends “chromeframe” to the regular IE user agent string—though not apparently the Chrome Frame version itself.

# 23rd September 2009, 10:20 pm / bho, chrome, chromeframe, google, internet-explorer

PubSubHubbub for Google Alerts. “Think of it as a search API that tells *you* when it finds new results.”

# 23rd September 2009, 9:30 pm / google, google-alerts, pubsubhubbub, search-engines, webhooks

Diesel. Yet Another Asynchronous Python Comet Library, of interest because this is the first one I’ve seen that uses Python’s generator coroutines, taking advantage of the return value of the yield statement to feed messages in to a generator function. Currently only works on Python 2.6 on Linux due to a dependency on 2.6’s epoll support.

# 23rd September 2009, 5:15 pm / async, comet, diesel, generators, python

Red Dust. Tom Coates used Flickr’s new Galleries feature (which lets you build a curated collection of up to 18 photos from other Flickr users and add your commentary) to construct a stunning compilation of photos of the Sydney dust storms.

# 23rd September 2009, 2:20 pm / duststorms, flickr, photography, sydney, tom-coates

Introducing Google Chrome Frame. Here’s what Alex Russell has been up to at Google: An IE plugin (for 6, 7 and 8 on all Windows versions) which embeds the Google Chrome rendering engine—sites can then opt-in to using it by including a X-UA-Compatible meta tag. Seems to be aimed at corporate networks which mandate IE for badly written intranet applications—they can roll this out without retraining users to use another browser or breaking their existing in house apps.

# 23rd September 2009, 9:57 am / alex-russell, chrome, chromeframe, google, internet-explorer, webkit, xuacompatible

cloud-crowd. New parallel processing worker/job queue system with a strikingly elegant architecture. The central server is an HTTP server that manages job requests, which are farmed out to a number of node HTTP servers which fork off worker processes to do the work. All communication is webhook-style JSON, and the servers are implemented in Sinatra and Thin using a tiny amount of code. The web-based monitoring interface is simply beautiful, using canvas to display graphs showing the system’s overall activity.

# 21st September 2009, 11:09 pm / canvas, cloudcrowd, http, json, message-queues, ruby, sinatra, thin, webhooks, workers

PostBin. Handy debugging tool for webhooks—create a TinyURL-style URL, then see a log of any POST requests made to that address.

# 21st September 2009, 11:03 pm / http, post, postbin, webhooks

homebrew. Exciting alternative to MacPorts for compiling software on OS X—homebrew avoids sudo and defines packages as simple Ruby scripts, shared and distributed using Git.

# 21st September 2009, 6:51 pm / git, homebrew, macos, macports, ruby

django-debug-toolbar. The new panel styling for the Django debug toolbar is really slick—here’s a neatly produced screencast demonstrating it (with Gypsy Jazz accompaniment).

# 21st September 2009, 6:36 pm / debugging, django, django-debug-toolbar, gypsyjazz, screencasts

Fabric factory. Promising looking continuous integration server written in Django, which uses Fabric scripts to define actions.

# 21st September 2009, 6:35 pm / continuous-integration, django, fabric, fabricfactory, python, testing

Welcome to Django Dose. Launched at DjangoCon, a new Django community site designed to be a successor to TWiD, still with (shorter) podcasts but also featuring more news, articles and screencasts.

# 21st September 2009, 6:21 pm / community, django, djangocon, djangodose, podcasts, screencasts, twid

Effective A/B Testing. Impressively comprehensive presentation on A/B testing, from theory to practice to statistical analysis of the results.

# 13th September 2009, 11:49 pm / ab-testing, ben-tilly, buckettesting, statistics

The Guardian 1000 Novels Everyone Must Read in FluidDB. Nicholas J. Radcliffe loaded the Guardian’s list of 1000 novels in to FluidDB, where the ability for users to add their own ratings style metadata makes it an ideal dataset for exploring the capabilities of the platform.

# 13th September 2009, 11:48 pm / fluiddb, guardian

Years

Tags