Model railway build: it begins

Something unexpected happened last week – I took possession of a model railway. Well, to be exact, I took possession of some of the parts I’ll need to create my own model railway. Which essentially means I’ve been handed a mid-life crisis.

When I were a lad, my Dad and I built a 00 gauge railway. We mounted it on a big board hinged to the wall. It had two ovals (an outer express line and an inner goods line) that went through a tunnel, a branch line that went up a hill and finished on top of the tunnel, several sidings, a hole in the middle for small people to peep up through, and some weird electronics to optionally isolate certain bits of track so we could have lots of engines on the track at once. There were many happy hours spent playing with engines, painstakingly applying ballast to the tracks, and trying to make the grass look realistic.

But with my parents moving house, it became time for me to reclaim the railway, or lose it. Of course, I couldn’t take it as it was, on that great big board, so my first task was to rip up all the track and scenery. That was tough, not physically but emotionally. But the heartache was balanced out by the hope that it would live again, albeit in a different form.

And so begins my next project – making my own 00 gauge railway layout. I’ve already got a rough idea of a track layout, using the bits of track that were still usable. I’m trying to keep it simple, but I also want it to be interesting. My plan at the moment is to have a single oval, but with a wiggle in it for variation, and a few sidings. Below is a picture of what the track looks like on my sitting room floor.

I’m already considering changing that, though. I’m contemplating whether the sidings on the right could be inside that wiggle, on the edge of the board rather than inside the loop. I’ll need to get the track out again and see if I can make it work.

As for mounting it, I’m looking at using some sort of styrofoam base to build up some scenery, making some nice hills and a subtle elevation change such that the back straight is slightly higher than the track at the front. I’m still researching how best to do that. I’m imagining that will all be mounted on a bit of chipboard, possibly with some slats underneath for rigidity. I’m still working on how best to raise that off the ground; it’s going to be in my garage, and I’ll want to store stuff underneath, so I need to work out whether I can repurpose an existing table or whether I’ll need to create my own legs. I’m not exactly experienced with woodwork, so this is going to be a challenge! I’m also wanting a lid, probably also in chipboard for now, which will keep the dust out when I’m not using it, and possibly also allowing me to store some stuff on top if I need to. And there was me thinking this would be a simple project!

Height map showing where the hills might be

Ultimately, I’m aiming for a quaint little countryside line, ideal for a little tank engine and a few carriages or trucks. I’m not anticipating express trains on here. I’d quite like some sort of industry on the top branch line, but I’m not sure what yet. Might be a farm, or a mine, or a factory. Suggestions on a postcard.

The sovereignty of God

Or: God, our ultimate superhero

This is a sermon I preached at St Aldhelm’s Doulting, focusing on James 4:11-17.

Superheroes are everywhere in today’s culture. In some ways we’re a bit like them, in that we often judge each other, comparing our own skills and achievements against other people. James points out that this is contrary to God’s will. We judge God too, every time we go our own way instead of his.

James teaches us that the solution to our problem of pride is humility. We need to humbly submit to each other, and to God.

Sermon: Living faithfully

This is a sermon I preached at St Peter & St Paul Shepton Mallet, looking at James 2:14-26.

James writes to young Christians in churches across the Middle East, telling them that faith without works is dead. At first glance, that seems contrary to Paul’s teaching, so we need to take a closer look at what James is saying.

Listen to this recording to learn more! And do leave your comments below.

What is Church?

Following a discussion with a learned friend recently, it became painfully apparent that my personal definition of “Church” was quite different from his.  He challenged me to explore this further, particularly to look at the New Testament to see Biblical evidence of Church.  This document is an analysis of this research, which will hopefully point me towards a Biblical definition that is also culturally relevant and contextual for today.

Personal opinions matter

Since this exploration started with a difference of opinion, I thought it would be worth asking a few more people for their opinions too, to gather as broad a range as possible.  The answers were not intended to be scientific or cleverly thought out, and most people I asked were not given much chance to craft their responses, and that was quite deliberate; what I wanted was people’s gut feel, their immediate impression, a summary of what was most important to them.

Those with theological training (perhaps unsurprisingly) gave the most Biblically-centred answers.  A common point of reference was Acts 2:42, “They devoted themselves to the apostles’ teaching and to fellowship, to the breaking of bread and to prayer”.  To them, this is Church.

