Brexit withdrawal agreement: I called it wrong

Last night I started to write a post arguing that the Tories would fall in behind the withdrawal agreement that Rabb and May had negotiated. I became too tired to finish it and didn’t hit publish. This morning, looking at the utter chaos the strong and stable May government is in, I’m rather glad that I didn’t.

I believed that the withdrawal agreement would get through the Commons, due to the flakiness demonstrated in the past by the pro-remain Tory “rebels”, the love of power in the rest of the party, combined with abstentions and pro-Brexit votes from the utter shambles that claims to be the official opposition.

I convinced myself that many of the Brexit ultras would fall in behind the Prime Minister. Once out of the EU – even if it was Brexit in name only – it would be easier for them to chip away at the agreement over time and get what they wanted than go through a no-deal exit. My justification for this reasoning were the reports that Michael Gove had backed the deal in cabinet. Compared to many of the other Brexiters in the Conservative party, he looks like a genius. When Gove does something like that, he’s usually playing out some kind of clever strategy. After all, a no-deal will so damage the country the Tories would be unlikely to see power again in a generation.

But what do I know? Nothing at all, by the looks of it. The green crayon brigade seem firmly in control of the fate of the Conservative party – and the country – this morning. If you weren’t preparing for a no-deal Brexit already, now is the time to start. (While continuing to argue for remaining in the EU, naturally.)

Green crayons
Green crayons as (probably) used by Brexit-supporting Conservative ministers when writing their resignation letters

Is scientific knowledge about cancer controversial?

Today the British Psychological Society’s research digest has highlighted Lobato & Zimmerman‘s recently published research on how people reason about controversial (*) scientific topics. Their research asked participants to justify their position on evolution, climate change, genetically modified foods and vaccinations.

The researchers found that 34% of participants simply restated their thoughts with no justification. Of the remaining 66% who attempted a justification, 20% were subjective. Subjective justifications favoured personal experience, cultural identity, false reasoning and conspiracy theories over scientific evidence.

45% of participants said that no new evidence would change their minds for at least one of the four topics investigated.

This research is interesting because it questions the received wisdom that giving people more factual information about a topic will enable them to come to a valid conclusion. It could certainly explain why a ‘referendum on the facts’ about Brexit may still deliver the same verdict as in June 2016. Brexit, as the Prime Minister and her cabinet demonstrates, has become an article of faith.

Which brings me to the topic of cancer. Judging by some of the reviews on the Cancer Research UK Facebook page, scientific knowledge about cancer is controversial. Many of the reviews made me feel sad. Others made me angry. Some examples and the facts (even though it appears that facts may not be powerful for some):

Cancer research has NO intention of finding a cure, merely conning people out of money on the premise of such a possibility … You manufacture antiquated TREATMENTS that eventually kill the sufferer! More patients die from CHEMO than cancer!

The facts:

In the 1970s, only a quarter of people diagnosed with a cancer survived. More than half now survive for at least ten years.Novel chemotherapy drugs and other treatments developed through research programmes are responsible for this dramatic improvement in survival rates.

Cancer Research UK is a scam!!! Established 1902 and stil no cure? Makes big pharmaceutical companies billions so, ever wondered why there’s no cure?

The facts:

As cancer is not a single disease, it is unlikely that there will ever be “a cure” for it. Many different approaches will be required. Cancers that used to kill quickly in 1902 but now have a five-year survival rate of around 100% include cervical cancer, prostate cancer, many thyroid cancers and early stage breast cancer. My own non-Hodgkin lymphoma has a rapidly improving survival rate thanks to improved chemotherapy drugs, stem cell transplants and immunotherapy.

Why give cancer patients fatty food and sugar WHEN cancer thrives on sugar.

The facts:

There’s no scientific evidence that removing sugar from your diet improves your survival chances.

And then there’s the comments from the green crayon brigade that really aren’t worth any response at all, but just make me angry.

A cancer charity that doesn’t tell you what causes cancer, or how to cure it. A low fat plant based diet both prevents and cures cancer. Please watch **** and **** and stop supporting corrupt charities like this one.

