Dave Anderson
mastodon 4.7.3Software developer by day, other kinds of nerd the rest of the time. ADHD says current hobbies are 3D printers, building CNC machines, old computers in space, and general shitposting on whatever grabs my interest.
Nazis, TERFs, other terrible people: please go away, there's nothing for you here.
Follow reqs welcome from humans and other sentient entities. Please have at least some evidence of same in your profile!
Canadian friends who drive: Transport Canada is soliciting feedback on ultra-bright vehicle headlights and headlight glare at night.
I encourage you to give them data on your experience, so that they might update the regulations to stop SUVs from routinely blinding me with their factory-fitted Nuclear Fireball 9000 LED Darkness Devastators Shock And Awe Edition headlights aimed directly into my face and eyes.
I've just found from_yeet() in the bowels of core:: and I'm now convinced rust is just fucking with me.
The Nom parser combinator library in rust has a book, like many rust libraries. Naturally it's called the Nominomicon.
I approve.
Some people just have too many skillz.
I was watching the video for the new mountain erosion shader that's been going around (https://www.youtube.com/watch?v=r4V21_uUK8Y , it's a treat! There's also a blog post if you prefer reading).
So then I went looking at what other videos the channel has, and found one on using pathfinding to draw plausible/realistic paths in a procedurally generated world (https://blog.runevision.com/2016/03/note-on-creating-natural-paths-in.html).
That made me go "oh that sounds a bit like that amazing layered procedural generator framework I saw at some point that let you do stuff like that"
... and yeah, turns out, it's kinda similar because that is also yet another remarkably nice thing that Rune Johansen also created (https://runevision.com/tech/layerprocgen/). They're a one-person game tech army, I tell you what.
Fast & Gorgeous Erosion Filter Explained
Incus is so nice. You can really tell that it's being built by people who give a shit about UX and doing things right.
Case in point, I created and booted a VM, then started adding host bind mounts to it.
First of all the UX is the same for containers and VMs, you just tell it you want a disk with a particular source/destination, and Incus figures out internally whether to materialize that as bind mounts, virtio-fs mounts, 9p mounts, whatever.
But also as I was creating the new disks, I assumed that I'd have to powercycle the VM to have them show up. But... nope, as I created each disk it immediately appeared inside the VM. Incus went and twiddled the configuration of the running qemu instance to add the new devices, and then the Incus agent inside the VM noticed the new devices, saw that they came with a target mount path, and just went ahead and mounted them.
The VM base images are similarly well wired. For example, the Incus agent correctly orders itself to run before local-fs.target is reached, so that it can make sure all the VM's configured storage is properly mounted prior to letting most "normal" services start up, so you don't have any boot-time races on mounts being available.
It's a bunch of little "obvious" things, but they just keep adding up. I've clearly been conditioned to expect stuff to be janky and full of sharp edges, and therefore Incus keeps surprising me by being completely reasonable and useful. ❤️
Today in little software microaggressions: Google's slides thing calls this font "Sans Serif".
Look I don't mean to be picky, but THIS FONT LITERALLY HAS SERIFS, THEY'RE RIGHT THERE.
This wasn't wrong at some point in the past. I swear to fucking god the AI gold rush is corroding and rotting even basic things like "maybe the font name should describe the font". What the fuck are we even doing
Wow due to reimaging a machine I was exposed to youtube without DeArrow today, and jfc, it's hilariously hostile.
I can't recommend buying DeArrow enough. $1 minimum purchase (secretly $0 if you really can't afford it), pay as much as you like, and it replaces the clickbait thumbnails and titles with stills from the video and sane, informative titles. I can't overstate how much it improves the experience of existing near youtube.
I have the very first few series of Have I Got News For You (early 1990s) on as background noise, and the news stories are bizarrely timeless: UK court being transphobic, war in the middle east, Keir Starmer being a berk, jokes about the sex pest formerly known as prince Andrew...
In the wake of my Adventure with text rendering earlier, a horrible idea has lodged itself into my brain: someone should make a typeface called Sans, and that typeface should have a serifed font within it called Sans Serif.
Another bit of praise for incus. Chatter about Archive Team earlier reminded me that I have a server could use an archive warrior. The VM is distributed as a .ova, so I was expecting some annoyance to get it ported to incus.
But no, incus once again defied my expectations by having an incus-migrate tool that seemingly can import pretty much any VM image, or container image, or disk image. It popped up a wizard, I told it I wanted to import a .ova, pointed at the image (I'd downloaded it already but it can even fetch it from a URL for you!), couple questions about what storage pool do I want to use, does the VM support UEFI and secure boot...
... and that was it. A bit of crunching later to convert the disk images, and I now have an `archive-warrior` incus VM, happily beavering away at roblox's rate limiter.
Seriously every time I walk up to incus expecting even a mildly annoying time, I find the thing I need right there, with a clean UI, it does the thing I expect and nothing weird... If it could just leave a chocolate on my pillow, it'd be the perfect software.
In the midst of all the spam (particularly AI startup spam these days, fuck off unsolicited pitches), I now genuinely look forward to the periodic Misumi marketing email I apparently signed up for at some point. Amid all the "AI for making soup" dross, they just come along with "look at this neat linear actuator! Also we have Aluminum Beam in 4 more shapes now! Here's a deep dive into pneumatic motion systems!"
My only complaint is that they frequently use "the Mech lab" to mean mechatronics, which I feel is false advertising.
Children Of The Magenta Line
Playing more Oxygen Not Included, and I'm really enjoying playing it somewhat realistically, without exploit-adjacent mechanics. Stuff like liquid locks that can somehow hold back multiple atmospheres of pressure differential or hold a perfect vacuum without the liquid boiling. Or contraptions that rely on the specific details of the physics simulation to magically sort gasses or teleport objects.
It makes things messier, which I find fun because it forces you to compensate for things like gasses getting where they shouldn't be and generally try to engineer resilient things. It also means you can't just play on autopilot copy-pasting the min-maxed optimal designs, because pretty much all of them rely on exploit-y behavior.
No shade on folks who prefer to play with those mechanics, to be clear. It's just a game, there's no wrong way to play, and it's not unreasonable to take the view that if the mechanic wasn't patched out in the many years the game's been around, they're intended mechanics to some degree. I just found that I wasn't enjoying having a whole bunch of magic things that only work because of incidental quirks of the implementation.
Today I'm finally learning about nftables in detail, and the result is that I'm quite sad. It comes very close to replicating the really useful, composable semantics of the Windows packet filter, but a couple blunders result in a system that ends up being _less_ expressive than classic iptables for common modern needs like "docker needs to have a few specific opinions about a few packets, in addition to global system policy".
huh, someone did the thing I was wishing for to the port control protocol, and I somehow missed it. There's a specified anycast IP you can send port mapping requests to, to hit the nearest on-path PCP server.
The spec's 10 years old, what are the chances anyone bothered to implement it...