fishy
banner
fedi.wang.yuxuan.org
fishy
@fedi.wang.yuxuan.org
May the force be with you, RAmen.

You can follow my blog on the fediverse directly: @b.yuxuan.org.

Opinions are my own.

He/him, they/them, or vi/vim.

🌉 bridged from ⁂ https://fosstodon.org/@fishy, follow @ap.brid.gy to interact
social.lansky.name
September 12, 2026 at 5:32 AM
Reposted by fishy
Another thing that's stupid from Samsung's kitchen appliances: We have a Samsung's (Dacor) dishwasher. When it needs to run self clean cycle, it sends you a notification in the app when you start a normal cycle. Obviously you won't just cancel the just started normal cycle, unload everything […]
Original post on fosstodon.org
fosstodon.org
September 8, 2026 at 11:25 PM
Went to San Carlos Beach at Monterey to see this year's sea lions:
https://photos.app.goo.gl/ydXUbPT1P5PbA5zF9
Sea Lions at San Carlos Beach Monterey CA · Monday, Sep 7 📸
Shared album · Tap to view!
photos.google.com
September 7, 2026 at 9:59 PM
Updated most of my #go libraries and cloudrun instances to 1.26/1.27 today. The new json v2 and stdlib uuid are really great in 1.27.
August 22, 2026 at 4:15 AM
Today is the first time I got 3 yellows.

#pastpuzzle en-552
🟩🟥🟥🟥 (+551)
🟩🟥🟨🟥 (+325)
🟩🟨🟨🟨 (+108)
🟩🟩🟩🟩 (0)

4/4 🟩

Past Puzzle – Das tägliche Geschichtsrätsel

https://www.pastpuzzle.com

> Errate das Jahr anhand von 4 historischen Hinweisen. Ein von Wordle und Geschichte inspiriertes Spiel […]
Original post on fosstodon.org
fosstodon.org
August 21, 2026 at 2:59 PM
Digital what?
July 25, 2026 at 3:13 AM
Kaylee taking sunbath this morning

#cat #catsofmastodon
July 15, 2026 at 4:18 AM
SFO is just so much better than LAX
June 21, 2026 at 3:53 PM
When using Chrome on Linux on California DMV's website, I can login, but when I try to renew my wife's car's registration, it throws an error about unable to verify my session.

Switched to my ChromeOS device and it worked. So they basically just blocked Linux browsers.
June 4, 2026 at 5:54 PM
RE: https://mastodon.social/@arstechnica/116557918846102126

wat, FCC bans software/firmware updates for (check notes) security? how is it even supposed to work? the vendor checks that this router is being used in the US and block its updates?
mastodon.social
May 12, 2026 at 1:54 PM
Just migrated most of my Github repos to my personal @forgejo instance at https://git.yhsif.com/, with push mirror set to still auto push changes back to github.

