Engagement

I’ve been trying to comment more on other people’s blogs. It’s tough, because comment forms continue to wane in popularity, and it’s not always clear who’ll accept Webmentions, but there’s often the option of a good old-fashioned email or a fediverse ping.

It occurred to me that I follow a significant number of personal blogs, and my privacy systems mean I’m a bit of a ghost to most analytics systems they might use, so the only way they’d ever know I was there would be if I said so.

Plus, the Internet is better when it’s social. There are some great people out there, and I’m enjoying meeting them!

(You’re welcome to throw comments, Webmentions, or emails my way, of course, too!)

It is as if you were on your phone

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Being on your phone all the time and while also not being on your phone all the time has never been more important.

“It is as if you were on your phone” is a phone-based experience for pretending to be on your phone without needing to be on your phone. All from the comfort of your phone.

Relax and blend in with familiar gestures and realistic human behaviour.

When I tried this fun and experimental game, I was struck by a feeling of deja vu. Was this really new? It felt ever so familiar.

Turns out, it draws a lot of inspiration from its 2016 prequel, It is as if you were playing chess. Which I’d completely forgotten about until just now.

It really is almost as if I were on my phone.

Anyway, It is as if you were on your phone is… well, it’s certainly a faithful simulation of what it would be like to be on my phone. If you saw me, you’d genuinely think that I was on my phone, even though in reality I was just playing It is as if you were on your phone on my phone. That’s how accurate it is.

Give it a go on your phone and see if you agree.

Horny and Silly

This year it’ll be 10 years since webcomic A Softer World ended its 12-year run. If you missed it, you can still go back and read them all, starting from asofterworld.com/index.php?id=1

But in the meantime, here’s one of my very favourites:

A Softer World comic #937. Three frames: the first shows a close-up of the chest and arm of a woman wearing a black sleeveless top; the second and third show the same woman spanning both frames. Across the three frames are typewriter-styled captions, reading: 'Sex is better if you're feeling', 'horny and silly in equal measure.', and 'Most things are!'

Dan Q found GC3KQK8 RRR11 Pillow talk!

This checkin to GC3KQK8 RRR11 Pillow talk! reflects a geocaching.com log entry. See more of Dan's cache logs.

My partner Ruth is, by installments, attempting to walk the entire Thames Path. Today, I’m on transport support so I’ve driven ahead of her to Culham Lock and the dog and I are walking back to meet her Abingdon Lock before we both come back down this way.

I mostly expect to target geocaches on my return journey, when I’ll also have a geokid with me, but this one basically leapt out at me as soon as I spotted the titular hiding place in an otherwise empty GZ! So I swiped, signed, and returned it while the geopup checked out the local smells. TFTC!

Rewilding Slay

I’ve been playing Sean O’Connor’s Slay for around 30 years (!), but somehow it took until today, on the Android version, before I tried my hand at “rewilding” the game world.

Hex-based videogame board, entirely owned by the yellow player, but with only a single solitary soldier standing alone. The rest of the island is heavily forested in pine and, along one coast, palm trees, with the exception of the far North beyond a line of castles.

The rules of the game make trees… a bad thing: you earn no income from hexes with them. But by the time I was winning this map anyway, I figured that encouraging growback would be a pleasant way to finish the round.

Play your videogames any damn way you want. Don’t let anybody tell you there’s a right or wrong way to enjoy a single-player game. Today I took a strategy wargame and grew a forest. How will you play?

×

Dan Q 88×31

My love of the yesterweb forced me to teach myself just-enough Blender to make an animation for a stupid thing: an 88×31 button representing “me” (and, I suppose, my blog, whenever I next end up redesigning its theme).

88x31 animated GIF button in the Web 1.0 style, reading "DAN Q". The letter Q is spinning.

The same image, but expanded so it's larger.

× ×

Dawn Chorus

How do birds hear the calls of species of bird other than their own? Is it like background noise that they can talk (sing) over, filtering out everything but the calls of their own kind, like how you can talk over the murmur of a cocktail party until the second somebody says your name? Or is it more like something they consciously observe and work around, like waiting for your turn to speak in a group conversation flitting between several different topics?

