Showing posts with label AI. Show all posts
Showing posts with label AI. Show all posts

Friday, November 28, 2025

A Bus Ride and the (At Least) 3x UX FAILs

© 2025 Peter N. M. Hansteen

Norway is digital to a fault. That is why attempting to buy the ticket for a bus ride can reveal a cascade of user experience (UX) failures.

Most days, I either take a half hour stroll to get to my main customer's offices, or work from home. But occasionally, I need to visit my employer's offices. On those days, I take the bus for an easy 20-ish minutes ride.


Note: This piece is also available without trackers but classic formatting only here.
This week, a few meetings and an internal session on UX Design were scheduled at my employer's site, so after my usual morning routine of making coffee, feeding the cat and going over overnight mail and news, I got ready to head out to the office.

On the way out the door, I opened the tickets app from our local bus company Skyss on my Android phone, selected the single ticket option, went on as usual to select Vipps as the payment method and cleared the authentication steps before locking and putting the phone away.

Some unrelated alert buzzed on the phone and had me unlock it again, only to see that the payment had failed with an Unknown error message.

I had been on the way out the door when the transaction was initiated, so I suspected that perhaps the network change from my home WiFi to Telia 5G had somehow disrupted connectivity. That would be a rare occurence, but has happened.

So I tried completing the transaction again, only to get the same result. After a couple of more tries, the bus turned up and I got on my way.

So yes, I had technically taken a bus ride without paying. That means I in principle owe Skyss something like NOK 41.32 and would be at risk of getting fined something like NOK 950 if caught by the ticket inspectors without a proof of payment.

No inspectors turned up, however, so my day went on to some customer work performed remotely from the office, meetings and finally the main item of the day which was a short, compact, intensive but also quite interesting and inspiring session on UX design work.

The UX session concluded, and we went on to some socializing over pizza and refreshments.

Then, naturally, came the time for my bus ride back home. Once more I tried to purchase a single ride ticket via the app, only to be presented with the exact same error.

Unknown error.
And no way to get any details on what the actual error was.

So I got on the bus, again without completing a transaction, so my debt to Skyss would now have roughly doubled, and again I ran the risk of getting fined, should the inspectors turn up.

At this point my main suspect for the source of the failure was the Vipps app.

For context, the Vipps smartphone app is very close to being the default payment method in Norway, even more so for transactions involving online payments. Any failures or problems of any kind involving the Vipps service are almost guaranteed to make headlines with strongly worded articles and aggressively ugly comment threads.

So when I got back home, I opened the Vipps app on my phone, only to find that instead of its usual transaction UI I was presented with a question about whether I was a politically exposed person, with the options to answer basically, "Yes", "I was one previously", and "No".

But no way to bypass the prompt and perform a payment or other transaction.

The answer was obvious, but once I entered the answer, I was only taken to a screen with a single option, Update, presumably to update the app to a newer version.

Pushing the Update button took me and my Android phone to the Play store entry for the Vipps app, which offered the option to Open the app or to install it on my Android tablet in addition to my phone.

Choosing to to Open the app only took me back to the same single-option Update screen, in a perfectly circular progession.

So after failing to find any other option, I ended up uninstalling, then reinstalling the Vipps app.

Which of course involves a completely new setup. Fortunately (or perhaps worryingly from a privacy perspective), the app managed to connect itself to my main bank account, inferred from my national ID number, which is a required bit of information in the sign-up process.

So UX fail #1 was in the Skyss app, where the developers had apparently trusted the Vipps app to either never fail or at least fail in some obvious way, so displaying any information from Vipps was deemed not necessary.

UX fail #2 would likely go to the developers of the Vipps app, who seem to have assumed that users will only ever interact with their system directly, never through a third party app that uses Vipps as the payment back end. Or perhaps the Skyss developers screwed up their app's API interaction with the Vipps app, possibly hooking in the app when they really should have been talking to the Vipps back end instead.

Finally, UX fail #3 goes clearly to the Vipps team, who appear to have failed to test the sequence of events that will be triggered by their Update button in the app. Whatever they did test apparently did not involve any recent-ish Android phone from those too-big-to-fail Koreans.

While an Internet greybeard like myself was able to figure out that the app needed to be dealt some minor violence, I can only imagine the utter puzzlement any less (Internet) digital native senior citizen of actually pretty much the same age as myself would have experienced when met with this exact scenario.

