diff --git a/README.md b/README.md index ef540bc..2f35ea8 100644 --- a/README.md +++ b/README.md @@ -6,21 +6,21 @@ # Objective -This project intend to allow everyone to create cheatsheet without programming skills. -The main objectives are : - - Build a **easy-to-use** and **easy-to-maintain** engine to generate cheatsheets - - Use the well known **markdown** format to create it - - Offer a way to create and use different **templates** to render document - - Automatically build a website with all created cheatsheets - - Allow to export it as a simple recto-verso PDF +This project intends to allow everyone to create cheatsheets without programming skills. +The main objectives are: + - Build a **easy-to-use** and **easy-to-maintain** engine to generate cheatsheets. + - Use the well known **markdown** format to create it. + - Offer a way to create and use different **templates** to render documents. + - Automatically build a website with the newly created cheatsheet. + - Allow to export it as a simple recto-verso PDF. ![workflow](https://github.com/zenika-open-source/cheatsheets/blob/main/workflow.png?raw=true) ## Live demo -You can explore a live demo of this project [here](https://zenika-open-source.github.io/cheatsheets/) +You can explore a live demo of this project [here](https://zenika-open-source.github.io/cheatsheets/). ## Quick Start -To create your very first cheatsheets, follow this [Quick Start Guide](https://zenika-open-source.github.io/cheatsheets/quick-start/) +To create your very first cheatsheets, follow this [Quick Start Guide](https://zenika-open-source.github.io/cheatsheets/quick-start/). ## Template Configuration Cheatsheets are generated from Markdown files located in the `cheatsheets` folder. To configure the template and styles used in generating the Markdown, please refer to the `config.json` file. To understand how it works and how you can configure it, please follow the [Template Grid Flow](https://zenika-open-source.github.io/cheatsheets/template-grid-flow/). diff --git a/cheatsheets/conventional-commit/index.md b/cheatsheets/conventional-commit/index.md index aeb8071..a214d28 100644 --- a/cheatsheets/conventional-commit/index.md +++ b/cheatsheets/conventional-commit/index.md @@ -1,6 +1,6 @@ ::: column -# What is it ? +# What is it? A Conventional Commit is a standardized way of writing commit messages in version control systems like Git. It follows a specific format to make it easier to understand the purpose and scope of each commit. The Conventional Commit format is commonly used in projects that follow semantic versioning (semver) and use tools like Lerna to automate the release process. @@ -19,7 +19,7 @@ Here's a cheatsheet to help you understand and use Conventional Commits: # Types - **feat**: A new feature or functionality added to the project. -- **fix**: A bug fix or correction to existing code. +- **fix**: A bugfix or correction to existing code. - **chore**: Routine tasks, maintenance, or non-functional changes. - **docs**: Documentation updates or additions. - **style**: Code style, formatting, or whitespace changes (not affecting the code's behavior). diff --git a/cheatsheets/esp32/index.md b/cheatsheets/esp32/index.md index dfca44d..1859af1 100644 --- a/cheatsheets/esp32/index.md +++ b/cheatsheets/esp32/index.md @@ -9,7 +9,7 @@ | - WiFi 2.4Ghz | - Analog GPIO | | - Bluetooth | - Touch sensor | | - 240Mhz dual core | - Hall sensor | -| - Digital GPIO | - I2C, SPI, SD, UART,... | +| - Digital GPIO | - I2C, SPI, SD, UART . . . | # GPIOs digital specificities @@ -109,7 +109,7 @@ void loop() { } Serial.print("Hello"); Serial.println(" World"); - // Not mandatory, wait for transmission finish + // Not mandatory, wait for transmission to finish Serial.flush(); } ``` @@ -123,7 +123,7 @@ interrupts(); // re-enable all interruptions ``` # Mutli threading -/!\ do not overload core 0, this core control WiFi +/!\ do not overload core 0 as it controls WiFi ```cpp // core: 0 or 1 @@ -132,7 +132,7 @@ xTaskCreatePinnedToCore(taskFunc, threadName, stackSize, parameters, priority, &taskRef, core); vTaskDelete(taskRef); -// example : +// example: TaskHandle_t myThreadTask; xTaskCreatePinnedToCore(myThread, "My thread", 10000, NULL, 2, &myThreadTask, 0); @@ -235,9 +235,9 @@ void loop() { ``` -Note that `server.handleClient();` is mandatory to tell the lib to check network stack request buffer. +Note that `server.handleClient();` is mandatory to tell the lib to check the network stack request buffer. -Otherwise, request from clients will not be accept. +Otherwise, request from clients will not be accepted. The longer the delay between `handleClient` the longer the request connection will take. ::: diff --git a/cheatsheets/sustainable-business-design/index.md b/cheatsheets/sustainable-business-design/index.md index 204c5de..c213dce 100644 --- a/cheatsheets/sustainable-business-design/index.md +++ b/cheatsheets/sustainable-business-design/index.md @@ -2,7 +2,7 @@ ::::recto :::head -__Comment utiliser ces cartes__ +__Comment utiliser ces cartes ?__ # Explication des cartes > Des pistes de réflexion pour aborder le numérique responsable ::: @@ -13,7 +13,7 @@ __Comment utiliser ces cartes__ :::: ::::verso -__Comment utiliser ces cartes__ +__Comment utiliser ces cartes ?__ # Explication des cartes **Vous trouverez dans ces cartes des sujets de réflexion et d'implémentation qui vous permettront rapidement de minimiser les impacts matériels et de réduire les ressources générées par votre produit.** @@ -44,7 +44,7 @@ __Comprendre le numérique responsable__ ![Phone example image](assets/phone.png "Phone example image") -**Les impacts environnementaux du numérique augmentent chaque jour, il est important de penser optimisation dans la conception. Mais il est nécéssaire de réfléchir avant tout à l'usage et à trouver des astuces pour réduire les impacts d'un produit lorsque sa digitalisation est incontournable.** +**Les impacts environnementaux du numérique augmentent chaque jour. Il est donc important de penser à optimiser dès la conception. Il est aussi nécéssaire de réfléchir à l'usage et à trouver des astuces pour réduire les impacts d'un produit lorsque sa numérisation est incontournable.** :::: ::::verso @@ -52,14 +52,14 @@ __Comprendre le numérique responsable__ # Le contexte global -**Aujourd'hui, il est impossible d'ignorer que notre planète atteint ses limites et que ces ressources ne sont pas infinies. En France, le secteur du numérique représente 2% des émissions de gaz à effet de serre et pourrait atteindre les 7% d'ici 2040. Nous avons donc un rôle à jouer pour imaginer des produits moins consommateurs de ressources, plus durables et plus accessibles.** +**Aujourd'hui, il est impossible d'ignorer que notre planète atteint ses limites et que ses ressources ne sont pas infinies. En France, le secteur du numérique représente 2 % des émissions de gaz à effet de serre et pourrait atteindre les 7 % d'ici 2040. Nous avons donc un rôle à jouer pour imaginer des produits moins consommateurs de ressources, plus durables et plus accessibles.** Le plus fort impact se porte sur le matériel, notamment sa fabrication. Il est donc nécessaire de prendre en compte cet aspect et favoriser la longévité des terminaux. -Aussi, lors de la phase de conception d'un produit, mener une réflexion suffisamment tôt aura u n impact fort sur le choix des fonctionnalités et va orienter la réflexion vers plus de sobriété. +Aussi, lors de la phase de conception d'un produit, mener une réflexion suffisamment tôt aura un impact fort sur le choix des fonctionnalités et va orienter la réflexion vers plus de sobriété. -Pendant l'implémentation, s'entourer des bonnes personnes et se concentrer sur les choix techniques vont permettre de minimiser les impacts environnementaux. +Pendant l'implémentation, s'entourer des bonnes personnes et se concentrer sur les choix techniques vont permettre de minimiser les impacts environnementaux. **Imaginer et développer un produit sobre nécessite de faire des choix.** @@ -103,7 +103,7 @@ Le numérique n'a pas fini d'évoluer et il faut garder à l'esprit qu'il peut a * Respecter la vie privée des utilisateurs * etc. -**Notre focus :** +**Notre focus :** Proposer un **produit pérenne** qui offre de la valeur à chaque utilisateur et **anticipe les contraintes légales et environnementales** d'un futur proche. :::: @@ -133,14 +133,14 @@ __Comprendre le numérique responsable__ **Le cadre d'une ACV comprend l'ensemble des flux à prendre en compte dans une analyse dite du berceau à la tombe (« from cradle to cradle » en anglais) ce qui englobe l'extraction des matières premières (énergétiques ou non) nécessaires à la fabrication et à l’assemblage, la distribution, l'utilisation, la collecte et l'élimination ainsi que toutes les phases de transport.** L'analyse porte sur les flux entrants, c'est-à-dire tout ce qui entre dans la fabrication du produit, et sortants, ce qui sort en matière de pollution : -* parmi les flux entrants, se trouvent entre autres les matières et l’énergie : ressources en minerais, eau, pétrole, gaz ; +* parmi les flux entrants se trouvent entre autres les matières et l’énergie : ressources en minerais, eau, pétrole, gaz ; * les flux sortants peuvent correspondre aux déchets, émissions gazeuses, liquides rejetés, etc. -Une ACV est réalisée sur le périmètre d'une Unité Fonctionnelle (voire carte correspondante). Elle permet de fournir notamment un **diagnostic** c'est à dire une vision non biaisée des impacts et à pour objectif l'**amélioration de la conception** grâce à une stratégie de réduction d'impacts. +Une ACV est réalisée sur le périmètre d'une Unité Fonctionnelle (voire carte correspondante). Elle permet de fournir notamment un **diagnostic** c'est-à-dire une vision non biaisée des impacts et a pour objectif l'**amélioration de la conception** grâce à une stratégie de réduction d'impacts. -La réalisation d’une ACV sur un produit physique, dont l’ensemble de la phase de production est maîtrisée, est un exercice compliqué. Dans le cas d’un logiciel, la tâche est particulièrement complexe parce qu'il n'a pas d'existence physique. Nous nous basons donc sur des extrapolations de données pour connaître le matériel qui permet de faire fonctionner le service numérique, des ACV simplifiées. **Cela permet tout de même d'avoir une idée de l'impact environnemental et de voir si les améliorations de conception permettent de diminuer celui-ci.** +La réalisation d’une ACV sur un produit physique, dont l’ensemble de la phase de production est maîtrisée, est un exercice compliqué. Dans le cas d’un logiciel, la tâche est particulièrement complexe parce qu'il n'a pas d'existence physique. Nous nous basons donc sur des extrapolations de données pour connaître le matériel qui permet de faire fonctionner le service numérique, soit des ACV simplifiées. **Cela permet tout de même d'avoir une idée de l'impact environnemental et de voir si les améliorations de conception permettent de diminuer celui-ci.** :::: @@ -159,7 +159,7 @@ __Comprendre le numérique responsable__ ![Unité fonctionnelle](assets/unite-fonctionnelle.png "modélisation des étapes de l'envoi à la réception d'un email") -**Les mesures d’impacts, tel que les Analyses du Cycle de Vie (voire Carte), se font sur une Unité Fonctionnelle. C'est une unité de mesure qui permet d’effectuer les comparaisons finales. Concrètement, elle décrit le service rendu en se concentrant sur les fonctions principales du produit, pour permettre notamment la comparaison entre différentes solutions techniques.** +**Les mesures d’impacts, telles que les Analyses du Cycle de Vie (voire Carte), se font sur une Unité Fonctionnelle. C'est une unité de mesure qui permet d’effectuer les comparaisons finales. Concrètement, elle décrit le service rendu en se concentrant sur les fonctions principales du produit, pour permettre la comparaison entre différentes solutions techniques.** :::: @@ -170,8 +170,8 @@ __Comprendre le numérique responsable__ Comment déterminer une unité fonctionnelle ? Une unité fonctionnelle (UF) serait comparable à une User Story ou Feature d’un produit, c’est-à-dire la réponse à un besoin. Il est important de se concentrer sur le service rendu et de sortir du moyen de réalisation. Ce qui fait qu'une unité fonctionnelle est formulée autour de questions simples : * **Quoi ?** Un verbe qui représente la fonction assurée ou le service rendu. -* **Combien / Comment ?** Un critère qui quantifie/qualifie la fonction ou le service. -* **Combien de… ?** Une durée/fréquence de fonctionnement s'il ne s’agit pas d’un acte unitaire. +* **Combien / Comment ?** Un critère qui quantifie ou qualifie la fonction ou le service. +* **Combien de… ?** Une durée ou fréquence de fonctionnement s'il ne s’agit pas d’un acte unitaire. Prenons un exemple simple d’unité fonctionnelle : * **Se déplacer d’un point A à un point B distant de 5 km** @@ -207,10 +207,10 @@ __Comprendre le numérique responsable__ **L'écoconception technique permet une convergence autour des pratiques de sécurité, de référencement SEO, d'accessibilité ou encore de performance. Ci-dessous une liste non exhaustive des sujets abordés par les membres techniques de l'équipe.** **Développement** -* Rester compatible avec les matériels et logiciels les plus contraignants (ex : rétrocompatibilité, équipements spécifique comme l'IoT ou l'embarqué, réseaux à faible débit). +* Rester compatible avec les matériels et logiciels les plus contraignants (ex. : rétrocompatibilité, équipements spécifique comme l'IoT ou l'embarqué, réseaux à faible débit). * Construire des sites et applications légers et rapides. -* Choisir une d’architecture (JAMStack, SPA, asynchrone,…) et connaître ses limites (exemple micro services : appels serveur fréquents, consommation CPU importante, overhead des conteneurs). -* Limiter les échanges réseaux (client/serveurs). +* Choisir une d’architecture (JAMStack, SPA, asynchrone…) et connaître ses limites (exemple micro services : appels serveur fréquents, consommation CPU importante, overhead des conteneurs). +* Limiter les échanges réseau (client/serveurs). * Connaître la puissance de calcul nécessaire pour limiter l'usure des équipements. * Choisir des outils performants et les garder à jour. * Consommer moins de ressources serveur et réseau pour ne pas avoir besoin de déployer de nouvelles infrastructures. @@ -236,7 +236,7 @@ __Faire converger les pratiques__ ![RSE](assets/rse.png "Détails des 3 pilliers de la RSE") -**La politique RSE permet d'identifier les axes sur lesquels s'aligner pour faciliter la mise en place de pratiques responsables, d'identifier des appuis internes et de mettre en avant les démarches réalisées voire de les partager.** +**La politique RSE permet d'identifier les axes sur lesquels s'aligner pour faciliter la mise en place de pratiques responsables, d'identifier des appuis internes et de mettre en avant les démarches réalisées, voire de les partager.** :::: @@ -246,10 +246,10 @@ __Faire converger les pratiques__ **La RSE regroupe l’ensemble des pratiques mises en place par les entreprises dans le but de respecter les enjeux et objectifs du développement durable : Social, Environnemental et Économique.** -Dans le cadre du développement d'un produit en adéquation avec les principes du numérique responsable (NR) les éléments qui sont les plus évidents à suivre et améliorer concernent l'environnement, la protection de l'utilisateur et les bonnes pratiques des affaires. +Dans le cadre du développement d'un produit en adéquation avec les principes du numérique responsable (NR), les éléments qui sont les plus évidents à suivre et améliorer concernent l'environnement, la protection de l'utilisateur et les bonnes pratiques des affaires. Il est important de connaître les objectifs de la politique RSE pour mettre en place des actions en lien avec celle-ci, et ainsi ancrer la démarche NR dans un contexte global, ce qui facilitera l'ensemble des décisions prises au sein du projet, pour le produit, pour les utilisateurs, etc. -Il se peut également que certains indicateurs soient à intégrer pour mettre en avant le produit vis-à- vis de la gouvernance. +Il se peut également que certains indicateurs soient à intégrer pour mettre en avant le produit vis-à-vis de la gouvernance. :::img medium ![RSE](assets/actions-rse.png "Exemples d'impacts via les actions RSE") @@ -270,7 +270,7 @@ __Faire converger les pratiques__ ![Points communs et synergies](assets/syntheses-des-synergies.png "Points communs et synergies entre ecoconception et sécurité") -**Réduire l'impact environnemental d'un service, c'est notamment éviter le renouvellement du matériel, mais cela peut atteindre la sécurité des équipements dûe à l'arrêt de la maintenance des OS.** +**Réduire l'impact environnemental d'un service, c'est notamment éviter le renouvellement du matériel, mais cela peut atteindre la sécurité des équipements due à l'arrêt de la maintenance des OS.** :::: ::::verso @@ -281,9 +281,9 @@ __Faire converger les pratiques__ **Penser minimisation.** -Du point de vue de la protection des données, cela équivaut au principe de **moindre-donnée**. Ce principe ce retrouve en écoconception où les fonctionnalités sont ajustées aux besoin, les données collectées étant donc réduite au strict nécessaire via des formulaire adapté. Ce principe converge avec les demandes liées à la RGPD en matière de nécessité de collecte des données (voir la fiche correspondante). Ainsi, on utilisera moins de stockage, on réduira les transfert de donnée, etc. +Du point de vue de la protection des données, cela équivaut au principe de **moindre-donnée**. Ce principe ce retrouve en écoconception où les fonctionnalités sont ajustées aux besoin, les données collectées étant donc réduites au strict nécessaire via des formulaires adaptés. Ce principe converge avec les demandes liées à la RGPD en matière de nécessité de collecte des données (voir la fiche correspondante). Ainsi, on utilisera moins de stockage, on réduira les transfert de donnée, etc. -Au niveau de la cybersécurité, c'est le principe du **moindre-privilège**, c’est-à-dire la limitation des droits au strict minimum sur les postes clients, du nombre de logiciels installés, ce qui, en plus de diminuer la surface d’attaque, est susceptible de réduire les impacts liés à l’usage du poste de travail ainsi que l’obsolescence matérielle prématurée due aux logiciels installés ou encore à un espace disque saturé dû à ces mêmes logiciels. +Au niveau de la cybersécurité, c'est le principe du **moindre-privilège**, c’est-à-dire la limitation des droits au strict minimum sur les postes client, du nombre de logiciels installés, ce qui, en plus de diminuer la surface d’attaque, est susceptible de réduire les impacts liés à l’usage du poste de travail ainsi que l’obsolescence matérielle prématurée due aux logiciels installés ou encore à un espace disque saturé dû à ces mêmes logiciels. Pour l'écoconception, c'est la **moindre fonctionnalité** (voire carte Kano). @@ -302,14 +302,14 @@ __Faire converger les pratiques__ ![FAIR](assets/fair.png "explication de l'anagram FAIR : Trouvable, Accessible, Interoperable et réutilisable") -**Le premier coût environnemental de la donnée est lié à son acquisition. Cette acquisition ou cette création de donnée a donc dès l’origine un coût environnemental important pour lequel une attention doit être portée notamment sur la conservation. Pour cela l'application des principes FAIR (data Findable, Accessible, Interopeable, Reusable) permet de mettre en place les bases d’une bonne gestion des données.** +**Le premier coût environnemental de la donnée est lié à son acquisition. Cette acquisition ou cette création de donnée a donc dès l’origine un coût environnemental important pour lequel une attention doit être portée, notamment sur la conservation. Pour cela l'application des principes FAIR (data Findable, Accessible, Interopeable, Reusable) permet de mettre en place les bases d’une bonne gestion des données.** :::: ::::verso __Faire converger les pratiques__ # L'accessibilité des données avec FAIR -Dès l’instant où on aura validé que la donnée produite ou acquise mérite d’être conservée (la **première bonne démarche environnementale étant celle de ne pas produire ni conserver de données inutiles**), il va falloir tout au long de son cycle de vie se poser les bonnes questions pour minimiser les impacts environnementaux voire sociétaux +Dès l’instant où on aura validé que la donnée produite ou acquise mérite d’être conservée (la **première bonne démarche environnementale étant celle de ne pas produire ni conserver de données inutiles**), il va falloir tout au long de son cycle de vie se poser les bonnes questions pour minimiser les impacts environnementaux voire sociétaux. **Comment agir pour les données ?** * **Ne pas produire** de donnée inutiles (sobriété). @@ -317,7 +317,7 @@ Dès l’instant où on aura validé que la donnée produite ou acquise mérite * En phase d’usage, **minimiser la distance** à parcourir sur les réseaux entre l’usage de la donnée et son stockage. * Utiliser les **ressources de stockage/archivage/sauvegarde les plus éco-responsables** possibles et adaptées aux volumes concernés. * Appliquer les **principes FAIR** (formats standards ouverts et interopérables, données accessibles aux autres, données identifiées avec des métadonnées utilisables et normalisées). -* Utiliser les **réseaux de transports les moins polluants**. Les voici par ordre d'impact croissant : le filaire, le wifi et les réseaux mobiles (3G/4G/5G...). +* Utiliser les **réseaux de transports les moins polluants**. Les voici par ordre d'impact croissant : le filaire, le wifi et les réseaux mobiles (3G/4G/5G…). * Se former et s’informer autour des **bonnes pratiques de la gestion des données** et intégrer les principes de sobriété sur les ressources utilisées pour manipuler, exploiter et stocker ces données en fonction du domaine d’utilisation. * Limiter les redondances, se montrer **critique sur les données à conserver**, connaître et appliquer les bons principes de sauvegarde et d’archivage sur les données froides et chaudes. @@ -348,12 +348,12 @@ __Faire converger les pratiques__ **Depuis 2018, le règlement général de protection des données (RGPD) renforce les droits des personnes et introduit une plus grande responsabilité des entreprises sur les conditions de recueil des données personnelles, une vraie convergence avec le numérique responsable. D'ailleurs un des principes est le droit à l'oubli qui prévoit que les données personnelles doivent être sauvegardées pour un temps limité en rapport avec leur finalité.** Il y a quelques actions et questionnements simples à adresser pour limiter les mauvaises pratiques : -* A chaque fois que l'on crée de la donnée, il faut être sûr que celle-ci est nécessaire : qui l'utilisera ? dans quel but ? à quelle fréquence ? +* À chaque fois que l'on crée de la donnée, il faut être sûr que celle-ci est nécessaire : qui l'utilisera ? dans quel but ? à quelle fréquence ? * Pour les données jugées nécessaires, que fait-on lorsque leur usage est terminée (notamment si c'est pour des utilisateurs d'analyse marketing, une fois les analyses faites, la RGPD dit qu'il faudrait la supprimer). -* Dans l'ensemble il faut anonymiser les données en dehors du services et limiter (voire refuser) leur commercialisation. +* Dans l'ensemble il faut anonymiser les données en dehors du service et limiter (voire refuser) leur commercialisation. * Pour gagner la confiance des utilisateurs, il est également possible de bien détailler l'ensemble des informations conservées et expliquer le besoin derrière. -Sur le droit à l'oubli des données, les démarches doivent être simples, voir automatiques pour limiter les demandes par exemple tous les comptes non accédés ou les données non utilisées depuis x mois sont supprimés, un bouton depuis le compte utilisateur permet de supprimer son compte ou ses données, etc. +Sur le droit à l'oubli des données, les démarches doivent être simples, voire automatiques pour limiter les demandes. Par exemple tous les comptes non accédés ou les données non utilisées depuis x mois sont supprimés, un bouton depuis le compte utilisateur permet de supprimer son compte ou ses données, etc. S'aider du jeu RGPD de la CNIL : https://design.cnil.fr/resources @@ -1128,4 +1128,4 @@ __Bibliographie__ :::: -::::: \ No newline at end of file +:::::