Since most of my Go projects are already under my go-vanity (https://git.yhsif.com/fishy/go-vanity) proxy behind go.yhsif.com, for […]
Original post on fosstodon.org
fosstodon.org
May 9, 2026 at 6:05 PM
Reposted by fishy
Framework 13 is the perfect (Linux) laptop
I haven’t used Mac for 5 years now (except my last job for 6 months because they only support mac developer environment). For my 8 years at Reddit, my first work laptop was a Macbook Pro, but that’s only because I didn’t know I have a choice when onboarding. Then, after 2 years, when I finally had the chance to refresh my laptop, I switched to a Dell laptop with Linux. The Dell laptop was huge and heavy and not as premium as a Mac. But the software experience was just so much better. Then, on the 2nd refresh, I switched to a Chromebook, relying on Crostini for development. Then I left Reddit and joined Shopify. Shopify only provide Macs for engineers as their development environment only supports Mac. So I was “forced” to use Mac again. Its software experience is just so bad (and that’s just _one_ example). Even their trackpad is worse than I remembered, and theirs are supposed to be best in the industry? Anyways, 6 months later, I decided to join a startup, and had this conversaion with our CTO: > Post by @[email protected] View on Mastodon And as a result, I now have an (almost) maxed out Framework 13, with Debian testing and KDE Plasma, as my work laptop: AMD Ryzen AI 9 HX 370, 2.8K display, 48GB memory, 1TB SSD. This was roughly 1 month before the Framework 13 Pro announcement, so no LPCAMM2 memory nor touchscreen for me. And it’s just such a good experience. There’re physical mic and camera switches; I can swap the USB-C ports to USB-A for yubikey nano, or to ethernet, or to HDMI, or to card readers; I can have translucent bazel or USB-C ports; And most importantly, when I need to upgrade to touchscreen, or LPCAMM2 memory, I can just upgrade those parts, without replacing the whole laptop. The only complaint I have hardware-wise is that the screen is less bright than I used to, but the new touchscreen is also bright, so maybe I’ll just upgrade to that at some point. Software-wise, nowadays Linux is just so much better than Mac. I use Debian testing with nixpkgs, so when occasionally there are something I need not in Debian’s repository, I usually can get them from nixpkgs (for example, currently Debian testing only has Neovim 0.11, but I can get 0.12 from nixpkgs). From driver side, everything just works. The only issue I had was with the built-in microphone, but that’s actually just a small config issue. I also use clevis with dracut to bind the full disk encryption key into TPM so I don’t have to type it on every boot, following this doc. There’s a small bug in dracut causing an ordering issue with systemd that’s already fixed upstream but not in Debian yet, so I just put this one line into `/etc/dracut.conf.d/50-clevis-fix.conf` to fix it: install_items+=" /usr/lib/systemd/system/cryptsetup.target " While I still love ChromeOS for personal casual use, currently the lack of support for cgroup v2 in Crostini is starting to cause serious issues. Likely Baguette and/or AluminiumOS will make things better. But for now, if I need to replace my personal Chromebook, I’d just buy a new Framework 13 Pro. The modular, everything is upgradable/repairable vision is just so good.
b.yuxuan.org
May 2, 2026 at 4:30 PM
Steam, every once in a while: That Dwarf Fortress game from your wishlist is on sale right now!

me: I'm not sure I'm ready for that game yet.
April 21, 2026 at 6:16 PM
So I bought a new UniFi G6 Instant camera to replace the Nest cameras we had on LitterRobot 4.

We have their camera mount accessory, which utilizes the USB-A port provided by LitterRobot 4 to power the camera, so I even bought a USB A-male-to-C-female adapter.

The new camera works, then stops […]
Original post on fosstodon.org
fosstodon.org
March 27, 2026 at 2:09 AM
me, joining a startup soon: about work laptop, are we mac only?

cto: the best part about a startup is that we make the rules...

me: say no more
March 26, 2026 at 1:42 AM
Today is Kaylee's gotcha day, she's been with us for 11 years now!

(She's currently in a cone because she had an eye surgery 2 weeks ago, but she's recovering really well)

#cats #catsofmastodon
March 18, 2026 at 4:17 PM
Reposted by fishy
Debian testing kernel update snafu
I have a few Linux machines (one Linux box at home, and a few VPS) running Debian testing (currently Forky). In the past few days, its version of Linux kernel was upgraded to `6.19.6+deb14`, then a few days later upgraded again to `6.19.6+deb14+1`. And that caused some problems. Usually kernel upgrades on Debian are trivial. After the new kernel is installed, grub will be updated to have both, with the newer one being the default one. Then you remote reboot the machine, and after it rebooted into the new kernel, you can then remove the old kernel. But here, grub somehow thought `6.19.6+deb14` is newer than `6.19.6+deb14+1` (likely because how string sorting worked), so after installed the new kernel version, `6.19.6+deb14` was still the default, and for remote headless machines (VPS) you can’t manually select the non-default one during boot, which makes the “booting into the new kernel” step annoying. For one of them, I even didn’t notice that it didn’t boot into the new kernel version (I checked `uname -a` after booting, but the 2 versions are too similar), and removed the old kernel while on the old kernel (It _did_ warn me that I’m trying to remove the kernel version that’s currently running, but because the `Yes` and `No` buttons are not in their conventional order I accidentally selected the wrong one). For these 2 particular kernel versions, after removed one the apt trigger also seems to have a bug that it doesn’t remove the removed one from `grub.cfg` correctly (manually run `update-grub` will update it correctly), made that VPS actually unbootable (because the default selected kernel version in grub menu no longer exists) and I have to use rescue mode to manually change `grub.cfg` to a usable state. In the rescue mode provided by the VPS provider, it booted into a machine with the original disk of my VPS attached (but not mounted). So I first used `lsblk` to get the device id of the disk (which is `/dev/vda1`), then mounted it via `mount /dev/vda1 /mnt`). Then I try to edit `/mnt/boot/grub/grub.cfg`, but realized that the only editor on the rescue image is nano which is not something I’m used to, and while `apt` is available on the rescue image, I cannot actually install `vim` or `neovim` on it. So I did `chroot /mnt`, which actually made the tools (`nvim`) on that VPS available again. But `update-grub` still doesn’t work in a `chroot` environment. So inside `/boot/grub/grub.cfg`, I found the entries with `6.19.6+deb14+1` in the `submenu` section, and copied the lines (the most important ones are the 2 lines starting with `linux` and `initrd` respectively) to the default `menuentry` section. After that, I exited rescue mode, and the machine booted into the new kernel successfully. On Debian systems `/boot/grub/grub.cfg` file is auto generated by `update-grub` and in most cases you shouldn’t edit it manually. So after it successfully booted into the new kernel, I made sure the old kernel version is cleaned up in `apt` correctly, and manually run `update-grub` to make sure `/boot/grub/grub.cfg` is in a good state, and it’s finally back to normal. For the other machines that’s still bootable (just into the old kernel version by default), I just repeated the steps to manually edit `/boot/grub/grub.cfg` so that the new kernel is the default one, reboot, cleanup old kernel versions, run `update-grub`.
b.yuxuan.org
March 17, 2026 at 4:17 AM
After moved recently I started to use Unifi Protect cameras and auto archive the video footages to UNAS.

