Table of Contents [Show]
What's all this, then?
This is a long thread. Luckily I have implemented the table of contents feature above (including a link to my discussion of the table of contents) so that you can jump to whatever section you like. Everything on the site was written by hand - code and content (I'm sorry) - and here I shall discuss most of the interesting bits and some background information.
Why do you have a website anyways?
I know, right? There is nothing interesting here, I don't have anything to sell and I'm not even looking for a job (at the time of writing; My Resume Coverletter might say otherwise)! Well, it started out somewhat innocently. In 2015 I took a job at Roaring Penguin Software, a company that produces anti-spam, email archiving and secure messaging software (this has become a trend). In order to test things and actually make sure that I'm good at my job, I have opted to run the self-hosted version of the software for my own personal email. This means owning a domain name so that I can actually point mail at the machine running the software. From there, it would be silly to own a domain and not also have at least the bare minimum of a website. I could have just opted for something simple on WixSpace or through my registrar, but in case there was any doubt, let me be clear: I'm a total dork!
So, despite the fact that the domain was originally acquired in order to process email, this has been perhaps the most poorly executed part. This is not because I don't know how email works; I can administer the crap out of Sendmail or Postfix. The reason it hasn't worked out great is that nobody knows what the heck I'm talking about when I give them my email address. A common conversation is something like:
- email@example.com? Then what? @gmail.com?.
- Nope. That's it. You know how there are .com and .net addresses? Well there are also .me.tz addresses.
- Oh. So, what was it? firstname.lastname@example.org?
- <sigh> Let me start again...
This was a short sighted decision based on a not-very-funny joke that very few people will understand. I explained that joke with an easter egg if you click the domain name or logo in the banner at the top. This should quickly flip the dots though various characters and eventually stop on my name, John Mertz. It is a domain name hack which matches my name if used as a Regular Expression. These are a standard set of characters that can be used in some software to search for patterns rather than literal strings. With Regular Expressions, you can use a dot to represent any single character of text. So searching for "te.t" would find "test", "text" and "tent". This is incredibly useful for manipulating text, but much less useful when you are explaining for the third time that, despite there being an "r" in my last name, there isn't one in my email address.
So, what the heck is a .me.tz domain? Fun fact: any domain name that has 2 characters after the final dot is called a ccTLD, or Country Code Top-Level Domain. The "Top-Level Domain" part is the highest level of organization of the internet, the same as .com or .org. This helps computers find each other when they perform a lookup using the domain name service (DNS). The Country Code part means that rather than representing a specific category of website like .org or a specific industry like the pleathera of new designations like .accountant, and .zookeeper (I don't think that one actually exists, but at the rate ICANN is approving new TLDs, it will soon), it instead represents a country. My fellow canucks are very familiar with this concept given the .ca top-level domain, and Americans are probably much less familiar with .us. Despite what some might like to think, .com does not mean it is the american equivalent to the .ca, it is just the generic; all country-code TLDs are 2 characters and all 2 character TLDs are country-codes. The .us domain is just highly abused by spammers and malware sites, so no one really uses it on the web.
For my fellow nerds, talking back-end infrastructure is always fun. The current answer to that is:
- OS - Debian Bullseye (11)
- Hosting - OVH VPS, 2 vCore, 8GB RAM, 80GB SSD
- Server - Nginx with HTTP2
- Nameservers - Mine, Bind9 on this machine and my mail server
- Language - Primarily PHP
- Frameworks/CMS - Custom
- SSL - Let's Encrypt
- VCS - Git