Link Rot

musings by Bast on Thursday June 17th, 2021

Link Rot is a name for something I call reference decay, in the context of the internet. Reference decay is an inherent risk that comes with the management of relational information. Whenever something refers to something else, it must do so in a way that can potentially be broken (IE: point at nothing, point at something wrong, etc) if it is not kept up to date. Keeping something up to date requires effort.

So, over time, there is a tendency for the effort to be neglected (as things do not maintain themselves on their lonesome), and references "expire", no longer pointing at what they used to. For people, this means old phone numbers, addresses people no longer live at, friends that have moved on.

For programmers, this means that the references to an object might not be valid later. In C, you might segfault. In rust, the compiler will yell at you. A large part of the entire purpose of the borrow checker is to ensure that your references are always managed, automatically or otherwise.

In python, the language spends a large amount of time and effort tracking every access and relation forwards and backwards, faithfully increasing and decreasing a refcounter whenever something might no longer be in use and never deleting it when it is in use.

This kind of decay isn't just restricted to just person-managed things. Animals move. The terrain shifts with big storms, earthquakes, or erosion. Buildings rise and fall, restaurants close and are replaced. The world will change even if you make the highest effort to keep your surroundings from changing. Effort must be spent to keep things up to date or with entropy's endless acting upon your microcosm your references and links will decay and eventually point to something strange and unexpected, or even nothing at all.

But in my little world of my blog, I am in control. My links will not change, because they don't need to. I control source and destination. I have paid the upfront costs to maintain them forever. My url scheme is "cool". And not only that, it is adaptive. All canonical urls are lowercase, but visiting an uppercase url returns a redirect. Trailing slashes and html/htm extensions are cleared. I expect to eventually add some kind of smarter url matching technique to redirect typos, too.

In the face of entropy, endurance becomes valuable. Trust grows as urls do not change, and as trust grows, the effort spent to verify consistency and accuracy can be decreased. And people who link to me do not need to worry if my links will break. Because they won't. My links will remain reliable, because I want them to be, and I have the power to make it so.

You should make your own links reliable, too. Make the world a better place, one website at a time. We have a chance to build a better world in bits and bytes. Let's do so.