It is the 1683rd of March 2020 (aka the 8th of October 2024)
You are 3.237.15.145,
pleased to meet you!
mailto:blog-at-heyrick-dot-eu
First, a warning
This entry is long and has loads of pictures. The server failed (details below) and it would happen, like, the one time I actually do a bunch of things...
What happened to HeyRick?
At first, was no reply, then server error
Kept thinking I could never get my server back on line
But then I spent so many hours thinking how OVH went
And I hoped
And I learned to google
And so you're back
From empty space
I just browsed in to find silence and all the entries gone
I know I should have made backups, I should have made my own copies
If I'd known for just one second that you would fail on me.
Go on now, say four oh four
After twenty twenty
Nothing's surprising any more
You know, I have so much more crap to write
You think I'd give up?
You think I'd just go read a book?
Oh no, Rick's blog, it will survive It will survive...
This assorted pile of ephemeral effluent that goes by the name "heyrick" is maintained by Rob, and is hosted in a data centre run by Freethought, and written by somebody with too much time and no social skills...
Freethought, it should be noted, claim to be carbon neutral by pledging to plant trees for every person they host. It's a nice thought, but last night I watched a video of Elon Musk flinging another bunch of Starlink birds into orbit, and I can't help but think that one launch (not to mention the many crowd pleasing explosions that SpaceX is famous for) is more of an impact on the environment than the entire lives of all of Freethought's subscribers.
But, more than that, they should be celebrated for their support of the Nominet Public Benefit campaign, and voting to boot out the narcissistic cronies running the UK's registry.
Looking at the fault report, it looks like one of the virtualisers unexpectedly rebooted, and kept doing so. The problem was pinned down to a faulty RAID unit. Which, after attempts to repair, was deemed unrecoverable. Now, correct me if I'm wrong, but wasn't RAID (Redundant Array of Inexpensive Discs) designed to be able to cope with drive failure by spreading data and check data across the drives? Well, whatever, I'm sure there will be an investigation to work out what went wrong as they won't want a repeat!
The system went down on Friday night, and a replacement was up and running for Saturday night.
Rob had a backup as of Friday. So in the moments when the site was operational over the weekend, a brief look suggests that all that I have lost is a message posted in response to something I wrote about receiving satellite broadcasts from Intelsat 901/907 (if that's you, please repost!).
My own full site backup is about a year old, but given that pretty much nothing has changed, there was little point in copying again. The /blog part was backed up more recently. A week or two - just after the OVH fire. I'm not at the PC to check the exact time, but fairly recent.
That said, there are three aspects here:
The actual data - which Rob had in hand, so there was practically no loss.
The configuration - which is a little more complicated. Remember, heyrick.co.uk points to heyrick.eu, it supports both IPv4 and IPv6. It was a bit yoyo over the weekend, but Rob got it sorted when he probably should have been out in the garden enjoying the sun with his family...
The resources that comprise the site. I'll talk about this just below.
Now, the resources. "Unfortunately" the server has been updated to PHP 7. I say unfortunately in quotes because normally an update is a useful thing, but sadly PHP has a deplorable record when it comes to backwards compatibility. It seems as if the original spec of PHP was thrown together in some nerds mancave while high on coffee, and features get added based upon trendiness and/or coolness. Then, later on, other features are removed because "security" or "there's something else" or whatever. It's a ludicrous situation given that this is a language actively used by hundreds of thousands of developers (I think I read recently that about 76% of the internet chuggs along with PHP behind the scenes).
An example of how to do things is the C programming language, where the revisions mostly add new functions (like 64 bit pointers) or clarify behaviour that was previously implementation-specific or undefined. The most seismic change to the language was the transition from K&R to ISO (mostly affecting function declarations and how their visibility scope worked). However, any competent compiler ought to have an option to allow you to switch to K&R rules (try -pcc), because the people who look after C understand that it is not acceptable to arbitrarily fail to cope with code from 1994 just because it is old. Hell, even gets() is still lurking in the standard library, even though anybody who actually uses that function needs to be handed a pistol containing exactly one bullet.
PHP, on the other hand...
To this end, my blog currently has no mobile view. That doesn't work. I've patched it so you will all get the desktop view.
Rob said he replaced eregi() with preg_match() which is why you can now see all the pretty pictures.
Speaking of eregi(), the search function does not work. Guess why. ☺
Likewise, the ARMwiki is currently not working because MediaWiki needs to be updated to match the later PHP. If you try it, you'llget some Fatal error gibberish.
Please don't be surprised if you find something isn't working, or if you come and visit my blog and find weird behaviour and/or debug comments turning up - that may happen when I try to fix up the blog script to play nicely with the newer PHP.
Anyway, just wanted to let you know what had happened. It was more serious than a random server crash, but not quite as serious as OVH. ☺
If you'd like to buy Rob a tea for his work in getting things back, and for being somebody who takes backups seriously, please go prod the Donate button to the right.
I did nothing on my two days off...
I had Thursday and Friday as paid holiday days. I had three to take by the end of "the year" (year running April 1st to March 31st). I had wanted the last three days on March (Mon-Wed), but there's an audit on Tuesday so my boss asked if I could change my days. So, I took Thursday and Friday this week, and Wednesday next week.
Yesterday afternoon, Alison took me to Châteaubriant to do some shopping, chat about random stuff, and so on. We did pretty much what I do when I go in by myself - Action, Leclerc, Maxi Zoo, and Jardiland (in whatever order).
The supermarket is in the process of being remodelled and remade. So... yet again everything has changed place. Drives me crazy. My little possibly-on-the-spectrum mind likes things to be in a place. A consistent place. Not a throw-a-dart-at-a-diagram place that's different every week. I do wonder if it wouldn't have been simpler to just shut the whole place down for a few days, do all the work, then have a grand opening?
Afterwards, came home, had dinner (a salad and tea). Then thought I'd mow the potager. Because, well, it needed it and there's a lot of obstacles and narrow bits, so it's kind of tricky to do with Marte. The little mower takes a lot longer, but in it's way it's more agile.
The front of the potager, nicely mown.
So, well, I then decided that it looked like a good spot in which to put the future bee-and-bird flower garden. So I hauled out the rotovator, and set to work.
The front of the potager, now rotovated.
I'm getting the hang of the rotovator. Don't fight it, and turn the ground in several passes, each time a little deeper than before.
Friday, I arranged the potatoes in a way to try to start them growing. The Charlottes are asleep and will need some nudging. Binje, on the other hand, is already starting to sprout. It wants planted.
Bintje (left) and Charlotte (right).
I then mowed the bit of land by the pond. This is another place that needs the smaller mower. It is uneven, mostly at an angle, and has low branches.
Actually, it was a surprise how messy it wasn't, given that in the summer it becomes a tangle of cow parsley (that I have unpleasant reactions to) so I think the last person to do anything there may have been mom about three or so years ago.
By the pond, also nicely mown.
The next job was to get the rotovator out again to extend the potato patch. Not just to have more room with the potatoes, but also because turning the ground is pretty effective weed control.
The expanded potato patch.
There are some trees there that need to be cut down (ultimately too close to the building). They were little trees, back around the year 2000, which were a nice distance apart for slinging up a hammock. Sit in a hammock under a tree reading a book, that was something I did on the summer holiday days when we (mom and I) didn't go out.
Fast forward twenty years, the trees aren't small. They're getting to be a problem.
So, I cut a notch and hooked up a rope (just in case...), and planned for the tree to fall at a 45 degree angle (to the front right of the photo). It was a combination of how and where I put the notch, and accounting for the strong wind that was blowing.
Tree, in the process of being cut down.
As you can see, it fell exactly where I wanted it to go. I'm pleased with that.
Tree, down.
But, alas, as it's the potato patch, I had to cut the tree up and dispose of the bits I didn't want, keeping the thicker parts of wood for when/if I ever get some sort of wood burner sorted out. Plus, it's a shame to toss out perfectly decent wood.
Here's a view of the potato patch from the wood shed roof. It's mind blowing to think what it was like this time last year. And it was pretty much all done by hand. No tractor or flail. Just a scythe, hedge clippers, a little mower, and a scrap rotovator almost as old as I am.
Not finished yet! No, nowhere near.
The next job was to fix the toilet. You see, mom's reduced mobility and need to drink a lot for medications meant that she used a commode (the Sécu provided that). When the grinder stopped functioning reliably, I used a covered bucket and emptied it the same time I did mom's one. Or a convenient bush. Actually, since I went to work, I didn't need to do that much here, I'd just use the toilet at work before coming home.
TMI, right? ☺
But, you know, as handy as behind a tree might be in a pinch, it's no fun in the middle of winter when it's below freezing and the wind is strong enough to flash freeze you in minutes.
Yup. Definitely TMI.
So the visit by the inspection bloke next month has given me the push to finally get around to "fixing" (patching) the grinder. I've put it off for ages because... well... think about what it actually is. The electronics inside, no problem. The plumbing side? Icky, icky, bloody icky!
Step one, as I really didn't want it to blow up in my face and cover me in waste water, was to ensure that the outflow pipe wasn't blocked before the grinder tries to toss stuff into it at a fairly high pressure. So I had to dig a trench in the beaten earth of the hangar in order to locate the pipe. Which I eventually did.
Outflow pipe.
The hole in the pipe wasn't me, by the way. It was made by a plumber twenty or so years ago as he was trying to find it, and was just rather more enthusiastic about digging, using a pickaxe to hack his way into the ground.
However, the hole was convenient for me. I put the hose into the pipe and let it run a while. It didn't appear to be filling up. Then I put some shampoo and water into a plastic water bottle, shook it to make bubbles, then squirted that into the pipe, with the hose back afterwards.
Then it was a simple matter of walking over to the stream to look for the bubbles. And, yup, found the outflow and marked it, and it was running freely.
Having removed and opened the grinder, two problems came to light. The pressure sensor thingy was not working, and the motor was stalling as it tried to start.
The pressure sensor, I couldn't do anything about. So I soldered a cable to each of the contacts, and wired it up to a momentary-press button. Press the button, the motor buzzes loudly.
With a lot of care and a pair of gardening gloves, I put a screwdriver into the slot at the top of the motor, and as the motor started to buzz, I gave it a sharp flick and pulled the screwdriver clear before it was wrenched out of my hands and sent deep into my cranium. The motor began turning normally.
That said to me that the kick-start capacitor was duff. I've seen this in washing machines. So, speaking of washing machines, I salvaged a capacitor from the non-functional washing machine and wired the motor to use that. The original capacitor is mounted into the body at the bottom left in the picture. The replacement is tucked down into the unit, to the top-right of the motor. You can also see the switch that I've wired in.
Poop grinder teardown.
The switch unfortunately had to be fixed to the door frame just below the light switch. It would have been more convenient closer to the toilet, but the walls back there are made of some sort of weird concrete sheet and a self-tapper just wasn't going to go in. The wall strugged off three different screws. I suspect it would require a hole and plugs, and frankly I'm too lazy to go to all that bother when I can just whack a self-tapper into the door frame and now the switch is nice and secure.
Because I had been doing something unpleasant, I went and had a shower with my clothes on, and washed my hair. I stripped and left my clothes soaking in a bath with some washing powder while I dried my hair and had a tea (yes, always tea!).
Finally, I went and handwashed the clothes and hung them out on the line. Time to call it a day, write this, have something to eat (a rice pudding), and watch a movie. I got Mortal Engines from the library, so... that'll be what I shall watch.
But... as you can see, I pretty much did nothing on my two days off. ☺
An unexciting Saturday...
These would all have been separate entries, but, hey, reality got in the way.
I got up and went in to town to get a bucket and mop to clean the floor around the back (bathroom, toilet, etc) because the mop I had for back there was old and naff. I also got some new line for the rotary washing line. I would have considered getting a new washing line, but they didn't have one, so I got 20 metres of cord (the only choice).
The washing line was old and broken and covered in moss and lichen and other crud. It has been hidden in the shade of trees and covered in brambles for many a year.
I cleaned it up, used some screws to hold it together, and the parts that were too broken were strapped using wire. It's a patch job, but it works.
It looks like the line itself might require a 30 or 40 metre cord. The 20 was too short, so I didn't string it all up. It was enough. I think too much loading on that old pile of bits and everything would succumb to the irresistable force of entropy.
Drying line.
It looks like I can get a 30 metre "AmazonBasics" one for €34,99 new (or used-like-new (a customer return I'd imagine) for €31,20, hardly a saving). Free delivery with Prime. Thankfully, as I can imagine it would be... an interesting parcel.
They also offer a 50 metre version, but out of stock, so I can't compare prices.
Otherwise, it's a choice of cheap Chinese rubbish, or expensive branded products probably made in China... Vileda has a 40m model for €76,80. That much for some aluminium rods and nylon cord?
Then I had lunch. When in Châteaubriant with Alison, I lamented Buffalo Grill that I used to like going to, until their hygiene took a serious nose-dive. It's a shame that France doesn't do Mexican food in frozen form, it would be nice to get that sort of stuff and heat it up. There are the various Old El Paso style kits, but that's always such a hassle making them.
I compromised. A large tin of chili con carne and a pack of... I forget the name, Tortilla? Whatever, I made myself some chili wraps, with tea, of course. And, yes, eating them was every bit as messy as it looks!
Home made chili wraps.
Then I had to coax Marte into working. Every so often, Marte starts fairly easily. And every so often Marte needs blood sacrifices to the Ancient Ones in order to get the engine to catch.
Actually, I think part of the problem is the horribly inefficient American engine throws great amounts of petrol at the engine to get it to start. The usual result... flooding the engine. Clever.
Starting Marte.
As you can see, this time I got it started by removing the air filter and pushing a little lever that opens the choke.
What I don't understand... there's a little pipe between the engine and the carburettor, and when the engine misfires and doesn't start correctly, smoke fills the carb. Is it brought through the pipe or the inlet valve? What's the purpose of this pipe when working normally? Is it supposed to be some sort of suction arrangement to draw up the petrol?
The engine runs erratically (often called "surging"), so something is clearly wrong. The problem is that the basic air/fuel mix can have problems in many places, which can make diagnostics a little difficult. The "fix" that I currently use is to run the cutter deck (or try not to leave the engine running when not mowing) which acts as a kind of flywheel to keep the engine running evenly. But I suspect that a carb strip down may be required, and possibly replacing tubes and pipes, maybe also check the valve clearances. That said, apparently the later Tecumseh engines are kind of naff and frequently suffer valve problems. The odd thing is that some days it really cranks the speed up and down, while other days it runs smoothly.
To put this into context, there's a person on Youtube with a generator that has the same problem, and he fixes it by turning a screw about a 16th of a turn to the left. That shows how delicate the mixture ought to be for a smooth running engine.
But, eventually it started and so mowing was done.
Then floors washed. Then the tree cut up. Then playtime for the cats, and Anna didn't try to attack Wawa this time.
And, finally, hot chocolate, bed, and Netflix for me. The day seemed to pass remarkably quickly.
Sunday, an easy restful day
Because it was such a busy and physically exerting three days, I decided to do as little as possible on Sunday.
That plan failed when Anna broke out and was wandering around out front mewing at me. So I got my screwdriver/drill, some mesh, some screws, and put paid to the hole that she had made in the old chicken wire.
That done, well, gee... doesn't it look a fine day to sow some potatoes? I picked the Bintje with the longest bits of growth, and dug trenches sort of 10-12cm down. I placed a potato every 30 or so centimetres. Anna wanted to play football with the potatoes. Wawa just watched. For once, Anna had something to occupy her furry brain that wasn't attacking Wawa (who really is not interested). I suspect one day I'll come out and find the mole has had a fine feast.
The furry guardians of the potato patch.
Since I was up there... oh dear, always a dangerous prospect... I decided to trim back some of the smaller trees poking through the fence, and cut back the spindly oak to allow more light in around the drying line. Which, also, implicated removing a messy thorn-covered blackthorn (clue in the name!). Which was a lot more cutting and sawing and, oh... hurt arms. Again.
Another bit sorted out.
Before I knew it, I was looking at sunset on the first day of summer hours, and the semi-wild cherry out front looking like it's well on the way to blooming.
Sunset and soon Sakura.
Just after sunset was the peak of the Full Moon. I hooked my phone to the telescope and left it running, setting it up so that the maximum Moonness happened as the most was in view.
With the ambient bird noises, it is actually quite restful. Put the kettle on, make yourself a tea, and enjoy five minutes of Moon.
First Swallow!
Sunday, just as the sun was setting.
I think this is one that was passing through on its way up north. I wish it luck. I can imagine Bitchy Patel standing on the cliffs of Dover with a shotgun in her hands to personally demonstrate that being migratory wildlife is no excuse for not respecting her Hostile To Everything Foreign policy.
First swallow (massively zoomed in so you can see it).
And finally...
Today, a lovely warm day. Because of an important audit, I went to work at 8am rather than 9am to get stuff ready. It wasn't a bad day, things went smoothy. I'm tired as hell, but sat outside for hours. Partially to write this. Partially to eat. Partially to try to stop Anna beating up on Wawa. And partially just enjoying the unexpected warmth. It's supposed to be more seasonal (read: crap) weather next week, so I'm going to enjoy it while it's here.
Guess what? I'm off tomorrow! Whee!
Writing this.
It's getting chilly and the sun has almost gone, so time to upload this and head in. And... to hell with it, I don't have to get up tomorrow morning. I think I might just go and put the kettle on. You know why.
Oh... wow. As I was giving this a quick final read to ensure the markup wasn't broken and leaving everything in italics or somesuch, I just saw the Epic Willow reflected in the screen of the tablet. It wasn't quite like that yesterday!
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.
Rob, 30th March 2021, 23:26
It seemed like a good idea, ensuring everything was latest version..... But yeah, data and databases synced to local server daily. I forgot about /etc/ though, which was a year out of date, hence the IPv6 issue. I'm still working on getting other sites up and running too. I might just downgrade php...
David Pilling, 1st April 2021, 22:55
Seems to me that by the 1980s people had worked out what was right and wrong with computer languages and they laid out rules for how things should be. I foresaw that there would just be one language - like with maths a standard would emerge. But the people who came along later tore all that up and have just done their own thing. There's no need for PHP, mostly the people programming in it will also be programming in Javascript. Python is a horror, two major versions which are not compatible. You can guarantee that any project will consist of two components one that works on Python 2 and one that works on Python 3. The people who produce Python libraries often gleefully inform you that they have no intention of supporting the other version of Python. It gets even worse, there is a thing called Anaconda which attempts to set up consistent environments for projects. There is no chance of installing Python and libraries and things working - no, exact combinations are required for different programs. So this thing sits there for hours and sometimes will announce that there is no set of libraries that is compatible.
Its interesting that there are so many people involved in programming today that no one can master all of it. There is a cosmic amount of code being produced - different languages and tools... duplication probably, no one knows.
Rick, 1st April 2021, 23:45
I'm not sure I agree that there's no need for PHP. JavaScript typically runs in the browser, and is particularly aimed at that environment (and the DOM that represents the current page). PHP on the other hand, is more general purpose, has a lot of useful built in libraries, and gets stuff done on the server. I see them as complimentary, not as competitors.
Wait... I figured Python 3 was an update of Python 2 where they did a PHP and had dubious compatibility... but you're telling me that the two, incompatible, versions are being used alongside each other? That's...crazy.
Somebody will always invent a new programming language because they think they can do it better. Just like somebody will redefine the GUI over and over for the same excuses. People were all "whoo!" when Apple nuked the skuomorphisms, and shortly after Google copied them and suddenly people who were used to an on-screen button looking like a button had to come to grips with a bit of blue text on white (which barely stood out against the light light grey) being the button. It's like we reverted back to GEM...
And, sure enough, subsequent versions of both systems have come along since, with yet more tweaks to the UI for reasons that are unlikely to be "maximising user interaction" but more "cool new idea, let's do it!".
Just like programming languages... Ruby, Rust, Swift, Dart, Pony, Kotlin... blah blah blah.
David Boddie, 2nd April 2021, 00:33
The problem with having just one language is that it doesn't account for taste, habit and mindset. Taste being things like preferring braces over whitespace and common coding conventions; habit is often being comfortable using one language over others; mindset favours one paradigm over others, like dynamic typing, object-oriented programming, or functional programming.
I used to spend a lot of time promoting Python but then Python 3 became a reality and I realised that people were going to be expected to do a lot of work just to keep everything working. There was also a lot of toolchain churn around packaging Python programs, installing libraries, and so on. Once Python 3 picked itself up off the floor, the core developers started adding superfluous features again. It's now like a lot of other languages: large, confusing, over-complicated, with a nice, small language buried somewhere underneath it all.
David Pilling, 2nd April 2021, 19:39
Meanwhile. over at the Pi Pico, I've managed to program it in (micro) Python (I don't like Python), but failed in C (a language I have a lifetime of using), because they've put cmake in the build chain and I have no idea what it does or how to use it.
David Boddie, 2nd April 2021, 22:53
At least micropython is helping you to focus on what you want to do in this case. A lot of things these days involve frameworks and tools that are arguably useful for maintaining a common build infrastructure for different platforms, but which make the simple question of "how do I write code for this?" obscure for individuals who just want to use one piece of hardware.
With Arduino, I stopped using the IDE very quickly and used a simple Makefile-based command line solution. There must be something similar for the Pico.
Mick, 3rd April 2021, 02:25
I very much like PHP. It's as easy to remember as BBC basic. It acts like a script when part of a webpage, and like a language when run from the command line or CRON job. I use a bit of JavaScript but like Rick don't see it as competition. I didn't know about python not being backward compatible. is Lua a language too? Rob, I'm mightily impressed you got it all running so quickly. It's easy to restore data but to set the system up from scratch takes effort. Were you still on Debian Wheezy before VPS 7s demise?
David Pilling, 3rd April 2021, 13:56
Thing with PHP and Javascript is one minute you are using one and the next the other - and they're different. As to the Pico, the great news is that someone has ported it to the Arduino IDE. Following the Raspi information I had to buy a Pi 4 and construct a piece of hardware to connect the Pico to the Pi - that set up was sold as the easiest. Now I find I could have programmed the Pico as easily as any Arduino - that is cross platform. I shied away from programming the Pico on Windows the (semi) official way owing to it installing a load of Python (know where that is going to end).
David Pilling, 3rd April 2021, 14:00
There is server side javascript - node.js and that. I have used it, but if you want particular applications you're stuck with what they are written in. This is why I use Python - I need the libraries.
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.