Impact in 5 seconds!

I’m not a big fan of the use of the word “impact” to describe how we want to influence or change things. “We want to have a big impact in society!” “How can we impact the world?” “What impact will this have on our business plan?”

Impact has quite an violent or harsh physical overtone. Hitting, kicking, punching etc. Which fits in well with the western / violent / masculine language dominant in our current culture – but it’s not a metaphor that reflects the kind of long term beauty and change we want to see.

Recently I heard “impact” described as a positive thing – in that it was how musical notes were created. As in a bell, cymbals, drums, but also guitars, woodwind instruments…

Except – that’s not how woodwind instruments work. Nor guitars.

You don’t “hit” the strings on a guitar, and the note on a woodwind instrument doesn’t change by the air “hitting” the holes that you cover.

A guitar works by introducing tension, and then releasing it.

A flute works by the air being split by the block, and creating a column of air inside the body of the flute, which you then change the length of by opening and shutting holes.

A clarinet works by setting up a vibration in the reed by pushing air past it and tensioning it in exactly the right way, and then by changing the length of the tube (with the keys), it changes the speed the vibration can happen at.

The big insight to me here is that it’s not just an external force “impacting” the instrument, but an interaction of multiple forces. Interaction and engagement, not just slap and walk away.

And that’s kind of important to me… the idea that to make real change, and make things of beauty that last (like a sustained note, not just a crash of cymbal), it requires giving of breath (life), and constant engagement with the system that you’re changing. When you play clarinet, you don’t give a constant air pressure and tension in your mouth all the time – you modulate that depending on the result you’re getting. You need the feedback loop.

I believe that’s how we can make real change.

Audio Advent Calendar

This year the Creative Writing Passion-Group on board were asked to make a series of brief reinterpretations of the Advent story for every day at lunch-time on board.

Here’s my two contributions:

Daniel (Part 1)

Listen Online

Phone Rings You have reached the extension of Meshack, Permanent
Secretary for the office of Internal Affairs, Babylon. I’m afraid
I’m unable to take your call, but if you leave a message and contact
information, one of my scheduling staff will return your call. BEEP

Daniel: Mishack, this is Belteshazzar, if you could contact me please
that would be great. I’ve had a bit of an odd, er, experience I’d
like to talk about with you. Shalom, Click

Phone Rings You have reached the extension of Meshack, Permanent
Secretary for the office of Internal Affairs, Babylon. I’m afraid
I’m unable to take your call, but if you leave a message and contact
information, one of my scheduling staff will return your call. BEEP

Daniel: Oh for goodness sake Mishael – answer your blasted phone! It’s me again, Daniel. Look, the dreams have been getting stranger. I swear I’ve not touched a drop of the King’s wine. So there were these beasts, coming out of the sea, all mixed up – a leopard with four wings, a lion, a bear, hideous. This wasn’t some stupid nightmare. Nightmares are way more mundane.

I can remember so vividly, like I was actually there – I’m not going to tell you every detail now… it all ended, somehow with me seeing into the thoneroom in heaven itself! And there, a “son of man”, like, how you described the fourth man in the furnace? The same! And he shows up in the throneroom, and was greeted royally, and then gets made ruler of the whole planet! An eternal kingdom, full of every kind of people, diverse and spectacular, immense and unlike anything we’ve ever seen, Mishael.

So I went and asked one of the court guards what on earth was going on – and he told me it’s all about the future, the beasts are kings who are coming, and eventually the Most High will judge the last kingdom, destroy it, and hand it all over to an eternal kingdom of His people.

Look – I honestly don’t know what it all means, brother. Or why on earth I had this dream. I thought these dreams from the Lord were supposed to be meaningful? How can I make SMART goals or an Action Plan from something like this?!

It’s terrifying, seeing the horrors of so far in the future – I know the Lord will send this Son of Man in the end – but it’s such a long way off – why tell me now? I wrote it all down – maybe you could come by to read through it. Perhaps someone else will find it encouraging. Call me. Click

