Resurrected
Resurrected!
If you’re reading this, and you have visited my blog before, you are probably noticing changes. My blog was suffering from technical debt for years and I finally dealt with it.
When I addressed the technical problems of my blog, I wanted to make something that could last without me putting an effort in. I think this is a useful lesson in software longevity.
This blog used to be running on WordPress. When I was writing frequently, I occasionally would have to deal with upgrading the WordPress version. As I stopped focused on my blog, I didn’t always update WordPress. After a few years, pages started breaking. Three years ago Jarl Friis wrote me to let me know that an important article was completely broken. But the problem wasn’t obvious and I didn’t have the energy to fix it. Last summer, my hosting provider notified me of an upgrade of PHP that would didn’t support my version of WordPress. Instead of dealing with the problem, I started paying a premium to use an old PHP version.
I finally found the energy to implement a permanent fix and exorcise the WordPress demon from my blog!
What you’re reading now is based on static site generation hosted on GitHub Pages. This gives extremely low maintenance cost, especially when things don’t change. Whenever I add a post (or change something), I make a new commit to GitHub. GitHub Actions will use Hugo to generate static HTML and publish it to GitHub pages (hosted on a custom domain).
The genius of this is that if I don’t make any changes, the HTML will continue to work for decades.
What technology has survived since the nineties?
When we build or set up software, we don’t always think about what will happen to our software once we’re gone and everybody has sort of lost interest. What will continue working and what will slowly fail?
Sometimes, the very programming language, database or application server we’re running on becomes obsolete. It may be hard to find skilled people or even get licenses to continue running the servers. In the most extreme cases, the whole technology paradigm may be obsolete. If you used an object database or 4GL languages from the early nineties, you’re probably not enjoying it now.
On the other hand, if you were using relational databases in the 80s or HTML from the 90s, your information is fully usable today. You may need to import your relational database to a newer database engine, but the tables are at least usable. Your webpages may look awful, but any browser will still render them.
What will live and what will die?
My prediction is that HTML and relational databases will be with us for a hundred years. This despite the fact that they were only standardized in 1986 and 1993, both less than 40 years ago. The reason for this is that there are literally millions of people who know these technologies, trillions of web pages and probably millions of relational databases being used today.
These technologies aren’t perfect, but they are good enough, and they have the wide support and lack of centralized control.
On the other hand, variants of fourth generational languages (4GL) did not stand the test of time. Both Oracle Forms and it’s competitors, the MDA (model driven architecture) and BPEL engines of the naughts have become technological dead-ends. The development of all these platforms has stopped, but billing for licenses have not and organizations find themselves with unwanted economic commitments.
Will this be the fate of the low-code tools of the 20s? What is similar and what is different to what came before?
One thing is certain: If you want to build an application that will outlive you, both HTML and relational databases are a good bet.
Post-scriptum: The migration of my blog - status
I wrote a script in TypeScript to import the posts and comments from my WordPress blog into Hugo. Please let me know if you find any errors.
I’ve imported the comments, but not set up a new commenting system yet. I will open the code repository for my blog as soon as I’m able to remove the exported data from WordPress which contains the email address of commenters.
The new site has an RSS feed, but I was unable to move it perfectly. It’s at a new URL and all posts have
new RSS links. (WordPress used dynamic links with ?id=<postId>
which can’t be supported on a static site)
In addition to a commenting solution, I’m also planning to improve the theme (add dark mode) and add privacy friendly analytics.