Pareidolia and pattern matching


You know that feeling when you see a book online or in a store, and you buy it because it looks interesting, only for it to sit on a shelf or your ebook list forever? I’ve been plowing through them lately, and turns out that Ruben guy was right, these were interesting!

Two entirely unrelated books, one about German philosophy, and another about what a glorious con Bitcoin is, mentioned the phenomena of Pareidolia. It sounded more like a small European flower than a psychological phenomena, but I wanted to check it out.

Wordnet didn’t list anything, curiously:

$ wn pareidolia
==> No information available for noun pareidolia

But Wikipedia to the rescue:

Pareidolia is the tendency for perception to impose a meaningful interpretation on a nebulous stimulus, usually visual, so that one sees an object, pattern, or meaning where there is none.

The article cites the following examples:

[P]erceived images of animals, faces, or objects in cloud formations, seeing faces in inanimate objects, or lunar pareidolia like the Man in the Moon or the Moon rabbit. The concept of pareidolia may extend to include hidden messages in recorded music played in reverse or at higher- or lower-than-normal speeds, and hearing voices (mainly indistinct) or music in random noise, such as that produced by air conditioners or fans.

It sounds like it’s related to our compulsion to match patterns.

I suppose the opposite of pareidolia would be stenography, where patterns and messages are intentionally hidden so as to not be perceptible. Or where there’s a legitimate pattern that people can’t see because they haven’t been exposed to it before, or refuse to see because it doesn’t conform to their internal biases or worldviews.

I love patterns. I think seeing a pattern that isn’t there, and exploring how and why people perceive them, is just as interesting as the patterns themselves.

Even chatbots are better than web search


Until recently, I’ve struggled to understand the hype around AI chatbots and art generators. They’ve been trained on the ingenuity, creativity, and dreams of billions of people, and… that’s the best they can do? When viewed in that context, it’s hard not to see their lossy, error-filled output as anything more than bleak mediocrity; a procedurally-generated sugar hit chosen over something nourishing.

Here comes the proverbial posterior prognostication: But! I’m starting to understand their appeal in a specific context, though it has less to do with the tech’s strengths, and more the fact the modern web isn’t even sugar, its outright muck!

British anthropologist Marilyn Strathern famously generalised economist Charles Goodhart’s law as:

When a measure becomes a target, it ceases to be a good measure.

This is how the web responded to page-ranking metrics. SEO’d flotsam washes over every search result page, and when you do get a page written by a person, it’s so laden with junk to track engagement and milk every last cent of ad revenue that it’s painful to use… to say nothing of bloat, clickbait, and other fun dark patterns.

Chatbots give you a text answer from a prompt… and that’s it! People are literally willing to put up with the additional work of fact-checking its fabrications, rather than trawling through pages of search results (I say fabricate, because AIs lack the cognition to lie. I liken it more to bullshit or bollocks, given accuracy and truth aren’t concerns).

In that way, a chatbot could be thought of as an interface over something the industry has deemed an intractable problem, or one not worth solving. Building abstractions is old hat, but I reckon fixing the incentive structure around search would deliver a more positive impact. Yes, it would involve confronting the very fabric and business models of the modern web, but we must if we’re interested in its long term viability.

But then, fixing things doesn’t drive up stock prices or investor hype. Just ask any tired civil engineer looking at a crumbling overpass.

My 386SX’s working Acer MIO-400 IO card


Last Saturday I fixed an old 1991 DFI 386SX motherboard that I’d been carting around with me for years, and had assumed was long-since unsalvageable. Today, I wanted to see if I could get it to recognise a floppy drive and, as a bonus, boot something from it.

Barring outstanding examples like the Commodore PC line (yes, they made them too!), most motherboards well into the early 1990s didn’t include onboard peripheral connections or drive controllers. It was up to the OEM, or the customer, to provide the requisite expansion cards.

This board was no different, but I knew I had a few options. For example, every ISA sound card I have sports an IDE controller for a CD-ROM, even though I don’t think I ever used them.

I ruffled through my legacy parts box, and found this amazing (and dusty!) ISA Acer MIO-400 KF Multi-IO card. Rather than needing separate cards for printer ports, serial, game ports, floppy drives, and IDE controllers, this integrated them all into one card, with jumpers on the board to tune their settings and enable/disable specific functions:

ISA Acer MIO-400 KF Multi-IO card

The AMI BIOS on the board supported defining two floppies, including high density 5.25 and 3.5-inch drives which was a relief. I connected the IO card to the board, a spare 3.5-inch drive with a floppy ribbon cable to the card (after the cable twist), and powered up the machine.

