Dickens of a Blog

The third iteration of Doug Bolden's various thoughts and musings.

Rainy Walk to the Bus

Dear Space Pilgrims,

I will see yesterday-Doug’s Still Getting Used to Dark Mornings and raise him with this morning’s rainy walk to the bus.

Note, these pictures are a bit blurred out because of, you know, rain. It was relatively impossible to actually wipe the moisture off the lens without adding additional moisture. Take them as mood pieces, if you will.

My weather app keeps insisting it’s going to stop raining, soon. It has been doing such since around 20:00 last night.

The above is actually waiting at the bus stop for B’s bus.

Here is the walk through the woods between our house and the bus stop:

Yes, I’m taking the piss just a little. No, that’s not just a black PNG like last time. It’s a photo I took, in the rain, of some very dark woods. Toss in the sound of crackling branches and running water and not being able to see a dang thing.

If there were ghosts there, I probably would have spotted them. An unearthly glow would have been welcome.

This is the last one where coming out of the woods into a rain-drenched, leaf-strewn street makes an interesting juxtaposition where nature ends and my ability to see began…

I should probably get a better camera for taking dark, rainy photos. I have a feeling I am about to see a lot of them.

Still Getting Used to Dark Mornings

I know it’s a common features of expat blogs, of which this tangentially one, to focus on “10 things which shocked me!” type content but while there have been two dozen stacks of things to which I have had to adjust, I am not sure if many are really “shocking.” There’s a few I might share because of humor and anthropological studies type reasons, but overall I am pretty boring in that regard. Stuff is kind of the same but definitely not the same the world over.

There is one thing of which I was previously aware intellectually but in everyday practice has taken a bit of adjustment: the later morning sunrises.

That was taken at something like 07:08 this morning [2025-10-20]. My phone camera slightly lightened it. The sky was more true black at that angle though the light pollution of Brussels was pushing through a bit to the south.

I think you should at least get the idea. Squint a little while looking at it.

I appreciate this is a reality for millions of people and not really a big deal. It is fairly new to me, though.

I grew up in southern [aka Lower] Alabama in the United States. For most of my life, there was a rough idea of sunrise and sunset being similar throughout the year (there’s a four hour swing but Daylight Savings Time imbalances this to the evening side). 7am was pretty definitely post-dawn. 4pm was pre-Dusk. It got fuzzier after that.

Up until my 30s, all of my travel was across the American Southeast region. Alabama, Florida, the Carolinas, Tennessee, Mississippi, Georgia, and Louisiana. Probably in that order, though maybe more LA than GA. I think the furthest north I had ever been was Norfolk, VA. The furthest west was near-ish New Orleans, LA.

Occasionally I would read books like Dickens’ Pickwick Papers and it would talk about the sunlight fading at 11pm [aka, 23:00 in here terms] and I would be confused. I was aware of stuff like the so-called “midnight sun” but it took me a long time to really appreciate the difference. Even when I traveled to places like Boston, it never quite stuck.

My trip to Scotland, near Glasgow, in 2018 was probably the first time where I had that all important realization of proper first-hand experience. Around midsummer, the days were delightfully long which was probably terrible for jet lag but it was nice having a practicum.

It was similar to student-era me figuring out that integrating a curve = acceleration & area under curve = total distance traveled by an accelerating body. The kind of thing I could rationalize but actually using the math to predict real life objects and extrapolating that into new formulae was a big deal for me in my astrophysics days. Or when I began to work out multidimensional math and how frames of reference could be shifted and calculated in high school.

All that said, moving from a place with something like an 4-hour swing to a place with an 8-hour swing has been kind of neat. The ultimate practicum. I’m sure I’ll be fussy around mid-winter but we’ll see.

A Day in the Life: #17673, Mostly Music Stuff and Sickness Stuff

For the second time of this Autumn/Winter season, we are starting to fall into sickness [pun!]. Barbara was the first to go after a week or so of having sniffles. Kaz and I are getting hit about the same time.

The first usual harbinger that announces I am getting ill is that certain smell/taste that my sinuses get. I don’t know how else to describe it but to say it is something like stale turpentine plus a kind of organic earthiness. Like a cup of black tea left out for a couple of days in a rainy pine forest. Can you picture that smell?

The second harbinger is a bit grosser. Not lose your lunch gross but I’ll be kind and obfuscate it: q mgX o XPu5B 1OVX OC igVI 1O3V 1KgoX. bPusB “CgigV 1KgoX.” qX 1POK1 3H Bust OC VostOfUI ost u1 VosB XO fg. q’ig oHOUOmuxgt FgCOVg oFO3X uX XO HgOHUg F3X OXPgV1 Poig XOUt fg XPgI 5os’X 1fgUU uX. bPg Fg1X q 5os m3g11 u1 XPoX uX 5Posmg1 XPg 313oU 15gsX gsO3mP XPoX fI FOtI XoBg1 uX o1 1OfgOsg gU1g’1 1fgUU ost uX XVummgV1 o Vgi3U1uOs.

The third harbinger is when my bones feel like that weird disorientation that your brain gets when you feel deja vu. Know what I am talking about, like your brain is in a hole slightly too large for it but yet your brain fills it? That, only it also slightly hurts.

Usually fourth harbinger is just getting sick and by then we are pushing the definition of an harbinger pretty hard. If the fourth sign that God is showing up is He is standing next to you, you are perhaps past Revelations.

I’m somewhere between #2 and #3. The last sickness that passed through the house, my body decided to fight it off long enough for me to build up a huge viral load and then I got knocked around with bonus dice.

Here’s hoping my body just compromises this time. Just get it over with. Don’t be a hero, body.

Music Stuff (at least, part of it)

I was actually going to talk about some of the new music and stuff I was doing today but in typing that it up, I realized it was really its own post. I’ve cut-and-pasted into a different post and will work on that one tomorrow.

The tl;dr is basically that I am back to getting physical CDs where I can and have been playing on ripping those to both AAC and FLAC formats. FLAC goes to my file server for longer-term storage. AAC I then keep on the computer and upload to my media server. Also copy over to my phone. I miss OGGs but enough players whine about having to touch them. Feck it, maybe I’ll just switch back, anyhow.

