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.

I'm currently available for hire, to help you plan, architect, and build new systems, and for technical writing and articles. You can take a look at some projects I've worked on and some of my writing. If you'd like to talk about your upcoming project, do get in touch.

More in the discussion (powered by webmentions)

  • A response was written at Bad... (www.kryogenix.org) I wrote a very simple app for Ubuntu for Bad Voltage, the finest podcast in the land. It shows you the list of shows, and lets you play them. Simple.…
  • A response was written at Bad... (www.kryogenix.org) I wrote a very simple app for Ubuntu for Bad Voltage, the finest podcast in the land. It shows you the list of shows, and lets you play them. Simple.…
  • Sailesh Patel responded at twitter.com @sil @jmayer Have you managed to get comments working on the site?
  • Sailesh Patel responded at twitter.com @sil @jmayer Have you managed to get comments working on the site?
  • Stuart Langridge responded at twitter.com @_Sailesh_Patel_ I haven’t because I don’t want comments, but I have webmentions (kryogenix.org/days/2014/11/2…). @jmayer mentioned disqus etc
  • Stuart Langridge responded at twitter.com @_Sailesh_Patel_ I haven’t because I don’t want comments, but I have webmentions (kryogenix.org/days/2014/11/2…). @jmayer mentioned disqus etc
  • Troy Sweeney responded at Troy... (twitter.com) favorited this.
  • Troy Sweeney responded at Troy... (twitter.com) favorited this.
  • Sailesh Patel responded at Sailesh... (twitter.com) favorited this.
  • Sailesh Patel responded at Sailesh... (twitter.com) favorited this.
  • Justin Mayer responded at Justin... (twitter.com) retweeted this.
  • Justin Mayer responded at Justin... (twitter.com) retweeted this.
  • Netlify responded at Netlify... (twitter.com) favorited this.
  • Netlify responded at Netlify... (twitter.com) favorited this.
  • Matthew Somerville responded at twitter.com @sil “Is there a virtualenv-equivalent for Ruby and RubyGems?” - I use… virtualenv :-) gist.github.com/dracos/71cb474…
  • Matthew Somerville responded at twitter.com @sil “Is there a virtualenv-equivalent for Ruby and RubyGems?” - I use… virtualenv :-) gist.github.com/dracos/71cb474…
  • Stuart Langridge responded at twitter.com @slicknet I did, for the same reason. kryogenix.org/days/2014/02/1… (and I have webmentions, kryogenix.org/days/2014/11/2… for blog-to-blog conversati…
  • Stuart Langridge responded at twitter.com @slicknet I did, for the same reason. kryogenix.org/days/2014/02/1… (and I have webmentions, kryogenix.org/days/2014/11/2… for blog-to-blog conversati…
  • biglesp responded at twitter.com @sil @MegaSlippers Never heard of Pelican, will take a look. I moved from WP due to bloat and hacks. Ghost is working well for me
  • biglesp responded at twitter.com @sil @MegaSlippers Never heard of Pelican, will take a look. I moved from WP due to bloat and hacks. Ghost is working well for me
  • Sally Jenkinson responded at twitter.com Shall give both a look, cheers. I can tinker enough with Python so that’s not a problem :)
  • Sally Jenkinson responded at twitter.com Shall give both a look, cheers. I can tinker enough with Python so that’s not a problem :)
  • Derek Featherstone responded at tag:twitter.... (twitter.com)
  • Derek Featherstone responded at tag:twitter.... (twitter.com)
  • cloudsh responded at tag:twitter.... (twitter.com)
  • cloudsh responded at tag:twitter.... (twitter.com)