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.
Current Windows 10 has a feature called “Windows Sandbox” which spawns a tiny Hyper-V VM with allegedly a very smart slim disk image thing that shares the OS files with the host, and smart memory management, and so on.. and virtualized GPU support, like virgl in the free world.
So can it run Crysis, or at least Quake? Is it what we need for isolating old games? Well.. it has the ability to load up the host GPU with work and to show the results, but it’s absolutely unsuitable for gaming in its current state. Seems like it uses regular RDP for the window, and there aren’t any special optimizations that make 3D fast. The frame pacing is awful, framerate is weirdly limited, etc.
Also, this is not obviously found on google right now: if you have a compressed disk, you need to decompress
C:\ProgramData\Microsoft\Windows\Containers for it to work.
Was wondering for a month why Firefox on my laptop would forget my GitHub session (and some other sessions) after restarting. Turns out “Delete cookies and site data when Firefox is closed” got enabled somehow. Facepalm.
“Why do programs I compile become all-zero files after rebooting?”
well, maybe that untested filesystem-related kernel patch you applied has something to do with it :D
But seriously, if anyone wants to make a very cursed unix system: apply this diff (note: old version by now) to FreeBSD from around now (say the beginning of 2020 — happy new year!), build programs using clang/lld 9.x and reboot.
AWS CloudFormation looks rather disappointing:
- the import functionality is a joke?? you have to make the template yourself, for some reason there’s no “make template from this real thing” button??
- even that import thing cannot import an ACM certificate at all, literally says that’s unsupported.
- the GUI designer thing does not know anything about CloudFront!