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
<h3> tags manually.
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
sed. I 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 this site (mirror).
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 command
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
uploads/ 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: XX since XX:XX:XX XX/XX/XX System shutdowns: XX ok <- X bad System uptime: XX.XX % - XXX days, XX hours, XX minutes and XX seconds System downtime: X.XX % - X hours, XX minutes and XX seconds System life: XXX days, XX hours, XX minutes and X seconds Largest uptime: XX days, XX hours, XX minutes and XX seconds from XX:XX:XX XX/XX/XX Shortest uptime: XX seconds from XX:XX:XX XX/XX/XX Average uptime: X days, XX hours, X minutes and XX seconds Largest downtime: X hour, X minute and XX seconds from XX:XX:XX XX/XX/XX Shortest downtime: X seconds from XX:XX:XX XX/XX/XX Average downtime: X minutes and XX seconds Current uptime: X hour, XX minutes and XX seconds since XX:XX:XX XX/XX/XX
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.