Mastodon normalizer

From ludd
(Redirected from Elixir/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.

Experimenting with normalization[edit | edit source]

Preferences pane

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, or try out the guided tour as a guest. Preferences currently look this this.

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 or how big their attachments.

A more extreme version of this view is the "Check in" mode which shows only one post from each account. This can be seen as a normalization of both vertical and horizontal space.

Focused and expanded row

Clicking on a row of posts will expand and focus. To expand all posts by default, choose the "natural" row height preference.

Time dimension[edit | edit source]

Time axis

If we reintroduce the timeline but with its axis tipped by 90 degrees, we can list all of each author's posts as an isolated strip running from left to right.

Development[edit | edit source]

So far, this software is the labor of one unpaid person acting on friendly suggestions. Contributions, suggestions or other resources are welcome!

Its architecture is a server-side, Elixir Phoenix Live View application which updates the user's browser by sending HTML over a websocket. It's authenticated temporarily to act as the user. Posts and tokens are kept in server memory and kept as state for the session, then forgotten on close.

In the long term, user algorithms will ideally be visually- and script-programmable, and shareable.

Resources[edit | edit source]

Get involved[edit | edit source]

Similar projects[edit | edit source]

Reporting related to the topic[edit | edit source]