<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.7">Jekyll</generator><link href="https://wayne.conniptions.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://wayne.conniptions.org/" rel="alternate" type="text/html" /><updated>2026-02-09T18:53:34+00:00</updated><id>https://wayne.conniptions.org/feed.xml</id><title type="html">Wayne Myers</title><subtitle>Wayne Myers is a musician, writer and coder based in St Leonards-on-Sea. This is his blog.</subtitle><entry><title type="html">Eulogy For My Father</title><link href="https://wayne.conniptions.org/2026/02/09/eulogy-for-my-father.html" rel="alternate" type="text/html" title="Eulogy For My Father" /><published>2026-02-09T00:00:00+00:00</published><updated>2026-02-09T00:00:00+00:00</updated><id>https://wayne.conniptions.org/2026/02/09/eulogy-for-my-father</id><content type="html" xml:base="https://wayne.conniptions.org/2026/02/09/eulogy-for-my-father.html">&lt;p&gt;&lt;em&gt;My father Val Myers z”l passed away on 4th February 2026. This is the text of the eulogy I delivered at his funeral.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Val, my father, was a man of many qualities and many, many, many words.&lt;/p&gt;

&lt;p&gt;For better or worse, I, as his son, may possibly have inherited some of that latter quality. More than once it has been put to me, as his son, mainly by him, that I could talk all four legs off a donkey.&lt;/p&gt;

&lt;p&gt;The truth is that my father could not only do the same, but also persuade the donkey to go for a walk afterwards, and then continue talking to the donkey, as it tried to leave, for a further half hour.&lt;/p&gt;

&lt;p&gt;That’s a fairly longwinded way of saying: I’ll try and keep this relatively brief, but I can’t guarantee anything.&lt;/p&gt;

&lt;p&gt;More than anything else, my father was a loving man.&lt;/p&gt;

&lt;p&gt;He met the love of his life, my mother Sandie, in February 1966; they were married a little more than two years later, and - while many of their peers did not - they remained married through bad times and good, for the rest of his life. He loved his children - myself and my sister Jemma - and later, when his son-in-law Stephen, grandchildren, Dylan, Zak and Levi, and my partner Brenda joined the family, he loved them also. Everything he ever did was motivated by love.&lt;/p&gt;

&lt;p&gt;Another thing my father loved was teaching.&lt;/p&gt;

&lt;p&gt;He was that rare thing - a born teacher. He was literally incapable of learning anything without wanting to teach it to other people.&lt;/p&gt;

&lt;p&gt;In his professional life, after qualifying as an accountant, he tried for a while to practice accountancy first directly, working for this or that accountancy firm, and then indirectly, in business. Watford Waste Paper was an attempt to do recycling before recycling was a thing, but in the end, running a business was not for him. It was not until he started teaching accountancy that he really found his professional niche; he would continue teaching generation after generation of accountants until retirement.&lt;/p&gt;

&lt;p&gt;But that was only one small part of his career as a life-long educator.&lt;/p&gt;

&lt;p&gt;When my sister and I were small, some time in the late 1970s, he taught us to play chess.&lt;/p&gt;

&lt;p&gt;Under his tuition, both of us improved rapidly, and his genuine delight when he realised that he would never beat either of us at chess ever again could not be concealed. Within a few years he had started running a junior chess club at the Harrow Leisure Centre. Here, all-comers, mainly of middle school age, were taught everything from the basic moves to fairly advanced tactical, opening and endgame theory. Not content with that, he also taught both myself and my sister to be chess teachers ourselves, and we were roped in to provide extra tuition at the club. The road to the top echelons of chess is long and difficult, and while neither Jemma nor I made it there, several of the children who passed through Val’s chess school did end up reaching the very highest levels.&lt;/p&gt;

&lt;p&gt;Ultimately, it was in neither accountancy nor chess where my father achieved his greatest success as a teacher.&lt;/p&gt;

&lt;p&gt;That was in linedancing.&lt;/p&gt;

&lt;p&gt;My Dad went to his first linedance in 1994, and less than ten years later, was a fully accredited linedance teacher and founder of the AB Coasters linedance club. Not content with this, he started creating his own series of linedances, aimed at Absolute Beginners to linedancing. From this he created a complete Absolute Beginners course, which he taught at the club - taking people from their very first linedance steps through to being able to handle anything more advanced linedancing could throw at them.&lt;/p&gt;

&lt;p&gt;In 2007 he won the Linedancer Magazine Crystal Boot award for his beginner’s linedance Simply Mambo. While he was proud of this, and also of the fact that the shorthand ‘AB’ - which he invented - is now generally used in the linedance world to mean ‘Absolute Beginners’, he was much more proud of the fact that his beginner AB linedance teaching syllabus was - in full - freely available on his website for anyone to pick up and use to teach more people the rudiments of linedancing. He travelled all over the world teaching linedancing, and recorded over 400 instructional linedance videos with his friend Tanya on YouTube which have been viewed over eight million times.&lt;/p&gt;

&lt;p&gt;He was also fiercely proud of his Jewish identity, was deeply concerned about the recent rise in antisemitism, and a strong supporter of Israel. While he and I often did not see eye to eye on certain issues, it was always clear that his position was fundamentally motivated by a strong sense of Ahavas Yisroel, as in the words of Maimonides: “&lt;em&gt;mitzvas asei le’ehov kol echad v’echad mi’Yisroel kegufo&lt;/em&gt;” - “&lt;em&gt;it is a positive commandment to love each one of Israel as yourself&lt;/em&gt;”. As always with my father, his essential motivation was from a place of love.&lt;/p&gt;

&lt;p&gt;There is so much more to say, but this is a good place to pause.&lt;/p&gt;

&lt;p&gt;I have not mentioned his lifelong support of Watford Football Club, his love of cats, his abiding interest in the Arthurian mythos, his wide taste in music that extended far beyond the country music repertoire of a linedancer to encompass jazz, blues, reggae, classical, folk, soul and pretty much anything that moved him or made him want to dance, and make other people dance with him.&lt;/p&gt;

&lt;p&gt;I will leave you with a story which some of you may have already heard several times and are now about to hear again, this time from me: about twenty years ago, my Dad took me to see country legend Steve Earle in concert at the Royal Albert Hall. Just as the Steve Earle set began, we found ourselves both having an unfortunate Out Of Beer experience, so he went to the bar to remedy matters. The bar was deserted except for one stunningly beautiful woman, who waved at him to join her. He declined the invitation and returned with the beers. A few songs later, Steve Earle introduced on stage a Very Special Guest: Emmy Lou Harris. It was the same woman that Dad had declined having a drink with at the bar.&lt;/p&gt;

&lt;p&gt;When telling this story, my father always explained it by saying that he loved his wife very very much, and therefore made a point of never drinking with strange women in bars, no matter how beautiful. It is now forever too late to enquire whether or not he had actually recognised Emmy Lou Harris, though it seems fairly obvious that he had not.&lt;/p&gt;

