Browse Source

Links

master
David Larlet 1 year ago
parent
commit
52dcbf437a

+ 294
- 0
cache/2023/1ae1896e5eb2ccc03f2295f38090048e/index.html View File

@@ -0,0 +1,294 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the `title` element
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>Être jeune et vivre une pandémie (archive) — David Larlet</title>
<meta name="description" content="Publication mise en cache pour en conserver une trace.">
<!-- That good ol' feed, subscribe :). -->
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f7f7f7">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<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>
<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>
<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>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
themeName === 'dark'
)
document.documentElement.classList.toggle(
'forced-light',
themeName === 'light'
)
}
const selectedTheme = localStorage.getItem('theme')
if (selectedTheme !== 'undefined') {
toggleTheme(selectedTheme)
}
</script>

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://cremis.ca/publications/articles-et-medias/etre-jeune-et-vivre-une-pandemie/">

<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">


<article>
<header>
<h1>Être jeune et vivre une pandémie</h1>
</header>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="https://cremis.ca/publications/articles-et-medias/etre-jeune-et-vivre-une-pandemie/" title="Lien vers le contenu original">Source originale</a>
</p>
</nav>
<hr>
<section class="page__content with-subnavigation">
<p>Comment « devenir adulte » en temps de pandémie? Au Québec, la période du confinement strict – de mars à juin 2020 – s’est traduite par de nombreuses pertes d’emploi chez les jeunes, en particulier chez les moins diplômé-es, les jeunes femmes et les travailleurs-euses à temps partiel (Bourdon et al., 2020; St-Denis et al., 2020).  De plus, certaines enquêtes ciblées ont permis de prendre la mesure des conséquences de la pandémie sur les jeunes adultes en matière de santé mentale : en 2021 au Québec, près d’un-e jeune sur deux présentait des symptômes majeurs d’anxiété et de dépression (Université de Sherbrooke, 2021), ce qui rejoint des ordres de grandeur relevés au Canada anglophone (El-Gabalawy et Sommer, 2021). On observe des tendances comparables au sein d’autres sociétés, telles que le Royaume-Uni (Bu et al., 2020) ou la France (Observatoire de la vie étudiante, 2021). À cet égard, l’Organisation de coopération et de développement économiques (OCDE) alerte sur les effets sociaux de la pandémie sur les jeunes générations, que ce soit en termes de pauvreté économique ou d’augmentation du mal-être (OCDE, 2020).  </p>



<p>En prolongement de ces travaux, l’objectif de cet article est de livrer les premiers résultats d’une enquête qualitative sur la diversité des expériences juvéniles de la pandémie. À partir de 48 récits de vie, conduits de l’automne 2020 à l’été 2021 auprès de jeunes âgé-es de 18 à 30 ans au Québec et en Ontario, nous nous attachons à comprendre le « sens » que peut prendre la pandémie au sein des trajectoires longues du « devenir adulte », et la façon dont elle a affecté différents domaines de l’existence. </p>



<p>Sans prétendre à la représentativité, nous avons privilégié une double ouverture de l’échantillon, à la fois sociale et territoriale. D’une part, cette enquête a eu lieu à la fois en milieu urbain et en région plus éloignée, et dans deux provinces contrastées : elle rassemblé 16 entretiens conduits à Montréal, 16 en Gaspésie dans la région de Sainte-Anne-des-Monts, et 16 à Toronto. D’autre part, l’échantillon comprend à la fois des jeunes salarié-es, des étudiant-es du supérieur, des étudiant-es en CÉGEP, et des jeunes en situation de précarité. Ces entretiens ont visé à saisir la façon dont la crise sanitaire vient remodeler les parcours de jeunesse, à la fois dans leurs dimensions sociales, familiales et politiques.  </p>



<p>À l’instar d’autres enquêtes réalisées sur le confinement (Chauvin et al., 2021), nous mettons donc au cœur de notre analyse la question du temps, pour identifier la façon dont la pandémie vient bouleverser à la fois le temps court du quotidien, mais aussi, potentiellement, le temps long des existences. Dans cette perspective, nous nous appuyons sur l’approche des parcours de vie, théorisée par Glen H. Elder (Elder et al., 2003). Cette approche invite à saisir la façon dont l’expérience de la pandémie met en jeu un rapport au passé, au présent et à l’avenir, et donc à prendre en compte à la fois les vulnérabilités antérieures, les conditions sociales d’existence ou les perspectives inégales de vie. Cette perspective invite également à approcher la multidimensionnalité des parcours, c’est-à-dire à analyser la façon dont la crise sanitaire peut venir affecter les différentes dimensions de l’existence, comme les sphères familiales, amicales, professionnelles ou sociales.  </p>



<a class="subnavigation-anchor" id="l-preuve-du-temps-nbsp-"></a><h2 class="section-title">L’épreuve du temps </h2>



<p>Notre enquête permet d’affirmer que l’expérience du confinement s’apparente à un réel « choc » temporel. Quelles que soient les expériences antérieures de vie, elle marque le basculement imposé vers une nouvelle temporalité, à laquelle les jeunes adultes vont devoir nécessairement s’adapter. Cette expérience du temps peut être qualifiée de « paradoxale », car elle entremêle deux dynamiques contradictoires et simultanées, celles d’un temps accéléré et d’un temps ralenti.  </p>



<p>D’un côté, ce nouveau régime temporel est marqué par une expérience de l’accélération sociale, au sens de Harmut Rosa (Rosa, 2010; Van de Velde, 2020), c’est-à-dire par une compression, sur un temps restreint, de plusieurs changements profonds de vie – individuels et collectifs – et des adaptations rapides qu’ils exigent des individus. Ces changements peuvent être perçus positivement ou négativement, mais ils s’accompagnent dans tous les cas d’un certain nombre d’affects et d’émotions, comme un sentiment d’injustice, de frustration, de solitude ou encore de délivrance. La grande majorité des jeunes adultes interrogé-es font part d’un processus de politisation accélérée liée à cette expérience pandémique. Du fait de la portée des mesures pandémiques, la crise sanitaire a rendu plus visible l’impact du « pouvoir » politique pour de nombreux jeunes, et ses éventuelles lacunes. Selon les situations sociales, cette politisation prend la forme d’une conscience accrue des inégalités, d’une colère politique ou d’un sentiment de révolte, ou au contraire d’un renforcement de la conscience citoyenne.  </p>



<p>Mais de l’autre côté, l’expérience pandémique est également celle d’un temps quotidien qui se fige et se ralentit. Des mesures sanitaires telles que la réduction des contacts, le télétravail ou la baisse de la mobilité font basculer le quotidien des individus dans un temps plus continu, linéaire et introspectif. Une des caractéristiques de ce temps quotidien est d’être marqué par l’absence de dépaysement majeur. Dans nos entretiens, cette expérience va imposer aux jeunes adultes de nouveaux enjeux de structuration de leur temps, tels que le maintien de la motivation dans les études ou au travail. Tous les récits font part d’un temps nouveau à « occuper », hanté par le spectre du désœuvrement. Ce temps linéaire constitue un terreau propice aux dépendances, très souvent évoquées dans nos entretiens, envers les drogues douces ou les jeux vidéo par exemple. De même, face à ce choc de solitude et d’immobilité, les récits font part d’un autre enjeu commun, celui du corps pandémique, qui peut être vécu comme le reflet difficile d’une immobilité imposée, ou au contraire l’objet de stratégies radicales de reprise de contrôle sur soi. </p>



<p>Or, une dimension forte de ce nouveau régime temporel est d’être contraint-e par les circonstances extérieures. Du fait de ce caractère initialement subi, il va exiger des individus un réel travail d’adaptation, dans le but de s’approprier cette nouvelle contrainte et de pouvoir se repositionner comme « sujet », actrice ou acteur de sa vie. « Ce qui était le plus frustrant avec le COVID, c’est de pas avoir le choix », résume ainsi une jeune étudiante de Montréal. Or, nos analyses montrent que cet apprentissage met en jeu de profondes inégalités, et va dépendre fortement des conditions sociales et financières de vie des jeunes adultes. Nous avons identifié trois grands types d’expériences juvéniles du temps pandémique, qui dépendent en grande partie des possibilités de sécurisation des trajectoires : le blocage qui renvoie à l’expérience d’un temps « confisqué », le répit qui correspond au contraire à un temps « retrouvé », et la parenthèse qui renvoie enfin à un temps « suspendu ».  </p>



<a class="subnavigation-anchor" id="blocage-nbsp-"></a><h2 class="section-title">Blocage </h2>



<p>Dans un premier type d’expérience, la pandémie se vit comme un « blocage » et comme une expérience fondamentalement destructrice. Elle induit de multiples pertes — aux niveaux familial, professionnel, social — qui, comme un jeu de dominos, vont toucher toutes les sphères de l’existence jusqu’à affecter les besoins fondamentaux de survie des jeunes adultes et leur capacité à se projeter dans l’avenir. Cette accélération négative crée une forte insécurité existentielle et financière, et place l’individu dans un sentiment de perte de contrôle, qui rend impossible toute appropriation positive de ce temps de vie. L’enjeu fondamental va être de « faire face » à cette chute des perspectives, et aux troubles de santé physique et mentale qu’elle induit. Ces expériences se retrouvent davantage au sein de trajectoires déjà vulnérabilisées, ou marquées par un projet long d’intégration sociale et migratoire, notamment les jeunes migrant-es étudiant-es ou étudiant-es internationaux-ales.  </p>



<p>Une « catastrophe » : c’est ainsi qu’un jeune immigrant de 27 ans, d’origine française et habitant Chateauguay, qualifie le sens que revêt la pandémie dans son parcours de vie. Il a perdu un premier emploi après s’être blessé au travail et avoir dû être hospitalisé, puis malgré un nouvel emploi de livreur, il se retrouve désormais dans une incertitude radicale sur son avenir au Québec du fait d’un blocage dans ses papiers. Il exprime en ces mots son sentiment de mise à l’arrêt : « J’aime la liberté — j’ai tout fait pour être autonome, pour être libre, dans tout ce que j’ai entrepris dans toute ma vie, ça a été ça ! […] Et aujourd’hui ben j’me retrouve à… à être bloqué […]. J’suis bloqué dans mon appartement, j’suis bloqué dans un pays. Je suis bloqué dans mon emploi, je suis bloqué sur tous les points. Bloqué. Sur tout. » </p>



<p>Son récit est symptomatique de ce premier type d’expérience. En venant heurter de plein fouet l’ensemble des engagements existants, la pandémie se vit comme un temps « confisqué », un temps « vide », ou un temps « mort », qui les prive de leur capacité à choisir et à se projeter dans l’avenir. Pour cause, si cette expérience est si difficile, c’est que la pandémie marque un coup d’arrêt brutal à des aspirations fondamentales de vie. Dans ces récits, la crise sanitaire vient remettre en cause la construction d’un projet personnel qui mobilisait totalement les efforts des jeunes adultes, comme un projet d’immigration ou un projet d’entreprise. Alors que ces projets cristallisent de fortes attentes en termes d’émancipation et d’intégration sociale, les individus concernés, coupés dans cet élan de construction, vivent la pandémie comme un « déraillement » et une bifurcation imposée de leur trajectoire, ce qui génère un sentiment d’impuissance et de perte de sens.  </p>



