October 2022



The boys were too frequently pulling on their lead when wearing harnesses, so we did a bit of slip lead training, and now they’ve got collars and they’re walking much more nicely :)


I’ve mentioned in past posts that I run a handful of VPSs so that I can emerge from the ‘right’ country on the Internet when required. My venerable VPS in the US fell over, and the hosting service didn’t do a great job of bringing it back up, and it was on the now too long in the tooth OpenVZ platform. So I decided that if I needed to rebuild a server it might as well be a new server, and after a quick look at LowEndBox I found a decent KVM based plan with Racknerd. So far, so good.

Back to the Bay

My last long haul trip before the Covid lockdowns was to Palo Alto, and I returned to the Bay Area for QConSF. The conference was great, and things seemed pretty much as I expected them from the past. It was also nice to finally meet some of my colleagues face to face.

Mini review United Premium Plus

My flights out and back were both packed, which made things ‘interesting’ from the perspective of trying to ensure some comfort. I chickened out of waiting for check-in and paid for Economy Plus on the way out to get an aisle seat with decent legroom. For the return I was offered upgrades to Premium Plus at $529 and Polaris at $2199, so I gave Premium Plus a go.

The ‘hard’ product isn’t much of a step up from Economy Plus. A little more seat width (and much wider fixed armrests, so no risk of next door spilling over), a little more leg room, a bigger screen for the in flight entertainment. But the same food as economy, the same toilets as economy, the same cabin crew as economy. With 2-3-2 seats, it might look a bit like biz class before it became lie flat, but it’s not that comfortable, and there’s nobody offering port and cheese after dinner.

I ended up with a middle seat, which essentially left me trapped between the strangers either side of me trying to get some sleep.

Would I pay sticker price for this? No.

Would I pay to upgrade again? Probably not, especially if I already had an Economy Plus legroom seat locked in.

Do I think the whole thing is a cynical ploy to bring back 4 class cabins and drive higher price differentiation for Polaris? Yes. In the before times I’d generally pick up Polaris upgrades for $769, sadly it looks like those days are over, at least for the newly configured fleet.

20 years

The start of the month marked 20 years since we moved into our house. When we bought the place we had no intention to stay, but over the years we’ve made it what we want it to be, and grown to love the neighbourhood. I’m still not sure it’s our ‘forever’ home, but it will take some effort now to find a place we live in for longer.

Solar Diary

October with 253.5 kWh was much less productive than September at 369.9, and it’s almost possible to see the slide down through the month:

The sun getting lower was also noticeable as I was out on my bike in the last days before everything got wet and leafy.

Meanwhile it’s taken the whole month for EDF to not process my Smart Export Guarantee application, and tell me that they’re missing details needed for an Export MPAN (something I already have, and told them about). It’s almost like they don’t want to pay me for the electricity I’m presently giving away to the grid :/


At home I have a bunch of SSH tunnels from a VM to my various virtual private servers in various places around the world, so I can direct my web traffic through those exit points when needed. I’ve written before about using autossh to do this.

But when I’m travelling I don’t have my home network, and VMs, I generally have an OpenWRT based travel router.


OpenWRT has an autossh package, but it makes use of the default Dropbear SSH implementation, which doesn’t support dynamic tunnels needed to provide a SOCKS proxy. Thankfully there’s also an sshtunnel package which uses openssh-client under the hood, and that does support dynamic tunnels.

I found this gist from DerekGn very helpful (as tunnelD wasn’t previously documented in the OpenWRT wiki), but I also run into a few rough spots, hence this post (and some updates to the wiki)…


SSH needs a key pair, and the default tools on OpenWRT are for Dropbear keys, but for sshtunnel we need OpenSSH keys.

First, a place to store the keys, and create a Dropbear key:

mkdir .ssh
chmod 700 .ssh/
dropbearkey -t rsa -f /root/.ssh/id_dropbear

That last command will print the public key to the console, which we can copy and paste into a file:

vi .ssh/id_rsa.pub

