Simon Willison’s Weblog


939 items tagged “python”

The Python programming language.


Partial OpenID provider implementation from It’ll take a while to package up provider support for django-openid, but in the meantime here’s some partial, incomplete, poorly documented example code ripped from Hopefully this will give people trying to figure out the JanRain Python library a bit of a leg up.

# 12th July 2007, 6:48 pm / idproxy, openid, django, python, partial, europython, europython07

gSculpt. Powerful open source modelling software, written in Python and demonstrated (to much applause) as the last lightning talk of EuroPython 2007.

# 11th July 2007, 11:48 pm / python, 3d, modelling, open-source, europython, europython2007, gsculpt

pybraces. I didn’t know this was possible: a source level filter implemented as a custom -*- encoding: braces -*-

# 11th July 2007, 2:48 pm / python, encoding, hack, tim-hatch, braces

Bazaar/Avahi mDNS Plugin. Adds ZeroConf support to Bazaar, so you can “bzr share” a branch over the local network and “bzr browse” to discover shared branches. Designed for sprints with a local network but no internet access.

# 10th July 2007, 10:17 am / sprints, python, bazaar, zeroconf, avahi, plugins

PyCon UK 2007. The weekend of the 8th and 9th of September, currently accepting talk submissions. I’ll be running a Django tutorial session.

# 10th July 2007, 9:42 am / pycon, pyconuk, conferences, python, django

Storm. New Python ORM from Canonical, emphasising multiple database support, intelligent local cache invalidation and a thin layer over the underlying SQL.

# 9th July 2007, 8:44 am / sql, orm, storm, canonical, python

The Django Web Application Framework. I’m slowly pushing my presentations from the past couple of years up to Slideshare. This is a Django talk from April 2006, so it’s a little out of date.

# 5th July 2007, 1:07 am / django, accu, slideshare, speaking, slides, python

PyMOTW: subprocess. Better documentation for the swiss army knife of process control tools.

# 4th July 2007, 10:18 am / subprocess, python, doug-hellmann

Web hosting landscape and mod_wsgi. Graham Dumpleton explains how mod_wsgi’s daemon mode should provide secure Python deployment for commodity hosting providers.

# 2nd July 2007, 3:47 pm / modwsgi, grahamdumpleton, wsgi, python, hosting

dnspython. Python DNS toolkit—seems like the kind of thing that should be in the standard library.

# 1st July 2007, 11:55 am / python, dns

Python, Mac OS X, and Readline. This worked for me, though you need to already have gcc and svn installed. It’s crap like this that made me switch to Ubuntu on Parallels for most of my Python development.

# 30th June 2007, 10:24 pm / osx, python, rant, ubuntu, parallels, readline

Python 3000 Status Update. Doesn’t look like we’ll get multiline lambdas, but the other stuff looks great. I’m not looking forward to years of Python 2 and Python 3 co-existing and splitting the community though (ala PHP 4 and 5).

# 19th June 2007, 1:49 pm / python, guido-van-rossum, php

Mac OS X Leopard: UNIX. Leopard ships with DTrace, and it’s been hooked in to Java, Ruby, Python and Perl.

# 11th June 2007, 11:05 pm / java, ruby, python, perl, dtrace, leopard, osx

google-diff-match-patch (via) Robust algorithms to perform the operations required for synchronizing plain text, in Java, JavaScript and Python.

# 9th June 2007, 6:15 pm / neilfraser, google, open-source, diff, java, javascript, python

Wait For It (via) Neat WSGI middleware from Ian Bicking that launches a thread for every incoming request and watches for slow responses; if something is taking too long it returns a “please wait” page to the user and polls for completion.

# 9th June 2007, 4:53 pm / wsgi, python, middleware, ian-bicking

Talking to the internal GPS in my N95 from Python. Thanks to a new LocationRequestor module for Python Series 60.

# 6th June 2007, 10:31 am / pyseries60, python, gps, nokia, nickburch Lightning fast lookups of API documentation; includes Python docs, YUI, HTML, CSS and lots more.

# 5th June 2007, 6:05 pm / css, html, yui, python, docs, documentation, gotapi

’tie’ considered harmful (via) Rich Skrenta on the disadvantages of abstractions like Perl’s tie, which lets you create hash data structures that aren’t actually hashes. Operator overloading (as seen in Python) suffers the same problems.

# 30th May 2007, 11:11 pm / operatoroverloading, perl, python, tie, richskrenta

Nat and I had a bit of a mini-hackday this bank holiday Monday. Nat’s been doing a great job summoning local geeks out of the woodwork with Oxford Geek Nights event, but it’s still pretty hard to find other interesting events in the Oxfordshire area. It’s not that there aren’t any, it’s just that the geek community in Oxford is currently pretty fragmented.

[... 295 words]

Levenshtein. Python C extension for Levenshtein distance and other advanced diff functions.

# 27th May 2007, 6:51 pm / python, levenshtein

Test stubbing httplib2. Nice demonstration of monkey-patching as part of unit testing in Python.

# 10th May 2007, 11:24 pm / monkeypatching, python, testing, joe-gregorio, httplib2

Just because Java was once aimed at a set-top box OS that didn't support multiple address spaces, and just because process creation in Windows used to be slow as a dog, doesn't mean that multiple processes (with judicious use of IPC) aren't a much better approach to writing apps for multi-CPU boxes than threads.

Guido van Rossum

# 8th May 2007, 9:21 pm / guido-van-rossum, threads, python, ipc, java, windows

The One True Object (Part 2). Jim Hugunin describes how the DLR let’s Python / JavaScript / Ruby talk to each other using a message passing abstraction.

# 5th May 2007, 1:27 am / dlr, jimhugunin, microsoft, python, javascript, ruby

The joy of pdb.set_trace(). I use nosetests --pdb-failures as my main entrypoint for Python debugging—it starts the debugger at the first failing test.

# 25th April 2007, 11:37 pm / pdb, python, debugging, testing, nose

django-logging. Looks neat—includes the ability to use Python’s standard logging module to log messages to a footer appended to your site’s HTML output.

# 24th April 2007, 6:50 am / logging, django, python

Turn your Django application in to an OpenID consumer

I’ve just put the finishing touches on the first releasable version of django_openidconsumer, a package that makes it easy to add OpenID consumer support to any Django application.

[... 229 words]

modwsgi. Apache module (written in C) for hosting Python WSGI applications, no mod_python required. Includes Django integration instructions. Has anyone tried this out?

# 14th April 2007, 9:48 am / django, apache, wsgi, python

Avoid IE Brokenness When using Vary and Attachments (via) Django middleware that works around a bug in IE where external applications fail to load content that was served with a Vary header.

# 9th April 2007, 9:41 am / django, ie, middleware, http, python

How to Write a Spelling Corrector. Example code in Python, by Peter Norvig.

# 8th April 2007, 9:42 pm / peter-norvig, python, spelling