garethrees.org

Scalable vector triangulations
2013-06-15

Generating Scalable Vector Graphics (SVG) from Python.

Square triangulations
2013-06-14

Computing the number of ways to triangulate an oriented n×n square using only lines joining the 4n integer points around the edge of the square.

User options considered harmful
2013-06-13

The desire to add a user option often indicates that you have skimped on a important piece of usability work and are trying to put off doing it.

Software archaeology and technical debt
2013-06-12

It doesn’t take long to reach a ‘mature programming environment’ in which complexity is overwhelming and change is expensive and error-prone. We’re all programmer–archaeologists now.

The tabular method
2013-06-11

Dynamic programming is an important technique for writing combinatorial algorithms. But the name sucks!

Circular logic
2013-05-15

Truth tables, graph colourings and a surprising sequence in Project Euler problem 209.

Language-oriented programming
2013-05-09

“Languages are not just for describing algorithms to computers: they are for communication with other people.”

Emacs/Perforce integration: back from the dead
2013-05-01

I’ve forked the abandoned Emacs/Perforce integration, and started fixing it. In particular, it no longer hangs Emacs when it can’t connect to the Perforce server.

More ...