Converting JSON Keys to Snake Case in PostgreSQL

Well, it’s that time of the decade again when I dust off the old technical blog and write about a recent random and esoteric task that I completed for my job. This time the problem I had involved transforming the keys of a jsonb object stored in PostgresQL from camelCase to snake_case. The reason why isn’t super important to the details…

Read full article

A Proposal for a Decentralized Youtube Alternative

A decentralized Youtube alternative is an idea that has been slowly percolating in the back of my mind for a while now. A growing theme I see from the handful of content creators that I follow is a general unhappiness with several aspects of how Google runs the service. I am not a Youtuber, but I am a software engineer who enjoys solving problems, and Youtube lately feels to me like a problem that is begging to be solved.…

Read full article

Cookie Monster

The dull glow of the monitors bathed our furrowed expressions in pale blue light as we poured over the HAProxy logs. It was closing in on midnight, and we had already spent several hours attempting to track down the source of our woes.…

Read full article

Random Curmudgeony Blatherings

ScreensScreens are the new parental boogeyman, just like comic books, rock and roll, television, and video games were for previous generations. There’s always something for parents to point at and say “we didn’t have that thing or behave that way when I was a kid, clearly the devil is corrupting our young’uns through this new-fangled thing that frightens me!”…

Read full article

Converting Bitmasks to Text Arrays in PostgreSQL

The ProblemYou have some data encoded into a bitmask in an int column, and you’d like to decode it into discreet values in a text[] column instead.…

Read full article

That Time I Trolled the Entire Internet

I got my first taste of internet fame in the early 2000s, shortly after registering the domain NetAuthority.org. I had no idea what I was going to do with it at the time.…

Read full article

Solving OpenVPN DNS Issues on Android Clients

Out of Date Notice (Nov. 2019): I’m honestly not sure if this is still an issue. My current phone (Moto G7 running Android O) seems to use my VPN’s DNS server when connected without having to do anything special. It could be that newer versions of Android behave better, or (less likely) perhaps Motorola fixed something on their own outside of vanilla Android. The ProblemOpenVPN servers and clients can configure what DNS server the client should use while connected using a dhcp-option DNS setting (either set in the client config, or pushed to the client from the server). This can be necessary for a number of reasons:…

Read full article

My Experience with the Uberman Sleep Schedule

At the time I’m writing this, it’s been almost eighteen years since the Seinfeld season finale, and nearly twenty years since the Friar’s Club episode where Kramer tried to emulate Leonardo da Vinci’s alleged habit of only sleeping twenty minutes at a time every three hours. I’m sure I saw it when it first aired, but I was still in high school and probably didn’t give it much thought at the time. That all changed a few years later.…

Read full article

Let's Encrypt a Static Site on Amazon S3

Out of Date Notice (Nov. 2019): Using Amazon’s ACS service (which didn’t exist at the time this post was written) to generate SSL certificates for your S3/Cloudfront websites is a far simpler process than using Let’s Encrypt. That’s what I’m doing for this blog now. To create this blog, I use a static site generator called Hexo, and upload the resulting files to a web-enabled Amazon S3 bucket. I’ve recently started using Let’s Encrypt to generate free domain-validated SSL certificates for many of my non-static sites, and decided that I’d like to do the same for my static sites as well. This post documents the process of generating the SSL certificate from Let’s Encrypt, and all of the steps I took to get it working with a static site hosted on AWS.…

Read full article

Dropbox Music Player

Out of Date Notice (Nov. 2019): This project used an old and now-sunsetted version of the Dropbox API and so hasn’t worked in a long time. I no longer use this personally, instead I have all of my music on an SD card in my phone and just listen on that even when I’m at my computer. A friend of mine introduced me to heavy metal in junior high with an audio cassette recorded off of Megadeth’s Youthanasia CD. Up to that point my personal music listening habits had consisted of 100% “Weird Al” Yankovic; I hated pretty much everything that my parents listened to or that was played on the radio, and was ready to try anything new.…

Read full article