&lt;p&gt;The point is that in this, as in all things, my father was motivated by love.&lt;/p&gt;</content><author><name></name></author><category term="eulogy" /><category term="Val Myers" /><category term="music" /><category term="chess" /><category term="linedancing" /><summary type="html">My father Val Myers z”l passed away on 4th February 2026. This is the text of the eulogy I delivered at his funeral.</summary></entry><entry><title type="html">Trans Justice - My Letter To Private Eye</title><link href="https://wayne.conniptions.org/2025/05/11/trans-justice-my-letter-to-private-eye.html" rel="alternate" type="text/html" title="Trans Justice - My Letter To Private Eye" /><published>2025-05-11T00:00:00+01:00</published><updated>2025-05-11T00:00:00+01:00</updated><id>https://wayne.conniptions.org/2025/05/11/trans-justice-my-letter-to-private-eye</id><content type="html" xml:base="https://wayne.conniptions.org/2025/05/11/trans-justice-my-letter-to-private-eye.html">&lt;p&gt;I doubt they will publish it, but I wrote the following letter to Private Eye today.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Dear Sir,&lt;/p&gt;

  &lt;p&gt;So it’s justice, is it, for trans people to be excluded from public toilets, from sports teams and from rape crisis centres.&lt;/p&gt;

  &lt;p&gt;It’s justice, is it, for trans people to have draconian limitations placed on their access to healthcare.&lt;/p&gt;

  &lt;p&gt;It’s justice, is it, for hate crimes against trans people to have rocketed over the last decade, while mainstream newspapers including the Guardian, Telegraph, Times and Mail publish hundreds of articles vilifying trans people every month.&lt;/p&gt;

  &lt;p&gt;It’s justice, is it, for an open, sustained and organised hate campaign against a minority group making up less than 0.1% of the population to have had such resounding success across the board that one campaign leader posted a celebratory champagne-sipping selfie following the recent Supreme Court ruling.&lt;/p&gt;

  &lt;p&gt;And it’s justice, is it, for Private Eye, an organ ostensibly long-devoted to the cause of justice, to lend its full-throated support to that hate campaign with that piece by ‘Lady Justice’.&lt;/p&gt;

  &lt;p&gt;I see,&lt;/p&gt;

  &lt;p&gt;Yours,&lt;/p&gt;

  &lt;p&gt;A. Banana&lt;/p&gt;
&lt;/blockquote&gt;</content><author><name></name></author><category term="letters" /><category term="trans rights" /><category term="human rights" /><category term="justice" /><summary type="html">I doubt they will publish it, but I wrote the following letter to Private Eye today.</summary></entry><entry><title type="html">The AI Don’t Work</title><link href="https://wayne.conniptions.org/2024/12/20/the-ai-dont-work.html" rel="alternate" type="text/html" title="The AI Don’t Work" /><published>2024-12-20T00:00:00+00:00</published><updated>2024-12-20T00:00:00+00:00</updated><id>https://wayne.conniptions.org/2024/12/20/the-ai-dont-work</id><content type="html" xml:base="https://wayne.conniptions.org/2024/12/20/the-ai-dont-work.html">&lt;p&gt;I’ve had this idea on my mind for a while, and finally got around to bashing
out a first go at the lyrics the other day, along with a demo. When an idea
won’t go away, that’s usually a sign that it is worth pursuing.&lt;/p&gt;

&lt;p&gt;It’s been ages since I so much as picked up the guitar, as you can probably
tell. I’m still vaguely pleased with it, to the extent that I am ever pleased with
anything.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/coLztyqkoVw&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The lyrics could perhaps be stronger still. I wanted to get something in there
about the blatant theft part, but what with all the low hanging fruit of stuff
like not actually working or being fit for purpose, and destroying the planet,
I left that out.&lt;/p&gt;

&lt;p&gt;Also, the original lyrics are… difficult to filk, because there aren’t many.
The usual filk trick of retaining as many lines as possible from the original while
shifting the context completely was difficult to achieve with this one. I had a
go, at least.&lt;/p&gt;

&lt;p&gt;That said, the central conceit here is essentially the title, just as it is in
the original song. “But Mr Ashcroft,” a person could say, “sometimes drugs do
work, what are you on about?” To which I imagine Mr Ashcroft would very reasonably
reply with a sentence including the words ‘off’ and ‘fuck’.&lt;/p&gt;

&lt;p&gt;And so here.&lt;/p&gt;

&lt;p&gt;Quite obviously, AI, or “AI”, to spell it properly, clearly has some uses. But
shovelling half-baked chatbots which will cheerfully and confidently lie to you
some reasonably large percentage of the time - into everything in sight - is not
it.&lt;/p&gt;

&lt;p&gt;Anyway, here are the lyrics, FWIW:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All this talk of Gemini&lt;br /&gt;
It’s getting me down my love&lt;br /&gt;
I asked Chat GPT, and it said to me&lt;br /&gt;
Error generating a response&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It keeps trying to assist me&lt;br /&gt;
As it pops up on my screen&lt;br /&gt;
But the AI don’t work, it just makes things worse&lt;br /&gt;
I just want to read this document&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI don’t work, it just makes things worse&lt;br /&gt;
I just want to search the web again…&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;But I know I’m on a losing streak&lt;br /&gt;
Cos I tried out Midjourney&lt;br /&gt;
If you look too close, it’s all kind of gross&lt;br /&gt;
With six fingers in your ear again&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI don’t work, it gets worse and worse&lt;br /&gt;
And you’re putting it in everything&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We don’t neeeeeed&lt;br /&gt;
Spicy autocomplete&lt;br /&gt;
That can’t draw feet&lt;br /&gt;
Just make it sto…op&lt;br /&gt;
It’s just a lie, it’s better off dead&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All this talk of data centers&lt;br /&gt;
It’s getting me down my love&lt;br /&gt;
Costs a fucking bomb, then it gets shit wrong&lt;br /&gt;
It’s a waste of electricity&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI don’t work, it just makes things worse&lt;br /&gt;
While destroying the environment&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We don’t neeeeeed&lt;br /&gt;
Spicy autocomplete&lt;br /&gt;
That can’t draw feet&lt;br /&gt;
Just make it sto…op&lt;br /&gt;
It’s just a lie, it’s better off dead&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI don’t work, it just makes things worse&lt;br /&gt;
I just want to read this document&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI don’t work, it just makes things worse&lt;br /&gt;
I just want to search the web again&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI don’t work, it just makes things worse&lt;br /&gt;
While destroying the enviroment&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The AI don’t work it gets worse and worse&lt;br /&gt;
And you’re putting it in everything&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks, Demis&lt;/em&gt;&lt;/p&gt;</content><author><name></name></author><category term="filk" /><category term="music" /><category term="the verve" /><category term="richard ashcroft" /><category term="ai" /><summary type="html">I’ve had this idea on my mind for a while, and finally got around to bashing out a first go at the lyrics the other day, along with a demo. When an idea won’t go away, that’s usually a sign that it is worth pursuing.</summary></entry><entry><title type="html">Italian Abdominal Truss Package Designer Doesn’t Give A Shit</title><link href="https://wayne.conniptions.org/2024/03/22/abdominal-truss.html" rel="alternate" type="text/html" title="Italian Abdominal Truss Package Designer Doesn’t Give A Shit" /><published>2024-03-22T00:00:00+00:00</published><updated>2024-03-22T00:00:00+00:00</updated><id>https://wayne.conniptions.org/2024/03/22/abdominal-truss</id><content type="html" xml:base="https://wayne.conniptions.org/2024/03/22/abdominal-truss.html">&lt;p&gt;I just had surgery to repair an incisional hernia near where my appendix
used to be.&lt;/p&gt;

&lt;p&gt;By “just” I mean Thursday week ago. I am recovering well, thank you, though it
did knock me for six for several days, as abdominal surgery does.&lt;/p&gt;

&lt;p&gt;I’m tapering off the painkillers now, back home, moving around, and even gingerly
doing things that don’t involve heavy objects. Or medium weight objects.&lt;/p&gt;

&lt;p&gt;Everything is fine. Thanks again.&lt;/p&gt;

&lt;p&gt;Except… for the next eight weeks I must wear an abdominal truss in order to
make sure the stitching doesn’t pop open and the mesh fall out. Or something.&lt;/p&gt;

&lt;p&gt;The abdominal truss is possibly the least sexy item of clothing ever invented.
Which is also fine. I do not need the truss to be sexy. I need it to protect
my hernia repair. At 52 years of age, while my ‘being sexy’ days may not
necessarily be entirely over, I am no longer remotely bothered about not being
sexy while my hernia gets fixed. So be it.&lt;/p&gt;

