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...

It’s not DNS; it was DNS

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...
Shuffle Search Random