Command line updates

I’ve been looking for a client to create WordPress posts from the command line. There’s a few, but nothing self contained or easy to install. A python script that doesn’t seem to work on Debian, or a VIM script that has some weird pre-requisites, etc. So I finally decided just to see what it was like using links (text only web browser), and it turns out – it’s not half bad if you’re adding a basic update.

So all that work to go full circle, and end up with console based web browser.

Running your own Dynamic DNS Service (on Debian)

I used to have a static IP address on my home ADSL connection, but then I moved to BT Infinity, and they don’t provide that ability.  For whatever reason, my Infinity connection resets a few times a week, and it always results in a new IP address.

Since I wanted to be able to connect to a service on my home IP address, I signed up to dyn.com and used their free service for a while, using a CNAME with my hosting provider (Gandi) so that I could use a single common host, in my own domain, and point it to the dynamic IP host and hence, dynamic IP address.

While this works fine, I’ve had a few e-mails from dyn.com where either the update process hasn’t been enough to prevent the ’30 day account closure’ process, or in recent times, a mail saying they’re changing that and you now need to log in on the website once every 30 days to keep your account.

I finally decided that since I run a couple of VPSs, and have good control over DNS via Gandi, I may as well run my own bind9 service and use the dynamic update feature to handle my own dynamic DNS needs.  Side note: I think Gandi do support DNS changes through their API, but I couldn’t get it working.  Also, I wanted something agnostic of my hosting provider in case I ever move DNS in future (I’m not planning to, since I like Gandi very much).

The basic elements of this are,

  1. a bind9 service running somewhere, which can host the domain and accept the updates.
  2. delegation of a subdomain to that bind9 service.  Since Gandi runs my top level domain for me, I need to create a subdomain and delegate to it, and then make dynamic updates into that subdomain.  I can still use CNAMEs in the top level domain to hide the subdomain if I wish.
  3. configuration of the bind9 service to accept secure updates.
  4. a script to do the updates.

In the interests of not re-inventing the wheel, I copied most of the activity from this post.  But I’ll summarise it here in case that ever goes away.

Installing / Configuring bind9

You’ll need somewhere to run a DNS (bind9 in my case) service.  This can’t be on the machine with the dynamic IP address for obvious reasons.  If you already have a DNS service somewhere, you can use that, but for me, I installed it on one of my Debian VPS machines.  This is of course trivial with Debian (I don’t use sudo, so you’ll need to be running as root to execute these commands),

apt-get install bind9 bind9-doc

If the machine you’ve installed bind9 onto has a firewall, don’t forget to open ports 53 (both TCP and UDP).  You now need to choose and configure your subdomain.  You’ll be creating a single zone, and allowing dynamic updates.

The default config for bind9 on Debian is in /etc/bind, and that includes zone files.  However, dynamically updated zones need a journal file, and need to be modified by bind.  I didn’t even bother trying to put the file into /etc/bind, on the assumption bind won’t have write access, so instead, for dynamic zones, I decided to create them in /var/lib/bind.  I avoided /var/cache/bind because the cache directory, in theory, is for transient files that applications can recreate.  Since bind can’t recreate the zone file entirely, it’s not appropriate to store it there.

I added this section to /etc/bind/named.conf.local,

// Dynamic zone
  zone "home.example.com" {
    type master;
    file "/var/lib/bind/home.example.com";
    update-policy {
      // allow host to update themselves with a key having their own name
      grant *.home.example.com self home.example.com.;
    };
  };

This sets up the basic entry for the master zone on this DNS server.

Create Keys

So I’ll be honest, I’m following this section mostly by rote from the article I linked.  I’m pretty sure I understand it, but just so you know.  There are a few ways of trusting dynamic updates, but since you’ll likely be making them from a host with a changing IP address, the best way is to use a shared secret.  That secret is then held on the server and used by the client to identify itself.  The configuration above allows hosts in the subdomain to update their own entry, if they have a key (shared secret) that matches the one on the server.  This stage creates those keys.

This command creates two files.  One will be the server copy of the key file, and can contain multiple keys, the other will be a single file named after the host that we’re going to be updating, and needs to be moved to the host itself, for later use.

ddns-confgen -r /dev/urandom -q -a hmac-md5 -k thehost.home.example.com -s thehost.home.example.com. | tee -a /etc/bind/home.example.com.keys > /etc/bind/key.thehost.home.example.com

The files will both have the same content, and will look something like this,

key "host.home.example.com" {
algorithm hmac-md5;
secret "somesetofrandomcharacters";
};

You should move the file key.thehost.home.example.com to the host which is going to be doing the updating.  You should also change the permissions on the home.example.com.keys file,

chown root:bind /etc/bind/home.example.com.keys
chmod u=rw,g=r,o= /etc/bind/home.example.com.keys

You should now return to /etc/bind/named.conf.local and add this section (to use the new key you have created),

// DDNS keys
include "/etc/bind/home.example.com.keys";

With all that done, you’re ready to create the empty zone.

Creating the empty Zone

The content of the zone file will vary, depending on what exactly you’re trying to achieve.  But this is the one I’m using.  This is created in /var/lib/bind/home.example.com,

$ORIGIN .
$TTL 300 ; 5 minutes
home.example.com IN SOA nameserver.example.com. root.example.com. (
    1 ; serial
    3600 ; refresh (1 hour)
    600 ; retry (10 minutes)
    604800 ; expire (1 week)
    300 ; minimum (5 minutes)
    )
NS nameserver.example.com.
$ORIGIN home.example.com.

In this case, namesever.example.com is the hostname of the server you’ve installed bind9 onto.  Unless you’re very careful, you shouldn’t add any static entries to this zone, because it’s always possible they’ll get overwritten, although of course, there’s no technical reason to prevent it.

At this stage, you can recycle the bind9 instance (/etc/init.d/bind9 reload), and resolve any issues (I had plenty, thanks to terrible typos and a bad memory).

Delegation

You can now test your nameserver to make sure it responds to queries about the home.example.com domain.  In order to properly integrate it though, you’ll need to delegate the zone to it, from the nameserver which handles example.com.  With Gandi, this was as simple as adding the necessary NS entry to the top level zone.  Obviously, I only have a single DNS server handling this dynamic zone, and that’s a risk, so you’ll need to set up some secondaries, but that’s outside the scope of this post.  Once you’ve done the delegation, you can try doing lookups from anywhere on the Internet, to ensure you can get (for example) the SOA for home.example.com.

Making Updates

You’re now able to update the target nameserver, from your source host using the nsupdate command.  By telling it where your key is (-k filename), and then passing it commands you can make changes to the zone.  I’m using exactly the same format presented in the original article I linked above.

cat <<EOF | nsupdate -k /path/to/key.thehost.home.example.com
server nameserver.example.com
zone home.example.com.
update delete thehost.home.example.com.
update add thehost.home.example.com. 60 A 192.168.0.1
update add thehost.home.example.com. 60 TXT "Updated on $(date)"
send
EOF

Obviously, you can change the TTL’s to something other than 60 if you prefer.

Automating Updates

The last stage, is automating updates, so that when your local IP address changes, you can update the relevant DNS server.  There are a myriad ways of doing this.  I’ve opted for a simple shell script which I’ll run every couple of minutes via cron, and have it check and update DNS if required.  In my instance, my public IP address is behind a NAT router, so I can’t just look at a local interface, and so I’m using dig to get my IP address from the opendns service.

This is my first stab at the script, and it’s absolutely a work in progress (it’s too noisy at the moment for example),

[sourcecode language=”bash”]#!/bin/sh

# set some variables
host=thehost
zone=home.example.com
dnsserver=nameserver.example.com
keyfile=/home/bob/conf/key.$host.$zone
#

# get current external address
ext_ip=`dig +short @resolver1.opendns.com myip.opendns.com`

# get last ip address from the DNS server
last_ip=`dig +short @$dnsserver $host.$zone`

if [ ! -z "$ext_ip" ]; then
if [ ! -z "$last_ip" ]; then
if [ "$ext_ip" != "$last_ip" ]; then
echo "IP addresses do not match (external=$ext_ip, last=$last_ip), sending an update"

cat <<EOF | nsupdate -k $keyfile
server $dnsserver
zone $zone.
update delete $host.$zone.
update add $host.$zone. 60 A $ext_ip
update add $host.$zone. 60 TXT "Updated on $(date)"
send
EOF

else
echo "success: IP addresses match (external=$ext_ip, last=$last_ip), nothing to do"
fi
else
echo "fail: couldn’t resolve last ip address from $dnsserver"
fi
else
echo "fail: couldn’t resolve current external ip address from resolver1.opendns.com"
fi[/sourcecode]

First lesson update

So I had planned to come home and write up my first driving lesson.  But quite frankly, to quote Egon, I’m terrified beyond the capacity for rational thought.

Also I’m very tired.

However, in summary, 2 hours – left turns, right turns (with lights and without lights), 4-6 round-a-bouts, 50mph on the A52, right turn onto the A52, 2 full-on stalls, a lot of terror and the driest mouth I’ve ever had.

