mailto: blog -at- heyrick -dot- eu

Biscuit fail

So I thought I'd make some biscuits. Some flour, some sugar, and some butter. Whisk it until it started to make clumps, and then take out some dough, pound it flat (I don't have a rolling pin) and cut out some Playmobil people.

Biscuits to be.

After the people were cut out, the excess dough was carefully removed (for the next batch) and these put in to cook.

What came out of the oven looked quite nice, but...


Touch them, and they will disintegrate. Accordingly, their texture is rather unpleasant.

The internet tells me "way too much flour". Maybe I should have added an egg, or some milk, or something?
Next time I'll look up a recipe instead of making it up. To be fair to me, I did look up a recipe, but bloody Americans use stupid measurements like "cups of butter", what the hell? Is it so hard to provide weights in ounces? Something, at least, that my scales can cope with?

The flour was near the use by date, so really the only loss was about 150g of butter. And a lot of time. Oh well...

Would you believe, this is the first time I've cut a cookie since I was a child?

Hmm... I wonder... could I make up some pasta dough and cut out Playmo pasta pieces? Okay, they'd be a little, well, huge, but hey... ☺


I'm making baked potato. This will be covered in cheddar and peppered. At least I know I pretty much can't screw that up.


Impending awfulness

On the way home the other day, it was a race... well, okay, my car goes at about 29mph so not much of a race... between myself and the incoming thunderstorm.

To the left (the south), nice blue sky with the odd fluffy cloud.
To the right (the north), black, with the odd dragon flying around.

Ooh 'eck, this looks bad
Ooh 'eck, this looks bad.

I got back and got in before the contents of the English Channel dumped itself onto the land. Thankfully I missed the lightning (that went to the east) but got a good amount of rain.


Speaking of impending awfulness, next Saturday I'll be at work... at 5am. :(



I cut upon the two melons that I had brought in earlier in the week. The first one I tried wasn't particularly nice, and rather soft. I suspect it might have been a little too ripe?

The second one? Lovely. Just a shame they're so small as I could have eaten my way through a lot more of it.

A lovely melon
A lovely melon.

I didn't bother to keep the seeds. It's an F1, so whatever comes out of the seed will not be this melon. What this means is that the original (F1) seeds were created by cross-pollinating two different melon varieties (no, they aren't genetically modified, cross-breeding is a technique way simpler and older than tweaking the genome). It can produce a good robust plant as the result of the attributes of both of the species used, but the seeds within the fruit of these plants won't breed the same. It'll sometimes be only one or other of the original types, or otherwise some deformed frankenstein as a result of the highly selective inbreeding used to create the parent seed. This is why people don't tend to make use of F1 seeds.
Plus, it isn't exactly as if a new pack of melon seeds is that expensive...

Now that I know it'll continue to ripen off the plant (some melons don't), I have just brought in two more that aren't ripe but haven't been nibbled on.


Daily backdrop - part two

Following on from yesterday's program to pick a random daily backdrop at boot time comes the other side - the desktop application.

This serves two purposes. The first is to continue to change the backdrop for systems that are always on, and also to work around the problem of the failure to pick a new backdrop if the system obtains its time from NetTime.

The core of this application is pretty much the same as the program presented yesterday. The difference is that it installs itself as a Wimp task, and will check the day every minute, changing the backdrop if the day value changes.

In the case where the system obtains its time from NetTime, there will be a delay of a minute before the backdrop is changed. This is because NetTime usually corrects the system date and time a couple of seconds after the Desktop has started, which is after ChooseBD has done it's thing.

I did try to copy across the disc development sources (about 33MB) to see if NetTime broadcast any "time has changed" notification, but ShareFS responded by crashing hard and taking out the Filer and various other apps. So... let's just say it's a minor inconvenience you'll have to put up with. You could, if it bugs you, alter the PollIdle time to check more frequently? This shouldn't put too much load on the system as it's a tiny slot (32K) and when paged in it just makes a couple of SWI calls to calculate the date and compare. I've just set it to a minute as the delay doesn't bug me.

