Emergency Upgrades

Macsen informed me yesterday that there was something wrong with his laptop so I went to take a quick look. Issues with kids and laptops are generally easy to resolve and I assumed that this would be another five minute job.

It wasn’t.

This time all he had was a screen informing him that something had gone seriously wrong and he should contact the system administrator. The system administrator in this house, as ever, is me.

It turns out that he had attempted to upgrade his laptop and something had happened and now it doesn’t work, which is a surprisingly complete explanation for a 13 year old.

All credit to him for noticing that an upgrade was available and realising that it should be done, and I can’t really blame him for what happened next, because I still don’t know what was the something that happened. That said, it looks like he’d started a distribution upgrade without realising.

Of course, turning the thing off and on again didn’t help. Something has gone seriously wrong and re-installing is the only way out of this. But first, the data.

Actually, the first step was to download and create and Ubuntu Live USB and, once I’d remembered to change the boot options on the laptop, I was able to boot from the USB and find the home folder on the laptop. This, I could then copy to a portable disk drive.

Once this was done, and after the kids were home from karate, Macsen and I sat down together to verify that all of the documents had been backed up correctly. I may be exaggerating slightly here, but the file he was most concerned about was his desktop background.

The installation went as smoothly as you would expect from Ubuntu, so I was able to start the restore of the data just in time for dinner.

After dinner, we completed the updates and initial configuration so that everything that needs to work today, is now working.

Other software (games mainly), we have agreed to sort out at the weekend and then we had a bit of a conversation about why we always do upgrades at the weekend.

I have to say that Macsen was remarkably calm at the prospect of being unable to boot or use his laptop for the foreseeable future. I have, in the past, seen people go completely to pieces for much more minor issues.

So now Macsen has the latest and greatest version of Ubuntu. I’ve only managed a very brief look at it so far, but it is remarkably pretty.

Facebook threatens to stop spreading conspiracy theories if they can’t spy on their users

Back in July, the court of justice of the European Union ruled that companies like Facebook could be prevented from sending data back to the US because they don’t have enough protections against snooping by US intelligence agencies.

The ruling didn’t immediately end all transfers, but does place a requirement on national data protection authorities to vet the sending of any new data to ensure that any personal data complies EU’s GDPR data protection rules.

And so to Ireland, where Facebook’s European operation is located and, therefore, responsible for enforcing this rule.

On Tuesday Facebook tried to strong-arm the Irish data protection commissioner by threatening to pull out of Europe if forced to comply with the law.

We live in hope.

I was going to go on a rant here, but then I noticed that the satirists at NewsThump have already been there: Facebook threatens Europe with fair elections decided by well-informed voters. What a prospect.

Of course, they’re bluffing and, by Wednesday Nick Clegg, Facebook’s vice president for justifying Zuckerberg’s tantrums, and former UK deputy prime minister1 was frantically backpedalling.

I find his arguments (as reported) more than a little disingenuous. He’s eliding personal data (which is covered by the GDPR) and data in general (which isn’t) and claiming that having to keep up with ever changing rules (they aren’t) is impossible (it isn’t).

Realistically, Facebook isn’t going to go anywhere. They might thrash around for a bit but, ultimately, there is too much money in spreading hate speach and algorithmically promoting conspiracy theories and the Zuckerborg will comply with whatever rules are imposed.

But imagine being able to go online without being endlessly monitored, and not having ever more extreme content pushed at you.

The technology exists. It’s called RSS and Daniel Miessler thinks that it’s time to get back into RSS. Personally, I never stopped using RSS — my reader of choice is Newsblur — and I can’t imagine not having a single place to find pretty much everything I have chosen to read or watch online.


  1. Of course Liberal politicians end up working for surveillance capitalists. It’s 2020.

Kobo Hacks: Extracting Annotations

A lot of the reading I do takes place on my Kobo eReader these days and, while reading yesterday, I came across a line that was eminently quotable. So I highlighted it and created an annotation, which is not something I’ve actually bothered to do in the past.

Then I wondered how I was supposed to get the annotation out if the eReader. Not easily appears to be the answer.

Obviously, a one-line quote could easily be retyped, but I’m too lazy to want to type stuff, which is why I ended up spending most of the evening poking around at the innards of the device.

Plugging in a USB cable and displaying the hidden files and folders reveals that there is a folder called .kobo on the device and, when I go into that folder I find, among other things, these:

  • BookReader.sqlite
  • KoboReader.sqlite

The sqllite suffix tells me that these are SQLite databases, and that looks like a very promising place to start. So I copied both to my PC and started poking around.

BookReader.sqlite, it turns out, isn’t a database — or not one that I can access using the sqlite3 — but KoboReader.sqlite proved to be a lot more promising.

Finding your way around a database when you have no documentation can be a bit of a challenge, but I do know that this:

select distinct b.ShelfName, c.BookTitle, a.Text, a.Annotation, date(a.DateCreated), date(a.DateModified)
from Bookmark a
left outer join ShelfContent b on b.ContentID = a.VolumeID
left outer join content c on c.BookID = a.VolumeID
where date(a.DateCreated) = '2020-09-21';

Returns this:

ReadingList|Radical Uncertainty|And any bar-room conversation, or presidential tweet, will remind you that the degree of confidence with which a proposition is expressed is not the same as the probability that the proposition is true.|Quote of the day|2020-09-21|2020-09-21

Three hours to generate a two sentence blog post probably isn’t a hugely effective use of my time, but I am now wondering what else I can extract from this database…

The joy of upgrades

I upgraded my PC at the weekend.

Being a Manjaro user, operating system upgrades are frequent, simple and speedy. Most of the time.

Because I never learn, I keep on buying HP computers.

In general, I like HP devices. They tend to be solidly constructed and nicely reliable. But the company does have a habit of using components — like network cards — that are not as well supported as they could be.

There was quite a lot to upgrade on Sunday, including a new Linux kernel. Upgrades tend to be simple and speedy these days, so I launched the upgrade, twiddled my thumbs for a couple of minutes and rebooted the PC.

No Wi-Fi Adapter Found

Yep. I managed to break my internet connection, much to the amusement of the rest of the family.

This hasn’t happened after an upgrade before but I did remember, from when I first set the thing up, that the problem is the Realtek wireless card. I just need, therefore, to identify the card, hop onto the Arch Wiki to determine which package and I need to install, and install it and the problem will be fixed.

Identifying the card is easy enough, but I will note it here for future reference: $ lspci -k | grep 'Wireless Network'

Getting to the wiki, and installing the package, is more problematic because I need an internet connection for this.

No Wi-Fi Adapter Found

Did I ever mention that the PC I have is a mini-tower with a massive monitor? It’s also in a different room to the modem and, as I discovered, I no longer have (or could find) a cable capable of reaching from one device to the other.

This is why I ended up spending a sizable chunk of my Sunday disassembling the PC, lugging it from one room to the other, and then putting it all back together again. This would have been annoying enough but, since we use Wi-Fi everywhere, the modem is neatly tucked away behind the TV. So I had disconnect all the devices attached to it in order to pull it out of it’s alcove and put it on the floor while not tripping over the cat.

Reinstalling the driver took less than five minutes and, after a quick reboot to confirm that all was okay, it was time to put everything back together.

This is the point at which the real crisis began. My partner realised that I’d managed to unplug (and lose the cable to) the set-top box.

We found it in the end and, for my next task, I need to relocate the stupidly long Ethernet cable that I used to keep around for situations such as this one.

The spirit of Tony Hancock lives on

This is too wonderful for words. It turns out that almost all 57,000 articles in the Scots language version of Wikipedia were written, edited or overseen by a single person. Who doesn’t speak Scots.

That’s right, someone doing a bad impression of a Scottish accent and then writing it down phonetically is the chief maintainer of the online encyclopedia’s Scots edition. And although this has been carrying on for the best part of a decade, the world was mostly oblivious to it all – until today, when one Redditor finally had enough of reading terrible Scots and decided to look behind the curtain.

Emphasis mine.

My first thought when I read this was of Tony Hancock and, since everything is on YouTube these days, here is the scene I thought of:

It’s not clear whether the Wikipedian has spent the past near-decade creating thousands of fake posts as some kind of incredible practical joke, or that they honestly felt they were doing a good job. There have been occasional interactions with real Scottish folk taking exception to pages, and the administrator has responded in a dead-pan fashion.

I do hope that this is a joke — for the sake of the Wikipedian in question — because if he really is a latter-day Hancock then this is a screw-up of epic proportions.

Blob World

This is wonderful. There’s a guy on YouTube, going by the name of Primer, who uses a computer model to explore evolutionary concepts, which he discusses on his YouTube channel.

Visually, it’s all very simple but there is something remarkably appealing about watching these amorphous blobs evolve and survive as he discusses the concepts being displayed.

It gets better though. Jasper Palfree at MinuteLabs have taken Primer’s simulator and made an online gadget that allows you to play around with the initial settings and watch the blobs evolve.

The blobs have three traits — speed, sight and sense range — all of which mutate at a predetermined rate. You can choose both the initial values for these traits and the rate of variance, and then you let it run and see what happens.

It’s fascinating.

Administrative Note

This shouldn’t affect any humans following this site, but I have noticed that the various spam bots always target older posts. In order to splat them a bit, I have changed my WordPress settings so that comments will be automatically closed after four weeks.

If you run into any problem with commenting on the site, please let me know via the contact form.

Covid: Resurgence and risk

While the Covid infection rate is still trending downwards in Europe, there have been a few flare-ups and several areas have gone back into lockdown. In response, the European Commission’s research centre has launched a tool that provides an overview of which countries are most at risk.

It takes a while to load, and some of the data used can be a few days old, but it is interesting to see how various countries are coping. And clicking through to the underlying data is already proving to be far too much of a time sink for me.

What really leapt out at me when I first saw the map, though, was just how vast is the discrepancy in infection rates between England, Scotland and Wales.

Stay safe, folks.

Belated birthday wishes to PHP

PHP, the web scripting language that powers almost 80% of the web turned 25 yesterday. This is quite an achievement for something developer, Rasmus Lerdorf had intended as nothing more than a C templating language.

I remember playing around with the language in the early years of this century, back when it was still a new thing, and got as far as writing half a content management system before I discovered that B2 and (later) WordPress were achieving the same results in a far, far better manner.

PHP is the workhorse of the web but not fashionable. The language is easy to use but its dynamic and forgiving nature makes it accessible to developers of every level of skill, so that there is plenty of spaghetti code out there, quick hacks that evolved into bigger projects. In particular, early PHP code was prone to SQL injection bugs as developers stuffed input from web forms directly into SQL statements, or other bugs and vulnerabilities thanks to a feature called register_globals that was on by default and which will “inject your scripts with all sorts of variables,” according to its own documentation.

Which is probably a fair summary of the language. It’s very easy to pick up and start using but this ease of use also means that it’s similarly easy to get way over your head and create something of a disaster for yourself.

That said, it’s a well established language now and one that isn’t going anywhere. PHP will certainly still be around in 25 years time, but it will be interesting to see just how much further it develops over that time.

Administrative Note

I have just noticed that WordPress is being a bit over-aggressive with its spam filters. Consequently, several comments have been incorrectly blocked.

I have now released these, so if you suddenly see a reply to an old comment now you know why.