Now I’m going to eat and gibber in the lounge.  Maybe I’ll write more detail later.  Maybe I’ll never be able to recall the full journey.

It’s time …

I’m 42.  I think, that I could have learned to drive when I was 17 in the UK, maybe 16 (it would have been 1987 or 1988).  Tomorrow is when I’m actually going to start learning to drive.  I have my first ever driving lesson booked.

So yes, I’m about 26 years late, but I guess it’s finally time.  As a kid, after the age of 4, our family never had a car, so I grew up using the bus or my bike, or walking, everywhere.  When I went to university, no one had a car, and I certainly never had the money to learn to drive.  Then, after I left and got jobs, I never felt like it was critical, and I relied on a lot of friends to drive me to work.

When myself and Grete first got together, Grete had already had quite a few lessons, we needed one of us to pass, didn’t have much money, and so we agreed she had the best chance.  She did pass, and she’s been driving us everywhere since, with skill, patience and well, even more patience.

I mooted the idea of learning a couple of years ago, and Grete got my provisional license sorted out (basically, I’m rubbish without her).  I’d had it since I was 17 (wishful thinking), but never updated the address, and then the whole complexity of that got to me.  Anyway, even with the sorted license, I still didn’t do anything about the driving.

This year though, it just seems right.  After all, I’m 42.  And 42 is the answer to life, the universe and everything.

The Politics of the Self vs. the Politics of the Community

I am neither well read ((unless fantasy and sci-fi count as being well read)) nor politically active.  My knowledge of history is woeful, my awareness of world events is limited, and frankly, I’m often quite dim.  So you’ll have to excuse my terminology, my words, and my shoddy sentence structure.

I’m tired of listening to what I have decided to call The Politics of the Self.  The current attack on ‘benefit scroungers’, unleashed by a Conservative government to support their austerity measures, is both insulting and depressing in equal measure.  The regular press releases telling us how awesome it’s going to be now that benefits have been capped make me sick.  The idea that people will be encouraged back to work, on the presumption that people are unemployed on a grand scale because it’s financially beneficial, is so flawed it’s laughable.

I’ve known quite a few people who were unemployed, and it’s not financially beneficial.  I know people who can’t work, for whatever reason, and people who want to work, but can’t find any.   Those folk won’t be ‘encouraged into work’ by a cap on the benefits they can claim.  It’s not just benefit scroungers though, it’s the constant attack on publicly provided services that benefit the community and yes, cost the government money.  Health care, social care, housing, transport, all these things cost money; and yet they all benefit the community, support the people who can’t, for whatever reason, support themselves.

The constant war on people taking the piss is pointless.  If you give something to the needy, there will always be people who take it when they don’t need it; there will always be a small percentage of people who abuse the system.  You can’t build the system based on that, you have to build the system based on supporting the people who need support, and then if possible, if you can, you stop the cheats, but you don’t make stopping the cheats the main aim of your policy, otherwise you lose sight of the whole point.

Helping people.

Helping people, who need it, is the duty of those who can.  That’s what I believe.  Because we, humanity, are social.  We live in societies, and we gather, and we look after each other.  The conservatives seem to believe that should be driven by the self, that we should support ourselves and those directly near to us.  But that’s short sighted and too small.  We already, naturally, support those near to us and around us.  We need structures and processes in place to help everyone, no matter how close they are too us, or how well we know them.  The world is too big now to rely on the person next to you being the only person who can help out.

I don’t believe communism works, and I think socialism has an associated stigma, but I do honestly believe that even within a capitalist financial structure you can still deliver socialism and socialist needs.  I pay my taxes, and some days I grumble about it, but I want that money to go to people who need it.  I want my tax to be used to pay for disability benefits, unemployment benefits, social care, the national health service, free medicine, transport, and all the other good stuff that goes along with caring about people you’ve never met, in the hope that one day, they’ll care about you.

Yes, it’s expensive, yes, it means that people have to give up quite a bit of the money they’ve worked hard to earn, but it’s worth it, because it improves the quality of life for everyone, overall.

I’m tired of the politics of self, I want the politics of community.  But I’m worried, I’m worried that none of the political parties in the UK (and by that, I mean only the 3 that count, and one of those is pretty much worthless) really believe in the politics of community.  Labour betrayed me in the last parliament.  They brought in policies which restricted liberty in the UK far beyond anything that was necessary.  They introduced policy that I believe moved us closer to a ‘big brother’ state.  I can’t support that, I won’t support that.

