A place to cache linked articles (think custom and personal wayback machine)
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.html 14KB

1年前
1年前
1年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  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>Killing Community (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Is that even respected? Retrospectively? What a shAItshow…
  28. https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
  29. <meta name="robots" content="noai, noimageai">
  30. <!-- Documented, feel free to shoot an email. -->
  31. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  32. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  36. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  37. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  38. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  39. <script>
  40. function toggleTheme(themeName) {
  41. document.documentElement.classList.toggle(
  42. 'forced-dark',
  43. themeName === 'dark'
  44. )
  45. document.documentElement.classList.toggle(
  46. 'forced-light',
  47. themeName === 'light'
  48. )
  49. }
  50. const selectedTheme = localStorage.getItem('theme')
  51. if (selectedTheme !== 'undefined') {
  52. toggleTheme(selectedTheme)
  53. }
  54. </script>
  55. <meta name="robots" content="noindex, nofollow">
  56. <meta content="origin-when-cross-origin" name="referrer">
  57. <!-- Canonical URL for SEO purposes -->
  58. <link rel="canonical" href="https://www.marginalia.nu/log/82_killing_community/">
  59. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  60. <article>
  61. <header>
  62. <h1>Killing Community</h1>
  63. </header>
  64. <nav>
  65. <p class="center">
  66. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  67. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  68. </svg> Accueil</a> •
  69. <a href="https://www.marginalia.nu/log/82_killing_community/" title="Lien vers le contenu original">Source originale</a>
  70. </p>
  71. </nav>
  72. <hr>
  73. <p>This is a theory that’s previously been stated in <a href="/log/39-normie-hypothesis.gmi">log/39-normie-hypothesis.gmi</a>, but I think it’s worth expanding on as it’s become very relevant with the recent Reddit shit-show actualizing just how bad that website has gotten along with social media in general.</p>
  74. <p>I think the model demonstrate how the ’enshittification’ process is an inevitability with any social media that is run on a venture capital model.</p>
  75. <p>An online community can be like a village, where you have familiar faces, collective experiences, shared values and so forth. It can be like a village and be five people, it can be like a village and be a thousand people.</p>
  76. <p>In this context, the defining trait of a village is that it’s group of people where the average interaction over time is with people you’ve seen before.</p>
  77. <p>A village is a precious thing. Many people go online to find a sense of belonging and community, and in the right circumstances, they can find it while they may struggle to do so offline. This is one of the great things about the Internet. It’s so large that no matter how weird and unconventional you are, there’s always more people just like you.</p>
  78. <p>Because they are precious, it’s important to understand what makes a village a village, and what kills the village.</p>
  79. <p>The central thesis is that what these villages can’t tolerate is a sustained large influx of strangers. A stranger in this context is an nothing more or less than an unfamiliar face. I know it tends to draw the mind in those directions, but please refrain from projecting concepts such as nationality or ethnicity on the term. We’re all simultaneously villagers and strangers in various social circumstances.</p>
  80. <p>A slow trickle of strangers is tolerable, a brief large influx is fine; the strangers’ average interaction is eventually stabilizes and biases toward the a stable group of members, and they quickly find shared values and become villagers too. They become familiar faces, and undoubtedly make their mark on the shared culture. That’s often a refreshing and welcome thing. It’s still a village.</p>
  81. <p>When sustained growth is too large, the strangers’ average interaction is with other strangers, and even if this would have eventually stabilized into something like a village, there are yet more strangers to prevent this from happening. Everyone stays strangers, and a sort of stranger-culture emerges where guards are up by default because there are never any familiar faces.</p>
  82. <p>It’s no longer a village, but something like a train station. The default mode of being is <em>passing through</em>. People come and go, and there’s no real sense of belonging. There is a sense of anonymity, there are no lasting repercussions for cutting in line or being rude.</p>
  83. <p>It’s an oppressive, alienating, and disempowering environment.</p>
  84. <p>You’re <em>in</em> a train station, you’re not part of it. There’s nothing you can do to improve it. Values are replaced by laws. Laws are enforced through a rigid structure of guards and uniforms, and the particularities and nuances of the situation don’t matter. If someone is subjectively being a jerk, you can’t really do anything about it. You just have to put up with it.</p>
  85. <p>Now consider running a social media site like a start-up, with quarterly growth targets, with investors to impress and eyes on an eventual IPO.</p>
  86. <p>If you want to absolutely destroy a website that is all about building communities and meeting new people, then aim for the site and all communities to always be growing as much as possible. Make that a design goal of the site. Pump those subscriber numbers up.</p>
  87. <p>What you’ll get is a place where everyone is a stranger, where being a jerk is the norm, where there is no sense of belonging,
  88. where civility and arguing in good faith is irrelevant because you’re not talking <em>to someone</em>, you’re performing in front of an audience to make the number next to your comment go up so you can briefly feel something that almost resembles belonging and shared values.</p>
  89. <p>Terminally online and starving for human connection, you’re left clinging on to this artificial sense of belonging like Harlow’s monkeys to their wire-mesh mothers. It will never be real, but it’s all you have.</p>
  90. <p>The only sense of belonging you can find is through tribalism, deep trenches are dug along the fault-lines of the most superficial differences because that’s all there is to see. Nuance requires lasting relationships. People aren’t really people, they’re reduced to an opinion you can’t tolerate, or a flavor of potato chips you can’t stand, a starter pokemon you think is lame.</p>
  91. <p>Ironically, according to the model proposed earlier, the best thing that could happen to Reddit, in terms of the website not being shit from a community perspective, is that it stops growing, maybe even shrinks a bit. This will let communities stabilize and become more like villages again, and the site will be better for it.</p>
  92. <p>Of course this is a real predicament from business sense, with the looming IPO and all that. The only way to make money is to grow, and the only way to grow is to kill the community.</p>
  93. </article>
  94. <hr>
  95. <footer>
  96. <p>
  97. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  98. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  99. </svg> Accueil</a> •
  100. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  101. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  102. </svg> Suivre</a> •
  103. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  104. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  105. </svg> Pro</a> •
  106. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  107. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  108. </svg> Email</a> •
  109. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  110. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  111. </svg> Légal</abbr>
  112. </p>
  113. <template id="theme-selector">
  114. <form>
  115. <fieldset>
  116. <legend><svg class="icon icon-brightness-contrast">
  117. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  118. </svg> Thème</legend>
  119. <label>
  120. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  121. </label>
  122. <label>
  123. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  124. </label>
  125. <label>
  126. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  127. </label>
  128. </fieldset>
  129. </form>
  130. </template>
  131. </footer>
  132. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  133. <script>
  134. function loadThemeForm(templateName) {
  135. const themeSelectorTemplate = document.querySelector(templateName)
  136. const form = themeSelectorTemplate.content.firstElementChild
  137. themeSelectorTemplate.replaceWith(form)
  138. form.addEventListener('change', (e) => {
  139. const chosenColorScheme = e.target.value
  140. localStorage.setItem('theme', chosenColorScheme)
  141. toggleTheme(chosenColorScheme)
  142. })
  143. const selectedTheme = localStorage.getItem('theme')
  144. if (selectedTheme && selectedTheme !== 'undefined') {
  145. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  146. }
  147. }
  148. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  149. window.addEventListener('load', () => {
  150. let hasDarkRules = false
  151. for (const styleSheet of Array.from(document.styleSheets)) {
  152. let mediaRules = []
  153. for (const cssRule of styleSheet.cssRules) {
  154. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  155. continue
  156. }
  157. // WARNING: Safari does not have/supports `conditionText`.
  158. if (cssRule.conditionText) {
  159. if (cssRule.conditionText !== prefersColorSchemeDark) {
  160. continue
  161. }
  162. } else {
  163. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  164. continue
  165. }
  166. }
  167. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  168. }
  169. // WARNING: do not try to insert a Rule to a styleSheet you are
  170. // currently iterating on, otherwise the browser will be stuck
  171. // in a infinite loop…
  172. for (const mediaRule of mediaRules) {
  173. styleSheet.insertRule(mediaRule.cssText)
  174. hasDarkRules = true
  175. }
  176. }
  177. if (hasDarkRules) {
  178. loadThemeForm('#theme-selector')
  179. }
  180. })
  181. </script>
  182. </body>
  183. </html>