Request a demo

Blog posts by Matthew Somerville

Return to latest posts

Team post: Two days at Open Data Camp

At SocietyWorks we believe in transparency. One of the ways we live this value is by working in the open, and giving our team members space on our blog to write about what they’re working on, something they’re interested in or even perhaps a mistake or challenge they’ve learned from.

In this blog post our Head of Development, Matthew Somerville, writes about his experience attending the Open Data Camp 9 unconference in Manchester on 6 and 7 July 2024.

Last weekend, I went to the Open Data Camp 9 unconference in Manchester. I hadn’t been to an Open Data Camp before; it was very well organised, with good food, lots of volunteers, a creche, people from Drawnalism making lovely pictorial summaries of many of the sessions (see the website link above, and I’ll embed some from the sessions I went to below so you can see how amazing they are), they organised accommodation (if you needed it), and more.

For those who might not know what is meant by “open data”, there was a session about that – there’s a really good summary in the session notes at Open Data 101: Open Day for Newbies (2024 edition). The definition given there is: “Open data is data that can be freely used, reused and redistributed by anyone, subject at most only to the requirement to attribute and share alike.”

Here at mySociety and SocietyWorks, we use, reuse, and publish a lot of open data. For example, MapIt is based on open data, as is FixMyStreet and FixMyStreet Pro. TheyWorkForYou is repurposing open data into a slightly better format and WhatDoTheyKnow also includes a lot of open data.

A photo of a green lego map of the UK with multicoloured lego bricks placed in various locations to show where people had come from to the event
A lego board at the event showed where attendees had come from

The venue was the Engineering building of the University of Manchester, which was round the corner from where I went to school (more on that later), and perfectly designed for an unconference, with four separate rooms all coming off a central hub room for food/ drinks/ chats. They had a Lego board to show where people had come from, and a pile of old out-of-copyright Manchester maps.

At this unconference, the pitches were ideas that people wanted to talk about and discuss as a group with interested others – I was happy just to see what came up and hopefully have some interesting conversations.

Day one

A drawing summary of the pitches on day 1 at Open Data Camp by Drawnalism
A drawing summary of the pitches on day 1 at Open Data Camp by Drawnalism

In the morning, I first went to a talk about deleting data and having too much data, which was a broad look at the costs of maintenance and APIs vs datasets. I raised the idea of it being much easier to maintain/look after if the open data is embedded within the processes of that data (e.g. your street light asset management system leading directly to the publication of that street light data, not requiring a special export to a special open data platform that could be subject to the vagaries of the current postholders). Following this I attended a discussion about the digital/data priorities of the first 100 days of the new Labour government.

A drawing summary of a session on open data and the new Labour government by Drawnalism

In the afternoon, I went to a session about data on elected officials / elections by Open Data Manchester, who had made e.g. a poster of deprivation vs representation, and were looking at doing more with councillor information and data. I contributed some info on how TheyWorkForYou and WriteToThem works, our combined IMD dataset, and the popolo standard for representative data.

Then it was over to Owen Boswarva’s session on the campaign/case for open addresses. This has always been a topic dear and core to us; WriteToThem and TheyWorkForYou cannot provide accurate answers for every single postcode due to the lack of open address data. I/we were well-known by everyone there, and it was a look at the current situation and what could be done to push this forward. The new government is of course one possibility, and the new Business & Trade Minister (in charge of Royal Mail, if not Ordnance Survey) has met with people on this exact topic.

A drawing summary of a session on open addresses by Drawnalism

The last session I went to on the first day was about web scraping, open data, and ethics. Lot of self-awareness at this, looking at my and our history with TheyWorkForYou, Mapumental, traintimes, Theatricalia, someone else’s project on scraping Warm Spaces locations, and what differences are there in terms of ethicalness and behaviour.

Day two

A drawing summary of the pitches on day 2 of Open Data Camp by Drawnalism

Day two, after catching the same bus I used to catch as a kid to school (ever so slightly more expensive now), I went to a session by two people from Raileasy, wanting to talk about open data success stories in public transport. Lots of good chat about train data, bus data and the pros and cons of decentralisation.

Being that it’s a phrase we use often here at SocietyWorks when talking about what we help local authorities with, I couldn’t not go to a session called “Closing the feedback loop” by someone from Open Data Scotland discussing how do/can producers of open data be made aware of how their data is used; e.g. in the government case, generally so they know they shouldn’t just turn it off (though turning it off does bring people out of the woodwork, certainly!). Other possibilities discussed included asking for an email as ‘payment’ for getting the data, and in order to get notified of updates or deletions; or having a place to show/link to examples of how that specific data is used.