I was glad when Labour lost the last election, glad when many of their restrictive liberty affecting policies were repealed by the coalition.  I didn’t vote them out because of the handling of the financial crisis, I’m not sure anyone would have handled it any better, and it had been brewing for years, but I voted them out because they had forgotten what the politics of community meant.

It meant you could feel safe, but that you were free.  It didn’t mean you should live in fear of your own government in case they wrongfully believed you were involved in some nefarious terrorist activity, and being held in prison without trial for months.

So I worry.  The conservatives clearly believe in the politics of the self.  No publicly funded social care, a private health service that means you get what you pay for, no protection for those who are vulnerable, and no trust that those who claim benefits need them.  A growing cancerous fear that everyone on benefits is a scrounger and that it’s inconceivable that people can be too ill to work.  But I’ll vote them out next time, and I’m sure they’ll be going.  Labour will form a government, and I just hope they’ll remember what it means to believe in community and social care.

I know it’s not an easy balance, I know that if you raise tax then money leaves the country.  I know that if you spend too much you end up in debt that you can never pay back.  I appreciate it’s a delicate balancing act, and one that many countries have gotten wrong in the past few years.  But surely, you have to approach the whole thing with the right mindset first, and if that mindset is that Community matters, Social Care matters, Trusting People to do the right thing matters, then your policies will result in people getting the help and care they need.

Stop worrying about the people who cheat the system.  Catch them, prosecute them, but don’t build your policies around them.  They’re a minority, and they shouldn’t be allowed to cloud how we feel about people who need our help.

April Ahoy

It’s April already, and I’d like to think after the end of last year, things are finally getting back to normal.  Yesterday, myself and Grete went out and bought a sofa (actually, a pair, a 3 seater and a 2 seater), to replace the ones we’ve been using ever since Grete’s parents gave them to us.  Before that, we used the other sofa and chairs that Grete’s parents gave to us.  This will be the first time, since we’ve been married (1998) that we’ve owned a new sofa.

We almost went for just a 3 seater and one armchair, but we do every now and then have company, so a 3 and a 2 it is.  Not that much more expensive, the armchair is 2/3rds the price of the 2 seater anyway.  Delivery ‘up to 7 weeks’ but hopefully will be faster.  Although Grete did an amazing job with the sofa covers a couple of years ago (turns out, it’s more like 2 1/2 years), it’s finally time to accept that we need to replace them.  The small two seater is okay, it doesn’t get much use, but the 3 seater is dead.  The cover Grete made is worn through in places, and I spend most of my time re-adjusting it after it gets scrunched up from a few hours use.  The sofa has a duvet on it, under the brown cover, just to give the cushions some padding.  It’s dead, it needs to go, and we were pleasantly surprised that it didn’t cost the earth to replace.

Now I just need to work out how to get the 2 out of the house without killing either of us, and hope the delivery guys can get the 2 new ones in. I know they can, because clearly somehow we managed to get the 2 existing ones in, but it’s the kind of thing I worry about.

Pruned Apple TreeI had a couple of weeks of holiday at the end of March, and had hoped to get into the garden to start tidying it, but the snow kind of put paid to those plans.  This weekend however, has been glorious, so rather than waste it, I went out today and finished the apple tree pruning that Grete started a few weeks ago.  I don’t know if the tree will survive, but at least we’ll be able to see out of the kitchen window for most of the summer.

As Grete suggested, it’ll probably generate a bumper crop of apples this year, just to annoy us.

Have to say finally getting out into the garden and getting something done really helped clear the winter funk out of my head.  I love Autumn and Winter, but it’s nice to finally get some decent Spring weather and get started.  Check back in during the Summer when I traditionally lament how much I hate gardening.

Reports from the sofa

I’ve been unwell on and off since around December.  Repeated colds which would come and go, and much more frustratingly, a cough which would come and go, and which at one stage was very bad indeed.  Eventually, my GP diagnosed it as whooping cough (yes, I know), and some antibiotics sorted it out.  It flared up again a few weeks ago, but only lasted a couple of days, and I’ve been pretty okay since.  Reports suggest it can take a few months to really get back to full health, we’ll see how it goes.

The reason this is important (in terms of this blog post) is that during the worst bouts of coughing, where I was basically coughing every 30 seconds, having something to absolutely focus on was the only way of either controlling it or ignoring it sufficiently to not go insane.  The two things which allowed me to achieve this were watching movies and playing computer games.

In March, I have spent a lot of time playing computer games.  This then, is a summary, a report from the sofa.