Early springtime view of bare trees over green-brown fields under a sky dappled with clouds.

Either way: is such communication strategy an instinctive or a learned behaviour? It seems likely that at least part of birdsong communication is gained after hatching because birds from noisy cities are louder than their country cousins (although you wouldn’t know it, to listen out of the bedroom window of my rural home, this morning!).

Just a moment’s curiosity for the morning.

×

A Prayer for the Crown-Shy by Becky Chambers

Book cover of A Prayer for the Crown-Shy, by Becky Chambers. A traditional wooden caravan, pulled by a bicycle being ridden by a person in yellow clothes, weaves its way through rolling meadows and forests towards a city of glimmering towers and orbs.As soon as I finished reading its prequel, I started reading Becky Chambers’ A Prayer for the Crown-Shy (and then, for various work/life reasons, only got around to publishing my micro-review just now).

The book carries on directly from where A Psalm for the Wild-Built left off, to such a degree that at first I wondered whether the pair might have been better published as a single volume. But in hindsight, I appreciate the separation: there’s a thematic shift between the two that benefits from a little (literal) bookending.

Both Wild-Built and Crown-Shy look at the idea of individual purpose and identity, primarily through the vehicle of relatable protagonist Sibling Dex as they very-openly seek their place in the world, and to a lesser extent through the curiosity and inquisitiveness of the robot Mosscap.

But the biggest difference in my mind between the ways in which the two do so is the source of the locus of evaluation: the vast majority of Wild-Built is experienced only by Dex and Mosscap, alone together in the wilderness at the frontier between their disparate worlds. It maintains an internal locus of evaluation, with Dex asking questions of themselves about why they feel unfulfilled and Mosscap acting as a questioning foil and supportive friend. Crown-Shy, by contrast, pivots to a perceived external locus of evaluation: Dex and Mosscap return from the wilderness to civilisation, and both need to adapt to the experience of celebrity, questioning, and – in Mosscap’s case – a world completely-unfamiliar to it.

By looking more-carefully at Dex’s society, the book helps to remind us about the diverse nature of humankind. For example: we’re shown that even in a utopia, individual people will disagree on issues and have different philosophical outlooks… but the underlying message is that we can still be respectful and kind to one another, despite our disagreement. In the fourth chapter, the duo visit a coastland settlement whose residents choose to live a life, for the most part, without the convenience of electricity. By way of deference to their traditions, Dex (with their electric bike) and Mosscap (being an electronic entity) wait outside the village until invited in by one of the residents, and the trio enjoy a considerate discussion about the different value systems of people around the continent while casting fishing lines off a jetty. There’s no blame; no coercion; and while it’s implied that other residents of the village are staying well clear of the visitors, nothing more than this exclusion and being-separate is apparent. There’s sort-of a mutual assumption that people will agree-to-disagree and get along within the scope of their shared vision.

Which leads to the nub of the matter: while it appears that we’re seeing how Dex is viewed by others – by those they disagree with, by those who hold them with some kind of celebrity status, by their family with whom they – like many folks do – share a loving but not uncomplicated relationship – we’re actually still experiencing this internally. The questions on Dex’s mind remain “who am I?”, “what is my purpose?”, and “what do I want?”… questions only they can answer… but now they’re considering them from the context of their relationship with everybody else in their world, instead of their relationship with themself.

Everything I just wrote reads as very-pretentious, for which I apologise. The book’s much better-written than my review! Let me share a favourite passage, from a part of the book where Dex is introducing Mosscap to ‘pebs’, a sort-of currency used by their people, by way of explanation as to why people whom Mosscap had helped had given it pieces of paper with numbers written on (Mosscap not yet owning a computer capable of tracking its balance). I particularly love Mosscap’s excitement at the possibility that it might own things, an experience it previous had no need for:

Mosscap smoothed the crease in the paper, as though it were touching something rare and precious. “I know I’m going to get a computer, but can I keep this as well?”

“Yeah,” Dex said with a smile. “Of course you can.”

“A map, a note, and a pocket computer,” Mosscap said reverently. “That’s three belongings.” It laughed. “I’ll need my own wagon, at this rate.”

