Both long-form posts (articles) and short-form posts (notes) in one feed.
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
tacline-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
- which has of course resulted in making some new tools for it
- 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
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.
Very weird Vulkan problem likely nobody else would ever encounter:
way back in the day Mesa wrongly installed ICD definitions for i386 too on amd64, e.g.
I’ve installed Mesa manually, and never cleaned them up, so I’ve had these files with last modified date in 2017.
They didn’t really cause any problems (well, other than duplicating the GPU in device lists)…
until I ran the Vulkano test suite which would run
GetPhysicalDeviceFeatures2 on all devices.
For whatever reason, it would get a null pointer for that function on the second (described-by-
i386-file) device and explode.
sellout engine now has a README. Still have to write a big article about the whole story of my blog engines…
OpenPAM has some very strange behavior for
chauthtok since 2007 and I just hit that. Why… would you just completely change the semantics of
sufficient for the preliminary check thing?! This literally only seems to accomplish one thing: breaking password changes for additional password sources (that are not the last one).
Shower thought: Google App Engine was the original AWS Lambda of the late 2000s.
Okay, it literally was not, it was just “platform as a service”, morally equivalent to Heroku, right? Well, sure it didn’t have all the non-web event handling stuff, but it was in many ways closer to Lambda than to Heroku. Namely it did not run just any app, it would “insert itself into your code” – e.g. Python WSGI apps had to be adapted with a special module – which is exactly how it is in Lambda!
And around 2010 GAE did feel like the place for letting someone else run your random hobby project for free “forever”. Well, hm, any PaaS or FaaS with a free tier should be like that. Soooo I just went to check if this ancient project is up. Nope. I guess with the absorption of GAE into Google Cloud, things changed so much that not ever signing into GCloud (and so not accepting new terms etc.) leads to the app being shut down. Well, that kind of thing is very much expected from Google by now.
This website is now
fully owned by Bezos very very Serverless™!
Built using mildly forked Zola in GitHub Actions, uploaded to S3, content-delivered via CloudFront.
And even DNS is now Route 53, otherwise properly having CloudFront on an apex (bare) domain would be difficult.
Webmentions are outsourced to Webmention.io (+ a tiny endpoint converting their webhook to GitHub rebuild command is hosted on Glitch) and micropub is gone, at least for now.
(When I have nothing better to do I might just make an app running in Lambda that would edit the git repo in response to Micropub requests, send outgoing webmentions, be a custom auth endpoint, eventually also handle incoming webmentions, and so on.)
I’m glad I only did this now: CloudFront Functions did not exist until a few months ago.
With this functionality, it is a quite capable CDN.
Still clunky and weird in some aspects though (e.g. “Default Root Object” applying even after a Function rewrites
/ was quite surprising)
I really haven’t been posting on my website, have I? Yeah… I kinda don’t always have the energy/motivation/time to maintain a website like this.
BTW the choice to generate static HTML in sweetroll2 really helped with keeping the website up. For the last couple months (?) the backend was down because the Mnesia DB for the job queue somehow got messed up. But that was fine as long as I wasn’t posting, the pages were still up.
Maybe I’ll reinvent the backend once again.. with more “cloud” outsourcing to get rid of as much maintenance as possible.. or something.
mgb driver for Microchip LAN7430 (/31) NIC in FreeBSD commit logs.
Huh, interesting stuff: Microchip publishes so much documentation..
a “Programmer’s Guide” PDF with lots of driver pseudocode, and even evaluation board design files!
Burstable Graviton2 instances
are now a thing. Cool! Changed the instance type for this website from
t4g.micro so that Jeff Bezos gets less of my money :P
(Basically no money until the end of this year, even — there’s a free trial for
t4g.micro for all AWS accounts!)
The touchscreen (both finger and pen support) on my Pixelbook has been broken for a while (the Wacom digitizer was always present on i2c but it wasn’t sending events). There was like one time where I managed to get it to work briefly by holding the pen against it in some way, but that was it. Today I took the laptop out of the bag by the middle part, squeezing the lid a bit. Aaaand… touch works now! Something was going on with wiring somehow inside the lid (not the hinge) I guess? :/
Wi-Fi not connecting (well, getting instantly deauthed due to
AP-STA-POSSIBLE-PSK-MISMATCH after connecting)
is apparently a relatively
common problem with IoT devices.
And most people seem to point to ESP8266-based ones.
Well, I’ve never had a problem with ESP, but today I’ve been setting up an
RTL8711AF based device (Xiaomi
qmi.powerstrip.v1) and it was failing just like that.
Turns out this device just completely fails when 802.11w Management Frame Protection is on (even optionally). Ugh. Thanks Realtek.
Wow. micro HDMI is the worst connector ever.
(well, at least this particular adapter is terrible.. or the Pi 4 grabs too hard?)