After lunch, the organisers ran a “go outside and explore” session to try and notice things you might not normally notice, with an animal avatar. I wanted to go back and see my old school, so I co-opted the octopus group to do this, and we had a nice walk around the area (which again, is quite changed from the 1990s and the Crescents), finding a wildflower meadow while we discussed open data.

Lastly, I went to data horror and data joy stories, where you can probably imagine some of the things talked about – one thing I mentioned was the opening up of Bank Holiday data in an official GOV.UK JSON file, which meant I could submit a Pull Request on GitHub when there was a mistake, and from there find out that Scotland had forgotten to create a Bank Holiday in 2010 and 2011

Other sessions I didn’t go to, but would have liked to…

And probably more – do take a quick look through their blog.

That’s it! Thanks for having me, Open Data Camp!


Customisable waste container images for WasteWorks

At SocietyWorks we believe in transparency. One of the ways we live this value is by working in the open, and giving our team members space on our blog to write about what they’re working on, something they’re interested in or even perhaps a mistake or challenge they’ve learned from.

In this blog post our Head of Development, Matthew Somerville, writes about a new waste container generator for our WasteWorks solution which uses CSS to make it easier to generate waste images tailored to individual councils’ branding and bin types.

WasteWorks is in use by a number of different councils, all of which have their own types of bin, in various colours and sizes (you can see a large array of photos of bins in use by local councils at the lovely govbins.uk site). An image of each type of bin associated with a property is displayed to residents from the WasteWorks homepage.

Screenshot of the homepage of WasteWorks, which shows different types of collections and the associated waste container
Example of WasteWorks’ homepage showing different types of collections and the associated waste container

Our designer Lucas came up with some nice simple iconography for us to use on bin day pages, including domestic wheelie bins, communal bins, sacks and boxes. When we’ve had a new client, whose bins are differently coloured to any previous council, Lucas has been providing us with new PNG images to match the bins the council uses, exported from the source vector images. As well as the right colours, each PNG had to be provided at two different sizes, to work with high-resolution displays, and so we’ve built up a small collection of such bin images over the years.

These pictures only vary by colour (and the presence of a recycling logo), so I wondered if there was a better way we could generate these images. SVGs are vector graphics – they scale to any resolution, and importantly for this can be styled with CSS, the same mechanism used to style a web page. CSS also has “variables”, where you can define e.g. a variable to be a particular colour, and then use that variable in a different part of the document (or SVG image).

On the right hand side a blue waste box, on the right a communal container. Both have an option to change the colour using a colour picker.
Users can customise the colour of waste container images to be used on the WasteWorks homepage using the generator

Lucas and I worked together to come up with SVGs for the various containers, which instead of specifying any fill colours directly, used one or more CSS variables to specify the colours. For the recycling logo, we set a variable for the opacity of the logo – defaulting to 0, so invisible, but we can set it to 1 to have it appear.

We’ve added a page to our user manual where you can play around with the colour of our new bin images in real time:
https://www.societyworks.org/manuals/wasteworks/container-picture-generator/ :-)

More technical details

The header of our domestic wheelie bin SVG looks something like this:

<svg class="waste-service-image">
 <style>
  .wheel { fill: #333333; }
  .main { fill: var(--primary-color, var(--default-color)); }
  .lid { fill: var(--lid-color, var(--primary-color, var(--default-color))); }
  .recycling-logo { fill: #ffffff; opacity: var(--recycling-logo, 0); }
 </style>
 ...

See that the CSS uses the var() fallback parameter so that the lid colour will e.g. default to the primary colour if not specified.

We used CSS mix-blend-modes in order to have shadows and highlights that would work regardless of the colour they were placed on top of; here’s an example shadow:

<g style="mix-blend-mode:multiply" opacity="0.12">
  <path fill="black" d="M95.1227 90.7581L120.495 681.301H79.3654L50.9626 90.7581H95.1227Z">
</g>

Then when we embed an SVG in someone’s bin day page, the web page itself, outside the image, can specify what colour to use by setting the corresponding CSS variable, and the picture will then appear in the right colours. When we have a new bin colour, we don’t need to create a new image, only set the right colour.

Here’s the outline of an SVG on a bin day page, for a grey bin with a blue lid, showing the recycling logo:

<span style="--primary-color: #767472; --lid-color: #00A6D2; --recycling-logo: 1;">
 <svg class="waste-service-image">
  <style>
   [... style as above ...]
  </style>
  [...]
 </svg>
</span>

Schedule your one-to-one demo

Request a demo