A place to cache linked articles (think custom and personal wayback machine)
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

index.html 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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>
  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>Enough (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="#f0f0ea">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f0f0ea">
  26. <!-- Documented, feel free to shoot an email. -->
  27. <link rel="stylesheet" href="/static/david/css/style_2020-06-19.css">
  28. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  29. <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>
  30. <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>
  31. <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>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <script type="text/javascript">
  36. function toggleTheme(themeName) {
  37. document.documentElement.classList.toggle(
  38. 'forced-dark',
  39. themeName === 'dark'
  40. )
  41. document.documentElement.classList.toggle(
  42. 'forced-light',
  43. themeName === 'light'
  44. )
  45. }
  46. const selectedTheme = localStorage.getItem('theme')
  47. if (selectedTheme !== 'undefined') {
  48. toggleTheme(selectedTheme)
  49. }
  50. </script>
  51. <meta name="robots" content="noindex, nofollow">
  52. <meta content="origin-when-cross-origin" name="referrer">
  53. <!-- Canonical URL for SEO purposes -->
  54. <link rel="canonical" href="https://pjrvs.com/enough">
  55. <body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">
  56. <article>
  57. <header>
  58. <h1>Enough</h1>
  59. </header>
  60. <nav>
  61. <p class="center">
  62. <a href="/david/" title="Aller à l’accueil">🏠</a> •
  63. <a href="https://pjrvs.com/enough" title="Lien vers le contenu original">Source originale</a>
  64. </p>
  65. </nav>
  66. <hr>
  67. <main>
  68. <p>Exterior mindfulness (some call it <a href="https://pjrvs.com/business">minimalism</a>) only works when we solve for enough.</p>
  69. <p>It’s not just a matter of having less stuff or having nothing or having that one carefully arranged bohemian tchotchke on your live-edge cedar coffee table. (That’s only useful if minimalism is simply an aesthetic you like for your Instagram and Pinterest posts.) If we don’t solve for enough, for our specific and personal enough, minimalism is vapid at best and a constant state of judgement at worse.</p>
  70. <p>In order to be more aware of what makes sense for our lives and businesses, we need to be aware of what enough means.</p>
  71. <p>Enough is different for everyone. For myself, I need far less than a family with six children, because my family is two people (and any number of pet rats). I need less money than someone living in an expensive city, because real estate and life costs less in the woods. I need less revenue than other businesses because my margins are high and my expenses are low based on the type of work I do.</p>
  72. <p>If things were different, I’d need more. Not because I’d be a horribly capitalist consumer, hell-bent on buying everything that showed up in my inbox. I’d simply require more in my own personal life for it to be easier and less stressful. More would make sense in that case, and I’d have to do more to reach enough. This isn’t a judgement of others, nor should it be, it’s more a realization from introspection. What enough means for me, only concerns me, and should only be compared to myself: where I’m actually at versus where I’m working to get to. As in, am I presently happy or do I assume I’ll be happier in the future, and if so, why?</p>
  73. <p>Enough is the antithesis of unchecked growth because growth encourages mindless consumption and enough requires constant questioning and awareness. Enough is when we reach the upper bound of what’s required. Enough revenue means our business is profitable and can support however many employees/freelancers we have, even if it’s just one person. Enough income means we can live our lives with a bit of financial ease, and put something away for later. Enough means our families are fed, have roofs over their heads and their futures are considered. Enough stuff means we have what we need to live our lives without excess.</p>
  74. <h2>Enough breaks down into two camps</h2>
  75. <p>Pre-enough means we haven’t quite reached the state of what’s truly required. When a business starts, it’s very hard to be at enough instantly—so we have to work to reach it. Pre-enough income means we don’t yet have what we need to get by. Pre-enough typically means we’ve got to work a little harder to reach our enough. We hustle, worker harder, and get things done. Growth here makes sense, because we need to grow into our own “enoughs”.</p>
  76. <p>Where things can go awry is when we never consider what enough is as a marker. When this happens, we don’t solve for enough or optimize for it, we just keep going and going with more and more. We hit enough revenue, enough customers, enough stuff, and assume we have to do the same things we did to reach it now that it’s been reached and blaze quickly past that mark. That’s why most big companies keep growing past what makes organic or market sense. That’s why some people have what they need and don’t ever stop getting more than they need until their 524-bedroom house is filled to the brim with so much stuff that they need to rent 524 storage lockers as well.</p>
  77. <p>So in the beginning, reaching enough is goal number one. We do whatever it takes to get there, since we need more out of necessity. We don’t need to optimize for enough because we haven’t yet reached enough. If we’re not aware of what enough is though, we can potentially hit it and keep going with the same vim and vigour, blowing past it. Once enough has been reached (different for everyone and every business, remember), our goal should then be to realize that enough is enough, and further optimize for it.</p>
  78. <p>Bringing it back around to the problem some folks rightfully have with the entitled talk about minimalism is that when you don’t have enough, it’s hard to hear people talk about optimizing for enough or how they now live with less. It can feel like passive-aggressive (or aggressive-aggressive) shaming. It’s hard to be in pre-enough and hear about post-enough—from people urging us to live with and do with less when there’s not even enough to begin with. It’s equally difficult to have empathy for those in the pre-enough stage if we’re in post-enough, because we’re currently optimizing and making decisions based on reaching something that not everyone has yet. There’s also a massive amount of judgement going around about comparing someone’s enough to someone else’s. Just the other day I saw a comment that someone’s tiny house wasn’t small enough to be considered truly tiny. What?!</p>
  79. <p>It’s not up to us to judge what someone else’s enough is. It’s up to us to be mindful about where we are personally, and either work towards or optimize for what our own enough actually is. And we could all do with a bit more empathy and understanding here.</p>
  80. <p>In Sanskrit, there’s a term called <em>mudita</em>, and there’s no equivalent word in English. Essentially, it means to have sympathetic or unselfish joy for others—regardless of where they’re at in their own lives. Really, if we spend less time envying or assuming that others think less of us because they’re in a different place than we are, then it becomes easier to focus on what’s important to ourselves. We can’t figure out our own enough if we’re judging others and comparing where they’re at in their enough journey to ours. It seems to me that the point of mudita isn’t to be happy for others because we’re unselfish hippies who want bigger drum circles for our Kumbaya festivals. The point is that worrying about, comparing ourselves to, and envying others doesn’t do a whole lot for us and our own mindfulness. We can be better and more focused on finding joy in our own enough or work towards it if we stop assuming that other people’s definitions of enough exist solely to spite us and make us feel bad.</p>
  81. <p>Personally, I struggle a lot with what enough is for me. While I’ve never found myself at a drum circle (yet?), I do feel self-judged sometimes when I read other people’s notes and ideas about how they optimize their lives for less and wonder if I’ve blown past what makes sense for my own enough. This comparison takes up so much of my thought-processes sometimes that whenever I notice myself comparing my enough to someone else’s enough I have to stop myself and get back on track. I’d be a lot happier if I was just stoked for others instead of internally comparing my shortcomings to their accomplishments. We’d all probably be a lot happier if we did just that.</p>
  82. </main>
  83. </article>
  84. <hr>
  85. <footer>
  86. <p>
  87. <a href="/david/" title="Aller à l’accueil">🏠</a> •
  88. <a href="/david/log/" title="Accès au flux RSS">🤖</a> •
  89. <a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
  90. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
  91. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
  92. </p>
  93. <template id="theme-selector">
  94. <form>
  95. <fieldset>
  96. <legend>Thème</legend>
  97. <label>
  98. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  99. </label>
  100. <label>
  101. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  102. </label>
  103. <label>
  104. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  105. </label>
  106. </fieldset>
  107. </form>
  108. </template>
  109. </footer>
  110. <script type="text/javascript">
  111. function loadThemeForm(templateName) {
  112. const themeSelectorTemplate = document.querySelector(templateName)
  113. const form = themeSelectorTemplate.content.firstElementChild
  114. themeSelectorTemplate.replaceWith(form)
  115. form.addEventListener('change', (e) => {
  116. const chosenColorScheme = e.target.value
  117. localStorage.setItem('theme', chosenColorScheme)
  118. toggleTheme(chosenColorScheme)
  119. })
  120. const selectedTheme = localStorage.getItem('theme')
  121. if (selectedTheme && selectedTheme !== 'undefined') {
  122. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  123. }
  124. }
  125. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  126. window.addEventListener('load', () => {
  127. let hasDarkRules = false
  128. for (const styleSheet of Array.from(document.styleSheets)) {
  129. let mediaRules = []
  130. for (const cssRule of styleSheet.cssRules) {
  131. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  132. continue
  133. }
  134. // WARNING: Safari does not have/supports `conditionText`.
  135. if (cssRule.conditionText) {
  136. if (cssRule.conditionText !== prefersColorSchemeDark) {
  137. continue
  138. }
  139. } else {
  140. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  141. continue
  142. }
  143. }
  144. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  145. }
  146. // WARNING: do not try to insert a Rule to a styleSheet you are
  147. // currently iterating on, otherwise the browser will be stuck
  148. // in a infinite loop…
  149. for (const mediaRule of mediaRules) {
  150. styleSheet.insertRule(mediaRule.cssText)
  151. hasDarkRules = true
  152. }
  153. }
  154. if (hasDarkRules) {
  155. loadThemeForm('#theme-selector')
  156. }
  157. })
  158. </script>
  159. </body>
  160. </html>