Peter H. Fröhlich

55 Followers
96 Following
130 Posts

I like old games and old computers. I dig free software and free culture. And I believe that people, not organizations, have inalienable rights. ✊️

I am a recovering academic turned (senior) software craftsperson. I prefer small teams and writing code over large teams and running processes.

I post in both 🇩🇪 and 🇺🇸. But I do NOT speak for any of my employers and they certainly do NOT speak for me.

I support@fiff_de @usenixassociation @Codeberg
I despisebillionaires, prompt fondlers, fascists, systemd

A system I work on regularly has one calloc/free and one mmap/munmap left. Aside from those it's "statically allocated" meaning the entire life of the system takes place in a bunch of arrays of structs.

Yes quite a few structs have brands and pointers to them are branded as well. That's because it's possible for a reference you are holding to become invalid without you doing anything to it. Think "reference to a USB disk" and someone pulls the plug.

There's a duality here that I've been thinking about a lot lately. Anyone looking at memory allocation behavior would think this to be a REALLY boring system in which close to NOTHING ever happens.

Meanwhile it's pulling sensor data, processing queries from higher-level services, coordinating a network of micro controllers some of which come and go dynamically (and are identified dynamically), etc. It feels, in a way, like I built a custom kernel that runs under Linux as a process. Weird.

The concurrency aspects are also ... well you need to get used to it. There are a few threads that do things that could take "too long" for the main event loop. But those threads don't call into the rest of the system. They do their job and hold on to their data. And when it's convenient the event loop goes and picks up that data. That's where we find locks, but only there. I guess in a way it's "message passing" except that the messages are just "get" functions?

(Proudly self-plagiarized from several 2025 posts from my previous account.)

@hyc I don't know, I think there are also some formerly highly qualified "conversions" who are literally (and perhaps consciously?) "selling their souls" to buy another house or three for their kids. But then again I don't have proof of that. @mirabilos
@mirabilos We're so fucked with (apparently) 80% of software people turning out to be blubbering idiots who just LOVE to throw up their hands and bow to the AI overlords. Gardening? Ready or not, here I come. This software shit is finished.

"THE FEDIVERSE IS FOR ENTERTAINMENT PURPOSES ONLY. IT DOES NOT SUPPORT YOUR DESIRED ENGAGEMENT MODALITIES AND IS UNABLE TO PROVIDE ANY REASONABLE MONETIZATION OPTIONS POSSIBLY CONTRARY TO YOUR EXPECTATIONS. DON'T RELY ON THE FEDIVERSE AS YOUR SOLE SOURCE FOR FAKE FAME, MINDLESS FOLLOWERS, OR INFLATED INCOME. POST TO THE FEDIVERSE AT YOUR OWN RISK FOR HORRIBLE LIFE-LONG NEVER-ENDING WHEATON-SHATNER-PIONEERED EMBARRASSMENT ETERNAL. OH AND ... SUCK A BAG OF DICKS."

#fediverse #TermsOfUse

@n0toose I was able to see the links, no worries. Took a bit longer than usual but all good. @jbowen @Codeberg @codebergstatus
@jbowen @Codeberg @codebergstatus I have no inside knowledge but I wonder: How "distributed" is codeberg? Are there like two machines in one rack in Buxtehude somewhere or is it a lot of machines in various places with redundant connectivity? Is there a page that describes the infra anywhere?
@lu_leipzig Don't get the wrong, things like public libraries and the frickin' Bundeskanzler and all that should NOT be on X or any other "commercial" network. They should be in a place like the Fediverse. And while a public library I might actually follow, the Bundeskanzler I'd always block just on general principle. And the current one, well, I'd probably block and report him. 🤣

I don't care one bit if "official" accounts exist in the Fediverse. I don't care if this or that newspaper, this or that city, this or that state, this or that ministry/department of some state, this or that professional organization, this or that famous person, this or that ... whatever are here. Indeed I often block those things anyway, even entire "official" instances. I like accounts of normal people best. To me, that's what the Fediverse is for. YMMV.

(Proudly self-plagiarized from a 2025 post from my previous account.)

@scottjenson Which part of "federated" has your precious Apple-trained and AI-fawning mind not been able to wrap around? Go ahead and build a community of prompt fondlers. You can then all sit around and fondle prompts in your timelines. It'll be great. And the rest of this federated mess IS TOTALLY WITHIN THEIR RIGHTS to block your prompt fondling instance. Like we block nazi instances. And Trump instances. And whatever-the-fuck-else instances we don't want nothing to do with. It's FEDERATED. You not getting that in your head is your fault alone. 🤷

I did not think I'd get podman to work on an old RPi 3 from 2015 but hey, it's-a-buildin' openrsync via an Alpine Linux 3.16.3 container and it's generating a static ARM64 executable that runs natively on the "Raspberry Pi OS" on the host so ... I guess I am reasonably happy?

It's REAL SLOOOOOW though. 😞

This presumably means that I can generate .deb files for ARM64 as well as AMD64 and hence host a repository for at least two architectures. Not going to try to stretch beyond, this is good enough for the #NoAI work.

And I guess openrsync will be the first "product" to test the whole process with.

Not super-happy about the containers BUT it's really the simplest way to ensure that people can replicate the builds if they really want to. Seems hard to explain how to set up EXACTLY the same build environment to get bit-by-bit identical binaries without containers. 🤷

I have no good story yet for the source code though. Seems silly to package it inside the .deb file but pointing to a commit in some git repo, possibly on a terrible site like github, that's kind of dubious too. Put up git mirrors on codeberg? Host .tar.gz checkouts of the commit that was built? Not real sure...