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

Category: Creativity Page 1 of 2

[Photos] (double) Rainbow Over De Abdij van Grimbergen

While I was writing the previous post (Foggy Night in Grimbergen), I looked out the window and saw a double rainbow to the west. Feeling I only had a few seconds to make it count, I headed outside and scooted over until I found the angle for which I was looking. To capture a rainbow over De Abdij van Grimbergen.

Unfortunately, my phone does not do well with the zoom and I still haven’t unpacked my better camera. Unzoomed, it looks more like…

Because it was actually a double rainbow.

Neat-o. Even if my photo quality sucks, it’s still a fun shot.

Right after I took the shot I had to scoot back up the road and inside because we were getting another Devil’s Fair. Then it just turned into outright rain for several minutes.

Foggy Night in Grimbergen

This is actually from a couple of nights ago. When I took the photos, I was shutting down for the night [basically]. Then, yesterday, I spent a fair chunk of the day wrapping up the Dragon Quest 1-2 HD-2D Remake [which is a crazy title to type out]. So while these lose some immediacy, and it is currently kind of sunny but with the threat of rain, I still wanted to share them.

This past Saturday night [2025-11-15, ~20:00] a heavy fog rolled into Grimbergen. We have had a few foggy days since moving here, a couple of foggy nights, but this was by far the strongest.

The lights outside our house were pretty clear, but also clearly fog wrapped. The intensity, though, was apparent in the way that we could see no lights [well, one made it through] across the field. There’s a street across the way and we can normally see the houses fairly clearly, including their lights. And there is the abbey (Abdij van Grimbergen) which can be spotted from a distance and is brightly lit. It was also lost into the dark. This latter bit was probably the most unnerving.

After noticing it, the fog kept building up over the next hour or so and in that way that you can hear shouts and barks and and a few other sharp noises, only those tended to make it out of the dark. It was a wonderfully spooky effect. One slightly lost as the lights of Vilvoorde caused the sky to redden noticeably to the east, but glowing red fog on one side is a sight in itself.

Around 22:00 or so, it had dissipated enough that you could see more nearby lights. The next day it was back to being rainy with just smaller patches of fog.

Photo: Absolute Unit of a Slug

After this morning’s rainy walk, there was a lot of waiting out the rain to finish. Got in my work out. Showered. Ate “second breakfast” [read: a banana]. Drank tea. Did some online errands.

Finally, got a slight break before what looks like round 4 or 5 hits, and so went outside to pick up a couple of things that had gotten blown around a bit like the bucket we use to our restafval1 and just checking the outside plants. Remember, one of the previous storms took out our granny statue.

Anyhow, while knocking water out of buckets and such, I saw this absolute unit of a slug:

I would guess around 10-12cm. Not the chubbiest I have seen but still an impressive chad.

  1. Translation: residual waste. In Grimbergen, we divide our waste up into various types. PMD [Plastic, Metal, Drink Cartons]; P&K [Paper and Paper Cartons]; GFT & SH [Food Waste and Clippings (groenteafval, fruitafval, tuinafval, en snoeihout, to explain the acronym); Glass [not including beer/beverage bottles, which we return to stores]; Bulky items [grofvuil]; and Small Hazardous Items [klein gevaarlijk afval]. Restafval is essentially everything else. ↩︎

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.

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.

A Day in the Life: #17665

While I would call the current sky approaching noon as “Mostly Just Gray,” there have been a few moments where a color apparently called “blue” and an object that Wikipedia tells me is “the sun” have been visible. Such wonders!

It is actually supposed to be sunny and clear in Grimbergen this weekend, but also the temperature is going to drop again. Win some. Lose some.

One Hour Workout Results

See what it looks like when I use a flash to illuminate the darkness? At least it doesn’t look like I’m working out in the unlit part of the backrooms this time.

Went ahead after yesterday’s post and decided to push it up to a full hour and a bit more speed while retaining the resistance. Final result was around 28km. At an average of speed of…well, I’ll let you math nerds solve that.

I’m not 100% I can keep it up on a daily basis because it definitely flexes the leg a lot but it is also not that difficult. I was more concerned about having to pee starting around the 40 minute mark and just how numb my ass got sitting on the metal seat that long. Tomorrow’s a different day but if I am not overly sore or having trouble with mobility after today I might give it a try.

Dickens of a Blog Reclamation Continues Apace

I have been working on the tech behind fixing up as much of the older Dickens of a Blog as best as I can. The Poetry section is “working complete” which is to say that I have cleared out around half the poems and focused on highlighting the ones I really like, and gotten all of those updated, but there are no doubt others that can be linked.

I’ve been using a mix of WinSCP and Notepad++ to do a lot of heavy lifting. I can copy and paste chunks of HTML and CSS into the backend and then do some document wide find+replace actions to reaching a decently stable point.

I finished up a rewrite of “8 Space” this morning and for now I think I’ll take mostly a break for the day. Give myself something to look at that isn’t just more HTML and terminals.

Having that focus on a single aspect for a couple of days has helped me to figure out the mechanics a lot and I hope I can do a lot more in a shorter time in the future. And if I have to go and do more fixes in the future, the layout should be stabilized enough that I have a better chance of just automating it.

“Mail Bag” Maybe Incoming

I have a small stack of deliveries I’ve gotten recently and wanted to give a shout out to some of them but I need to figure out exactly how I want to do that. I think I’ll divide them up and give myself space to go through more of them one at a time. Or just skip it. I don’t know.

I really need to shower. I still am covered in an hour’s worth of sweat.

Also, look at my hair just give up on me. That’s one way to get out of having curly hair.

The Reclamation of Dickens of a Blog

In the first post on this blog, I talked about the updates to the “old” wyrmis.com and how I consider this to be a continuation — eight-years later — of the initial project which that blog & website represented. Which was in, in principle, a continuation of various blogs and websites that I had been working on for years.

BY THE WAY: I plan on having a part two to this post, more or less, more of a trip down memory lane type thing. I have screenshots and everything. I’ll come back and link it when I post it. If I post it, I suppose, but I think I will. I’m old enough now that reminiscing is nice.

Here is what the old site looked like around the time it was first launched (I think this screenshot would be more in the 2007-era after it had already gone through some evolution):

Then, around the time it was abandoned (2016), it looked more like:

In that decade in between, while the general color schemes and rough layout had remained the same, the back-end had grown a lot more complicated — involving multiple custom scripts in Python and PHP and a more complicated file structure — while also growing more out of date with modern web practises.

To put it in perspective, while that version was well after the general “Blogging” trend had started, it was an outgrowth of a website that had actually started back in 1997. One of its core issues was that it was dragging along a lot of content and structure as it became less and less a 90’s style website and more a 2000’s era blog.

If you note, the first image shows the “journal” section was off-site — first on Livejournal and latter on Blogger — because it wasn’t until later an adequate but generally poor blogging “software” was integrated by myself into the existing page. By “integrated,” I mean that I coded it and then spent entirely too long making it act like the rest of the website.

If there is one lesson you take from this: Make your tools work for you, do not work for your tools. I violated that principle. It shows.

The Problem(s) As It Stands

There are a few problems with what to do with the old site. The main ones to be:

  • The HTML, CSS, PHP, Python, Images and essentially all the rest are a hodge-podge of 1997-2017. Twenty years of various web eras.
    • Even though the bulk of the site was at least partially updated and badly polished throughout the 2010s, enough issues remain that made it nearly impossible to edit as-is into anything truly fitting a post-2010 website.
    • In fact, some of the multitudinous layers of bandages actually hurt the repair because different eras of pages have different enough code that anything but a hand-coded fix is likely to break other portions.
  • A lot of the content would only be saved for purely archival purposes (we’ll dub this The Librarian Principle). Links are likely broken and fixing them would potentially require longer than any value would be added for anyone. Timely content is no longer near timely. Trends and discussions are based on their era which is not that far ago but over a decade.
  • The contrast of The Librarian Principle is The Embarrassment Principle. Past-Doug was a weird boy. Some of the things typed up because I thought it was funny at the time are decidedly not. A few of the points for which I argue vehemently are no longer anything like a stance I would take. By the time we get to the wyrmis.com-era, that is less true, but…man. I think I might make a third part for this. One where I lecture myself. It’s not quite suited to going into any more for this post.

Is It Worth Solving?

In a word…

I don’t really know. Like I said, I just volunteer here. At least some of it seems worthy. A few bits. Possibly even the majority, really.

I need to write a script that takes all the pages on the site and then just randomly picks five of them to read. See if the Librarian beats out the Embarrassed via dice roll.

The truest answer I can make at this time is that the best solution forward is to “fix” the big pieces and then figure out which of the smaller individual pieces to retain.

It feels dishonest to delete all the portions with which I now disagree or dislike, so I’ll work on something like a balance. A triage. Some will get instantly deleted if they simply do not fit (“fit” is doing some heavy lifting, take it as you will), are too time-locked to be worth saving, or any other heavy complaint I might have. Some will get instantly saved and enshrined into place as a part of my decades online. Some will get updated and possibly ported over here.

I think the lines I’ll draw in the sand is that stuff that is good enough to stay as is will stay where it is (Type A), stuff that could be better might get brought over to this blog and updated (Type B), and stuff that I don’t feel like saving will either join with Type A with minimal fixing or simply disappear. This means the old site/blog will have a mix of highs and lows with the middle joining my new writings.

A hint towards verisimilitude actually masking a large scale “reclamation” project.

The Mechanics of It All

Going back up The Problem(s) As It Stands, the first bullet point and the sub-bullets are the meat of the mechanical issues. There are two variations of solution:

  1. Develop a new schema and then port the old bits into the new bits.
  2. Strip the old schema off and just retain the core bits.

I am currently opting for #3: a bit of both. The new schema is largely just a minimal CSS and jQuery working frame that delivers the text in a readable — both human-readable and machine-readable — manner (albeit fairly bland) but otherwise ignores much of the intricacies of what came before. Headers {e.g., H1, H2} and body content {e.g., P, LI} items will be mostly HTML-standard with a few variations.

In practical terms, this means I am:

  1. Taking the old page (currently one at a time)
  2. Replacing the HEAD content with a newer, improved version.
  3. Deleting all the old menu, footer, counter, and similar code not in the main body.
  4. Replacing the title/banner portion with a simplified version.
  5. Adding in new DIVs that act as placeholder for repeating content {e.g., menus, site-wide idents} and then using jQuery to handle that.
  6. Generally going through the body and making sure things mostly work. Deleting a few portions that no longer fit the criteria above.
  7. Uploading that to the site.
  8. In some cases, adding redirects to “close” a portion of the site or to make up for things that will now be missing.
  9. Eventually, going through and deleting the pages that neither fit into Types A or Type B.

I have worked out the stuff to get the new-schema pages and the site as a whole into HTTPs. And to be more responsive. In theory, I can work on a script that will do #2, #3, and #5 for me though I’ll likely have to do the rest by hand.

I also will be adding this post as at least a temporary link to show up near the bottom to explain to folks why things are happening. Ironically, this will only show up on pages I have partially fixed but so it goes.

Why “Reclamation”?

Just to wrap this up: why am I calling it a reclamation?

It just feels right as a term. There were years of myself in that website and blog. Lots of memories. Lots of creative output. In theory it could stay as is — online or just on my personal storage devices — but I like the idea of retaining some of it. More than that. Making it usable, again. Giving credit to past-Doug where credit is due. Also holding my past-self to a higher standard.

I am me because of his idiocy. I just wish someone had fussed at him like I am about to fuss at myself.

There is also a complicated side-aspect that some of those posts have been taken a bit out of context or been copied over and all sorts of stuff that can happen to websites across decades. By cleaning it up and improving its general SEO-ness, it helps to establish it more as a part of its own record.

What Kind of Time-line Are We Looking At?

As for the question of how long will this take? I have only one answer…

Storm Amy and a Photo: Headless Granny

Turns out that all that “bluster” I was talking about yesterday was Storm Amy. Which tracks in retrospect. We were mostly lucky. It hit some areas a lot harder than it hit us.

I feel like I should have been aware of that but I have not yet trained The Algorithm™ to actually tell me important news for the area. Instead, I get opinion pieces about rowdy youth on e-scooters. I’m going to go and find some actual local news sources and stop trusting the modern equivalent of drunken oracles.

Shortly after I took the photos of the leaves, another round of wind and rain hit — including some sleet — and this time the wind was strong enough that it knocked over our ceramic statue of “Granny.”

A neighbor back in Huntsville had gifted it to us because we have a statue of a creepy doll and I think she thought we liked such front garden kitsch. Which, in her defense, we kind of do.

Alas, Grandpa [not pictured] is a widower now.

Page 1 of 2

Powered by WordPress & Theme by Anders Norén