The Nameless Horror

The Snowden files: why the British public should be worried about GCHQ

Britain is already the most spied on, monitored and surveilled democratic society there has ever been. This doesn’t seem to have been discussed or debated, and I don’t remember ever being asked to vote for it. As for how this trend appears in the GCHQ documents, there is something of a gap between how the spies talk in public and how they can occasionally be found to talk in private.

It is startling to see, for instance, that the justification for the large-scale interception of everybody’s internet use seems to be a clause in Ripa allowing interception of “at least one end foreign” communications. Whack on to this a general purpose certificate from the secretary of state, and a general warrant, and bingo, this allows full access to traffic via companies such as Google and Facebook – because their servers are located overseas. I can’t believe that that was the intention of the people who drafted Ripa, who were surely thinking more of people taking phone calls from moody bits of Waziristan, rather than your nan searching for cheaper tights.

John Lanchester’s piece in the Guardian is superb.

Jekyll and hide

UPDATE: This post has been hugely superceded by this newer one as I’ve moved from shared hosting to Amazon’s EC2 and S3 cloud. Not only is it far more informative, with actual code and everything, it also covers broader automation of Jekyll blogging.

If you’re reading this, I’ve successfully migrated from Tumblr after four years. You may need to update your RSS subscriptions, unless you don’t have one in which case I hate you. If you’re not reading this, I’ve not managed to migrate, but I can always fix whatever’s wrong and then repost this message and you’d be none the wiser.

Why migrate? Tumblr was (generally) easy to post to when it wasn’t keeling over, wheezing, but it was pissing money before Yahoo bought it out for $gazillion. And when you’ve spent $gazillion on something that’s pissing money, generally the first thing you’re thinking is “how do we reverse this flow of piss and/or money?” The answer to that question for free services online is almost always “UNLEASH THE ADS!” Tumblr’s newly-added side flyout and long-time top bar controls are annoying enough without advertising being thrown into the mix. Also, it’s nice to be back in possession of my own output.

And this time it’s not even buried in a WP database somewhere. The site’s run on flat-file Markdown engine du jour Jekyll. The import process has sadly broken lots of things - none of the old internal links between articles will work, anything with a photo has had it stripped and replaced with a [ gallery ] tag, and there are no embeds any more - but still, all the words are there amid the crap and the reposts, on my hard drive and living in Dropbox. I need to add some functionality back in - archives, tags as links, maybe search - but we’re more or less there.

(If dry technical meanderings bore you - very sensible - then stop right now. The bit below is a massive note to self, a tutorial of sorts should I attempt something similar in future, and likely of no interest to anyone else whatsoever.)

Originally I was going to run NH on Marco Arment’s Second Crack. (WordPress, as (mostly) solid a CMS as it is, is way too big and clunky for a site like this.) For all its quirks, it’s a very smart bit of software, and unlike a lot of the flat-file offerings it doesn’t need to remote-build the site then deploy to show static content to visitors; it converts Markdown files to HTML on the fly. And it’s got some natty post-from bookmarklets for easy linking to things.

Unfortunately, it also has to run behind a changed document root (at secondcrack/www) which, on shared hosting, I can’t change except on subdomains. “Not a problem,” thought I. “I’ll install it to a subdomain, then use .htaccess to render the content of that subdomain at namelesshorror.com. Seamless!” Which it would be, if SC didn’t have its own .htaccess needed to do all that on-the-fly file rendering. It turns out - and this is a bad thing to learn at 11pm when you’re hoping to finish something off and go to bed - that they don’t stack. Look, I’ve never had to do much with rewriting before; stop laughing.

Jekyll doesn’t have this problem. It needs to generate the site afresh every time you add/change something, but what it generates can be dropped wherever you want it. You can run it on your PC and FTP or git push your output online if you’re so inclined.

I’m not. That seems to be a massive pain, especially if you write something on your phone and want it up without having to visit the mothership. You can automate things by installing a copy of Jekyll on the server and having it rebuild everything automatically though.

Unless you’re on shared hosting, when gem install jekyll will give you an error about not being able to write to the system Ruby directory and a feeling of lingering dread.

It turns out, thankfully, that you can get around that by installing RVM instead.

laptop:~$ ssh user@website.com

server:~$ \curl -L https://get.rvm.io bash -s stable –ruby

server:~$ which ruby /path/to/home/directory/.rvm/rubies/ruby-X.X.X-pXXX/bin/ruby

server:~$ gem install jekyll

server:~$ gem install pygmentize

… </code>

So that’s Jekyll installed. And if you install Dropbox and its command line interface, link it to a blog-only account with one folder, the blog one, shared with your actual main one, as per the suggestion in the Second Crack readme, you can run the whole thing through Dropbox.

jekyll new somesitename

Do this on both your home machine and server. This creates a somesitename directory containing all the Jekyll structure and files.

Symlink that directory to the Dropbox blog one on both.

ln -s /path/to/somesitename /Dropbox/Blog

Jekyll’s source directory is now being read and updated by Dropbox. All you need to do is set Jekyll’s build destination directory, the place the finished site is built in, to /home/user/public_html or whatever the doc root of your server is in _config.yml or in the jekyll build command itself.

And as for auto-updating, while some people recommend incron, that requires root privileges and doesn’t watch directories recursively. There are utilities like Spotter for watching for file changes and running scripts when they happen without being root, but I don’t think they’re needed (yet, anyway). What I have are two shell scripts. The first simply runs dropbox.py (python2.6 dropbox.py start), and the second runs Jekyll’s build command (jekyll build --source /Dropbox/Blog/somesitename --destination /path/to/public_html). If I can get them to play nice with cron jobs, we’re gold.

If I can’t, I’ll have to look at the various inotify-type file monitor utilities.

One further note: when Jekyll builds to a directory, it wipes everything that was there before. I had a couple of old test directories and subdomains (including the Second Crack ones) and numerous other bits and pieces stacked beyond public_html. Those are now gone. There may be exception rules you can use to save stuff, but I’m not sure. Best get anything you want to keep out of there before you run it.

One further further note: I’ve tried typing this post three times, the first two in iA Writer on my phone. It turns out iA Writer wipes what you’ve been typing if you switch out of the app even for a moment. Which is really fucking annoying.

Somewhat refreshing

If you follow me on Twitter you might know that the trade mag work I’ve been doing freelance to cover the costs of my terrible addiction to human adrenachrome looks likely to get canned. Consequently I need to (a) tout for more freelance work, (b) finish the book I’m on for my agent, and (c) make the best fist of other income streams I can.

You also might know that I’ve been very quiet on Twitter and elsewhere. So many knob jokes left unsaid, etc. That’s because I’ve been refreshing my long-largely-neglected array of self-published stuff (or author-published) stuff.

The ex-Penguin material is off its Amazon exclusive period, so now everything has been added (or, in the case of the oh-so-slow iBookstore, is in the process of being added) to stores I’d ignored or couldn’t be arsed to go through Smashwords to access, I double-checked and amended the text (including doing a better job of an also-by), and I’ve - largely, a couple of things are still short - revamped my own store. I thought about using embedded Ganxy showcases, but since I had individual book pages anyway and I’d have better control over appearance (seriously, Ganxy, some docs on embed parameters allowing you to strip titles etc. rather than examining the source on sample sites would be grand), I figured the hell with it and did it by hand.

I also did some cover redesigning.

All You Leave BehindMurder Park

The original AYLB one was the first (I think) I ever did, getting my mate Tom to go modelling for me. The original MURDER PARK one was one I did in something of a rush when the original headshot I wanted to use had a change of licence right before it was ready to release (you’re covered by CC terms if a licence changes after you’ve used it, but not before). In both cases I’ve had a fair bit of practice since, so they should be better (and more consistent in appearance).

I couldn’t get material for the composition I’d originally wanted for AYLB (man’s hand with gun on one side, kid’s hand with toy on the other because PARALLELS, Shitsville urban scene in the background), but this one’s not so bad either. The title’s hell to lay out, though. There’s a lesson for me there, I think. And the MURDER PARK one was fun to stitch together from its component pieces, even if I do never want to cut out windblown hair again.