… what in hell are you researching there’s a cure already it’s called marijuana …

Scare tactics 1 in 2 people will get cancer? Smoking is down, Drinking down yet cancer rates are up..really why don’t you just say everyone will get cancer so just give us all your money.

The cancer research shop window displays have no mention of the ww1 100 years memorial. No poppies. No ” lest we forget” message. Nothing.


Green crayons
Green crayons for use by cancer research conspiracy theorists


I could go on, but there’s only so much stupidity I can cope with in one day. Nick Clegg is certainly going to have his work cut out cleaning up fake news or whatever it is he’ll be doing at Facebook in 2019.


(*) The participants were 244 American university students and staff, which may explain the inclusion of evolution as one of the controversial topics.

Transplant +56: The check up

Today I had my first check up back at Derby after my stem cell transplant. My blood test results were reasonable, if a little on the low side. (Haemoglobin 125 (normal is 120-180), Platelets 116 (150-450), Neutrophils 1.03 (2.0 – 7.0)). This means I’m still neutropenic, but at least I won’t bleed to death 🙂 . I have a shiny new stock of Aciclovir and Co-Trimoxazole to help fight off any bugs I might pick up between now and Christmas. Physically I appear to be getting there, but I’m still feeling very fuzzy mentally. I’m hoping that I’ll start to feel a little sharper as my blood counts improve.

The consultant has scheduled a PET/CT scan for mid December, which will show if I’m still in remission. I’ll get the results the week before Christmas at my next check up. I hope Santa thinks that I’ve been a good boy this year. My (not) fit note has been extended until the end of January. Hopefully my December test results will suggest that a phased return to work will be all right early in 2019.

All being well I’ll also start maintenance chemotherapy with Rituximab injections in the new year. These will be given two months apart, for 3 years. When I started on my MCL journey maintenance chemotherapy wasn’t widely practised, as the results from studies were inconclusive. However, more recent evidence suggests that the benefits of maintenance chemotherapy after a stem cell transplant for MCL outweigh the disadvantages for people in my age group.

I’ve one big Christmas wish for Santa this year. I’d like my head hair back please. I know it won’t improve my looks, but at least I won’t shiver with every little draft that comes my way.

A warm hat is essential after a stem cell transplant
A warm hat is essential after a stem cell transplant.

Artificial intelligence is (mostly) not intelligent

This is not AI-powered, even though it's about to forecast the weather.
This is not an artificial intelligence, even though it’s about to forecast the weather.

I last wrote about artificial intelligence here in February 2014. Four and a half years ago it wasn’t something that very many people were paying attention to. Artificial intelligence (AI) had been fashionable in computing circles back in the mid 1980s, but its popularity as a mainstream topic was long gone. Cognitive scientists and psychologists also appeared to have given up on the topic. For example, the Open University removed the chapters on cognitive modelling and connectionism from the final few presentations of DD303 sometime around 2011. Fortunately, this was after I’d taken the course.

However, you can’t help but notice that there’s been a huge surge in software companies jumping onto the AI bandwagon recently. Probably the most irritating manifestation of this trend is the shouty chap on the Microsoft TV advert. While what he’s peddling is interesting, it’s not a definition of AI that I recognise.

By these same standards, the camera on your smartphones isn’t using AI to take better photographs, regardless of manufacturer claims. Chess playing computers aren’t AIs. And self-driving cars – no, they’re not using AI to avoid obstacles.

All of these examples are simply using the vast computing power we have available today to scan for patterns in ever-larger datasets. Domain-specific algorithms are then used to obtain a result. Algortihms that enable them to play chess, avoid obstacles and take better photographs. The more computing power there is, the more options these algorithms can run, and the more intelligent they seem. But they use the power of brute force computing rather than anything resembling an articificial human – or biological – intelligence to obtain results.

If you ask your camera phone to play chess, you won’t get very far. Likewise, you’ll not find a self-driving car that can diagnose illnesses. There are people who can do both – maybe even simultaneously – and avoid obstacles while driving a car, figure out that Brexit is a bad idea and so on.

