A long time ago, in a neighborhood far away, I was wondering on which blogging platform to relaunch my blog on. This is not a question that I took lightly.
I had some experience with Wordpress sites, but I didn’t really enjoy the added complexity or the lack of Markdown. A blog, after all, is a bunch of dead letters – there’s very little need of dynamics offered by PHP or any other programming language springing to action every time someone (or the Googlebot) wants to read my writings. This realization turned my attention to a bunch static site generators that not only supported Markdown but also allowed me to write my posts on my favorite editor, generated static HTML stuff and allowed me to control every aspect of my blog.
Not that I couldn’t have done everything in WordPress. I had for a long time blogged on Tech IT Easy on various topics, and have set up couple of other sites on it so customizing WordPress for my needs wouldn’t have been too difficult. My previous blog, Business Analyst Playing Games was hosted on Tumblr and I did kind of like its simplicity - however I did not enjoy the clunky web interface.
This lead me to a long path where I spent countless of hours on the minutiae of design modern web sites and about zero hours on the actual content of my blog. But it was awesome. In the end, I read way too many RFCs, and ended up with my own little variant of Markdown1. It didn’t help that HTML5 spec changed multiple times in the meantime. The other thing that quickly become clear to me was that the modern web site has a ton of moving parts and it’s really difficult to follow the best practices.
Unsurprisingly, my first approach was to create my own blogging engine based on the Atom Publishing Protocol but that did not fortunately go too far. I felt that the Atom syndication format did not get enough love, hitting the web when the feeds were on the decline and JSON was on the upswing. However, none of the ready-made blogging tools seemd to fit my requirements. As mentioned, I felt software like Wordpress was way too complex for a one-man blog for someone who wants to write his stuff outside a web form. At the other end of the specturm were the various static site generators that took a bunch of text files and turned them to HTML ready to be published on some dark corner of the web.
The thing was, none of these static site generators worked exactly as I wanted and I wanted to be able extend them a bit. Fortunately for me, there was Jekyll, which not only promised to do away with all the complexity but also was written and extendable in Ruby. The only thing that I don’t like in Jekyll is that it expects the post metadata to be in a YAML front matter, instead of opting for MultiMarkdown’s metadata format, but I guess I can’t have everything2.
Anyway, it was quite straightforward to extend Jekyll with features from my own hacking. Also, some generous people had already made Jekyll plug-ins for modern web site stuff like Sitemaps. On blogging front, Octopress had already extended “blog-aware” Jekyll to be more suitable for blogging, but I had already done all that Octopress takes care of. What kind of a hacker doesn’t want to write their own HTML templates and CSS stylesheets?
The world wide web has gone through many replumbings in the recent years, in the forms of the semantic web, CSS3, HTML5 and the mobile web. Javascript has matured from doing stupid stuff on web pages to running whole web applications like Gmail. Because of these advances, or even despite of them, there are lot of ugly legacy stuff to take care of so that any website works on any other browser and environment than the one the author of the website is using. Also, the web is not just about technology but also humans – and a lot of knowledge of what worked in the printed press that also applies to some extent on the web.
On the technical side, to get started in building my own site from the atomic subparticles, I started with the HTML5 Boilerplate and Bootstrap. There are others that probably at least equally good, but these templates and frameworks give sensible defaults to easily get going on the modern, device-agnostic world.
However, there’s a lot to be done to make all these tools to create a blog that has a certain focus on being legible. The default Bootstrap styling has no idea things like vertical rhythm even exist. Even if they are aware it might be awesome in paragraphs, it’s totally forgotten with random padding
s here and there.
I guess that’s why it’s Cascading Style Sheets, and it’s quite straightforward to override the base styles to achieve more sensible defaults for text. It’s surprising how little all these web frameworks focus on getting your actual textual content on your screen all nice and tidy. Not that all the browsers and their varying support of CSS levels make it easy. The things TEX nerds take for granted to obsess over we on the web still can just dream about - like hyphenation. I found out it’s nearly impossible to style just the numbers in a li
element. CSS3 will finally bring the li::marker
pseudo-element so I can apply old style numbering3 on them - maybe by then with a font-variant-numeric
instead of going deep into vendor prefixed font-feature-settings
.
So, now that I finally have my tools all set up, I can finally start to write.
Anyway, this will mark the start of (hopefully) some blog entries on the fear and loathing of blogging handicraft.
Normally scheduled postings that relate even remotely to the games industry will continue once I get this out of my system.