Tag: english

Why isn’t my HTTP/3 working?

On a sudden impulse, today I updated the Traefik in my cluster to v3. Unlike the transition from v1 to v2, v2 to v3 was very smooth. I only needed a few tiny tweaks to the configuration. One of those was that HTTP/3 support is no longer “experimental” and so it shouldn’t be configured as such. This started me on a weird quest on getting my sites to use H3.


Anime weekend

Friday I was just spacing out looking at some AMV on Youtube when I noticed a shot from Dragon Maid. It’s been a while since I last (re-)watched that, so I decided to enjoy some delicious slice-of-life sakuga.

By the time I realized what’s happening I’d speedrun both seasons of Dragon Maid and it was time for more. Mahoushoujo ni Akogarete has been on my to-watch list for a while, and I took this opportunity to actually watch it end to end. It was… well, a not exactly safe-for-work experience, but especially the close-ups of Baiser’s face are absolute cinema.


Magic

A while back I picked up my fretless Ibanez to practice some old-school songs. Think Elvis, Cream, Stray Cats or Blue Cheer. I use the fretless even if the original wasn’t played on one, because otherwise I’d pretty much never pick it up. I still do so sadly infrequently…

So it was quite a shock that the bass’s neck was so bowed that it was unplayable (strings touching the fretboard all along). At that point I didn’t have time to learn how to fix it (by adjusting the rod inside) so I put it back into its case and kinda forgot about it.

Then today after cleaning my room I gathered the tools I needed and took it out of the case to fix it—except it was back to normal. I can only assume that the bending was caused by the ridiculous humidity and summer heat, especially during the weeks in June while I was on Denali (and so the AC in the room was off), and then it gradually returned to normal.

To celebrate I played until my fingers started to ache (which isn’t a lot of time considering how out of routine I am).


Remote work

Recently I’ve been seeing lots of articles about companies enforcing RTO (return to office), putting an end to the remote work “paradise” that’s been around since the ‘rona lockdowns. Luckily my company isn’t doing that for devs (though sales folk are hybrid), and it would be tough too considering how many of us moved even further away from the office in downtown Tokyo.

I personally don’t really feel a difference in productivity whether I’m in the office or not. Even if I’m in the office, I’ll just put on my headphones and do my stuff. Team meetings? I really don’t feel there’s a difference between sitting around a table (or standing in front of a whiteboard) and an online video meeting.

On the other hand, losing two hours of my life every working day to a soul-numbing crowded commute? Or paying 3-4x as much just so I can live near the office and drown in the concrete jungle smog every time I want to go for a jog? How about no?


Thunderstorms

I love thunderstorms. Looking at them. Observing them from safety. I’ve had an unfortunate encounter with one on Tsurugi a few years back so I’d prefer not to run into one again exposed on a ridgeline, but looking at one from somewhere the lightning and the rain aren’t threats is fantastic.

Single cell thunderstorm cloud

Personally I also like the sound of it. I used to have a few hours long “soundscape” of a thunderstorm too that I’d listen to when I couldn’t fall asleep. It’s the same kind of majestic, raw power of nature I admire when I look at the overwhelming scale of mountains.

This was inspired by that today we’re getting round two of huge (and quick) thunderstorms. I don’t think I’ve ever seen two completely separate storms in a day…


Denali ’24

This year I was back on Denali for another try. It’s been 3 years since my previous attempt and while my training routine was a bit haphazard, I felt really strong and my training hikes were going great. It was time to head back to Alaska!

This time I flew in through Minneapolis. Why? Flying in through Seattle would’ve been longer and more expensive. I was a bit traumatized by just how flat the US midwest is, but I can deal with that. This time I didn’t have to deal with any vaccination process at the airport, but I did manage to meet some of my teammates before the next day team gathering.


Upgrading to Ubuntu 24.04

Didn’t go smoothly. I was on 22.04 I believe and I decided to upgrade without waiting for 24.04.1. It was a mistake. I started the upgrade with do-release-upgrade -d, but way too soon I ran into a very nasty crash screen telling me “Oh no! Something has gone wrong and the system can’t recover”.

Aside. I personally hate these “friendly” additions like “Oh no!” Fuck off? My system just crashed, I’m pissed and the last thing I need now is some linux dev who thinks they know how to be friendly rubbing it in.

The way to fix it for me was: first reboot and choose recovery mode in the Grub menu. Once recovery mode is on, enable network then drop into a root terminal. Run dpkg --configure -a to fix whatever was interrupted. After reboot it should boot all right (at least the GUI would work).

