In 2017 I worked at mySociety three full days a week, plus various nap times adding up to another day. Working remotely with a small child is a boon for which I am very grateful.

Cities visited 4

Bristol, Leeds, London, and Oxford.

Justified git commits 54

Take joy where you can find it! See a full list.

My work this year included adding paid subscriptions and spreadsheet data mapping to MapIt, adding text verification to the FixMyStreet Platform, and working closely with Oxfordshire County Council as they use FixMyStreet Pro internally (including offline support with appcache). I’m also quite proud of getting FixMyStreet to 99% on Google Page Speed.

Happy birthday

FixMyStreet was ten this year, and also made its millionth report. I wrote the original version (called Neighbourhood Fix-It for the first few months), and I’m pleased that it has lasted this long, and for all that time has had a slippy map that works just fine without JavaScript ;)

Keeping up to date

One tiny thing I wrote that I quite like was a GitHub commit status webhook, that checks whether a pull request contains a changelog entry (and a migration if the schema has changed).

Phone numbers

One aspect of allowing text verification is we have to deal with phone numbers. The UK has it pretty easy – all normal phone numbers start with 0, all mobile numbers start 07, and so on. The strangest country I found in my work was Argentina, where the international mobile number +54 9 11 1234-5678 is the same as the national mobile number 011 15-1234-5678. Unless you’re texting that number from abroad when you should probably drop the “9”…

Google maintain a library, libphonenumber, which codifies every country’s handling of telephone numbers as best it can; I assume this is inside Android for dealing with the display of phone numbers everywhere. There is a Perl library which uses that data for parsing/formatting, Number::Phone, which made my job much easier. I submitted a number of pull requests upstream, fixing some bugs and adding some new features around the display of national numbers.