<?xml version="1.0" encoding="UTF-8"?><rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:admin="http://webns.net/mvcb/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
<channel rdf:about="https://blog.ldodds.com">
	<title>Lost Boy</title>
	<link>https://blog.ldodds.com</link>
	<description>The blog of @ldodds</description>
	<dc:date>2025-09-12T10:24:04Z	</dc:date>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
	<admin:generatorAgent rdf:resource="http://wordpress.com/" />
	<items>
		<rdf:Seq>
					<rdf:li rdf:resource="https://blog.ldodds.com/2025/09/12/a-non-digital-service-example-of-working-in-the-open/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2025/03/26/calculating-carbon-emissions-for-energy-data-in-the-uk/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2025/03/08/ai-ready-data-is-the-wrong-framing/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2025/03/01/falsehoods-this-programmer-believed-about-energy-meters/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2025/02/24/falsehoods-this-programmer-believed-about-half-hourly-energy-data/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2025/02/21/a-quick-review-of-the-8bitdo-mechanical-keyboard/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2025/02/09/reflecting-on-2024/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2024/11/01/what-does-community-driven-data-governance-look-like/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2024/10/19/comments-on-a-data-for-ai-taxonomy/"/>
					<rdf:li rdf:resource="https://blog.ldodds.com/2024/10/03/how-to-accidentally-ddos-yourself/"/>
				</rdf:Seq>
	</items>
