Date Tags aws / tech

Over the last 20 years I've had numerous personal websites running many different platforms. What interests me about it is how those platform have gone through a transition of becoming more complex and then seeimingly going full circle back to simplicity.

The tale goes a little like this...

Handcrafted HTML and local WYSIWIG 1995-1999

When I began it was all just flat html that you had to lovingly craft in a text editor, during this time there were also things like CoffeeCup which made things a bit nicer than an oridnary text editor, and, if you were feeling extra-special you might grab some random CGI perl from Matt's Script Archive. Hosting tended to come in the form of maybe 20MB of "free" webspace provided by your ISP.

During this time we also saw Adobe release Dreamweaver and then there was Flash and also Swish. These "What You See Is What You Get" (WYSIWYG) tools meant I could have pointless animations and music that no one on dial-up could ever watch, but boy did it looks swanky!

PHP and ServerSide funkiness 1999-2003

Although PHP was first created in 1994 (it originally stood for "Personal Home Page" then later the recursive backronym PHP: Hypertext Preprocessor) it wasn't really until 1999 when Francisco Burzi created PHP Nuke that I even heard of it.

PHP Nuke, a brief history of it can be read here, was a pretty rich content management system and news-style site and, at the time, mirrored the three-column layout that Slashdot once had.

It was great if you wanted to be able to update your site without having to write lots HTML anymore and for a while I was quite happy to use it even if it was a pain to manage and cost me more money in hosting as I needed PHP support and MySQL.

Boredom and overheads 2003-2006

Around this time I started to get bored with the overhead of managing the whole back-end stuff that went with PHP Nuke, and decided I would just have a single one-page website that I never had to bother doing anything with. I could, after all, just post the equivalent of a blogpost in a forum or usenet and have an argument a discussion there.

In some ways this could be seen as a reversion back to the old days of flat-HTML and in a sense it was but not for technological reasons. Truth be told I was just to busy to waste my time hosting a bells and whistle website. I wanted low-maintenance and simplicity. In the wider world this wasn't the case and everyone was marching full steam ahead into the PHP and/or ASP world of server-side scripting and mega-backend content management style systems.

The blogging engine era 2006-2014

To be fair, the dates above are not accurate for blogging engines. They're more related to the period I started using these tools actively rather than when they were created and launched. I think, if memory serves me correctly, I first saw Wordpress pre-version 1.0 when I was still playing with things like PHP Nuke.

What was interesting with it was it was another Content management System but crucially you could get it freely hosted on wordpress.org. However there were limitations to what you could actually do with it there. This would mean self-hosting if I wanted superuser access and the subsequent pain in the arse that would entail.

Around the same time in 2003/04 that I was dismissing Wordpress out of laziness I discovered (Blogger)[http://blogger.com] by Pyra Labs who would later be purchased by Google. Here was a platform I could work with. I didn't have to bother or worry about hosting, it had flexibility that free Wordpress didn't offer, and then, when Google acquired it it just became richer.

I didn't really get going and do much with Blogger until I set up the original home of this blog on it in 2006. "Blogging", or what I prefer to call "having a personal website that you update" was becoming a "thing" and the best thing about Blogger for me was I didn't have to worry about things like bandwidth cost, hosting costs, backup strategies, DNS management, server management, updates or security management when someone could offer it all to me for free and I could just concentrate on the content and the design.

You can still view all the original content of that blog - including many dead image links - at dizzythinks.blogspot.co.uk

Markdown and Cloud 2014-Present

At its height, I was doing 6 to 8 posts a day on Blogger, then, after moving jobs I became far too busy earning money to keep up the pace, so the site went by the wayside until I decided last year, to move the domain off Blogger and start again and generally concentrate on tech - it was politics before - with less frequency.

Why did I ditch Blogger after investing so much time on it as a platform? Well, it had, in my view, become cumbersome to my needs. The template system had ballooned in functionality I just didn't need, and I was starting to want to have a blog that appealed to my previous minimalistic style layout perhaps with a bit of Bootstrap thrown in. There were some requirements I really wanted though.

1. I didn't want to have to "login" to edit or create new content.

The Internet is a dangerous place full of hooded hackers with green terminals. We know this because the News tells us so. OK, I jest, but the truth is, having any form of login flow on a website increases the surface area for being attacked. Sure I could pay my ISP for a static IP address and lock down access to a login screen at a network level, but I neither wanted too or needed to do that.

2. I didn't want to be online to create content.

Not only did I not want to have to login via the web, I didn't want to have to be connected in order to create my post. True, I could always write something offline and then cut and paste it in afterwards, but that implies a system that doesn't solve point 1. No. Everything had to be achievable offline including previewing the site locally as if I were connected to the network.

3. I wanted to write as little HTML as possible.

Blogger was great as it had a rich content editor, but like all rich content editors e.g. TinyMCE, the HTML they generate is often horrible. I wanted to be able to create content in a text editor where I didn't have to write HTML expect perhaps like in this post where I put some images in.

What I really wanted to use was Markdown, the to text-to-html convertor that lets you write with little to no HTML and instead use syntax that can be easily converted to the messy stuff you will see if you go to "view source" right now.

4. I wanted to host the site in distributed way for peanuts

I didn't want to purchase webspace or a server with a CPanel and all the extra stuff. What I really wanted to do was use Amazon Web Services Simple Storage Service (S3). S3 is a highly durable, highly available and distributed object store, but to most people it just looks a bit like a filesystem or an FTP server.

Handidly, it also has support for hosting static web content like HTML, CSS and images and costs virtually nothing. In fact the current cost of hosting this website in S3 is $0.58 per month where $0.50 of that covers the domain name hosting in another AWS product called Route 53.

Enter Pelican

The solution for me was Pelican, a Python-based static-site generator where I could build an entire website offline by generating it from a simple template system and markdown content. All I need to do after generating the site is push it to S3 and its live. No back-end server logic, no login, no databases, just flat HTML and then Javascript to add things like Comments from Disqus.

I won't go into details of how to set it up here, surfice to say there are many tutorials online and it is fairly simple. One tutorial if you're running on Windows and are interested can be found here.

My personal set-up is fairly straight forward. I have my website stored in a fodler on my laptop. And I have a fairly simple Fabric script that lets me deploy it when I'm happy with a post which uses s3cmd currently and it also then checks the entire folder in to a private repositority on Github so I have another copy there with all the version history.

I should say as well that Pelican is not the only option for static site-generation. There's also Jekyll (ruby-based), Hakyll (Haskell-based) and Ghost (nodejs-based), amogst many others if you look around.

Full Circle

At the beginning I mentioned how it feels like things have gone full-circle in the last 20 years. I have no idea whether you will agree that statement, but it seems, at least when it comes to personal websites aka blogs, that we have. In 1995 we were uploading static content, we then progressed towards dynamic content that required server-side technology and infrastructure, and now we're back to static-content that takes advantage of lots of client-side development like Jquery and different Software-As-A-Service systems to do our heavy lifting.

Or perhaps it's just me?



Comments

comments powered by Disqus