Updates 2022/Q4

Project updates from the current consecutive three-month period, with info on the current status of my projects and next steps. You might find this interesting in case you’re using any of my open source tools.

Updates 2022/Q4

The fourth quarter includes a mix of business, personal and open source project updates.

Personal things

Merry holidays everyone! I hope you’re having a great time with family and friends. The last post for 2022 is my quarterly Project Updates post.

Back at the beginning of Q4 a noticeable, mid-size earthquake shook the region here, little over one year after the last big one. It was only a few points shy of 7 on Richter’s magnitude scale and close to the epicenter there was some damage. However, the high-rises around here luckily withstood the shock waves. It is quite an experience, especially at over 140 meters above ground, and more so knowing that the buildings weren’t built with earthquake protection in mind.

At the end of October, after two months without gas, I was happy when a gas leak that was found back in Q3 was finally fixed. However, the fun didn’t stop there, as a dozen of other things in the apartment either broke down or required maintenance, forcing me to take time off, coordinate with maintenance people and have them around every other week.

The past few months were exceptionally annoying in that regard. I cannot fathom how other tenants put up with this, and how they find the time to be constantly available for workers to come by and fix or maintain stuff. The way maintenance is done here appears to be ridiculously inefficient and time-consuming, with tasks often being split across multiple days/weeks.

I’m starting to feel like I’m getting to enjoy all the downsides of #boatlife with none of the benefits. I should probably reconsider my decisions …

I should buy a boat.

Speaking about broken things, after a bit of back and forth with XFX regarding the defective QUICK319, I eventually got it replaced. However, I haven’t yet put up with the effort to mount it back into my workstation, hence I’m currently still using the QUICK210 that I got as an interim replacement for the duration of the RMA. With Blender and other programs being unable to make use of the more powerful amdgpu card, I’m in no hurry to replace the RX 6500 XT, which btw runs on as little as 5W during normal operation.

Shortly after I released the previous project updates post, in which I mentioned how my phone’s camera had become non-functional, the rest of the hardware also kind of broke. I accidentally spilled water on the IP68-rated device, at which point the device went dark. It was unable to boot it for several hours. When it turned on again it didn’t stay for long and randomly rebooted every few minutes. It also seems the WiFi module took a hit, since it kept losing connectivity every now and then. The rebooting has magically solved on its own a few days later, yet the WiFi issues persist.

This situation nevertheless required me to order a new phone – something that I truly dislike having to spend money on. I was initially considering a refurbished Samsung Galaxy S10 and simply dd if=old-samsung of=new-samsung, but with prices well beyond $220 for a four years old phone I disregarded that idea. Luckily it just so happened that Google’s Pixel 6a was on sale for $299, so I decided to go for that. I knew that /e/OS did not support the 6a, but I was considering to move to GrapheneOS in case the Galaxy S10 would ever break. I figured that $299 for a phone that would run a privacy-oriented Android distro and would even support 5G and WiFi 6 wasn’t a bad deal after all. While I, too, hate telephones, and I would definitely have preferred to either switch to the Pinephone Pro, or get rid of a phone altogether, it seems that neither option is realistically possible right now.

The things you own end up owning you. – Chuck Palahniuk

I’ve detailed the installation and day-to-day experience with GrapheneOS in a dedicated post. If you’re also considering to switch, this post might give some further insights.

Another thing that broke for absolutely no reason was my Ledger Nano S’ display. All of the sudden it didn’t light up anymore, making it impossible to use the device. I disassembled the Ledger to check what display it uses and how its mounted.

Disassembled Ledger Nano S

I found a replacement for the display, that comes with the added benefit of being white instead of blue, and got the Nano working again. While I only used this specific Ledger as FIDO key, I nevertheless didn’t want to let it go to waste over something as cheaply available as a tiny 0.91" OLED display.

Fixed Ledger Nano S

Last but not least, one of my external backup drives seems to be on the brink of death. While not broken yet, it started acting funny to say the least:

[21908.810873] usb 6-2: new SuperSpeed USB device number 3 using xhci_hcd
[21908.823520] usb 6-2: New USB device found, idVendor=1058, idProduct=2630, bcdDevice=40.04
[21908.823522] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[21908.823524] usb 6-2: Product: Game Drive
[21908.823525] usb 6-2: Manufacturer: Western Digital
[21908.823525] usb 6-2: SerialNumber: 575843324441313137375848
[21908.823853] usb-storage 6-2:1.0: USB Mass Storage device detected
[21908.823963] scsi host2: usb-storage 6-2:1.0
[21909.845758] scsi 2:0:0:0: Direct-Access     WD       Game Drive       4004 PQ: 0 ANSI: 6
[21909.846066] sd 2:0:0:0: Attached scsi generic sg0 type 0
[21909.847301] sd 2:0:0:0: [sda] Spinning up disk...
[21910.868823] ..................................................................................................not responding...
[22022.197782] sd 2:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[22022.197800] sd 2:0:0:0: [sda] Sense Key : Not Ready [current]
[22022.197808] sd 2:0:0:0: [sda] Add. Sense: Logical unit is in process of becoming ready
[22022.197820] sd 2:0:0:0: [sda] 0 512-byte logical blocks: (0 B/0 B)
[22022.197825] sd 2:0:0:0: [sda] 0-byte physical blocks
[22024.198302] sd 2:0:0:0: [sda] Test WP failed, assume Write Enabled
[22026.198185] sd 2:0:0:0: [sda] Asking for cache data failed
[22026.198189] sd 2:0:0:0: [sda] Assuming drive cache: write through
[22026.199584] sd 2:0:0:0: [sda] Spinning up disk...
[22027.220658] .................................................................not responding...
[22118.093887] usb 6-2: USB disconnect, device number 3

It does spin up eventually however, but I guess I now need a backup for the backup of the RAID 1 system that I’m running. Huh. Also I should probably start a monthly installment on this journal that’s dedicated to things that break for absolutely no reason at all. Let me know if that’s content you’d be interested it. </sarcasm>

In other, more positive news, I purchased a set of desktop speakers, mainly because using the portable Sony XB23 all day long for several months has decreased the battery capacity significantly, down to a point where it will require re-charging every few hours. I wasn’t looking for high-end monitors, but rather something without fancy features that might break, that I can simply listen music and videos on without much hassle.

I went for the Razer Nommo, as they fit the overall muted aesthetics of my desk. The sound quality is not too bad considering the price.

Razer Nommo

Speaking about multimedia, I took some time to make and publish a few new videos on my YouTube channel. I’m experimenting a bit to see what might be interesting content and I’ll be publishing a few more videos in the coming weeks and months that will also leap into other directions. Let me know what you think!

On a side note, I’ve updated and completely revamped the command line page, removing the pointless installation instructions for each listing and instead adding a GIF for each tool that offers a glimpse into how it looks. I’ve also included a few new tools that I’ve been using in the past few months. Previously I manually took screenshots of every tool and programmatically cropped/scaled them using ImageMagick. Because this always required me to set up a few things on my desktop environment beforehand, so that all terminal screenshots would look the same, I eventually gave up on the approach. Thanks to VHS however I was able to implement a script that I will use from now on to generate reproducible GIF demos of tools without all that hassle. And the best part is that the page now contains more than just static screenshots.

Next, some keyboard news. The folks from RAMA were kind enough to search their warehouse and sell me a replacement for my M60-A’s LNY20 backweight that has started oxidizing. These kind of parts are usually hard to come by and in most cases require hunting and negotiating on r/mm, where they’ll charge an arm and a leg for them. However, I actually don’t mind the looks of the oxidized backweight – it adds to the device’s character and makes it look even more piraty – but since I’m doing keyboard photography and videography from time to time I thought it might be good to have a mint version of the backweight just for the camera.

Additionally, I also chipped in on the RAMA Collectors RW WAVE SEQ2 RNBW artisan, which I received at the end of October. I have number 52 out of 135 and I had RAMA add a custom engraving to it:

Mobilis in Mobili

On a side note, I’m currently looking for a Trio-75 hotswap PCB. It seems like mechmarket can’t help with this, so if anyone here happens to be selling one, I’d be happy to hear from you!

Last but not least, in mid November I finally got a status update from DailyClack regarding the ePBT Kuro Shiro R3 group buy that I’ve joined roughly one and a half years ago and that was supposed to be out in Q1 this year. Unfortunately it seems like there were issues with the set, leading to either additional cost or further delays.

Changing the keycaps on my RAMA M60-A

Professional things

Over the past months I’ve been supporting several client projects as well as continued to work on own ideas. I have also had multiple requests for new projects, which I mostly either passed along to great people within my network or rejected altogether due to the lack of capacity, with the exception of one particularly interesting project that I’m looking forward to maybe be a part of. Generally it seems the market right now is in maintenance-mode, with only few companies considering exciting new greenfield projects.

Speaking about network and capacities:

I’m currently looking for additional (wo-)manpower for one of these own things! If you’re either a Go nut or a Svelte sommelier – or both! – that has a fair amount of experience with especially Kubernetes, Terraform and/or Ansible, and would like to join a small team of people for an exciting side hustle, shoot me a message and let’s have a chat!

Open source projects

I had a bit of time on my hands to pursue my open source projects. Most repositories have received at least dependency upgrades/security fixes, while others have advanced quite a bit as well. Let me highlight the most significant updates down below.