<p>Cette jeune étudiante immigrante de 25 ans évoque cette forme de déprise temporelle et existentielle, marquée par une perte de contrôle radicale, qui la pousse à se replier sur la seule chose qu’elle peut contrôler, à savoir ses relations amoureuses : « L’immigration c’est pas moi qui décide, l’université c’est pas moi qui décide, y’a tout c’est pas moi qui décide, et que ça c’est le seul truc que j’ai le droit de décider, parce que c’est moi et moi seule, c’est comment je décide de vivre des relations amoureuses, et… ouais, j’pense c’est mon seul point d’ancrage, de contrôle, que j’ai dans ma vie en ce moment. »  </p>



<p>Face à ce cumul d’épreuves, l’enjeu principal de ce parcours pandémique devient de « faire face » pour ne pas sombrer. La solitude est fortement présente, sous la forme d’un manque aigu des liens essentiels, mais c’est plutôt l’anxiété, le stress, l’épuisement et la frustration qui dominent les perceptions de la pandémie. « J’ai un peu eu le sentiment de me décomposer psychologiquement… » confie par exemple cette jeune étudiante, qui admet vivre « l’enfer sur terre » et avoir dû faire face à des pensées suicidaires : « c’était du genre quand je me baladais dans la rue, je regardais mes pieds et je me disais : j’espère qu’il y a une voiture qui va me taper, quoi ». Sans accès aisé aux ressources en santé mentale, elle fume très régulièrement du cannabis pour tenir : « mon cerveau s’éteint ».  </p>



<p>Cette angoisse et cette frustration alimentent les sentiments d’injustice et de révolte. On note chez elles et eux une défiance accrue envers le pouvoir ou certaines institutions, associée à des affects de colère sociale. Cette défiance se loge dans le sentiment d’être incompris-es, oublié-es ou maltraité-es par la société et, pour certain-es, d’être confronté-es à l’absence concrète de réponse ou à une forme d’indifférence, alors même que l’on demande du soutien. Pour ces jeunes souvent peu politisé-es initialement, cette confrontation rend visible une certaine injustice et alimente une défiance envers le pouvoir, sans que celui-ci soit nécessairement nommé : « on s’fout de nous ! ».  </p>



<a class="subnavigation-anchor" id="r-pit-nbsp-"></a><h2 class="section-title">Répit </h2>



<p>Pour un second type d’expérience, la pandémie s’apparente au contraire à un « répit » et à une pause bienvenue dans les trajectoires. Elle agit comme une expérience transformatrice, propice à la reformulation de ses choix de vie. Certes, le temps du confinement est associé, comme pour les autres jeunes adultes, à une épreuve de solitude, mais celle-ci est globalement perçue comme positive. Elle permet une prise de distance critique sur les itinéraires passés marqués par une forte pression sociale, familiale ou temporelle, et autorise donc une reprise de contrôle sur sa vie. Cette expérience s’inscrit prioritairement dans des trajectoires sécurisées financièrement par un soutien de l’État ou de la famille, ce qui permet d’engager un travail de réappropriation positive de cette période. </p>



<p> « Une bénédiction », « un temps de repos nécessaire » : ce sont les mots utilisés par cette jeune femme de 27 ans, originaire de Toronto, pour qualifier son expérience de la pandémie. Après avoir perdu les différents emplois qu’elle occupait, elle a reçu la Prestation canadienne d’urgence (PCU). Elle dit faire l’étonnante expérience, pour la première fois de sa vie, d’être « payée à dormir ». Cette période lui a même permis de retrouver l’espoir et de réengager des projets nouveaux de vie : « la COVID m’a donné espoir. C’est comme si je pouvais avoir un redémarrage, un nouveau départ ». Son récit rejoint celui d’autres jeunes adultes, pour lesquel-les la pandémie s’apparente plutôt à un temps « retrouvé ». Ce temps « retrouvé » permet d’entrer dans une « bulle » — bulle familiale ou bulle pour soi —, auparavant difficile à investir. Dans ces situations, le temps pandémique n’enferme pas l’individu, il le délivre, et s’avère au final vécu comme une respiration. </p>



<p>Si cette période peut être réinvestie positivement, c’est que la crise sanitaire vient interrompre des trajectoires souvent marquées par une forte pression temporelle et sociale. La jeune femme torontoise se sent ainsi délivrée du rythme « robotique » qu’elle vivait avec le cumul des emplois partiels, ce qui lui permet de retrouver son humanité : « parce qu’on est pas des robots, on est des humains, faits pour vivre ». C’est le cas également d’un jeune étudiant de 18 ans, vivant dans le quartier Hochelaga à Montréal, dont les études de menuiserie se sont soudainement interrompues, et qui décide après deux mois de confinement de bifurquer vers la musique. Il confie à propos de l’arrêt imposé de la menuiserie : « J’étais content de ça parce ça me tentait pas, mais je le faisais beaucoup pour mes parents, beaucoup pour plaire aux autres ». Il vit cette expérience comme une « pause bien méritée » qui lui a permis avec le recul de faire le choix de devenir musicien professionnel : « C’est ça qui fait au fond que je suis en vie, que j’ai envie de me lever le matin de faire ma journée ». Par le temps nouveau d’introspection qu’elle offre, la pandémie permet de lever la pression antérieure, de « voir clair » et de réinterroger le sens profond de sa trajectoire ainsi que ses choix fondamentaux de vie.  </p>



<p>Ainsi, dans ce type d’expérience, la période est approchée avec une certaine ambivalence. Certes, les aspects négatifs de la solitude sont évoqués, que ce soit le fait de rester enfermé-e dans sa « bulle », les tensions de la promiscuité (pour celles ou ceux qui ne vivent pas seul-es), ou la dureté de l’isolement prolongé. Mais, dans les récits, ces difficultés sont largement compensées par les aspects positifs de la solitude. Aux yeux de ces répondant-es, c’est justement cette solitude nouvelle qui autorise l’individu à prendre davantage « soin de soi » qu’auparavant, à se reconnecter à ses besoins essentiels, à retrouver sa propre « motivation » loin des regards sociaux. La solitude est donc valorisée avant tout comme une expérience transformatrice, permettant de remplacer une bifurcation imposée par une bifurcation choisie.  </p>



<p>Cet optimisme retrouvé au niveau individuel tend à se prolonger au niveau politique. La plupart de celles et ceux qui développent ce type de récit ont reçu une aide financière de l’État ou une autre forme de soutien social, d’autres sont retourné-es vivre chez leurs parents. On note une prise de conscience d’un lien direct à l’État ou à leur communauté, qui va de pair avec le sentiment d’être privilégié-e en cette période d’adversité. Pour ces jeunes souvent peu politisé-es avant la pandémie, cette période va ainsi induire une dynamique nouvelle de politisation, non pas sous une forme partisane, mais plutôt d’un sentiment renforcé d’interdépendance citoyenne et d’une confiance accrue envers les capacités de résilience collective.  </p>



<a class="subnavigation-anchor" id="parenth-se-nbsp-nbsp-"></a><h2 class="section-title">Parenthèse  </h2>



<p>Enfin, un troisième type d’expérience pandémique émerge de ces récits de vie, où la frustration passagère qui exige la mobilisation de stratégies d’adaptation reste pensée comme fondamentalement transitoire. Pour ces jeunes adultes, la pandémie vient certes toucher certaines dimensions de la vie ou freiner certains projets, mais elle ne remet pas réellement en cause l’itinéraire emprunté ni les choix fondamentaux d’existence. Cette expérience caractérise les individus inscrits dans des trajectoires ascensionnelles et relativement stabilisées, marquées par une sécurisation longue des conditions de vie, ce qui permet de conserver une forme de prise sur son parcours et de relativiser son expérience personnelle. </p>



<p> « De la frustration de ne pas pouvoir faire ce qu’on fait habituellement » : c’est ainsi qu’un jeune avocat de Montréal résume son expérience, citant la réduction des activités sportives, des contacts avec les ami-es, des sorties au restaurant. Si la pandémie apporte son lot de désagréments quotidiens, notamment du fait du télétravail partiel qui rend sa motivation plus difficile, il affirme être au final peu affecté négativement par la crise sanitaire par rapport à d’autres, car sa situation lui permet de conserver des liens de prise sur son existence — notamment parce qu’il s’est rapproché de sa compagne — et de se projeter dans l’avenir. Son récit fait écho à d’autres, au sein desquels la crise sanitaire oblige l’individu à déployer des efforts rapides d’adaptation pour poursuivre la trajectoire antérieure, mais où le temps apparaît plutôt « suspendu » avant que la vie puisse reprendre son cours « normal ». </p>



<p>Si cette expérience est celle d’une parenthèse, c’est que la pandémie ne remet pas fondamentalement en cause la voie initialement tracée. Le quotidien change, mais les perspectives d’avenir restent. L’individu peut se projeter dans la continuité d’une trajectoire de vie déjà largement engagée, et souvent stabilisée. Une jeune femme enceinte de 19 ans vivant à Sainte-Anne-des-Monts en Gaspésie raconte par exemple que malgré le fait qu’elle soit contrainte d’envisager autrement son accouchement face à l’absence potentielle de son conjoint (« c’est plate »), elle reste inscrite dans une dynamique positive de vie. Même si cette période entraîne une légère reformulation des projets d’avenir, il ne s’agit pas, pour ces jeunes adultes, d’un « déraillement » des parcours comme dans les autres types d’expérience. La bifurcation n’est pas désirée en tant que telle, c’est donc plutôt l’ajustement qui domine ici.  </p>



<p>La frustration évoquée est davantage une frustration quotidienne, les efforts de l’individu se concentrent alors sur des stratégies d’adaptation au jour le jour afin de juguler certaines difficultés comme la solitude, la baisse de motivation, ou la structuration de son temps en télétravail. </p>



<p>L’enjeu principal est donc de « tenir bon » ou de « maintenir le cap », le temps que la vie individuelle et collective puisse reprendre son cours. Les récits évoquent des stratégies telles que la reprise du sport pour garder le contrôle, l’adoption d’un animal de compagnie pour contrer les effets de la solitude ou le repli vers des liens essentiels, souvent conjugaux ou amicaux, qui permettent de conserver une prise sur le quotidien. Mentionnons enfin l’existence de fortes stratégies de relativisation, où le fait de se savoir sécurisé-e dans sa trajectoire permet de relativiser sa propre expérience de la pandémie et de se sentir davantage protégé-e par rapport à d’autres. « Je suis pas à plaindre vraiment. Dans toutes les sphères de ma vie, je suis vraiment chanceuse, bien entourée. T’sais j’ai mon chien, mon conjoint, je suis financièrement confortable », confie ainsi une doctorante en psychologie de Montréal, âgée de 25 ans, qui a pu poursuivre son cheminement doctoral pendant la pandémie même si elle a très fortement souffert de la solitude.  </p>



