Mastodon normalizer: Difference between revisions

From ludd
Adamw (talk | contribs)
First draft. Needs screenshots and other pictures.
 
Adamw (talk | contribs)
Improve introduction
Line 1: Line 1:
{{Project|status=beta|url=https://normalizer.webflux.us/}}My introduction to "undirected search" was two brief but eventful years working for Jibril Jackson's startup HYVE, which made me aware of the problems that scale causes for a typical social media timeline.  When [https://sauropods.win/@futurebird/109971101661561998 @futurebird@sauropods.win mentioned] the fun idea of a customizable timeline, I gave it a try and I'm happy with the results so far.  The demo requires an account on any Mastodon instance, but please feel free to take the idea and apply it to your preferred network.
{{Project|status=beta|url=https://normalizer.webflux.us/}}My introduction to "undirected search" was two brief but eventful years working for Jibril Jackson's startup HYVE, which made me aware of Dunbar's number, the limits of how much attention we can pay our friends, and how social media tilts the scales so that the loudest voice is heard most.


<div style="clear: both;"></div>
When @futurebird@sauropods.win mentioned the fun idea of a [https://sauropods.win/@futurebird/109971101661561998 customizable timeline] as something that comes up regularly in discussions about improving Mastodon, I recognized the perennial problem and decided to give a whack at the solution so that we can see what it looks like.  I'm happy with the results so far!  You can try the demo using a Mastodon from anywhere, and the tool acts as a web client letting you browse your own account through a simple set of lenses.
 
If you like the idea, please feel free to borrow [https://gitlab.com/adamwight/mastodon-normalizer the code] or reimplement it on your preferred platform.


== Normalization ==
== Normalization ==

Revision as of 20:14, 29 August 2023

Project link (beta):
https://normalizer.webflux.us/

My introduction to "undirected search" was two brief but eventful years working for Jibril Jackson's startup HYVE, which made me aware of Dunbar's number, the limits of how much attention we can pay our friends, and how social media tilts the scales so that the loudest voice is heard most.

When @futurebird@sauropods.win mentioned the fun idea of a customizable timeline as something that comes up regularly in discussions about improving Mastodon, I recognized the perennial problem and decided to give a whack at the solution so that we can see what it looks like. I'm happy with the results so far! You can try the demo using a Mastodon from anywhere, and the tool acts as a web client letting you browse your own account through a simple set of lenses.

If you like the idea, please feel free to borrow the code or reimplement it on your preferred platform.

Normalization

If one topic or author is much more prolific than another, then the louder channel will tend to draw more attention. The problem is often framed as "signal to noise", but we're looking at something more nuanced which we can call "volume vs. balance" because the content might not contain any useless noise but is simply showing too much of one thing and not enough of another.

In audio engineering, the same problem exists when one loud instrument drowns out another softer sound. The standard solution is to normalize the audio, bringing the average or peak loudness of all instruments to the same level. These normalized tracks will also be mixed together to fine-tune the loudness of each instrument.

As social media readers, we're instinctively aware that each channel has differing relative volumes, and we adapt according to various strategies: muting the spammiest accounts, automatic filtering, skimming aggressively, and so on. (It's also interesting that these strategies have audio analogies: mixing channels, noise filtering and fast-forwarding, respectively.)

@futurebird's suggestion is implemented in my demo as the "Check in" mode, and it will show exactly one recent post from each account you've subscribed to.

Dimensionality

Playing with the "check in" mode, it succeeds in leveling channels so that everyone gets an equal chance to be seen, however it's a painfully narrow viewport, like watching a concert through an arrowslit. How can we cross the strengths of a chronological timeline with the breadth of multiple channels, while still normalizing channel loudness? An obvious interpretation is that the two dimensions can be shown at right angles in a two-dimensional view. In my demo this is called "Orthogonal" mode, in which you can scroll channels vertically and then read individual timelines by scrolling horizontally.

Customization

Like in a fairy tale, these experiments have satisfied the programming "rule of three" and I'm ready to collapse the different feed styles down into something that can be generalized. As a first step, I'll turn the parameters into visual knobs that can be seen and adjusted by the user.

In the long term, the algorithm should be fully flexible and visually-programmable, and there would be a library for sharing your algorithms with others.

Similar projects

  • Ebou by Benedikt Terhechte (source code) shows a timeline with a single card for each user, and clicking on a user expands their timeline into a new column. Looks very active as of August 2023.