Recursion, TCO, and You

Recursion is an excellent tool in a developer’s toolbox, yet it is frequently misunderstood. Used correctly, it can give programs that are fast, readable and succinct. Used incorrectly, it can produce some tricky bugs.

Trifle: Lists and CONSequences

Lists are a spectacularly important data type. Even more so for lisp languages, as a lisp program is just a text file with some list literals.

Testing Django Websites

I’ve recently developed some Django sites where I was able to ensure all features were thoroughly tested. I learnt a lot about writing maintainable tests, and I’d like to share with you.

Trifle Lisp: Being Explicit With Strings

What makes a good string datatype? What string features should a programming language provide?