<p>Tout en renforçant la conscience de leurs propres privilèges, cette expérience développe leur conscience de certaines injustices sociales, raciales ou genrées. Pour ces jeunes adultes souvent très informé-es, la pandémie vient ainsi confirmer une dynamique de politisation antérieure, en rendant encore plus visibles les différentes expériences de la crise, et en exacerbant leur sensibilité aux inégalités de destin.  </p>



<a class="subnavigation-anchor" id="ancrages-nbsp-"></a><h2 class="section-title">Ancrages </h2>



<p>Rappelons que ces expériences doivent être lues de façon dynamique sur le temps long du confinement. Certain-es jeunes adultes peuvent par exemple initialement faire l’expérience du répit, pour basculer progressivement vers la parenthèse, voire le blocage. Ces différentes figures permettent d’identifier les principaux facteurs déterminant l’expérience positive ou négative associée à la pandémie. Nous pouvons insister d’une part sur l’importance cruciale d’une sécurisation financière des parcours des jeunes adultes qui, à elle seule, ouvre la possibilité de mobiliser des stratégies d’adaptation, des choix de bifurcation, ou de réinvestir positivement la période. Notre enquête révèle également le rôle déterminant des ancrages relationnels et des liens familiers, qui permettent de conserver des points essentiels de prise sur son existence. Au final, les jeunes adultes les plus affecté-es par la pandémie sont celles et ceux qui sont touché-es dans leurs conditions mêmes de survie et éloigné-es des sources de solidarités, qu’elles soient familiales ou étatiques, notamment les jeunes en situation d’immigration et les jeunes non financé-es. Au regard de notre enquête, ce sont celles et ceux-là qui risquent le plus aujourd’hui de vivre des bifurcations radicales et négatives, et que pourraient cibler davantage les politiques étatiques, les interventions sociales et les ressources d’accompagnement en santé mentale.  </p>
</section>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
</svg> Suivre</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
</svg> Pro</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
</svg> Email</a> •
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
</svg> Légal</abbr>
</p>
<template id="theme-selector">
<form>
<fieldset>
<legend><svg class="icon icon-brightness-contrast">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
</svg> Thème</legend>
<label>
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
</label>
<label>
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé
</label>
<label>
<input type="radio" value="light" name="chosen-color-scheme"> Clair
</label>
</fieldset>
</form>
</template>
</footer>
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild
themeSelectorTemplate.replaceWith(form)

form.addEventListener('change', (e) => {
const chosenColorScheme = e.target.value
localStorage.setItem('theme', chosenColorScheme)
toggleTheme(chosenColorScheme)
})

const selectedTheme = localStorage.getItem('theme')
if (selectedTheme && selectedTheme !== 'undefined') {
form.querySelector(`[value="${selectedTheme}"]`).checked = true
}
}

const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
window.addEventListener('load', () => {
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const cssRule of styleSheet.cssRules) {
if (cssRule.type !== CSSRule.MEDIA_RULE) {
continue
}
// WARNING: Safari does not have/supports `conditionText`.
if (cssRule.conditionText) {
if (cssRule.conditionText !== prefersColorSchemeDark) {
continue
}
} else {
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
continue
}
}
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
}

// WARNING: do not try to insert a Rule to a styleSheet you are
// currently iterating on, otherwise the browser will be stuck
// in a infinite loop…
for (const mediaRule of mediaRules) {
styleSheet.insertRule(mediaRule.cssText)
hasDarkRules = true
}
}
if (hasDarkRules) {
loadThemeForm('#theme-selector')
}
})
</script>
</body>
</html>

+ 127
- 0
cache/2023/1ae1896e5eb2ccc03f2295f38090048e/index.md View File

@@ -0,0 +1,127 @@
title: Être jeune et vivre une pandémie
url: https://cremis.ca/publications/articles-et-medias/etre-jeune-et-vivre-une-pandemie/
hash_url: 1ae1896e5eb2ccc03f2295f38090048e

<section class="page__content with-subnavigation">
<p>Comment « devenir adulte » en temps de pandémie? Au Québec, la période du confinement strict – de mars à juin 2020 – s’est traduite par de nombreuses pertes d’emploi chez les jeunes, en particulier chez les moins diplômé-es, les jeunes femmes et les travailleurs-euses à temps partiel (Bourdon et al., 2020; St-Denis et al., 2020).  De plus, certaines enquêtes ciblées ont permis de prendre la mesure des conséquences de la pandémie sur les jeunes adultes en matière de santé mentale : en 2021 au Québec, près d’un-e jeune sur deux présentait des symptômes majeurs d’anxiété et de dépression (Université de Sherbrooke, 2021), ce qui rejoint des ordres de grandeur relevés au Canada anglophone (El-Gabalawy et Sommer, 2021). On observe des tendances comparables au sein d’autres sociétés, telles que le Royaume-Uni (Bu et al., 2020) ou la France (Observatoire de la vie étudiante, 2021). À cet égard, l’Organisation de coopération et de développement économiques (OCDE) alerte sur les effets sociaux de la pandémie sur les jeunes générations, que ce soit en termes de pauvreté économique ou d’augmentation du mal-être (OCDE, 2020).  </p>



<p>En prolongement de ces travaux, l’objectif de cet article est de livrer les premiers résultats d’une enquête qualitative sur la diversité des expériences juvéniles de la pandémie. À partir de 48 récits de vie, conduits de l’automne 2020 à l’été 2021 auprès de jeunes âgé-es de 18 à 30 ans au Québec et en Ontario, nous nous attachons à comprendre le « sens » que peut prendre la pandémie au sein des trajectoires longues du « devenir adulte », et la façon dont elle a affecté différents domaines de l’existence. </p>



<p>Sans prétendre à la représentativité, nous avons privilégié une double ouverture de l’échantillon, à la fois sociale et territoriale. D’une part, cette enquête a eu lieu à la fois en milieu urbain et en région plus éloignée, et dans deux provinces contrastées : elle rassemblé 16 entretiens conduits à Montréal, 16 en Gaspésie dans la région de Sainte-Anne-des-Monts, et 16 à Toronto. D’autre part, l’échantillon comprend à la fois des jeunes salarié-es, des étudiant-es du supérieur, des étudiant-es en CÉGEP, et des jeunes en situation de précarité. Ces entretiens ont visé à saisir la façon dont la crise sanitaire vient remodeler les parcours de jeunesse, à la fois dans leurs dimensions sociales, familiales et politiques.  </p>



<p>À l’instar d’autres enquêtes réalisées sur le confinement (Chauvin et al., 2021), nous mettons donc au cœur de notre analyse la question du temps, pour identifier la façon dont la pandémie vient bouleverser à la fois le temps court du quotidien, mais aussi, potentiellement, le temps long des existences. Dans cette perspective, nous nous appuyons sur l’approche des parcours de vie, théorisée par Glen H. Elder (Elder et al., 2003). Cette approche invite à saisir la façon dont l’expérience de la pandémie met en jeu un rapport au passé, au présent et à l’avenir, et donc à prendre en compte à la fois les vulnérabilités antérieures, les conditions sociales d’existence ou les perspectives inégales de vie. Cette perspective invite également à approcher la multidimensionnalité des parcours, c’est-à-dire à analyser la façon dont la crise sanitaire peut venir affecter les différentes dimensions de l’existence, comme les sphères familiales, amicales, professionnelles ou sociales.  </p>



<a class="subnavigation-anchor" id="l-preuve-du-temps-nbsp-"></a><h2 class="section-title">L’épreuve du temps </h2>



<p>Notre enquête permet d’affirmer que l’expérience du confinement s’apparente à un réel « choc » temporel. Quelles que soient les expériences antérieures de vie, elle marque le basculement imposé vers une nouvelle temporalité, à laquelle les jeunes adultes vont devoir nécessairement s’adapter. Cette expérience du temps peut être qualifiée de « paradoxale », car elle entremêle deux dynamiques contradictoires et simultanées, celles d’un temps accéléré et d’un temps ralenti.  </p>



<p>D’un côté, ce nouveau régime temporel est marqué par une expérience de l’accélération sociale, au sens de Harmut Rosa (Rosa, 2010; Van de Velde, 2020), c’est-à-dire par une compression, sur un temps restreint, de plusieurs changements profonds de vie – individuels et collectifs – et des adaptations rapides qu’ils exigent des individus. Ces changements peuvent être perçus positivement ou négativement, mais ils s’accompagnent dans tous les cas d’un certain nombre d’affects et d’émotions, comme un sentiment d’injustice, de frustration, de solitude ou encore de délivrance. La grande majorité des jeunes adultes interrogé-es font part d’un processus de politisation accélérée liée à cette expérience pandémique. Du fait de la portée des mesures pandémiques, la crise sanitaire a rendu plus visible l’impact du « pouvoir » politique pour de nombreux jeunes, et ses éventuelles lacunes. Selon les situations sociales, cette politisation prend la forme d’une conscience accrue des inégalités, d’une colère politique ou d’un sentiment de révolte, ou au contraire d’un renforcement de la conscience citoyenne.  </p>



<p>Mais de l’autre côté, l’expérience pandémique est également celle d’un temps quotidien qui se fige et se ralentit. Des mesures sanitaires telles que la réduction des contacts, le télétravail ou la baisse de la mobilité font basculer le quotidien des individus dans un temps plus continu, linéaire et introspectif. Une des caractéristiques de ce temps quotidien est d’être marqué par l’absence de dépaysement majeur. Dans nos entretiens, cette expérience va imposer aux jeunes adultes de nouveaux enjeux de structuration de leur temps, tels que le maintien de la motivation dans les études ou au travail. Tous les récits font part d’un temps nouveau à « occuper », hanté par le spectre du désœuvrement. Ce temps linéaire constitue un terreau propice aux dépendances, très souvent évoquées dans nos entretiens, envers les drogues douces ou les jeux vidéo par exemple. De même, face à ce choc de solitude et d’immobilité, les récits font part d’un autre enjeu commun, celui du corps pandémique, qui peut être vécu comme le reflet difficile d’une immobilité imposée, ou au contraire l’objet de stratégies radicales de reprise de contrôle sur soi. </p>



<p>Or, une dimension forte de ce nouveau régime temporel est d’être contraint-e par les circonstances extérieures. Du fait de ce caractère initialement subi, il va exiger des individus un réel travail d’adaptation, dans le but de s’approprier cette nouvelle contrainte et de pouvoir se repositionner comme « sujet », actrice ou acteur de sa vie. « Ce qui était le plus frustrant avec le COVID, c’est de pas avoir le choix », résume ainsi une jeune étudiante de Montréal. Or, nos analyses montrent que cet apprentissage met en jeu de profondes inégalités, et va dépendre fortement des conditions sociales et financières de vie des jeunes adultes. Nous avons identifié trois grands types d’expériences juvéniles du temps pandémique, qui dépendent en grande partie des possibilités de sécurisation des trajectoires : le blocage qui renvoie à l’expérience d’un temps « confisqué », le répit qui correspond au contraire à un temps « retrouvé », et la parenthèse qui renvoie enfin à un temps « suspendu ».  </p>



