-
Offline Encryption Using WebAuthn
I’ve been diving deep into browser-based cryptography lately, and let me tell you, implementing truly secure offline encryption is about as straightforward as teaching quantum physics to a goldfish. The core problem? Getting consistent key material across sessions without storing anything sensitive.
-
Loading tmux when loading shell
This is something I’ve had mixed success with in the past. I’ve had things that worked but not quite in the way I wanted them to, and other things that just didn’t work! (Try sticking an exec before an error in .zshrc, and you’ve just nerfed your shell startup!)
-
Server status monitor bash script
When managing multiple servers, keeping track of their availability is crucial. Building on an example from “Cybersecurity Ops with bash” by Paul Troncone, I’ve developed a bash script that provides a simple yet effective way to monitor server status across multiple hosts. Let’s break down how this script works and why it can be a valuable tool for system administrators.
-
Global find and replace with bash
I’m working on a server migration script (watch this space) where I need to do a global find and replace in a bunch of files on a VPS (Virtual Private Server). I’m currently reading a bbok called “Cybersecurity Ops with bash” by Paul Troncone, which has been a great resource for learning bash scripting, and I found a solution in the book that I can use to do the global find and replace:
-
Server setup script
Building on a previous post, here is a script that automates the setup of a server. When setting up a new server there are several things that I either do by default (on autopilot) or I forget to do. This script installs and configures various components such as nginx, certbot for Let’s Encrypt SSL certificates, fail2ban, ufw, and more. It also provides an option to disable password authentication and root login via SSH for added security. Here’s the script in full:
-
Detecting a Loop
OpenAI’s o1-mini (coding/reasoning) model had this to say about detecting a loop in a 2D grid: