Chris Roos by Chris Roos

Week 484

James took an impromptu week off having seen the favourable weather forecast at the end of last week.

Ben, Chris and I moved into a larger 6-person office at Ministry of Startups on Monday, and have spent the week working on a project for BBC R&D.

We’ve got some availability in the near future so please get in touch if you have a project you think we can work together on.


BBC R&D have developed a story editor and engine that allows them to create voice controlled stories (e.g. The Inspection Chamber) to run on multiple devices. They’ve asked us to explore how these stories might use information from arbitrary external services in order to make them feel more dynamic, and to come up with some demos of how this might be used.

We spent a while familiarising ourselves with the code before getting our hands dirty with some changes. Fortunately this familiarisation didn’t take too long after we’ve spent the past couple of weeks exploring and playing with voice controlled devices.

The story editor already includes the ability to branch a story based on the result of executing some arbitrary JavaScript code. We started by overloading this to return the response from an HTTP request if the code to execute looks like a URL. This allowed us to get something working without having to make changes to both the editor and the engine, and it revealed that we needed to make the engine asynchronous so that we could wait for the response from the external service. Ben updated the engine to make it use Promises all the way through while Chris and I paired on deploying the engine to AWS and hooking it all up so that we could interact with a story using the Alexa Developer console.

We’ve finished the week with a simple game of Heads or Tails, authored in the story editor and running on a version of the engine that we’ve deployed to Lambda. The game asks you to choose heads or tails, makes a request to a web service that randomly chooses heads or tails and then lets you know whether you’ve won. It’s very simple but it gives us a good foundation to build on in order to create some more interesting demos.

Until next time.

– Chris

If you have any feedback on this article, please get in touch!

Historical comments can be found here.