I have made it through another year in spite of the horrors. I am doing a lot better than I was this time last year but then again that is a low bar. If I wasn’t doing better that would be very, very concerning. But I am genuinely doing very well at the moment. As little selfish plug if anyone has developed a bizarrely intense parasocial relationship reading this bog and want to make my birthday even better I have a Throne wishlist that you can use to buy me things.
But I recently moved in with Caoimhe³ and it has been really lovely. It’s broken me out of some bad habits, it’s helped motivate me to cook a lot more again, and it’s just really lovely to wake up next to someone and nice to have other people around rather than being on my own with Easóg so much. And now even when I am the only human in the house there are two more cats keeping me company: Muffie and Sandy. Easóg is not well socialised with other cats but she has acclimatised to the new place faster than I expected and is tolerating the strange cats quite well, though not without some bapping.
Violence!! Photo taken by Caoimhe³.
I am looking forward to spending my birthday with Caoimhe and we are using it as an excuse to go on weekend trip to London. The only thing we have booked, other than the travel and accommodation, is restaurant reservations, and we will structure the rest of the trip around those. I don’t love excessive amounts of sightseeing and I adore food, so I am enjoying this strategy and may use it for further trips.
I tried to put a batman mask on your cat on your webpage, refreshed the page and it… did not save most of the attempt, so it looks like I just scribbled over the top of its face, im really sorry, I cant see any way to undo it.
I am meant to monitor my blood pressure but the sound of the velcro strap scares the cat and she is currently sleeping on my desk and I do not want to disturb her
I don’t watch game streamers much but one of the few who I have enjoyed a lot is Videochess (a.k.a. Chess). She doesn’t stream regularly at the moment but she has wonderful chaotic energy and a propensity for “crimes”, a term she uses for playfully exploring the mechanics of and pushing at the boundaries of games and seeing what is possible if one strays from the designated path. This can manifest as things like impromptu sequence breaking but not for the purposes of speedrunning or anything like that, just to see where it goes and tease out the foibles of a game. And sometimes she does things like collecting every star in Super Mario 64 while playing the game with a DJ Hero controller.
I have also learnt about games and mods that I have since played or are now on my (long) list of things I want to get around to.
Robot Alchemic Drive I still have not gotten around to playing but seems fascinating. I love games with weird controls and especially when there is a diegetic basis for them. Having to remote control a giant robot from the perspective of someone on the ground who has to watch it from a distance rather than getting a camera from the perspective of the robot itself or even a cockpit is an incredible concept. You may be familiar with the game from clips that get shared online showcasing the best value greengrocer or Nanao having a miserable time.
I had only vaguely heard of Cave Story before watching her play “Cave Story Normal Regular”1, i.e. Sonic Story, a mod that replaces the main character of the game, Quote, with Sonic the Hedgehog. Yes, I know this is a massively important and influential game. No, I never bothered looking into it at all despite having had the Steam version in my library for years from some Humble Bundle or another. I have played both Cave Story and Sonic Story since and I can attest that Sonic Story perfectly replicates the feeling of how Mega Drive Sonic games control. It’s not just a reskin it is is playing as Sonic the Hedgehog in the wrong game in a way that is wonderful and silly.
For the opposite she has played Mario put into a Sonic game with the SM64 Generations mod, which uses libsm64. She has also played someother games using libsm64 as well as other regularnormalMario 64 mods.
Willy Wombat
I also became obsessed with Willy Wombat for a while after watching her play it. It is a fascinating, experimental 3D platformer with an isomorphic perspective with maps that have the same limitations as a Doom level: There are no slopes and not only are there no floating platforms but it’s impossible to have a floating platform in this game. Like Doom the levels are defined by floor sectors with designated heights. There are pillars and walls that rise out of the ground for vertically, but you can never go under anything. It leads to some unique level design, especially as the game progresses to areas were the developers had clearly gotten much more comfortable with their tools. The only thing I can think of that is similar (though lacking the top-down perspective) is older versions of Sonic Robo Blast 2 and that is literally a fork of Doom.
It’s also one of those bygone ’90s games that is fully voiced in English with a script penned and directed by a Japanese crew, giving it a surreal quality that is aided by a post-apocalyptic setting with jarring name choices and very little up-front exposition. Above is a fan animation I adore of a cutscene of Notes and Mail talking about “the peace and eternal life of Prison.”
I have a page on this website dedicated to my cat Easóg where you can see a video of her trying to kill Willy while I am watching Chess play the game and mushroom32x made a fun little Neocities webpage for the game’s 20th anniversary.
There’s plenty more
That’s enough for now. If you want to watch more check out the official and unofficial Youtube channels to dig through yourself.
Calling things “normal regular” or “regular normal” when they are, in fact, peculiar is one of several Chessisms that have infected my vocabulary. ↩
I have to take my blood pressure a few times a day at the moment and the cat is absolutely terrified of the velcro strap. It’s because of the noise it makes but she runs out of the room when sees me so much as get out the blood pressure monitor.
Easóg is the Irish word for stoat and also the name of my cat. There are a couple layers to this name. The first is simply I find it funny to call animals by the wrong species and I have a fondness for the Irish language. The second is she is a thin, white thing and I think sometimes she somewhat resembles a stoat in its winter coat (though stoats in Ireland don’t actually have winter coats).
The final layer to this comes from the medieval Irish law, commonly known as Brehon law, or at least a little titbit about it in a book I read by Niall Mac Coitir titled Ireland’s Animals: Myths, Legends and Folklore, which says that for the purposes of determining legal penalties by offences commitid by a pet, a stoat was legally considered to be a type of cat. I sometimes amuse myself thinking about some exasperated judge who had to decide the original precedent about how to calculate damages when someone’s stoat killed a chicken.
If anyone asks, this is legally a stoat.
I adopted her when she was, I was told, about eleven months old, though I never got a birthday for her. She’s a very timid creature and the morning after the first night I brought her home I couldn’t find her. I searched my flat top to bottom but she was nowhere to be seen. I was worried that she had somehow gotten out but suspected that she had found a hiding spot in the space under and behind the kitchen cabinets. I did have a look around outside and put up a few posters with my number on it in case anyone spotted her, but inside I left out food for her, sprinkled flour around it so that I could see any footprints she left if she went for it, and set up a webcam with some software to automatically capture video if it detected motion. Here is the first video captured of her.
Target spotted.
This worked but sadly it was the only way that I saw her for three weeks. She would hide during the day when I was around and only come out at night to eat, use the litter tray that I had left out, and slowly start to explore her new home. There was no real way of getting to her hiding spot without dismantling the kitchen and that would have terrified her more anyway. Eventually she started to venture out when I was around and would explore other parts of the flat during the day (I left the doors open for her) but would keep her distance and flee back to her hole if I motioned towards her or even moved very quickly or made any noise at all.
Corner.
Once she was tolerating my (distant) presence more I decided to try and make myself as unthreatening as possible. When she stepped out into the hallway I lay on the floor of the living room and waited for her to come back. When she did she very, very slowly and very, very carefully stalked up ot me then sniffed my hand before running away. Then she slowly came up again and sniffed my hair and ran away. I continued to lay still to not scare her but she very visibly relaxed at this point. She had been deathly silent in those weeks but now started to meow and take some experimental swipes at a mouse toy that I had left on the floor and rubbing her head against the furniture.
She left the room again and I decided to sit up with my legs crossed and wait for her again. When she came back again she sniffed at my hand and experimentally rubbed up against me before running off a short distance. When she came back to me it was like a switch had been flipped. She started rubbing up against me in earnest while purring loudly before headbutting my hand affectionately and licking the hell out of me as I pet her. When I eventually moved over to my desk she jumped up in my lap and settled in. My clothes were absolutely covered in white hair that evening.
Send help.
To this day she is extremely affectionate (and vocal) and while she is still quite timid and doesn’t like sudden noises or movements she has gotten much more used to people.
I do spoil her a bit, though.
I should get her a yurt.
Also a friend pointed out to me that the character I made in Sonic Forces several years before adopting Easóg, who I called Blitz, is also a white cat with yellow eyes. Perhaps they are sisters.
A different GIF will displayed below depending on your browser’s prefers-reduced-motion and
prefers-color-scheme settings. There’s four different possibilities:
I hadn’t used prefers-reduced-motion before but I saw a chost from Kore linking
to a blog post about accessibility and GIFs and decided I wanted to follow it but
I also didn’t want to have to manually write the HTML code for it each time.
Thankfully programming is the art of being tactically lazy and I can put some effort in up front and
solve an interesting problem once and then let my site generator handle it automatically from then on.
Also thankfully I had done something like this before after taking inspiration how Luna’s blog handles images.
I don’t have high DPI images but I do have different dark and light mode versions of images for the
The “the Ring” Podcast series tracker chart and the Dracula International diagram I made.
The way I had initially done that was, characteristically, a mess. I wrote a custom custom Liquid tag
to handle it which meant that instead of actually using the existing, basic Markdown syntax I had to
put images into my posts with something like this:
{%image/bog/images/easóg.gif%}
So revisiting this to include prefers-reduced-motion options I decided to do it differently this time.
A way that would allow me to just type the normal Markdown syntax and let my code handle everything else.