&lt;p&gt;Here’s what I look like in the truss.&lt;/p&gt;

&lt;p&gt;CW: picture of me in a truss. Sorry about that.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/truss-pic.jpg&quot; alt=&quot;Selfie of a middle-aged man with a beard holding with his T-shirt pulled up to reveal the white abdominal truss around his middle&quot; /&gt;&lt;/p&gt;

&lt;p&gt;What’s not merely fine but positively dandy is that the wonderful NHS hospital
that fixed me up very kindly gifted me one (1) abdominal truss, which I must wear
for the next eight weeks. Did I mention that already? The eight weeks bit? I
think I did.&lt;/p&gt;

&lt;p&gt;Anyway. One truss, eight weeks, a newly stitched wound busy healing - you do the
maths. One week in and the thing was minging. Time to get hold of another one!&lt;/p&gt;

&lt;p&gt;It arrived today, and the packaging was… not what I expected.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/truss-package.jpg&quot; alt=&quot;The cardboard box that the truss came in is propped up on a chair. The word 'Pavis' is at the top, with 'Linea Addome', 'Abdominal Line' and 'Ligne Abdomen' underneath. In the centre is a muscular man in purple underwear holding a woman also in purple underwear from behind. Her hair is in a bun and she is poised on one foot, on tiptoe, apparently being kept from falling over by a long length of purple silk cloth attached off camera on the left hand side. The man's hand is buried in the cloth. He looks deeply concerned, or angry. The woman has her right arm raised and is looking down at the man's hand.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have… questions.&lt;/p&gt;

&lt;p&gt;Neither of the people in the photo are wearing an abdominal truss. It is not
entirely clear what they are wearing. Nor what they are doing.&lt;/p&gt;

&lt;p&gt;Whatever it is, it looks a lot like something that I, a person currently wearing an
abdominal truss, would be strongly advised to abstain from.&lt;/p&gt;

&lt;p&gt;Mind you, neither of them look all that happy about it.&lt;/p&gt;

&lt;p&gt;Oh well.&lt;/p&gt;</content><author><name></name></author><category term="health" /><category term="abdominaltruss" /><category term="design" /><category term="packaging" /><category term="nhs" /><summary type="html">I just had surgery to repair an incisional hernia near where my appendix used to be.</summary></entry><entry><title type="html">On Staying Vaguely Sane In A Post-Truth World</title><link href="https://wayne.conniptions.org/2024/01/28/on-staying-vaguely-sane.html" rel="alternate" type="text/html" title="On Staying Vaguely Sane In A Post-Truth World" /><published>2024-01-28T00:00:00+00:00</published><updated>2024-01-28T00:00:00+00:00</updated><id>https://wayne.conniptions.org/2024/01/28/on-staying-vaguely-sane</id><content type="html" xml:base="https://wayne.conniptions.org/2024/01/28/on-staying-vaguely-sane.html">&lt;p&gt;Or, &lt;em&gt;why I thought the joke in my last comic was actually a bit shit but posted it anyway&lt;/em&gt;…&lt;/p&gt;

&lt;p&gt;Last night I posted a new cartoon over on comic.conniptions.org featuring &lt;a href=&quot;https://comic.conniptions.org/comics/786.html&quot;&gt;Rishi Sunak&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’ve not drawn him before and it’s been a good while since I last drew a political caricature, so I was pleased with how that part of it came out.&lt;/p&gt;

&lt;p&gt;But the joke, such as it is, no matter how much I worded and re-worded it, doesn’t seem to land quite as well as I’d hoped it would.&lt;/p&gt;

&lt;p&gt;I chose to keep it, because in this case, that is itself part of the point of the joke.&lt;/p&gt;

&lt;p&gt;The background is the current - utterly insane, utterly disgusting - &lt;a href=&quot;https://www.gov.uk/government/publications/safety-of-rwanda-asylum-and-immigration-draft-bill&quot;&gt;Safety of Rwanda (Asylum and Immigration)&lt;/a&gt; Bill currently going through the UK Parliament. This aims to unilaterally declare Rwanda to be a safe country to deport asylum seekers to, as a precursor to - the government hopes - removing any remaining legal impediments to doing just that. The Bill arose in response to a judgement by the Supreme Court that Rwanda was not, in fact, a safe country in any way shape or form, and that implementing the plan to deport asylum seekers there would break international law in several ways.&lt;/p&gt;

&lt;p&gt;The BBC have provided a general overview of the Rwanda asylum plan &lt;a href=&quot;https://www.bbc.co.uk/news/explainers-61782866&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;David Allen Green, whose talent at making legal minutiae accessible to non-legal experts remains unmatched, breaks down the judgement of the Supreme Court in great detail &lt;a href=&quot;https://davidallengreen.com/2023/11/the-three-elements-of-the-rwanda-judgment-that-show-how-the-united-kingdom-government-is-now-boxed-in/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Guardian coverage of this has been consistently good, including this recent piece, where the headline is also a trigger warning for anyone wishing to retain some shred of sanity: &lt;a href=&quot;https://www.theguardian.com/world/2024/jan/27/revealed-uk-granted-asylum-to-rwandan-refugees-while-arguing-country-was-safe&quot;&gt;Revealed: UK granted asylum to Rwandan refugees while arguing country was safe&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Fully unpicking this particular Matryoshka doll of bullshit is way beyond the scope of this blog post, and no doubt some future PhD history of politics student - if there are such things - will have a miserable few years doing so at some point in the future, if there is one.&lt;/p&gt;

&lt;p&gt;But there are a couple of things going on here - obvious things perhaps - but things that need pointing out and remembering nonetheless.&lt;/p&gt;

&lt;p&gt;Firstly - why are we even fucking talking about this? The idea of a UK government plan to deport asylum seekers to Rwanda is so completely inhuman, so openly far-right, that it is hard to imagine even the Tory party of five years ago being able to stomach it. Even Theresa May - no soft-hearted liberal - &lt;a href=&quot;https://www.bbc.co.uk/news/uk-61153677&quot;&gt;could not support it&lt;/a&gt;. But we are fucking talking about this, and we are doing so because the far-right takeover of the Tory party is now complete, to the extent that several Tory rebels could not support the Bill at latest reading because &lt;a href=&quot;https://www.theguardian.com/uk-news/2024/jan/17/rishi-sunak-rwanda-deportation-bill-passes-third-reading-in-commons&quot;&gt;it did not go far enough for them&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It is not so many years in the scheme of things since my family immigrated to the UK hoping to find a tolerant country where the far-right would not have a hope of taking over. Well, here we are. We have an actively far-right government, doing actual far-right things, right now, today. Do not forget this.&lt;/p&gt;

&lt;p&gt;Secondly - this is a particularly egregious example of post-truth politics. The attempt by the government to get around the legal facts in the judgement set out by the Supreme Court, by simply declaring Rwanda to be safe - by fiat - would be laughable if it were not actually happening. But in the context of Brexit, of Trump, of Putin’s war in Ukraine, of the continued existence of anti-vaxxers and climate-change deniers - it is just a normal Tuesday.&lt;/p&gt;

&lt;p&gt;Of course politicians have always lied: that’s been a thing as long as there have been politicians. But this is King Cnut territory, only with, you know, everything. It’s different, and worse, and terrifying, and the Wikipedia article about it is both &lt;a href=&quot;https://en.wikipedia.org/wiki/Post-truth_politics&quot;&gt;much better and much longer than it should be&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Do not forget this either.&lt;/p&gt;

&lt;p&gt;And so to my weak joke. In the comic, Sunak exhorts the Lords to finally pass his ridiculous bill, which seeks to solve a problem by unilaterally overriding reality, so why stop there? Comic Sunak goes on to mention two further bills he has in mind, one of which will solve the Brexit problem by unilaterally declaring it a unilateral success, and one of which will solve his own political problems by declaring him personally to be ‘a really popular guy actually’.&lt;/p&gt;