xbsapi is a new project that I began working on mid December. While I keep most of my bookmarks publicly available on this site, so that I can look them up anywhere, anytime, I still have a handful of bookmarks to private infrastructure, financial services, etc. that I’d rather store inside the browser. Unfortunately it’s quite tiring to manually keep browser bookmarks across multiple devices (and browsers!) up to date, so I decided to give xBrowserSync a try. Unfortunately the API service is a Node.js project that requires a MongoDB, making it relatively cumbersome to self-host. Hence I decided to basically rebuild their backend with something that’s a lot more lightweight.

xbsapi is a single binary drop-in replacement for the xBrowserSync API service that supports SQLite3, PostgreSQL and MySQL. If you’re using xBrowserSync already or are currently looking for a way to sync browser bookmarks across multiple devices, xbsapi might be for you!


Superhighway84 was updated to the latest go-orbit-db version and was migrated to use the new kubo libraries. With go-orbit-db implementing kubo 0.16 it’s now on par with the latest IPFS release. Being (and staying) up to date with IPFS isn’t an easy task, even more so for the go-orbit-db folks who do most of the heavy lifting here.

On a side note, I am glad to see that there are still new people flocking to Superhighway84 one year after its initial release. Even though at times discussions slow down, it puts a smile on my face to open it up and see new postings every now and then.


Kiwi has received a big update in terms of Nerves and other dependencies that it’s using. I’ve upgraded most packages to their latest version and also replaced obsolete packages with other ones (e.g. nerves_init_gadget and nerves_network). A new release – 1.0.3 – is available which includes all the updated dependencies and configuration.

I’ll also soon migrate from the now retired Mojito library to Finch. However, since I’m only rarely using the Pimoroni Keybow these days it could take a bit to find time for that – which is why updates to Kiwi only happen on a yearly basis.


With caldr, addrb has gotten a brother that is also a WebDAV client, but instead of being a CardDAV TUI, caldr is a super lightweight command line CalDAV calendar.

caldr has been tested with SabreDAV-based WebDAV servers and, just like addrb, allows to fully customize the its output using Go’s text/template. It supports queries like in 2 days or next 4 weeks to display upcoming calendar events.

However, just like addrb, it does not (yet) support modifying/adding entries.


Thanks to the great work of gonzalo, reader has landed in the OpenBSD repos and was hence featured in the November issue of the OpenBSD Webzine.

On a side note, I have released v0.4.0 that contains a fix for sites that previously weren’t loading due to e.g. Cloudflare’s WAF.


Just like with reader, Planor is also available on the OpenBSD repositories – again, thanks to gonzalo who’s been packaging it!


With the Fediverse hype that’s currently going on, my TUI Mastodon client Gomphotherium is experiencing a small revival, with people apparently flocking to it in search for a lightweight, command line based client. While I’m not actively working on it anymore, I nevertheless appreciate and support the efforts from other people who would like to improve it.

Due to these PRs, a new version has been made available for everyone to be able to benefit from the efforts.


Similarly, I’ve opened a PR for OBS Studio, in which I not only make sure to remove X11 dependencies, but also update it to the latest available version.

There has been a bit of feedback on the PR, but it’s not merged yet. If you’re an avid streamer on Gentoo feel free to check out the PR and test it if you’d like.

Unfortunately I got distracted by plenty of personal things and wasn’t able to continue with the PR in time. Luckily, Chiitoo took over, finalized the PR and even upgraded OBS to a newer version that became available shortly after I opened my initial PR.

░░░░ ░░░░░ ░░░░░░░░░

To give a sneak peak of what I’m cooking up for 2023, let me introduce ░░░░ ░░░░░ ░░░░░░░░░. It’s an open source ░░░ client that’s built in Go – with a twist. I won’t be giving away too much right now, but I’m looking forward to publish an early version sometime around the first January weeks, with incremental updates following in the coming months. Depending on how its being received by the ░░░ community I’d be excited to partner with talented ░░░░ artists and introduce some fine ░░░░░ art to the project that will certainly bring back ░░░ scene vibes from the ░░░ and ░░░.

Assuming ░░░░ ░░░░░ ░░░░░░░░░ will get a big enough part of the community interested, I’m considering to actually merge the efforts that went into ░░░░░░░░░░░░░░ into it, in a smoother, more seamless way than it is right now, built on top of the more lightweight and modern ░░░░░░ ░░░ framework.

I can’t wait to share this project with all of you!

That’s about it for now. I wish everyone a healthy, happy and successful 2023!

Enjoyed this? Support me via Monero, Bitcoin, Lightning, or Ethereum!  More info.