Answers to questions nobody asked

Who are you?

I’m Tim Martin, a working programmer / small-time CTO. At the time of writing I’m working for these people, but I’ve done many different things over the years.

I started this blog because I like to write and I’m doing a lot of Python at the moment, and writing about things is a good way to improve my knowledge. So far I’ve been discovering new things about Python that I could write about at roughly twice the pace I actually write things, so it’s looking like a good project to continue.

What’s up with the title of this blog?

I always find it hard to find suitable names for blog projects, and I prefer to get writing quicker and not spend time coming up with something. I ended up with this via the usual combination of “mentions keyword of interest” and “domain name is available”.

I don’t really like this as a name, but I’m not going to spend time thinking of a better one now. Maybe in a year’s time, if and when more than a handful of people are reading it.

Why do you say “python” when you mean “cpython”?

I pretty much only talk about cpython (the original Python runtime, written in C) in this blog. I’m well aware that there are other Python implementations, and they are interesting. However, I needed to pick one implementation to focus on and cpython is the one I’m most familiar with.

Sometimes I’ll say something is true of the python runtime, when it’s only true of cpython and not other runtimes. You’re strongly encouraged to treat everything I say as guidelines towards things you can investigate yourself, rather than as unquestionable truths. Part of this might be to figure out whether things work differently in your version of Python. Things change over time even with cpython, so something I write today might turn out to be wrong by the time you read it.

It would be better if I had a deeper knowledge of other pythons and was more precise in describing the distinctions and commonalities between them. I hope as part of writing this blog that I will eventually acquire this.


I’ve decided to set up a new blog to record my experiences with writing Python.

I’m using pelican as the blogging engine, which is my first attempt at writing a blog using a static blogging system. The idea is that dynamic blog engines are wasteful by building pages up on the fly when they hardly ever change. Instead, I rebuild all the blog pages when I make a new post, which adds a bit of overhead to the posting process but makes viewing the blog faster. I’ve also put the blog behind CloudFront, which will cache the page close to you on the network and thus cut down on network latency.

So far I’ve been happy with the static blogging experience. The only obvious downside is that the blog doesn’t accept comments. I’ve run a WordPress blog for many years and got maybe 10 non-spam comments, so this obviously isn’t a big problem. I’m going to put comments on a Google+ page, to give somewhere to post comments if you wish to.

Update in March 2018: I ended up moving away from the static blog hosting in the end. I spent an inordinate amount of time trying to set up an automated build pipeline on AWS, but it never worked as smoothly as I wanted. I’m back on WordPress now, although I am using CloudFront to hopefully make the site fast and scalable.