Updates 2024/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.
The fourth quarter includes a mix of personal and open source project updates.
Personal things
Moshi moshi and konnichiwa from Hokkaidō, Japan, where I’ve spent the Xmas holidays at cozy -12°C, with amazing food and lots of outdoor activities, after enjoying other parts of the country for the past two months. I’m spending the holidays around here and will head towards slightly warmer regions at the beginning of 2025. Even though temperatures are tough, I can’t deny that I did miss seeing snow.
I arrived in 日本国 back in October, after taking a six-hour flight, a two-hour flight, and a fourteen-hour flight, making it one of the most tiring trips that I ever had. When I went to Japan six years ago, I flew directly with Qantas from Melbourne, making the journey a lot more relaxing. This time, though, I had layovers in the US as well as Canada, requiring me to have Visas for both countries just for the sake of transiting.
Banks …
To make things more exciting, I received a notification about an odd charge on one of my main credit cards on the day of travel, shortly before I had to board my first flight. This required me to cram in a visit at the bank’s local branch, to get that piece of Boomer plastic technology replaced with a new one. Luckily I was able to get the replacement card in no time and board the flight later that day. On a different note, I’m happy to see that neobanks, that offer disposable cards, are slowly but steadily taking business away from Boomer banks, given the PITA that situations like these cause to people. It’s nevertheless worth remembering that…
- all banks are ultimately bastards and cutthroats (hello irrational account maintenance, money transfer and exchange fees!)
- unbanked people exist
- debanking – on a global level; The US is not representative of the whole world! – is a real issue, regardless of the excu… err, explanations financial corpos might bring forward
- financial regulation, and thereby the power that the banks and ultimately the government have over the average Joe is absurd, especially when compared to the lack thereof for the few who have too much wealth for banks to pass on for compliance reasons
… and that decentralized financial sovereignty and self-custody is the future we should all be striving for – and no, not in the form of ape pictures, laser-eyes, wen Lambo and all of that bs.
As for the fraudulent transaction, I had talked to other people who have had situations with relatively similar transaction details and I’m suspecting that the card leaked from shop.app (or a merchant used through that platform), which is a Shopify service. In my case, it is highly unlikely to have been stolen from any other place. Shopify has been notoriously bad at protecting its users’ private information, which led to multiple breaches over the past years. However, as my card had just been renewed a little over a year ago, I suspect that they’ve had another, more recent breach that is yet to come out.
Japan
Anyway, back to my travel, the time in Japan has been great so far. However, the country has changed a lot since the last time I was here. In some areas for the better – like the availability of ATMs and payment options for foreign cards, and the overall English skills of the general Japanese population – but in other areas unfortunately for the worse. Tourism, as well as a surprising amount of immigration from neighboring Asian countries, have definitely had an impact on the culture, which to me was especially noticeable in Osaka. Specifically, the Chinese-speaking population appears to have gained a strong foothold – or dare I say, chokehold? – on certain areas, which went as far as having replaced traditional Japanese cuisine, products and even norms with foreign ones. Other nationals appear to have found a new home in Osaka as well, making it one of the best places to eat for example authentic Phở.
In general, I was surprised with the amount of tourists from other Asian
countries. With #japan
content trending on YouTube in the western hemispheres,
I would have expected the country to be overrun by tourists from those regions.
However, except for Kyoto – which is frankly terrible in terms of fast travel
overtourism, especially from the western regions – most of Japan appears to be
packed with mainly tourists from Asia. The weak Japanese Yen
and relatively quick and low-cost flights within Asia seem to make the country
an attractive destination for its neighbors.
Anyhow, I might be publishing a dedicated post covering the trip later next year, if I manage to put something of value together. In that case, I will include more details on the experiences I had. The tl;dr is that the country has changed quite significantly over the past years and if you remember Japan from nearly a decade ago, you might be in for a surprise re-visiting it today. It is definitely more crowded, more chaotic and – for better or for worse – a lot less traditional Japanese in many areas. In an increasingly globalized world, however, this appears to be true for most countries.
Site
Anyhow, during my time here in Japan I’ve been taking it slow and focused on enjoying the experiences. I spent as little time as possible in front of my laptop, yet I nevertheless managed to advance a handful of things that I had on my to-do list for too long already. One of these things was the switch from Render to a dedicated Vultr VPS, with Bunny CDN in front of it.
The main motivation for this was a suspicion that I had about Render using Cloudflare’s CDN, even though I have never seen this being clearly stated anywhere in Render’s documentation. After some digging, however, it became clear that Render’s static website hosting is basically just a fancy facade for the Cloudflare content delivery network.
If I had known about this right from the start I probably wouldn’t have picked Render for my site to begin with. I feel tricked by Render for not making it 100% clear that they depend on Cloudflare for the service that they appear to provide themselves. As I don’t agree with Cloudflare’s business practices, nor the fact that they are becoming a defacto monopoly, I gave Render the finger and moved to a different setup.
Ideally, you haven’t noticed any change at all, as the site should work with the same great performance for visitors as before the migration. In case you do experience any issues let me know!
Ultra-Portable Data Center
The Ultra-Portable Data Center v2 has been completed and is working like a charm! Even though I was not able to use my existing 2.5" HDDs for backupping the system regularly, I managed to set up a routine using an external 3.5" SATA dock and newly purchased 3.5" SATA HDDs. (see below)
One thing that I did not see coming and that will affect my decentralized Dropbox is the discontinuation of Syncthing for Android. Luckily there appear to be forks that will continue to work. This probably nevertheless means that I’ll have to re-set up Syncthing on all of my GrapheneOS devices again.
Hardware
Laptop RAM
A few days before leaving for Japan my laptop crashed out of the blue, in a way in which my whole system was still functional, but every software was misbehaving oddly. Turned out the filesystem encountered an issue:
[23124.614371] BTRFS critical (device dm-0): corrupt leaf: root=2
block=168098168832 slot=13, bad key order, prev (280831479808 168 4096) current
(5953576960 168 12288)
[23124.614377] BTRFS info (device dm-0): leaf 168098168832 gen 276211 total ptrs 189 free space 1541 owner 2
[23124.614380] item 0 key (5953437696 168 16384) itemoff 16230 itemsize 53
[23124.614382] extent refs 1 gen 12498 flags 1
[23124.614384] ref#0: extent data backref root 257 objectid 1189496 offset 0 count 1
[23124.614387] item 1 key (5953454080 168 12288) itemoff 16177 itemsize 53
[23124.614389] extent refs 1 gen 243554 flags 1
[23124.614390] ref#0: extent data backref root 257 objectid 9226705 offset 0 count 1
[23124.614393] item 2 key (5953466368 168 8192) itemoff 16124 itemsize 53
[23124.614394] extent refs 1 gen 222309 flags 1
[23124.614396] ref#0: extent data backref root 257 objectid 7654016 offset 0 count 1
[23124.614398] item 3 key (5953474560 168 4096) itemoff 16071 itemsize 53
[23124.614399] extent refs 1 gen 256818 flags 1
[23124.614401] ref#0: extent data backref root 5 objectid 5719763 offset 0 count 1
...
[23124.615324] item 186 key (5955379200 168 4096) itemoff 6372 itemsize 53
[23124.615326] extent refs 1 gen 224034 flags 1
[23124.615327] ref#0: extent data backref root 257 objectid 594548 offset 18444288 count 1
[23124.615329] item 187 key (5955383296 168 4096) itemoff 6319 itemsize 53
[23124.615331] extent refs 1 gen 224011 flags 1
[23124.615332] ref#0: extent data backref root 257 objectid 594548 offset 18280448 count 1
[23124.615334] item 188 key (5955387392 168 4096) itemoff 6266 itemsize 53
[23124.615336] extent refs 1 gen 256818 flags 1
[23124.615337] ref#0: extent data backref root 5 objectid 5719535 offset 0 count 1
[23124.615340] BTRFS error (device dm-0): block=168098168832 write time tree block corruption detected
[23124.633636] BTRFS: error (device dm-0) in btrfs_commit_transaction:2524: errno=-5 IO failure (Error while writing out transaction)
[23124.633642] BTRFS info (device dm-0 state E): forced readonly
[23124.633644] BTRFS warning (device dm-0 state E): Skipping commit of aborted transaction.
[23124.633646] BTRFS error (device dm-0 state EA): Transaction aborted (error -5)
[23124.633648] BTRFS: error (device dm-0 state EA) in cleanup_transaction:2018: errno=-5 IO failure
I turned off the device and booted from a Gentoo LiveDVD USB stick to run
brfs check --readonly --check-data-csum -p /dev/mapper/root
. Even though no
errors were reported I already suspected what was going on. Later that day I
logged off and rebooted into memtest86+
to run the full test suite overnight.
When I got up the next morning, I was greeted with a big red FAIL
message on
the display.
Apart from the one failure in test #6 – moving inversions, 64 bit pattern –
pass #3, no other issues were reported. Decided to re-run that specific test and
have memtest86+
output BadRAM patterns
(Configuration -> Error Report Mode -> BadRAM Patterns
), which I would then
use in my GRUB configuration to prevent the kernel from using the affected areas
of the RAM. However, I was unable to reproduce the failure. Whether it’s an
actual hardware issue, or maybe just something caused by
alpha particles, cosmic rays, or other random noise I
can’t tell. However, I haven’t experienced the issue ever since, and even though
I repeatedly ran memtest86+
, I was unable to reproduce it.
However, in case it shows up again, I will pick up new RAM sticks at EDION/Yamada Denki/Yodobashi Camera/Bic Camera, just to avoid long-term data corruption. The sticks that I’m using right now are the Corsair Vengeance CMSX64GX4M2A3200C22 that I purchased new for $119.99, exactly 291 days before this occurrence. I have had good experiences with Corsair Vengeance RAM in the past, but maybe this time I ended up with a lemon. Or maybe the combination of CPU and RAM that I’m driving isn’t the best to begin with.
Hard Drives
Another hardware failure affected an external 2.5" WD_BLACK P10 HDD that I got back in 2019. Even though the drive was solely used for periodic backups and therefore only experienced moderate use, back in October it began throwing IO errors.
I tried to swap out the drive to replace it with a different, internal 2.5" HDD. However, WD appears to feature an unconventional case and PCB design that wouldn’t allow me to use any off-the-shelf 2.5" HDD in the same P10 case. Thanks for the e-waste, Western Digital!
As it was one of the drives that I used for data backups on the UPDC, I had to replace it eventually. I chose to go with internal 3.5" drives from that point on, and I bought a USB SATA dock to connect them directly to the UPDC. The replacement is a 4TB Seagate 3.5" Barracuda.
I have now removed storage items from the Tech section and instead added a dedicated Storage category to my belongings due to the many changes.
Starlink
The Starlink setup mentioned in the previous quarter is still up and running, but it is now finally mounted properly and shows no more connection drops whatsoever. Its ping is consistently around 30ms and transfer speeds are well beyond 200Mbit down and 15Mbit up most of the time.
I have reconfigured the Mwan3 on my OpenWRT router to balance between the broadband connection and the Starlink. The LTE connection is now a failover option for when the ISP as well as Starlink should go down.
I’m curious about the Starlink’s longevity, though. It has been roasting in strong and direct sunlight with outside temperatures being around 34°C for a few months now. Above 80% humidity, as well as the proximity to the sea will certainly also affect the hardware. While I’m in Japan I have paused the Starlink subscription, so I’m curious to see whether I can re-activate it when I’ll be back next year, or whether Starlink will hit me with the congestion fee, or worse, deny re-activation due to capacity issues.
d3lt4 (MacBook Pro)
d3lt4, the 2018 MacBook Pro that has been my primary workhorse from 2018 until 2021, when I moved back to the Linux desktop, and has ever since solely been used for editing photos in Capture One, and from time to time videos in DaVinci Resolve, is no more. It had become increasingly cumbersome to lug around two laptops only to have a way to edit the photos that I was taking with my camera. I first tried migrating from macOS and Capture One to Darktable on my primary laptop, however, as mentioned in the previous update, that didn’t work out at all.
I am currently experimenting with Lightroom on my Pixel Tablet, which runs GrapheneOS, even though I gave Adobe the finger years ago. Unfortunately, it appears that Lightroom is the only viable option for developing raw photos on Android.
It works, but I’m experiencing random glitches, crashes, and odd behavior. I don’t know whether that’s due to running Lightroom on a dedicated profile with sandboxed Google Play Services, or due to disabling the app’s network access – because I don’t want my photos to be uploaded to Adobe’s cloud. Or, whether it’s just Adobe’s bs software as usual. The overall experience, however, is far from decent. It is nevertheless not as big of a PITA than using Darktable on my Linux laptop.
Anyway, long story short, d3lt4 is no more. After now nearly six years of use I gave the 15" MacBook Pro away. I figured that for as long as I would have the option to use Capture One on macOS I wouldn’t force myself to find a different workflow, and hence would never get rid of the device. Therefore, sometime in early October I erased all content and settings and sold the device for a painfully low price. However, since I didn’t plan on taking the MacBook with me to Asia I figured that it wouldn’t make sense for it to rot for months in high temperatures and humidity. As of Q4, I have hence officially left macOS for good.
Teenage Engineering OP-1
Another hardware update consists of a different kind of keyboard: The Teenage Engineering OP-1. After years of window shopping Santa Claus came to town and brought me the MoMA artwork, putting a smile on my face that is bigger than the one when I got my first Sega Mega Drive (“Genesis”) II back in 1993.
I have been binge-watching the explainer videos by Red Means Recording ever since the OP-1 landed on my desk and I’m continuously trying out things. It is however not as easy as it looks and requires some muscle memory. Unfortunately, it doesn’t come with Vi bindings. :-)
Given the absurd price-tags the Swedes are putting on their latest iterations – the OP-1 Field, as well as the OP-XY – I’m happy to own what feels like the least disproportionally priced sampler they will seemingly ever produce.
I have added the OP-1 to the audio page.
RAMA M6-C DUALSHOT
With the collapse of RAMA, I figured that I probably wouldn’t have the chance to find any of their products anymore in the future. It just so happened that during the same time, Omnitype ran a sale on the M6-C DUALSHOT-edition macropad, which made it a no-brainer. Especially with the Kunai becoming my primary keyboard it made sense to have a macropad for some of the most used shortcuts, that would otherwise require some serious finger acrobatics.
When I ordered the RAMA M6-C DUALSHOT from Omnitype, I initially received a HIBI MIA Botanical. How painfully ironic, to order a RAMA macropad and receive the same type of product from HIBI, isn’t it?
Anyway, as I would have had to send it back to the US, I had to keep it and re-order the M6-C that I initially wanted. Omnitype didn’t reimburse me the money for it, yet at least I only paid a little over $80 for the HIBI, which is nearly half the retail price. As I have no real use for it, I keep it around until I happen to find someone interested in purchasing it at a significantly lower price.
I have hence added both macropads to the keyboard page.
Anker A1257 (10Ah 22.5W)
During my time in Tokyo, I purchased an Anker A1257 power bank, despite having the A1336 with me. Even though the A1336 is great for charging my laptop, tablet, and phone, it is way too big and heavy to be used as an EDC when walking around for prolonged periods. Especially with my sling being slightly too small to carry everything I would need – which made me upgrade to a different one, see below – I would often find myself using the big sling, which can get ridiculously uncomfortable. More on that in a dedicated review, however.
Long story short, I replaced the A1336 in my EDC with the A1257.
UGREEN 15202 Nexode Pro GaN 100W 3-Port
The one Satechi 75W Dual Type-C PD charger that I took with me is on the brink of giving up, with it randomly stopping charging connected devices. Since I have had decent experiences with Anker in the past and there are official Anker stores in Japan popping up like mushrooms, I intended to give their 737 GaN Prime 120W 3-Port charger a try. However, even with welcome coupons, tax-free and holiday sales, the 737 seemed irrationally expensive, especially given the somewhat bad reviews from users due to its form factor and the thereby introduced stability issues on Type A power outlets.
Hence I instead opted for Anker’s more budget-friendly competitor, UGREEN, and went with the Nexode Pro GaN 100W 3-port charger. Although it delivers 20W less in output power, it was more than a third cheaper and it appears to sit more firmly in power outlets – probably due to its lighter weight.
The UGREEN has been working well so far and due to the increased output I’m able to charge my laptop as well as other devices simultaneously without individual outputs dropping significantly. Using just a single port, the charger can pump out 100W on the upper USB-C1 port, 30W on the middle USB-C2 port, and 22.5W on the lower USB-C3 (type A) port. Using two ports simultaneously, the charger outputs 65W on C1 and 30W on C2, 65W on C1 and 22.5W on C3, or 15W on C2 and C3. Using all three ports, C1 still delivers 65W, while the other two ports drop to 15W each. With my laptop ideally expecting 65W, I can use C1 regardless of what I plug into the other ports, which is exactly what I wanted.
Sony Alpha 7 III Support
Whenever I travel, I usually bring my camera with me. The Sony Alpha 7 III has been a reliable companion for the past years and I enjoy taking photos with it. However, during one of my previous trips, I noticed an odd vibration every once in a while. I was first under the impression that it was maybe a hick-up with my old 35mm Zeiss lens, but even after switching to the 40mm Sony I kept feeling the camera vibrating now and then while simply walking around with it in my hand.
I decided to have the Sony service check it out and see if maybe the IBIS has an issue. The camera got bumped around quite a lot over the past years, so I wouldn’t be surprised to learn that something might have taken a hit. What better country to bring the A7 to for maintenance than its home country, I thought.
Shortly after arriving in Tokyo, I went to the Sony store in Ginza, where I asked the staff for help with my Alpha 7. It was a cumbersome, five-minute, Pocketalk-based interaction in which the Sony staff explained to me that Sony doesn’t offer maintenance or repairs through any of their official stores – especially when the camera wasn’t purchased in Japan. Without going into the nitty-gritty details, the end of the story was that I was left hanging with my need for maintenance/repair. Unfortunately, the staff wasn’t even able to refer me to any authorized third-party repair that would be able to have a look. I was even willing to send the camera in through the store, but they wouldn’t accept it as it had not been purchased in Japan.
I will give it another go in a supposed service station in Akiba when I’m back in Tokyo next year, but I’m rather pessimistic about how that will turn out. At least now I know that when crap hits the fan and the camera dies, Sony Japan won’t be of much help.
Fujifilm X100VI
Yes, you read that right. In a weird twist of events, a (retail-priced) Fujifilm X100VI found its way into my hands during my travel through Japan. And yes, I couldn’t believe it either. The final decision to purchase it was last but not least driven by the frustrating support experience with my Sony camera.
In case you should be unfamiliar with why finding the Fuji was a huge strike of luck:
The Fuji X100VI, which is the sixth iteration of the X100 that Fuji introduced back in 2010, was officially released in February 2024 but has ever since been notoriously out-of-stock anywhere on this planet. As usual, the situation is made worse by scalpers buying up any new stock Fuji keeps churning out incrementally, only to sell it for multiples of its retail price on eBay.
Long story short, I’ve been gradually replacing my Sony A7 with the even more compact and lightweight Fuji X100VI on day trips and you’ll be able to see the results in the upcoming photography posts. I’m also preparing a long-form review of the Fujifilm X100VI that I’m looking to publish sometime in Q1/2025. Make sure to subscribe to my RSS feed if you’re interested!
Garmin tactix 7 AMOLED
Back in August 2023, I upgraded from an Apple Watch to a Garmin smartwatch, specifically the Garmin Instinct 2X Solar Tactical. The watch has been a reliable companion over the past year and a half that helped me better understand my fitness status and gain valuable insights into my health. While the hardware sports a wide set of sensors to help track different vital metrics, it lacks one important feature: An Electrocardiogram. It is something that I have been advised to get, to be able to gain insights into specific situations. While the Apple Watch was able to record a single-lead ECG, unfortunately, none of the Garmin watches with monochrome MIP displays have this feature.
Long story short, I ended up upgrading from the Garmin Instinct 2X Solar Tactical watch to the Garmin tactix 7 AMOLED. However, due to what I assume is regulatory bs, the tactix would not allow activation of the ECG feature unless the user is located in one of the countries where this feature was released in. Garmin’s Connect app would use the phone’s GPS location to check for that, meaning that I had to fight the product that I thought I would own for a good hour or so after spending over a thousand dollars for this device. I ended up faking the GPS location on my phone to be able to activate a feature that is technically included in the watch but would not be usable for anyone outside the white-listed countries.
I’m going to publish a dedicated review on the Garmin as soon as I’ve used it for a bit, however, given the initial experience I’m already hesitant to recommend any of Garmin’s ECG-capable watches.
2022 Aer Day Sling 3 X-Pac
Due to size constraints that I began encountering with my [2021 Aer City Sling 2], especially after adding the X100VI to my EDC collection, I ended up upgrading it to the [2022 Aer Day Sling 3 X-Pac].
With a volume of 3L and an empty weight of 0.8lbs, it is not only slightly larger than the City Sling 2 but also noticeably more lightweight, thanks to the X-Pac material. In addition, it is less rigid than the Cordura, yet it keeps a sleeker shape even when fully packed.
The new sling fits the Anker A1257 (with its USB-C cable), the Fuji plus one additional Fuji battery, a microfiber cloth, painkillers, bandaids, disinfectant spray, my earphones, an additional 30cm 200W USB4 cable, my wallet, the Flipper and at least one phone. Even with all these things I’m able to carry it for a full day without it putting too much strain on either of my shoulders.
If you’re looking for an EDC sling, I definitely recommend the Day Sling 3 X-Pac over the regular City Sling 2.
2024 Aer Carry-On Small
With the new items that I bought, I ended up having too little space in my backpack. I hence decided to get an additional carry-on suitcase. I never had a carry-on suitcase before, but I guess I’m that age now. Getting the carry-on from Aer was a purely emotional purchase, however. As you might have noticed I like their bags a lot. Unfortunately, the Aer Carry-On makes no sense at all from a rational perspective:
It is a 41L hardshell suitcase that weighs 8.2lbs/3.7kg. With many airlines having a weight restriction of 15.4lbs/7kg on carry-on luggage – or even ditching carry-ons altogether – one can only pack 7.2lbs/3.3kg of stuff into the Aer Carry-On. Considering a regular 14" laptop weighs around 3lbs/1.4kg, you’re left with 3.2lbs/1.9kg for actual clothes, or approximately one pair of jeans and five t-shirts. Even if you disregard the laptop as a personal item, there’s not much you can bring with the Aer.
For comparison, the Samsonite Outline Pro Carry-On Spinner and Proxis Medium Spinner weigh 6.4lbs/2.9kg, and with an Uplift Hardside Carry-On, you can even go as low as 5lbs/2.2kg if the slightly reduced size is acceptable. Samsonite is only one example alongside others like Travelpro, July, Flylite, and American Tourister, which have plenty more lightweight options available.
I don’t know who Aer designed this carry-on for, but I assume their main target is people who solely fly business class or higher, or who like to live dangerously and just wing it regardless of the weight limit.
If it wasn’t for a strike of luck that allowed me to snap up the suitcase for only two-thirds of its MSRP I probably wouldn’t have bought it. Don’t get me wrong, the suitcase is top-notch, its build quality is solid and the color options are great. Oh, and the integrated handbrake is a nice gimmick. It just doesn’t make much sense from a rational perspective considering how ridiculously heavy it is.
Open source projects
I didn’t invest much time in pursuing my open source projects in the past quarter, hence there aren’t any updates to share. However, as I forgot to share two things in the previous updates post, I’ll seize the opportunity to do so now.
SeaweedFS
One thing that I forgot to mention during my
previous updates post was my PR towards SeaweedFS
which adds OpenBSD to their GitHub CI workflow and hence their
official release builds. Thanks to the
groundwork by davestgermain, the PR was a walk in the park and only
required adding the necessary goos
configuration.
Hurray to SeaweedFS on OpenBSD!
pastel
Another tiny update that I forgot about in the previous post is the
update of pastel
on NetBSD that includes
one PR from me, from long ago, which adds
hyprpicker
as a --color-picker
to pastel
.
I hope you are enjoying the festive season and I wish all of you happy holidays and a successful 2025. Thank you for following along!
Enjoyed this? Support me via Monero, Bitcoin, Lightning, or Ethereum! More info.