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

index.html 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  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>Discord, or the Death of Lore « ASCII by Jason Scott (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="http://ascii.textfiles.com/archives/5509">
  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>Discord, or the Death of Lore « ASCII by Jason Scott</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="http://ascii.textfiles.com/archives/5509" title="Lien vers le contenu original">Source originale</a>
  67. </p>
  68. </nav>
  69. <hr>
  70. <p>I chose the life, it didn’t choose me. I could have walked away from it a long time ago, and I’ve certainly shifted my focus over the years. But I still hold the heft and halter, the one standing at the death of all things, and while it means a lot of moments of rescue and recovery, it also means knowing, looking across at that which thrives and bustles, the desiccation and destruction to come. The only part of the fog of the future that’s guaranteed is the moment it switches from theory to a wall of iron and then darkness.</p>
  71. <p>All this to say: <strong>Discord</strong>.</p>
  72. <p>Twitter, in its own death throes, its own misery, will always stand in its later years as a fantastic tool for raining down misery and pain on others with a simple “quote tweet”, and I’ve been guilty of such on the absolute regular. Few of my tweets maneuvered past 100,000 “impressions”, but this one most definitely did:</p>
  73. <p>The last I checked, that tweet got the attention of over a quarter-million individuals and/or machines, and the next two follow-ups got a smaller amount, but are still worth noting:</p>
  74. <p>There is absolutely nothing new about Discord, say people with experience of IRC. Of course, they’re wrong: Discord has speed, ease of use, and (at this point in time) general societal acceptance far beyond IRC. IRC is a bouncer looking you up and down and asking you to do a small dance of proof of worth before entering a text-only cave of obscurity; Discord added skylights, pretty lights, cross-platform access and verification, and centralization, not all of them great additions but very welcome for their intended audience…. who is now everyone.</p>
  75. <p>I’ve been on well over 100 discords, and I’ve run or in some way moderated a half-dozen. They’re good for fast spinning-up of projects, to glom a bunch of humans into a channel system, and not have to deal with Slack’s oddities, or the ridiculous on-ramp for IRC. At one point I asked for people to send me invites to the weirdest Discords they were members of, and I can assure you, there’s weird ones indeed. And the capacity is notable – walking through the halls of particularly “hot” Discords with literally hundreds of thousands of members, especially when active, is to walk through a space station hosting an all-star concert as it blasts through the darkness. <br><br>I have no disputes as the popularity of the places, the things that happen there, and the unquestioned vivaciousness of being the party that never seems to end and everyone wants to join. <br><br>I just happen to be the sort of person who notices there’s no decent fire exits and most of the structure is wood and there’s an… awful lot of pyrotechnics being set off.</p>
  76. <p>Discord’s official birthday is 2012, but it’s really 2009, when OpenFeint was created.</p>
  77. <p><a rel="noreferrer noopener" href="https://en.wikipedia.org/wiki/OpenFeint" target="_blank">OpenFeint</a> is the pile of bones worn into the foundation of Discord telling us it was built on land that will very occasionally flood to great catastrophe. It was founded in 2009, was given a huge ecosystem of plugins and support, gained ten million followers, took in roughly $12 million of known VC investment, was sold to a Japanese company in 2011 for $104 million, and was fucking <em>dead in the ground</em> by 2012. By the flickering light of its Viking funeral, Discord was founded and the cycle began anew.</p>
  78. <p>Spare me the “they learned their lesson speech”, and please store it in this garbage can I’ve already stuffed with the “it won’t happen again” and “you don’t know what you’re talking about” bags I tend to get. It will happen again; it’s just a matter of when.</p>
  79. <p>The main considerations I have are what will be lost.</p>
  80. <p>When the free image-hosting site ImageShack made the realization that they were losing buckets of money hosting images for free, and shifted over to a subscription model that also cut off legacy accounts, deleting them in fact, the question was who would care. Perhaps the original uploaders of the images, too cheap to pay the additional fees of a few bucks per month, or maybe someone who took amusement from this image or that, but probably had downloaded it anyway?</p>
  81. <p><strong>No, what this did was decimate warehouses of lore.</strong></p>
  82. <p>It turns out, in the breadth of time, ImageShack was the unofficial official clearinghouse of diagrams and illustrations of web discussion boards that had limits (or difficulties) hosting images. Sure, most of the boards had software that allowed you to upload to them, but ImageShack was <em>very </em>easy to host with, and the results were fast and simple and could be rather large when needed. This was very helpful for technical diagrams and explanations that would cover (at the time) larger resolutions of graphic information.</p>
  83. <p>So, when ImageShack killed what had been 13 years of these illustrations, they definitely probably saved the business, and they ensured everyone who was hosting with them was truly <em>engaged</em>, but they also lobotomized hundreds, possibly thousands of forums and discussion groups and absolutely wiped an entire collection of reference documents from the web at the same time. Walking through some of them (before they, themselves, died) was walking through a bombed city, its institutional and cultural memory pockmarked with “pay us to see this stuff” placeholders.</p>
  84. <p>Documents are documents. Books are books, recordings are recordings, and so on. As time has gone on, though, I’ve observed the probably obvious-to-others fact that <strong>Lore</strong> is the grease between the concrete blocks of knowledge, the carved step in an otherwise impossible-to-scale mountain, the small bit of powder sprinkled through a workspace to ensure sparks don’t fly and things don’t burn. Inconceivably odd to the outsider, but vital to the dedicated or intense practice of the craft.</p>
  85. <p>Certainly, the ideal situation is lore is inlaid into a framework of knowledge. As the joke goes, there’s no real conflict between herbs and medicine – we took herbs and the ones that worked became medicine. In the same way, the lore of knots became the rules of the sea and the lore of practiced building that was vital to share across long distances of time and space became engineering. This is an overly simplistic view, but it holds true that “lore” joins “knowledge” in a very haphazard fashion, usually relying on someone so driven to push the process that they create a 400 page behemoth of writing that is gleaned by social calls and favors into the story of How It Has Been Done.</p>
  86. <div class="wp-block-image">
  87. <figure class="aligncenter size-full"><a href="http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11.png"><img data-attachment-id="5515" data-permalink="http://ascii.textfiles.com/archives/5509/image-11" data-orig-file="http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11.png" data-orig-size="802,454" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="image-11" data-image-description="" data-image-caption="" data-medium-file="http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11-300x170.png" data-large-file="http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11.png" decoding="async" loading="lazy" src="http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11.png" alt="" class="wp-image-5515" srcset="http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11.png 802w, http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11-300x170.png 300w, http://ascii.textfiles.com/wp-content/uploads/2023/03/image-11-768x435.png 768w" sizes="(max-width: 802px) 100vw, 802px"></a></figure></div>
  88. <p>The danger in this process, the potential lost ballast in the rise to the skies, is that the lore-to-knowledge transfer is lossy, messy, and arbitrary. Maybe those in the know want to keep the information to themselves, so it won’t be given to whoever the person or persons are who are laying down the written form. Maybe the chronicler of information has blind spots they don’t know about and not enough people to correct them. Or, more likely, you have to set the “noise filter” of the information to not go down the rabbit and rat holes of contingencies that maybe a dozen or two people will even want to know about, to the favor of that which <em>everyone</em> will need. The outcome is always the same: Lore loses in the long run.</p>
  89. <p><em>I’ll take a quick diversion to say that we do see attempts to whip lore into shape on a shared basis, be it Quora, Yahoo! Answers, Reddit and Stack Overflow – all of them centralized entities, some of them better than others, and all of them fundamentally unstructured compared to a “book” form factor but infinitely searchable and fungible to the needs of whoever is wandering in, even if they must know three-quarters of the solution to get the actual final part.</em></p>
  90. <p>Discord, in the decade and change it has lived, and especially once it took off beyond its initial social and classification groups, has exploded exponentially in all the parts it plays on the remnants of the Web. Time and again, we see a Discord rise that represents a subject general or specific, a grouping of dozens or hundreds of folks interested or entangled in the subject, and then a massive growth of channels and direct messages rising from that clumped “community”. Some of the results are droll mostly-silent channels with occasional flares of conversations, while others are waterfalls of discussion and write-once read-never rants and dumb questions, punctuated with someone asking a question for the hundredth time and someone answering a different way.</p>
  91. <p>There are more Discords than you realize, and more lore pouring into them than anyone can truly comprehend. They are not the exclusive spigots of lore but they’re a major pipeline, a notable artery on Knowledge’s Heart that we would definitely notice if, for whatever reason, it was clogged with Mission Shift or New Opportunities cutting it off. </p>
  92. <p>The two-line discussion at the center of my first public lambasting of Discord’s nature is telling, not because of the individual who responded as they did, but the situation they were unintentionally highlighting:</p>
  93. <p>EmoSaru is not evil or a paragon of Knowledge’s Destruction; they’re a shopkeeper noticing that fresh tomatoes aren’t selling as well as ketchup and ketchup is cheaper to keep on the shelves and lasts longer, and everyone who might come along and complain about losing fresh tomatoes aren’t <em>buying</em> said beloved tomatoes. They’re following the wind. Only fools stay in the field when the herd has gone in from the rain. I highlighted them just because the exchange was, as they say, <em>el perfecto.</em></p>
  94. <p>My grandmother would always scold me, lightly of course, about my cartoons I’d draw on paper because I wouldn’t use both sides of the page; my personal belief that it would bleed into each other wasn’t part of the argument, just that she had long memories of doing without and making do with little and she wanted me to not waste the (temporary) bounty before the next (inevitable) hardship.</p>
  95. <p>To that end, I am, again, the angel-winged herald of the Death of Discord and I only wish to highlight what might blunt the pain of the inevitable decay and destruction of what it is.</p>
  96. <p>In the unlikely event that Discord sits across from me at a table and asks What Exactly Do You Want To Leave Us Alone, my list of demands is both logical and impossible:</p>
  97. <ul>
  98. <li>Right now every channel is meant to be both transient and permanent. I know that’ll never change, so create a new “Lore” or “Archive” channel where the moderators tap on wisdom and preserve-forever statements or threads, and they get added over there. Think of it as “Pinning” but they’re pinned forever and there’s a bunch of them.</li>
  99. <li>Make it possible to export this Lore/Archive channel to a reasonable file, like JSON or any other text format. Hell, make it a feature for “<a rel="noreferrer noopener" href="https://web.archive.org/web/20230301080154/https://discord.com/nitro" target="_blank">Discord Nitro</a>“, which is obviously a part of the “oh crap, we need to prove we can make money with this thing” phase of the cycle you’re now entering.</li>
  100. <li>At the very least, consider some sort of “FAQ” feature/contingency that does a similar function to the old-style FAQs, so people can contribute sets of knowledge in a structured manual instead of an endless search for terms from everyone who ever touched a server.</li>
  101. </ul>
  102. <p>The unlikely event of them sitting with me across a table is doubly joined by the unlikely event they would implement anything like I’m asking for.</p>
  103. <p>Consider this me walking through and pointing out the wood structure and lack of fire exits, and if someone did the work, even if it cost a little extra, a lot of people will be a little less sad down the line.</p>
  104. <p>And when the inevitable does its inevitable thing, maybe we can all sit down and talk about what could have been.</p>
  105. <p>…just not on Discord.</p>
  106. </article>
  107. <hr>
  108. <footer>
  109. <p>
  110. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  111. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  112. </svg> Accueil</a> •
  113. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  114. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  115. </svg> Suivre</a> •
  116. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  117. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  118. </svg> Pro</a> •
  119. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  120. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  121. </svg> Email</a> •
  122. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  123. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  124. </svg> Légal</abbr>
  125. </p>
  126. <template id="theme-selector">
  127. <form>
  128. <fieldset>
  129. <legend><svg class="icon icon-brightness-contrast">
  130. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  131. </svg> Thème</legend>
  132. <label>
  133. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  134. </label>
  135. <label>
  136. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  137. </label>
  138. <label>
  139. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  140. </label>
  141. </fieldset>
  142. </form>
  143. </template>
  144. </footer>
  145. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  146. <script>
  147. function loadThemeForm(templateName) {
  148. const themeSelectorTemplate = document.querySelector(templateName)
  149. const form = themeSelectorTemplate.content.firstElementChild
  150. themeSelectorTemplate.replaceWith(form)
  151. form.addEventListener('change', (e) => {
  152. const chosenColorScheme = e.target.value
  153. localStorage.setItem('theme', chosenColorScheme)
  154. toggleTheme(chosenColorScheme)
  155. })
  156. const selectedTheme = localStorage.getItem('theme')
  157. if (selectedTheme && selectedTheme !== 'undefined') {
  158. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  159. }
  160. }
  161. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  162. window.addEventListener('load', () => {
  163. let hasDarkRules = false
  164. for (const styleSheet of Array.from(document.styleSheets)) {
  165. let mediaRules = []
  166. for (const cssRule of styleSheet.cssRules) {
  167. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  168. continue
  169. }
  170. // WARNING: Safari does not have/supports `conditionText`.
  171. if (cssRule.conditionText) {
  172. if (cssRule.conditionText !== prefersColorSchemeDark) {
  173. continue
  174. }
  175. } else {
  176. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  177. continue
  178. }
  179. }
  180. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  181. }
  182. // WARNING: do not try to insert a Rule to a styleSheet you are
  183. // currently iterating on, otherwise the browser will be stuck
  184. // in a infinite loop…
  185. for (const mediaRule of mediaRules) {
  186. styleSheet.insertRule(mediaRule.cssText)
  187. hasDarkRules = true
  188. }
  189. }
  190. if (hasDarkRules) {
  191. loadThemeForm('#theme-selector')
  192. }
  193. })
  194. </script>
  195. </body>
  196. </html>