October 20, 2020

I started building websites in the late 1990s when a school friend suggested I join the high school's web team. Not knowing anything about it, most of my time with the group was spent learning. At home, we had America Online and they offered a free homepage if you knew how to access it so I built my first webpage. I had a few pieces that I had written on it, but not much else since digital photography hadn't really taken off yet.

When I got to college they offered a similar space for students to host content, so my site moved with me. It was in my second year of college that I was introduced to PHP, a programming language for the web and basically never looked back. Up until that point, every time my website design changed, I had to change every page. With the power of PHP and include(); I could write code once and include it on multiple pages. As I learned more, my site got more complicated. 

After graduating college I moved my site to a hosting company, bought my own domain, and redesigned my website for the hundredth time. I had largely stopped writing content for my website and my focus was on the photo gallery. I got myself a DSLR and suddenly the images I was uploading became much larger. I used this as an excuse to make a photo uploader. Besides handling the resizing of my images, it also gave me a way to upload images without the need to log in and upload them directly to my server. Unfortunately, this same method would not work for HTML pages. 

It is actually a little embarrassing, but the next phase took something like 10 years. I was still developing things, just not my main website. Recently, I decided it was time to update my site to be a bit more professional. I put away the writing I had done in high school and the personal journal that I had barely updated over the years. I wanted something that would look nice, reflect what I'm currently working on, and most of all, be more functional. I'm pretty proud of what I put together and although it still requires some work, I wanted to share it so I made a video. 

I'm sure someone might be curious about how the site is working so I will try to provide a few details. When a content type is added that generates a content type descriptor file in JSON format. The descriptor file gets loaded when I create a new piece of content of that type and tells my editor which fields to display and what type of data should be expected. The content data gets saved to an ElasticSearch index (and to a local file for safekeeping). When a user visits my site, the content is pulled from ElasticSearch and pushed through a render script. That script takes the data, pulls in a template file, and fills in the fields before displaying it to the visitor. Keeping the data in ElasticSearch provides the ability to build listings for content types but also more dynamic things like tagged topics or search queries. 

When I first set out I was hoping to reduce the number of files on my server and in that sense, this redesign has been a failure. In every other way, though, the site has exceeded my expectations and it's still slowly getting better.