MasseffectlogoMass Effect

This wasn’t the first Mass Effect game I ever played.  I played the 2nd first, because I picked it up cheap when I first got the Xbox.  However, after loving it, I bought this as well.  This play-through, which started in February and ended in March was probably my third or fourth complete run through the game.  BioWare did two things with Mass Effect.  They delivered an amazing, interesting story supported by accessible game-play, and they learned from the experience when they went on to make the second game.  I’ve got all the DLC (downloadable content or add-ons) for the game, and the full play-through took 42 hours.  Decisions you take in the first game impact the second and third in the series (if you import your character), and so I was careful to make all the decisions in the way I wanted them to play out in the next two games.  I romanced Ashley, despite hating her bigoted opinions, because I’d never picked that option before.  I was planning to romance her through the 3rd game as well (staying true to her in the 2nd, by not romancing anyone) – but it didn’t work out that way.

I loved this play through as much as I did the first time.  I find as long as I leave enough time between play-throughs to make the dialogue fresh and interesting again, the game is as enjoyable as ever.

ME2LogoMass Effect 2

The 2nd game in the series fixes the most annoying feature of the first one, which is the equipment/loot system.  In the first game, you spend a lot of time sorting out gear for you and your party.  In the second, the whole system is streamlined and handled at a much higher level.  That alone would ensure I loved Mass Effect 2 more than 1, but it’s not the only thing BioWare made better.  Dialogue is more interesting, choices are more interesting, the missions are more varied and the general world in which you play is fleshed out in greater detail.  The one thing I preferred in the first game over the second was the layout of the Citadel.  In the first game it’s a sprawling location you can roam around as well as use fast travel stations, but in the second, it’s locked down more tightly and feels a lot smaller.  Considering the supposed size of the Citadel in-game, that can be disappointing at times.

Thanks again to owning all the DLC and being addicted to side missions, this time it took 48 hours to complete the game, finishing around the 9th March.  It should have only taken around 46 hours, but thanks to being an idiot, I had to take the collector base 3 times to get the ending I wanted.  Mass Effect 2 is the near perfect gaming experience for me, a blend of story, humour and action, with real in-game consequences of taking particular actions.

Mass Effect 3 LogoMass Effect 3

Up until this March, I’d only played Mass Effect 3 once.  I was pretty vocal about how much I hated the end (read here, massive spoilers), and the other issues in the game.  I’d never played any of the DLC other than the Prothean one released on day 1.  Since then, BioWare have released lots more DLC, including a free pack which updates the end.  BioWare promise it doesn’t change the end, it just clarifies what’s going on.  I was dubious, but I wanted to play the new DLC, and give them a chance.

Well, I still think there are issues, but I’ll give it to BioWare, they significantly improved the end for me.  There are three choices at the end, and on the first play-through there was really only one that gave what felt like the ‘right’ end.  Now, all three (four if you include the ‘no choice choice’) give far more satisfying ends and are described in a way which resolves many of my primary concerns.  I won’t spoil them here, but essentially, all the endings make sense now, and all of them result in some kind of victory, the only question is what are you prepared to give up to get that victory.  I’m still a bit sad that I had to be let down by the ending the first time, to get the better explanation the second time, and the new endings were tainted a bit by my memory of the originals.  However, you have to hand it to them, they realised they’d made a mistake, and they fixed it as well as they could without fundamentally changing anything.

Overall, the new DLC’s were excellent (Leviathan, Omega, Citadel), and I enjoyed this play-through much more than my first.  The game is quite happy to poke fun at itself, especially in the Citadel DLC, and that humour really shows how much the writers love the game, the characters and the fans.

Overall, the play-through was 57 hours (which is just over half of what I spent playing Skyrim).  For a third-person shooter that’s not a bad amount of time!  This time around I even played some of the co-op on-line content and really quite enjoyed it.

Mass Effect 1, 2 and 3 have to go down as one of the most legendary gaming experiences ever, surely.

dishonoured logoDishonoured

I don’t know how many hours I played Dishonoured for.  I’ve already traded it back in (bought for £15, traded back for £7), so I can’t load the save game and see what the played time was.  However, HowLongToBeat says it’s around 15 to 28 hours depending on how much stuff you want to complete.  I’m a fairly slow player, cautious and sneaky in games like this, so I’ll guess at around 22 hours.  Dishonoured is an excellent sneak-em-up set in a mysterious steampunky world and populated with some truly horrible people.  You can play the game in your own style, using a combination of violence or stealth to complete your missions, and despite essentially being an assassin you can choose to leave as many or few people alive as you like along the way.  The ending apparently varies depending on how many folk you dispatch, but while being fun, I didn’t feel the need to replay in a different style.  Conversation is interested, but the choices are limited and while there are side missions, they’re few in number and actually feel more like edges of the plot than truly side elements.

