So I ended up with three computers on my desk: my old desktop, the new Raspberry Pi 4 machine, and my work laptop. I had a little KVM switch that allowed me to switch a VGA and two USB devices (keyboard and mouse, obviously) with two machines. Which meant that if I wanted to use the third machine, I had to re-configure the whole cable mess on my desk. Not ideal if I want to switch quickly. And I use two monitors, so even if I had a KVM switch that did three machines, I’d have to get one that supports three machines too. Those do exist, but they are frightfully expensive!
But the monitors I use have three inputs each: one VGA and two HDMI inputs. So I could have each monitor hooked up to all three machines at the same time, and I could just select the right input on the monitor — or rely on the auto-input-select if there’s only one machine running — without having to mess with the cables. That made my life quite a bit better!

I also replaced my two-way KVM switch with a four-way USB switch with four ports, the Aten US424. It acts as a USB hub, and it has (just like the KVM switch, which was also by Aten) a small button that allows you to switch between the four connected computers. At first I used it un-powered so it was powered by the USB port of the machine it was connected to. This turned out to be a problem when using my USB headset and the webcam: those just shut down after a bit. So that meant I had to connect those directly to the machine, which meant that I had to re-plug the headset and webcam every time I switched from work laptop to personal desktop for a video call, for example for an online RPG session. It works, but it’s not ideal.
But there is also a mini USB port to provide USB power available on the US424, and I’ve since scrounged up a cable with the correct plug. Connected to a USB powerplug, it provides power to the switch, making it now a powered USB hub — and the headset and webcam don’t shut down anymore. Very convenient!

But this all meant that my desk was quite full: two monitors on their stand, a work laptop with its docking station and various bits and bobs. And the monitors were not high enough to be fully ergonomic. I had been looking at monitor desk-mounts for a bit — we have ’em at the office, and it’s really convenient to be able to set the right position. However, they can get pricey too, especially for two monitors and a full range of motion. But this week, I saw one that got reasonably good reviews that was on sale — only twenty euros, and even if it wouldn’t fit my situation, that wouldn’t break the bank. So I ordered it and yesterday I set to reconfiguring my desk.

Starting state of my desk. Lots of stuff lying around that maybe shouldn’t be on there?

Empty and cleaned.

First stage: the two holders built up and connected to the desk.

Getting the monitors off their foot was a bit of a hassle, but after a bit of fiddling with that and with connecting the mounting brackets on the back, the two monitors are now on the holders.

Each monitor has four cables connected to it: one power, one VGA and two HDMI. I didn’t think that would fit inside the cable guidance… things… that came with the deskmount, so I used tie wraps to keep ’em together. There’s enough slack that I can still move the monitors around.

Done. On the left is my work laptop, the power brick I use with it and the docking station. I put one monitor stand back, so that I could hide the USB hub and the cables underneath it — and so I had something to put my little micro-brick model of the Kamakura Daibutsu on. The little nine-key macropad left of the keyboard is programmed to send keyboard shortcuts to Microsoft Teams, using AutoHotKey. It’s very convenient during work meetings to be able to (un)mute and hang up quickly without using the mouse.

I’m not sure for how long it will stay this empty — but there is much more space for cats to sit, which is definitely a big plus! I used this setup to play an online RPG session, and it worked quite nicely. I’m thinking of adding a little ring light or something like that next to the webcam, so that I’m a bit better visible during video calls.

My desktop machine, which I (used to) run 24/7, is powered by an Intel i5 CPU and has several harddisks. The power supply is rated for 300W — obviously the machine is mostly idle, but there is a constant power draw, even when idling. I was wondering if I could do something about that, and perhaps downsize. After all, all I’m doing on that machine is a bit of browsing and writing, nothing that requires the power of an i5.
And then I noticed several articles pointing out that the latest model of the Raspberry Pi, the 4B model, which comes with up to 8GB of RAM, should be powerful enough for those kinds of computing needs. It has very modest power needs, so I was intrigued and did some further research.
It turns out that there are quite a few cases for the Pi 4B to turn it into a desktop machine, but not all of those were readily available — chip shortages and the global logistics tangle means that there is little supply. But I found a Dutch webshop that carried the Argon ONE M.2 case, which suits my needs. It’s a neat aerodynamic design with some cool features. Foremost is the support for M2 SSD drives: you can just plug those into a special adapter board that converts the M2 interface to USB3, and a ‘dongle’ hooks it up to the Pi. It’s also convenient that a little extra board converts the Pi 4’s mini HDMI sockets into full-size HDMI ports — saves me from having to buy new cables to hook it up to my monitors. The only drawback is that the micro SD card slot is not accessible within the case, so if you want to swap that out, you need to completely open up the case to do so. But since you want to boot off the SSD, that’s not too much of a problem, since you’ll be using the Pi without any SD card!
The extra power draw of the SSD does mean that you need a larger power supply than the Pi normally needs. Based on this guide I bought a 3.5A power supply to power the whole thing. I had to order from three separate webshops, because none had all the things I needed in stock, but all three packages came in on the same day, so that wasn’t too bad!

It took me a while to set it up, because I kept trying to do something that turned out to not work. In the end, I used this guide from Ubuntu to put Ubuntu on the machine (because it’s what I use on all my machines, so I’m used to its particular quirks). Everything went smoothly, but I just could not get the system on the SD card (which you set up at first run) transferred to the SSD so that the Pi could boot into an Ubuntu instance that had already been set up. I followed a few different guides, but it just didn’t work out.
So I just followed the whole guide (I had already done everything up to and including ‘USB Boot’), and just downloaded the Pi Imager onto the SD card and imaged the Ubuntu Pi image onto the SSD. Then remove the SD card, and boot into the now pristine Ubuntu install on the SSD. Yes, you have to set up everything twice, but it’s not that bad — certainly faster than spending two evenings on procedures that turned out to not work!

The machine is kind of underpowered: if you visit heavy websites, it takes a while for the page to load, and multitasking is not that fast. But writing this post is fine: it’s just me typing into a web form, after all — and that’s not a heavy draw on computing power. I now have a full desktop machine (with two screens!) running on under 17W — that’s pretty good. The case itself gets toasty, as it acts as a heatsink, but it’s not that bad.
One drawback that I have discovered is that some applications are not available for the architecture of the Pi — PCs and laptops use the amd64 architecture, but the Pi uses an ARM chip. That’s not a big problem if the source of the application is available — then you’d just recompile it for the ARM platform. But if that package is provided on a closed-source basis, then you’re out of luck if there is no package for ARM available. For me, the big one in that category is the Discord desktop app — usually I use Discord through a browser tab, but when I’m playing an RPG over Discord, then I want push-to-talk available — and you need the desktop app for that. So for RPG sessions I see myself turning on the ‘old’ desktop for the foreseeable future…

Apparently we’ve reached the age at which going for a ride on our bicycles seems like a great idea to spend a weekend afternoon. And with the excellent bicycle infrastructure in the Netherlands, it’s actually an enjoyable experience. One of the ways that the infrastructure supports cycling for pleasure is the network of cycling ‘junctions’,which are all numbered. The routes between them are touristy and well-signed, and most junctions have a map with all of the junctions. Planning a route then means simply writing a list of numbers and riding from one junction to the next.
I like to plan ahead, so I use the Fietsknoop website (which is a brilliant name for the website, which you will recognise if you speak Dutch). We live quite close to a junction, and by clicking from junction to junction, I can create a route and see the total length.
But I also would like to have a navigation app running along on my phone while we’re riding. Because if you miss a sign, who knows where you’ll end up? I experimented with pre-configuring routes in Google Maps, but there is no way to activate that route while you are on the road. Someone tipped us for RideWithGPS, which has a great web interface for planning a route — but following that route on your phone requires a subscription that is more expensive than what we are prepared to pay for that functionality, especially over time.
And then I found Osmand. It uses the OpenStreetMap data, which it downloads (not that I have to be concerned about data use within the EU, but still) and it can also do routing. The free version is limited to seven maps (I think), and as every province in the Netherlands is a single map, we’re quite fine with that limitation for some time. The cool thing is that Fietsknoop allows you to export the route as a GPX file, and if you open that type of file on your phone, Osmand will happily open it and let you start the routing almost right away.
We tested it out last Saturday, and it works quite well. I did turn off the voice navigation (didn’t want a talking phone to distract me from the ride), but that did mean I almost missed a few turns — that will take a bit getting used to. But the result is really good, and I’m quite happy with it.

Four and a half years ago, I managed to get one of the free STACK 1GB cloud storage, and I’ve been using it since — mostly for storing my collection of RPG PDFs. Through the various clients I can access them on any device, which certainly is convenient!
There is also a paid version, and the difference is that the paid versions of STACK are backed up — so if there’s any data loss on a free STACK, you’re out of luck and you’ve lost that data forever. Which happened earlier this year — not to me, but to a few other free users. And a few weeks ago, as more and more drives that are used for the free level of STACK are nearing their end-of-life, the provider decided that they do not want to provide a service that’s not backed up — for sure, it doesn’t look good for your services when you start losing vast amounts of user data! So they decided that they’re stopping with the free level of STACK, and offered a very reasonably priced upgrade to the paid version.

Of course, that also prompted me to investigate alternatives. There are quite a few alternatives, but most of them were more expensive than the upgrade offer from STACK itself. One interesting option was a Swiss company that offered a “life-time subscription” for a flat fee, which also would allow me to carve up the storage and pass those individual accounts onto others to use — but it was a lot of money, and if “life-time” means as much to them as the “life-time free STACK” lasted, then it’s not worth it.

And then someone mentioned OneDrive, the cloud storage solution from Microsoft. It’s part of Office365 — I use it extensively in my work. And it just so happens that I am the administrator of an Office365 “family” account.
Back in 2014, Klik needed office software, and she bought Word and Excel 2010. Those are running out of support, so she would need to buy new versions. As a principle, I prefer to buy “software to own”, but if you want to get MS Office for two machines (her desktop and her laptop), then the price becomes quite steep indeed, and a “business subscription” becomes a viable alternative. I found a good price for it somewhere. But for only a few euros more, we could get a “family” subscription for six people in total, who could install the software on up to five machines each. So we would be able to give out licenses to my father and to Klik’s mother and sister — at no additional cost.

So that’s what we did. And since I run Linux myself, I don’t have any use for MS Office software, but it was more practical to make me administrator of the group account.

And it turns out that each of the six accounts in the group get a OneDrive account with 1TB storage each. And with the unofficial client for Linux I can use it on my desktop and laptop too. Problem solved.

Little laptop

Most of the stuff I do on a computer can be done in Firefox: mail, twitter, discord, etc. But my machine is in our office (it’s a proper dual-screen desktop setup), so I spend a lot of time there. I do have a laptop that I could use on the couch, but it’s a second-hand one, and the touchpad doesn’t work, and sometimes the power button doesn’t work either and you have to put it on its docking station just to turn it on.
Far from ideal, and what it comes down to is that I don’t use the laptop that much. But I do would like to do light browsing stuff on the couch. I also have a 7″ tablet, and while that’s fine, it’s not ideal for actually typing a reply.
In the early days, I owned an Asus eee laptop, a 10″ thing that was too slow and ran too hot to be truly convenient. But with the modern more efficient processors and SSDs, smaller laptops are once again viable alternatives for larger systems.

I’ve been keeping an eye on the market for those. Most of those are Chromebooks, running a special Linux distro from Google that basically ties you into their ecosystem. The hardware is cool, but the OS not so much — but of course you can install Ubuntu on Chromebooks…
Then I saw the Lenovo Yogabook 300e: a laptop with a screen just under 12″ with touchscreen (with a pen included). The screen can even be folded onto the base of the laptop, and one review I read mentioned a free M2 slot for an extra SSD. And it’s certainly reasonably priced… So I got one.