Daniel (Part 2)

Featuring the Prophet Daniel (played by me) and his Life Coach (played by Dan Potter).

Advent 2018 – Daniel Part 2! Listen Online!

Doorbell, Door Opens

S: Belteshazzar! It’s good to see you again…
You missed the last 3 sessions… How have you been?
I hear from Shadrack that you’ve been sealed in your rooms?
What progress did you make on your action steps?

D: I’ve prayed. I’ve fasted. I’ve repented. I’ve wept.

S: That’s great, er, none of them were things we talked about
last time – but they all sound… useful?

D: Yes. I had a vision.

S: That’s good, right? You’re the one who interprets the King’s
dreams and visions so…

D: I don’t. The Lord does. And He tells me what they mean.

S: Yes, of course. So, what did the Lord say this time?

D: It’s complicated.

S: That’s surprisingly candid, coming from Him.

D: Stop it. So I read Jeremiah’s prophercy, it’s we’re almost
finished with the 70 years until the Temple and our people
are restored – and we’re nothing like ready. That’s why I’ve
been praying and fasting and repenting – How could we
possibly be ready to return?
And while I was praying, the Lord sent an Angel, who told
me many things…

S: Like, er what?

D: Our people will return, we’ll finish rebuilding, the sacrifices
will resume – and in then a while later, the Messiah
will come.

S: That’s amazing!

D: But He’ll die – appearing to have accomplished nothing.

S: But – but – all the other prophercies say all kinds of things
he’ll do!

D: I know. I said it was complicated… and the Angel said
appearing to have accomplished nothing.” So maybe he’s
going to do things in secret? Or somehow won’t be noticed?

S: That doesn’t sound very Messiah-like.

D: I know.

S: This is fascinating, but I think we’re getting a bit distracted…
What would you like to take away from our conversation?

D: I’d like to get some clarity about sevens.

S: Sevens?

D: Yes… Apparently they’re quite important. And we’re going
to have an awful lot of them before the Messiah comes.

S: Er, right. So, what are the key points of understanding these

D: I’m not really sure. An Angel told me about them. His name was
Gabriel. He was really nice – He told me that I’m precious to
The Lord. I have a feeling he’s involved in this all some how.
And then he started talking about all these sevens… 70 sevens,
then another 7 sevens, and then 62 more sevens after that.

S: Is there a cultural Angel to understanding this angle? Or cultural
angle to understanding the Angel, I mean.

D: Do Angels have a culture?

S: I don’t know! You’ve met more than I have!

D: True. hm. It’s a good question. A cultural angle..
Well – creation took 6 days,
plus the Sabbath – but 70 weeks is less than 2 years – it can’t
mean that… we used to have special celebrations every 7th
year – I think it’s seven years… so about 500 years,
in total, I guess?

S: So… what actions will you take to move forward?

D: 500 years is a really long time! I could do a lot of action
steps in 500 years.
I think I need to go pray some more.

S: That’s always a valuable thing to do…
What do you want to remember from today’s conversation?

D: I thought this was just all something to do with us returning
to the Jerusalem soon – but I think it’s something bigger.
The Lord isn’t just preparing us for the end to our exile –
There’s so much going to happen.

S: Hmm. So you said you wanted to get some clarity about this…
Out of 10, how clear is it now?

D: Maybe Seven?


This was written by our friend Becky Breckels and me, and then read by my amazing wife.

Door opening and shutting

Elizabeth: Zechariah! You’re home! How was the Temple? Anything exciting happen?

Pause as is if Zechariah is speaking

Elizabeth: What’s that love? I can’t hear you!

Slightly shorter pause as Zechariah gestures wildly

Elizabeth: Well I can’t understand you if you’re just going to stand there gesturing! *deep sigh* Fine, we’ll play charades.

Your eye. A drink? A can. Tying something… a knot? Oh! “I Can not”, you cannot what? Talk?

