Posts and snippets, by year

Showing everything matching: clear


Geodesy Search Engine

15 May 2020
vuejs python maps openlayers google app engine

I’ve built a new hobby project. Geodesy is a quick spatial search engine for the EPSG Geodetic Parameter Registry -


Running Laravel on Google App Engine

30 Jul 2019
vuejs laravel php maps openlayers google app engine

I recently deployed GNR Comparo. It’s built with Laravel on Google App Engine. Here’s some notes about my experience deploying this stack.


GNR Comparo

29 Jul 2019
vuejs laravel php maps openlayers google app engine

Compare your run with the Great North Run! See how far through you got. Which of your local landmarks match up to iconic things on the route? Maybe passing the corner shop is like crossing the Tyne Bridge? This app was built to help the Team 40x40 runners train and raise money for the GNR 2019.


Photo Stories

10 Jul 2019

I’ve been using 500px as a showcase of some of my favourite photos. I do like it, but was looking for a bit more control over layout and photo organisation. I was also looking around for a way to mix photos with maps from Simon Likes Maps for photo sets arising from trips where I’ve been on tour somewhere.

I recently tried out Exposure and really liked it - check out the resulting stories here.


Simon Likes Maps Android App

10 Jan 2018
maps android offline simon likes maps

I’ve recently finished an Android app for Simon Likes Maps, which lets you take your routes offline for navigation. This does not appear in SLM’s own release notes (it did not need a release of the web code!) so here’s a quick post to mark the occasion.


Jekyll and Bootstrap 4 Theme

13 Oct 2017
jekyll theme bootstrap

I’ve upgraded this site to the latest version of Jekyll and also updated it to use Bootstrap 4. In 2017, there were not many Bootstrap 4 themes out there. I created one from scratch and out the results on GitHub for others to use.


OL3 Feature Hovering

16 Mar 2016
openlayers maps

This post demonstrates hovering over features on a map and setting their borders to blue. Basically this repurposes the OL3 Box Selection Demo to use an ol3.interaction.Select interaction instead of click/drag box interactions. There’s some notes at the bottom about using map.on('pointermove') for an alternative way of doing it.


Add an Image to an OL3 Map

06 Mar 2016
openlayers maps

This post demonstrates adding an icon image to an OL3 map.


OL3 and CAMS

23 Feb 2016
openlayers maps

This post demonstrates integrating the ECMWF public CAMS WMS products with Open Layers 3.


Confluence TOC Macro Bug

14 Jan 2016
wiki confluence

I’ve just been doing some customisation on the Confluence wiki, and ran into a bug while using the old Documentation theme. I hacked this JavaScript to create a fix that works for me. It needs to go in the Custom HTML, in the ‘end of Body’ section.


Gradient Highlighting for your Routes

10 Mar 2015
simon likes maps maps

One of the reasons I work on Simon Likes Maps] is that I can add features I want that are not readily elsewhere. One of these is gradient highlighting for steep routes. This is especially useful for route planning in avalanche terrain.


Google App Engine HTTP Auth

04 Nov 2014
python google app engine

Google App Engine can serve static content as well as apps, which makes it a handy place to run sites like this one powered by Jekyll (more info here). But familiar features from other webservers are missing and need reinventing, such as default directory indexes and HTTP Basic Auth. Here’s some info about how to add Basic Auth.


Simon Likes Maps

30 May 2014
simon likes maps maps openlayers knockoutjs javascript

Simon Likes Maps is an ongoing hobby project started in 2014. It is designed to solve a really simple thing: draw a line on a British Ordnance Survey map and then share it with someone as an idea for a walk, bike or run, but it’s grown a lot since 2014.


Django Class Based Views

20 Sep 2011
django uml python

This might be a bit out of date now, but in 2011 I was was working with Django a lot and one of the arguments I heard against using Django’s then new-ish class-based views was poor docs.

I wrote a Python scripts to traverse the CBVs and produce a Yuml output. I think yuml uses GraphViz to produce its final output, so essentially this is a shortcut to running GraphViz over CBV, thanks to Yuml.