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.

The GraphQL Way



From a short time using GraphQL APIs I sense that there’s a ‘GraphQL Way’ for how things should be. A set of promises that the technology makes to its users. But those promises are frequently being broken, or at least undermined, as people rush to create GraphQL end points without perhaps investing enough time and effort into how things should work. The causes of this woe are mostly things we’ve seen before, as previous waves of new stuff have swept through the industry; so of course the remedies are much the same as ever, and it starts with building a picture of what good looks like.


I’ve been using a few GraphQL APIs over the past year or so, and many that I’ve encountered fall short of the expectations set by the Introduction to GraphQL. This leads me to think that there is a ‘GraphQL Way’, but maybe it’s not yet easy enough for API developers to follow it.

Recent conversations with James Governor, Fintan Ryan, Paul Johnston and others such as this Twitter thread make me think that there’s a need to better articulate what good looks like. This post is intended to get the conversation started. I’m not a GraphQL expert, just somebody who has to use APIs and often finds themselves thinking ‘this could be better, this should be better’.


Colossal Cave Adventure

That’s how I often feel when trying to navigate a GraphQL API. The thing that you want should be through the next door, but after going through 3-4 doors you’ve circled back in the graph to the place you were a few steps back, with no sign of the grail of enlightenment.

The promises

GraphQL makes a number of implicit promises:

1. Ask for just the data you need, get back just the data you need

GraphQL is pretty good at realising this promise, which makes it great for its original purpose of more efficient communication between mobile apps and their backend services. It’s less chatty, and more verbose, which are both good things when you’re worried about latency, data consumption and network flakiness.

Previous APIs developed a nasty habit of serving up giant JSON documents, expecting them to be cut down to size by the client; whilst GraphQL lets you just get the bits that are needed.

2. Self describing

GraphQL APIs can serve up their own schema, which should be enough to help users of the API find what they need. They have the map, so it should be easy to find the treasure.

That’s fine, provided that the map makes sense, to people other than those who made the map. If the schema is just another way of shipping your org chart then it could be dysfunctional. If it’s full of unexplained internal references then it might be incomprehensible. Self describing only works if the description makes sense (to a newbie with no other context to grab onto). James Scott explores this in ‘Is GraphQL really self-documenting?‘.

Michelle Garrett recently talked at QCon London (link to follow once they get around to publishing) about the lengths taken by the Twitter GraphQL team to curate a schema that makes sense. This stuff doesn’t just happen, it takes work, and care – governance.

The good bit is that we’ve come a LONG way from Web Services Description Language (WSDL) and Universal Description Discovery and Integration (UDDI), and this time it’s clear that self describing can work (beyond standards org slide decks and out in the real world).

3. Filtering

GraphQL APIs should allow a request to specify a filter. But many implementations don’t actually implement that capability. This ends up breaking some of the first promise, as you now need to ask for everything and do the filtering locally. At least (with promise 1) GraphQL queries are specifying which nodes/fields you want back, so you’re not having to filter through all of everything, just some of everything. It’s not pretty though, and can quickly run into needing pagination where previous REST based approaches spared that.

The causes

Why do the promises get broken?

New shiny

There are lots of GraphQL implementations popping up that are the first time doing this for the teams involved. They’re inexperienced, don’t necessarily know what good looks like, and easily walk into minefields without noticing the warning signs.


Resume Driven Development bedevils the entire industry, and because GraphQL is the new shiny there are an awful lot of new GraphQL end points getting created to bolster CVs and LinkedIn profiles.

REST inertia

Where there’s an existing REST API there’s a risk that a new(er) GraphQL API will try to repeat the same story in a slightly changed dialect. The promises of GraphQL don’t come true by adding a new end point, they have to be underpinned by some (re)thinking about design and purpose.

Not used internally

If you’re creating a new API, and it’s just for external customers, and not being used internally; then something is wrong. Badly wrong. And you likely won’t be getting the immediate feedback to make things right; just lots of whinging and moaning off in the distance.

Making it better

There are of course ways to help ensure GraphQL implementations live up to the promises:

Documentation, Samples and Examples

My colleagues hear me say those words almost every day, and I say them because good documentation, samples and examples are generally the difference between something that’s accessible, easy to use, and scores mass adoption, and something that’s none of those things.

Even if it’s obvious to you the creator of the new super smart self describing GraphQL end point how every last drop of valuable data can be wrung out of it on demand; some samples and examples of that brilliance will help some of us less sharp people get to our ‘aha’ moments more quickly and easily.

