Gerrit Niezen

Maker of open-source software and hardware.

Feature image

We would like to plant some fruit trees along one of the walls in our garden, that over time will create a natural screen from the neighbour's backyard. We had a look at some fruit trees at the garden centre this afternoon, and I suddenly realized how little I know about trees in general.

How do we make sure that they will be pollinated and can bear fruit? Do we need multiple trees of the same type or do they cross-pollinate? How large do they get? What type of fruit would we like to grow? And so on. I guess I have some research to do before we start buying trees.

Feature image

I'm back from the Lake District and starting up my daily posts again. Even though it was pretty rainy this past week, with Storm Ali sweeping across the UK, we had a good time and even managed to fit in a long walk along Lake Ullswater.

The photo above was taken at Lake Windermere, which is the largest natural lake in England and the Lake District.

Feature image

I'm spending some time with my family in the Lake District this week, so for the first time in more than a hundred days there may be some days without any posts. See you on the flipside!

Feature image

Now that we're living a bit closer to the beach again, it was great to go for a quick run today. The weather almost looked like it wasn't going to play along, pouring down earlier in the morning. I had a quick look on Windy and noticed that there would be a short break in the rain, and luckily I timed it exactly right.

There was a little bit of sun that came out during the run, and it was great running on the beach itself at high tide. And then running back along a small stream in the park. It does make you ask the question: Why would you not want to live in Swansea?

Feature image

In my previous post on using Windows virtual machines on Linux, I mentioned that I switched back to VirtualBox. Well, it turns out that VirtualBox would also completely hang my machine, just less frequently than VMWare.

However, I think finally found a great solution: GNOME Boxes! I was looking for how to import a VirtualBox Windows VM into QEMU/KVM, which is what Boxes uses under the hood. Not finding anything useful, I just installed Boxes and tried to open an existing VirtualBox VM on my machine. And it just worked!

So far I'm very impressed. Closing the VM and restoring it happens almost instantly. It did have high CPU utilization initially, but was spreading the load over seven of the eight cores on my machine. I barely even noticed it apart from a high fan noise and looking in top. Compare this to VirtualBox and VMWare, that somehow only uses one or two cores, and then still manages to bring down the whole machine.

Everything is exactly where you expect it to be in Boxes. Changing the properties is easy to find, and the minimalistic interface gets out of your way. I should have done this ages ago – if I just knew how easy it would be to transfer my VirtualBox VM to Boxes. This morning I installed the guest additions on the machine, and it improved the video driver on the fly without even having to reboot anything.

I guess if I spent hours on obscure VMWare or VirtualBox settings and config files, I would've eventually been able to make it work. But with Boxes everything just works – out of the box![1]


  1. Sorry, I couldn't help it. ↩︎

Feature image

Yesterday I mentioned that I wanted to look into getting WebUSB working on Electron. Well, I've done some testing and the first show-stopper is that Electron doesn't have the WebUSB device chooser implemented that requests permission from a user to access a USB device.

This results in a DOMException: No device selected when calling navigator.usb.requestDevice(). Electron has implemented a chooser for WebBluetooth, so I just put in a feature request for a WebUSB chooser.

Feature image

Over the weekend I saw this tweet from Reilly Grant, one of the main developers of WebUSB:

I wish someone would sit down with the Linux drivers for proprietary USB serial chips like FTDI and Prolific and port them to JavaScript with WebUSB as a polyfill for the Serial API.https://t.co/ebiiBdIf7jhttps://t.co/yrgS4dgCK3https://t.co/H88w5KDnsFhttps://t.co/uCeLuDlJJs

— Reilly Grant → @reillyeon@toot.cafe (@reillyeon) September 7, 2018

The reason this would be so valuable is that these are the chips for which you aren't guaranteed that the OS driver is even properly configured and so are perfect candidates for quality WebUSB support.

— Reilly Grant → @reillyeon@toot.cafe (@reillyeon) September 7, 2018

Now, if you've been following this blog you may know that I've been working on JavaScript drivers for three different USB serial chips:

The only issue is that they're all written with node-usb instead of WebUSB, as I'm targeting Electron. Now, porting them shouldn't be too hard and it something I would really like to do. Today I discovered Niels Leenheer, creator of html5test.com, even has a $500 bounty out:

This would probably the single most useful thing for WebUSB for me personally. We need this. I’ll donate $500 towards the first project or developer that can get this working. https://t.co/h4sFxeXyw2

— Niels Leenheer (@html5test) September 9, 2018

I found a GitHub comment saying it's possible to get WebUSB working in Electron, so maybe I should give that a try again. node-usb is barely maintained at the moment, so getting everything working on WebUSB instead would be great! Or if someone else decides to build WebUSB versions using my code, that will be great too.

Feature image

When I started writing these posts I didn't think that I would be able to keep it going for 100 days straight, but here we are! Let's have a quick look at what I think worked this time, compared to previous times that I started a blog:

  • It doesn't matter how many words I write, as long as I write something every day.
  • No analytics. It doesn't matter if anybody reads it, I'm writing this for me.
  • I realised that older posts are useful to me if I need to look something up.
  • I realised that writing every day improves my written communication in other areas of my life.
  • Using a blogging platform like Ghost with a web-based editor reduces the friction – you just write and press Publish.
  • I can use my iPad to write if I'm not in front of the computer[1].

  1. a Bluetooth keyboard makes this much easier ↩︎

Feature image

We finished watching The Staircase on Netflix last night. It's only 13 episodes, but took us a while to watch as we've been busy with moving house. This is the second Netflix series I've watched in which the judicial system is under scrutiny, the first being Making a Murderer.

Both cover periods of more than 10 years since a supposed murder, for which the main suspect is under investigation and goes to trial. In both series there is also evidence that the police and prosecutors have not played fairly and will do anything within their power to make sure the suspect goes to jail.

It does beg the question of how often this happens? Can we trust the judiciary system? What are the alternatives?

Feature image

Now that we've moved into a new house, I need to find new routes to run. I want to run for 30 minutes, which at my current pace is just over 5 km. One webapp that I've found very useful is mapometer.com, where you can plot your route on the map, and will calculate the distance for you.

I've plotted a route through two parks and along the beach. Now if only the weather would play along so that I don't get wet on my run that would be great.

Enter your email to subscribe to updates.