{"id":10576,"date":"2026-06-12T10:39:33","date_gmt":"2026-06-12T14:39:33","guid":{"rendered":"https:\/\/www.gillesenvrac.ca\/carnet\/?page_id=10576"},"modified":"2026-06-12T10:39:33","modified_gmt":"2026-06-12T14:39:33","slug":"habitat-pour-organisations","status":"publish","type":"page","link":"https:\/\/gillesenvrac.ca\/carnet\/habitat-pour-organisations\/","title":{"rendered":"Habitat et les espaces \u00e0 acc\u00e8s restreint pour les organisations"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Nos projets concernant les autorisations organisationnelles sur les espaces<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Traduction de <a href=\"https:\/\/habitat.leaflet.pub\/3mo3v5xzvtc2y\">Habitat &amp; permission spaces for organizations<\/a> par Habitat team, 12 juin 2026<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Chez Habitat, nous d\u00e9veloppons une couche de propri\u00e9t\u00e9 des donn\u00e9es pour les organisations. Au cours des derni\u00e8res semaines, nous avons travaill\u00e9 d\u2019arrache-pied \u00e0 l\u2019\u00e9tude de la conception des espaces \u00e0 acc\u00e8s restreint et avons progressivement port\u00e9 notre pr\u00e9c\u00e9dente impl\u00e9mentation de donn\u00e9es \u00e0 acc\u00e8s restreint (<a href=\"https:\/\/leaflet.pub\/64a0e16a-780b-4ad8-b733-ff619755a273\">cliques<\/a>!) vers ces espaces. Nous appr\u00e9cions la conception propos\u00e9e par l&rsquo;\u00e9quipe, ainsi que le niveau de pr\u00e9cision du protocole par rapport \u00e0 ce qu&rsquo;il laisse \u00e0 la discr\u00e9tion des d\u00e9veloppeurs. Dans ce Leaflet, je vais aborder les contraintes d&rsquo;Habitat concernant les donn\u00e9es soumises \u00e0 autorisation et les couches que nous avons l&rsquo;intention de construire par-dessus le protocole de base des espaces.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/habitat.leaflet.pub\/3mo3v5xzvtc2y#organizational-permissions\">Autorisations organisationnelles<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les autorisations organisationnelles \/ d\u2019entreprise \/ commerciales ont des formes et des exigences diff\u00e9rentes de celles du cas des r\u00e9seaux sociaux grand public. Heureusement, le <strong>protocole Spaces<\/strong> est suffisamment basique pour que nous puissions construire des solutions r\u00e9pondant \u00e0 ces exigences par-dessus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On a beaucoup parl\u00e9 dans l\u2019\u00e9cosyst\u00e8me d\u2019une sp\u00e9cification commune pour les communaut\u00e9s ou les groupes sur les espaces \u00e0 acc\u00e8s restreint, comme la sp\u00e9cification Arbiter de Roomy. En ce qui concerne les cas d\u2019utilisation organisationnelle, ce genre de chose est non n\u00e9gociable : il faut un concept d\u2019\u00e9quipes et de r\u00f4les qui reste stable d\u2019un produit \u00e0 l\u2019autre. Ce n\u2019est pas le cas aujourd\u2019hui : certains produits essaient peut-\u00eatre de se synchroniser avec une liste de groupes de courriel Google, mais en g\u00e9n\u00e9ral, chaque produit (par exemple Figma, Notion, Asana) a sa propre fa\u00e7on de d\u00e9finir les \u00e9quipes et les autorisations organisationnelles. Ces syst\u00e8mes se d\u00e9synchronisent r\u00e9guli\u00e8rement (qui n\u2019a jamais d\u00fb se battre pour configurer les autorisations d\u2019un nouveau membre de l\u2019\u00e9quipe dans chaque application ?) et sont souvent g\u00e9r\u00e9s de mani\u00e8re ponctuelle, plut\u00f4t que par un processus central au sein de l\u2019organisation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Habitat r\u00e9pond \u00e9galement aux besoins des d\u00e9veloppeurs qui cr\u00e9eront des produits sur notre plateforme. Par exemple, dans notre <a href=\"https:\/\/habitat.network\/habitat\/docs\/\">\u00e9diteur de documents<\/a>, nous souhaitons prendre en charge des autorisations plus riches que \u00ab dans le document \u00bb ou \u00ab pas dans le document \u00bb . Nous aimerions prendre en charge les r\u00f4les de propri\u00e9taire \/ \u00e9diteur \/ lecteur \/ commentateur sur un document : ceux-ci devraient \u00eatre d\u00e9finis par l\u2019application et traduits en espaces en arri\u00e8re-plan. Ces r\u00f4les pourraient \u00e9galement s\u2019h\u00e9riter les uns des autres (si vous pouvez modifier, vous pouvez commenter), et seraient id\u00e9alement interop\u00e9rables, afin qu\u2019un autre produit de gestion de documents puisse r\u00e9cup\u00e9rer, comprendre et r\u00e9utiliser ces r\u00f4les dans son produit. Les autorisations sont l\u2019un des aspects les plus complexes \u00e0 bien mettre en place (venant de Figma\/Glean, on est bien plac\u00e9s pour le savoir !), donc plus Habitat pourra bien g\u00e9rer les \u00e9l\u00e9ments de base ici, plus les d\u00e9veloppeurs pourront se concentrer sur la cr\u00e9ation de la meilleure exp\u00e9rience produit possible. \u00c0 un niveau tr\u00e8s approximatif, ce \u00e0 quoi nous pensons que cela ressemblerait, ce sont des XRPC permettant aux d\u00e9veloppeurs de produits de d\u00e9finir des r\u00f4les sur des entit\u00e9s, probablement mod\u00e9lis\u00e9s \u00e0 l\u2019aide de relations OpenFGA. Ces relations peuvent ensuite \u00eatre expos\u00e9es sous forme d\u2019enregistrements au sein des espaces pour assurer l\u2019interop\u00e9rabilit\u00e9 avec d\u2019autres applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u2019un autre c\u00f4t\u00e9, r\u00e9pondre aux besoins des organisations et des communaut\u00e9s qui disposent d\u00e9j\u00e0 d\u2019une structure de gouvernance simplifie d\u2019autres aspects pour nous. Par exemple, pour tous les espaces d\u00e9finis dans Habitat, l\u2019organisation devient l\u2019h\u00f4te de l\u2019espace. La mani\u00e8re dont l\u2019organisation g\u00e8re l\u2019espace lui appartient, et nous pouvons proposer des param\u00e8tres par d\u00e9faut utiles, \u00e9ventuellement \u00e0 l\u2019aide de DID g\u00e9r\u00e9s. Il existe \u00e9galement un niveau de confiance plus \u00e9lev\u00e9 entre les espaces et les applications demandant des identifiants d&rsquo;espace : dans les espaces \u00e0 autorisation propos\u00e9e, il y a un compromis entre l&rsquo;interop\u00e9rabilit\u00e9 (toute application peut-elle lire un espace) et la confidentialit\u00e9 (si j&rsquo;\u00e9cris un enregistrement dans un espace, toute application capable de lire cet espace peut le voir, y compris celles que je ne souhaite pas). Dans un contexte organisationnel, les applications sont g\u00e9n\u00e9ralement approuv\u00e9es par les administrateurs informatiques ou des ressources humaines et doivent respecter des politiques de s\u00e9curit\u00e9 et de confidentialit\u00e9 de base ; les espaces peuvent donc \u00eatre interop\u00e9rables en sachant qu\u2019il existe un processus de v\u00e9rification pour les applications qui y acc\u00e8dent.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/habitat.leaflet.pub\/3mo3v5xzvtc2y#building-on-habitat\">D\u00e9velopper sur Habitat<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 la base, Habitat est une plateforme, et nous voulons donner aux gens les moyens de cr\u00e9er eux-m\u00eames, donc notre plateforme doit \u00eatre ind\u00e9pendante des types de produits ou d\u2019applications qui peuvent \u00eatre d\u00e9velopp\u00e9s dessus, \u00e0 l\u2019instar de la relation entre le protocole AT et ATmosphere. Les premiers groupes \u00e0 d\u00e9velopper sur Habitat cr\u00e9ent des logiciels sur mesure pour leurs propres communaut\u00e9s, et nous-m\u00eames commen\u00e7ons tout juste \u00e0 r\u00e9fl\u00e9chir \u00e0 notre premier produit pour le milieu de travail bas\u00e9 sur Habitat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cela signifie que notre plateforme de d\u00e9veloppement doit \u00eatre excellente, tout comme le protocole AT. Je voudrais ici aborder quelques \u00e9l\u00e9ments cl\u00e9s que nous d\u00e9veloppons pour \u00e9tendre le protocole AT \u00e0 la plateforme de d\u00e9veloppement d\u2019Habitat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais d\u2019abord, un peu de \u00ab bike-shedding \u00bb pour mettre les choses en contexte. On a l\u2019impression que le terme \u00ab PDS \u00bb (Personal Data Server) est un peu surcharg\u00e9 en ce moment, car on s\u2019y r\u00e9f\u00e8re souvent comme s\u2019il s\u2019agissait d\u2019une correspondance 1:1 avec un d\u00e9p\u00f4t (par exemple, on dit \u00ab mon PDS \u00bb par opposition \u00e0 \u00ab ton PDS \u00bb alors que, techniquement, nos d\u00e9p\u00f4ts pourraient tr\u00e8s bien se trouver sur le m\u00eame PDS). Ce fait n\u2019a pas vraiment d\u2019importance pour ATmosphere en g\u00e9n\u00e9ral, puisque tout doit fonctionner de la m\u00eame mani\u00e8re, peu importe quel d\u00e9p\u00f4t se trouve sur quel PDS, y compris les configurations comme les d\u00e9p\u00f4ts auto-h\u00e9berg\u00e9s. Mais pour Habitat, les d\u00e9p\u00f4ts des membres d\u2019une organisation sont toujours h\u00e9berg\u00e9s derri\u00e8re le m\u00eame serveur, ou PDS, puisque l\u2019organisation d\u00e9tient pleinement les d\u00e9p\u00f4ts de ses membres. En d\u2019autres termes, par conception, toutes les donn\u00e9es d\u2019une organisation sont h\u00e9berg\u00e9es (conceptuellement) sur un seul serveur. Nous pouvons tirer parti de cette distinction pour proposer des API utiles aux d\u00e9veloppeurs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comme tous les d\u00e9p\u00f4ts r\u00e9sident sur un seul PDS (ou ODS, un serveur de donn\u00e9es organisationnel, si vous pr\u00e9f\u00e9rez), nous pouvons offrir des fonctions pratiques pour des op\u00e9rations telles que le remplissage r\u00e9trospectif et les mises \u00e0 jour en temps r\u00e9el \u00e0 l&rsquo;\u00e9chelle de toute une organisation (ce qui se fait aujourd&rsquo;hui via des points de terminaison par utilisateur \/ par d\u00e9p\u00f4t). Aujourd\u2019hui, dans le protocole AT public, les relais agr\u00e8gent les donn\u00e9es entre les r\u00e9f\u00e9rentiels en appelant <code>\/xrpc\/com.atproto.repo.subscribeRepos<\/code>, et demandent individuellement des mises \u00e0 jour \u00e0 chaque utilisateur. Les AppViews communiquent avec les relais ou le jetstream afin d\u2019\u00e9viter d\u2019avoir \u00e0 effectuer elles-m\u00eames ce travail d\u2019agr\u00e9gation. Spaces propose une conception similaire, o\u00f9 les synchroniseurs doivent agr\u00e9ger ind\u00e9pendamment toutes les donn\u00e9es afin de maintenir une vue \u00e0 jour de l\u2019espace. Cependant, dans Habitat, puisque tous les d\u00e9p\u00f4ts membres se trouvent sur le m\u00eame PDS, nous pouvons proposer un point de terminaison unique <code>\/xrpc\/com.habitatproto.spaces.subscribeSpaces<\/code> qui fonctionne comme un relais int\u00e9gr\u00e9 \u00e0 notre PDS, agr\u00e9geant les mises \u00e0 jour \u00e0 l\u2019\u00e9chelle de toute l\u2019organisation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour mettre en \u0153uvre l\u2019autorisation \u00e0 cet effet, nous attribuons \u00e0 chaque organisation un DID (Decentralized Identifier) organisationnel et introduisons le concept d\u2019identifiant d\u2019organisation, qui fonctionne comme un jeton OAuth pour l\u2019ensemble de l\u2019organisation. \u00c9tant donn\u00e9 que chaque espace au sein d\u2019une organisation a le DID de l\u2019organisation comme h\u00f4te d\u2019espace, ce jeton OAuth peut \u00eatre pr\u00e9sent\u00e9 \u00e0 <code>\/xrpc\/com.habitatproto.spaces.subscribeSpaces<\/code> pour obtenir un flux d\u2019\u00e9v\u00e9nements pour l\u2019espace entier. Il s\u2019agit d\u2019un jeton OAuth standard dont les port\u00e9es sont similaires \u00e0 celles des jetons OAuth utilisateur dans le reste du protocole AT : il peut demander des port\u00e9es pour des lexiques ou des types d\u2019espaces sp\u00e9cifiques, mais nous pouvons \u00e9galement l\u2019\u00e9tendre pour demander des d\u00e9p\u00f4ts sp\u00e9cifiques.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les m\u00e9canismes de backfill dans les espaces autoris\u00e9s (<code>getRepoOpLog, listSpaces, listRecords<\/code> dans la proposition relative aux espaces autoris\u00e9s) fonctionnent presque de la m\u00eame mani\u00e8re dans Habitat. Dans les espaces autoris\u00e9s, pour l\u2019authentification, ces points de terminaison prennent en charge soit le jeton OAuth personnel d\u2019un utilisateur, soit les informations d\u2019identification de l\u2019espace. Les jetons OAuth d\u2019autres utilisateurs ne peuvent pas \u00eatre pris en charge, car un d\u00e9p\u00f4t ne peut pas valider le jeton s\u2019il provient d\u2019un autre PDS et ne peut pas valider l\u2019appartenance si l\u2019h\u00f4te de l\u2019espace se trouve sur un autre PDS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans notre cas, puisque tout ce qui concerne un espace donn\u00e9 se trouve sur le m\u00eame PDS, nous pouvons lire \u00e0 travers les espaces et les d\u00e9p\u00f4ts avec n&rsquo;importe quel jeton OAuth \u00e9mis par le PDS. Comme un identifiant d&rsquo;organisation n&rsquo;est qu&rsquo;un jeton OAuth, les clients de synchronisation peuvent l&rsquo;utiliser pour parcourir l&rsquo;ensemble de l&rsquo;organisation. Les applications construites sur Habitat disposeront d&rsquo;un flux d&rsquo;autorisation o\u00f9 les administrateurs de l&rsquo;organisation approuvent et \u00e9mettent un identifiant d&rsquo;organisation que l&rsquo;application utilise pour synchroniser les donn\u00e9es pertinentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour mieux prendre en charge les mises \u00e0 jour d\u2019\u00e9v\u00e9nements et les remplissages r\u00e9trospectifs, nous d\u00e9veloppons Sap (du nom de Tap). Sap appelle <code>subscribeSpaces<\/code> et diffuse toutes les \u00e9critures effectu\u00e9es dans l\u2019organisation avec des \u00e9v\u00e9nements de m\u00e9tadonn\u00e9es d\u2019autorisations suppl\u00e9mentaires. Il \u00e9mettra des autorisations aplaties afin que les applications puissent construire leur propre index r\u00e9pliqu\u00e9 des autorisations. De plus, si les applications souhaitent d\u00e9terminer si un utilisateur dispose d&rsquo;une autorisation pour un espace ou comment il l&rsquo;a obtenue (ce pour quoi nous utilisons OpenFGA en arri\u00e8re-plan), elles peuvent interroger directement notre API et les enregistrements de relations que nous stockons pour assurer l&rsquo;interop\u00e9rabilit\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous n&rsquo;avons pas encore explor\u00e9 cela en profondeur, mais il semble qu&rsquo;il y ait des implications pour l&rsquo;activation d&rsquo;applications \u00ab local-first \u00bb au-dessus d&rsquo;Habitat, car l&rsquo;agr\u00e9gation entre les d\u00e9p\u00f4ts d&rsquo;utilisateurs repose sur un mod\u00e8le beaucoup plus simple. \u00c0 terme, nous pourrions m\u00eame r\u00e9introduire notre m\u00e9canisme de synchronisation \u00e0 partir de cliques entre les PDS, mais pour le cas d&rsquo;utilisation des organisations, afin que celles-ci puissent synchroniser leurs donn\u00e9es entre elles sans passer par un serveur tiers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/habitat.leaflet.pub\/3mo3v5xzvtc2y#questions-comments-concerns\">Questions, commentaires et pr\u00e9occupations<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cet article \u00e9tait assez long, et tout ce que j&rsquo;ai \u00e9crit ici est en cours de d\u00e9veloppement. Nous mettrons en place une sp\u00e9cification et une documentation appropri\u00e9es, et nous appr\u00e9cions tout commentaire ou question sur la conception d&rsquo;ici l\u00e0 !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nos projets concernant les autorisations organisationnelles sur les espaces Traduction de Habitat &amp; permission spaces for organizations par Habitat team, 12 juin 2026 Chez Habitat, nous d\u00e9veloppons une couche de propri\u00e9t\u00e9 des donn\u00e9es pour les organisations. Au cours des derni\u00e8res semaines, nous avons travaill\u00e9 d\u2019arrache-pied \u00e0 l\u2019\u00e9tude de la conception des espaces \u00e0 acc\u00e8s restreint &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gillesenvrac.ca\/carnet\/habitat-pour-organisations\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Habitat et les espaces \u00e0 acc\u00e8s restreint pour les organisations&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-10576","page","type-page","status-publish","hentry"],"jetpack-related-posts":[{"id":7976,"url":"https:\/\/gillesenvrac.ca\/carnet\/ensauvager-nos-villes\/","url_meta":{"origin":10576,"position":0},"title":"Ensauvager nos villes","author":"Gilles Beauchamp","date":"6 avril 2025","format":false,"excerpt":"R\u00e9imaginer les espaces urbains pour la faune :\u00a0des poules de poubelles aux faucons des gratte-ciel par Alexi Freeman Publi\u00e9 sur Matters, le 27 mars 2025 - Reimagining Urban Spaces for Wildlife: From Bin Chickens to Skyscraper Falcons R\u00e9sum\u00e9 de l'article La faune urbaine s'adapte aux environnements urbains, les \u00ab poules\u2026","rel":"","context":"Article similaire","block_context":{"text":"Article similaire","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2025\/04\/bin-chicken.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2025\/04\/bin-chicken.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2025\/04\/bin-chicken.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2025\/04\/bin-chicken.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2025\/04\/bin-chicken.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2025\/04\/bin-chicken.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":11287,"url":"https:\/\/gillesenvrac.ca\/carnet\/villes-systemes-delevage\/","url_meta":{"origin":10576,"position":1},"title":"Les villes sont des syst\u00e8mes d\u2019\u00e9levage intensif, et les humains en sont le b\u00e9tail","author":"Gilles Beauchamp","date":"22 ao\u00fbt 2026","format":false,"excerpt":"Vous en d\u00e9pendez davantage que vous ne le pensez. Traduction de Cities are Intensive Livestock Systems, and Humans are the Cattle, par Adrian Lambert, le 22 juin 2026. Chapitre 1 : La ville n\u2019est pas une \u00e9chappatoire \u00e0 l\u2019\u00e9cologie Nous ne nous consid\u00e9rons pas comme du b\u00e9tail \u2013 pas de\u2026","rel":"","context":"Article similaire","block_context":{"text":"Article similaire","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2026\/08\/villes2.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2026\/08\/villes2.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2026\/08\/villes2.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/gillesenvrac.ca\/carnet\/wp-content\/uploads\/2026\/08\/villes2.webp?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":10574,"url":"https:\/\/gillesenvrac.ca\/carnet\/decrypter-matrix\/","url_meta":{"origin":10576,"position":2},"title":"D\u00e9crypter Matrix","author":"Gilles Beauchamp","date":"11 juin 2026","format":false,"excerpt":"\u00c0 propos de la convergence vers les donn\u00e9es priv\u00e9es dans les protocoles de r\u00e9seaux sociaux, et du lien avec Matrix Traduction de Decrypting Matrix par Laurens Hof, le 20 mai 2026 Le mouvement visant \u00e0 utiliser des protocoles ouverts pour cr\u00e9er des r\u00e9seaux sociaux ind\u00e9pendants peut \u00eatre replac\u00e9 dans diff\u00e9rentes\u2026","rel":"","context":"Article similaire","block_context":{"text":"Article similaire","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8729,"url":"https:\/\/gillesenvrac.ca\/carnet\/de-linteret-collectif\/","url_meta":{"origin":10576,"position":3},"title":"De l&rsquo;int\u00e9r\u00eat collectif","author":"Gilles Beauchamp","date":"13 novembre 2025","format":false,"excerpt":"(2025.11.13) Une r\u00e9flexion amorc\u00e9e au moment de mon \u00e9lection au conseil d'administration de Projet collectif, en mai dernier. Comme je le notais dans ma lettre de candidature, j'ai suivi ce projet depuis ses d\u00e9buts, et critiqu\u00e9 ou questionn\u00e9 parfois les orientations\u2026 mais j'ai eu l'impression qu'on m'\u00e9coutait. Il reste que\u2026","rel":"","context":"Article similaire","block_context":{"text":"Article similaire","link":""},"img":{"alt_text":"","src":"blob:https:\/\/www.gillesenvrac.ca\/3c47b365-86a8-4a45-8b14-68633912173c","width":350,"height":200},"classes":[]},{"id":10945,"url":"https:\/\/gillesenvrac.ca\/carnet\/at-ap-ec\/construisons-un-web-atmospherique\/","url_meta":{"origin":10576,"position":4},"title":"Construisons un Web atmosph\u00e9rique, par Jim Ray","author":"Gilles Beauchamp","date":"4 juillet 2026","format":false,"excerpt":"Le Web ATmosph\u00e9rique montre que nous ne sommes pas oblig\u00e9s d\u2019accepter le faux dilemme entre propri\u00e9t\u00e9 et distribution Traduction de Let\u2019s build an Atmospheric Web par Jim Ray, sur Applied Meteorology, 21 janvier 2026 Il y a une histoire que nous nous racontons au sujet du dernier quart de si\u00e8cle\u2026","rel":"","context":"Article similaire","block_context":{"text":"Article similaire","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10737,"url":"https:\/\/gillesenvrac.ca\/carnet\/at-ap-ec\/","url_meta":{"origin":10576,"position":5},"title":"Mastodon VS Bluesky&#8230; et En commun","author":"Gilles Beauchamp","date":"20 juin 2026","format":false,"excerpt":"[2026.06.20] Un bloc note, en vrac, rassemblant les liens vers les ressources (et extraits) pour me \"faire une t\u00eate\" \u00e0 propos de ces deux protocoles... et de l'inscription de En commun (Passerelles\/Praxis) dans le Web social ouvert. Une note du carnet Analyse de soutenabilit\u00e9 des plateformes En commun : Interop\u00e9rabilit\u00e9\u2026","rel":"","context":"Article similaire","block_context":{"text":"Article similaire","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gillesenvrac.ca\/carnet\/wp-json\/wp\/v2\/pages\/10576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gillesenvrac.ca\/carnet\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gillesenvrac.ca\/carnet\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gillesenvrac.ca\/carnet\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gillesenvrac.ca\/carnet\/wp-json\/wp\/v2\/comments?post=10576"}],"version-history":[{"count":0,"href":"https:\/\/gillesenvrac.ca\/carnet\/wp-json\/wp\/v2\/pages\/10576\/revisions"}],"wp:attachment":[{"href":"https:\/\/gillesenvrac.ca\/carnet\/wp-json\/wp\/v2\/media?parent=10576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}