Actual game-play was really fun and the game easily kept me interested and engaged, despite playing it almost straight after the Mass Effect trilogy.  I completed the game with only about 5 kills, and some of those were accidental, honest.

Dungeon Siege III LogoDungeon Siege III

I’ve had this for ages, but had only played for around 2 hours.  After Dishonoured I was looking for something to really absorb me, and restarted from scratch.  I was pretty hopeful early on, but the game slowly became more and more repetitive, and essentially, a button-mashing 3rd person combat game.  It’s nothing like the original two games, which included full sized parties, and was based around a pause-and-go, click combat system.  Number 3 limits your party to two, the combat is real-time and requires control of your character and a limited number of skills with power bars and the like.  If you like button-mashing combat, then it may be for you but after 8 hours I gave up.  The story isn’t interesting enough to keep me trying to beat enemies that wipe me out in seconds with no obvious route to success.

Army of TWO TDC LogoArmy of TWO: TDC

We finally traded in the PS3 and all the associated gubbins, along with a few games, and as part of the trade-in deal put a pre-order down on Army of TWO: TDC after playing the demo.  I was looking for a FPS which was fun and relaxing, and Army of TWO fits the bill.  I knew it would be short, and I knew I wouldn’t play it more than once, but it was still enjoyable and satisfying.  Essentially, picked this up on Thursday, finished it, and traded it back in on Saturday afternoon (~£24 trade in).  I guess it was around 14 hours over those three days to go all the way through the story with a couple of stop-starts when I had to redo most of a complete chapter.  Fun, and essentially free, but not the kind of lengthy campaign I really enjoy in single player games.

Far Cry 2 LogoFar Cry 2

While I was trading in Army of TWO I looked around for something to play that could keep me busy for a while, and picked up Far Cry 2.  I know #3 is out, but I thought I’d give #2 a go initially, since it was in GAME’s 2 for £10 range (I picked up Bulletstorm at the same time).  I’ve played for around 3-4 hours, go through the tutorial and tried a few missions.  So far it’s fun.  I’m struggling a bit with the lack of feedback in terms of how stealthy you’re being (if at all), and the ‘no cover’ system is a little frustrating.  Otherwise, I think if I get into the game’s mindset I could find myself playing this for a good few hours.  However – I took a break to check out Bulletstorm and, well, read on …

Bulletstorm LogoBulletstorm

Well well well.  I played the demo when this first came out and while I thought it was interesting, I was clearly not in the mood for an irreverent, puerile first person shooter.  Apparently, this week, I’m absolutely in the mood for it.  Bulletstorm has some very high quality voice actors (from Mass Effect, in fact), some hilarious dialogue, a lot of swearing, some very annoying enemies, and some interesting weapons.  Technically, it’s a very solid first person shooter, with the feel of Gears of War without the cover-mechanism.  However, where the game really shines is the method of rewarding points (so you can buy weapon upgrades, ammo, etc.)  Each basic kill earns some points, but more complex kills earn more points, and the first time you perform a particular kill you get extra bonus points.  For example, shooting a bad guy nets you 10 points, but kicking that bad guy backwards and then shooting them, earns you 25 points.  Kicking the bad guy off the edge of a platform (earning you the Vertigo kill) is worth 50 points.  Add in blowing things up, an energy whip which can pull bad guys around, a combination of weapons and enemies, and the action is both frantic and humorous.

Yes, it’s silly, yes it’s slightly offensive, and yes, it’s utterly manic, but I’ve not had this much fun playing a true FPS ever.  The story is no worse than many first person shooters, while being better than some, and having some very high quality voice actors really helps.  Knowing that the actress for voice of the female character is the same as the one which played Female Shephard in Mass Effect gives the line “I will kill your dicks” even more added value.

I couldn’t stop playing yesterday and at times I was crying with laughter.  In one fight, where I dispatched about 20 enemies with a single shot to an explosive barrel, I was waiting for the combat to end, wondering why it wasn’t, but there were no new enemies.  Eventually, about 8 seconds after the explosion, I saw a lone falling enemy, through a window, who floated past us into the ocean giving me my first Fish Food reward.  Truly awesome gaming.  I can see me playing this a lot.

It’s January. Actually, it’s January 2013.