<a class="subnavigation-anchor" id="blocage-nbsp-"></a><h2 class="section-title">Blocage </h2>



<p>Dans un premier type d’expérience, la pandémie se vit comme un « blocage » et comme une expérience fondamentalement destructrice. Elle induit de multiples pertes — aux niveaux familial, professionnel, social — qui, comme un jeu de dominos, vont toucher toutes les sphères de l’existence jusqu’à affecter les besoins fondamentaux de survie des jeunes adultes et leur capacité à se projeter dans l’avenir. Cette accélération négative crée une forte insécurité existentielle et financière, et place l’individu dans un sentiment de perte de contrôle, qui rend impossible toute appropriation positive de ce temps de vie. L’enjeu fondamental va être de « faire face » à cette chute des perspectives, et aux troubles de santé physique et mentale qu’elle induit. Ces expériences se retrouvent davantage au sein de trajectoires déjà vulnérabilisées, ou marquées par un projet long d’intégration sociale et migratoire, notamment les jeunes migrant-es étudiant-es ou étudiant-es internationaux-ales.  </p>



<p>Une « catastrophe » : c’est ainsi qu’un jeune immigrant de 27 ans, d’origine française et habitant Chateauguay, qualifie le sens que revêt la pandémie dans son parcours de vie. Il a perdu un premier emploi après s’être blessé au travail et avoir dû être hospitalisé, puis malgré un nouvel emploi de livreur, il se retrouve désormais dans une incertitude radicale sur son avenir au Québec du fait d’un blocage dans ses papiers. Il exprime en ces mots son sentiment de mise à l’arrêt : « J’aime la liberté — j’ai tout fait pour être autonome, pour être libre, dans tout ce que j’ai entrepris dans toute ma vie, ça a été ça ! […] Et aujourd’hui ben j’me retrouve à… à être bloqué […]. J’suis bloqué dans mon appartement, j’suis bloqué dans un pays. Je suis bloqué dans mon emploi, je suis bloqué sur tous les points. Bloqué. Sur tout. » </p>



<p>Son récit est symptomatique de ce premier type d’expérience. En venant heurter de plein fouet l’ensemble des engagements existants, la pandémie se vit comme un temps « confisqué », un temps « vide », ou un temps « mort », qui les prive de leur capacité à choisir et à se projeter dans l’avenir. Pour cause, si cette expérience est si difficile, c’est que la pandémie marque un coup d’arrêt brutal à des aspirations fondamentales de vie. Dans ces récits, la crise sanitaire vient remettre en cause la construction d’un projet personnel qui mobilisait totalement les efforts des jeunes adultes, comme un projet d’immigration ou un projet d’entreprise. Alors que ces projets cristallisent de fortes attentes en termes d’émancipation et d’intégration sociale, les individus concernés, coupés dans cet élan de construction, vivent la pandémie comme un « déraillement » et une bifurcation imposée de leur trajectoire, ce qui génère un sentiment d’impuissance et de perte de sens.  </p>



<p>Cette jeune étudiante immigrante de 25 ans évoque cette forme de déprise temporelle et existentielle, marquée par une perte de contrôle radicale, qui la pousse à se replier sur la seule chose qu’elle peut contrôler, à savoir ses relations amoureuses : « L’immigration c’est pas moi qui décide, l’université c’est pas moi qui décide, y’a tout c’est pas moi qui décide, et que ça c’est le seul truc que j’ai le droit de décider, parce que c’est moi et moi seule, c’est comment je décide de vivre des relations amoureuses, et… ouais, j’pense c’est mon seul point d’ancrage, de contrôle, que j’ai dans ma vie en ce moment. »  </p>



<p>Face à ce cumul d’épreuves, l’enjeu principal de ce parcours pandémique devient de « faire face » pour ne pas sombrer. La solitude est fortement présente, sous la forme d’un manque aigu des liens essentiels, mais c’est plutôt l’anxiété, le stress, l’épuisement et la frustration qui dominent les perceptions de la pandémie. « J’ai un peu eu le sentiment de me décomposer psychologiquement… » confie par exemple cette jeune étudiante, qui admet vivre « l’enfer sur terre » et avoir dû faire face à des pensées suicidaires : « c’était du genre quand je me baladais dans la rue, je regardais mes pieds et je me disais : j’espère qu’il y a une voiture qui va me taper, quoi ». Sans accès aisé aux ressources en santé mentale, elle fume très régulièrement du cannabis pour tenir : « mon cerveau s’éteint ».  </p>



<p>Cette angoisse et cette frustration alimentent les sentiments d’injustice et de révolte. On note chez elles et eux une défiance accrue envers le pouvoir ou certaines institutions, associée à des affects de colère sociale. Cette défiance se loge dans le sentiment d’être incompris-es, oublié-es ou maltraité-es par la société et, pour certain-es, d’être confronté-es à l’absence concrète de réponse ou à une forme d’indifférence, alors même que l’on demande du soutien. Pour ces jeunes souvent peu politisé-es initialement, cette confrontation rend visible une certaine injustice et alimente une défiance envers le pouvoir, sans que celui-ci soit nécessairement nommé : « on s’fout de nous ! ».  </p>



<a class="subnavigation-anchor" id="r-pit-nbsp-"></a><h2 class="section-title">Répit </h2>



<p>Pour un second type d’expérience, la pandémie s’apparente au contraire à un « répit » et à une pause bienvenue dans les trajectoires. Elle agit comme une expérience transformatrice, propice à la reformulation de ses choix de vie. Certes, le temps du confinement est associé, comme pour les autres jeunes adultes, à une épreuve de solitude, mais celle-ci est globalement perçue comme positive. Elle permet une prise de distance critique sur les itinéraires passés marqués par une forte pression sociale, familiale ou temporelle, et autorise donc une reprise de contrôle sur sa vie. Cette expérience s’inscrit prioritairement dans des trajectoires sécurisées financièrement par un soutien de l’État ou de la famille, ce qui permet d’engager un travail de réappropriation positive de cette période. </p>



<p> « Une bénédiction », « un temps de repos nécessaire » : ce sont les mots utilisés par cette jeune femme de 27 ans, originaire de Toronto, pour qualifier son expérience de la pandémie. Après avoir perdu les différents emplois qu’elle occupait, elle a reçu la Prestation canadienne d’urgence (PCU). Elle dit faire l’étonnante expérience, pour la première fois de sa vie, d’être « payée à dormir ». Cette période lui a même permis de retrouver l’espoir et de réengager des projets nouveaux de vie : « la COVID m’a donné espoir. C’est comme si je pouvais avoir un redémarrage, un nouveau départ ». Son récit rejoint celui d’autres jeunes adultes, pour lesquel-les la pandémie s’apparente plutôt à un temps « retrouvé ». Ce temps « retrouvé » permet d’entrer dans une « bulle » — bulle familiale ou bulle pour soi —, auparavant difficile à investir. Dans ces situations, le temps pandémique n’enferme pas l’individu, il le délivre, et s’avère au final vécu comme une respiration. </p>



<p>Si cette période peut être réinvestie positivement, c’est que la crise sanitaire vient interrompre des trajectoires souvent marquées par une forte pression temporelle et sociale. La jeune femme torontoise se sent ainsi délivrée du rythme « robotique » qu’elle vivait avec le cumul des emplois partiels, ce qui lui permet de retrouver son humanité : « parce qu’on est pas des robots, on est des humains, faits pour vivre ». C’est le cas également d’un jeune étudiant de 18 ans, vivant dans le quartier Hochelaga à Montréal, dont les études de menuiserie se sont soudainement interrompues, et qui décide après deux mois de confinement de bifurquer vers la musique. Il confie à propos de l’arrêt imposé de la menuiserie : « J’étais content de ça parce ça me tentait pas, mais je le faisais beaucoup pour mes parents, beaucoup pour plaire aux autres ». Il vit cette expérience comme une « pause bien méritée » qui lui a permis avec le recul de faire le choix de devenir musicien professionnel : « C’est ça qui fait au fond que je suis en vie, que j’ai envie de me lever le matin de faire ma journée ». Par le temps nouveau d’introspection qu’elle offre, la pandémie permet de lever la pression antérieure, de « voir clair » et de réinterroger le sens profond de sa trajectoire ainsi que ses choix fondamentaux de vie.  </p>



<p>Ainsi, dans ce type d’expérience, la période est approchée avec une certaine ambivalence. Certes, les aspects négatifs de la solitude sont évoqués, que ce soit le fait de rester enfermé-e dans sa « bulle », les tensions de la promiscuité (pour celles ou ceux qui ne vivent pas seul-es), ou la dureté de l’isolement prolongé. Mais, dans les récits, ces difficultés sont largement compensées par les aspects positifs de la solitude. Aux yeux de ces répondant-es, c’est justement cette solitude nouvelle qui autorise l’individu à prendre davantage « soin de soi » qu’auparavant, à se reconnecter à ses besoins essentiels, à retrouver sa propre « motivation » loin des regards sociaux. La solitude est donc valorisée avant tout comme une expérience transformatrice, permettant de remplacer une bifurcation imposée par une bifurcation choisie.  </p>



<p>Cet optimisme retrouvé au niveau individuel tend à se prolonger au niveau politique. La plupart de celles et ceux qui développent ce type de récit ont reçu une aide financière de l’État ou une autre forme de soutien social, d’autres sont retourné-es vivre chez leurs parents. On note une prise de conscience d’un lien direct à l’État ou à leur communauté, qui va de pair avec le sentiment d’être privilégié-e en cette période d’adversité. Pour ces jeunes souvent peu politisé-es avant la pandémie, cette période va ainsi induire une dynamique nouvelle de politisation, non pas sous une forme partisane, mais plutôt d’un sentiment renforcé d’interdépendance citoyenne et d’une confiance accrue envers les capacités de résilience collective.  </p>



<a class="subnavigation-anchor" id="parenth-se-nbsp-nbsp-"></a><h2 class="section-title">Parenthèse  </h2>



<p>Enfin, un troisième type d’expérience pandémique émerge de ces récits de vie, où la frustration passagère qui exige la mobilisation de stratégies d’adaptation reste pensée comme fondamentalement transitoire. Pour ces jeunes adultes, la pandémie vient certes toucher certaines dimensions de la vie ou freiner certains projets, mais elle ne remet pas réellement en cause l’itinéraire emprunté ni les choix fondamentaux d’existence. Cette expérience caractérise les individus inscrits dans des trajectoires ascensionnelles et relativement stabilisées, marquées par une sécurisation longue des conditions de vie, ce qui permet de conserver une forme de prise sur son parcours et de relativiser son expérience personnelle. </p>



