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 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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>enshittification is what happens when a disney adult learns about captialism (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://cohost.org/tef/post/3175066-enshittification-is">
  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>enshittification is what happens when a disney adult learns about captialism</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://cohost.org/tef/post/3175066-enshittification-is" title="Lien vers le contenu original">Source originale</a>
  70. </p>
  71. </nav>
  72. <hr>
  73. <p>edit:</p>
  74. <p>i hate to break character, especially months after a post, but i feel people need a little more context to read this post than assumed:</p>
  75. <ul>
  76. <li>
  77. <p>this is a mean post about a thing that annoys me</p>
  78. </li>
  79. <li>
  80. <p>cory doctorow is the originator of the term "enshitification", and he is by any and all measures, a disney adult. that's the joke in the title. i feel like stewart lee having to spell things out here, but understanding this joke is the entry qualifications for the rest of the flippant commentary.</p>
  81. </li>
  82. <li>
  83. <p>the really big take home message, for the people still following along, is this: enshitification, albeit defined in market terms, is regularly used as if it's a problem capitalism is afflicted by, rather than a problem capitalism causes.</p>
  84. </li>
  85. <li>
  86. <p>the other, less important message: i find the people who use this term in this way annoying, and unfortunately many of them found this post. i did not realise how deeply upset people would take jokes at the expense of "new york times readers" but in hindsight, you can only read so many op-eds before clutching your own pearls on impulse.</p>
  87. </li>
  88. <li>
  89. <p>i use "walking past a picket to complain to the manager" to talk about that "i'm politically liberal but why can't protests be quieter" mentality, the idea that any and all problems can be fixed by the regular channels. the person in question is used to being at the top of some power structure. apparently i need to explain this too. go figure.</p>
  90. </li>
  91. </ul>
  92. <p>got all that? great.</p>
  93. <p>here's the original inflammatory post. please enjoy posting about it in places i can't see:</p>
  94. <p>look, i hate the term "enshittification" as much as anyone. it feels like one of those made up swear words that came out of a doctorwho/supernatural fanfic, and for a while i was happy to continue dismissing it on those terms</p>
  95. <p>it took me a while to realise that i hate it for entirely legitimate reasons too.</p>
  96. <p>when people say "enshittification", it's as if their core complaint about capitalism is the customer service, rather than the systematic exploitation of other people. people don't talk about union busting as "enshittification", or wage theft as "enshittification", let alone deeper systematic issues.</p>
  97. <p>people talk about enshittification to mean "i can't watch my favourite tv show any more"</p>
  98. <hr><p>it's a "things are more expensive now" and a "products aren't made to the same qualities they used to" nostalgia. it's a cutesy term just gauche enough to raise eyebrows at the dinner party. it's a neologism for new york times readers hoping to look a little more progressive, but even then, that's not why i hate the term "enshittification"</p>
  99. <p>the reason i hate the term is simple: it's as if the problems of capitalism boil down to a few greedy ceos looking to make a quick buck, despite all evidence to the contrary. yes, the original coining of the term talks about "two sided markets", but people don't really use the term in that way, and more importantly, this sort of race to the bottom exists in many other regular interactions with capitalism.</p>
  100. <p>compare: buying a car might as well be a hostage negotiation. arguing over hospital bills a kafkaesque nightmare. ask your grandma about long distance calling plans. none of it gets called "enshittification" because no-one is old enough to remember when any of these things were good—or at least better than they are today.</p>
  101. <p>that's my problem: enshittification is not what companies become, it's what companies set out to be. enshittification is talked about as if it's an affliction affecting capitalism, rather than the desired outcome.</p>
  102. <p>every venture backed company has the following plan: spend a lot of money to gain a monopoly, use the monopoly to price gouge everyone, replace all core services with subcontractors until the company only exists to add a 5% convenience charge on all transactions.</p>
  103. <p>the ones that do not have this plan will be acquired by the ones that do. this is the end state of every successful company, it is not a unique outcome, or a new means of operation, just one that's been more successful of late with the rise of online platforms.</p>
  104. <p>enshittification is someone experiencing the systematic problems of capitalism for the first time, and not seeing the tip of the iceberg for what it represents. it's walking past a picket line to complain to the manager. it's being mad that the star wars show got cancelled and hoping awareness will fix it.</p>
  105. <p>"i thought you busted unions to make me a better sandwich, what gives?"</p>
  106. <p>that said and done, i'll probably stick to telling people it sounds like a doctor who fan swear word, because at least they'll cringe as much as I do when i hear it.</p>
  107. <p>edit:</p>
  108. <p>i've locked this because enough people are misbehaving in the comments, and frankly i do not have time for this mastodon bullshit</p>
  109. </article>
  110. <hr>
  111. <footer>
  112. <p>
  113. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  114. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  115. </svg> Accueil</a> •
  116. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  117. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  118. </svg> Suivre</a> •
  119. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  120. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  121. </svg> Pro</a> •
  122. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  123. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  124. </svg> Email</a> •
  125. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  126. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  127. </svg> Légal</abbr>
  128. </p>
  129. <template id="theme-selector">
  130. <form>
  131. <fieldset>
  132. <legend><svg class="icon icon-brightness-contrast">
  133. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  134. </svg> Thème</legend>
  135. <label>
  136. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  137. </label>
  138. <label>
  139. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  140. </label>
  141. <label>
  142. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  143. </label>
  144. </fieldset>
  145. </form>
  146. </template>
  147. </footer>
  148. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  149. <script>
  150. function loadThemeForm(templateName) {
  151. const themeSelectorTemplate = document.querySelector(templateName)
  152. const form = themeSelectorTemplate.content.firstElementChild
  153. themeSelectorTemplate.replaceWith(form)
  154. form.addEventListener('change', (e) => {
  155. const chosenColorScheme = e.target.value
  156. localStorage.setItem('theme', chosenColorScheme)
  157. toggleTheme(chosenColorScheme)
  158. })
  159. const selectedTheme = localStorage.getItem('theme')
  160. if (selectedTheme && selectedTheme !== 'undefined') {
  161. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  162. }
  163. }
  164. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  165. window.addEventListener('load', () => {
  166. let hasDarkRules = false
  167. for (const styleSheet of Array.from(document.styleSheets)) {
  168. let mediaRules = []
  169. for (const cssRule of styleSheet.cssRules) {
  170. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  171. continue
  172. }
  173. // WARNING: Safari does not have/supports `conditionText`.
  174. if (cssRule.conditionText) {
  175. if (cssRule.conditionText !== prefersColorSchemeDark) {
  176. continue
  177. }
  178. } else {
  179. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  180. continue
  181. }
  182. }
  183. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  184. }
  185. // WARNING: do not try to insert a Rule to a styleSheet you are
  186. // currently iterating on, otherwise the browser will be stuck
  187. // in a infinite loop…
  188. for (const mediaRule of mediaRules) {
  189. styleSheet.insertRule(mediaRule.cssText)
  190. hasDarkRules = true
  191. }
  192. }
  193. if (hasDarkRules) {
  194. loadThemeForm('#theme-selector')
  195. }
  196. })
  197. </script>
  198. </body>
  199. </html>