Showing posts with label not RPGs. Show all posts
Showing posts with label not RPGs. Show all posts

Saturday, 6 June 2026

Belletrism, Bigotry, and the Bummel: Six old books

I've been reading some older books lately. Here are my quick reviews of:

  • How to Shoot an Amateur Naturalist
  • The Unexpurgated Code
  • A Century of Humour
  • Three Men in a Boat (to say nothing of the dog)
  • Three Men on the Bummel
  • Men, Martians and Machines

With a scattering of ideas that might be tabletop-gameable.


How to shoot an amateur naturalist. Book cover.

How to Shoot an Amateur Naturalist. Gerald Durrell (1984).

I read a bunch of Durrell's zoology-memoir books as a teenager. The prose is purpler than I remember it being! Sometimes that hits (describing a mole as a "furry ingot" is just delightful), but a firmer editor would have cut every other adjective.

Various pat little details also made me suspect that some of the anecdotes have been, shall we say, punched up. I don't think the stories really matter though. If you're reading this book, you're mostly in it for the descriptions of animals, and the author does just fine there. 

The Unexpurgated Code. J. P. Donleavy (1975).

This is a parodic "complete manual of survival and manners". It's infuriating. The premise (providing utterly cynical etiquette advice for social climbers and bastards) is such a good one.

In practise, that deep potential for humour is completely ruined by the violent misogyny (and several other forms of bigotry) which intrude on the text at every turn.

I opened this hoping to find unusual mid-century turns of phrase for a future project. Unfortunately the turns of phrase I found were unprintable. Avoid. 

A Century of Humour. Edited by P. G. Wodehouse (193?).

A book too old to bother printing its own publication date! Wodehouse mentions in the introduction "It is a bare thirty-four years since I started earning my living as a writer", so I infer the book was produced c. 1934–1939.

This is a hefty thousand-page tome that's been sitting on my bookshelves since forever. It's 77 short from almost as many authors, many of them former Punch editors. Notables include A. A. Milne, Oscar Wilde, G. K. Chesterton, H. G. Wells, Charles Dickens, Arthur Conan Doyle, and Wodehouse himself. The front matter strongly implies that the choice to include some of these works was in "better to beg forgiveness than ask permission" territory. Yikes!

The book's main weakness is that almost all the authors are middle-to-upper class, highly educated, white male Brits, so there's shall we say a narrow band of perspectives. Anyone from another country or class has their accent written phonetically and that sure ain't the worst of it. William Caine's "Spanish Pride", for example, is a touching story of human goodness. It's followed immediately by another story by Caine that is so revoltingly racist I don't even want to type its title.

But some stand the test of time. My favourites were:

  • The Shooting of Shinroe (Somerville & Ross)
  • Family Faces (Herbert) 
  • Chapters from Three Men In A Boat (Jerome) 
  • Biffin on Acquaintances (Graham) 
  • The House-Warming (Milne) 
  • The Gold Cup (Darlington) 
  • The Toy Dogs of War (Emanuel) 
  • Soaked in Seaweed (Leacock) 

Almost all the stories are laced with that characteristically British styles of humour: sardonic-to-droll tiptoeing into absurdism with a focus on institutional incompetence.

When it comes to comedy, it's interesting to see what holds up and what is rendered bewildering by age. Take for example The Whole Truth, by Inglis Allen. On just page 734 alone we get

  • an adverb for almost every verb: somewhat intricate, tolerantly rapping, looks down jocosely, silently contemplates, excessively jocund, assents with indulgence, taps mysteriously, says protectively, etc
  • six instances of 'jocund' or 'jocosely', and a policeman who is described as 'stout' three times
  • instead of 'says': observes, observes, observes, inquires, queries, assures, assents, says protectively, inquires, returns, cries, whispers

Pair this eye-rolling writing style with a slice-of-life plot and I have no idea what about the story is meant to be funny. I can only assume that it's some lampooning that's gone over my head.

I take it a a lesson for world-building that big cultural divides can spring up in only a few generations. Even societies that are close to us in absolute terms are full of now-inexplicable tics and customs. Would things be different if supernatural longevity meant a few of these authors were still around, providing a long thread of cultural touchstones and explanatory power? 

Side note: Spare A Penny (F. E. Baily, originally published 1932) uses the phrase "pack a gat", making the phrase at least 50 years older than I would have guessed.

Three Men in a Boat (to say nothing of the dog). Jerome K. Jerome (1889).