They come with Windows 10 S installed on the 32GB SSD, but after booting once to check that it worked, mine is already running Ubuntu. 🙂
I tend not to not use the trackpad (I can touch the screen after all), and the keyboard is a nice chicklet keyboard, which I actually prefer. I don’t see any obvious expansion slots, so I think I’d have to open up the whole bottom of the machine to get to the reported M2 slot, but there’s still 60% space left on the 32GB internal SSD, so it seems like I could do without after all. And there’s a slot for the micro-SD card, so if I want to access/store a lot of media, I can always use that.
Folding the screen is a bit weird, because the keyboard is exposed if you use it like that. And it’s not convenient to hold the thing like that, because you’re constantly pressing keys. There is a function key to block the keyboard, but still I don’t think I will use it a lot like that.

I’m pretty pleased with it! Small enough to take with you, but also with a keyboard so it’s convenient to type mails or replies.

I hardly left the house today, and decided to do some chores to prepare for our vacation. One of those is to brush up on the mailing list: I tend to write long(ish) reports each day which I send to a special e-mail list. Every time, I mail everyone on the list to see if they are interested in the reports of the coming trip — don’t want to spam people who are not interested! (I don’t post those reports on a blog somewhere, because I want to feel free to discuss very personal things in those reports.)

Something we’re going to do for the first time this year is to send quick snaps and small updates through WhatsApp. I’ve hired a ‘Pocket Wifi’, a device that is connected to the cellular networks and offers a wifi signal. So we should be able to use data on our devices during our whole trip. This makes it viable to just pop off a quick snap in between, which should be fun. We’ve made a read-only group, so that only the both of us can post — don’t want to have it devolve in a lot of pointless chatter.

I also updated the Raspberry Pi that I use as a VPN server, and installed all the client software on all devices that we will be using. This way, when we use public wifi signal, we can tunnel to our own Raspberry Pi — so there will be no way to eavesdrop on our communications.

Small chores, indeed, but important to us.

I’m still playing Fire Emblem Heroes, in a low-key way. It’s a fun diversion, and it’s fun to see your heroes grow and thereby open up new possibilities. But there is an element of chance in there: when you summon a new hero, there is a randomiser that determines who you get, and at what star rating (from 3 to 5 — 1 and 2 star heroes can be earned by completing special maps). And you can get the same hero multiple times.
So you end up with a whole roster of heroes, and some are duplicates, and they can have different star ratings. You can send heroes home (remove them from your roster), and gain items that you can use to upgrade other heroes, so that’s something you want to do with duplicate heroes that you’re not going to actively use. But you also want to get balanced parties: a party with only sword fighters won’t go far.

So I thought it would be cool to have a spreadsheet with all my heroes, so I can do some analysis and make informed decisions, because the game itself doesn’t really offer any analysis options. Yes, you can sort the heroes according to up to four criteria, but you can’t answer questions like “How many mounted lance fighters do I have and what are their star ratings?” easily.
As always, I set to work to see what I could come up with. I started out by using Apowermirror to mirror my phone screen on a PC. Then I wrote a macro for AutoHotKey (which can do amazing things) to click on certain spots in that window (which would be sent as taps to the phone) to go through the heroes. It also made screenshots with the printscreen button, which I then saved to file with irfanview from a commandline. So I ended up with shots of all my heroes.
Then, using ImageMagick to cut out the part of the image that contains the star rating, masking that and then comparing it with prepared images of all the different star ratings. That allowed me to determine the star rating of each hero!