Having said all of that, these examples are still better uses of computing resources and power than cryptocurrency mining. At the time of writing this activity is consuming as much electricity as the whole of Austria and adding incrementally to climate change.

So if my earlier examples aren’t AI, what is?

The term AI should be reserved for systems that (a) simulate human cognition and (b) can subsequently be used to explain how human cognition works. An AI system should also not be inherently domain-specific. In other words, the computing framework (hardware plus software) used should be capable of being retrained to deliver solutions in multiple domains, potentially simultaneously, just as a person can.

Without such rigour being applied to the definition of AI, any or all computer programs could be called AI. Much as I love the algorithm I wrote for my premium bond simulator a few days ago, it’s not an AI. Neither is my weather forecaster.

I’m not trying to argue about the number of angels that will fit on a pin-head here. I have a real concern about the misuse of the term AI. There is genuinely interesting research being performed in artificial intelligence. SpiNNaker at Manchester University appears to be one such example.

However, nothing will stop the flow of funding to valuable AI research faster than the inevitable perception (I predict within 3 years) that AI has failed. This will happen because software marketeers don’t understand what AI is and don’t really care anyway. For them, AI is simply a means to shift more computing “stuff”. When it is no longer a hot topic it will be unceremoniously dumped and rubbished for the next “big thing”.

Think I’m exaggerating? Take a look at the rise and fall of any big computing trend of the last 40 years. Object databases in the mid 1990s, for example. Computing has always been the equivalent of the fashion business for nerds (like me).

Derby would now vote to remain in the EU

I missed Channel 4’s “Brexit: What the Nation Really Thinks” last night. However, the headline was that by an eight percentage point margin, Britain would now prefer to remain in the EU. Jonathan Calder noted yesterday evening that a number of areas in the East Midlands would now vote to remain. My home city of Derby is one of them.

The Boy and the Ram, Wilfred Dudeney, 1963
The Boy and the Ram, Wilfred Dudeney, 1963.

In the June 2016 referendum, 57.22% of those voting in Derby said that they wanted to leave the EU. Survation’s data for Channel 4 now suggests that only a minority – 49.8% – are comfortable with that choice. This represents a 7.42 percentage point change in favour of remaining in the EU – the equivalent of around 1 in 8 voters switching from leave to remain.

The other cities in the East Midlands have seen even larger movements in opinion. Leicester is ever more firmly in the remain camp by 10.59 percentage points. Nottingham (10.77% change) and Lincoln (9.41% change), like Derby, have switched from leave to remain.

Of course, this is all moot unless our MPs choose to act on new information about the public mood. You can politely encourage your MP to do so by writing to them at the House of Commons. Alternatively, you may want to customise Open Britain’s latest email template.

Premium bond mythbusting

One of yesterday’s budget announcements was the lowering of the minimum premium bond purchase from £100 to £25 by March 2019. Inevitably the usual conspiracy theorists and/or people who don’t understand probability came out to play on various forums.

Some facts:

  • Every bond in every draw has an equal chance of winning a prize. Currently, these odds are 24,500 to 1 against.
  • If you hold a single £1 bond, then with average luck you’ll win a prize once every 24,500 months – or once every 2,041 years.
  • A £100 holding would improve these odds to once every 20 years or so.
  • Someone with the maximum holding of £50,000 could therefore expect to win around two prizes a month. 2.04, to be precise.

However, two myths seem to be in common circulation. The widespread belief in these myths perhaps explains why 42% still think that the NHS will get £350m/week extra after Brexit. (Also a myth – along with the idea that a Brexit of any type will deliver a dividend to the UK).

  • Myth 1 – blocks of consecutive bond numbers stand a better chance of winning than widely scattered bond numbers.
  • Myth 2 – a newer bond has a better chance of winning than an older bond.

Neither is true – as every bond in the draw has an equal chance of winning a prize.

Myth 1

