Table of Contents

About This Site

Note: Nothing on this website represents the views or beliefs of my employer(s).

Introduction

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.

Licensing

The code for this website (including the JavaScript) is licensed under the GPL-3.0-or-later. The content for this website is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. I have no problem with people sharing or doing what they want with the things that I post or make available on the website, so long as they don't try to pass off the work as their own and don't try to make it closed-source.

Privacy

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.

Design

I designed this website with the principles of minimalism and simplicity in mind. There is no client-side JavaScript except where necessary on project pages, the server backend is simply nginx serving static pages, and I've taken steps to optimize the pages so that they load quickly and aren't heavy. I took an article by Drew DeVault on Conservative web development as inspiration for the philosophy behind the design of this website as well as sources such as the Viewable with Any Browser campaign.

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 <p> or <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:	57   since   21:32:51 08/10/19
System shutdowns:	53 ok   <-   3 bad
System uptime: 		99.73 %   -   297 days, 16 hours, 21 minutes and 38 seconds
System downtime: 	0.27 %   -   19 hours, 5 minutes and 32 seconds
System life: 		298 days, 11 hours, 27 minutes and 10 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, 20 minutes and 23 seconds

Largest downtime:	8 hours, 0 minutes and 40 seconds   from   02:10:02 04/01/20
Shortest downtime:	8 seconds   from   18:22:10 08/22/19
Average downtime: 	20 minutes and 27 seconds

Current uptime: 	4 days, 13 hours, 49 minutes and 43 seconds   since   19:10:18 05/30/20

Web Badges

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.

Valid RSS Feeds
Creative Commons License
Open Content
Viewable With Any Browser
Hacker Emblem
A Canadian Website