<p> « De la frustration de ne pas pouvoir faire ce qu’on fait habituellement » : c’est ainsi qu’un jeune avocat de Montréal résume son expérience, citant la réduction des activités sportives, des contacts avec les ami-es, des sorties au restaurant. Si la pandémie apporte son lot de désagréments quotidiens, notamment du fait du télétravail partiel qui rend sa motivation plus difficile, il affirme être au final peu affecté négativement par la crise sanitaire par rapport à d’autres, car sa situation lui permet de conserver des liens de prise sur son existence — notamment parce qu’il s’est rapproché de sa compagne — et de se projeter dans l’avenir. Son récit fait écho à d’autres, au sein desquels la crise sanitaire oblige l’individu à déployer des efforts rapides d’adaptation pour poursuivre la trajectoire antérieure, mais où le temps apparaît plutôt « suspendu » avant que la vie puisse reprendre son cours « normal ». </p>



<p>Si cette expérience est celle d’une parenthèse, c’est que la pandémie ne remet pas fondamentalement en cause la voie initialement tracée. Le quotidien change, mais les perspectives d’avenir restent. L’individu peut se projeter dans la continuité d’une trajectoire de vie déjà largement engagée, et souvent stabilisée. Une jeune femme enceinte de 19 ans vivant à Sainte-Anne-des-Monts en Gaspésie raconte par exemple que malgré le fait qu’elle soit contrainte d’envisager autrement son accouchement face à l’absence potentielle de son conjoint (« c’est plate »), elle reste inscrite dans une dynamique positive de vie. Même si cette période entraîne une légère reformulation des projets d’avenir, il ne s’agit pas, pour ces jeunes adultes, d’un « déraillement » des parcours comme dans les autres types d’expérience. La bifurcation n’est pas désirée en tant que telle, c’est donc plutôt l’ajustement qui domine ici.  </p>



<p>La frustration évoquée est davantage une frustration quotidienne, les efforts de l’individu se concentrent alors sur des stratégies d’adaptation au jour le jour afin de juguler certaines difficultés comme la solitude, la baisse de motivation, ou la structuration de son temps en télétravail. </p>



<p>L’enjeu principal est donc de « tenir bon » ou de « maintenir le cap », le temps que la vie individuelle et collective puisse reprendre son cours. Les récits évoquent des stratégies telles que la reprise du sport pour garder le contrôle, l’adoption d’un animal de compagnie pour contrer les effets de la solitude ou le repli vers des liens essentiels, souvent conjugaux ou amicaux, qui permettent de conserver une prise sur le quotidien. Mentionnons enfin l’existence de fortes stratégies de relativisation, où le fait de se savoir sécurisé-e dans sa trajectoire permet de relativiser sa propre expérience de la pandémie et de se sentir davantage protégé-e par rapport à d’autres. « Je suis pas à plaindre vraiment. Dans toutes les sphères de ma vie, je suis vraiment chanceuse, bien entourée. T’sais j’ai mon chien, mon conjoint, je suis financièrement confortable », confie ainsi une doctorante en psychologie de Montréal, âgée de 25 ans, qui a pu poursuivre son cheminement doctoral pendant la pandémie même si elle a très fortement souffert de la solitude.  </p>



<p>Tout en renforçant la conscience de leurs propres privilèges, cette expérience développe leur conscience de certaines injustices sociales, raciales ou genrées. Pour ces jeunes adultes souvent très informé-es, la pandémie vient ainsi confirmer une dynamique de politisation antérieure, en rendant encore plus visibles les différentes expériences de la crise, et en exacerbant leur sensibilité aux inégalités de destin.  </p>



<a class="subnavigation-anchor" id="ancrages-nbsp-"></a><h2 class="section-title">Ancrages </h2>



<p>Rappelons que ces expériences doivent être lues de façon dynamique sur le temps long du confinement. Certain-es jeunes adultes peuvent par exemple initialement faire l’expérience du répit, pour basculer progressivement vers la parenthèse, voire le blocage. Ces différentes figures permettent d’identifier les principaux facteurs déterminant l’expérience positive ou négative associée à la pandémie. Nous pouvons insister d’une part sur l’importance cruciale d’une sécurisation financière des parcours des jeunes adultes qui, à elle seule, ouvre la possibilité de mobiliser des stratégies d’adaptation, des choix de bifurcation, ou de réinvestir positivement la période. Notre enquête révèle également le rôle déterminant des ancrages relationnels et des liens familiers, qui permettent de conserver des points essentiels de prise sur son existence. Au final, les jeunes adultes les plus affecté-es par la pandémie sont celles et ceux qui sont touché-es dans leurs conditions mêmes de survie et éloigné-es des sources de solidarités, qu’elles soient familiales ou étatiques, notamment les jeunes en situation d’immigration et les jeunes non financé-es. Au regard de notre enquête, ce sont celles et ceux-là qui risquent le plus aujourd’hui de vivre des bifurcations radicales et négatives, et que pourraient cibler davantage les politiques étatiques, les interventions sociales et les ressources d’accompagnement en santé mentale.  </p>
</section>

+ 178
- 0
cache/2023/2f4b8ec8f6fd2cbc48a04dcac2cc7d24/index.html View File

@@ -0,0 +1,178 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the `title` element
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>You don’t have to remember everything to be a good programmer (archive) — David Larlet</title>
<meta name="description" content="Publication mise en cache pour en conserver une trace.">
<!-- That good ol' feed, subscribe :). -->
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f7f7f7">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<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>
<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>
<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>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
themeName === 'dark'
)
document.documentElement.classList.toggle(
'forced-light',
themeName === 'light'
)
}
const selectedTheme = localStorage.getItem('theme')
if (selectedTheme !== 'undefined') {
toggleTheme(selectedTheme)
}
</script>

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://gomakethings.com/you-dont-have-to-remember-everything-to-be-a-good-programmer/">

<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">


<article>
<header>
<h1>You don’t have to remember everything to be a good programmer</h1>
</header>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="https://gomakethings.com/you-dont-have-to-remember-everything-to-be-a-good-programmer/" title="Lien vers le contenu original">Source originale</a>
</p>
</nav>
<hr>
<p>A common challenge I hear from people who are learning to code is how hard it is to <em>remember all the things</em>.</p>

<p>One thing you’ll learn as you get deeper into programming is that even senior developers look stuff up ALL THE TIME.</p>

<p>It’s important to remember concepts and high level approaches, but don’t worry about remembering the details. You can always look that stuff up when you need it.</p>

<p>Hell, <a href="https://vanillajstoolkit.com">I built an entire website of regularly used code snippets</a> to make it easier for to copy/paste and look up common stuff I was using frequently.</p>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
</svg> Suivre</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
</svg> Pro</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
</svg> Email</a> •
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
</svg> Légal</abbr>
</p>
<template id="theme-selector">
<form>
<fieldset>
<legend><svg class="icon icon-brightness-contrast">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
</svg> Thème</legend>
<label>
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
</label>
<label>
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé
</label>
<label>
<input type="radio" value="light" name="chosen-color-scheme"> Clair
</label>
</fieldset>
</form>
</template>
</footer>
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild
themeSelectorTemplate.replaceWith(form)

form.addEventListener('change', (e) => {
const chosenColorScheme = e.target.value
localStorage.setItem('theme', chosenColorScheme)
toggleTheme(chosenColorScheme)
})

const selectedTheme = localStorage.getItem('theme')
if (selectedTheme && selectedTheme !== 'undefined') {
form.querySelector(`[value="${selectedTheme}"]`).checked = true
}
}

const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
window.addEventListener('load', () => {
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const cssRule of styleSheet.cssRules) {
if (cssRule.type !== CSSRule.MEDIA_RULE) {
continue
}
// WARNING: Safari does not have/supports `conditionText`.
if (cssRule.conditionText) {
if (cssRule.conditionText !== prefersColorSchemeDark) {
continue
}
} else {
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
continue
}
}
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
}

// WARNING: do not try to insert a Rule to a styleSheet you are
// currently iterating on, otherwise the browser will be stuck
// in a infinite loop…
for (const mediaRule of mediaRules) {
styleSheet.insertRule(mediaRule.cssText)
hasDarkRules = true
}
}
if (hasDarkRules) {
loadThemeForm('#theme-selector')
}
})
</script>
</body>
</html>

+ 11
- 0
cache/2023/2f4b8ec8f6fd2cbc48a04dcac2cc7d24/index.md View File

@@ -0,0 +1,11 @@
title: You don’t have to remember everything to be a good programmer
url: https://gomakethings.com/you-dont-have-to-remember-everything-to-be-a-good-programmer/
hash_url: 2f4b8ec8f6fd2cbc48a04dcac2cc7d24

<p>A common challenge I hear from people who are learning to code is how hard it is to <em>remember all the things</em>.</p>

<p>One thing you’ll learn as you get deeper into programming is that even senior developers look stuff up ALL THE TIME.</p>

<p>It’s important to remember concepts and high level approaches, but don’t worry about remembering the details. You can always look that stuff up when you need it.</p>

<p>Hell, <a href="https://vanillajstoolkit.com">I built an entire website of regularly used code snippets</a> to make it easier for to copy/paste and look up common stuff I was using frequently.</p>

+ 222
- 0
cache/2023/b5acd8bbf209345ff300ea8c10c44181/index.html View File

@@ -0,0 +1,222 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the `title` element
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>Retiring Pinafore (archive) — David Larlet</title>
<meta name="description" content="Publication mise en cache pour en conserver une trace.">
<!-- That good ol' feed, subscribe :). -->
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f7f7f7">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<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>
<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>
<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>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
themeName === 'dark'
)
document.documentElement.classList.toggle(
'forced-light',
themeName === 'light'
)
}
const selectedTheme = localStorage.getItem('theme')
if (selectedTheme !== 'undefined') {
toggleTheme(selectedTheme)
}
</script>

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://nolanlawson.com/2023/01/09/retiring-pinafore/">

<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">