&lt;p&gt;If this doesn’t raise a particular chuckle, that’s because in a post-truth world and under a far-right government that has long parted company with any notion of objective reality, it is easy to see at least the first of these Bills actually being proposed - and far worse.&lt;/p&gt;

&lt;p&gt;But I posted it anyway - if nothing else as a reminder to myself about these things.&lt;/p&gt;

&lt;p&gt;Retaining some semblance of sanity under such conditions involves a certain amount of cognitive dissonance. You have to pretend - at least a bit - that everything is not quite so bad as all that, because otherwise it is all too much and nothing good comes of it. But you also need to remember from time to time. Because nothing good comes from the ostrich thing either. And there are things to be done. Small things, perhaps, but things nonetheless.&lt;/p&gt;

&lt;p&gt;If you’ve read down this far, I hope you too are trying to do some of those small things, maybe even not-so-small things, and more power to your elbow if so.&lt;/p&gt;</content><author><name></name></author><category term="politics" /><category term="Rishi Sunak" /><category term="post-truth" /><category term="comic" /><category term="law" /><category term="civil liberties" /><summary type="html">Or, why I thought the joke in my last comic was actually a bit shit but posted it anyway…</summary></entry><entry><title type="html">Gefilte Fish</title><link href="https://wayne.conniptions.org/2023/04/10/gefilte-fish.html" rel="alternate" type="text/html" title="Gefilte Fish" /><published>2023-04-10T00:00:00+01:00</published><updated>2023-04-10T00:00:00+01:00</updated><id>https://wayne.conniptions.org/2023/04/10/gefilte-fish</id><content type="html" xml:base="https://wayne.conniptions.org/2023/04/10/gefilte-fish.html">&lt;p&gt;Last night I made gefilte fish for the first time. I am feeling weirdly
emotional about it. This post is an attempt to process that.&lt;/p&gt;

&lt;p&gt;Gefilte fish, if you have never heard of it, is a kind of poached fish ball
boiled with onions and carrot, traditionally served with chrayne, a sauce made
from horseradish, vinegar and beetroot. It originated among the Ashkenazi Jews
of Eastern Europe and, although I am not entirely sure how true this is, is
said to be a clever way around the religious prohibition against all forms of
work on Shabbos (the Sabbath), one such form being the act of separating things
from other things. This includes separating bones from flesh, which basically
meant Jews could never eat fish on Saturdays, an unfortunate situation in places
where fish is one of your main available sources of protein.&lt;/p&gt;

&lt;p&gt;Since all bones are necessarily removed in the process of making gefilte fish,
plus it can (and should) be served cold, it is therefore an ideal Shabbos
delicacy, since you are also not allowed to cook. Actually you can, so long as
you neither turn a fire on or off - which is Deeply Odd And Quite Sexist when
you think about it - is cooking not itself considered work?&lt;sup&gt;&lt;a href=&quot;#note&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; - and there’s a
whole recipe - Tscholent - involving putting an oven on a very low heat on
Friday afternoon and leaving it going overnight to get a hot meal the next day.
It’s complicated. I’m not even religious. Anyway, this post is about gefilte
fish, not tscholent.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/gefilte-fish.jpg&quot; alt=&quot;A plate of gefilte fish, with chrayne, in action&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Gefilte fish is also extremely delicious and has become a staple Jewish food
among Ashkenazis for almost all occasions. As I was growing up, my Nana
and Mum would make gefilte fish for Pesach, to break the fast with on Yom
Kippur, and, now and again, just because, as a starter for the Friday evening
Shabbos meal. Later, as an adult, my Mum would reliably and without fail
deliver or have me come and collect a batch of gefilte fish every year at
Pesach, which I would usually devour within 48 hours.&lt;/p&gt;

&lt;p&gt;There are some men who would starve if it weren’t for the women around them
seeing to it that they got fed, and I have striven Not To Be Like That my whole
adult life. I do most of the cooking at home, including, increasingly, various
traditional Jewish staples such as chicken soup and so on. But somehow I never
got around to gefilte fish. Or chrayne for that matter. (Don’t forget the
chrayne. The chrayne is very important.)&lt;/p&gt;

&lt;p&gt;One of my prized possessions is my late Nana’s 1958 copy of Florence
Greenberg’s Jewish Cookery Book, but like so many other recipes in there, the
gefilte fish recipe is just weird. Ground almonds? Celery? Fresh parsley? Boiling
the fish to make stock, straining, reserving, then making up the balls - with an
indeterminate quantity of matzo meal to bind - before gently returning them
to the stock and seeing how far the smell of boiling fish could be spread over
the next hour or two? It looked very complicated.&lt;/p&gt;

&lt;p&gt;Also, if Mum or Nana had ever put parsley in gefilte fish, it had somehow dissolved
without trace. You can usually tell if something has parsley in it. The bits
of parsley are a dead giveaway.&lt;/p&gt;

&lt;p&gt;I believe - and I don’t know why, because I haven’t a trace of supporting
evidence - that most Jewish households in the UK during the 1950s and 1960s had
a copy of Greenberg, but I also suspect that many recipes in it were widely
ignored, or, in practice, altered beyond recognition if used at all. The
important recipes in my copy are the ones in the back in my Nana’s
handwriting. But this post isn’t about those.&lt;/p&gt;

&lt;p&gt;Anyway.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/4EqxSX8b93I&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;A few months ago, B. and I finally left London and moved to St Leonards-on-Sea
in East Sussex, a distance of around 50 or 60 miles away, depending how you count
it. Whichever of those you go with, it is certainly not within Reasonable Gefilte
Fish Delivery Or Collection range from my Mum.&lt;/p&gt;

&lt;p&gt;There is little or no Jewish community in St Leonards, but it does have easy
access to a number of excellent fishmongers and greengrocers. Last week, while
buying eggs at the greengrocers I noticed that he was also selling horseradish,
and remembered that I’d been meaning to make my own chrayne for years.&lt;/p&gt;

&lt;p&gt;Chrayne is supposed to blow your head off. Proper chrayne will clear every cranial
tube of fluid in one go, but in the good way, like the old Colmans English Mustard
before they changed the recipe and nerfed it. With good chrayne, grumpy middle-aged
and elderly Jews have for centuries complained bitterly about Certain Children
leaving the lid off for too long, thus causing the potency to be lost due to
exposure to oxygen in the air. (This is true. Do not leave the lid off the
chrayne.) But shop-bought chrayne comes with the lid pre-emptively left off.
It is insipid, more like beetroot jam than mustard, and hence pointless. Every
year for the last several decades I have bought a jar of chrayne at Pesach to go
with my Mum’s gefilte fish, and every year I have been disappointed with it. The
chrayne, that is. Not the gefilte fish. To be clear: my Mum makes the best gefilte
fish.&lt;/p&gt;

&lt;p&gt;It would have been good if I’d remembered to pick up some horseradish while I
was actually in the shop, but I went back the next day and got some.&lt;/p&gt;

&lt;p&gt;“What are you planning to do with it?” asked the greengrocer.&lt;/p&gt;

&lt;p&gt;“I’m going to make ch… horseradish sauce,” I told him, not yet feeling ready to
have a conversation about Yiddish names for Ashkenazi Jewish condiments at the
greengrocers.&lt;/p&gt;

&lt;p&gt;“Oh, I’ll need some beetroots too.”&lt;/p&gt;

&lt;p&gt;“They’re over there.”&lt;/p&gt;

&lt;p&gt;I grabbed the beets, paid, and fled.&lt;/p&gt;