Pave the golden path

There’s a lot of good stuff out there already to help people implement their GraphQL services, and corresponding good stuff to help people consume those services. But maybe there’s scope for more help with design considerations, the questions of ongoing schema governance, and helping people keep the promises of GraphQL.

Tooling might help here. But also pausing for a moment, thinking, running some experiments and getting feedback. Asking what good looks like, and charting a path there. Proper software engineering.


GraphQL APIs are coming into the mainstream, and as they do so they’re often breaking the promises made by the underlying technology and its proponents. That’s happening for a slew of fairly predictable reasons; which is why the remedies also look so familiar. We can do better, we should do better.

Generally MAME emulations that would use a terminal make use of the built in terminal emulation. So you can just start MAME and get going with a screen like this:

But that has some limitations, such as you can’t copy from it, or paste into it. Also if you want to use the MAME display (layout) for some blinkenlights or similar, then there has to be some other way of connecting a terminal.

Of course, there’s a way to deal with that. Running:

rc2014 rc2014bp5 -bus:1 micro -bus:1:micro:rs232 null_modem -bitb socket.localhost:1234

Is telling MAME:

  • rc2014 is starting my cut down emulator that I compiled whilst waiting for the 0.244 release (after which it can just be mame).
  • rc2014bp5 selects the 5 slot backplane
  • -bus:1 micro puts an RC2014 Micro card into the first slot
  • -bus:1:micro:rs232 null_modem configures the RS232 port on the RC2014 Micro to use null modem connectivity (rather than the default terminal)
  • -bitb socket.localhost:1234 then connects that null modem (serial) port to (TCP) port 1234 on localhost.

MAME itself will show No screens attached to the system:

But now I can attached a Terminal Emulator such as TeraTerm or PuTTY using Other to port 1234:

MAME should be configured for serial at 115200 baud:

And the terminal settings might take some fiddling with local echo etc.

Click to get a clearer view

COM ports

It’s also possible to connect to a COM port using something like:

rc2014 rc2014bp5 -bus:1 micro -bus:1:micro:rs232 null_modem -bitb COM6

Here I’m using com0com to provide a pair of COM ports on Windows (COM4 and COM6). I’ve found that the terminal emulator should be connected first (to COM4) so that MAME doesn’t hang when trying to connect to COM6. Again make sure that you have matching (fastest) baud rates in MAME and the terminal emulator.

This approach seems to be more reliable for cursor movement within the terminal emulation :)

Miodrag Milanović has created a new RC2014 driver for MAME, and it’s very comprehensive, offering a full range of systems, backplanes and boards. This post is intended to be a quick tour of how to use it.

At the time of writing the new driver hasn’t yet made it to a MAME release, but it should show up in 0.244. For now I’ve built a standalone rc2014.exe so that I can try things out. The command line to do that was:

make SOURCES=src/mame/drivers/rc2014.cpp SUBTARGET=rc2014 -j

I can then see a list of systems:

[MINGW64] C:\Users\Chris\git\github.com\cpswan\mame>rc2014 -lb
Source file:         Name:            Parent:
rc2014.cpp           rc2014
rc2014.cpp           rc2014bp5        rc2014
rc2014.cpp           rc2014bp8        rc2014
rc2014.cpp           rc2014bppro      rc2014
rc2014.cpp           rc2014cl2        rc2014
rc2014.cpp           rc2014mini       rc2014
rc2014.cpp           rc2014minicpm    rc2014
rc2014.cpp           rc2014pro        rc2014
rc2014.cpp           rc2014zed        rc2014
rc2014.cpp           rc2014zedp       rc2014

There are a LOT of ROMs to ‘PokeROM’ for this, which can be listed with:

rc2014 -listcrc

With the ROMs in place, let’s fire it up…

RC2014 Mini

Since I started my real life RC2014 journey with the Mini, I’ll repeat that:

rc2014 rc2014mini

The system boots up into 32K BASIC:

Hitting Scroll Lock then Tab brings up the options, and from there Machine Configuration can be selected:

Switching the ROM to Small Computer Monitor (SCM) is simply a matter of hitting the right arrow until SCM is selected, then going to Reset Machine:

At this stage a program can be typed in, whether that’s in BASIC or using the Monitor.

RC2014 Mini with CP/M

In real life it’s not long until you start adding things to your RC2014, and MAME brings instant gratification with the ability to try out expansion options.