<article>
<header>
<h1>Retiring Pinafore</h1>
</header>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="https://nolanlawson.com/2023/01/09/retiring-pinafore/" title="Lien vers le contenu original">Source originale</a>
</p>
</nav>
<hr>
<p>Five years ago, I started <a href="https://nolanlawson.com/2018/04/09/introducing-pinafore-for-mastodon/">a journey</a> to build a better Mastodon client – one focused on performance and simplicity. And I did! Pinafore is the main Mastodon client I’ve used myself since I first released it.</p>
<p>After five years, though, my relationship with social media <a href="https://nolanlawson.com/2022/11/22/thoughts-on-mastodon/">has changed</a>, and it’s time for me to put Pinafore out to pasture. The <a href="https://pinafore.social">pinafore.social</a> website will still work, but I’ve marked <a href="https://github.com/nolanlawson/pinafore">the repo</a> as unmaintained.</p>
<h2>Why retire Pinafore?</h2>
<p>I don’t have the energy to do this anymore. Pinafore has gone from being a fun side project to being a source of dread for me. There is a constant stream of bug reports, feature requests, and pull requests to manage, and I just don’t want to spend my free time doing this anymore.</p>
<p>By the way, this is not my first rodeo. Read <a href="https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/">this post</a> on my breakup with another open-source project.</p>
<h2>Why not pass it off to a new maintainer?</h2>
<p>Running a fediverse client requires trust. People who use Pinafore are trusting me to handle their data securely. As such, I’ve been meticulous about using <a href="https://observatory.mozilla.org/analyze/pinafore.social">good security headers</a> and making <a href="https://github.com/nolanlawson/pinafore/issues/139">pro-privacy decisions</a>. A new maintainer (through malice or ignorance) could add new functionality that compromises on security or privacy, essentially trading on my good name while harming users.</p>
<p>Over the years, I have had <a href="https://github.com/nolanlawson/pinafore/issues/1886">lots</a> <a href="https://github.com/nolanlawson/pinafore/issues/2339">of</a> <a href="https://github.com/nolanlawson/pinafore/issues/2261">feature</a> <a href="https://github.com/nolanlawson/pinafore/issues/1671">requests</a> that would inadvertently cause a privacy or security leak, and I’ve pushed back on every single one. (E.g. “Why not contact third-party servers to show the full favorite/boost count?” Well, because users may trust their home server, but that doesn’t mean they trust random third-party servers.)</p>
<p>Rather than trust that a new maintainer will keep these high standards in place, I’d rather put Pinafore in a frozen state.</p>
<h2>Why not shut it down entirely?</h2>
<p>Thanks to <a href="https://vercel.com">Vercel’s</a> generous free tier, Pinafore costs me $0 per month to run. It’s just static HTML/CSS/JS files, after all.</p>
<h2>Why are you the sole maintainer?</h2>
<p>I’m not – there have been <a href="https://github.com/nolanlawson/pinafore/graphs/contributors">tons</a> of contributions through the years. But for the most part, these have been “drive-by” in nature (nothing wrong with that!), rather than someone deeply learning the codebase end-to-end.</p>
<p>I suspect one of the reasons for this is that Pinafore is written in Svelte v2 and <a href="https://sapper.svelte.dev/">Sapper</a> – both of which are deprecated in favor of Svelte v3 and <a href="https://kit.svelte.dev/">SvelteKit</a>. Not only is there <a href="https://github.com/sveltejs/svelte/issues/2462">no migration path</a> from Svelte v2 to v3, but <a href="https://kit.svelte.dev/docs/migrating">there isn’t one</a> from Sapper to SvelteKit either. (And on top of that, I had to <a href="https://github.com/nolanlawson/sapper">fork Sapper</a> pretty heavily.) Anyone making a bet on learning Pinafore’s tech stack is investing in a dead framework, so it’s not very attractive for new maintainers.</p>
<p>So why didn’t I bother updating it? Well, it’s a lot of work to manually migrate 200+ components to what is essentially a new framework. And plus, as far as I could tell, it would be a pure DX (Developer Experience) improvement, not a UX (User Experience) improvement. (I just wouldn’t be using any of SvelteKit’s new features, and Svelte v3 doesn’t seem to have massive UX improvements over Svelte v2.)</p>
<h2>What did you learn while writing Pinafore?</h2>
<p>Now here’s an interesting question! And one that may be useful for those building their own Mastodon (or fediverse) clients. It is my sincerest wish that Pinafore inspires other developers to build their own (and better!) clients.</p>
<h3>API and offline</h3>
<p>First off, <a href="https://en.wikipedia.org/wiki/ActivityPub">ActivityPub</a> does have a <a href="https://www.w3.org/TR/activitypub/#client-to-server-interactions">client-to-server API</a>, but as far as I can tell, it’s not really worth implementing. Mastodon is the 800-pound gorilla in the fediverse, <a href="https://github.com/mastodon/mastodon/issues/10520">it doesn’t implement</a> this API, and other servers (such as <a href="https://pleroma.social/">Pleroma</a> and <a href="https://github.com/misskey-dev/misskey">Misskey</a>) implement their own flavor of Mastodon’s API. And plus, <a href="https://docs.joinmastodon.org/methods/">Mastodon’s REST API</a> is pretty sensible and doesn’t change too frequently. (And when it does, they add a <code>/v2</code> endpoint while still maintaining the <code>/v1</code> version.)</p>
<p>However, the fact that Mastodon has a fairly bog-standard REST API makes it pretty difficult to implement offline support, as I did in Pinafore. Essentially, I implemented a <a href="https://github.com/nolanlawson/pinafore/tree/ed9a9f6539066159801e7df40a6be2f37a8c5588/src/routes/_database">full mirror</a> of Mastodon’s PostgreSQL database structure, but on top of <a href="https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>. On top of that, I had to implement a variety of strategies to synchronize data between the client and server:</p>
<ul>
<li>As new statuses stream in, how do you backfill ones you may have missed if the user went offline? Well, you have to just keep <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_actions/stream/fillStreamingGap.js#L9">fetching statuses to fill the gap</a>.</li>
<li>How do you deal with deleted statuses? Well, you have to remove them from the in-memory store, and the database, and then also go ahead and delete any statuses that boosted them or notifications that reference them… <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_actions/deleteStatuses.js">It’s a lot</a>. (And don’t get me started on <a href="https://github.com/nolanlawson/pinafore/issues/2179">editing statuses</a>! I didn’t even get around to that.)</li>
<li>How to deal with slow servers? Well, you can implement <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_components/status/StatusToolbar.html#L121-L131">an optimistic UI</a> that shows (for instance) a “favorited” animation while still waiting for the server to respond. (And also cancels if the server responds with an error or times out.)</li>
</ul>
<p>From my years working on <a href="https://pouchdb.com">PouchDB</a>, I know that it’s a fool’s errand to try to implement proper client-server synchronization without a holistic plan for managing revisions, conflicts, and offline states… and yet, I did it. The end result is pretty impressive in my opinion, even if arguably it doesn’t add a lot to the user experience. (There’s not much you can do in a social media app when you’re offline, and I’m sure people still frequently have to refresh when stuff gets out-of-date.)</p>
<h3>Performance</h3>
<p>Speaking of which, refreshes should be fast! And I believe Pinafore is pretty good at this. (I can’t find the link, but someone did a recent analysis showing that Pinafore uses less CPU and memory than the default Mastodon frontend.)</p>
<p>In short, I’d say it’s entirely possible to build a performant SPA (despite some of my <a href="https://nolanlawson.com/2022/05/21/the-balance-has-shifted-away-from-spas/">misgivings about SPAs</a>). But it helps if:</p>
<ul>
<li>You have a browser perf background (like me).</li>
<li>You’re only one developer. (Much harder to implement tricky perf optimizations if you have to explain it to your colleagues!)</li>
<li>You use a perf-focused framework like <a href="https://svelte.dev">Svelte</a>.</li>
<li>You don’t do much! Pinafore has a fraction of the features of the main Mastodon frontend.</li>
<li>You’re merciless about removing dependencies, or <a href="https://github.com/nolanlawson/emoji-picker-element/">writing your own dependencies</a> when the existing ones are too slow or bloated.</li>
<li>You’re meticulous about little micro-optimizations (e.g. <a href="https://nolanlawson.com/2021/08/08/improving-responsiveness-in-text-inputs/">debouncing</a>, <a href="https://github.com/sveltejs/svelte/issues/1098">event delegation</a>, or <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/docs/Architecture.md#every-sapper-page-is-duplicated">page splitting</a>) that improve the user experience, especially on low-end devices, but make the developer experience a lot worse.</li>
</ul>
<p>Not all of this is necessary to make a fast, fluid API, but it certainly helps. And the fact that I ended up building something that <a href="https://nolanlawson.com/2019/09/22/the-joy-and-challenge-of-developing-for-kaios/">can run on feature phones</a> gives me a lot of satisfaction.</p>
<h3>Accessibility</h3>
<p>I didn’t set out to write “the accessible Mastodon client,” but I’ve heard from a lot of folks that Pinafore is one of the better ones out there, especially for blind users.</p>
<p>For this, I mostly have to thank <a href="https://www.marcozehe.de/">Marco Zehe</a> and <a href="https://www.jantrid.net/">James Teh</a> (among others), who provided tons of feedback and really helped with the polish of the screen reader experience. Accessibility <a href="https://nolanlawson.com/2019/11/05/what-ive-learned-about-accessibility-in-spas/">isn’t always black-and-white</a> – like anything in design, sometimes there are tradeoffs and differing opinions on what the best option is. Leaning on the expertise of actual blind users gave me insights that I couldn’t have had otherwise.</p>
<p>Another thing that helps is just giving a damn. When I started on Pinafore, I didn’t really know much about accessibility, but I decided it was time to finally learn. I started off with <a href="https://youtube.com/watch?v=5R-6WvAihms">a basic intro to screen readers from Rob Dodson</a>, played around with VoiceOver and NVDA, and tried to read and understand as much as I could. I wouldn’t call myself an accessibility expert, but I’ve made a lot of progress in the past five years, and now I wince when I look back at some of the code I wrote in the past.</p>
<p>In the end, I found accessibility to be quite rewarding. Rather than feeling like a chore or a box-ticking exercise, it feels like a fun challenge. In some cases it’s just about leaning on existing web standards, but in other cases it feels like you’re building a parallel semantic UI to the visual one. Sometimes I found that this even <a href="https://nolanlawson.com/2020/07/01/building-an-accessible-emoji-picker/">influenced the overall architecture</a> of my code – which goes to show that it’s better to consider accessibility upfront rather than as an afterthought.</p>
<p>That said, I definitely messed up some stuff when it comes to accessibility – <a href="https://webaim.org/articles/contrast/">color contrast</a> in particular is something I did a poor job on. (Luckily <a href="https://nickcolley.co.uk/">Nick Colley</a> has put a bunch of work into Pinafore to improve this!)</p>
<h2>Conclusion</h2>
<p>Pinafore was a fun project. I learned a lot about web development while working on it. Often, when a new feature landed in browsers – e.g. <a href="https://github.com/nolanlawson/pinafore/pull/2088"><code>color-scheme</code></a>, <a href="https://github.com/nolanlawson/pinafore/pull/1857">maskable icons</a>, or <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_utils/polyfills/loadPolyfills.js#L9-L23">various <code>Intl</code> APIs</a> – I would eagerly integrate it into Pinafore, which helped me learn more about how browsers work.</p>
<p>In another case, I went <a href="https://nolanlawson.com/2020/06/28/introducing-emoji-picker-element-a-memory-efficient-emoji-picker-for-the-web/">a bit overboard</a> on building my own emoji picker for Pinafore, and in the process learned <a href="https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/">way more than I ever wanted to know</a> about fonts and emoji rendering.</p>
<p>I also think that Pinafore accomplished many of the goals I had in mind when I originally wrote it. At the time, Mastodon only had a multi-column UI, which many users found overwhelming and confusing. Pinafore demonstrated that a single-column layout could be a viable alternative, and since then, Mastodon has defaulted to <a href="https://blog.joinmastodon.org/2019/06/mastodon-2.9/">a single-column layout</a>.</p>
<p>Back then, there was also only one web-based Mastodon client (<a href="https://halcyon.mstdn.social/">Halcyon</a>), and it didn’t support logging in to more than one instance at a time. Pinafore proved it was possible for a web-based client to do this (not obvious given <a href="https://developer.mozilla.org/en-US/docs/Glossary/CORS">CORS</a> constraints!), and nowadays there are lots of web-based clients, such as <a href="https://nicolasconstant.github.io/sengi/">Sengi</a>, <a href="https://www.cuckoo.social/">Cuckoo+</a>, and <a href="https://elk.zone">Elk</a>, and many of them support multi-instance logins.</p>
<p>Pinafore isn’t going anywhere – like I mentioned, the site is still up and running. I also think it could serve as an interesting point of comparison for other Mastodon clients. (Try to beat Pinafore on performance and accessibility! I think that would be a great outcome.)</p>
<p>I also want to thank everyone who followed along with me on this journey over the years, and who either used Pinafore, filed a bug, or contributed to it. Thank you for giving me one of my career-defining projects over the last half-decade. It wouldn’t have been possible without your help.</p>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
</svg> Accueil</a> •
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
</svg> Suivre</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
</svg> Pro</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
</svg> Email</a> •
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
</svg> Légal</abbr>
</p>
<template id="theme-selector">
<form>
<fieldset>
<legend><svg class="icon icon-brightness-contrast">
<use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
</svg> Thème</legend>
<label>
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
</label>
<label>
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé
</label>
<label>
<input type="radio" value="light" name="chosen-color-scheme"> Clair
</label>
</fieldset>
</form>
</template>
</footer>
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild
themeSelectorTemplate.replaceWith(form)

form.addEventListener('change', (e) => {
const chosenColorScheme = e.target.value
localStorage.setItem('theme', chosenColorScheme)
toggleTheme(chosenColorScheme)
})

const selectedTheme = localStorage.getItem('theme')
if (selectedTheme && selectedTheme !== 'undefined') {
form.querySelector(`[value="${selectedTheme}"]`).checked = true
}
}