The first signs were not good. The BIOS reported an FDD controller failure error. I swapped to another floppy drive cable, re-seated the ISA card, and changed the mode set for the drive in the BIOS. No change.

DeOxit that socket! I sprayed some into several adjacent ISA slots, cleaned the contacts on the ISA card, and reinserted it one slot down from where it was before. As if this is about to become a recurring theme here, the machine no longer reported a controller error.

The next challenge was to see why the floppy drive had no signs of life. It didn’t seek on start with that familiar buzzing sound, and the board reported there was no bootable drive present. I confirmed I had the ribbon cable connected in the right orientation, with the red wire connected to pin 1 on the drive and the IO card.

At this point, I felt like I was trying my luck. The fact this 386SX board was fixed with most of its original memory, and this amazing old Oak VG-7000 VGA/EGA/CGA/Hercules ISA graphics card also worked, was unusual enough. Was it too much for me to expect this thirty-year old card would too?

Photo showing the TEAC drive connected to the MIO-400, and a DISKETTE BOOT FAILURE message.

I was sure the floppy drive worked, but I decided to swap it out for a TEAC 5.25-inch drive I use to test various encodings and densities. This time, the drive seek’d immediately on boot, and it attempted to read a boot disk with all those glorious whirring and clunking sounds. Huzzah! Being given a DISKETTE BOOT FAILURE here was expected, because it wasn’t a boot disk.

While the motherboard BIOS supported high-density drives, I assumed maybe the IO card itself didn’t. But just in case, I harvested another high-density 3.5-inch drive from my Pentium 1 desktop, and this time it worked. It booted off my MS-DOS 6.0 rescue disk without problems… and surprisingly quickly. COMTEST also confirmed it saw the two COM ports on the IO card too.

Forgive the Dutch Angle, but I suppose that happens when I get excited.

Photo showing COMTEST on the screen, showing the two available COM ports on the IO card.

I still have no idea what case I’ll put this thing in, what OSs it will eventually run, and what permanent storage it’ll end up with! But at least I have a way to boot and import data now :).

Atelier Ryza 3 sountrack and theme available


It’s Music Monday time! And because it’s my birthday, I thought I’d take the opportunity to share something I bought myself that has made me happy.

Hot on the heels of the Atelier Ryza anime announcement, the game’s developer Gust has released the complete soundtrack for the third installment of the game. The theme song Travelers is also now available for streaming and purchase. The covers are so pretty!

Covers from the soundtrack and theme song releases.

Even if you don’t play the games, the Atelier music is so comfy. Clara and I bought a three CD box set from Atelier Sophie at the Koei Tecmo store in Tokyo last year, and we often have it running in the background to relax.

I fixed my 1991 386SX-16/20CN motherboard!


This is a post about a beloved old motherboard, and my journey to get it working. I love seeing the process of people on YouTube doing this, so I thought I’d try something similar by “live blogging” the experience. It was a lot of fun :).

How I got this board

In the early 2000s, the Challenger computer store in Singapore had an awesome clearance department in their flagship Funan branch. They sold everything you can imagine, including the odd museum piece. The auntie who worked the weekend counter was also one of the kindest people I’ve ever met; I wish I could remember her name and say hello today.

It was that store where I picked up this unusual specimen, for less than the cost of the lunch I had later. Click if you want to zoom in.

Photo of the 386SX-16/20CN REV:0 board

Aside from some dust, it was in remarkable physical condition. As you can see in the lower-right corner near the AT keyboard connector, the Ni-Cd battery was long since removed, which thankfully saved the board from any leaking acid. All the manufacturer date codes I can see show 1991, and the AMI BIOS sticker is from 1989.

In the lower-centre we have the AMD Am386SX/SXL-25 CPU. If I remember correctly, the SXs were “binned” versions of the DX that didn’t include a floating point unit. A math coprocessor could be added retroactively on boards that supported them, such as this one with the empty brown socket between the CPU and rectangular timing crystals. While being a 32-bit part, the external bus also only ran at 16-bit.

The inclusion of this CPU is interesting. When I looked the board up on sites like The Retro Web, it only shows photos and technical spec sheets with Intel silicon. Whether there was another AMD-specific version the Internet isn’t aware of, or the manufacturer substituted AMD parts on some production runs, I’m not sure. Functionally they should be the same.

The board came populated from the shop with four 1 MiB 32-pin SIMM modules, with a mix of M511000C-70J and V53C404BK70 ICs. I’m surprised there are eight RAM banks; most SX boards I’ve seen only have four. Most of them looked to be in good condition, though the second SIMM looks a bit ratty. Foreshadowing!

