Mastodon normalizer: Difference between revisions

From ludd
Adamw (talk | contribs)
rearrange intro
Adamw (talk | contribs)
Now with screenshots
Line 1: Line 1:
{{Project|status=beta|url=https://normalizer.webflux.us/}}'''Problem statement:''' Social media amplifies the loudest voices more than is necessary.  In real life, we know that a person who speaks often and loudly might be full of good insights, or they might just suffer from an excess of hot air.  Either way, we aren't obliged to give this person all of our attention just because they're loud.
{{Project|status=demo|url=https://normalizer.webflux.us/|source=https://gitlab.com/adamwight/mastodon-normalizer}}'''Problem statement:''' Social media amplifies the loudest voices more than is necessary.  In real life, we know that a person who speaks often and loudly might be full of good insights, or they might just suffer from an excess of hot air.  Either way, we aren't obliged to give this person all of our attention just because they're loud.


There is rarely any way to deal with this, no alternative between full volume and blocked, to allow us to better hear the quieter voices.
There is rarely any way to deal with this, no alternative between full volume and blocked, to allow us to better hear the quieter voices.
Line 6: Line 6:
When @futurebird@sauropods.win mentioned the fun idea of a [https://sauropods.win/@futurebird/109971101661561998 customizable timeline] allowing us to check in on our friends' latest posts, I was excited to see how it might be applied.  I'm happy with the results so far!  You can login to the [https://normalizer.webflux.us/ demo service] using your own Mastodon account and instance.
When @futurebird@sauropods.win mentioned the fun idea of a [https://sauropods.win/@futurebird/109971101661561998 customizable timeline] allowing us to check in on our friends' latest posts, I was excited to see how it might be applied.  I'm happy with the results so far!  You can login to the [https://normalizer.webflux.us/ demo service] using your own Mastodon account and instance.


Preferences currently look like this:
Preferences currently look this this.  Expect to see many more options here, since customizability is the main point.
[[File:Preferences for normalizer v0.2.7.png|center|thumb|Preferences pane]]
[[File:Preferences for normalizer v0.2.7.png|center|thumb|Preferences pane]]
The main innovation is the "orthogonal" view, which gives each author equal vertical space in your timeline, regardless of how many posts they write.
[[File:Equal height.png|center|thumb|Equal height for each author]]
If you like the idea, please feel free to borrow [https://gitlab.com/adamwight/mastodon-normalizer the code], help with the project, or reimplement it on your preferred platform.


If one topic or author is much more prolific than another, then the louder channel will tend to draw more attention.  This problem is often framed as "signal to noise", but the phrase doesn't quite describe the same problem and would be more accurately applied to spam-filtering. Here we're looking at something more nuanced which we'll call "loudness normalization" in which the voices may be equally important, we simply want to give each voice a fair chance to be heard.
<div style="clear: both;"></div>
[[File:Equal height.png|right|thumb|Equal height for each author]]


In audio engineering one loud instrument can often drown out another softer sound.  The standard approach to fix this is to normalize the audio, bringing the average loudness of all instruments to the same level.
The default view is called the "orthogonal" view, which gives each author '''equal vertical space''' in your timeline regardless of how many posts they write.


As social media readers, we're instinctively aware that each voice has its own style, conciseness and frequency of posting.  We might naturally gravitate towards the bright colors, loud text, frequent posters, and to push back we protect our attention through various strategies: muting the spammiest accounts, automatic filtering, skimming aggressively, and so on.  (It's also interesting that these strategies have audio analogies: multitrack mixing, noise reduction and fast-forwarding, respectively.)
A more extreme version of this view is the "Check in" mode which shows exactly one recent post from each account you've subscribed to, in other words normalizing both the vertical and horizontal space to a single square for each person.


The basic normalization suggested by @futurebird is implemented in my demo as the "Check in" mode, and it works by showing exactly one recent post from each account you've subscribed to.[[File:API_Console_-_VU_Meter_Bridge,_API560_10_Band_EQ,_API550A_3_Band_EQ_(2017-01-05_19.45.22_piqsels.com_en).jpg|thumb|It's all about the volume]]
<div style="clear: both;"></div>
== Dimensionality ==
[[File:Alcudia,_detalle_de_saetera,_sección_norte,_02.jpg|thumb|225x225px|Feeling lucky?]]
Playing with the "check in" mode I found that it successfully levels out authors so that everyone gets an equal chance to be seen, however the limitation of one recent post 's a painfully narrow viewport, like watching an orchestra through an arrowslit.  How can we cross the broad perspective of multiple, leveled channels with the known strengths of a chronological timeline and its potential to tell a story?


One obvious visualization is to put the two dimensions at right angles to one another, so a two-dimensional view. In my demo this is called "Orthogonal" mode and you can scroll between authors vertically, then read individual timelines by scrolling horizontally.  Let me know what you think, dear reader!
== Time dimension ==
[[File:Time axis.png|right|thumb|Time axis]]
It's possible to reintroduce time, but at 90 degrees running left to right.  We're showing all the same cards as a regular timeline view, but rearranged on a grid.
<div style="clear: both;"></div>


== Customization ==
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.
Like in a fairy tale, these three experiments—I'm including classic "timeline" with only the time dimension and no normalization—have also satisfied the programming "rule of three" and <ref>Current project status: working on the thing right here in the sentence.</ref>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.  


== Resources ==
== Resources ==

Revision as of 15:19, 15 July 2024

Problem statement: Social media amplifies the loudest voices more than is necessary. In real life, we know that a person who speaks often and loudly might be full of good insights, or they might just suffer from an excess of hot air. Either way, we aren't obliged to give this person all of our attention just because they're loud.

There is rarely any way to deal with this, no alternative between full volume and blocked, to allow us to better hear the quieter voices.

Experimenting with normalization

When @futurebird@sauropods.win mentioned the fun idea of a customizable timeline allowing us to check in on our friends' latest posts, I was excited to see how it might be applied. I'm happy with the results so far! You can login to the demo service using your own Mastodon account and instance.

Preferences currently look this this. Expect to see many more options here, since customizability is the main point.

Preferences pane
Equal height for each author

The default view is called the "orthogonal" view, which gives each author equal vertical space in your timeline regardless of how many posts they write.

A more extreme version of this view is the "Check in" mode which shows exactly one recent post from each account you've subscribed to, in other words normalizing both the vertical and horizontal space to a single square for each person.

Time dimension

Time axis

It's possible to reintroduce time, but at 90 degrees running left to right. We're showing all the same cards as a regular timeline view, but rearranged on a grid.

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.

Resources

Similar projects

Reporting on the topic

Notes