The code contains detection for Pinboard2 to pass some extra settings in this case - namely "-FullScreen -BlendedText". The use of -FullScreen is most likely the most appropriate option for loading various images; and -BlendedText gives the nicest results if you're using a translucent iconbar.
This does not overwrite your configured settings, it's just what is applied when choosing a new image.
Edit the code (it's right at the end) if you prefer something different such as scaled or tiled.

Today's desktop
Today's desktop. Cute, isn't she?

Today's song - "The Other Side" by Sirenia.

Here's the code. The core is pretty much the same as yesterday. This one goes in !Boot.Choices.Boot.Tasks.

REM >ChseBDTask
REM Choose Backdrop task side - version 0.01
REM by Rick Murray, 18th September 2022


REM Force ourselves down to a 32K slot, we don't need any more
HIMEM = (32 * 1024) * 2
SYS "Wimp_SlotSize", (32 * 1024), -1

maxentries% = 64
ourentries% = 0
imgdir$ = "Boot:^.Documents.backdrops"
currf$ = "<Choices$Write>.Boot.Tasks.PinSetup"
copyf$ = "<Choices$Write>.Boot.Tasks.__PinSetup"
settings$ = "<Choices$Write>.HeyRick.ChooseBD"
DIM entry$(maxentries%) : REM This consumes 16K if 64 entries
DIM buffer% 255
test% = FALSE

REM Sanitise
REM Images directory must exist and be a directory
SYS "XOS_File", 17, imgdir$ TO type%
IF (type% <> 2) THEN END
REM PinSetup file must exist and be an Obey file
SYS "XOS_File", 23, currf$ TO type%,,,,,,ftype%
IF (type% <> 1) THEN END
IF (ftype% <> &FEB) THEN END

REM Check which version of Pinboard is in use
pbtwo% = FALSE
SYS "XOS_Module", 18, "Pinboard" TO , num%, , code%
hlps% = code% + code%!20
IF hlps%?0 = ASC("P") THEN
  IF (hlps%?9) = ASC("2") THEN pbtwo% = TRUE

REM Does our settings file exist?
REM If so, load up the day number stored in there.
SYS "XOS_File", 17, settings$ TO type%
IF (type% = 1) THEN
  fp% = OPENIN(settings$)
  line$ = GET$#fp%
  setupjj% = VAL(line$)

REM Initialise as a task
SYS "Wimp_Initialise", 310, &4B534154, "ChooseBD", 0 TO , handle%

REM Now null poll, we check our status once per minute
  comeback% = TIME + 6000
  IF test% THEN comeback% = TIME + 300
  SYS "Wimp_PollIdle", 0, buffer%, comeback% TO reason%

  IF ( reason% = 0 ) THEN PROCcheck
  IF ( reason% = 17) AND ( buffer%!16 = 0 ) THEN
    SYS "Wimp_CloseDown"


  REM Check the current date
  buffer%?64 = 3
  SYS "OS_Word", 14, buffer%+64
  SYS "Territory_ConvertTimeToOrdinals", -1, buffer%+64, buffer%
  yy% = buffer%!&18
  mm% = buffer%!&14
  dd% = buffer%!&10
  jj% = (1461*(yy%+4800+(mm%-14)/12))/4+(367*(mm%-2-12*((mm%-14)/12)))/12-(3*((yy%+4900+(mm%-14)/12)/100))/4+dd%-32075

  REM Force changing (for testing)
  IF test% THEN
    REM Hold Left and Right Ctrl and Alt keys
    SYS "OS_Byte", 129, (4 EOR &FF), &FF TO , lc%
    SYS "OS_Byte", 129, (5 EOR &FF), &FF TO , la%
    SYS "OS_Byte", 129, (7 EOR &FF), &FF TO , rc%
    SYS "OS_Byte", 129, (8 EOR &FF), &FF TO , ra%
    IF ( lc% AND rc% AND la% AND ra% ) THEN setupjj% = 0

  REM Same date? Nothing to do then.
  IF ( jj% = setupjj% ) THEN ENDPROC

  REM Okay, it has changed
  setupjj% = jj%
  SYS "XOS_CLI", "CDir <Choices$Write>.HeyRick"
  fp% = OPENOUT(settings$)
  BPUT#fp%, STR$(setupjj%)

  REM Enumerate the available files
  start% = 0
    SYS "OS_GBPB", 12, imgdir$, buffer%, 1, start%, 255, 0 TO ,,,num%,start%
    IF (num% <> 0) THEN
      REM We have something, but we only want Sprites of JPEGs.
      IF ( ( buffer%!20 = &FF9) OR ( buffer%!20 = &C85) ) THEN
        SYS "XOS_GenerateError", buffer%+24 TO buffer$ : REM So very lame
        entry$(ourentries%) = buffer$
        ourentries% += 1
  UNTIL (start% = -1)

  REM Sanitise - we do have images, right?
  IF (ourentries% = 0) THEN ENDPROC

  REM Pick one at random
  which% = RND(ourentries%)
  which% -= 1 : REM Counting from zero

  REM Obtain it's canonical name
  SYS "OS_FSControl", 37, "Boot:^.Documents.backdrops."+entry$(which%), buffer%, 0, 0, 255
  SYS "XOS_GenerateError", buffer% TO canoname$

  REM Now update the PinSetup file accordingly
  currf$ = "<Choices$Write>.Boot.Tasks.PinSetup"
  copyf$ = "<Choices$Write>.Boot.Tasks.__PinSetup"
  SYS "XOS_FSControl", 25, currf$, copyf$
  in% = OPENIN(copyf$)   : REM Read from the copy
  out% = OPENOUT(currf$) : REM Write to the in-use

  REM Copy across the file verbatim except the part we're changing
    line$ = GET$#in%
    REM Lowercase a copy for matching
    linecopy$ = line$
    FOR scan% = 1 TO LEN(line$)
      MID$(linecopy$, scan%, 1) = CHR$(ASC(MID$(linecopy$, scan%, 1)) OR 32)

    IF (INSTR(linecopy$, "backdrop ")) THEN
      REM This is the part we want to alter.
      REM Look for "::"
      posn% = INSTR(line$, "::")
      IF (posn% = 0) THEN
        REM The user has entered a relative path here.
        posn% = INSTR(line$, "<")
        WHILE ( MID$(linecopy$, posn%, 1) <> " ")
          posn% -= 1
        posn% += 1 : REM Step over the space

      REM We know where the filename begins, so find the end
      end% = posn%
      len% = LEN(linecopy$)
      WHILE ( ( MID$(linecopy$, posn%, 1) <> " " ) AND ( end% <= len% ) )
        end% += 1

      REM Was it not actually found?
      IF (posn% = 0) THEN
        REM Neither an absolute path nor a relative one.
        REM Might be something like Boot:^... but we'll
        REM just overwrite the line and too bad. PinSetup
        REM does NOT create these sorts of things.
        BPUT#out%, "X Backdrop -Colour &00000000 -TextColour &ffffff00 "+canoname$
        IF (end% >= len%) THEN
          REM We only need to extract out the beginning
          linecopy$ = MID$(line$, 1, (posn% - 1)) + " "+canoname$
          REM We have information on both sides to deal with
          linecopy$ = MID$(line$, 1, (posn% - 1)) + " "+canoname$ + MID$(line$, (end% + 1))
        BPUT#out%, linecopy$
      BPUT#out%, line$


  REM Tidy up files
  SYS "XOS_CLI", "SetType "+currf$+" Obey"
  SYS "XOS_FSControl", 27, copyf$, , 0, 0, 0, 0, 0

  REM Now set this backdrop
  IF ( pbtwo% ) THEN
    SYS "XOS_CLI", "Backdrop "+canoname$+" -FullScreen -BlendedText"
    SYS "XOS_CLI", "Backdrop "+canoname$



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! ☺ ADDING COMMENTS DOES NOT WORK IF READING TRANSLATED VERSIONS.
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.

David Pilling, 19th September 2022, 15:23
My Cookies - equal weights of butter, sugar, self raising flour, oats and ground almonds.  
Give the butter, almonds and sugar a very good mixing, add a small amount of water, and you really can't mix too much at this stage. Add the flour and oats, minor mix. 
I usually have 60 gm (2 oz) weights, and add a tablespoon of water. 
IMHO the mixing counts, got to mix that butter and sugar until it is white and creamy and if you don't your biscuits will not be crisp. 
Self raising flour is optional, just makes lighter biscuits because they rise. 
Oats is usually oat bran, but breakfast oats out of the box work. Or you could replace the oats with more flour or different flour. 
David Pilling, 19th September 2022, 15:24
... and it also does not work without the water.
Anon, 20th September 2022, 12:34
Disintegrating biscuits sounds a bit like there's not enough moisture in there. Try adding some water next time (or maybe milk)? Adding egg would turn it from a biscuit to a cake though. (It's the old Jaffa cake-versus-biscuit argument again...) 
Quick suggestion (unrelated to biscuits). Assuming you're using an external CSS file for this blog, would you give some consideration to changing the default font to Verdana rather than Times? It's much easier to read on-screen. You can always add a Media query to the CSS to switch back to Times if someone wants to print the page. (I've set up a CSS override here that I can turn on, the text is far more readable in Verdana both on my 72dpi Windows display and the ~150dpi display on my Android phone.)
Gavin Wraith, 20th September 2022, 16:38
Another quick suggestion. Add the line 
<link rel="stylesheet" href="file:///<ro$style>" type="text/css"> 
to the header. That would let NetSurf users interpose their own CSS.
Anon, 20th September 2022, 17:07
In Firefox: Shift-Ctrl-I (on Windows at least), select the Style Editor tab and change the font stack to suit. Only works until the page gets reloaded though, but Times Roman (or other "normal" sized serifed fonts) is kinda hard to read on Windows at 72dpi. If you have a fancy 144dpi display (similar to X/Yeig 0 on RISC OS!) then it might be different.
Rick, 20th September 2022, 17:55
Anon - did you by any chance grow up reading websites rather than books? 
I find sans serif fonts make my reading rather slower. 
I read on a phone, and on RISC OS on either a nineteen inch 1280x1024 screen or a *seven* inch 1024x600 screen. I can understand if reading sucks under Windows if you're using XP... but it's been many years since then, does it still suck? 
David, sounds a bit like a flapjack. 
Are the almonds optional? Not a fan... 
I have Quaker Oats, that ought to work, but not sure a cookie cutter would work there as oats are kind of big. How thick should they be?
David Pilling, 20th September 2022, 22:14
Almonds - can be replaced with ground walnuts, hazelnuts, Brazil nuts, pecans, pistachios. 
Oats - better if turned into ground oats/oat flour. 
All this grinding, food processor. 
The recipe is 1 lot sugar, 1 lot butter, 3 lots something else, make it up. Smashed up rice crispies, Corn meal (Polenta), Rye flour... 
All things I have tried. 
How thick, depends how you like them, 5mm. 
Seemingly Mary Berry considers her skill to be producing recipes that are reproducible. 
The above is akin to my software, which never goes wrong for me.
Anon, 21st September 2022, 10:27
Rick - yes, it does still suck trying to read Times on-screen on Windows, even with Windows 10. Verdana and Calibri are nice compromises, they're "semi-serif" fonts. Verdana in particular was specifically designed to be used for on-screen viewing. 
I wouldn't recommend using Arial (Homerton) for body text though, I take your point on that. Back when I used RISC OS I configured Browse to use Trinity for body text and Homerton for headings. With the RISC OS font rendering it was lovely. Sadly despite Windows now using sub-pixel rendering (ClearType) it doesn't do things like hinting and scaffolding that RISC OS used to, the result being that serif fonts on-screen still suck on Windows. 
If you add Verdana to the beginning of the font list in your CSS file it'll use that font on Windows but then work its way down the rest of the font stack for other platforms. So you can have your cake and eat it!

Add a comment (v0.10b) [help?] . . . try the comment feed!
Your name
Your email (optional)
Validation Are you real? Please type 70548 backwards.
Your comment
French flagSpanish flagJapanese flag
«   September 2022   »

(Felicity? Marte? Find out!)

Last 5 entries

List all b.log entries

Return to the site index



Search Rick's b.log!

PS: Don't try to be clever.
It's a simple substring match.


Thank you:
  • Fred
  • Bernard
  • Michael
  • David

Last read at 07:10 on 2022/10/05.

QR code

Valid HTML 4.01 Transitional
Valid CSS
Valid RSS 2.0


© 2022 Rick Murray
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.


Have you noticed the watermarks on pictures?
Next entry - 2022/09/20
Return to top of page