I found the extracts of this book in A Century of Humour so fun that I went and read the whole thing. Three friends go rowing (and towing) up the Thames, with a travelogue itinerary of the towns and villages on the river. It's all wrapped in humorous anecdotes and tall tales.

The language, humour, characterisations, and situations are bizarrely relatable. Half of the jokes feel like they come from Tumblr! But then it hits you with a line like

"There is no more thrilling sensation I know of than sailing. It comes as near to flying as man has got to yet—except in dreams."

Or they just find a corpse in the river like that's something you have to deal with now and then.

The dry/wry humour is counterbalanced by loving descriptions of the riverside country that remind me a little of Tolkien.

Jerome has a very endearing trick where his first-person authorial voice tells you something with a false earnestness that is part of the joke.

For example, in Chapter 13 there are some passages roundly condemning steamboats on the river, and talking about the tricks the protagonist uses to deliberately hinder them:

There is a blatant bumptiousness about a steam launch that has the knack of rousing every evil instinct in my nature [...]

They used to have to whistle for us to get out of their way. If I may do so without appearing boastful, I think I can honestly say that our one small boat, during that week, caused more annoyance and delay and aggravation to the steam launches that we came across than all the other craft on the river put together.

“Steam launch, coming!” one of us would cry out, on sighting the enemy in the distance; and, in an instant, everything was got ready to receive her. I would take the lines, and Harris and George would sit down beside me, all of us with our backs to the launch, and the boat would drift out quietly into mid-stream.

On would come the launch, whistling, and on we would go, drifting. At about a hundred yards off, she would start whistling like mad, and the people would come and lean over the side, and roar at us; but we never heard them! Harris would be telling us an anecdote about his mother, and George and I would not have missed a word of it for worlds.

and then three chapters later, this turnaround:

At Reading lock we came up with a steam launch, belonging to some friends of mine, and they towed us up to within about a mile of Streatley. It is very delightful being towed up by a launch. I prefer it myself to rowing. The run would have been more delightful still, if it had not been for a lot of wretched small boats that were continually getting in the way of our launch, and, to avoid running down which, we had to be continually easing and stopping. It is really most annoying, the manner in which these rowing boats get in the way of one’s launch up the river; something ought to done to stop it.

And they are so confoundedly impertinent, too, over it. You can whistle till you nearly burst your boiler before they will trouble themselves to hurry. I would have one or two of them run down now and then, if I had my way, just to teach them all a lesson.

 Delightful.

 

Three Men on the Bummel. Jerome K. Jerome (1900).

The sequel to Three Men in a Boat is a bicycle tour of the Black Forest, sporadically illustrated.

Illustration from Three Men on the Bummel. Man with crossbow. Policeman.

It starts off with a promise: "I have come to restrain my passion for the giving of information; therefore it is that nothing in the nature of practical instruction will be found, if I can help it, within these pages."

The book has sequel problems. There's no dog, for a start! It's less funny and characterful than the first. It also deviates frequently from anecdote into much longer reports about 'what the Germans are like as a people'. This is slightly eerie, given the burgeoning historical context, with passages like:

In Germany to-day one hears a good deal concerning Socialism, but it is a Socialism that would only be despotism under another name. Individualism makes no appeal to the German voter. He is willing, nay, anxious, to be controlled and regulated in all things. He disputes, not government, but the form of it. The policeman is to him a religion, and, one feels, will always remain so. 

and 

Hitherto, the German has had the blessed fortune to be exceptionally well governed; if this continue, it will go well with him. When his troubles will begin will be when by any chance something goes wrong with the governing machine. But maybe his method has the advantage of producing a continuous supply of good governors; it would certainly seem so.

Overall, where Three Men in a Boat is entertaining and funny, Three Men on the Bummel mostly just feels like one historical English writer's account of a German bicycle journey.