The same public key can also be copied into ~/.ssh/authorized_keys on hosts we want to connect to.

The Dropbear key needs to be converted, after installing the tool to do that:

opkg install dropbearconvert
dropbearconvert dropbear openssh .ssh/id_dropbear .ssh/id_rsa

Installing and configuring sshtunnel

opkg update
opkg install sshtunnel

The sshtunnel package will pull in openssh-client as a dependency, so everything is now in place for a test SSH connection, which is needed before automation to ensure that the server we’re connecting to is in ~/.ssh/known_hosts:

ssh [email protected]

The sshtunnel service needs to be configured by editing /etc/config/sshtunnel:

config server myserver
        option user       me
        option hostname   myserver.com
        option port       22
        option IdentityFile             /root/.ssh/id_rsa

config tunnelD proxy
        option server           myserver
        option localaddress     *
        option localport        12345

With the config in place, the service can be reloaded (and enabled to ensure startup on future boots):

/etc/init.d/sshtunnel reload
/etc/init.d/sshtunnel enable
/etc/init.d/sshtunnel start

If everything is working then the tunnel will show in netstat:

netstat -an | grep 12345
tcp        0      0 *               LISTEN
tcp        0      0 :::12345                :::*                    LISTEN

Using the tunnel

I can now configure my browser (e.g. Firefox) to use the IP and port of the tunnel as a SOCKS proxy. So the SOCKS Host is set to the router IP ( and Port (12345).

September 2022



The boys have been enjoying the sun when it’s been out, as we have the last warm and dry days before autumn descends into winter.

Milo has been particularly enjoying the windfalls from the apple tree:

Solar diary

This might be a regular feature here, at least for a little while (until the novelty wears off).

As I noted last month, I got a 16 panel array installed on my roof, but the data logger wasn’t working so I didn’t have a clear idea about what it was doing. A replacement data logger arrived on 6 Sep, and so I can now take a look at the app each day to see how the system is performing:

Here’s a view of the month so far:

NB the app just divided the production before the logger was installed over the days since the system install, hence things are flat at 14kWh/day for the first few days.

Here’s a zoom in to that best day so far, on the sunny 17th with 17.3 kWh:

and the worst day, on the very dark and wet 13th with 4.2 kWh (NB different y axis scale):

Looking at my meter readings a couple of days ago it seems that I’m saving almost 40% on my electricity bill, and 26% on my gas bill (by the iBoost diverting excess generation that would go [cheaply] to the grid into an immersion heater). Though the latter is for a summer month with gas just being used for cooking and hot water, that will be a drop in the bucket against winter gas use when the central heating is on.

I’ve not yet got the paperwork to sign up for Smart Export Guarantee (SEG), so I’m presently getting nothing for generation that does go to the grid.

I spent a bit of time trying to find a supplier for a whole house battery capable of doing backup during power cuts (like a Tesla Powerwall), but it seems nobody wants to take on new customers at the moment due to huge wait lists for the batteries (~1y) and lots of busyness with solar installs etc.

I now look at every empty roof as a missed opportunity (especially on new builds), and I wish the UK government was doing more to incentivise renewables (to the extent that’s even necessary given present prices); but clearly there’s a need to train more electricians, and roofers etc.

Update 30 Sep 22 the paperwork for SEG came through, and I figured out how to read the export number from my (not so smart) meter. It seems that 222kWh of the 482kWh generated so far have gone to the grid (~46%), so it will be nice to get some pennies for future exports.

Good Apple

When the iPhone SE 2020 launched I ordered 3 (one of each colour): one for me, one for $wife and one for $daughter0. The latter didn’t survive the rough and tumble of teenage life, and she found herself having to trade it in for a replacement at the start of this year. So it was a huge disappointment when the new one decided it wasn’t going to connect to cell towers anymore.

Thankfully Apple were very accommodating. They could see that the replacement was still in immaculate condition, and hadn’t suffered the abuse of its predecessor, and though it was technically past the warranty period for a replacement they switched it for another new phone :)


