Tom Kwok



This is the first post of this blog with edits and new links from the future. This post is created by splitting the actual first post on this blog in October 2020. All of the posts in this blog are more or less edited after the publication date. Retroactive editing is part of the nature of a blog. Most posts including this post contain external links to high-quality reference articles that are sometimes added later.

Technicalities #

I completed the set up of this blog last night. I used a static site generator called Eleventy, which is simple and flexible. It can be run locally with command yarn run start with automatic live reload when Markdown and Nunjucks template source files are modified. The default theme included has minimalistic styling.

A syntax highlighting plugin that highlights code snippets at build time is included by default without introducing any client-side JavaScript dependencies. This website is completely free of client-side JavaScript. The following example is a truncated version of the Markdown file from which this post is generated.

title: Blogging
date: 2019-09-01
tags: [plot, art, photo]
layout: layouts/post.njk


This is the first post of this blog with edits and new links from the future. This post is created by splitting the [actual first post](/posts/singing/) on this blog in October 2020.

After merging upstream Eleventy changes and updates with my restyling efforts, my updates to this blog are pushed to a private repository on my GitHub account, which is hooked to a publishing platform Netlify that generates the static HTML files and assets in a build. Successful builds are hosted on multiple cloud providers, which currently appears to be Google Cloud Platform supplemented with Amazon Cloudfront for CDN delivery of images.

I use a third-party uptime monitoring service to check the availability of this website at regular 5-minute intervals. The uptime of the hosting provider is calculated to be only 99.95% over the span of a year, and I can possibly do better by self-hosting. However, unmanaged hosting is more risky. For instance, yearly uptime statistics would drop from 100% to 99.91% in case the server goes offline and unattended for 8 hours, such as when I am asleep unless I have an uptime alarm in standby with me all the time.

A calendar plot of duration of downtimes in minutes in each day in year 2020 for this website

Anxieties #

I like the default blog description in this framework that I am using: "I am writing about my experiences as a naval navel-gazer" but I changed it later. I am more concerned about my own problems than others. I am concerned about whether me writing a blog is narcissistic but I never think about whether other people who write a blog are narcissistic or have high self-esteem.

I have researched on the whats, whys and hows of setting up a blog to extreme degrees some years back. I researched on the feasibility of blog monetization with advertisements. I thought about if I should put watermark on images that I made. There was always something holding me back from actually publishing anything. I worried about things a lot. I imagined what things could have been. I was somewhat indifferent to the present.

I was once described as a private person. Maybe security through obscurity is one of my methods of life. Maybe publishing a blog on the internet changes that. Most likely not. It is because I am not going to and I do not need to reveal every detail of my life. I am not going to comment on everything or everybody that I may or may not fully understand. I am just going to write as if I am talking to a friend.

I try to blog about representative things of my life with changelogs to let other people know what I do to pre-empt questions on this matter. However, I am not particularly inclined to share details of my private affairs on the internet. It is a paradoxical situation.

Meta matters #

I put a quote in the 404 error page for some humor: "To err is human but to really foul things up you need a computer." This is ever more true now as "machine learning" is everywhere and, for example, grades are estimated by algorithms.

I registered a domain name under .com, which is by far the most popular Top-Level Domain (TLD). My domain name is a combination of:

  1. my English name, which I somehow chose for myself in primary year one;
  2. my surname, which is included as a customary practice rather than to bring up my familial roots.

However, I do not really plan to use the domain name for an enterprise of myself or anything too commercial that .com may suggest. Some people use more characteristic TLDs, such as country code TLD .me and new generic TLD .blog.

Back then I used Inkscape to make a favicon with a design inspired by that of the logo of GitHub and the logo of Medium but with a letter T that stands for my English name Tom. I am re-using the favicon for this blog.

Favicon made with Inkscape

Images and photography #

All images are original unless otherwise specified with a link to an external image source in a bracket in caption. All original images are copyrighted with all rights reserved unless otherwise stated.

I try to include at least one image in every post. An image is usually a plot that I generated, a LaTeX graphic that I made, or a photo that I took. Each image is processed with image optimization tools to reduce its file size for optimal browsing experience.

Some posts include my original photography that is presented in images converted from camera RAW image format to JPEG format with the following configuration:

The following EXIF information of each image is included in brackets in caption:

As an example of my photography, the following is a photo of a python on a log, for the non-obvious pun of using Python programming language to generate plots posted on my blog. Note the striking incidental resemblance of the blue and yellow colors on the skin of the photographed python to the colors in the logo of Python.

Me in reflection photographing a reticulated python resting on a log in an exhibit in Melbourne Zoo, Melbourne, Australia (2019) (f/5, 1/12, ISO 1600)