This is a song about how we create the world and the world creates us in turn.

Our brains construct an experience of the world around us, filtered through our own personal expectations and subconscious desires and beliefs. To a certain extent, who we think we are is an illusion and everyone who knows us, including ourselves, is experiencing someone quite different. Perhaps our subconscious world of dreams and sleepwalking is closer to the real us than our waking imaginations!

This song is about trying to navigate our experience of the world, trying to figure out what's real and what's not, and making the best of what comes our way.


The importance of beauty

Beauty is essential. It is never a trade-off. Make the most of beauty and never sacrifice it at the altar of expediency. It is too high a price.

Add nothing ugly. Do not accept any existing ugliness as fixed. Remove and change it if possible, otherwise modify or screen it.

Monty Don Down to Earth, p.32

Algarve 2017

Faro Train Station

Tavira Sunset

Tavira Tiles

Helen taking pictures of Tavira tiles

Cabanas de Tavira

Cabanas de Tavira

Praia Verde Modernist Village

Apartment in Praia Verde

View from our room at the Praia Verde Boutique Hotel

Starting Small

Another quotation from E.F. Schumacher, this time taken from a BBC Radio 4 programme Is Small the Next Big? His book, Small is Beautiful (Economics as if People Mattered), is jam-packed full of interesting ideas, and highly recommended.

It’s quite astonishing how many people are asking, “what can I do to save the world?—I am so small!” … Everything new starts very, very small, normally in a very dark place.

E.F. Schumacher Is Small the Next Big?

Wisdom in Smallness

Small-scale operations, no matter how numerous, are always less likely to be harmful to the natural environment than large-scale ones, simply because their force is small in relation to the recuperative forces of nature. There is wisdom in smallness if only on the account of the smallness and patchiness of human knowledge, which relies on experiment far more than understanding. The greatest danger invariably arises from the ruthless application, on a vast scale, of partial knowledge such as we are currently witnessing in the application of nuclear energy, of the new chemistry in agriculture, of transportation technology, and countless other things. E.F. Schumacher Small is Beautiful 1974, p.29

Photographs of Seats


Guildford Train Station, 2005


Connex/South Eastern, 2006


Willesden Green, 2007


Switzerland, 2007


Oban to Mull Ferry, 2007


Isle of Gigha Ferry, 2009


Fortress Studios London, 2010


New York Subway, 2010


North Finchley, 2016


Quite a few of the places I've lived in over the last decade have been right next to a train track.

In my second year at university, my bedroom was pretty much in contact with a railway bridge. I can remember trying to churn out words on an essay as the first train went past, reminding me that I’d worked through to 6am 😫


Guildford, May 2006. It's not the clearest photo (as it has been exposed twice) but you can make out the corner of the house in the top right, and the wall of the bridge running along the length.

My flat in Willesden Green had the Jubilee Line running above ground at the end of the garden:


Willesden Green, Jubilee Line, August 2006.

The scene above, taken 10 years ago, is remarkably similar to the situation in my current flat:


East Finchley, Northern Line, August 2016.

Anyway a few weeks back, just as I was heading to bed, a train pulled up at the end of the garden and stopped. I could just make out the voice of the driver over the tannoy. Perhaps I was the only one listening—the train seemed pretty empty.

R0000414.jpg R0000415.jpg R0000410.jpg

Conway’s Game of Life with Redux + Canvas

Animation of Conway’s Game of Life

In the past few weeks I’ve been doing a fair bit of work with Redux, a library which helps manage data and state in JavaScript applications. There’s an emphasis on functional programming and immutable data, which takes a little getting used to, but it does feel like a suitable approach—particularly for implementing Conway’s Game of Life…

each generation is a pure function of the preceding one

Conway’s Game of Life on Wikipedia

This fits nicely with Redux’s concept of “reducers”, which take in the current state and an “action”, and return a new state.

The app state is just the grid: an array of arrays containing cell values (1s and 0s). There is just a single action, a 'TICK', and when a 'TICK' is dispatched, the grid reducer generates a new grid based on the current grid:

function grid (state, action) {
  if (typeof state === 'undefined') return randomGrid()

  switch (action.type) {
    case 'TICK':
      return nextGrid(state)
      return state

function nextGrid (grid) {
  return grid.reduce(function (nextGrid, currentRow, y) {
    var newRow = currentRow.map(function (value, x) {
      return nextValue(x, y, value, grid)


    return nextGrid
  }, [])

The grid values for the next tick are computed based on the neighbouring values (as per the rules):

function nextValue (x, y, value, grid) {
  var neighbours = neighboursOf(x, y, grid)

  var livingNeighbours = neighbours.filter(function (value) {
    return !!value

  return +willLive(value, livingNeighbours)

function willLive (value, livingNeighbours) {
  return value
    ? livingNeighbours === 2 || livingNeighbours === 3
    : livingNeighbours === 3

function neighboursOf (x, y, grid) {
  return [
    [-1, -1], [0, -1], [1, -1],
    [-1,  0], /*x,y*/  [1,  0],
    [-1,  1], [0,  1], [1,  1]
  ].map(function (coords) {
    return valueAt(x + coords[0], y + coords[1], grid)

function valueAt (x, y, grid) { return grid[y] && grid[y][x] }

The render function redraws the state on a <canvas> whenever it changes, and a 'TICK' is dispatched every 100ms to generate the next state:

var store = Redux.createStore(grid)


setInterval(function () {
  store.dispatch({ type: 'TICK' })
}, 100)

I’m sure this could be improved, but it feels like a pretty nice solution.

See it in action: Conway’s Game of Life with Redux and Canvas, and view the full source.

Hat tip to Alan R. Soares. I had a peak at his implementation with React and refined my willLive function a based on it.

February 2016 Playlist

Advice to Young Girls by Inga Copeland (w/Actress)

Discovered this via CTM’s Recommended Listening feature.

Perth by Beirut

I got a DAB radio for my birthday, so I’ve been listening to the radio a lot more. This catchy tune caught my ear. Their latest album is pretty good too.

Amerika by Liima

New from the Efterklang + Finnish percussionist Tatu Rönkkö.

Zap by Vinny Villbass

Heard this at the Ja Ja Ja London Club Night. The 90s house-y synth section in the middle is madness!

Because by Smerz

Smerz headlined at the Ja Ja Ja club night and were really great live. Can’t wait to hear more stuff from them.



East Finchley, London. January 2016.

View more posts in the archive