The other day, I came across slides from a talk on hacking unicode, that is,
using UTF-8 encoding edge cases to inject unexpected code. This post discusses
one of the issues mentioned in the talk, and explores
As mentioned in the talk, the UTF-8 spec seems to allow multiple
This morning, I decided to try to install Python 1.0. I wanted to get a
glimpse of where the language came from, how it's grown, and what it
was like in its early days. I figured an earlier version would probably be a
little simpler, and perhaps the ...
Recently came across an error trying to run gunicorn in supervisor. A command that
worked perfectly when run on its own failed when launched through supervisor. This
manifested as a repeated error stating that the port was already in use:
2014-03-07 14:25:09  [ERROR] Connection in use: ('127 ...
One of the best ways to improve your development process is to pay attention
to how the process is currently working, and where the points of pain are.
This is a complex process that involves everything from discussing how
developers feel about the process, to understanding when and how communication ...
Just a quick note to say that my company, MetaMetrics just released
django-hotrunner on BitBucket. django-hotrunner was written to
scratch our development team's own itches around running django tests. It's
a small module which provides a drop-in replacement for Django's test runner
which adds some new functionality ...
I was talking with my coworkers Jeff and Randy yesterday about some work
Randy was doing implementing a finite state machine in django, and I was
reminded of a pattern I've previously used to implement state machines
using Python's dynamic typing to do it.
Happy 2012, everyone! After a long hiatus, Stylish Programming in Python is
back. In Part 0 and Part 1, we built a program to convert kilograms
to pounds, and then cleaned it up so that the code and the interface clearly
communicate its functionality to both ...
This is the first part of a tutorial on how to write well structured
programs using python. It is intended for novice programmers who have some
familiarity with python, and have perhaps written a couple of small scripts
on their own. I will not be explaining what ...
The go diagram rendering I was working on a couple weeks ago is functional
now, at least on a basic level. It can show full or partial boards. I'm
currently rendering the image as a data URI, because it looks like the
ability to figure out where to save ...
A couple nights ago, Jayme and I had a goal-setting conversation with one of
the Oakwood Community interns, Tyler, to figure out what he wanted to get
out of his year with us, and how we could help him get there. One of the
things he expressed was that he ...
There's a pattern I see fairly often in code where someone uses a
function that returns a sequence of some sort, filters it, and then
wants to use the first result that matches the filter. It looks
something like this:
It just came to my attention that psycopg2, the python driver for
PostgreSQL database has a website again! For several months (years?)
the site was unavailable, except for an plaintext rant about the
author's ire toward Trac. Now it has several pages of nice-looking
sphinx documentation. I haven't ...