I don’t want to have to monkey with these things on a regular basis - it’s too much effort for too little reward. I’ve also trialled Amazon Select and freebie days with the Rourke books, and while it’s possible to shift x,xxx downloads and reach #x on whatever chart, it doesn’t stick, and people (self included) don’t actually read all the free crap they pick up. Better is what’s been happening with VDZ, which I’ve barely mentioned and never pushed. It’s permanently free and maximally available, and consequently some people go on to pick up DZ as well without me having to jump up and down yelling, “LOOK I HAVE A THING YOU CAN GET FOR NOTHING PLEASE LOVE ME I’M COLD AND THERE ARE WOLVES AFTER ME” all the time. (Not that that works and not that I ever did that anyway, but the hell with your “reasoning”, filthy human.) To chase readers rather than numbers. So all the short stuff, and AYLB, and TTOG are now freebies in such channels as allow it, effectively giving one taster-style lead in for each (vague) setting. In others - cough Amazon cough - I’ll have to wait for enough price matching prompts to trip them into freebie country. And I can pretty much leave everything alone then.

Which is cool, because that frees up time for writing and trying to scrabble some freelance stuff without having to keep a third plate spinning all the time as well.

The only other chore I’ll get round to at some point is taking this site off Tumblr and back to being self-hosted (I’ve cut the sidebar somewhat but it’s a rough job; no point doing more until I change over). Tumblr was handy as a quick method of posting stuff, but the toolbar prompts and flyouts have gotten more annoying in recent months and I can’t imagine Yahoo’s eventual monetisation strategy for the platform is going to make things cooler because as a rule they don’t.

Review: WHO IS KILLING THE GREAT CAPES OF HEROPA?

I’ve been away for a couple of weeks and managed to catch up on some reading. Chief amongst this was Andrez Bergen’s WHO IS KILLING THE GREAT CAPES OF HEROPA?. Rarely for me, this is timely (I think the book released early to Amazon last night), and here’s a review.

First, a quick aside: Andrez is very good at getting books into people’s hands ahead of time without coming across as a spammy bell end. People should learn. He’s also a very nice guy and a fine writer. I very much liked THE TOBACCO-STAINED MOUNTAIN GOAT and was enjoying 100 YEARS OF VICISSITUDE until a pile of other stuff swallowed my time and I sort of dropped out of reading it about a quarter of the way through. No fault of the book; I’m just lousy at returning to stories I’ve had to leave for a month or so.

HEROPA is a superhero crime novel with SF elements in the way that INCEPTION has SF elements (hand-wavy background setup rather than heavy story pieces). It’s also easily his most accessible book, and for my money his best.

I had only two minor quibbles with it. Let’s get them out of the way. Firstly, (MINOR SPOILER OF AN EARLY REVEAL) in the real world - Heropa is a plug-your-body-in MMO in which you die if you die, the body cannot live without the mind and all that - Jack is 15, but in stretches he comes across as older. (END MINOR SPOILER) And secondly, the ending was a bit abrupt for me; I’d have liked a little coda chapter, something to wind down.

And that’s it. The second is purely a matter of my personal taste and the first is a tiny thing that made absolutely no difference to my enjoyment of the story; Jack, like Brick, Pretty Amazonia and all the others, is a genuinely engaging character who you want to see come out of things OK.

The story starts off similar to the first POWERS arc, WHO KILLED RETRO GIRL?, but soon branches off into something more sinister, as well as going more and more into the relationship between Capes and Blandos. Jack gets involved - in a touch of the GROUNDHOG DAYs, also neatly done - with a Blando, Louise, and their relationship - and the traditional powers-with-civvies conflicting personal loyalty - is key to the later part of the book, and rightly so.

I don’t want to go too much into the story so let’s wrap up. I very much doubt I’ll read a supers novel better than HEROPA, but it’s also primarily, like the aforementioned POWERS, a crime story at heart, and has plenty of emotional character draw and soul to it, as well as being a lot of fun. I really, really enjoyed HEROPA, and I’d happily recommend it to anyone. Great stuff.