Elizabeth: What do you mean you can’t talk? You’ve never had any problems talking before!

Zechariah starts gesturing wings.

Elizabeth: What are you trying to say? Wings…a bird?

Zechariah shakes his head

Elizabeth: No…? Not a bird…well what else has wings?

Zechariah starts gesturing a halo

Elizabeth: What’s that supposed to be?! A circle above your head!?

Sounds like a heart? A Triangle? Half a triangle? That’s still a triangle! Second half of triangle? Ngle? Sounds like ngle?

Zechariah starts gesturing both wings and a halo

Elizabeth: …AN ANGEL! You saw an angel! Blessed be! An angel! Well…what did he say?

Zechariah starts gesturing writing

Elizabeth: He told you to write something?

Zechariah shakes his head

Elizabeth: You know this would probably be easier if you had your writing things. Now, where did I put them…(fades out)

Sounds of pots and pans clattering

Elizabeth: Ah! Here they are! Now, what did the angel tell you?

Sounds of writing on a blackboard or tablet

Elizabeth: We’re going to have a son!?

This is all a joke, right?

More writing sounds

Elizabeth: His name will be John?! But that’s not a family name!

This must be a joke. I’m going to go make dinner.

OK! Fine, I’ll wait. You’d better make the punchline worth it.

Continued writing sounds

Elizabeth: (Writing sounds throughout) …No alcohol…filled with the Holy Spirit! Spirit and power of Elijah! You’re serious? This isn’t a joke? Turn many to the Lord…prepare the people for the coming of the Lord! …For the coming of the Lord! The Messiah!? He’s coming soon then?

Zechariah shrugs his shoulders

Elizabeth: What do you mean you don’t know! … You didn’t ask!? You had an angel of the Lord standing right in front of you! And you didn’t ask him when the Messiah is coming!?

Zechariah shakes his head

Elizabeth: Hang on, you haven’t told me what any of this as to do with you having no voice…What did you say to the Angel?

Oh come on, don’t be embarrassed.

What did you do?

You thought it was a joke too? Oh come on. An angel shows up, of course it’s not a joke. Who would think such a thing?

You told the angel he was crazy?

Well, serves you right if you can’t talk any more.

Er, how long are you going to be silent for?

Until the baby arrives?! I guess we’d better buy some more writing equipment. And you really need to start working on your mime skills.

Story Telling (Part 3) – The Hero’s Journey (aka, Story Circle).

So this is Part 3 of my seminar / workshop on Story Telling that I did with the Logos Hope On-Board events Team. Here’s Part 1, and Part 2.

There’s an interesting alternative theory called, “The Hero’s Journey” (or “Monomyth”). There’s books written about this, some really cool ideas.  A very approachable version is by Dan Harmon, the creator of Community.  Ant Webb was the guy who introduced me to both Community, and the Hero’s Journey.  We’ve been discussing it and used it as part of Matt’s Blog.

Slide16The Hero’s Journey theory says good stories are circular. You end up back where you started. They’re a journey from home, from comfort, from the concious, down into the subconscious, uncomfortable far away place, and back eventually home again. Of course, changes happen along the way.


The full theory has all kinds of Freudian stuff to do with being forced out of the mothers arms by the call of the father, eventually defeating the father, and returning eventually as a mother or father all that… (Seriously, Freud had issues.) Also, there’s loads of details that are reasonably important, and do make the story more compelling, but also, with much added complexity.Slide19So lets go look at Dan Harmon’s Story Circle instead.

Dan Harmon's Story Circle MainHe takes the circle concept, and breaks it into 8 simple parts.

1-youWe start off at “You“. This is where “you” the audience relate to the main character(s). Preferably, the character should be in a place of comfort, or at least, be connected to some kind of easy-to-relate-to “home” situation. This could be a sailor at sea on the bridge, or a little bear playing a balancing game, or Garion at Faldor’s farm, a new student enrolling at community college, etc. It’s a starting point that the audience can relate to, and feel comfortable understanding. They don’t have to dig deep emotionally to connect with the main character. It happens automatically. This is the concious, mental understanding area.

