It’s been a long time since I updated this blog. I could say that this neglect was the result of a full-time job and parenthood. While there is truth in that it isn’t the whole truth. In the past, after the kids went to sleep, I used to turn to passive activities. This was entirely a matter of choice.
Recently a co-worker started a new blog and it pushed me to start blogging again. I took the opportunity to make some changes, realigning my blog to reflect shifts in my personal preferences over the past few years.
Taking control of my data
Previously this blog was hosted on Blogger. I have no specific problem with the site but today I prefer having complete ownership of my data. The first step I took to regain data-control was to convert all of my posts from HTML to Markdown.
The reason I wanted to have my posts in Markdown was to separate the content I care about from the ‘noise’ that is HTML, especially in Blogger. The big advantage of having all my posts in a simple text format is that it protects my blog from future advances in technology and fashion trends. In addition, it allows me to take my site wherever I want in the future.
The transition to Markdown was not painless. I started by exporting my entire blog to an XML format. Then I used a combination of the blogger2jekyll and html2text scripts to convert it to Markdown. After that I had to fix various errors caused by several edge cases. I wrote a quick Python script to fix the errors. This helped me to resolve most of the issues but not all of them. In the end I manually reviewed and corrected each post. Hopefully now that everything is in Markdown I won’t have to do anything like this again.
Choosing a blog engine
Once all of my content was in a future-proof format, I concentrated on how to deliver it to the masses. I wanted to have complete control of my personal brand, which ruled out some of the more fashionable newcomers, such as Medium and Ghost.
I have also outgrown the urge to reinvent the wheel and write my own platform, as I did in PHP and MySQL in 2004 and Python/Django in recent years.
The obvious option was to use Wordpress and self-host. This way I would own all my content while using an established product. I tried to overcome my innate aversion to PHP in general and Wordpress in particular, but in the end my lack of tolerance for slow websites (and applications) ruled it out. It certainly is possible to have a secure and fast Wordpress site but it’s not easy. That’s what WPEngine is for and it is (justifiably) not cheap.
In the end, after thinking about what mattered to me most, it was clear that I just wanted a simple blog that was fast, secure and gave me complete control. In that case the obvious answer was a static blog.
Having a blog is all about the blog posts. Wikipedia defines typography as:
The art and technique of arranging type to make written language most appealing to learning and recognition.
I wanted the content to be the center of the site with minimal clutter surrounding it. I didn’t have much design experience so I decided to use an existing theme as a starting point. After reviewing several on Jekyll Themes, I chose the Minimal Mistakes theme as a starting point.
But where are the comments?
There are no comments on my blog and this isn’t because a static blog couldn’t handle it.
You might think that I removed the comments because I didn’t want the information on someone else’s server. While this is true, it isn’t the main reason.
The truth is that unlike stackoverflow co-founder, Jeff Atwood, I don’t think comments are an effective way to discuss blog posts on my site. Most of the comments are either “thank you”, requests, or part of a conversation. All of these are better served on other media, for example Twitter (I go by the handle @GiladNaor by the way. Please forgive the caps; I was young and naïve).
So there are no comments. But please feel free to discuss any of the articles on Twitter.
Hosting, DNS and friends
Okay. I had my content with a nice wrapping all set up and ready to serve. All that remained was choosing a provider.
One of the benefits of having a static blog is that there is a lot of flexibility when choosing where and how to host the site.
The obvious choice for a Jekyll site is GitHub Pages, which I found very appealing. Its lack of plugin support was never an issue for me because I just need a hosting solution - I had no problem compiling the site on my machine. I still think GitHub Pages is a great choice, especially given the price (it’s free). But in the end I went with a different site.
The site is currently hosted on Amazon S3, and delivered from CloudFront, Amazon’s CDN solution. It isn’t quite free, but very close— the first year is free and then the price varies according to usage. According to accounts I’ve seen fees should be measured in cents per month.
The result is a blazing fast website. There is no database to query, no scripting language to run, no compression at runtime and the entire site is delivered from a content delivery network server near your location. The resources used are minimal, S3 can load balance and the site will survive a fireballing.
I also used this opportunity to ditch GoDaddy as my DNS provider and headed over to the highly recommended Hover. Their support has been very responsive already.
Finally, I used the opportunity of this blog update to do some digging in the Way Back Machine. I managed to recover some content I thought I had lost in an old hard disk failure. I didn’t recover all of the content, but I did find some articles I thought had been lost, such as an account of the 10th Tanteidan Origami convention I attended in Tokyo in 2004.
For those wondering, I use Backblaze as my current offsite backup solution to avoid any future loss of data.
I hope to write more frequently in the future. For my next post I’ll detail my current setup and how I’m optimising it to help me write more.