Moving in day came, and Bath did a really good job of the logistics. A quick drive around an emptied car park to collect an envelope with ID card and key (with the photo on the ID card providing an easy way to verify the correct recipient). Then roll cages provided to cart possessions from the car to the room in a single trip. Much more pleasant than the sweaty experience of lugging stuff backwards and forwards when moving $son0 into his room(s).

The move provided a handy excuse to explore Bath, and have a delightful dinner at Raphael, which I look forward to returning to.

$daughter0 seems to be enjoying freshers’ week :)

I mentioned in my August 2022 post that I’d write separately about this, so here goes…

The Google Developer Experts program is a global network of highly experienced technology experts, influencers, and thought leaders who have expertise in Google technologies, are active leaders in the space, natural mentors, and contribute to the wider developer and startup ecosystem.

Google Developers – Experts


Atsign has been working with the Dart & Flutter community since before I joined the company, and a bunch of the community leaders we’ve worked with as advisors are Google Developer Experts (or GDEs as they’re most commonly abbreviated). My colleague Anthony, who leads our developer relations efforts, thought it would be a good idea for us to have our own GDE (or GDEs), and initially suggested that I help mentor one of the team through the process. That plan didn’t survive contact with reality, though I’m hopeful that in due course we will grow more GDEs in the company.

Having taken a look at what was needed I ended up suggesting that I could apply myself. I’d been talking about Dart, writing about Dart, and generally trying to get my friends in the industry interested in Dart since shortly after starting with Atsign. So maybe I could do it.


I reached out to Majid Hajian for guidance through the process. He’s one of the most visible people in the community through his work on Flutter Vikings, and I’d had the pleasure of meeting Majid and speaking alongside him at last year’s Droidcon London.

His primary guidance to me was to catalogue everything I’d done in the community as preparation for the application process. So I pulled together a spreadsheet of every presentation, every appearance on webcasts, every blog post, every GitHub issue and pull request, and the analyst coverage I’d contributed to. Once that was ready Majid sent me a link to the application form.

Step 1 – Application form

The programme uses a platform from Advocu, and the ‘Eligibility Check’ begins with filling out a form detailing all those community activities. For each item there’s a measure of impact – how many people attended the talk, or watched the video, or read the blog post? Majid’s advice helped a lot here, but I didn’t have detailed/accurate numbers to hand for some of the items, which left me fretting a little about one particular post where I’d guessed it reached 250 people then subsequently learned it had been over 5000.

Talking to other GDEs (and aspiring GDEs) this seems to be the stage where most people trip up. They either don’t have enough quantifiable impact on the community, or their work is seen as too entry level and they’re directed to produce stuff that’s aimed at an intermediate/advanced audience.

Steps 2 & 3 – Community Interview and Product Interview

Having thankfully passed the eligibility check the next steps were a couple of interviews; firstly with an existing GDE, and then with a Googler. They both went pretty much the same, with the conversation focussing firstly on presentations I’d done in the past (on things like Dart in Docker on Arm) and then new things I’m working on (like comparison of Dart ahead of time [AOT] binaries to just in time [JIT] snapshots, and the little compiler bug I’d found on my adventures). My product interview also strayed into some discussion about product roadmap, and areas where I saw frustration.

In both cases the interviews didn’t feel like a grilling designed to find weaknesses in my knowledge, but rather a chat between enthusiasts about areas of interest and how we can make things better for everybody.

Step 4 – Legal Sign Offs

The GDE programme exposes members to pre release information, so naturally Google asks for confidentiality using a non-disclosure agreement (NDA). As NDAs go it’s one of the shortest, simplest and fairest I’ve seen, so I had no hesitation in signing (other than it needed to be redone to get my correct full legal name).

Step 5 – Onboarding

I missed my onboarding meeting due to a prior commitment, so as I write this I’m not quite fully onboarded to the programme. But I’ve received lots of invites to online groups etc., and also a whole bunch of materials that I can use to help with future presentations etc.

There are badges, like this one:

The community

Days after receiving the good news I was in Oslo for Flutter Vikings 2022, which was quite the gathering of the European Dart & Flutter community, with many of the GDEs from the region there. It was a great event, and I had a great time meeting folk and chatting about what we’re building at Atsign and how we’re using Dart at the heart of that. More on the event from Anthony in his writeup.


I’ve got some talks about Dart coming up for QCon San Francisco, and QCon Plus, and I’m sure there will be more towards the end of the year and into 2023. Of course I’ll be keeping track of those in the Advocu platform that’s used to help decide if people remain in the programme from one year to the next by showing continuing contribution to the community.

As I looked at other GDEs LinkedIn profiles to see how they present themselves I saw that the most popular choice (and in fact the Google suggested approach) is to add it to the Volunteering section. GDE isn’t a certification or an honour or award. It’s a bunch of volunteers, helping their communities grow and learn. I look forward to the future presentations, because I’ve enjoyed doing that stuff for a long time; but I also look forward to the behind the scenes stuff – mentoring, guiding, interviewing future GDEs, and helping the Google product team do the best job they can.

A footnote on imposter syndrome

Something that initially put me off applying for the programme is that I’m not the world’s greatest Dart programmer. There are probably half a dozen better Dart developers than me just at Atsign, and we’re a tiny startup. If the product interview was anything like the dreaded whiteboard sessions in most technical interviews then I was doomed to fail. But it quickly became clear that GDE is about developing talent, and being open to learning, rather than being the stereotypical ‘expert’ developer. It’s not necessarily about writing in Dart (or any of the other Google Developer tools) all day every day, it’s about community contribution, and that takes many forms beyond just writing code.

People who know me well may wonder why I didn’t apply to become a Google Cloud Platform (GCP) Expert? I’ve been using GCP since the launch of Compute Engine, I got the Professional Cloud Architect (PCA) certification (now expired), and I use GCP pretty much daily in my Atsign work. But I’m not an active member of that community, I don’t got to events and talk about GCP, apart from some very specific product management calls it’s not a platform where I feel I’m pushing things forwards. It’s different with Dart, I may not be the best coder, but I’ve found a few things where I could make my mark, and I just have to remember that when the shadow of imposter syndrome looms.

PS anybody wanting to learn more about imposter syndrome and dealing with it should check out one of Jessica Rose’s talks on the the topic.


Using SSH keys is already a big part of the git/GitHub experience, and now they can be used for signing commits, which saves having to deal with GPG keys.


For a while I’ve been signing my git commits with a GPG key (at least on my primary desktop), and GitHub has some nice UI candy to add a Verified badge for anybody looking there to see.

When I recently created the Atsign guide to GitHub there’s even a section recommending signed commits.

Git 2.35 introduced the ability to sign commits with SSH keys, which people are far more likely to have than GPG keys, and recently GitHub (finally) got functionality in place for people to register SSH keys as signing keys, and show those Verified badges.

First you need a newer git client

I mostly use Ubuntu 20.04 LTS for things, and that comes with git version 2.25, which is nowhere near new enough. Thankfully it’s pretty easy to add the the git-core package archive and grab the latest stable git from that:

sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

That just worked for me, but if you run into trouble, take a look at this StackOverflow guide for some tips.

Now set up git to use an SSH key for signing

I found a few guides for this, but the one I shared with colleagues is Caleb Hearth’s ‘Signing Git Commits with Your SSH Key

The main point is to enable signing, and tell git to use SSH:

git config --global commit.gpgsign true
git config --global gpg.format ssh

Initially I did this without the –global flag to experiment on a single repo.

Git also needs to be told about your public key:

git config --global user.signingkey "ssh-ed25519 <your key id>"

All of the examples I’ve seen use shiny new (and short) ed25519 keys, but good old rsa keys can also be used.

What about my private key?

The line above uses a public key, and you also upload a public key to GitHub so it can display that Verified badge, but git needs your private key to do the signing, so there’s a little bit of key management magic happening behind the scenes.