&lt;p&gt;Chrayne is not hard to make. Here is Greenberg’s recipe:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Take 3 large cooked beetroots and 2 sticks horseradish, peel and grate them all
and mix together. Sweeten to taste, and pour on as much malt vinegar as the mixture
will absorb. Pot and tie down.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s what I should have done.&lt;/p&gt;

&lt;p&gt;Instead I very stupidly used a random recipe from the internet which, in its
attempt to put a sassy modern twist on chrayne, or antisemitism, or something,
suggested a) using balsamic vinegar, b) adding a clove of garlic, and c) chopping
the horseradish rather than grating it. All of these things - I can now
exclusively reveal - are Very Very Wrong.&lt;/p&gt;

&lt;p&gt;Worse than that, it turned out the beets I had bought in a hurry were pre-cooked,
G-d knows how or in what. Literally every other vegetable in that shop is so
lush, raw, fresh and organic you expect them to all burst into cartoon four
part harmony at any moment. But no, I’d managed to buy something pre-processed
there. Still, it saved cooking and peeling the beets myself.&lt;/p&gt;

&lt;p&gt;The result was a chrayne almost but not entirely identical to the sad shop-bought
jars from Sainsbury’s. It tasted of vinegar, garlic, beetroot and disappointment.
Adding an extra inch of horseradish root - grated this time, not chopped, did
at least give it a little bit of a kick, but not much. Also, I now had a good
half-pint of it, so I put it into some jars, put the jars in the fridge, and hoped
that maybe the mixture would magically settle overnight into something a bit
more chrayne-like.&lt;/p&gt;

&lt;p&gt;And sat there, unable to stop thinking about gefilte fish, deeply annoyed with
myself for not having already bought some fish to make it with.&lt;/p&gt;

&lt;p&gt;It was 3pm on Easter Sunday. Most of the shops in town were definitely closed
for Easter, including the large supermarket round the corner. What would be the
the chances of finding an open fishmongers at that time?&lt;/p&gt;

&lt;p&gt;Non-zero, as it turned out. &lt;a href=&quot;https://www.rxfisheries.co.uk/&quot;&gt;RX Fisheries&lt;/a&gt;, more or less on the beach right at
the opposite end of neighbouring Hastings, were going to be open until 4.30pm.
If I left immediately (I don’t drive and the bike needs a service before I take
it out on the road again) I’d just about make it in time. Plus, it should be a
fairly pleasant walk along the coast.&lt;/p&gt;

&lt;p&gt;Which it was, though with Easter Sunday I’d picked the worst possible day in
April to do this, and the Hastings coast got more and more packed with tourists
the closer I got to Old Town. Families, screaming kids, chips, ice-cream, an
entirely &lt;a href=&quot;https://www.bondownersclub.co.uk/&quot;&gt;random classic car&lt;/a&gt; &lt;a href=&quot;https://www.visit1066country.com/whats-on/bond-minicar-3-wheelers-p2183941&quot;&gt;meet&lt;/a&gt;, more screaming kids, more screaming families, more ice-cream and chips, fishmonger.&lt;/p&gt;

&lt;p&gt;Bam, fishmonger.&lt;/p&gt;

&lt;p&gt;Then the same in reverse.&lt;/p&gt;

&lt;p&gt;It was quite trippy.&lt;/p&gt;

&lt;p&gt;An hour or so later I was walking back along the coast with about half a kilo of
fresh cod fillet and half a kilo of fresh bream fillet bouncing around in a small
blue carrier bag. I was still a little concerned, though, as I had no idea what
the hell I was about to do - the Greenberg recipe seemed awfully tricky and I had
lost faith in looking up recipes for this kind of thing on the internet.&lt;/p&gt;

&lt;p&gt;While walking along, I remembered that the last time I’d spoken to my Mum
about the hypothetical possibility of me maybe making gefilte fish myself finally,
she’d mentioned something about a secret ingredient, something that Nana had taught
her to add to it, which was the reason why their gefilte fish was consistently
better than any other gefilte fish of different provenance. I couldn’t remember
what it was, though she had told me. Could it possibly be the ground almonds
that Greenberg mentions? Surely not. That’s just weird. Who puts ground almonds
in gefilte fish? Also, surely I’d have remembered if it was that.&lt;/p&gt;

&lt;p&gt;Then I remembered that it was 2023 and I could just call and ask her while
walking, so I did.&lt;/p&gt;

&lt;p&gt;Turns out it’s sugar.&lt;/p&gt;

&lt;p&gt;My Mum was very clear: ground almonds are nonsense. Celery is not required. There’s
nothing wrong with parsley - she has been known to use it now and again, but it
definitely isn’t necessary. And certainly, Greenberg’s hare-brained idea of
pre-boiling the unminced fish to make fish stock to then make balls and poach
them in the stock is way over-complicating it. Nana, for all her many talents,
was not one for complicated recipes. You just chop the carrots and onion, set it
to boil in well seasoned water, make up the fish balls with egg and matzo meal,
and then gently poach them in the water for a couple of hours, over which time
it turns to stock anyway. There’s no need.&lt;/p&gt;

&lt;p&gt;But the key thing is to put a few teaspoons of sugar in the water as well, and
season to taste as it goes. Whatever the stock tastes like, so will the gefilte.&lt;/p&gt;

&lt;p&gt;We had some discussion on the subject of how the hell I was going to mince the
fish without a mincer, and she reminded me that she usually gets the fishmongers
to do it. RX Fisheries were long closed and a half-hour’s walk away at this point,
so I said I’d probably be fine doing it by hand with a knife.&lt;/p&gt;

&lt;p&gt;“Oh, my Bubba used to do it that way,” she said, “but it’s much easier if you just
get it pre-minced.” Amid visions of my tiny great-grandmother, who I never met but
have seen photos of, determinedly and resolutely determinely mincing raw fish armed
only with a knife, we agreed that I definitely would not use the food processor
instead, because that would probably over-mince it, at which point I’d arrived at
the Co-op and it was time to verify that they had no fresh parsley, which they
never do.&lt;/p&gt;

&lt;p&gt;Obviously they might have had fish as well but I didn’t look. I refuse to buy
supermarket fish when I live on the coast now and there are Fresh From The Boat
More Or Less fishmongers around. That would be ridiculous.&lt;/p&gt;

&lt;p&gt;And home, where an excited B. kindly volunteered to chaperone my My First
Gefilte Making Experience.&lt;/p&gt;

&lt;p&gt;Also, where I learned that asking fishmongers to take the skin off for you is
a thing you can do, and that, using special Fishmonger Tools for the purpose, they
indeed will. This is useful information, especially if you are using a recipe that
ideally calls for the fish to be both deboned &lt;em&gt;and&lt;/em&gt; deskinned.&lt;/p&gt;

&lt;p&gt;Oh well. I made the executive decision that skin-on Would Be Just Fine, and after
chopping the carrots and onions, putting them on to boil (seasoned, with sugar),
and beating the eggs, started setting about the fish with a knife.&lt;/p&gt;

&lt;p&gt;I try and keep our kitchen knives sharp, but… long story short… Dear Reader
(and lets face it, Mum, if you’ve managed to read down this far) I ended up
using the food processor. I was gentle with it, and it was fine.&lt;/p&gt;

&lt;p&gt;Not using all the egg - on B.s instructions, in her capacity as Person Who Has
Not Made Gefilte Fish Before Specifically But Has Made Fish Balls Which Are Not
Dissimilar - turned out to be a good thing too, because it wasn’t necessary.&lt;/p&gt;

&lt;p&gt;And the gefilte fish turned out ok. Bit bland, but recognisably gefilte fish.
They didn’t come apart in the pan or anything, they cooled down nicely overnight,
and I am about to have some more, because I’ve been rambling about gefilte fish
for over 2000 words now and I don’t know about you but it’s making me hungry.&lt;/p&gt;