Bonus Track: Adobe Does This Too, With AI

For the developers I have just chided for not doing their jobs properly UX-wise, there might be some consolation in knowing that they are not alone in producing UX failures.

Returning readers will be aware that The Book of PF, 4th edition is coming soon (also here), and we have reached the time when the thing is in the last rounds of proofing.

For reasons probably best explained by the publishers' production team, the application we use for final proofing and related annotations is Adobe's Acrobat. A few years ago I decided that macOS is BSDish enough that I will use it quite a bit, so installing the no direct cost version of the app on a system within reach was a fairly painless excercise. As was the initial proofing round and an intermediate one.

Then when the PDF for the final proofing cycle arrived, and I loaded the two hundred and fifty-some pages PDF, I discovered that Acrobat had acquired an AI Assistant component.

When the progress indicator showed that the file was ready to display for my final proofing round, the Acrobat AI Assistant oh-so-helpfully prompted me with

This looks like a long document. Would you like to see a summary instead?

Granted, my use case here is possibly not the typical one for a user of the gratis version of Acrobat.

But I will award Adobe the UX fail #4 bonus prize here, a UX FAIL because AI, for failing utterly to consider that some people do, in fact, create long-ish documents and prefer to see them in the full.


A Bus Ride and the (At Least) 3x UX FAILs is © 2025 Peter N. M. Hansteen (published 2025-11-28)
You might also be interested in reading selected pieces via That Grumpy BSD Guy: A Short Reading List (also here).

Wednesday, August 6, 2025

Elvis is alive! How 'AI' stunts modern mythmaking

© 2025 Peter N. M. Hansteen

A chance followup to an old geek joke reveals how AI creates myths based on severely limited historical inputs

Sometimes LinkedIn discussions run much like informal office banter. Earlier this week, Niall Murphy posted there, saying

Best joke hostnames? I'll go first:

Best joke hostnames? I'll go first:
"switchen" - network equipment close to the fridge
"madwoman" - storage server somewhere up high (guess how high)
"wutheringbytes" - storage server in rural surroundings

This had me respond with

Never forget that it is required for any network with Solaris boxes to have
one host called elvis

Never forget that it is required for any network with Solaris boxes to have one host called elvis

This comes from a fairly widely known and respected part of geek culture, based on the Solaris operating system's implementation of the ping(8) command.


Note: This piece is also available without trackers but classic formatting only here.

If you're a Unix person, you will get the joke immediately after following the link to the ping(8) manual page and reading the first three lines of the DESCRIPTION part.

The cultural background is a reference to Elvis Presley, the "King of Rock'n'Roll", who passed away in August of 1977. Pretty much immediately after the sad news arrived via ordinary channels, speculations started turning up that The King was not actually deceased.

There have been quite a few versions of those rumors in circulation, and if some of those were to be believed, our man had actually arranged a disappearance in order to join some top secret undercover assignment for one or more of the federal three letter agencies of the United States govenment.

Be that as it may, fast forward a few years, and by the time I entered the ranks of Solaris admins, it had become something of a standing joke to put new hires in front of a terminal or simply an Xterm open on a Solaris box and tell them to enter ping elvis and press Enter.

The interaction would then run like this:

$ ping elvis
elvis is alive

at this point everybody would have a laugh, and work would go on. Until the next rookie turned up.

That was the joke, repeated almost ad nauseam at all Solaris sites I have been to.

So I was a bit surprised by Niall's followup

Peter Hansteen glad to see Gemini's got it's finger on the pulse:

Peter Hansteen glad to see Gemini's got it's finger on the pulse:
"Bohunt School:
The context of the phrase "Elvis Solaris" comes from a Facebook post from Bohunt School, indicating the school used the dogs to help students with their well-being. "

My immediate reaction was along the lines of that's bulls**t, phrased as

Whatever they fed that one, I don't think I want to know.

ping(1)!

Whatever they fed that one, I don't think I want to know.

ping(1)!

A screenshot of the entire sequence is preserved here.

-- and my impulse here was that this was yet another example of AI hallucination, courtesy of the Gemini assistant tool. After all, what other link between Elvis Presley, King of Rock'n'Roll and the Solaris operating system could conceivably exist? So I just dismissed the thought and went on with my day.

But the next morning I noticed I was still slightly irritated by the whole thing, so I decided to investigate again, using the clues Niall had provided.