Peeling back the magic, there’s an assumption that you’re running ssh-agent, which might be a fair assumption for folk who get deeply into doing stuff with SSH keys, but breaks when encountering a lot a default setups. My WSL2 install of Ubuntu doesn’t have ssh-agent there by default, so I needed to run:

eval $(ssh-agent -s)

But that’s only a temporary fix for the life of that shell session. I’ve added the following to my .bashrc:

{ eval $(ssh-agent -s); ssh-add -q; } &>/dev/null

I’ve seen a suggestion that ‘Using SSH-Agent the right way in Windows 10/11 WSL2‘ should be done with the keychain tool, but my fairly simple setup is just fine without it.

The GitHub bit

GitHub just needs the SSH public key (just like when setting up SSH keys for authentication), except the key is added as a signing key:

But wait, there’s more…

I’m pretty sick of seeing messages like this:

$ git push
fatal: The current branch cpswan-anotherbranch has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin cpswan-anotherbranch

and because I always just copy/paste the correct line from those error messages, I’ve never learned the actual incantation to get it right first time. I extra hate it when software knows exactly what I’m trying to do, refuses to do it, scolds me and tells me what I should be typing.

Thankfully recent git can now be configured to just get on with it:

git config --global --add --bool push.autoSetupRemote true


Setting up GPG was enough of a hassle that I’d only done it on my desktop, but setting up SSH signing is easy enough that I’ll be happy to do it everywhere that I use git. There are a few extra hoops to jump through to make everything seamless, but they’ll get smoothed out over time.

August 2022



After the heatwave in July bringing record temperatures, there was little let up for most of August with lots of hot dry weather. We frequently had to pick walking routes that kept the boys in the shade, and when the weather did finally break we were treated to a ‘false autumn’.

Hot, damn hot

In last November’s post I wrote about getting a heat pump installed. It did a great job of keeping the open plan kitchen/dining/living room warm during the winter months. The impact on the electricity bill was about 50kW/h per month, which at 2022 winter prices wasn’t bad compared to running the log burner.

Having air conditioning in my office and bedroom has been a game changer, and doesn’t seem to have had a big hit on electricity usage. The A/C was also quiet enough not to disrupt my office setup (in stark contrast to the noise of the portable A/C I used last year).


Something that should offset any extra electricity used by A/C is the installation of rooftop photo-voltaic (PV) panels. I got them from Infinity Renewables through a group buy scheme organised by my local council. When the sun is shining the 16 panels seem to push out about 3kW, and I’m using an iBoost to divert excess into my hot water tank. Sadly the data logger on the inverter isn’t working, so I don’t yet have a good handle on how much total power I’m creating and what impact that’s having on my electricity consumption from the grid.

When I first signed up for the scheme I expressed interest in a battery to go with the panels. But the model that Infinity supply can’t do backup power, so I decided not to bother with that. Now might be the time to join the queue for a Tesla Powerwall.

Google Developer Expert

I’ll write a separate post about this when I find a little more time…

Just in time for Flutter Vikings I got the good news that I’d joined the ranks of the Google Developer Experts (GDE) program, which I hope gives me opportunities to do more with the Dart and Flutter community. Many thanks to Majid Hajian for shepherding me through the process, and for everybody else involved for helping me along the way.


$daughter0 got her A-Level results, and they were (more than) good enough for her to get the place she wanted on a Chemistry course at Bath, so she’ll be off to University at the end of next month. The house is already abuzz with planning and organising for the move, and I suspect things will be eerily quiet come October.

Book of Mormon

$wife and I went to see Book of Mormon years ago, and loved it. But we didn’t take the kids that time as they were a bit too young. For a birthday day out we decided to go back, with the kids this time, and the show was hilarious again. We got seats in a box, which might sound fancy (and actually was fancy in terms of comfort); but they were actually the cheapest seats in the house (sold as ‘restricted view’) with all four of us costing less than a single stalls seat. I didn’t feel I missed anything due to a ‘restricted view’ and really liked the extra comfort and privacy of the box – definitely something to consider for the next show.

