aboutsummaryrefslogtreecommitdiff
path: root/blog/posts
diff options
context:
space:
mode:
authorHannah Isopod <me@bathynomus.xyz>2025-06-13 01:13:52 -0600
committerHannah Isopod <me@bathynomus.xyz>2025-06-13 01:13:52 -0600
commit4ace83da3951c37f18fbb9676542239be4d051ee (patch)
treed079e79bd76cb2575faee5e64de4b44e96477b98 /blog/posts
parent9b88bf8e5fe84b41918cacca69df191e0de3a7b1 (diff)
various minor changes + blog post
a bunch of minor alterations, of particular import is the new blog post and the IP banning function I added to the guestbook
Diffstat (limited to 'blog/posts')
-rw-r--r--blog/posts/blog_questions/index.md55
-rw-r--r--blog/posts/blog_questions/index.php (renamed from blog/posts/how_my_blog_works/index.php)0
-rw-r--r--blog/posts/how_my_blog_works/index.md0
-rw-r--r--blog/posts/post.php5
-rw-r--r--blog/posts/renting_an_unremarkable_server/index.md16
5 files changed, 67 insertions, 9 deletions
diff --git a/blog/posts/blog_questions/index.md b/blog/posts/blog_questions/index.md
new file mode 100644
index 0000000..4f6ac6b
--- /dev/null
+++ b/blog/posts/blog_questions/index.md
@@ -0,0 +1,55 @@
+I was clicking around [some other blog](https://blog.kalechips.net/post/2025-01-11-Blog-Questions) and found this fun little list of question prompts for foolish, naive bloggers such as myself to answer publicly, thus casually exposing our secrets and opening ourselves up to blackmail and doxxing. Naturally I decided it would be cool to do it myself.
+
+Apparently someone's supposed to tag you in these things, but it's my blog and it's not like anyone's gonna stop me, so I'm doing it totally unsolicited, and if you don't like it you can pound sand, suck a lemon, and other such whimsical idioms.
+
+Conveniently, this also serves the purpose of the obligatory "how my CMS works" post I've been meaning to write for the past couple months.
+
+## Why did you start blogging in the first place?
+
+Like many of the things on my website, I initially started a real-ass proper we-blog because it seemed like a cool thing to put on my website, and it was a good place to put a style of writing that didn't really feel suited to the various microblogging platforms I already had a presence on. I kept doing it because, as it turns out, I sometimes have a lot to say about something. Most often computer toucher shit.
+
+## What platform are you using to manage your blog and why did you choose it?
+
+To call the thing I've built here a "platform" would be a little generous, I think, but it is pretty interesting, and possibly quite unorthodox.
+
+The backend for my blog is built around its RSS feed, which is to say, the authoritative source for all the metadata for each blog post is an Atom feed that I write by hand. The PHP script that renders the index page is essentially just a glorified RSS reader for just that one feed.
+
+The posts themselves are stored as Markdown files with a smattering of HTML mixed in for the really custom stuff, and there's a second PHP file that renders them using a third-party PHP Markdown parser called [Parsedown](https://github.com/erusev/parsedown) (which, fun fact, is also responsible for the Markdown support in the comment section). The only unfortunate thing here is every markdown file has to be accompanied by a stub index.php that just `include`s the main post rendering script, but it's not like I ever have to touch those so it's fine. Here, I'll put all the code that's in every single one right here:
+
+```
+<?php include("../post.php");
+```
+
+The comment section is fully custom too, and shares a backend with the [guestbook](/guestbook/). At its core it's all just PHP forms with a single JSON file as the database, which is more than fine at the scale I'm operating at. Everything else is just gravy, although there is at this point quite a preponderance of gravy.
+
+As for why I did all this, I like not being beholden to the moderation guidelines, aesthetic limitations, and in many cases totally batshit leadership of a blog host, and this is also kind of the only solution that lets me do all the wacky custom nonsense I want to do on here, especially without involving any Javascript.
+
+## How do you write your posts?
+
+The fact that all my blog posts are in Markdown means that I theoretically could draft them in Obsidian if I wanted to, but I most often find myself writing at my computer in the same VSCodium window where I write all the code. If anything, this is more convenient, since I still have to upload the files over sftp anyway. Allthough, not havign a spelchecker can be a litle annyoing.
+
+## Have you blogged on other platforms before?
+
+Not really. I briefly used Blogger and I think a couple other things for school projects at various points in my upbringing, but this site represents my first time seriously maintaining a long-form blog.
+
+I mean, the official term for your Tumblr profile is "blog", and I have been on there for like eight or nine years at this point, but given how I use that site I don't think it counts for our purposes here today.
+
+## When do you feel most inspired to write?
+
+I suspect you can guess based on the content of my blog. Most of the posts on here are the result of a really longwinded opinion I wanted to get out, or some very specific thing I did that I wanted to document or otherwise ramble about. So far, inspiration seems to exclusively strike when it's about computer nonsense, but I'd like to try to branch out in the future.
+
+## Do you publish immediately after writing, or do you let it simmer a bit as a draft?
+
+I find it's best practice to sleep on it before publishing anything. Oftentimes I'll come back to a post the next day and change anything from a couple typos to huge chunks of the wording. Sometimes rinse and repeat a couple times.
+
+## What's your favourite post on your blog?
+
+I'm particularly fond of the series documenting my home server builds, [Building a Completely Normal Server](/blog/posts/building_a_normal_server/) and [Building a Relatively Sensible Server](/blog/posts/building_a_sensible_server/). I'd like to do more in-depth project logs like that.
+
+## Any future plans for your blog?
+
+Beyond continuing to write the occasional post for it, not really. I've contemplated building some kind of management interface to update it through the browser, but that would be a lot of effort and it's not like a clunky workflow is the main bottleneck to my posting frequency.
+
+## Why do you write?
+
+I seem to genuinely enjoy this kind of writing. It's conducive to a kind of expression that social media just isn't. Beyond that, I'd like to think someone, somewhere, might perhaps be getting some informational value out of some of these, hence posts like [this](/blog/posts/grow_spikes/), and [that](/blog/posts/guide_blacklist_websites_searxng/), but at the end of the day I wouldn't be doing this if I wasn't compelled to by dark forces beyond my full comprehension &mdash; in other words, Type II fun. \ No newline at end of file
diff --git a/blog/posts/how_my_blog_works/index.php b/blog/posts/blog_questions/index.php
index f572f79..f572f79 100644
--- a/blog/posts/how_my_blog_works/index.php
+++ b/blog/posts/blog_questions/index.php
diff --git a/blog/posts/how_my_blog_works/index.md b/blog/posts/how_my_blog_works/index.md
deleted file mode 100644
index e69de29..0000000
--- a/blog/posts/how_my_blog_works/index.md
+++ /dev/null
diff --git a/blog/posts/post.php b/blog/posts/post.php
index 65d2661..f8ed395 100644
--- a/blog/posts/post.php
+++ b/blog/posts/post.php
@@ -23,7 +23,7 @@ foreach($feed->entry as $entry) {
$pdate = preg_replace('/T.*$/', ' ', $entry->published);
$udate = preg_replace('/T.*$/', ' ', $entry->updated);
$title = $entry->title;
- $descr = $entry->summary;
+ $descr = htmlspecialchars($entry->summary);
} else if($title) {
$nextlink = $entry->link["href"];
$nexttitle = $entry->title;
@@ -73,6 +73,9 @@ foreach($feed->entry as $entry) {
flex-direction: column;
}
}
+ td {
+ display: table-cell !important;
+ }
</style>
<?php include($_SERVER['DOCUMENT_ROOT'] . '/seasonal.php'); ?>
</head>
diff --git a/blog/posts/renting_an_unremarkable_server/index.md b/blog/posts/renting_an_unremarkable_server/index.md
index d2687dd..117de85 100644
--- a/blog/posts/renting_an_unremarkable_server/index.md
+++ b/blog/posts/renting_an_unremarkable_server/index.md
@@ -4,14 +4,14 @@ Up until recently, I ran all my exposed-to-the-web self-hosted services on a mod
In researching alternative VPS options, I landed on OVH because they were the most reputable non-American hosting provider I could find with a datacenter in my country that I could be sure would allow me to use IPv6. Their VPS offerings were decent, certainly attractive to someone used to DigitalOcean prices, but I ended up going with a dedicated server instead due to the, to put it lightly, *vastly* better price-to-performance ratio on offer:
-| | Old VPS | New server | Comparably priced OVH VPS |
-| --- | --- | --- | --- |
-| CPU | 2 threads | 4 core/8 thread Intel Xeon-D 1520 | 4 threads |
-| RAM | 4GB | 32GB DDR4-2133 ECC | 4GB |
-| Storage | 80GB NVMe | 480GB mirrored SATA SSDs | 80GB NVMe |
-| Network | 2Gbps | 300Mbps | 1Gbps |
-| Backups | Automated | Bring your own | On-demand |
-| Price (CAD) | $44/mo | $25/mo | $26/mo |
+| Old VPS | New server | Comparably priced OVH VPS |
+| --- | --- | --- |
+| 2 threads | 4 core/8 thread Intel Xeon-D 1520 | 4 threads |
+| 4GB RAM | 32GB DDR4-2133 ECC | 4GB RAM |
+| 80GB NVMe | 480GB mirrored SATA SSDs | 80GB NVMe |
+| 2Gbps | 300Mbps | 1Gbps |
+| Automated backups | Bring your own backups | On-demand backups |
+| $44/mo | $25/mo | $26/mo |
See what I mean? Of course, none of these seem like all that from the perspective of a modern personal computer, but this represents a *quadrupling* of CPU cores and RAM and a *sextupling* of storage space for a near halving of the price compared to my already adequate previous solution. That's like eight times the value! Though, looking at this table, you can already see a couple of the reasons it's priced so competitively, even accounting for the DigitalOcean tax. Let's break this down.