Matthew Somerville
Buying a Daytripper Family Plus ticket
2025 in review
A Twitter to voice bot
Converting a 415 page PDF of Birmingham Secondary School Admissions
Playing Wonderland in 800x600
In the Night Garden, epic version
Bots finding adlegem.dracos.co.uk
A Scottish Grand Tour by public transport
Reading legislation.gov.uk on mobile
How, in 2025, to put music and podcasts on an MP3 player
Advent of Code 2024, day 7 - Perl walkthrough
Solving the 4D Sudoku cube
Use-ing SVGs with inline style blocks
Adding view transitions to traintimes.org.uk
2023 in review
Searchable transcripts of the Post Office Horizon IT Inquiry hearings
Using the CSS :has selector for conditional questions
List of vegetarian Walls ice creams
On the naming of stations
My eInk dashboard
A-puzzle-a-day solutions for January
Local lockdown lookup
Cross-border postcodes
Using Catlight with GitHub Actions
The journey of my Wondermark book
Looking at coronavirus.data.gov.uk
Perl weekly challenge 56
Prague by train
2019 in review
My ethical investment strategy
My Windows Subsystem for Linux setup
Travis status in my menu bar
CSS end of page colour
Viagogo Please Wait pages
CSS-only multiple choice quizzing
traintimes.org.uk performance notes
FixMyStreet 2.0 JavaScript performance
Photo upload and progressive enhancement for FixMyStreet
Using Django’s StreamingHTTPResponse for JSON & HTML
Bad Bank Holidays
Technical look at the new FixMyStreet maps
JavaScript internationalisation, or why Rudolph is more than just a shiny nose
The myths of England’s “absurd laws”
List of vegetarian Mars products