It is the 2147th of March 2020 (aka the 15th of January 2026)
You are 18.97.9.169,
pleased to meet you!
mailto:blog-at-heyrick-dot-eu
The parcel that eventually was
This morning I had a visitor. A British woman from the far side of the village.
Oh, hello.
She handed me a pack of vitamin tablets and apologised for opening the envelope. She didn't look at the name until she took out the tablets and was like "what's this?".
It is my guess that the delivery person made it to the correct village, but picked completely the wrong house. It's just so unlikely that somebody from up near Rennes would deliver to another Brit, so I'm guessing it probably went to a Frenchie who popped it into her letterbox because all us Brits talk to each other or something. I've had a quick look at a map and, well, there's nothing that I can see with a name that could be mistaken for the same as my address. So, I don't know. It's altogether very peculiar. But thank you Helen for bringing it that final couple of miles to me.
Ghosts
I had been using SDL on Linux to do an animation of some ghosts on a tile (walls and floor segments) background. I had been using the window surface which is basically just blitting pixel data into place, and it seemed to be doing around 70-80fps. That would, obviously, slow down as the code actually did stuff (like all the background things, handling interactions, and so on).
I changed this to use a texture (optimised bitmap format) which can then be passed to a renderer which specifies the use of hardware acceleration. Together, this can whizz along at something like 170fps on my dinky little 1.44GHz quad core Atom x5-Z8350 processor. So I dropped in a speed limiter so it sticks to 60fps; though I may have to fine-tune this as the RISC OS version runs at ~50fps (because the timing is derived from the 100Hz clock and 100÷50 is a whole number).
I have also started with the creation of a simple sprite handler. This loads in a long list of assets, mostly in PNG format, translates them to a texture, and adds them to an array with their name and texture reference. Then when I call Sprite_Plot(name, xpos, ypos) it will look up the sprite name, sort out where and how to plot it, and then draw it at the given location. This all has been done with the idea of implementing something that could be a drop-in replacement for various SpriteOp calls provided by RISC OS that I make use of.
I added the basics of font handling. This works by the slightly convoluted method of rendering the text to a surface (a raw bitmap) which then gets translated to a texture which then gets pasted into the window. Currently it just uses a randomly chosen serif font (Liberation) with a fallback to NotoSerif, in the hope that one of the other will be present on other (non-Mint) distributions. This is mostly for testing the text drawing routines.
Immediately as the program starts, it displays the splash screen. Overlaid onto that is a little sliding bar animation to show the progress of loading all of the 202 image assets. This never happened on RISC OS because the images are all held within a SpriteFile which is included within the executable, so they are already present when the program starts.
Doing the splash screen first, start at the beginning, right?
Following that, we go through to the animated ghosts like before. So, all in all, I've made a few advances.
But one of the main ones, I think, is in changing my "build" shell script to be a proper MakeFile. This means I could split code out from drawtest into specific modules for the sprite and font handling. At the moment there are various "extern" definitions around so global scope things are known, this will be replaced by a header file in the future, obviously.
# MakeFile to build stuff now, as it was getting a
# little too messy using a shell script.
EXECUTABLE=drawtest
CC=gcc
# This automatically includes every .c file in the directory
SOURCES=$(wildcard *.c)
# And they have the corresponding .o files
OBJS=$(SOURCES:.c=.o)
# Flags for the compiler (including specifying libraries)
CFLAGS=-std=c11 -Wall -O3 -s $(shell pkg-config --cflags sdl2 SDL2_image SDL2_ttf)
# All of the libraries to link with
LIBS=$(shell pkg-config --libs sdl2 SDL2_image SDL2_ttf)
# What to make (all by default)
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJS)
$(CC) $(OBJS) $(LIBS) -o $@
.c.o:
$(CC) -c $(CFLAGS) $< -o $@
clean:
rm -f $(OBJS)
The game itself is split into sections, which are described here, so the ability to pull together various different bits of source is important, so a MakeFile had to be created. And, of course, dealing with all of the fastidious crap of make that will throw at you, like "*** Missing separator. Stop." when it finds a space where it thinks a Tab should be. The RISC OS version was annoyingly fussy too, which is why sane people use AMU and leave Make to sit in the corner and sulk. I believe the rough equivalent on Linux is something called cmake, but since this MakeFile works, there was no need to look any further into that.
Ghosts (the other kind)
I went to work yesterday. The company was looking for volunteers so I said I'd be happy to, but only at 7am. As a day hours worker, I didn't fancy starting at 5am. I'll have to for the mandatory Saturdays, but the volunteer ones I'll do from 7am. After all, if my boss wasn't happy with that, I can always just stay in bed. ☺
Actually, she just shrugged, like "okay, whatever". A little of me is better than none of me.
There were two reasons. The partial one was that I like working with the women in that team. The big one, however, was that it was the anniversary of mom's death.
Six years.
Already.
Bloody hell, it'll be my turn soon at this rate. It doesn't seem like six years. I guess, in my defence, there was that blurry "Covid" thing. As the top of the page says, today is the 2038th of March 2020.
Anyway, I wanted to have a distraction yesterday, so I did some extra work. I came home and... it was kind of naff weather, so, well, a combination of "meh" and being tired and the day came and went. Oh, I did wash my hair and then remembered that I hadn't brought my towel. Yeah, it was a bit of a day like that.
Google and the enshittification of the web
Yesterday was also Google's 27th birthday. I was there, in 1998, when Google launched. It was immediately popular because it was fast, not full of rubbish, and not bloated with junk and advertising like Altavista came to be.
When you were accessing the internet using a 14k4 modem. That's fourteen kilobits, in ADSL terms it's the same as 0.014 megabits, and in fibre terms it's the same as 0.000014 gigabits. So if you're accessing the internet using something nearly six hundred times slower than fairly unimpressive 8Mbit ADSL, or something about seven thousand times slower than a single Gigabit fibre connection, every unnecessary byte matters. Google, by returning concise results with a lean no-nonsense page design, instantly won many fans and the writing was on the wall for Altavista - in 2003 it was purchased by Yahoo! which used the brand name for its own search engine, before it was laid to rest a decade later.
Google, sadly, has long failed at both of the tasks that won it supporters; pages are horrifically bloated, full of advertising, SEO tricks, and obvious spam, and more and more anything useful is nowhere near the top of results - especially when it says "Did you mean?" and shows matches for things that sound the same but are nothing like what you asked for.
The reason Google didn't die the ungraceful death that befell Altavista is for two reasons, Google is now used as a noun meaning "to search something" so in a memetic way, people will remember to "google" whereas "duckduckgo.com" is much more to remember and type in. Yes, I know you can change your browser's search engine but the masses probably don't. The second reason is that Google pays obscene amounts of money to browser makers in order to be the default search engine, and that's how it is in Android (which, worth noting, is also a Google product).
Oh, and a third reason, the period around the mid to late '90s is when a massive shift change was happening. While services such as AOL and Compuserve provided Usenet access from about 1994, and in varying degrees Internet access from about 1996, this was usually done through their own portals. I remember using the NCSA Mosaic browser with a trial version on Compuserve on mom's PC, and I had to go into Compuserve and then find the internet and it sort of worked from there, albeit painfully slowly.
By 1997 to 1998 companies started to set themselves up providing banks of modems that directly connected you to the internet, and soon after they started offering local rate numbers to help keep costs down. But the important thing here was that the internet uses weird protocols. Back in the BBS days, you needed a fairly simple terminal program that interpreted some inline formatting codes (make this text yellow, put the cursor over here) and sent back whatever keys you pressed. It was a basic linear system. You worked your way through menus, you selected "Download" and then did nothing else while that, and only that, happened.
The internet, on the other hand, is a binary packet-based system. This is because each bit of data arrives independently by itself and can be destined for whatever software you are running, which - unlike a BBS - can be running concurrently. You can fetch and read your messages while downloading something. It's basically a special modem-friendly version of TCP/IP networking - just like you're using now to fetch and read this. In those days, however, using the software was arduous and configuring the software so it'll actually work was an exercise in pain. People of a certain age will remember ka9q and Demon Internet.
It didn't take long to go from that to do-it-yourself kits that you pop into a PC running Windows and, yay, Tesco or Argos or whoever has just got you online - you can click that little 'e' symbol and, well, have fun...
But, the birth of Google? That was before world+kitten got online, so those who were online in those days would have been nerdier and would have understood how and why Google was better.
These days? I've known far too many people who Google the name of the company they work for to find the company's website. And so many people using apps that I wonder if they're even aware that there is an internet out there. A few months ago I came across somebody who was unaware of who Chrome was or even that they had it. If they needed something, they'd just start the app and enjoy that little custom walled garden made especially for them. Which means even if a better search engine did appear, it's not likely to make much of a dent in Google's dominance.
Your comments:
Please note that while I check this page every so often, I am not able to control what users write; therefore I disclaim all liability for unpleasant and/or infringing and/or defamatory material. Undesired content will be removed as soon as it is noticed. By leaving a comment, you agree not to post material that is illegal or in bad taste, and you should be aware that the time and your IP address are both recorded, should it be necessary to find out who you are. Oh, and don't bother trying to inline HTML. I'm not that stupid! ☺ As of February 2025, commenting is no longer available to UK residents, following the implementation of the vague and overly broad Online Safety Act. You must tick the box below to verify that you are not a UK resident, and you expressly agree if you are in fact a UK resident that you will indemnify me (Richard Murray), as well as the person maintaining my site (Rob O'Donnell), the hosting providers, and so on. It's a shitty law, complain to your MP. It's not that I don't want to hear from my British friends, it's because your country makes stupid laws.
You can now follow comment additions with the comment RSS feed. This is distinct from the b.log RSS feed, so you can subscribe to one or both as you wish.
jgh, 29th September 2025, 15:47
Whenever I hear "we need an app for this...." my response is "I already have an app for this, it's called a Web Browser".
Zerosquare, 29th September 2025, 23:06
"I believe the rough equivalent on Linux is something called cmake".
Let's just say that if you're looking for a build system that's simple and convenient... using cmake instead of make is pretty much "out of the frying pan, into the fire".
Rob, 30th September 2025, 13:44
Internet access has gone from "you'll have to be a nerd, here's your login details, good luck", through "here's a CD with a pile of public domain software, and your login details" to "here's a. CD, let it install a pile of crap, and follow the wizard. We hope you remembered you need a modem. And phone line. " to "we'll post you a box that you plug into your phone line; connect to the wifi with the password on the back of it. Good luck." with a side of "here's your new snartphone, that's the facebook icon."
T'internet was way better when you had to know a bit about how it worked before you could use it..
Rick, 30th September 2025, 15:06
"when you had to know a bit about how it worked before you could use it"
☝️ This. This. This. This. This this this thisthis and this.
It was like a competence test, to filter out those susceptible to every dumb scam, ponzi, mlm, crypto, spamvertising scheme dredged up and given a shitglitter polish and passed off as the latest greatest hottest thing for consumption by the gullible. It's sort of crass but meh when it's paying cold hard cash for in-game credits, or paying lots of money for an ephemeral "token", but it's an entirely different thing when it's our democracies being messed around with.
jgh, 30th September 2025, 15:17
On the news today: AOL is terminating its dial-up service after 30 years.
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted.
RIPA notice: No consent is given for interception of page transmission.