2-need Next is the “need“. Something isn’t right, or some how the stable situation will be pushed off-balance. This is pretty close to the “problem” concept from the 3-act play model. Note, we’re still basically in the stable conciousness.


So, since there’s a need, I guess we’d better “Go” do something about it. This is where the Hero decides to actually leave their safe familiar environment, and go out into the world to solve the problem. We finally dep3-enter-unknownart the concious, and head into the scary subconscious / unconscious. The going can often be the most emotional part of the story. Or at least, the most emotionally motivated or driven part. Once the Hero is actually off fighting dragons and saving maidens, they’re too busy actually doing stuff to be all soppy and emotional.

Slide27Now that we’ve actually left, comes the big difficult part of the story, the Seeking, or Searching. We may not exactly know what it is we’re looking for yet – but we’ll find out. Many different avenues can be explored, different people met, etc.  This can be long, arduous, and challenging.  The main character should be growing and changing here.

5-findEventually, we Find what we’re looking for. This is where we can start looking at the more interesting parts of the theory.  Up until now, it’s all been pretty pedestrian, but behold: the magic!

Slide32Each point on the circle has an opposite point.  OK, to be honest, that’s more like geometry than magic, but whatever.  They’re kind of similar.

Slide33Find is directly opposite on the circle from You, for instance. All opposites have extremely strong ties to each other. So “You“, signifying conscious comfort and familiarity, can either be used here with direct parallels, or with polar opposites. But either way, it’s linked. Garion is tempted most by Torak by images of family and a safe life with Aunt Pol. Little Bear realises it’s dark and thinks about going home. Frodo and Sam reminisce about home, talking about planting the acorn from Loth Lorian in the Shire, deciding it’s all worth it to stop Sauron’s Hoards pillaging and burning everything they hold dear.

Let’s move on:

Slide29So we’ve found it – but to actually Take it, there’s a Cost. As Rumplestiltskin so repeatedly says in Once upon a time, “Magic always comes at a price!”. Here, again, is a link across to “Need“, the opposite number again.

Slide36If the need doesn’t balance the cost, then why would you pay it? Too high a cost, with too little benefit, and the audience feels like the hero is crazy, or just doing it because the script says to. Too small a price, and the audience feels cheated. It’s too easy.  So again, making links between the two helps strengthen the story.

Note: Often the Find and Take are very close together, the 8 points on the circle don’t need to each have equal screen-time.

Slide30Having paid the price and Taken it, now we need to Return home. This is where we can start to bring home the conscious message of what we’ve taken. It’s the balance point going back into the safe lands again, and can be quite emotional again.

Slide35There’s nothing really left to do, so it’s beginning to relax time, which means all the stress of the journey can begin to surface and be dealt with.

Slide31As the Hero returns home, presumably, hopefully, they’re somewhat Changed. If the hero hasn’t actually changed, then really, what was the point of the whole thing? This is where sit-coms and soap operas cheat like mad. Since they don’t actually want to seriously change the situation, but leave it ready for next week, they have to paint lots of obvious messages about what the characters have learned, even to the point of having characters sitting around saying trite crap about, “I guess now we know that…”, “So next time I won’t do that again…”, so that the audience feels like they’ve seen a change, although actually, next week, they’ll all act exactly the same as before. (Sad, isn’t it?)

Slide34The Link with Changed is Search.  It’s usually through the questing / searching / learning part of the story that the Hero has changed.  This is done extremely obviously in Lord of the Rings (the books, of course) when the 4 hobbits return to the Shire and kick out Saruman and Wormtongue.  The LOTR movies don’t have that section, so they try to show that they’re “changed” through a soppy emotional “Oh Gosh How Deep We All Are Now” load of rubbish with the 4 hobbits making calves eyes at each other.  They do show Samwise actually going to ask his sweetheart to marry him, finally, which is good.  But still.  There is actually a reason for the section they cut out.  And the  movies suffer for lack of it.