While doing this, I ran into the ghost of an old problem I had practically forgotten all about. Back deep in my Linux days {which I miss}, mplayer was my boy for playing music. Then, as I started using more devices, I gravitated to VLC for most of it since it was more compatible with more things.

Only VLC still has issues with gapless playback despite years [decades?] of people requesting it. For a lot of things, such as shuffling your playlist, it won’t matter. For some albums where each track is supposed to blend the next track, it starts to annoy having that quarter second reset.

The long and short of it is that I decided to give foobar2000 a spin. My very short “have played it for around 2-3 hour” review is: it works. It’ll take longer before I know for sure if it is for me but I don’t really see why not.

I guess that exposes a lot more of my musical tastes than I was planning on but I doubt anything is a shock.

Quick Review of the Two Albums Shown

Two of the four “test cases” for the workflow of backing up things are shown in the active playlist: alt-J’s 2022 The Dream and Ado’s 2024 Shinzou. The other two albums were Paul Simon’s Graceland since that’s one I’ve ripped a couple of times (first into ogg, later back into mp3) so it was a good baseline and Babymetal’s Metal Galaxy (I got their Metal Forth, recently, and really liked it so am moving back through their catalog).

The two I have played the most are the two shown, a couple of times each. My quick reviews are…

Ado’s Shinzou

Absolutely phenomenal album. The concert video is also top notch and immense fun to watch, but has enough flashing lights to make it a bit rough for me to watch in a single setting. The double CD that came with it has the audio-only portion and there are so many moment’s to love. The screaming her voice to the brink and then bringing it back down.

It’s hard to explain how entertaining she makes a concert designed around not showing the star, but here’s a sample (just keep in mind that whole “flashing” thing I was talking about):

alt-J’s The Dream

I have enjoyed playing this album but something I noticed on the second round through is that there doesn’t feel like a single song that really reaches out and punches me. The album feels more like a whole, a sustained mood that satisfies the “alt-J vibe,” but one where the whole fits more into the background of the day. Looking into it, there does seem to be singles from the album but even listening to them out of context feels kind of off.

A good album to space out into the liminal.

Also, the limited edition comes with a cool facsimile copy of the handwritten notes leading up to it.

Credits

“Forest Tea” is Photo by Олег Мороз on Unsplash.

A Day in the Life #17671: Cool Snail, “How Dare you, Wordle!?,” and Website Whoopsie

First off, while out fixing our doorbell this morning and cursing the curse of tiny screws, I saw this cool looking snail:

How Dare You, Wordle!?

Second, how dare you Wordle!? It is October for goodness, sake…

Click to see the actual problem.

And yes, I partially posted that just to see if I can work out the mechanics of a “spoiler” type image. It should “enlarge” to the unspoilered image. If it doesn’t, I might just remove this whole section.

Just in case you don’t want to do that, here’s my explanation (click to expose spoiler): 2v Zo oj336s oS0o35, o3 2 J0o vEZ56Z5h vE0v W0szS vES J3RI J3pYI zS blxx4 05I h3v S9mZvSI 0z3pv Zv. n3JSkSR, V3RIYS jY0sSI WS YZ6S 0 M33Y!

EDIT: I’m going to leave it like th at for now, where instead of opening into a lightbox it opens another tab with the unspoilered version. I really don’t think it’s worth it, but I’ll give it a think about how to do it better without needing plugins.

Big Old Whoops on the Website Backend

I have been cleaning up a good bit of the backend of my old wyrmis.com website and today was chunking out a few hundred-ish tiny files from the file structure that were no longer used and at least potentially, therefore, a security risk [at worst] but just a hindrance to sort through, at best.

I ran what I took to be a basic rm -rf * type command but apparently the software does it a bit more complicated than that (and even has the option to move the files into a local recycle bin).

This was treated as me {moving | uploading | downloading} a lot of files and triggered an automatic kick. The software got booted from the server and I am at least on a temporary ban. My assumption here was very wrong, see UPDATE below.

I can still log on to the server through other means, and the website seems completely unimpacted. Now I’m waiting an hour or two to see if it clears up on its own or I might have to contact someone for some technical support.

While I can still edit the website in a number of ways, I had a nice workflow going.

I’ll spend the time, instead, building up a tool that might help me to semi-automate some of the process of fixing hundreds of HTML files and then like, get back to house repairs, instead.

Now I am off to take some photos of damaged bookcases that the shipper broke and wants more photos to prove despite sending them a number of photos.

[2 hours later] Update to Website Woes

Turns out my previous assumption was just plain wrong. The [re]moving of a large number of files might have exacerbated the situation by making it harder to tell what was happening, but the actual culprit was that after I backed out of the directory that had the files, I thought it was sending me {Doug's Directory} while instead it was sending me {The Directory ABOVE Doug's Directory} and then, because the program I was using had the option to recall last directory, it entered into a loop where it kept trying to enter a forbidden zone.

I figured this out when at a whim I tried to enter directly into a sub-directory, which failed and then kicked me back out into the directory I was supposed to be in and I realized what was wrong.

The reason it wasn’t immediately obvious before was because when it kicked me out it essentially prevented me from even seeing what sort of directory I was in. It was the sort like finding a NO ENTRY sign in the middle of a very dark room and having to guess your location. Only every time you re-enter the room, a helpful guide runs up and escorts you to the same place you were just told you not to enter.

500 Day Reading Streak: I would like to thank the constant gamification of everyday pleasures! Also, my mom…

Last night I hit a 500-day reading streak on my Kindle.

Which is to say on my Kindle App because I don’t think my Kindle, not even my newer Colorsoft one, has any sort of streak/days-of-reading/Kindle Challenge type screen. Maybe it does. I’m not going to look for it.

That’s neat though, hitting that. Only you can likely tell from the fact that the number of books I read on Kindle are only 31 this year [roughly 3 a month] so it doesn’t quite line up. With the move and all, it’s been a rough year for reading a lot.

I have maintained the act of looking at pages on a screen in a prescribed manner. I am the best.

Four quick thoughts and then to my morning workout with me! Why this streak is a lie…

The Streak Is a Lie Because: it’s actually longer…

The real total is something like 800 days. Twice over the past 2-3 years, the system has essentially not counted days when I have 100% read something. The last hiccup, apparently 500 days ago, was after I had spent a couple of hours finishing the back half of some book.

