Latest entries

See also: about the author, about this site.

A real Python "wat"

A few weeks ago I went through and explained the various items in a list of “Python wats” — behaviors of Python which seemingly made no sense. Calling them “wats” is a bit of a stretch in most cases, though, because most of them were simply consequences of fairly reasonable design decisions in how Python or its standard libraries work, but presented in ways which obscured what was actually going on.

Lest I be accused of defending Python too much there, I’d like to point out an absolutely genuine “wat” moment ...

Entry published November 15, 2015. Read full entry.

Destroy all hiring processes

Finding work as a software person kind of sucks sometimes.

Actually, let me strike the “kind of” from that sentence. It just sucks, full stop. Plenty of people have complained that being on the hiring side of the equation is terrible — we don’t have any reliable ways to identify people who know how to code and do it well. And it’s true: we, as an industry, suck at this. Even among the most common demographics for developers (American, male, white, skewing young and middle-class background), we are absolutely abysmal at ...

Entry published October 19, 2015. Read full entry.

Wat's up, doc?

In much the same vein as Gary Bernhardt’s wonderful talk about JavaScript, there’s a collection of Python “wat” moments which goes around every so often. There’s also an associated quiz linked from that page (which I won’t spoil; you can read through it yourself and then check your answers). Every language has some unintuitive — or at least seemingly-unintuitive — bits, and Python is no exception. But if you’re working in Python, understanding why (or, perhaps more appropriately, wy) these snippets of code behave the way they do is interesting ...

Entry published October 13, 2015. Read full entry.

django-registration updates

Since announcing its resurrection a couple weeks ago, I’ve been working on django-registration pretty much continuously. There are over 30 commits since that last post, and I think it’s finally getting close to release quality; what’s left at this point is, I think, mostly stylistic cleanups and editing and pushing some more documentation.

There are a couple big highlights from the past few weeks’ work, and I’d like to take a moment to go over those in a shameless attempt to build up hype and excitement for the forthcoming release.

No more ...

Entry published September 6, 2015. Read full entry.


I mentioned a couple weeks ago that lately I’ve been in the process of providing updated releases for all the various open-source projects I maintain, and specifically mentioned a desire to resurrect django-registration which, once upon a time, was the most popular thing I’d ever written. Over the past week I’ve been focusing more heavily on that, and now it’s time to start talking about a release.

Ancient history

I’ve always felt pretty strongly that Django’s killer feature is its concept of an application; the ability to wrap up a chunk of ...

Entry published August 13, 2015. Read full entry.