Let’s look at our example, Little Bear, again…

Slide45And so that’s the basic overview version of The Hero’s Journey.

Pretty cool, innit?

And that concludes my mini-series from the workshop.  In some ways, I wish I could have just told the Events Team “Go Read Dan Harmon’s Blog Posts, and watch Glove and Boots!”, but the ship’s firewall blocks half of it for profanity, and it would shock the heck out of the team for actually containing said profanity, and doing a workshop is actually a lot more meaningful to many people than simply reading it on a blog.  But since you, dear reader, have read my blog, here’s a link to the stuff Dan Harmon wrote about it. It’s also in several parts.  And probably quite a lot clearer than what I wrote.  My audience was a bit different, and I was simplifying in different ways because of the direction I’m trying to influence them.  Read what he wrote.  There’s good stuff there.

Glove and Boots also did a video about The Hero’s Journey, which covers the more character-centred side of the theory:

Anyway, I should stop waffling now.  I’m writing a lot of this while sitting on a cold floor in Changi Airport in Singapore with my wife and 1-year-old son sleeping next to me at 5:30am.  I think I’ll wait until I get home to proof read it once more before publishing…

We interrupt this series…

Since we’re only on the ship for a few more days (!), I thought I’d post a few photos.


It was a friend’s birthday, and so various people filled his office with balloons.  David already loves coming to visit him (Tommy), and this visit was even more fun.


Prayer night on board.  They’d decided for a “gather around the fire” kind of set up, the evening being led by the Africans on board, so I added a few lighting touches to make it feel even more campfireish.


This is the new lighting control system.  We’ve got rid of the old, difficult-to-teach, increasingly flaky Zero88 LeapFrog Desk, and put in place a computer, with a USB->DMX interface.  The software we’re using is free, called “QLC+”.  It’s got a few bugs, but is *incredibly* much more easy to teach people, and allows us to do cool things like play music from the software, with lighting cues at specific times in the music, make the moving-head lights bounce around in time, etc.  Cool cool stuff.


David enjoys playing table tennis with us.lifejacket-smaller

Muster drill today, David got all dressed up in his lifejacket, and looked stunningly cute, in a marine kind of way.  He had fun, anyway.


This is a project I’ve wanted to do for a while.  The equipment in this office is “AVC” (Audio-Visual Central), and the main hub for all the AV routing around the ship (sending video & audio to the dining room so people can listen to devotions while finishing breakfast, for instance.  Or displaying big programs in the theatre in the Logos Lounge as well as an over-flow venue, or as a place for ship’s company to watch, etc. etc.).

Anyway,  This whole wall of racking is quite a mess.  This office used to be the IT office, and backs on to the server room.  Things have changed now, and it’s the on-shore-events team who work here, so having 19 inch racking makes no sense.  And they need more storage space, and the IT folks need more storage space too.

So I suggested (about 2 months ago) moving the AV equipment into the far left rack, and then turning the other 3 racks into cupboards facing both ways, with plenty of space for the IT guys in the server room, and plenty for the on-shore teams in this office.  Nothing came of my suggestion, so I thought, “oh well, the carpenters are too busy.  whatever”.  But now they’ve got a couple of enthusiastic project workers on the job, and everyone’s quite excited about how much more space they’re going to get.

rack_back-smallerAlthough I’m wondering if I was mad to suggest this project, as it does mean quite a lot of moving cables and equipment around…. I hope I don’t break anything.  I want to do this while I’m here though still, as none of the A/V team have any experience doing racks/patchpanels/routers/install type stuff.

It seems really odd that we’re going to be leaving in less than a week.  Hard (in some ways) to think we’ve been here 3 months.  In some ways it seems like a lot more, and in some ways it feels like we’ve barely arrived.

Cleaning and Settling in.