It makes no difference whether you hold a single block of consecutive bonds or if they are scattered. Believing otherwise is as fallacious as suggesting that the sequence 6,6,6,6,6,6 is more or less likely than 1,2,3,4,5,6 when rolling a die six times. Assuming a fair die, any six number sequence is as likely as any other, as a die has no memory for what was rolled previously. The same is true for premium bonds – there’s no memory for which numbers have been drawn.

Myth 2

The old number / new number myth probably stems from the observation that new bonds seem to win more frequently than older ones – if you just look at lists of prize winners. However, this neglects the obvious point that older bonds are more likely to have been cashed in than newer ones. Regardless of when a bond was bought, it still has an equal chance of winning a prize. This myth is especially pernicious, as someone who withdraws older bonds to purchase newer ones loses at least a month of opportunity. This is because a bond bought (say) in November won’t be entered into a draw until the following January.

Crunching the numbers

Now, I realise that if you’re still struggling to see past these myths, some proof might be useful. So as part of my mental recovery from chemotherapy, I’ve written a premium bond simulator this morning. It’s aim is to dispel these two myths.

It works by simulating 82 years worth of bond draws. 81 is the average UK life expectancy. The extra year stems from the rule that bonds can be left in the draw for up to a year after someone’s death.

To make the programme run in a reasonable length of time, the number of bonds in each draw has been scaled back from 60 billion (approximately the number in circulation) to 6 million. Maximum bond holdings have been scaled back proportionately – from 50,000 to 5. This means that the outcome – an average 2.04 prizes per month – is maintained in line with the real NS&I draw.

There are four bondholder types defined. Someone with a block of consecutive numbers, someone with widely scattered numbers, a holder who has old bonds (represented by low numbers) and a holder with new bonds (represented by high numbers).

Here’s the output of a couple of runs from earlier on this afternoon. They demonstrate that every bondholder type has an approximately equal chance of winning over a lifetime of bondholding.

On this run, the bondholder with scattered single bonds won more times than the bondholder with consecutive numbers
On this run, the bondholder with scattered single bonds won more times than the bondholder with a block of consecutive numbers.
On this run, older bonds outperformed new bonds.
On this run, older bonds outperformed new bonds.

If you’re still not convinced, here’s the source code so you can play with it yourself.

#include <stdio.h> 
#include <stdbool.h>
#include <stdint.h>
#include <time.h>
#include <stdlib.h>
#define TOTALBONDS 6000000
#define WINODDS    2.45
#define BONDSHELD  5
#define TOTALDRAWS 984
double rand0to1()
    	/* return a pseudorandom number between 0 and 1 */
        return ((double)rand()/(double)RAND_MAX);
