Stavros Korokithakis writes about backups, WireGuard, SSH keys, passkeys, and his own hardware and software projects.
One commenter calls him a favourite HN poster with well-turned phrases; others link his posts on Netlify hosting and compressing images with Stable Diffusion.
I don't currently see a 500 ms difference, so maybe they figured something out. From my shell, I see about 35 ms to http://www.stavros.io/404 and about 85 ms to https://www.stavros.io/404 (the HTTPS site serves actual content and the HTTP a redirect, which confounds the numbers).
The HTTPS server is currently offering me a 4096-bit-RSA certificate, signed by the 2048-bit-RSA StartCom class 1 intermediate CA. There's no security benefit in a 4096-bit cert signed by a 2048-bit one, since any attacker capable of breaking 2048-bit RSA but not 4096-bit is just going to attack the CA cert and sign their own forged cert (and any attacker sorta capable of breaking 2048-bit RSA will dedicate their brute force effort to CA certs). And to my knowledge, all current CA intermediate certs are 2048-bit. Meanwhile, because of math, 4096-bit certs take a lot longer to handshake: see e.g. https://certsimple.com/blog/measuring-ssl-rsa-keys
CertSimple's data indicates a 25 ms difference between 2048-bit and 4096-bit keys on their server, so I'd expect that the 4096-bit key is responsible for at least most of the performance difference here. A few years ago I screwed this up on a production shared web host, and I believe we saw a greater than 50 ms difference. (While we're at it, that cert is SHA-1, so it's possible they can get a reissue for free.)
Were you able to replicate the 500 ms (!) performance difference on your own server? Are you using a 2048-bit cert and reasonable cipher suites?
These are fantastic! I'll add two that I have learned from wiser people, and that have paid out again and again in my life.
1. It's better to target an interesting constellation than one specific star. If you're pushing yourself reasonably hard, you're working close to the limits of your ability, and so there's some chance you will fail. If you go all out to hit an ambitious goal and don't succeed, you're likely to feel burnout [1]. This is much less likely if you make moves in the direction of an interesting area using a cluster of subgoals instead. This diversifies your risk, plus it's easier to adjust as you move in that direction and learn more. (For people in ML there's some clear parallels with the gradient descent process)
2. A twenty minute walk in the park with no music or media makes all kinds of useful stuff naturally fall out of your brain, and you get some light exercise and sunlight / vitamin D at the same time - which also helps improve your mood and flush out anxiety etc.
[1] https://www.stavros.io/posts/comment-causes-burnout/
I'd say this is more up to date:
https://www.stavros.io/posts/u2f-fido2-with-ssh/
We've got private Git repos only accessible through ssh (and the users' shell is set to git-shell) and it's SSH only through Yubikey. The challenge to auth happens inside the Yubikey and the secret never leaves the Yubikey.
This doesn't solve all the worlds' problem (like hunger and war) but at least people are definitely NOT committing to the repo without physically having access to the Yubikey and pushing on it (now ofc a dev's computer may be compromised and he may confirm auth on his Yubikey and push things he didn't meant to but that's a far cry from "we stole your private SSH key after you entered your passphrase a friday evening and are now pushing stuff in your name to 100 repos of yours during the week-end").
I'm probably not the target audience but I'd say that it's usable but still not very straight forward to set up. Yes it has less options than OpenVPN but with a bunch of tutorials I was usually able to get OpenVPN set it up and have my traffic flow through it in 30 min.
Following tutorials like this https://www.stavros.io/posts/how-to-configure-wireguard/ (which seems like a good one from a fellow HN user) always seems to work that I'm able to connect to the server but my internet doesn't work after running it. Probably something related to the IP tables rules or firewall I assume?
I'm using the official mac client and Ubuntu 18.10 running on a server at OVH.
"Can anyone recommend a Linux (preferrably cross-platform) tool like this which is appropriate for use in personal laptops?"
I think you should look into the 'borg' backup tool - it has become the de facto standard for remote backups because it does everything that rsync does (efficient, changes only backups) but also produces strongly encrypted remote backup sets that only you have a key to ... the remote has no access to the data.
The borg website is here:
https://borgbackup.readthedocs.io/en/stable/
and a good description of how it works and why you should use it is here:
https://www.stavros.io/posts/holy-grail-backups/
This one had quite a lot of background, but also the needed commands: https://www.stavros.io/posts/u2f-fido2-with-ssh/
With a properly set-up token, basically you only need 2 commands:
ssh-keygen -t ed25519-sk -O resident -f ~/.ssh/id_mykey_sk
ssh-add -K
I used a Yubikey and needed also to install 'ykman' to set a PIN for my token, otherwise ssh-add kept failing. Dunno if I omitted something for a proper setup for my token initially, but I don't think that was a problem with OpenSSH in particular.
Apart from the small headache with the PIN, the whole thing was almost magical in its simplicity.