Table of Contents
About This Site
Note: Nothing on this website represents the views or beliefs of my employer(s).
The design of this reflects my opinions and beliefs. I believe that spying on or tracking users without their informed consent is wrong, I believe that the internet is made worse by current advertising and web design practices, I believe in giving back to the wider world the things that I have learned without hassle, and I believe that anything I make available should be able to be freely shared, modified, redistributed, and hacked on. The world is made better when people can freely exchange information, ideas, and beliefs.
This site respects your privacy. There are no tracking cookies, social media buttons, or fingerprinting scripts. I've even turned off logging on my web server which means I'm not even storing your User Agent or IP address. I store nothing, know nothing, and share nothing about you. This is one of the few sites left on the Internet where you can feel safe from the prying eyes of the likes of Google and Facebook.
I also try as hard as I can to make sure that my website is as accessible to anybody with any sort of disability. I have put a lot of time and effort into making my website more accessible and I constantly test with validators, screen reader software, and other browsers (especially text-only ones) to try to achieve this goal.
The Technical Side
The website's backend server is nginx running on a Debian 10 Buster virtual machine which is hosted on my Dell R415 server located in my house. If the site appears down without any warning, it's safe to assume that it's due to factors outside of my control like ISP infrastructure failures or a power-outage which would cause the server to shut down to prevent data loss.
The pages themselves all statically compiled and are written in Markdown with
bits of HTML added where needed. Each page is then compiled into pure HTML, has
a header and footer stuck on to it, gets its title, meta description, and CSS
links set, plus a table of contents is added if necessary, then the page is
released as a fully-formed HTML webpage. I do it this way because writing in
Markdown makes it near effortless to write without needing to consider the
structure of the page like I would if I had to place
The CSS for the website is sent through a CSS minifier to make it as small as possible for serving to clients. The service I use is called cssminifier.com and is interacted with through their API from my webpage compilation script. I do the same thing with PNGs through tinypng.com although this is a more manual process right now.
The static pages of my website are generated by a shell script that I wrote
specifically for my website which makes heavy use of *nix tools such as
also have a script that I wrote to publish posts to my site/RSS feeds in which I
even got to use
ed (the standard text
editor) for the first time. You can
view these scripts in all their
horror glory in the repository for
Of course I could use a static site generator like Hugo or some other program but I enjoy doing things myself as a challenge and as a way to learn. Plus, I find it very fun to hack on scripts like these.
Once the pages and necessary accompanying files are created and compiled, the
files are uploaded to the web server into a folder called
uploads/ using the
rsync -rR so that the parent folders are also copied along with the
file. On the web server, a script runs which detects changes in the
directory and copies the files it finds, maintaining the folder structure, into
the directory from which the site is served.
Current Uptime Statistics
The statistics below are updated once every hour, on the hour (time is EST/EDT, Ontario, Canada):
If the statistics below appear as a bunch of
Xs then this page has just been
freshly compiled and re-uploaded. Please wait for the information to be filled
in on the hour.
System startups: 44 since 21:32:51 08/10/19 System shutdowns: 41 ok <- 2 bad System uptime: 99.84 % - 230 days, 18 hours, 26 minutes and 6 seconds System downtime: 0.16 % - 9 hours, 1 minute and 7 seconds System life: 231 days, 3 hours, 27 minutes and 12 seconds Largest uptime: 28 days, 9 hours, 18 minutes and 49 seconds from 18:41:40 12/31/19 Shortest uptime: 48 seconds from 17:49:13 09/29/19 Average uptime: 5 days, 5 hours, 52 minutes and 25 seconds Largest downtime: 5 hours, 21 minutes and 47 seconds from 02:07:22 02/21/20 Shortest downtime: 8 seconds from 18:22:10 08/22/19 Average downtime: 12 minutes and 35 seconds Current uptime: 2 days, 20 hours, 54 minutes and 46 seconds since 04:05:16 03/26/20
The badges/buttons below are meant to indicate the goals and aspirations behind the design of the website. Also, they're fun. It's like putting stickers on your laptop but for a website.