Upgrades and Upkeep

Upgrades and Upkeep
Photo by Austin Distel / Unsplash

In the past weeks, I started upgrading a bunch of third-party libraries I use in my side project.

This had been long overdue, and something I had entirely forgotten about. If it wasn't for another team at work going through the same exercise, it probably would have slipped my mind for another year or two, if not more.

Two thoughts came to mind when I was having my morning coffee yesterday.

First, the upgrade process for a single library gets more difficult the more your code relies on it. The backend of my project, for example, is written with the Ruby on Rails framework; it's fundamentally coupled. Upgrading versions there definitely gets challenging (although to their credit, the Ruby on Rails Release Notes are fantastic). Minor and patch versions (which are supposed to not introduce any breaking changes) are supposed to be simple, but you can't guarantee that.

The lesson learned here for me is that this requires continuous, ongoing maintenance just like a garden, but also the more that I take on (libraries, other services I maintain, a new car), the more ongoing maintenance there is. Having less to maintain means more time in my day.

Secondly, I would have fewer library upgrades to do if I just wrote the code myself. If there's no third party libraries, then there's no library upgrades, right?

Any developer who's worked on a project of any notable size can relate to how ridiculous that statement is in a vacuum. At some point, you need to rely on something that a third party has developed.

A framework like Rails, Django, or Spring Boot. A programming language like Ruby, Python, or Java. The instruction set for communicating with the hardware. The operating system on your computer. The hardware in the computer. The electricity that powers that hardware.

Seth Godin wrote a great blog post about this, entitled Outsourcing:

“I’d like corn for dinner.”
So, six months ago, you’ll need to plant the corn so you can harvest it today and cook it tonight.

At some point, third parties get involved. We must rely on others. To what extent is a perpectual balancing act with no one right answer, only a plethora of tradeoffs we must accept.

My Weekly Finds

Japan - Satin Jackets Remix
Tycho · Song · 2020
Not an album this time, but a single track. Tycho has this incredible ability to produce beautiful, immersive soundscapes, and this is a shining example of it.
Mulberry Mouse
Become a Supporter:https://www.youtube.com/channel/UC8NhGqX78q_bsuYtP-K9Oig/join 🎵 Mulberry Mouse→ https://open.spotify.com/track/5P1POj8OjdnqWm2l2IaTK2💿 S...
I can't get over how beautiful this sounds. This is like butter for your ears.
Floor796
An ever-expanding animation scene depicting the everyday life of the 796th floor of the huge space station
Such a neat collection of animations and pop culture references. It's not clear on the site, but you can click on many of the areas in the animation to see what is being referenced.
Commit Message Generator
A meme site for developers. Generate a quick commit message when you've had enough. Bonus points for aliasing it on your command line like it's done in oh-my-zsh: alias yolo='git commit -m "$(curl -s https://whatthecommit.com/index.txt)"'
Wikidata
I had no idea Wikidata existed until last week! A community-maintained data set of unstructured data, queryable with a free API (if you can figure out how the hell to write SPARQL...you might be better off coding in Brainfuck)

My Wiki Updates