So the funniest thing happened.
I got a raise at work. Concerning growth areas, I could be more proficient in TypeScript, React, and GraphQL. My raise could have been bigger if I wasn't so... whatever I am.
I don't care though. Here's my persona.
The year is 2008. I'm a college student with a heavy Tuesday/Thursday course load to work data entry Monday, Wednesday, Friday and the bowling alley on the nights and weekends.
Through grit, hustle, eccentricity, and luck I was gifted a brand new MacBook Pro by Apple. Came with the Adobe Suite and Final Cut Pro.
I sold it to pay for three months of rent. I was surviving off ramen and instant mashed potatoes.
My logic was simple. If I get addicted to Apple products, I'll have developed an expensive and exclusionary habit. I'd rather help build the web.
Later that year was the first time I tried Linux.
Fast forward to 2018, I got laid off from the data-is-the-new-oil startup I'd been drinking the kool-aid at. In turn, I'd lost my MacBook Pro that I was happy to utilize on the company dime. It had been my main and only personal computer since 2014.
I challenged myself.
I bought the cheapest refurbished laptop available from NewEgg that could run Linux with a desktop environment. This was that computer I'd use to get a new job in Silicon Valley. The Ol' Dell Latitude.
Regretfully, I do wish I accepted the offer from Roblox after seeing their IPO. Hindsight is 50/50. However, I think I did pretty well by landing on my feet at Netflix.
Last night was the first time I booted up The Ol' Dell Latitude in a long while. I wrote some software I wanted to try on it.
My software wouldn't run though, as the dependency I was trying to use is incompatible with 32-bit hardware.
Thankfully, I'm building for the web. I was able to swap out Deno for QuickJS no problem. I lost my bundler in the process.
Thankfully, I'm building for the web. All my client software runs natively in text-only environments and progressively enhances to be fly-as-hell in modern browsers.
Here's the punchline though.
I wasn't able to update my Linux install. I mean, I was, but for the sake of argument, let's say I gave up and went back to Windows as a result.
What went wrong?
Three years ago when I was job searching, I installed VS Code on the Ol' Dell Latitude. As voted the most popular text editor by engineers I personally surveyed, I figured I should be up to speed on the hottest tool in the industry.
To do so, I needed to add a Microsoft domain to my package manager. This is software that downloads and installs updates for all of my software packages.
At some point in the last three years, Microsoft deleted the public key that they sign their packages with that my package manager uses to verify the authenticity and, therefore, the integrity of the software that gets installed onto my machine.
Let's rephrase that into a more human example.
Imagine Microsoft is the King and my computer is a soldier in the King's army. The Soldier and the King agree on a wax seal for dictating commands. Letters addressed to the Soldier with the correct wax seal can be trusted as sent directly from the King.
So, should the Soldier receive a letter with instructions to commit genocide without the seal of the King, they should not commit the genocide. Even with the seal, the Soldier should not commit the genocide and should instead devote their allegience to a realm of higher ideals.
Again, I digress.
When Microsoft deleted their key, my computer couldn't update anymore. Most people switch from Windows to Linux. Many return to Windows after encountering any amount of friction on Linux.
The solution is to remove the Microsoft repository from my package manager. An easy change, but it is not obvious to a beginner. And it only affects anyone trying to bring their comfort zone with them into new and unfamiliar territory.