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

index.html 10.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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>Be Humble (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_2021-01-20.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>
  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://lucumr.pocoo.org/2021/2/5/be-humble/">
  55. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick">
  56. <article>
  57. <header>
  58. <h1>Be Humble</h1>
  59. </header>
  60. <nav>
  61. <p class="center">
  62. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  63. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  64. </svg> Accueil</a> •
  65. <a href="https://lucumr.pocoo.org/2021/2/5/be-humble/" title="Lien vers le contenu original">Source originale</a>
  66. </p>
  67. </nav>
  68. <hr>
  69. <p>2020 was a crazy and challenging year. Millions of people lost their jobs
  70. and thousands lost loved ones. But not me. Not just that, I work in an
  71. industry where I can safely say that most of us didn't really have such a
  72. terrible 2020 all things considered. Yeah, the pandemic sucks and for
  73. those of us with kids at home home office was challenging for sure. But
  74. really just compare that with the experience people have and had that are
  75. not in such a privileged position.</p>
  76. <p>And it's not just that programmers and IT folks in general had very little
  77. to complain about when it comes to the pandemic, we're a really, really
  78. privileged bunch <em>in general</em>. We get preferred visa treatment which
  79. makes us one of the most mobile work forces, our profession is universally
  80. recognized even if we did not actually get a degree, we can work from home
  81. and we're monetarily compensated in a way that even juniors coming from a
  82. few month training will out-earn many studied professions.</p>
  83. <p>With all that money come a lot of inflated egos. This has always been a
  84. weird thing but over the last year it has really started to annoy me how
  85. tone deaf some folks are about their personal situation. All that money
  86. buys you a ton that many can only dream of. You can use that money to
  87. retire early, that money buys you the freedom to start your own company,
  88. that money is often enough money to get more money from investors.</p>
  89. <p>It's nice that people can do that, but the nonchalant way in which this is
  90. presented online really starts to give my profession an awful reputation.
  91. Some of you might think that it's great you are all angel investors and
  92. serial entrepreneurs who work on dodgy immigration arrangements from
  93. different places in the world, who network on the latest and greatest
  94. social apps, share their lifestyle in their podcast armed with that fancy
  95. latte and craft beer and who are making a brand out of themselves.</p>
  96. <p>I just have one ask: when you do that, be humble and reflect on your
  97. situation. Most people are not <a class="reference external" href="https://www.youtube.com/watch?v=3LopI4YeC4I&amp;t=70s">that lucky</a>.</p>
  98. </article>
  99. <hr>
  100. <footer>
  101. <p>
  102. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  103. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  104. </svg> Accueil</a> •
  105. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  106. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use>
  107. </svg> RSS</a> •
  108. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  109. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use>
  110. </svg> Pro</a> •
  111. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  112. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use>
  113. </svg> Email</a> •
  114. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  115. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use>
  116. </svg> Légal</abbr>
  117. </p>
  118. <template id="theme-selector">
  119. <form>
  120. <fieldset>
  121. <legend><svg class="icon icon-brightness-contrast">
  122. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use>
  123. </svg> Thème</legend>
  124. <label>
  125. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  126. </label>
  127. <label>
  128. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  129. </label>
  130. <label>
  131. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  132. </label>
  133. </fieldset>
  134. </form>
  135. </template>
  136. </footer>
  137. <script>
  138. function loadThemeForm(templateName) {
  139. const themeSelectorTemplate = document.querySelector(templateName)
  140. const form = themeSelectorTemplate.content.firstElementChild
  141. themeSelectorTemplate.replaceWith(form)
  142. form.addEventListener('change', (e) => {
  143. const chosenColorScheme = e.target.value
  144. localStorage.setItem('theme', chosenColorScheme)
  145. toggleTheme(chosenColorScheme)
  146. })
  147. const selectedTheme = localStorage.getItem('theme')
  148. if (selectedTheme && selectedTheme !== 'undefined') {
  149. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  150. }
  151. }
  152. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  153. window.addEventListener('load', () => {
  154. let hasDarkRules = false
  155. for (const styleSheet of Array.from(document.styleSheets)) {
  156. let mediaRules = []
  157. for (const cssRule of styleSheet.cssRules) {
  158. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  159. continue
  160. }
  161. // WARNING: Safari does not have/supports `conditionText`.
  162. if (cssRule.conditionText) {
  163. if (cssRule.conditionText !== prefersColorSchemeDark) {
  164. continue
  165. }
  166. } else {
  167. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  168. continue
  169. }
  170. }
  171. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  172. }
  173. // WARNING: do not try to insert a Rule to a styleSheet you are
  174. // currently iterating on, otherwise the browser will be stuck
  175. // in a infinite loop…
  176. for (const mediaRule of mediaRules) {
  177. styleSheet.insertRule(mediaRule.cssText)
  178. hasDarkRules = true
  179. }
  180. }
  181. if (hasDarkRules) {
  182. loadThemeForm('#theme-selector')
  183. }
  184. })
  185. </script>
  186. </body>
  187. </html>