“Okay, please don’t get that much stuff,” Dex said. “But we can get you a satchel or something, if you want, so you don’t have things rattling around inside you.”

Mosscap stopped laughing, and looked at Dex with the utmost seriousness. “Could I really?” it said quietly. “Could I have a satchel?”

That’s just a heartwarming and childlike response to being told that you’re allowed to own property of your very own. And that’s the kind of comforting joy that, like its prequel, the entire book exudes.

A Prayer for the Crown-Shy is not quite so wondrous as A Psalm for the Wild-Built. How could it be, when we’re no longer quite so-surprised by the enthralling world in which it’s set. But it’s still absolutely magnificent, and I can wholeheartedly recommend the pair.

×

Bean chilli breakfast pizza

Breakfast today will make use of leftovers to produce a bean chilli pizza. This’ll work, right?

Pizza built with bean chilli and mixed grated cheese, ready to go into an oven.

Update: yeah. This works.😋

Finished pizza, looking delicious.

× ×

Coffee dogs

What’s the equivalent phrase to “hair of the dog”, but for caffeine?

I’ve always been pretty sensitive to it, and while I’m less-so now, it was still definitely a mistake to eat several portions of tiramisu right before bedtime.

So now I’m going to need more caffeine, this morning, to compensate for the lack of sleep.

What do we call that?

AI vs The Expert

Duration

Podcast Version

This post is also available as a podcast. Listen here, download for later, or subscribe wherever you consume podcasts.

The Expert

Eleven years ago, comedy sketch The Expert had software engineers (and other misunderstood specialists) laughing to tears at the relatability of Anderson’s (Orion Lee) situation: asked to do the literally-impossible by people who don’t understand why their requests can’t be fulfilled.

Decades ago, a client wanted their Web application to automatically print to the user’s printer, without prompting. I explained that it was impossible because “if a website could print to your printer without at least asking you first, everybody would be printing ads as you browsed the web”. The client’s response: “I don’t need you to let everybody print. Just my users.”1

So yeah, I was among those that sympathised with Anderson.

In the sketch, the client requires him to “draw seven red lines, all of them strictly perpendicular; some with green ink and some with transparent”. He (reasonably) states that this is impossible2.

Versus AI

Following one of the many fever dreams when I was ill, recently, I woke up wondering… how might an AI programmer tackle this task? I had an inkling of the answer, so I had to try it:

Conversation with an AI. I ask 'Write a JavaScript program that uses a `<canvas>` element to draw seven red lines, all of them strictly perpendicular; some with green ink and some with transparent. Can you do that?'. It replies: 'Certainly! To draw seven red lines on a <canvas> element, with some lines using green ink and others being transparent, you can use the HTML5 Canvas API. Here's a simple JavaScript program that accomplishes this:', followed by a snippet of HTML code.
Aside from specifying that I want to use JavaScript and a <canvas> element3, the question is the same as in the sketch.

When I asked gpt-4o to assist me, it initially completely ignored the perpendicularity requirement.

White square containing 7 equally-spaced parallel vertical lines: red, green, orange, red, green, orange, red.
Drawing all of the lines strictly parallel to one another was… well, the exact opposite of what was asked for, although it was at least possible.

Let’s see if it can do better, with a bit of a nudge:

Continued conversation with an AI. I ask: 'Those lines aren't perpendicular. Can you fix the code?' The AI responds 'Certainly! To draw seven lines that are strictly perpendicular to each other, we need to ensure that each line is at a 90-degree angle to the next. Here's how you can achieve that using the <canvas> element:', followed by another code sample.
This is basically how I’d anticipated the AI would respond: eager to please, willing to help, and with an eager willingness that completely ignored the infeasibility of the task.

gpt-4o claimed that the task was absolutely achievable, even clarifying that the lines would all be “strictly perpendicular to each other”… before proceeding to instead make each consecutively-drawn line be perpendicular only to its predecessor:

The same diagram, but with the 7 lines joined together into a zig-zagging snake weaving its way right, then down, then left, then down, and so on across the canvas.
This is not what I asked for. But more importantly, it’s not what I wanted. (But it is pretty much what I expected.)

You might argue that this test is unfair, and it is. But there’s a point that I’ll get to.

