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.
Both long-form posts (articles) and short-form posts (notes) in one feed.
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?)
Wow, about a month ago Spot (ex-Spotinst),
the service that can auto-restore an EC2 spot instance after it gets killed, fixed their arm64 support!
(Used to be that it would always set the AMI’s “architecture” metadata to amd64, haha.)
And of course their support didn’t notify me that it was
the service didn’t auto-notify me that an instance finally was successfully restored after months of trying and failing,
AWS didn’t notify either (it probably can but I haven’t set anything up?),
so I wasted a few bucks running a spare inaccessible clone server of my website.
Oh well, at least now I can use a spot instance again without worrying about manual restore.
UPD: hmm, it still tried
i386 on another restore! dang it.
Ported the Firefox Profiler to FreeBSD in order to investigate why WebRender has some jank when scrolling some walls of text on my 4K/HiDPI setup.
The profiler code initially looked somewhat scary: some Google Breakpad code is used, a custom stack unwinder called LUL is used on Linux (which also partially derived from Breakpad code)…
Initially, I got it working with “pre-symbolication” (an option to build the goblin ELF parser into Firefox for this purpose) only, ifdef’ing any Breakpad code out.
- the only part of Breakpad used is extracting build IDs from shared objects (and in fact the “base profiler”, a copy (for now) of the Gecko profiler used for profiling during the early startup phase, just copied all the relevant code);
devel/breakpadwas there in FreeBSD Ports (but expires in like three days!), and its patches showed that it’s really trivial to get all it working.
In the end, the patch turned out to be mostly just
The only meaningful parts are:
thr_kill2 instead of
supporting the different
mcontext structs, and
(for the pre-symbolication code path) ignoring symbol names returned by
dladdr because they’re hilariously bad.