So we’ve been here almost 2 weeks now. It seems to have passed extremely quickly. The AV team have been hard at work, cleaning, installing, cleaning, Cleaning the AV Storetesting, cleaning, training, and cleaning. I’ll try and post some more photos of the new equipment and nerdy stuff like that soon. But for now – here’s a photo of the 3 new recruits down in the AV store room cleaning it out. There’s a couple of tank man-holes in the store room, so often during dry-dock deck teams go in through there to work in the tank, and so everything gets covered in dust and grime. It would be nice if they told us in advance so we could get stuff out of their way and protected… but more of that another time.

So. That proves we’re actually working, (or at least that I’m making other people work – which is basically the same thing) now for some more fun photos.

me-and-babyWe’re all settling in. David is loving all the attention and stuff going on all the time. It’s lovely being able to eat with my family every day at basically every meal at the moment. Becky is finding it a bit odd, and lonely at the moment, as she didn’t really know many of the other mums, or what things there are to do. She misses cornerstone and the community there. Things are starting to pick up though.


Playing with David is always fun – we’ve been leant loads of toys for him to play with, which is pretty cool. He’s always so active, and wanting to run around. He loves this walker, and spends plenty of time just coasting around the chairs too.

walker-ownHe’s such a happy baby most of the time. The two things he hates are sleeping, and ending a meal. No matter how much he’s eaten, he’s always sad when we stop feeding him and wipe his face. I wonder if he’ll be a chef one day…

Oh. And since some toys are magnetic, and we have a metal deck-head in our cabin (ceiling)…


Hello, WordPress, hello Logos Hope

I use WordPress at work, it’s the engine behind, and most of the other sites that we run for clients.

I’m in two minds as to whether I like it or not. Some things are great. For users (content authors, the people writing blog posts or static pages), it’s fine. Easy to understand and use. For writing plugins and templates, it’s… Well, kind of messy and ugly, but doable. For instance, rather than have 1 HTML template “base” file, with a block saying, “put posts here, and wrap each one in x,y,z”, you have a header.php which has only the start of all the HTML, and a footer.php which closes it all, and a content.php, a content-post.php, and so on, and you have to keep them all synced up. Also, since it’s designed for running on old PHP, it doesn’t use namespaces or other ways of keeping code clean, so all functions in all plugins and all templates are all global scope, so to avoid bumping in to each other, you have to name all your functions stuff like, “madprofs_teapot_plugin_get_resource() and similar. Then at the same time, WordPress has multiple global functions of its own, some called things like, the_post(), others like wp_get_cached(), (so prefixed with wp_), and others in other styles. Messy.

Still, it gets the job done.

So when I wanted to update and clean up the [email protected] blog, I thought I’d just stick with blogger. It works, it’s what I already had. But then, accidentally, while trying to update it, I lost the entire design, and putting it back together was this awful mess of Google-XML/HTML confusion, I thought, “you know, stuff it, I’ll just use WordPress.” So I span up a site on the server (in about 2 minutes), pointed the blogger importer at, let it chug away for a few minutes, and here we are.

I’m just using a very simple built in design for now, (with my own background), but it seems to work. I now don’t have to worry about Google turning off blogger like they did with Reader and GoogleCode, and since I use WordPress at work, I understand what’s going on pretty well.

That all said, we’re now on the ship, trying to settle in. We have a really nice cabin. Jet lag wasn’t fun, especially with the baby, but we’ll get through it. Yesterday Becky drank a big milky drink by accident – we thought it wasn’t cows milk but plant based, and last night and tonight David has been awful – screaming for ages and refusing to be comforted or to sleep lying down in his bed. So that does seem to confirm that maybe it is a lactose intolerance at the moment – hopefully he’s back to normal in a day or so.

Work so far is just cleaning the various venues. We’ve not even begun to start installing new equipment or doing anything really technical. We’ve got the lights out of their bags and air-blasted them all, cleaned many surfaces and TVs and vacuumed and dusted. It’s going alright. Still sooo much to do.

