Training – 25th August 2019

A hot day today, 30degC in fact, did one lap around the park, and the sweat was pouring, not from exertion, but from the heat.

Also I’ve noticed. Those dips you see in the chart? They are when I’m turning a sharp corner. I guess since I’m not sprinting through the corner, the GPS logs it as a slow speed. Interesting fact I’ll have to bear in mind for future.

What’s even more interesting, is that FitBit logs the run slightly differently

You can see the dips here too, but definitely not as extreme as the one in Strava.

Two Generals

It’s been a long while since I posted anything of interest other than fitness and running, so here’s something I found that isn’t fitness related.

Tom Scott (Twitter: @tomscott) posted this video about the Two Generals problem. Basically it centres around two generals and asks how they can synchronise communication to ensure they two something at the same time.

In multithreading computing, including back when I was learning Java, we had a synchronized keyword which ensure only one thread went through a block of text. But here, you want two threads to proceed at the same time. How do you ensure that? Turns out there’s no guaranteed way.

Even TCP requires a 3-way handshake aka the SYN, SYN-ACK, ACK (https://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml), but if any of those messages drops, the connection never establishes.

Of course you could just use the UDP method of “fire-and-forget” and say “Hey, General B, we’re going to attack at 8pm, catch up if you have to”, and have dropped packets (or casualties in the two generals problem)

This is an interesting thought experiment and one I hadn’t considered during my time learning parallel and threaded programming.

Oh well, you learn something new every day, I guess.

%d bloggers like this: