Jump to content

Type keyword(s) to search

Small Talk: The Welcome Mat


Recommended Posts

(edited)

Perfected the logic of my package dependency program. It now correctly identifies packages required to build the base package.

I tried three separate algorithms to guarantee that the packages are built in an order that guaranteed that each package is built after any/all dependencies. The third algorithm works well and is quite simple.

The list of packages are in no particular order and the final code does not care. It processes each package in the list and if it finds packages flagged as installed, it skips over them. If it finds a package that is a leaf-node (no dependencies) it builds/installs it, flags it as installed, and moved on. If it finds a package that is not a leaf-node, it checks it's children. If all of them are installed, the node I'd is built, installed and flagged and we move on. When the end of the list is reached, you start again at the top. Eventually, you will traverse from top to bottom and not find any packages that are not installed. That means that all packages are installed and there is nothing else to do because you're done. 

Now that the mechanism works to identify the order of installation, I will work on extending the program to generate a script to actually do the download, build and install for each package in turn, in the proper order. 

Watched Walking Tall, with The Rock as a soldier returning from his years of service to discover his home town is now overrun with crooks and corrupt cops. He runs for local sheriff, wins and cleans up the town. Based on a true story. 

I had tuna rice with pumpkin, broccoli, cucumber and lentils for lunch. Tasted pretty good. Mo got chow. I bought 5Kg of chow a while back and he will get that (not exclusively) while it lasts. My dinner was boiled potatoes, carrots and cabbage with the last of the bully stew over the top. 

Thank goodness I like simple food. That doesn't mean I don't enjoy fancy food too, but it's good that simple dishes can be made tastily and are enjoyable to me. 

Mo is here in bed with me and he seems to have finally found a spot he finds comfortable. He was moving around and rooting about but has settled at last. I will bet that when I turn over he will be sleeping directly on top of a nest made from my cover-sheet.....

Edited by Netfoot
  • Like 1
(edited)

Phone keeps rebooting every few mintes.  Sometimes it reboots and the keyboard won't work.  A few minutes later after the next reboot, the keyboard comes back.  Gotta use the desktop tom to post this.

Mo right here with me, cleaning his feet. He is obscessive about his feet.

We had penne pasta with tuna, broccoli, onion & cabbage.  Tasted pretty good. Mo ate his in a real hurry!  There was sufficient leftovers for dinner.  I was going to warm it up but Mozie came along and demanded his dinner unexpectedly early so we had it at room temperture.  It still tasted pretty good. I grated the last of the cheese over it at lunchtime but there was n0one none left for dinner -- didn't matter.  We are low on teabags. I have only 4 left.  That would get me through the day tomorrow but there wouldn't be any tea on Tuesday morning.  I have to get more and I could go tomorrow or wait until Tuesday morning.  

I could get another 80 decaf bags for $11.49 or buy 25 fully caffinated bags for $2.75 instead.  14⅓¢  or 11¢ per bag.  The caffinated ones are not good for me. I can decaf them by steeping them in hot water for 30 seconds before using them but its a PITA.  If I'm buying teabags I might as well buy more milk.  Only got ½L remaining.  Sugar is good for now.  The more expensive bags are from the supermarket where the Book Tent ladies set up on the first Tuesday of each month. That would be day after tomorrow.  Mo & I have not seen the ladies for many months.  

Or I could stop drinking tea and save our $80 for groceries later if we don't get a woodworking job soon.

My program is making slow progress.  Having successfully build the dependency tree of packages and generated a build-order list, I am now extending the program to use that build-order list to create a separate program which will actually do the job. A package processing script that can be run stand-alone. 

The package processing script will process each package in the build-order list, and for each, it will 

  1. Switch to the working directory.
  2. Fetch the build script archive from the net.
  3. Fetch the script signature from the net.
  4. Use the signature to confirm that the script archive is not corrupted. 
  5. Unpack the build script archive to create a build directory.
  6. Move the build script archive into the build directoy.
  7. Switch to the build directory.
  8. Fetch the package source tarball(s) from the net.
  9. Run the build script to build the package.
  10. Move the new package to the packages directory.
  11. Run the package installer to install the package. 
  12. If more packages remain, goto #1.

I love writing a program whose job is to write another program which has to do an entirely different job. It's always tricky as hell. What makes it challenging is double-interpolation.  

Suppose we want a simple program that asks for your name and then prints a simple greeting:

print "Who are you?\n";
chomp( $yourname = <STDIN> );
print "Greetings, $yourname! Nice to meet you!\n";

This is fairly easy to follow. Line #1 prompts for information. Line #2 reads your response from the Standard Input (keyboard), stores the response in a variable ($yourname) and then "chomps" that value.  (In the language I'm using here, chomp removes a trailing NEWLINE character.) Line #3 prints a greeting, with your name embedded:

Who are you?
Joe
Greetings, Joe! Nice to meet you!

All well and good. but suppose we wanted to write a program that wrote this program? We might try:

$new_program = "
       print "Who are you?\n";
       chomp( $yourname = <STDIN> );
       print "Greetings, $yourname! Nice to meet you!\n";
";
print $new_program;

But when we run this, we get this response:

Bareword found where operator expected at line 2, near "print "Who"
 (Might be a runaway multi-line "" string starting on line 1)
       (Do you need to predeclare print?)
String found where operator expected at 2, near "print ""
       (Missing semicolon on previous line?)
String found where operator expected at /home/amcleod/bin/quick line 4, near """
       (Missing semicolon on previous line?)
syntax error at line 2, near "print "Who are "
Execution of program aborted due to compilation errors.


The problem is simple. Our $new_program = " . . . "; statement defines a value limited by double-quotes. That value is our new program.  But the contents of the double-quotes include other double-quotes.  We need to escape the inner double-quotes to prevent them terminating our new program early:

$program = "
       print \"Who are you?\n\";
       chomp( $yourname = <STDIN> );
       print \"Greetings, $yourname! Nice to meet you!\n\";
";
print $program;

Notice we have escaped (by adding a leading backslash) the four inner double-quotes of our new program.  This prevents the errors caused by the inner double-quotes, and the program now runs fine, generating our new program:

       print "Who are you?
";
       chomp(  = <STDIN> );
       print "Greetings, ! Nice to meet you!
";

But wait.  Why are our two print statements now each split onto two lines? Because the original print statements were terminated with \n ( an escaped "n"). This is secret programmer code (shhh!) for "Insert a NEWLINE character at this point". Backslashes in double-quotes strings  introduce "escape sequences".  The \n escape sequence tells the first program to insert NEWLINEs into the second program.  Which is not what we want.  What we want is for the second program to insert NEWLINEs into it's output. Simple solution?  Escape the escapes!

Also, what happened to the $yourname variables in our generated code?  Well, if a variable name appears in a double-quoted string, it is interpolated.  The variable name is replaced by the value of the variable.  And since the first program does not have a value for the variable, it interpolates an empty string in place of the variable name.  So we have to escape the variable name a well:

$program = "
    print \"Who are you?\\n\";
    chomp( \$yourname = <STDIN> );
    print \"Greetings, \$yourname! Nice to meet you!\\n\";
";
print $program;

When  we run this, we generate our second program which looks as follows:

       print "Who are you?\n";
       chomp( $yourname = <STDIN> );
       print "Greetings, $yourname! Nice to meet you!\n";


which when run in turn produces:

Who are you?
Nancy
Greetings, Nancy! Nice to meet you!


which looks correct. As you can see a simple three-line program had to have eight escapes added.  It gets progressively more difficult as the program your are writing gets larger.

But who would want to write a program to write another program. That hardly ever happens, right?

Go back and look at the end of the error messages included above.  You will see mention of "compilation errors". A compiler is a program which reads another program and converts it into an equivilent third program in another language. In this case, the compiler program is translating my program source code (in Perl) into the equivilent program in machine code. Because the only language a computer can understand is machine code. So unless it is written directly in machine code from the start (possible but very difficult and time consuming) every single program has to be compiled.  As a result, compilers are used millions of times a day all over the world to translate source code programs into machine code programs. Which is essetially analyzing the source code and writing a new program in machine code that is the functional equivilent.

Nowe that I've successfully fried your brain with all this crap, I am going to bed!

Edited by Netfoot
  • Useful 2
(edited)

Just watched a video about the incredible climb-rate of the McDonnell Douglas F-15 Eagle.

spacer.png

First introduced in 1976, it has a maximum rate of climb of 50,000 feet per minute.

Yawn!

The English Electric Lightning also has a maximum rate of climb of 50,000 feet per minute.

spacer.png

It was introduced in 1954, 22 years before the Eagle.  (This photo is of the BAe Lightning, built under license from English Electric. Vertical fin flat instead of rounded.) It had an operational speed over twice the speed of sound and could climb vertically at mach 1. It not only could, it did!  That was it's normal operating envelope (see photo). Sit on the ground until the snooping Soviet Tupolev bombers got close and then go straight up and chase the away.

The "Thunder & Lightning" takeoff was so famous that Lightnings displayed in aircraft museums are usually displayed vertically. Here is a photo I took at in the museum at RAF Cosford  in 2017.

YT videos here, here and here. (Third one has a cameo appearance of a Bone in the background, right at the beginning.}

The Lightning had another common trick that it used to perform: The cockpit would often burst into flames on touch-down. It's pilots were rather blasé about that.

The Lightning was the only aircraft ever, to intercept a U2 spy plane.  U2s have been shot down by missiles (Gary Powers, etc) But the only interception was by a Lightning. The U2 pilot, secure at 88,000 feet, didn't see the Lightning coming because it attacked from above.

There was a company called "Thunder City" in South Africa that maintained a fleet of airworthy warbirds and you could pay a fee and go for a flight (as a passenger, of course). I worked out that a trip to SA and the fee would come to about $8000. You would be trained how to wear the flight suit, communuicate with the pilot, etc, and if necessary, eject. (Hopefully not!) After that, you told them what type of "mission" you wanted to participate in.

If you chose to go for a ride in a Blackburn Buccaneer, for example, you might want to experience an NOE flight. Nap Of the Earth. The unofficial catchphrase of the Buccaneer was "Twice the speed of sound, ten feet from the ground." They were used to fly undetected into other countries by following the roads below the levels of the surrounding trees.

Naturally, if you were riding a Lightning, you would want a mission that featured that "Thunder & Lightning" takeoff.

When my mother died she left me a little cash and I decided to go for this once in a lifetime opportunity to ride in a Lightning. My mission plan was "Take off, point her straight up and make the sky turn black in 60 seconds." I contacted Thunder City in SA... only to discover that they had closed their business 8 months prior, due to increasing government regulations.  It was a huge disappointment. 

If you ever saw Those Magnificent Men in Their Flying Machines you may remember that right at the end of the movie as the racers were landing their wood & canvas aircraft at the finish line, a flight of jets made a fly-by.  Those were Lightnings. I can't find a YT clip of that fly-by.  Maybe I should make one. 

Edited by Netfoot
  • Useful 1
(edited)

Phone playing the arse. It was discharging st state of about 3% per minute this morning. Seems to have slowed now.  I tested it with a timer and got 2% in 15 minutes which is 12½ hours to 0%.

Had a great rice for lunch and corned beef & cabbage with onion & broccoli for dinner. Both tasted great! Mo enjoyed rice for lunch but had chow flavoured with a very little corned beef for dinner. He inhaled both. If cabbage was not do expensive and less likely to spoil, I'd eat corned beef g cabbage more often. Tasty and low carb.

Got a mug of tea here and two tea bags for tomorrow. This by rationing tea bags today. I drink tea a lot because it helps me eat less by making me feel full. Not to mention I enjoy a mugga!

 I think i will buy a box of cheap caffeinated tea bags tomorrow, along with a liter of milk. I must remember to lift up the gas cylinder and see how light it is. It might be time to get a refill so I don't get surprised in the middle of cooking meal. The gas station near Popular demands cash, and the ATM there charges me $3 to withdraw. I will need to go to my own ATM and draw off $50 if I decide to get the refill.

Been bingeing Survivor episodes. I don't understand how it is that the most loathsome players get kept around.

My program that writes another program? The program it writes now writes another program. Yes, the program writes a program that writes a program that in turn writes a third program. Why? For fun, of course. Naturally it doesn't work.

I thought I'd write a program that builds the dependency tree, then creates a second program that uses the dependency tree to build all the packages, and then writes a third program that installs all the packages it just built. Unfortunately, I didn't think it through.  

When you build a package, it will not build successfully if any required packages are missing.  In this case, missing means not installed. So I can't build them all and then install them all. Because having a dependent package built but not yet installed, means the parent package build(s) will fail for want of an installed dependency. 

So the build process for each package in the build-order list must include installation, before the next package is processed. And if I build and install each package in turn, there will be nothing for the third program to do. It was supposed to do. So my brain fart cost me a day of stupid coding and tomorrow I got to go and carefully remove all that useless code.  Without breaking the original code. I am an idiot!

Puppy stole my shoe several mornings in a row, now. No photos because the camera takes photos that are just dark & murky.

Wonder what the blood sugar will be tomorrow after I ate. Carb-free meal for dinner? It's been difficult these last few weeks. You can see where the change occurred round the middle of April. But I think I may be getting it back under control. 

Screenshot_20250602-223454.thumb.png.f2d8dc98f63d534fbc365ec4d82df0d9.png

Seems like the numbers are still up & down, but the amount of red is diminishing and the green is coming back. I'd like Dr. Kristi to look at this but I will wait until next month when I go for a prescription next month and see what she says then. She might say it is nothing to worry about or she might increase my meds. 

Mo was lying here behind me a short while ago but he had ninja'd away. He will be back when the lights go out. But that wont be for a while because I want to do some netsurfing. 

So I will drink my tea and surf away. 

ETA: In the time it took to write this post, the battery fell from 100% to 67%.....

Edited by Netfoot
  • Like 1
(edited)
9 hours ago, Quilt Fairy said:

I was a mainframe programmer.  The only job I had where I was truly happy and looked forward to going to work in the morning. 

God bless you!

I started my journey in 1975, learning my trade on mainframes. Assembler, Fortran, Cobol, Basic, Algol 60 & 68, Snobol... Punch your code on cards with an IBM 029. Submit and wait for the results to come back off the line printer.  The DecWriter IIs were far more convenient. Glass terminals came later. All mainframes with huge banks of flashing lights like something you'd see in that phallic submarine on Voyage To See What's On The Bottom.  

Voyage-3L.thumb.jpg.509aee7dbd5129c6ee71d6135d38af8b.jpg

The machines ran on the most outrageous mechanical UPS ever. Simple, clever, functional, but crazy! So crazy that if I described it to you here, you would think I was lying about it!  

I decided I would actually buy my own computer the moment I discovered you could get a PDP-11/34 second hand for the very reasonable price of only £28,000.  

Menwhile some clever person realized that these new fangled microprocessor chips like Intel's 4-bit 4004 could be used for mor than embedded systems. I've actually used a Science of Cambridge MK14!

spacer.png

And it isn't the most primitive machine I've ever used, either! A very talanted guy I knew, built a machine from his own designs which used rows of LEDs to display address and data busses in binary and a row of 16 toggle-switches for input!

A couple years later I was soldering together a NASCOM-1 with a Zilog Z80A CPU, 1K of EPROM and 2K or RAM, a 48-key QWERTY keyboard and output to a TV modulator. Hand-coding in hex, using op-codes from memory and computing relative offsets in my head. Never looked back.

I don't know if it would be presumptious to describe my life as a Journey, but if so, these machines have been with me all the way. 

Edited by Netfoot
  • Like 1

Shopping!

  • Gas Cylinder: $42.52
  • Gasoline: $10.00
  • 4x ¼L Milk: $8.76
  • Tea bags (50): $5.50
  • 2x Corned Beef: $9.58
  • 840 gr. Cabbage: $5.87
  • 986 gr. Onions: $3.40
  • 30 oz. Mayo: $9.45

Total of $95.08 leaving a whopping $36.91 in the bank.  

Gasoline has gone up by 6¢ a liter.  Milk not availabhle in 1L cartons so had to buy four quarters which works out more expensive.  Bought the cheap teabags. A mayo addiction is a terrible thing. 

With what's left in the bank plus the next welfare cheque (when it drop in 10 days time) I will be able to pay the telephone bill, eight days before the next telephone bill drops.

went to open the gate to go out and fouunf my new(ish) bath towel all balled up on th driveway.  I wonder how that happened. 

 

  • Like 1
(edited)

On my way out this morning, I found this on the road to Popular:

PXL_20250603_161538485.thumb.jpg.a083e7b63c4bd9828ce8f59e1ef8b96c.jpg

To the left of the container is a building being renovated and they are storing tools and materials in the container. 

To the right of the truck is a building site that I'd is having foundations dug out and concrete cast. The truck contains steel and cement.

In the middle, is where an asshole driving an SUV thought would be a good place to park, lock the vehicle and go over into the mall.

(Only assholes drive SUVs.)

I had to reverse a long way before I could turn around and find an alternative route out.

Edited by Netfoot
  • Mind Blown 1
4 hours ago, Netfoot said:

Shopping!

  • Gas Cylinder: $42.52
  • Gasoline: $10.00
  • 4x ¼L Milk: $8.76
  • Tea bags (50): $5.50
  • 2x Corned Beef: $9.58
  • 840 gr. Cabbage: $5.87
  • 986 gr. Onions: $3.40
  • 30 oz. Mayo: $9.45

Total of $95.08 leaving a whopping $36.91 in the bank.  

Gasoline has gone up by 6¢ a liter.  Milk not availabhle in 1L cartons so had to buy four quarters which works out more expensive.  Bought the cheap teabags. A mayo addiction is a terrible thing. 

With what's left in the bank plus the next welfare cheque (when it drop in 10 days time) I will be able to pay the telephone bill, eight days before the next telephone bill drops.

went to open the gate to go out and fouunf my new(ish) bath towel all balled up on th driveway.  I wonder how that happened. 

 

I grew up with condiments, love me some mayo! My son will not eat any condiments-no mayo, mustard, ketchup etc. He will only eat ranch dressing on fries or pizza. LOL

  • Like 1

Mo is with me, here in bed.  I went off on Garden Patrol and he did not come with me. I thought I'd be patrolling alone for the first time since he came home as a 5 lb. puppy but I had not gone far before a patch of darkness shot past me and took the lead. 

Puppy had chow for lunch & dinner. I cooked a nice rice with bully, black beans, broccoli and onion. Had half for lunch and half for dinner.

I have noticed that when I buy broccoli these days, each flower Vines with a long, thick stem attached. I know that a lot of people cut the stems off and throw them away. I cut the stems off and eat them! I use my cleaver and go chop-chop-chop-chop-..... and cut the stems into very thin slices. Much thinner than my mandolin will cut, because it is stuck on ⅛" slices. Those thin slices of stem cooked with the chopped flowers eat very well. In fact today, there was no broccoli flowers, just stems.

Anyway, the rice tasted great despite the fact that I am almost out of granulated garlic and completely out of onion powder. I decided not to buy more today because I wanted to hold back enough that I can pay the phone bill.

Followed up with a mugga. Using caffeinated tea bags and have to decaf them before use. A real PITA but it is $5.50 vs. $11.49 so...

Getting little glitchy issues with my program. For instance one if the package source tarballs turned out to be a .tar.lz file and my program was not able to uncompress .lz files. It could handle .zip, .gz, .tgz, .xz and .bz2 compression but today I had to replace the 5-line subroutine with a 46-line block of code comprised of three subroutines to cater for .lz files as well. At least it is now easily extensible, in the event that additional compression types crop up. 

But another issue has cropped up in that sometimes I try to acquire the build script from the net and the program fails to find the link to it. If I look at the page I can see it right there but when the program searches forgot, it does not find it. I have checked my code and mentally worked out exactly what it is doing, step by step, to locate the link and it seems fine. It looks like it should reliably find it without issue. But it isn't finding it. It was yesterday but it no longer is. I have not changed that code. It looks like it should find it but it doesn't. So obviously there is something wrong with the code but I just can't spot it. 

Mo has vanished again.

  • Like 1
14 hours ago, Netfoot said:

Punch your code on cards with an IBM 029. Submit and wait for the results to come back off the line printer

I remember doing that!  Sadly, I was a few years too early (I graduated in '73) for programming to be an option I'd even considered as a career.  So I wasted 20 years as an engineer at the phone company anxiously wondering how early I could retire.  Then they laid me off before that became an option.  So I went back to school and became a Cobol / DB2 programmer.  Not the best or most creative, but I was competent, and, as mentioned above, happy. 

Never worked with DB2.  Finished up in an Oracle shop.

Being happy is the goal.  And I was.  Honestly, when I was at college, I became extremely interested in system software.  Used to write simple compilers and assemblers for fun!  My career was entirely accounting, but that can be fun too. And I was responsible for the system infrastructure as well - developing networking strategies, building and configuring firewalls...

And I've always done fun stuff at home too, just to keep my interests alive. Built me a Beowulf cluster once.  Just for fun.  Eight nodes. Pentium 90s, which will tell you how long ago this was.  They talked via an 8-port, 10/100 switch.  One of the nodes was double-homed so I could get in and talk to the cluster.  It really was fun to play with, but I didn't have any true use for it.  All I ever did with it was encode ripped WAV files to MP3.  Had a ball, though.

(edited)

Been working on my package build/install script.

What prompted this is that I was using the old package "mplayer" as my video playback engine and I wanted to switch to the later "mpv" package.  MPV was not installed on my system so I would have to download the source code and a matching package-building script which would create an installable software package for MPV. But MPV depends upon other packages to function.  Before the MPV package can be built, the dependent packages must already be installed.  If they aren't, you must download/build/install them.  Which may require that their dependencies be downloaded/buildt/installed. 

My program (SBcrawler) starts with a link to the package I want (MPV). It isolates links to the source code and the build-scripts and also links to any dependent "children" packages,  It follows the child-package links to identify their source, build-script and children links and keeps drilling down until there are no more dependent child-packages unaccounted for.  The tree looks like this:

mpv
 +-luajit
 +-libass
 +-mujs
 +-libplacebo
       +-meson-opt
       |     +-build
       |      |    +-project-hooks
       |      +-wheel
       |           +-installer
       |           +-flit_core
      +-glad
            +-setuptools-opt
            +-wheel
            |     +-installer
            |     +-flit_core
            +-packaging-opt
                  +-build
                        +-project-hooks

It looks like a total of 19 packages to be installed. But if you look close, you will see that build and wheel  get used twice, but they (and their dependent children) don't need to be installed twice.  And in fact, a check on the system shows that both build and wheel were already installed at a previous date (April 27th), so they and their children (in red) don't need to be installed at all!  This drops the number of required packages from 19 to 9 (in black), including the final target of mpv.

SBcrawler sorts these 9 packages into build-order so that packaging-opt and setuptools-opt are built & installed before glad, that glad and meson-opt are built & installed before libplacebo and that libplacebo and mujs and libass and luajit are built and ijnstalled before we (finally!) build & install mpv!

Finally, SBcrawler writes a second program (in this case it's called Build_Package_mpv) that automatically downloads, builds and installs the 9 packages in the correct order.  It's taken several days to get it to where I thought it might actually work.  So I just executed Build_Package_mpv and sat back while it did all the work I would otherwise have had to do by hand.

It worked perfectly!  I just tested it out on an episode of Survivor. (Yes, I know...)

I've always said that the primary characeristic needed for programming is laziness.  You don't want to spend six hours manually downloading, building and installing packages?  Simple! Lazily spend six days writing a program to do it for you! I know, it sounds counter-productive: six days of work instead of six hours.  But the next package I decide to install won't take six days.  Or six hours.  I will simply run  SBcrawler again to produce Build_Package_nextpkg and run that. It will be all over in six minutes while I while I make a mug of tea.

Edited by Netfoot
  • Useful 1
(edited)

After the trouble I had yesterday manually drawing up that dependency tree, I wrote a subroutine called tree() that produces tree diagrams automatically.  With or without pre-installed packages shown.

Since I already installed mpv and therefore all the packages in that dependency tree are now installed, I switched to a new package: yt-dlp for testing.  This is a program that downloads YT videos.  I watch a lot of YT videos but I hardly ever download them, but it is useable as a test vehicle for the tree() subroutine.

Here is the tree including all pre-installed packages and showing multiple uses of the same package:

-- yt-dlp
   +- build ✔
   |  +- project-hooks ✔
   |     +- installer ✔
   |        +- flit_core ✔
   +- hatchling
      +- pluggy
      |  +- setuptools-scm-opt
      |     +- importlib_metadata
      |     |  +- zipp
      |     |     +- setuptools-opt ✔
      |     |        +- wheel ✔
      |     |        |  +- installer ✔
      |     |        |     +- flit_core ✔
      |     |        +- packaging-opt ✔
      |     |           +- build ✔
      |     |              +- project-hooks ✔
      |     |                 +- installer ✔
      |     |                    +- flit_core ✔
      |     +- typing-extensions
      |        +- build ✔
      |           +- project-hooks ✔
      |              +- installer ✔
      |                 +- flit_core ✔
      +- editables
      |  +- build ✔
      |  |  +- project-hooks ✔
      |  |     +- installer ✔
      |  |        +- flit_core ✔
      |  +- wheel ✔
      |     +- installer ✔
      |        +- flit_core ✔
      +- pathspec
      |  +- build ✔
      |     +- project-hooks ✔
      |        +- installer ✔
      |           +- flit_core ✔
      +- trove-classifiers
      |  +- calver
      |     +- setuptools-opt ✔
      |        +- wheel ✔
      |        |  +- installer ✔
      |        |     +- flit_core ✔
      |        +- packaging-opt ✔
      |           +- build ✔
      |              +- project-hooks ✔
      |                 +- installer ✔
      |                    +- flit_core ✔
      +- setuptools-opt ✔
         +- wheel ✔
         |  +- installer ✔
         |     +- flit_core ✔
         +- packaging-opt ✔
            +- build ✔
               +- project-hooks ✔
                  +- installer ✔
                     +- flit_core ✔

Notice that there are many packages, a number of which are used more than once.  You will also see the ones that are ticked/checked -- these are already on the system.

Here is a dependency tree without the pre-installed packages:

-- yt-dlp
   +- hatchling
      +- pluggy
      |  +- setuptools-scm-opt
      |     +- importlib_metadata
      |     |  +- zipp
      |     +- typing-extensions
      +- editables
      +- pathspec
      +- trove-classifiers
         +- calver

Much simpler.  Far simpler.  No tickmarks because no pre-installed packages are included.  It would have taken me hours to go through the packages one by one, looking for packages already on the system and handling duplicates. SBcrawler did it for me in 8.795 seconds.

And when I run SBcrawler with the --script option instead of the --tree option, it generated Build_Package_yt-dlp for me in  8.347 seconds.  Running that will take considerably longer than 8 seconds because there is downloading, package building and package installing involved. But it will take far less time than downloading the source code and build scripts for each of the eleven required packages and building and intsalling each one by hand.

By the way, the dependency tree display looks much better on my system than cut'n'pasted to this forum:

dependency-tree.png.69e8f40de080e48c2bf47a43dce8cf97.png

I'm rather pleased with this little program. Later, I will fiddle with it to see if I can add minor, unnecessary, cosmetic improvements without totally screwing the code up so bad it never works again!

Edited by Netfoot
  • Useful 1

Cooked rice & bully for lunch with cucumber and onion. Tasted pretty good. Shared it with Mo who liked it too.  Dinner was corned beef & cabbage with onion & cubed cucumber. Mustard & garlic. Tasted good! Mo had chow and ate it all up.

Did a very little work on my SBcrawler program. It totally stopped working, of course. But eventually I spotted the stupid mistake I made that introduced a subtle bug into the code. Once spotted, the bug was quickly squashed. Anyway, I added an option to bracket pre-installed package names with user-supplied texts.  Like "<strong>" and "</strong>" which would make the text bold in a web-page or "\x1b[31;1m" and "\x1b[0m" which would make the text bright red on an ANSI console.  Don't really need these features but I guess I was just looking for something to do. I may go and improve this feature to accept words for colours rather than raw escape sequences. Then I could apply the colour to web pages or ANSI consoles alike.  Red, green, yellow, blue, magenta, cyan and white. Next time I'm looking for something to do to pass the time and keep the brain active.

You know, tree-drawing could be a useful tool for trees of many types of items. Not just software package dependencies. Perhaps I should develop a generalized package of my own that I could reuse as needed.  I have another program that analyzes my disk systems. It deals with filesystems built in volume groups made up of RAID ranks constructed from physical partitions on actual hard disks.  A hierarchal diagram option might be useful. I dunno if I want to get into that though. It could be complicated coming up with a system that handles potentially wildly different data-types in a general way. And if it includes directed graphs as well as trees. It is something that could get out of hand in a hurry. 

Watching miscellaneous TV episodes and playing with Mo all day. Tomorrow is Friday and I normally go and top up the larder to make sure Mo and I will get through the weekend without going hungry. No shopping tomorrow. Not unless I spend the money I have set aside to pay the phone bill.  Or buy tire #3. I would prefer not to do those things.  Because the phone bill and new tires are important. 

We got food.  We won't starve.  If that woodworking job doesn't come together soon, I can't speak for next week.

Tried to have a nap this afternoon but was wracked with cramps in my left leg.  From the hip joint to the toes.  Lasted for about three hours.  And just to make things more interesting, I am having arthritis problems in my right shoulder, elbow, hop and knee.  The elbow has been troubling me for several weeks. It makes it difficult to lean on my elbows. Which I apparently do a lot, given how often I forget, do it and get rocked with a burst of pain from the elbow. 

Mo is looking out the window. He has been very affectionate all day. While I was dealing with the cramp he very attentive and comforting. Ow! Just tried to rest my chin on my fist but the elbow..... 🙁

The window gives Mo an elevated observation point. He prefers to be outside to deal with people who dare to walk past the house. But he has to come in periodically to see who is on the approach. Now he's cleaning his feet again. He is cleaning his feet again, on the foot of the bed. 

Got to start looking for a book to read.

  • Like 1
1 minute ago, Lovecat said:

I seem to recall you saying that the guy who gives you woodworking jobs is the uncle of a certain famous Bajan pop star?  Her father just passed within the past week.  I don't know how close the brothers are, but it is possible he's wrapped up in family obligations.

No, not quite right.

My friend Maurice gives me woodworking jobs.  My friend Tony is the uncle of that famous Bajan pop star.  Maurice and Tony are both fellow members of my club.

I was not aware that her father had passed away.  Useful info. Thanks.

I screwed up. No surprise! I always do when it comes to this.

I put a package of dry lentils to cook. This well give me an extra ingredient to add to rice and other dishes. I start on full heat And after 5 minutes I drop the heat to a dimmer.  But I always forget to turn the heat down until I smell the lentils on the stove! By then the lentils can be burnt on the bottom if I don't smell them soon enough.  I caught this batch on the edge and added water after turning the fire right down. After some more boiling, they are edible but still firm enough to spend another 20 minutes in a rice pot without being completely overcooked. 

Speaking of rice, I made a good tuna rice with onion, carrot, corn and broccoli. I split this into two parts for Mo and myself. I sat to eat mine and I didn't see Mo so I didn't put his bowl on the floor for some reason.  Just as I finished mine, he wandered in and not seeing a bowl for him he wandered out again. I went and fetched him back and have him his bowl. He cleaned it out completely.

For dinner, I will.cook spaghetti and a bully beef sauce.  Unfortunately, there was no money for tomato sauce so it will have to be bully & onion with just simple spices - garlic powder, etc. I'm sure it will be OK and since Mo does not like spaghetti as much, I will give him chow with bully sauce over it as a sweetener.

Working on a new program. I will call it something like Disks or Drives or Partitions or something like that. It's purpose will be to display all partitions on the system and indicate how they are used (swap, mounted, unmounted, etc). Partition info will show the size of the partition, the size of any filesystem built on the partition, the free space in the filesystem, and free space in the partition (beyond the filesystem), and what that filesystem is part of, (raw disk device, RAID device or Volume Group).  Size of and free space in any raw disk device, RAID device or Volume Group can also be shown. RAID devices and Volume Groups are created out of other devices.  For instance a RAID device is usually built on two or more partitions on a raw disk device a Volume Group can also be built on one or more raw partitions or one or more RAID devices which are in turn built on partitions built in raw disk devices.  So it could be as simple as:

disk-device
---disk-partition

Or as complex as

disk-device
---disk-partition
------RAID-device
---------Volume-Group
------------Logical-Volume-partition
---------------filesystem

Collecting all this info won't be easy. I will have to figure out the easiest way to collect as much info as possible, them how to go full in the blanks where needed. 

Figuring out the best way to display this info is another idea.

And I'm thinking that for raw disk devices that are SMART-capable I could optionally query the self-monitoring capability of the devices and give hardware status as well. (To help spot failing drives before they do actually fail.)

Anyway I had he latest episode of MurderBot to watch, which I will do as soon as night falls. Light from the window washed out the screen which is in poor condition as it is. With my eyesight, I'd rather not deal with glare from the window on top of everything else.

And MurderBot is good, so far. Episodes way too short, but otherwise...

Edited by Netfoot
  • Like 1

Started Garden Patrol searching for my Crocs.  Only found the left full of rain water. Well, not full - see later. Searched the house. No luck. Second Garden Patrol, including crawling around in the wet and looking under the van. Still no dice.

Searched the house again, more carefully. Still no right shoe.  If I don't have that Croc I have to find my socks and start lacing on my steel-toed boots!

The holes in the bottom of them will eventually be so big they cease to be shoes and become spats.  But at least they allow most of the rain water to drain away.

This reminds me of a guy I met when I first started work. He was a Vincie and his name was Stafford. He was a voracious reader and a sci-fi buff.  He was also my boss for three years.  He told me that when he was a little boy, on his first day of school, his parents could not afford to buy him shoes. So he painted his feet black to disguise the fact that he was barefoot. I do have some black paint.....

By the time he was my boss he'd got his master's in mathematics from McGill. 

Dinner went as planned. Mo and I were both very satisfied.

Will save this, drink my tea, watch MurderBot and then crash out.  Gotta get up early tomorrow. Got a Croc to find.

ETA: Just found the missing Croc.  Ir was behind laundry basket #3.  I can't imagine why he would stash it there.  He can't actually walk behind there. He wouldm have to lean over or climb up on top and drop it down the back.  Anyway, it's found.

Air-conditioning for the sole:

PXL_20250607_030212446.thumb.jpg.d4b00aa2d1d0011b86b0525af95794cc.jpg

Edited by Netfoot
  • Love 1
4 hours ago, Netfoot said:

  But I always forget to turn the heat down until I smell the lentils on the stove!

I know you're on a limited budget, but do you not have an Alexa or something similar?   For those of us at the forgetful age it's a lifesaver.  As a timer I use it for everything from how long to steep my tea to how long the bleach has been in the toilet bowl.  And I never leave anything on the stove without setting her. 

  • Like 1

Made fry-bread for lunch. The recess There was not enough wheat flour son so I added a good amount of indian corn flour. Made four "loaves" and shared them with Mo. I tore them into little bite-sized pieces, added a tiny dab of PB to each one and tossed them in with Mo's unfinished breakfast chow. I just spread PB on my two, bit and chewed.  They tasted pretty good. I've not made fry-bread for a while. I like it but I prefer to have more ingredients to add like raisins or bacon bits. Or raisins and bacon bits.

For dinner, I boiled spaghetti and tossed it in a hot pan of onion and cabbage with pepper sauce. When the spaghetti was drained I tossed it into the pan and added a raw egg.

Mo had chow and raw egg too. Only his stayed raw, whereas mine quickly cooked in the few seconds it was in the pan. We both enjoyed our dinner. 

Watched a movie called Kate.  Silly plot about a young, female assassin who gets poisoned with something incurable and has 24 hours to figure out who poisoned her. Set in Japan, it was silly and I only watched because it was easier just lying there than getting up and finding something better.

Mo just came and demanded I move because I was blocking his path to the window. He had a peep and now he is curled up at the foot of the bed with his head on my foot. We still have Garden Patrol ahead of us but right now I'm watching The Punisher with Thomas Jane, John Travolta and Will Patton. It's just a shoot-'em-up revenge movie but it has become somewhat of a cult classic.  Follow-up movies and TV have occurred but not with Jane. Jane did reprise the role later, but only for a 10-minute short (available on YT, if you are interested) which is highly prized by fans.

I may have mentioned a while back about a friend who wasn't getting my messages? It wasn't that he wasn't replying; nothing says someone has to reply to my messages. Or even read them! But file for some reason he was not receiving them at all. Other than shutting down your phone, I don't know how you could do this! If you went to Uttar Pradesh you would probably encounter wifi pretty soon, and your messages would come through. 

Well, after 16 days the message was finally delivered and read. No response to the messages (no problem). And still no idea why they took 16 days to be delivered.

So in a short while the movie will end and we will go on Patrol. I'll brew a mug of tea when we get back. I also need to shower. It's been a hot day and the breeze was on and off. Also, my feet are dirty. So a shower is required. 

Blood sugar was pretty good these last few days but after bread for lunch and pasta for dinner we will have to see what tomorrow brings. I got to set up meds tonight for the next three days. The pyrodstigamine tablets are really crap. They come in bubble packed strips and I don't pop them out until I am about to take them. But I have to take a half-tablet at night and I can't reseal the other half. When you open the bubble-pack the tablets are already falling apart and the second half from yesterday is completely fallen apart into powder before the next night. A powder which has a very nasty taste. I can't afford to throw out the second half of the tablet and open a new one each night because there wouldn't be enough left to get through the month. 

The tabs are 60mg and I take 1 at breakfast, 1 at lunch and ½ at night. If I could get 30mg tabs instead I could take 2, 2 & 1 but I've never seen 30s and given the trouble the 60s are to get.... But the dinner dosage was reduced from 1 to ½ last time I saw Neuro. And I've been a bit wobbly ever since.  To tell truth, if they returned the dosage to 1, 1 and 1 it would suit me fine. Although I can manage with a little bit of the wobblies and prefer not to take any more meds than I have to, these crumbly, fall-aparty meds are such a PITA....

Where did Mo get to? Time for Garden Patrol!

Edited by Netfoot
  • Like 1

Just back from Garden Patrol with a mug of tea, drawing at my elbow.

For a change, Mo and I had rice for lunch. With corned beef, onion, carrot, cucumber and lentils. We ate it and enjoyed I. frankly, I was eyeing Mo's bowl before he came in for his!

I had corned beef & cabbage for dinner, with onion and the other half of that cucumber. I was going to add lentils but forgot. I did add the lady of the mustard. I find that mustard goes well with many dishes if ketchup is not available. I buy ketchup cheap in refill pouches but I've never seen mustard selling that way. In any case I have no more of either. Mo had chow. Which is running low. 

I watched two movies today, in between bursting my brain over my disk analysis script.

Just can't figure out exactly what I want it to do. I am collecting a huge amount of information and need to display it in a way that makes it easy for me to find issues with the storage subsystem.  I may have to change my code to approach the problem from a different direction.

Movies! First, Rollerball, from 1975 starring James Caan as the hero, John Houseman as the baddie and a small part for Maud Adams as the girl. Since everyone has most likely seen it, in brief: Governments are gone and the world is run by mega-corporations. Rollerball is a dangerous sport beloved by everyone and sponsored by the corporations to control the people. The point of the game is to show the people that individuals are powerless and only teamwork leads to progress.  But Caan has become a superstar player and uber-popular with the people. This is the opposite of what the corporations want, so they order him to retire. He refuses, they change the rules to make the game more and  more dangerous, hoping to get him killed.

There was a remake in the early 2000s. It was utter crap and an insult to the original. 

Revenge is a French-made movie filmed in the Moroccan desert. It stars four actors I am totally unfamiliar with. Three men visit a plush getaway home with the intention of going hunting for a few days.  One stupidly brings his mistress. Things turn bad and the men abuse and then  kill her by throwing her over a cliff in the desert. When they go to dispose of the body, it's gone - she survived! So now they hunt the desert for her, to make sure she can't tell the tale to the authorities. Or is she hunting the desert for them?

Dialog is english and subtitled french. The movie is ridiculously violent & entertainingly gory - great fun! It is a little unusual in that only the people who appear on screen are the four principle actors.

The movie The Flight Of The Phoenix also had a limited cast, of only the person's on the plane when it crashes. But that is still 15ish people.  It's a great film, by the way, and well worth a watch. Regretfully, Paul Mantz, the famous movie/stunt pilot, lost his life flying The Phoenix during the making of this movie.

The 2004 remake, Flight Of The Phoenix (no The) was also pretty good. Worth a watch, for sure. But when the original came out in 1965, the war was only 20 years past. Hardy Krüger's Dorfmann was universally disliked and distrusted by all viewers in Allied countries and his portrayal all the more compelling because if it. When it first came out my father loved the movie but watched it with his jaw clenched when Krüger was commanding the others. Giovanni Ribisi did a very credible job playing the corresponding part in the remake but he didn't have a world war helping him get the audience to grit their teeth over his performance.

When did I buy the new kettle? It started to give some trouble today. 

It sits on a base that has a special connector that conducts power to the kettle proper. When you switch the switch, a neon lights up on the bottom of the kettle. But since lunchtime today, I have had to jiggle the kettle to get the light to come on. Probably something wrong with the special connector that connects the kettle to the base. I still have the box and the bill, etc, so I could take it back but and ask for a replacement. And I will if I have to. But I want to see if I can see what is wrong with the connector. It might be something simple that I can correct.

I'm yawning but I need to shower.  I have already showered twice for the day, but when you need to, you need to.

Heavy rain has just begun to fall. I hope Mo does not come in dripping wet. I don't want to sleep on damp pillows.

The rain stopped rather quickly, while I was threading this post. Then Mo came in, thankfully completely dry.  I'm going to grab that shower, now.

  • Like 1

Kettle: Dead!

Before I tried to make my morning cuppa, I had a look at the bottom of the kettle and the base it stands on. The connection points looked unremarkable.  

Tried to boil water but not a flicker from the neon so I am assuming the thing is dead. 

I could carry it back and ask for for a replacement but if I do that I will not get a new guarantee on the new kettle. I will instead ask for a refund and then use that money to buy a replacement which would mean a new guarantee.  If the new one fails, I will take another cash refund and use that (probably with some more cash from somewhere) and get something different. 

Annoying. And probably predictable, if you are buying the cheapest kettle money can buy... but I really don't think I had a better option.

Mo is well. I woke to find myself buried in a light fall of snow. That puppy just loves him some tissues!

Edited by Netfoot
  • Mind Blown 2

I was in the kitchen and I gave the kettle a (modest) thump on top and for an instant, the neon lit up. Experiments are not scientific if they are not repeatable.  This is a scientific fact:  Pushing down on the kettle, even for a brief moment, causes the neon to come on. Time to have another look, eh?

This is the base upon which the kettle sits.

PXL_20250609_163351989.thumb.jpg.8ff66cb8689f59c7bac201800ed94b0b.jpg

Notice the central hole and the two concentric ring-slots.  If you look down in the ring-slots you can just see two metal fingers/contacts, one in each.  Inner ring at about 3 o'clock, and outer ring at about 7 o'clock. The base of the kettle has a structure that has two metal rings that will fit down into the two rings, making contact with the two fingers and thereby delivering the electricity into the kettle.  This circular arrangement allows the circular kettle to be put onto the circular base in any orientation.

Does one of those little contacts look deeper than the other to you? Also, is that a melty spot in the plastic which I have ringed in red?  (Hard to see with this crappy camera, but: Yes, it is.)

I took the base off, and this is what I found:

PXL_20250609_164326600.thumb.jpg.241d4f4251caf6e7549fd414459f52a0.jpg

Two wires coming in from the wall (yes, Idid unplug it before poking around in it's guts). The wires go to spade connectors which are plugged onto silvery metal springy things that are the metal finger/contacts from inside the rings. Note the brass connector in the middle with no wire attached.  I guess the cheapest kettle available does not warrant the inclusion of a grounding wire.

The melty spot is right under the blue wire where it meets the spade connector. In fact, the blue wire was actually melted into and stuck on that melty spot.  This photo is after I freed it.  Because of the melting, the shiny finger/contact thingy was displaced down (remember this is photographed uʍop ǝpᴉsdn). So that would account for one contact being lower when viewed from on top.

I took it all apart. With a little effort I was able to return the silvery finger to it's original position.  Put everything back to gether and...

Kettle: Working!

Clearly the power wires are of too low a gauge to carry the high current necessary, without getting hot.  Hot enough to melt plastic.  Simple solution:  Buy 4 feet of heavier gauge wire, replace the original wire and Robert is your father's brother! But if you do that, you are officially tampering with the unit and invalidate your warranty. 

If this gives any more trouble it's going straight back.  So, I want that warranty to be good.  Otherwise, I will change the wire to something with a heavier gauge.  I might even add a ground wire.  No guarantee that the kettle itself is set up to use a ground wire, but what the hell?  Why not?

  • Hugs 1
8 hours ago, Netfoot said:

I was in the kitchen and I gave the kettle a (modest) thump on top and for an instant, the neon lit up. Experiments are not scientific if they are not repeatable.  This is a scientific fact:  Pushing down on the kettle, even for a brief moment, causes the neon to come on. Time to have another look, eh?

This is the base upon which the kettle sits.

PXL_20250609_163351989.thumb.jpg.8ff66cb8689f59c7bac201800ed94b0b.jpg

Notice the central hole and the two concentric ring-slots.  If you look down in the ring-slots you can just see two metal fingers/contacts, one in each.  Inner ring at about 3 o'clock, and outer ring at about 7 o'clock. The base of the kettle has a structure that has two metal rings that will fit down into the two rings, making contact with the two fingers and thereby delivering the electricity into the kettle.  This circular arrangement allows the circular kettle to be put onto the circular base in any orientation.

Does one of those little contacts look deeper than the other to you? Also, is that a melty spot in the plastic which I have ringed in red?  (Hard to see with this crappy camera, but: Yes, it is.)

I took the base off, and this is what I found:

PXL_20250609_164326600.thumb.jpg.241d4f4251caf6e7549fd414459f52a0.jpg

Two wires coming in from the wall (yes, Idid unplug it before poking around in it's guts). The wires go to spade connectors which are plugged onto silvery metal springy things that are the metal finger/contacts from inside the rings. Note the brass connector in the middle with no wire attached.  I guess the cheapest kettle available does not warrant the inclusion of a grounding wire.

The melty spot is right under the blue wire where it meets the spade connector. In fact, the blue wire was actually melted into and stuck on that melty spot.  This photo is after I freed it.  Because of the melting, the shiny finger/contact thingy was displaced down (remember this is photographed uʍop ǝpᴉsdn). So that would account for one contact being lower when viewed from on top.

I took it all apart. With a little effort I was able to return the silvery finger to it's original position.  Put everything back to gether and...

Kettle: Working!

Clearly the power wires are of too low a gauge to carry the high current necessary, without getting hot.  Hot enough to melt plastic.  Simple solution:  Buy 4 feet of heavier gauge wire, replace the original wire and Robert is your father's brother! But if you do that, you are officially tampering with the unit and invalidate your warranty. 

If this gives any more trouble it's going straight back.  So, I want that warranty to be good.  Otherwise, I will change the wire to something with a heavier gauge.  I might even add a ground wire.  No guarantee that the kettle itself is set up to use a ground wire, but what the hell?  Why not?

Haven't you only had that kettle for a month or so? They don't make things like they used to! I sound like an old fart.

  • LOL 1

The kettle continues to work but it gets quite hot while doing so. Sounds stupid to say a kettle gets hot but in practice the kettle getting hot is not the concern. It is the base and the wire that get quite warm and I doubt they should. The kettle might fail again and stop working once more.  But it might fail in a more spectacular way, by catching on fire and burning down the house. So I have to be careful to keep an eye on it when it is in use. 

I had penne & corned beef for lunch & dinner. Mo had chow. Food is now very scarce. One pack of spaghetti, less than half a bag of rice, about ¼ of a cabbage, no potatoes or carrots, a couple tins of bully and some onions. Really need that woodworking job I was promised for last week. 

Was sat by the window when a drop of water landed on my arm. Rain threatening. Snatched up the torch and summoned Mo for Garden Patrol! Get it done before the rain comes, I thought. So we did the Patrol with the odd drop of water falling in me every few seconds. Completed and inside before the rain started - and it still has not started. False alarm? Or is it still on its way? There is a blustery, cool breeze in the window, and it's humid and has a definite feel of rainy. So it may still pour yet!

Battery is now 5% and falling fast so I will stop and put this on charge. I'm watching Bergerac, the 2025 mini-series, not the series with John Nettles that ran between 1981 and 1991. Nettles played Jim Bergerac, a police detective in Jersey in the Channel islands. Very popular in it's day. Nettles moved on to play DCI Tom Barnaby in another popular series Midsomer Murders until hrftetired he retired from acting in 2011.

This new remade Bergerac is different. More about his personal life and less about the case of the week . But I think I could get to like it, unless the personal stuff becomes excessive. Some is fine, but too much is too much. 

The original series gave a huge boost to tourism for Jersey. Apparently Jersey is funding the remake, hopeing (I presume) to regenerate some of that.

2%.  I'm off....

1 hour ago, andidante said:

Haven't you only had that kettle for a month or so? They don't make things like they used to! I sound like an old fart.

Well, it was the cheapest kettle that money cold buy... On the other hand, even the cheapest kettle should be able to do the job it was intended for without literally melting down.

Edited by Netfoot
  • Like 1

Kettle: Dead. Again.

I made tea last night after dinner and the kettle worked perfectly normally. I just went to make my morning mug and the kettle was simply dead. Have a look at those contacts:

PXL_20250610_120325305.thumb.jpg.015fc4d7969380b4d5494e416715ed7a.jpg

Notice one of them is brighter than the other. I held the unit in the sunlight from the window.  The dimmer one is dimmer because it is deeper down inside and is collecting less sunlight.  

I measured.  One is 5mm down inside but the other is 8mm deep.  Only a 3mm difference but that's all it takes.

I was going to just take it back but decided to take the bottom apart and see if the blue wire had gone melty again. It hadn't! It was the brown wire that means giving trouble and there was no sign of the melties!

I poked the brown contact and it clicked up into its proper place. Reassembling and testing showed that the kettle was functioning normally again. 

The contact thingy is actually a complicated piece of metal.  On one end is the spade that the wire connects to. Then is a small hole for a holding screw. Then a couple complicated bends that help increase the springiness of the part, and finally the contact part itself that touches a corresponding bit in the bottom of the kettle and conducts the electricity. This part has to operate inside a slot that is deliberately narrow to discourage poking fingers, knife blades, etc. While one end of this bit of metal is fixed with a screw, the other must float up and down on the springy section so as to make good contact. The brown contact had got hung up on the inside of that narrow slot.  One little poke and it freed itself and popped up into proper place.

Kettle: Working again. 

Now, this is getting to be a bit of a pain in the arse.  If I have to keep poking around in those slots (unplug first!) or dismantling the base to unmelt melty bits, I think it's a bit much.  

I took the box down and checked the bill.  Purchased on 2nd May.  Assuming the 3-month guarantee means 90 days, that will take me to 31st July, which is a Thursday.  So, no later than the Monday that week, this kettle is going back.  Even if it works perfectly between now and then. I will point to the melty bit of plastic and ask for a refund. I will use that money to buy another kettle, hopefully a better one. If the kettle gives any serious trouble in the mean time, I will bring forward my plan.

  • Applause 1

Cooked corned beef rice with onion and lentils and cabbage.  Besides the usual spices I tossed in a couple shakes of curry powder. This does not make the rice heavily curry flavoured but it does add a nice hint of that interesting flavour and just a hint of the colour as well.

I ate half for lunch And just had the other half for dinner. It tasted great. Remember when everything tasted of copper? Thank goodness that went away. Mo had chow.  He is not happy about it, but while we have chow, he has to eat it and leave the people-food for me.  There is only a couple more servings of chow and then we are sharing the same pot. That essentially means I will have spaghetti tomorrow because he had trouble with it.  So tomorrow, spag for me and chow for him. That will leave a little rice for us to split day-after tomorrow. We have 2 tins of bully, 1 tin of tuna, about ¼ bag of rice and a little cabbage. And some lentils. When the lentils run out I have a couple other packages, but they will need to be cooked before I can do anything with them. By which time there will be nothing left to eat them with. So lentil soup, I guess.  I hope Mo likes soup!

Kettle still working up until a short while ago when I went into the kitchen and while there, I tried it. Shortly Mo and I will Patrol and when I come back in I will brew up.  But the real test will be tomorrow morning - for some reason it likes to stop work in the mornings. 

Been watching video. Finished the new Bergerac mini-series and was pleased with it. I think they lost an opportunity in the final episode.  They decided to bring in a senior police officer from the mainland as an advisor and I thought it was the ideal chance to have a cameo by John Nettles, the original Bergerac. He is retired and 83 years old but apparently he is in good health and I believe that he would have been a great cameo guest. Alas, it was not to be. His daughter apparently is (or was) a member of the Jersey police. She moved to Jersey with her father for the filming of the original series in the 80s, and met and befriended many members of the force through the production of the show, eventually joining them.

There was a sort of cameo appearance - of Bergerac's maroon 1947 Triumph Roadster 1800! He drove this car thought the original season despite it being terribly temperamental and unreliable in real life.  They actually had to acquire another vehicle of the same type to use as a stand-in when the first one refused to play along. Apparently there were several scenes where the car was seen driving away when in reality it was unobtrusively being towed.  Dubbing in the engine sound was commonplace because the engine either ran very noisily, complete with backfires and rattles and so forth, or refused to run at all!

The new Bergerac drives a modern car - perhaps some sort of rice-box - but as revealed in the windup of the finale episode, he owns the Triumph and is working to restore it. It was wheeled out of the garage so we could get a look at it, but I doubt we will see very much of it in future seasons. (If there are any future seasons.) As far as I know the car is owned by a collector so I doubt it will be a regular on the show.

Also watched Kill Command in which a group of special forces soldiers are dropped in wild terrain on a training mission. They encounter a group of heavily armed robotic machines and battle commences.  It turns out the machines are the first of a new type of robotic special forces who are also on a training mission. The Old Guard meet their replacements, basically.

Mo is sleeping on my foot so I will wait until he shifts before we go out on Garden Patrol. I will post this now and surf until Mo wakes up.

  • Like 1

Can you explain the difference between corned beef and bully beef?  Because while I had heard of bully beef, I associated it with the British Navy in the nineteenth century.  But Google tells me that bully beef IS corned beef, just canned, and popular in the British Commonwealth countries.  So I assume it's a cultural thing, because canned corned beef here in the States is called canned corned beef. 

17 minutes ago, Quilt Fairy said:

Can you explain the difference between corned beef and bully beef? 

Forgive me -- It is so common to me that I just assumed everyone knew: Corned beed and bully beef are the same.

Originally, tinned corned beef was developed as a way to store and preserve beef long term, for feeding sailors on navy ships.  Previously they used salted meat (beef and pork) but that was only partially successful because the meat would still begin to rot after time.  Corned beef lasted much better and was definitely an improvement.  The tins were originally large, maybe a foot on a side, and would hold big pieces of beef, like whole beef roasts.  Modern day corned beef is sold in much smaller tins and is more like a meat paste than actual pieces of meat.  It is small, flaky pieces of beef mixed with tallow and usually comes out of the tin pressed into a sort of rectangular block. It can be sliced for sandwiches (best to chill it first to firm up the block), mixed into a soup or stew and so forth.  It is very different to what the original corned beef was like!

spacer.png

This photo which I found on the net shows what looks like a very good quality corned beef.  Virtually no tallow showing.  The stuff I buy has big patches of white all through it.  

Bully beef is like a nickname for corned beef. Posibly the name came from the navy. My father was in the navy during WW-II and we used 'corned beef' and 'bully beef' or just plain 'bully' interchangeably in our family. Dad says that when at sea, they only ever got corned beef because what ever was requisitioned, they were given corned beef as a substitute.  When the vitualling ships came alongside it was, "You wanted X sides of pork?  Y frozen chickens? You will have to take Z cases of corned beef as a substitute." That plus bread baked aboard was all they ever got.  Corned beef sandwiches. Which mattered little, according to my dad, because nobody ever had time to eat anyway.

They have corned beef in the USA as well, but I think it is very different to the type I'm living on these days.  I've never had it so I can't be sure. I believe it is usually served thinly slices (like, say, ham).  Your corned beef is probably much closer to the Royal Navy's original than the tinned stuff I get here.

  • Useful 1

This is going to be my lunch today.

PXL_20250611_155812382.thumb.jpg.52d7e966a900e1844e6660f7cbf088cf.jpg

Well, I will use about half of it and make a sauce which I hope will go on spaghetti today and tonight as well as Mo's chow and hopefully some left over for tomorrow. I am cooking it by boiling it in water with lentils and chopped onion. No tomato sauce or garlic powder to add but I will toss in a mini stock cube and some paprika.  The beef should sort of dissolve into the liquid because it is only tiny flakes of beef held together by tallow.  There are no large patches of tallow in this one. Just a little bit visible on the right/front.

  • Like 1

And here is the meat sauce. Not very appealing, to be honest.

PXL_20250611_163128219.thumb.jpg.d1c510d567825f7bfc9d74f0a9752b9d.jpg

It didn't taste bad but it was pretty mundane. It would be much better if there was some other stuff in the pot.  Tomato sauce would go a long way. And less water. Something more suitable than lentils - like red kidney beans or even black beans. I could make a roux and thicken it a little, and I might do that later for dinner. But I have to stretch this a bit, because we don't have much left.

There are still a few small clumps of corned beef but a bit more boiling and stirring and they will fall apart even more. 

Kettle: Working, at least it was this morning when I made my mug of breakfast tea. Will test it again in a short while, after mh lunch had had an opportunity to settle.

(edited)

I just had to ask because sometimes you use one term and sometimes the other, occasionally in the same post, so I assumed they were 2 different things.  Yes we can get corned beef brisket to cook at home or sliced at the deli but we have it canned as well.  The closest thing I eat to what you showed is canned corned beef hash which has chopped up potatoes in it and an annoying amount of fat but then I don’t have to add any oil to the pan when I fry it.  I make it with a couple of fried eggs which is typically a breakfast dish but I have it for dinner when I’m in the mood for something different.  I may have to do an experiment now and seek out a can of corned beef here to see what it’s like and report back.

Now that I’ve been educated, carry on.

Edited by Quilt Fairy
  • Useful 1
4 hours ago, Quilt Fairy said:

The closest thing I eat to what you showed is canned corned beef hash which has chopped up potatoes in it and an annoying amount of fat but then I don’t have to add any oil to the pan when I fry it.  I make it with a couple of fried eggs which is typically a breakfast dish but I have it for dinner when I’m in the mood for something different.

That sounds OK!

I will try that but I don't recall seeing the one with potato in it for sale. I will have to add the potato myself, next time I have potatoes.

5 hours ago, Quilt Fairy said:

The closest thing I eat to what you showed is canned corned beef hash which has chopped up potatoes in it and an annoying amount of fat but then I don’t have to add any oil to the pan when I fry it.  I make it with a couple of fried eggs which is typically a breakfast dish

My father absolutely loved this, but I never could get into it. I've tried. 

(edited)

Had spaghetti with watery sauce for lunch & dinner. Mo got chow with the same sauce on it. He ate it but I think he only did do because he is hungry - he had not had anything else for a couple of days.  There is one small portion of chow left which he will get tomorrow. 

There is little in the larder.  And only $5 in the bank. I might get some sofa feet to make tomorrow... maybe.  But the first thing I have to do is secure $180 to pay rent st the end of the month and sofa feet may not earn me that much. Friday I get a welfare cheque but that will go to pay the phone bill.  

The next welfare cheque will be on the 30th but it won't be sufficient to pay the rent.  I will need to find $60 to put with it.  Let's hope the sofa feet job comes through and is for at least $60 or we will not have anywhere to live next month.

There is a website I visit regularly but recently they have introduced a very annoying "click-hijacking" scheme that pops up new browser tabs with adverts. When the page displays, the hijack code is enabled. If you click anywhere on the page (like you would if you try to click a link) the click is hijacked and instead of going to the link the advert tab pops open. The hijacker then deletes itself so the second time you click the link you go where you want. But you now have a tab to delete. 

This behaviour is most annoying do I loaded TamperMonkey and wrote a script. TamperMonkey is a browser extension which allows you to write scripts to "process" web pages when you load them.  My script was designed to run on the obnoxious page and scan it for the hijack code. If found, the code is deleted.  

Everything looked fine but the code refused to run.  I reread and tweaked the script over and over but I just couldn't get it to work. In fact, it wasn't just not working - it was not executing at all!

I spent hours fiddling around with no success. Eventually I deleted the TamperMonkey extension completely and reinstalled it from scratch. The script immediately began to function.

I dunno what was wrong with the original installation of TamperMonkey but it is working now. Unfortunately, I wasted hours of time (on & off) before getting it to work.

Not a good day.  I feel depressed. (Not a clinical diagnosis.) Sometimes everything just seems pointless and I can't see any way forward.  Mo is the bright spot in my day.  

Got a minor case of The Trotts. Took medication.  The box is almost empty; only one more dose remaining. Everything is wearing out, breaking down, expiring or running out.

ETA: He is now wriggling around and delivering multiple kangaroo-kicks to my lower back and butt.  Maybe he isn't such a bright spot after all....

Edited by Netfoot

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...