knock knock

20141015: [ sawall > hack ] { pelican | sawall.org }

who's there?

Outwardly, this site has appeared as a collage of redirections. In actuality, various projects have been hidden within its depths, but they have lacked any sort of friendly public face. So, finally, it's being sorted into a home base where all my online stuff is can be properly categorized, sorted, examined, tagged, cross-checked, labelled, and observed.

My technical background is in networks, systems, and distributed computing - in the parlance of our times I am a "cloud engineer", which is just the latest buzzword for systems that utilize remote calls. I love coaxing machines into talking nicely with one another, and as such enjoy architecture, interfaces, and protocols. Big complex systems with lots of moving parts are my chosen domain. As such, front-end development has never been my preference.

When I first got into the game I noted that a front-end engineer would spend about 85% of their time fighting to make their code look right in all the browsers and all the aspect ratios, while only 15% of their time was spent on "real" code, most of which wasn't particularly interesting (to me). As a result I've been averse to sorting this site out. My procrastination has finally paid off: existing front-end tools are vastly less annoying than what existed a decade ago.

blog

My intention to "start a blog" has rattled around my mind for quite some time now. In my brain that's basically code for "put all my stuff in one place that I'm in control of." Over the years, I've participated in gobs of social media platforms, starting with local BBSes, then moving on to MUSHes, muds and irc, then on to early blogging platforms like LiveJournal, finally ending up on all the likely suspects that we all know and love today. (Anyone need an Ello invite?)

Social media sites all have their pros and cons that are worthy of a separate blog post, but they're also all ultimately disappointing because they don't upport expression that fits outside of their individual paradigms. It is truly amazing how many different ways we have to communicate with each other, and how most of that never seems to turn out quite right. So it's my intention to embrace them all (well, at least the ones that make sense to me) and use this "blog" as a hub.

Full disclosure: this isn't my first attempt to post a blog here, but it's the first one that I'm actually sharing with the world. I've played around with CMS platforms on and off, but I found myself annoyed with them for being (paradoxically) simultaneously insufficient and overkill. That is to say, basic theme modifications and asset management seemed incredibly difficult, while there were specialized plugins to do all sorts of powerful things that I didn't care about. In my opinion, the theme creation and UI admin tools for popular products like Wordpress and Drupal are terrible. I've even developed a cynical suspicion that the difficulty pertaining to theme creation and complex administration has emerged because Wordpress and Drupal consultancies frown upon tools that might make the platforms so useable that their clients won't need to sign a maintenance contract.

I did manage to cobble together a Wordpress blog on wonderphyle, to document Heather's and my world travels. It was downright painful to spin up, and the tools for managing photo galleries (which was the main thing we wanted to do) required insane numbers of clicks per image. The (admittedly cheap) database was also quite slow, which made interacting with the site while connecting from international locales with disadvantaged Internet nearly impossible. On top of this, persistent spammers1 meant that my new part-time job was using an awful UI on a flaky network to approve users and comments2. No thanks.

blog who?

Now that I'm back home and have bandwidth (mental, emotional, temporal, not to mention Internet), I decided to revisit my sawall.org problem and create an actual web presence for myself. My requirements:

  • easy to personalize a theme's basic layout, colors, and fonts
  • easy to create basic pages and blog posts
  • secure and easy to deal with spam
  • lightweight and fast
  • a reasonable photo gallery solution

Hosted Wordpress and Ghost solutions were initially promising as a way to outsource security and spam issues. But I'm a creature of text files and command lines, and wasn't enthused with the prospect of yet-another-web-GUI. Also, paying a service for "just a blog" seems excessive, especially when I'm already paying Dreamhost so that I can host whatever the heck I want here.

This led me to discover static site generators. For those of you unfamiliar with the concept, the idea is that most small websites don't have much content that's really dynamic (comments being the one frequent exception). So rather than deploy a database-driven CMS onto the web, a static site generator builds the site offline and then it gets pushed out as static markup, scripts, and templates. This is extremely appealing to me: no online database means a greatly reduced attack surface, faster response times, and less operational hassles in general.

pelican!

After considering my options I picked Pelican. It's a powerful Python package that takes content metadata, Jinja templates, and a css/javascript theme and outputs a fully functioning website. Themes can be easily configured with Jinja and Pelican has a small-but-thriving user community that is churning out handy plugins3.

Not only is theme-creation great with Jinja, but I'm taking advantage of the Foundation responsive CSS framework, which has pretty much eliminated the hassle of trying to figure out how to get my templates to work in multiple browsers and aspect ratios. I also love how Sass makes it vastly easier to deal with CSS programmatically.

The one thing that Pelican is missing is a sophisticated photo gallery plugin that handles metadata markup of photos and albums. So, I'm in the process of correcting this by porting the fantastic Sigal static gallery generator so that it can act as a Pelican plugin. More on this later4.

Welcome to the beta version of that blog I keep meaning to start up.


  1. As of this writing, there are 623 registered users on wonderphyle, at least 600 of which are spambots. 

  2. Of course, services exist to help one deal with spam, but that's more money down the [Inter]tubes. Also, the fact that most of the spam is malformed crap that nobody would click on anyway has got me wondering if the spam mitigation services are the ones doing all the spamming in the first place... 

  3. Including some comment plugins, which I plan to investigate in the future. 

  4. Check out https://github.com/sawall/siglican if you want a sneak-peek at what I've been up to on this front.