However the network was still broken. I could ping 1.1.1.1 so the connection itself was alive, but nothing could be resolved. Turns out the installation removed the resolve component of systemd. Luckily for me sudo apt-get install systemd-resolved could install it back and that solved the connection issue.

At this point the system seems to be functioning properly (nothing is obviously broken other than Thunderbird for some reason getting removed from my dash), but I don’t know if the interrupted install broke anything nor how to check if anything is broken or in an uexpected state.


An active day

Today was a day that didn’t start so well. I woke up one too early for some reason (weird dreams? too much light? two full workouts the day before?), but I kept going back to sleep until I was 30 minutes before my first meeting, at which point I put on my pants, went jogging on my now-usual route and even had time to shower before the meeting started. There was a lot to do. The “year” starts in April in Japan, so there’s a lot of setting goals and meeting managers, but there’s also a lot of ripe fruit to pluck (even if not necessary low-hanging) that I’ve set my eyes on.

I had to realize that I probably overworked myself (physically in the gym) yesterday, because even after a whole day of almost-rest I was still feeling sore, so instead I opted to chill today, have some beer while I can and catch up on last season’s anime. This weekend I’ll be going alcohol-free in preparation for the Denali expedition in May. It’s gonna be (haha) fun to pull off another Arabaki dry, but I’ll manage for sure. Caffeine at least is not among the forbidden substances (only alcohol is at this point, though I figure tobacco should be on the “list” too).


Hiking gear nowadays

Trekking poles

Black Diamond Alpine Carbon Cork. Not as compact as the aluminum Alpine Carbon FLZ, but it feels much lighter and more durable.

Gloves

The new discovery is the Norrona Fjora mesh gloves. I’ve used Norrona gloves before and I wasn’t blown away: those were uncomfortable and fell apart quick. The Fjora mesh gloves on the other hand are ridiculously light and unlike similar offerings from Montbell, these didn’t get shredded on the first rocky scramble. Of course they’re not warm, but unless it’s well below freezing, for me it’s enough.

Backpacks

Since 2020 I’ve been using a Mammut Ducan Spine 28-35 for training both in the gym and on the trail. Its rock solid back support system means that I can load it up with 20+kg and (while it does creak from that much weight) it still carries just fine. However, over the years I wasn’t going easy on it, so it’s now pretty much falling apart.

For lighter hikes I discovered K’s Ultralight and I’ve been using a KS40 for 1-2 day hikes. It lacks any support, so I definitely wouldn’t load it up, but with an Outdoor Vitals closed cell pad folded into its back side, it’s a super light option with plenty of pockets.

For longer hikes I use Hyperlite, a Southwest during the summer and a Prism during the winter.

Shirts

For a good while now I’ve been using Marmot Ascent shirts, both long and short sleeve. They’re extremely hard to find (I get the impression that the long sleeve version isn’t made anymore at all), but they’re super light, they dry in a flash and they don’t get smelly even after 3-4 days of Japanese summer heat. They perform way better than the Montbell shirts I used before—though I still use Montbell short-sleeved shirts in the gym. The Marmots feel so delicate I’d really rather not wash them every other day.


Some notes on iOS BLE

Dealing with Bluetooth Low Energy (BLE) through Swift can be pretty tricky. The interfaces and delegation are straightforward, but there is an implicit “right way” of doing things that (as far as I could find) is not documented anywhere.

I don’t know if the way you have to hold on to references to things or they get immediately discarded and cleaned up was surprising only for me with zero Swift background, but it took some time to get used to. For example CBPeripheral and CBL2CAPChannel objects require that you keep a reference to them, or the connection will be terminated, resulting in interesting behaviors.

Another thing is that I couldn’t find any details about error patterns in the documentation, but I figured out the following:

  • the input and output streams that come with a CBL2CAPChannel are not opened when you get your hands on them, and result in a pretty obscure 0x0122 failure if you try to use them without opening them first
  • you have to read/write those streams from the same DispatchQueue where they are scheduled, or the operations will silently just do nothing. Logging Thread.current can help debugging this.
  • error 436 means the local (you) severed the connection. This usually happens when you forget to hold on to the CBPeripheral instance
  • error 431 means the remote peer severed the connection. I’m not entirely sure what triggers this, since usually the disconnect is very graceful with a delegate callback. Maybe sometimes closing the streams doesn’t make it in time and this error gets logged first?
  • error 582 means the PSM used to initiate the CBL2CAPChannel is incorrect.