welcome to unrelenting.technology

You can interact with posts on this website using your own website, if you set up IndieWeb things on it! (More specifically, sending Webmentions from h-entry formatted post pages.)

Current posts

Upgraded my gaming OS install to Windows 11. Took several hours because of me trying to be “clever” with bootloaders back when I was installing 10.

So, error 0x800701b1 when updating means Windows is confused about UEFI boot entries. In my case, the Windows SSD had no ESP (just the one NTFS partition… that did have an EFI directory on it somehow?!), while the other SSD had everything on its ESP — rEFInd, FreeBSD loader.efi, and Windows Boot Manager. It all worked fine, but turns out bcdedit is really confused about this setup and spews some error about a nonexistent or unrecognized device. Fiddling with it and stuff actually broke my Windows install in a weird way (first it booted into safe mode, then any boot would result in a BSOD related to kernel exception something). Booting a Windows-to-Go install from an external hard drive, shrinking the NTFS partition (damn that takes ages on a 2TB SSD) and adding an ESP fixed the install, and I was able to update to Windows 11 just fine.

This is kinda my fault for ending up with such a bizzare setup but I still wanna say, “ARRGGHHH Stupid Windows!!”

Happy new year! Since I haven’t been posted in a while, here’s what I’ve been up to lately:

  • adopted Wezterm as my terminal emulator, contributing a bunch of (mostly Wayland-related) patches in process
  • figured out a minimal tool to make Xiaomi power strips work without the “cloud”
  • saw a SIMD-accelerated tac line-reversing utility and immediately ported it to arm64 NEON/AdvSIMD
  • helped out with firmware and EC (just testing with the latter) patches for the Thinkpad L430/L530
  • developed a FreeBSD driver for the SPI keyboard/touchpad attachment in Apple MacBooks (currently only in my fork and only tested on the 2015 MBP, spibus-side prerequisites are in review)
    • related: got the Magic Trackpad 2 (which uses a compact packet format but similar surroundings to bcm5974) working too
  • started learning PCB design with Horizon EDA
  • found bugs in the mold linker and zlib-ng
  • made new Wayfire plugins: wf-globalgestures, wf-dynspaces, wf-touchpad-gesture-drag (yeah, turns out 3-finger drag is easy with current libinput: it’s a hold-cancel-swipe sequence!)
  • finally made a freebsd-embedded-hal Rust crate
  • just now added dark mode to micro-panel where I’m writing this

Unusually, I do have a legit new year’s resolution this time: I should blog more! Want to publish some long-form things here.

Sometimes I waste hours of debugging on really really silly things…

Why do I keep thinking that e.g. 0 || 69 (typically written with variables obviously) in C would return 69 rather than 1?! Well it must be because C’s “booleans are just numbers” thing makes me think that the operators would also do… number things. No they don’t! >_<

Website redesign is live! Don’t have a good homepage yet but really liking how the post view looks now. Plus /photos is a gallery view now.

read more