A place to cache linked articles (think custom and personal wayback machine)
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

index.html 44KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Everything I know about Mastodon (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <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>
  31. <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>
  32. <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>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <meta name="robots" content="noindex, nofollow">
  53. <meta content="origin-when-cross-origin" name="referrer">
  54. <!-- Canonical URL for SEO purposes -->
  55. <link rel="canonical" href="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/">
  56. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  57. <article>
  58. <header>
  59. <h1>Everything I know about Mastodon</h1>
  60. </header>
  61. <nav>
  62. <p class="center">
  63. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  64. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  65. </svg> Accueil</a> •
  66. <a href="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/" title="Lien vers le contenu original">Source originale</a>
  67. </p>
  68. </nav>
  69. <hr>
  70. <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>
  71. <p>If yes, this post is for you!</p>
  72. <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>
  73. <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>
  74. <p>Okay, let’s dive in…</p>
  75. <div class="no-row-height column-margin column-container"><div class="">
  76. <p>A mastodon, I suppose. Image freely available via <a href="https://pixabay.com/photos/woolly-mammoth-animal-prehistoric-2722882/">Pixabay</a></p>
  77. </div></div>
  78. <div class="quarto-figure quarto-figure-center">
  79. <figure class="figure">
  80. <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>
  81. </figure>
  82. </div>
  83. <section id="what-is-mastodon-what-is-the-fediverse" class="level2">
  84. <h2 class="anchored" data-anchor-id="what-is-mastodon-what-is-the-fediverse">What is Mastodon? What is the fediverse?</h2>
  85. <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>
  86. <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>
  87. <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>
  88. <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>
  89. </section>
  90. <section id="terminology-toots-and-boosts" class="level2">
  91. <h2 class="anchored" data-anchor-id="terminology-toots-and-boosts">Terminology: Toots and boosts</h2>
  92. <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>
  93. <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>
  94. </section>
  95. <section id="mastodon-handles-and-tags-look-like-email-addresses" class="level2 page-columns page-full">
  96. <h2 class="anchored" data-anchor-id="mastodon-handles-and-tags-look-like-email-addresses">Mastodon handles and tags look like email addresses</h2>
  97. <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>
  98. <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>
  99. <p>It looks a little odd when you’re used to twitter, but it gets easier.</p>
  100. <p><img src="./img/arawark-chen-tId6clbHnD4-unsplash.jpg" class="img-fluid"></p>
  101. <div class="no-row-height column-margin column-container"><div class="">
  102. <p>A handle. Image credit: <a href="https://unsplash.com/photos/tId6clbHnD4">Arawark chen</a>. Freely available via unsplash</p>
  103. </div></div></section>
  104. <section id="which-server-should-i-sign-up-on" class="level2">
  105. <h2 class="anchored" data-anchor-id="which-server-should-i-sign-up-on">Which server should I sign up on?</h2>
  106. <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>
  107. <ul>
  108. <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>
  109. <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>
  110. <li><p><a href="https://fediscience.org">fediscience.org</a>: A science focused instance, including natural and social sciences.</p></li>
  111. <li><p><a href="https://vis.social">vis.social</a>: Lots of cool data visualisation folks here.</p></li>
  112. <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>
  113. </ul>
  114. <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>
  115. <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>
  116. </section>
  117. <section id="can-you-tell-me-about-the-web-interface" class="level2">
  118. <h2 class="anchored" data-anchor-id="can-you-tell-me-about-the-web-interface">Can you tell me about the web interface?</h2>
  119. <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>
  120. <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>
  121. <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>
  122. <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>
  123. <p><img src="./img/standard_view.png" class="img-fluid"></p>
  124. <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>
  125. <p><img src="./img/appearance_settings.png" class="img-fluid"></p>
  126. <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>
  127. <p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/advanced_view.png" class="img-fluid"></p>
  128. <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>
  129. </section>
  130. <section id="how-do-i-make-a-post" class="level2 page-columns page-full">
  131. <h2 class="anchored" data-anchor-id="how-do-i-make-a-post">How do I make a post?</h2>
  132. <p>Writing a post on mastodon is similar to how you would write a post on twitter. The compose window looks like this:</p>
  133. <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>
  134. <p>The nuances are important though. Those other buttons on the bottom left… those are all useful features. From left to right:</p>
  135. <ul>
  136. <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>
  137. <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>
  138. <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>
  139. <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>
  140. <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>
  141. </ul>
  142. <p>Try to use these features: it makes a difference!</p>
  143. <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>
  144. </section>
  145. <section id="tracking-hashtags" class="level2">
  146. <h2 class="anchored" data-anchor-id="tracking-hashtags">Tracking hashtags</h2>
  147. <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>
  148. <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>
  149. <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>
  150. <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>
  151. <p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/searching_hashtag.png" class="img-fluid"></p>
  152. <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>
  153. <p><img src="./img/rstats_column.png" class="img-fluid"></p>
  154. <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>
  155. <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>
  156. <p>When you do that, you will see a small menu that gives you the option to pin! Easy.</p>
  157. <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>
  158. <p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/add_hashtags.png" class="img-fluid"></p>
  159. <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>
  160. <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>
  161. </section>
  162. <section id="why-are-content-warnings-everywhere" class="level2">
  163. <h2 class="anchored" data-anchor-id="why-are-content-warnings-everywhere">Why are content warnings everywhere?</h2>
  164. <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>
  165. <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>
  166. <blockquote class="blockquote">
  167. <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>
  168. </blockquote>
  169. <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>
  170. <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>
  171. <div class="callout-warning callout callout-style-default callout-captioned">
  172. <div id="callout-1" class="callout-1-contents callout-collapse collapse">
  173. <div class="callout-body-container callout-body">
  174. <p>I’ll give examples relevant to my own experience.</p>
  175. <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>
  176. <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>
  177. <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>
  178. </div>
  179. </div>
  180. </div>
  181. <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>
  182. <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>
  183. <p>Mastodon isn’t twitter.</p>
  184. </section>
  185. <section id="how-do-i-add-a-content-warning" class="level2 page-columns page-full">
  186. <h2 class="anchored" data-anchor-id="how-do-i-add-a-content-warning">How do I add a content warning?</h2>
  187. <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>
  188. <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>
  189. <ol type="1">
  190. <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>
  191. </li>
  192. <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>
  193. <li><p>Write your post. (Okay you could write the post first and the content warning text after. Whatever)</p></li>
  194. <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>
  195. <li><p>Profit! Everybody is happy.</p></li>
  196. </ol>
  197. <p>Content warnings are good for everybody.</p>
  198. <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>
  199. <div class="no-row-height column-margin column-container"><div class="">
  200. <p>A warning. Image credit: <a href="https://unsplash.com/photos/Ahs_MHU8y1s">Fleur</a>. Freely available via unsplash</p>
  201. </div></div></section>
  202. <section id="how-can-i-make-threads" class="level2">
  203. <h2 class="anchored" data-anchor-id="how-can-i-make-threads">How can I make threads?</h2>
  204. <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>
  205. <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>
  206. </section>
  207. <section id="what-are-the-local-and-federated-timelines" class="level2">
  208. <h2 class="anchored" data-anchor-id="what-are-the-local-and-federated-timelines">What are the local and federated timelines?</h2>
  209. <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>
  210. <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>
  211. <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>
  212. </section>
  213. <section id="how-do-i-move-my-account-to-a-new-server" class="level2 page-columns page-full">
  214. <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>
  215. <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>
  216. <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>
  217. <p><strong>Step 1: Prepare the way</strong></p>
  218. <ol type="1">
  219. <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>
  220. <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>
  221. </ol>
  222. <p><strong>Step 2: Export your follows from the old account</strong></p>
  223. <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>
  224. <ol type="1">
  225. <li>Click on the “preferences” option</li>
  226. <li>Within preferences, select “import and export”</li>
  227. <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>
  228. </ol>
  229. <p><strong>Step 3: Set up alias on the new account</strong></p>
  230. <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>
  231. <ol type="1">
  232. <li>Click on the “preferences” options</li>
  233. <li>Within preferences, select “account”</li>
  234. <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>
  235. <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>
  236. </ol>
  237. <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>
  238. <p><strong>Step 4: Initiate the move from the old account</strong></p>
  239. <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>
  240. <ol type="1">
  241. <li>Click on the “preferences” options</li>
  242. <li>Within preferences, select “account”</li>
  243. <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>
  244. <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>
  245. </ol>
  246. <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>
  247. <p><strong>Step 5: Import your follows at the new account</strong></p>
  248. <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>
  249. <ol type="1">
  250. <li>Click on the “preferences” options</li>
  251. <li>Within preferences, select “import and export”</li>
  252. <li>On the menu on the left, click the “import” submenu</li>
  253. <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>
  254. </ol>
  255. <p>Your new account will now automatically follow all the accounts your old account followed.</p>
  256. <p>With any luck, you are now successfully moved into your new account!</p>
  257. <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>
  258. <div class="no-row-height column-margin column-container"><div class="">
  259. <p>Moving. Image credit: <a href="https://unsplash.com/photos/66NaCdBrkCs">Michal Balog</a>. Freely available via unsplash</p>
  260. </div></div></section>
  261. <section id="etiquette-on-alt-text" class="level2">
  262. <h2 class="anchored" data-anchor-id="etiquette-on-alt-text">Etiquette on alt-text?</h2>
  263. <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>
  264. <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>
  265. <p><img src="https://blog.djnavarro.net/posts/2022-11-03_what-i-know-about-mastodon/img/image_editing.png" class="img-fluid"></p>
  266. <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>
  267. <ul>
  268. <li>this is generative art made with R</li>
  269. <li>the title of the piece is “Gods of Salt, Stone, and Storm”</li>
  270. <li>the palette is blue/green with a hint of white against a very dark background</li>
  271. <li>the image is comprised of swirling patterns throughout</li>
  272. <li>the overall impression is something akin to dark storm clouds overhead or maybe unsettled seas</li>
  273. </ul>
  274. <p>It’s not a perfect description, but it does capture what I think is important about the artwork.</p>
  275. </section>
  276. <section id="etiquette-on-nfts" class="level2">
  277. <h2 class="anchored" data-anchor-id="etiquette-on-nfts">Etiquette on NFTs?</h2>
  278. <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>
  279. <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>
  280. </section>
  281. <section id="etiquette-on-bots-and-automated-accounts" class="level2">
  282. <h2 class="anchored" data-anchor-id="etiquette-on-bots-and-automated-accounts">Etiquette on bots and automated accounts?</h2>
  283. <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>
  284. </section>
  285. <section id="direct-messages-and-privacy" class="level2">
  286. <h2 class="anchored" data-anchor-id="direct-messages-and-privacy">Direct messages and privacy</h2>
  287. <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>
  288. <p>You should never send any sensitive information via mastodon.</p>
  289. </article>
  290. <hr>
  291. <footer>
  292. <p>
  293. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  294. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  295. </svg> Accueil</a> •
  296. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  297. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  298. </svg> Suivre</a> •
  299. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  300. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  301. </svg> Pro</a> •
  302. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  303. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  304. </svg> Email</a> •
  305. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  306. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  307. </svg> Légal</abbr>
  308. </p>
  309. <template id="theme-selector">
  310. <form>
  311. <fieldset>
  312. <legend><svg class="icon icon-brightness-contrast">
  313. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  314. </svg> Thème</legend>
  315. <label>
  316. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  317. </label>
  318. <label>
  319. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  320. </label>
  321. <label>
  322. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  323. </label>
  324. </fieldset>
  325. </form>
  326. </template>
  327. </footer>
  328. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  329. <script>
  330. function loadThemeForm(templateName) {
  331. const themeSelectorTemplate = document.querySelector(templateName)
  332. const form = themeSelectorTemplate.content.firstElementChild
  333. themeSelectorTemplate.replaceWith(form)
  334. form.addEventListener('change', (e) => {
  335. const chosenColorScheme = e.target.value
  336. localStorage.setItem('theme', chosenColorScheme)
  337. toggleTheme(chosenColorScheme)
  338. })
  339. const selectedTheme = localStorage.getItem('theme')
  340. if (selectedTheme && selectedTheme !== 'undefined') {
  341. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  342. }
  343. }
  344. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  345. window.addEventListener('load', () => {
  346. let hasDarkRules = false
  347. for (const styleSheet of Array.from(document.styleSheets)) {
  348. let mediaRules = []
  349. for (const cssRule of styleSheet.cssRules) {
  350. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  351. continue
  352. }
  353. // WARNING: Safari does not have/supports `conditionText`.
  354. if (cssRule.conditionText) {
  355. if (cssRule.conditionText !== prefersColorSchemeDark) {
  356. continue
  357. }
  358. } else {
  359. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  360. continue
  361. }
  362. }
  363. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  364. }
  365. // WARNING: do not try to insert a Rule to a styleSheet you are
  366. // currently iterating on, otherwise the browser will be stuck
  367. // in a infinite loop…
  368. for (const mediaRule of mediaRules) {
  369. styleSheet.insertRule(mediaRule.cssText)
  370. hasDarkRules = true
  371. }
  372. }
  373. if (hasDarkRules) {
  374. loadThemeForm('#theme-selector')
  375. }
  376. })
  377. </script>
  378. </body>
  379. </html>