All that was missing was to determine the name of the hero, so that I could cross-reference that with one of the many wikis. I tried using Tesseract, an open source OCR engine. The idea was that I would cut out the part of the image that contained the character name, and pass that through the OCR to find the name. However, the recognition quality was just too bad, because of the fuzzy, anti-aliased images.
An alternative would be to manually type in the name of the character for each hero, and maybe correlate the image of that name with all the other names, but that’s costly in terms of processing power, and is just too much manual processing to make it worth my while.
So I shelved that little project. Too bad, but it was fun to see how far I could take it with a few evenings of tinkering.

Streaming again

I’ve written about streaming games here before. Watching and interacting with streamers and their community on has given me a lot of good moments. One streamer and his community even became good friends, and we did meet up and had a good time. Some of the people in his community have (re-)started streaming themselves, and watching them is a lot of fun too: no matter what the game, it’s good to hang out in chat.
So I got that itch to stream too. I used to, but the only machine that is capable of running games is in the living room (it’s an AMD A10, with integrated graphics), and that means slogging a lot of infrastructure to and fro. And I couldn’t add a face-cam to the feed, because it would also show the living room (with klik on the couch behind me).
And then I realised that I still had an A8-based system, complete with motherboard and memory, just collecting dust in the attic. The A8 is the smaller sister to the A10, but it’s powerful enough to play videos, which is what we use the living room computer for mainly. So why not swap out the A10 for the A8, and build up a small system to sit on my desk? That way, I can have the infrastructure semi-permanently in place, and I can use a webcam to more directly interact with my viewers (if there are any…) and hide the rest of the house behind a chamber screen.

So in between the Scylla of Christmas and the Charybdis of New Year’s, I ordered some parts, build up a system, ordered some more parts, returned another part, installed, installed and installed some more software, ordered some parts again… The things never seem to work out the way you intend — though perhaps I could have been better prepared by comparing several measurements.
But in the end, I built up a small little desktop with the A10 and a fanless(!) GTX 1030 card. I need to do the streaming itself through klik’s laptop, but after configuring it all (mostly syncing the facecam and the microphone up with the video feed from the game machine), I have a neat little setup from which I can stream.

It’s a lot of fun, especially with the usual suspects dropping in and hanging out in chat, commenting on the gameplay or on general occurrences. I don’t have a schedule, but I’ll stream when the fancy strikes me. If you’re wondering what it’s all about, you could drop on by on my channel and follow me there.

Saturday I went to my parents’, to help my father with his printer — or at least, to try again to get it to work with his laptop after a Windows 10 install.

Windows 10 driver fiddling

It was fun to see my parents and have lunch with them and the like, but this whole thing was seriously un-fun! At least it’s resolved now.

Yesterday we went to visit klik’s mother, to help her with her printer. We advised her a cool double-sided printing colour laserprinter, because she sometimes has to do large print runs. However, it was very slow to print — we’re talking 12 hours for 20 pages!
She lives at the north side of the Veluwe, the most forested area of the Netherlands. It started all off with pines being planted to provide struts for the mines in Limburg, but after those were closed down, the forests remained. It’s now slowly transitioning from “production forests” to more natural forests, with more diversity. It is also the area with the most wild deer and boars.
What with the fall colours, it was beautiful driving through the forest lanes!

Here’s two crappy cellphone pics through the windscreen of a moving car to give you a little impression.

The printer issue was ultimately ‘solved’ by using a USB cable instead of printing over wifi. We also had a great dinner at the Greek restaurant in town.

When we drove back home, through the dark, we talked about what would happen if we were to hit a deer or a boar on the road. Surely the car would be a total loss! To alert drivers to the wildlife, wooden cut-outs of boar and deer have been placed next to the road — but since we drive over that road often, we’re not impressed by that. So when we saw a boar rooting through the mud next to the road, we almost assumed that it was one of those cutouts! It stayed clear of the road, though, so there was no harm done. First time I saw wildlife there!

Now also secure!

When LiveJournal switches to https, I had to follow suit with my self-hosted blog too, right? I mean, how can I keep maintaining that my own solution is better when it’s still served over an unencrypted connection like a pleb? So I rectified that. You’ll automatically get redirected to a https connection too.