This is a repository for the thoughts, notes, and achievements
of Mr. Jacob Hume. It contains posts on a large variety of
subjects, technical and otherwise.
I use rsync to back up many servers and other machines. Because of my very
different sources and targets, I have a collection of very complex bash scripts
that manage these backups. When I moved one stage of these backups to a new
server, it started behaving strangely - and it was difficult to discover why.
Sometimes I need to uncompress large archives located in remote locations - for
instance, in Amazon S3. Most normal approaches to uncompressing archives involve
resource-intensive processes, like downloading the entire file into memory - an
approach not tenable for multi-gigabyte files.
Whitespace causes lots of interesting issues with the command line - whether
it is present in file names, arguments, or any other data flowing between
commands. Quoting can help, but there's some very particular edge cases I've
encountered in my scripts.
As an enthusiast of encryption, it always felt a little strange that my servers
kept all of their data in the clear. But the problem with encrypting a headless
server is that, inevitably, you have to reboot it. So how do you connect to your
server and unlock the drive before it boots? It's quite the catch-22.
If you've ever needed to view all the changes that are happening in a repository
or a branch, there are two flags for the git log command that should interest
you: git log -c and git log --cc.