For Becky and David things are a bit odd still, it’s quite odd not having a fixed job to do, not knowing what to do most of the day, not having cornerstone to visit, not really knowing many people yet, and so on.

Anyway, we’re here, the flights weren’t bad at all. We couldn’t check in online due to some weird computer bug, but at the terminal while we were checking in we asked about getting a bassinet for David to sleep in, and they said they could get us one, but the lady recommended us instead to not get one, as he is quite big, and had a seat booked, and instead found us a row of four seats with no one else on the row, so we could make a bed for David there, which gave us all a lot more room. So on the second flight, both mother and baby could actually lie down and get some proper sleep, and arrive not looking like zombies.

I now have this weird mental image, after that last sentence, of a zombie “madonna and child” (very un-)orthodox icon…

That aside, we’re here!

It’s been a while.

So. It’s been a while, blog.

9 months ago our son was born, and he kind of took priority over writing.  I’m sure you understand.

Anyway, the reason for this post is that once again, the brummie will soon be at sea! This time with Mrs. Brummie, and Baby Cumbrian.  I don’t know if Becky will object to being Mrs. Brummie, as she’s actually from Yorkshire, but whatever.

So we’re heading out to the Logos Hope again for 3 months.

Becky and I were on board for 3 months just over 2 years ago, helping with the A/V and Events teams after the 6 months dry-dock in Subic Bay.  This time, the ship has just come out of several months in dry-dock again, this time having the generators replaced.

I’ll be working with the A/V team again, doing training and helping getting everything back on track and working again.  We’ve bought some new equipment, as most of what’s there now is from the original install 6+ years ago, and is in need of some serious overhaulage.

During the Subic Bay drydock 2 years ago, none of the A/V gear was packed away properly, which is part of why everything is in such bad condition now.  At least now, since then, it’s become part of A/V culture to do a serious pack down at the start of every dry-dock.  All of the lights on the truss get plastic bagged, all of the lighting dimmers get unplugged and tagged out, the desks get bagged and covered, etc.

In some ways, I’m extremely excited about going back again.  For the last couple of years I’ve ended up doing more and more I.T. work here, making and maintaining websites for,,,, and, as well as a few internal projects (including stuff-management and streetsign).  It’s kind of interesting, some days, but also pretty frustrating too.  I feel I’m more of a creative ideas person, rather than a server-maintenance guy, so the initial creation of websites or programming projects is kind of fun, the on-going maintenanace and bug-fixing drives me to despair (not to mention having to work in PHP with WordPress…).

I love the ship’s work, I love doing events (especially the school visits and other kids events and actual theatre type events), and am quite excited about not having to do I.T. stuff here for a while.

It’s really strange to think that when we get back from the Logos Hope in 3 months time, it’ll be 10 years since I started this blog, when I first went to Doulos for 3 months….

Anyway, time for dinner, and I need to go play with our son.  I’ll try and post something a lot more regularly this time.  Writing is theraputic, and I suspect I’m going to need it…

LVM snapshots for a resetable machine

I have ended up maintaining a few websites which we are hosting on a machine off in Germany somewhere.

I want to get everything automated, so I have less work to do if something goes wrong.

I’m using ansible, which is wonderful, and have a nice set of playbooks I’ve written which take a raw CentOS install, and install everything, (php-fpm, nginx, etc…) set up the virtualhosts, install wordpress & joomla and all that for the sites that need it, etc.

Until today, I’ve been using a virtualbox on my local computer to test on, and it works great.  I haven’t bothered with vagrant, as I tried it for a couple of days, and it crashed my whole computer twice, so I gave up.  With virtualbox, it’s almost as simple.  I have a virtualmachine which I can spin up, install stuff on, and then when I want to go back to a fresh machine, it’s a matter of turning it off, and clicking ‘restore snapshot’ to the snapshot I made when it was clean installed.

It’s practically instant, and just works.