I remember being irate at the time because not only had I read for some time, but because I had the book in my library clearly marked as finished and had submitted a rating through the app. The “Finished Date” and presumably the “Rating Date” would have been for the day that the same app was claiming I had skipped reading.

Part of the reason I got to 500-days this time is because I was initially fussy about that and then it just became a habit.

I don’t recall the time before but I remember irate at that time, too.

The Streak Is a Lie Because: it only tracks the bare minimum…

I don’t know what all it actually tracks, not really. Is just opening the app enough? Just opening a book? The truth is that at 100-days of those 500-days were me opening the app or my Kindle (etc) and just reading for maybe 3- to 5-minutes. I would guess my average duration per day would not be all that high.

It is nice to have a gentle prod to keep up some reading because reading is a habit you have to nurture. It just might be better if I could set a minimal threshold [e.g., 10 pages, 20 minutes] to actually count.

The Streak Is a Lie Because: it only counts books-on-Kindle…

Probably half my reading, or more, in that whole time period was via physical books. Which means I either have to do the bare minimum opening of the app to satisfy above or I have to get a book on Kindle and on paper and then move the Kindle version forward.

I have done a bit both. Where both feel silly.

The Streak Is a Lie Because: the constant gamification of everyday pleasures is a poison…

In this case, the streak is not so much a lie as a constant external stressor to stay addicted to an app for reasons only tangentially related to the purpose of the app. Reading some is not hard for many of us but reading regularly is hard. Much like diet apps and exercise apps and productivity apps and language apps and many others: having this gamification added to them can help you to hit goals. That is true.

However, the fact that so many apps have such streaks and such baked in is mentally draining. We can no longer just play our games. Now, we have to play our games daily for shiny lights and particle effects to keep blessing us. Skip a day and you might just receive a meaningless warning. Our gentle hobbies to survive the soul-crushing march of modern life have been turned into just another stress for us to endure.

The whole time our personal data and habits are being scraped and digested by The Algorithm. Using the app is giving them permissions to dig deeper into our lives.

And we don’t even get paid. Hell, we pay for it.

Anyhow, off to see if I can hit 1000-days.

Blogging Down Memory Lane, Part 1: Doug’s RPG Page >>> “wYrmhole Games”

When I was typing up the post about “reclaiming” Dickens of a Blog, I mentioned making a “Part 2” that would be a trip down memory lane. As I started gathering screenshots I realized that such a trip would involve three decades of websites and some of the early days would be awfully hard to document. I was still interested.

Then I started doing just that and realized that the post that resulted would be very long if I included any real detail.

I have now decided to keep up with the Blogging Down Memory Lane idea, but I’ll break it up into three or four posts, potentially more if there is good reason.

Let’s start:

Doug’s RPG Page

That is a rough mock-up since as far as I know, no actual record of the site remains.

My second ever website. Maybe my third. The early ones barely counted since they were largely just me typing some words and being amazed that hypertext worked.

Doug’s RPG Page represented the first time I was actively interested in having a complete website. It would have started sometime in 1997, likely near the summer of that year.

To this in perspective as to how long ago this was, if you do a search along the lines of “Top 10 Websites,” the only two that I can think of that would have existed at this time were Yahoo and Amazon. Google came out a year later. Most other big websites that are the cornerstones of the net nowadays were a fair bit later, still. Heck, it predated Goatse. We are talking about the days where HTML 3 was replacing HTML 2.

I used frames for goodness sake.

That was one of the lesser sins. There was a MIDI player that played a selection of music for visitors. There was a blinking marquee that scrolled and I cannot recall why I put it there (but I’m pretty sure it was red). Possibly irony. Probably something like “big updates” or some such.

If HTML tags like <frameset>, <marquee>, and <blink> mean nothing to you: you are lucky. It was a terrible time. Everything smelled of cigarette smoke and we had terrible websites.

Why I Made Doug’s RPG Page

Quite frankly, with apologies to Mallory, because it was there. The “it” in that quote would mean “the internet” as well “the ability to make your own websites”.

In 1997, my friend Jason and I offered to do something somewhat silly in retrospect: make a website for Jefferson Davis Community College. Not only is it frankly ridiculous that a couple of eighteen-/nineteen-year-olds would take it upon themselves to write a website for a business but neither Jason nor myself had any real web development experience. We knew the basics. That was it. No servers. No development team. Just an idea.

It ended up being a beautiful failure but by the end, we had worked out enough concepts that the college gave us thanks and then tasked someone much more professional to actually do it.

While doing that, the interest in making my own website grew and grew. Then I found out about Geocities. I’ll let you read the Wikipedia article about it but in the mid-90s, Geocities was a massive website hosting complex that allowed users to make a free website inside of “neighborhoods.” It was one of the highlights of the earlier web.

I made an account and plunked myself down in geocities > area51 > dimension > 9180 (it is strange how quickly I was able to recall that). Then I started posting stuff.

Remember that back in these days websites tended to have purpose so it was pretty common if you had things you wanted to say to the world you would find some excuse to express them. Jim’s Truck Page. Donna’s Potato Recipes Page. Doug’s RPG Page. There were plenty that would show up that would be Justin’s Random Stuff or whatnot but it felt odd to a lot of us back then to just post a blog-type page without something happening to make it feel justified.

And yes, blogging was already taking shape by this time.

What I Recall About It

Besides some of the stuff I posted above, I do not recall a lot. I do not even remember if it was organized around specific RPGs or by genre. There are some memories that stand out, though:

  • The biggest element that came out of that time period was Ghostlight. A quick, odd RPG I made about ghosts who live in an echo of the real world where their interaction with it is based on their emotions. Over time, emotions increase and wane.
  • I made a post showing a potential way to play games without a GM. The gist was to generate content on index cards as possible encounters and then to pull a few at a time and mash them up to tell short scenes and stories. While it was designed for GM-less play, it ended up matching some elements of Solo Play.
  • I had some non-RPG elements that included discussions of music (I do recall writing a rant about liking techno music and being irritated by people who kept asking me why I liked music with no lyrics) but do not recall how many sections that stuff had.

Over time, the non-RPG elements and elements about my daily life and stuff started taking over. Which is what effectively brought the project to a close. I was basically getting into blogging while still being in the mindset that websites needed purpose.

Other scant details drift to mind. I know I would toss in random coarse language and people would call me out for it. I think there was an old school chat room built into one of the pages?