&lt;p&gt;They’re not nearly as good as my Mum’s gefilte fish of course and never will be.
Or Nana’s. But still. Gefilte fish. Gefilte fish is very important.&lt;/p&gt;

&lt;p&gt;I’ve an ex-girlfriend who sneered at gefilte fish. My Mum didn’t like her, and
I didn’t understand why at the time. I get it now.&lt;/p&gt;

&lt;p&gt;Oh and the chrayne turned out fine too, after a sit overnight, though I’ll make
that better next time now I know what to do.&lt;/p&gt;

&lt;p&gt;I feel I’ve made a right gefilte fish of processing why I’m feeling so emotional
about it though.&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;a id=&quot;note&quot;&gt;1&lt;/a&gt; - Ok, a day or so after posting this I felt I was probably quite
wrong on this point, so I looked it up, and lo! I am indeed &lt;a href=&quot;https://www.chabad.org/library/article_cdo/aid/95914/jewish/Food-Preparation-on-Shabbat.htm&quot;&gt;totally wrong&lt;/a&gt; - among
observant Jews, cooking very much &lt;em&gt;is&lt;/em&gt; considered work for the purposes of Shabbos. &lt;strong&gt;&lt;em&gt;However&lt;/em&gt;&lt;/strong&gt;, I don’t know
about you, but if I’m in charge of a pot of food we are going to eat but have not
eaten yet, I very much feel like &lt;em&gt;I am still cooking&lt;/em&gt; even if I have no intention
of (or am indeed prohibited from) doing anything to the contents of the pot other than wait until it is ready to
serve. Like I say, it’s complicated.&lt;/small&gt;&lt;/p&gt;</content><author><name></name></author><category term="gefilte fish" /><category term="chrayne" /><category term="recipe" /><category term="family" /><category term="jewishness" /><category term="food" /><summary type="html">Last night I made gefilte fish for the first time. I am feeling weirdly emotional about it. This post is an attempt to process that.</summary></entry><entry><title type="html">PIN Security Fun</title><link href="https://wayne.conniptions.org/2023/03/27/pin-security-fun.html" rel="alternate" type="text/html" title="PIN Security Fun" /><published>2023-03-27T00:00:00+01:00</published><updated>2023-03-27T00:00:00+01:00</updated><id>https://wayne.conniptions.org/2023/03/27/pin-security-fun</id><content type="html" xml:base="https://wayne.conniptions.org/2023/03/27/pin-security-fun.html">&lt;p&gt;So I was idly wondering about the security of a user-selected four digit PIN I have recently come to be in charge of.&lt;/p&gt;

&lt;p&gt;In the scheme of things there aren’t many four digit PINs. The space is very small, at only 10000, so I wanted to find a league table of PINs from most commonly to least commonly used. Looking things up, I found an interesting article on the subject.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NB - This post modified from a series of posts I made to Mastodon three weeks ago…&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So the article is &lt;a href=&quot;https://www.theguardian.com/money/blog/2012/sep/28/debit-cards-currentaccounts&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The full research, by data scientist Nick Berry&lt;sup&gt;&lt;a href=&quot;#nb&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, is &lt;a href=&quot;http://www.datagenetics.com/blog/september32012/index.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Berry claims to have a large dataset showing how commonly each four digit PIN is used. Sensibly, he is very clear that he will not release this data:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;… do not email me asking for the database I used; if you do, you will be wasting your time as I’m not going to respond. I’m not going to sell, donate or release the source data&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also Berry:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I love pretty ways to graphically vizualize data. Pictures really do paint thousands of words.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He continues:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Another interesting way to visualize the PIN data is in this grid plot of the distribution. In this heatmap, the x-axis depicts the left two digits from [00] to [99] and the y-axis depicts the right two digits from [00] to [99]. The bottom left is  0000  and the top right is  9999.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/pin-heatmap.png&quot; alt=&quot;Nick Berry's PIN heatmap&quot; /&gt;&lt;/p&gt;

&lt;p&gt;CHALLENGE ACCEPTED.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;To explain if not already clear: Berry has emphasised that he has no intention of releasing his PIN usage data, but by providing a heatmap based on it, he effectively has, at least for the part I am interested in. All that is required is to decode the heatmap. The whole dataset is still out of reach, but the full league table of PIN numbers is entirely encoded in the heatmap.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Long story short, I spent a happy evening writing &lt;a href=&quot;https://gist.github.com/wgmyers/1fb9e7e1e3e01605d816884facf44042&quot;&gt;this Ruby code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It takes the provided heatmap image of the entire four digit PIN space (broadly speaking brighter is more widely used, darker less) and - very clunkily and slowly - this is not My Best Code - extracts the hex colour value, using the ImageMagick library, pixel by pixel, and matches it to the corresponding PIN.&lt;/p&gt;

&lt;p&gt;Simply sorting the resulting output by raw hex value absolutely should not work. With a sensibly generated heatmap, why would it? There ought to be more steps to my solution than this. However, as it happens in this case, I think it basically does. Our top 20 and bottom 20 PINs are the pretty much the same as those listed in the article, except for a few that swap position due to loss of precision.&lt;/p&gt;

&lt;p&gt;Is it possible that a heatmap decoded and sorted this way could preserve the top and bottom 20 elements of the list while effectivly yielding garbage in the rest of it? Perhaps it is? But if the colour values for the heatmap were chosen so as to obscure their exact origin, why preserve the forty most important items in the list? Even if accuracy gradually degrades with proximity to the middle of the list (that would seem fair) it seems like this data extract is still enough to get a vague idea of where in the overall table of PIN popularity a given PIN might sit. After all, I don’t need 100% accuracy. I just want to know if the PIN I have chosen is Demonstrably Stupid or not.&lt;/p&gt;

&lt;p&gt;So. While I have not reconstructed the exact ordering of the 10000 possible 4-digit PINs in terms of popularity, it looks like I have managed to create a list that is close enough to the original to be of some use - this is to say: the ranking of the PIN in the output is likely to be fairly close to the ranking in the original data.&lt;/p&gt;

&lt;p&gt;If you grab the image above and run my code against it, you can verify this for yourself.&lt;/p&gt;

&lt;p&gt;My original Mastodon thread asked &lt;em&gt;Should I go ahead and register / build ratemypin.com?&lt;/em&gt; which was a whimsical but admittedly massively dumb idea. I will be doing nothing of the sort.&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;a id=&quot;nb&quot;&gt;1&lt;/a&gt; - Sadly &lt;a href=&quot;https://twitter.com/DataGenetics&quot;&gt;Nick Berry&lt;/a&gt; passed away last year. RIP, Nick. I would have loved to have discussed this with you.&lt;/small&gt;&lt;/p&gt;</content><author><name></name></author><category term="PIN" /><category term="security" /><category term="code" /><category term="Ruby" /><category term="geekery" /><category term="Nick Berry" /><summary type="html">So I was idly wondering about the security of a user-selected four digit PIN I have recently come to be in charge of.</summary></entry><entry><title type="html">Entitled</title><link href="https://wayne.conniptions.org/2023/03/24/entitled.html" rel="alternate" type="text/html" title="Entitled" /><published>2023-03-24T00:00:00+00:00</published><updated>2023-03-24T00:00:00+00:00</updated><id>https://wayne.conniptions.org/2023/03/24/entitled</id><content type="html" xml:base="https://wayne.conniptions.org/2023/03/24/entitled.html">&lt;p&gt;Mediocre white man&lt;br /&gt;
Lockdown sceptic&lt;br /&gt;
Pro virus activist&lt;br /&gt;
Says “masks don’t work”&lt;/p&gt;

&lt;p&gt;People enduring&lt;br /&gt;
Long COVID misery&lt;br /&gt;
Have no energy&lt;br /&gt;
To fight this jerk&lt;/p&gt;