Interestingly, those with a less leadership-oriented perspective came up with very different definitions, centred more around community, family, people, personal experience, and spirituality.  Some highlighted the importance of the mix of believers and unbelievers, showing the importance of mission and being outward focused.  One person quoted Matthew 18:20, where Jesus says “where two or three gather in my name, there am I with them”.  Another had a more timeless understanding of Church, including all believers throughout time and throughout the world, highlighting the nature of the breadth of corporate worship.

As for me, I had my own opinion too.  I instinctively defined Church as the following:

The Church is the body of believers acting as a community within the community to worship and encounter Jesus.

However, as confident as I was of this definition when I first met with my learned friend, I recognised the importance of looking to the Bible first, and using God’s Word to inform my definition, rather than just finding Bible passages that backed up my opinion.

How to use a browser as a kiosk

When it comes to engaging with customers, interactive screens are an important tool to have in your arsenal. They need to be visually attractive, easy to use, and effective at conveying their message, whether that’s providing information or a particular service. For that reason, web applications are a good way of implementing such tools, because they are inherently visual and optimised for on-screen interaction. So how do you go about setting up and securing your kiosk application?

The context

You’ll find interactive screens in lots of places these days. When I visited the Warner Bros Studios last year I noticed they had several touch-screen computers dotted around, enabling visitors to explore some additional information about how they made the Harry Potter films. It was animated, styled like you’d expect a Harry Potter display to look, and was designed to be an engaging way for people to explore, and without needing an extra employee to operate it. It was a self-service kiosk.

I occasionally make kiosk applications for big shows. You know the kind of thing – events taking place at giant exhibition halls, where hundreds of companies rock up with their stands to try to sell you stuff. These days you’ll find many of them using interactive screens to grab the attention of the crowds as they pass, allowing them to engage with their brand in a more touchy-feely way. I tend to make these interfaces using web technologies, simply because they are primarily designed for on-screen interaction.

The problems

To come across as a professional kiosk, it should satisfy these criteria:

  • It should be full-screen, not showing any browser controls.
  • It should not reveal the underlying operating system.
  • It should not allow users to get out of the application.
  • It should not need staff to periodically reset it.
  • It should be completely self-explanatory, and not require a member of staff to explain how to use it.
  • It should respect people’s privacy.

Pressing F11 to enable full-screen mode in the browser is a good start, but it’s clearly not enough.

Opening your application in kiosk mode

All mainstream browsers come with a kiosk mode. The basic principle in all cases is to create a desktop shortcut with a special parameter in the target, and then make sure that shortcut is opened when the computer is started. Here is the process, assuming you’re using Chrome on Windows:

  • Right-click on an existing Chrome shortcut (e.g. in your start menu) and select Send To > Desktop (create shortcut).
  • Right-click on the new shortcut on your desktop and select Properties.
  • In the Target box, add --kiosk to the end, putting in the URL of your web application.
  • Drag the shortcut into the startup folder of your start menu.

You should now find that when you log into the computer it will automatically load up your web application in full-screen mode. Users will not be able to use the back button, see or change the URL, or open a new tab. However, other features will still work, so we’ll need to lock those down too.

Preventing people exiting kiosk mode

If your kiosk uses an external keyboard, you could easily just hit Alt-F4 to close the application, and – bingo – they’ll be looking at the desktop with free reign over pretty much anything. Not great. People could also try to print, save a bookmark, or pretty much anything else that could be done with a keyboard shortcut.

One solution here is to intercept those keypresses using something like AutoHotkey. I won’t go into too much detail here, there are plenty of resources on their website to point you in the right direction. But, essentially, you’ll want to create a little script to detect when certain combinations of keys are pressed, and do absolutely nothing with them. It will be as if those keys haven’t been pressed at all, which means that the browser/computer won’t do anything. Depending on what browser you’re using, you may have different shortcuts to intercept, so it might be worth looking up a list of keyboard shortcuts that browser uses, and intercept all of them. Don’t forget to also catch any operating system shortcuts, so anything including the Windows key or function keys. You basically only want people pressing the letter and number keys.

Another option is to use a touch-screen computer instead, and not give people access to a keyboard at all. You’ll want to deactivate any operating system gestures though. And if you want to accept user input, you may want to consider using an on-screen keyboard. I wouldn’t rely on the operating system’s built-in on-screen keyboard, because that typically gives people access to the whole keyboard, which means you’ll need to catch them with AutoHotkey. A good alternative option is jQBTK (jQuery Bootstrap Touch Keyboard), which is a little jQuery plugin that generates a keyboard using Bootstrap components, making it easy to integrate and easy to style too. It’s a shameless plug, admittedly, because I wrote that particular script! But I haven’t come across anything better yet.

Application design

There are some things to remember when actually building your web application, too. For starters, be aware of your screen resolution, because you may not want people to be scrolling like they might on a normal web page. Because you know the size of the viewport, you don’t necessarily need to worry about responsive design or even browser compatibility – as long as it works on your kiosk machine, that’s all that matters.

Here are some other brief pointers to keep in mind:

  • Don’t include links to other websites.
  • Make sure the controls are a suitable size.
  • Make sure it’s really REALLY obvious how to use it.
  • Test it beforehand, ideally with someone who has never seen it before.
  • Think about error messages – are you happy for them to appear in operating system default windows, or would it be better to have it consistently styled within your app?
  • Include time-outs, so that if someone leaves your kiosk half-way through it will automatically reset itself after a certain delay, ready for the next person. But make sure it doesn’t reset while people are still using it!

Security and privacy

Beyond stopping people from exiting your app or doing unexpected things with it, there are other security-related things to bear in mind. Since you’re not revealing the URL, you probably* don’t need to worry too much about the usual XSS or SQL-injection concerns you might have on a ‘proper’ website. But remember that people will be using your web app in a public space – do they want their actions to be visible by other people?

An example would be any sort of data collection. If you’re asking people to enter their name, email address, or indeed any personal information into your app, they will be hesitant if they think the person behind them in the queue can see what they’re putting in. So think about the size of your form elements – keep them big enough to be easily visible by the person using it, but not big enough that other people around would be able to read it.

Also remember to set autocomplete="false" on your HTML inputs, so that the browser doesn’t try to put in details that someone else has already submitted!

Finally, NEVER ask people to log in on a public screen. Imagine the havoc that could be caused if someone logged in and then forgot to log out again. Depending on the context, there may be ways of doing it, if you’re really careful. But unless it’s absolutely critical I would avoid it completely.

* Actually, you should ALWAYS think about XSS and SQL-injection. It’s good practice, even if you never expect it to be a problem in your context. You don’t want some clever-clogs coming along and manually entering something in your email form that wipes all your data.

Final remarks

Anything I’ve missed? I’m sure there must be. Do let me know in the comments whether there are any other best practices you would employ when building a kiosk app.

Sermon: Jesus, King of sinners

In my latest sermon, preached on 22 January 2017 at St Aldhelm’s Doulting, we look at Mark 1:40 – 2:17. We read about the leper Jesus healed, the paralysed man who was lowered through the roof, and the calling of Levi.


Donald Trump has been inaugurated as President of the US, and the UK is mid-Brexit, leaving many wondering whether this is a kingdom they want to be part of. Jesus’s kingdom is different, though – it’s full of sinners like you and me. No sin can exclude you. But Jesus also wants us to change, to become more like him. Ultimately, our eternal life must take priority over our earthly life – that’s not to say our earthly life is unimportant, but rather that it’s a matter of priorities. Lord, your kingdom come.

Also, apologies that the audio goes rather quiet for a bit towards the beginning, I had to step away from the mic to hand things to some kids!

2 Peter 1:1-11 – A chain of support

In this, the first in a series of personaly Bible studies in the book of 2 Peter, we begin with a list of qualities that Peter encourages his readers to have, chained together one after the other. I figured it might be interesting to examine what the connection is between these qualities, and how they support each other.

“You must make every effort to support your faith with goodness, and goodness with knowledge, and knowledge with self-control, and self-control with endurance, and endurance with godliness, and godliness with mutual affection, and mutual affection with love.” 2 Peter 1:5-7

But before we get into that, a note about context. This is a letter, and follows the usual pattern for letters of that time. Peter introduces himself and states who he’s writing to, and then gives a bit of a general introduction to the letter before diving into the real meaty stuff. So this first passage probably isn’t what the rest of the letter is going to be about, but serves to encourage his readers to keep reading. That said, it seems very deliberate, so I don’t think we can just pass it off as introductory waffle – it deserves careful analysis. Peter won’t have linked together qualities like this without thinking about it first.

Faith supported by goodness

Faith is what differentiates believers from non-believers. Faith in Jesus is our personal acceptance of Jesus’s gift of forgiveness. It’s more than just accepting something is true, it’s trusting in it even though it’s more wonderful and more mysterious than we could ever understand. But, it would seem, faith on its own can be fragile.

