When using Django database models and adding a calculated property of some kind, you should probably ensure it will be efficient in bulk even if that isn’t needed yet.
A post to help illustrate and popularise the concept of 2-D time, a technique which is essential for some situations.
A list of some exceptions to the principle of “You Ain't Gonna Need It” — that is, times when doing a bit more up front usually pays off.
Analysis and examples of the popular high-level pattern of making all the things in your system conform to a common interface.
Tips for winning the automated testing battle.
Announcement of my guide to writing Django Views.
Why I think we need the context of a language to have meaningful debate about language features.
An attempt to put something down about the idea of self-hosting software
An example that might help a new programmer struggling with the insanity of counting from zero.
Some attempts to solve the seating headache with software.
The order of service requires some Python hacking
Using my programming skills for higher purposes, part 1
Some answers and questions on the subject of bundling copies of dependencies in a project
A response to "Things you should test" by Noah Sussman.
O gods of software development and operations, I have sinned. Your anger falls on me, and I feel your wrath...
My bash prompt, including git/hg branch name.
Writing good quality documentation for the software libraries you publish always matters. Otherwise, you are doing the world a disservice by publishing.
Class based views are very cool. I am starting to clean up an existing project using them, and lots of existing views are turning into declarative code. But it makes me worried about the ravioli effect.
I discovered hgview, a really great replacement for hgk.
How can I get the Mercurial Eclipse plugin to just recognise an existing folder as a Mercurial repository?
A lot of discussion recently has missed the point: the big question is whether the terms of any software licence are really relevant to dynamic languages...
A simple way to use Mercurial Queues in a Subversion working directory to manage patches before committing to Subversion.
Why Haskell's 'Maybe' totally pwns Python's 'None' and null pointers.
Attempts to use Haskell+ODBC under Windows.
A rant about how annoying programming in C# is, really.
Paul Graham was right again...
An attempt to debunk some of the '20 minute web app' hype that is so prevalent at the moment, and present a more realistic and balanced account of the Django site I have just finished.
I've noticed in Python and in Django I almost always create a module or a template by starting with a completely empty file, and typing...
Ever been refactoring code or HTML templates and wanted to compare two chunks of text? This is what you need if you use KDE...
I wrote a quick Django application to help me develop compliant web sites, and put it together so it's easy to distribute...
How to create a chroot and run X applications from it, side by side with windows from your normal system.
It's very satisfying when a feature you programmed is finally tested...
Here's my solution to writing an `accumulator generator
`_ in PHP, listed here because Paul Graham is no longer accepting submissions...
Source code for my new blog is now available
I finished my new blog software, back to actually writing some blog entries...
GMail invitations up for grabs, and whines about living with other people's code
A wonderful tool for Linux developers
My paid work is pretty dull, but occasionally there is the satisfaction of doing a nice bit of coding...