Saying goodbye to a friend

July brought the very sad and sudden departure of my friend and InfoQ colleague Alex Blewitt, and I joined a group of InfoQ folk to say goodbye at his funeral. The service was very well attended, with many of his former colleagues joining family and friends. The celebrant did a wonderful job of explaining the full richness of a life that I only caught glimpses of at InfoQ editors’ dinners and Twitter threads. Alex’s humour shone through to the end, with his choice of Monty Python’s ‘Always Look on the Bright Side of Life’ playing to conclude the service.

I’ll miss you Alex. QCons won’t be the same without you there.

July 2022



Milo’s been with us for a whole year now, which meant he got to join Max this time on our family holiday in the Lake District:


We returned to Keeper’s Cottage on the Graythwaite Estate, as it was brilliant last year, and it was just as good this time around.


Our trip coincided with the hottest days ever in England, with temperatures in the South going past 40C. Thankfully it didn’t get quite so hot in the North West, but it was still well past 30C, which for me (and the dogs) is uncomfortably hot. We spent the mornings down by the lake so they could paddle and cool off, and thankfully the big old stone cottage did a great job of keeping cool for the afternoons. It was generally bedtime before the temperature outside was lower than inside, making it safe to open the windows again.

Unfortunately for $daughter0 she needed to catch us up in the Lakes, as her school trip to Zambia overlapped with the start of our week in the cottage. Plan A, to join us by train, failed decisively with the 1230 from Euston never really going anywhere due to a track side fire. If only we’d planned a little less lie in time she’d have made it on the 1130. So she trudged back home (delayed some more at Gatwick by another fire) and then had to drive up. The silver lining was that $son0 joined her for the drive, so we ended up with the whole gang in the cottage.


The Lakes were unusually quiet. I first noticed (and commented) on this on one of the hot mornings down at Windermere; but it carried on like that after temperatures returned to normal. Hiking up and down Helvellyn I counted 20 people when I’d usually expect to see hundreds. It was spooky. The two prevailing theories seem to be:

  1. People are choosing to holiday abroad now that they can again (evidence – the huge queues at Dover at the end of the week as school terms ended)
  2. The cost of living crisis means people can’t afford to travel and do stuff in the National Parks

My sense is that it’s a bit of both, which had me worried about the tourist economy, but there also seems to be a demographic aspect to it. Dinner at The Swan Hotel on Friday night was apparently rammed, and the towns weren’t that quiet. So it seems that the older folk who potter about, buy pub meals, and stay in nice hotels might be out in roughly their usual force; whilst the younger folk (and families) aren’t showing up.


I took the old boots I had to get refurbished last year, and the new boots I’d bought to stand in for them. No falling apart problems at all this time around, though I didn’t find the Vibram soles of the Meindl Merans particularly confidence inspiring on wet rocks over Striding Edge, and I did slip a few times on the stony descent to Wythburn Church.


After a good experience with the OS Maps app last year I subscribed again this year. It was great to see that all my saved maps etc. were just there and ready once more once my subscription was active.

Steam Deck

I pre ordered my Steam Deck on launch day (16 Jul 2021) whilst in the Lakes last year, and it arrived just in time for the trip back this year. The device itself is everything I hoped it would be – a perfect way of playing PC games on the move (or sat on a sofa). On $son0’s recommendation I bought Portal and Portal 2 to try it out, and ended up playing my way through them on the ‘hot day’ afternoons in the cottage. I’ve also dabbled with Untiled Goose Game, but yet to try a AAA title like No Man’s Sky (which I bought my gaming laptop to play).

Valve have done a great job of integrating the device into their gaming ecosystem, so stuff ‘just works’. But I’m also impressed with how open it is. If you want to use the Steam Deck as a computer then it’s just a matter of adding a USB-C hub and a keyboard (and mouse or trackpad, and screen).