This is my semi-regular where the hell have I been post.  I’ve been writing these as long as I’ve been blogging.  I don’t think I write them for you, dear reader, but for me, so that I can remember what the hell I’ve been up to because frankly, I’m not very good at remembering.

It’s good sometimes to take stock, see where I am, what’s happened, where I’m going, why I’m doing whatever it is I’m doing.  This is, in the very best use of the word, meta.

Without a doubt, Twitter and to a lesser extent Facebook have replaced my desire or need to write blog posts.  Letterboxd has replaced the location I write about movies (and I quite like Letterboxd, let me tell you, although I’m not sure the social media side of it is going to work out, a lot of people follow a lot of other people and it’s not easy to see what’s going on there).  As a result, my blog takes second fiddle really, anything I feel the need to urgently blurt out happens in under 140 characters and I tend not to think about it in broader terms and turn it into a blog post.

That’s probably a shame, although I’m not sure it’s as if a thousand readers are missing out on my rambling.

Life in general is the same as life in general always is.  I’m still coming to terms with the recent death of my mother, and what that means for my life, and more importantly the life of my sister and her family.

P1120084I will risk the wrath of the car gods by saying that we finally bought into the new car market.  After 3 years of very painful car experiences, both in terms of cost and convenience, we’ve bought a new one.  Three year warranty, no MOT for the first three years either, low road tax, and most importantly, new.  That means it’s not carrying a whole bunch of latent problems that lie in wait until we have no money left that month and then leap out and bite us.  It’s the smallest car we’ve ever owned, but it’s new and it’s ours and it finally gives us a sense of security in terms of being able to get to places.  After 3 years we can use it as the deposit on another new car, and so on, and so hopefully over time, we’ll be in a much more stable position.

Of course, it’s not free, and there’s a monthly payment, but at the moment, the payment year on year is less than we were paying purely for repairs and MOT’s on previous cars.  I think one year the Mondeo cost us around £1200 in multiple essential repairs, each time you think it’s just low enough in cost to cover it, but over the year it always mounted up.  The new car is less than £100pm.

The house needs sorting.  So much stuff.  We’ve not decorated in any sense since we moved in, it’s not in us to just do it, and we can’t afford to pay someone else, but it’s going to have to happen soon.  Both sofas in the lounge are dead, and the excellent covering Grete made to hide the deadness isn’t going to last much longer.  We got the brickwork on the outside of the house sorted, after I blogged about it a while ago, and a nice person responded and said ‘out of all that, sort the bricks before winter’, so we did.  But there’s a bucket load that needs doing.  The drive is basically falling apart since next door removed the massive hedge and replaced it with a fence – I think the soil has shifted quite a bit, and the drive is slumping sideways.  Ah well, as with all things like this, we’ll wait until it becomes necessary rather than desirable and then deal with it.  Like the boiler and the central heating.  We’ll muddle along, doing what’s necessary, always hoping it’s enough until we win the lottery.

Work is work.  I’m not cut out for working for a living, but I manage to hide it pretty well.

I’m amazed daily at the pace of change in the world of IT and technology, if we think this is the future the next five to ten years are going to be amazing.  ‘Screens’ are going to essentially vanish, turning into work surfaces and converging so that they become computers.  Mobile computing will become the only form of computing.  Follow-me data will become the normal kind of data.  Privacy will face even greater challenges, and yet government agencies will continue to realise that they are losing a battle against encryption and secrecy.  The public will become more public and the private will become even more private.

I’m still diabetic, still taking the tablets, and still handling it okay, and all the while still pretending it’s okay not to really lose weight, and that somehow managing it is enough.  One day I’ll finally admit it’s not enough and that the closer I get to 50, the more I’ll have to work to stay off insulin.

We haven’t been to the gym for a very long time, sadly Grete’s back kept us away for a good portion of last year and frankly right now, it’s too cold, but I think if we made new years resolutions, which we don’t, then going back to the gym would be at the top for us both.  Grete’s doing amazingly well with her diet, getting back on that wagon.

My Spectrum fad isn’t over, but it’s on hold.  It turns out that I have room in my life for one hobby.  I’m either playing computer games, or reading, or watching films, or messing with computers, or painting miniatures, but I don’t seem to be able to balance all of them over a several week period.  At the moment, I’m back to games and movies.  Who knows how it’ll change over the next few months as the weather picks up.

bookthing-square2Speaking of books – BookThing is still going strong (and has a nice new logo), and I’m really proud of what Grete has built there.  Sanderson has finally finished the Wheel of Time series, taking over after the tragic death of Jordan.  I’m tempted, at times, to give the whole series a shot now.  I read a quick review of the final book and it suggests Sanderson has given it a fitting end, now that the end is there, maybe I’ll have the will to plough through the braid pulling and complete stupidity that some of the characters demonstrate.  Perhaps.