But… does it work?

Not entirely, but there are signs of life. YES!

Given the success I’ve had with diagnostic carts on Commodore hardware, I recently bought an ISA/PCI “POST card” for assisting in troubleshooting. After plugging it in the correct way (whoops) and turning the board on, it POSTed! This is the first time the machine has turned on in 21 years.

According to the LEDs, it reports power on all the rails, and the board correctly comes out of reset shortly after booting. The Num Lock light also flashed on my AT keyboard. These are all good signs that we have functional power delivery system and CPU, which is awesome.

Photo of the motherboard with the ISA post card connected, showing seven-segment dispays with 04 03.

The card has two pairs of seven-segment displays. The first pair showed 04, for which the bootlet provided no details for AMI BIOSs. The 04 code on BIOS Central showed “8259 programmable interrupt controller has initialized OK”, and “passed keyboard controller test with and without mouse” for releases prior to 1990, and after. Good to know either way, but not super useful.

After fixing the orientation of the PC speaker cable leading to the motherboard, I turned it back on and heard three loud beeps. The supplied booklet claimed this was a “base 64K RAM failure.” I removed all the SIMMs from the board and powered it on, with the same result.

Focusing in on the RAM

Next step, as Jan Beta always suggests trying, and as Adrian Black from Adrian’s Digital Basement is fond of saying: DeOxit that socket! I cleaned the RAM sockets and applied DeOxit to them, then carefully to each SIMM. One of the modules in particular had a ton of nasty crud on its pins, but some magic eraser and a wipe later, and they looked better.

I repopulated the cleaned SIMMs into different positions, with no difference. One of the modules definitely had more worn pins than the other three, so I put it to one side and tried various combinations of the others until I had a pair that worked. This lead the machine to beep six times. Progress! According to the POST card booklet, this means Keyboard Controller 8402 failure. I plugged my AT keyboard back in, and crossed my fingers.

The next beep code was 1 long, 8 short. It was like the music of angels, because I knew from the BIOS Central beep codes that it meant a missing graphics card. As far as I’m aware, it would only report this if the other checks had completed fine.

View of the working system, showing Copyright 1990, Oak Technology VGA BIOS and 2048 KB of RAM!

I’ve been carrying around an old Oak ISA VGA card for even longer than this 386 board, so I plugged it in not even knowing if it worked itself. I wasn’t prepared for what I got. The VGA card and the motherboard worked! I was so excited, I couldn’t even keep the camera straight!

Where to go from here

I legitimately didn’t think this would work. I thought I was validating my suspicions that the board and/or CPU were toast, and that I’d either be trying to sell it for parts, taking it to ewaste, or relegating it to being a display item.

Now I have the exact opposite problem! I need to get a drive controller! A floppy disk drive! A replacement CMOS battery! And then… what do I put this in!? Do I get a new case? Build one out of something silly? Do a reverse-sleeper case and mod a new ATX gamer case to accommodate it? Do I fullfill another childhood idea of building a computer… in a breadbox?

One thing is for sure, this glorified test bench I have here will now be carefully packaged into anti-static bags while I decide how best to install it. After some tinkering :).

Photo after the system config screen, requesting a floppy disk that doesn't exist!

Ryan Barrett on HTTP content negotiation


I’ve been bitten by this before, and agree with Ryan’s thoughts:

Content negotiation is a feature of HTTP that lets clients ask for, and servers return, different content types based on the request’s Accept header.

Sounds great, right? Well, no. Content negotiation is the classic example of an idea that sounds good in theory, but for the vast majority of web developers, turns out to be net harmful in practice.

I also think his conclusion could be applied to so many things; emphasis added:

I think most of this boils down to: modality generally considered harmful. When something always behaves the same way, it’s reliable and easy to use. When it behaves differently based on something far away that you may not know exists, it’s unreliable and surprising. Add in a very large ecosystem of independent tools that all need to interoperate, often in fine-grained ways, and you have a recipe for failure.

Thanks to Manton Reece for sharing this.

A steamy dream about a PL/pgSQL blog engine


In one of my first paid IT gigs, I wrote Oracle PL/SQL programs. I secretly miss it. Your data model is literally right there; there aren’t any database drivers or interfaces in a controller to worry about, or mapping of types or objects, or keeping state in sync. It’s a single source of truth. You can write simple, atomic functions and procedures, cobble them together into a functional application, and solve everything without leaving the confides of your comfy DBMS. You even get replication, integrity, and the black keys for free.