First I need the image from CPM 128MB in transient apps.zip, which I’ve renamed A128.IMG. I can then start the emulation with the disk image mounted:

rc2014 rc2014minicpm -hard A128.img

Typing cpm into the SCM prompt starts CP/M:

The essential utilities are there:

RC2014 Pro

It’s fairly simple to step up to one of the bigger RC2014s. The only major change needed is to grab a CP/M image that supports the SIO/2 serial board, which I’ve renamed to S128.IMG:

rc2014 rc2014pro -hard S128.IMG

The big difference here is that the Slot Devices menu can be played with:

This provides lots of opportunities to play with different boards, and fiddle with the config of them.

Whilst many of the official RC2014 boards are there already, there’s also lots of scope to replicated the huge variety of other boards out there (or create new functionality from scratch).

Running Zork

One of the points of retro hardware emulation is to enjoy retro software, particularly games, and Zork was one of the defining games of the era.

With the Zork binaries in hand CPMtools can be used to copy them (in this case to the G: drive):

cpmcp -f rc2014g S128.img ~/zork/Z. 0:

NB: I’m using a patched diskdefs file there to provide the definition of rc2014g

Then start up CP/M, switch to G: and run zork1:


The largest RC2014 systems such as the Zed and Zed Pro use the 512K ROM 512K RAM board with Wayne Warthen’s RomWBW.

Grabbing the hd_combo.img file from the binaries directory inside the v3.0.1 release package, and mounting it as a Compact Flash card:

rc2014 rc2014zedp -bus:5 cf -hard hd_combo.img

Allows the system to boot up with lots of goodies installed:


This has been a very brief introduction to the new MAME RC2014 driver, and there’s a lot to explore, loads more hardware configurations to try out, a ton of cards (and similar systems) yet to be emulated, and endless possibilities bringing together the variety of the RC2014 ecosystem with the breadth of emulated components in MAME. I’m looking forward to tinkering, and seeing what happens next.

April 2022



April started off cold and wet, but the back half has been a great improvement, with some T-shirt weather days, and a chance for the boys to meet their sausagey friends.

Milo, Martha and Max


The fair weather has also meant some opportunities to get out on my bike.


At its MOT a few weeks back the bike got advisories for both tyres being close to the legal limit, and the front valve perishing. My first thought was that I could probably get another season out of the tyres, but once I started looking for new ones I was persuaded to change sooner. One factor was learning about tyre manufacture dates. The rear was a little long in the tooth at 7y old, but the front was positively geriatric at almost 14y old. Also much as I love the bike, I can’t say that it’s ever felt sure footed with the Bridgestone BT23s I got it with.

The only trouble is that the rear tyre is an obscure fitting. A quick search online suggested that Dunlop Roadsmart IV was the only show in town, and when I emailed my local place they came back with “are you sure about 160/70ZR18? We can’t find them anywhere”. Of course by that point Murphy’s Law meant that they’d gone out of stock at the place I’d found them online. I resolved to buy wherever I could find stock, and a last minute search of eBay struck gold with Sticky Stuff offering a matched pair for my bike at a very reasonable price.

Once fitted I then had a tenuous 100 miles to do of ‘scrubbing in’, and it must be the first time I’ve done that in 25y. They immediately felt at least as good as the old Bridgestone’s, and now that they are scrubbed in the bike is great. I wouldn’t quite use ‘transformed’, but the handling is certainly more confidence inspiring.

Fuel additive

While ‘scrubbing in’ I noticed that the bike was running super smoothly. Nothing really to do with the tyres, but rather the engine being able to pull better at low revs. I’d previously had to drop a gear to ride smoothly at 30mph, but now – not so much.

I then remembered that I’d put some Techron into the tank in Autumn after reading some recommendations for it on Quora. I’ve generally been sceptical about fuel additives, but this one really does seem to have worked well. Not only is the engine running much more smoothly, but I can see the difference in economy/range too.


QCon London 2020 was the last event I attended before lockdown, so returning to QCon 2022 felt like a watershed. I’d love to say that it marked post Covid life, but the pandemic clearly isn’t over. It was great to catch up with friends, and do some ‘hallway track’ again.

Vineyard tour

To make up for the tour of Chapel Down my wife missed in February we gave Bolney Wine a go with their ‘Ultimate Wine and Food Tasting Tour‘. It was a fabulous day out, and we really enjoyed the wine, though it was the nibbles we brought home with us, along with a bottle of their amazing ‘Sussex Rosso Vermouth‘.

