All Articles

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 […]

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

The landscape of Virtual Private Servers is ever changing and evolving. Gone are the days of providers offering just servers. Many providers offer a wide range of managed services in addition to traditional VPS offerings. Maybe I’m too much of an old dog, but I’m finding the more recent trend […]

Response Time Comparison: GitLab Pages vs. Cloudflare Pages

While I compare VPS hosting providers every month, I actually don’t my personal blog (this site) on a VPS anymore. Come to think of it, I don’t even remember if this particular iteration of my own private slice of the Internet has ever been on a VPS instance. I’ve definitely […]

How to change the hostname on Arch Linux

Admittedly, I rarely ever need to change the hostname of a system. I have my own standard naming convention that I use, and will set things up at the time of installation, never to be touched again. Recently with a new work machine, I deviated from said convention, and after […]

Tracking daily active users (DAU) with Redis

Daily active users, also known as DAU, is the number of unique users that have interacted with a website or application in a given day. We’re going to discuss how to track this metric, in a language agnostic fashion. The concepts discussed and Redis commands utilized can be implemented in […]

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

The biggest news this month is that Linode was recently acquired by Akamai Technologies for a whopping $900M. What that will do to the VPS landscape is yet to be seen. The most immediate impact I’ve noticed is that Linode is going to start charging sales tax in May. I […]

How to run a command after changing directories in zsh

About once a year or so, I go through my dotfiles and do some clean up. Usually around spring time, but also, usually after I discover some new hotness that I had not known about that I want to leverage. This year, it’s both. Spring is nearly in the air, […]

How to display a JavaScript array in HTML

From time to time, I see a search query that made it to my blog that piques my interest and inspires a post. This is one such post. How does one take an array (presumably in JavaScript) and display it in HTML? Now in this day in age, I would […]

How to fix signature is unknown trust on Arch Linux

My continued love/hate relationship with Arch Linux continually yields topics to blog about. This week’s topic reared it’s head while attempting to perform an update after waiting a bit longer than I usually do, which yielded an error about one or more of the keys being “of unknown trust”. Like […]

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

Around this time last year, we were dealing with one of the worst winter storms in Texas history. While it’s still pretty cold, we’ve been extremely fortunate this year. Hopefully everybody reading this is staying warm (or cool, if you’re south of the equator), safe and healthy! Similar to previous […]

How to fix tlp and power-profiles-daemon are in conflict on Arch Linux

I’ve been attempting to move to a more regimented weekly to every other week update of my Arch Linux systems. In doing so, I’ve stopped blocking Kernel updates and rebooting a bit more frequently. Of course, due to the nature of Arch Linux, less frequent updates means more packages to […]

Reattaching to a still attached GNU Screen session

While tmux is my daily driver for local terminal multiplexing, I still use GNU screen when I’m working on remote servers. The primary reason for this is to avoid nesting tmux sessions. I can use tmux locally, ssh to a remote server, start up a screen session and I’m off […]

How to get a time-based one-time password secret from a QR code

More and more services are adopting a “can’t scan the QR code” option that reveals the secret token. Some even go as far as offering up the secret token along side of the QR code. Others present you with the QR code and nothing more. Fortunately, those services seem to […]

Splitting strings and keeping the separator in JavaScript

When splitting strings, the majority of the time, I don’t care about the separator (or delimiter), just the strings that exist between it. In JavaScript, that’s very simply with .split(): 'one,two,three,four,five'.split(','); Which will yield an array of strings like this: ['one', 'two', 'three', 'four', 'five'] Great! But if we want […]

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

So 2021 was interesting. Not going to bore you with the details of my life, but I am ready to bore you with the details of the world of virtual private servers! I forgot to do my “Christmas wish list” last month as I have in the past, but it’s […]

How to reset Brother HL-L3210CW Toner Cartridges

It took nearly two years, but we finally “ran out” of black toner for our all-time favorite printer, the Brother HL-L3210CW Laser Printer. More on why “ran out” is quoted in a moment ;) Personally, I hate owning a printer. I only print stuff out at most twice a year, […]

Downloading files in Node.js with Axios

I’ved used Axios a ton, but I’ve only ever used it to make AJAX requests. In fact, I don’t ever remember a time when I’ve needed to download a file and save it to disk in Node.js. That changed recently with a new side gig I’ve been helping out with. […]

How to hide Nginx server headers on Ubuntu

Nginx is a fantastic web server choice, but it tends to be a bit too mouthy by default for my taste. By mouthy, I mean that out of the box, Nginx gives up a bit too much information about itself, the operating system it’s running on, and if you’re running […]

VPS Showdown - December 2021 - DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr

Here we are, with the final VPS Showdown of 2021. We’ve seen a few changes over the course of the year in terms of product offerings. One of the most notable was the adoption of AMD EPYC processors either a standard or premium offering depending on the provider. Next year […]

Associative arrays in Bash

Arrays, both indexed and associative are a powerful and versatile data type, regardless of the language you’re utilizing them in. At one point in Bash’s history, pre-version 4.0, Bash only had indexed arrays. These indexed arrays were defined as such: # Initialize an array with values arr=("first" "second" "third") # […]