These are the 115 blog entries for 2009, organized by date, newest first, and separated into months. There is also a complete archive.

December 2009

Mon 28:

SSAO JS Snowman WTF?

Sun 27:

The Historical Thesaurus of the OED

Sat 26:

BibliOdyssey

Tue 15:

Looking for a Python developer

Sat 5:

Coverage.py v3.2

Wed 2:

Prettying XML in Komodo

November 2009

Mon 30:

Relaxed muscles in motion

Sun 29:

Python packaging mishegas

Tue 24:

Coverage.py v3.2b3: now with fewer memory leaks!

Sun 22:

Memory leak mystery

Fri 20:

On business English

Tue 17:

Ditaa: DIagrams Through Ascii Art

Tue 10:

Coverage.py v3.2b1: branch coverage!

Left vs. right, diagrammed

Mon 9:

Lego pop-up temple

Thu 5:

Continuous integration for Python with Hudson

Tue 3:

Life-sized Link

Hey Jude, flowcharted

Sun 1:

Magritte Mac sticker

Measuring tire pressure at the pump

October 2009

Sat 24:

The scalability of programming languages

Fri 23:

Mozilla Raindrop

Wed 21:

Physical type

Mon 12:

Kiel Johnson

Sun 11:

Today's KenKen

Sat 10:

Animated Turkish New York Times

Wed 7:

DevDays Boston

Sat 3:

Running the same code on Python 2.x and 3.x

September 2009

Sun 27:

Coverage.py v3.1 beta 1: Python 3.x and Cobertura output

Thu 24:

Line continuations from tokenize.generate_tokens

Wed 16:

Accidental haikus

Fri 11:

Cheese or Font?

Thu 10:

Why numbering should start at zero

Sat 5:

Xenocode and multiple IE's

Wed 2:

Threading emails

August 2009

Mon 31:

PNG optimization

Sun 30:

Weird URL data encoding

Sat 29:

Explaining Python at DevDays Boston

Sat 22:

Plus signs in email addresses

Humane email validation

Tue 11:

Eunice Kennedy Shriver, 1921–2009

Sat 8:

Super awesome cheap ball

Wed 5:

Mysterium 2009

July 2009

Wed 29:

Movie title stills collection

Tue 28:

Back from Paris

Mon 13:

Coverage.py on Python 3.x

Sun 12:

Palin on the loose

Mon 6:

Coverage.py v3.0.1

Sun 5:

A nasty little bug

June 2009

Fri 26:

Conover Plastics

Thu 25:

Cog 2.2

Fri 19:

Bare-bones basic Mercurial for Subversion users

Tue 16:

47

Mon 15:

Bathsheba and Bulatov

Sat 13:

Coverage v3.0

Fri 12:

Quick links: short, right, anti

Wed 10:

Off the beaten path in Paris

Mon 8:

How to be happy in business

Sun 7:

Geek clock

Real-world cloud computing

Fri 5:

Side project endgame

Tue 2:

Pixar's Up

May 2009

Fri 29:

Simon's optfunc

Buying online and offline

Mon 25:

Mostly wrong

Sat 23:

Objectified

Wed 20:

Mona Tweeta

Sat 16:

Coverage v3.0 beta 3

Fri 15:

Log in as a user

Sun 10:

Web font embedding

Sat 9:

Running a Python file as main, take 2

Wed 6:

OS truce?

Tue 5:

Hg ftw

April 2009

Thu 30:

Coverage v3.0 beta 2

Wed 29:

Stop motion with wolf and pig

Wed 22:

Between the folds

Mon 13:

Predicting the future of marriage equality

Sun 12:

Jimfl's things to look at

Tweenbots in the city

Wed 8:

Post 2000

Tue 7:

Running a Python file as main

Wed 1:

Subjective-C

March 2009

Mon 30:

PyCon 2009 notes

Ingrid's Twitter song

Wed 25:

A Whirlwind Excursion through Python C Extensions

It's all greek to me

Sun 22:

Obama's special joke

Sat 14:

Happy Pi Day

Wed 11:

Subversion changelists

Mon 9:

The cult of done

Sun 8:

Watchmen cake

Light calligraphy

Sat 7:

Coverage.py v3.0b1

Thu 5:

Hodgman's meh

Wed 4:

Square root of Christmas

Sun 1:

Code hosting choices

February 2009

Thu 26:

Tweet stream

Sun 22:

Titus wouldn't know a sensational title if it bit him in the ass

Fri 20:

Fast geometric hashing for automated astrometry

Print css

Fri 13:

You asked for it

Tue 10:

C extensions at the Cambridge Python meetup

Sun 1:

Infrastructure for modern web sites

January 2009

Mon 26:

Annoyed at iPod video

Sun 25:

Browser security handbook

Sat 24:

Arabic logos

Wed 21:

Frozen soap bubbles

Sun 18:

Rules of database app aging

Tue 13:

Dieting cavemen on twitter

Sun 11:

Quick links: corkscrew, tag, bubbles

Fri 9:

PES pixilations

Wed 7:

Your IDE of choice

Sat 3:

Oldest files meme: PSCom

Thu 1:

Django special character tag

Happy 2009