I can see us returning to their shop just for more Charlie’s Smoked Trout, though there are a bunch more local vineyards to try out for their tours.


We use a bungee cord to hold the back door open, and it was getting a bit frayed. Also the cord we used to hold the mini greenhouse against the wall had snapped. So I bought a reel of cord from Amazon, along with some hog rings (and hog ring pliers) to fix them up. For sure I could have just bought some more bungee cords with hooks etc. already on, but the replacement cord does seem better quality, so hopefully it lasts better.

Dear Mims Davies,

It’s been three months since I last wrote to you about Alexander Boris de Pfeffel Johnson’s unsuitability, and nothing has happened in that time to exculpate him.

In fact it is clearer than ever that he broke the law, repeatedly lied about it to parliament, and has declared no intention to resign (as he should to comply with his own ministerial code).

It now falls upon you and your colleagues to act as the last line of defence for our democracy and push him out. You have a choice: do you actually stand for the rule of law, or are you willing to go along with ‘might is right’ with the democratic fig leaf of the 2019 election?

I would hope that despite conflicting loyalties it should be a simple choice. That you chose to became a lawmaker because you believe that people abiding by better laws will make for a better country. As Margaret Thatcher once said, “the first duty of government is to uphold the law – if it tries to bob and weave and duck around that duty when it is inconvenient then so will the governed”. Allowing the present situation to continue will further destroy trust in government and public institutions on which a functioning society depends.

Of course you might be thinking you can toe the party line, and maybe grab some of that might for yourself, and use it for purposes that seem right. But there lies the road to ruin, as you will make yourself a co-conspirator in a corrupt and criminal enterprise; and no good can come from that.

“But what about the war?” I see already trotted out as a talking point. There are far more capable, competent, and seemingly honest people within the ranks of The Conservative Party who can deal with us providing support to Ukraine. Tom Tungendhat immediately comes to mind.

It’s time to act. Don’t let us down. History will not be kind to those who appease and equivocate over this mortal hazard to the integrity of our nation.

Yours sincerely,

Chris Swan

March 2022



Although it’s looking ready to snow outside as I type, we’ve had some glorious summery weather in March, which means plenty of time outside running around for the boys.

But the picture that grabbed most attention was this one:

People thought we’d got another sausage dog, but it was just the boys hanging out with their friend Amber at the dog sitter’s.

On the Road Again

The dogs were at the dog sitter’s because I was in Barcelona for Mobile World Congress (MWC) showing off a demo of end-end encrypted Internet of Things IoT. It’s my first overseas trip since Jan 2020, and the first EU stamp in my passport since Brexit (after queueing in the ‘other passports’ lane when I’d have previously whisked through the automated gates) :(


Three no longer do their ‘Feel at Home’ roaming, which mostly doesn’t matter to me as I’ve ditched them for the family mobiles. But I still have a Three data SIM in my iPad Mini. So I got a GigSky eSIM for the trip, which was £7.19 for ‘Data Plan Europe 1024 MB 15 Days’. The provisioning process was super easy. It worked right away in the UK (so I could leave the Three SIM behind and avoid any possibility of costly mistakes), and service was great in Spain. I kept it running for the remaining days once home, and it seemed good. Recommended – will use again.

Carry on speedy boarding

While we’ve all been not travelling it seems that all the short haul airlines (whether they claim to be ‘budget’ carriers or not) have changed their carry on policies. Where before you could carry on something that would reasonably hold a few days clothes and essentials, the cheapest sticker price now gets you a carry on that’s approximately a medium sized ladies handbag. I consider myself a master of travelling light, but I wouldn’t attempt anything more than a day trip with the reduced bag allowance.

To get an actual carry on bag included you have to buy a premium ticket (or just pony up for a bag, which oddly costs even more). The net effect is that the ‘speedy boarding’ line is now almost everybody.

MAME stuff

The RC2014 Mini pull request I wrote about at the end of Feb eventually got merged, and I’m thankful for the patience of the dev team shepherding me through the process. I’ve subsequently had two more PRs merged, one for TMS9995 and another for a C64 ‘turbo’ ROM. They should all appear in MAME 0.242, which I hope will be in the next few days..

As promised I wrote some posts about Decoding the MAME Rosetta Stone and my Journey to the RC2014 Mini Driver for MAME.

I’ve got more RC2014 related things planned, but some boards for TMS9995 just dropped through the letterbox from Alan Cox (@EtchedPixels), so they might come first (if I can find all the bits I need).