&lt;p&gt;Reek of privilege&lt;br /&gt;
Cherry picking papers&lt;br /&gt;
“Just asking questions”&lt;br /&gt;
Contrarian prick&lt;/p&gt;

&lt;p&gt;Back in reality&lt;br /&gt;
Pandemic isn’t over&lt;br /&gt;
Maybe if you’re very rich?&lt;br /&gt;
Makes me sick&lt;/p&gt;

&lt;p&gt;Prep school debate club&lt;br /&gt;
Gave him confidence&lt;br /&gt;
To make any argument&lt;br /&gt;
It’s all a game&lt;/p&gt;

&lt;p&gt;Struggling to carry on&lt;br /&gt;
So fucking lonely&lt;br /&gt;
So fucking tired&lt;br /&gt;
Each day the same&lt;/p&gt;

&lt;p&gt;Publishing lies&lt;br /&gt;
For the benefit of billionaires&lt;br /&gt;
“From the left”&lt;br /&gt;
Says you my son&lt;/p&gt;

&lt;p&gt;Should have pushed him down the stairs&lt;br /&gt;
When many years ago&lt;br /&gt;
I had the opportunity&lt;br /&gt;
In his parents massive house&lt;br /&gt;
In Kensington&lt;/p&gt;</content><author><name></name></author><category term="poetry" /><category term="covid" /><category term="entitlement" /><category term="anger" /><summary type="html">Mediocre white man Lockdown sceptic Pro virus activist Says “masks don’t work”</summary></entry><entry><title type="html">On The Square Root Of Fuck All</title><link href="https://wayne.conniptions.org/2022/05/02/on-the-square-root-of-fuck-all.html" rel="alternate" type="text/html" title="On The Square Root Of Fuck All" /><published>2022-05-02T00:00:00+01:00</published><updated>2022-05-02T00:00:00+01:00</updated><id>https://wayne.conniptions.org/2022/05/02/on-the-square-root-of-fuck-all</id><content type="html" xml:base="https://wayne.conniptions.org/2022/05/02/on-the-square-root-of-fuck-all.html">&lt;p&gt;Thinking about the square root of fuck all. Originally a &lt;a href=&quot;https://twitter.com/conniptions/status/1521114619833638912&quot;&gt;Twitter thread&lt;/a&gt;,
now also a blog post.&lt;/p&gt;

&lt;p&gt;‘The square root of fuck all’ is a British phrase meaning ‘little or nothing’. Eg:
“it was a paid gig, yes, but by the time I’d paid all the musicians plus covered travel and
expenses I ended up with the square root of fuck all”.&lt;/p&gt;

&lt;p&gt;The interesting question, for certain values of interesting, is which is bigger? The
square root of fuck all, or fuck all?&lt;/p&gt;

&lt;p&gt;As we shall see, this depends on how much fuck all is. Mathematicians among you, please
move on. There is nothing to see here that you don’t already know. Your version of this
&lt;del&gt;thread&lt;/del&gt; post will probably be funnier, and also will star out the word ‘fuck’ so people can
see it.&lt;/p&gt;

&lt;p&gt;‘Fuck all’ is a British phrase meaning ‘little or nothing’. Eg: I wrote a whole
&lt;del&gt;thread&lt;/del&gt; post that repeatedly used the word ‘fuck’ so it won’t surprise me if it gets
fuck all response.&lt;/p&gt;

&lt;p&gt;The square root of a number is another number which, when multiplied by itself, results
in the first number. For example the square root of 4 is 2, because 2*2=4. The square
root of 25, similarly, is 5. And the square root of 0.25 is 0.5.&lt;/p&gt;

&lt;p&gt;That last one seems counter-intuitive. How can the square root of a number be larger than
the number you started with? Except it is. 0.5 times 0.5 is the same as half of 0.5, which
is obviously 0.25. So the square root of 0.25 is 0.5.&lt;/p&gt;

&lt;p&gt;Turns out the square root of any number less than 1 and greater than 0 is larger than the
original number. Eg: the square root of 0.5 is roughly 0.7071067811865476, which, by
coincidence, is roughly the amount of pennies that Spotify owe me for all-time streams of
my music.&lt;/p&gt;

&lt;p&gt;That’s the square root of fuck all, obviously. But it’s also, quite clearly, fuck all. This
would imply that fuck all and the square root of fuck all were the same. Could we at last
be getting some traction on our original question?&lt;/p&gt;

&lt;p&gt;If X is the square root of fuck all, and Y is fuck all, but X=Y, then there are only two
possible values for X and Y, which are zero and one. 1*1=1 and 0*0=0, which is to say, both
fuck all &lt;em&gt;and&lt;/em&gt; its square root are both either 0 or 1. Remind you of anything?&lt;/p&gt;

&lt;p&gt;That’s right: binary: the base 2 number system that underlies all computing, from your
mobile phone to your Mum’s laptop to the server hosting the website you are looking at now. In
binary, all numbers are made up of either 0s or 1s.&lt;/p&gt;

&lt;p&gt;In computing, all things - colours, images, audio files, accounts payable, minimum thresholds
for payout, Spotify’s annual profit, Daniel Ek’s net worth, and so on - are represented
under the hood by binary numbers. All made up of 0s and 1s. We call these 0s and 1s ‘bits’.&lt;/p&gt;

&lt;p&gt;HOWEVER, it is also vitally important, in normal computing, that we know which bits are 0 and
which bits are 1. You can’t have bits flipping between 0 and 1. Otherwise, a value of 00000001
might suddenly turn into 11111110, an increase from 1 to 254.&lt;/p&gt;

&lt;p&gt;Interestingly, 1 to 254 is roughly the ratio between a median worker’s salary and a CEO’s
salary in many parts of the world. So you can see why it’s so terribly important that the
bits don’t flip.&lt;/p&gt;

&lt;p&gt;In quantum computing, of course, which doesn’t exist yet, things are different. There, bits
can be 0 or 1, but they can also be somewhere in between, aligned along a probability spectrum
where you don’t know what the value of any particular bit is until you look at it.&lt;/p&gt;

&lt;p&gt;The bits in quantum computing are all like Schrödinger’s cat, somehow both alive and dead
simultaneously until you look in the box. This is why quantum computer programs are so hard
to debug. I would not want to debug a program where all the bits were cats.&lt;/p&gt;

&lt;p&gt;Does this shed any light on the relationship between fuck all and the square root of fuck all?
If we consider these as being more like quantum bits, or as cats, if you will, then their values
could be considered as probabilities somewhere in the range between 0 and 1.&lt;/p&gt;

&lt;p&gt;If that is so, then the square root of fuck all, as we have seen, is definitely at least a
little larger than fuck all, since the square root of a number between 0 and 1 is larger than the
original number.&lt;/p&gt;

&lt;p&gt;Speaking of original numbers, mine are both on Spotify and on Bandcamp. However, if you listen
to them on Spotify, I get the square root of fuck all. Or fuck all. Whichever is smaller.&lt;/p&gt;

&lt;p&gt;On Bandcamp, by contrast, I get an entirely different number, chosen by yourself. Zero is the
lower bound (you can stream there for free if you like), but the upper bound is up to you.&lt;/p&gt;

