Repairable by design

This is good:

HMD Global, which took over the Nokia brand for phones, has launched a smartphone designed to be fixed by the owner, with repair site iFixit providing guides and replacement parts.

The Nokia G22 is one of three handsets launched by HMD at this week’s MWC in Barcelona. It is claimed to be the first Nokia smartphone to come with repairability at its core, enabling owners to replace a damaged display, bent charging port or dead battery.

HMD’s link up with iFixit means that some online guides are already available to help with repairing parts of the G22, while replacement parts for the same are also available from the site, with the G22 getting a dedicated Repair Hub area on

The current cycle of constantly replacing devices that has come to define the mobile phone market, as well as many others, is expensive, wasteful and environmentally disastrous. As such, it is great to see a major manufacturer embracing repairability. This is especially positive because, as the article makes clear, HMD sees repairability as a selling point and not something with with they are forced to grudgingly comply.

Many years ago, I treated myself to a first edition Fairphone and was delighted to discover just how easy a well-designed phone makes it to replace parts (mainly screens in my case). Obviously, a bigger organisation such as HMD is better able to demand a consistent supply of spare parts, and this is something we should all support.

Repairability should be the norm. Not just for phones, but for everything, and we should support initiatives that move towards making it so.

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…

Pizza and Karate

Wednesday night is karate night. Not for me, but all three of the boys spend an hour improving their martial arts. It’s an interesting sport and one from which (I hope) all three are benefiting. This is certainly the case for the eldest who has already competed in several tournaments and who is in training for his next.

Since I am home before the karate lesson finishes, organising dinner often falls to me, which is handy because Wednesday night is also cheap pizza night — any pizza for €6.50. They’re good pizzas, too.

Over the years, several pizzerias have come and gone locally, but this one has always remained. It’s been through a couple of changes of ownership while we’ve been in Belgium, but the restaurant itself has remained pretty much unchanged — cheap, friendly and reliable. Clearly, a winning formula is not to be messed with.

So here I sit, enjoying a glass of Duvel and finding myself being pleasantly surprised by the WordPress app.

I installed this app some time ago, back when this blog was still self-hosted, and… it wasn’t very good. The app had a rather annoying habit of freezing — generally when I wanted to upload a draft — which led to me removing the app out of frustration.

Now that I have WordPress hosting the blog for, I thought I’d give the app another go. It’s not always as intuitive as I would like but it does seem to be a lot more reliable now and I have been able to successfully use it to follow conversations where possible.

The acid test, of course, will be to see what happens when I press the Publish button.

Kobo in my Pocket

I have, over the years, acquired a surprisingly sizable collection of eBooks and, after trying several cheapskate alternatives have finally had to face the fact that you really do need a dedicated eReader if you want to read an eBook comfortably. So I bought a Kobo. Specifically, a Kobo Aura H2O which I could (in theory, at least) read in the bath.

It’s a nice device and I am finding myself using it more and more. The text is sharp and clear and the backlight redshifts as the evening wears on so that you can read it in bed without disturbing your partner or straining your eyes.

The real killer feature for me, though, is the Pocket integration.

Pocket is not something I have really looked at in the past but, since the Kobo integrates with it I thought I would take a look. And this has proven to be fantastic.

With a traditional PC or phone screen, I find that there is a limit to the length of article I am willing to read. It doesn’t matter how interesting or useful the article is, I always reach a point at which I start scanning to the end of it — I’m not alone in this.

But now, rather than skimming, I save longer articles to Pocket so that when I get home they are all on the Kobo, patiently waiting for me to make myself a nice cup of tea before I sit back on the couch and catch up on the day’s reading.

Better than that, though, is that with a little IFTTT tinkering I have the RSS feed for The Observer coming straight into Pocket and direct to the Kobo. It’s not quite like reading a Sunday paper again, but it’s probably as close as I will ever get.

Give me convenience, or give me death

GNOME Foundation partners with Purism to support its efforts to build the Librem 5 smartphone

The GNOME Foundation has provided their endorsement and support of Purism’s efforts to build the Librem 5, which if successful will be the world’s first free and open smartphone with end-to-end encryption and enhanced user protections.

Emphasis mine.

My GNOME desktop is great and provides a UI that could easily be ported to a mobile device. I would certainly like to see a truly open smartphone succeed. However, I am skeptical of the chances of this one, not for any technical or functional but because of the sheer size of the Android and Apple ecosystems.

Anyone trying to get into the smartphone market faces the same Catch-22: the user base isn’t big enough to appeal to app developers and the paucity of apps deters people from migrating to the platform.

The current duopoly is not fixed forever, but it will take a company the size of Samsung to break it.

Digital dufferdom

I have to admit that, when I heard that Nokia was planning to re-enter the smartphone market I was more than a little interested. And the Nokia 8 does sound very appealing — stock Android, frequent updates and all from a company that, for all its managerial missteps, has always been very good at engineering.

And then I saw this quote from Pekka Rantala who has the job of reviving the brand:

The phones resonate well with older generations – we’re not excluding them.

I have the horrible feeling that they know me too well.

Crowdsourcing road safety

Ping if you care: volunteers map cycling danger spots

The Brussels-Capital Region has launched a pilot project that will allow cyclists to contribute to a map showing the danger spots on the region’s roads. Secretary of state for road safety Bianca Debaets sent out 540 volunteers this week equipped with “pingers” linked to an app that highlights dangers.

Each volunteer uses an app, connected by Bluetooth to a piece of kit attached to their handlebars like a bicycle bell. If the cyclist feels unsafe on the road at any point, they tap once on the pinger and the app records the location.

Once the information is uploaded to the database, along with any feedback the cyclist wants to give, it can be added to a map of the most dangerous places for cyclists on the region’s roads. It would then be up to the authorities to do something to remedy the situation if possible – in the case of a dangerous junction, for example, though not in the case of a vehicle parked on a cycle path.

Ping If You Care is one of those ideas that is both brilliant and really obvious now that someone else has thought of it.

Removing crapware from the phone

After wasting my time last night, I realised where I’d gone wrong. It appears that the Google Apps Installer on the Fairphone installs the Google Apps as System Apps. So they can’t (easily) be removed and the factory reset does nothing to them.

So what I need to use is the /system/app mover and BusyBox to make the system apps into user apps.

I have tried this with iFixit and successfully removed the default version and upgraded to the F-Droid version.

Going through the actual Google apps will require a little more care and may take some time.


Now I’m confused. I’ve just glanced at the phone and the Google Apps appear to have vanished. The only thing I can think is that, when I restarted the phone, some cleanup happened. But the apps are removed, which is what I was trying to achieve, even if I’m not entirely sure how I achieved it.

Removing Google Apps from a Fairphone

One of the nice things about the Fairphone is that none of the Google Apps are installed by default. There is a widget that allows you to manually install them and, when I received my phone back in 2014 I hesitated briefly, then tapped it.

This means, of course, that if I want to scrape all of these apps off my phone, the easiest approach is to backup and reset.

It worked, but the results aren’t quite what I expected. I still see apps like the Play Store, Gmail and Google+ on my phone, which leaves me wondering what the Google Apps Installer actually installs. This also means that my phone is still a lot less Googly than I would like and I have simply managed to find the slow way of removing an account.

However, I went ahead and installed F-Droid and started searching for current apps or replacements. This was successful and F-Droid does have everything I want, and more more. The only quirk I encountered was with the iFixit app which was installed by default on the phone. F-Droid tells me there is an upgrade, which I can’t install without first removing the original app. And I can’t remove the original app.

The Fairphone 1 is rooted by default, so I should be able to remove this. But right now, it’s late and I’m going to bed.