Ok I'm gonna try and do 1 hour on #DIYAlgorithms per programming day until I get a reasonable prototype with some basic Algo examples, that'll be here: https://git.jon-e.net/jonny/diyalgo
prior context here: https://wiki.jon-e.net/Masto_Forks/DIY_Algorithms
the first things I think are simple but the most requested ones I've seen on here:
for now this all just world by POSTing an array of status IDs to a modified lists endpoint in order to be maximally general/interoperable with other Algo implementations. things like NRecent make me think there should be some way to do diffs instead, where you remove one item on the feed and/or insert one in a position too tho. maybe I am preoptimizing.
I am thinking the way to do this will be to have a system of
a) features that can be lazily computed for different object types (status, account, or derived types like lists of accounts, etc.)
b) a tree of procession steps with each node returning a value bounded 0-1 and the root being used as the position on the feed. posts that should not be put on a feed have a special value of NA that terminates processing the rest of the tree.
so that
c) an algo can be defined as an easily serializable eg. JSON/#JSONLD-like format that specifies features as dependencies and then describes the processing tree with an array of node objects, each pointing to some node type (and where it comes from, to plan ahead for plugins), parameters, and how it's connected in the tree.
d) eventually, new URL routes/API endpoints so you can link to, follow, and re-use other people's (opt-in public) algos in-medium.
the goal is to get very low-fi, ie. no big data, inaccessible hardware requiring NLP or neural nets and shit - explainability and transparency by designing simpler qualities that people combine in specific ways. yno. like .... designing an algorithm on purpose. for our own benefit, not some investor.
#diyalgorithms #nrecent #chronomatching #exclusivefeeds #monsterdon #longpost #mastodev #mastohacks
Ok no I think the simpler way to do #ZenodoSocial is actually to just like generalize the types of messages you can send using #LinkedData / #JSONLD. I think one might call these #UserSchemas.
re: https://neuromatch.social/@jonny/110001265968620084
Make a schema that defines a type of message, eg with JSON Schema in RDF
Make an API endpoint that lets logged in accounts submit schema, as well as an {id}
to use for a URL. if it is not already taken, that schema now can be found at instance.domain/schema/{id}
and used in JSON-LD as a @context
Add a field to the API endpoints for posting statuses and fetching the home timeline that allows you to specify the schema that you're using when you post (ideally either local or by any resolvable URI, tho dealing with generalizable RDF parsing makes me gulp so maybe just start with JSON-LD schema). Don't deliver user schema messages to instances that don't support them or base masto accounts that have not specifically subscribed to them - see below. Alternatively just post JSON-LD from a base masto account and specify the type within the object.
Add a field to the instance metadata that specifies that you support user schema.
Backwards compatibility: generally, from a base masto instance one would make a designated alt that posts/receives user schema messages. Base masto accounts can specify an alt with profile metadata fields. User schema instances and other clients that use user schema know to resolve those fields and follow/query them. To follow user schema posts from a base masto account, one sends a structured DM to indicate that user schema posts should be DMed to it. clients know to expand threads to capture JSON-LD split across multiple posts
Make integrations with arbitrary other software that lets you swap structured data on your existing social infrastructure????? my first trivial example being to swap highlights and annotations in Zenodo, but that might be enough to pry more generalized linked data handling into masto without making a true plugin interface or completely rewriting it?????
#zenodosocial #linkeddata #jsonld #userschemas #mastohacks #mastodev
I wonder if you could hack masto so you have either multiple outboxes, or be able to handle multiple types of messages in the outbox - eg. I want to make a #ZenodoSocial highlighting extension that lets you post and subscribe to other people's highlights, but I wouldn't want those to show up as posts in the feed.....
#MastoHacks #MastoDev
#zenodosocial #mastohacks #mastodev
ok you know what would actually rock: a #Zenodo plugin where you could sync a collection to an #ActivityPub outbox, and do social public highlighting that way - share a set of papers under a topic for ppl to browse, but also share your annotations and then be able to show your friends annotations over the papers you're reading if u want to
#MastoHacks #MastoDev
#zenodo #activitypub #mastohacks #mastodev
I wanna make account-custom CSS that gets layered on top the current theme when u view someone's profile or their posts come on
#MastoHacks #CustomCSS
@shanselman @rashmi Also, follow your favorite hashtags. Immediately get great content. #MastoHacks
Does muting accounts not work in the “posts gaining traction” section? I muted a bunch, but keep seeing them. #help #tech #Fediverse ##MastoHacks
#mastohacks #Fediverse #tech #help
Just add buzzwords SYNERGY randomly in all caps throughout RETURN ON INVESTMENT the reply to increase post visibility and reach. 😋
Filter auf
"🐦🔗: https://twitter.com/"
und schon sieht man die Crossposter nicht mehr...
Bitte. Gerne.
#MastoHacks
What’s up fellow #writerdons or #mastohacks …whatever the #writers call themselves on here. My name is Doy. Yes, real name. I write stuff for magazines, advertisements and sometimes for my own twisted pleasure. I write at https://doycave.com and would love to meet more of you #elephantidauthors . I am not good at hashtags.
#writerdons #mastohacks #writers #elephantidauthors