A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>I Was Wrong About Mastodon (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Is that even respected? Retrospectively? What a shAItshow…
  28. https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
  29. <meta name="robots" content="noai, noimageai">
  30. <!-- Documented, feel free to shoot an email. -->
  31. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  32. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  36. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  37. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  38. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  39. <script>
  40. function toggleTheme(themeName) {
  41. document.documentElement.classList.toggle(
  42. 'forced-dark',
  43. themeName === 'dark'
  44. )
  45. document.documentElement.classList.toggle(
  46. 'forced-light',
  47. themeName === 'light'
  48. )
  49. }
  50. const selectedTheme = localStorage.getItem('theme')
  51. if (selectedTheme !== 'undefined') {
  52. toggleTheme(selectedTheme)
  53. }
  54. </script>
  55. <meta name="robots" content="noindex, nofollow">
  56. <meta content="origin-when-cross-origin" name="referrer">
  57. <!-- Canonical URL for SEO purposes -->
  58. <link rel="canonical" href="https://escapingtech.com/tech/opinions/i-was-wrong-about-mastodon-moderation.html">
  59. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  60. <article>
  61. <header>
  62. <h1>I Was Wrong About Mastodon</h1>
  63. </header>
  64. <nav>
  65. <p class="center">
  66. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  67. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  68. </svg> Accueil</a> •
  69. <a href="https://escapingtech.com/tech/opinions/i-was-wrong-about-mastodon-moderation.html" title="Lien vers le contenu original">Source originale</a>
  70. </p>
  71. </nav>
  72. <hr>
  73. <p>A few weeks ago, I made a tweet about how I thought Mastodon wouldn’t scale due to moderation issues.
  74. The tweet is since deleted (not because I deleted it individually, but because I later made the decision to purge my account and move to Mastodon).</p>
  75. <p><img src="https://escapingtech.com/images/i-was-wrong-about-mastodon-moderation/tweet.png" alt=""></p>
  76. <p>Mastodon is not a single social media platform, it is a federation. Think of it as a cross between email and Twitter.
  77. You can sign up for an email account with GMail, Yahoo, or Outlook. No matter what provider you choose, you can still email with
  78. people who are using a different provider. Mastodon applies this model to Twitter.
  79. There are lots of different Twitters, and anyone can set up their own Twitter, but they’re all connected so users can communicate with people outside their provider, just like with email.</p>
  80. <p>Mastodon providers are called instances, and a user on one instance can follow and interact with users on other instances.
  81. For all intents and purposes, it seems like one big social media platform, but it’s not.
  82. The important difference is there’s not a single company controlling Mastodon. Anyone can set up a Mastodon instance and run
  83. it how they wish, just like a BBS or Message board.</p>
  84. <p>Now, in my head I was seeing this as a problem. On Twitter, you can get banned from Twitter. On Mastodon, you can be banned from
  85. individual Mastodon instances, but not from Mastodon itself (because anyone can set up their own instance). This seemed like it’d
  86. be a huge moderation issue because if abusive users were banned from one instance, they could just move to another.
  87. It was my belief that as Mastodon adoption grew, the moderators of whichever instance you chose to use would have to deal ever-increasing
  88. volumes of abuse. It’d be like how email providers have to develop spam filters to combat incoming spam from every other provider
  89. (but so much still gets through).</p>
  90. <p>After a month on Mastodon, I’ve realized I was wrong.</p>
  91. <h2 id="a-different-culture">A different culture</h2>
  92. <p>What I missed about Mastodon was its very different culture.
  93. Ad-driven social media platforms are willing to tolerate monumental volumes of abusive users.
  94. They’ve discovered the same thing the Mainstream Media did: negative emotions grip people’s attention harder than positive ones.
  95. Hate and fear drives engagement, and engagement drives ad impressions.</p>
  96. <p>Mastodon is not an ad-driven platform. There is absolutely zero incentives to let awful people run amok in the name of engagement.
  97. The goal of Mastodon is to build a friendly collection of communities, not an attention leeching hate mill. As a result, most Mastodon
  98. instance operators have come to a consensus that hate speech shouldn’t be allowed. Already, that sets it far apart from twitter, but wait, there’s more.
  99. When it comes to other topics, what is and isn’t allowed is on an instance-by-instance basis, so you can choose your own adventure.</p>
  100. <p>You might be wondering, how can you maintain a friendly atmosphere if anyone can just start their own Mastodon instance and spew hate?
  101. This is the part I misunderstood when I said Mastodon wouldn’t scale.</p>
  102. <h2 id="the-accountability-economy">The accountability economy</h2>
  103. <p>Most Mastodon servers run on donations, which creates a very different dynamic.
  104. It is very easy for a toxic platform to generate revenue through ad impressions,
  105. but most people are not willing to pay hard-earned money to get yelled at by extremists all day.
  106. This is why Twitter’s subscription model will never work.
  107. With Mastodon, people find a community they enjoy, and thus are happy to donate to maintain. Which add a new dynamic.</p>
  108. <p>Since Mastodon is basically a network of communities, it is expected that moderators are responsible for their own community, lowering the burden for everyone.
  109. Let’s say you run a Mastodon instance and a user of another instance has become problematic towards your users. You report them to their instance’s moderators, but the moderators decline to act.
  110. What can you do? Well a lot, actually.</p>
  111. <ol>
  112. <li>You can block the user’s account from communicating with your instance, so their posts cannot reach anyone on your instance.</li>
  113. <li>You can block the user’s entire instance from communicating with yours, so that nobody on that instance can communicate with anyone on your own.</li>
  114. </ol>
  115. <p>Now, #2 may sound excessive and overly dramatic, but it’s what makes Mastodon so beautiful. Let me explain.</p>
  116. <p>Instead of expecting instance moderators to moderate incoming toxicity from thousands of other instances, instance owner
  117. can be held heavily accountable for their users. If an instance is blocked (de-federated) due to insufficient moderation,
  118. everyone on that instance can no-longer reach anyone on any instance that has blocked them, which sucks.
  119. This not only impacts the experience of users on the de-federated instance, but also gives them a feeling of guilt by association.
  120. But, Marcus, how is collateral damage at all a good thing, you may ask.</p>
  121. <h2 id="democratic-self-regulation">Democratic self-regulation</h2>
  122. <p>Well, Mastodon users have the ability to transfer their accounts between instances.
  123. If your instance starts welcoming extremists, you can move. If your instance starts getting de-federated for abuse, you can move.
  124. Many of us, myself included, left Twitter due to the proliferation of extremism. This had a huge personal cost as there is no other Twitter.
  125. On Mastodon, there’s always another instance. You can move to another instance, have the same features, keep all your followers,
  126. and still communicate with people on other instances via the fediverse.</p>
  127. <p>The ability for users to choose if they wish to be collateral damage is what makes Mastodon work.
  128. If an instance is de-federated due to extremism, the users can pressure their moderators to act in order to gain re-federation.
  129. Otherwise, they must make the decision if to go down with the ship or simply move. This creates a healthy self-regulating ecosystem where
  130. once an instance starts to get de-federated, reasonable users will move their accounts,
  131. leaving behind unreasonable ones, which further justifies de-federation, and will lead to more and more instances choosing to de-federate the offending one.</p>
  132. <p>Since instance owners are either running their instance for community purposes, or for profit via donations, user loss is very harmful.
  133. As such, there is an economy of accountability which shifts moderation to the source, rather than the destination.
  134. It’s in an instance owner’s best interest to maintain the friendliest possible community, as this is what attracts new users and keeps exiting ones.
  135. With instance moderators held accountable for their own instances, this significantly reduces the moderation burden on other instances.
  136. It also creates a double-moderation system, where if some badness does slip past the source instance’s moderators, moderators on the recipient instances can pick up the slack.</p>
  137. <p>Obviously, de-federation can and does happen for asinine reasons. But this is also a good thing.
  138. Recently, the instance I use was blocked by a few smaller instances for working with the Cybersecurity and Infrastructure Security Agency (CISA).
  139. CISA’s goal is to improve cybersecurity and protect organizations from hackers, but it’s also a part of the Department of Homeland Security (DHS).
  140. DHS is also responsible for Immigrations and Customs Enforcement (ICE), an agency with a track record of rampant humans rights abuse.
  141. Understandably, people are hostile towards anyone working with DHS. The best we can do is explain that CISA is not ICE, it is a benevolent agency that serves to help us. If people still choose to maintain hostilities towards us,
  142. then it is for the best that they block our instance, because clearly our views are fundamentally incompatible and will only lead to further unfriendliness on both side.</p>
  143. <h2 id="happy-to-be-wrong">Happy to be wrong</h2>
  144. <p>Having spent time on Mastodon, I now realize how hilariously wrong I was about how moderation would work.
  145. I was seeing Mastodon through the lenses of Twitter, rather than as a different culture with different technology.
  146. I’m now fairly confident in saying Mastodon is friendlier than Twitter and will remain so, regardless of who and how many join.</p>
  147. <p>I enjoy that everyone is on the same page about not having rampant extremism. I can’t believe that is even a thing that has to be said in this day and age, but I digress (no really, I don’t).
  148. But more, I like the choose-your-own-adventure nature of Mastodon. If something isn’t blocked, and you wish it was, you can move to an Instance where it is.
  149. On the flip side, if something is blocked, and you wish it wasn’t, you can move to an instance where it isn’t.</p>
  150. <p>The crucial mistake of social media was trying to force people with wildly incompatible views to co-exist in the same space.
  151. In real-life, I can choose who I associate with. Now, I’m most certainly not looking for an echo chamber. I need my views to be questioned and debated, but it must be by people capable of civil discourse.
  152. We should discuss, we should reassess, we should admit when we’re wrong. That is not the status quo online.</p>
  153. <p>Traditional social media does not promote diversity of thought, it is for all intents and purposes an echo chamber, albeit, one that encourages piling on passers-by who possess different opinions.
  154. Mastodon feels much closer to hanging out with reasonable friends and acquaintances, whereas Twitter is equivalent to having 15 racists drunk uncles assigned to follow you wherever you go.</p>
  155. <p>I really hope federated networks can be the future of social media.</p>
  156. <p><a href="https://escapingtech.com/tech/guides/a-twitter-users-guide-to-mastodon.html">A Quick-start Guide to Mastodon</a></p>
  157. </article>
  158. <hr>
  159. <footer>
  160. <p>
  161. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  162. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  163. </svg> Accueil</a> •
  164. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  165. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  166. </svg> Suivre</a> •
  167. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  168. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  169. </svg> Pro</a> •
  170. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  171. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  172. </svg> Email</a> •
  173. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  174. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  175. </svg> Légal</abbr>
  176. </p>
  177. <template id="theme-selector">
  178. <form>
  179. <fieldset>
  180. <legend><svg class="icon icon-brightness-contrast">
  181. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  182. </svg> Thème</legend>
  183. <label>
  184. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  185. </label>
  186. <label>
  187. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  188. </label>
  189. <label>
  190. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  191. </label>
  192. </fieldset>
  193. </form>
  194. </template>
  195. </footer>
  196. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  197. <script>
  198. function loadThemeForm(templateName) {
  199. const themeSelectorTemplate = document.querySelector(templateName)
  200. const form = themeSelectorTemplate.content.firstElementChild
  201. themeSelectorTemplate.replaceWith(form)
  202. form.addEventListener('change', (e) => {
  203. const chosenColorScheme = e.target.value
  204. localStorage.setItem('theme', chosenColorScheme)
  205. toggleTheme(chosenColorScheme)
  206. })
  207. const selectedTheme = localStorage.getItem('theme')
  208. if (selectedTheme && selectedTheme !== 'undefined') {
  209. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  210. }
  211. }
  212. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  213. window.addEventListener('load', () => {
  214. let hasDarkRules = false
  215. for (const styleSheet of Array.from(document.styleSheets)) {
  216. let mediaRules = []
  217. for (const cssRule of styleSheet.cssRules) {
  218. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  219. continue
  220. }
  221. // WARNING: Safari does not have/supports `conditionText`.
  222. if (cssRule.conditionText) {
  223. if (cssRule.conditionText !== prefersColorSchemeDark) {
  224. continue
  225. }
  226. } else {
  227. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  228. continue
  229. }
  230. }
  231. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  232. }
  233. // WARNING: do not try to insert a Rule to a styleSheet you are
  234. // currently iterating on, otherwise the browser will be stuck
  235. // in a infinite loop…
  236. for (const mediaRule of mediaRules) {
  237. styleSheet.insertRule(mediaRule.cssText)
  238. hasDarkRules = true
  239. }
  240. }
  241. if (hasDarkRules) {
  242. loadThemeForm('#theme-selector')
  243. }
  244. })
  245. </script>
  246. </body>
  247. </html>