kellogh,
@kellogh@hachyderm.io avatar

update on : last night i pushed changes to make algorithms pluggable. it uses entry points for discovery, so you can develop your own plugin without cloning fossil. it gives you a few hooks:

  • train: e.g. if you need to train an ML model, or just calculate aggregate statistics

  • render: format toots into an object that’s passed to a jinja template. you can make the jinja template or just use one that already exists

  • HTML forms: e.g. to capture hyper-parameters

kellogh,
@kellogh@hachyderm.io avatar

i made the existing TopicCluster algorithm into a plugin that happens to be shipped by default, so that should provide a guide. i also want to write more documentation, but it takes time.

kellogh,
@kellogh@hachyderm.io avatar

i’m noticing that using is leading to a surprisingly pluggable design. tbh i haven’t wrapped my head around why, it still seems counterintuitive that true APIs would be harder to compose than HTML endpoints. maybe it’s just the dramatic simplicity is inherently easier to grapple with, idk

mnl,
@mnl@hachyderm.io avatar

@kellogh can you give a bit more information about that? I'm very curious...

kellogh,
@kellogh@hachyderm.io avatar

@mnl 🤔 i might blog about this. it honestly surprised me, i could probably benefit from writing it long form

mnl,
@mnl@hachyderm.io avatar

@kellogh just a link to a relevant Location in fossils code maybe?

kellogh,
@kellogh@hachyderm.io avatar

@mnl btw i didn't forget about this. i wrote a blog post, but the AI overlords inform me that i didn't actually describe the plugin system, which is a valid criticism regardless if it's real intelligence. Also, the code didn't exist (it was just a design in my head), so i'm also producing that too. you see, tooting is such a malleable medium :)

fwiw the code and post are almost there, just need to brush both up

mnl,
@mnl@hachyderm.io avatar

@kellogh I ... Know exactly where you're at :) being able to so quickly get stuff implemented means your mind gets so much further ahead of itself "it's just a generation away". But still generating something takes an hour or two and not just the 2 minutes one thinks it does 😭

kellogh,
@kellogh@hachyderm.io avatar

the contributor base is growing. still not many pull requests, but it’s ramping up.

i got this comment on a public issue, and i feel like i could’ve posted the same thing at several points in my career. i’m so glad that i can help people find meaning in life & work

benpate,
@benpate@mastodon.social avatar

@kellogh I’m going to guess that is more pluggable than you’d expect because the API is so simple. REST is amazingly straightforward (real REST, anyway) and I think this carries over.

There’s no dependencies between components or worrying if a JS widget has already been loaded or not — just little self-contained bits of code that go right here on the page.

kellogh,
@kellogh@hachyderm.io avatar

@benpate i think it’s that REST doesn’t include the client

to be specific, i’m plugging components together into a monolithic web app (i.e. a single process running on your laptop)

from that perspective, i can pip install a plugin that adds

  1. an algorithm via sklearn & LLMs
  2. some SQLite tables
  3. bits of HTML controls mixed into the page

and it all flows together naturally. with REST, it’s a different kind of composability

  • All
  • Subscribed
  • Moderated
  • Favorites
  • python
  • ethstaker
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • GTA5RPClips
  • Youngstown
  • mdbf
  • Durango
  • slotface
  • rosin
  • thenastyranch
  • kavyap
  • khanakhh
  • osvaldo12
  • JUstTest
  • tacticalgear
  • everett
  • tester
  • normalnudes
  • ngwrru68w68
  • cubers
  • modclub
  • cisconetworking
  • Leos
  • megavids
  • anitta
  • provamag3
  • lostlight
  • All magazines