However, running a virtualmachine on my primary work computer all the time does make everything else somewhat sluggish.  So I’ve scrouged an old computer that wasn’t doing anything, and am now using that instead.

In order to get snapshots and restore points going well, here’s how I did it:

  1. Install CentOS, leaving a bunch of free space on the LVM primary group.
  2. Make a snapshot when it’s first installed
  3. Restore (merge to) that snapshot whenever I want it back to original settings.
  4. Reboot

To make & restore the snapshots, I’ve written the commands as scripts so I don’t have to remember the lg-whatever stuff. (vg_localtest is the name of the volume group I set up for the HD when I installed):


lvcreate –size 100G -s -n original_snapshot /dev/vg_localtest/root


lvconvert –merge /dev/vg_localtest/original_snapshot && reboot

It works great so far.  One improvement I’m making, since I one time forgot to make a snapshot, and so couldn’t restore to a blank slate without re-installing the whole thing (which, admittedly, only takes half an hour or so):

I’m adding ‘snapshot_make’ into a boot script, and then modifying it to remove itself from the bootscript once it’s made the snapshot.  That way as soon as the machine reboots into it’s original snapshot, it will automatically re-create the snapshot.

This looks like:


lvcreate –size 100G -s -n original_snapshot /dev/vg_localtest/root

sed -ine ‘/snapshot/d’ /etc/rc.local

and then /etc/rc.local will look like:

#… whatever it has

“Matthew’s Blog”

For the last few months, some friends and I have been working in our spare time on a 12 part video series, “Matthew’s Blog” – a video blog from the point of view of the Apostle Matthew (although he doesn’t know it yet).

He starts off as a young, arrogant tax officer, which is where we meet him in the first Episode:

I hope you enjoy!  Please join us as it leads up to the climax at Easter this year on !

Merging directories with the magic of Python.

We finally got the last projects out of that monstrosity ‘Final Cut Server’, but one project at the end was a nightmare to export, and we weren’t sure which files from the end actually were in a different version of the project that we already had.

We essentially needed to merge two different versions of projects directories, making sure not to lose any files, and we didn’t want to lose the organization of the files.

Here’s a quick python script I wipped up to make it quicker.

With the 4000 odd files in the project, it took under a second to run, and it turned out we only had about 20 files which hadn’t already been merged.  Much simpler to sort out.

The script took about 10 minutes to write and test. This is why you should learn to program.  Hacking stuff like this up is easy, and saves *so* much time.

(Yes, you probably could do this with a couple of lines of perl or BASH, but what the heck.)

#!/usr/bin/env python

from subprocess import Popen, PIPE
from os import stat
from os.path import basename, abspath

def run(*command):
    found = Popen(command, stdout=PIPE)
    return found.communicate()[0]

def files_in(dirname):
    return [x for x in run('find', abspath(dirname), '-type','f', '-print0').split(chr(0)) if x]

if __name__ == '__main__':
    from sys import argv

        sourcedir = files_in(argv[1])
        destdir = files_in(argv[2])
    except IndexError:
        print 'Usage:'
        print argv[0], '  '
        print 'Where you want to check if files in  are also in '
        print '(but perhaps with a different relative path)'

    print '---------------------------------------------------'
    print '{0} files in {1}'.format(len(sourcedir), abspath(argv[1]))
    print '{0} files in {1}'.format(len(destdir), abspath(argv[2]))
    print '---------------------------------------------------'

    destnames = {}

    for destfile in destdir:
        destnames[basename(destfile)] = {'size': stat(destfile).st_size,
                                         'path': destfile }

    for newfile in sourcedir:
        base = basename(newfile)
        if base not in destnames:
            print newfile, 'is NOT in the new dir'
            destfile = destnames[base]
            if stat(newfile).st_size != destfile['size']:
                print '{0}({1}) differs from {2}({3})'.format(
                      newfile, stat(newfile).st_size,
                      destfile['path'], destfile['size'])