Excess deaths in the UK 2020-2021

Weekly death registrations during 2020-2021 in each part of the UK as % difference from same week’s average 2015-2019

Total weekly death registrations (England)

Total weekly death registrations (Scotland)

Total weekly death registrations (Wales)

Total weekly death registrations (N Ireland)



  1. During the Covid-19 pandemic the 3 relevant statistics agencies in the UK state (ONS, NRS and NISRA) publish provisional data on weekly death registrations in each jurisdiction.
  2. Presenting this unprecedented spike in mortality as a percentage excess compared to 5 years previously strikes me as the most accessible measure to grasp the serious nature of what we are experiencing. It also facilitates a reasonable comparison between the different parts of the UK.
  3. I'd like to have compared the UK data with the equivalent data from the Republic of Ireland, but unfortunately they don't publish their death registration data until the following year.
  4. Scotland's data (NRS) is published just 5 days after the week ends, i.e. every Wednesday, then comes Northern Ireland's data (NISRA) each Friday and finally the data for England & Wales (ONS) coming out the following Tuesday.
  5. In Northern Ireland, NISRA interprets "Week 1" as the week ending 10 Jan 2020, whereas the other agencies list "Week 1" as the week ending 3 Jan 2020. For the purposes of the charts above, I am using Week 1 as the week ending 3 Jan 2020 across all agencies.
  6. The european mortality monitoring (EuroMOMO) project uses a more statistically robust methodology for comparing excess deaths across different Europe: the z-score. This is a more standardised measurement, for sure, but it isn't as immediately relateable, in my opinion, as knowing how many more people are dying each week in percentage terms.
  7. The comparison charts on EuroMOMO for excess mortality in different European countries are often referenced to show that the UK stands out with much larger z-scores than other countries, particularly the Republic of Ireland. However I can't find a way to examine the data behind the EuroMOMO charts and they have themselves explicitly highlighted that the data from the Irish state is problematic as death registration procedures have been curtailed in the Republic of Ireland during the pandemic.

Vegan macaroni no cheese, serves 3

This is a tasty, tried and tested vegan version of Mac’n’cheese.


  • 250g macaroni pasta
  • 1.25 cups (300ml) soya milk
  • 2 tbsp (30ml) olive oil
  • 2 heaped tbsp (50ml) plain flour
  • 1/2 cup (125ml) nutritional yeast flakes
  • 1/2 tsp (2.5ml) garlic powder
  • 1/2 tsp (2.5ml) chilli flakes
  • 1/2 tsp (2.5ml) salt


  1. Cook your pasta as per the directions on the packet
  2. In a small/medium pan, heat the 2 tsbp olive oil over medium heat.
  3. Add 2 heaped tbsp of flour and stir vigorously to make a roux.
  4. Add the soya milk slowly and stir constantly to incorporate the liquid.
  5. Reduce the heat and continue cooking the sauce for about 8mins, stirring frequently.
  6. Remove from the heat and stir in the rest of the ingredients: 1/2 cup (125ml) nutritional yeast flakes and the garlic powder, chilli flakes and salt
  7. Drain the pasta and empty it into a casserole dish and then cover it with the sauce, stirring it well so that the pasta and sauce are well mixed.
  8. (Optional) Pop the dish uncovered into the oven at 200°C for 5-6mins to make the top a bit crispy.

You’ll get 3 servings from this recipe.

Polenta recipe, serves 2-3

There is something comforting about a big pot of polenta. This is a tried and tested vegan version.


  • 4 cups (1 litre) of water
  • 1 tsp (5ml) salt
  • 1 cup (250ml) of polenta (cornmeal)
  • 2 tbsp (30ml) vegan marg
  • 1/2 cup (125ml) of nutritional yeast flakes


  1. Bring a litre of water and a teaspoon of salt to the boil in a large saucepan.
  2. Pour 1 cup (250ml) of polenta slowly into boiling water, stirring until all the polenta is added and there are no lumps.
  3. Reduce heat to low and simmer with lid on the pan for 30mins, stirring the mixture well approximately every 5mins. After 30mins the polenta texture should be creamy and the individual grains tender.
  4. Switch off the heat and stir in 2 tbsp of margarine and the 1/2 cup (125ml) of nutritional yeast flakes. Leave covered for 5mins to thicken some more before serving.

The polenta will become more rubbery as it cools down and is good to eat hot or cold.

A la vora de l’Ebre

Olost Catalonia

On 15 July 2018 it was a great honour and pleasure to be invited by my friend Fani Fortet to play a concert in her home town of Olost in Catalonia. Fani invited the fabulous violinist Simone Lambregts to join us and we had an hour or so to rehearse in the afternoon. As a special challenge for our set of songs, I suggested we adapt the Dick Gaughan song “Both Sides the Tweed” with a Catalan chorus as I felt that the sentiment in the song of friendship across borders was relevant to the Catalan situation.