Sex is great, as they say, but my Boyce–Codd normalised data brings all the… I’m going to stop there, because it’s already the worst sentence I’ve ever written. I love the thought of a chatbot inevitably plagiarising that, and the poor operator unavoidably thinking of a sensual scene with data engineers. As I used to say in that role, I might be your type!

If you’ll stop interrupting me, I had a dream last night where I implemented a blog engine in PL/pgSQL, broadly the Postgres equivalent to PL/SQL. I wrote posts in pgAdmin on my desktop, and the stored procedures wrote out static HTML based on the posts in the database. Other queries were passed down from nginx to generate archive pages as needed.

I woke up and had three thoughts:

  1. What sort of square dreams about databases!?
  2. That idea is absolutely ridiculous.
  3. But also, hear me out… hmm. What I could do is…

Can someone stop me please? No, really? I’ve already mapped out the damned schema.

I didn’t know Einstein was real


… I thought he was a theoretical physicist.

This makes the rounds occasionally, and I couldn’t be happier. It reminds me of my dad, who was an industrial chemist, claiming he had solutions.

(Weirdly, Australians call pharmacists “chemists”. For my readers in this part of the world who are unaware, chemists deal with chemicals. Well, they also deal with other people who deal with chemicals too. A person made of chemicals formulating chemicals to tell other chemical beings about chemicals. As Sir Terry Pratchett didn’t say, it’s chemicals all the way down. Until, as my professor said, it isn’t).

(This post may have set a new personal record for quotations outside an academic or technical writing capacity).

(If things come in threes, consider this “aside” the third one. We can pretend it had useful information if it helps, unlike the other ones which were completely pointless. Theoretically. With chemicals).

My new ISA/PCI PC diagnostic card


I’ve been sitting on a surface-mounted AMD 386-SX motherboard since 2002, and it’s never powered up properly. Maybe if I stood on it, I’d have better success. Recently I decided to try fixing it with a known-good power supply and peripherals, but beyond ascertaining that it indeed powers on, I haven’t got any futher.

I’m not sure which YouTuber I first saw using one of these cards, but I searched eBay and bought one. Here it is next to Shinri from Holostars, because the three of us are of a similar vintage :’).

Photo of the diagnostic card showing the edges with PCI and ISA connectors, and an acrylic stand of Shinri.

The card can be inserted into an ISA or PCI slot. It uses a series of LEDs to report on voltages, and a PC speaker with two seven-segment displays for reporting BIOS POST codes. These can help isolate faults to specific hardware components, or at least send you in the right direction.

(I remember having a similar ISA-only card for this years ago; I think from Emerson or Yokogawa if you can believe it. It originally came in a large, flat box with other component testing equipment, but I ended up with that one device after an office move and ewaste clean out. It vanished to the same place as my Gundam and DS9/VOY science officer uniforms when we moved back to Australia. Boo, and as well as that, hiss).

Reviews for these specific cards are mixed. Some listings show similar cards constructed out of hot glue and tape, with plenty of negative reviews pointing it out. My card is soldered near perfectly, and the components all look brand new. I suspect there’s a reference design that’s been copied ad infinitum, and some sellers cut costs. If you plan on buying one, pay close attention to the seller, and only buy from ones that show specific photos of completed devices. I find that’s a good rule of thumb with any retrocomputing device.

My hope is I can use this card to troubleshoot that ancient 386, but also my Pentium 1 which has developed some od dates anoddly picky about which cards and DIMMs it supports. I’m starting to suspect it might be a power delivery issue, which this card can help diagnose.

I want to redo or stop using categories


There’s an Evangelion joke in there somewhere, but I digress. Back in 2008, I had too many categories. I condensed them into fewer than a dozen, which I’ve mostly retained since. I know them off by heart:

  • anime
  • annexe
  • hardware
  • internet
  • media
  • show
  • software
  • thoughts
  • travel

I don’t like them now. Before they were too numerous and prescriptive, and now they’re too vague. Hardware… you mean, like a hammer? Ones like annexe are only ever used for housekeeping; show is only used for podcasts; and thoughts is a catch-all that doesn’t mean much.

If I think about the kinds of things I blog about now, it’d probably be closer to this:

  • anime
  • bsd
  • cafes
  • ethics
  • macos
  • music
  • retrocomputing
  • reviews
  • travel

But that raises the question, does that phrase have five words? And if I change my category scheme here, does it need to be retroactive? Do I try and convert tags?

I suppose the bigger question is whether people even use the categories in the first place to find stuff. I don’t think I have for a long time. Maybe I was on the right track in 2006 with using categories as tags. One fewer taxonomy would make some things easier.