Besides Ghostlight, there was at least one other RPG I posted to it, A.S.I.A. RPG. I have no archives of this but I’m guessing/think it stood for something like A Simple Interactive Adventure Roleplaying Game. Around this time and for a few years after, I was working on concepts like using short phrases and a system of wide | normal | narrow rankings so it might have used that. I think I wrote some stuff for FUDGE. I feel like I had some Call of Cthulhu / Beyond the Supernatural elements.

That is mostly guesswork.

I made a friends from it. I talked to other game designers. I met some people into the techno/edm scene who liked my discussions. It was mind-blowing for a person from the backwoods of lower alabama to suddenly be talking to people not only around the country but from other countries. It was nice.

My online username at the time was “dreamwyrm” and because of that I ended up getting a cameo of sorts in the webcomic Gaming Guardians and was friends with Graveyard Greg who wrote it. The Web Troll (artist) even made art that had my “Dream Wyrm” persona turned into a Buttonman.

For a country bumpkin to create a somewhat cringey 90s email address and a cringey 90s website, that was really cool. Heck, I still find that to be pretty damned cool.

The Death of Doug’s RPG Page and the start of wYrmhole Games

That above image is around 90% of what I know about the next part of this chapter. I grew unnecessarily frustrated with how much of the page had become a proto-blog and so took most of it offline (or at least delinked most of it). I wrote a short, rambling paragraph about how I was going to embark on a new design.

Just look at the stolen Michael Whelan artwork. Lord.

Also, while I had already started using “wyrmis” as an online name, it seems like “The Wyrm” and “WYRM” were frequent. Somewhere in here is where I came up with Wyrmis X. Simryw as an online name and sometimes started capitalizing only the Y: wYrmis. There was some joke about my name had a capital WHY. I’m a damned fool.

From that above screenshot, I am reminded of two elements that I had completely forgotten. First, I had had some discussion of videogames on the original site and wanted to expand that. We are entering the time period of the Playstation RPG explosion but were still close enough to the Super Nintendo days to still be reaping those benefits. For some dumb reason, I wanted to call this “Electronic Portals.” I don’t know if I ever did.

Second, I forgot that I had a period where I was pretty vocal about Christian roleplaying. A response of sort to the Satanic Panic and its continued presence in the mid- to late-90s in Lower Alabama. I don’t think anything really came of it. It has been a long time since I have identified as Christian.

The “Silver” there was another friend from my early college days: Lance.

After posting my, “Back soon, I promise, guys!,” I don’t think I ever returned. My protest about how my personal page had become too personal essentially just killed the whole project.

The other 10% I know, by the way, is that I had kept working on whatever the hell A.S.I.A. RPG was. I only know this because later on I had a post in later blog about moving version 2 to the new blog and making it version 3.

The mind truly boggles.

A Rough Timeline

A rough timeline of this area seems to be…

  • 1997: Doug’s RPG Page is started
    • 1998 (Summer): Ghostlight is added
  • 1998 – 1999: Doug’s RPG is changed to “Wyrm’s Play”
    • Most original pages were hidden but maybe not deleted
    • Split into three sub-pages, all RPG focused
      • wYrmhole Games: Essentially the OG page
      • Electronic Portals: Console and Computer Videogames
      • Circle of Paladins: Roleplaying as a Christian
  • 1999?: Rebranded back to just wYrmhole Games
    • Other elements dropped? No clue.

Next Chapter

Next time, assuming I write the next part, will focus on a massive reversal to the mindset that destroyed Doug’s RPG Page: I rebranded the project to “Doug’s Webpage of Doug.” I am only half joking.

Version 2 of My Simple Sub Cipher

Ok, less “version 2” and more like “version 0.7” but still, I can engage in a bit of version-inflation if I want.

With Edits #1 and #2, below, I am considering this done. Which means version 0.7, aka Version 2, has become Version 3, aka Version 1. It’s complicated.

In last night’s post about an simple inline substitution cipher to help obscure text so that I can avoid spoilers or keep text otherwise hidden until reader action takes place to confirm their intent, I had only the most basic pieces worked out. It was past my bedtime and I was sort of speed typing both the code and the post.

This morning I worked out a few more basic features:

  • I have built a very basic “Simple Inline Substitution Cipher” page to handle the creation of these materials. It is 100% free for you to use and honestly consider it all cc-0. It’s mediocre code for an extremely niche topic.
  • The cipher now should be able to pass through double- and single-quotes without breaking the HTML or Javascript.
  • Rather than paragraph tags, I am using span tags. This should help with adding stuff like single- to few-word elements inline with the rest of the text and no longer requires every instance to be a full paragraph of text.
  • Spans are giving a “click me” type title to help generate tool tips where supported.
  • Spans are given a class of “gentleSubCipher” to allow for CSS to better improve their usability.
  • Spans are now given a random five-character ID to immensely reduce the issue of multiple IDs matching and causing potential breakage.

It looks something like this:

CsrS rS E wESrI VHEveAV SsPbr4T Pjj QsV "D8PQVS" E4z 'Sr4TAV D8PQVS' E4z QsV PQsVf 4Vb VAVvV4QS QsEQ sEyV wVV4 EzzVz.

There are still quite a few limitations:

  • Just to clarify, it is not and will not be secure.
  • It still does not ignore HTML elements within that span. See EDIT #2, below.
  • It does not work with feed readers and I need to test how to make it work better with screen readers.
  • Accented characters are passed through but that still is not quite a problem.
  • Multiple posts with it might result in a problem where version shifts break previous posts when seen the front page, category page, etc.

For the latter, the idea might be to create unique scripts per post. I’ll have to give it some thought and testing. See EDIT #1 below, this is now fixed.

