Updates 2024/Q3
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.
The third quarter includes a mix of personal and open source project updates.
Personal things
I’m back on the American continent, but not for long. In one month I’ll leave again – this time towards Asia, where I’ll stay for the foreseeable future. It would have been nice to hit the road a little earlier, to have the chance to check out Bitcoin Tokyo and Nostrasia, but unfortunately, that didn’t work out. Nevertheless, I’m very much looking forward to the change in scenery!
In Q3 I finished the Kunai Corne v3 keyboard build, which is the ergo mechanical split-keyboard I took with me on my recent travels. I also began work on the Ultra-Portable Data Center version 2.0. As mentioned in the previous update, more trouble with its storage came up, forcing me to invest time and money, and more importantly reconsider the way forward. Expect an update on this soon!
A rant on Linux photography
Ever since I moved back from the Mac to Linux I’ve been trying to also migrate from Capture One to an open-source alternative under Linux, primarily focusing on Darktable. It has now been over three years and I’m still unable to get off of Capture One and thereby my MacBook.
Let me start by saying that plenty of intelligent people invested a lot of time and effort into Darktable and that deserves admiration and appreciation. I don’t mean to rain on anyone’s parade here, because it is amazing to see how even some of the most complex software can be built within the open-source community.
Having that said, though, from a pure user perspective Darktable is an awful piece of software and in no way comparable to Capture One, Lightroom or even just mobile apps like VSCO. Let alone the clunky and insanely complicated – dare I say obfuscated? – UI, that is uninviting to any first time user that just wants to edit a handful of photos, Darktable struggles with the most basic things. I forced myself to only use Darktable throughout my past trip and I regret doing so, as I ended up with a broken database, with files scattered all over the place and edits that I won’t be able to ever export again, because they’re gone. I even managed to screw up metadata of photos by trying to apply GPS positions from GPS track recordings to them.
And before you ask: Yes, I know that 99% of these issues are my fault because I didn’t care to read the three hundred twenty pages long user manual for simply wanting to import an SD card full of pictures, adding GPS data, applying presets, cropping and exporting them in a fixed width-x-height format. Heck, my needs for post-processing are so low that I am even able to do it on a decent smartphone using a mobile app. I don’t need AI tools, I barely use any brushes and whatnot other features and I rarely have to skew or distort images (if the import takes care of applying a decent lens profile). Yet for some reason, Darktable’s developers think that they have to build a rocket so every hobbyist photographer can fly to the moon or something. And instead of getting the basics right – like exporting a fixed size – they apparently chose to leave them half-baked and rather focus on building more and more things on top these seemingly broken basics.
Having experienced these issues, I can fully understand now why some people chose to leave the project and fork it, even though I have a hard time believing that these forks will significantly improve the state of the software. As for me, I am on the brink of giving up trying. I would probably be better off to define a fixed workflow for all my photography needs and implement it as a pure Shell script using ImageMagick and whatnot. And while I really want to get rid of the MacBook and Capture One, I might just trade it for a halfway decent iPad that runs Capture One Mobile and forget about the whole photography on Linux idea.
Why not digiKam or RawTherapee?
All alternatives that I’ve checked have hard dependencies on X11, which I avoid on my system. Besides, none of them allow me to import existing presets from Lightroom or Capture One, making it impossible for me to use the Kodak Portra presets that are my go-to style for everything I edit. With Darktable there is at least t3mujinpack, which gets close enough to the look I’m getting from Capture One.
Hardware
Starlink
Internet access in the past weeks has been ridiculously bad, with complete outages for days at times. Even with an OpenWRT Mwan3 setup that fails over to LTE, I have been unable to get proper internet connectivity. As usual, when there’s a broadband outage, everyone and their dogs move towards mobile connectivity, hence saturating those channels instantly.
On a side note
The phone carrier, whose pre-paid SIM card I’m using in m0t0k0 for the LTE failover, offers uNlImItEd DaTa, but then they won’t allow tethering. However, thanks to my Wireguard VPN setup, I was able to get around that restriction.
m0t0k0 is connected to the router via a USB-C Ethernet dongle. Inside /e/OS – the Android ROM that’s running on the device – I enabled Ethernet tethering in the Hotspot settings and configured the Wireguard client as an Always On VPN that blocks all connections without a VPN. In addition, I had to allow tethering clients to use VPN connections, and I also had to enable the Developer Mode and turn off Tethering Hardware Acceleration. After a reboot of the Android device, the setup worked like a charm. Due to the VPN tunnel, the carrier is unable to (easily) detect that I’m tethering. Their only chance would be to block the use of VPNs or to run traffic analysis and identify the data transfer patterns of the VPN connection as unusual for a handheld device.
Long story short, the Mwan3 setup now has grown a third WAN port, which connects to a Starlink router. In theory, it works surprisingly well, especially considering that it’s rain season with clouded skies for most of the time. Download speeds are around 195Mbps, upload speeds around 20Mbps and I’m usually getting a ping between 20ms and 40ms, which is better than what the broadband connection delivers (around 50ms).
Due to the lack of open space and ways to mount the antenna, however, it’s quite obstructed, making the connection drop to zero every few minutes. That’s not exactly Starlink’s fault, yet it shows that unless you have the luxury of living somewhere, where you own the place you live in, you’ll end up struggling with neighbors, administrations, and other things just to get the dish positioned in a way it can continuously see the Starlink satellites – especially if what you need is a temporary mounting solution. However, with the number of Starlink satellites growing well beyond six thousand, this issue will probably disappear at some point.
Anyway, as Starlink for me is mainly just another bandaid solution for an issue that’s 100% on the broadband side of things, I’m nevertheless happy that there is at least a way around the greedy corporate chokehold of traditional ISPs. Even though I would have preferred a European Starlink solution, rather than contributing to Elon Musk’s pockets, Starlink sadly is still the only available option. Judging by Europe’s track record in tech – or the lack thereof – it’s more likely that a Chinese alternative will become available before a European one exists.
At least Dishy is geek-friendly enough to expose metrics for Prometheus.
Mouse
I replaced the old-people-gray Logitech MX Master 3 that I had since 2021 with a new Razer Basilisk V3 Pro with a wireless charging puck and the Razer Mouse Dock Pro. Not only does the Basilisk look and feel better than the disgusting rubberized exterior of the MX Master: But with 117g – or 119g with the wireless dongle inside the mouse – the Razer is also 27g/25g lighter than the Logitech.
Like many of us, I got tricked into buying a MX Master by YouTubers and recommendations from people who for example also consider Apple’s MacBooks and iPhones to be great products. Long story short, not only did I despise having what felt like a silicone-laced brick in my hand, but its Unifying Receiver also suffered from connectivity issues that made working with the mouse a PITA. From moments of connection stuttering, to lags and complete loss of connectivity, the MX Master 3 had it all. But I’m sure a paid Logitech subscription would have fixed that.
At some point, I didn’t feel like putting up with it any longer and replaced it with the Razer Basilisk. So far, the Basilisk has been working the way you’d expect a mouse to work. No connectivity issues, wireless charging via its dock, okay-ish battery life when using the 2.4GHz connection, and most importantly, the same free-spinning scroll wheel that the MX Master 3 has.
While the Basilisk V3 Pro is supported by OpenRazer, the Mouse Dock Pro isn’t
yet. However, it’s possible to configure the mouse and the dock through
a Windows VM, using Razer’s official malware software, and then use that
configuration on Linux – with a few exceptions in regard to e.g. the RGB
lighting configuration that appears to only be partially stored on-device.
Tablet
After upgrading from my Pixel 6a to a Pixel 8 in the previous quarter of this year, I stumbled upon a good deal for the Google Pixel Tablet, with the dock included, and decided to give it a try. While I’ve never been into tablets and hence haven’t owned one since the 3rd generation iPad and the Google Nexus 7 – which were both gifted to me back at the time – I often found myself wanting to read a document or watch a video in a more handheld way, without having to squint onto a relatively small phone screen. With GrapheneOS being available on the Pixel Tablet, I would be able to do that without having another big tech bugging device around me.
So far the experience with the GrapheneOS-powered tablet has been very positive. KOReader lets me read PDFs, ePUBs, and other documents in an eBook-type look-and-feel, I can use AnyType to browse my notes and I can stream media through Jellyfin. All the other apps, like Grayjay, Voice, Feeder, etc. work just as good on the tablet as they do on the phone. Some apps aren’t yet optimized for the larger screen, luckily open-source developers are awesome.
I’m yet to get a USI 2.0 pen and give Saber a try, but from what I’ve read hardware support seems to be there.
DualSense Controller
Even though I’m not a gamer I wanted to get one of these for a long time, as these controllers can be useful for a variety of things outside of connecting them to a RetroPie for gaming – for example as Bluetooth remote control for Arduino projects or Linux-based media centers.
Headphones
After having dealt with Bang & Olufsen’s trash headphones for years I finally replaced them with a pair of cheap yet decent over-ears by Anker: The Soundcore Space Q45.
I have updated the audio page with info on the Soundcore Q45 wireless ANC headphones, but the tl;dr is that the Soundcore aren’t just better on paper, they’re overall the better daily drivers. Especially given that Bang & Olufsen still sells their 2018 headphones for more than double the price of the Soundcore Q45 – currently $299.98 on Amazon, versus $129 (incl. discount) for the Soundcore.
As with so many other (predominantly central-/northern-)European brands, I feel like Bang & Olufsen, too, lost their competitive edge a long time ago and are now being outrun by manufacturers overseas that offer similar, or sometimes even better quality and design, for less. Another infamous example of this happening is Europe’s automotive sector – one integral part of the European economy – which keeps losing ground globally on the same basis: Products with outdated or mediocre technology, sold at outrageous price tags, using what’s left of the reputation the industry once had.
Toothbrush
Speaking of outdated and outrageously priced technology, let’s talk toothbrushes. This is a bit of a weird hardware mention, yet I found it worth including. After being unsuccessful finding sanely priced replacement heads for what had been my toothbrush for over seven years – a toothbrush old enough to still carry the Braun brand next to its Oral-B Pulsonic label – I decided to upgrade to a newer and ideally better brush.
I went with the Oral-B iO Series 3, as it has a pressure sensor and claims to protect the gums, yet it does not come with any of the AI bs of the iO 5 and 7 series. The cost of the upgrade was roughly the cost of eight new OEM brush heads for the old toothbrush, and the iO came with two heads included. Generally there are more brush head options for the newer iO available, from overpriced Oral-B originals to more reasonably priced aftermarket brands.
The old Pulsonic is going to serve me as an items cleaning tool from now on. It turns out to be a useful helper for removing dust/crumbs/hair from keyboards, phone loudspeaker holes, and other tight spaces. That is until the one brush head I have left becomes completely unusable.
Physical storage
I found a Pelican Storm iM2100 in what I like to call RAMA yellow for cheap and decided to get it as a storage solution for my keyboards. It fits both, the M60-A, as well as the KARA, and leaves plenty of room for the Kunai Corne v3 and other smaller devices like a mouse.
Speaking of RAMA …
It is saddening how the situation turned out. To everyone who’s not in the keyboard game: RAMA WORKS is (used to be?) an Australian boutique studio creating what I would argue are some of the most iconic mechanical keyboards of the past decade – remember when Vercel gave away the M60-A as Vercel Limited Edition keyboard?
RAMA’s founder, Renan Ramadan, started the company back in 2015 in Melbourne and built a reputable collection of original designs as well as collaborations with other well-known designers and engineers in the keyboard space, like Wilba. Check out this video for more info on the history of RAMA.
Anyway, fast forward to today and the company finds itself inundated with customer complaints and awful reviews, all due to unfulfilled orders and broken promises. The disintegration of RAMA appears to have begun back at the end of 2021, when two key employees of RAMA left the company and started their own business with, well, a very similar portfolio of products. It certainly didn’t help the whole situation that one of these employees – Kate, and yes, just like the name of RAMA WORK’s unreleased keycap set, or presumably like the first two letters in their KARA keyboard (KAte & RAma) – had also been in a long-term relationship with the RAMA founder prior to their departure from RAMA WORKS. Hence many people began referring to this as the RAMA drama.
Short story long, over the past month a series of updates from Ben, one of the former employees at RAMA WORKS, were posted on Reddit, detailing what was going on internally – and unfortunately the situation doesn’t look too pretty for anyone involved. It appears that people will likely not receive the products they paid for, and it also appears that sadly RAMA is pretty much done, businesswise.
I am lucky to not have hopped on the M60-B groupbuy train, even though I would have loved to have an M60 that is cross-compatible with the KARA. My plan was to buy it used at some point, but I guess that’s not going to become a reality anymore. What’s truly sad with all of this is that with RAMA’s expected departure from the hobby, the HHKB space is going to lose another option in what is already a small set of designs.
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.
Overpush (a.k.a. farewell Pushover!)
As announced a while ago, I began working on moving all my important notifications from Pushover to Overpush, an open-source, self-hosted alternative. After giving it some time to assess stability, I have now completed the process of migrating every service over. Notifications work like a charm – without depending on Google Cloud Messaging/Firebase Cloud Messaging – and I haven’t had a single issue with Overpush so far.
To be able to migrate Grafana I initially opened a PR in Grafana’s alerting
repo that would allow for the Pushover URL in their implementation
to be customizable. That way, everyone who’d like to switch to Overpush could do
so by simply adjusting the Pushover URL. Unfortunately nobody from the Grafana
team seem to care for this feature and the PR hasn’t received any attention
whatsoever.
I hence decided to add a dedicated /grafana
path to Overpush that would allow
the use of Grafana’s Webhook integration (under Contact points) to push
notifications to Overpush. The feature became available with the release of
Overpush v0.2.0.
If you’re looking to remove your dependency on the proprietary and OSS-unwelcoming Pushover service as well you should give Overpush a try!
Neon Modem Overdrive
NMO received a good chunk of fixes throughout the past quarter, as can be seen on its issues page. Many of the fixes were related to the Lemmy integration. It seems like Neon Modem Overdrive is predominantly used as a TUI Lemmy client, heh.
A new release containing all the updates is available for download.
On a side note, I began implementing Nostr as a system in NMO.
As mentioned in the post, the implementation will use NIP-51 communities, for which I made use of the go-nostr library and kept the NIP-51 implementation in a dedicated package that I’m planning to upstream later on.
I haven’t had time to advance the implementation, but a first test of the
existing code did look promising. If you are interested in supporting the
implementation, feel free to check out the nostr
branch and play around.
reader
reader also received a few minor fixes and a new version that includes the updates is available for download.
usbec
usbec was refactored and is now fully configurable. You might remember the daemon from the Minimalist and Functional Desktop Environment without Xorg post a while ago. The USB Equipment Commander is a lightweight daemon that is able to run commands based on the USB equipment connected to a computer. It makes it easily possible to run scripts and programs when specific USB devices are being connected or disconnected.
“Why, there’s udev for that?!” you might say. Sure, but udev rules come with all sorts of limitations, making it very cumbersome to run especially Wayland-related commands. Often times, rules that trigger user-specific scripts and tools are hacky at best, given the constrains imposed by udev.
Enjoyed this? Support me via Monero, Bitcoin, Lightning, or Ethereum! More info.