I suspect the Steam Deck will be joining me on future holidays (and maybe also business trips) as it’s a great way to keep entertained without taking up too much space.


Details of how the Labour party used an ersatz SIGINT operation against it’s own (prospective) members and supporters have come to light in the Forde Inquiry. This provides confirmation that the National Executive Committee (NEC) were excluding people for political expression on social media that didn’t align to their chosen ideology.


Almost six years ago I wrote The Surveillance Party to describe how the UK Labour Party ran an ersatz SIGINT operation to block people from becoming supporters, and then voting in their upcoming leadership election. I had to speculate back then about some of the details, because (like with proper SIGINT) everything was cloaked in secrecy.

But now we have the Forde Report (pdf)[1,2], which has a section on the ‘2015-2016 “validation” exercises’ (starting at page 40). This tells us who was doing the work, and reveals some high level details of how it was executed.

Who did it?

I was wrong in speculating that it would be a law firm or ‘big 4’ consulting firm. C2.14 tells us that the work actually went to a group of casual staff employed from the ranks of Labour Students. This might have been cheaper, but meant that some of those involved inevitably lacked the ideological purity to complete the task at hand without question or concern.

What were they looking for?

C2.17 of the report mentions ‘1,959 “flagged phrases”‘ and ’35 abusive phrases which included the word “Blairite” or “Blair”‘.

I wrote another post ‘Racist, abusive or foul language‘ looking at my tweets from the day referenced in my supporter application refusal. Since we don’t have the full list of phrases there’s still some need for speculation here, but in my case I’d expect it was ‘neoliberal’ or my RT of something with ‘#ChickenCoup’ that did it for me.

What were the consequences?

C2.20 notes that ‘there had been just under 4,000 “total actions by the NEC which includes all Supporter Rejections, Membership rejections, Auto Exclusions and Administrative Suspensions”, and that 1,024 of those actions had been against existing members’.

I was a bit miffed about not being able to participate in a democratic process I’d paid £25 to engage in. But those 1024, they’re ANGRY. I was at a screening of Ithaka the other day, which had Q&A afterwards, and one of the folk asking a question opened by describing himself as ‘an exiled member of the Labour party’. Labour was part of their identity, and taking that away from them has caused harm that they’re not ashamed to be noisy about.

Looking at the past, present, and future


Going back over all this had me revisiting why I’d even applied for a vote. I think the main thing was frustration at the Brexit referendum, and wanting to have some kind of say in the future of the country by helping to choose the leader of the opposition (or LOTO as the report frequently refrains).

The really mad thing here is that a process to exclude left wing ‘trots’ got me even though I’d not even made up my mind at that stage whether I’d cast my vote for or against ‘Jezza’.


It’s amusing to contrast what happened with Labour in 2016 with what’s happening with the Conservatives in 2022. Another party, another leadership election that involves members. The Tories don’t seem to care at all about entryism, they’re just happy to take the money. Of course the Tories are in the shape they’re in following years of entryism from ‘Kippers‘; which is why I have no interest in voting this time around as both candidates are awful.


It seems likely that this sort of shenanigans will happen more going forward. For Labour the lesson from Forde on this point will simply be that they have to ensure that their criteria for exclusion are properly promulgated. Other parties in other places will learn from what happened, and whilst we might hope the lesson will be “that’s a dystopian nightmare, let’s not do that”, I fear it will actually be “this is how we keep the membership pure”. This is not good for democracy or the conversations needed to facilitate it.


It’s interesting to finally see behind the curtain, and confirm that what I thought was happening is mostly what was happening. I was wrong on some speculative details, but right on the broad sweep of what was happening. The report spends some pages on this because what was happening wasn’t good for the party or the people it should serve; but perhaps swerves from calling out the full horror or providing more comprehensive resources (like the ‘flagged phrases’ lists).

I’m not optimistic that Labour in particular, and political parties in general, are headed in the right direction on this topic.


