summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contact/index.php5
-rw-r--r--feed.php16
-rw-r--r--hireme/index.php5
-rw-r--r--includes/foot.php9
-rw-r--r--includes/head.php9
-rw-r--r--includes/render_index.php24
-rw-r--r--index.php33
-rw-r--r--info/index.php6
-rw-r--r--links/index.php14
-rw-r--r--payments/index.php1
-rw-r--r--posts/2019-04-06-why-have-a-website-in-2019.php9
-rw-r--r--posts/2019-06-07-how-to-start-and-drive-a-hudson-hornet.php9
-rw-r--r--posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.php9
-rw-r--r--posts/2019-07-04-yabs-yet-another-bad-shop.php9
-rw-r--r--posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.php9
-rw-r--r--posts/2019-07-28-i-finally-found-a-drink-i-like.php9
-rw-r--r--posts/2019-08-11-marrying-my-best-friend.php8
-rw-r--r--posts/2019-08-30-keep-right-except-to-pass.php9
-rw-r--r--posts/2019-09-28-my-preferred-method-for-data-recovery.php9
-rw-r--r--posts/2020-04-10-the-obligatory-covid-19-post.php9
-rw-r--r--posts/2020-04-10-wedding-photos-are-here.php9
-rw-r--r--posts/2020-07-11-why-computer-science-at-w-m.php9
-rw-r--r--posts/2020-07-26-now-this-is-a-minimal-install.php9
-rw-r--r--posts/2020-11-30-titanics-last-signals.php9
-rw-r--r--posts/2020-12-01-the-guides.php9
-rw-r--r--posts/2020-12-04-aoc-2020-day-1-in-cbm-basic.php9
-rw-r--r--posts/2020-12-08-useful-sprint-planning-from-a-certified-scrum-master.php9
-rw-r--r--posts/2020-12-22-why-does-everyone-use-adobe-acrobat-reader.php9
-rw-r--r--posts/2020-12-29-antivirus-software-is-a-hack.php9
-rw-r--r--posts/2021-01-15-adam-s-2020-reading-list.php9
-rw-r--r--posts/2021-01-15-root-on-zfs-a-zpool-of-mirror-vdevs-the-easy-way.php9
-rw-r--r--posts/2021-01-28-undefined-javasript-is-undefined.php9
-rw-r--r--posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.php9
-rw-r--r--posts/2021-03-19-how-to-automate-certbot-renewal-with-haproxy.php9
-rw-r--r--posts/2021-04-20-how-to-make-your-website-boring-and-why.php9
-rw-r--r--posts/2021-05-23-web-designers-please-don-t-animate-page-titles.php9
-rw-r--r--posts/2021-09-26-useful-shell-scripting-and-bulk-renaming-files-with-vim.php9
-rw-r--r--posts/2021-10-01-shroud-your-rad-for-an-ice-cold-hudson.php9
-rw-r--r--posts/2021-10-12-altruistic-angelshark.php9
-rw-r--r--posts/2021-10-22-forced-downloads-in-the-browser-via-http.php9
-rw-r--r--posts/2021-11-28-write-your-own-ssh-tarpit-in-rust-with-async-std.php9
41 files changed, 134 insertions, 266 deletions
diff --git a/contact/index.php b/contact/index.php
index 4e15b3d..5d1cc76 100644
--- a/contact/index.php
+++ b/contact/index.php
@@ -1,7 +1,7 @@
<?php
-$title = "Contact Me";
include('../includes/head.php');
?>
+<h1>Contact Me</h1>
<h2>
<a href="mailto:atc@53hor.net">atc@53hor.net</a>
@@ -30,3 +30,6 @@ You may read more in the <a href="https://www.gnupg.org/gph/en/manual/x56.html">
<p>
If you want to hire me or have a business inquiry, here is a Google Voice number. Please understand that all calls and text messages are screened for spam by Google before I pick up.
</p>
+<?php
+include('../includes/foot.php');
+?>
diff --git a/feed.php b/feed.php
index c8f51ef..f76377c 100644
--- a/feed.php
+++ b/feed.php
@@ -12,16 +12,14 @@
<link>https://www.53hor.net</link>
</image>
<?php
- if ($posts = glob('./posts/*.php')) {
- $early = true;
+ $posts = scandir('./posts', SCANDIR_SORT_DESCENDING);
+ $posts = array_filter($posts, fn ($post) => !empty($post) && $post != '.' && $post != '..');
- foreach (array_reverse($posts) as $post) {
- if (!empty($post) && $post != '.' && $post != '..') {
- $post_name = explode('/', $post)[2];
- include($post);
- printf('<item><link>https://www.53hor.net/posts/%s</link><title>%s</title></item>', $post_name, $title);
- }
- }
+ foreach ($posts as &$post) {
+ $title = str_replace('<h1>', '', fgets(fopen("./posts/$post", 'r')));
+ $title = str_replace('</h1>', '', $title);
+ $post = str_replace('.php', '', $post);
+ printf('<item><link>https://www.53hor.net/posts/%s</link><title>%s</title></item>', $post, $title);
}
?>
</channel>
diff --git a/hireme/index.php b/hireme/index.php
index a7151b3..e366e32 100644
--- a/hireme/index.php
+++ b/hireme/index.php
@@ -1,7 +1,7 @@
<?php
-$title = "Carpenter Tech";
include('../includes/head.php');
?>
+<h1 style="text-align: center;">Carpenter Tech</h1>
<p>
My name is Adam Carpenter and I am a freelance, general-purpose computer programmer.
@@ -42,3 +42,6 @@ include('cv.html');
<p>
<img src="https://nextcloud.53hor.net/index.php/s/zL2AJHwtCWLX2Eq/preview" />
</p>
+<?php
+include('../includes/foot.php');
+?>
diff --git a/includes/foot.php b/includes/foot.php
new file mode 100644
index 0000000..c128cc1
--- /dev/null
+++ b/includes/foot.php
@@ -0,0 +1,9 @@
+</article>
+<hr />
+
+<footer>
+
+</footer>
+</body>
+
+</html>
diff --git a/includes/head.php b/includes/head.php
index ba16fb0..4b95e2f 100644
--- a/includes/head.php
+++ b/includes/head.php
@@ -200,13 +200,6 @@
<body>
<?php
- if (!isset($nav) || $nav) {
- include('nav.php');
- }
+ include('nav.php');
?>
<article>
- <?php
- if (isset($title)) {
- printf('<h1>%s</h1>', $title);
- }
- ?>
diff --git a/includes/render_index.php b/includes/render_index.php
new file mode 100644
index 0000000..d90627b
--- /dev/null
+++ b/includes/render_index.php
@@ -0,0 +1,24 @@
+<header>
+ <noscript>
+ JavaScript? Where we're going we don't need JavaScript.
+ </noscript>
+</header>
+
+<h1 style="text-align: center">
+ The World Wide Web pages of Adam Carpenter (53hornet)
+</h1>
+
+<ul>
+ <?php
+ $posts = scandir('./posts', SCANDIR_SORT_DESCENDING);
+ $posts = array_filter($posts, fn ($post) => !empty($post) && $post != '.' && $post != '..');
+ #$posts = array_slice($posts, 0, 1000);
+
+ foreach ($posts as &$post) {
+ $title = str_replace('h1', 'span', fgets(fopen("./posts/$post", 'r')));
+ $date = str_split($post, 10)[0];
+ $post = str_replace('.php', '', $post);
+ printf('<li> <code>%s</code> <a href="/%s">%s</a> </li>', $date, $post, $title);
+ }
+ ?>
+</ul>
diff --git a/index.php b/index.php
index 9813128..2781c7a 100644
--- a/index.php
+++ b/index.php
@@ -1,31 +1,10 @@
<?php
include('./includes/head.php');
-?>
-<header>
- <noscript>
- JavaScript? Where we're going we don't need JavaScript.
- </noscript>
-</header>
+if (($post = strtok($_SERVER['REQUEST_URI'], '/')) && !empty($post)) {
+ include("./posts/$post.php");
+} else {
+ include('./includes/render_index.php');
+}
-<h1 style="text-align: center">
- The World Wide Web pages of Adam Carpenter (53hornet)
-</h1>
-<ul>
- <?php
- if ($posts = glob('./posts/*.php')) {
- $early = true;
-
- foreach (array_reverse($posts) as $post) {
- if (!empty($post) && $post != '.' && $post != '..') {
- $post_name = explode('/', $post)[2];
- $date = implode('-', array_slice(explode('-', $post_name), 0, 3));
- include($post);
- printf('<li> <code>%s</code> <a href="/%s">%s</a> </li>', $date, $post, $title);
- }
- }
- }
- ?>
- <li><a href="https://www.53hor.net/posts/?C=M&O=A">All posts...</a></li>
-</ul>
-</article>
+include('./includes/foot.php');
diff --git a/info/index.php b/info/index.php
index 65b3f9b..a2ca53b 100644
--- a/info/index.php
+++ b/info/index.php
@@ -1,7 +1,7 @@
<?php
-$title = "Info";
include('../includes/head.php');
?>
+<h1>Info</h1>
<p>
My name is <em>Adam Carpenter</em> (on some sites I'm
@@ -93,3 +93,7 @@ include('../includes/head.php');
<a href="https://validator.w3.org/feed/check.cgi?url=https%3A//www.53hor.net/feed.php"><img src="https://nextcloud.53hor.net/index.php/s/Ly6CBibnCFA99Fz/preview" alt="[Valid RSS]" title="Validate my RSS feed" /></a>
<img src="https://nextcloud.53hor.net/index.php/s/nKmSsrxa4LkRHdM/preview" />
+
+<?php
+include('../includes/foot.php');
+?>
diff --git a/links/index.php b/links/index.php
index a5cf83f..3012a69 100644
--- a/links/index.php
+++ b/links/index.php
@@ -1,8 +1,20 @@
<?php
-$title = "Egress Links";
include('../includes/head.php');
?>
+<h1>Egress Links</h1>
<p>
If you're going to leave my site to go somewhere else on the web, I recommend linking out via one of these. This is my curated collection of awesome sites, resources, and online assets.
</p>
+
+<h2>Automotive</h2>
+
+<h2>*nix</h2>
+
+<ul>
+ <li><a href="https://docs.freebsd.org/en/books/handbook/">FreeBSD Handbook</a></li>
+</ul>
+
+<?php
+include('../includes/foot.php');
+?>
diff --git a/payments/index.php b/payments/index.php
index 9a7d037..cb6c58f 100644
--- a/payments/index.php
+++ b/payments/index.php
@@ -1,5 +1,4 @@
<?php
-$title = "Payments";
include('./includes/head.php');
?>
diff --git a/posts/2019-04-06-why-have-a-website-in-2019.php b/posts/2019-04-06-why-have-a-website-in-2019.php
index b49d049..3e7d15b 100644
--- a/posts/2019-04-06-why-have-a-website-in-2019.php
+++ b/posts/2019-04-06-why-have-a-website-in-2019.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Why Have a Web Site in 2019?";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Why Have a Web Site in 2019?</h1>
+
<blockquote>
Adam, why on earth do you have a website? Wait... Is this a
diff --git a/posts/2019-06-07-how-to-start-and-drive-a-hudson-hornet.php b/posts/2019-06-07-how-to-start-and-drive-a-hudson-hornet.php
index 53e0f40..20bfb9c 100644
--- a/posts/2019-06-07-how-to-start-and-drive-a-hudson-hornet.php
+++ b/posts/2019-06-07-how-to-start-and-drive-a-hudson-hornet.php
@@ -1,10 +1,5 @@
-<?php
-$title = "How to Start and Drive a Hudson Hornet";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>How to Start and Drive a Hudson Hornet</h1>
+
<p class="description">
My understanding is there are a lot of people out there for whom driving
diff --git a/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.php b/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.php
index 34685de..6e3d9eb 100644
--- a/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.php
+++ b/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Offloading GoPro Footage the Easy Way!";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Offloading GoPro Footage the Easy Way!</h1>
+
<p>
Transferring files off of most cameras to a Linux computer isn't all
diff --git a/posts/2019-07-04-yabs-yet-another-bad-shop.php b/posts/2019-07-04-yabs-yet-another-bad-shop.php
index 9594369..9b684b5 100644
--- a/posts/2019-07-04-yabs-yet-another-bad-shop.php
+++ b/posts/2019-07-04-yabs-yet-another-bad-shop.php
@@ -1,10 +1,5 @@
-<?php
-$title = "YABS: Yet Another Bad Shop";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>YABS: Yet Another Bad Shop</h1>
+
<p>
Today I received a text message from a local mechanic/auto shop asking
me to leave them a Google review. It was an automated message from a
diff --git a/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.php b/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.php
index bdced0a..02da9b2 100644
--- a/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.php
+++ b/posts/2019-07-21-dancing-the-shag-and-the-new-lion-king.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Dancing the Shag and The [New] Lion Ling";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Dancing the Shag and The [New] Lion Ling</h1>
+
<p>
Not all of my posts are huge, and they probably shouldn't be. Amy and I
had a really great time yesterday at Two Left Feet Dance Studio,
diff --git a/posts/2019-07-28-i-finally-found-a-drink-i-like.php b/posts/2019-07-28-i-finally-found-a-drink-i-like.php
index a73de9e..9e6d5a0 100644
--- a/posts/2019-07-28-i-finally-found-a-drink-i-like.php
+++ b/posts/2019-07-28-i-finally-found-a-drink-i-like.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Finally Found a Drink I Like";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Finally Found a Drink I Like</h1>
+
<p>
Anyone who knows me even slightly well probably knows that I don't
drink. And it's not out of moral obligation or anything like that. I
diff --git a/posts/2019-08-11-marrying-my-best-friend.php b/posts/2019-08-11-marrying-my-best-friend.php
index 83bde5b..ac18e55 100644
--- a/posts/2019-08-11-marrying-my-best-friend.php
+++ b/posts/2019-08-11-marrying-my-best-friend.php
@@ -1,11 +1,5 @@
-<?php
-$title = "I Married My Best Friend!";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
<h1>I Married My Best Friend!</h1>
+
<p>
It was an inexplicable mixture of joy and butterflies getting to marry
my best friend. It was truly like a dream come true, so much so that it
diff --git a/posts/2019-08-30-keep-right-except-to-pass.php b/posts/2019-08-30-keep-right-except-to-pass.php
index 660733a..cf4aa85 100644
--- a/posts/2019-08-30-keep-right-except-to-pass.php
+++ b/posts/2019-08-30-keep-right-except-to-pass.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Left Lane is for Passing, Not Cruising";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Left Lane is for Passing, Not Cruising</h1>
+
<p>
Greetings fellow drivers of Hampton Roads. You may have noticed a new
sign on I264 today that befuddled or confused you. It went something
diff --git a/posts/2019-09-28-my-preferred-method-for-data-recovery.php b/posts/2019-09-28-my-preferred-method-for-data-recovery.php
index d7b68d2..77efd5f 100644
--- a/posts/2019-09-28-my-preferred-method-for-data-recovery.php
+++ b/posts/2019-09-28-my-preferred-method-for-data-recovery.php
@@ -1,10 +1,5 @@
-<?php
-$title = "How I Do Data Recovery";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>How I Do Data Recovery</h1>
+
<p>
This week Amy plugged in her flash drive to discover that there were no
diff --git a/posts/2020-04-10-the-obligatory-covid-19-post.php b/posts/2020-04-10-the-obligatory-covid-19-post.php
index 6cdabe9..711c3f0 100644
--- a/posts/2020-04-10-the-obligatory-covid-19-post.php
+++ b/posts/2020-04-10-the-obligatory-covid-19-post.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Obligatory COVID-19 Post";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Obligatory COVID-19 Post</h1>
+
<p>
We're alive! All three of us: Amy, Clementine, and myself. We're doing
what we do best and that is being hermits with zero social contact.
diff --git a/posts/2020-04-10-wedding-photos-are-here.php b/posts/2020-04-10-wedding-photos-are-here.php
index 59344d6..36b14e1 100644
--- a/posts/2020-04-10-wedding-photos-are-here.php
+++ b/posts/2020-04-10-wedding-photos-are-here.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Wedding Photo Debacle";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Wedding Photo Debacle</h1>
+
<p>
At long last we have all of our wedding photos together! Unfortunately a
diff --git a/posts/2020-07-11-why-computer-science-at-w-m.php b/posts/2020-07-11-why-computer-science-at-w-m.php
index f2fb3d1..42c6cfb 100644
--- a/posts/2020-07-11-why-computer-science-at-w-m.php
+++ b/posts/2020-07-11-why-computer-science-at-w-m.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Why Computer Science at William and Mary";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Why Computer Science at William and Mary</h1>
+
<p class="description">
Recently a rising high-school senior asked for input on what going to
diff --git a/posts/2020-07-26-now-this-is-a-minimal-install.php b/posts/2020-07-26-now-this-is-a-minimal-install.php
index 3165b71..7835e0b 100644
--- a/posts/2020-07-26-now-this-is-a-minimal-install.php
+++ b/posts/2020-07-26-now-this-is-a-minimal-install.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Now This is a Minimal Install!";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Now This is a Minimal Install!</h1>
+
<p>
I just got done configuring Poudriere on Freebsd 12.1-RELEASE. The
diff --git a/posts/2020-11-30-titanics-last-signals.php b/posts/2020-11-30-titanics-last-signals.php
index 03c0b96..93978d4 100644
--- a/posts/2020-11-30-titanics-last-signals.php
+++ b/posts/2020-11-30-titanics-last-signals.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Titanic's Last Signals";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Titanic's Last Signals</h1>
+
<p>
I forgot to post this back in April but 108 years ago, a chilling and
heroic conversation was had over the airwaves. This is a fascinating way
diff --git a/posts/2020-12-01-the-guides.php b/posts/2020-12-01-the-guides.php
index a3629be..fb9e5a3 100644
--- a/posts/2020-12-01-the-guides.php
+++ b/posts/2020-12-01-the-guides.php
@@ -1,10 +1,5 @@
-<?php
-$title = "𝔗𝔥𝔢 𝔊𝔲𝔦𝔡𝔢𝔰";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>𝔗𝔥𝔢 𝔊𝔲𝔦𝔡𝔢𝔰</h1>
+
<p class="description">
This is partly satirical and purposefully strange to be humorous. These
diff --git a/posts/2020-12-04-aoc-2020-day-1-in-cbm-basic.php b/posts/2020-12-04-aoc-2020-day-1-in-cbm-basic.php
index 5196d2c..bb2e057 100644
--- a/posts/2020-12-04-aoc-2020-day-1-in-cbm-basic.php
+++ b/posts/2020-12-04-aoc-2020-day-1-in-cbm-basic.php
@@ -1,10 +1,5 @@
-<?php
-$title = "AOC 2020 Day 1 in CBM Basic";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>AOC 2020 Day 1 in CBM Basic</h1>
+
<p class="description">
I implemented the
diff --git a/posts/2020-12-08-useful-sprint-planning-from-a-certified-scrum-master.php b/posts/2020-12-08-useful-sprint-planning-from-a-certified-scrum-master.php
index 77aebdf..1f8618b 100644
--- a/posts/2020-12-08-useful-sprint-planning-from-a-certified-scrum-master.php
+++ b/posts/2020-12-08-useful-sprint-planning-from-a-certified-scrum-master.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Useful Sprint Planning from a Certified Scrum Master";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Useful Sprint Planning from a Certified Scrum Master</h1>
+
<p class="description">
This is a small collection of sprint planning/story points allocation
diff --git a/posts/2020-12-22-why-does-everyone-use-adobe-acrobat-reader.php b/posts/2020-12-22-why-does-everyone-use-adobe-acrobat-reader.php
index bb384f2..b2fee03 100644
--- a/posts/2020-12-22-why-does-everyone-use-adobe-acrobat-reader.php
+++ b/posts/2020-12-22-why-does-everyone-use-adobe-acrobat-reader.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Why Does Everyone Use Adobe Acrobat [Reader]?";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Why Does Everyone Use Adobe Acrobat [Reader]?</h1>
+
<p>
<img src="https://nextcloud.53hor.net/index.php/s/Pq8ZPe8THoH3Eoo/preview" />
diff --git a/posts/2020-12-29-antivirus-software-is-a-hack.php b/posts/2020-12-29-antivirus-software-is-a-hack.php
index cc5f0d0..93040a0 100644
--- a/posts/2020-12-29-antivirus-software-is-a-hack.php
+++ b/posts/2020-12-29-antivirus-software-is-a-hack.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Antivirus Software is a Hack";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Antivirus Software is a Hack</h1>
+
<p>
<img src="https://nextcloud.53hor.net/index.php/s/jJoFoA7Ppjb7rey/preview" />
diff --git a/posts/2021-01-15-adam-s-2020-reading-list.php b/posts/2021-01-15-adam-s-2020-reading-list.php
index 390bf3e..f347248 100644
--- a/posts/2021-01-15-adam-s-2020-reading-list.php
+++ b/posts/2021-01-15-adam-s-2020-reading-list.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Adam's 2020 (Quarantine) Reading List";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Adam's 2020 (Quarantine) Reading List</h1>
+
<ul>
<li>
diff --git a/posts/2021-01-15-root-on-zfs-a-zpool-of-mirror-vdevs-the-easy-way.php b/posts/2021-01-15-root-on-zfs-a-zpool-of-mirror-vdevs-the-easy-way.php
index d67f582..1103db8 100644
--- a/posts/2021-01-15-root-on-zfs-a-zpool-of-mirror-vdevs-the-easy-way.php
+++ b/posts/2021-01-15-root-on-zfs-a-zpool-of-mirror-vdevs-the-easy-way.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Root on ZFS: A ZPool of Mirror VDEVs";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Root on ZFS: A ZPool of Mirror VDEVs</h1>
+
<p class="description">
I wanted/needed to make a root on ZFS pool out of multiple mirror VDEVs,
diff --git a/posts/2021-01-28-undefined-javasript-is-undefined.php b/posts/2021-01-28-undefined-javasript-is-undefined.php
index b70141c..c9c01f8 100644
--- a/posts/2021-01-28-undefined-javasript-is-undefined.php
+++ b/posts/2021-01-28-undefined-javasript-is-undefined.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Undefined? JavaScript Is Undefined.";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Undefined? JavaScript Is Undefined.</h1>
+
<p class="description">
So I've been working on a web app for my mom. Nothing too fancy, but
diff --git a/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.php b/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.php
index 864265a..cf8c52d 100644
--- a/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.php
+++ b/posts/2021-02-12-louis-vierne-is-a-bamf-and-proof-that-organists-are-metal.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Louis Vierne Is a BAMF (and Proof That Organists Are Metal)";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Louis Vierne Is a BAMF (and Proof That Organists Are Metal)</h1>
+
<p>
Louis Vierne is a certifiable badass organist from the end of the 19th
diff --git a/posts/2021-03-19-how-to-automate-certbot-renewal-with-haproxy.php b/posts/2021-03-19-how-to-automate-certbot-renewal-with-haproxy.php
index 634a57d..a4fe84d 100644
--- a/posts/2021-03-19-how-to-automate-certbot-renewal-with-haproxy.php
+++ b/posts/2021-03-19-how-to-automate-certbot-renewal-with-haproxy.php
@@ -1,10 +1,5 @@
-<?php
-$title = "How to Automate Certbot Renewal with HAPRoxy (on FreeBSD)";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>How to Automate Certbot Renewal with HAPRoxy (on FreeBSD)</h1>
+
<p>
So this is specifically for HAProxy on FreeBSD, but it should apply to
diff --git a/posts/2021-04-20-how-to-make-your-website-boring-and-why.php b/posts/2021-04-20-how-to-make-your-website-boring-and-why.php
index 6f8136d..8aa67af 100644
--- a/posts/2021-04-20-how-to-make-your-website-boring-and-why.php
+++ b/posts/2021-04-20-how-to-make-your-website-boring-and-why.php
@@ -1,10 +1,5 @@
-<?php
-$title = "How to Make Your Website Boring and Why!";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>How to Make Your Website Boring and Why!</h1>
+
<p class="description">
I took the time last year to make my website more boring. Here's how you
diff --git a/posts/2021-05-23-web-designers-please-don-t-animate-page-titles.php b/posts/2021-05-23-web-designers-please-don-t-animate-page-titles.php
index 1c28487..de746f9 100644
--- a/posts/2021-05-23-web-designers-please-don-t-animate-page-titles.php
+++ b/posts/2021-05-23-web-designers-please-don-t-animate-page-titles.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Web Designers, Please Don't Animate Page Titles";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Web Designers, Please Don't Animate Page Titles</h1>
+
<p>
If you visit
diff --git a/posts/2021-09-26-useful-shell-scripting-and-bulk-renaming-files-with-vim.php b/posts/2021-09-26-useful-shell-scripting-and-bulk-renaming-files-with-vim.php
index bc88caa..08789b2 100644
--- a/posts/2021-09-26-useful-shell-scripting-and-bulk-renaming-files-with-vim.php
+++ b/posts/2021-09-26-useful-shell-scripting-and-bulk-renaming-files-with-vim.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Useful Shell Scripting and Bulk Renaming Files with Vim";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Useful Shell Scripting and Bulk Renaming Files with Vim</h1>
+
<p class="description">
I used to use <code>vifm</code>, a terminal file manager, on FreeBSD and Linux. I realized the only feature I was really using was bulk interactive file renaming with <code>vim</code>. So I ditched the file manager altogether and implemented the bulk rename feature in a few lines of shell.
diff --git a/posts/2021-10-01-shroud-your-rad-for-an-ice-cold-hudson.php b/posts/2021-10-01-shroud-your-rad-for-an-ice-cold-hudson.php
index 35a226f..48eeb9a 100644
--- a/posts/2021-10-01-shroud-your-rad-for-an-ice-cold-hudson.php
+++ b/posts/2021-10-01-shroud-your-rad-for-an-ice-cold-hudson.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Shroud Your Rad for an Ice-cold Hudson!";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Shroud Your Rad for an Ice-cold Hudson!</h1>
+
<p class="description">
diff --git a/posts/2021-10-12-altruistic-angelshark.php b/posts/2021-10-12-altruistic-angelshark.php
index b516d4b..02652d1 100644
--- a/posts/2021-10-12-altruistic-angelshark.php
+++ b/posts/2021-10-12-altruistic-angelshark.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Altruistic Angelshark";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Altruistic Angelshark</h1>
+
<p class="description">
I finally got the opportunity to release a long-term project from work online
diff --git a/posts/2021-10-22-forced-downloads-in-the-browser-via-http.php b/posts/2021-10-22-forced-downloads-in-the-browser-via-http.php
index bd411e5..2d5dcf4 100644
--- a/posts/2021-10-22-forced-downloads-in-the-browser-via-http.php
+++ b/posts/2021-10-22-forced-downloads-in-the-browser-via-http.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Forced Downloads in the Browser Via HTTP";
-if (isset($early) && $early) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Forced Downloads in the Browser Via HTTP</h1>
+
<p class="description">
Recently a coworker was tasked with adding a "file download" link to a web page. The file in question was being generated dynamically by the server, but we really wanted to make sure the file didn't get rendered in the user's tab. Here's how you can leverage HTTP headers to do that (and some alternative ways you shouldn't!)
diff --git a/posts/2021-11-28-write-your-own-ssh-tarpit-in-rust-with-async-std.php b/posts/2021-11-28-write-your-own-ssh-tarpit-in-rust-with-async-std.php
index 1bce63d..9a58b6c 100644
--- a/posts/2021-11-28-write-your-own-ssh-tarpit-in-rust-with-async-std.php
+++ b/posts/2021-11-28-write-your-own-ssh-tarpit-in-rust-with-async-std.php
@@ -1,10 +1,5 @@
-<?php
-$title = "Write Your Own SSH Tarpit in Rust with async-std";
-if (!empty($early)) {
- return;
-}
-include($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
-?>
+<h1>Write Your Own SSH Tarpit in Rust with async-std</h1>
+
<p class="description">
A software tarpit is simple and fun. Long story short, it's sort of a reverse denial-of-service attack. It usually works by inserting an intentional, arbitrary delay in responding to malicious clients, thus "wasting their time and resources." I recently learned about <a href="https://github.com/skeeto/endlessh"><code>endlessh</code></a>, an SSH tarpit. I decided it would be a fun exercise to use Rust's <code>async-std</code> library to write an SSH tarpit of my own, with my own personal <em>flair</em>. If you want to learn more about <code>endlessh</code> or SSH tarpits I highly recommend reading <a href="https://nullprogram.com/blog/2019/03/22/">this blog post</a> by the <code>endlessh</code> author.