With most of the “heavy wordsmith lifting” done by Simone, the three of us managed to create a Catalan chorus that worked with the melody and carried the sentiment. As a singer with very little knowledge of Catalan, it was quite daunting to attempt to sing this newborn chorus, but Simone did her best to write it out in a simplified form for me to give it my best shot. I think the result was quite a beautiful achievement.

A la vora de l’Ebre / Both Sides the Tweed

What’s the Spring, breathing jasmine and rose?
What’s the Summer, with all its gay train?
Or the splendour of Autumn to those,
Who’ve bartered their freedom for gain?

Abraceu l’amor de la terra
i també l’amor de la gent.
Que dignitat i amistat s’uneixin
i a la vora de l’Ebre floreixin.

No sweetness the senses can cheer
That corruption and bribery bind
No brightness that gloom can e’er clear
For honour’s the sum of the mind

Abraceu l’amor de la terra
i també l’amor de la gent.
Que dignitat i amistat s’uneixin
i a la vora de l’Ebre floreixin.

Let virtue distinguish the brave
Place riches in lowest degree
Call him poorest, who can be a slave
Him richest, who dares to be free

Abraceu l’amor de la terra
i també l’amor de la gent.
Que dignitat i amistat s’uneixin
i a la vora de l’Ebre floreixin.

Let the love of our land’s sacred rights
To the love of our people succeed.
Let friendship and honour unite
And flourish on both sides the Tweed.

Abraceu l’amor de la terra
i també l’amor de la gent.
Que dignitat i amistat s’uneixin
i a la vora de l’Ebre floreixin.

Original lyrics by Dick Gaughan
Catalan chorus by Simone Lambregts, Fani Fortet and Gerry Mulvenna

Mapping the 2017 local elections in Scotland #council17

I’ve always been an anorak around elections – it’s probably more about the numbers than the politics and Single Transferable Vote (STV) elections are as entertaining as they come. I’m enthusiastic about STV from a democratic perspective also, because it encourages a less tribal form of voting mentality. Political choices are complex and it makes sense that you can find policies to support across a spectrum of parties or prospective politicians. To be honest, I’m not a party political type of person, I prefer to stay untethered to party interests, so the notion of a party list vote (as in part of the Scottish parliament elections and the entirety of the European parliament vote in Scotland), where you are voting for a single party and not even a person, is an uncomfortable form of democratic process for me.

However, every 5 years, Scotland gets a shot at a Single Transferable Vote election in the council elections here. Turnout is generally low, so I’m keen to do what I can to encourage voters to engage with this election in the hope that it will promote the suitability of STV for other elections in Scotland. Having seen the wonderful visualisations made available for the snap Assembly election in the north of Ireland in March 2017, I was keen to implement something similar for the Scottish local elections in May 2017. It would be a challenge, not just because it would be like #AE17 times 32 since each council election is effectively a mini-assembly with wards for constituencies with multiple seats in each ward, but I also soon discovered that there is no detailed aggregated election data for the two previous STV elections in Scotland (2007 & 2012). Each council has a statutory responsibility to publish results in PDF form on their websites, so that means the data for Scotland is spread across 32 councils in a whole variety of different layouts to a varying degree of detail.

This same scatter-gun approach to presentation of data affects the candidate data also, with the formal statutory documents called “Statement of Persons Notified” (SOPNs) being the main source of information about who is standing where. Again each council publishes these independently in slightly varying formats. Fortunately some grassroots democracy enthusiasts rally round the Democracy Club website to painstakingly go through each SOPN (across the UK) to create a single source of candidate data for elections. Not long after the 32 SOPNs were published in Scotland, the Democracy Club had collated the information on each SOPN into a complete set of candidate data. I saw there was still a gap to fill in presenting this data in an accessible form, so I took the framework used by @electionsNI and adapted it to the Scottish candidate data.

Where the lack of joined-up resources for election data was frustrating, the tools and resources available to work with boundary mapping is a different story altogether. This was my first venture into programming with map data and I was pleasantly surprised to find out how easy it is to work with, given all the freely available and well-designed resources you can use. Here are some of the resources I used to put together the mapping website.

  1. The Local Government Boundary Commission for Scotland publishes each council area as shapefile data packages, which is the raw material for GIS software applications.
  2. There is an open source application QGIS which you can use to load and manipulate these shapefile packages. It’s really easy to use – the ZIP files containing the shapefile data can be loaded directly.
  3. Most web-based mapping applications will need to read boundary data in latitude/longitude form stored in a GEOJSON datafile. THe Lat/Long coordinates standard used is technically referred to in GIS applications as EPSG:4326 (European Petroleum Survey Group). To extract this from QGIS, you load the shapefile ZIP package and then right-click its layer description and select Save As…. Choose GEOJSON as the output format and EPSG:4326 as the CRS (Coordinate Reference System), then browse for your output filename and click OK to create the GEOJSON file.
  4. The data from these boundary shapefiles can be very very large, particularly the coastal council areas, where every twist and turn along the coast and every little island must be mapped as polygons made of little straight lines from one point to the next. The likes of Orkney, Shetland or the Western Isleas were over 10Mbytes in size once the GEOJSON was extract from QGIS. Fortunately there is a fabulous online application called Map Shaper to effortlessly simplify this map data as we only need approximate boundaries for this application. Map Shaper can take several different data formats as input including GEOJSON with EPSG:4326 coordinates, so once the data is loaded, you can just select Simplify and use a slider to take the data accuracy from 100% down to the lowest level that preserves the general gist of the boundaries. Typically with could be anywhere from 8% to 2%, which yield great reductions in filesizes. Achieving this trade-off between mapping precision and file size is vital to building a website that is quick to present the maps and respond to user input.
  5. The framework implemented by @electionsNI made use of the Leaflet javascript module, which is a lightweight mapping library linked to Mapbox and OpensSreetMap.

