-
There are better options for a privacy-respecting phone
Meet the new, better Apple. Here's how to choose your phone and set it up.
-
Create a self-hosted chat service with your own Matrix server
A speed-run introduction to Matrix via Dendrite.
-
Deceptively simple search-and-replace across multiple files
How to interactively search-and-replace across many files with just two commands, thanks to Vim.
-
Command line tricks for managing your messy open source repository
A handy toolbox for the terminal to help open source maintainers make their projects sparkle.
-
Bash and shell expansions: lazy list-making
A tour of brace expansion, shell parameter expansions, and playing with substrings in Bash.
-
A portable Makefile for continuous delivery with Hugo and GitHub Pages
My Makefile for building this site, optimizing images, and running my CI/CD GitHub Actions flow.
-
How to set up OpenVPN on AWS EC2 and fix DNS leaks on Ubuntu 18.04 LTS
A guide for setting up your own private VPN service, and understanding and fixing a DNS leak.
-
How to do twice as much with half the keystrokes using `.bashrc`
An overview of time-saving aliases, functions, and creating a useful Bash prompt.
-
How to set up a fresh Ubuntu desktop using only dotfiles and bash scripts
Configure settings, install programs, and customize your desktop environment with a single bash command.
-
How to write Bash one-liners for cloning and managing GitHub and GitLab repositories
Using xargs and awk in Bash to automate managing remote-hosted repositories.
-
A quick guide to changing your GitHub username
Some additional steps to consider after making a change to your username on GitHub.
-
A remote sync solution for iOS and Linux: Git and Working Copy
How to set up a cross-platform solution for working with Git on iOS.
-
Batch renaming images, including image resolution, with awk
How to batch rename images with custom values using file, awk, and rename - in rainbow colors!
-
How I created custom desktop notifications using terminal and cron
How you can use tools your Linux system already has to create custom desktop notifications.