When archiving, the filenames are like this:

"Driveway Cam 3-1-2026, 8.47.06am PST - 3-1-2026, 8.47.14am PST.mp4"

Like seriously, even if you really hated ISO 8601/RFC 3339, you should […]
Original post on fosstodon.org
fosstodon.org
March 1, 2026 at 5:20 PM
#birdbuddy app notification: look who's here

me: yea it's the same 3 house finches that come to eat every day. we only had one other bird visited once ever. I knew it before opening the notification
February 8, 2026 at 5:08 PM
Cardboard #kumamon (with Marty and Doc)
February 7, 2026 at 1:32 AM
Reposted by fishy
quote of the day

"Daniel Stenberg, the main developer of one of the most useful cURL tools"
January 24, 2026 at 9:37 AM
Reposted by fishy
Samsung's design issues
Or, why I don’t like Samsung’s products. ## Example 1: Emoji In Chinese there’s a saying of “画蛇添足”. Its literal meaning is “draw a snake then add legs”. We use it on people who do extra things that are wrong. It’s the perfect phrase for this Samsung example. It was 2017, long before Covid, and I still commute by Caltrain plus bicycle 3 days a week. One day, on my evening commute, I messaged my wife that I’ll be arriving home at roughly 6:30pm. When typing that message, Gboard suggested the 6:30 clock face emoji. I didn’t use that emoji, because I noticed that the emoji on Android was wrong (and also she’s not very good at reading analog clock faces). Noticing it wrong piqued my curiosity, so I checked on Emojipedia to see whether other platform’s emojis are also wrong. To my surprise, most of them were wrong, so I took a screenshot on Emojipedia and tweeted about it. I’m not going to link my tweet here, but here’s the screenshot I took back then: Screenshot of the 6:30 emojis at 2017 Why are they wrong? You might ask. On most analog clocks, the hour hand does not just “jump” every hour. It gradually advances every minute or even second. So, at 6:30, the hour hand should be halfway between 6 and 7, instead of pointing directly at 6. So, in this screenshot, only Microsoft got it right, and every other big company was wrong. But why do I pick at Samsung here? Because in this screenshot Samsung was _extra_ wrong. They added a second hand, pointing at roughly 50. People use this emoji to mean 6:30, not 6:30:50. If you really want to add a second hand, point it at 0. To be fair Samsung is no longer _extra_ wrong _today_ , they are just as wrong as others. I checked Emojipedia again at 2022 and tooted about it: Screenshot of the 6:30 emojis at 2022 Basically: Google fixed it. Samsung is still wrong but at least they removed the second hand to be just as wrong as others, no longer extra wrong. Microsoft somehow decided that being correct is boring and joined the dark side. (Today the correctness of this type of emojis among big companies is roughly the same as 2022.) ## Example 2: Vesa mount on monitors A few years ago I bought a Samsung monitor to be used on my standing desk. On my standing desk I use a monitor arm, so when purchasing monitors I made sure they have vesa mount. The Samsung monitor I bought does have one in its technical specs. But what they didn’t say in the tech specs is that they have a rounded/arched cutout around the vesa mount. VESA mount plates from the monitor arms are rectangles. Rectangles have 4 corners. At least 2 of the corners don’t really fit into the round cutout of the Samsung monitor. So in the end, I have to pad the 4 mounting screws up to make the mounting plate out of the cutout, like this: VESA mount on a Samsung monitor Funny that when looking at the wikipedia page of vesa mount, it’s also called “Flat Display Mounting Interface”. It has “flat” in its name, but Samsung decided that being flat is boring and need to screw that. ## Example 3: Kitchen appliances Fast forward to 2025. We just bought a new house from a builder. The builder put Dacor appliances in the kitchen. And Dacor is _supposed_ to be Samsung’s “high-end” kitchen appliance brand. Being a Samsung brand, they support SmartThings via WiFi (vs. Z-Wave/Zigbee/Matter/etc. that needs a hub). Both the induction cooktop and the oven have a touchscreen that I can connect to my wifi from there, without needing any app. But, contrary to what me or most people would think, connecting them to WiFi via the touchscreen doesn’t really help adding them to SmartThings. When you try to add them to SmartThings, SmartThings asks you to scan some QR code. They don’t have any QR code sticked on them, and there’s no way to make them display a pairing QR code on the touchscreen, despite having a touchscreen. Instead, you have to manually choose to skip QR code scanning on the SmartThings app, wait forever, then it will instruct you to pair them to your phone manually. And it won’t auto find them just because they are in the same WiFi as your phone. You have to manually put them into some pairing mode via the touchscreen, which essentially makes them disconnect from the WiFi and enter a hotspot mode, then your phone must connect to their hotspot WiFi (which doesn’t provide internet), in order to finish the pairing in the SmartThings app. In the process you would need to give them your WiFi information via the SmartThings app on your phone again. So what does connecting to WiFi via the touchscreen actually do? Maybe NTP to get the correct time? I can’t really think of any other use. The dishwasher has a QR code stick on it, but that QR code is not for pairing, and you still need to make it enter pairing mode. It also lacks the touchscreen, so you need to use some magic key combination to make it enter the hotspot pairing mode. Then comes the fridge. After you open the door, there’s a “platform” with some touch sensitive buttons you can use to turn on/off the ice maker, adjust the temperature, etc.. Those buttons are touch sensitive, not really physical buttons. They are inside a fridge, which can often have condensing water. Touch sensitive things hate water because to them water looks very similar to fingers. Those buttons are very hard to press correctly because of that. And after added all of them to SmartThings, in SmartThings when I click any of them it just takes forever to load and don’t give me any useful controls of them. So I just added them to my Home Assistant via SmartThings integration, and I immediately get useful actions and data for them in Home Assistant. At least I no longer to touch any of the buttons inside the fridge ever again because all those controls are available inside Home Assistant. ## Conclusion I really don’t like Samsung’s product design.
b.yuxuan.org
January 19, 2026 at 6:43 AM
Reposted by fishy
Comment on this post on Fediverse to see your comment on my blog post
I have been using Cactus for the commenting system since migrated to the current blog system (PandaBlog), but that’s changing. Recently, there were some issues with the backend of Cactus, and on the matrix room it’s stated that the shared hosting of it is currently in an unmaintained state, and the developers’ focus have shifted to other projects. While I could still self-host it to keep using it, self-hosting Cactus is quite a pain. So while I’m sad to see it came to this (I really liked the idea of generating a matrix room for each blog post’s comments). So I was looking for alternatives. Since I already am using Bridgy Fed to bridge the blog posts to Fediverse (and also AT protocol), the obvious choice is to bring back Fediverse comments to the blog posts, so I made a feature request on the project. Ryan, the author of Bridgy Fed, pointed out that it’s already possible via Webmention, a W3C standard that’s kind of like pingback from 20 or so years ago. Having a web standard for this feature is certainly nice! But to implement it also means I have to handle and _store_ all the comments/interactions received in some kind of database, which would be quite a pain for PandaBlog, or other statically generated blog systems (like Jekyll). Luckily, as Ryan pointed out, there are also long running 3rd party systems you can use to handle webmentions for you, the most notable one being Webmention.io. So I implemented support for Webmention.io on PandaBlog yesterday. As the nature of using a third-party system, a lot of things cannot be tested locally, so I have to do it kinda publicly in 3 steps: ## Auth The first step is to be able to auth with webmention.io, so I can create a dashboard there and start receiving webmentions: `1aec408`. The authentication they support is called IndieLogin, so what that commit does is add an IndieLogin URI to the configuration of the blog, and add that data to the pages, so Webmention.io can get that data and do the auth. ## Handle webmentions After authenticated with Webmention.io, the next step is to start using Webmention.io to handle webmentions on the blog posts: `cf0bd86`. After that’s deployed, when there are new interactions from bridged blog post on the Fediverse, the webmentions will be send to Webmention.io, and it will store them for me (I also tried interactions from AT protocol, but those are not sent to Webmention.io, or not stored correctly, but I don’t care much about AT protocol anyways 🤷). One nice thing about Webmention.io is that it also handles moderation, so you can go to your dashboard and delete spam or otherwise unwanted webmentions. Also important to note is that this obviously can only store webmentions _after_ the blog system enabled Webmention.io to handle webmentions. All the interactions before that were not stored. ## Render webmentions The final step is to render webmentions stored on Webmention.io back under the blog posts: `752700e`. For that I used webmention.js. You can see the results at the back of the previous post I used for testing: Screenshot of webmention.js rendered webmentions So, when you see this post in your Fediverse feed, comment it there to see your comment back to this page.
b.yuxuan.org
January 3, 2026 at 6:46 PM
Cactus commenting system (https://cactus.chat/) is kind of dying 😞. I need to migrate my blog to a new commenting system in 2026.

I really think Bridgy Fed is in a good position to provide a commenting system, filed a feature request (https://github.com/snarfed/bridgy-fed/issues/2274), and I […]
Original post on fosstodon.org
fosstodon.org
January 1, 2026 at 5:04 PM
Reposted by fishy
2025
## 旅行 2025 flight map 今年继续超越去年成为我有史以来飞得最多的一年。主要来自去去英国看了三次球:上半年去温布利看我队几十年来第一冠,然后下半年买了个欧冠四场主场套票(还剩一场一月去看)。 然后今年飞了 Alaska Milkrun,算是划去了 bucket list 里面的一项。 然后今年去日本的时候去了以前没去过的九州岛,感觉福冈这个地方在日本有点类似国内的成都:有大城市的便利,但是人们又活得非常安逸没多卷,吃得也好/有特色,难怪现在在日本也算热门搬入城市。 ## 影视 今年看了六十几部电影,跟去年一样因为长途飞得多有挺大比例是在飞机上看的。印象比较深的几部是: * 出走的决心 * Mickey 17 * 0.5 mm * Materialists * 破·地狱 * One Battle After Another * Baby Assassin 三部曲:1, 2, 3 然后今年以为飞机坐得实在太多最后没片可看了就看了些曾大热但之前一直拖着没看的电影,像是卧虎藏龙, Crazy Rich Asians, Anora 之类的。 电视剧方面,热点和 Common Side Effects 都相当不错。 ## 娱乐 今年大热的 Expedition 33 和 Silksong 都相当不错。另外我玩了 Citizen Sleeper 1 和 2,这个系列算是一种低配版 Disco Elysium 代餐,但是在代餐里面算是文本相当不错的。 然后今年玩了很多重制的老游戏,像是时隔多年终于又能在掌机上玩 Patapon 1+2, 和逆转裁判 456 加上逆转检事合集。年底又刚开始玩重制的 Final Fantasy Tactics. ## 其它 今年在前司干满八年后终于下定决心走出舒适区跳槽了。八年已经是我在同一个雇主那里的最长记录了。 两个猫都开始吃处方粮了,但是至少 Kaylee 拉稀的问题基本得到了控制,算是松了一口大气。 年底又买了个房,在 2025 最后一天拿到了钥匙。
b.yuxuan.org
January 1, 2026 at 4:02 AM