Static electricity

So here I am with a static blog.

I was on Wordpress. I like Wordpress; in particular, I like the vitality of it. There’s a large community of people using it and working on it and making plugins and making themes, and it’s become apparent to me over the years that one of the things I care about quite a lot, when using software which is not a core part of what I do, is that I do not have to solve every problem that I have myself. That is: I would like there to be the problem-solving method of “1. google for desired outcome; 2. find someone else has written a plugin to do it”, rather than “1. google; 2. find nothing; 3. write code”. What this means is using some project with a largeish community. So I settled on Pelican, because it’s one of the more popular static blog engines out there, and hence vibrant community.

At this point there will be questions.

If you wanted a vibrant popular community why didn’t you use Jekyll?

I couldn’t work out how to install it.

It says: gem install jekyll. I did that and it says Permission denied - /var/lib/gems/1.9.1. So for some reason a command run as me wants to install things in a system-level folder. No. System level belongs to apt. Let the word go throughout the land.

I’m sure that it’s entirely possible to configure RubyGems so that it installs things in a ~/gems folder or something. But I don’t want that either: I want this stuff to be self-contained, inside the project folder. Node’s npm gets this completely right and I am impressed down to the very tips of my toes with it. Python gets it rightish: you have to use a virtualenv, which I am doing. Is there a virtualenv-equivalent for Ruby and RubyGems? Almost certainly. But I’m not trying to learn about Ruby, I’m trying to set up a blog. Reading up about how to configure Ruby package installation to be in the project folder when you’re trying to set up a blog isn’t just yak-shaving, it’s like an example you’d tell a child to explain what yak-shaving is. So no Jekyll for me, which is a bit annoying, but not too much since Pelican looks good. And I know Python pretty well, and don’t like Ruby very much, so that’s also indicative.

Why are you using a static blog engine at all? What was wrong with Wordpress?

It got owned. I got an email from a friend of mine saying “hey, did you know that if you look at your blog in an old browser, such as Dillo, there’s a bunch of spam at the top of it?”

I did not know. But it was the case. Sigh.

There are plenty of guides around about how to fix this: dump the DB, reinstall Wordpress, restore the DB, then look for fixes, etc, etc, etc. And I thought: wow, that’s a bunch of effort and what do I get for it? I’m still vulnerable to exactly the same problem, which is that an upgrade to WP happens, it notifies me, I notice thirty nanoseconds later, and in that thirty nanoseconds some script bot somewhere 0wns the blog. I could, in theory, fix this by spending much more time setting up something to auto-update WP, but in practice that’s hard: what do I do, svn update every fifteen seconds in a cron job? Nightmare.

So, what am I getting from Wordpress that I’ll lose if I go static?

My list of plugins contains a bunch of stuff which is only relevant because it is Wordpress and thus dynamic: caching, spam, that sort of thing. Static sites don’t need any of that. I like Jetpack a lot; it gives me a nice mobile theme and stats, and I’ll lose that (as well as comment moderation from a mobile app, which I don’t care about if I don’t have comments; see below). I have a bunch of nice little plugins which throw in features that I like, such as adding footnotes, which I’ll lose. Counterbalance that with how it’s basically impossible to put a <script> element in a Wordpress post, which is incredibly annoying. I won’t be able to create posts if I’m away from my computer (without doing a bunch of setup), but in practice I don’t do that, it turns out. And finally, comments.

Hm, comments. On the one hand, I like my commenters; there have been interesting discussions there, and normally informative. On the other hand, there’s a lot less commenting on blogs going on these days; you get much more real-time discussion on Twitter or G+ about a post than you do on the post itself. That’s a bit worrying — you’re losing the in-one-place nature of the conversation, and their bit of the conversation might vanish from the public discourse if G+ shuts down, which is why I don’t like Disqus — but that’s happening anyway and can’t be stopped. So maybe I can live with it.

Also, themes, but Pelican has a bunch, including rather excellently the same theme I was using on Wordpress! So it looks like nothing changed! Rawk.

So, let’s see how it goes. Possibly I’ll find something else critical that I’m missing and migrate back… and I do still have to write a footnotes plugin… but so far we’re feeling good about it.