Searching with the obvious keywords, it turned up that indeed, a series of Facebook posts existed that showed that in connection with Bohunt School, an outfit calling itself Solaris Healthcare had indeed been involved in a number of events using the name Elvis in the event title, apparently involving one or more Elvis impersonators.

So the reference was real after all.

The thing was not completely made up, but pointing to those Facebook posts about the Elvis themed events as the original context shows very clearly what the language model was trained on. They included social media posts, but apparently did not manage to suck in references to a fairly widely know part of geek or hacker culture.

To my mind at least, this shows that even the latest fad in Artificial intelligence (AI)has been unable to evade one basic truth about information processing systems:

The quality and usefulness of the output from any information system depends critically on the inputs provided for the system to process.

Or as some less kind commentators have uttered, Garbage in, garbage out (GIGO for short).

When the hypemasters of the large language models forget this simple truth about their systems, we all end up poorer for it. The tool acts as if it has absorbed all knowable truth, and presents it with all the confidence of a veteran mansplainer. Whatever was not in the training data set simply falls by the wayside.

If in this way modern myths and folklore stripped away and deleted, only what the robot trainers could be bothered with included, and as a consequence the scope of what will form our future myths and folklore culture becomes narrowed and stunted.

This all echoes the sentiments that I found in a fediverse post that I lost the original reference for, but which I included in my my pinned post,

I just saw a post that referred to ChatGPT as "Mansplaining as a service", and it is so wonderfully correct - instant generation of superficially plausible yet totally fabricated nonsense presented with unflagging confidence, regardless of topic, without concern, regard, or even awareness of the expertise of its audience :D #chatgpt #mansplaining #GenerativeAiIsGoingGreat

Take "ChatGPT" there as a stand-in for "any large language model system". In the current iteration of what popular culture considers Artificial intelligence, much of the hype we have heard can be condensed to

"but this time around, it is laced with our special large language model magic."

The sceptics among us might be justified in thinking

"actually, this time around its GIGO+M (Garbage in, Garbage out, plus magic)".

I am an old man. I regularly yell at clouds.

Good night and good luck! I welcome your comments.

Bonus note: Niall told me in a message, about the "is alive" reference, he was "wondering if it was sourced anywhere and turned to my favourite search engine to see. And that was the Gemini result placed at the top, which I thought was so beautifully wrong/weird I should share it with you..."


Update 2025-08-07: My colleague Eirik Sangolt decided to put OpenAI GPT-4.1 to the task of explaining.

Here is what happened:

Eirik: Explain the following Tweet: "Never forget that it is required for any network with Solaris boxes to have one host called elvis."

OpenAI:
The Tweet "Never forget that it is required for any network with Solaris boxes to have one host called elvis." is a reference to a long-standing joke in the Unix and Solaris system administration community.

Explanation:
  • Solaris is a Unix operating system originally developed by Sun Microsystems.
  • In Solaris, there is a command called ping used to test network connectivity.
  • If you run the command ping elvis on a Solaris system, the system responds with:
    elvis is alive
  • This is a playful Easter egg built into Solaris. The system is pretending that "elvis" is a host on the network, and the phrase "elvis is alive" is a joke referencing the popular culture myth that Elvis Presley is still alive.
So, the Tweet is a joke:
It suggests that every network with Solaris machines should have a host named "elvis" so that when someone runs ping elvis, they get the amusing response. In reality, it's not a technical requirement-just a bit of fun for system administrators.

If you want more details or examples of other Unix jokes or Easter eggs, let me know!

This response is Al generated and is based only on parts of the available information. Do not use it as a basis for important decisions.

Screenshot preserved here.

I think perhaps the answer provided here could be based on fairly low rated stackoverflow answers.


Elvis is alive! How 'AI' stunts modern mythmaking is © 2025 Peter N. M. Hansteen (published 2025-08-06)
You might also be interested in reading selected pieces via That Grumpy BSD Guy: A Short Reading List (also here).

At EuroBSDcon 2025, there will be a Network Management with the OpenBSD Packet Filter Toolset session, a full day tutorial starting at 2025-09-25 10:30 CET. You can register for the conference and tutorial by following the links from the conference Registration and Prices page.

Separately, pre-orders of The Book of PF, 4th edition are now open. For a little background, see the blog post Yes, The Book of PF, 4th Edition Is Coming Soon (also here). We are hoping to have physical copies of the book available in time for the conference, and hopefully you will be able to find it in good book stores by then.