void main()
        int prizes, winner, i, drawnumber, prizesallocated; 
        int blocktotal=0, singletotal=0, oldtotal=0, newtotal=0;
        /* Different bondholder types and their bond numbers */
        int blockbonds[BONDSHELD]={200000,200001,200002,200003,200004};
       	int singlebonds[BONDSHELD]={10534,248491,1000302,4000522,5200976};
        int oldbonds[BONDSHELD]={1,10,100,1000,10000};
        int newbonds[BONDSHELD]={5999900,5999910,5999920,5999930,5999940};
	bool allbonds[TOTALBONDS]; 
        /* Seed the pseudorandom number generator */
        /* Total prizes are calculated using current NS&I odds of 24,500 to 1 per bond held, scaled to 2.45 to 1 per bond held for this simulation */
        /* The total number of bonds in ciruclation is also scaled back by the same propotion, from around 60 billion to 6 million */
        /* Therefore the maximum holding in this simulation is 5 bonds, equivalent to 50,000 in the real draw */
        /* Average luck implies each bondholder should win 2.04 times per draw - the same as in the real draw*/
        /* Run the draw multiple times - 12 is equivalent to 1 year's worth of real draws */
        for (drawnumber=0; drawnumber<TOTALDRAWS; drawnumber++) {
       		/* Set up the draw - no-one has won yet */
        	for (i=0;i<TOTALBONDS;i++)  { 
        	/* Work out the total number of prizes */
		prizes = (int) (TOTALBONDS / WINODDS);
        	/* Draw a new bond to win until all prizes are allocated */
        	while (prizesallocated<prizes) {
            		winner = (int) (rand0to1()*TOTALBONDS);
            		/* The NS&I rules state that the same bond cannot win twice in the same draw */
           		/* prizesallocated is not incremented in this event and the prize is reallocated */
            		if (!allbonds[winner]) {
               			allbonds[winner] = true;
        	/* Check each bondholder against the draw, and increment the total number of times they have won */
                printf("\nWinners for draw %d\n",drawnumber+1);
		for (i=0;i<BONDSHELD;i++) {
  			if (allbonds[blockbonds[i]]) { printf("Block bond %d wins!\n",blockbonds[i]); ++blocktotal; }
  			if (allbonds[singlebonds[i]]) { printf("Single bond %d wins!\n",singlebonds[i]); ++singletotal; }
  			if (allbonds[oldbonds[i]])  { printf("Old bond %d wins!\n",oldbonds[i]); ++oldtotal; }
  			if (allbonds[newbonds[i]]) { printf("New bond %d wins!\n",newbonds[i]); ++newtotal; }
        /* Calculate what the average luck was for each of the bondholders */
	printf("\nSummary of results\n");
        printf("Block bond holder won on average %.2f times per draw\n", (float) blocktotal/TOTALDRAWS);
        printf("Single bond holder won on average %.2f times per draw\n", (float) singletotal/TOTALDRAWS);
        printf("Old bond holder won on average %.2f times per draw\n", (float) oldtotal/TOTALDRAWS);
        printf("New bond holder won on average %.2f times per draw\n", (float) newtotal/TOTALDRAWS);

Transplant +45: Gentle exercise

Since I last wrote on T+30 I’ve continued to make progress. I’m still tired much of the time and if sleeping was an Olympic sport I’d be a certainty for the gold medal. However, it feels as if some kind of normality might not be that far away.

Physical exercise

This is the easiest to measure. Since T+30:

  • I no longer need my walking stick.
  • I’ve managed to drive both the Alfa and the 7 a couple of times, although not very far.
  • I spent a couple of hours at the Donington museum.
  • I’ve walked around the woods on Oakwood (several times), Kedleston Hall and yesterday spent some time walking around the gardens at Chatsworth (when I wasn’t eating cake, naturally). My daily step count has gone up from around 1,500 to averaging 5,000 or so. Yesterday I exceeded 8,000 for the first time in two months. My resting pulse has continued to come down (73 today), although it’s still a little above my mid-sixties norm.
Chatsworth - the view from the grotto
Chatsworth – the view from the grotto

Mental exercise

This is a little harder to measure, but since T+30:

  • I’ve built a surveillance camera for the driveway. This was motivated by the possibly paranoid belief I hold that an intruder tried to get into the house the first night I was home from hospital. It consists of a Raspberry Pi 3B+ inside a custom case, running MotionEye on Raspbian. (I originally tried MotionEyeOS, but it proved to be unstable). So far the only intruder its spotted is a spider.

A final lap of the Donington Grand Prix collection

Last Friday afternoon I paid a farewell visit with some friends to the Donington Grand Prix collection. Although the museum doesn’t close until 5th November, the contents of the display cabinets were already being packed away. The café was shuttered and empty. The number of cars also seems to have declined since I last visited in mid-2017. There are now spaces between many of the exhibits. If you’re thinking of going, sooner rather than later is probably a good idea. The cost of entry is £12 per adult, £5 per child. We spent around 90 minutes in the museum, discussing (amongst other things) the evolution of F1 aerodynamics.

Skipping quickly through the first two halls that are dedicated to a collection of military vehicles, the real stars are the racing cars from McLaren, Williams, Force India and Vanwall.

Early McLaren racing cars
Some early McLaren cars
A 1997 McLaren F1 car
A McLaren F1 car from 1997. Somewhere I have a picture of me with either this or the 1998 car at an Ingres user group meeting. The company I used to work for, Computer Associates, was one of McLaren’s sponsors during the David Coulthard / Mika Häkkinen era. We were provided with a car (minus the engine) as part of the deal. The cars always generated far more interest than the software we were selling, so I’m not sure that it was necessarily a good investment.
Force India F1 cars
A gaggle of Force India F1 cars, from the days before the striking pink livery in use this season. These represent the last significant addition to the collection, dating from 2016, and are presumably on loan from the team.
1950s Vanwalls, as driven by Stirling Moss.
1950s Vanwalls, as driven by Stirling Moss. There is a memorial plaque in the museum to his team-mate, Stuart Lewis-Evans. He died after his Vanwall engine caught fire at the Moroccan Grand Prix 60 years ago this week.
Helmets - Jock Taylor, Benga Johannson and Niki Lauda
There are no racing motorcycles in the collection, but they do have Jock Taylor and Benga Johansson‘s rather battered sidecar helmets on display, next to one of Niki Lauda’s. The Jackie Stewart collection had already been packed away, unless it consisted solely of a tartan scarf.
The end
The end. Outside of individual manufacturer’s premises, I can’t think of another location that had such a diverse collection of racing cars on display.

World Sidecar Trophy, Donington Park, 18th May 1980

One problem with having chemo fatigue is that I watch far too much television. This weekend I’ve managed to see some of the British Superbikes from Brands Hatch. I was delighted to see Leon Haslam clinch the championship. Back in the late 70s I remember watching his father, Ron, duel with the likes of Randy Mamola at Donington Park.

These fond memories set me wading through some reels of old 8mm cine film this afternoon. While I didn’t manage to find any of Ron and Randy in their prime, I did find a couple of minutes from the World Sidecar Trophy, shot from our favourite vantage point at McLeans. This featured Jock Taylor and his ‘passenger’, Benga Johansson. Normal motorcycle racing is daring enough, sidecar racing is terrifying. Much as the exploits of Ron Haslam appealed to me as a teenager, the real hard men were the sidecar racers. What’s noticeable in this clip is the fairly low-level of protection offered to riders, marshalls and spectators. These days McLeans has a much larger run-off area and catch fencing.

World Sidecar Trophy programme, Donington Park, Sunday May 18th 1980.
World Sidecar Trophy programme, Donington Park, Sunday May 18th 1980.

I can’t find the result of this particular race, but it would seem that Jock and Benga were leading in the number 7 Fowler Yamaha outfit at some point in the race. (See around 1m 16s into the clip). They certainly won the world sidecar championship together in 1980. Sadly, Jock Taylor was killed in a racing accident in 1982 at the age of 28.

Transplant +30: Slow going

Before my stem cell transplant, I was told that recovery would take around 3-6 months. If I’m honest, I chose not to believe it as I recovered from most of my earlier cycles of chemotherapy in about 2-3 weeks. After my 6th cycle of cytarabine and rituximab I even felt well enough to go away on holiday for a week. I enjoyed walking, dining out and being terrified on the Heights of Abraham cable cars. Anyway, I’m now at the point of conceding that 3-6 months recovery is probably going to be about right. That’s a long time. Definitely slow going.

A month on from my transplant and some days (like yesterday) are incredibly tough. Definitely worse than anything I experienced during the first six rounds of chemo. Shortness of breath, crushing fatigue, being unable to eat very much, nausea … but this is fairly standard fare by all accounts. Today has been better, but I’ve not moved very much. Reading the gas and electricity meters took real effort to achieve. I’ve not left the house (except to walk to the post box or nearby shop) since I came home from hospital. I’m worried that I’m becoming a hermit. Driving a car again feels like a distant ambition.

My Fitbit agrees that the process has taken a lot out of me. My resting pulse is still in the high 70s/low 80s, when normally it’s in the mid to high 60s. No wonder I feel tired and am finding it difficult to put weight back on.

Resting heart rate graph
My heart is working harder to try to make up for the low levels of haemoglobin, platelets and white cells I currently have.

But on the positive side I’m still here. I am getting better – albeit more slowly than I’d like. It does seem to be a case of three steps forwards and two back, but that is progress nonetheless.