Book Review: Invisible Planets - Ken Liu


Book cover.

Yet another compendium of Chinese sci-fi stories - and there are some great stories in this collection. There are also some essays about what makes Chinese science fiction Chinese. Based on my (limited) experience, I'd say one of the defining characteristics of the Chinese SF I've read is the way exposition is dispensed with and replaced by poetry. Mankind streamed across the river of time, aiming straight for the Door Into Summer. In that moment, our tiny planet was falling like a single…

Continue reading →

M*A*S*H - War Is Heaven


DVD cover art for MASH. A bunch of solider sit around.

I finished watching Frasier over lockdown - the miserable tale of a self-destructive incel - and decided to continue watching old American sitcoms. I thought Cheers was a hellish dystopia populated with malicious tormentors. So now on to M*A*S*H. It's hailed as a masterpiece of comedy. But, really, it's an exercise in military propaganda. The first season is genuinely hilarious and, at times, moving. But there's no disguising just how fun it makes war look. Imagine being so vital to the war…

Continue reading →

Anti-Suffragette Postcards


Three postcards. The first shows a toddler girl writing on a blackboard - childishly writing things like "give us our rights" and a hangman showing a man being hanged. The second is of a fat and unattractive woman with the name "Aught To Be Spanked First" - she is saying "We only want what the men have got". The last is entitled Man's Reward and shows a woman using an umbrella to beat a policeman.

Due to a strange mix-up with an eBay order, I've come into possession of these rather quaint anti-suffragette postcards. I hope it is obvious that I am pro universal suffrage. What amuses me about these cards is how emotional they are! These aren't dispassionate arguments designed to calmly influence the rational man. It is all pure emotion! Looking through the archives of anti-suffragette postcards it's clear that men can't be expected to follow a logical argument; they have to be…

Continue reading →

The limits of General Purpose Computation


A pet cat typing on a computer keyboard.

Should my bank be able to block me from using their Android app, just because my phone is rooted? I'm reluctantly coming to the conclusion that... yeah, it's fair that they get to decide their own risk tolerance. Sage of the Internet, and general Sooth Sayer, Cory Doctorow once gave an impassioned speech on "The Coming War on General Computation". I'll let you read the whole thing but, I think, the salient point is that some people want to restrict the maths we're allowed to do on our…

Continue reading →

Rewriting OpenBenches in Symfony


The Open Benches logo.

I once described my ideal coding environment to a colleague as "telneting directly into prod and damn the consequences!" I jest. But only a little. When I build for myself I treat best practices and coding styles as harmful. Chaotic evil but, hey, it's only myself I'm hurting. Anyway, my wife and I run a hobby site - OpenBenches.org - which was coded in a long alcopop fueled weekend. It's fair to say that it has exceeded our expectations in terms of people getting involved. But is…

Continue reading →

Theatre Review: Idiots Assemble - Spitting Image The Musical


Photo of the safety curtain, showing caricatures of famous people.

Well, this is a glorious mess! The puppetry is astounding. The grey-clad puppeteers manipulate their charges with grace, precision, and joy. The work is so much more intricate than, say, Avenue Q. The mannerisms of the Tom Cruise doll are perfectly executed, with subtle moments of genius. The puppets range from miniscule to gigantic, with some requiring multiple people to bring them to life. The problem with satire is that it relies on current events. If you watch old Spitting Image episodes …

Continue reading →

That costs the same as five nurses!


Pamphlet for the New National Health service.

Tom Dolan has an excellent blog post which touches, in part, on comparative cost. If you're working for, say, a TV company - then you know exactly how much an hour of TV programming costs on average. If you want to do something like build a website, it's quite natural for people to evaluate its budget in terms of how many hours of TV it costs. That can be a useful metric. It allows people to benchmark the impact your non-core project is having against the investment. But, in my experience, it …

Continue reading →

Gardening & Time Travel with Google Earth


Row of photos going back a decade.

There's no one dafter than the previous owner of your property. Over the years we've found dodgy wiring, horrificly bodged plaster, and things plumbed in backwards. We've started re-doing our garden recently. The hideous decking was quickly rotting away and needed removing. But what would we find under there? Google's StreetView for the web lets you take a short trip back in time - if you're lucky, you might catch a glimpse of what your garden looked like over the year. (That's a random…

Continue reading →

Review: Comedy of Errors at Shakespeare's Globe


Three actors in Elizabethan garb scream in an exaggerated fashion.

I'll cheerfully admit to only having a hazy familiarity with the play (it's the one with twins that isn't 12th Night, and with the shipwreck which isn't Tempest, and with the annoyed money-lender which isn't Merchant of Venice... wait... perhaps I have seen it in aggregate!) On the one hand, this is an entirely traditional production. Sumptuous Elizabethan clothing - with resplendent codpieces - live minstrels, and plenty of chatting up the audience. And, in other ways it is delightfully…

Continue reading →

Getting Auth0 user information on non-firewall Symfony pages


Logo of the Symfony project.

I am using Auth0's Symfony library to allow users to log in with their social network providers. It works really well. Using this firewall configuration, a user who visits /private is successfully taken through the login flow and I can then use $this->getUser() to see their details. security: password_hashers: Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' providers: users_in_memory: { memory: null } auth0_provider: …

Continue reading →

How do you stop people accessing data they shouldn't?


A padlock engraved into a circuit board.

I used to work in a call centre for a Very Big Company. Every week, without exception, we'd get a bunch of new starters to train. And every week, without exception, a newbie would be fired after looking up a famous person's data. This was in the days before GDPR. There was a lot less general awareness of data protection issues. It didn't matter how often will drilled it into trainees' heads - someone would breach privacy within 5 minutes of getting on the system. It seemed to be an almost…

Continue reading →

Does AI mean we don't need the Semantic Web?


User: Read the following sentence: "Our opening hours are: Weekdays 10 until 7. Weekend 10 until 10 (Early closing 9 o'clock Sunday)." ChatGPT: The given sentence states the opening hours of a certain establishment. Here is the breakdown of the opening hours mentioned: Weekdays: The establishment is open from 10 in the morning until 7 in the evening. Weekend: On weekends, the establishment is open from 10 in the morning until 10 at night. Early closing on Sunday: On Sundays, the establishment closes earlier than usual, at 9 o'clock in the evening. Please note that this information is based solely on the provided sentence, and the specific establishment or its type is not mentioned. User: Is the establishment open at 2130 on Sunday? ChatGPT: Based on the information provided in the sentence, the establishment has early closing on Sunday, with the closing time set at 9 o'clock in the evening. Therefore, the establishment would not be open at 21:30 (or 9:30 PM) on Sunday.

If you hang around with computerists long enough, they start talking about the Semantic Web. If you can represent human knowledge in a way that's easy for computers to understand it will be transformative for information processing. But computers, traditionally, haven't been very good at parsing ambiguous human text. Suppose you saw this text written for a human: Our opening hours are: Weekdays 10 until 7. Weekend 10 until 10 (Early closing 9 o'clock Sunday). Not the most straightforward…

Continue reading →