2025 March Retrospective
Eddie Barzoon, Eddie Barzoon. Ha! I nursed him through two divorces, a cocaine rehab, and a …. Oops, if you could unread all that, and forget about it ever happened, I’d really appreciate it. Cool, thanks!
The problem with writing up last month’s retrospective six days into the current month is that things start to blur into each other; one has to delay talking about certain things until, well, until the end of the month.
I left a tiny clue or spoiler if you will, somewhere in this post.
DOGE
I am going to break my sacred rule of never broaching any subject that pertains to sex, religion or politics in any shape or form on this very blog.
DOGE has been active for roughly two months now, and as you can see in the screen-shot above, it has managed to save in excess of 140 billion green american tax-dollars.
140 billion. That is more money than the entire economies of some countries out there. Let that sink in.
Whether you agree with or like Elon, or even Trump for that matter, you would probably agree with me that wasting this amount of money, leads nowhere but to the most attrocious forms of corruption.
Combine this with a network of rather questionable NGOs, and you got the recipe for a dissaster that not only affects the U.S and it’s own national security, but the security and the integrity of the world at large.
Funneling ill-gained funds abroad, in order to fund clandestine grass-roots looking democratic springs, and the like, without any regard of the direct or indirect long-term consequences, should be frowned upon by anyone with a shred of common sense left in them.
What am I trying to say is that this goes way beyond the run of the mill bi-partisan issues, and the fact that so many people both in the U.S and world-wide do not seem to get it; it’s absolutely crazy to me.
It’s like we entered some of sort of global intellectual dark ages, and surprisingly enough, the people who should have been immune to this kind of brain-rot, happen to be the ones affected by it the most.
A very strange phenomenom to put it mildly, and I am not quite sure how to make any sense of it to be perfectly honest. It’s like someone or something flipped a mental-switched, and common sense went straight out the proverbial window. Poof! Gone like Houdini!
Bluesky
I wanted to see what’s going on the other side of the great big walled garden, and ended up hopping over to Bluesky for a hot-second. It’s exactly what you’d expect, but the account verification is pretty cool, especially if you have a domain laying around already, like I do.
It would be nice to have this kind of optional verification everywhere, because you most definitely do not want some sort of universal internet ID. Or at least, I can only assume that most people wouldn’t want that in the slightest, but in the light of recent events, who knows anymore, right?
Stronghold Crusader: Definitive Edition
Are you tired of me posting about Stronghold Crusader
yet? I sincerely hope not. Anyway, you’ll have to bear with me for a little while longer, because it’s not out there yet.
The State of Google Image Search
When Google discontinued and rather abruptly shut-down Google Reader way back in 2013 or so, I was pissed, and so were many other people as it turned out.
All the talk about not being sustainable to keep it running was absolute bollocks. I didn’t want to hear any of it back then, and I sure as hell don’t want to hear it today as I write this down.
The cost of running and maintaining Google Reader given the infrastructure Google already had in place was totally negligible. In fact if you would plot it all out on a chart, it wouldn’t even show up.
Natually, Google has discontinued many more products since then, so much in fact that people have setup a cybernetic cemetery of sorts in order to keep track of it all.
While all this was going down, the claws of enshitification started to slowly but surely creep into what I’d call the core products as well.
The Google Analytics v3 to v4 for instance was an absolute shit-show, and I am not exagarting, not even a tiny bit when I claim this. It’s one of those, you had to be there moments.
Search itself is being censored like crazy, and it’s becoming harder and harder to find anything at all. I often boast about my [google-fu][googlefu]; but, in all seriousness, I’d give anything to bring search back to the 2005-2008 golden era.
What about Image Search? Well, there is no more Image Search, it’s Google Lens now, haven’t you heard? And, let me tell you that it’s absolute dog-shit. Not to mention that the vice president of bad ideas thought that it would be an excellent idea to cram it all into a tiny side-panel in the year 2025.
You can’t even filter by image size anymore. Did I say that it’s absolutely useless? I did? Sorry for being repetitious. I am getting old and stuff, ya’ know.
Luckily, there are some people out there who do not have a vice president of bad ideas among their ranks yet, and they have blessed us with the amazing TinyEye.
Which is an absolute gem, and unlike Google Lens it’s actually pretty good at finding things. Oh, it also doesn’t need to be in a side-panel. I am literally shaking right now.
I do wander what would have Fravia+ thought and said about all this. Alas, we are never going to find out.
Crawler & Scraper Netiquette
There has been some sort of a mini whirlwind on the side-lanes of the information super-highway about the so called AI agents crawling and/or scraping random personal blogs and such, over and over again to the point of causing unwanted and unexpected hosting fees.
Now, whether bandwidth is overpriced or not, that is a matter for another day to discuss, however when I first got a wind of this, I can’t say that I was very surprised to be perfectly honest.
Crawling and/or scraping was always a rather touchy subject, but most people involved with it in the past, had agreed to follow some sort of an unspoken etiquette, that boiled down to a couple of key points:
- Cache early, and as often as possible
- Limit hitting the same resource in parallel as much as possible
- Have proper back-off that honors all relevant HTTP Status codes (i.e: 429: Too Many Requests)
- Honor
/robots.txt
, if and when appropriate
The last point was always more of a rather naive altruistic hacker ethos thing – similar to what Stallman describes in his anecdote about the uselessness of passwords in the MIT artificial intelligence lab.
That said, the AI bro vibe coding crowd seems to have been vibing so much and so intensely, that they totally forgot to follow the first point at least, and cache. There’s absolutely no point in hitting random personal blogs multiple times without any regard at all. Unless the author of said blog is vibe-bloging or something, and happens to be posting every single random thought occurring in their cerebral cortex.
Cloudflare is more than happy of course to ride in as a knight in shining armor, and save the day as per usual, which is not surprising at all. They have a business to run after all, and there’s nothing better for business than the sheer incompetence of others in the industry.
MCP
The Model Context Protocol has been yet another thing that has been percolating in the AI-bro-sphere in the past couple of weeks.
Running additional dedicated infrastructure for this is pretty wild even for the vibe-coder gang. I mean, I was just lamenting the fact that these people didn’t even bother adding a caching layer to their scrapers, and now they expect people to run a monstrosity that is an MCP server, just for funsies.
We can all agree that it would be beneficial to be able to serve a version of your content that has been massaged for consumption by LLMs. However, this needs to be static, and more akin to something like a bonafide RSS feed, rather than a dedicated server doing any real-time processing.
Look, this is not to say that there is no room for something like the MCP. It makes perfect sense for an organization or business to run any number of servers internally, considering that in this day and age they probably have the very least some vector databases running already. It make sense in this particular context, but not in the context of the so called open web.
If all this gives you xmlrpc, and/or soap vibes all over again (or night terrors!, pick your poison!), then I’d like to welcome you to the club of resident ancients of the *good old web. You are not alone!
DOOM
There is a port of the original DOOM called doomgeneric which entire purpose is to make porting DOOM to various platforms and systems ever so slightly more convenient.
I wanted to give it a try for some time now (for reasons I’ll reveal at a later point in time, sigh!), and I finally found just a tiny bit of time in order to fit it into my otherwise quite hectic schedule.
Decided to go with the existing SDL flavor, a fact which I am sure that it won’t surprise any frequent readers of this blog, if there are such people out there on the great information super-highway.
Simple enough to build and run with the following incantations:
$ make -f Makefile.sdl
$ ./doomgeneric
The first thing I noticed is that there’s no music, and since I had no intention in spending the next 6 months of my life crafting some good old-fashioned OPL emulation for the MUS format by untangling the existing music support; I decided to see if it would be possible to play the music in the .ogg format instead, as there appeared to be support for it already.
The way this has been implemented is a little bit silly to be honest, but it does the job, I guess.
First, I switched the default music device to be SNDDEVICE_GENMIDI
instead of SNDDEVICE_SB
in i_sound.c
.
-int snd_musicdevice = SNDDEVICE_SB;
+int snd_musicdevice = SNDDEVICE_GENMIDI;
This could have probably been done simply by creating a defaults.cfg
as well, but I didn’t want to bother going down that route. Code is king and flesh is weak.
Then, I fixed up the path to the musicdir
, in i_sdlmusic.c
like it can be seen below:
- musicdir = M_StringJoin(configdir, "music", DIR_SEPARATOR_S, NULL);
+ musicdir = M_StringJoin(configdir, DIR_SEPARATOR_S, "music", DIR_SEPARATOR_S, NULL);
Now, the last thing was to grab the music and then create a doom1-music.cfg
configuration file that contains the mappings in order to indicate to the game which .ogg
corresponds to which music lump within the WAD.
Convenintly enough, Sycraft’s Doom Soundtracks, solved the first part of the equation rather quickly.
The second part however, is a bit of a mouthful and starts with the following incantation:
$ ./doomgeneric -dumpsubstconfig music/doom1-music.cfg
How does the generated doom1-music.cfg
configuration file look like?
# Example Doom Generic substitute MIDI file.
# SHA1 hash = filename
99767e32769229897f7722848fb1ceccc2314d09 = D_E1M1.ogg
b5e7dfb4efe9e688bf2ae6163c9d734e89e643b1 = D_E1M2.ogg
fda8fa73e4d30a6b961cd46fe6e013395e87a682 = D_E1M3.ogg
3805f9bf3f1702f7e7f5483a609d7d3c4daa2323 = D_E1M4.ogg
f546ed823b234fe391653029159de7b67a15dbd4 = D_E1M5.ogg
4450811b5a6748cfd83e3ea241222f6b88be33f9 = D_E1M6.ogg
73edb50d96b0ac03be34a6134b33e4c8f00fc486 = D_E1M7.ogg
47d711a6fd32f5047879975027e5b152b52aa1dc = D_E1M8.ogg
62c631c2fdaa5ecd9a8d8f369917244f27128810 = D_E1M9.ogg
b2e05b4e8dff8d76f8f4c3a724e7dbd365390536 = D_INTER.ogg
0c0acce45130bab935d2f1e85664b29a3c724fcd = D_INTRO.ogg
fca4086939a68ae4ed84c96e6bf0bd5621ddbe3d = D_VICTOR.ogg
5971e5e20554f47ca06568832abd37db5e5a94f7 = D_INTROA.ogg
I should mention the fact that I’ve used the WAD
that came with the shareware version of DOOM.
$ sha1sum doom1.wad
5b2e249b9c5133ec987b3ea77596381dc0d6bc1d doom1.wad
Another important thing to mention is that I made all the filenames lowercase in order to match the filenames in the music pack. Could have also just changed the code to do a case insensitive string comparison, but honestly I just couldn’t be bothered enough to do that.
With all that in place, it was time to check it out in all its glory.
The absolute purists will probably claim that it doesn’t sound as good as the original, and you know what? Perhaps they are right, who am I to judge?
You know what else they might raise a stink about? The aspect ratio. This one, I kind of agree with; it does look better when stretched vertically
from a resolution of 320x200
to 320x240
.
And now, go play some DOOM!
2025-03-31 / retrospective