I can remember being a teenager, and struggling a little with faith. All my life I had been taken to church, and I knew all the right answers, and believed in God, and had faith in Jesus’s promise of salvation. But it very rarely seemed to affect my daily life. I would go to school, do my work, have a laugh with my friends, come home, go to bed. Faith didn’t seem particularly relevant all the time. If I’m honest, that’s still true today, to a certain extent, only I’ve swapped school for work!

What Peter is telling us here is that our unquantifiable faith needs to show itself practically as well. It needs to be more than just a warm, comfy feeling on the inside. It needs to go beyond just an inward acceptance of Jesus. Goodness is something other people can see and experience, and it is by definition something active – goodness is ‘done’ to others. If we want our faith to have an impact on our daily life, it needs to be backed up by acts of goodness. It’s no good believing one thing and then doing another. Our faith needs to show itself through our actions, and actively being ‘good’ can strengthen the faith that prompted it.

Goodness supported by knowledge

What is ‘good’, anyway? In today’s age of post-modernity, anything goes, right? What’s right and true for me isn’t necessarily right and true for everyone. And given that Peter was talking about it nearly two thousand years ago, I’m betting this isn’t as new a problem as we might like to think. Goodness is contextual as well, which complicates matters further – what seems right today might be wrong tomorrow. Code that I wrote a few years ago may well have been perfectly accurate and fine at the time, but if I was writing it again today I’d probably do it differently. Words of advice that I gave last year might have been great at the time, but if I said the same thing today I’d get punched in the face. Being good it harder than it sounds.

The key, Peter tells us, is knowledge. Our acts of goodness can only be truly good if we know what we’re doing. And that means we need to make a conscious effort to understand the world around us, to keep ourselves informed, to listen to what people are saying. It’s only by understanding the need that we can work goodness into it.

Knowledge supported by self-control

I’m reminded of Solomon, here. Remember that time when two women came to him claiming a baby was theirs? Solomon’s knowledge of mothers, interpreted through the filter of wisdom, led him to a solution – cut the baby in half, and each woman could have half the baby. But it was self-control that stopped him from actually enacting that solution. He could have made the proclamation as king and had the baby chopped up, to make the point more clearly. But knowledge itself isn’t everything.

I think ego comes into this as well, to an extent. I love to learn new things, and I have to admit there are times when I’ll act as if I know the answer even if I don’t, because I like the feeling of knowing stuff. Sometimes I need to remind myself to keep some self-control, to know when sharing my ‘knowledge’ is useful, and when it might be better to keep quiet! Knowledge without self-control has the potential to be quite damaging.

Self-control supported by endurance

We’re in the middle of the list now, and it’s feeling a little more tenuous, as if Peter is trying desperately to steer his way through these qualities to end up at the right point! Nonetheless, there is something to learn from this connection. Self-control isn’t easy. As a musician, it’s wonderful to be able to hear myself, to hear the contribution that I’m making to the band/orchestra/group I’m playing with. It takes self-control to keep myself humble and not unbalance the whole sound. But it takes endurance to keep that going from start to finish. Endurance means that we can keep that self-control going until its completion. Lacking endurance means that whatever endeavour we were trying to have self-control about would be completely undone.

Endurance supported by godliness

Without this bit, the list of qualities could appear in any self-help book; it’s been about how we can live better lives, be more effective, avoid pitfalls. But what Peter tells us here is that endurance needs to be bolstered by godliness – being like Jesus.

The trouble with endurance is that it’s hard work. Ask any marathon runner and they’ll tell you that you have to push through the pain, drawing on reserves of strength and energy deep within you, to last until the end. But endurance isn’t just about sport. Endurance means staying patient with people even though they wind you up time after time. Endurance means sticking to your principles when you’re being told to do something that isn’t right. But perfect endurance demands more from us than we can give. And this is why being Christ-like is so important.

Jesus, part of the Trinity of Father, Son and Holy Spirit, never acted on his own. For all that he was the Saviour, he drew his strength from that relationship with the triune God. And it’s that strength that Jesus offers to us, too. The Holy Spirit fills us, guides us, reassures us, and helps us to endure what we wouldn’t otherwise be able to bear. It’s only by submitting to God in humility that we can endure all things.

Godliness supported by mutual affection

