I have been writing articles on this website for twelve years. If you were to look at the early versions, you would think it is a fresh-out-of-school project with icons drawn in Microsoft Paint. And that is exactly what it was.
The site started in a world before smartphones and tablets at a time where Apple products still used PowerPC processors. The hand-crafted framework to run it grew organically over the years and remarkably followed the path of most software. It became bloated and obsolete. In 2018, it was time to revise the engine.
I wanted to build something rooted in simplicity, responsiveness, and speed. I opted for a drastic approach where instead of starting from my existing framework and removing/fixing features, I started from scratch and added only what I needed.
It was an opportunity for introspection. I reflected about what I had liked and disliked in my browsing past. I also thought about why I wrote and what I wanted to achieve with these articles. Eventually, I drafted a list which became my guideline.
0x00. I like blazing-fast websites.
0x01. I like minimalist websites.
0x02. I like responsive websites that render well on tablets.
0x03. I like when the author's name is clearly stated.
0x04. I like when the author leaves contact information.
0x05. I like when the publication date is easy to find.
0x06. I like monospaced fonts.
0x07. I like when quotes and citations are easy to find.
0x08. I like to learn core technology like HTML/CSS. Not frameworks (Wordpress).
0x09. I like RSS.
0x0A. I dislike analytics which serve the author's ego and track me.
0x0B. I dislike the comment area where people are rude and also serves the ego.
0x0C. I dislike ads.
0x0D. I dislike side menu which wastes horizontal real-estate.
0x0E. I dislike visible reflow.
0x0F. I dislike extra-clicks (Accept cookies?, splash, app link, paywall).
In the late 2018, Google started to tag websites using HTTP protocol as "Not Secure". My host, hostgator, was rapid to provide free HTTPS support. I updated the guideline accordingly.
0x10. I like HTTP to HTTPS redirect.
In the past two years, I have received numerous inquiries about the framework used for this website. Here is how it works.
The HTML pages are statically generated from php. There is a "master" script called gen.php
which iterates over all sub-folders and searches for files named article.php
. Upon hit, the master runs the article script, wrapping it into a header and a footer, and redirects the output to a file named index.html
.
There is one helper function, footnote(), which stores references so they can be listed in the footer. It is something any programmer could write in an hour.
Authoring HTML is done with Sublime Text 3. Drawing is done with Inkscape. Syncing is done with CyberDuck. It is not the most engineered tool but it is dead simple and gets the job done.