The next step was to look into how to extend and customise Jekyll’s Markdown parsing and output
but that sounds hard and I didn’t want to do that so I just used a regular expression1:
/((!!?)\[([^\[\]]*)\]\((.*?) *("([^"]*)")?\))/
This runs against the raw Markdown before it’s parsed into HTML and pulls out the link, alt text and title.
That last part is also a big improvement over the custom tag I previously made as that didn’t support
alt text or titles at all.
The code then takes the link and checks if there are any alternative versions listed in
the site’s static file list like easóg.dark.gif, easóg.static.gif or easóg.dark.static.gif.
when writing a new post now I don’t have to do anything extra other than have those other versions
with the right naming scheme in the same folder as the original image.
From there it it compiles it into HTML and replaces the original Markdown in the document:
<picture><sourcesrcset="/bog/images/easóg.dark.gif"media="(prefers-color-scheme: dark) and (prefers-reduced-motion: no-preference)"/><sourcesrcset="/bog/images/easóg.gif"media="(prefers-reduced-motion: no-preference)"/><sourcesrcset="/bog/images/easóg.dark.static.gif"media="(prefers-color-scheme: dark)"/><imgsrc="/bog/images/easóg.static.gif"alt="A white cat"title="Easóg"loading="lazy"/></picture>
Well, actually it does something else too. You might have noticed in the regular expression up above
I am actually checking for an optional, second exclamation mark at the start of the image tag.
That’s my own extension of the syntax. If I’m doing my own parsing I might as well go wild with it.
If there are two exclamation marks at the start of the tag it also wraps the image in a link to itself
and adds an extra class:
<ahref="/bog/images/easóg.static.gif"class="dynamic-image-link"><picture><sourcesrcset="/bog/images/easóg.dark.gif"media="(prefers-color-scheme: dark) and (prefers-reduced-motion: no-preference)"/><sourcesrcset="/bog/images/easóg.gif"media="(prefers-reduced-motion: no-preference)"/><sourcesrcset="/bog/images/easóg.dark.static.gif"media="(prefers-color-scheme: dark)"/><imgsrc="/bog/images/easóg.static.gif"alt="A white cat"title="Easóg"loading="lazy"/></picture></a>
The classes are to enable a little bit of Javascript2 to swap out the destinations of the links
on the fly when swapping if the user’s media preferences change. Whichever one you currently see in the
browser is the one you’ll go to if you click on it.
I might review the double bang syntax if I can figure out something that could be added to the tag
that would get stripped out and ignored by a normal Markdown parser for better compatibility.
If only Markdown had comments.
Is this a robust solution? Absolutely not! Will I eventually run into annoying weird cases that
make me bang my head against the wall as a result of this? I already have!
While writing this very bog post! Because the regular expression cannot tell that the markdown code example I have above
is not meant to be parsed and turned it into HTML, making it impossible to show the before part
of the before and after. Did this make me go back and implement this in a better way? No!
I added some metadata to this post telling it do disable my custom image parsing, made the
parser skip doing anything if it finds that metadata on a page and then hardcoded the example
at the top of this page. That’s right: This post isn’t actually using the one thing it’s meant to
be demonstrating!
I could have also tried parsing the resulting HTML instead of the Markdown like Luna did but that also seemed like it would take slightly more effort. ↩
One of onlythreefour a sadly increasing number of things Javascript is used for on the site. ↩