The next version will be building in some logic for ignoring disabling HTML elements (Edit #2). That should be a bit trivial for the types of things I need to ignore, but we’ll have to see.

EDIT 1: I went ahead and added a “slug” function to the document so that each post will have a likely unique bit of script so that later updates should not break previous ones. That’s now built into the page. If nothing is added to the “slug” field it just outputs to the default name which can be fine for pages that will not have other versions of the script shown. It also creates a slug="SLUGNAME" as part of the span tag just in case I ever need to go back and redo something so I have all the pieces in place.

EDIT 2: After some thought, realized that any kind of code that tries even in principle to load/render rewritten HTML is a bad thing. Rather than ignoring those elements that I might type, the script essentially just breaks them into unrendered HTML so folks can get the gist without my substitution cipher being able to inject anything, even accidentally. Tests showed that a whoopsy could lead to weird stuff happening on the page so this helps to protect it in general.

For example:

gG g bUQM KoiMbumZN Ymbu J 2mb oG <Mi>MiQuJKmK</Mi> mb mK 2MbbMS GoS iM bo dKM *JKbMSmKvK* 2MXJdKM mb XJdKMK qMKK XoZGdKmoZ. g SMJqqU Lod2b g YodqL iJvM JZUbumZN J <J uSMG="ubbQK://YYY.YUSimK.Xoi">qmZv bo iU oqL uoiMQJNM</J> 2db mG g Lo GoS KoiM SMJKoZ GoSNMb JZL bUQM bumK, mb uJK J YJU oG GJmqmZN odb oG buM mKKdM.

Inline Substitution Ciphers to Play with Semi-Hidden Text

jLh 903mO moh0 m3 S6 SnE 0so Vhshn0Sh 3SnmsV3 6Y ShFS SL0S 0nh 903mO0MME ‘Lmoohs ms QM0ms 3mSh’ (C2r!) 9tS 0M36 Vhshn0MME nhO6Vsmd09Mh 03 LtU0s-BnmSShs ShFS 9E nhS0msmsV UtOL 6Y SLh QtsOSt0Sm6s, BLmSh3Q0Oh, 0so 6SLhn hMhUhsS3. jLm3 B6tMo hs09Mh Uh, Y6n ms3S0sOh, S6 BnmSh ShFS SL0S O6sS0msho 3Q6mMhn3 6n L0o 6SLhn 03QhOS3 s6S msShsoho S6 9h nh0o 9E jLh 7MV6nmSLU BLmMh 3tnn6tsoho 9E ShFS SL0S m3 QhnYhOSME LtU0s- 0so U0OLmsh-nh0o09Mh. a O6tMo 30E ‘J6t = Q66 Q66 Lh0o’ BmSL6tS SL0S 9hmsV msohFho. uE NhhQmsV mS 0 36UhBL0S 3mUQMh 3t93SmStSm6s OEQLhn, SLm3 Uh0s3 SL0S mS h03E Y6n Qh6QMh S6 Sn0s3M0Sh h1hs BmSL6tS 0sE 3OnmQS 0so 0MM6B3 mS S6 9h nhM0Sm1hME tso6sh 0S 0 M0Shn o0Sh.


If you click the text above, it should “solve out” to a line of text that reads:

The basic idea is to try and generate strings of text that are basically ‘hidden in plain site’ (PUN!) but also generally recognizable as human-written text by retaining much of the punctuation, whitespace, and other elements. This would enable me, for instance, to write text that contained spoilers or had other aspects not intended to be read by The Algorithm while surrounded by text that is perfectly human- and machine-readable. I could say ‘You = poo poo head’ without that being indexed. By keeping it a somewhat simple substitution cypher, this means that it easy for people to translate even without any script and allows it to be relatively undone at a later date.

And then if you click it again (without refreshing the page), it should do essentially nothing. This is my basic first pass on coming up with an idea I have had for Dickens of a Blog since way back. I am unsure when I first posited it but likely around 2006 or 2007.

The idea was simple: set aside some portion of the text in an otherwise open-to-read blog post {e.g., spoilers, info semi-hidden from scrapers, bits that otherwise might be triggers} through a simple enough cipher or baseline encryption that solving it would not become hostile to Doug’s happiness if keys/etc were lost.

The Code Behind It

Version 1 is above. What happens if I have a fairly simple Python code:

from random import sample

def scramble_AlphaNum(oldAlphaNum):
    return ''.join(sample(oldAlphaNum, len(oldAlphaNum)))

alphaNum = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789"
newAlphaNum = scramble_AlphaNum(alphaNum)

text = "The basic idea is to try and generate strings of text that are basically 'hidden in plain site' (PUN!) but also generally recognizable as human-written text by retaining much of the punctuation, whitespace, and other elements. This would enable me, for instance, to write text that contained spoilers or had other aspects not intended to be read by The Algorithm while surrounded by text that is perfectly human- and machine-readable. I could say 'You = poo poo head' without that being indexed. By keeping it a somewhat simple substitution cypher, this means that it easy for people to translate even without any script and allows it to be relatively undone at a later date."
txet = ""
paraName = "demo01"

for t in text:
    try:
        txet = txet + newAlphaNum[alphaNum.index(t)]
    except:
        txet = txet + t
        
output = """ <p id=\"""" + paraName + """\" onclick="gentleScramble('""" + newAlphaNum + """', '""" + paraName + """'); this.onclick=null;">""" + txet + """</p>"""
        
print(output)

Right now, I have to manually edit the file to have the paragraph, div, or span ID and then the contents. It’s fairly trivial to more generalize this. Running that, it spits out a paragraph tag that looks like:

<p id="demo01" onclick="gentleScramble('70u9wOboihzYgVXLamGHINxMAUrsk6CQfcpnv3jS2tR1DB4FJEZdeyWqP8Tl5K', 'demo01'); this.onclick=null;">jLh 903mO moh0 m3 S6 SnE 0so Vhshn0Sh 3SnmsV3 6Y ShFS SL0S 0nh 903mO0MME 'Lmoohs ms QM0ms 3mSh' (C2r!) 9tS 0M36 Vhshn0MME nhO6Vsmd09Mh 03 LtU0s-BnmSShs ShFS 9E nhS0msmsV UtOL 6Y SLh QtsOSt0Sm6s, BLmSh3Q0Oh, 0so 6SLhn hMhUhsS3. jLm3 B6tMo hs09Mh Uh, Y6n ms3S0sOh, S6 BnmSh ShFS SL0S O6sS0msho 3Q6mMhn3 6n L0o 6SLhn 03QhOS3 s6S msShsoho S6 9h nh0o 9E jLh 7MV6nmSLU BLmMh 3tnn6tsoho 9E ShFS SL0S m3 QhnYhOSME LtU0s- 0so U0OLmsh-nh0o09Mh. a O6tMo 30E 'J6t = Q66 Q66 Lh0o' BmSL6tS SL0S 9hmsV msohFho. uE NhhQmsV mS 0 36UhBL0S 3mUQMh 3t93SmStSm6s OEQLhn, SLm3 Uh0s3 SL0S mS h03E Y6n Qh6QMh S6 Sn0s3M0Sh h1hs BmSL6tS 0sE 3OnmQS 0so 0MM6B3 mS S6 9h nhM0Sm1hME tso6sh 0S 0 M0Shn o0Sh.</p>

I add that to my document via Custom HTML. The first string is the randomized a-z/A-Z/0-9 alphanumeric characters of the common American English alphabet (etc). It is randomized per running of the script.

Then at the bottom of the page, I insert another Custom HTML section with this Javascript:

<script>
function gentleScramble(newAlpha,para) {
	const AlphaNum = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789";
	const newAlphaNum = newAlpha;
	
	let victim = document.getElementById(para).textContent;
	let solution = "";
		
	for (let v = 0; v < victim.length; v++) {
		foundIt = newAlphaNum.indexOf(victim[v]);
		if (foundIt != -1) {
			solution = solution + AlphaNum[foundIt];
		} else {
			solution = solution + victim[v];
		}
	}
		
	document.getElementById(para).textContent=solution;
}
</script>	

That text the paragraph and the substitution cipher and runs it the first click before passing the “this.onclick=null” to stop it from glitching out if a reader spam clicks it.

As it runs through it checks for characters in the defined “alphaNum” and ignores any that are not included. Those that are included it just re-subs them back to their original.

Voila.

Before you might say that this is fairly insecure, that is kind of the point. Is not trying to deeply encode the text, it is more just trying to play at gently hiding the text in a somewhat breakable pattern.

Current Issues

The first issue is that it is pretty hands on to generate the content, which is not 100% a problem for me but if I have several of these elements it will start to wear.

The solution I’m going to do is build a quick tool that allows for different element types {div, p, span} and a bit more of a GUI, probably through just a quick HTML page with text areas and buttons.

The second issue is that it only accepts characters in the a-z/A-Z/0-9 ranges. If I am typing in French and other languages, characters with diacritical marks will be ignored. This means that “ä” will show up as “ä” in the enciphered text. It’s not a deal breaker since the bulk of the text will be gently scrambled, but it can lead to potential weirdness.

The solution to this could be either to scan the contents and generate a shortened “alphaNum” that only includes characters in it while ignoring all the punctuation OR creating a new diaAlphaNum that includes a separate list of diacritically marked text.

I’m not sure which I prefer. I think I prefer to not worry about that so much.

The final issue at a glance is that any HTML elements inside that element {em, a, strong} would likewise be translated which at best would simply glitch them and at worse could in theory create HTML that is broken if it happens to stumble upon a different element than intended.

My solution to this problem is just to not do any of that.

There is a slight non-issue that feed readers and such will likely break in trying to help, but that’s a bit ok for the moment. Not for driving clicks or any such thing, just in that earlier attempts to build CSS/Javascript spoiler type solutions sometimes resulted in said spoilers being clearly visible to feed readers. It does possibly interfere with screen readers and that is a much bigger problem, but I’ll have to test it.

Possibilities for Expansion

My possible end goal for this would include this as a checklist:

  • Perhaps using a Vigenère cipher instead of a simple substitution one [because I prefer those],
  • Making it at least “smart” enough to ignore interior HTML elements, and
  • Generating a bit of styling that makes it more obvious what the reader is supposed to do, possibly including a failsafe type option if the reader has all javascript blocked, etc.

Visiting the Museum of Illusions

I’m going to be absolutely real: I suck as a tourist.

In this context, I am not a tourist right now but I am a currently a long-term visitor in a strange land — and I feel like Belgium counts as a strange, if delightful, land — who at least generally should be engaging in a bit in the culture.

Which I totally do. I talk to magpies and crows and hang out with cats while just enjoying nature and some old streets.

I finally decided to correct my first statement with a visit to Brussels’ Museum of Illusions with Barbara and Kaz. It is a smaller collection of full-sized illusions, mirror tricks, and puzzles. Kind of place you could spend an hour or two. It is quite nice and absolutely surrounded by all kinds of shops and destinations if you wanted to make a day of it.

If nothing else, take these two points to heart:

  • It is well worth a visit and has some cool trinkets in its gift shop.
  • My photo skills inside sucked more normal so I do not have a lot of photos to show it off, alas.

The Museum at a Glance

Once you get up the escalator/elevator there is a bit of confusion about where to go because it is a highly visual place. You come up about 1/3 the way into the exhibits. My natural tendency to curve right almost lead me to enter into the place without paying. Barbara had been there before — as had Kaz, who was joining us very slightly later — and helped point out the desk to pay for entry. I would have spotted it eventually, no doubt. It is not hidden, just also not super obvious compared to some of the kooky fun on display.

Once paid — €17.50 for adults, €14.50 for children of Barbara’s age — you then have the option to get a lock and key to put your stuff into a locker, which nice, and the guy behind the counter double checked that we did not have balance issues — I am a fall risk, after all — or epilepsy — I am just light sensitive enough that one of the attractions (The Vortex) was pushing it for me.

There a few dozen features. They are numbered but the precise count escapes my memory. Maybe half of those are fairly quick images or wall-mounted illusions. The kind of thing where one line looks longer than another. They did a good job of curating some of the more interesting ones and several have been redesigned to have some interactive elements.

Then there are several larger, more interactive pieces. The aforementioned Vortex is the larger carnival classic of walking through a dark, swirling tunnel of lights. That was my one mistake. I should probably have skipped it.

Besides that you have rooms with angled floors and carefully designed wallpaper so that a person on one side looks a lot larger than the other or looks like they are leaning.

My favorites tended to be the pair of rooms playing with lights and the handful of exhibits based on mirrors. The above image show the top of my head is a fun little item where angled mirrors allow you to see yourself and the room from multiple angles. That’s a single photo showing more or less every angle of myself.

There’s an “infinite room” where you can throw your own rave party with hundreds of yourselves. An upside down room where you can your best “clinging to the ceiling.” A hatch that looks like an infinite spot into darkness where you can take “falling” photos.

Then there are a trio of large scale puzzles. A pair of several kaleidoscopes that make for some trippy pictures. A forced perspective chair.

In general, the place is pretty heavy with photo opportunities and your enjoyment will be based on (a) how many fun photos and videos you want take; and (b) how carefully you pay attention to the balance-or-epilepsy warnings. Those wanting a more hands-on variation of learning about light and optics tricks can get some good learning done.

The staff and the other attendees were all perfectly chill and it was a heavily positive experience. It is not necessarily a regular outing type of place but I imagine we’ll go back a few times while in the country.

EU to (possibly) Enforce Stricter Naming on Vegan Meat Substitutes

I write the following with two perhaps important caveats:

  1. I am an American citizen currently under the auspices of the European Union and enjoying the delightful country of Belgium for work- and family-related reasons and therefore mostly have a stake in this “fight” in that, for a period of a couple of years, I will be eating Belgian (et al) food.
  2. I consume a plant-based diet (though lean more towards beans and tofu than pre-processed “meat substitutes”).

Stricter Naming for “Meat-Alternatives” Vegan Products

The European Union Parliament has voted to have stricter naming on vegan meat substitutes (BBC). Other articles are covering it:

And Arjen Lubach gives a nice rant about it which is actually where I first heard about it because, once again, The Algorithm and I have not yet come to terms. His video is in Dutch with English subtitles available. I appreciate his sass.

Finding Context and an Actual List of Terms

Perhaps the best overall context I have seen is in Politico.eu’s “EU lawmakers back ‘veggie burger’ ban”:

The ban, proposed by French center-right lawmaker Céline Imart, was buried in a broader reform of EU farming rules designed to tweak how farmers sign contracts with buyers and adjust a raft of other technical provisions. It was one of more than 100 amendments MEPs decided on at their sitting in Strasbourg.

When the numbers flashed up on the screen — 355 in favor, 247 against and 30 abstentions — Imart looked visibly relieved and drew a round of applause from her colleagues. The overall reform package, including the ban, was later adopted by a comfortable margin.

Following the links in that article, the actual terminology is explained. Adding to a list of suggested “reserved for meat products only” terms introduced in the utter mouthful of the Annex 1 (PDF) to, deep breath, the “Proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL amending Regulation (EU) No 1308/2013 as regards the school fruit, vegetables and milk scheme (‘EU school scheme’), sectoral interventions, the creation of a protein sector, requirements for hemp, the possibility for marketing standards for cheese, protein crops and meat, application of additional import duties, rules on the availability of supplies in time of emergencies and severe crisis and securities.” On that document, pages 3 & 4 have the terms including the usual suspects of beef, chicken, pork, and rump.

Amendment 113 (PDF) is what is triggering the above articles and discussions. To the above list, it adds:

  • Steak
  • Escalope
  • Sausage
  • Burger
  • Hamburger
  • Egg yolk
  • Egg white

In the next part, it refers to poultry-meat (note: hyphenation is mine to stop spell checker from shouting at me) as a whole other broad category (via reference to Regulation (EU) No 543/2008) though most of that seems primarily contained within the aforementioned/linked proposal.

Perhaps buried a bit in the coverage is part of Amendment 113, prior to enumerating the list, states: “These names include, for example.” In other words, the above list should not be considered total or all inclusive. It essentially opens up the doors to the argument that any name understood by common-use language that might be associated with meat-adjacent production could be argued to be included by proxy. Jerky, pot pies, and maybe even certain soups and stews could be argued under such rulings.

A semi-frequent, perhaps semi-serious, debate back in the States is whether or not chili must contain meat.

I also think of terms like “sushi” or “barbecue” and how these meat-centric classes of food are perfectly functional without any animal products.

Keep in mind that the products being discussed are generally extremely well labeled. For instance, here is a fairly typical (in Belgium, other countries might vary greatly) vegan burger (via Delhaize’s website):

It is labeled as vegan, soy-based (twice), and a source of fiber (which is distinctly untrue of meat based burgers). It is also labeled as Garden Gourmet though I admit that you could make the argument that “garden” does not necessarily preclude meat.

Back in the States, there are dog treats that have less clear labels. Shout out to this one dog-treat eating redditor.

Why Such Laws at Least Slightly Bother Me (and not exactly the obvious reason)

Let me be clear, I 100% support farmers and I 100% support clear labeling. Consumers deserve options. Farmers deserve recognition as the backbone of society. Society exists as a concept because farmers make the gathering of people into cities and countries possible. It is hard damned work and they rarely get enough credit for the things they do.

Seriously, thank you.

My first issue with any such law, be it here in Europe or elsewhere, is that the conversation almost always turns quickly to consumer confusion. I feel a defined need of consumer harm should be demonstrated before the consumer becomes the main focus of many arguments. I am not sure if there is any evidence that consumers are actually confused, or harmed, by the label. If anything, such terminology helps consumers to find new products and have greater overall choice.

In the vegan space, sometimes the problem is more or less the opposite. Outside of a few restaurants that bury their vegan-lede, meat-eating customers tend to have better labeling than not. On the other hand, if you find a “garden burger” you sometimes have no idea if it is vegan, vegetarian, or just a label meaning “meat-based burger with fun root vegetables” without clarifications. I have ordered plenty of greens and beans and found out that the entire dish is just packed with bacon or ham or meat-broth. Things like kimchi might have their fish sauce component overlooked and served to vega*n customers. One Huntsville restaurant I used to love had hashbrown casserole that made with cream of chicken soup but not labeled as such.

While there is evidence of harm to traditional meat farmers, and therefore an argument fully based on the production side has merit, I am not even sure that such a ban will actually do much to protect them. A similar EU ban on the use of “milk” in reference to plant-based dairy alternatives has not slowed an increasing adoption of plant-based alternatives to replace dairy products. In fact, that’s one of my favorite things about Belgium, there’s a lot of cool soy drink to be had.

Instead, the primary benefit seems to be a chilling effect and re-labeling cost associated to producers of vegan and vegetarian products. “Minced soy patties” instead of veggie burgers or, you know…gehakte soja pasteitjes. Will that really make a difference? While you eat with your mouth and your eyes/nose, etc, the name of food only partially factors into your long term enjoyment of it. It’s not like “burger” or “sausage” or “hot dog” are particularly appetizing words in and of themselves.

I’m just not exactly sure it will actually deter sales. It will require labels, over time, to be adjusted, though, and that costs. And it reframes discussions of vegan diets into more niche terminology.

The Issue of De-meaty-fying (and Mystifying) Meat

My second issue comes out of the general class of words being targeted.

“Burger” and “sausage” terminologies are adopted by vegans and vegetarians because the words’ histories are in a huge class of products only really classified largely by rough shape and product standards.

Amendment 113 says it for me (emphasis mine):

(2) ‘Meat preparations’ means fresh meat, including meat that has been reduced to fragments, which has had foodstuffs, seasonings or additives added to it

(3) ‘Meat products’ means processed products resulting from the processing of meat or from the further processing of such processed products, so that the cut surface shows that the product no longer has the characteristics of fresh meat.

Burger is practically a neologism. Even tracing the roots as a sandwich back to the late 19th century, the general rise of minced meat being flavored with vegan additives like salt, pepper, onions, and other spices and and then shaped into a scone before being served with a light garden salad between two slices of bread is an absolute infant by historical food standards. The Oxford English Dictionary lists “burger” as being first seen in 1939. While I’m sure that fried biscuits of mince-meat are older in technology, we are not talking a particular class of bread-like meat shapes. We are talking about a specific word.

And while sausage is a much older technology (some of which are essentially “burgers,” now), one in which minced meat is combined with more vegan ingredients to give it a better flavor and then shaped roughly like root vegetables or, you know, other things, the sheer variety of presumably-acceptable-by-Amendment-113 recipes is mind boggling.

Taking the piss a bit, I asked ChatGPT to give me a rough count of sausages not including vega* options: it put the number around 1200. Then said that Germany had 1500+ of those 1200, so…you know, much like prepared-meat-adjacent-food, it is best taken with a grain of salt.

Even if you balk at using GenAI for this, there is definitely a cottage industry of books about a variety of sausage makings. And that’s just the ones currently available for sell by Amazon’s USA shop. Burgers are likewise a complexity.

And many of those recipes involve non-meat additives ranging from small amounts to not quite small amounts at all. It is the sorites paradox. When does the pile of sand become a not-pile? How much salt and pepper and vegetable matter in ground beef + beef-fat is too much?

The end result is that there are entire classes of food, let’s add in “nuggets” and “lunch slices” and “filets,” that are popular despite, or possibly because, their removal from the central meat-ness of their ingredients.

I’m more open to phrases like “egg yolk,” “bacon,” and “steak” being recognized. Of course, the latter two are also seeing a general fracturing from a particular food into a wide class of foods.

I mean, I might eat a plant-based diet but even when I was an omnivore, I would rarely wish turkey bacon on anyone.

Just joking, I’m not going to yuck your yum.

I am purposefully going to avoid bringing up a huge variety of food which encroaches upon the same aspect of a naming schema (e.g., pindakaas [peanut cheese]) but are given a pass because they are not pitched as alternatives.

Of course, peanut butter is an awesome source of flavorful protein, but that’s for another day.

To Counter My Own Argument

The big counter to my own argument is that I actually like moving away from meat-derived names in general. Words like patties and nuggets are general enough, but other phrases (e.g., beef-like, chick’n, veggiefish) sometimes pitch the vegan diet as a strange second place to meat-centric diets.

Let me be really clear about something: despite the constant insistence that a plant-based and plant-forward diet is somehow being centered in self-denial and self-limitation, my chosen diet is extremely varied to the point that adding back in meat and dairy (the latter to which I have a strong physical reaction) would be nothing more an opportunity cost vs cheaper, more ecologically friend, more sustainable, and more varied foods. To say it louder for the people in the back:

Despite the constant insistence that a plant-based and plant-forward diet is somehow being centered in self-denial and self-limitation, my chosen diet is extremely varied to the point that adding back in meat and dairy (the latter to which I have a strong physical reaction) would be nothing more an opportunity cost vs cheaper, more ecologically friend, more sustainable, and more varied foods.

While you do cut out some foods, the variety of flavors, tastes, and types of foods is far greater on the plant side of thing unless you perhaps include a wide variety of non-farmed animal meats, more exotic fish meats, and insect protein.

Even then, a lot of the cores of cooking, such a spices, are notoriously vegan. Minus the use of animal fats, meat, and dairy itself.

Non-meat/non-dairy alternatives are rooted in technology centuries or millennia old. Tofu and Sojadrink are both older than many countries in Europe (and way older than America). Wheat gluten goes back for nearly 1500 years. Beans cultivated for food predate stuff like ceramics. Even something as “niche” as quinoa has been consumed since before the height of Ancient Greece.

While the line between “non-beef plant-based hamburger patty” and “centuries old tofu recipe” is wide, my point is merely that such inventions are constantly being treated as a newfangled idea when they, in their purest form, predate many modern food practices. Human society has enjoyed plant based protein long before protein was being studied as a concept.

And I admit I would be absolutely irritated if words like “tofu” or “seitan” were taken out of context and turned into a meat-bearing product (setting aside that plenty of tofu and wheat gluten recipes do involve meat, traditionally).

Maybe this is a good time to come up with a new terminology and recommit to the “Vegan 1.0” of increased food variety, whole foods, sustainable practices, and flavors that are not so beholden to a meat-centric view that is so hardwired that it, checks notes, requires laws to protect it.

Conclusion

I will obviously abide by whatever decision comes out of this, I am just not all that supportive of re-limiting certain words when your average consumer is more than capable of coming to their own informed decision.

The history of food is vast, complex, and as essential to culture as language itself. Using language to reshape that in a prescriptivist manner actually interferes with one of the great joys of human expression: enjoying food, updating old recipes into new delights, responding to cultural change, and sharing all this with others.

All that being said, I will reiterate that I do very much support farmers and their sacrifice. I just also support consumers and their sacrifice.

PS: Shout Out to Dan

My roommate in 2002, Dan, complained about some world-building I was doing in a roleplaying game I was writing where I said that by the late 2010s and early 2020s, a “war of words and their meaning” would be the frontline of the reality wars: where different people fractured into world views framed by their languages. He said such terms as I was using was overblown and never going to happen.

To Dan, I say: neener neener. I win.

Credits

The photo of soybeans: Photo by Daniela Paola Alchapar on Unsplash.

Other photos/videos/etc are generally linked or include their own attribution.

Page 3 of 4

Powered by WordPress & Theme by Anders Norén