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.

A VPN appliance

The Raspberry Pi is so cheap and small that it can easily be used as an appliance. The Raspbian distribution is a full-fledged Debian, so you can basically use it for anything, which is pretty cool. And since it uses a micro-SD card as storage, you can easily swap out “functions” by swapping the card. So if one day you want to play retro games, you just put in a card with a RetroPie image and boot it up. And then if you want something else, just swap in the card that contains those programs, and off you go. Super convenient.
When you’re out in public and using your telephone, your laptop or a tablet, you want to use public wifi to preserve some of your precious, precious data cap for that month. But we all know that public wifi is a security risk: man-in-the-middle attacks are easy to execute like that. Russian-backed hackers are targeting hotel wifi, in order to get user credentials and to inject malicious payloads.

We’re going on holiday in two weeks. We’re staying at an apartment, and I don’t expect any hackers particularly targeting that apartment, but I’m not too fond of the idea of just connecting to the wifi there and then just seeing what happens. So, using this excellent guide, I set up a Raspberry Pi as an OpenVPN server. There’s an app for Android (for use on smartphones and tablets) and a Windows connector too (for use on the laptop). Really easy, and now we can use public wifi with confidence!

So, I fully migrated to a self-hosted WordPress blog from my LiveJournal. In the process, I reconfigured WordPress to accommodate the features that I had on LJ.

Replication my LiveJournal in WordPress

Migrating from LJ to WP

Crossposting back into LJ

And that is where we are today. It works to my satisfaction, it’s self-hosted, and it crossposts the entries as if they were written on LJ instead on WordPress.

Neuromancer was published in 1984. This was 2 years after the introduction of the Intel 80286 — so PCs were still in their infancy and so-called “home computers” were all the rage in homes everywhere. I think I got my first MSX computer then. The internet existed, but it was all text and all run on mainframes. Getting on the internet meant sitting in front of a terminal (or a PC that ran terminal software) and typing up commands. These mainframes ran VMS or a Unix variant, so you had to use arcane commands like “ls” instead of “dir”. Most terminals were monochrome and had a green phosphorous coating on the cathode tube — so all text was bright green. Applications that you interact with through this type of terminal are called “greenscreen” — sometimes lovingly, sometimes derisive.
The first time I connected to the internet, which was much later, in 1991 — it was on an Adm3/a connecting to the server at 9600 baud.
Actual computer work was done on the same mainframes. Four years later, in 1988, IBM released the AS/400 “midrange computer” — still a computer that required it’s own room, but less bulky than the mainframes that were used for really large calculations. The AS/400 became the workhorse of mid-sized companies for their administrative duties. It still is: we have lots of customers that are running insurance or policy systems on these machines. (I’ve also heard a rumour about Colombian drug lords kidnapping AS/400 systems programmers to force them to build applications to keep track of their illegal empire.) And here, too, greenscreen rules supreme — often as terminal emulators run on PCs, but even there the text is green. There are some systems to “convert” greenscreen applications to web applications, but that’s more like coating it with a little web sauce instead of actually converting.

So in the 80’s and 90’s, greenscreen ruled supreme — in the office, and on the internet. And this is the hacking that is portrayed in Gibson’s Sprawl trilogy (though I don’t think there’s ever mention of a greenscreen anywhere). It really meshes well with the idea of giant, faceless systems that control everything and everybody. I think this is why (classic) cyberpunk has a greenscreen esthetic: that was what that looked like at the time of cyberpunk’s inception. (Though I wonder if Gibson really knew about these things. There’s a legend that when he and Sterling were co-writing The Difference Engine, it was suggested they use e-mail to exchange the written text. The both of them found it too hard to understand, so they used hardcopy and used Fedex to send the manuscripts to and fro.)
And this esthetic has stayed with cyberpunk. Look at the opening scene of The Matrix: even the WB and Village Roadshow logo are greenscreen.

I’m participating in an online campaign of The Sprawl, called “Ashes to Ashes, Chrome to Rust” (which is streamed live through — you can read my session reports and watch the videos linked from here). During the initial discussions we had about the ‘feel’ for the game we were going for, we decided to do ‘classic Gibsonian’ cyberpunk, reaching back to the rules and types of things that happen in Neuromancer.
We use Roll20 for our character sheets, and the sheets that are available for The Sprawl are fantastic. They’re even animated, and really well suited for streaming: you can ‘present’ things on your character sheet as items in the chatbox. We ‘project’ that chatbox into the stream, so the viewers can keep track of which is what. And… they’re greenscreen, which personally I think is fantastic. Here’s the top of my character’s sheet:

And one of the players, who is well-versed in design, created a really cool greenscreen-inspired layout, even with scanlines over our video feed. He also created a greenscreen GIF to promote the game on Twitter, and I really liked that.

So I set to programming and created a Python script that uses the curses library to recreate the greenscreen, 9600 baud experience to emulate a system in our game. Setting up a terminal in Ubuntu to look like greenscreen is easy, and byzanz can record (part of) the screen and create a GIF out of it. The text is actually read from a command file, so that it’s now possible to create GIFs like this without coding.