const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
window.addEventListener('load', () => {
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const cssRule of styleSheet.cssRules) {
if (cssRule.type !== CSSRule.MEDIA_RULE) {
continue
}
// WARNING: Safari does not have/supports `conditionText`.
if (cssRule.conditionText) {
if (cssRule.conditionText !== prefersColorSchemeDark) {
continue
}
} else {
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
continue
}
}
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
}

// WARNING: do not try to insert a Rule to a styleSheet you are
// currently iterating on, otherwise the browser will be stuck
// in a infinite loop…
for (const mediaRule of mediaRules) {
styleSheet.insertRule(mediaRule.cssText)
hasDarkRules = true
}
}
if (hasDarkRules) {
loadThemeForm('#theme-selector')
}
})
</script>
</body>
</html>

+ 55
- 0
cache/2023/b5acd8bbf209345ff300ea8c10c44181/index.md View File

@@ -0,0 +1,55 @@
title: Retiring Pinafore
url: https://nolanlawson.com/2023/01/09/retiring-pinafore/
hash_url: b5acd8bbf209345ff300ea8c10c44181

<p>Five years ago, I started <a href="https://nolanlawson.com/2018/04/09/introducing-pinafore-for-mastodon/">a journey</a> to build a better Mastodon client – one focused on performance and simplicity. And I did! Pinafore is the main Mastodon client I’ve used myself since I first released it.</p>
<p>After five years, though, my relationship with social media <a href="https://nolanlawson.com/2022/11/22/thoughts-on-mastodon/">has changed</a>, and it’s time for me to put Pinafore out to pasture. The <a href="https://pinafore.social">pinafore.social</a> website will still work, but I’ve marked <a href="https://github.com/nolanlawson/pinafore">the repo</a> as unmaintained.</p>
<h2>Why retire Pinafore?</h2>
<p>I don’t have the energy to do this anymore. Pinafore has gone from being a fun side project to being a source of dread for me. There is a constant stream of bug reports, feature requests, and pull requests to manage, and I just don’t want to spend my free time doing this anymore.</p>
<p>By the way, this is not my first rodeo. Read <a href="https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/">this post</a> on my breakup with another open-source project.</p>
<h2>Why not pass it off to a new maintainer?</h2>
<p>Running a fediverse client requires trust. People who use Pinafore are trusting me to handle their data securely. As such, I’ve been meticulous about using <a href="https://observatory.mozilla.org/analyze/pinafore.social">good security headers</a> and making <a href="https://github.com/nolanlawson/pinafore/issues/139">pro-privacy decisions</a>. A new maintainer (through malice or ignorance) could add new functionality that compromises on security or privacy, essentially trading on my good name while harming users.</p>
<p>Over the years, I have had <a href="https://github.com/nolanlawson/pinafore/issues/1886">lots</a> <a href="https://github.com/nolanlawson/pinafore/issues/2339">of</a> <a href="https://github.com/nolanlawson/pinafore/issues/2261">feature</a> <a href="https://github.com/nolanlawson/pinafore/issues/1671">requests</a> that would inadvertently cause a privacy or security leak, and I’ve pushed back on every single one. (E.g. “Why not contact third-party servers to show the full favorite/boost count?” Well, because users may trust their home server, but that doesn’t mean they trust random third-party servers.)</p>
<p>Rather than trust that a new maintainer will keep these high standards in place, I’d rather put Pinafore in a frozen state.</p>
<h2>Why not shut it down entirely?</h2>
<p>Thanks to <a href="https://vercel.com">Vercel’s</a> generous free tier, Pinafore costs me $0 per month to run. It’s just static HTML/CSS/JS files, after all.</p>
<h2>Why are you the sole maintainer?</h2>
<p>I’m not – there have been <a href="https://github.com/nolanlawson/pinafore/graphs/contributors">tons</a> of contributions through the years. But for the most part, these have been “drive-by” in nature (nothing wrong with that!), rather than someone deeply learning the codebase end-to-end.</p>
<p>I suspect one of the reasons for this is that Pinafore is written in Svelte v2 and <a href="https://sapper.svelte.dev/">Sapper</a> – both of which are deprecated in favor of Svelte v3 and <a href="https://kit.svelte.dev/">SvelteKit</a>. Not only is there <a href="https://github.com/sveltejs/svelte/issues/2462">no migration path</a> from Svelte v2 to v3, but <a href="https://kit.svelte.dev/docs/migrating">there isn’t one</a> from Sapper to SvelteKit either. (And on top of that, I had to <a href="https://github.com/nolanlawson/sapper">fork Sapper</a> pretty heavily.) Anyone making a bet on learning Pinafore’s tech stack is investing in a dead framework, so it’s not very attractive for new maintainers.</p>
<p>So why didn’t I bother updating it? Well, it’s a lot of work to manually migrate 200+ components to what is essentially a new framework. And plus, as far as I could tell, it would be a pure DX (Developer Experience) improvement, not a UX (User Experience) improvement. (I just wouldn’t be using any of SvelteKit’s new features, and Svelte v3 doesn’t seem to have massive UX improvements over Svelte v2.)</p>
<h2>What did you learn while writing Pinafore?</h2>
<p>Now here’s an interesting question! And one that may be useful for those building their own Mastodon (or fediverse) clients. It is my sincerest wish that Pinafore inspires other developers to build their own (and better!) clients.</p>
<h3>API and offline</h3>
<p>First off, <a href="https://en.wikipedia.org/wiki/ActivityPub">ActivityPub</a> does have a <a href="https://www.w3.org/TR/activitypub/#client-to-server-interactions">client-to-server API</a>, but as far as I can tell, it’s not really worth implementing. Mastodon is the 800-pound gorilla in the fediverse, <a href="https://github.com/mastodon/mastodon/issues/10520">it doesn’t implement</a> this API, and other servers (such as <a href="https://pleroma.social/">Pleroma</a> and <a href="https://github.com/misskey-dev/misskey">Misskey</a>) implement their own flavor of Mastodon’s API. And plus, <a href="https://docs.joinmastodon.org/methods/">Mastodon’s REST API</a> is pretty sensible and doesn’t change too frequently. (And when it does, they add a <code>/v2</code> endpoint while still maintaining the <code>/v1</code> version.)</p>
<p>However, the fact that Mastodon has a fairly bog-standard REST API makes it pretty difficult to implement offline support, as I did in Pinafore. Essentially, I implemented a <a href="https://github.com/nolanlawson/pinafore/tree/ed9a9f6539066159801e7df40a6be2f37a8c5588/src/routes/_database">full mirror</a> of Mastodon’s PostgreSQL database structure, but on top of <a href="https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>. On top of that, I had to implement a variety of strategies to synchronize data between the client and server:</p>
<ul>
<li>As new statuses stream in, how do you backfill ones you may have missed if the user went offline? Well, you have to just keep <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_actions/stream/fillStreamingGap.js#L9">fetching statuses to fill the gap</a>.</li>
<li>How do you deal with deleted statuses? Well, you have to remove them from the in-memory store, and the database, and then also go ahead and delete any statuses that boosted them or notifications that reference them… <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_actions/deleteStatuses.js">It’s a lot</a>. (And don’t get me started on <a href="https://github.com/nolanlawson/pinafore/issues/2179">editing statuses</a>! I didn’t even get around to that.)</li>
<li>How to deal with slow servers? Well, you can implement <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_components/status/StatusToolbar.html#L121-L131">an optimistic UI</a> that shows (for instance) a “favorited” animation while still waiting for the server to respond. (And also cancels if the server responds with an error or times out.)</li>
</ul>
<p>From my years working on <a href="https://pouchdb.com">PouchDB</a>, I know that it’s a fool’s errand to try to implement proper client-server synchronization without a holistic plan for managing revisions, conflicts, and offline states… and yet, I did it. The end result is pretty impressive in my opinion, even if arguably it doesn’t add a lot to the user experience. (There’s not much you can do in a social media app when you’re offline, and I’m sure people still frequently have to refresh when stuff gets out-of-date.)</p>
<h3>Performance</h3>
<p>Speaking of which, refreshes should be fast! And I believe Pinafore is pretty good at this. (I can’t find the link, but someone did a recent analysis showing that Pinafore uses less CPU and memory than the default Mastodon frontend.)</p>
<p>In short, I’d say it’s entirely possible to build a performant SPA (despite some of my <a href="https://nolanlawson.com/2022/05/21/the-balance-has-shifted-away-from-spas/">misgivings about SPAs</a>). But it helps if:</p>
<ul>
<li>You have a browser perf background (like me).</li>
<li>You’re only one developer. (Much harder to implement tricky perf optimizations if you have to explain it to your colleagues!)</li>
<li>You use a perf-focused framework like <a href="https://svelte.dev">Svelte</a>.</li>
<li>You don’t do much! Pinafore has a fraction of the features of the main Mastodon frontend.</li>
<li>You’re merciless about removing dependencies, or <a href="https://github.com/nolanlawson/emoji-picker-element/">writing your own dependencies</a> when the existing ones are too slow or bloated.</li>
<li>You’re meticulous about little micro-optimizations (e.g. <a href="https://nolanlawson.com/2021/08/08/improving-responsiveness-in-text-inputs/">debouncing</a>, <a href="https://github.com/sveltejs/svelte/issues/1098">event delegation</a>, or <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/docs/Architecture.md#every-sapper-page-is-duplicated">page splitting</a>) that improve the user experience, especially on low-end devices, but make the developer experience a lot worse.</li>
</ul>
<p>Not all of this is necessary to make a fast, fluid API, but it certainly helps. And the fact that I ended up building something that <a href="https://nolanlawson.com/2019/09/22/the-joy-and-challenge-of-developing-for-kaios/">can run on feature phones</a> gives me a lot of satisfaction.</p>
<h3>Accessibility</h3>
<p>I didn’t set out to write “the accessible Mastodon client,” but I’ve heard from a lot of folks that Pinafore is one of the better ones out there, especially for blind users.</p>
<p>For this, I mostly have to thank <a href="https://www.marcozehe.de/">Marco Zehe</a> and <a href="https://www.jantrid.net/">James Teh</a> (among others), who provided tons of feedback and really helped with the polish of the screen reader experience. Accessibility <a href="https://nolanlawson.com/2019/11/05/what-ive-learned-about-accessibility-in-spas/">isn’t always black-and-white</a> – like anything in design, sometimes there are tradeoffs and differing opinions on what the best option is. Leaning on the expertise of actual blind users gave me insights that I couldn’t have had otherwise.</p>
<p>Another thing that helps is just giving a damn. When I started on Pinafore, I didn’t really know much about accessibility, but I decided it was time to finally learn. I started off with <a href="https://youtube.com/watch?v=5R-6WvAihms">a basic intro to screen readers from Rob Dodson</a>, played around with VoiceOver and NVDA, and tried to read and understand as much as I could. I wouldn’t call myself an accessibility expert, but I’ve made a lot of progress in the past five years, and now I wince when I look back at some of the code I wrote in the past.</p>
<p>In the end, I found accessibility to be quite rewarding. Rather than feeling like a chore or a box-ticking exercise, it feels like a fun challenge. In some cases it’s just about leaning on existing web standards, but in other cases it feels like you’re building a parallel semantic UI to the visual one. Sometimes I found that this even <a href="https://nolanlawson.com/2020/07/01/building-an-accessible-emoji-picker/">influenced the overall architecture</a> of my code – which goes to show that it’s better to consider accessibility upfront rather than as an afterthought.</p>
<p>That said, I definitely messed up some stuff when it comes to accessibility – <a href="https://webaim.org/articles/contrast/">color contrast</a> in particular is something I did a poor job on. (Luckily <a href="https://nickcolley.co.uk/">Nick Colley</a> has put a bunch of work into Pinafore to improve this!)</p>
<h2>Conclusion</h2>
<p>Pinafore was a fun project. I learned a lot about web development while working on it. Often, when a new feature landed in browsers – e.g. <a href="https://github.com/nolanlawson/pinafore/pull/2088"><code>color-scheme</code></a>, <a href="https://github.com/nolanlawson/pinafore/pull/1857">maskable icons</a>, or <a href="https://github.com/nolanlawson/pinafore/blob/ff53fcab10d01c02a762a824d35a961473991668/src/routes/_utils/polyfills/loadPolyfills.js#L9-L23">various <code>Intl</code> APIs</a> – I would eagerly integrate it into Pinafore, which helped me learn more about how browsers work.</p>
<p>In another case, I went <a href="https://nolanlawson.com/2020/06/28/introducing-emoji-picker-element-a-memory-efficient-emoji-picker-for-the-web/">a bit overboard</a> on building my own emoji picker for Pinafore, and in the process learned <a href="https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/">way more than I ever wanted to know</a> about fonts and emoji rendering.</p>
<p>I also think that Pinafore accomplished many of the goals I had in mind when I originally wrote it. At the time, Mastodon only had a multi-column UI, which many users found overwhelming and confusing. Pinafore demonstrated that a single-column layout could be a viable alternative, and since then, Mastodon has defaulted to <a href="https://blog.joinmastodon.org/2019/06/mastodon-2.9/">a single-column layout</a>.</p>
<p>Back then, there was also only one web-based Mastodon client (<a href="https://halcyon.mstdn.social/">Halcyon</a>), and it didn’t support logging in to more than one instance at a time. Pinafore proved it was possible for a web-based client to do this (not obvious given <a href="https://developer.mozilla.org/en-US/docs/Glossary/CORS">CORS</a> constraints!), and nowadays there are lots of web-based clients, such as <a href="https://nicolasconstant.github.io/sengi/">Sengi</a>, <a href="https://www.cuckoo.social/">Cuckoo+</a>, and <a href="https://elk.zone">Elk</a>, and many of them support multi-instance logins.</p>
<p>Pinafore isn’t going anywhere – like I mentioned, the site is still up and running. I also think it could serve as an interesting point of comparison for other Mastodon clients. (Try to beat Pinafore on performance and accessibility! I think that would be a great outcome.)</p>
<p>I also want to thank everyone who followed along with me on this journey over the years, and who either used Pinafore, filed a bug, or contributed to it. Thank you for giving me one of my career-defining projects over the last half-decade. It wouldn’t have been possible without your help.</p>

+ 174
- 0
cache/2023/cba96d83d96944c55675cb073fcfc60d/index.html
File diff suppressed because it is too large
View File


+ 7
- 0
cache/2023/cba96d83d96944c55675cb073fcfc60d/index.md
File diff suppressed because it is too large
View File


+ 8
- 0
cache/2023/index.html View File

@@ -71,14 +71,20 @@
<li><a href="/david/cache/2022/a889fa6d4e07bdc390d44461ed6dce21/" title="Accès à l’article dans le cache local : Getting Takahē to run on Piku">Getting Takahē to run on Piku</a> (<a href="https://taoofmac.com/space/blog/2022/12/21/0900" title="Accès à l’article original distant : Getting Takahē to run on Piku">original</a>)</li>
<li><a href="/david/cache/2022/1ae1896e5eb2ccc03f2295f38090048e/" title="Accès à l’article dans le cache local : Être jeune et vivre une pandémie">Être jeune et vivre une pandémie</a> (<a href="https://cremis.ca/publications/articles-et-medias/etre-jeune-et-vivre-une-pandemie/" title="Accès à l’article original distant : Être jeune et vivre une pandémie">original</a>)</li>
<li><a href="/david/cache/2022/1676902071b6e1e7e0d3395bc47956b5/" title="Accès à l’article dans le cache local : Adding ActivityPub to your static site">Adding ActivityPub to your static site</a> (<a href="https://paul.kinlan.me/adding-activity-pub-to-your-static-site/" title="Accès à l’article original distant : Adding ActivityPub to your static site">original</a>)</li>
<li><a href="/david/cache/2022/927159a754f4d7d9e176f5f8397dbf02/" title="Accès à l’article dans le cache local : ce qui est passé">ce qui est passé</a> (<a href="https://www.la-grange.net/2023/01/07/passe" title="Accès à l’article original distant : ce qui est passé">original</a>)</li>
<li><a href="/david/cache/2022/646ebfa25432bc6b653e524b52d25c9a/" title="Accès à l’article dans le cache local : Keep it simple, stupid le plus longtemps possible">Keep it simple, stupid le plus longtemps possible</a> (<a href="https://sklein.xyz/garden/020-keep-it-simple-stupid-le-plus-longtemps-possible/" title="Accès à l’article original distant : Keep it simple, stupid le plus longtemps possible">original</a>)</li>
<li><a href="/david/cache/2022/2f4b8ec8f6fd2cbc48a04dcac2cc7d24/" title="Accès à l’article dans le cache local : You don’t have to remember everything to be a good programmer">You don’t have to remember everything to be a good programmer</a> (<a href="https://gomakethings.com/you-dont-have-to-remember-everything-to-be-a-good-programmer/" title="Accès à l’article original distant : You don’t have to remember everything to be a good programmer">original</a>)</li>
<li><a href="/david/cache/2022/934ed9f96be582e35b3c8cf8fc0859e5/" title="Accès à l’article dans le cache local : La dette technique - Carnet de notes">La dette technique - Carnet de notes</a> (<a href="https://n.survol.fr/n/la-dette-technique" title="Accès à l’article original distant : La dette technique - Carnet de notes">original</a>)</li>
<li><a href="/david/cache/2022/b5acd8bbf209345ff300ea8c10c44181/" title="Accès à l’article dans le cache local : Retiring Pinafore">Retiring Pinafore</a> (<a href="https://nolanlawson.com/2023/01/09/retiring-pinafore/" title="Accès à l’article original distant : Retiring Pinafore">original</a>)</li>
<li><a href="/david/cache/2022/4be6162587a2171b64fd7753b7fe410b/" title="Accès à l’article dans le cache local : Playing with ActivityPub">Playing with ActivityPub</a> (<a href="https://macwright.com/2022/12/09/activitypub.html" title="Accès à l’article original distant : Playing with ActivityPub">original</a>)</li>
<li><a href="/david/cache/2022/8440372c6df33b8f23cfce7a9eca5961/" title="Accès à l’article dans le cache local : A highly opinionated guide to learning about ActivityPub">A highly opinionated guide to learning about ActivityPub</a> (<a href="https://tinysubversions.com/notes/reading-activitypub/" title="Accès à l’article original distant : A highly opinionated guide to learning about ActivityPub">original</a>)</li>
@@ -93,6 +99,8 @@
<li><a href="/david/cache/2022/745057669a6d4c8fd3c5ce1c5dd81b8c/" title="Accès à l’article dans le cache local : Network effect">Network effect</a> (<a href="https://bastianallgeier.com/notes/network-effect" title="Accès à l’article original distant : Network effect">original</a>)</li>
<li><a href="/david/cache/2022/cba96d83d96944c55675cb073fcfc60d/" title="Accès à l’article dans le cache local : ‘Snow Fall’ at 10: How It Changed Journalism">‘Snow Fall’ at 10: How It Changed Journalism</a> (<a href="https://www.nytimes.com/2022/12/23/insider/snow-fall-at-10-how-it-changed-journalism.html" title="Accès à l’article original distant : ‘Snow Fall’ at 10: How It Changed Journalism">original</a>)</li>
<li><a href="/david/cache/2022/3ca10b945c7517c2f234e3b9534bfb6d/" title="Accès à l’article dans le cache local : Software Maxims">Software Maxims</a> (<a href="https://www.softwaremaxims.com/blog/not-a-supplier" title="Accès à l’article original distant : Software Maxims">original</a>)</li>
<li><a href="/david/cache/2022/63654b08ad9eda03b6bea8d1f82e2843/" title="Accès à l’article dans le cache local : Yearnotes #3 • détour.studio">Yearnotes #3 • détour.studio</a> (<a href="https://détour.studio/yearnotes/3/" title="Accès à l’article original distant : Yearnotes #3 • détour.studio">original</a>)</li>

Loading…
Cancel
Save