Tuesday, August 5, 2025

Those Titles the AI Bot Thought I Had Written

© 2024 Peter N. M. Hansteen (2024-12-06)

Beware of robots generating your references. They could very well take it upon themselves to lie on your behalf. Testing in 2023, I observed a whopping 25% truth in the result. What is the truth rating in 2024?

Note: This is a field note that was originally intended as a fediverse (mastodon) post, but the text would have overflowed into a thread and would then have become quite cumbersome.

Back in the early days of generative Artificial Intelligence revolution (read: late 2023) I had heard enough of the hype that I did a few minimal experiments (see my earilier notes ChatGPT opines on IPv6 procastination, waxes lyrical over OpenBSD (also prettified, tracked) and I asked ChatGPT to write a pf.conf to spec, 2023-06-07 version (also prettified, tracked)) that had me conclude that for my own purposes at least, the technology as it appeared at the time was unlikely to improve productivity for myself or any of my immediate colleagues.

The TL;DR would be that since the models will only become somewhat useful if they are trained on a sufficient volume of material within the topic of interest, clearly a lot of work needed to be done. Basically, the gaps in the training data seemed to fit essentially most of the field I deal with professionally, beyond of course a few trivial generalities. And those were cracks that could only be papered over at the cost of pulping several good-sized forests.


Note: This piece is also available without trackers but classic formatting only here.

Not easily discouraged, I thought maybe, it just might be, that the data the language model trainers had sucked in from public sources on the Internet would contain enough factual information that the system would be able to cough up a reasonable bibliography of what I had written.

So I opened another session with the same robot and typed


what are the most read articles by Peter N. M. Hansteen?

After a brief pause, the cursor started moving and presented its result:


As an AI language model, I don't have real-time access to up-to-date information or specific statistics on article readership. Additionally, my training only goes up until September 2021, so I may not be aware of the most recent articles published by Peter N. M. Hansteen. However, I can provide you with some notable articles that Peter N. M. Hansteen has written up until my knowledge cutoff date.

Peter N. M. Hansteen is a well-known author and has written extensively on the topic of networking and computer security, particularly focused on OpenBSD and firewalls. Some of his notable articles include:

"The Book of PF: A No-Nonsense Guide to the OpenBSD Firewall" - This is a comprehensive guide that provides practical information on setting up and configuring firewalls using OpenBSD's PF (Packet Filter) system. It covers topics such as filtering network traffic, NAT (Network Address Translation), and quality of service (QoS).

"Building Firewalls with OpenBSD and PF" - This article discusses the concepts and techniques involved in building firewalls using OpenBSD and its PF system. It provides practical examples and guidance on firewall design and implementation.

"Securing the Edge: A Practical Introduction to OpenBSD Packet Filtering" - This article focuses on the fundamentals of packet filtering using OpenBSD's PF system. It covers topics such as rule syntax, filtering criteria, and advanced filtering techniques.

"So You Want to Be a Firewall Wizard? Part 1" and "Part 2" - These two-part articles provide an introduction to firewall concepts and techniques, with a focus on OpenBSD and PF. They cover topics such as rule sets, network address translation, and handling complex firewall configurations.

Please note that the popularity of articles can vary over time, and it's always best to refer to the author's official website, blog, or other reliable sources for the most up-to-date information on their publications and readership.


(Preserved as text, cut and pasted from the website, here)

My initial reaction when I saw the result was a sound you would associate with something quite unpleasant happening.

I'll take one paragraph at the time.

Though it was probably intended as a disclaimer, the claims in the first paragraph there are, as we shall see, only 25% true, if even that.

The second paragraph has a description of me that is on par for what would turn up in a not terribly specific search using your favorite Internet search engine.

Just how well known an author and what consitutes extensive writing is open for discussion, but at least the paragraph as a whole is not counter-factual.

I did write The Book of PF. The third edition of the book would have been available via that link and a few others at the September 2021 cutoff date, and the description is a valid, if somewhat short of exhaustive, description of the book when it comes to subjects covered.

However, the three titles that follow were not written by me.

I think I have read articles matching those titles at some point, but the actual authors of those pieces would not be terribly pleased to have them attributed to somebody else. I would assume their publishers would like a word there too.

I have mentioned this session a few times to colleagues and friends over refreshments, but I have not really give it much thought since.

