DEV Community

Cover image for How to live forever
Graham Trott
Graham Trott

Posted on


How to live forever

In the poem "Ozymandias" by Percy Bysshe Shelley, a traveller in a vast, featureless desert comes across the remains of a huge stone statue; a shattered sneering face and two giant feet, with the inscription

My name is Ozymandias, King of Kings;
Look on my Works, ye Mighty, and despair!

It's a fundamental part of human nature to want to be recognized for one's achievements; preferably during one's lifetime but if not then in some form of posthumous posterity. Some names will forever be associated with their bearers' achievements - Henry Ford for motor cars, Pablo Picasso for art, John Grisham for legal novels or Freddie Mercury for popular music. It was the theme music Mercury wrote for the film Highlander (YouTube) that inspired me to write this piece.

So how do software engineers, programmers and website builders ensure that their works live on after them, not crumble into dust like those of Ozymandias? It's unfortunate and sometimes rather depressing that the products we lovingly create are among the most ephemeral of anything the world has to offer, yet many of us are software developers because of the pleasure we get out of doing it, we take immense pride in what we have done and we'd rather like to be remembered for it.

It's not good enough to wait until you're gasping your last breath before deciding that some form of legacy might be quite a good idea. These things have to be planned well in advance and you don't have to be old to have a sense that your achievements will be lost unless you do something to preserve them. I'm not just talking about when you die; a major career change will just as effectively leave all your current work stranded unless you take the trouble to make some permanent record of it.

If you build websites for a living you may be aware that some of your clients would also like their efforts to have some kind of permanence, but as technology marches on, more and more of what we do only survives on distant computers as bit patterns that will disappear as soon as the hosting bills stop being paid.

As it happens, the Internet itself increasingly remembers pretty well everything it encounters, but it doesn't necessarily do so in a form you or I find particularly useful. So for the most part, once the plug is pulled on a website it really has gone. There are, however, some notable exceptions, places you can store stuff where nobody will ask you for an annual payment to keep it there. Just a few:

YouTube and similar sites will hold your videos without knowing who you are or if you are still living.

Facebook accounts go on long after their owners have passed away (or just abandoned them), so anything in your profile or a Page you created will remain there indefinitely.

Much cloud storage - DropBox, Google Drive and so on - is subscription free, though admittedly does not present a public face to provide access to your content.

There are a good number of companies offering free websites, but the reliability of these is somewhat variable. Leaving the best till last, though, some of the cloud operators also offer free static websites, among the most notable - and accessible - being DropPages and GitHub Pages. The content held by these organizations is likely to outlive any of us, even if the names themselves change, so what's there now will remain there even if there's nobody to pay the bill.

The problem with static websites, though, is they just serve assets; they don't offer computing services. So forget putting a WordPress website onto a static hosting platform. But maybe that doesn't matter too much. After all, the whole point of a legacy website is it remains unchanged and unchanging, so in most cases some form of filing system can replace a database. OK, it may be a little slower, but we're not talking high-traffic commercial sites here.

If you want to provide dynamic content, then because no processing resource is available on the server all of it has to be done in the browser. My shtick is using a high-level scripting system to write interactive websites that are 100% client-side and in which databases and specialized services like Rich Text editors or Google Maps are accessed with the help of REST calls and Content Delivery Networks, so it's quite easy to turn them into static legacy sites later on. This might even be good for my bottom line as it potentially represents extra work that isn't normally considered, provided I can get my clients to also take an interest in creating something that will outlive them.

When I started thinking about static websites I initially figured the lack of server-side processing would be pretty restrictive. Well, to an extent it is. A shopping website is going to have trouble taking orders, for example. But wait a moment - what's a legacy website doing taking orders? Who is going to fulfill them? When you consider the kind of experiences that can be delivered by a static site there's more than enough for most legacy purposes.

The thing to note is that 'static' doesn't mean everyone gets the same experience. (I refer you to my previous post, What is a static website?). There are several ways in which context can be used to deliver varying yet relevant content to each user; the time and date, the previous history of the user on that site or their geographical location; all these can greatly affect what is displayed. One of these is particularly interesting; the user's history. As it happens you don't need the server to get involved in dealing with this as the browser is able to store quite large amounts of data for each and every domain it visits. (The actual amount varies from browser to browser but you can assume at least 2.5MB and you can bet that amount will increase over time.)

A static site can be anything but static if you hook it up to another site using REST calls. More and more big sites are offering public REST APIs, frequently with no subscription fee asked for or maybe just a cap on monthly usage. I believe you can even do e-commerce with such a model, though I haven't looked into it. Here I'm just throwing stuff up against a wall to see what will stick.

The conclusion of my rambling is that the free static websites offered by the likes of GitHub and DropPages offer great potential, and that if you are proud of what you have achieved you owe it to yourself to create something that you can go on referring to over the years and that will eventually outlive you. Nobody will do it for you. I wish I still had access to some of the code I wrote in the earlier parts of my own career. If you build websites for other people, find out how they see their own legacy and be ready to offer the means to guarantee it in a world where nothing is physical, where everything is just electrons.

Photo: The Valley of the Temples, Agrigento, Sicily

Top comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.