<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Meta on davepedu.com</title><link>https://davepedu.com/tags/meta/</link><description>Recent content in Meta on davepedu.com</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>dave@davepedu.com (dave)</managingEditor><webMaster>dave@davepedu.com (dave)</webMaster><lastBuildDate>Sat, 14 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://davepedu.com/tags/meta/index.xml" rel="self" type="application/rss+xml"/><item><title>modernizing this blog</title><link>https://davepedu.com/blog/2026/03/14/modernizing-this-blog/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><author>dave@davepedu.com (dave)</author><guid>https://davepedu.com/blog/2026/03/14/modernizing-this-blog/</guid><description>&lt;p&gt;My personal website has existed in some form since the late 2000s, and like many hobby projects, it has been rebuilt far
more times than strictly necessary. My taste in tech stacks has changed over time, and each version reflects whatever I
was experimenting with at the time.&lt;/p&gt;
&lt;p&gt;These are some of thee iterations it has gone through over the years, and what is to come:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;2011 - &lt;a href="https://web.archive.org/web/20110227204954/davepedu.com/blog/"&gt;WordPress&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Early 2012 - &lt;a href="https://web.archive.org/web/20120202030252/http://davepedu.com/"&gt;A single word to mark my existence on the Internet&lt;/a&gt;&lt;/p&gt;</description><content>&lt;p&gt;My personal website has existed in some form since the late 2000s, and like many hobby projects, it has been rebuilt far
more times than strictly necessary. My taste in tech stacks has changed over time, and each version reflects whatever I
was experimenting with at the time.&lt;/p&gt;
&lt;p&gt;These are some of thee iterations it has gone through over the years, and what is to come:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;2011 - &lt;a href="https://web.archive.org/web/20110227204954/davepedu.com/blog/"&gt;WordPress&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Early 2012 - &lt;a href="https://web.archive.org/web/20120202030252/http://davepedu.com/"&gt;A single word to mark my existence on the Internet&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Late 2012 - &lt;a href="https://web.archive.org/web/20120919081823/http://davepedu.com/"&gt;Cheesy wood paneling and filler text&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Early 2013 - &lt;a href="https://web.archive.org/web/20130402141622/http://davepedu.com/"&gt;A fully custom Python blog engine&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Late 2013 - &lt;a href="https://web.archive.org/web/20130402141622/http://davepedu.com/"&gt;Drupal 7 on a new .io domain&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2014 - &lt;a href="https://web.archive.org/web/20141217064451/http://dpedu.io/"&gt;Design changes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2016 - &lt;a href="https://web.archive.org/web/20160305084026/http://dpedu.io/"&gt;More design changes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aside - this list was actually a lot of fun to put together. I had forgotten entirely about some of these iterations.&lt;/p&gt;
&lt;p&gt;Out of all of these, the Drupal 7 iteration lasted, by far, the longest. Which, itself, is amusing. Drupal is
implemented in PHP, and there is a lot of writing on the internet about whether PHP is the greatest language or a
&lt;a href="https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/"&gt;terrible&lt;/a&gt; language. But either way, it is undeniable that
PHP is like a cockroach that will not die.&lt;/p&gt;
&lt;p&gt;But why Drupal, anyways? It bills itself as being for Enterprise, which usually means large and hulking codebases. And
it is. When I set up this site using Drupal, I was working for the &lt;a href="https://rit.edu"&gt;Rochester Institute of Technology&lt;/a&gt;,
building &lt;a href="https://davepedu.com/projects/2013/12/01/rit-kgcoe-website/"&gt;the school&amp;rsquo;s own websites&lt;/a&gt; in Drupal. It was
already familiar to me from this, so it was easy enough to use Drupal for my own purposes.&lt;/p&gt;
&lt;p&gt;But, I eventually stopped working with Drupal and web development in general as I moved into other roles -
&lt;a href="https://davepedu.com/blog/2017/07/12/on-moving-to-the-bay/"&gt;which I wrote about here&lt;/a&gt; - and I didn&amp;rsquo;t keep up with
Drupal or PHP&amp;rsquo;s evolution. Which, for Drupal, actually would have required some serious re-writes as the theme rendering
layer was changed pretty drastically from version 7 to 8. But that&amp;rsquo;s probably more detail about Drupal than
anyone needs.&lt;/p&gt;
&lt;p&gt;PHP too, changed. My Drupal website was written to work with PHP 5, which hasn&amp;rsquo;t been supported for years. Server
operating systems have long dropped support for it. Between it and Drupal&amp;rsquo;s age, it&amp;rsquo;s honestly a miracle the site never
got hacked.&lt;/p&gt;
&lt;p&gt;PHP evolved, Drupal evolved, became more complicated, and I did not keep up. So now it is time to build something new,
and to keep it simple this time around.&lt;/p&gt;
&lt;p&gt;This time, I&amp;rsquo;ve decided to use &lt;a href="https://github.com/gohugoio/hugo"&gt;Hugo&lt;/a&gt;, which is a static website framework. In
summary, you give it your content formatted in Markdown which it will organize and feed into a template, which then in
turn outputs HTML.&lt;/p&gt;
&lt;p&gt;This post, too, is a Markdown file that contains the text you see and some metadata at the top:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;+++
title = "modernizing this blog"
date = "2026-03-14"
author = "Dave"
cover = "img/IMG_1053_cropped.jpg"
hideCoverInSingle = true
description = "This blog has been migrated to a static website, using Hugo!"
tags = ["Programming", "Meta"]
+++&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I&amp;rsquo;ll lose a few things by switching to a simple static site. I could update the Drupal website from anywhere - just log
in and write a new post, or save it as a draft. And the comment section - sorry, you&amp;rsquo;ll have to write to me
&lt;a href="https://davepedu.com/contact/"&gt;directly&lt;/a&gt; now.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m also switching to my original &lt;code&gt;davepedu.com&lt;/code&gt; domain, instead of &lt;code&gt;dpedu.io&lt;/code&gt;. The .io domain was trendy at some point
in the past, and I&amp;rsquo;ve come to think that a classic .com is better anyway. On top of that, it allows me to keep the old
Drupal site online at &lt;code&gt;dpedu.io&lt;/code&gt; while I manually extract content from Drupal and re-write it for Hugo. After a time,
that domain will redirect here as well. The old site didn&amp;rsquo;t have terribly much content, but I&amp;rsquo;m also going through
unpublished drafts and making them into real posts.&lt;/p&gt;
&lt;p&gt;The new hosting stack will be similar, too. Before, I had a bare-metal dedicated server rented from
&lt;a href="https://ovhcloud.com"&gt;OVH&lt;/a&gt;. I went with dedicated servers since at the time I was working on computer infrastructure.
Another big complex thing I don&amp;rsquo;t want to take care of anymore, hah. I&amp;rsquo;ll be sticking with OVH, but I&amp;rsquo;ll be using a VPS
instead. A VPS is a good middle ground - over something completely hands-off like static hosting on Cloudflare - because
it still gives me a place to play sysadmin, which I enjoy. And everything configured on it will be installed with a
simple form of configuration management - but more on that in a future post.&lt;/p&gt;
&lt;p&gt;Of course, I couldn&amp;rsquo;t resist adding a bit of engineering fun.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve written a Go-based application that acts like a toy version of AWS&amp;rsquo;s
&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html"&gt;S3 static website hosting&lt;/a&gt;. It&amp;rsquo;s called
&lt;a href="https://git.davepedu.com/dave/s3static"&gt;s3static&lt;/a&gt;, and is meant to be used with S3-compatible storage systems such as
&lt;a href="https://github.com/minio/minio"&gt;Minio&lt;/a&gt; or &lt;a href="https://github.com/rustfs/rustfs"&gt;RustFS&lt;/a&gt;. But more about that project in
its own dedicated post.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/traefik/traefik"&gt;Traefik&lt;/a&gt; will also be involved. It&amp;rsquo;s meant for Kubernetes but works great with a
text config file too. It also automatically handles TLS certificates via &lt;a href="https://letsencrypt.org/"&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt;, for
which I used an unusual and convoluted process, which is a whole other story.&lt;/p&gt;
&lt;p&gt;Hopefully, keeping things simple will help this version stick around. Either way, rebuilding the site has been a fun
excuse to revisit old memories, clean things up, and experiment with a few new tools.&lt;/p&gt;
&lt;figure class="left" &gt;
&lt;img src="https://davepedu.com/blog/2026/03/14/modernizing-this-blog/img/IMG_1053_cropped_hu_4d96ba1b6988630d.jpg" alt="davepedu.com chief technology officer" /&gt;
&lt;figcaption class="center" &gt;davepedu.com chief technology officer&lt;/figcaption&gt;
&lt;/figure&gt;</content></item></channel></rss>