It is the 2109th of March 2020 (aka the 8th of December 2025)
You are 18.97.14.82,
pleased to meet you!
mailto:blog-at-heyrick-dot-eu
Become a snitch for peanuts
The Guardian reports that Iceland, the chain of frozen foods, is offering to pay people £1, yes one, if they inform shop staff of suspected shoplifters. Staff will verify and if it's good info then the single lonesome pound will be added to the customer's loyalty card.
The CEO has said that shoplifting has cost the company twenty million plus resources that could have better been used on staffing or lower prices.
The government, for their part, have provided a useless non-answer by setting out legislation to help tackle shoplifting because, it would seem, that up until now shoplifting was completely legal, right?
Well, no. Theft is theft and it has been that way for a very long time. This, the dramatic rise in shoplifting comes down to a number of factors. Let's list a few:
In 2014 there was a £200 threshold on "low level" theft where the punishments would eventually not be much of a deterrent.
The steady decline in police visibility, especially in shopping centres.
The vast disparity between product price rises and wage/benefit increases, especially given how rampant "shrinkflation" and price gouging is.
Shops employing fewer staff and giving those they do have more and more to do.
And, of course, lawless gangs that do it because they can, because they know few people are willing to risk standing up to them.
It all comes down, I think, to the gradual erosion of social cohesion, and the perception that theft from a shop is victimless, one isn't stealing from a pensioner, say, they are sticking it to a faceless corporation that treats everybody like fools.
Add in to this an increasing number of people who are working that would need to make use of food banks. There was a time when one person could earn and look after a family. Now two people would struggle to do that. The poverty line used to be far away, now you're under it, and successive governments have painted people that are in poverty as feckless, hopeless, and stupid; architects of their own demise, whereas in reality it could simply have been "my company offshored to eastern Europe and laid us all off" followed by not finding work because nobody has any need for those skills these days.
Couple all of that with the increasingly obscene profits the companies make, the tax they get out of paying, and the board members that get paid wages far out of alignment with the low level employees.
None of this makes theft right, but it may help to explain some of the reasons why this is happening.
Furthermore, the upcoming crime and policing bill will also introduce a stand-alone offence of assaulting a retail worker. Why? If you assault somebody, you assault somebody, and it shouldn't matter if they are at work or walking in the park. Assault is already an unlawful act, so why is this not being properly enforced? Adding more legislation will be useless if that, too, is not enforced. This whole thing smacks of a desperate "we must make new legislation so we're seen to be doing something" while, ultimately, not doing anything useful or productive at all.
As for grassing up people for a quid? Pass.
Advert blocking to be banned in Germany?
As reported in The Register, a case between Axel Springer and Eyeo GmbH (Adblock Plus) has restarted in Germany.
The ruling says that the appeals court erred when it determined that the use of ad blocking software does not infringe on a copyright holder's exclusive right to modify a computer program.
They are trying to claim that modifying the Document Object Model or the Cascading Style Sheets is a copyright infringement, according to their interpretation of the law.
It is worth noting that Axel Springer is a prolific German publisher. They are not an ad pusher, so it's the company sending the web pages themselves making the complaint, not a third party.
However, there is a lot wrong with this.
Firstly, despite everybody treating websites as some sort of publishing, it is - and always was - intended as a markup language. Your desktop browser can be set to override the styling supplied by the website, to adjust the contrast or font or sizing. If a mobile browser, there's a good chance it'll be automatically messing with the text size.
Most people don't do this, because most people just expect the website as given, and they usually only choose between light mode and dark mode.
Secondly, the infringement excuse just doesn't hold up. You are modifying the content for your own personal use, you aren't passing around modified copies (and ABP isn't either). This is no different to ripping a DVD (legal) and setting the encoder to invert the colours to make a negative image. It would be weird, but it's not copyright infringement as you're allowed to make a personal copy (note: other jurisdictions may vary).
Thirdly, there is roughly nobody who serves their own adverts. So anybody and everybody with advertising is handing out information to third party brokers who will expect to run programs on your computer, download whatever in order to make it work, all the while swiping whatever sorts of information they can get their hands on. All of this happens "under the hood" without your knowledge or informed consent. And, no, "We and our 927 partners..." is not consent.
Fourthly, the legislation states that refusing consent should be as easy as giving it. You'll be hard pushed to find a cookie popup that doesn't expect you to click on a "More info" and then find a dozen or more pre-selected "Legitimate interest" options to turn off individually and then you can click on a "Save my choices" button safe in the knowledge that your choices will be completely ignored in much the same way that they chose to ignore "Do not track"...
...or increasingly, consent to being tracked by hundreds of companies you've never heard of, or cough up some cash for "Privacy Plus" - something else the legislation explicitly forbids, but you know scummy advertisers will do whatever makes them money until it is outright outlawed. Reach and Admiral are cookie popups worth pointing out, repeatedly popping up on different sites expecting you to wade through the same options to untick the same things over and over. If they even remotely cared, they wouldn't keep asking. Oh, and those ones that take closing the popup as consent. That's the same broken logic as "she didn't say no therefore she meant yes".
Fifthly, how is stripping out adverts that much different to going to the toilet during an advert break on commercial TV? Oh, its okay, we'll just wet ourselves because it's somehow copyright infringement to ignore this nonsense, as if we're all going to rush out and change our car insurance or buy a funeral plan or...
Sixthly, I would imagine that many of us don't actually object to subtle adverts placed in the content for products that may be relevant based upon what the site is about. But that's not what it is these days. No, these days it is slide-up adverts that take up half the screen and is written in Turkish, full screen adverts, adverts that hijack the site and start redirecting you through a number of brokers that eventually dump you somewhere with huge titties blinking at you and a message about single women in your area, or those quarter-screen video adverts that autoplay with sound and don't want to go away, and may well reload thirty seconds after you get rid of it.
All the while, in the background, you're being tracked and traced and evaluated and sold with no clue, no say, no control, and for what? To look at a web page whose content can likely be found elsewhere in slightly different words?
And, finally, this approach is quite liable to be, in itself, unlawful. Just below is a view of my blog using Lynx. Now, fair enough, you might say that I'm responsible for my own woes if I use a browser that runs in text mode, but how about this - what if it's not a nerdy text mode browser, but a screen reader, or something that fiddles the CSS to make things bigger and higher contrast. Things that we refer to as Accessibility aids.
Suddenly you can see the important of 'alt' text.
HTML and CSS is a set of instructions that tell a browser how to display a web page. Browsers generally will do so, and generally in a fairly uniform and standardised way in order that they, well, do what the user is expecting. But this is not guaranteed. A browser is free to make alternate choices, to do something else.
Your logos? Copyrighted. Your text? Copyrighted. Maybe even the "look and feel" of your site is copyrighted. But if something processes it automatically between the site and the user, at the request of the user, it's not a copyright infringement. It would be as if I got myself "Twilight", passed it to my mother, and asked her to burn through several rolls of Tipp-Ex crossing out every sentence that relates to whats-her-name being madly in love with whats-his-name (you can tell I've never read it, can't you?).
People do not have a right to access websites. Quite often some degree of advertising is necessary to fund the website, be it servers or staff. However greed has enacted a tenacious and insidious form of data collection passing as advertising (if it was about the adverts, they'd at least remember that you've seen the Temu one fourteen times already). What we need is not a law that says "you can't remove adverts" but a law that states that a publisher must not only fully disclose each and every advertiser, but what data they collect, for how long, and who it is shared with up front plus fully accepting liability for anything that happens by way of the embedded adverts (from malware to scams to people upset at seeing titties wiggling at them) because it was their explicit choice to allow that content to be there in the first place. It seems to me that so much of this is about coining it while passing the buck.
People do not have a right to access website; but we people do have a right to privacy. It is quite clear that the current situation is not viable, what we are expected to hand over in return for reading someone else's content. Advert blockers are a response to this race to the bottom and, really, we need a better way. A way where a site that relies on adverts can show them and get paid for showing them, but they are less obtrusive and are relevant to the site and not necessarily us. A way where the display and payment of adverts isn't just a side hustle to the real task of tracking, profiling, and selling us to whoever is dumb enough to pay.
I use advert blocking. I don't block them because of what they represent. I have grown up with commercial radio, TV, and adverts in magazines. Advertising online is, well, not that much different. It's just another form of media with people trying to push you to buy stuff you pretty much don't have any intention of buying.
I block adverts in my browser not because of what they are, but because of how they behave. They are far too intrusive. And don't get me started on those full-screen unskippable video adverts that crop up in more and more Android apps and show you the exact same crap over and over. Apps that do that get uninstalled, just as sites that present a huge load of cookie options to untick (or a "pay us" choice) have me hitting the back button and finding a different site. If your business model relies upon using a third party to scam your visitors, go whistle.
Sadly, I think I'm in a minority. Most people just click the big inviting "Accept" button because it's the quickest way to make that obstruction go away.
RISC OS just doesn't work like that
Following on from what I said yesterday regarding the use of special magic information in BASIC files to determine what BASIC interpreter to use, well, today's follow-up is fun.
If some app (maybe !Run ?) (even in elder Risc OSes) can react on some "open docoment"-function (mouse or keyboard), this app could look for pragmas (and document fileformat versions) in the e.g. 80 first bytes (octets) of the non-app files. This feature/improvement could give a better experience in all Risc OSes.
Why? We have a range of filetypes for things that users are liable to click on. The type explains what the file is, and each has an associated run action, maybe also a print action, to tell the OS how to handle it.
If we want something different, we run our file by way of a !Run file, which is not an app but is just a part of an application - think of it like runme.sh in Linux or RUNME.BAT in DOS. Is it a .pif file in Windows? I don't remember...
New or updated apps sometimes make new document fileformat versions...
That's the app's problem. That is not the OS' problem.
The metadata filetype or file extension might be missing or wrong - or in the case of BASIC and many other files - insufficient:
Risc OS BBC Basic has e.g. ",bas":
Irrelevant. RISC OS DOES NOT USE FILE EXTENSIONS. If you're seeing them, it's probably on another OS either by way of a network drive or the host OS of an emulator and, honestly, it's a bodge to make it work. It's worth pointing out that the heritage of RISC OS is from a time when file types and file extensions were simply not a thing. Indeed, the 12 bit filetype actually hijacks part of the file catalogue used for load and execute addresses, which meant a lot more on the older 8 bit machines than on RISC OS. Since two 32 bit words were available in the catalogue and not really doing anything much, these eight bytes were taken to be the file type and the date stamp (plus one and a half bytes set to &FFF to flag that it is not an address).
As a personal opinion, I think it's a far cleaner approach than suffixing type information to the name. It's an alternative way to give the file an identification, it's neither right nor wrong, just different.
For the record, on my PC, the RedSquirrel extension for BBC BASIC was .basic and this was done specifically because if I wasn't thinking and double-clicked a .bas file expecting it to open in the detokeniser that I threw together, instead the VisualBasic environment would start up, try to load the file, and complain bitterly.
Those of us of a certain age will also remember the chaos when Word decided to lay claim to .doc files, which were frequently used for formatted text files, but of course Word didn't attempt to do anything sensible with .doc that was really just text, instead it threw up errors.
Quote: "...GIF images, for instance, always begin with the ASCII representation of either GIF87a or GIF89a...The magic number approach offers better guarantees that the format will be identified correctly, and can often determine more precise information about the file.
I can't help but feel that magic numbers are a way to avoid the proliferation of types and people's ability to remember what they all mean. I think a good example here may be something like .mp4 or .mkv where the file itself is merely a wrapper, and the video within can be all sorts of types, all sorts of resolutions, with one or more audio formats in varying formats, plus other metadata such as subtitles.
An example in the opposite sense is the interactive fiction files that work with the "Z-machine" (namely the "Infocom" text adventure games), which have the extensions .z1 through to .z8and the first byte of the file also gives the version, which meant that they could have just gone with something like .zgf (for Z-machine Game File) and let the interpreter read the type for itself.
It is worth noting that FileSwitch is much simpler in its behaviour. It doesn't even, for instance, bother to try to vet whether an application is 32 bit or 26 bit. For pure assembler programs, you'll know when it misbehaves and/or crashes. For C programs, it'll be rejected by the SharedCLibrary when it calls the ancient initialisation to start up.
TryRunningFile
Does this file have a type?
No -> Run_UndatedFile
Extract the file type.
Is it &FF8 (app file)?
Yes -> Run_Absolute8000File
Is it &FFC (transient utility)?
Yes -> Run_TransientFile
Otherwise, fall through to...
Run_UnrecognisedFile
Read the run action "Alias$@RunType_XXX"
(XXX=filetype in hex) and pass it to the
command line.
Exit on return.
Run_Absolute8000File
Set the load and exec to &8000 and
fall through to...
Run_UndatedFile
Do the load/exec addresses make sense?
If so, load the file at the load address.
Is it an application (runs at &8000)?
If so, mess around to handle decompression
because the code built into many apps would
blow up on the StrongARM (etc) so it needs
to be special-cased.
That all being done, if necessary, jump to
the given exec address.
Exit on return.
Run_TransientFile
Claim some RMA, load the file there, set up
some stuff, jump to it.
Tidy up and exit on return.
So, really, we have four categories of file:
Files without a type that are tried to be loaded (old school method).
Absolute (application) files for various special case handling.
Transient utilities for their special case handling.
Everything else which is controlled by the RunType alias. Yes, even modules.
Really, the OS only does the bare minimum necessary, preferring to let custom run actions handle the heavy lifting. Yes, one could hijack the &FFB (BASIC) run action to try to determine the best BASIC to use, but why? As I said yesterday, that's just not how RISC OS works. If you want something special, stick it in a directory with a '!' prefix (interpreted by the OS as an "application") and create a !Run file to do all the special stuff you need.
The flip side of this is that, under RISC OS, moving and copying applications (excepting those with copy protection, which aren't many) is by simply moving or copying the application folder. If you want to put my !Tea into $.Downloads then do so. If you later decide that it would be better in $.Apps.TVstuff, then simply move it there. If you want a copy on your other computer, just copy it to Share::MyOtherPi.$.Apps or wherever.
Can you say the same for Linux or Windows? Hell, in the case of Linux do you even know where stuff gets installed? There's a reason we need to use things like apt instead of just unpacking a zip archive.
Oh, and yes, I'm quite well aware that BASIC has changed through time and those changes often are not backwards compatible and that there is an issue regarding what BASIC files will run on what interpreter. This is not a new problem, it was actually a lot more prevalent in the mid '90s when things like GCOL r,g,b came into being which would turn up a lot because everybody was excited by the shiny new RiscPC, while those with older computers just couldn't do that. I don't recall if a softloaded BASIC was ever made available. Chances are any such program would fail at trying to set a MODE that wasn't understood, anyway, so it was a rather insurmountable limitation of the older hardware.
There was, and still is, no official way to obtain the actual version of BASIC. At start, REPORT$ still says "ARM BBC BASIC V (C) Acorn 1989" (note the date!) and you're only going to find the version by trying to parse it out of the RMA (you did remember to call OS_GetEnv to check you're not BASIC64, right? ☺).
Instead, you are supposed to test and fail gracefully, like this, like nobody ever does:
ON ERROR PROCoh_crap_that_failed
bang_reason$ = "variable base arrays."
DIM a%(-3 TO 3)
bang_reason$ = "the new TOPOLOGY keyword."
top% = TOPOLOGY(-TIME)
ON ERROR PROCour_real_error_handler
REM [...lots of exciting code here...]
END
DEFPROCoh_crap_that_failed
PRINT "Your BASIC doesn't support "+bang_reason$
PRINT "You need BASIC version 6.66 or later."
END
ENDPROC
No, BASIC doesn't support the ability to make arrays go from -3 to +3. Well, maybe Richard Russell's one does, but that's not what we're talking about. It's used as an example of trapping something that could be added but wouldn't work on older versions of BASIC.
To sum it all up, whenever you feel like RISC OS is doing something unusual or non-standard or not-like-the-rest, just take a deep breath and remind yourself that RISC OS is old and weird and it just doesn't work like that.
Apple is the trendy dude with the leather jacket and the pickup truck. Windows is the juggernaut parked by the roadside with its bonnet up. Linux is the road sweeper truck diligently going about its business unnoticed. Android is the little kid on the sugar high that's in danger of barfing. And RISC OS? Is the old man standing up on the hill looking down on the scene and thinking "when I were a lad...".
Because RISC OS? It just doesn't work like that.
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, 18th August 2025, 01:24
What really annoys me about an ever-increasingly large subset of adverts is that they pester and pester and pester you to visit their site, and then as soon as you give in and do so, they shout a giant FUCK YOU!!!!! by blocking it with "We have detected an ad blocker, fuck off".
If you want me to read your website, ******ing let me read your website!
jgh, 18th August 2025, 01:35
Did they really mean to type ",bas" instead of ".bas"?
Anyway, ".bas" is BASIC *AS* *TEXT*. ".bbc" is Russell-format tokenised BBC BASIC. "." is Acorn-format tokenised BBC BASIC. Otherwise, you are requiring a time machine to go back to chamge millions and squillions of programs to use CHAIN "fred"+s$+"bas" instead of CHAIN "fred".
Programs written in BBC BASIC since forever expect to find other BASIC programs as files called "thing". Just plain "thing". No extension, nothing.
Rick, 18th August 2025, 06:55
I wasn't certain, given the references and wiki link to file extensions, whether this was supposed to be ".bas" or whether it was the ",bas" HostFS style mangling to retain filetype on a system that doesn't support such a thing.
As far as I'm concerned, you shouldn't need a time machine to add extensions to programs. If the platform and runtime environment wants ".bas" or ".bbc" or whatever, it should be *ITS* responsibility to suffix the extension. Of course, in reality.... 😪
Rick, 18th August 2025, 07:21
The "we have detected an ad blocker" sites tell me all I need to know about the site in question, that pushing adverts to you is so important that they are willing to sabotage their own site in order to do so. Which means it's not about sharing content and supporting it with some advertising, it's just about the advertising and the content is - far too often - just some clickbaity rubbish that isn't worth wasting time on, or some sort of scam site (cough like that Chinese one offering free stuff "just for downloading the app" - they neglect to mention the catch).
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.