[1] Thanks to Craig Murray for drawing my attention to the report in his ‘The Forde Report and the Labour Right‘. I’d missed it myself amongst the news being saturated with climate disaster, the Tory performative awfulness contest, and the Lionesses kicking their way towards the Euro 2022 Final.
[2] Of course the report is published as a pdf, rather than something that can be usefully searched, indexed and cross referenced like a web page. ‘Never attribute to malice what can be explained by incompetence’, and there are plenty of (old) organisations out there that ply their trade in electronic versions of dead tree publications. But come on… it really feels like they didn’t want this stuff to be linkable.

June 2022



The boys got their first taste of ‘doggy daycare’ at a local kennels, and seemed to get on with it OK.

They even got a report card:

They also got ‘done’ this month, which led to a day or two of feeling pretty sorry for themselves:

Electromagnetic Field

I only found out about Electromagnetic Field after it had happened in 2016, and loved it in 2018. When it came to ticket sales in 2020 my mouse pointer was hovering over the ‘buy’ button for tickets, and then I convinced myself it wouldn’t be happening. And of course it didn’t happen that year, but what I didn’t consider was that the 2020 ticket buyers would get first dibs on 2022 tickets. So… I persuaded Atsign to sponsor, which guaranteed tickets for my colleague Gary and I.

The weather wasn’t quite as kind as 2018, and the arcade wasn’t quite as filled with my favourites; but I still had an amazing time there, and I’m really looking forward to 2024 and maybe a retro meetup village.

As I was getting ready to leave the BBC coverage for the Platinum Jubilee was hitting fever pitch. I hoped the camp might provide some escape, and it really did, I didn’t see any jubilee stuff at all. It’s a place full of people of living in the future, and it seems that the future doesn’t have a British Monarchy.

Regatta Karuna 6 Tent

For EMF 2018 I bought a new family tent, but given the amazing weather it wasn’t really tested.

EMF 2022 was just its second outing, and the first night revealed its one big flaw. The layout has two pods at one end, and one pod at the other, with one set perpendicular to the other. That means that if there’s any slope then one set of pods is head up on the incline, and the other is rolling down the hill. Sadly the Eastnor site doesn’t offer much level space, which was fine for those of us at one end, and pretty terrible at the other end. I mostly LOVE this tent, but this particular aspect is perhaps a major design flaw.

Slopes aside the tent was great. We got rained on, and stayed dry. It was spacious, comfortable, easy to set up, easy to take down, easy to dry out later.

School’s out

$son0 finished his 2nd year at university early on in the month, and $daughter0 finished her exams towards the end, so that’s us done with ‘school’ (where us Brits don’t use that word for University). Another one of those seminal moments of parenthood passes by.

May 2022



May saw the last of this year’s beautiful bluebells, and the boys enjoyed running around amongst them.

Back to Barcelona

After Mobile World Congress (MWC) in Mar I returned to Barcelona for the more focussed Internet of Things (IoT) Solutions World Congress. It was a much smaller event, but for me the conversations were much better, perhaps because this time our partner ZARIOT had a stand right on the main drag, and everybody there was into IoT stuff.

Although the event was smaller, Barcelona seemed pretty much as busy (certainly in terms of hotel space); likely due to the Integrated Systems Europe (ISE) event happening in much of the rest of the Fira Gran Via venue.

I stayed at Plaça d’Espanya again, though this time in a hotel rather than an apartment. The Occidental Barcelona 1929 was nice, and felt relaxed; and I find the location a good compromise between getting to the venue, and getting around the rest of Barcelona.


Sadly the IoT event meant that I missed most of Devoxx UK, but I was back in time for my talk on the final day. It was good to catch up with friends there, but also nice to see an audience that wasn’t the usual suspects I see everywhere else. I wish I’d had more time to hang out and get to know new people. Maybe next year?

MAME/RC2014 stuff

The RC2014 Mini stuff I put into MAME back in February has been torn out, and I’m not sad about it. The new RC2014 MAME Driver by Miodrag Milanović is pretty much everything I’d dreamed of doing, and it was a pleasure to collaborate with him on documenting what it can do.