@@ -0,0 +1,187 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the `title` element | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>Setting up a personal Fediverse ID / Mastodon instance (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f7f7f7"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)"> | |||
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<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> | |||
<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> | |||
<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> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://jacobian.org/til/my-mastodon-instance/"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all"> | |||
<article> | |||
<header> | |||
<h1>Setting up a personal Fediverse ID / Mastodon instance</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://jacobian.org/til/my-mastodon-instance/" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<p>Elon buying Twitter kicked me towards finally setting up a <a href="https://www.lawfareblog.com/what-earth-fediverse">Fediverse</a> presence, something I’ve been meaning on doing for a while.</p> | |||
<p>It was important for me to do this in a way that maintains control over my own identity. The easy way would have been to create an account on <a href="https://mastodon.social">mastodon.social</a>, or one of the private Mastodon instances that friends of mine host. But if I did that, it wouldn’t be fixing the main problem with Twitter: that I don’t own my own identity. In other words, it was important to me that I be <code>@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a8c2c9cbc7cae8c2c9cbc7cac1c9c686c7dacf">[email protected]</a></code>, not <code>@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0d676c6e626f4d7e626068206962606c646320686162632060646a6579206f7874236e6260">[email protected]</a></code>.</p> | |||
<p>I <em>also</em> very much didn’t want to operate a server. I experimented with a few of them – even got about 80% of the way toward a working Django implementation – but ultimately my desire to fuck with computers on the weekend is almost nil. I wanted to pay someone else to do the hosting.</p> | |||
<p>This turned out to be significantly easier than I had thought. I signed up for <a href="https://masto.host/">masto.host</a>, a paid Mastodon service (on the cheapest plan, $6/mo). I set up my instance as <a href="https://social.jacobian.org">social.jacobian.org</a>, which involved setting up a <code>CNAME</code> to, easy. There was some simple initial configuration of the Mastodon server – I did things like turn off public signup, tweak some of the privacy settings, and (of course) enable 2FA on my admin account. Pretty simple, took about 15 minutes from putting in my credit card to having a functioning server.</p> | |||
<p>That page only describes <code>host-meta</code>, but elsewhere I saw references to a couple of other routes: <code>/.well-known/webfinger</code> and <code>/.well-known/nodeinfo</code>. Initially I only redirected <code>host-meta</code>, and it seemed to work fine, but eventually I added the other two routes as well. I’m not sure if this was necessary, but it seemed like a good idea.</p> | |||
<p>I’m on Cloudflare Pages, so involved adding three lines to my redirect rules file (<code>_redirects</code>):</p> | |||
<pre tabindex="0"><code>/.well-known/host-meta* https://social.jacobian.org/.well-known/host-meta:splat 301 | |||
/.well-known/webfinger* https://social.jacobian.org/.well-known/webfinger:splat 301 | |||
/.well-known/nodeinfo* https://social.jacobian.org/.well-known/nodeinfo:splat 301 | |||
</code></pre> | |||
<p>Finally, masto.host needs to do some config on the backend. I sent them an email, and they’d made the changes within an hour.</p> | |||
<p>So yeah, I’m on the Fediverse now. Follow me: <code>@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4c262d2f232e0c262d2f232e252d2262233e2b">[email protected]</a></code> / <a href="https://social.jacobian.org/@jacob">https://social.jacobian.org/@jacob</a>.</p> | |||
<h2 id="other-implementations">Other implementations</h2> | |||
<p><a href="https://aeracode.org/2022/11/01/fediverse-custom-domains/">Andrew did the same thing on a Django site</a>.</p> | |||
<h2 id="next-steps-syncing-twitter-and-mastodon">Next steps: syncing Twitter and Mastodon</h2> | |||
<p>The next step for me was setting up bidirectional sync to publish content in both places. <a href="https://jacobian.org/til/mastodon-twitter-sync-github-actions/">Here’s how I did that</a>.</p> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use> | |||
</svg> Suivre</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||
continue | |||
} | |||
// WARNING: Safari does not have/supports `conditionText`. | |||
if (cssRule.conditionText) { | |||
if (cssRule.conditionText !== prefersColorSchemeDark) { | |||
continue | |||
} | |||
} else { | |||
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { | |||
continue | |||
} | |||
} | |||
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) | |||
} | |||
// WARNING: do not try to insert a Rule to a styleSheet you are | |||
// currently iterating on, otherwise the browser will be stuck | |||
// in a infinite loop… | |||
for (const mediaRule of mediaRules) { | |||
styleSheet.insertRule(mediaRule.cssText) | |||
hasDarkRules = true | |||
} | |||
} | |||
if (hasDarkRules) { | |||
loadThemeForm('#theme-selector') | |||
} | |||
}) | |||
</script> | |||
</body> | |||
</html> |
@@ -0,0 +1,8 @@ | |||
title: Setting up a personal Fediverse ID / Mastodon instance | |||
url: https://jacobian.org/til/my-mastodon-instance/ | |||
hash_url: 19bb6f887f452188b738599777d7014d | |||
<p>Elon buying Twitter kicked me towards finally setting up a <a href="https://www.lawfareblog.com/what-earth-fediverse">Fediverse</a> presence, something I’ve been meaning on doing for a while.</p><p>It was important for me to do this in a way that maintains control over my own identity. The easy way would have been to create an account on <a href="https://mastodon.social">mastodon.social</a>, or one of the private Mastodon instances that friends of mine host. But if I did that, it wouldn’t be fixing the main problem with Twitter: that I don’t own my own identity. In other words, it was important to me that I be <code>@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a8c2c9cbc7cae8c2c9cbc7cac1c9c686c7dacf">[email protected]</a></code>, not <code>@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0d676c6e626f4d7e626068206962606c646320686162632060646a6579206f7874236e6260">[email protected]</a></code>.</p><p>I <em>also</em> very much didn’t want to operate a server. I experimented with a few of them – even got about 80% of the way toward a working Django implementation – but ultimately my desire to fuck with computers on the weekend is almost nil. I wanted to pay someone else to do the hosting.</p><p>This turned out to be significantly easier than I had thought. I signed up for <a href="https://masto.host/">masto.host</a>, a paid Mastodon service (on the cheapest plan, $6/mo). I set up my instance as <a href="https://social.jacobian.org">social.jacobian.org</a>, which involved setting up a <code>CNAME</code> to, easy. There was some simple initial configuration of the Mastodon server – I did things like turn off public signup, tweak some of the privacy settings, and (of course) enable 2FA on my admin account. Pretty simple, took about 15 minutes from putting in my credit card to having a functioning server.</p><p>That page only describes <code>host-meta</code>, but elsewhere I saw references to a couple of other routes: <code>/.well-known/webfinger</code> and <code>/.well-known/nodeinfo</code>. Initially I only redirected <code>host-meta</code>, and it seemed to work fine, but eventually I added the other two routes as well. I’m not sure if this was necessary, but it seemed like a good idea.</p><p>I’m on Cloudflare Pages, so involved adding three lines to my redirect rules file (<code>_redirects</code>):</p><pre tabindex="0"><code>/.well-known/host-meta* https://social.jacobian.org/.well-known/host-meta:splat 301 | |||
/.well-known/webfinger* https://social.jacobian.org/.well-known/webfinger:splat 301 | |||
/.well-known/nodeinfo* https://social.jacobian.org/.well-known/nodeinfo:splat 301 | |||
</code></pre><p>Finally, masto.host needs to do some config on the backend. I sent them an email, and they’d made the changes within an hour.</p><p>So yeah, I’m on the Fediverse now. Follow me: <code>@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4c262d2f232e0c262d2f232e252d2262233e2b">[email protected]</a></code> / <a href="https://social.jacobian.org/@jacob">https://social.jacobian.org/@jacob</a>.</p><h2 id="other-implementations">Other implementations</h2><p><a href="https://aeracode.org/2022/11/01/fediverse-custom-domains/">Andrew did the same thing on a Django site</a>.</p><h2 id="next-steps-syncing-twitter-and-mastodon">Next steps: syncing Twitter and Mastodon</h2><p>The next step for me was setting up bidirectional sync to publish content in both places. <a href="https://jacobian.org/til/mastodon-twitter-sync-github-actions/">Here’s how I did that</a>.</p> |
@@ -0,0 +1,219 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the `title` element | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>Mastodon on your own domain without hosting a server (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f7f7f7"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)"> | |||
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<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> | |||
<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> | |||
<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> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://blog.maartenballiauw.be/post/2022/11/05/mastodon-own-donain-without-hosting-server.html"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all"> | |||
<article> | |||
<header> | |||
<h1>Mastodon on your own domain without hosting a server</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://blog.maartenballiauw.be/post/2022/11/05/mastodon-own-donain-without-hosting-server.html" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<p>Like many in the past week, I have been having a serious look at <a href="https://joinmastodon.org/">Mastodon</a> as an alternative to Twitter.</p> | |||
<p>Mastodon is a social network that is distributed across many servers that have their own smaller communities, and federate with other servers to provide a more “global” social network.</p> | |||
<p>There are <a href="https://joinmastodon.org/servers">many servers out there</a> that you can choose from. Alternatively, you can also <a href="https://docs.joinmastodon.org/admin/prerequisites/">self-host</a> your Mastodon server, or use <a href="https://joinfediverse.wiki/How_to_host_your_own_Fediverse_instance%3F">one of many hosted instances</a>, “Mastodon as a service”.</p> | |||
<p>In recent hours, I have seen many people wanting to host their own servers, which is great fun! Self-hosting also has the added benefit of being able to have a Mastodon account on your own domain, and you own your data.</p> | |||
<p>Now, I don’t really care about that (<em>yet?</em>). I ran my own mail server back in the day and am very happy with someone running it for me now. The same goes with Mastodon: I trust the folks at <a href="https://mastodon.online">Mastodon.online</a>, the server I joined, to do a much better job at this than I will ever do.</p> | |||
<p>However, there is one thing I <em>would</em> like my own server for: <strong>discoverability</strong>. Much like with e-mail, I want folks to have an easy address to find me, and one that I can keep giving out to everyone even if later I switch to a different Mastodon server. A bit like e-mail forwarding to your ISP’s e-mail service.</p> | |||
<p>The good news is: <strong>you can use your own domain</strong> and share it with other folks. It will link to your actual account.</p> | |||
<p>Go on, try it. Search for <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="593438382b2d3c37193b38353530382c2e773b3c">[email protected]</a></code>, and you will find my <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="395458584b4d5c575b58555550584c4e7954584a4d565d5657174a565a505855">[email protected]</a></code>.</p> | |||
<h2 id="how-to-discover-mastodon-account-via-custom-domain">How to discover Mastodon account via custom domain</h2> | |||
<p>Reading <a href="https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/">“how to implement a basic ActivityPub server”</a>, there are a couple of things that stand out:</p> | |||
<ul><li>Mastodon (and others) use <a href="https://activitypub.rocks/">ActivityPub</a> as their protocol to communicate between “actors”.</li><li>Actors are discovered using <a href="https://webfinger.net/">WebFinger</a>, a way to attach information to an email address, or other online resource.</li></ul> | |||
<p>Since discovery is what I was after, WebFinger seemed like the only thing I would need to implement.</p> | |||
<p>WebFinger lives on <code class="language-plaintext highlighter-rouge">/.well-known/webfinger</code> on a server. For Mastodon, your server will be queried for accounts using an endpoint that looks like this:</p> | |||
<p>And indeed, if I look at my Mastodon server’s <code class="language-plaintext highlighter-rouge">webfinger</code> for my account, I get a response back!</p> | |||
<div class="language-http highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="err">GET https://mastodon.online/.well-known/webfinger?resource=acct:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="234e42425157464d41424f4f4a425654634e4250574c474c4d0d4c4d4f4a4d46">[email protected]</a> | |||
{ | |||
"subject": "acct:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9bf6fafae9effef5f9faf7f7f2faeeecdbf6fae8eff4fff4f5b5f4f5f7f2f5fe">[email protected]</a>", | |||
"aliases": [ | |||
"https://mastodon.online/@maartenballiauw", | |||
"https://mastodon.online/users/maartenballiauw" | |||
], | |||
"links": [ | |||
{ | |||
"rel": "http://webfinger.net/rel/profile-page", | |||
"type": "text/html", | |||
"href": "https://mastodon.online/@maartenballiauw" | |||
}, | |||
{ | |||
"rel": "self", | |||
"type": "application/activity+json", | |||
"href": "https://mastodon.online/users/maartenballiauw" | |||
}, | |||
{ | |||
"rel": "http://ostatus.org/schema/1.0/subscribe", | |||
"template": "https://mastodon.online/authorize_interaction?uri={uri}" | |||
} | |||
] | |||
} | |||
</span></code></pre></div></div> | |||
<p>Sweet!</p> | |||
<p>The next thing I tried was simply copy-pasting this JSON output to my own server under <code class="language-plaintext highlighter-rouge">.well-known/webfinger</code>, and things magically started working.</p> | |||
<p>In other words, if you want to be discovered on Mastodon using your own domain, you can do so by copying the contents of <code class="language-plaintext highlighter-rouge">https://<your mastodon server>/.well-known/webfinger?resource=acct:<your account>@<your mastodon server></code> to <code class="language-plaintext highlighter-rouge">https://<your domain>/.well-known/webfinger</code>.</p> | |||
<p>One caveat: this approach works much like a catch-all e-mail address. <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="01606f787569686f6641786e7473656e6c60686f2f626e6c">[email protected]</a></code> will match, unless you add a bit more scripting to only show a result for resources you want to be discoverable.</p> | |||
<p>Discoverability, at this stage, is one of the things that matter to get a proper social graph going. Over the past days, there were a couple of tools I found very useful in finding Twitter folks on Mastodon:</p> | |||
<ul><li><a href="https://twitodon.com/">Twitodon</a> learns about which Twitter account matches a Mastodon account, from folks using this service.</li><li><a href="https://fedifinder.glitch.me/">Fedifinder</a> and <a href="https://pruvisto.org/debirdify/">Debirdify</a> scan Twitter accounts and checks if there is a Mastodon account in their profile data.</li></ul> | |||
<p>Good luck! And give <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7d101c1c0f0918133d1f1c1111141c080a531f18">[email protected]</a></code> a follow if you make the jump to Mastodon.</p> | |||
<p><strong>Edit:</strong> Seems <a href="https://github.com/mastodon/mastodon/issues/2668">there is a GitHub issue which requests custom domains</a> as well.</p> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use> | |||
</svg> Suivre</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||
continue | |||
} | |||
// WARNING: Safari does not have/supports `conditionText`. | |||
if (cssRule.conditionText) { | |||
if (cssRule.conditionText !== prefersColorSchemeDark) { | |||
continue | |||
} | |||
} else { | |||
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { | |||
continue | |||
} | |||
} | |||
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) | |||
} | |||
// WARNING: do not try to insert a Rule to a styleSheet you are | |||
// currently iterating on, otherwise the browser will be stuck | |||
// in a infinite loop… | |||
for (const mediaRule of mediaRules) { | |||
styleSheet.insertRule(mediaRule.cssText) | |||
hasDarkRules = true | |||
} | |||
} | |||
if (hasDarkRules) { | |||
loadThemeForm('#theme-selector') | |||
} | |||
}) | |||
</script> | |||
</body> | |||
</html> |
@@ -0,0 +1,30 @@ | |||
title: Mastodon on your own domain without hosting a server | |||
url: https://blog.maartenballiauw.be/post/2022/11/05/mastodon-own-donain-without-hosting-server.html | |||
hash_url: 2b4baf23121e6a8cfb4d29008e478770 | |||
<p>Like many in the past week, I have been having a serious look at <a href="https://joinmastodon.org/">Mastodon</a> as an alternative to Twitter.</p><p>Mastodon is a social network that is distributed across many servers that have their own smaller communities, and federate with other servers to provide a more “global” social network.</p><p>There are <a href="https://joinmastodon.org/servers">many servers out there</a> that you can choose from. Alternatively, you can also <a href="https://docs.joinmastodon.org/admin/prerequisites/">self-host</a> your Mastodon server, or use <a href="https://joinfediverse.wiki/How_to_host_your_own_Fediverse_instance%3F">one of many hosted instances</a>, “Mastodon as a service”.</p><p>In recent hours, I have seen many people wanting to host their own servers, which is great fun! Self-hosting also has the added benefit of being able to have a Mastodon account on your own domain, and you own your data.</p><p>Now, I don’t really care about that (<em>yet?</em>). I ran my own mail server back in the day and am very happy with someone running it for me now. The same goes with Mastodon: I trust the folks at <a href="https://mastodon.online">Mastodon.online</a>, the server I joined, to do a much better job at this than I will ever do.</p><p>However, there is one thing I <em>would</em> like my own server for: <strong>discoverability</strong>. Much like with e-mail, I want folks to have an easy address to find me, and one that I can keep giving out to everyone even if later I switch to a different Mastodon server. A bit like e-mail forwarding to your ISP’s e-mail service.</p><p>The good news is: <strong>you can use your own domain</strong> and share it with other folks. It will link to your actual account.</p><p>Go on, try it. Search for <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="593438382b2d3c37193b38353530382c2e773b3c">[email protected]</a></code>, and you will find my <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="395458584b4d5c575b58555550584c4e7954584a4d565d5657174a565a505855">[email protected]</a></code>.</p><h2 id="how-to-discover-mastodon-account-via-custom-domain">How to discover Mastodon account via custom domain</h2><p>Reading <a href="https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/">“how to implement a basic ActivityPub server”</a>, there are a couple of things that stand out:</p><ul><li>Mastodon (and others) use <a href="https://activitypub.rocks/">ActivityPub</a> as their protocol to communicate between “actors”.</li><li>Actors are discovered using <a href="https://webfinger.net/">WebFinger</a>, a way to attach information to an email address, or other online resource.</li></ul><p>Since discovery is what I was after, WebFinger seemed like the only thing I would need to implement.</p><p>WebFinger lives on <code class="language-plaintext highlighter-rouge">/.well-known/webfinger</code> on a server. For Mastodon, your server will be queried for accounts using an endpoint that looks like this:</p><p>And indeed, if I look at my Mastodon server’s <code class="language-plaintext highlighter-rouge">webfinger</code> for my account, I get a response back!</p><div class="language-http highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="err">GET https://mastodon.online/.well-known/webfinger?resource=acct:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="234e42425157464d41424f4f4a425654634e4250574c474c4d0d4c4d4f4a4d46">[email protected]</a> | |||
{ | |||
"subject": "acct:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9bf6fafae9effef5f9faf7f7f2faeeecdbf6fae8eff4fff4f5b5f4f5f7f2f5fe">[email protected]</a>", | |||
"aliases": [ | |||
"https://mastodon.online/@maartenballiauw", | |||
"https://mastodon.online/users/maartenballiauw" | |||
], | |||
"links": [ | |||
{ | |||
"rel": "http://webfinger.net/rel/profile-page", | |||
"type": "text/html", | |||
"href": "https://mastodon.online/@maartenballiauw" | |||
}, | |||
{ | |||
"rel": "self", | |||
"type": "application/activity+json", | |||
"href": "https://mastodon.online/users/maartenballiauw" | |||
}, | |||
{ | |||
"rel": "http://ostatus.org/schema/1.0/subscribe", | |||
"template": "https://mastodon.online/authorize_interaction?uri={uri}" | |||
} | |||
] | |||
} | |||
</span></code></pre></div></div><p>Sweet!</p><p>The next thing I tried was simply copy-pasting this JSON output to my own server under <code class="language-plaintext highlighter-rouge">.well-known/webfinger</code>, and things magically started working.</p><p>In other words, if you want to be discovered on Mastodon using your own domain, you can do so by copying the contents of <code class="language-plaintext highlighter-rouge">https://<your mastodon server>/.well-known/webfinger?resource=acct:<your account>@<your mastodon server></code> to <code class="language-plaintext highlighter-rouge">https://<your domain>/.well-known/webfinger</code>.</p><p>One caveat: this approach works much like a catch-all e-mail address. <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="01606f787569686f6641786e7473656e6c60686f2f626e6c">[email protected]</a></code> will match, unless you add a bit more scripting to only show a result for resources you want to be discoverable.</p><p>Discoverability, at this stage, is one of the things that matter to get a proper social graph going. Over the past days, there were a couple of tools I found very useful in finding Twitter folks on Mastodon:</p><ul><li><a href="https://twitodon.com/">Twitodon</a> learns about which Twitter account matches a Mastodon account, from folks using this service.</li><li><a href="https://fedifinder.glitch.me/">Fedifinder</a> and <a href="https://pruvisto.org/debirdify/">Debirdify</a> scan Twitter accounts and checks if there is a Mastodon account in their profile data.</li></ul><p>Good luck! And give <code class="language-plaintext highlighter-rouge">@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7d101c1c0f0918133d1f1c1111141c080a531f18">[email protected]</a></code> a follow if you make the jump to Mastodon.</p><p><strong>Edit:</strong> Seems <a href="https://github.com/mastodon/mastodon/issues/2668">there is a GitHub issue which requests custom domains</a> as well.</p> |
@@ -0,0 +1,420 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the `title` element | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>Nikodemus' Guide to Mastodon (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f7f7f7"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)"> | |||
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<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> | |||
<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> | |||
<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> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://docs.google.com/document/d/1D9gfeKg_-hlsU66R-dLEvUeyMsqEfyIx2pnfUeX0t_E/edit"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all"> | |||
<article> | |||
<header> | |||
<h1>Nikodemus' Guide to Mastodon</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://docs.google.com/document/d/1D9gfeKg_-hlsU66R-dLEvUeyMsqEfyIx2pnfUeX0t_E/edit" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<p>Nikodemus’ Guide to Mastodon | |||
by Nikodemus Siivola <a href="mailto:@nikodemus@kamu.social">@nikodemus@kamu.social</a>, updated 2022-11-08. Read time 20-30 min</p> | |||
<p>Mastodon is a microblogging social network somewhat similar to Twitter, or your Facebook timeline. In some ways it is akin to Twitter 10 years ago. It isn’t a Twitter clone, and does not aspire to be one.</p> | |||
<p>If you read nothing else, please read the “Culture” section. Mastodon isn’t Twitter in the cultural sense either. Ignoring this is liable to make people mute or block you.</p> | |||
<p>If you’re more of a Facebook person than a Twitter person you be sure to check up “I Was Never on Twitter”.</p> | |||
<p>Right at the end there’s a “Getting an Account” section for those who don’t yet have a Mastodon account, including how to tell if the server you’re signing up on is safe. That section has a few hints about setting up a server as well.</p> | |||
<p>Don’t sweat too much. Literally millions of people have managed this. You can just go and explore, and come back here when you have a question about how something exactly works. | |||
About This Guide | |||
This is guide for kamu.social invitees but is making wider rounds now. The direct links to various configuration pages are kamu.social specific, but core principles apply widely. | |||
Surface Differences to Twitter and Facebook | |||
No ads. A brand can make an account, but their posts follow the same visibility rules as everyone else’s. | |||
The timeline is a timeline, not an algorithmic engagement maximizer: posts appear in chronological order. | |||
Timeline doesn’t scroll while you’re reading it if you don’t want it to. (See “Tips and Tricks” below.) | |||
Posts have a 500 character limit, which seems to allow more thoughtful communication than Twitter. | |||
There is no Quote Tweet -feature by design, as it would be weaponized just like on Twitter. | |||
There is no full text search by desing, as it too would be weaponized. (Hashtags are searchable.) | |||
There is a proper mechanism for content warnings, and it is widely used to provide headline folds as well. | |||
Bots are required to be marked as bots, and this is enforced. | |||
Hate and bullies are effectively moderated. (See “Safety features”, below.) | |||
Like is called Favorite, visible to OP, it does NOT show the post to your followers.. | |||
Retweet/Share is called Boost, visible to OP, it is how you show the other’s posts to your followers. | |||
Replies are visible to your followers: instead of quote-tweeting to steal the convo, reply like a human. | |||
There is also a bookmark button. Your bookmarks are just for you. | |||
Reply, Favorite and Boost –counts are not visible on timelines: you’re less influenced by “100K likes”. | |||
There is no illusion of privacy. Your FB and Twitter direct messages can be read by admins if they want to, and so can your Mastodon direct messages. If you need private messaging use end-to-end encrypted services like Signal or WhatsApp. Consider everything you write on Mastodon to like text on a postcard, or talking at a party. | |||
YOU CAN MIGRATE. You cannot migrate from Twitter to Facebook and keep your followers, or even from one Twitter account to another. You can migrate from one Mastodon account to another. Your old content will stay at the old place so links aren’t broken, your followers are moved to follow your new account, and a forwarding address is left for anyone looking for you later—which will also prevent anyone from stealing your old address. | |||
There are no “verified accounts”, but you can verify yourself: | |||
If you’re part of an organization that wants to have a Mastodon presence, one option is for your org to run a server: eg. social.your-organization.net. This verifies that anyone with an account there has something to do with your-organization.net. (You can do this as an individual as well, but running an instance with just yourself on it means you lose out on the curation federated timelines offer.) | |||
If you have any sort of webpage anywhere, you can put a bit of HTML code there saying “yes, I’m that Mastodon account”. Then when you link to that page on your profile, it will show it as verified. | |||
Most people don’t care, and don’t need to—but if you’re a “public actor” then you probably should. | |||
Deeper Differences to Twitter and Facebook | |||
Mastodon is federated. This is the thing you need to understand. | |||
Instead of there being one twitter.com or facebook.com, there are many, many servers - kamu.social is one of them. Servers are also called instances. | |||
Each server has its own admins and codes of conduct (also called server rules.) | |||
People can talk to each other across servers: if you’re on kamu.social, you can still follow people on mastodon.art, and they can follow you, and will see your replies even if they don’t follow you. | |||
You can have identities on multiple servers, but don’t need to: they are mainly relevant when you want to avoid crossing the streams – eg. keeping your professional self distinct from your underground party animal identity. | |||
The biggest practical minus of the federation is that you need to pick a server. Which is why I picked for you and made kamu.social. If you later discover you want to hang somewhere else, that’s fine, see “Migrating to a Different Server”. | |||
The biggest practical plus of the federation is that it provides curation. More about this below, in “You have three feeds”. | |||
The politically important part of federation is that no-one can buy Mastodon, and if nazis take over a part of the network that part can be cut off. (This has already happened, this is not theory but practise.) It is by the people, for the people. You don’t need to care, though, but we as a society should. | |||
You have three feeds. | |||
Your home timeline is all the people you follow, no matter which server they are on. This includes their own public, unlisted, and followers-only posts, their replies, and their boosts—everything except direct messages to other people. (Your home timeline also shows all your own posts, including your own direct messages.) | |||
Your local timeline is all the public posts from people on the same server. This does NOT include their replies to other people or their boosts! | |||
Your federated timeline is all the public posts from people on the same server and all the people THEY follow. This does NOT include their replies to other people, or their boosts. | |||
Summary: Home timeline is “your stuff”, local timeline is original content by people on your server, federated timeline is original content visible to your server. | |||
Since code of conduct is per server, it doesn’t really apply to the federated timeline – but see “Safety features” below. | |||
The local and federated timelines are why it matters which server you are on. Pick one with cool people with cool interests and your local and federated timelines will be awesome. Pick one with randos and they will be just that. Pick one with 100K people and… yeah. Still, you can always change servers later without losing followers, so starting on a big server is perfectly fine—just understand that you won’t be experiencing Mastodon at its best yet. | |||
Safety features | |||
Safety and moderation features have two granularities: account and server. | |||
You can block an individual, or the entire server they are on. While the fash can set up their own servers, rest of the world can block those. | |||
Server admins can block entire servers as well. See Decentralized Social Networks vs. The Trolls for what happened when Gab tried to take over. The “original” Mastodon server mastodon.social blocks around 140 other servers mainly due to hate speech and harassment. Some servers block even more, some block less. Some block pre-emptively, some block when they discover an issue. | |||
When you block someone, you can (and probably should) report them to admins of your own server as well. Your admins will see that you made the report, but the admins of the other server will only see the server the report came from. | |||
Even if you block someone, they can still see your public profile. If this a concern for you, lock down you account to minimize your public visibility. (See “Locking down your account” under “Moving house”.) | |||
You have four levels of privacy for your posts. | |||
Public. These appear on local and federated timelines, on your profile, and on your follower’s home timelines. Identifiable by the globe icon. | |||
Unlisted. These appear on your profile and on your follower’s home timelines. Identifiable by the OPEN lock icon:</p> | |||
<p>Followers-only. These appear ONLY on your follower’s home timelines. Your logged in followers can also see them on your profile. Identifiable by the CLOSED lock icon: <br /> | |||
Direct. These appear on the home timelines of their recipients. All people @mentioned in the post are considered recipients. You can add more people to the convo by @ing them. Identifiable by the @-icon:</p> | |||
<p>REMEMBER: Anything on Mastodon is more like a conversation at a party than a sealed letter. If nothing else, admins will have access to anything you post, including direct messages. Not convenient access, but access none the less. | |||
Moving House | |||
Didn’t create an account yet? Do it now. | |||
Locking down your account | |||
READ this even if you’re privileged enough to not suffer from stalkers or dogpiles, you should know these options exist. Also, if you do get trouble and are on kamu.social, please let me know! | |||
If you’re not on kamu.social, the details might differ but the content is the same. Eg. mastodon.social is running a newer software version than kamu. | |||
Go to Edit profile - kamu.social | |||
Select “Require follow requests”. This means you have control over who can follow you, and is harmless as long as you don’t mind approving people. | |||
Possibly also select “Hide your social graph” on the same page, which hides who you follow and who is following you. This doesn’t affect you, but makes it harder for other people to discover the cool people you follow and the cool people who follow you. Still, depending on your situation it might be worth it. | |||
Hit “Save Changes”, verify that the correct boxes are checked. | |||
Go to Preferences - kamu.social | |||
Select “Opt-out of search engine indexing”. This means neither Google nor special purpose Mastodon search engines like FedSearch will find your profile page or public posts. (If you want to be found, obviously don’t do this.) | |||
Under “Posting Defaults”, select whatever seems most appropriate. | |||
Public posts are… public. They’re the “default mode” for most people, but they don’t need to be the default for you. They appear on both the local and federated timelines, and may be indexed by search engines. | |||
Unlisted posts won’t appear on local or federated feeds by default, but they do appear on your public profile, can be linked to by anyone, and if someone boosts them they will appear for their followers’ timelines. They can also be indexed by search engines. | |||
Followers-only is the safety-conscious option: they are visible to your followers only, cannot be boosted, and viewing links to them require being logged in. They cannot be indexed by search engines (unless one of your followers is secretly a search engine.) | |||
Direct posts are visible only to those @mentioned on them, cannot be boosted, and links to them require them to be logged in. If you write a lot of direct messages this might be the right default! Note that ALL people @mentioned have access to the direct messages they’s mentioned in. | |||
Hit “Save changes”. | |||
Go to Notifications - kamu.social | |||
Go to “Other notifications settings” at the bottom, and select the ones you need. This allows you to: | |||
Block notifications from non-followers | |||
Block notifications from people you don't follow | |||
Block direct messages from people you don't follow | |||
Hit “Save changes”. | |||
Go to Automated post deletion - kamu.social | |||
Select whichever period and settings seem most appropriate for you. It might be to never delete anything automatically! | |||
Of course if someone archives an old post of yours, they have a copy and that’s out of your hands, but automatic deletion does mean old posts are much less likely to come to haunt you later. | |||
Consider setting up two-factor authentication at Two-factor Auth - kamu.social. | |||
SET UP YOUR PROFILE AND PICTURE. Lots of people are approving followers manually especially in the face of Twitter migration, and seeing a follow request with an empty profile is … yeah, nope. You don’t need to put up a mugshot, you don’t need to write a long bio, but some picture and a few words about what you’re about in your bio go a long way. | |||
Your display name IS searchable! IF you want people to find you by your real name, put it there—and if doxxing or stalkers are a concern do not. (It is not initially globally searchable, but over time more servers will learn about you and it will become more so.) | |||
Note that currently your bio is NOT searchable—not even by hashtags, hence next step. | |||
WRITE A PUBLIC POST WITH RELEVANT HASHTAGS, PIN IT, AND KEEP IT UP TO DATE. Since bios are not searchable, but keywords in posts are, write at a short “tags” post with your #interests, so that people can discover you by it. | |||
Go to Preferences - kamu.social | |||
Select the language you usually post in, so your browser’s or operating system’s language doesn’t affect it. (If you sometimes post in a different language, try to remember to tag it as such in the post-box—there’s a dropdown below the text entry.) | |||
Select the languages you read fluently, so only posts tagged with those languages appear in your local and federated timelines. (At the moment all posts from people you follow currently show up in your home timeline, no matter what language they’re in.) | |||
Finding your Twitter contacts: use https://fedifinder.glitch.me/ | |||
Download the list as CSV. | |||
Go to Import - kamu.social, select "Following List", “Merge”, choose the file you downloaded in previous step, and hit “Upload”. | |||
The import will take a bit, but you don’t need to do anything else. | |||
For those Twitter contacts not on Mastodon that you want to keep seeing, use https://beta.birdsite.live/ | |||
Enter the Twitter username in the box. | |||
Hit “Show”. | |||
Copy the Mastodon user id that appears, in the form of @username@beta.birdsite.live and paste it to the search box (under # Explore on mobile!) | |||
Follow the Mastodon account search finds. They won’t see your replies, or favorites, though! | |||
NOTE: If you’re on one of the big servers like mastodon.social, this may not work for you, as these bots are blocked there. (The reasoning is not entirely clear to me, and they are not blocked on kamu.social. The bot does have an unfortunate tendency to dump all posts of a person in a clump on your timeline, I may look into setting up a rate-limited version for kamu.social. Still, these post are followers-only, so they won’t be visible on the federated timeline, so you don’t need to worry about spamming that.) | |||
If you want to crosspost to Twitter automatically, use eg. https://crossposter.masto.donte.com.br/ (I don’t have personal experience with this.) | |||
Read the “Culture” section below. | |||
Culture | |||
On Mastodon content warnings are much more a thing than on Twitter. I’m still getting used to them myself, but hey, yeah, let’s use them. | |||
Write a headline-like content warnings: “News: violence against minorities in Texas” without getting into gory details. You can use them as headlines even if there is nothing to warn about! Lots of people do this, no-one will bat an eye. This allows people to scan timelines looking for the things that interest them. | |||
Politics deserves a CW most of the time, particularly US politics, particularly “look at this awful thing right wingers are doing”. Adding “US midterms” or similar CW is a also favor to the rest of the world who can only watch in horror without being able to do anything. Even for US citizens being able to engage on your own terms is important in maintaining people’s capacity to engage thoughtfully. | |||
This doesn’t mean all political topics need content warning on them! You have a head, use it. You will make errors in both directions, don’t sweat it too much. Just give it a moment’s consideration. | |||
Lived experience generally doesn’t need a CW. If you experience racism, sexism, transphobia, ableism, or other forms of hate you absolutely can post about it without a CW. If you go to a political rally and and want post about it… CW that. | |||
If you don’t need to see content warnings personally, go to Preferences → Appearance, select “Always expand posts marked with content warnings” and hit “Save Changes”. | |||
When people say “next time please CW this”, don’t take it personally. CW warnings aren’t about taboos or not allowing discussion, reminder to use them isn’t an attack or gatekeeping. | |||
If you don’t use CWs you will be boosted less. Seriously. | |||
When thinking of boosting something that could have used a CW, but doesn’t have one, instead reply to it, with something like ”☝️@GrimDark’s excellent analysis of the election results”. | |||
Use alt-text in images, people: click the “Edit” button on the image. There you can also change the centerpoint used for autocropping. Subscribe to https://mastodon.social/@alt_text for reminders. If you forget alt-text, just reply with “Forgotten alt-text: …” to your post. Eventually you will remember. | |||
Don’t censor or obfuscate words: any filters are by users, so you’re just circumventing measures people have set up to curate their own feeds. So no f*ck or P O L I C E or whatever. | |||
Use hashtags: they’re searchable, normal text is not. Don’t try to be an influencer dropping a dozen or more hashtags, though. That’s just silly. 1-3 is plenty. There is no algorithm to appease. You’re talking to actual people. | |||
Boost the things you find cool and wish more people would see. Don’t be shy. | |||
Fave the things you like: faving something is warm fuzzies for the original poster, which is important. Since your faves won’t leak to your followers, you don’t need to worry about liking things that they might not be interested in. Like with boosts, you can see who has faved a post by clicking through. | |||
Reply to people: don’t hang on to your comments like their precious gold! | |||
If you post in multiple languages, in addition to setting up your default language (see “Moving House” above), PLEASE do try to remember to tag the language you write in when you change it up. | |||
If you would have retweeted / shared something with your own commentary, instead: | |||
If your comment is constructive or funny, reply to the original. Due to the way the timelines work your followers will see your reply reliably, and can check the context by clicking on it. I think point up and keeping mention of the original poster is a nice thing to do if you want to call people’s attention to the OP, like so:</p> | |||
<p>If your comment is too snarky for a reply, either let it be, or do a manual “copy link to original, post that with comment”, or “screenshot original, post that with comment”. Seriously consider the let it be -option: snark is fun, but it doesn’t really make the world a better place. | |||
If you want your share + commentary to show up on the local and federated feeds, then you need DO need to make a new post. Click on the [...] button under the original to get the link.</p> | |||
<p>Follow LOTS of people. When you discover they’re not your jam, just unfollow them. Seriously. Follow indiscriminately to start with. This is not like Facebook friending. This is like listening to someone at a party to discover if they’re fun or not. Curate your own feed: you’re better at it then any algorithm. Seriously. | |||
On the local and federated timelines, if you find someone is too noisy, just mute them. If someone is feeling ranty, just mute them for a day or few to start. You can always clear your mutes periodically if you have bad FOMO. | |||
Suggested Follows | |||
If you make a list of suggested follows somewhere (1) either don’t include personal accounts (2) or get their permission first!</p> | |||
<p>https://mastodon.social/@Mastodon - the official account of the Mastodon project. | |||
https://mstdn.social/@feditips - tips to Mastodon and Fediverse. You can also read the website, but they don’t flood so occasional tips in the feed are nice. | |||
https://mastodon.social/@alt_text - bot that will nag at you when you forget the alt-text of an image. Accessibility is important. | |||
https://mastodon.social/@MicroSFF - daily micro fiction, SFF of course. | |||
Tips and Tricks | |||
On mobile search and federated feeds may be hidden under # Explore! | |||
You can enter emojis by typing their name between colons, like so: :joy: → 😂 | |||
In my opinion the user experience on mobile is better with browser than the official app. I haven’t tested a lot of apps, but I hear good things about Tusky on Android and both Tusk! and Metatext on iOS. See: Eight Mastodon apps for iPhone. | |||
You can pin multiple posts on your profile: eg. introduction, your tags, your best puns, and the important political message you’re all about. | |||
This widget on top of your timelines gives you access to their filtering options:</p> | |||
<p>For home timeline you can hide replies and boosts. (I recommend you don’t. If you do that you will miss out—but if there’s a whole boost storm or a dozen conversations you don’t care about going on you can turn them off for a while, etc.) | |||
For local you can hide posts that don’t include images or other media, reproducing an authentic Facebook experience. Do what seems nicest to you. | |||
For federated you can hide local posts, and posts that don’t include media. If you check all timelines separately I think hiding the locals makes sense. | |||
For notifications you can hide eg. faves and boosts. You can also turn on “Quick filter bar” for all categories, which will give you quick access to different notification categories:</p> | |||
<p>There’s a more complex filtering system accessible through preferences. This guide is too long already, though, so read up on Filters - Mastodon documentation. This will allow you to filter based on words, etc. | |||
You can browse the local timelines of most servers, search on them, and see who are there, and follow them. Try eg: | |||
“Big” servers: | |||
https://mastodon.social/explore | |||
https://mastodon.online/explore | |||
https://mstdn.social/explore | |||
Art: | |||
https://mastodon.art/explore | |||
https://artisan.chat/public | |||
Finland: https://mastodontti.fi/public | |||
Bots: https://botsin.space/explore | |||
Eclectic: | |||
https://merveilles.town/public | |||
https://pony.social/public | |||
Photography: https://photog.social/public | |||
Programming, Technology, Infosec, etc: | |||
https://freeradical.zone/public | |||
https://infosec.exchange/public | |||
https://types.pl/explore | |||
RPGs: https://dice.camp/public | |||
Science: https://scicomm.xyz/public | |||
Scifi and Fantasy: https://wandering.shop/public | |||
This list will be kept short and reflecting the tastes of people likely to land on kamu.social, but if you have a suggestion please do let me know! | |||
For other servers go first to the front page of the server, and look for “explore”, “local feed”, or similar from there. Different servers might be running different software and be configured differently, so specific URLs may differ - and some hide their local feeds and users. | |||
When you notice interesting people sharing the same server, go check out that server, maybe there’s more cool people there! | |||
Disable autocropping of images | |||
Go to Appearance - kamu.social, unselect “Crop images in non-expanded posts to 16x9”, and save changes. | |||
Turn on slow mode to prevent timeline from auto-refreshing | |||
Go to Appearance - kamu.social, select “Slow mode”, and hit “Save Changes”. | |||
Now when you have new posts to see, you will see “5 new items” at the top. (Same with notifications: the bell will show a number, and the top of your notifications timeline will show “5 new items”.) At this point you have two options: | |||
Click on the “5 new items”. The new items will appear on top, and your screen will not scroll. You can scroll UPWARDS to see the new stuff, in the order from oldest to newest. | |||
Refresh, and the new items will appear, and your screen will scroll to the top. You can now scroll DOWNWARDS to see the new stuff, in order from newest to oldest, until at some point you will start seeing the stuff you’ve already seen. | |||
…and maybe consider NOT hitting the “5 new items” at all, but instead close Mastodon and do something else. We can keep in touch without doomscrolling. | |||
Search box | |||
You can enter the name of a person. If your server knows about them, it’ll find them. If your server doesn’t know about them (no-one on your server follows them, their posts haven’t been boosted by people here, etc), it won’t. | |||
You can enter the name of a server. You will get a list of all people on there that your server knows about. | |||
You can enter a hashtag, and find all posts with that—that your server knows about. | |||
You may have noticed a theme above! If you’ve just started archery and want to find archers, searching for #archery on me.and.my.two.friends.social might not show much: search on one of the big servers listed above as well! | |||
You can enter the @username@server -identifier of anyone, and the search box will find them if they exist. I’ve seen searches occasionally fail due to either the server you’re searching on or the server the other person is on being overloaded, though. You can also use the URL of their profile. | |||
You cannot do global text searches. Some servers provide full text search for posts archived on the server, but even that is optional - and there is and never will be a global full text search. This is why hashtags are so important if you want your posts to be discoverable after the fact. | |||
Click through | |||
Every post has a small arrow below it, on the left, with a 0, 1, or 1+ next to it:</p> | |||
<p>The indicates the number of replies to that post: zero, one, or more than one. Click on the post to see the conversation, click on the arrow to reply yourself. | |||
Since there are no quote tweets, you see more people doing direct replies. This also means you see more things from the middle of a conversation. The double-arrow symbol:</p> | |||
<p>means the post is a reply. Click on the post, and the conversation it is part of appears above - even though there are no replies to THIS post, there is a whole conversation above it that you can read by clicking through. | |||
If there are other replies or if there is a pre-existing discussion above, it’s a good idea to click through. Not only for context, but maybe someone has already made your point and you can boost them instead, or maybe there’s a better place in the discussion to weigh in. | |||
You can also see who has boosted or faved a post by clicking through, and then clicking on the small boost or fave icon at the bottom. This is one way to discover cool people. | |||
Make notes on profiles | |||
If you go to someone’s profile, you will see a NOTE section. This is for you! You can write for example “Met at Chaos Camp 2021” or “Rants about US politics” there, and no-one else will see it. This is so that you can remind yourself of how you know someone, or why you unfollowed them, or maybe what their real name is. They won’t get a notification, and they won’t see it. You server admin, as always, has access if they really want, though. | |||
I Was Never on Twitter | |||
Mastodon is NOT a Twitter clone, but shares the same basic threading model of discussions with Twitter. Here’s how it works on Mastodon specifically.</p> | |||
<p>Someone makes a post / tweet / toot. | |||
Other people see it, and reply to it. | |||
Other people see those replies, and reply to them. Repeat until discussion dries out. | |||
Unlike on Facebook, there is no limit to the depth of subthreads a discussion can have. There is also no “most popular replies”, etc. This is by design. | |||
When you click on a post, you are taken the the conversation view for that post, showing the discussion directly preceding it if you scroll up, and the direct replies to it if you scroll down. | |||
When you reply to other people publicly, your followers see your reply, it appears on your profile under “Posts and replies”, and it appears to the people @mentioned in your reply, but it does NOT appear on the local and federated timelines you are on. | |||
If you make a followers-only reply, it will only appear to your followers and those @mentioned. | |||
If you make a direct reply, it will only appear to those @mentioned. | |||
Unlisted replies are useful when you’re making a thread: your replies to your own posts DO appear on the local and federated timelines. By making the first post of a thread public and the rest unlisted you can avoid spamming the timelines. | |||
Make sure to read the Culture section above! | |||
Migrating to a Different Server | |||
This actually works exactly the same if you’re just migrating to a different account on the same server!</p> | |||
<p>Create a new account where you want to move. | |||
Download your old follows, mutes, blocks, etc: | |||
On your OLD account, go to Preferences → Import and Export → Data Export | |||
Download the all CSV files (Comma Separated Values, you can open these in a spreadsheet). | |||
Click “Request your archive”, wait until it is ready an download it. It will contain all your posts and uploads. | |||
Add you old follows, mutes, blocks, etc to your new account. | |||
On your NEW account, go to Preferences → Import and Export → Data Import | |||
Import follows: | |||
Make sure “Following List” is selected in the dropdown. | |||
Make sure “Merge” is selected below. | |||
Choose the following_accounts.csv file you earlier exported. | |||
Hit upload. | |||
Repeat the above for Blocking List, Muting List, Domain Blocking List, and Bookmarks. | |||
Your account migration is new complete from the POV of the new account. Nothing irreversible has been done. | |||
Migrate your followers. This step will make you old account INACTIVE and move all your followers to follow your new account. The process is not instantaneous, and might take a while, so don’t panic if they’re not there immediately! You can later re-activate your old account, but the followers will be gone. | |||
The following steps need to be done in this order! Nothing bad will happen the other way around, it just won’t do anything. | |||
On your NEW account, go to Preferences → Account → Moving from a different account, and create an alias for your OLD account. This is the “I’m migration from there to here”-signal. | |||
On your OLD account, go to Preferences → Account → Moving to a different account. Enter your NEW account and the password of the OLD account, and hit “Move Followers”. This is the “I’m allowing migration from here to there”-signal. | |||
You’re done. If you now log out and check your old account’s public profile you should see it pointing to the new account, but all your old posts are still accessible in their old addresses. This is good internetting: don’t break old links. | |||
If you get errors, check that you’ve done the steps in right order, and note the “mixed” account and password when starting migration! | |||
IF you want to also migrate your old posts, my suggestion is that you boost selected old posts from your new account. The alternative would be to dig in the archive you downloaded and re-post the things you want, or to copy them manually. | |||
If there’s lots of good stuff on your old account, maybe link to it in your pinned #introduction. You DO have an introduction, right? | |||
Getting an Account | |||
If you know me (Nikodemus) and I know you, then you’re pretty much invited to kamu.social. If not, then this section is for you:</p> | |||
<p>Signup using most apps is buggy, I hear. Sign up from a browser. Use browser to start, pick an app later. | |||
If you have friends who all hang on a server and tell you to go there, go there. | |||
Otherwise make an account on one of the “big” general purpose servers, it doesn’t matter which. If you don’t have friends pulling you to a nice place, it’s better to pick a big server because that way it will be easier for you to find interesting people to follow. Later, when you notice all the interesting people hang on coolthing.town or something, migrate there. No biggie. | |||
Servers managed by “Stux”, who seems to be doing a very good job: mstdn.social, mastodon.coffee, masto.ai (The two last ones are still reasonably small, but based on the track record of mstdn.social I feel confident recommending them.) | |||
I used to recommend making an account on mastodon.online, or mastodon.social. but the moderation quality there take a drastic dip, and they’re not blocking some instances that should IMO be blocked. | |||
MAYBE if you have a single big focus in your life like art, a specific identity, hacktivism, microbrews, or whatever, AND you can find a server dedicated to that, then you can go there without making an account on a big server first. | |||
Check the public feeds of that server and see what they’re like. If you like them, great! | |||
Make sure the server you sign up has a reasonable code of conduct, and a blocklist. Check the “About” page of the server. See eg. About - Mastodon for mastodon.social. If the server you’re looking at doesn’t suspend sites for hate speech and harassment, that’s a huge 🚩. | |||
Really, all the servers listed in Tips and Tricks section should be fine. | |||
The reason it is easier to get started on a big server is because the big servers “know” more people. So searching for a hashtag or a name directly on that server is more likely to find the thing you’re looking for. You can search on many servers you don’t have an account on, esp. the big ones, but that’s more hassle and something you need to remember to do. | |||
IF YOU WANT TO SET UP A SERVER and let other people in, you need to be ready to make sure they’re safe. | |||
Make an account elsewhere first. Spend at least a few days on the fediverse. | |||
Do your homework: you need to read more than this guide. | |||
Set up server rules, aka code of conduct. Without a public set of server rules on the “About” page, other servers are much more likely to block you at the first sign of trouble instead of reaching out. | |||
Set up an initial list of moderated servers. My suggestion is to copy the list from eg. mastodon.art. Some of the addresses will be obfuscated (due to eg. hosting illegal content), so those you gotta skip, but espcially make sure to get the hate speech and harassment ones. | |||
If your people are out of line, it’s not just them that may be blocked, but your entire server. You’re responsible moderating your crowd when the need arises. | |||
Follow the #fediblock topic for reports of bad actor servers.</p> | |||
<p>Happy Tooting!</p> | |||
<p>— Nikodemus</p> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use> | |||
</svg> Suivre</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||
continue | |||
} | |||
// WARNING: Safari does not have/supports `conditionText`. | |||
if (cssRule.conditionText) { | |||
if (cssRule.conditionText !== prefersColorSchemeDark) { | |||
continue | |||
} | |||
} else { | |||
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { | |||
continue | |||
} | |||
} | |||
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) | |||
} | |||
// WARNING: do not try to insert a Rule to a styleSheet you are | |||
// currently iterating on, otherwise the browser will be stuck | |||
// in a infinite loop… | |||
for (const mediaRule of mediaRules) { | |||
styleSheet.insertRule(mediaRule.cssText) | |||
hasDarkRules = true | |||
} | |||
} | |||
if (hasDarkRules) { | |||
loadThemeForm('#theme-selector') | |||
} | |||
}) | |||
</script> | |||
</body> | |||
</html> |
@@ -0,0 +1,273 @@ | |||
title: Nikodemus' Guide to Mastodon | |||
url: https://docs.google.com/document/d/1D9gfeKg_-hlsU66R-dLEvUeyMsqEfyIx2pnfUeX0t_E/edit | |||
hash_url: 3b9259e5e41e5e73fc3d5574fd472674 | |||
Nikodemus’ Guide to Mastodon | |||
by Nikodemus Siivola <@nikodemus@kamu.social>, updated 2022-11-08. Read time 20-30 min | |||
Mastodon is a microblogging social network somewhat similar to Twitter, or your Facebook timeline. In some ways it is akin to Twitter 10 years ago. It isn’t a Twitter clone, and does not aspire to be one. | |||
If you read nothing else, please read the “Culture” section. Mastodon isn’t Twitter in the cultural sense either. Ignoring this is liable to make people mute or block you. | |||
If you’re more of a Facebook person than a Twitter person you be sure to check up “I Was Never on Twitter”. | |||
Right at the end there’s a “Getting an Account” section for those who don’t yet have a Mastodon account, including how to tell if the server you’re signing up on is safe. That section has a few hints about setting up a server as well. | |||
Don’t sweat too much. Literally millions of people have managed this. You can just go and explore, and come back here when you have a question about how something exactly works. | |||
About This Guide | |||
This is guide for kamu.social invitees but is making wider rounds now. The direct links to various configuration pages are kamu.social specific, but core principles apply widely. | |||
Surface Differences to Twitter and Facebook | |||
No ads. A brand can make an account, but their posts follow the same visibility rules as everyone else’s. | |||
The timeline is a timeline, not an algorithmic engagement maximizer: posts appear in chronological order. | |||
Timeline doesn’t scroll while you’re reading it if you don’t want it to. (See “Tips and Tricks” below.) | |||
Posts have a 500 character limit, which seems to allow more thoughtful communication than Twitter. | |||
There is no Quote Tweet -feature by design, as it would be weaponized just like on Twitter. | |||
There is no full text search by desing, as it too would be weaponized. (Hashtags are searchable.) | |||
There is a proper mechanism for content warnings, and it is widely used to provide headline folds as well. | |||
Bots are required to be marked as bots, and this is enforced. | |||
Hate and bullies are effectively moderated. (See “Safety features”, below.) | |||
Like is called Favorite, visible to OP, it does NOT show the post to your followers.. | |||
Retweet/Share is called Boost, visible to OP, it is how you show the other’s posts to your followers. | |||
Replies are visible to your followers: instead of quote-tweeting to steal the convo, reply like a human. | |||
There is also a bookmark button. Your bookmarks are just for you. | |||
Reply, Favorite and Boost –counts are not visible on timelines: you’re less influenced by “100K likes”. | |||
There is no illusion of privacy. Your FB and Twitter direct messages can be read by admins if they want to, and so can your Mastodon direct messages. If you need private messaging use end-to-end encrypted services like Signal or WhatsApp. Consider everything you write on Mastodon to like text on a postcard, or talking at a party. | |||
YOU CAN MIGRATE. You cannot migrate from Twitter to Facebook and keep your followers, or even from one Twitter account to another. You can migrate from one Mastodon account to another. Your old content will stay at the old place so links aren’t broken, your followers are moved to follow your new account, and a forwarding address is left for anyone looking for you later—which will also prevent anyone from stealing your old address. | |||
There are no “verified accounts”, but you can verify yourself: | |||
If you’re part of an organization that wants to have a Mastodon presence, one option is for your org to run a server: eg. social.your-organization.net. This verifies that anyone with an account there has something to do with your-organization.net. (You can do this as an individual as well, but running an instance with just yourself on it means you lose out on the curation federated timelines offer.) | |||
If you have any sort of webpage anywhere, you can put a bit of HTML code there saying “yes, I’m that Mastodon account”. Then when you link to that page on your profile, it will show it as verified. | |||
Most people don’t care, and don’t need to—but if you’re a “public actor” then you probably should. | |||
Deeper Differences to Twitter and Facebook | |||
Mastodon is federated. This is the thing you need to understand. | |||
Instead of there being one twitter.com or facebook.com, there are many, many servers - kamu.social is one of them. Servers are also called instances. | |||
Each server has its own admins and codes of conduct (also called server rules.) | |||
People can talk to each other across servers: if you’re on kamu.social, you can still follow people on mastodon.art, and they can follow you, and will see your replies even if they don’t follow you. | |||
You can have identities on multiple servers, but don’t need to: they are mainly relevant when you want to avoid crossing the streams – eg. keeping your professional self distinct from your underground party animal identity. | |||
The biggest practical minus of the federation is that you need to pick a server. Which is why I picked for you and made kamu.social. If you later discover you want to hang somewhere else, that’s fine, see “Migrating to a Different Server”. | |||
The biggest practical plus of the federation is that it provides curation. More about this below, in “You have three feeds”. | |||
The politically important part of federation is that no-one can buy Mastodon, and if nazis take over a part of the network that part can be cut off. (This has already happened, this is not theory but practise.) It is by the people, for the people. You don’t need to care, though, but we as a society should. | |||
You have three feeds. | |||
Your home timeline is all the people you follow, no matter which server they are on. This includes their own public, unlisted, and followers-only posts, their replies, and their boosts—everything except direct messages to other people. (Your home timeline also shows all your own posts, including your own direct messages.) | |||
Your local timeline is all the public posts from people on the same server. This does NOT include their replies to other people or their boosts! | |||
Your federated timeline is all the public posts from people on the same server and all the people THEY follow. This does NOT include their replies to other people, or their boosts. | |||
Summary: Home timeline is “your stuff”, local timeline is original content by people on your server, federated timeline is original content visible to your server. | |||
Since code of conduct is per server, it doesn’t really apply to the federated timeline – but see “Safety features” below. | |||
The local and federated timelines are why it matters which server you are on. Pick one with cool people with cool interests and your local and federated timelines will be awesome. Pick one with randos and they will be just that. Pick one with 100K people and… yeah. Still, you can always change servers later without losing followers, so starting on a big server is perfectly fine—just understand that you won’t be experiencing Mastodon at its best yet. | |||
Safety features | |||
Safety and moderation features have two granularities: account and server. | |||
You can block an individual, or the entire server they are on. While the fash can set up their own servers, rest of the world can block those. | |||
Server admins can block entire servers as well. See Decentralized Social Networks vs. The Trolls for what happened when Gab tried to take over. The “original” Mastodon server mastodon.social blocks around 140 other servers mainly due to hate speech and harassment. Some servers block even more, some block less. Some block pre-emptively, some block when they discover an issue. | |||
When you block someone, you can (and probably should) report them to admins of your own server as well. Your admins will see that you made the report, but the admins of the other server will only see the server the report came from. | |||
Even if you block someone, they can still see your public profile. If this a concern for you, lock down you account to minimize your public visibility. (See “Locking down your account” under “Moving house”.) | |||
You have four levels of privacy for your posts. | |||
Public. These appear on local and federated timelines, on your profile, and on your follower’s home timelines. Identifiable by the globe icon. | |||
Unlisted. These appear on your profile and on your follower’s home timelines. Identifiable by the OPEN lock icon: | |||
Followers-only. These appear ONLY on your follower’s home timelines. Your logged in followers can also see them on your profile. Identifiable by the CLOSED lock icon: | |||
Direct. These appear on the home timelines of their recipients. All people @mentioned in the post are considered recipients. You can add more people to the convo by @ing them. Identifiable by the @-icon: | |||
REMEMBER: Anything on Mastodon is more like a conversation at a party than a sealed letter. If nothing else, admins will have access to anything you post, including direct messages. Not convenient access, but access none the less. | |||
Moving House | |||
Didn’t create an account yet? Do it now. | |||
Locking down your account | |||
READ this even if you’re privileged enough to not suffer from stalkers or dogpiles, you should know these options exist. Also, if you do get trouble and are on kamu.social, please let me know! | |||
If you’re not on kamu.social, the details might differ but the content is the same. Eg. mastodon.social is running a newer software version than kamu. | |||
Go to Edit profile - kamu.social | |||
Select “Require follow requests”. This means you have control over who can follow you, and is harmless as long as you don’t mind approving people. | |||
Possibly also select “Hide your social graph” on the same page, which hides who you follow and who is following you. This doesn’t affect you, but makes it harder for other people to discover the cool people you follow and the cool people who follow you. Still, depending on your situation it might be worth it. | |||
Hit “Save Changes”, verify that the correct boxes are checked. | |||
Go to Preferences - kamu.social | |||
Select “Opt-out of search engine indexing”. This means neither Google nor special purpose Mastodon search engines like FedSearch will find your profile page or public posts. (If you want to be found, obviously don’t do this.) | |||
Under “Posting Defaults”, select whatever seems most appropriate. | |||
Public posts are… public. They’re the “default mode” for most people, but they don’t need to be the default for you. They appear on both the local and federated timelines, and may be indexed by search engines. | |||
Unlisted posts won’t appear on local or federated feeds by default, but they do appear on your public profile, can be linked to by anyone, and if someone boosts them they will appear for their followers’ timelines. They can also be indexed by search engines. | |||
Followers-only is the safety-conscious option: they are visible to your followers only, cannot be boosted, and viewing links to them require being logged in. They cannot be indexed by search engines (unless one of your followers is secretly a search engine.) | |||
Direct posts are visible only to those @mentioned on them, cannot be boosted, and links to them require them to be logged in. If you write a lot of direct messages this might be the right default! Note that ALL people @mentioned have access to the direct messages they’s mentioned in. | |||
Hit “Save changes”. | |||
Go to Notifications - kamu.social | |||
Go to “Other notifications settings” at the bottom, and select the ones you need. This allows you to: | |||
Block notifications from non-followers | |||
Block notifications from people you don't follow | |||
Block direct messages from people you don't follow | |||
Hit “Save changes”. | |||
Go to Automated post deletion - kamu.social | |||
Select whichever period and settings seem most appropriate for you. It might be to never delete anything automatically! | |||
Of course if someone archives an old post of yours, they have a copy and that’s out of your hands, but automatic deletion does mean old posts are much less likely to come to haunt you later. | |||
Consider setting up two-factor authentication at Two-factor Auth - kamu.social. | |||
SET UP YOUR PROFILE AND PICTURE. Lots of people are approving followers manually especially in the face of Twitter migration, and seeing a follow request with an empty profile is … yeah, nope. You don’t need to put up a mugshot, you don’t need to write a long bio, but some picture and a few words about what you’re about in your bio go a long way. | |||
Your display name IS searchable! IF you want people to find you by your real name, put it there—and if doxxing or stalkers are a concern do not. (It is not initially globally searchable, but over time more servers will learn about you and it will become more so.) | |||
Note that currently your bio is NOT searchable—not even by hashtags, hence next step. | |||
WRITE A PUBLIC POST WITH RELEVANT HASHTAGS, PIN IT, AND KEEP IT UP TO DATE. Since bios are not searchable, but keywords in posts are, write at a short “tags” post with your #interests, so that people can discover you by it. | |||
Go to Preferences - kamu.social | |||
Select the language you usually post in, so your browser’s or operating system’s language doesn’t affect it. (If you sometimes post in a different language, try to remember to tag it as such in the post-box—there’s a dropdown below the text entry.) | |||
Select the languages you read fluently, so only posts tagged with those languages appear in your local and federated timelines. (At the moment all posts from people you follow currently show up in your home timeline, no matter what language they’re in.) | |||
Finding your Twitter contacts: use https://fedifinder.glitch.me/ | |||
Download the list as CSV. | |||
Go to Import - kamu.social, select "Following List", “Merge”, choose the file you downloaded in previous step, and hit “Upload”. | |||
The import will take a bit, but you don’t need to do anything else. | |||
For those Twitter contacts not on Mastodon that you want to keep seeing, use https://beta.birdsite.live/ | |||
Enter the Twitter username in the box. | |||
Hit “Show”. | |||
Copy the Mastodon user id that appears, in the form of @username@beta.birdsite.live and paste it to the search box (under # Explore on mobile!) | |||
Follow the Mastodon account search finds. They won’t see your replies, or favorites, though! | |||
NOTE: If you’re on one of the big servers like mastodon.social, this may not work for you, as these bots are blocked there. (The reasoning is not entirely clear to me, and they are not blocked on kamu.social. The bot does have an unfortunate tendency to dump all posts of a person in a clump on your timeline, I may look into setting up a rate-limited version for kamu.social. Still, these post are followers-only, so they won’t be visible on the federated timeline, so you don’t need to worry about spamming that.) | |||
If you want to crosspost to Twitter automatically, use eg. https://crossposter.masto.donte.com.br/ (I don’t have personal experience with this.) | |||
Read the “Culture” section below. | |||
Culture | |||
On Mastodon content warnings are much more a thing than on Twitter. I’m still getting used to them myself, but hey, yeah, let’s use them. | |||
Write a headline-like content warnings: “News: violence against minorities in Texas” without getting into gory details. You can use them as headlines even if there is nothing to warn about! Lots of people do this, no-one will bat an eye. This allows people to scan timelines looking for the things that interest them. | |||
Politics deserves a CW most of the time, particularly US politics, particularly “look at this awful thing right wingers are doing”. Adding “US midterms” or similar CW is a also favor to the rest of the world who can only watch in horror without being able to do anything. Even for US citizens being able to engage on your own terms is important in maintaining people’s capacity to engage thoughtfully. | |||
This doesn’t mean all political topics need content warning on them! You have a head, use it. You will make errors in both directions, don’t sweat it too much. Just give it a moment’s consideration. | |||
Lived experience generally doesn’t need a CW. If you experience racism, sexism, transphobia, ableism, or other forms of hate you absolutely can post about it without a CW. If you go to a political rally and and want post about it… CW that. | |||
If you don’t need to see content warnings personally, go to Preferences → Appearance, select “Always expand posts marked with content warnings” and hit “Save Changes”. | |||
When people say “next time please CW this”, don’t take it personally. CW warnings aren’t about taboos or not allowing discussion, reminder to use them isn’t an attack or gatekeeping. | |||
If you don’t use CWs you will be boosted less. Seriously. | |||
When thinking of boosting something that could have used a CW, but doesn’t have one, instead reply to it, with something like ”☝️@GrimDark’s excellent analysis of the election results”. | |||
Use alt-text in images, people: click the “Edit” button on the image. There you can also change the centerpoint used for autocropping. Subscribe to https://mastodon.social/@alt_text for reminders. If you forget alt-text, just reply with “Forgotten alt-text: …” to your post. Eventually you will remember. | |||
Don’t censor or obfuscate words: any filters are by users, so you’re just circumventing measures people have set up to curate their own feeds. So no f*ck or P O L I C E or whatever. | |||
Use hashtags: they’re searchable, normal text is not. Don’t try to be an influencer dropping a dozen or more hashtags, though. That’s just silly. 1-3 is plenty. There is no algorithm to appease. You’re talking to actual people. | |||
Boost the things you find cool and wish more people would see. Don’t be shy. | |||
Fave the things you like: faving something is warm fuzzies for the original poster, which is important. Since your faves won’t leak to your followers, you don’t need to worry about liking things that they might not be interested in. Like with boosts, you can see who has faved a post by clicking through. | |||
Reply to people: don’t hang on to your comments like their precious gold! | |||
If you post in multiple languages, in addition to setting up your default language (see “Moving House” above), PLEASE do try to remember to tag the language you write in when you change it up. | |||
If you would have retweeted / shared something with your own commentary, instead: | |||
If your comment is constructive or funny, reply to the original. Due to the way the timelines work your followers will see your reply reliably, and can check the context by clicking on it. I think point up and keeping mention of the original poster is a nice thing to do if you want to call people’s attention to the OP, like so: | |||
If your comment is too snarky for a reply, either let it be, or do a manual “copy link to original, post that with comment”, or “screenshot original, post that with comment”. Seriously consider the let it be -option: snark is fun, but it doesn’t really make the world a better place. | |||
If you want your share + commentary to show up on the local and federated feeds, then you need DO need to make a new post. Click on the [...] button under the original to get the link. | |||
Follow LOTS of people. When you discover they’re not your jam, just unfollow them. Seriously. Follow indiscriminately to start with. This is not like Facebook friending. This is like listening to someone at a party to discover if they’re fun or not. Curate your own feed: you’re better at it then any algorithm. Seriously. | |||
On the local and federated timelines, if you find someone is too noisy, just mute them. If someone is feeling ranty, just mute them for a day or few to start. You can always clear your mutes periodically if you have bad FOMO. | |||
Suggested Follows | |||
If you make a list of suggested follows somewhere (1) either don’t include personal accounts (2) or get their permission first! | |||
https://mastodon.social/@Mastodon - the official account of the Mastodon project. | |||
https://mstdn.social/@feditips - tips to Mastodon and Fediverse. You can also read the website, but they don’t flood so occasional tips in the feed are nice. | |||
https://mastodon.social/@alt_text - bot that will nag at you when you forget the alt-text of an image. Accessibility is important. | |||
https://mastodon.social/@MicroSFF - daily micro fiction, SFF of course. | |||
Tips and Tricks | |||
On mobile search and federated feeds may be hidden under # Explore! | |||
You can enter emojis by typing their name between colons, like so: :joy: → 😂 | |||
In my opinion the user experience on mobile is better with browser than the official app. I haven’t tested a lot of apps, but I hear good things about Tusky on Android and both Tusk! and Metatext on iOS. See: Eight Mastodon apps for iPhone. | |||
You can pin multiple posts on your profile: eg. introduction, your tags, your best puns, and the important political message you’re all about. | |||
This widget on top of your timelines gives you access to their filtering options: | |||
For home timeline you can hide replies and boosts. (I recommend you don’t. If you do that you will miss out—but if there’s a whole boost storm or a dozen conversations you don’t care about going on you can turn them off for a while, etc.) | |||
For local you can hide posts that don’t include images or other media, reproducing an authentic Facebook experience. Do what seems nicest to you. | |||
For federated you can hide local posts, and posts that don’t include media. If you check all timelines separately I think hiding the locals makes sense. | |||
For notifications you can hide eg. faves and boosts. You can also turn on “Quick filter bar” for all categories, which will give you quick access to different notification categories: | |||
There’s a more complex filtering system accessible through preferences. This guide is too long already, though, so read up on Filters - Mastodon documentation. This will allow you to filter based on words, etc. | |||
You can browse the local timelines of most servers, search on them, and see who are there, and follow them. Try eg: | |||
“Big” servers: | |||
https://mastodon.social/explore | |||
https://mastodon.online/explore | |||
https://mstdn.social/explore | |||
Art: | |||
https://mastodon.art/explore | |||
https://artisan.chat/public | |||
Finland: https://mastodontti.fi/public | |||
Bots: https://botsin.space/explore | |||
Eclectic: | |||
https://merveilles.town/public | |||
https://pony.social/public | |||
Photography: https://photog.social/public | |||
Programming, Technology, Infosec, etc: | |||
https://freeradical.zone/public | |||
https://infosec.exchange/public | |||
https://types.pl/explore | |||
RPGs: https://dice.camp/public | |||
Science: https://scicomm.xyz/public | |||
Scifi and Fantasy: https://wandering.shop/public | |||
This list will be kept short and reflecting the tastes of people likely to land on kamu.social, but if you have a suggestion please do let me know! | |||
For other servers go first to the front page of the server, and look for “explore”, “local feed”, or similar from there. Different servers might be running different software and be configured differently, so specific URLs may differ - and some hide their local feeds and users. | |||
When you notice interesting people sharing the same server, go check out that server, maybe there’s more cool people there! | |||
Disable autocropping of images | |||
Go to Appearance - kamu.social, unselect “Crop images in non-expanded posts to 16x9”, and save changes. | |||
Turn on slow mode to prevent timeline from auto-refreshing | |||
Go to Appearance - kamu.social, select “Slow mode”, and hit “Save Changes”. | |||
Now when you have new posts to see, you will see “5 new items” at the top. (Same with notifications: the bell will show a number, and the top of your notifications timeline will show “5 new items”.) At this point you have two options: | |||
Click on the “5 new items”. The new items will appear on top, and your screen will not scroll. You can scroll UPWARDS to see the new stuff, in the order from oldest to newest. | |||
Refresh, and the new items will appear, and your screen will scroll to the top. You can now scroll DOWNWARDS to see the new stuff, in order from newest to oldest, until at some point you will start seeing the stuff you’ve already seen. | |||
…and maybe consider NOT hitting the “5 new items” at all, but instead close Mastodon and do something else. We can keep in touch without doomscrolling. | |||
Search box | |||
You can enter the name of a person. If your server knows about them, it’ll find them. If your server doesn’t know about them (no-one on your server follows them, their posts haven’t been boosted by people here, etc), it won’t. | |||
You can enter the name of a server. You will get a list of all people on there that your server knows about. | |||
You can enter a hashtag, and find all posts with that—that your server knows about. | |||
You may have noticed a theme above! If you’ve just started archery and want to find archers, searching for #archery on me.and.my.two.friends.social might not show much: search on one of the big servers listed above as well! | |||
You can enter the @username@server -identifier of anyone, and the search box will find them if they exist. I’ve seen searches occasionally fail due to either the server you’re searching on or the server the other person is on being overloaded, though. You can also use the URL of their profile. | |||
You cannot do global text searches. Some servers provide full text search for posts archived on the server, but even that is optional - and there is and never will be a global full text search. This is why hashtags are so important if you want your posts to be discoverable after the fact. | |||
Click through | |||
Every post has a small arrow below it, on the left, with a 0, 1, or 1+ next to it: | |||
The indicates the number of replies to that post: zero, one, or more than one. Click on the post to see the conversation, click on the arrow to reply yourself. | |||
Since there are no quote tweets, you see more people doing direct replies. This also means you see more things from the middle of a conversation. The double-arrow symbol: | |||
means the post is a reply. Click on the post, and the conversation it is part of appears above - even though there are no replies to THIS post, there is a whole conversation above it that you can read by clicking through. | |||
If there are other replies or if there is a pre-existing discussion above, it’s a good idea to click through. Not only for context, but maybe someone has already made your point and you can boost them instead, or maybe there’s a better place in the discussion to weigh in. | |||
You can also see who has boosted or faved a post by clicking through, and then clicking on the small boost or fave icon at the bottom. This is one way to discover cool people. | |||
Make notes on profiles | |||
If you go to someone’s profile, you will see a NOTE section. This is for you! You can write for example “Met at Chaos Camp 2021” or “Rants about US politics” there, and no-one else will see it. This is so that you can remind yourself of how you know someone, or why you unfollowed them, or maybe what their real name is. They won’t get a notification, and they won’t see it. You server admin, as always, has access if they really want, though. | |||
I Was Never on Twitter | |||
Mastodon is NOT a Twitter clone, but shares the same basic threading model of discussions with Twitter. Here’s how it works on Mastodon specifically. | |||
Someone makes a post / tweet / toot. | |||
Other people see it, and reply to it. | |||
Other people see those replies, and reply to them. Repeat until discussion dries out. | |||
Unlike on Facebook, there is no limit to the depth of subthreads a discussion can have. There is also no “most popular replies”, etc. This is by design. | |||
When you click on a post, you are taken the the conversation view for that post, showing the discussion directly preceding it if you scroll up, and the direct replies to it if you scroll down. | |||
When you reply to other people publicly, your followers see your reply, it appears on your profile under “Posts and replies”, and it appears to the people @mentioned in your reply, but it does NOT appear on the local and federated timelines you are on. | |||
If you make a followers-only reply, it will only appear to your followers and those @mentioned. | |||
If you make a direct reply, it will only appear to those @mentioned. | |||
Unlisted replies are useful when you’re making a thread: your replies to your own posts DO appear on the local and federated timelines. By making the first post of a thread public and the rest unlisted you can avoid spamming the timelines. | |||
Make sure to read the Culture section above! | |||
Migrating to a Different Server | |||
This actually works exactly the same if you’re just migrating to a different account on the same server! | |||
Create a new account where you want to move. | |||
Download your old follows, mutes, blocks, etc: | |||
On your OLD account, go to Preferences → Import and Export → Data Export | |||
Download the all CSV files (Comma Separated Values, you can open these in a spreadsheet). | |||
Click “Request your archive”, wait until it is ready an download it. It will contain all your posts and uploads. | |||
Add you old follows, mutes, blocks, etc to your new account. | |||
On your NEW account, go to Preferences → Import and Export → Data Import | |||
Import follows: | |||
Make sure “Following List” is selected in the dropdown. | |||
Make sure “Merge” is selected below. | |||
Choose the following_accounts.csv file you earlier exported. | |||
Hit upload. | |||
Repeat the above for Blocking List, Muting List, Domain Blocking List, and Bookmarks. | |||
Your account migration is new complete from the POV of the new account. Nothing irreversible has been done. | |||
Migrate your followers. This step will make you old account INACTIVE and move all your followers to follow your new account. The process is not instantaneous, and might take a while, so don’t panic if they’re not there immediately! You can later re-activate your old account, but the followers will be gone. | |||
The following steps need to be done in this order! Nothing bad will happen the other way around, it just won’t do anything. | |||
On your NEW account, go to Preferences → Account → Moving from a different account, and create an alias for your OLD account. This is the “I’m migration from there to here”-signal. | |||
On your OLD account, go to Preferences → Account → Moving to a different account. Enter your NEW account and the password of the OLD account, and hit “Move Followers”. This is the “I’m allowing migration from here to there”-signal. | |||
You’re done. If you now log out and check your old account’s public profile you should see it pointing to the new account, but all your old posts are still accessible in their old addresses. This is good internetting: don’t break old links. | |||
If you get errors, check that you’ve done the steps in right order, and note the “mixed” account and password when starting migration! | |||
IF you want to also migrate your old posts, my suggestion is that you boost selected old posts from your new account. The alternative would be to dig in the archive you downloaded and re-post the things you want, or to copy them manually. | |||
If there’s lots of good stuff on your old account, maybe link to it in your pinned #introduction. You DO have an introduction, right? | |||
Getting an Account | |||
If you know me (Nikodemus) and I know you, then you’re pretty much invited to kamu.social. If not, then this section is for you: | |||
Signup using most apps is buggy, I hear. Sign up from a browser. Use browser to start, pick an app later. | |||
If you have friends who all hang on a server and tell you to go there, go there. | |||
Otherwise make an account on one of the “big” general purpose servers, it doesn’t matter which. If you don’t have friends pulling you to a nice place, it’s better to pick a big server because that way it will be easier for you to find interesting people to follow. Later, when you notice all the interesting people hang on coolthing.town or something, migrate there. No biggie. | |||
Servers managed by “Stux”, who seems to be doing a very good job: mstdn.social, mastodon.coffee, masto.ai (The two last ones are still reasonably small, but based on the track record of mstdn.social I feel confident recommending them.) | |||
I used to recommend making an account on mastodon.online, or mastodon.social. but the moderation quality there take a drastic dip, and they’re not blocking some instances that should IMO be blocked. | |||
MAYBE if you have a single big focus in your life like art, a specific identity, hacktivism, microbrews, or whatever, AND you can find a server dedicated to that, then you can go there without making an account on a big server first. | |||
Check the public feeds of that server and see what they’re like. If you like them, great! | |||
Make sure the server you sign up has a reasonable code of conduct, and a blocklist. Check the “About” page of the server. See eg. About - Mastodon for mastodon.social. If the server you’re looking at doesn’t suspend sites for hate speech and harassment, that’s a huge 🚩. | |||
Really, all the servers listed in Tips and Tricks section should be fine. | |||
The reason it is easier to get started on a big server is because the big servers “know” more people. So searching for a hashtag or a name directly on that server is more likely to find the thing you’re looking for. You can search on many servers you don’t have an account on, esp. the big ones, but that’s more hassle and something you need to remember to do. | |||
IF YOU WANT TO SET UP A SERVER and let other people in, you need to be ready to make sure they’re safe. | |||
Make an account elsewhere first. Spend at least a few days on the fediverse. | |||
Do your homework: you need to read more than this guide. | |||
Set up server rules, aka code of conduct. Without a public set of server rules on the “About” page, other servers are much more likely to block you at the first sign of trouble instead of reaching out. | |||
Set up an initial list of moderated servers. My suggestion is to copy the list from eg. mastodon.art. Some of the addresses will be obfuscated (due to eg. hosting illegal content), so those you gotta skip, but espcially make sure to get the hate speech and harassment ones. | |||
If your people are out of line, it’s not just them that may be blocked, but your entire server. You’re responsible moderating your crowd when the need arises. | |||
Follow the #fediblock topic for reports of bad actor servers. | |||
Happy Tooting! | |||
— Nikodemus | |||
@@ -0,0 +1,220 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the `title` element | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>Mastodon, fin de (première) partie ? (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f7f7f7"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)"> | |||
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<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> | |||
<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> | |||
<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> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://framablog.org/2022/11/12/mastodon-fin-de-premiere-partie/"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all"> | |||
<article> | |||
<header> | |||
<h1>Mastodon, fin de (première) partie ?</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://framablog.org/2022/11/12/mastodon-fin-de-premiere-partie/" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<p>L’afflux récent d’inscriptions sur Mastodon, sous forme de vague inédite de cette ampleur, a largement retenti dans les médias. Beaucoup se sont penchés sur le réseau social fédéré avec une curiosité nouvelle,</p> | |||
<p><span id="more-28895"></span></p> | |||
<p>pour expliquer (parfois de façon maladroite ou fragmentaire, mais c’est habituel) de quoi il retourne aux nombreux « migrants » qui ont réagi vivement à la prise de contrôle de l’oiseau bleu par E. Musk.</p> | |||
<p>L’événement, car c’en est un tant les réseaux sociaux sont devenus un enjeu crucial, a suscité, et c’est tout à fait sain, beaucoup d’interrogations, mais souvent selon une seule perspective : « Vous venez de l’oiseau qui a du plomb dans l’aile, que pouvez-vous trouver et que devez-vous craindre en vous inscrivant sur Mastodon ? ». Et en effet cela répond plus ou moins à une forte demande.</p> | |||
<p>Cependant il nous est apparu intéressant d’adopter le temps d’un article une sorte de contre-champ : « que peuvent espérer ou redouter les mastonautes (ben oui on peut les appeler ainsi) avec de massives nouvelles arrivées ? »</p> | |||
<p>C’est ce que propose d’analyser Hugh Rundle dans le billet que nous avons traduit ci-dessous. Il connaît bien Mastodon, dont il administre une instance depuis plusieurs années. Sa position pourra sembler exagérément pessimiste, car il estime qu’il faudra faire le deuil de Mastodon tel qu’on l’a connu depuis les débuts du Fédiverse. Qui sait ce qu’apporteront les prochains mois à la fédération de serveurs minuscules ou obèses qui par leur interconnexion fédèrent des êtres humains, hors de portée du capitalisme de surveillance ? Comme d’habitude, les commentaires sont ouverts et modérés.</p> | |||
<p>Article original sur le blog de l’auteur : <a href="https://www.hughrundle.net/home-invasion/">Mastodon’s Eternal September begins</a></p> | |||
<p>Licence <a href="https://creativecommons.org/licenses/by/4.0/deed.fr">CC BY 4.0</a></p> | |||
<h2>L’éternel septembre de Mastodon commence…</h2> | |||
<h4><strong>par Hugh Rundle<br> | |||
</strong></h4> | |||
<p><a href="https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0.png"><img class="aligncenter size-full wp-image-28933" src="https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0.png" alt="" srcset="https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0.png 3357w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-300x105.png 300w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-1024x358.png 1024w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-768x269.png 768w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-1536x538.png 1536w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-2048x717.png 2048w" sizes="(max-width: 3357px) 100vw, 3357px"></a></p> | |||
<p> </p> | |||
<blockquote><p>Plus personne n’y va. Il y a trop de monde.</p></blockquote> | |||
<p><a href="https://quoteinvestigator.com/2014/08/29/too-crowded/">Yogi Berra, et alii</a></p> | |||
<p>Cette fois, on dirait bien que c’est arrivé. Alors que les sites d’information commençaient à annoncer qu’Elon Musk avait finalisé l’achat de Twitter, <a href="https://fr.wikipedia.org/wiki/Septembre_%C3%A9ternel">l’éternel septembre</a> du Fediverse – espéré et redouté en proportions égales par sa base d’utilisateurs existante – a commencé.</p> | |||
<p>Nous avons déjà connu des vagues de nouvelles arrivées – la plus récente au début de cette année, lorsque Musk a annoncé son offre d’achat – mais ce qui se passe depuis une semaine est différent, tant par son ampleur que par sa nature. Il est clair qu’une partie non négligeable des utilisateurs de Twitter choisissent de se désinscrire en masse, et beaucoup ont été dirigés vers Mastodon, le logiciel le plus célèbre et le plus peuplé du Fediverse.</p> | |||
<h3>Deux types de fêtes</h3> | |||
<p>À Hobart, à la fin des années 1990, il y avait essentiellement trois boîtes de nuit. Elles étaient toutes plus ou moins louches, plus ou moins bruyantes, mais les gens y allaient parce que c’était là que les autres se trouvaient – pour s’amuser avec leurs amis, pour attirer l’attention, pour affirmer leur statut social, etc. Ça, c’est Twitter.</p> | |||
<p>J’avais un ami qui vivait dans une colocation au coin d’un de ces clubs populaires. Il organisait des fêtes à la maison les week-ends. De petites fêtes, juste entre amis avec quelques amis d’amis. Ça, c’est le Fediverse.</p> | |||
<h3>Déferlement</h3> | |||
<p>Pour ceux d’entre nous qui utilisent Mastodon depuis un certain temps (j’ai lancé mon propre serveur Mastodon il y a 4 ans), cette semaine a été accablante. J’ai pensé à des métaphores pour essayer de comprendre pourquoi j’ai trouvé cela si bouleversant.</p> | |||
<p>C’est censé être ce que nous voulions, non ? Pourtant, ça ressemble à autre chose. Comme lorsque vous êtes assis dans un wagon tranquille, discutant doucement avec quelques amis, et qu’une bande entière de supporters de football monte à la gare de <a href="https://en.wikipedia.org/wiki/Jolimont,_Western_Australia#/map/0">Jolimont</a> après la défaite de leur équipe. Ils n’ont pas l’habitude de prendre le train et ne connaissent pas le protocole. Ils supposent que tout le monde dans le train était au match ou du moins suit le football. Ils se pressent aux portes et se plaignent de la configuration des sièges.</p> | |||
<p>Ce n’est pas entièrement la faute des personnes de Twitter. On leur a appris à se comporter d’une certaine manière. À courir après les <em>likes</em> et les <em>retweets</em>. À se mettre en valeur. À <em>performer</em>. Tout ce genre de choses est une malédiction pour la plupart des personnes qui étaient sur Mastodon il y a une semaine. C’est en partie la raison pour laquelle beaucoup sont venues à Mastodon en premier lieu, il y a quelques années.</p> | |||
<p>Cela signifie qu’il s’est produit un choc culturel toute la semaine, pendant qu’une énorme déferlement de tweetos descendait sur Mastodon par vagues de plus en plus importantes chaque jour. Pour les utilisateurs de Twitter, c’est comme un nouveau monde déroutant, tandis qu’ils font le deuil de leur ancienne vie sur Twitter. Ils se qualifient de « réfugiés », mais pour les habitants de Mastodon, c’est comme si un bus rempli de touristes de Kontiki venait d’arriver, et qu’ils se baladaient en hurlant et en se plaignant de ne pas savoir comment commander le service d’étage. Nous aussi, nous regrettons le monde que nous sommes en train de perdre.</p> | |||
<h3>Viral</h3> | |||
<p>Samedi soir, j’ai publié un billet expliquant deux ou trois choses sur l’histoire de Mastodon concernant la gestion des nœuds toxiques sur le réseau. Puis tout s’est emballé. À 22 heures, j’avais verrouillé mon compte pour exiger que les abonnés soient approuvés et mis en sourdine tout le fil de discussion que j’avais moi-même créé.</p> | |||
<p>Avant novembre 2022, les utilisateurs de Mastodon avaient l’habitude de dire pour blaguer que vous étiez « devenu viral » si vous obteniez plus de 5 repouets ou étoiles sur un post.</p> | |||
<p>Au cours d’une semaine moyenne, une ou deux personnes pouvaient suivre mon compte. Souvent, personne ne le faisait. Et voilà que mon message recevait des centaines d’interactions. Des milliers. J’ai reçu plus de 250 demandes de suivi depuis lors – tellement que je ne peux pas supporter de les regarder, et je n’ai aucun critère pour juger qui accepter ou rejeter. En début de semaine, je me suis rendu compte que certaines personnes avaient <i>crossposté</i> mon billet sur le Mastodon sur Twitter. Quelqu’un d’autre en avait publié une capture d’écran sur Twitter.</p> | |||
<p>Personne n’a pensé à me demander si je le voulais.</p> | |||
<p>Pour les utilisateurs d’applications d’entreprise comme Twitter ou Instagram, cela peut ressembler à de la vantardise. Le but n’est-il pas de « devenir viral » et d’obtenir un grand nombre d’abonnés ? Mais pour moi, c’était autre chose. J’ai eu du mal à comprendre ce que je ressentais, ou à trouver le mot pour le décrire. J’ai finalement réalisé lundi que le mot que je cherchais était “traumatique”.</p> | |||
<p>En octobre, j’avais des contacts réguliers avec une douzaine de personnes par semaine sur Mastodon, sur 4 ou 5 serveurs différents. Soudain, le fait que des centaines de personnes demandent (ou non) à se joindre à ces conversations sans s’être acclimatées aux normes sociales a été ressenti comme une violation, une agression. Je sais que je ne suis pas le seul à avoir ressenti cela.</p> | |||
<p>Le fait que tous les administrateurs de serveurs Mastodon que je connais, y compris moi-même, aient été soudainement confrontés à un déluge de nouveaux inscrits, de demandes d’inscription (s’ils n’avaient pas d’inscription ouverte), puis aux inévitables surcharges des serveurs, n’a probablement pas aidé. Aus.social a cédé sous la pression, se mettant hors ligne pendant plusieurs heures alors que l’administrateur essayait désespérément de reconfigurer les choses et de mettre à niveau le matériel. <a href="https://chinwag.im/">Chinwag</a> a fermé temporairement les inscriptions. Même l’instance phare mastodon.social publiait des messages plusieurs heures après leur envoi, les messages étant créés plus vite qu’ils ne pouvaient être envoyés. J’observais nerveusement le stockage des fichiers sur ausglam.space en me demandant si j’arriverais à la fin du week-end avant que le disque dur ne soit plein, et je commençais à rédiger de nouvelles règles et conditions d’utilisation pour le serveur afin de rendre explicites des choses que « tout le monde savait » implicitement parce que nous pouvions auparavant <em>acculturer</em> les gens un par un.</p> | |||
<p><a href="https://framablog.org/wp-content/uploads/2022/11/Screenshot-2022-11-10-at-09-16-18-Mastodon-Reseau-social-decentralise-1.png"><img loading="lazy" class="aligncenter size-full wp-image-28936" src="https://framablog.org/wp-content/uploads/2022/11/Screenshot-2022-11-10-at-09-16-18-Mastodon-Reseau-social-decentralise-1.png" alt=""></a></p> | |||
<h3>Consentement</h3> | |||
<p>Jusqu’à cette semaine, je n’avais pas vraiment compris – vraiment apprécié – à quel point les systèmes de publication des entreprises orientent le comportement des gens. Twitter encourage une attitude très extractive de la part de tous ceux qu’il touche. Les personnes qui ont republié mes articles sur Mastodon sur Twitter n’ont pas pensé à me demander si j’étais d’accord pour qu’ils le fassent. Les bibliothécaires qui s’interrogent bruyamment sur la manière dont ce “nouvel” environnement de médias sociaux pourrait être systématiquement archivé n’ont demandé à personne s’ils souhaitaient que leurs pouets sur le Fediverse soient capturés et stockés par les institutions gouvernementales. Les universitaires qui réfléchissent avec enthousiasme à la manière de reproduire leurs projets de recherche sur Twitter sur un nouveau corpus de pouets “Mastodon” n’ont pas pensé à se demander si nous voulions être étudiés par eux. Les personnes créant, publiant et demandant des listes publiques de noms d’utilisateurs Mastodon pour certaines catégories de personnes (journalistes, universitaires dans un domaine particulier, activistes climatiques…) ne semblaient pas avoir vérifié si certaines de ces personnes se sentait en sécurité pour figurer sur une liste publique. Ils ne semblent pas avoir pris en compte le fait qu’il existe des noms pour le type de personne qui établit des listes afin que d’autres puissent surveiller leurs communications. Et ce ne sont pas des noms sympathiques.</p> | |||
<p>Les outils, les protocoles et la culture du Fediverse ont été construits par des féministes trans et queer. Ces personnes avaient déjà commencé à se sentir mises à l’écart de leur propre projet quand des personnes comme moi ont commencé à y apparaître il y a quelques années. Ce n’est pas la première fois que les utilisateurs de Fediverse ont dû faire face à un changement d’état significatif et à un sentiment de perte. Néanmoins, les principes de base ont été maintenus jusqu’à présent : la culture et les systèmes techniques ont été délibérément conçus sur des principes de consentement, d’organisation et de sécurité communautaires. Bien qu’il y ait certainement des améliorations à apporter à Mastodon en termes d’outils de modération et de contrôle plus fin des publications, elles sont en général nettement supérieures à l’expérience de Twitter. Il n’est guère surprenant que les personnes qui ont été la cible de trolls fascistes pendant la plus grande partie de leur vie aient mis en place des protections contre une attention non désirée lorsqu’elles ont créé une nouvelle boîte à outils pour médias sociaux. Ce sont ces mêmes outils et paramètres qui donnent beaucoup plus d’autonomie aux utilisateurs qui, selon les experts, rendent Mastodon « trop compliqué ».</p> | |||
<p>Si les personnes qui ont construit le Fediverse cherchaient généralement à protéger les utilisateurs, les plateformes d’entreprise comme Twitter cherchent à contrôler leurs utilisateurs. Twitter revendique la juridiction sur tout le « contenu » de la plateforme. Les plaintes les plus vives à ce sujet proviennent de personnes qui veulent publier des choses horribles et qui sont tristes lorsque la bureaucratie de Twitter finit, parfois, par leur dire qu’elles n’y sont pas autorisées. Le vrai problème de cet arrangement, cependant, est qu’il modifie ce que les gens pensent du consentement et du contrôle de nos propres voix. Les universitaires et les publicitaires qui souhaitent étudier les propos, les graphiques sociaux et les données démographiques des utilisateurs de Twitter n’ont qu’à demander la permission à la société Twitter. Ils peuvent prétendre que, légalement, Twitter a le droit de faire ce qu’il veut de ces données et que, éthiquement, les utilisateurs ont donné leur accord pour que ces données soient utilisées de quelque manière que ce soit lorsqu’ils ont coché la case « J’accepte » des conditions de service. Il s’agit bien sûr d’une idiotie complète (les Condition Générales d’Utilisation sont impénétrables, changent sur un coup de tête, et le déséquilibre des pouvoirs est énorme), mais c’est pratique. Les chercheurs se convainquent donc qu’ils y croient, ou bien ils s’en fichent tout simplement.</p> | |||
<p>Cette attitude a évolué avec le nouvel afflux. On proclame haut et fort que les avertissements de contenu sont de la censure, que les fonctionnalités qui ont été délibérément non mises en œuvre pour des raisons de sécurité de la communauté sont « manquantes » ou « cassées », et que les serveurs gérés par des bénévoles qui contrôlent qui ils autorisent et dans quelles conditions sont « excluants ». Aucune considération n’est donnée à la raison pour laquelle les normes et les possibilités de Mastodon et du Fediverse plus large existent, et si l’acteur contre lequel elles sont conçues pour se protéger pourrait être vous. Les gens de Twitter croient au même fantasme de « place publique » que la personne qu’ils sont censés fuir. Comme les Européens du quatorzième siècle, ils apportent la contagion avec eux lorsqu’ils fuient.</p> | |||
<p><a href="https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1.png"><img loading="lazy" class="aligncenter size-full wp-image-28931" src="https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1.png" alt="" srcset="https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1.png 733w, https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1-300x127.png 300w" sizes="(max-width: 733px) 100vw, 733px"></a></p> | |||
<h3>Anarchisme</h3> | |||
<p>L’ironie de tout cela est que mon « fil de discussion viral » était largement consacré à la nature anarchiste et consensuelle du Fediverse. Beaucoup de nouveaux arrivants ont vu très vite que les administrateurs de leurs serveurs se battaient héroïquement pour que tout fonctionne, et ont donné de l’argent ou se sont inscrits sur un compte Patreon pour s’assurer que les serveurs puissent continuer à fonctionner ou être mis à niveau pour faire face à la charge. Les administrateurs se sont envoyés des messages de soutien privés et publics, partageant des conseils et des sentiments de solidarité. Les anciens partageaient des #FediTips pour aider à orienter les comportements dans une direction positive. Il s’agit, bien sûr, d’entraide.</p> | |||
<p>C’est très excitant de voir autant de personnes expérimenter des outils sociaux en ligne anarchistes. Les personnes intelligentes qui ont conçu ActivityPub et d’autres protocoles et outils Fediverse l’ont fait de manière à échapper à la prédation monopolistique. Le logiciel est universellement libre et open source, mais les protocoles et les normes sont également ouverts et extensibles. Alors que beaucoup seront heureux d’essayer de reproduire ce qu’ils connaissent de Twitter – une sorte de combinaison de LinkedIn et d’Instagram, avec les 4chan et #auspol toujours menaçants – d’autres exploreront de nouvelles façons de communiquer et de collaborer. Nous sommes, après tout, des créatures sociales. Je suis surpris de constater que je suis devenu un contributeur régulier (comme dans « contributeur au code » 😲) à <a href="https://joinbookwyrm.com/">Bookwyrm</a>, un outil de lecture sociale (pensez à GoodReads) construit sur le protocole ActivityPub utilisé par Mastodon. Ce n’est qu’une des nombreuses applications et idées dans le Fediverse élargi. D’autres viendront, qui ne seront plus simplement des « X pour Fedi » mais plutôt de toutes nouvelles idées. Alors qu’il existe déjà des services commerciaux utilisant des systèmes basés sur ActivityPub, une grande partie des nouvelles applications seront probablement construites et exploitées sur la même base d’entraide et de volontariat qui caractérise actuellement la grande majorité du Fediverse.</p> | |||
<h3>Chagrin</h3> | |||
<p>Beaucoup de personnes ont été enthousiasmées par ce qui s’est passé cette semaine. Les nouveaux arrivants ont vu les possibilités du logiciel social fédéré. Les anciens ont vu les possibilités de la masse critique.</p> | |||
<p>Mais il est important que ce ne soit pas la seule chose qu’on retienne du début de novembre 2022. Mastodon et le reste du Fediverse peuvent être très nouveaux pour ceux qui sont arrivés cette semaine, mais certaines personnes œuvrent et jouent dans le Fediverse depuis presque dix ans. Il existait déjà des communautés sur le Fediverse, et elles ont brusquement changé pour toujours.</p> | |||
<p>J’ai été un utilisateur relativement précoce de Twitter, tout comme j’ai été un utilisateur relativement précoce de Mastodon. J’ai rencontré certains de mes meilleurs amis grâce à Twitter, qui a contribué à façonner mes opportunités de carrière. Je comprends donc et je compatis avec ceux qui ont fait le deuil de leur expérience sur Twitter – une vie qu’ils savent désormais terminée. Mais Twitter s’est lentement dégradé depuis des années – j’ai moi-même traversé ce processus de deuil il y a quelques années et, franchement, je ne comprends pas vraiment ce qui est si différent maintenant par rapport à il y a deux semaines.</p> | |||
<p>Il y a un autre groupe, plus restreint, de personnes qui pleurent une expérience des médias sociaux qui a été détruite cette semaine – les personnes qui étaient actives sur Mastodon et plus largement le Fediverse, avant novembre 2022. La boîte de nuit a un nouveau propriétaire impétueux, et la piste de danse s’est vidée. Les gens affluent vers la fête tranquille du coin, cocktails à la main, demandant que l’on monte le volume de la musique, mettent de la boue sur le tapis, et crient par-dessus la conversation tranquille.</p> | |||
<p>Nous avons tous perdu quelque chose cette semaine. Il est normal d’en faire le deuil.</p> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use> | |||
</svg> Suivre</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||
continue | |||
} | |||
// WARNING: Safari does not have/supports `conditionText`. | |||
if (cssRule.conditionText) { | |||
if (cssRule.conditionText !== prefersColorSchemeDark) { | |||
continue | |||
} | |||
} else { | |||
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { | |||
continue | |||
} | |||
} | |||
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) | |||
} | |||
// WARNING: do not try to insert a Rule to a styleSheet you are | |||
// currently iterating on, otherwise the browser will be stuck | |||
// in a infinite loop… | |||
for (const mediaRule of mediaRules) { | |||
styleSheet.insertRule(mediaRule.cssText) | |||
hasDarkRules = true | |||
} | |||
} | |||
if (hasDarkRules) { | |||
loadThemeForm('#theme-selector') | |||
} | |||
}) | |||
</script> | |||
</body> | |||
</html> |
@@ -0,0 +1,53 @@ | |||
title: Mastodon, fin de (première) partie ? | |||
url: https://framablog.org/2022/11/12/mastodon-fin-de-premiere-partie/ | |||
hash_url: 3f045054587e15191052008ca455dc3c | |||
<p>L’afflux récent d’inscriptions sur Mastodon, sous forme de vague inédite de cette ampleur, a largement retenti dans les médias. Beaucoup se sont penchés sur le réseau social fédéré avec une curiosité nouvelle,</p> | |||
<p><span id="more-28895"></span></p> | |||
<p>pour expliquer (parfois de façon maladroite ou fragmentaire, mais c’est habituel) de quoi il retourne aux nombreux « migrants » qui ont réagi vivement à la prise de contrôle de l’oiseau bleu par E. Musk.</p> | |||
<p>L’événement, car c’en est un tant les réseaux sociaux sont devenus un enjeu crucial, a suscité, et c’est tout à fait sain, beaucoup d’interrogations, mais souvent selon une seule perspective : « Vous venez de l’oiseau qui a du plomb dans l’aile, que pouvez-vous trouver et que devez-vous craindre en vous inscrivant sur Mastodon ? ». Et en effet cela répond plus ou moins à une forte demande.</p> | |||
<p>Cependant il nous est apparu intéressant d’adopter le temps d’un article une sorte de contre-champ : « que peuvent espérer ou redouter les mastonautes (ben oui on peut les appeler ainsi) avec de massives nouvelles arrivées ? »</p> | |||
<p>C’est ce que propose d’analyser Hugh Rundle dans le billet que nous avons traduit ci-dessous. Il connaît bien Mastodon, dont il administre une instance depuis plusieurs années. Sa position pourra sembler exagérément pessimiste, car il estime qu’il faudra faire le deuil de Mastodon tel qu’on l’a connu depuis les débuts du Fédiverse. Qui sait ce qu’apporteront les prochains mois à la fédération de serveurs minuscules ou obèses qui par leur interconnexion fédèrent des êtres humains, hors de portée du capitalisme de surveillance ? Comme d’habitude, les commentaires sont ouverts et modérés.</p> | |||
<p>Article original sur le blog de l’auteur : <a href="https://www.hughrundle.net/home-invasion/">Mastodon’s Eternal September begins</a></p> | |||
<p>Licence <a href="https://creativecommons.org/licenses/by/4.0/deed.fr">CC BY 4.0</a></p> | |||
<h2>L’éternel septembre de Mastodon commence…</h2> | |||
<h4><strong>par Hugh Rundle<br> | |||
</strong></h4> | |||
<p><a href="https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0.png"><img class="aligncenter size-full wp-image-28933" src="https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0.png" alt="" srcset="https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0.png 3357w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-300x105.png 300w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-1024x358.png 1024w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-768x269.png 768w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-1536x538.png 1536w, https://framablog.org/wp-content/uploads/2022/11/home_hero_desktop.2632cca0-2048x717.png 2048w" sizes="(max-width: 3357px) 100vw, 3357px"></a></p> | |||
<p> </p> | |||
<blockquote><p>Plus personne n’y va. Il y a trop de monde.</p></blockquote> | |||
<p><a href="https://quoteinvestigator.com/2014/08/29/too-crowded/">Yogi Berra, et alii</a></p> | |||
<p>Cette fois, on dirait bien que c’est arrivé. Alors que les sites d’information commençaient à annoncer qu’Elon Musk avait finalisé l’achat de Twitter, <a href="https://fr.wikipedia.org/wiki/Septembre_%C3%A9ternel">l’éternel septembre</a> du Fediverse – espéré et redouté en proportions égales par sa base d’utilisateurs existante – a commencé.</p> | |||
<p>Nous avons déjà connu des vagues de nouvelles arrivées – la plus récente au début de cette année, lorsque Musk a annoncé son offre d’achat – mais ce qui se passe depuis une semaine est différent, tant par son ampleur que par sa nature. Il est clair qu’une partie non négligeable des utilisateurs de Twitter choisissent de se désinscrire en masse, et beaucoup ont été dirigés vers Mastodon, le logiciel le plus célèbre et le plus peuplé du Fediverse.</p> | |||
<h3>Deux types de fêtes</h3> | |||
<p>À Hobart, à la fin des années 1990, il y avait essentiellement trois boîtes de nuit. Elles étaient toutes plus ou moins louches, plus ou moins bruyantes, mais les gens y allaient parce que c’était là que les autres se trouvaient – pour s’amuser avec leurs amis, pour attirer l’attention, pour affirmer leur statut social, etc. Ça, c’est Twitter.</p> | |||
<p>J’avais un ami qui vivait dans une colocation au coin d’un de ces clubs populaires. Il organisait des fêtes à la maison les week-ends. De petites fêtes, juste entre amis avec quelques amis d’amis. Ça, c’est le Fediverse.</p> | |||
<h3>Déferlement</h3> | |||
<p>Pour ceux d’entre nous qui utilisent Mastodon depuis un certain temps (j’ai lancé mon propre serveur Mastodon il y a 4 ans), cette semaine a été accablante. J’ai pensé à des métaphores pour essayer de comprendre pourquoi j’ai trouvé cela si bouleversant.</p> | |||
<p>C’est censé être ce que nous voulions, non ? Pourtant, ça ressemble à autre chose. Comme lorsque vous êtes assis dans un wagon tranquille, discutant doucement avec quelques amis, et qu’une bande entière de supporters de football monte à la gare de <a href="https://en.wikipedia.org/wiki/Jolimont,_Western_Australia#/map/0">Jolimont</a> après la défaite de leur équipe. Ils n’ont pas l’habitude de prendre le train et ne connaissent pas le protocole. Ils supposent que tout le monde dans le train était au match ou du moins suit le football. Ils se pressent aux portes et se plaignent de la configuration des sièges.</p> | |||
<p>Ce n’est pas entièrement la faute des personnes de Twitter. On leur a appris à se comporter d’une certaine manière. À courir après les <em>likes</em> et les <em>retweets</em>. À se mettre en valeur. À <em>performer</em>. Tout ce genre de choses est une malédiction pour la plupart des personnes qui étaient sur Mastodon il y a une semaine. C’est en partie la raison pour laquelle beaucoup sont venues à Mastodon en premier lieu, il y a quelques années.</p> | |||
<p>Cela signifie qu’il s’est produit un choc culturel toute la semaine, pendant qu’une énorme déferlement de tweetos descendait sur Mastodon par vagues de plus en plus importantes chaque jour. Pour les utilisateurs de Twitter, c’est comme un nouveau monde déroutant, tandis qu’ils font le deuil de leur ancienne vie sur Twitter. Ils se qualifient de « réfugiés », mais pour les habitants de Mastodon, c’est comme si un bus rempli de touristes de Kontiki venait d’arriver, et qu’ils se baladaient en hurlant et en se plaignant de ne pas savoir comment commander le service d’étage. Nous aussi, nous regrettons le monde que nous sommes en train de perdre.</p> | |||
<h3>Viral</h3> | |||
<p>Samedi soir, j’ai publié un billet expliquant deux ou trois choses sur l’histoire de Mastodon concernant la gestion des nœuds toxiques sur le réseau. Puis tout s’est emballé. À 22 heures, j’avais verrouillé mon compte pour exiger que les abonnés soient approuvés et mis en sourdine tout le fil de discussion que j’avais moi-même créé.</p> | |||
<p>Avant novembre 2022, les utilisateurs de Mastodon avaient l’habitude de dire pour blaguer que vous étiez « devenu viral » si vous obteniez plus de 5 repouets ou étoiles sur un post.</p> | |||
<p>Au cours d’une semaine moyenne, une ou deux personnes pouvaient suivre mon compte. Souvent, personne ne le faisait. Et voilà que mon message recevait des centaines d’interactions. Des milliers. J’ai reçu plus de 250 demandes de suivi depuis lors – tellement que je ne peux pas supporter de les regarder, et je n’ai aucun critère pour juger qui accepter ou rejeter. En début de semaine, je me suis rendu compte que certaines personnes avaient <i>crossposté</i> mon billet sur le Mastodon sur Twitter. Quelqu’un d’autre en avait publié une capture d’écran sur Twitter.</p> | |||
<p>Personne n’a pensé à me demander si je le voulais.</p> | |||
<p>Pour les utilisateurs d’applications d’entreprise comme Twitter ou Instagram, cela peut ressembler à de la vantardise. Le but n’est-il pas de « devenir viral » et d’obtenir un grand nombre d’abonnés ? Mais pour moi, c’était autre chose. J’ai eu du mal à comprendre ce que je ressentais, ou à trouver le mot pour le décrire. J’ai finalement réalisé lundi que le mot que je cherchais était “traumatique”.</p> | |||
<p>En octobre, j’avais des contacts réguliers avec une douzaine de personnes par semaine sur Mastodon, sur 4 ou 5 serveurs différents. Soudain, le fait que des centaines de personnes demandent (ou non) à se joindre à ces conversations sans s’être acclimatées aux normes sociales a été ressenti comme une violation, une agression. Je sais que je ne suis pas le seul à avoir ressenti cela.</p> | |||
<p>Le fait que tous les administrateurs de serveurs Mastodon que je connais, y compris moi-même, aient été soudainement confrontés à un déluge de nouveaux inscrits, de demandes d’inscription (s’ils n’avaient pas d’inscription ouverte), puis aux inévitables surcharges des serveurs, n’a probablement pas aidé. Aus.social a cédé sous la pression, se mettant hors ligne pendant plusieurs heures alors que l’administrateur essayait désespérément de reconfigurer les choses et de mettre à niveau le matériel. <a href="https://chinwag.im/">Chinwag</a> a fermé temporairement les inscriptions. Même l’instance phare mastodon.social publiait des messages plusieurs heures après leur envoi, les messages étant créés plus vite qu’ils ne pouvaient être envoyés. J’observais nerveusement le stockage des fichiers sur ausglam.space en me demandant si j’arriverais à la fin du week-end avant que le disque dur ne soit plein, et je commençais à rédiger de nouvelles règles et conditions d’utilisation pour le serveur afin de rendre explicites des choses que « tout le monde savait » implicitement parce que nous pouvions auparavant <em>acculturer</em> les gens un par un.</p> | |||
<p><a href="https://framablog.org/wp-content/uploads/2022/11/Screenshot-2022-11-10-at-09-16-18-Mastodon-Reseau-social-decentralise-1.png"><img loading="lazy" class="aligncenter size-full wp-image-28936" src="https://framablog.org/wp-content/uploads/2022/11/Screenshot-2022-11-10-at-09-16-18-Mastodon-Reseau-social-decentralise-1.png" alt=""></a></p> | |||
<h3>Consentement</h3> | |||
<p>Jusqu’à cette semaine, je n’avais pas vraiment compris – vraiment apprécié – à quel point les systèmes de publication des entreprises orientent le comportement des gens. Twitter encourage une attitude très extractive de la part de tous ceux qu’il touche. Les personnes qui ont republié mes articles sur Mastodon sur Twitter n’ont pas pensé à me demander si j’étais d’accord pour qu’ils le fassent. Les bibliothécaires qui s’interrogent bruyamment sur la manière dont ce “nouvel” environnement de médias sociaux pourrait être systématiquement archivé n’ont demandé à personne s’ils souhaitaient que leurs pouets sur le Fediverse soient capturés et stockés par les institutions gouvernementales. Les universitaires qui réfléchissent avec enthousiasme à la manière de reproduire leurs projets de recherche sur Twitter sur un nouveau corpus de pouets “Mastodon” n’ont pas pensé à se demander si nous voulions être étudiés par eux. Les personnes créant, publiant et demandant des listes publiques de noms d’utilisateurs Mastodon pour certaines catégories de personnes (journalistes, universitaires dans un domaine particulier, activistes climatiques…) ne semblaient pas avoir vérifié si certaines de ces personnes se sentait en sécurité pour figurer sur une liste publique. Ils ne semblent pas avoir pris en compte le fait qu’il existe des noms pour le type de personne qui établit des listes afin que d’autres puissent surveiller leurs communications. Et ce ne sont pas des noms sympathiques.</p> | |||
<p>Les outils, les protocoles et la culture du Fediverse ont été construits par des féministes trans et queer. Ces personnes avaient déjà commencé à se sentir mises à l’écart de leur propre projet quand des personnes comme moi ont commencé à y apparaître il y a quelques années. Ce n’est pas la première fois que les utilisateurs de Fediverse ont dû faire face à un changement d’état significatif et à un sentiment de perte. Néanmoins, les principes de base ont été maintenus jusqu’à présent : la culture et les systèmes techniques ont été délibérément conçus sur des principes de consentement, d’organisation et de sécurité communautaires. Bien qu’il y ait certainement des améliorations à apporter à Mastodon en termes d’outils de modération et de contrôle plus fin des publications, elles sont en général nettement supérieures à l’expérience de Twitter. Il n’est guère surprenant que les personnes qui ont été la cible de trolls fascistes pendant la plus grande partie de leur vie aient mis en place des protections contre une attention non désirée lorsqu’elles ont créé une nouvelle boîte à outils pour médias sociaux. Ce sont ces mêmes outils et paramètres qui donnent beaucoup plus d’autonomie aux utilisateurs qui, selon les experts, rendent Mastodon « trop compliqué ».</p> | |||
<p>Si les personnes qui ont construit le Fediverse cherchaient généralement à protéger les utilisateurs, les plateformes d’entreprise comme Twitter cherchent à contrôler leurs utilisateurs. Twitter revendique la juridiction sur tout le « contenu » de la plateforme. Les plaintes les plus vives à ce sujet proviennent de personnes qui veulent publier des choses horribles et qui sont tristes lorsque la bureaucratie de Twitter finit, parfois, par leur dire qu’elles n’y sont pas autorisées. Le vrai problème de cet arrangement, cependant, est qu’il modifie ce que les gens pensent du consentement et du contrôle de nos propres voix. Les universitaires et les publicitaires qui souhaitent étudier les propos, les graphiques sociaux et les données démographiques des utilisateurs de Twitter n’ont qu’à demander la permission à la société Twitter. Ils peuvent prétendre que, légalement, Twitter a le droit de faire ce qu’il veut de ces données et que, éthiquement, les utilisateurs ont donné leur accord pour que ces données soient utilisées de quelque manière que ce soit lorsqu’ils ont coché la case « J’accepte » des conditions de service. Il s’agit bien sûr d’une idiotie complète (les Condition Générales d’Utilisation sont impénétrables, changent sur un coup de tête, et le déséquilibre des pouvoirs est énorme), mais c’est pratique. Les chercheurs se convainquent donc qu’ils y croient, ou bien ils s’en fichent tout simplement.</p> | |||
<p>Cette attitude a évolué avec le nouvel afflux. On proclame haut et fort que les avertissements de contenu sont de la censure, que les fonctionnalités qui ont été délibérément non mises en œuvre pour des raisons de sécurité de la communauté sont « manquantes » ou « cassées », et que les serveurs gérés par des bénévoles qui contrôlent qui ils autorisent et dans quelles conditions sont « excluants ». Aucune considération n’est donnée à la raison pour laquelle les normes et les possibilités de Mastodon et du Fediverse plus large existent, et si l’acteur contre lequel elles sont conçues pour se protéger pourrait être vous. Les gens de Twitter croient au même fantasme de « place publique » que la personne qu’ils sont censés fuir. Comme les Européens du quatorzième siècle, ils apportent la contagion avec eux lorsqu’ils fuient.</p> | |||
<p><a href="https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1.png"><img loading="lazy" class="aligncenter size-full wp-image-28931" src="https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1.png" alt="" srcset="https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1.png 733w, https://framablog.org/wp-content/uploads/2022/11/pas-a-vendre-1-300x127.png 300w" sizes="(max-width: 733px) 100vw, 733px"></a></p> | |||
<h3>Anarchisme</h3> | |||
<p>L’ironie de tout cela est que mon « fil de discussion viral » était largement consacré à la nature anarchiste et consensuelle du Fediverse. Beaucoup de nouveaux arrivants ont vu très vite que les administrateurs de leurs serveurs se battaient héroïquement pour que tout fonctionne, et ont donné de l’argent ou se sont inscrits sur un compte Patreon pour s’assurer que les serveurs puissent continuer à fonctionner ou être mis à niveau pour faire face à la charge. Les administrateurs se sont envoyés des messages de soutien privés et publics, partageant des conseils et des sentiments de solidarité. Les anciens partageaient des #FediTips pour aider à orienter les comportements dans une direction positive. Il s’agit, bien sûr, d’entraide.</p> | |||
<p>C’est très excitant de voir autant de personnes expérimenter des outils sociaux en ligne anarchistes. Les personnes intelligentes qui ont conçu ActivityPub et d’autres protocoles et outils Fediverse l’ont fait de manière à échapper à la prédation monopolistique. Le logiciel est universellement libre et open source, mais les protocoles et les normes sont également ouverts et extensibles. Alors que beaucoup seront heureux d’essayer de reproduire ce qu’ils connaissent de Twitter – une sorte de combinaison de LinkedIn et d’Instagram, avec les 4chan et #auspol toujours menaçants – d’autres exploreront de nouvelles façons de communiquer et de collaborer. Nous sommes, après tout, des créatures sociales. Je suis surpris de constater que je suis devenu un contributeur régulier (comme dans « contributeur au code » 😲) à <a href="https://joinbookwyrm.com/">Bookwyrm</a>, un outil de lecture sociale (pensez à GoodReads) construit sur le protocole ActivityPub utilisé par Mastodon. Ce n’est qu’une des nombreuses applications et idées dans le Fediverse élargi. D’autres viendront, qui ne seront plus simplement des « X pour Fedi » mais plutôt de toutes nouvelles idées. Alors qu’il existe déjà des services commerciaux utilisant des systèmes basés sur ActivityPub, une grande partie des nouvelles applications seront probablement construites et exploitées sur la même base d’entraide et de volontariat qui caractérise actuellement la grande majorité du Fediverse.</p> | |||
<h3>Chagrin</h3> | |||
<p>Beaucoup de personnes ont été enthousiasmées par ce qui s’est passé cette semaine. Les nouveaux arrivants ont vu les possibilités du logiciel social fédéré. Les anciens ont vu les possibilités de la masse critique.</p> | |||
<p>Mais il est important que ce ne soit pas la seule chose qu’on retienne du début de novembre 2022. Mastodon et le reste du Fediverse peuvent être très nouveaux pour ceux qui sont arrivés cette semaine, mais certaines personnes œuvrent et jouent dans le Fediverse depuis presque dix ans. Il existait déjà des communautés sur le Fediverse, et elles ont brusquement changé pour toujours.</p> | |||
<p>J’ai été un utilisateur relativement précoce de Twitter, tout comme j’ai été un utilisateur relativement précoce de Mastodon. J’ai rencontré certains de mes meilleurs amis grâce à Twitter, qui a contribué à façonner mes opportunités de carrière. Je comprends donc et je compatis avec ceux qui ont fait le deuil de leur expérience sur Twitter – une vie qu’ils savent désormais terminée. Mais Twitter s’est lentement dégradé depuis des années – j’ai moi-même traversé ce processus de deuil il y a quelques années et, franchement, je ne comprends pas vraiment ce qui est si différent maintenant par rapport à il y a deux semaines.</p> | |||
<p>Il y a un autre groupe, plus restreint, de personnes qui pleurent une expérience des médias sociaux qui a été détruite cette semaine – les personnes qui étaient actives sur Mastodon et plus largement le Fediverse, avant novembre 2022. La boîte de nuit a un nouveau propriétaire impétueux, et la piste de danse s’est vidée. Les gens affluent vers la fête tranquille du coin, cocktails à la main, demandant que l’on monte le volume de la musique, mettent de la boue sur le tapis, et crient par-dessus la conversation tranquille.</p> | |||
<p>Nous avons tous perdu quelque chose cette semaine. Il est normal d’en faire le deuil.</p> |
@@ -0,0 +1,403 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the `title` element | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>Everything I know about Mastodon (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f7f7f7"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)"> | |||
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<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> | |||
<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> | |||
<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> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all"> | |||
<article> | |||
<header> | |||
<h1>Everything I know about Mastodon</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<p>Hello there fellow data science person. Have you heard rumours that a lot of folks from our community are moving to use mastodon for social networking? Are you curious, but maybe not quite sure about how to get started? Have you been thinking “twitter is a hellsite and I need to escape” a lot lately?</p> | |||
<p>If yes, this post is for you!</p> | |||
<p>It’s written from the time-tested pedagogical perspective of “the writer who is only one chapter ahead of her audience in the textbook”. I’ve been on mastodon for a few days, but this isn’t my first rodeo over there: I signed up for it very early on several years ago, and tried again a few years after that. This time I’m a lot more enthusiastic about it than the last two, so I’m writing a quick introductory post to help my fellow data science folks test out the waters. I sort of know what I’m doing there but not completely!</p> | |||
<p>If you want a more detailed guide on navigating Mastodon and the fediverse, I recommend <a href="https://fedi.tips/">fedi.tips</a>. There’s a lot of answers to common questions over there, from someone who actually does know what they are doing! Alternatively you can read <a href="https://mastodon.nz/@explorergrace/109272759764872091">this thread</a> which covers a lot of the same things I’m saying here!</p> | |||
<p>Okay, let’s dive in…</p> | |||
<div class="no-row-height column-margin column-container"><div class=""> | |||
<p>A mastodon, I suppose. Image freely available via <a href="https://pixabay.com/photos/woolly-mammoth-animal-prehistoric-2722882/">Pixabay</a></p> | |||
</div></div> | |||
<div class="quarto-figure quarto-figure-center"> | |||
<figure class="figure"> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/mammoth.png" class="img-fluid figure-img"></p> | |||
</figure> | |||
</div> | |||
<section id="what-is-mastodon-what-is-the-fediverse" class="level2"> | |||
<h2 class="anchored" data-anchor-id="what-is-mastodon-what-is-the-fediverse">What is Mastodon? What is the fediverse?</h2> | |||
<p>If you’re entirely new to this, your mental model of mastodon is probably something like “mastodon is an open source twitter clone”. To a first approximation that’s right, but if you want to really feel at home there you’re going to want to refine that mental model in a few ways. Mastodon is very similar to twitter in design, but there are some important differences</p> | |||
<p>First off, mastodon is not a single application: it’s a distributed network of servers that all talk to each other using a shared protocol. If two servers talk to each other they are said to be “federated” with one another, and the network as a whole is referred to as the “fediverse”.</p> | |||
<p>There are many different servers out there that are independently running mastodon: these are called <strong>mastodon instances</strong>. You can sign up for an account at one or more of these servers. The most popular instance is <a href="https://mastodon.social/">mastodon.social</a>, but for reasons I’ll talk about in a moment this might not be the best choice for you! For example, my primary account is on <a href="https://fosstodon.org/">fosstodon.org</a> and my art-only account is on an instance for generative artists, <a href="https://genart.social/">genart.social</a>.</p> | |||
<p>Fortunately, it usually doesn’t matter too much which instance you pick: the servers all communicate with each other so you can follow people on different servers, talk with them, etc, and it’s entirely possible to migrate your account from one server to another (I’ll talk about that later in the post). It’s only when you get into the details that it starts to matter!</p> | |||
</section> | |||
<section id="terminology-toots-and-boosts" class="level2"> | |||
<h2 class="anchored" data-anchor-id="terminology-toots-and-boosts">Terminology: Toots and boosts</h2> | |||
<p>Posts on twitter are called “tweets” and have a 280 character limit. Posts on mastodon are called “toots” and have a 500 character limit. If you’re thinking of making a joke about “haha it’s called tooting” well fine, but there’s a pretty good chance that everyone has already heard it. Very few of us are actually that original :-)</p> | |||
<p>Sharing someone else’s post on twitter is called a “retweet”. The mastodon equivalent is called “boosting”. One deliberate design choice on mastodon is that there is no analog of “quote retweeting”: you can either boost someone else’s toot and you can post your own. You can’t share someone else’s post to your own followers with your commentary added. This is a <a href="https://fedi.tips/how-to-use-mastodon-and-the-fediverse-basic-tips/#WhyCantIQuoteOtherPostsInMastodon">deliberate design choice to prevent people from “dunking” on each other</a>.</p> | |||
</section> | |||
<section id="mastodon-handles-and-tags-look-like-email-addresses" class="level2 page-columns page-full"> | |||
<h2 class="anchored" data-anchor-id="mastodon-handles-and-tags-look-like-email-addresses">Mastodon handles and tags look like email addresses</h2> | |||
<p>On twitter, you simply have a username: I’m <a href="https://twitter.com/djnavarro">djnavarro</a> there, and people would tag me into a conversation by typing <strong><span class="citation" data-cites="djnavarro">@djnavarro</span></strong>.</p> | |||
<p>On mastodon, you have to specify both your username and the server. It’s more like an email address. My primary handle on mastodon is <a href="%5Bdjnavarro@fosstodon.org%5D(https://fosstodon.org/@djnavarro)">djnavarro@fosstodon.org</a> and people can tag me into a conversation by typing <strong><span class="citation" data-cites="djnavarro">@djnavarro</span><span class="citation" data-cites="fosstodon.org">@fosstodon.org</span></strong>.</p> | |||
<p>It looks a little odd when you’re used to twitter, but it gets easier.</p> | |||
<p><img src="./img/arawark-chen-tId6clbHnD4-unsplash.jpg" class="img-fluid"></p> | |||
<div class="no-row-height column-margin column-container"><div class=""> | |||
<p>A handle. Image credit: <a href="https://unsplash.com/photos/tId6clbHnD4">Arawark chen</a>. Freely available via unsplash</p> | |||
</div></div></section> | |||
<section id="which-server-should-i-sign-up-on" class="level2"> | |||
<h2 class="anchored" data-anchor-id="which-server-should-i-sign-up-on">Which server should I sign up on?</h2> | |||
<p>There’s a nicely <a href="https://fediscience.org/server-list.html">server list at fediscience.org</a> that has some commentaries. Here’s a few possibilities you might consider:</p> | |||
<ul> | |||
<li><p><a href="https://mastodon.social">mastodon.social</a>: The largest instance. It’s general interest, so you get a reasonably diverse audience. However it’s also the focal point so any time there’s a wave of migrations from twitter it will probably be the first one to show performance hits.</p></li> | |||
<li><p><a href="https://fosstodon.org">fosstodon.org</a>: An instance with a focus on open source software. There are a lot of tech people on this one, which means you can watch the local timeline scroll by (more on that coming!) and see lots of random techy posts.</p></li> | |||
<li><p><a href="https://fediscience.org">fediscience.org</a>: A science focused instance, including natural and social sciences.</p></li> | |||
<li><p><a href="https://vis.social">vis.social</a>: Lots of cool data visualisation folks here.</p></li> | |||
<li><p><a href="https://tech.lgbt">tech.lgbt</a>: An instance for folks who work in tech, science, academia, etc who are LGBTIQ or allies.</p></li> | |||
</ul> | |||
<p>For any server, you should look carefully at the server rules that will be posted on the “About” page. Each server has different policies that will affect moderation. Don’t sign up for vis.social if you want to post about NFTs (I’ll talk about NFTs later actually), and don’t join fosstodon.org if you want to post in languages other than English. Don’t join any of these servers if you want to post anti-trans content.</p> | |||
<p>Take a little time to look around but don’t worry about the choice too much. You can move your account across servers without too much difficulty if you need to, and I’ll show you how later in the post.</p> | |||
</section> | |||
<section id="can-you-tell-me-about-the-web-interface" class="level2"> | |||
<h2 class="anchored" data-anchor-id="can-you-tell-me-about-the-web-interface">Can you tell me about the web interface?</h2> | |||
<p>Okay so you’ve decided on a server, signed up for an account, and are ready to get started. Let’s take a look at the interface!</p> | |||
<p>For the purposes of this post I’ll assume you’re looking to get started by using the web interface. There are, unsurprisingly, apps you can download onto your phone (e.g., I’m using the standard mastodon app on iOS), but I’m trying not to complicate things in this post so let’s assume you’re using your laptop and are browsing through the web interface!</p> | |||
<p>My main account is <a href="https://fosstodon.org/@djnavarro">djnavarro@fosstodon.org</a>. In my browser I’m logged in already, so when I navigate to <a href="https://fosstodon.org">fosstodon.org</a> I’m automatically shown the logged in view. There are two versions you can choose between, the “standard view” and the “advanced view”.</p> | |||
<p>The “standard view” interface looks pretty similar to what you’d expect from twitter. On the left you can write posts, in the middle there’s a column where your feed is shown (I’ve edited these screenshots to remove the actual posts, just so we can focus on interface), and on the right sidebar there’s a menu with various options you can click on:</p> | |||
<p><img src="./img/standard_view.png" class="img-fluid"></p> | |||
<p>In a lot of cases this view will work well for you, but if you want to track hashtags – more on that later because hashtags are important! – you might find it useful to switch to the “advanced view”. To switch, click on the “Preferences” option on the right hand side, which brings up a preferences screen that looks like this:</p> | |||
<p><img src="./img/appearance_settings.png" class="img-fluid"></p> | |||
<p>Click on the “Enable advanced web interface” option, like I’ve done here, and click save changes. When you then go back to mastodon, the interface will have changed to one that looks very similar to the Tweetdeck interface that a lot of folks on Twitter use:</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/advanced_view.png" class="img-fluid"></p> | |||
<p>There are more columns. As before, the left column shows an area where you can compose posts, and on the right column a menu with options is shown. Posts will appear in the “Home” column. Mentions, favourites (similar to Twitter “likes”), and boosts (similar to Twitter retweets), will be shown in the “Notifications” column.</p> | |||
</section> | |||
<section id="how-do-i-make-a-post" class="level2 page-columns page-full"> | |||
<h2 class="anchored" data-anchor-id="how-do-i-make-a-post">How do I make a post?</h2> | |||
<p>Writing a post on mastodon is similar to how you would write a post on twitter. The compose window looks like this:</p> | |||
<p>You type the text you want into the box, adding hashtags, and then click the “Toot!” button (it may look different on your instance – I’ve seen the same button labelled “Post” sometimes). As you type, you’ll see the character count in the bottom right corner change to let you know how many characters you have left: you’re allowed 500 characters for a post on mastodon.</p> | |||
<p>The nuances are important though. Those other buttons on the bottom left… those are all useful features. From left to right:</p> | |||
<ul> | |||
<li><p>The paperclip button: clicking this will let you attach an image. When you do, there will be an option to edit the image and (especially important!) to add alt text for accessibility purposes. Mastodon has a stronger norm about alt text than twitter: <em>always</em> add alt text. I have a section on alt text later in this post.</p></li> | |||
<li><p>The barchart button: this will let you add a poll. Polls on mastodon work similarly to twitter, but are a bit more flexible. You can add more options and let users select multiple options.</p></li> | |||
<li><p>The world button: this will let you set the visibility for the post. If you click on it you will see four options: “public” means everyone can view it, “unlisted” means everyone can view it but it doesn’t get indexed by discovery features (very handy in replies and threads where you don’t want everyone to be automatically shown your comment), “followers only” means only your followers can see it, and “mentioned people only” means only the people mentioned can see it. This last one is effectively how direct messages work on mastodon, which is important to note because posts aren’t end-to-end encrypted. Do not treat your mastodon direct messages as private (see later).</p></li> | |||
<li><p>The “CW” button: This is used to attach content warnings to your post. Use this button! It’s important. I cannot stress this enough: the content warning button is right there, and it is considered extremely poor form in the fediverse to force your followers to look at content they might not want to see. There is a whole section on this later, but remember that mastodon is not twitter – people will mute you or choose not to share your post if you don’t use content warnings appropriately. In fact, if you consistently boost posts that don’t have content warnings when they should, people may unfollow you also.</p></li> | |||
<li><p>The “EN” button: This is used to specify the language in which the post is written. Clicking on it will show you a dropdown list you can use to select the language.</p></li> | |||
</ul> | |||
<p>Try to use these features: it makes a difference!</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/kristina-tripkovic-8Zs5H6CnYJo-unsplash.jpg" class="img-fluid"></p> | |||
</section> | |||
<section id="tracking-hashtags" class="level2"> | |||
<h2 class="anchored" data-anchor-id="tracking-hashtags">Tracking hashtags</h2> | |||
<p>Speaking of which, perhaps you want to monitor a hashtag. Maybe you even want to follow the hashtag, so that every post that has that hashtag will appear in your mastodon feed. Good news, you can!</p> | |||
<p>From what I can tell, this is something where your options might be a little different on each server. For instance, on mastodon.social you can follow a hashtag directly in the standard view: when you search for a hashtag there will be a little “follow” icon that appears that you can click on (see <a href="https://fedi.tips/how-to-use-mastodon-and-the-fediverse-advanced-tips/#FollowingHashtags">this comment on fedi.tips</a>). When you do that, posts with that hashtag will appear in your feed. However, not every server implements this: fosstodon.org doesn’t do that right now.</p> | |||
<p>So let’s go with a method that seems to work everywhere I’ve looked. This <a href="https://mastodon.nz/@thoughtfulnz/109278289508807509">post by David Hood</a> summarises it in a single image, but I’ll go through it more slowly here…</p> | |||
<p>First off, you’ll need to be in “advanced view” to do this. That’s the one with lots of columns that I showed earlier in the post. You can customise this view by adding columns that correspond to the hashtags you want to follow. For example, let’s say I want to follow the <strong>#rstats</strong> hashtag. The first thing I’d do is type <strong>#rstats</strong> into the search bar (in the top left corner). The results will be shown directly below the search bar, like this:</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/searching_hashtag.png" class="img-fluid"></p> | |||
<p>These are clickable links. When I click on the <strong>#rstats</strong> hashtag in the results, a new column appears… containing a chronological feed that consists of posts tagged with <strong>#rstats</strong>:</p> | |||
<p><img src="./img/rstats_column.png" class="img-fluid"></p> | |||
<p>Again, in real life this won’t be empty: you’ll actually see the posts! You are now tracking <strong>#rstats</strong> on mastodon, albeit temporarily.</p> | |||
<p>Suppose you want to make sure the column sticks around every time you open mastodon. We can “pin” the column in place. To do that, I click on the little “settings” icon at the top right of the <strong>#rstats</strong> column. It’s the one on the far right here:</p> | |||
<p>When you do that, you will see a small menu that gives you the option to pin! Easy.</p> | |||
<p>We can make our <strong>#rstats</strong> column more useful. For example, there are several hashtags I want to bundle together when following R content: <strong>#TidyTuesday</strong>, <strong>#TidyModels</strong>, and <strong>#ggplot2</strong>. I don’t want a separate column for each one, I want to group them into a single feed. Click on that little settings button again. Now you’ll see a richer menu:</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/add_hashtags.png" class="img-fluid"></p> | |||
<p>One of the options there is “include additional tags”. When I click on that, I can type in the other hashtags to track:</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/multitag.png" class="img-fluid"> And now we are done! I have a feed that tracks R related content on mastodon.</p> | |||
</section> | |||
<section id="why-are-content-warnings-everywhere" class="level2"> | |||
<h2 class="anchored" data-anchor-id="why-are-content-warnings-everywhere">Why are content warnings everywhere?</h2> | |||
<p>One huge – and hugely important – difference between twitter and mastodon is that mastodon has a system that allows users to mask their posts behind content warnings. Now… if you’re coming from twitter you might be thinking “oh that doesn’t apply to me I don’t post offensive content”.</p> | |||
<p>If that’s what you’re thinking, allow me to disabuse you of that notion quickly. Content warnings are not about “hiding offensive content”, they are about being kind to your audience. This <a href="https://robot.rodeo/@mike/109270985467672999">thread by Mike McHargue</a> is a very good summary. The whole thread is good, but I’ll quote the first part here:</p> | |||
<blockquote class="blockquote"> | |||
<p>If you’re part of the <strong>#twittermigration</strong>, it may seem strange the people use CWs so much here. But, CWs are really helpful. So much of our world is overwhelming, and feed presentation can bombard our nervous systems with triggers. CWs give people time and space to engage with that they have the resources to engage with. It gives them agency. I follow news and politics AND it’s helpful for my PTSD to have the chance to take a deep breath <em>before</em> I see a post.</p> | |||
</blockquote> | |||
<p>If you’re posting about politics, that should be hidden behind a content warning. If you’re posting about sexual assault, definitely use a content warning. If you’re posting about trans rights, again put it behind a content warning.</p> | |||
<p>You should use the content warning even – or perhaps especially – when you think your post is this is an important social justice issue that other people <em>need</em> to see, because there is a really good chance that people whose lives are affected by it will be part of the audience… and yes, some of us have PTSD.</p> | |||
<div class="callout-warning callout callout-style-default callout-captioned"> | |||
<div id="callout-1" class="callout-1-contents callout-collapse collapse"> | |||
<div class="callout-body-container callout-body"> | |||
<p>I’ll give examples relevant to my own experience.</p> | |||
<p>I get really, really angry when people post about trans rights without a content warning. Same with sexual assault. Why? Well, because I am transgender and I am frightened about the general direction the world is headed for people like me. I am not an activist and I don’t have the kind of resilience needed to constantly hear all the worst stories in the world about attacks against people like me. It’s one of the big reasons I left twitter: twitter algorithms prioritise engagement, and I cannot help but engage with this content because I am afraid. My experience on twitter is one of emotional abuse: twitter keeps showing me my worst fears and I click on them because the threats are real. I don’t appreciate it when my friends try to support me by <em>forcing me to see even more of that content</em>. For that reason, if you want to be supportive of people like me, use a content warning when posting about trans rights.</p> | |||
<p>An even more extreme example relevant to my personal experience is sexual assault. I am a rape survivor. Every time there is a highly visible discussion about sexual assault (e.g., the Brett Kavanaugh hearings in the US, the Brittney Higgins discussions in Australia), I would get bombarded with content about rape. Over and over again. Sometimes it would trigger panic attacks and rape flashbacks.</p> | |||
<p>When you post those things without providing me a content warning to help me make an informed choice, what you’re really telling me is that you simply don’t care if you’re forcing me to relive the experience of being raped.</p> | |||
</div> | |||
</div> | |||
</div> | |||
<p>So if you’re thinking about posting about these topics, the question of “should I attach a content warning?” isn’t a matter of “is this important?” it’s a matter of “could I be causing distress to people?” When you answer that question, don’t think about the typical case, think about that 1% of people who might be most severely affected and the reasons why.</p> | |||
<p>Please, please, please… take content warnings seriously. Even if you’re “just posting about politics” or “venting some feelings”. It’s a kindness and courtesy to your audience.</p> | |||
<p>Mastodon isn’t twitter.</p> | |||
</section> | |||
<section id="how-do-i-add-a-content-warning" class="level2 page-columns page-full"> | |||
<h2 class="anchored" data-anchor-id="how-do-i-add-a-content-warning">How do I add a content warning?</h2> | |||
<p>Hopefully the previous section has convinced you that you should use content warnings and err on the side of caution when deciding when to use them. Your next question is probably: how do I add a content warning?</p> | |||
<p>Luckily, it is super easy. It’s so simple that it fits into a single toot, like <a href="https://infosec.exchange/@Em0nM4stodon/109282181601490676">this post by Em on infosec.exchange</a>. Here’s how.</p> | |||
<ol type="1"> | |||
<li><p>In the composer box, click on the little “CW” button. This will reveal an extra title field that says “Write your warning here”.</p> | |||
</li> | |||
<li><p>Write a brief but informative message in that title field. This could be something very serious like “Sexual assault discussion”, but it could also be something mild like “Spoiler alert: The Good Wife season 5” or something like “Photo with direct eye contact”. Even things like “US politics” or “Australian politics” can be helpful.</p></li> | |||
<li><p>Write your post. (Okay you could write the post first and the content warning text after. Whatever)</p></li> | |||
<li><p>When you post it, other users will only be shown the title field at first. If they decide they want to read, they can click on the post, and then the full text will be revealed.</p></li> | |||
<li><p>Profit! Everybody is happy.</p></li> | |||
</ol> | |||
<p>Content warnings are good for everybody.</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/fleur-Ahs_MHU8y1s-unsplash.jpg" class="img-fluid"></p> | |||
<div class="no-row-height column-margin column-container"><div class=""> | |||
<p>A warning. Image credit: <a href="https://unsplash.com/photos/Ahs_MHU8y1s">Fleur</a>. Freely available via unsplash</p> | |||
</div></div></section> | |||
<section id="how-can-i-make-threads" class="level2"> | |||
<h2 class="anchored" data-anchor-id="how-can-i-make-threads">How can I make threads?</h2> | |||
<p>Making threads on mastodon is pretty similar to twitter. Just post each new toot as a reply to the previous one. Problem solved!</p> | |||
<p>There is one subtlety to be aware of though, which is described in this <a href="https://scicomm.xyz/@quokka/109274732847484553">thread by Quokka on scicomm.xyz</a>. Remember earlier I mentioned that you can set the visibility of each post? The polite way to do a thread is set the <em>first</em> post to “public”, and then all the later ones to <em>unlisted</em>. The reason for that is that all public posts (including replies) will show up in various timelines. Usually, that’s not what you want. What you want is something where the first post reads “I have this important and exciting thing to to talk about: A thread…”, and only that first post shows up on people’s timelines. Then if they’re interested they can click on the first post and the rest of the thread will be revealed. That’s why people on mastodon usually set the first post to public and the later ones to unlisted.</p> | |||
</section> | |||
<section id="what-are-the-local-and-federated-timelines" class="level2"> | |||
<h2 class="anchored" data-anchor-id="what-are-the-local-and-federated-timelines">What are the local and federated timelines?</h2> | |||
<p>At some point on mastodon you will find yourself discovering the local timeline and the federated timeline. There are links to these on the right hand side of the interface. The local timeline is every public-visibility post on your server, shown chronologically. This timeline has a very different feel on different servers. On <a href="https://fosstodon.org/">fosstodon.org</a> my local timeline has a lot of people posting about tech; on <a href="https://genart.social/">genart.social</a> it shows a lot of generative art.</p> | |||
<p>The federated timeline is slightly different: it shows all public posts from all users who are “known” to your instance. That is, it includes every user on your instance, but it also includes everyone that users on your instance follow – even if those users are on other servers. It’s not the same thing as “every user on mastodon” though. People on <a href="https://genart.social/">genart.social</a> tend to follow other artists, so there is still a local “flavour” to the posts from outside the instance: they reflect people and topics that the users on your instance are interested in.</p> | |||
<p>These timelines are useful for discovery purposes, and they’re also a reason to think carefully about the instance you’re on. It’s easier to find tech content on a tech-focused server!</p> | |||
</section> | |||
<section id="how-do-i-move-my-account-to-a-new-server" class="level2 page-columns page-full"> | |||
<h2 class="anchored" data-anchor-id="how-do-i-move-my-account-to-a-new-server">How do I move my account to a new server?</h2> | |||
<p>So that brings me naturally to a question… what if you realise you’ve made a mistake and you want to change instances? This happens to many of us at one point or another. For instance, I initially signed up as <strong>djnavarro@mastodon.social</strong>. That wasn’t ideal for me: the server is a bit too big, it was being very slow at the time, and the content isn’t focused on things I wanted to see. So I decided I wanted to move, and become <strong>djnavarro@fosstodon.org</strong>.</p> | |||
<p>A very nice feature of mastodon is that you can “migrate” your account, so that when you switch accounts all your followers will come along for the ride! Here’s how you do it:</p> | |||
<p><strong>Step 1: Prepare the way</strong></p> | |||
<ol type="1"> | |||
<li>It’s probably a good idea to post from your old account that you’re about to initiate a move. That way people will not be surprised when they find themselves following a new account (I didn’t do this… I should have. Oops!)</li> | |||
<li>Set up your account, with the avatar, bio, etc on the new account using the same (or similar) images and descriptions on the old account: anyone who clicks through on the new account will see that it’s you!</li> | |||
</ol> | |||
<p><strong>Step 2: Export your follows from the old account</strong></p> | |||
<p>When you migrate, it takes your followers across automatically. It doesn’t automatically make your new account follow everyone you were following on the old account. Luckily you don’t have to manually re-follow everyone. Instead, you export a csv file with the list of everyone you’re following at the old account, and later on you can import it as a follow list on the new one. Here’s how we export the csv at the old account:</p> | |||
<ol type="1"> | |||
<li>Click on the “preferences” option</li> | |||
<li>Within preferences, select “import and export”</li> | |||
<li>On the data export page, you’ll see a list of possible csv files you can download. Download the ones you want, especially the “follows” csv.</li> | |||
</ol> | |||
<p><strong>Step 3: Set up alias on the new account</strong></p> | |||
<p>Mastodon requires both accounts to authorise the move in some fashion, to prevent anyone from trying to steal other people’s accounts. First, your new account needs to signal that yes, it does wish to be an “alias” for your old account. From the new account – <strong>djnavarro@fosstodon.org</strong> for me – we need to set that up:</p> | |||
<ol type="1"> | |||
<li>Click on the “preferences” options</li> | |||
<li>Within preferences, select “account”</li> | |||
<li>On the account settings page, scroll down to the bottom to the section called “moving from a different account” and click on the link “create an account alias”</li> | |||
<li>On the account aliases page, specify the handle of your old account – e.g., <strong>djnavarro@mastodon.social</strong> in my case – and click “create alias”</li> | |||
</ol> | |||
<p>You’re done: the alias is set up. You may have to wait a while for this to propagate to the old account. When I moved I had to wait overnight because mastodon.social was running very slowly due to the massive spike of new users from twitter. Hopefully it won’t be that long for most people now.</p> | |||
<p><strong>Step 4: Initiate the move from the old account</strong></p> | |||
<p>With the new account now signalling that it is ready to be an alias for the old one, we can authorise the move from the old account. On the old account (i.e., <strong>djnavarro@mastodon.social</strong> for me) do the following:</p> | |||
<ol type="1"> | |||
<li>Click on the “preferences” options</li> | |||
<li>Within preferences, select “account”</li> | |||
<li>On the account settings page, scroll down to the bottom to the section called “moving to a different account” and click on the link “configure it here”</li> | |||
<li>On the moving accounts page, type the handle of the new account – in my case <strong>djnavarro@fosstodon.org</strong> – and enter the password for your old account to confirm. Click “move followers”.</li> | |||
</ol> | |||
<p>This will initiate the move. All your followers at the old account will automatically unfollow the old account and then follow the new one. It’ll take a little while and it might happen in bursts.</p> | |||
<p><strong>Step 5: Import your follows at the new account</strong></p> | |||
<p>The last step (optionally) is to have your new account re-follow everyone from that you were following at the old account. We can do that using the csv that you downloaded in step 2. So, again from your new account:</p> | |||
<ol type="1"> | |||
<li>Click on the “preferences” options</li> | |||
<li>Within preferences, select “import and export”</li> | |||
<li>On the menu on the left, click the “import” submenu</li> | |||
<li>On the import screen, select the import type (e.g., “following list”), click on “browse” to select the csv file you exported earlier, and then click “upload”.</li> | |||
</ol> | |||
<p>Your new account will now automatically follow all the accounts your old account followed.</p> | |||
<p>With any luck, you are now successfully moved into your new account!</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/michal-balog-66NaCdBrkCs-unsplash.jpg" class="img-fluid"></p> | |||
<div class="no-row-height column-margin column-container"><div class=""> | |||
<p>Moving. Image credit: <a href="https://unsplash.com/photos/66NaCdBrkCs">Michal Balog</a>. Freely available via unsplash</p> | |||
</div></div></section> | |||
<section id="etiquette-on-alt-text" class="level2"> | |||
<h2 class="anchored" data-anchor-id="etiquette-on-alt-text">Etiquette on alt-text?</h2> | |||
<p>On twitter, you’ve probably found that there’s some pressure and expectation to supply alt-text for your images. The norm is <a href="https://mastodon.art/@Curator/109279035107793247">much stronger on mastodon</a>: people will expect that images have alt-text, and that the alt-text be informative. Here’s a walkthrough. First I might start writing a post, and after clicking on the paperclip icon to attach an image, I have a screen that looks like this:</p> | |||
<p>As usual I’d write the content of my post in the composer box, but I would also click on the “edit” link in the top-right hand corner of my image. That brings up the image editing screen that looks like this:</p> | |||
<p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/image_editing.png" class="img-fluid"></p> | |||
<p>There are two things I usually do with this. On the right hand side I can drag and drop the focus circle around to help improve the image preview that gets shown to users. More importantly, on the left hand side I can write my alt-text. For some images it’s easy to come up with a good description, for others it is hard. For something like this one I’d usually aim to write a short paragraph that captures this information:</p> | |||
<ul> | |||
<li>this is generative art made with R</li> | |||
<li>the title of the piece is “Gods of Salt, Stone, and Storm”</li> | |||
<li>the palette is blue/green with a hint of white against a very dark background</li> | |||
<li>the image is comprised of swirling patterns throughout</li> | |||
<li>the overall impression is something akin to dark storm clouds overhead or maybe unsettled seas</li> | |||
</ul> | |||
<p>It’s not a perfect description, but it does capture what I think is important about the artwork.</p> | |||
</section> | |||
<section id="etiquette-on-nfts" class="level2"> | |||
<h2 class="anchored" data-anchor-id="etiquette-on-nfts">Etiquette on NFTs?</h2> | |||
<p>A lot of artists on twitter, especially generative artists, like to post NFTs. It’s understandable: for generative artists, it’s the one reliable income stream they have for their art. However, you need to be very, very careful. NFTs are not well liked on the fediverse, and a lot of servers have outright bans on any form of NFT posting. For instance, you cannot post about NFTs at all on <a href="https://vis.social">vis.social</a> or <a href="https://mastodon.art">mastodon.art</a>. It is written into the server rules, so you should not sign up on those servers if that’s something you’re interested in. However, even on servers that do permit NFTs, there is often a strong suggestion that you should be polite and respect the preferences that folks outside the instance will have. For example, the generative art instance I’m on <a href="https://genart.social">genart.social</a> does not impose an outright ban on NFTs but it is discouraged, and in the rare instance that you do post NFT content, it must be behind a content warning.</p> | |||
<p>Personally I’ve stopped even trying to make money from my art, so it doesn’t affect me: I’ve given up. I’m only bothering to mention it here because I don’t want to see generative art folks run afoul of the local norms.</p> | |||
</section> | |||
<section id="etiquette-on-bots-and-automated-accounts" class="level2"> | |||
<h2 class="anchored" data-anchor-id="etiquette-on-bots-and-automated-accounts">Etiquette on bots and automated accounts?</h2> | |||
<p>Bots are allowed on mastodon, but you should check the local server rules and you should make certain that the bot is marked as an automated account in the account preferences.</p> | |||
</section> | |||
<section id="direct-messages-and-privacy" class="level2"> | |||
<h2 class="anchored" data-anchor-id="direct-messages-and-privacy">Direct messages and privacy</h2> | |||
<p>As a final point, a note on direct messages. Direct messages on mastodon are just regular posts whose visibility is set to include only those people tagged in that post. That’s all. This is important to recognise because – at present – posts are not transmitted with end-to-end encryption: they are “private” only in the sense that a postcard is private or an unencrypted email is private. They won’t be broadcast to anyone else, but they aren’t secured while in transit.</p> | |||
<p>You should never send any sensitive information via mastodon.</p> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use> | |||
</svg> Suivre</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||