@mathiasx epicyon.net apparently targets this use-case, but more standards-compatible rather than dominant-server-compatible.
@tetrislife makes sense, Python makes it a bit more approachable I guess? But not any more simple to set up than a Ruby app or an Elixir app, etc.
Going down the exercise of thinking about instance distributed as a single executable, in something like Go. But you’d still need a database and nginx in front of it, and still need to setup DNS and perhaps LetsEncrypt. I’m told Pleroma on Elixir might be a bit like this (and doesn’t require a separate job queue store like Redis.)
@mathiasx the only high-level language I know of that eliminates the need to a separate database (and a web server) is Prolog, particularly SWI-Prolog, but no ActivityPub implementation I know of. https://openengiadina.net is another interesting setup (in Elixir), but isn't for social media.
@tetrislife the solution was to write a very quick script that listed permutations of the list of people and then checked if the constraints were met, and finally (since Ruby has a decent date library) output the name and the date they’d be on call. I wanted to get the Prolog version to work some day, but I am no longer on that team though, so I don’t have much reason to.
@tetrislife I set myself up too much of a problem (because it was a real problem at work) — I wanted it to map to real dates, not just “slot 1 is Monday, slot 2 is Tuesday,” and so on. And I had a bunch of constraints, and hoped eventually to read from a yaml or JSON file. I tried to simplify by saying I’ll get it to give me a list; and I’ll manually map each spot to a date. But I never got it to consider all the constraints to order the list. So not very successful.