Baby Steps to a C Compiler

Writing a compiler, and learning a little low-level programming, is a very powerful way of learning more about how computers work.

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.