(By the way, a 'Bummel' is only explained in the book's final paragraph. It is a journey "without an end; the only thing regulating it being the necessity of getting back within a given time to the point from which one started. Sometimes it is through busy streets, and sometimes through the fields and lanes; sometimes we can be spared for a few hours, and sometimes for a few days. But long or short, but here or there, our thoughts are ever on the running of the sand.")

 

Men, Martians, and Machines book cover.

 

Men, Martians and Machines. Eric Frank Russell (1955).

I enjoyed this book as a kid and went into the re-read with nostalgia goggles. It's slightly Wodehousian – Russell was British but writing for American readers, and that shines through. The language feels even older than the mid-century, and the descriptions of action are quite convoluted. It's hard to believe I got through this as a child!

I was tickled by the nonsensical futurism. There are friendly chess-playing Martians, tobacco and beef ranches on Venus, and spaceship cargos of watch-making tools and radium needles. The objects 'duralumin gangway' and 'rawhide suitcase' appear in consecutive sentences.

I love this whole aesthetic and might draw on it if I ever make a SF game. Crewmembers carry a needle-ray projector, mud-skis, "thin, multi-purpose oil", a jar of graphite, a microwave radiophone powerpack, and "nutweed pellicules". There are audiojournalists, astro-computators, plate photography, grenade-sized atomic bombs, and pervasive cigarettes. To my surprise, a "quasi-arc welder" turns out to be a real thing.

The book establishes its main characters with a very short story on the delightfully-named spaceship Upskadaska City. The remaining three self-contained chapters are set in an experimental FTL spaceship which provides the framing device (first contact on three different worlds). To the modern eye the protagonists in these situations come across as inept, aggressive, and basically 'would-be colonisers'.

Men, Martians, and Machines hasn't aged well. There's casual and direct racism throughout, plus coded forms: the Martians read in several ways as problematic Asian stand-ins, and newly discovered aliens are immediately labelled "greenies" despite having other notable physiological differences from humans. There are no female characters. Of the two mentions of women in the whole book, one is sexist.

The actual stories aren't particularly good. The ship has a dedicated radio operator... who didn't think to check the radio waves upon landing on a new alien planet. Radio is presented as being centrally important, and then in one story the Martian crew members turn out to have been telepathic all along, saving the day. In fact the Martian and robot characters have such huge advantages that the human crew are rendered narratively worthless. I was also annoyed by Captain McNulty's inconsistent characterisation: he is by turns understated and taciturn, opinionated and bloviating, risk-averse and non-committal, or self-assured and overconfident.

The final story of Men, Martians, and Machines is by far the best. At this point Russell seems tired of his central conceit: many characters resent or regret going on another mission, and several (including the narrator) want to retire. The setup is more of a science fiction horror story. It's a sort of proto-antimemetics trope, and also made me think of Arnold K's false hydra. The weird ending is a high point, tying together a couple of the book's throughlines.


Saturday, 18 October 2025

One more generative AI rant for the pile

(this one's about summarising text)

LLM chatbots – that is AI, in the same sense that we could just start saying "doctors" to refer specifically to orthopaedic wrist surgeons if we collectively decided to – 

LLM chatbots continue to slosh about the world. I used to try them out intermittently to see if they were any good.

My contact with the technology is only incidental these days. To wit:

  • If you google old phrases and terminology in English, a LLM chatbot will still confidently weigh in with completely spurious "definitions" because they're not well-represented in the training data.
  • If you google modern bits of even slightly less-discussed technical knowledge like "does a Kickstarter project video appear on the prelaunch page", a LLM will still confidently tell you the opposite of the truth.
  • If you need customer support or anything that even looks like customer support, there is an extra quarter-hour minimum of wasted bot effort before you can get it.

Nothing I've seen has suggested the technology has fundamentally changed.

 

A monkey writes on a scroll. Image by John Batten.
He can't be wrong, he writes so confidently.

 

In the previous edition of discussing the emperor having no clothes, I mentioned  

[Wikipedia] editors pointed out that the LLM summaries generally ranged from 'bad' to 'worthless' by Wiki standards: they didn't meet the tone requirements, left out key details or included incidental ones, injected "information" that wasn't in the article, and so on

and 

bureaucratic wonks note that genAI can't summarise text. It shortens it and fills in the gaps with median seems-plausible-to-me pablum. The kind you get when you average out everything anyone has ever written on the internet.

I recently saw an AI booster shuffle their position back to "at least it's good for summarising, it's going to completely replace human effort there". With that motivation, let's drill down a bit.


In (a) summary

Let's not bury the lede. LLM chatbots can't produce good summaries. Sometimes by chance yes, but not reliably. Summarising, like everything, is a skill-based task, and of the various capabilities required to do it well, LLMs lack four of the most important.

1. LLMs won't reliably retain important structure or order in which information is presented. They will just haphazardly obliterate implicit linkages. They will even occasionally discard explicit structures, as when the text itself points out that C follows from A and B, and therefore D.

2. LLMs can't identify the most important information in a text (a necessary first step to preserving it in the summary). In a good summary, certain content "should" be retained, certain content compressed, and the remaining content discarded. Vital information generally isn't identified within the text in a way that's detectable without broader context, language skills, and understanding of the world. Even when it is, e.g., in texts where repetition of a word corresponds directly to importance, or phrases like "this is vital information" are always appended, LLMs still aren't guaranteed to retain important details! And the same applies to cutting out unimportant information.

3. LLMs can't stick to the source text, that is, the content they're meant to be summarising. Because they just generate text (by predicting which bits of text should come next, based on an enormous model of which bits tend to come after which bits, hence 'language model'), there's no internal representation of Things 'In' The Language Model versus Things 'In' The Text To Be Summarised, and no impetus to perform computational operations that keep them separate where appropriate. All of which is to say that as well as not including things that should be in a summary, an LLM will readily include things that shouldn't be. Oops

3(corollary). That includes things that aren't true. Oops(corollary)

4. LLMs will sometimes just negate statements for no clear reason. When processing text, e.g. when directed to "summarise", they'll turn a claim into the opposite claim. I think what's going on here is that a statement and its negation are syntactically and semantically similar, even though their meanings are devastatingly dissimilar. Too bad LLM technology doesn't get meanings involved, instead just taking a probabilistic walk through a model of language features like, oh I don't know, syntax and semantics!

Note what these four crucial capabilities have in common. It's the reason why LLMs can't do them. That's right, they require understanding to do properly.

Or if not understanding, then at least computational models of understanding, like formal reasoning over symbolically-encoded domain knowledge including useful axioms. I mention this because classic AI systems (planners, searchers, problem solvers, etc) can do just that, in their various limited ways. They symbolically represent domain information and then perform operations on those symbols which can then give something potentially useful back once related back to domain information.

And those systems are limited, yes, but LLMs don't do 'understanding' at all. As far as I can tell, on the back of a postgrad compsci degree and a few days spent reading and partly understanding the computational basis, this is a fundamental limitation of the technology. One which can't just be fixed, but which would need a whole new (at most LLM-inspired) technology to overcome. For exactly the same reason why AI "hallucinations" can't be fixed.

 

Presummary (a digression)

This technical basis of how LLMs work also explains something else. These chatbots are particularly bad at "summarising" documents which contain surprising content.

By surprising content, I mean...

➡️ Statements seeming to defy common wisdom. Things that are the opposite of statements well-represented in the training data. When X is generally true of a field, but your text describes how ¬X is true of some narrow subfield or specific context, you'll see an LLM "summarise" X into ¬X more frequently.

➡️ Deliberate omissions of things that are usually in correlating training data documents. If your text looks like a text of type blarg, and blarg texts in the training data typically report on X, but you have not reported on X for your own reasons, an LLM is likely to just make something up about X while "summarising".

➡️ Unusual pairings of form and content. Performance degrades the more you ask an LLM to do something novel.

➡️ Context-sensitive language like metonyms and homographs. When X is a big important noun well-represented in the training data and X refers to something else in the text, you'll see an LLM (appear to) get confused by the statements about X its produces for the "summary".

➡️ Nontextual information content. The LM stands for language model. If you have a report that includes and discusses images and diagrams, a chatbot might be able to stop and parse those, and then incorporate its own description of the image as part of the text to be summarised, and maybe even put images back in the summary. But you'll nonetheless end up with a worse output.

 

In summary (but for real)

So LLM chatbots can't be (consistently, reliably, etc) good at summarising.

Of course people who don't know what a good summary is might not notice this; likewise people who possess the skill but don't carefully check the job they told it to do.

(I would argue that in either case, if the task was worth doing to begin with, you should prefer the task not getting done to having no idea whether your document is a good, adequate, or terrible summary)

Anyway this is why you may have seen people who do know what a good summary is point out that LLMs actually "shorten" text rather than "summarise" it. I'm not certain but I think the first time I saw this was in one of Bjarnason's essays.

The sentiment "this technology sure can't do [thing I am skilled at] for shit, but I guess it might be good at [thing I don't know about]" will continue to carry the day as long as people let it

I'll self-indulgently close by quoting myself again:

A lot of people with a lot of money would like you to think that genAI chatbots are going to fundamentally change the world by being brilliant at everything. From the sidelines, it doesn't feel like that's going to work out.


Monday, 28 July 2025

Playing Scrabble for keeps

So I've been hooked on Word Play, the Scrabble-based roguelite.

I play some video games here and there, and when I find one I really enjoy, I try to squeeze out all of its challenge juice (technical term). That usually means at least getting all the achievements.

As a result, when it comes to Word Play I have been putting far too many hours into beating Ultramarathon mode specifically: 20 rounds at the most difficult scoring.

Here's how I finally beat it.

(Roguelite players will be completely unsurprised to hear that this did not involve me being particularly good at Scrabble.)

 

Word Play screenshot.

Cracking open this game like an egg

It's all about synergies, of course, which means you need luck plus strategy. This run had the 'more rare and legendary modifiers' modifier, and I just doubled down on the first synergy I saw, which revolved around Upgrades.

My engine is made of modifiers:

➡️ I get a random common Upgrade when I play a word with 8+ tiles.

➡️ Each Upgrade gets +1 use.

➡️ +1 bonus point each time an Upgrade is used.

➡️ I gain a refresh when an Upgrade is used up completely. (This was switched out near the end of the run)

So if I play exclusively long words, I get a bunch of Upgrades, and I get more bonus points on every subsequent word. I also get refreshes (to help me get long words), but I don't use them, because so many of the common Upgrades let you refresh selectively. I quickly build up 40 refreshes and a hundred bonus points per play.

Not crucial to the engine, but I also get a modifier for x2 score with 3+ unplayed special tiles. All the Upgrades are turning my entire bag into a mess of special tiles, so this doubles all my scores without effort.

Finally, I get my first potion tile, an 'M' worth 3 points. Potion tiles give you plays equal to their score, but break, when played. I hoarded this until I lucked out and got my final modifier: if you play a four tile word, add a copy of the first tile to the letter bag.

So now, with my huge numbers of refreshes, I can in principle just refresh until I get my potion M, play it at the start of a four letter word, and have it break but add a copy to the tile bag, for a net +2 plays. This is huge when you start the run with 20 plays and only get a few more per round. So: rinse and repeat, interspersing with long words (to get more Upgrades (to get more refreshes)).

In practise, though, that's slow and unreliable. I didn't end up spending many refreshes getting the potion M out there. Instead, I was careful to have an Upgrade slot open at the end of each round, and at about round 12 I got exactly what I was hoping for: the uncommon Upgrade which adds your refresh count to a tile's score.

You can see where this is going. I used it on my potion M three times, discovering in the process that a tile's score maxes out at 99. Now I gain 99 plays each time I put the potion M at the start of a four-letter word. Over the course of a round I gain more plays than I will ever need.

That's why the little number in the bottom right of the screenshot says "1538", not the "15" or so that you would normally expect.

 

Descent into absurdism

At this point the run is essentially won, so I rejoice, but it will clearly be a slog. Even with most of my tiles turned emerald or golden with the bounty of Upgrades, I only get something like 800 points per play with a long word, so I'm going to need to play 100 good words in the final couple of rounds.

Aware of this, I have been burning my essentially-limitless plays rerolling modifiers, and it pays off at the end of round 17. I get the 'multiply final score by number of special tiles' modifier, one of a couple that would reliably boost my scores even further.

So I wave goodbye to 'gain a refresh when an Upgrade is used up', you made all this possible. Now if I spell a word like LAVENDERS, it scores 5936 points. I can and do cruise to the finish in a handful of plays per round.

Word Play screenshot.

And that is how I got the hardest achievement in this damn spelling game.

 

Your mileage may vary

None of this strategy is reliably reproducible, of course, due to randomness. But I think it's interesting that it worked, because it was the first Upgrades-based build which I had tried. Part of that is luck in the early rounds, naturally.

Builds that I tried and failed with, for the record:

➡️ All gold tiles

➡️ Fast-growing diamond tiles

➡️ All the emerald synergies

➡️ Double length points, board expanders, and lots of plus tiles

➡️ Dozens of attempts that never got the smallest synergy.

 

So that's most of the challenge juice squeezed out of Word Play! I recommend this game if you're a Scrabblehead. It's on Steam.

Update a few days later: I translated my run into "whoops, all wildcards". 300+ tiles of golden and dotted 99-point wildcards took me to round 50.

Word Play game screenshot. Round 50. A board full of golden 99-point asterisks. I have just received 3238590 points.

 

I spent scores, maybe hundreds of rerolls trying to get the "dotted tiles multiplier increases with each play" modifier which would have given me desperately-needed multiplier scaling, and which could have taken me even further. I never got it, though, so I called it at round 50, where winning just meant typing "******************" over and over again and waiting for the scoring to finish.

 

Word Play game screenshot. Ending the game.

Monday, 14 July 2025

Trying not to be a Gell-Mann Amnesiac

I sometimes wonder how much Gell-Mann Amnesia people experience. Paraphrasing Crichton, when you're a domain expert, you'll sometimes read an article that gets every aspect of your field completely and absurdly wrong, have a little laugh about it... then keep on reading and trusting articles that are about other fields, even from the same publication or writer.

As if they're some pure spring of wisdom which only coughed out a lump of mud when it came to the thing you happen to know about.

It's just an idea from a novelist, not the kind of cognitive bias that's supported by real-world studies that I know of, but you have to admit that it has a kind of... truthiness to it.

Stack this up with Dunning-Kruger and it's easy to become cynical. You might decide that actually, all the loudest voices are talking complete nonsense, all of the time. That might be too far. But I do think it pays to put deliberate hard effort into distinguishing domain experts from overconfident bullshitting pundits.

Now, anyone with their ear to the ground and a weather eye out for Gell-Mann Amnesia should have arrived at the obvious conclusion about generative AI. To wit, that the current state of the technology is that it is an overconfident bullshitter.

On being a piece of software and being confidently wrong

The case studies are easy to find, and the ones from domain experts sound pretty different from the ones from the tech industry and the reporters too busy and/or demoralised to do more than repackage their press releases as articles.

➡️ I am not a historian. The historians I've read say genAI gets softball history questions mostly right and deep ones mostly wrong. Sometimes subtly, sometimes dramatically. It just makes things up when the evidence is scarce. It makes errors of commission and omission as well as having misplaced focus and drawing weird conclusions from premises.

➡️ I am not an artist. The artists I listen to say genAI art looks bland and awful and organic because it doesn't understand composition or anatomy or separate objects (because it doesn't 'understand' anything). It can't make an image that isn't well-represented in the training data, like a camel and a steampunk automaton jousting from the backs of sumo wrestlers. Same in other kinds of media: filmmakers say genAI can't do film because it can't take direction or keep track of characters or have a consistent shot.

➡️ I am not a Wikipedia editor (except incidentally). Earlier this year there was a wretched moment when the Wikipedia editors were going to have genAI article summaries foisted on them, although I think that's turned around now. The skilled editors pointed out that the LLM summaries generally ranged from 'bad' to 'worthless' by Wiki standards: they didn't meet the tone requirements, left out key details or included incidental ones, injected "information" that wasn't in the article, and so on.

➡️ I am not a manager. The managers say genAI can't even collate timesheets reliably.

➡️ I am not a novelist. The novelists say a genAI book reads like a statistical summary of all creative writing anyone has ever done, including all the embarrassing teenage fanfiction. It sucks at originality. And because it doesn't have an internal model or understanding of its outputs, it can't keep track of things and make a coherent satisfying story. Things are vague, tropey, or contradictory.

➡️ I am not a lawyer. The lawyers are, um, well, by the sound of it a lot of them are being sanctioned for using generative AI to cite completely nonexistent caselaw. (☉__☉”)

➡️ I am not a public policy wonk. The bureaucratic wonks note that genAI can't summarise text. It shortens it and fills in the gaps with median seems-plausible-to-me pablum. The kind you get when you average out everything anyone has ever written on the internet. If you try to have an LLM summarise or draw conclusions from a study, it will usually do a bad job, fabricating statements more along the lines of what an average person would guess if they'd only read the study's title.

➡️ I am not a software engineer. The software engineers seem to have mixed opinions. They say that genAI works as code autocomplete (something that has existed for fifty years, but this new kind has pretty sophisticated lookahead, neat). At least some are saying it can't do principled software engineering, it introduces security flaws, its performance drops off for obscure languages, it overconfidently generates bad code, it plagiarises from code repositories that it doesn't have the rights to...

I could go on.

I'm no longer a domain expert in anything, this many years after my stint in academia. I think I'm halfway to being an expert in a few different areas, though. I deliberately concocted some thoughtful questions at the intersection of those areas, just to see.

For example, I asked about the (obvious) mapping of choose-your-path text adventure books onto mathematical graph structures, which the LLM chatbot identified. I followed up with technical questions about the features of those graphs in context: what would the game be like if they weren't digraphs, would you expect cyclic vs acyclic, would a finite state machine be more appropriate and if so why, etc.

And lo, the generative AI output was absurdly, hopelessly, and confidently wrong when given questions that needed expertise.

A lot of people with a lot of money would like you to think that genAI chatbots are going to fundamentally change the world by being brilliant at everything. From the sidelines, it doesn't feel like that's going to work out.

Sometimes I read posts from experts along the lines of

"I've noticed it's almost worthless at [my field], but it sounds like it's pretty useful for [other thing]."

But less so lately, maybe?

So I'm left wondering: are people experiencing massive Gell-Mann Amnesia about these chatbots? Or does everybody know that the emperor has no clothes?

(But oh no, we've invested so, so, so very much money into the emperor's finery, and all the wealthiest people at the imperial court agree: pleeeease could you keep squinting to see this amazing new clothing?)

 

Tuesday, 25 March 2025

On becoming technologically competent

I was working out a computer problem and got to thinking about what I was doing.

Pretty much anybody who uses a computer on the regular would benefit from becoming more of a power user. Most people would like to work more efficiently to free up time for the things they want to do. Luckily, it's never too late to learn.

How, though?

You can just take it one step at a time, applying the miraculous human reasoning power of 'breaking a complex problem down into components which can be tackled'.

  1. Identify a laborious part of your workflow.
  2. Find a tool that will help.
  3. Learn to use the new tool.
  4. Add it to your workflow.

If a component task seems too onerous, you can break it down further.

For example, if 'learn to use the new tool' seems imposing, it is possible to:

  • plan how to approach it
  • learn to read documentation
  • find a tutorial which works for you
  • set time aside to read documentation and follow tutorials
  • search for specific information in today's search-hostile web
  • establish what the best forum is to ask questions in

Finding tools

Being a power user is not a binary thing. It's a gradient. When I first used a computer back in the dusty old yesteryears, I was not competent with it. Now I'm competent in many technological domains, and an expert in one or two. Some of that was acquired naturally and some through deliberate effort.

Right now, if I ever need to write a batch file or mess with the registry or write my own css, I have to re-familiarise myself, because I've let pieces of competence degrade. For some other tech questions, I still have no competence at all. Fortunately, it doesn't really come up, because...

Having a genuinely unique problem is vanishingly rare. 

You can be pretty sure that lots of clever technical people have already come up with solutions for whatever it is that you're doing. It's just a matter of finding their solution, learning to use it, and then actually using it.

There's tons of (free!) software which gives you batch processing or shortcuts or streamlining or other efficiency gains for all manner of otherwise-laborious tasks. It's a matter of identifying the need, discovering the tool, and learning its use.

Need to impose a complicated naming schema on a bunch of files? There's Bulk Rename Utility.

Need to strip audio tracks from videos? VLC does it.

Running out of disk space due to a regrettable history of erratic, poorly-labelled, manual backups made in arbitrary locations? SpaceSniffer + Duplicate Files Finder.

I could go on. I have bucketloads of discrete tools that I use either regularly, as part of my workflow, or intermittently, as part of problem-solving or error remediation or unusual tasks.

Art by CDD20. Pixabay

(We unfortunately live in the 'app era', the 'cloud era', the 'SAAS era'. People seem not to think of software programs as tools that you download and use to improve the ease, efficacy, or efficiency of specific things they do. I think they're missing out.)

Living means learning

If you put your mind to sliding yourself up the 'power user' scale, you'll almost certainly succeed, and you'll find that you can improve your workflow incrementally. As you learn and develop expertise with your tools, you will learn their best use cases, and find yourself getting judicious, and seeking more methods, more approaches, more tools.

A long time ago I set down the largely-worthless Windows file management tools, and picked up Everything and SyncBackFree. I learned mass image editing back in university using some tool I don't even remember the name of, then worked out how to do it in Gimp when that was my go-to image manipulation software, and have since found ImageMagick is better for many tasks.

I'll almost certainly find even better ways to do the tasks I currently do, using new and better tools. But that's a good thing, not a bad thing. I'm still in a better spot right now than I would be if I'd never heard of batch processing.

If there's a moral, it's this:

Don't avoid trying things because you don't think you're capable. Capability not only can be but is learned.

Sunday, 9 June 2024

Affinity Publisher editable object styles workaround

Unlike e.g. InDesign, Affinity Publisher doesn't have full object styles. You can create 'styles' as, essentially, presets, but you can't update or edit them and have the effect propagated to the contents of your project, in the way that you can with paragraph or character styles.

Suppose you want to apply, say, a coloured stroke to some subset of the objects in your project to make some cut-out art pop or to distinguish frames. You know that you might later need to tweak the colour, or the width, or the opacity, for all those objects.

An Affinity Publisher 'style' doesn't let you do that.

So here are two easy hacks to capture some of the basic functionality of proper object styles.

1. Names-as-styles

When you apply a style to an object, rename the object to the style name. Then when you need to change the look of objects with that style, use Select Same → Name from the right click or the Select menu.

This works for things like repeated placed images and copy-pasted frames: cases where all the instances will have the same name by default, so you don't need to do anything as you go.

2. Tags-as-styles

But suppose your project requires certain naming conventions. Or you're creating elements in such a way that objects in the same style won't have a uniquely shared name. Then you can get the same results but using layer tags.

Assign a specific unique tag to objects which are meant to have the same style, from the bottom of the right click menu. Then you can later use Select Same → Tag Color to adjust the look of all those layers at once.

Just be careful with nested and grouped layers, where tags get inherited by default.


Saturday, 30 September 2023

Hyperspecific bugfix notes in transit from the past: Blogger CSS

While trying to increase line spacing to improve accessibility for this blog, I ran into an interesting series of issues. I'm recording the solution here in case I need it again or on the off-chance that it helps someone else.

For things on the Blogger platform (like this blog), you can choose a theme separately for desktop and mobile, or have the desktop page served to mobile. If you have a custom theme like I do, and you want to have a nice responsive mobile version of the site, then Blogger (behind the scenes) apparently takes the custom theme, runs it through some arcane processes, and spits out a mobile version.

So I encounter the following timeline of problems:

1. The theme is partially customisable in Blogger settings but to make real changes (in this case, to the line height) you have to dive into the CSS/HTML. I took a web design course more than a decade ago, so I am rusty. It takes some time just to find out how to get in there.

2. I notice that I can fix the line height in the CSS using (go figure) line-height, but the change doesn't propagate to mobile. It looks like the .mobile tag doesn't do anything. Say I change the line height to an absurd 100×. It looks absurd on desktop. I simulate a mobile device in a desktop browser by popping "?m=1" at the end of the URL, and it looks absurd there. On an actual mobile device, it's unchanged.

3. I deviate from proper CSS and get lost in an endless maze of <b:if cond='data:mobile'> or possibly <b:if cond='data:blog.isMobile'> or <b:if cond='data:blog.isMobileRequest'>, none of which help.

4. I get frustrated and go poke at the custom fonts instead.

5. It turns out the mobile view ignores custom fonts – again, only on an actual mobile device.

6. At first I think it's a caching problem on my phone, but changing font colours and banners and things works fine.

7. A search turns up this helpful article. It's a web safe font problem. My desktop browser recognises the custom title font I chose on a whim in Blogger settings (Molengo), but my phone browser doesn't. But! I just need to make the CSS load the font and add a line wherever it's needed and then it changes for mobile too.

8. ...It turns out that the google font called 'Molengo' looks completely different to the built-in Blogger font called 'Molengo' which I selected, so my nice font choice is broken on both desktop and browser. Not too big a problem; the google font version is okay and now I know how to make it work on mobile, so I leave it as is.

9. Back to trying to increase the line height.

10. It slowly occurs to me that a 'web safe font' problem is explicable but a 'web safe line spacing' problem is not plicable at all. That means there is an unrelated issue.

11. I google for more answers, get none, and start googling ever more tangentially related search keys and scrolling through increasingly unrelated answers. I try "@media only screen and (max-width: 600px)" instead of .mobile, and again certain test changes take effect on my phone and certain others don't. I can change colours and backgrounds and all sorts of things, but not certain font facets.

12. Finally an answer to a question about I don't know pineapples or something reminds me that !important is a thing. I try it, on a whim. The line spaces change.

13. I eventually work out that something, somewhere, is (re?)setting my line spacing (and a few other things, like font size and letter spacing) on mobile. Either those values are being overwritten by the Blogger post-processing step, or possibly I am an idiot and mobile-only elements buried elsewhere in the stylesheet are taking precedence due to CSS specificity values or something like that. The latter would seem more likely prima facie, except that I searched the CSS for a long, long time and could not find any trace of conflicting elements.

14. Whether it's the one reason or the other, I don't have a better solution than using !important. So I copy the formatting I want from throughout the stylesheet, duplicate it, and slap it inside .mobile tags with !important added on each line. Why go out of my way to do it that ugly way? Because !important is slightly scary and if it breaks something in the future (and I forget about this bugfixing session) then the fact that the blog will break on mobile and not on desktop may make tracking down the problem faster.

So, attention future me: If you need to futz around with this again, start by scrolling to line 554 of the CSS.

Scene from Pit And The Pendulum illustrated by Rackham



Tuatara Deliquescence

If you were around the tabletop games hobby 20 years ago, you probably remember the infamous game-that-never-was, Tuatara Deliquescence. A p...