All Articles

Incrementing and decrementing numbers in Vim

I live on the command-line, and a huge chunk of that time is spent in Vim. Well, Neovim, actually. I do everything from writing code, to writing for my blog, as well as other prose that I have in the works. One thing that comes up pretty regularly, thanks to […]

Generating lowercase UUIDs with uuidgen on macOS

The implementation of uuidgen on Linux returns all lowercase letters by default. The implementation of uuidgen on macOS returns all uppercase letters by default. This triggers the hell out of me, by default. Usually when I approach consistency between macOS and Linux, both of which I use daily, I will […]

How to search for installable packages on Debian

The thing that I miss most of all since moving from Arch Linux back over to Debian is the Arch User Repository (AUR). Every package I ever needed was there, sometimes multiple times based on different forks that folks were maintaining. Even without the AUR, Debian has a massive number […]

Using multiple profiles with aws-cli

One of the best aspects of Amazon Web Services (AWS) is that a full featured command-line utility exists for it. If you’ve ever spent a decent amount of time in the AWS Console (their web interface) then you understand why this is a good thing. As you venture into better […]

Switching from Arch Linux back to Debian

After the better part of the last decade running Arch Linux as my primary distro of choice on my laptops, I’ve decided to hang it up and move back to Debian. That’s not to say that there’s anything wrong with Arch Linux. In fact, it’s been one of my favorite […]

Screenshots are not documentation

Repeat after me, “screenshots are NOT documentation”. Neither are videos, looms, or animated GIFs. Links to Google Docs or random websites, better, but not best. The aforementioned media types are often confused with real, honest to glob, documentation. When you’re asked to document something, you’re being asked to describe it. […]

Showing differences of staged files with git

Something I don’t like about git, primarily because it doesn’t fit into my personal development workflow, is how git diff only applies to files that have not been staged to commit. Sure, it makes sense if you are the type to stage files locally on a regular basis without pushing […]

Fixing missing cycle area in Logic Pro

We’ve been spending a ton of time over the last year in Logic Pro. With 50+ songs put together, and the end goal of finally, formally releasing some material, we’ve gotten very familiar with Logic Pro and some of it’s quirks. One of my least favorite of these quirks, is […]

SSH into server with broken or missing shell

I did the unthinkable the other day. I attempted to upgrade my Debian home server (sherver) from Debian 10 to 11. In doing so, I fat fingered something in /etc/apt/sources.list. I then proceeded to run the usual update and upgrade commands, not paying any attention to any output. Then I […]

Using paths to create hierarchies in Parameter Store

Parameter Store only supports a limited number of character for the parameter name. As per the error message you’re presented with, Only a mix of letters, numbers and the following 3 symbols .-_ are allowed. What that error fails to mention is that you can actually use a fourth symbol, […]

Getting String and SecureString Parameter Store parameters with Node.js

Parameter Store has slowly become one of my favorite things about AWS. It makes it easy to share things between ECS tasks and services, and Lambdas. The parameters can be references inside of a CodeBuild buildspec file, and it’s all language agnostic, which is handy if you are running different […]

husky: command not found with npm install --production

Recently, while attempting to build a Docker container, I ran into a bit of a dilemma. Upon running npm install --production I was greeted with this less than ideal error message: > @company/[email protected] prepare > husky install sh: husky: command not found Well of course husky isn’t installed, as it’s […]

Decrypting SecureString Parameter Store parameters with Node.js

Parameter Store, part of AWS Systems Manager gives you a quick and easy way to store parameters that you’d like to use in your applications. By selecting the SecureString type, you get the added bonus of encryption for you most secret parameters. By default, when you fetch a SecureString type […]

How to use an SSH tunnel to forward ports

Security is important. Bastion hosts (or jump servers) are an easy way to wall off your private servers from the outside world. Improved security is always a good thing, but it isn’t always convenient. With a bastion host in place, you shouldn’t be able to connect directly to a private […]

Add column after another column in MySQL

By default, new columns are added to the end of a table in MySQL. This works well most of the time, but sometimes when you’re retrofitting a column into a table, you may want it to be adjacent columns closer to the start of the table. The ALTER statement makes […]

Docker Desktop won't reopen on macOS

After months of waiting, I finally received the MacBook Pro that I had ordered back in February. Thus far, it’s been a solid machine with crazy battery life, but not without it’s quirks. One recent quirk was with Docker Desktop. I had the app open and I quit it instead […]

Winding down the VPS Showdown

It’s been a long time since I wrote my original Linode vs. DigitalOcean post. The year was 2013 and it was a simpler time. Over the last [nearly] ten years, the humble post grew from being the output of my own gross curiosity about the performance of a couple of […]

How to export all photos from Google Photos

After yet another bout of operating system soul searching, I’ve landed back on both iOS and macOS. With this transition from Android and Linux, my software needs have changed. Also the Googs has been barking about my needing to upgrade if I want to continue to store my mountain of […]

How to convert JSON to CSV in JavaScript

Last week we discussed converting CSV to JSON in JavaScript. This week, we’re going to talk about going in the opposite direction, converting JSON back to CSV. Similar to last week, we’re going to use the immensely popular papaparse library. As it turns out, even though it’s touted as the […]

How to convert CSV to JSON in JavaScript

Parsing CSV data isn’t as easy as splitting the string up into individual lines, then splitting it by the delimited (in this case commas). Some of the values may have quotes around them, sometimes the values themselves have line breaks. Then there’s the potential that the data itself is malformed. […]

How to install Family Sharing apps on macOS

Switching back to an iPhone eventually led to enabling Family Sharing so that we could all use the Pro Apps I had purchased last year. The Pro Apps are quite pricey (even the Education Bundle) so it’s not something I’d want to buy and re-buy. My wife’s recent endeavor into […]

VPS Showdown - May 2022 - DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr

The big news for this month would be DigitalOcean’s announcement of their “serverless functions” product being beta released. Said functionality is the equivalent of AWS Lambda, GCP Cloud Functions and Azure Function. While not the most exciting news, as I don’t include any additional benchmarks, it did lead to me […]

How to install Node.js 18 on Ubuntu 20.04 LTS

It’s that time of year again, for not just a new version of Node.js, but for a new version of Ubuntu as well! Sadly though, my preferred method of installing Node.js on Ubuntu isn’t quite ready for Ubuntu 22.04 LTS. That’s okay though, I don’t like to upgrade to a […]

Execute command in timed intervals

Running a command (script, program, et cetera) on a regularly timed interval can be accomplished a few different ways. One way, is to leverage the crontab utility, which schedules runs to run one or more times per day. While a fantastic utility, crontab can be a bit heavy at times, […]

How to restart an AWS ECS service

Docker containers are easily one of my favorite pieces of new technology of the last decade. They’ve immensely simplified how I work locally, no more virtual machines, no more trying to keep my local development environment and production servers in parity, and no need for command-line sloths like nvm. They’ve […]