Blog 2.0

Posted on 12/30/2014

About a year and half ago I decided to create a blog. The idea was as much about coding the back-end of the blog as it was about writing. Inspired by Don Melton, who self-taught the majority of his programming skills and went on to do great things, I set out to learn as much HTML, CSS, PHP, and JavaScript as necessary to make this happen. The first version wasn't anything special; it had a welcome page with a list of recent posts and another page that displayed a blog entry given by a GET string. The biggest feature was a dated archive that would expand and collapse as the reader clicked on it. Today, I've updated it with a few more bells and whistles.

The goal with this blog, at least from the development perspective, has always been simplicity. You can read this to see how simple the first version was. After renewing my commitment to publishing here, I realized that it is not very easy to find old posts or past topics. For example, the welcome page showed the 5 most recent posts with a one paragraph preview of each. If you wanted to read any older entries, you would have had to click through the archive on the right. Now there is navigation at the bottom of the welcome page that allows the reader to see previews of posts from further in the past. Links labeled "Newer" and "Older" appear as needed as one navigates through these pages. In addition, there is now a "full" archive where the reader can view all the posts from any year or all the post tagged with a specific topic. This enables one to find or discover posts much more easily. All of this is done in about 200 lines of PHP.

This has increased the complexity a bit, but I am very happy with it. There are 4 total HTML files: the welcome page, the post page, the archive page, and the credits page. The content displayed on the post and archive pages are controlled via a GET string. It's hard to think of ways someone might break your code, but I've tried to make this as robust as possible. That is, if the reader changes the GET string to something crazy, the code is smart enough to make an adjustment and display something meaningful. Most importantly, as the blog grows building this content will not be hindered - it will remain as quick as it is now.

The biggest change was incorporating tags for each post. It wasn't difficult to tag each existing entry because there aren't very many of them. The difficult part was making sure that each new post (which is tagged during composition) is added to the tag list. I refused to do this manually. I recently constructed a workflow using Editorial, Workflow, and Launch Center Pro which takes a blog post ready for the public, uploads it to Dropbox (read: saves it to my iMac), uploads it to my web host, generates the new RSS feed, and uploads the new RSS feed to my web host. It was fairly easy to extend this workflow to automatically add or update the tags as necessary. I am planning to write about these apps and this workflow soon.

I have added quite a bit of complexity to the back-end, but things are now more functional and intuitive. I would be very happy if you would use these new features and let me know what you think. All of these new things have allowed me to focus more on the writing process. Uploading and viewing are streamlined now - two things I don't have to worry about anymore. I just hope I can figure out this whole "proof-reading" thing.

Tags: Tech, Development
Updated on 04/02/2021

Quick Archive
Full Archive

By YearBy Category