You can’t love God and hate your neighbour. That’s something Jesus taught us, and there’s good reason for that. The Pharisees loved God, but that love didn’t extend to the people they were meant to be leading, and that’s one of the reasons Jesus laid into them so often! We should love God, yes, but not at the expense of others. We shouldn’t be so wrapped up in our church commitments that we haven’t got time to have a coffee with a lonely friend. We shouldn’t be so concerned about blogging about a Bible study that we forget to spend the evening with our spouse (note to self: finish this quick and go downstairs…). Other people matter. They matter to God, so they should matter to us too. And if Jesus’s message to the Pharisees is anything to go by, our love for God cannot be complete unless we also love the people around us.

Mutual affection supported by love

Finally, Peter tells us that mere ‘affection’ isn’t enough. Love transforms an acquaintance into a friend. Love transforms idle chit-chat into a meaningful conversation. Love transforms sexual attraction into genuine relationship. Love transforms a little into a lot. We can have a lot of great qualities (see above), but if we don’t have love, it all falls apart. If we want to strengthen our faith, Peter tells us that what we need as our foundation is love.


At the beginning of this post I took an excerpt from the passage, specifically verses 5 to 7. But verse 5 actually starts “For this very reason”. It’s linked to the verses before, where it talks about how Jesus brought us into relationship with God, and has promised us eternal life. That’s what all this is about – eternal life. We know that faith is needed for us to be saved, but through this chain of supporting characteristics Peter reminds us that faith is only possible through love. And that’s quite wonderful, because perfect love is found in Jesus himself, bring us nicely back where we started!

Bible study: Acts 28 – The need for God

Some thoughts from my personal Bible study, mainly asking questions of the text and pondering some potential answers.

Why did the Maltese natives think Paul was a god?

This has to be one of my favourite bits of the Bible. Paul is shipwrecked off the coast of Malta, but survives. Then he gets bitten by a snake, so the natives assume he must be a murderer, and fate has not allowed him to survive after all. But Paul suffers no ill effects, so they assume instead that he must be a god. Now that’s what I call a change of direction!

It’s all too easy to jump to conclusions, isn’t it? Even in today’s age, where information is everywhere and the internet provides us with more data than we know what to do with, we still rely so heavily on gut instinct and presumption. We conclude before we have all the facts needed to properly form the conclusion. We judge people before we know them. We condemn people’s actions before we hear the full story. I’m reminded of the various celebrities and important people who have been accused of sexual assault in recent years, some of whom have turned out to be completely innocent. We see the headline, but we don’t read the full article to find out what actually happened. This passage in Acts is a good reminder to take time to form our opinions, and not to rush into a conclusion too soon.

But there’s something deeper, too. These Maltese natives had a concept of God. And in fact most places on earth do, whether they’ve been in contact with the rest of the world or not. No matter how advanced or primitive a society is, they will have a faith structure of some sort. It’s hard-wired into our very being, a God-space in each of us. Some of us try to fill that need with earthly things, but ultimately only God can fill a God-shaped hole.

What happened to all the other Apostles?

We’re at the end of Acts now. Last chapter. The end of the story of the Acts of the Apostles. But wait – what happened to the rest of them? It started off with the Eleven, who became the Twelve (again), and then Paul came on the scene as well, and then the Twelve were forgotten in the wake of all the other faithful believers doing great stuff, and then we ended up just following Paul. The book ends with Paul in house-arrest in Rome. Hardly an ending at all. Where is everyone else?

In fact, this is the last chronological account in the New Testament; the rest are letters (apart from Revelation, which is kind of in a category of its own). Thankfully, we can piece some of the rest of the story together from those letters, along with what we learn in other historical documents of the time, other letters and gospels that are not included in the official canon, and generally-accepted stories passed down by tradition (and that last one is understandably the most contentious of the lot). We know that all the Apostles died, in various ways, most of them killed for proclaiming the Gospel of Jesus. We know that the other believers scattered through the region all went on believing, and spreading the message of Jesus, and that his followers are still doing that today in every corner of the world. So, in some ways, there is technically no ‘right’ place to finish the book of the Acts of the Apostles, because that story is still being written today. Right now, I’m writing this blog article; that could arguably be in Acts too. It’s a story that includes all of us. No one is too obscure, or too unimportant, or too [insert adjective here] to appear in the story. And that’s what makes the book of Acts so fantastic – it’s OUR story. Yes, it had to have an end, picked somewhat arbitrarily perhaps, because otherwise it would be the longest book in history and impossible to print. But the story it tells includes you. It’s not just the Acts of the Apostles, but the Acts of the Believers around the world and throughout history. It’s the ongoing story of how the amazing message of grace is passed from person to person, embracing people with love and drawing them into relationship with God. And that’s a story worth being part of.