</channel>
<item rdf:about="https://blog.ldodds.com/2025/09/12/a-non-digital-service-example-of-working-in-the-open/">
	<title>A non-digital service example of working in the open</title>
	<link>https://blog.ldodds.com/2025/09/12/a-non-digital-service-example-of-working-in-the-open/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2025-09-12T10:24:04Z</dc:date>
			<dc:subject><![CDATA[Open Data]]></dc:subject>
		<dc:subject><![CDATA[Open Source]]></dc:subject>
		<dc:subject><![CDATA[art]]></dc:subject>
		<dc:subject><![CDATA[artist]]></dc:subject>
		<dc:subject><![CDATA[printmaking]]></dc:subject>

			<description><![CDATA[Matt has recently been blogging and speaking about &#8220;working in the open&#8221; in public service roles. Giles has written a lot about working in the open too, most recently collecting examples of teams who are doing open for different purposes, e.g. for remembering and thinking out loud. I&#8217;ve worked in the open on software and &#8230; <a href="https://blog.ldodds.com/2025/09/12/a-non-digital-service-example-of-working-in-the-open/" class="more-link">Continue reading <span class="screen-reader-text">A non-digital service example of working in the&#160;open</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">Matt has recently been <a href="https://digitalbydefault.com/2025/07/14/make-things-open-the-open-continuum/">blogging</a> and <a href="http://youtube.com/watch?v=Rm8jZJWSvNM">speaking</a> about &#8220;working in the open&#8221; in public service roles. Giles has <a href="https://gilest.org/notes/wito.html">written a lot about working in the open too</a>, most recently collecting <a href="https://gilest.org/doingopen/">examples of teams who are doing open</a> for different purposes, e.g. for remembering and thinking out loud.</p>



<p class="wp-block-paragraph">I&#8217;ve worked in the open on software and data projects and there are similar and different issues to tackle. The driver for &#8220;openness&#8221; might also have different goals. E.g. <a href="https://blog.ldodds.com/2022/06/17/using-a-collaboration-spectrum-alongside-the-data-spectrum/">creating something together</a>.</p>



<p class="wp-block-paragraph">So I always enjoy reading about working in the open in different contexts. There&#8217;s usually something to learn. Even if sometimes that might just be a glimpse at the organisational issues that make it necessary, different or hard.</p>



<p class="wp-block-paragraph">In the spirit of sharing another example of working in the open, from a very different context, I wanted to point to David Bull. He&#8217;s a woodblock print maker based on Japan. You can read a bit about him on <a href="https://en.wikipedia.org/wiki/David_Bull_(craftsman)">his Wikipedia page</a>.</p>



<p class="wp-block-paragraph">I&#8217;m not 100% sure who first pointed out David to me. I think it might have been <a href="https://bsky.app/profile/jackhardinges.bsky.social">Jack</a>. But I&#8217;ve been watching his <a href="https://www.youtube.com/@seseragistudio">YouTube videos</a> and <a href="https://www.twitch.tv/japaneseprintmaking">Twitch streams</a> for around five years now. I think the craft, art and process around Japanese woodblock printmaking is <em>fascinating</em>. </p>



<p class="wp-block-paragraph">For this blog post though what I wanted to highlight is the variety of ways in which David is working in the open through his videos, live streams and collaborations:</p>



<ul class="wp-block-list">
<li>He&#8217;s been open about the challenges of growing his business, including recruiting and developing his team of carvers and printers, right down to annual updates on their finances</li>



<li>He&#8217;s openly sharing the process of creating prints for his customers, so they can see behind the scenes at how they&#8217;re being made. (I now own a print that I&#8217;ve watched being carved and printed)</li>



<li>He&#8217;s documenting the craft of carving and printmaking, to allow his community to learn from him and other experts in the field. Including <a href="https://www.youtube.com/watch?v=NZDKIHcJEFw&amp;ab_channel=TheBritishMuseum">a recent project with the British Museum</a>. There&#8217;s a lot of tacit knowledge being shared in his videos </li>



<li>He&#8217;s sharing his knowledge of the history of printmaking, with regular show-and-tells of old prints</li>



<li>Just recently, he&#8217;s started investing in rebuilding a supply chain of good quality paper (&#8220;<em>washi</em>&#8220;). This paper is increasingly difficult to source but necessary for his work. So he&#8217;s being doing an experiment that involves reopening previously closed paper making workshops and supporting other craftspeople. <a href="https://www.youtube.com/watch?v=xUpLl7BZ_JY&amp;ab_channel=DavidBull">All of this is being recorded and shared openly</a></li>
</ul>



<p class="wp-block-paragraph">I think it&#8217;s a great example of working in the open. Just not one that involves creating public services, data or software.</p>



<p class="wp-block-paragraph">I&#8217;m also slightly in awe of the guy. Not just for his skills as a carver and print maker, but as a video maker and software developer. He&#8217;s casually mentioned that he&#8217;s developed all the websites and software used by his shop. </p>



<h2 class="wp-block-heading">Automating the right things</h2>



<p class="wp-block-paragraph">There&#8217;s one other nugget I wanted to share here. It&#8217;s not about working in the open, but about automation. </p>



<p class="wp-block-paragraph">There&#8217;s a lot of laborious process involved in making washi paper. One of the most time consuming involves picking out the impurities (&#8220;<em>chiri</em>&#8220;) from the fibres used to make the paper. This involves working through all of the fibres, by hand, in vats of cold water for hours at a time. </p>



<p class="wp-block-paragraph">David has been talking about trying to automate this in some of his streams. It&#8217;s very time consuming. </p>



<p class="wp-block-paragraph">There&#8217;s <a href="https://youtu.be/nrIFpx0r5lA?si=8ZF2FEYvZ5o8bhcN&amp;t=691">a section in a recent video</a> where he mentioned this idea to the paper maker he&#8217;s working with. It&#8217;s a short section of just a couple of minutes, which I&#8217;d encourage you to watch it.</p>



<p class="wp-block-paragraph">David explains how the paper maker was not interested in automating at all. For her that step is an important part of her craft and the value she was bringing as an artisan. It&#8217;s part of her pride in her work.</p>



<p class="wp-block-paragraph">David then goes on to say he feels the same way about his carving. Why automate something that brings him joy?</p>



<p class="wp-block-paragraph">While we&#8217;re not all artisans, but I think we all bring some craft to our lives. </p>



<p class="wp-block-paragraph">I thought the exchange was interesting, not just as an example of artisans talking about their work. I think it also highlights how people <em>even in adjacent roles in the same process</em>, can have very different perspectives on where the &#8220;inefficiencies&#8221; lie.</p>



<p class="wp-block-paragraph">Probably a lesson somewhere there for digital working too.</p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2025/03/26/calculating-carbon-emissions-for-energy-data-in-the-uk/">
	<title>Calculating carbon emissions for energy data in the UK</title>
	<link>https://blog.ldodds.com/2025/03/26/calculating-carbon-emissions-for-energy-data-in-the-uk/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2025-03-26T19:15:41Z</dc:date>
			<dc:subject><![CDATA[Energy]]></dc:subject>
		<dc:subject><![CDATA[Energy Sparks]]></dc:subject>
		<dc:subject><![CDATA[climate-change]]></dc:subject>
		<dc:subject><![CDATA[environment]]></dc:subject>
		<dc:subject><![CDATA[renewable-energy]]></dc:subject>
		<dc:subject><![CDATA[sustainability]]></dc:subject>

			<description><![CDATA[I&#8217;ve recently been taking a closer look at the Streamlined Energy &#38; Carbon Reporting (SECR) guidelines. While we currently produce figures on CO2 emissions in Energy Sparks we&#8217;re not producing SECR style reports for schools or trusts. This is something we&#8217;re planning to add to the product soon, so I&#8217;ve been looking at what&#8217;s involved &#8230; <a href="https://blog.ldodds.com/2025/03/26/calculating-carbon-emissions-for-energy-data-in-the-uk/" class="more-link">Continue reading <span class="screen-reader-text">Calculating carbon emissions for energy data in the&#160;UK</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">I&#8217;ve recently been taking a closer look at the <a href="https://www.gov.uk/government/publications/environmental-reporting-guidelines-including-mandatory-greenhouse-gas-emissions-reporting-guidance">Streamlined Energy &amp; Carbon Reporting</a> (SECR) guidelines. While we currently produce figures on CO<sub>2</sub> emissions in Energy Sparks we&#8217;re not producing SECR style reports for schools or trusts. This is something we&#8217;re planning to add to the product soon, so I&#8217;ve been looking at what&#8217;s involved and how it&#8217;s different to what we&#8217;re currently doing.</p>



<p class="wp-block-paragraph">I&#8217;m going to drop my notes in here in case useful for anyone else. I&#8217;ll briefly outline how to calculate emissions for SECR and then look at more accurate ways to do it.</p>



<p class="wp-block-paragraph">I&#8217;m not going to summarise SECR itself or look at anything except reporting of emissions for electricity and mains gas. If you&#8217;re looking for more details then look at <a href="https://www.gov.uk/government/publications/environmental-reporting-guidelines-including-mandatory-greenhouse-gas-emissions-reporting-guidance">the requirements document</a>. There&#8217;s also some <a href="https://www.gov.uk/government/publications/streamlined-energy-and-carbon-reporting-secr-for-academy-trusts/streamlined-energy-and-carbon-reporting-secr-for-academy-trusts">specific guidance for multi-academy trusts,</a> as well as plenty of third-party tools and explanations.</p>



<h2 class="wp-block-heading">A brief look at Scopes 1, 2 and 3</h2>



<p class="wp-block-paragraph">As I&#8217;ll be talking about Scope 1, 2 and 3 emissions, its useful to define what those are:</p>



<ul class="wp-block-list">
<li><strong>Scope 1</strong> &#8211; your direct emissions, e.g. from burning gas to heat a building</li>



<li><strong>Scope 2</strong> &#8211; your indirect emissions that are caused directly by your activities, e.g. by you consuming electricity from the grid</li>



<li><strong>Scope 3</strong> &#8211; all other indirect emissions that are not directly caused by you, but which relate to your organisations &#8220;value chain&#8221;, e.g. emissions from the transmission and distribution of electricity or, if you used LPGs, from transport of that to your buildings </li>
</ul>



<h2 class="wp-block-heading">Basic SECR Calculations</h2>



<p class="wp-block-paragraph">There are three main greenhouse gases: Carbon Dioxide (CO<sub>2</sub>), Methane (CH<sub>4</sub>) and Nitric Oxide (N<sub>2</sub>O) with CO<sub>2</sub> being the main one. </p>



<p class="wp-block-paragraph">It&#8217;s possible to report these separately but the convention is to report all GHG emissions as a &#8220;CO<sub>2</sub> equivalent&#8221;, e.g. the warming caused by an equivalent emission of CO<sub>2</sub>.</p>



<p class="wp-block-paragraph">For SECR reporting your reporting needs to include both your annual consumption (in kWh) and your emissions.</p>



<p class="wp-block-paragraph">Emissions can be calculated from your consumption using a conversion factor that converts a unit of energy into a CO<sub>2</sub> equivalent (kg CO<sub>2</sub>e). The conversion factors for the UK are published annually — around June I think — with <a href="https://www.gov.uk/government/collections/government-conversion-factors-for-company-reporting">the entire history available online</a>.</p>



<p class="wp-block-paragraph">So you need to find and use the right conversion factors, for the right year, to calculate the emissions for different types of energy consumption. For 2024 the electricity and gas figures look like this:</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th></th><th>Unit</th><th><strong>kg CO2e</strong></th><th><strong>kg CO2e of CO2 per unit</strong></th><th><strong>kg CO2e of CH4 per unit</strong></th><th><strong>kg CO2e of N2O per unit</strong></th></tr></thead><tbody><tr><td>Electricity</td><td>Consumption</td><td>kWh</td><td>0.20705</td><td>0.20493</td><td>0.00090</td><td>0.00122</td></tr><tr><td></td><td>Transmission &amp; Distribution</td><td>kWh</td><td>0.0183</td><td>0.01811</td><td>0.00008</td><td>0.00011</td></tr><tr><td>Natural Gas</td><td>Consumption</td><td>m3</td><td>2.04542</td><td>2.0414</td><td>0.00307</td><td>0.00095</td></tr><tr><td></td><td></td><td>kWh</td><td>0.20264</td><td>0.20223</td><td>0.00031</td><td>0.0001</td></tr></tbody></table><figcaption class="wp-element-caption">2024 Green House Gas Conversion Factors. Note that Natural Gas Consumption figures in kWh are Net CV. Source: <a href="https://www.gov.uk/government/publications/greenhouse-gas-reporting-conversion-factors-2024">https://www.gov.uk/government/publications/greenhouse-gas-reporting-conversion-factors-2024</a></figcaption></figure>



<p class="wp-block-paragraph">The Transmission &amp; Distribution factor for electricity is used when reporting Scope 3 emissions attributable to the supply of electricity to your location. This isn&#8217;t a mandatory requirement but I&#8217;ve read that its considered best practice to include these.</p>



<p class="wp-block-paragraph">There are two conversion factors for Natural Gas. This is because gas meters measure volume of gas rather than a kWh value. But bills typically also provide a kWh value instead for consistency.</p>



<p class="wp-block-paragraph">Actually, some older gas meters are still on Imperial units so they report measurements in cubic-feet or hundreds of cubic-feet. Something to watch for when dealing with energy data.</p>



<p class="wp-block-paragraph">There is <a href="https://www.gov.uk/guidance/gas-meter-readings-and-bill-calculation">a formula for converting volume measurements of gas into a kWh value</a>, which relies on knowing the calorific value of the gas being used. In the UK the calorific values are regulated to be between around 38&nbsp;MJ/m³&nbsp;to 41&nbsp;MJ/m³. So you can use an average of those, but see below for more details.</p>



<h2 class="wp-block-heading">Renewables</h2>



<p class="wp-block-paragraph">Energy generated and consumed from solar panels can be included in SECR. Although I find the guidance to be a little unclear.</p>



<p class="wp-block-paragraph">The 2024 conversion factors includes a note to say that:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Where electricity is onsite generated from a renewable source such as PV then the kWh should be reported under scope 1 with 0 emissions for both the electricity fuel source and 0 emissions for the T&amp;D value.</p>
<cite><a href="https://www.gov.uk/government/publications/greenhouse-gas-reporting-conversion-factors-2024">Greenhouse gas reporting: conversion factors 2024 </a>&#8211; condensed set</cite></blockquote>



<p class="wp-block-paragraph">So my understanding from that is that annual solar generation figures can be directly included in the Scope 1 and Scope 3 emissions.</p>



<p class="wp-block-paragraph"><a href="https://assets.publishing.service.gov.uk/media/67161e8696def6d27a4c9ab3/environmental-reporting-guidance-secr-march-2019.pdf">Annex G of the main SECR guidance</a> also states that solar exports can be used to produce a net kg CO<sub>2</sub>e emissions figure:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The emission reduction should be calculated using the grid average factor. Total emissions reductions from generated and exported renewable electricity (and green tariffs if appropriate) must not be greater than gross scope 2 emissions.</p>
<cite><a href="https://assets.publishing.service.gov.uk/media/67161e8696def6d27a4c9ab3/environmental-reporting-guidance-secr-march-2019.pdf">SECR, Annex G</a></cite></blockquote>



<p class="wp-block-paragraph">So the export emissions for producing that offset are calculated using the electricity consumption intensity factor for that year (e.g. 0.20705 kg CO<sub>2</sub>e from the above table).</p>



<p class="wp-block-paragraph">What about if you&#8217;re on a 100% renewable tariff or have purchased offsets of some kind? Well there are no green electrons so you can&#8217;t actually consume only 100% renewable energy if you&#8217;re consuming any electricity from the grid. At least today.</p>



<p class="wp-block-paragraph">SECR accommodates green tariffs and offsets by suggesting that you should report both a &#8220;location&#8221; based emissions (which is what I&#8217;ve outlined above) AND a &#8220;market&#8221; based set of emissions. </p>



<p class="wp-block-paragraph">The market emissions would be calculated using set of intensity factors provided by your supplier. These figures are also supposed to be backed up, e.g. by a <a href="https://www.ofgem.gov.uk/environmental-and-social-schemes/renewable-energy-guarantees-origin-rego">REGO</a>.</p>



<h2 class="wp-block-heading">Limitations of SECR</h2>



<p class="wp-block-paragraph">SECR is a simplified approach so has some limitations.</p>



<p class="wp-block-paragraph">The main one is that the intensity factors produced by the government are always out of date. As the <a href="https://assets.publishing.service.gov.uk/media/66a9fe4ca3c2a28abb50da4a/2024-greenhouse-gas-conversion-factors-methodology.pdf">2024 methodology explains</a>, the data used to calculate the electricity consumption intensity factor is based on grid emissions data from 2 years ago.</p>



<p class="wp-block-paragraph">So the current 2024 electricity consumption factors are based on the state of the National Grid in 2022. The grid has decarbonised significantly over the last few years and continues to do so. So the emissions reported using these factors will be higher than actual.</p>



<figure class="wp-block-image size-large"><a href="https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png"><img width="1024" height="580" data-attachment-id="3788" data-permalink="https://blog.ldodds.com/2025/03/26/calculating-carbon-emissions-for-energy-data-in-the-uk/screenshot-from-2025-03-26-18-30-09/" data-orig-file="https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png" data-orig-size="1344,762" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screenshot from 2025-03-26 18-30-09" data-image-description="" data-image-caption="" data-large-file="https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png?w=1024" src="https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png?w=1024" alt="" class="wp-image-3788" srcset="https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png?w=1024 1024w, https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png?w=150 150w, https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png?w=300 300w, https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png?w=768 768w, https://blog.ldodds.com/wp-content/uploads/2025/03/screenshot-from-2025-03-26-18-30-09.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Source: <a href="https://www.neso.energy/about-neso/our-progress-towards-net-zero/carbon-intensity-dashboard">https://www.neso.energy/about-neso/our-progress-towards-net-zero/carbon-intensity-dashboard</a> </figcaption></figure>



<p class="wp-block-paragraph">Because SECR is based on calculating emissions from your total annual consumption, it won&#8217;t reflect that the grid carbon intensity varies over the course of the day. Or regionally. The amount of renewable energy in the mix has a significant impact. So the time when you consume energy, and where you&#8217;re consuming it, also makes a difference.</p>



<p class="wp-block-paragraph">For natural gas emissions there&#8217;s a similar issue. The Calorific Value of the gas pumped to your home varies from day to day. So the actual emissions will be different from the averages used in calculating the natural gas intensity factors.</p>



<h2 class="wp-block-heading">More accurate approaches</h2>



<p class="wp-block-paragraph">A more accurate approach to calculating CO<sub>2</sub> emissions is to use half-hourly energy data. You can calculate the emissions attributable to each half-hourly period using:</p>



<ul class="wp-block-list">
<li>Data from <a href="https://carbonintensity.org.uk/">the Carbon Intensity API </a>which provides an estimate of the carbon intensity of the grid for each half-hour. It provides both historical estimates and forecasts, as well as regional figures. We harvest these in Energy Sparks on a daily basis.</li>



<li>By using the <a href="https://data.nationalgas.com/find-gas-data">daily natural gas calorific values from the National Gas data portal</a> to convert volume of gas consumed to kWh to give a more accurate estimate of the energy consumed, and then calculate the CO<sub>2</sub> emissions</li>
</ul>



<p class="wp-block-paragraph">However there&#8217;s some caveats here that apply to the data from the Carbon Intensity API. As they explain in <a href="https://api.neso.energy/dataset/f406810a-1a36-48d2-b542-1dfb1348096e/resource/36638178-e993-4d34-afdc-4ada83993585/download/neso-ci-national-methodology_v2.pdf">their methodology</a> there are some differences in the intensity factors used in SECR:</p>



<ul class="wp-block-list">
<li><strong>The estimated emissions are for CO<sub>2</sub> only.</strong> Other greenhouse gases are not estimated. SECR requires reporting CO<sub>2</sub>e figures which include all three gases. I suspect the intensity could be adjusted based on the contribution of other gases over time, using the standard GHG factors.</li>



<li><strong>The estimated emissions cover direct emissions from the electricity generation AND transmission and distribution emissions</strong>. SECR requires reporting these as separate figures, with separate emissions factors for each. The electricity generation factor also includes the cost of transporting fuel to power stations</li>
</ul>



<p class="wp-block-paragraph">This means the resulting figures aren&#8217;t comparable but are likely to be a better overall estimate of CO<sub>2</sub> emissions.</p>



<p class="wp-block-paragraph">SECR is useful for providing a baseline for comparing businesses but is less helpful for tracking your current emissions or setting targets.</p>



<p class="wp-block-paragraph">If you think I&#8217;ve missed anything or made a mistake, then let me know!  </p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2025/03/08/ai-ready-data-is-the-wrong-framing/">
	<title>&#8220;AI-Ready Data&#8221; is the wrong framing</title>
	<link>https://blog.ldodds.com/2025/03/08/ai-ready-data-is-the-wrong-framing/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2025-03-08T14:32:21Z</dc:date>
			<dc:subject><![CDATA[Data Infrastructure]]></dc:subject>
		<dc:subject><![CDATA[Open Data]]></dc:subject>
		<dc:subject><![CDATA[Standards]]></dc:subject>
		<dc:subject><![CDATA[ai]]></dc:subject>
		<dc:subject><![CDATA[artificial-intelligence]]></dc:subject>
		<dc:subject><![CDATA[ethics]]></dc:subject>

			<description><![CDATA[A paper was published this week by Stefaan Verhulst, Andrew Zahuranec and Hannah Chafetz called &#8220;Moving Toward the FAIR-R principles: Advancing AI-Ready Data&#8220;. The paper sets out to do two things: I think both of these things are wrong. Is there a Fourth Wave of open data, and if so it about making data &#8220;AI-Ready&#8221;? &#8230; <a href="https://blog.ldodds.com/2025/03/08/ai-ready-data-is-the-wrong-framing/" class="more-link">Continue reading <span class="screen-reader-text">&#8220;AI-Ready Data&#8221; is the wrong&#160;framing</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">A paper was published this week by Stefaan Verhulst, Andrew Zahuranec and Hannah Chafetz called &#8220;<a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5164337">Moving Toward the FAIR-R principles: Advancing AI-Ready Data</a>&#8220;.</p>



<p class="wp-block-paragraph">The paper sets out to do two things:</p>



<ol class="wp-block-list">
<li>Make the case that we are in a &#8220;Fourth Wave&#8221; of open data in which it is critical that data is made useful for AI, and Generative AI (GenAI) in particular, so that data can be democratised and be used to create impact</li>



<li>That the <a href="https://www.go-fair.org/fair-principles/">FAIR data</a> framework needs to be extended to make it &#8220;FAIR-R&#8221;: Ready for AI</li>
</ol>



<p class="wp-block-paragraph">I think both of these things are wrong. </p>



<h2 class="wp-block-heading">Is there a Fourth Wave of open data, and if so it about making data &#8220;AI-Ready&#8221;? </h2>



<p class="wp-block-paragraph">The paper opens by laying out a description of how the open data movement has evolved. The authors suggest that this can be mapped out as the following stages:</p>



<ol class="wp-block-list">
<li>Freedom of Information requests, and government transparency</li>



<li>Open by default</li>



<li>Purpose-driven reuse of data</li>



<li>Preparing data for generative AI</li>
</ol>



<p class="wp-block-paragraph">I think it&#8217;s impossible to adequately describe the evolution of the open data movement without acknowledging that different parts of that movement have adopted open data, as a tool and a means to an end, for very different reasons. Anything else is unnecessarily reductive.</p>



<p class="wp-block-paragraph">The <em>open government data</em> movement might be traced back to FOI and transparency. But that&#8217;s not the origin of <em>open data in science</em>, which can be traced back for decades with a focus on cooperation and reusability. </p>



<p class="wp-block-paragraph">These movements do not start from the same place. They also have not gone through the same stages or issues. They&#8217;re not facing all of the same issues today.</p>



<p class="wp-block-paragraph">There <em>was</em> definitely a refocusing of the effort around opening government and commercial data from an &#8220;open by default&#8221; (&#8220;<em>if we release it, the magic will happen</em>&#8220;) stance to one that was more focused on creating impact through more purposeful publishing and collaboration.</p>



<p class="wp-block-paragraph">&#8220;Open by default&#8221; made sense in the early days as a means to unlock data. But purposeful publishing, with closer coordination between publishers and reusers of data, has been proven to have better results. </p>



<p class="wp-block-paragraph">But again, this is not the same for all parts of the open data movement. </p>



<p class="wp-block-paragraph">In my opinion the first three &#8220;waves&#8221; that the authors describe might be seen as a characterisation of the evolution of the open government data movement, but not more broadly.</p>



<p class="wp-block-paragraph">I think the suggestion that the next, or current, wave is about preparing data for Generative AI is just wrong.</p>



<p class="wp-block-paragraph">To me the current situation is more about reconciling the goals of a movement, which always been based on unrestricted access and use of data, with a landscape in which data is being used at a scale which is not sustainable, and in ways that may cause harm. </p>



<p class="wp-block-paragraph">Responding to that challenge involves improving the stewardship and governance of data, by building on that closer collaboration between the publishers and consumers of data demonstrated in the &#8220;Third Wave&#8221;. It is not about leaning in to the large scale industrial use of data in AI.</p>



<p class="wp-block-paragraph">I&#8217;m not denying that machine learning and AI can be used in profound and innovative ways. Just that focusing on the needs of a particular type of use increases the risk of eroding trust and creating harms.</p>



<p class="wp-block-paragraph">Put more simply: framing the &#8220;Fourth Wave&#8221; of open data as being about servicing the needs of AI makes the same mistake as the &#8220;open by default&#8221; framing: &#8220;<em>if we do this thing, the magic will happen</em>&#8220;. </p>



<p class="wp-block-paragraph">We&#8217;re just substituting AI for hackdays.</p>



<h2 class="wp-block-heading">Do we need to extend FAIR to FAIR-R?</h2>



<p class="wp-block-paragraph">The rest of the paper proposes that FAIR should be extended with an extra letter in the acronym:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Readiness for AI</strong>: Datasets must be structured to meet the specific (quality)<br>requirements of AI applications, such as labeled data for supervised learning or<br>comprehensive coverage for unsupervised learning.</p>
</blockquote>



<p class="wp-block-paragraph">The authors outline some of the potential impacts of AI, characteristics of the datasets that are useful for training, and the emerging standards for describing and publishing training datasets.</p>



<p class="wp-block-paragraph">The aspects of FAIR (&#8220;<em>Findable</em>&#8220;, &#8220;<em>Accessible</em>&#8220;, &#8220;<em>Interoperable</em>&#8221; and &#8220;<em>Reusable</em>&#8220;) are all underpinned by a set of principles that describe that they mean. For example, for a dataset to be &#8220;<em>Findable</em>&#8221; it must have good metadata, and that metadata should be published somewhere where it can be indexed.</p>



<p class="wp-block-paragraph">What it means to be &#8220;Ready for AI&#8221; is not really defined in the paper. </p>



<p class="wp-block-paragraph">But, with an exception that I&#8217;ll explore below, the concept of &#8220;Ready for AI&#8221; is already covered within the existing elements of FAIR. For a dataset to be useful in training AI means ticking all of the Findable, Accessible, Interoperable and Reusable boxes.</p>



<p class="wp-block-paragraph">What the authors should instead be proposing is a FAIR implementation profile that describes what FAIR means when applied to training datasets. </p>



<p class="wp-block-paragraph">I&#8217;ve previously described <a href="https://blog.ldodds.com/2023/09/22/increasing-consistency-of-data-with-fair-implementation-profiles/">the importance of implementation profiles</a> in bridging the gap between broad principles and actionable data management guidance. Packaging up all of the existing work around improving data infrastructure for AI into a set of actionable best practices would be a useful step. </p>



<p class="wp-block-paragraph">Not least because it clearer about what is being requested by the authors: which is that data publishers should invest in supporting specific standards and publish data in ways, and within platforms, that are useful for a specific technology and user community. </p>



<p class="wp-block-paragraph">Open data has always placed more of a burden on publishers than consumers. It is publishers that invest in collecting, structuring, documenting and publishing data in ways that reduce the work of consumers.</p>



<p class="wp-block-paragraph">Asking data providers to do more work, to be part of a broader data ecosystem, potentially comes at the cost of supporting existing users. That feels problematic to me. In many areas essential data infrastructure needs additional investment in order to remain useful in its current form. We&#8217;re asking people to do more. </p>



<p class="wp-block-paragraph">It&#8217;s also problematic because the organisations building new AI based systems are amongst the most well funded organisations in the world. Organisations that might reasonably be expected to be able to shoulder the costs of translating and restructuring data into the forms that are useful for them. Or even invest in its co-creation and maintenance.</p>



<p class="wp-block-paragraph">In the paper, the authors do note the need to address ethical concerns around the use and reuse of data within AI applications. But don&#8217;t acknowledge other efforts like <a href="https://www.gida-global.org/care">the CARE principles</a> which already address that. I previously summarised <a href="https://blog.ldodds.com/2020/07/30/fair-fairer-fairest/">a few other limitations of FAIR and efforts to address those</a>. Address ethical and legal concerns should not be focused solely on AI.</p>



<p class="wp-block-paragraph">In my opinion, FAIR data has always been about advocating for better <em>data management</em>: the processes by which we collect, manage, publish and share data. It hasn&#8217;t really been about <a href="https://blog.ldodds.com/2019/03/16/thinking-about-the-governance-of-data/">data governance</a>: the decision making and oversight that guides and informs those data management processes.</p>



<p class="wp-block-paragraph">To use a metaphor: FAIR is about making data easy to consume. It encourages you to describe what is on the menu; to make sure it&#8217;s clearly described and labelled; and to make sure that what is presented is well-cooked and served. It&#8217;s never been about telling you the source of those ingredients or what has been going on in the kitchen.</p>



<p class="wp-block-paragraph">To achieve that we don&#8217;t really need more principles.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2025/03/01/falsehoods-this-programmer-believed-about-energy-meters/">
	<title>Falsehoods this programmer believed about energy meters</title>
	<link>https://blog.ldodds.com/2025/03/01/falsehoods-this-programmer-believed-about-energy-meters/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2025-03-01T12:39:38Z</dc:date>
			<dc:subject><![CDATA[Data Infrastructure]]></dc:subject>
		<dc:subject><![CDATA[Energy]]></dc:subject>
		<dc:subject><![CDATA[renewable-energy]]></dc:subject>
		<dc:subject><![CDATA[solar]]></dc:subject>
		<dc:subject><![CDATA[solar-power]]></dc:subject>
		<dc:subject><![CDATA[sustainability]]></dc:subject>

			<description><![CDATA[This is the second part to a post I published earlier this week in which I summarised some things I learned about working with half-hourly energy data. I&#8217;ll be updating that shortly with a few extra details and clarifications. This post will be a summary of some things I&#8217;ve learned about energy meters and metering. &#8230; <a href="https://blog.ldodds.com/2025/03/01/falsehoods-this-programmer-believed-about-energy-meters/" class="more-link">Continue reading <span class="screen-reader-text">Falsehoods this programmer believed about energy&#160;meters</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">This is the second part to a post I published earlier this week in which I summarised <a href="https://blog.ldodds.com/2025/02/24/falsehoods-this-programmer-believed-about-half-hourly-energy-data/">some things I learned about working with half-hourly energy data</a>. I&#8217;ll be updating that shortly with a few extra details and clarifications.</p>



<p class="wp-block-paragraph">This post will be a summary of some things I&#8217;ve learned about energy meters and metering. It&#8217;s not a comprehensive primer on meters. I am not an electrician. And I&#8217;ve already written at length about <a href="https://blog.ldodds.com/2021/03/23/the-uk-smart-meter-data-ecosystem/">smart meters</a> and <a href="https://blog.ldodds.com/2022/08/08/the-data-ecosystem-for-non-domestic-energy-consumption-data/">non-domestic energy data infrastructure</a> so will avoid covering same ground here. </p>



<p class="wp-block-paragraph">If you&#8217;re already familiar with energy data and metering there&#8217;s unlikely to be a lot of deep insights here. But there are a number of things that weren&#8217;t obvious to me at the start of my journey into energy data. And some which have sprung up since to surprise me.</p>



<h3 class="wp-block-heading">A site will have a single electricity, or gas or other meter</h3>



<p class="wp-block-paragraph">A UK home usually as a gas meter and an electricity meter. But generally working with energy data means dealing with multiple meters at a single location.</p>



<p class="wp-block-paragraph">It&#8217;s not even always true that UK homes have a single electricity or gas meter. And non-domestic sites can have many different electricity and gas meters serving different parts of the property. We&#8217;ve got schools on Energy Sparks with more than 20 meters.</p>



<p class="wp-block-paragraph">The SMETS2 smart meter standard supports something like five different electricity meters within the same local network.</p>



<p class="wp-block-paragraph">Related to this, because an <a href="https://en.wikipedia.org/wiki/Meter_Point_Administration_Number">MPAN</a> is an identifier for an electricity supply <em>point</em>, that identifier can at times map to <em>multiple</em> electricity meters, each with their own serial number. This one tripped me up recently.</p>



<h3 class="wp-block-heading">The set of meters on a site won&#8217;t change</h3>



<p class="wp-block-paragraph">Devices fail and are replaced. Devices need to be upgraded and are changed. Replacements will have different serial numbers but the same MPAN. Except where they don&#8217;t.</p>



<p class="wp-block-paragraph">Buildings grow and shrink on a temporary or permanent basis. They can be refitted and rewired. As a result, the set of meters at that location may also change.</p>



<p class="wp-block-paragraph">Meters can be direct replacements for one another. Or the new meter might be monitoring part of the consumption originally reported from an existing meter(s). Or it might be measuring something new.</p>



<p class="wp-block-paragraph">To build a picture of the overall energy usage at a site you need to aggregate data from multiple meters. But you will likely need some rules to define how to build that aggregate time series from the underlying data. </p>



<p class="wp-block-paragraph">For example, if you&#8217;re advising someone on energy efficiency, when looking at overall usage you will want to make sure you have the latest data from all currently installed meters. You don&#8217;t necessarily want to make recommendations if you don&#8217;t have recent data for one or more meters (unless perhaps if they are monitoring a minor part of the on-site consumption). So you need some rules that handle lags in data as well as meters being removed.</p>



<h3 class="wp-block-heading">The consumption from multiple meters is additive</h3>



<p class="wp-block-paragraph">Let&#8217;s say you have data for three electricity meters at a location. You can calculate the total consumption by just adding up the data from those meters, right? Not necessarily.</p>



<p class="wp-block-paragraph">Submetering is where additional meters are installed at a location to measure a particular type of consumption (e.g. your lighting or heating) or even a piece of equipment (a heat pump, a boiler). </p>



<p class="wp-block-paragraph">Submeters measure the same usage as the mains meters on the same circuit. You can&#8217;t add them all up otherwise you&#8217;ll double count.</p>



<p class="wp-block-paragraph">Some solar monitoring systems will also be metering the mains electricity supply, so you may have two ways to access that data.</p>



<p class="wp-block-paragraph">So you need to know what those different meters are measuring.</p>



<h3 class="wp-block-heading">Different meters on the same site will have similar usage profiles</h3>



<p class="wp-block-paragraph">Or, to put it differently: you can&#8217;t use usage from one meter to estimate that of another.</p>



<p class="wp-block-paragraph">This is obvious when you stop to think about it.</p>



<p class="wp-block-paragraph">Meters may be measuring different buildings or areas of a property that are used in very different ways. Submeters might be monitoring different types of equipment with different usage profiles/.</p>



<p class="wp-block-paragraph">The profile of gas usage for a kitchen is different to a boiler. In a school, the gas usage in the science block might just be measuring the gas taps in the classroom. These are all very different.</p>



<p class="wp-block-paragraph">A couple of less obvious situations that have arisen in our work at Energy Sparks. </p>



<h3 class="wp-block-heading">Meters are only measuring consumption by the people or organisation paying the bill</h3>



<p class="wp-block-paragraph">This is obviously the case for rental properties, flat shares, etc. But here&#8217;s a couple of non-obvious domestic examples.</p>



<p class="wp-block-paragraph">One school on Energy Sparks has a leisure centre that operates on the same site. Its metered as part of the school&#8217;s overall consumption but is run by a different organisation. A submeter is used to do some internal recharging between the school and the leisure centre. This does mean that the school&#8217;s overall energy consumption isn&#8217;t representative of its own energy efficiency</p>



<p class="wp-block-paragraph">In another situation, a new school is being built next to an existing one. Once built it will have its own meters and be part of a separate trust. The building site is temporarily using the existing school&#8217;s electricity supply until the new supply is installed. Again there is a submeter helping to handle the billing.</p>



<p class="wp-block-paragraph">This makes analysing energy usage particularly challenging as usage no longer correlates to the organisation you&#8217;re supporting with your energy efficiency advice. </p>



<h3 class="wp-block-heading">Meters have a consistent way to be remotely read</h3>



<p class="wp-block-paragraph">There are a wide range of different technologies used to allow a readings to be fetched, or sent from a meter. This includes GSM, 3G, the UK&#8217;s Smart Meter WANs, via a modem or by connecting to a local Wifi.</p>



<p class="wp-block-paragraph">Older energy meters need to be upgraded or replaced before the UK&#8217;s 2G/3G networks are switched off.</p>



<h3 class="wp-block-heading">Solar systems are fully metered</h3>



<p class="wp-block-paragraph">For solar systems you&#8217;re generally interested in how much the panels are generating, how much of that you&#8217;re consuming and how much you might be exporting. </p>



<p class="wp-block-paragraph">Sometimes the generation, self-consumption and export are individually metered within the solar monitoring system. But that&#8217;s not the common case. Older systems might only have a generation meter.</p>



<p class="wp-block-paragraph">The UK&#8217;s Feed-In-Tariff scheme paid people with solar panels for exporting energy to the grid. The solar generation was metered, but the export was just estimated at half the generation. So you got paid the same amount no matter how much you were exporting. So there was no need for export meters.</p>



<p class="wp-block-paragraph">The is a nice example of how a policy design directly shapes (data) infrastructure and its impact on the long-term management of that infrastructure. Its left a potential gap in understanding how much the electricity being generated by these panels is actually being consumed on site, impacting the ability to give energy efficiency advice and support, e.g. local load-balancing.</p>



<p class="wp-block-paragraph">The newer Smart Export Guarantee and export tariffs use export metering to monitor how much electricity you&#8217;re <em>actually</em> exporting. So a combination of generation and export metering is now more common.</p>



<p class="wp-block-paragraph">But, as noted below, if the panels are installed under a Power Purchase Agreement and its unlikely that there will be significant export, an export meter might not be installed by the organisation (e.g. a community energy company) that owns the panels.</p>



<p class="wp-block-paragraph">The lack of a self-consumption meter isn&#8217;t an issue, because self-consumption is just the amount of electricity generated minus the amount exported. Right?</p>



<h3 class="wp-block-heading">Solar panels are owned by the people or organisation whose property they&#8217;re installed on.</h3>



<p class="wp-block-paragraph">This is <a href="https://www.renewableenergymagazine.com/pv_solar/zerocost-solar-pilot-launches-in-cornwall-to-20241104?utm_source=pocket_shared">no longer even true for domestic properties</a> let alone non-domestic.</p>



<p class="wp-block-paragraph"><a href="https://en.wikipedia.org/wiki/Power_purchase_agreement">Power Purchase Agreements</a> (PPA) allow (community) energy companies to install solar at a property then have an agreement with the owner to supply them with electricity at a discount rate. The energy company gets guaranteed revenue for the consumption, and perhaps some export revenue as well.</p>



<p class="wp-block-paragraph">Tesco are <a href="https://www.tescoplc.com/tesco-agrees-largest-uk-corporate-ppa-for-solar-power-in-landmark-infrastructure-project/">installing solar on their stores this way</a>. And the <a href="https://www.renewableenergymagazine.com/pv_solar/zerocost-solar-pilot-launches-in-cornwall-to-20241104?utm_source=pocket_shared">project in Cornwall</a> I linked above illustrates that this arrangement is coming to the domestic market too.</p>



<p class="wp-block-paragraph">This means that the energy from the solar panels is not free. Tariffs are set in the PPA. It also means that you may need to negotiate data access with a third-party, although transparency is usually beneficial on both signs. </p>



<h3 class="wp-block-heading">Meters at the same site fail to be read in consistent ways</h3>



<p class="wp-block-paragraph">You have multiple types of meter at a site. They use different technologies to store and transmit readings. And those meters are managed by different organisations. That means you will encounter uneven data coverage and quality issues that means the usage reported by different meters does not align.</p>



<p class="wp-block-paragraph">In my last post I mentioned that solar generation and export meters can end up producing inconsistent readings when they independently fail or fill in missing readings. </p>



<p class="wp-block-paragraph">This means you sometimes cannot reliably calculate the self-consumption if its not metered and will need to find other ways to estimate that.</p>



<p class="wp-block-paragraph">You might encounter similar issues with submeters.</p>



<h3 class="wp-block-heading">Connectivity issues will be sorted promptly</h3>



<p class="wp-block-paragraph">lol, no.</p>



<h3 class="wp-block-heading">Meter upgrades and replacements are carried out promptly</h3>



<p class="wp-block-paragraph">See above.</p>



<h3 class="wp-block-heading">Non half-hourly meters don&#8217;t produce half-hourly readings</h3>



<p class="wp-block-paragraph">The energy industry refers to &#8220;non half-hourly&#8221; and &#8220;half-hourly&#8221; meters. Half-hourly meters are installed in locations with higher consumption and must produce half-hourly readings.</p>



<p class="wp-block-paragraph">Historically non half-hourly meters were read, e.g. monthly and so did not produce half-hourly readings.</p>



<p class="wp-block-paragraph">But increasingly &#8220;non half-hourly&#8221; meters include AMR and SMETS2 meters that actually do produce half-hourly data. </p>



<p class="wp-block-paragraph">The terms &#8220;half-hourly&#8221; and &#8220;non half-hourly&#8221; now relate more to regulations around what meters are installed, how quickly connectivity issues need to be sorted, and how usage is settled rather than relating to the actual capabilities of the meters.</p>



<h3 class="wp-block-heading">Smart Meters store actual customer tariffs</h3>



<p class="wp-block-paragraph">This seems to be generally true for domestic properties. When a smart meter is installed within around 24-48 hours the default tariffs on the meter will be replaced by your actual tariffs. </p>



<p class="wp-block-paragraph">It&#8217;s your energy company&#8217;s responsibility to push those to the meter as they are used to provide you with cost advice for your In-Home Device. But I&#8217;ve heard of problems meaning that tariffs are not up to date.</p>



<p class="wp-block-paragraph">For non-domestic usage, there isn&#8217;t always an In-Home Device provided. They&#8217;re not that helpful in a large building. And while the tariffs might be pushed to the meter, that doesn&#8217;t always seem to be the case.</p>



<h3 class="wp-block-heading">Smart Meters tariffs can be used to calculate bills</h3>



<p class="wp-block-paragraph">I believe this is actually true for domestic meters but its not true more broadly.</p>



<p class="wp-block-paragraph">Smart meters support a range of tariffs including flat rates, differential (time of use) tariffs as well as more complex tariffs. E.g. block based pricing (e.g. the price per unit is fixed until a threshold). They also support a simple standard charge. </p>



<p class="wp-block-paragraph">The structure of what tariffs can be supported is part of the SMETS2 standard.</p>



<p class="wp-block-paragraph">Non-domestic tariffs are way more complicated. Specifically, the daily standard charge that we have on our domestic bills is unbundled into a range of charges including:</p>



<ul class="wp-block-list">
<li><a href="https://theutilitycheck.co.uk/understanding-the-agreed-supply-capacity-to-your-business-premises-is-key-to-keeping-your-electricity-bills-under-control/">Agreed Supply and Excess Capacity charges</a></li>



<li><a href="https://powercompare.co.uk/energy/business-energy/duos-tnuos-charges/">DUoS and TNuOs charges</a> which are basically additional differential tariffs that applied by the distribution and transmission network operators</li>



<li>Standing charges</li>



<li>Fixed additional fees</li>



<li>Settlement agency fees</li>



<li>Metering agent charges</li>



<li>Site fees</li>



<li>Data access fees</li>



<li>etc, etc</li>
</ul>



<p class="wp-block-paragraph">Those can&#8217;t be stored on a smart meter. So while you might be able to access the basic consumptions costs you need additional information to calculate a bill.</p>



<p class="wp-block-paragraph">Energy efficiency advice that focuses on the basic unit rate costs of consumption will underestimate those if they don&#8217;t take into account the DUoS and TNuOs charges. </p>



<p class="wp-block-paragraph">None of this is openly or easily available.</p>



<p class="wp-block-paragraph">The complexity of non-domestic billing, the potential for errors, opportunity for re-negotiation of fees, and ability to unbundle services like meter management, is why there are a whole class of energy brokers and reconciliation services serving that market.</p>



<h3 class="wp-block-heading">There are standard APIs and formats for energy data</h3>



<p class="wp-block-paragraph">There are <a href="https://blog.ldodds.com/2021/07/12/24-different-tabular-formats-for-half-hourly-energy-data/">no standard formats for tabular energy data</a>. Energy suppliers generally do not offer APIs for accessing consumption data.</p>



<p class="wp-block-paragraph">Recent policy changes around access to non-domestic energy data have improved access but not standardisation; in fact formats have proliferated.</p>



<p class="wp-block-paragraph">There is no standard API for accessing Smart Meter data. There is one for interfacing directly with the DCC but it&#8217;s a low level messaging system and access to it is, understandably, tightly controlled. </p>



<p class="wp-block-paragraph">Services like n3rgy and Hildebrand that have created APIs to wrap that lower level Smart Meter infrastructure are all bespoke.</p>



<p class="wp-block-paragraph">There are no standardised protocols for agreeing consent to access data.</p>



<p class="wp-block-paragraph">Solar monitoring systems do not have standard APIs even though they frequently offer the same basic functionality. At Energy Sparks we&#8217;ve integrated with three systems initially, based on those we&#8217;ve most commonly encountered in the education sector. </p>



<p class="wp-block-paragraph">If you want to get a sense of the number of solar monitoring systems, then take a look at Solar Fox, who provide display panels to show how your panels are performing. Currently they have <a href="https://www.solar-fox.com/en/datalogger-interfaces.html">integrations with 74 different solar monitoring systems</a>. </p>



<p class="wp-block-paragraph">While some suppliers provide access to submeter data, because these might be remotely read in different ways through different services. So there isn&#8217;t a standard way to access that data either. This includes data that might be coming from heat pumps, district heating, etc.</p>



<p class="wp-block-paragraph">If future energy systems are about local generation, storage and load balancing, we need more secure, standardised APIs onto these systems.</p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2025/02/24/falsehoods-this-programmer-believed-about-half-hourly-energy-data/">
	<title>Falsehoods this programmer believed about half-hourly energy data</title>
	<link>https://blog.ldodds.com/2025/02/24/falsehoods-this-programmer-believed-about-half-hourly-energy-data/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2025-02-24T10:44:21Z</dc:date>
			<dc:subject><![CDATA[Data]]></dc:subject>
		<dc:subject><![CDATA[Energy]]></dc:subject>
		<dc:subject><![CDATA[solar-power]]></dc:subject>

			<description><![CDATA[It is common for energy generation and consumption values to be presented as half-hourly readings: giving 48 readings over the course of a single 24 hour period. This is the type of data we&#8217;re working with on a daily basis in Energy Sparks. I thought I&#8217;d share a few things that I learned about working &#8230; <a href="https://blog.ldodds.com/2025/02/24/falsehoods-this-programmer-believed-about-half-hourly-energy-data/" class="more-link">Continue reading <span class="screen-reader-text">Falsehoods this programmer believed about half-hourly energy&#160;data</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">It is common for energy generation and consumption values to be presented as half-hourly readings: giving 48 readings over the course of a single 24 hour period. This is the type of data we&#8217;re working with on a daily basis in Energy Sparks.</p>



<p class="wp-block-paragraph">I thought I&#8217;d share a few things that I learned about working with this type of data, in the classic &#8220;<em>Falsehoods Programmers Believe About X</em>&#8221; format. But in this case the programmer is me. You might have different or better insights. In which case, leave a comment!</p>



<p class="wp-block-paragraph">This post focuses just on half-hourly data. I&#8217;m going to do <a href="https://blog.ldodds.com/2025/03/01/falsehoods-this-programmer-believed-about-energy-meters/">a second one about metering.</a></p>



<h3 class="wp-block-heading">Half-hourly data is always available</h3>



<p class="wp-block-paragraph">While modern meters are AMR (Automated Meter Reading) or SMETS 1 or 2, there are still meters out there that are not capable of producing half-hourly readings. </p>



<p class="wp-block-paragraph">Some meters installed to monitor, e.g. solar arrays, only report usage over a longer period, e.g. life-time generation.</p>



<h3 class="wp-block-heading">Half-hourly data is the most granular data available</h3>



<p class="wp-block-paragraph">Half-hourly data is the standard around which modern electricity and gas metering is based. But that doesn&#8217;t mean that more granular data isn&#8217;t available in some cases. </p>



<p class="wp-block-paragraph">Meters installed as part of a solar array, e.g. Solar Edge, might report data at 15 minute intervals.</p>



<p class="wp-block-paragraph">While SMETS 2 meters make data available to suppliers (or other authorised users) on a half-hourly basis, within the home you can access real-time data from the electricity meter (only).</p>



<p class="wp-block-paragraph">Those readings are only available to certified devices. Some companies and suppliers are manufacturing in-home devices that can bridge from the Zigbee network to Wifi allowing readings at a more fine-grained level</p>



<p class="wp-block-paragraph">Other &#8220;clamp-on&#8221; devices which take readings from an electricity cable can do similar real-time reporting.</p>



<h3 class="wp-block-heading">There are at most 48 readings</h3>



<p class="wp-block-paragraph">Daylight savings means that 2 days in the year will have 50 readings.</p>



<p class="wp-block-paragraph">Except some supplier data feeds only ever have 48. It&#8217;s unclear what happens during daylight savings.</p>



<h3 class="wp-block-heading">There will never be less than 48 readings</h3>



<p class="wp-block-paragraph">Meters can fail to record (or submit) a reading so you might have missing readings within a day.</p>



<p class="wp-block-paragraph">Some solar monitoring systems, e.g. Solis Cloud, only seem to report data when there are non-zero readings. So their API only returns data between e.g. 6am and 8pm when there was any generation on the panels, not a fixed set of 48 readings. Other APIs differ.</p>



<h3 class="wp-block-heading">The readings are always reporting energy consumption</h3>



<p class="wp-block-paragraph">Different types of meters measure different things. So a half-hourly time series might cover a range of data types and units.</p>



<p class="wp-block-paragraph">A solar generation meter measures the power generated by the panels, a self-consumption meter shows the local consumption of that power. An export meter measures how much energy is exported to the grid.</p>



<p class="wp-block-paragraph">An electricity meter might also report <a href="https://oneunit.in/blogs-leading-and-lagging-reactive-energy">the Reactive Energy</a> for the circuit. </p>



<p class="wp-block-paragraph">If you&#8217;re taking data from a supplier then the half-hourly data might also be estimated, rather than actual reads from the meter.</p>



<h3 class="wp-block-heading">Labelling of half-hourly data is standardised</h3>



<p class="wp-block-paragraph">Some CSV formats organise readings into rows, one for each day and with each half-hour being in a separate column. The column headings might be labelled with the start or the end of the half-hour being reported. E.g. the electricity consumption for the period of time between 1am and 1.30am might be labelled as &#8220;1:00&#8221; or &#8220;1:30&#8221;.</p>



<p class="wp-block-paragraph">For CSV files organised like this, then there&#8217;s no real ambiguity. The 48 (or 50!) readings are presented in column order. </p>



<p class="wp-block-paragraph">But some formats report data with one row per half-hourly reading. So you need to take care to ensure you&#8217;re parsing the reading time or time-stamps correctly.</p>



<p class="wp-block-paragraph">2024-04-24T00:00 might be the consumption between 23:30 on the 23rd February and 00:00 on the 24th. Or it might be the data for 00:00 to 00:30 on the 24th.</p>



<h3 class="wp-block-heading">Consumption readings are always in kWh</h3>



<p class="wp-block-paragraph">Electricity consumption data is reported in kWh. But gas meters report usage based on the volume of gas supplied. </p>



<p class="wp-block-paragraph">Modern meters report usage in cubic meters. There are still gas meters in use that report data in imperial units. They might be reporting in cubic feet (cf) or hundreds of cubic feet (hcf).</p>



<p class="wp-block-paragraph">You&#8217;ll need to convert this to kWh <a href="https://www.gov.uk/guidance/gas-meter-readings-and-bill-calculation">using a standard formula</a> that takes into account variations in temperature and pressure as well as the calorific value of the gas.</p>



<p class="wp-block-paragraph">In the UK calorific values will typically be between 37.5 and 43.0 MJ/m cubed with 40 being an acceptable default. The actual calorific value for your gas supply will be on the monthly bill. As far as I&#8217;m aware there&#8217;s no programmatic way to access this information.</p>



<p class="wp-block-paragraph">Whether your gas meter reports data in cf or hcf also only seems to be present on energy bills.</p>



<h3 class="wp-block-heading">The readings are always measured values</h3>



<p class="wp-block-paragraph">SMETS <a href="https://support.n3rgy.com/support/solutions/articles/103000130415-erroneous-consumption-value-4294967-295-kwh-electricity-?utm_source=pocket_shared">electricity</a> and <a href="https://support.n3rgy.com/support/solutions/articles/103000130398-erroneous-consumption-value-16777-215-gas-?utm_source=pocket_shared">gas meters</a> occasionally produce high-values which are not actual recorded consumption. They are error codes used to report some kind of meter fault. You need to trap and handle these when processing the data.</p>



<p class="wp-block-paragraph">As the linked documents note: &#8220;<em>Due to the nature of the national programme and the position taken by government and the regulator this is no obligation or requirement for manufacturers to publish these error codes so they can be captured and processed explicitly.</em>&#8220;</p>



<h3 class="wp-block-heading">The readings are always for the usage in a single half-hourly period</h3>



<p class="wp-block-paragraph">I&#8217;ve only observed this for some solar meters, but it might occur elsewhere with other types of metering. It relates to how meters remotely report data in scenarios where the connectivity is poor.</p>



<p class="wp-block-paragraph">Sometimes there will be a visible spike for a single half-hour after a period of missing readings. </p>



<p class="wp-block-paragraph">Some meters, if they hit a communication error will, at the next opportunity report, all consumption (or generation) that haven&#8217;t already been reported. In effect the meter &#8220;catches up&#8221; by just attributing all unreported data for the next half-hour its able to connect. </p>



<p class="wp-block-paragraph">Depending on the capability of the meters, this &#8220;catch-up&#8221; reporting might be for a couple of hours or it might extend into the next day.</p>



<p class="wp-block-paragraph">This can create problems where your generation, export and self-consumption are no longer aligned. One option is to just average out the data across the missing period, allowing for periods when the panels are unlikely to be generating.</p>



<p class="wp-block-paragraph">As far as I&#8217;m aware there&#8217;s no standard way to describe this feature or other capabilities of solar meters.</p>



<h3 class="wp-block-heading">Estimated data is always clearly labelled</h3>



<p class="wp-block-paragraph">Meters don&#8217;t report estimated readings, so if you&#8217;re pulling data directly from, e.g. a SMETS2 meter then you&#8217;ll only get actuals. </p>



<p class="wp-block-paragraph">But if you&#8217;re taking data from suppliers or from other parts of the energy data infrastructure then the readings might include estimates. E.g. if a meter cannot be read remotely.</p>



<p class="wp-block-paragraph">You need to take care to understand whether the data feed or API you&#8217;re using includes only actuals or also estimated readings. Not every feed makes this clear.</p>



<p class="wp-block-paragraph">You may also need to reload or refresh data when the actual become available. Some data feeds will push through actuals when available. Others used a fixed window, e.g. last 7 days, so you need another mechanism to handle getting historical data.</p>



<h3 class="wp-block-heading">Estimated data will eventually be replaced with actual values</h3>



<p class="wp-block-paragraph">Estimated data is used if there&#8217;s a problem reading a meter. However, even if that problem is resolved you won&#8217;t necessarily be able to get the &#8220;missing&#8221; half-hourly data.</p>



<p class="wp-block-paragraph">Some meters do have a memory so will store a history of the readings which can be later downloaded. But there&#8217;s an upper limit on this. So you may never get actual half-hourly reads to replace the estimates.</p>



<p class="wp-block-paragraph">From a billing perspective the customer&#8217;s bill will be adjusted based on the current meter readings. But you&#8217;re not guaranteed to get the missing data. </p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2025/02/21/a-quick-review-of-the-8bitdo-mechanical-keyboard/">
	<title>A quick review of the 8BitDo mechanical keyboard</title>
	<link>https://blog.ldodds.com/2025/02/21/a-quick-review-of-the-8bitdo-mechanical-keyboard/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2025-02-21T08:47:48Z</dc:date>
			<dc:subject><![CDATA[Personal]]></dc:subject>

			<description><![CDATA[I don&#8217;t normally review things here but a few people expressed an interest in how I got on with this, especially as I was planning to use it with Ubuntu. So here we are. Be warned, I know nothing about keyboards except how to go tippy-tap on them. And sometimes not even that. So don&#8217;t &#8230; <a href="https://blog.ldodds.com/2025/02/21/a-quick-review-of-the-8bitdo-mechanical-keyboard/" class="more-link">Continue reading <span class="screen-reader-text">A quick review of the 8BitDo mechanical&#160;keyboard</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">I don&#8217;t normally review things here but a few people expressed an interest in how I got on with this, especially as I was planning to use it with Ubuntu. So here we are.</p>



<p class="wp-block-paragraph">Be warned, I know nothing about keyboards except how to go tippy-tap on them. And sometimes not even that. So don&#8217;t expect any deep insights.</p>



<p class="wp-block-paragraph">Last year I decided to change up my desk setup. I was already using two screens, but to make things a more ergonomic I moved my laptop onto a separate swivel stand, got a USB hub to reduce the cabling and increase the number of ports. I also decided to get a new keyboard.</p>



<p class="wp-block-paragraph">Out of what might is undoubtedly a mix of nostalgia and a burgeoning mid-life crisis, I decided what I wanted was a chunky retro-styled keyboard. Something that evoked &#8220;hacking the mainframe&#8221; using an old IBM terminal.</p>



<p class="wp-block-paragraph">I then tripped over the <a href="https://www.8bitdo.com/retro-mechanical-keyboard/">8BitDo mechanical keyboard</a> and was sold. Compact. Wireless. Gave off the right vibes. And, inexplicably, has some extra big red buttons.</p>



<figure class="wp-block-image size-large"><a href="https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg"><img width="768" height="1024" data-attachment-id="3671" data-permalink="https://blog.ldodds.com/2025/02/21/a-quick-review-of-the-8bitdo-mechanical-keyboard/20250215_121119/" data-orig-file="https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg" data-orig-size="969,1292" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="20250215_121119" data-image-description="" data-image-caption="" data-large-file="https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg?w=768" src="https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg?w=768" alt="" class="wp-image-3671" srcset="https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg?w=768 768w, https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg?w=113 113w, https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg?w=225 225w, https://blog.ldodds.com/wp-content/uploads/2025/02/20250215_121119.jpg 969w" sizes="(max-width: 768px) 100vw, 768px" /></a></figure>



<p class="wp-block-paragraph">Let&#8217;s start with&#8230;</p>



<p class="wp-block-paragraph">I&#8217;M SORRY?</p>



<p class="wp-block-paragraph">&#8230;I said let&#8217;s start with discussing the&#8230;</p>



<p class="wp-block-paragraph">WHAT?</p>



<p class="wp-block-paragraph">&#8230;discussing the downsides.</p>



<p class="wp-block-paragraph">OK!</p>



<p class="wp-block-paragraph">It&#8217;s loud. </p>



<p class="wp-block-paragraph">I love that, to be honest. Gives me more of those mainframe hacking vibes. But if I&#8217;m honest, that feature is less popular with everyone else in the house.</p>



<p class="wp-block-paragraph">The other downside is that the occasionally I discover exxxxxxtra letttters. Not consistently enough for it to be an actual fault. But maybe once or twice a day? </p>



<p class="wp-block-paragraph">I suspect it might be a bluetooth connectivity thing, but I&#8217;ve not used it enough when wired or using the wireless dongle to be sure. It&#8217;s slightly more common when I&#8217;ve paused for a while to read something. So might be related to the keyboard going to sleep.</p>



<p class="wp-block-paragraph">The final issue is actually my own problem. This is an 87 key US layout. So fewer keys and no replaceable keycaps. </p>



<p class="wp-block-paragraph">As a UK tippy-tapper I&#8217;m stuck with some mislabelled keys. I don&#8217;t really care about that as muscle memory guides my typing. But fewer keys means that a couple of frequently used programming characters, like | and \, are only available via an Alt key combo. I did consider remapping keys to try and work around that, but decide it was easier to just retrain that muscle memory a bit.</p>



<p class="wp-block-paragraph">So not sure if I can unreservedly recommend this for programmers unless you&#8217;re comfortable with that. Or in the US.</p>



<p class="wp-block-paragraph">What about the upsides?</p>



<p class="wp-block-paragraph">WHAT?</p>



<p class="wp-block-paragraph">I said let&#8217;s talk about the upsides.</p>



<p class="wp-block-paragraph">Firstly, it works seamlessly with Ubuntu. Just worked. The included wireless dongle, and an easy switch between modes means I can easily flip between my laptop and PC desktop. </p>



<p class="wp-block-paragraph">The macro programming software is for PC only. But you can do all of the key assignment directly on the keyboard itself. So I&#8217;ve just assigned keyboard shortcuts to the individual buttons and then mapped those shortcuts in Ubuntu. For example, at the moment, I&#8217;ve just got keys assigned to one tap mute my microphone and audio. Handy.</p>



<p class="wp-block-paragraph">I&#8217;ll admit that, retro-stylings aside, my favourite feature is the volume knob. I now get to pump up the volume while waving my arm in the air like some DJ dropping a hot set. No really, it&#8217;s great and I&#8217;m sure the midlife crisis will pass eventually.</p>



<p class="wp-block-paragraph">Despite the niggles, I have zero regrets with this as a purchase. If I were to duct tape this to my XPS 13 it&#8217;s probably as close as I&#8217;m going to get to that Ono-Sendai deck I&#8217;ve always wanted. </p>



<p class="wp-block-paragraph">YMMV.</p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2025/02/09/reflecting-on-2024/">
	<title>Reflecting on 2024</title>
	<link>https://blog.ldodds.com/2025/02/09/reflecting-on-2024/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2025-02-09T14:48:27Z</dc:date>
			<dc:subject><![CDATA[Personal]]></dc:subject>

			<description><![CDATA[Another of my annual end of the year reflections. Like last year its taken me until February to finish. This post is likely to be of little interest to anyone else, but I enjoy doing them and they&#8217;re the closest thing I have to a diary. I’ve previously done these for&#160;2020,&#160;2021, 2022 and 2023. Reading &#8230; <a href="https://blog.ldodds.com/2025/02/09/reflecting-on-2024/" class="more-link">Continue reading <span class="screen-reader-text">Reflecting on 2024</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">Another of my annual end of the year reflections. Like last year its taken me until February to finish. </p>



<p class="wp-block-paragraph">This post is likely to be of little interest to anyone else, but I enjoy doing them and they&#8217;re the closest thing I have to a diary. </p>



<p class="wp-block-paragraph">I’ve previously done these for&nbsp;<a href="https://blog.ldodds.com/2020/12/31/reflecting-on-2020/">2020</a>,&nbsp;<a href="https://blog.ldodds.com/2021/12/31/reflecting-on-2021/">2021</a><a href="https://blog.ldodds.com/2022/12/31/reflecting-on-2022/">, 2022</a> and <a href="https://blog.ldodds.com/2024/02/11/reflecting-on-2023/">2023</a>.</p>



<h2 class="wp-block-heading">Reading</h2>



<p class="wp-block-paragraph">I&nbsp;<a href="https://app.thestorygraph.com/profile/ldodds">log all my comic and book reading in Story Graph</a>. They produce an annual wrap-up.&nbsp;<a href="https://app.thestorygraph.com/wrap-up/2023/ldodds">Here’s mine for 2024</a>.</p>



<p class="wp-block-paragraph">There was a definite shift in my reading patterns this year. I basically all but stopped reading comics and graphic novels. I read 47 books: 13 graphic novels, 27 fiction and 7 non-fiction.  </p>



<p class="wp-block-paragraph">By way of contrast, last read I read something like 70-80 graphic novels.</p>



<figure class="wp-block-image size-large"><a href="https://blog.ldodds.com/wp-content/uploads/2025/02/screenshot-from-2025-02-09-11-58-42.png"><img width="693" height="878" data-attachment-id="3629" data-permalink="https://blog.ldodds.com/2025/02/09/reflecting-on-2024/screenshot-from-2025-02-09-11-58-42/" data-orig-file="https://blog.ldodds.com/wp-content/uploads/2025/02/screenshot-from-2025-02-09-11-58-42.png" data-orig-size="693,878" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screenshot from 2025-02-09 11-58-42" data-image-description="" data-image-caption="" data-large-file="https://blog.ldodds.com/wp-content/uploads/2025/02/screenshot-from-2025-02-09-11-58-42.png?w=693" src="https://blog.ldodds.com/wp-content/uploads/2025/02/screenshot-from-2025-02-09-11-58-42.png?w=693" alt="" class="wp-image-3629" srcset="https://blog.ldodds.com/wp-content/uploads/2025/02/screenshot-from-2025-02-09-11-58-42.png 693w, https://blog.ldodds.com/wp-content/uploads/2025/02/screenshot-from-2025-02-09-11-58-42.png?w=118 118w, https://blog.ldodds.com/wp-content/uploads/2025/02/screenshot-from-2025-02-09-11-58-42.png?w=237 237w" sizes="(max-width: 693px) 100vw, 693px" /></a></figure>



<h3 class="wp-block-heading">Fiction</h3>



<p class="wp-block-paragraph">My favourites this year were:</p>



<ul class="wp-block-list">
<li><a href="https://www.amazon.co.uk/Red-Sky-Morning-Paul-Lynch/dp/1780879199">Red Sky in Morning by Paul Lynch</a> (although this is a close tie with his other novel <a href="https://www.amazon.co.uk/Beyond-Sea-Paul-Lynch/dp/1786076500">Beyond the Sea</a>)</li>



<li><a href="https://www.amazon.co.uk/Wandering-Souls-heartbreaking-literary-achievement-ebook/dp/B0B85T5WY7/ref=sr_1_1?crid=2LNOQULHBID2T&amp;dib=eyJ2IjoiMSJ9.urfJ5tgDIiGw9Sgh00wdsBXT9mVlB03NRMduxcC1Whz5uUUY2Nbb3EIqMPBmr-nE9BbY6mfJ4Nmja1g-WWAYx_9OkehPRnZQrWV4iuTpoEa3SMcTS4Fj7qxE5W-T-HVHZZpwt9ozq6oxPHmhDpwiKfg-9g8fCj1wwTCiZVqIrMT5DBV8QoYlakKA0DHn_xz5yBWOXmRPR9Q6Spuvqzd7KAQfDUpmavSrXjPajyxBMBY.CoS_7ko1j0S4xiiynW3ca_n6QMYsTBuyTPRZ5LhIaSY&amp;dib_tag=se&amp;keywords=wandering+souls&amp;qid=1739102757&amp;sprefix=wandering+souls%2Caps%2C163&amp;sr=8-1">Wandering Souls by R. F. Kuang</a></li>



<li><a href="https://www.amazon.co.uk/Isaac-Egg-original-finding-unexpected/dp/1472285514">Isaac and the egg by Bobby Palmer</a></li>



<li><a href="https://www.amazon.co.uk/Montpelier-Parade-Karl-Geary/dp/1911215450">Montpelier Parade by Karl Geary</a></li>



<li><a href="https://www.amazon.co.uk/Treacle-Walker-Alan-Garner/dp/0008477795">Treacle Walker by Alan Garner</a></li>
</ul>



<p class="wp-block-paragraph">Didn&#8217;t read a lot of sci-fi in 2024. Felt like I was in a bit of a rut so sought out some different authors. I struggled to finish <a href="https://www.amazon.co.uk/Orbital-Longlisted-Booker-Prize-2024/dp/1529922933">Orbital by Samantha Harvey</a> just didn&#8217;t click for me at all. </p>



<h3 class="wp-block-heading">Non-Fiction</h3>



<ul class="wp-block-list">
<li><a href="https://www.amazon.co.uk/How-Infrastructure-Works-Transforming-changing/dp/1911709542">How Infrastructure Works by Deb Chachra</a> is just brilliant.</li>



<li><a href="https://www.versobooks.com/en-gb/products/2625-the-care-manifesto">The Care Manifesto</a> gets a big thumbs-up from me. Not a lot of it about though, it seems</li>



<li>Enjoyed <a href="https://www.amazon.co.uk/Abroad-Japan-Chris-Broad/dp/1787637077">Abroad in Japan</a></li>



<li><a href="https://www.amazon.co.uk/Modeling-Mindsets-Many-Cultures-Learning/dp/B0BMJH7M9F">Modeling Mindsets</a> by Christoph Molnar was an interesting approach to looking at how people data scientists approach their analysis.</li>
</ul>



<p class="wp-block-paragraph">I read <a href="https://www.amazon.co.uk/How-Blow-Up-Pipeline-Learning/dp/1839760257">How to Blow Up a Pipeline by Andreas Malm</a> but to be honest I found it to be naive and simplistic.</p>



<h3 class="wp-block-heading">Comics</h3>



<p class="wp-block-paragraph">I read the first three books of <a href="https://en.wikipedia.org/wiki/100_Bullets"><strong>100 Bullets</strong></a> which I really enjoyed. Finished Lemire&#8217;s <strong>Hawkeye</strong> series which I&#8217;d been saving. Still great</p>



<p class="wp-block-paragraph">I read all 1249 pages of the <a href="https://www.amazon.co.uk/Infinity-Gauntlet-Omnibus-Jim-Starlin-ebook"><strong>Infinity Gauntlet Omnibus</strong></a> but found it disappointing. The films were better.</p>



<p class="wp-block-paragraph">I started reading some of Grant Morrison&#8217;s JLA comics and they were just <em>awful</em>. So bad that they basically killed all interest I had in reading any more graphic novels last year. I&#8217;ve got a few books of his which I&#8217;ve not read yet (Animal Man being the main one), but I think Morrison is massively overrated. </p>



<h2 class="wp-block-heading">Listening</h2>



<p class="wp-block-paragraph">Still keeping to my habit of creating a playlist of “<em>tracks that I loved on first listen, which were released this year</em>“. Here’s my&nbsp;<a href="https://tidal.com/browse/playlist/baf66a3c-0052-4d9b-b892-6e9e8160da2e">2024 Tracked</a>&nbsp;playlist. </p>



<p class="wp-block-paragraph">It contains 157 tracks which is a total of 10 hours and 39 seconds of listening. Tracks are logged in order of when I heard them.</p>



<p class="wp-block-paragraph">That&#8217;s 4 hours and 57 tracks more than last year. I&#8217;m still listening to a lot of 6Music during weekdays, but also spending time in the evening and weekends following recommendations on YouTube and elsewhere.</p>



<p class="wp-block-paragraph">My&nbsp;<a href="https://listen.tidal.com/playlist/a6268958-b535-421e-abcb-ce972c85f778">My Most Listened 2024</a>&nbsp;includes Thee Marloes, The Last Dinner Party, Lucy Rose and The Bug Club.</p>



<p class="wp-block-paragraph">Still listening to <a href="https://www.bbc.co.uk/programmes/b0b02sl2">Unclassified</a> but I&#8217;ve started regularly listening to <a href="https://www.bbc.co.uk/programmes/m0008w2m">BBC Radio 3 Night Tracks</a>. I stick it on now late in the evening while I&#8217;m reading rather than doomscrolling. </p>



<p class="wp-block-paragraph">My daughter has started joining me for this. A nice peaceful time together.</p>



<p class="wp-block-paragraph">Maybe 2025 will be the year I get into podcasts?</p>



<h3 class="wp-block-heading">Gigs</h3>



<p class="wp-block-paragraph">I wanted to go to more gigs in 2024. Here&#8217;s what I managed this year</p>



<ul class="wp-block-list">
<li><strong>Hania Rani.</strong> Jumped at the chance to finally see her perform live, and she didn&#8217;t disappoint. A much more  high-energy gig than I was expecting, but it was amazing</li>



<li><strong>Happy Mondays</strong> supported by the <strong>Inspiral Carpets</strong> and the <strong>Stereo MCs</strong>. Pure old geezer nostalgia. Lots of fun</li>



<li><strong><s>King Gizzard and the Lizard Wizard</s></strong>. Couldn&#8217;t go because I got my second dose of COVID.</li>



<li><strong>Jalen Ngonda</strong>. Grabbed tickets as soon as I found out he was playing the Trinity in Bristol. Nice venue and the gig was brilliant. I&#8217;ve seeing him twice more in 2025.</li>



<li><strong>John Hopkins</strong>. I saw Hopkins play in Bath right before the start of lockdown, my very first solo gig and my last time in a crowded room for a long time. While the Bath gig was a mix of his electronica and quieter piano pieces this set at the Beacon was a full-on assault on the senses. Brilliant.</li>



<li><strong>Ezra Collective</strong>. I&#8217;ve never seen anyone work an audience like these guys. Uplifting.</li>



<li><strong>Sea Sick Steve</strong>. Fantastic. Learnt what a diddley-bow is.</li>
</ul>



<h2 class="wp-block-heading">Gaming</h2>



<p class="wp-block-paragraph">I’m ldodds on both&nbsp;<a href="https://steamcommunity.com/id/ldodds">Steam</a>&nbsp;and PSN if you want to add me there.</p>



<p class="wp-block-paragraph">I spent a long time playing <strong>Shadow of the Erdtree</strong> which I thought was an absolute triumph. These games manage to light up parts of my brain in a way that many other games don&#8217;t. It&#8217;s the mixture of exploration, skill development, themes and tantalising secrets. I will never tire of them.</p>



<p class="wp-block-paragraph">Spent some more time with <strong>Horizon Forbidden West</strong>, which I&#8217;ve still not finished. Also sunk quite a few hours into both <strong>PowerWash Simulator</strong> and <strong>Hardspace Shipbreaker</strong> which are engaging in their own ways. They provide satisfying distractions and sometimes that&#8217;s what I need in a game, not challenge.</p>



<p class="wp-block-paragraph">I played <strong>Thank Goodness You&#8217;re Here</strong>, which was funny and reminded me of some Spectrum games from the &#8217;80s which it also directly references in places. </p>



<p class="wp-block-paragraph"><strong>What Wakes the Deep</strong> was scary, cinematic, very well designed, but a bit frustrating a times. Having watched <strong>The Rig</strong> this year, which explores some similar themes, it was slightly surprising to walk out onto the platform and feel like I already had some sense of the layout.</p>



<p class="wp-block-paragraph">I played a lot of <strong>Framed</strong>, the <strong>New York Times word puzzles</strong> and an a life-timer subscriber to <strong>Puzzmo</strong>. Though not some much by the end of the year.</p>



<p class="wp-block-paragraph">I spent a lot of time role-playing, which includes planning and running games, and reading through rule books. </p>



<p class="wp-block-paragraph">I&#8217;ve been running a campaign of <strong>Agon</strong> which we finished up a few weeks ago. That was a lot of fun, although I struggled a bit with the system and pacing at times. I&#8217;m also now running <strong>Blades in the Dark</strong> for an in-person group. I even bought some new dice! While I love playing online, it&#8217;s just a delight to be able to get round a table with people and make some new friends.</p>



<p class="wp-block-paragraph">We finished Season 1 of that campaign just before Christmas. During the break one of other players ran a <strong>Mothership</strong> one-shot which was brilliant. He incorporated sound effects and even an app at one point. A great way to round off the year.</p>



<p class="wp-block-paragraph">In a bid to play even more TTRPGs, I also signed up to play an online session of <strong>Night of the Hogmen</strong> with a group of strangers. That turned out to be a lot of fun. Hogmen is a great one-shot  anyway, but the GM was great and the other players leant into the wild caper.</p>



<h2 class="wp-block-heading">Watching</h2>



<h3 class="wp-block-heading">Film</h3>



<p class="wp-block-paragraph">I watched <a href="https://letterboxd.com/ldodds/films/diary/for/2024/">126 films in 2024</a>, totalling 247 hours. 22 of these were rewatches.</p>



<figure class="wp-block-image size-large"><a href="https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png"><img loading="lazy" width="1024" height="614" data-attachment-id="3641" data-permalink="https://blog.ldodds.com/2025/02/09/reflecting-on-2024/72gws-ldodds-films-watched-in-2024/" data-orig-file="https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png" data-orig-size="1240,744" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="72Gws&amp;#8211;ldodds-films-watched-in-2024" data-image-description="" data-image-caption="" data-large-file="https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png?w=1024" src="https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png?w=1024" alt="" class="wp-image-3641" srcset="https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png?w=1024 1024w, https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png?w=150 150w, https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png?w=300 300w, https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png?w=768 768w, https://blog.ldodds.com/wp-content/uploads/2025/02/72gws-ldodds-films-watched-in-2024.png 1240w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Numbers of filmed I watched each month in 2024</figcaption></figure>



<p class="wp-block-paragraph">I was given an &#8220;Odeon Limitless&#8221; pass for my birthday this year. It&#8217;s the best gift I&#8217;ve ever had! I&#8217;ve been in the cinema pretty regularly this year: 32 times in total. One a few occasions I&#8217;ve just gone and watched a couple of films back to back. Decadent.</p>



<p class="wp-block-paragraph">My favourite films released in 2024 were:</p>



<ul class="wp-block-list">
<li><strong>The Substance</strong></li>



<li><strong>Conclave</strong></li>



<li><strong>The Fall Guy</strong></li>



<li><strong>Dune: Part Two</strong></li>



<li><strong>Kinds of Kindness</strong></li>
</ul>



<p class="wp-block-paragraph">But my favourites of the year were:</p>



<ul class="wp-block-list">
<li><strong>Conclave</strong>. I cannot state how good this film is. on every level</li>



<li><strong>The Substance</strong>. <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f62e.png" alt="😮" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>



<li><strong>Perfect Days</strong>. Lovely</li>



<li><strong>Past Lives</strong>. This one stayed with me for a while   </li>



<li><strong>Anatomy of a Fall</strong>. Gripping</li>
</ul>



<h3 class="wp-block-heading">TV</h3>



<p class="wp-block-paragraph"><strong>Masterchef</strong>, <strong>Bake-off</strong> and now <strong>The Traitors</strong> are now core viewing in our house. Rare occasions when the family clusters around the TV.</p>



<p class="wp-block-paragraph">Finished working through my <strong>Star Trek: Voyager</strong> rewatch and started in on <strong>Deep Space Nine</strong>. Started rewatching <strong>Black Mirror</strong> and they haven&#8217;t all aged well.</p>



<p class="wp-block-paragraph">Favourites of the new stuff:</p>



<ul class="wp-block-list">
<li><strong>Scavengers Reign</strong>. Amazing world-building. Obviously they&#8217;ve now gone and cancelled it, but the series is self-contained enough that it&#8217;s worth a watch</li>



<li><strong>The Rig</strong>. Enjoyable sci-fi</li>



<li><strong>Disclaimer</strong>. Gripping</li>



<li><strong>Severance</strong>. Stylish and mysterious. Please let them end this well</li>



<li><strong>Skeleton Crew</strong>. Of all the disney shows this year, I think this was the best. I enjoyed the <strong>Acolyte</strong> and <strong>Agatha All Along</strong> but neither landed as well as this.</li>
</ul>



<h2 class="wp-block-heading">Writing</h2>



<p class="wp-block-paragraph">I wrote <a href="https://blog.ldodds.com/2024/">14 blog posts in 2024</a>, totalling 10,993 words. </p>



<p class="wp-block-paragraph">That&#8217;s more than I remembered writing to be honest. </p>



<p class="wp-block-paragraph">I didn&#8217;t feel like I had much to say this year. Or that I had things to say that other people weren&#8217;t already saying better. And who needs to hear from another middle-aged white guy?</p>



<p class="wp-block-paragraph">That&#8217;s an odd place to end up given that I still believe I&#8217;m mostly writing for my own benefit. Given that I&#8217;m doing less research and analysis I have less need to organise my thoughts in the same way.</p>



<p class="wp-block-paragraph">That said, I think old-school blogging is more important than ever. So I may end up writing more this year but probably about different things? I don&#8217;t know.</p>



<p class="wp-block-paragraph">I do have a larger writing project planned but haven&#8217;t begun the drafting in earnest yet.</p>



<h2 class="wp-block-heading">Coding</h2>



<p class="wp-block-paragraph">I&#8217;m spending all day writing and review code, alongside planning and product work for Energy Sparks, so less interested in doing side projects and I have other uses for my spare time. Those films aren&#8217;t going to watch themselves.</p>



<p class="wp-block-paragraph">But I did <a href="https://blog.ldodds.com/2024/04/26/i-made-a-downpour-game/">make something in Downpour</a> and <a href="https://blog.ldodds.com/2024/04/25/doom-wad-bot/">I did finish that Doom WAD bot for Mastodon</a>. Although in December botsin.space shutdown so I&#8217;ve moved it to mastodon.me.uk.</p>



<p class="wp-block-paragraph">I still want to do more creative coding projects.</p>



<h2 class="wp-block-heading">Cooking</h2>



<p class="wp-block-paragraph">Like last year, I didn&#8217;t really log what I was cooking in 2024. I’ve&nbsp;<a href="http://pinboard.in/u:ldodds/t:recipes">bookmarked some recipes here</a>. Only one new cookbook this year: <a href="https://www.phaidon.com/store/cookbooks-food-and-drink/the-latin-american-cookbook-9781838663124/">The Latin American Cookbook by Virgilo Martinez</a>.</p>



<p class="wp-block-paragraph">Things that went down well with the family this year:</p>



<ul class="wp-block-list">
<li><a href="https://www.mindfood.com/recipe/roasted-nectarine-salad-with-feta-mint/">Roasted Nectarine Salad with Feta and Mint</a></li>



<li><a href="https://www.kitchensanctuary.com/tuscan-chicken/">Creamy Tuscan Chicken</a></li>



<li>the <a href="https://www.amazon.co.uk/Little-Korea-Iconic-dishes-recipes/dp/1925418162">panjeon</a> recipe from Little Korea</li>



<li>the tarts I made (pictured above) from some Spicy Pear and Mango chutney my dad made, along with a dollop of goat&#8217;s cheese</li>
</ul>



<p class="wp-block-paragraph">Still mostly vegetarian although some meat has crept back into the diet. Meera Sodha recipes are pretty reliable for midweek family dinners. </p>



<p class="wp-block-paragraph"><a href="https://seonkyounglongest.com/isaac-korean-street-toast/">Isaac Korean Street Toast</a> has now cemented itself as a pre-Xmas family dinner tradition.</p>



<h2 class="wp-block-heading">Gardening</h2>



<p class="wp-block-paragraph">A mixture of poor rain and no desire to do a big groundwork project — to rebuild the raised beds and refresh the soil — left me spending weekends doing other things.</p>



<p class="wp-block-paragraph">Grew some tomatoes in pots which did well. Otherwise did nothing else in 2024. Garden is in sore need of some attention.</p>



<h2 class="wp-block-heading">Working</h2>



<p class="wp-block-paragraph">Energy Sparks is going well. My decision to step away from consultancy roles to focus on building something was absolutely the right one and I continue to enjoy my day to day work. It&#8217;s varied, and I&#8217;m learning enough, that I&#8217;m not getting bored.</p>



<p class="wp-block-paragraph">Like every other charity and non-profit we&#8217;re still struggling to grow whilst remaining sustainable. The funding situation is always a worry but we&#8217;ve managed to shift our mix of revenue streams so we&#8217;re not as entirely reliant on grants as we were. </p>



<p class="wp-block-paragraph">By the end of 2024 we&#8217;d grown to 10 people and back up to 1000 schools again. The expanded team includes someone responsible for marketing and comms and I&#8217;m hoping we can add a business development / sales role next year. </p>



<p class="wp-block-paragraph">It is frustrating to see the government pour a lot of money into expensive retrofit projects for schools, when there are so many gains to be made through simple low cost energy efficiency interventions. There are a lot of schools that need refits and investment, without a doubt. But energy efficiency advice and the data infrastructure needed to support that also needs investment. Will write more about that another time.</p>



<p class="wp-block-paragraph">In terms of product development and architecture we&#8217;ve made some satisfying improvements. By the end of 2024 we&#8217;d grown to 10 people and back up to 1000 schools again. But we&#8217;ve improved how we deploy and manage our infrastructure, pruned the codebase, sped up some core features, and have a good sense of what other features might be useful. But as always, more user research needed.</p>



<h2 class="wp-block-heading">Everything Else</h2>



<p class="wp-block-paragraph">Last year I decided I wanted to get out more and meet some new people locally. </p>



<p class="wp-block-paragraph">I&#8217;m not sure that going to the cinema counts, as I&#8217;m usually say by myself in a darkened room. But I&#8217;m still <em>out</em>. And I have ended up chatting to other regular cinema goers whilst we&#8217;re waiting for the film to start.</p>



<p class="wp-block-paragraph">Early in the year I went and spent a few sessions volunteering at Bath Community Farm which was brilliant. I cut down some trees, helped to build a woodland wildlife garden, and planted up some new trees elsewhere on the site. It was a lot of hard work but in a beautiful setting. I spent time working alongside and chatting to a bunch of the loveliest people. Tiring but came away with a sense of peace and connection which I haven&#8217;t felt in a while.</p>



<p class="wp-block-paragraph">Unfortunately there weren&#8217;t many of these opportunities as those events were part of a funded project. But still keeping an eye out for other chances.</p>



<p class="wp-block-paragraph">I&#8217;m also out now pretty regularly playing TTRPGs with a new local group. So have met a bunch of other nice people and we&#8217;ve had some great sessions. For several of them it&#8217;s their first time playing any TTRPG, so I&#8217;m happy to be able to give them that opportunity.</p>



<p class="wp-block-paragraph">Getting out to gigs also also been great.</p>



<p class="wp-block-paragraph">Spent some money improving my desk layout and setup so less prone to back and neck aches.</p>



<p class="wp-block-paragraph">Did a lot of DIY over the summer including redecorating the kitchen. We&#8217;ve been wanting to get our hall replastered and decorated for ages, so bit the bullet and go that done too. Kitchen roof has started leaking so hoping to get that sorted soon.</p>



<p class="wp-block-paragraph">I checked out of social media as the US election hit its peak. Deleted apps and logged out of everything. Finally deleted my twitter account. Spent time reading and filling out my RSS reader with new blogs instead.</p>



<p class="wp-block-paragraph">I really haven&#8217;t missed it. While I&#8217;ve been checking in again on Bluesky and Mastodon a bit recently as an experiment, I&#8217;m not sure it&#8217;s working for me anymore. </p>



<p class="wp-block-paragraph">There are better ways to stay informed. There are better ways to feel part of a community. I do not need to witness every batshit or distressing thing that happens or read all of the analysis. None of that really impacts my sense of what is <em>right</em>. </p>



<p class="wp-block-paragraph">Noticed an odd patch inside my mouth in November. Looks benign but ended up having to go for a biopsy. I was a brave boy but they didn&#8217;t give me a sticker. Still waiting on the results which I should get in February. <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f91e-1f3fb.png" alt="🤞🏻" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2024/11/01/what-does-community-driven-data-governance-look-like/">
	<title>What does community-driven data governance look like?</title>
	<link>https://blog.ldodds.com/2024/11/01/what-does-community-driven-data-governance-look-like/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2024-11-01T13:37:17Z</dc:date>
			<dc:subject><![CDATA[Data Infrastructure]]></dc:subject>
		<dc:subject><![CDATA[ai]]></dc:subject>

			<description><![CDATA[Some idle thoughts for a Friday afternoon. I was just taking a look at Source.Plus a dataset of public domain images for training Foundation models. It&#8217;s a project of Spawning.ai which is working to build &#8220;data governance for generative AI&#8221;. I have some thoughts on the tools they&#8217;re building, but that&#8217;s not what I&#8217;m writing &#8230; <a href="https://blog.ldodds.com/2024/11/01/what-does-community-driven-data-governance-look-like/" class="more-link">Continue reading <span class="screen-reader-text">What does community-driven data governance look&#160;like?</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">Some idle thoughts for a Friday afternoon.</p>



<p class="wp-block-paragraph">I was just taking a look at <a href="https://source.plus/">Source.Plus</a> a dataset of public domain images for training Foundation models. It&#8217;s a project of <a href="https://spawning.ai/about">Spawning.ai</a> which is working to build &#8220;data governance for generative AI&#8221;. I have some thoughts on the tools they&#8217;re building, but that&#8217;s not what I&#8217;m writing about here.</p>



<p class="wp-block-paragraph">It was this statement which caught my attention: &#8220;<em>Through the Source.Plus platform, we also introduce novel, community-driven dataset governance mechanisms that reduce harm and support reproducibility over time.</em>&#8220;</p>



<p class="wp-block-paragraph">I think its early days for the project, so there&#8217;s no much detail about what that novel governance might look like. Although I assume it will be based on the Spawning.ai tools.</p>



<p class="wp-block-paragraph">What exists at present is <a href="https://source.plus/about">a brief summary</a> of how the Source.Plus dataset is managed and specifically how it deals with representation, safety, copyright, etc. And links to relevant policies, e.g. <a href="https://source.plus/takedown-policy">the Takedown Policy</a> which outlines a process that kicks in if content is flagged.</p>



<p class="wp-block-paragraph">I think what I was expecting to see, is what we called &#8220;<a href="https://collaborative-data.theodi.org/patterns/project-governance/visible-processes">Visible Processes</a>&#8221; in <a href="https://collaborative-data.theodi.org/">Collaborative Data Patterns</a>: not just a policy document but a set of online tools that would provide:</p>



<ul class="wp-block-list">
<li><em>a summary of activity</em>, e.g. how many cases are open, how many have been resolved (and how), and how long it takes requests to be completed</li>



<li><em>insights into specific cases</em>, e.g. at what stage is my request to take down some content?</li>



<li><em>some ability for the community to engage with that process once started</em>, e.g. to upvote a request to add a problematic piece of content or additional evidence that might be useful in the process</li>



<li>&#8230;and maybe some detail on <em>who is driving that process</em>, who are the people behind the email addresses and contact forms, and how might others get involved?</li>
</ul>



<p class="wp-block-paragraph">Obviously there&#8217;s privacy and safety issues that need to be considered in all of the above. You need to protect both staff, rights holders and contributors for multiple reasons.</p>



<p class="wp-block-paragraph">I think this type of framework is what I would expect to see as a minimum around a &#8220;<em>community-driven dataset governance mechanism</em>&#8220;.</p>



<p class="wp-block-paragraph">But to me community-driven means more than <em>community-initiated</em>. The community should be involved at every step of the process. And that means more than just dealing with takedowns and copyright. It means shaping the content and organisation of the dataset itself. </p>



<p class="wp-block-paragraph">We captured <a href="https://collaborative-data.theodi.org/patterns/project-governance">some more patterns around that</a> but they&#8217;re clearly not exhaustive.</p>



<p class="wp-block-paragraph">The value of capturing these types of patterns is that it becomes easier for different projects to adopt similar approaches, allows the creation of shared infrastructure and tools, and builds community expectations around what good looks like.</p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2024/10/19/comments-on-a-data-for-ai-taxonomy/">
	<title>Comments on &#8220;A data for AI taxonomy&#8221;</title>
	<link>https://blog.ldodds.com/2024/10/19/comments-on-a-data-for-ai-taxonomy/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2024-10-19T12:12:54Z</dc:date>
			<dc:subject><![CDATA[Data]]></dc:subject>
		<dc:subject><![CDATA[Data Infrastructure]]></dc:subject>
		<dc:subject><![CDATA[ai]]></dc:subject>

			<description><![CDATA[Jack Hardinges and Elena Simperl recently published a taxonomy to describe the data relevant to AI models and systems. Their goal is to help to better distinguish between the different types of data relevant to developing, using and monitoring AI models and systems to help to better distinguish them and thereby add some nuance to &#8230; <a href="https://blog.ldodds.com/2024/10/19/comments-on-a-data-for-ai-taxonomy/" class="more-link">Continue reading <span class="screen-reader-text">Comments on &#8220;A data for AI&#160;taxonomy&#8221;</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">Jack Hardinges and Elena Simperl recently published <a href="https://theodi.org/news-and-events/blog/a-data-for-ai-taxonomy/">a taxonomy to describe the data relevant to AI models and systems</a>. Their goal is to help to better distinguish between the different types of data relevant to developing, using and monitoring AI models and systems to help to better distinguish them and thereby add some nuance to debates around what type of data infrastructure and governance is required.</p>



<p class="wp-block-paragraph">Datasets are shaped by various factors including their contents, their intended use, the communities involved in collecting and using them, and expectations around their longevity. </p>



<p class="wp-block-paragraph">For example a dataset of images will be organised very differently to one consisting of tabular data. And, if that same set of tabular data contains geospatial coordinates it might be published using a different set of standards by an organisation working in the geospatial community, than one working in local government (e.g. Geopackage vs a CSV file). One published as the result of a research project might be uploaded to an archive whereas another might be published via an API. Etc, etc.</p>



<p class="wp-block-paragraph">A few years ago I wrote a paper about <a href="https://www.sciencedirect.com/science/article/pii/S2666389920302324">different dataset archetypes</a> which was intended to help inform this kind of discussion by highlighting the different characteristics of some commonly produced datasets.</p>



<p class="wp-block-paragraph">So I read the taxonomy with some interest. Here are a few notes on some of the core definitions.</p>



<h2 class="wp-block-heading">Existing data</h2>



<p class="wp-block-paragraph">Given that anything digital can now be computed by AI, or any other system, I&#8217;m uneasy about using &#8220;existing data&#8221; as the framing for all text, audio, images, movies, code, etc. Because most people won&#8217;t think of that digital stuff as &#8220;data&#8221;. </p>



<p class="wp-block-paragraph">The taxonomy sets out to define different types of dataset, so it&#8217;s understandable that it attempts to define the &#8220;everything else&#8221;. But if the intention is to help shed light on the different types of inputs and outputs of AI systems, for a broader audience, then a better label might be more appropriate.</p>



<p class="wp-block-paragraph">The current definition of &#8220;<em>Existing data</em>&#8221; encompasses big collections of digital objects harvested from the web, unstructured corpuses of text and imagery, as well as structured datasets, etc. </p>



<p class="wp-block-paragraph">Some of this &#8220;data&#8221; might only exist in aggregate as the result of creating a training set. Or may have been intentionally published and structured with a specific set of use cases in mind that did not originally include AI.  </p>



<p class="wp-block-paragraph">I find it hard to think of something like the web as a single dataset. It doesn&#8217;t fit <a href="https://blog.ldodds.com/2017/10/23/what-is-a-dataset-part-2-a-working-definition/">my personal definition</a>.</p>



<h2 class="wp-block-heading">Training data</h2>



<p class="wp-block-paragraph">I also don&#8217;t think the taxonomy adequately distinguishes between &#8220;<em>Existing data</em>&#8221; and &#8220;<em>Training data</em>&#8220;. </p>



<p class="wp-block-paragraph">One of the defining characteristics of foundation models are that they are training on very large, unstructured datasets, usually harvested from the web, as opposed to more purposefully curated data intended for use in other types of machine-learning systems. </p>



<p class="wp-block-paragraph">All of the current concerns around foundation models derive from this feature. </p>



<p class="wp-block-paragraph">Attempts to retrofit governance and solve licensing issues to outputs of web crawling look different to more traditional approaches of building datasets where gaining consent and permission because there is a closer connection between those people represented in, or contributing to a dataset, and those producing it.</p>



<p class="wp-block-paragraph">The taxonomy references Common Crawl as &#8220;<em>Training data</em>&#8221; but <a href="https://blog.ldodds.com/2023/09/23/will-ai-hamper-our-ability-to-crawl-the-web-for-useful-data/">its use, at least originally, is much broader</a>. The openly licensed StackOverflow dataset has been used in a variety of ways, but <a href="https://blog.ldodds.com/2024/05/07/acceptable-answers-only/">it&#8217;s only recently that its use to train foundation models has caused concerns</a>. Whereas ImageNet is nearly 10 years old and has been intentionally published for machine-learning research.</p>



<p class="wp-block-paragraph">Some datasets are intentionally produced as &#8220;<em>Training data</em>&#8220;. Others become training data, because they are used that way.</p>



<h2 class="wp-block-heading">Reference and Local data</h2>



<p class="wp-block-paragraph">One way that AI systems try to incorporate additional data, e.g. facts that were not available when the model was training, is through techniques like &#8220;Retrieval Augmented Generation&#8221; (RAG). It&#8217;s a popular technique due to its ability to incorporate new or private data into a system that is otherwise powered by a foundation model training on a broad set of sources.</p>



<p class="wp-block-paragraph">The same dataset might feature as both &#8220;<em>Reference data</em>&#8221; and &#8220;<em>Local data</em>&#8221; in a deployed same system. E.g. using Wikidata as a source of labelling for a training or fine-tuning dataset AND as a knowledge base that is queried during deployment.</p>



<p class="wp-block-paragraph">&#8220;<em>Local data</em>&#8221; to me implies data local to a deployment or use of a system, e.g. that of a specific organisation or user. But it might also include any other &#8220;<em>existing data</em>&#8220;.</p>



<p class="wp-block-paragraph">A shorter summary of my feedback might be that this is less of a taxonomy of data, e.g. which might be used to classify or describe existing data, and more of the <em>roles</em> in which a dataset might participate in an AI workflow or system.</p>



<p class="wp-block-paragraph">Finally, going back to my introduction, the reason I&#8217;m interested in understanding the roles of different datasets in AI systems and workflows is because that might further shape how that data is being accessed, used and shared. Or provide useful insights into the types of governance models they need.</p>



<p class="wp-block-paragraph">Training and fine-tuning datasets need to be accessible as a whole. So that implies that they will be accessed and published as a complete dataset. So we may need systems of <a href="https://blog.ldodds.com/2020/04/17/why-is-change-discovery-important-for-open-data/">change discovery</a> and retraction to deal with issues found in that data. </p>



<p class="wp-block-paragraph">If <a href="https://theodi.org/insights/reports/comparing-decentralised-data-publishing-initiatives-report/">data is published in a decentralised way</a> then an aggregate dataset may need to be created before it can be used in training. That creates another layer of governance.</p>



<p class="wp-block-paragraph">Whereas data included via RAG is likely to be more API based. So the responses from that API can be altered in real-time if issues are discovered. Those APIs are also governed by additional <a href="https://blog.ldodds.com/2020/02/21/three-types-of-agreement-that-shape-your-use-of-data/">terms that may shape use of the data</a>. Existing APIs might be pressed into service to help to deploy AI systems without their providers being aware of those new use cases. Etc, etc.</p>
]]></content:encoded>
	
	</item>
<item rdf:about="https://blog.ldodds.com/2024/10/03/how-to-accidentally-ddos-yourself/">
	<title>How to accidentally DDOS yourself</title>
	<link>https://blog.ldodds.com/2024/10/03/how-to-accidentally-ddos-yourself/</link>

	<dc:creator><![CDATA[Leigh Dodds]]></dc:creator>
	<dc:date>2024-10-03T12:31:22Z</dc:date>
			<dc:subject><![CDATA[Web]]></dc:subject>

			<description><![CDATA[We had some performance issues last week. Entirely of our own making but not in the usual way. We nearly DDOS ourselves by sending out emails. We do a lot of analysis in Energy Sparks and, to be honest, some of it needs optimising. Tickets are in the backlog and we are exploring solutions. Anyway, &#8230; <a href="https://blog.ldodds.com/2024/10/03/how-to-accidentally-ddos-yourself/" class="more-link">Continue reading <span class="screen-reader-text">How to accidentally DDOS&#160;yourself</span> <span class="meta-nav">&#8594;</span></a>]]></description>
		<content:encoded><![CDATA[
<p class="wp-block-paragraph">We had some performance issues last week. Entirely of our own making but not in the usual way. </p>



<p class="wp-block-paragraph">We nearly DDOS ourselves by sending out emails.</p>



<p class="wp-block-paragraph">We do a lot of analysis in <a href="https://energysparks.uk">Energy Sparks</a> and, to be honest, some of it needs optimising. Tickets are in the backlog and we are exploring solutions.</p>



<p class="wp-block-paragraph">Anyway, one morning last week we had a sudden spike in memory and CPU usage. This was during the period when we send out our weekly emails to users. The emails signpost them to the latest analysis, highlighting any key issues in their energy consumption. For example that their baseload has crept up, so maybe devices are being left on. Or that their heating is running during a holiday period.</p>



<p class="wp-block-paragraph">Alarms started going off, so I started investigating. Remedial action was taken and we stabilised things while digging for the root cause.</p>



<p class="wp-block-paragraph">I found an issue in the email sending code pretty quickly and fixed around it. </p>



<p class="wp-block-paragraph">But as I normally do when this happens, I did a full run through of our monitoring and logs to identify other contributing factors. Sometimes it&#8217;s not that the software has changed. It might be the context in which it is running. So I try to avoid looking at just the obvious fixes.</p>



<p class="wp-block-paragraph">While reviewing the server logs I noticed we were getting a lot of HEAD requests during the period of slow performance. Like a LOT. </p>



<p class="wp-block-paragraph">Then I noticed that all these were for URLs originating in the emails that we were sending out that morning.</p>



<p class="wp-block-paragraph">While we get good engagement with these emails, it wasn&#8217;t normal user traffic. It was something else. Checking the User Agents in the requests, I realised what was happening.</p>



<p class="wp-block-paragraph">At least some of the schools to which we are sending email are using security software that scans incoming emails. I assume this is common in a lot of organisations these days.</p>



<p class="wp-block-paragraph">That software was reading the emails then doing HEAD requests on all the links. </p>



<p class="wp-block-paragraph">I assume this is to check SSL certificates and look for dodgy redirects that might be associated with phishing.</p>



<p class="wp-block-paragraph">The more emails we sent, the more HEAD requests we got. And the majority of those requests were hitting the pages that I said needed optimising. </p>



<p class="wp-block-paragraph">As we were struggling to send out emails, the more we sent, the more were were being hit with waves of HEAD requests to pages that were causing additional performance issues. We were basically DDOSing ourselves with the help of some email security software.</p>



<p class="wp-block-paragraph">Cue those alarms.</p>



<p class="wp-block-paragraph">Now the extra fun thing is that we hadn&#8217;t implemented a HEAD handler for these URLs. But Rails silently converts a HEAD request to a GET. Before throwing away the response and just serving the headers. So application was struggling to produce analysis that was immediately thrown away.</p>



<p class="wp-block-paragraph">I have no idea how long this has been happening. Perhaps for a while, and we&#8217;ve just grown to the point where its a problem. Or maybe more of the recently joined schools are using different software. I don&#8217;t know and haven&#8217;t dug further.</p>



<p class="wp-block-paragraph">But this type of email scanning behaviour was new to me. I don&#8217;t know whether these email scanners routinely follow all links, or just a sample. But there didn&#8217;t seem to be any throttling. Or much use of user agents headers to help identify the source. This seems a bit unfriendly.</p>



<p class="wp-block-paragraph">Clearly we had issues to fix in the application. And those performance optimisations are getting a bump up the backlog. But this was an amusing little incident and a nice example of unexpected interactions between systems.</p>



<p class="wp-block-paragraph">Lessons have been learned.</p>
]]></content:encoded>
	
	</item>
</rdf:RDF>