Stella Gemmell has written a novel, due to be released later this year, which is just awesome news.  I so hope it does well, and it’ll be one of the first books I’ve looked forward to in a long time.  I wish Mike Carey would write another Felix Castor book, but it looks like he’s doing something else first.  I know you can’t force art, but come on Mike, for me? Please?  I started the new Dresden book but haven’t finished it, got sidetracked by movies and games (see above).  I think it’s better so far than Ghost Story was, but it still hasn’t kicked into the kind of enjoyment the previous books gave me.  I hope the spark isn’t gone, I hope the flame still burns somewhere and that the story picks up.

fringeFringe!  Fringe, Fringe, Fringe finished.  We watched all 13 episodes over a 2 day period, having specifically stored them all up and read nothing until the finale had been broadcast.  It was excellent.  One of the best TV series’ I’ve ever watched, and a criminal shame it ended so soon.  But at least they knew the end was coming, FOX gave them that gift.  Was it the best it could have been?  Maybe, maybe not, but it reminded us where the story had come from, it answered some of our questions, and it made sure to ask another one right at the end.  I would have liked more of some things and less of others, but art is art and they only had 13 episodes and a reduced budget.   Something has to change if we’re going to get good quality genre TV shows with high production values, rather than cheap serials with guys in capes shooting bows and low production values.  Networks must trust the shows to build a following over several seasons, they must give them the creativity they need and the chance to grow, not order half seasons at a time, risking leaving them in limbo.

Quality genre TV asks sweeping questions over many, many episodes, but I guess they didn’t learn with Babylon 5, nor Firefly, and Fringe won’t teach them anything either.  Advertising revenue is king, immediate gratification is the only option, and our TV will become more and more like the Running Man world we all laughed at (but secretly expected to happen).

the hobbit pressI saw The Hobbit – it was nearly 3 hours of indulgent awesomeness.

We’ve started watching The Following (Bacon is good, in sandwiches and on my TV), and Criminal Minds is back next week, so plenty of harrowing TV to watch, broken up with episodes of Rizzoli & Isles, Bones and hopefully soon Castle, to keep us calm and not fretting quite so much.  Ted Danson in CSI worked far better than I expected, and I’m looking forward to his return as well.  Since our cats bought us the entire Battlestar Galactica series on Blu-ray, we’ll need to get around to watching that eventually, and I’m assured by a friend at work that it’s as good as, if not better than, Fringe.  We’ll see, we’ll see.  Alcatraz got cancelled – you bastards, it was quite good, and Sarah Jones was superb in the lead role, a good, strong, solid, believable female lead character, brushed aside by a network which needs instant results.  That series could have been huge.

I put a long list together on LetterBoxd about movies coming in 2013, you can read it here.  It seemed like a good place to put it, although it’s garnered less interest there than when I previously put that kind of thing on my blog, so maybe I’ll do that next time.

And I’m slowing down which means I think I’ve probably said enough for one post.  This is 2013, even the date sounds futuristic – let’s make the best of it.

My mam – the strongest woman I ever knew.

My mam died at around 7:30am on the 12th December 2012.  She passed away peacefully after a massive stroke the night before, all exacerbated by weak lungs and heart.  The day she had the stroke, the 11th December, would have been my dad’s birthday, had he not died in 1975.

My sister was there, by her side until the end, but then, my sister has been there by her side for her entire life, taking care of our mam while I lived too far away to do so.

Nora Evans was the strongest woman I’ve ever known.  She brought up two kids on her own in a time when the stigma associated with that didn’t give people the chance to find out why she was on her own.  She held down more than one job at a time to provide for us, and it was only years later that I really understood what a struggle it had been.  My mam taught me, through actions not words, the meaning of honour, respect, integrity, and responsibility.

She was fiercely protective of those she loved.  She knew her own mind, wasn’t afraid to tell you what it was and didn’t let anyone tell her how to live her life.  She loved her three grand kids and she was as proud of them as she was her daughter.  She loved a good argument, never backed down when she thought she was right, and was intelligent and articulate.

I loved her with all my heart, although I probably never said it as much as I should have.  I think she knew.

The last couple of years hadn’t been easy for her, or those around her.  I’m sad she’s gone, but glad she’s finally at peace, able to rest after a life full of challenges that she met head on, stared down, and overcame.

Rest in peace mam.