&lt;p&gt;So please - and not just for me, but for all the music you listen to - consider the Bandcamp
option for your music streaming needs. Mine is on &lt;a href=&quot;https://music.conniptions.org/&quot;&gt;music.conniptions.org&lt;/a&gt; - and if your
favourite musician is not on Bandcamp, ask them why they hate money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; If you are still wondering about the cats, my apologies. They were a red herring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PPS:&lt;/strong&gt; Now the cats have a red herring they are happy. You can stop worrying about them.
Here’s my bandcamp link again: &lt;a href=&quot;https://music.conniptions.org/&quot;&gt;music.conniptions.org&lt;/a&gt;&lt;/p&gt;</content><author><name></name></author><category term="music" /><category term="spotify" /><category term="bandcamp" /><category term="daniel ek" /><category term="satire" /><category term="mathematics" /><summary type="html">Thinking about the square root of fuck all. Originally a Twitter thread, now also a blog post.</summary></entry><entry><title type="html">Pfeffel</title><link href="https://wayne.conniptions.org/2022/01/15/pfeffel.html" rel="alternate" type="text/html" title="Pfeffel" /><published>2022-01-15T00:00:00+00:00</published><updated>2022-01-15T00:00:00+00:00</updated><id>https://wayne.conniptions.org/2022/01/15/pfeffel</id><content type="html" xml:base="https://wayne.conniptions.org/2022/01/15/pfeffel.html">&lt;p&gt;&lt;a href=&quot;https://www.conniptions.org/pfeffel/&quot;&gt;Pfeffel&lt;/a&gt; is like Wordle but it always lies to you.&lt;/p&gt;

&lt;p&gt;The chances are high that you have already come across the word game &lt;a href=&quot;https://www.powerlanguage.co.uk/wordle/&quot;&gt;Wordle&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If not: Wordle is an online version of the pre-computers game &lt;a href=&quot;https://en.wikipedia.org/wiki/Bulls_and_Cows&quot;&gt;Bulls and Cows&lt;/a&gt;, with a
couple of clever twists. Firstly, Wordle only lets you play once per day, with
the same secret word being presented to all users. Secondly, on completing the
game, Wordle provides a ‘share’ button, which allows you to copy and paste a
grid representing your result that day on social media.&lt;/p&gt;

&lt;p&gt;Wordle went massively viral in December 2021, and &lt;a href=&quot;https://en.wikipedia.org/wiki/Wordle_(video_game)&quot;&gt;according to Wikipedia&lt;/a&gt;
currently has more than 2 million daily players.&lt;/p&gt;

&lt;p&gt;Since the rules of the game are very simple, it is also simple to implement, and
there are already several variants:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sweardle.com/&quot;&gt;Sweardle&lt;/a&gt; - A four-letter word, sweary variant&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://qntm.org/files/wordle/index.html&quot;&gt;Absurdle&lt;/a&gt; - An adversarial variant which secretly changes the word as you play to make it harder&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://edjefferson.com/letterle/&quot;&gt;Letterle&lt;/a&gt; - A minimalist one-letter variant&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://worble.glitch.me/&quot;&gt;Worble&lt;/a&gt; - A straight clone that lets you play multiple times per day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like millions of other people, I have been playing Wordle every day for the last
couple of weeks and tinkering with the idea of making my own version just for fun.
But I didn’t want just to clone it. I wanted an idea.&lt;/p&gt;

&lt;p&gt;Boris Johnson, the current Prime Minister of the UK (as of January 2022), is
widely acknowledged to be one of the least honest politicians - against some
fairly stiff competition - in the history of British politics. His middle name,
or rather one of his middle names, is ‘de Pfeffel’.&lt;/p&gt;

&lt;p&gt;So, last Tuesday evening, late, I began coding a variant of Wordle that always
lies to you, and called it ‘Pfeffel’.&lt;/p&gt;

&lt;p&gt;In the usual Wordle rules, there is a secret word you must guess. With each
guess you get told which letters in your guess are not in the secret word at all,
which letters are right but in the wrong place, and which letters are correct.&lt;/p&gt;

&lt;p&gt;Pfeffel lies to you about this. If it tells you the letter is not in the
word, this means that it is. If it tells you the letter is correct, then it
may still be in the word, but not in that location. If it tells you the
letter is right but in the wrong place, either it is not in the word at all, or
it is actually correct.&lt;/p&gt;

&lt;p&gt;This makes the game significantly harder than normal Wordle, though just about
still playable. If you squint.&lt;/p&gt;

&lt;p&gt;The code is not great - I wrote it in a tremendous hurry - but for what it’s
worth, can be found &lt;a href=&quot;https://github.com/wgmyers/pfeffel&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The bulk of the game logic can be found in the &lt;code class=&quot;highlighter-rouge&quot;&gt;mark_guess&lt;/code&gt; function:&lt;/p&gt;

&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;mark_guess&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;candidate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;cletters&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;candidate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;wletters&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;word&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;correct&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;word_length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;wletters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;cletters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;cletters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;wletters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// correct&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pfeffel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;guess-right&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;correct&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// present but wrong place&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pfeffel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;guess-present&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// wrong&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pfeffel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;guess-wrong&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;letterbox&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`guess-&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;cur_guess&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;letterbox&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;classList&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;guess-wrong&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;key&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`key-&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;cletters&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;classList&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key-wrong&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;correct&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;win_game&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;cur_guess&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;max_guesses&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;lose_game&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This function takes a guess (&lt;code class=&quot;highlighter-rouge&quot;&gt;candidate&lt;/code&gt;) and compares it letter by letter to
the secret word (&lt;code class=&quot;highlighter-rouge&quot;&gt;word&lt;/code&gt;). It then marks each letter in the guess with one of
the three possibilities: &lt;code class=&quot;highlighter-rouge&quot;&gt;guess-right&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;guess-wrong&lt;/code&gt;, and &lt;code class=&quot;highlighter-rouge&quot;&gt;guess-present&lt;/code&gt;, the
last of which is shorthand for ‘right-but-in-the-wrong-place’.&lt;/p&gt;

&lt;p&gt;If you have guessed all five letters correctly you win; if you have run out of guesses
you lose, otherwise the game continues.&lt;/p&gt;

&lt;p&gt;However, before presenting the marks, the game runs them through another function
called &lt;code class=&quot;highlighter-rouge&quot;&gt;pfeffel&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pfeffel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;options&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;guess-right&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;guess-present&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;guess-wrong&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pfeffeled&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;item&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;mark&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;pfeffeled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;Math&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;floor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;Math&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)];&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is the Boris Johnson function: whatever the truth is, it is guaranteed to
return one of the two possible lies.&lt;/p&gt;

&lt;p&gt;Other than that, the game is identical to Wordle.&lt;/p&gt;

&lt;p&gt;I should probably go back and improve the layout code, which does not, but should
use flexbox to ensure it works properly on all displays. I should add the rule
that all guesses must be a real word (this will involve adding a huge List Of
Real Words, but is fairly easy to do). I could look at adding some of the visual
feedback that Wordle has (attempting to enter a non-word makes the guess wobble),
and I absolutely ought to clean up the silly thing where I created a data structure
for the whole game and then never use it, instead storing all gameplay directly
in the page. Finally I could add a proper dialogue box at the end of the game
rather than using the built in &lt;code class=&quot;highlighter-rouge&quot;&gt;alert&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;There is a joke involving the ‘share’ button which you get if you complete the
game - even if I added a share button, it would never actually share. People are
getting enough Wordle-related spam and I don’t want to contribute to it.&lt;/p&gt;

&lt;p&gt;But, for a one-off gag game that most people will have forgotten about in a few
weeks, I’m not sure I can be bothered with any of that.&lt;/p&gt;

&lt;p&gt;To my absolute delight, Pfeffel was featured in this week’s &lt;a href=&quot;https://b3ta.com/newsletter/issue802/&quot;&gt;B3ta newsletter&lt;/a&gt;,
which resulted in more hits to my website in the course of an evening than it
has received since launch. Hits have now returned to their customary one or two
per day, and my stats page is hilarious.&lt;/p&gt;

&lt;p&gt;Which is as it should be, really.&lt;/p&gt;</content><author><name></name></author><category term="pfeffel" /><category term="boris johnson" /><category term="politics" /><category term="games" /><category term="wordle" /><summary type="html">Pfeffel is like Wordle but it always lies to you.</summary></entry></feed>