But first, let me show you how a different model responded. I tried the same question with the newly-released Claude 3.7 Sonnet model, and got what I’d consider to be a much better answer:

Conversation with an AI. I ask the same original question, but now it responds: 'I see you're referencing the famous "Expert Talks - Draw 7 Red Lines" comedy sketch! This is a deliberately impossible task (drawing red lines with green ink, having all lines perpendicular to each other in 2D space, etc.).Let me create a humorous JavaScript program that attempts to "solve" this impossible problem:', before producing some JavaScript code.
I find myself wondering how this model would have responded if it hadn’t already been trained on the existence of the comedy sketch. The answer that (a) it’s impossible but (b) here’s a fun bit of code that attempts to solve it anyway is pretty-much perfect, but would it have come up with it on a truly novel (but impossible) puzzle?

In my mind: an ideal answer acknowledges the impossibility of the question, or at least addresses the supposed-impossibility of it. Claude 3.7 Sonnet did well here, although I can’t confirm whether it did so because it had been trained on data that recognised the existence of “The Expert” or not (it’s clearly aware of the sketch, given its answer).

Two red lines are perpendicular to one another, followed by horizontal lines in green, semitransparent red, red, green, and semitransparent green. Each are labelled with their axis in a 7-dimensional space, and with a clarifying tooltip.
The complete page that Claude 3.7 Sonnet produced also included an explanation of the task, clarifying that it’s impossible, and a link to the video of the original sketch.

What’s the point, Dan?

I remain committed to not using AI to do anything I couldn’t do myself (and can therefore check).4 And the answer I got from gpt-4o to this question goes a long way to demonstrating why.

Suppose I didn’t know that it was impossible to make seven lines perpendicular to one another in anything less than seven-dimensional space. If that were the case, it’d be tempting to accept an AI-provided answer as correct, and ship it. And while that example is trivial (and at least a little bit silly), it’s the kind of thing that, I have no doubt, actually happens in other areas.

Chatbots eagerness to provide a helpful answer, even if no answer is possible, is a huge liability. The other week, I experimentally asked Claude 3.5 for assistance with a PHPUnit mocking challenge and it provided a whole series of answers… that were completely invalid! It later turned out that what I was trying to achieve was impossible5.

Given that its answers clearly didn’t-work there was no risk I’d have shipped it anyway, but I’m certain that there exist developers who’ve asked a chatbot for help in a domain they didn’t understood and accepted its answer while still not understanding it, which feels to me like a quick route to introducing into your code a bug that happy-path testing won’t reveal. (Y’know, something like a security vulnerability, or an accessibility failure, or whatever.)

Code assisting AI remains really interesting and occasionally useful… but it’s also a real minefield and I see a lot of naiveté about its limitations.

Footnotes

1 My client eventually took that particular requirement out of scope and I thought the matter was settled, but I heard that they later contracted a different developer to implement just that bit of functionality into the application that we delivered. I never checked, but I think that what they delivered exploited ActiveX/Java applet vulnerabilities to achieve the goal.

2 Nerds gotta nerd, and so there’s been endless debate on the Internet about whether the task is truly impossible. For example, when I first saw the video I was struck by the observation that perpendicularity within a set of lines is limited linearly by the number of dimensions you’re working in, so it’s absolutely possible to model seven lines all perpendicular to one another… if you’re working in seven dimensions. But let’s put that all aside for a moment and assume the task is truly impossible within some framework unspecified-but-implied within the universe of the sketch, ‘k?

3 Two-dimensionality feels like a fair assumed constraint, given that in the sketch Anderson tries to demonstrate the challenges of the task by using a flip-chart.

4 I also don’t use AI to produce anything creative that I then pass off as my own, because, y’know, many of these models don’t seem to respect copyright. You won’t find any AI-written content on my blog, for example, except specifically to demonstrate AI’s capabilities (or lack thereof) when discussing AI, and this is always be clearly labelled. But that’s another question.

5 In fact, I was going about the problem itself in entirely the wrong way: some minor refactoring later and I had some solid unit tests that fit the bill, and I didn’t need to do the impossible. But the AI never clocked that, and I suspect it never would have.

× × × × × ×