P.T.C.: software and science
P.T.C.: software and science
Paul Cochrane
Software, maths, physics, and notes to my future self.
Latest Posts
Computational physics with Python: tool setup
Imagine you want to learn computational physics and Python as an advanced high-school student or undergraduate. Where to start? Assuming no prior programming experience, a quick...
I think the bots don’t like me anymore
After about five months of AI bots hungrily munching on my blog’s free training data, they seem to have abruptly stopped. It’s a good sign, but given they seem to be hammering...
Building LaTeX documents on GitHub
Do you have LaTeX projects on GitHub? Ever wondered how to get GitHub to build them automatically? Here’s how I do it. Building LaTeX documents via TeXLive on GitHub. Image...
Finding a fisherman’s fastest path from shore to boat
When tutoring high-school students in maths and physics, I sometimes stumble across interesting problems. In this scenario, a fisherman seeks to determine the fastest route from...
German Perl/Raku Workshop 2026 (Berlin): a report
Last week, the 28th edition of the German Perl/Raku Workshop took place in Berlin. It was great to see some familiar faces (as well as some new ones!) to discuss computing, our...
Avoiding empty strings in non-nullable Django string-based model fields
Trying to save a null value to a non-nullable field in Django will raise an IntegrityError, right? Well, not always. It turns out that Django saves string-based model fields as...
StreetComplete: Pokémon Go for map geeks
A few years ago, while recuperating from our at that time “favourite” dreaded lurgy,1 I stumbled across StreetComplete, an Android app to update OpenStreetMap data in a fun and...
Forwarding a Vagrant-based Jekyll dev server to its host
Forwarding port 80 or 22 from Vagrant virtual machines to their host system is fairly simple. Piping non-privileged ports outside the VM–from, say, a development HTTP...
Changing a hostname in Debian seems harder than necessary
Changing a host’s name in Debian1 is a two-step process, and there doesn’t appear to be a more direct method. This seems odd to me, somehow. Because I stumbled upon this issue...
Logging in to a VPN shouldn’t cause DNS to stop working, right? Well, you’d like to think that, wouldn’t ya? And the problem wasn’t PEBKAC this time, either. Finding the right...
My (current) blog article writing process
As with my work, when I write articles on my blog, I have a focus on quality. Here I describe my current writing process, primarily to document things for my future self. From...