The website http://council17.mulvenna.org went live at about 1am on Sun 16 April 2017 and was an instant hit with users, grateful at last to get a clear picture of who was standing where in the council election. The site was accessed by 10,000 unique IP addresses in the first 24 hours. I’m continuing to add features to the site in the run-up to the election on 4 May 2017.

“Rutherglen South is in the north-west of South Lanarkshire, which is to the east of East Ayrshire…”

Scotland, like a life-long smoker contemplating quitting

It struck me, the other day, that the Independence Referendum debate in Scotland feels like the internal dialogue in the head of a life-long smoker. Plenty of information detailing the benefits of kicking the habit is calling out to you, but you blot it all out by convincing yourself “I like smoking”, “it helps me relax”, “I can’t really see me stopping”, “I’ve always done it”, “I like to hang with all the cool people in the smoking zone” and countless other delusions you use to avoid making that leap of faith in your own will power and taking responsibility for your future. Once upon a time you reckoned you were a smoker and you were going to stay a smoker, but now you’re not too sure. You’re swithering – your kids are nipping your head about it almost daily now and for the first time, you can actually see yourself in a smoke-free future.

Alternative visions for Scotland
Alternative visions for Scotland


Clearly this analogy is a product of my own pro-Independence position and the fact that I decided to stop smoking earlier this month. It certainly paints the No campaign in a tongue-in-cheek unhealthy light, but I think it resonates with the current state of the referendum campaign. I believe we’re approaching a 50-50 tilting point in voting intentions and the momentum is only going in one direction: towards YES. The lifelong smoker is actually swithering – he or she can do this. It’s only really the fear of change and the path of least resistance that is stopping you. Smoking isn’t offering any life-enhancing vision for the future. There are so many reasons to ring the changes. It won’t be easy and there might be the odd slip-up in the transition, but a confidence is growing that a change of lifestyle is within your grasp.

Should Scotland be a non-smoker? On 18th September 2014, I’m voting YES.

Further Obstacles and Progress

Initially i had just used variables for my character information but i decided ti would actually be a lot better if i used records so i created a character information record but after i had changed all the names within the program things like selecting the weapon no longer worked. after some time though i manged to change about the way in which the weapons were selected so that it now worked again and while i was at it deiced to add further code that would display an image of the weapon you have chosen, also the change to a record data format seemed to make the gender validation stop working but not the race validation which worked in virtually the same way and this problem is still as of yet unsolved. also recently i decided to add an inventory array and a poison item to be added to this inventory with more items that could be added later and this lead to me crating a system for which to apply this poison to your weapon which involved a button that could be pressed that appears when you gain the poison and the click of that button changes a Boolean variable to true and changes the image of your weapon to look as though it has poison on it and this will be important at the end of the game.


I keep forgetting to blog after working on the program so I’m goign to sum up the main obstacles I have faced so far. Initially i couldn’t get the combo box i was using i my program to work and since i am doing a text adventure the input of your choice is quite an important bit so it was vital i got it working but for some reason it just would not work so i switched to a text box which did work but as you can imagine that meant that you could enter anything and if you did not enter the correct option the program would crash so i decided to try and make the combo box work again and it soddenly came to me how to get it working and then it started working. the next big problem was that i could not get the moving on from each stage based on the option you choose working since for some reason it wouldn’t use the variables correctly so i created3 universal variables that each option would be set two in each stage and that worked since that would mean after each section the variables would be correct and move on in the game and not just keep doing the same stage over and over again, i then used a case statement that would take you to the next stage depending on what choice you made. so i then had a working selection system and a working method of moving through the game. i will talk about the other obstacles I’ve come across so far and what other developments i have made so far tomorrow as this post would be very long other wise, so i’m splitting it into two

Project Propsal

Advanced Higher Computing Project Proposal

For my Advanced Higher Project I intend to create a Text adventure game in which descriptive text will appear on the screen offering you choices and you can enter your choice and the output box on the screen will tell you what happened because of your choices and what you can do now. There is to be a basic interface with an output screen and a combo box so as to input your choice. There will also be a box detail your character details and further necessary buttons for interaction like save game and load game.

Find me on Mastodon