But the chatter about how the AI bot herders are heroically fighting their charges' tendency to hallucinate seems to never come to an end.

So my question to you is: Has the situation actually improved since then?

If you have any useful experience to share or other input on the subject, please follow up with a comment in the thread where you found the reference to this note.

A reasonable followup question would be,

Are the efforts that go into (what is currently labeled as) Artificial Intelligence starting to pay off?

followed by

or are we for now better served by having the abbreviation "AI" (perhaps more reasonably) expand to "Artificial Inanity"?

Come to think of it, unless the various bots that scrape the net actually obey my robots.txt directives, publishing even this text here will lead to further confusion over who actually wrote those titles. This is bound to turn up in the AI slop presented to some poor soul looking for valid information.

Again, if you have any useful insigths or experiences you want to share on the subject, please follow up with a comment where you found the link to this piece, or post to this fediverse thread (raw link https://mastodon.social/@pitrh/113612679976829404).

I look forward to reading your comments.


Those Titles the AI Bot Thought I Had Written is © 2024 Peter N. M. Hansteen (published 2024-12-06)
You might also be interested in reading selected pieces via That Grumpy BSD Guy: A Short Reading List (also here).

At EuroBSDcon 2025, there will be a Network Management with the OpenBSD Packet Filter Toolset session, a full day tutorial starting at 2025-09-25 10:30 CET. You can register for the conference and tutorial by following the links from the conference Registration and Prices page.

Separately, pre-orders of The Book of PF, 4th edition are now open. For a little background, see the blog post Yes, The Book of PF, 4th Edition Is Coming Soon. The latest information I have is that physical copies will be shipping by the end of January 2026


Wednesday, June 7, 2023

I asked ChatGPT to write a pf.conf to spec, 2023-06-07 version

ChatGPT prompt and answer


Prompted by this exchange

I just had to check what its capabilities were. Here is what happened:


Note: A version without trackers but “classical” formatting is available here.


PNMH::
write an OpenBSD pf.conf that blocks by default, allows traffic from the local host, allows name resolution, network time and ssh out from the DMZ, lets http and https through to the web server, and allows smtp that has been whitelisted by spamd to pass to the mail server.

To which ChatGPT answered:

Sure! Here's an example of an OpenBSD pf.conf configuration file that meets your requirements:

# Define network interfaces
ext_if = "em0"  # External interface (connected to the internet)
dmz_if = "em1"  # DMZ interface
lan_if = "em2"  # Local LAN interface

# Set default block policy
block all

# Allow traffic from the local host
pass quick on lo0 all

# Allow name resolution (DNS)
pass out on $ext_if inet proto udp to any port domain

# Allow network time (NTP)
pass out on $ext_if inet proto udp to any port ntp

# Allow SSH out from the DMZ
pass out on $dmz_if inet proto tcp to any port ssh

# Allow HTTP and HTTPS traffic to the web server
pass in on $ext_if inet proto tcp to $ext_if port { http, https }

# Allow SMTP traffic that has been whitelisted by spamd to the mail server
pass in on $ext_if inet proto tcp to $ext_if port smtp \
    rdr-to $lan_if port spamd

# Log and block any remaining traffic
block log all

    

Make sure to replace the interface names (em0, em1, em2) with the appropriate interface names on your OpenBSD system. Additionally, adjust the names of the web server and mail server as needed.

Remember to save the pf.conf file in the correct location (/etc/pf.conf by default on OpenBSD) and reload the firewall rules using the pfctl command for the changes to take effect.

Note: This configuration assumes you have already set up spamd and whitelisted the desired SMTP traffic.


I will leave it as an excercise to the reader to point out why this would earn an F.

Or you can take in things like our Network mananagement with the OpenBSD Packet Filter Toolset or just get yourself a copy of The Book of PF , as an option after after looking up the PF user guide.

Update: Point it at specific sources! After posting the original result I got a few responses, with lots of smileys and other emojis.

Then, a colleague advised that pointing the system at specific sources such as the man pages would likely produce better results.

So here is the second exchange:

PNMH:
based on the information in https://man.openbsd.org/pf.conf and https://man.openbsd.org/spamd write an OpenBSD pf.conf that blocks by default, allows traffic from the local host, allows name resolution, network time and ssh out from the DMZ, lets http and https through to the web server, and allows smtp that has been whitelisted by spamd to pass to the mail server.

The response was,

Certainly! Here's an updated version of the pf.conf configuration file based on the information from the OpenBSD man pages for pf.conf and spamd:

# Define macros for network interfaces and IP addresses
ext_if = "em0"  # External interface (connected to the internet)
dmz_if = "em1"  # DMZ interface
lan_if = "em2"  # Local LAN interface

# Set default block policy
block all

# Allow traffic from the local host
pass quick on lo0 all

# Allow name resolution (DNS)
pass out on $ext_if inet proto udp to any port domain

# Allow network time (NTP)
pass out on $ext_if inet proto udp to any port ntp

# Allow SSH out from the DMZ
pass out on $dmz_if inet proto tcp to any port ssh

# Allow HTTP and HTTPS traffic to the web server
pass in on $ext_if inet proto tcp to $ext_if port { http, https }

# Allow SMTP traffic that has been whitelisted by spamd to the mail server
table  persist file "/etc/spamd.whitelist"
pass in on $ext_if inet proto tcp to $ext_if port smtp \
    rdr-to $lan_if port spamd if-bound \
    spammed by 

# Log and block any remaining traffic
block log all

In this version, we have added the table, which is populated by the /etc/spamd.whitelist file. This file should contain the IP addresses or networks that have been whitelisted by spamd. Make sure to save the pf.conf file in the correct location (/etc/pf.conf by default on OpenBSD) and reload the firewall rules using the pfctl command for the changes to take effect. Please note that this configuration assumes you have correctly set up spamd and have populated the /etc/spamd.whitelist file with the desired IP addresses or networks.


It did pick up a few clues from the man pages I fed it, but it still has fairly obvious flaws that would stem from it not being able to take in the actual interdependencies of even a very clearly worded, if slightly complex document like man pf.conf.

But then what would happen if we in addition feed it the PF user guide?

Let's try:

PNMH:
based on the information in https://www.openbsd.org/faq/pf/index.html and links therein as well as https://man.openbsd.org/pf.conf and https://man.openbsd.org/spamd write an OpenBSD pf.conf that blocks by default, allows traffic from the local host, allows name resolution, network time and ssh out from the DMZ, lets http and https through to the web server, and allows smtp that has been whitelisted by spamd to pass to the mail server.

The third try response was,

Certainly! Here's an updated version of the pf.conf configuration file based on the OpenBSD FAQ for pf, as well as the pf.conf and spamd man pages:

# Define macros for network interfaces and IP addresses
ext_if = "em0"  # External interface (connected to the internet)
dmz_if = "em1"  # DMZ interface
lan_if = "em2"  # Local LAN interface

# Set default block policy
block all

# Allow traffic from the local host
pass quick on lo0 all

# Allow name resolution (DNS)
pass out on $ext_if inet proto { udp, tcp } to any port domain

# Allow network time (NTP)
pass out on $ext_if inet proto udp to any port ntp

# Allow SSH out from the DMZ
pass out on $dmz_if inet proto tcp to any port ssh

# Allow HTTP and HTTPS traffic to the web server
pass in on $ext_if inet proto { tcp, udp } to $ext_if port { http, https }

# Allow SMTP traffic that has been whitelisted by spamd to the mail server
table  persist file "/etc/spamd.whitelist"
pass in on $ext_if inet proto tcp to $ext_if port smtp \
    rdr-to $lan_if port spamd if-bound \
    spammed by 

# Log and block any remaining traffic
block log all
    

In this version, the rules have been updated to align with the OpenBSD pf FAQ and provide a more comprehensive configuration. Make sure to save the pf.conf file in the correct location (/etc/pf.conf by default on OpenBSD) and reload the firewall rules using the pfctl command for the changes to take effect. Please note that this configuration assumes you have correctly set up spamd and have populated the /etc/spamd.whitelist file with the desired IP addresses or networks.


It is fairly obvious that this would not have passed the pfctl parser, and that feeding it the relevant man pages as well as the PF user guide did not make the system more capable of understanding how rule evaluation actually works.

In fact, all three tries would be functionally equivalent to the rather terser

block

But arriving at that conclusion would require the reader to actually understand the content fed to it.


My favorite take on this so far came via Mastodon, from Mark Shane Hayden, in this toot, which reads in full:

@mwl @pitrh I suppose we can take solace in that if Skynet ever came into existence for real it would be unreachable