programminghistorian / ph-submissions

The repository and website hosting the peer review process for new Programming Historian lessons
http://programminghistorian.github.io/ph-submissions
138 stars 114 forks source link

Traduction : Analyser des données tabulaires avec R #561

Closed marie-flesch closed 1 year ago

marie-flesch commented 1 year ago

Je propose la traduction de la leçon R Basics with Tabular Data.

La traduction est terminée ; @anisa-hawes est en train d'effectuer les contrôles nécessaires. Ce sera @DMathelier qui effectuera le suivi éditorial de cette leçon (qui se déroulera ~sur le ticket de relecture, que nous ouvrirons~ sur ce même ticket, une fois les contrôles effectués par Anisa).

anisa-hawes commented 1 year ago

Merci, @marie-flesch!

Bonsoir, @DMathelier

Vous trouverez les fichiers ici :

Et vous pouvez parcourir l’aperçu de la soumission ici :

marie-flesch commented 1 year ago

J'ai intégré les remarques de @DMathelier, rédactrice pour cette leçon, dans la traduction. Celle-ci est donc prête à partir à la relecture :)

DMathelier commented 1 year ago

Le Programming Historian en français a reçu la traduction de la leçon intitulée R Basics with Tabular Data rédigé originellement par Taryn Dewar et traduite par @marie-flesch.

La traduction est actuellement en cours d'évaluation et peut être consultée ici: http://programminghistorian.github.io/ph-submissions/fr/en-cours/traductions/analyse-donnees-tabulaires-R.md

J'exercerai le rôle de rédactrice lors de la procédure de l'évaluation. Cela implique de solliciter deux évaluations par la communauté et de gérer les discussions qui auront lieu sur ce forum. J'ai déjà fait une lecture critique de la leçon puis un retour auquel l'auteure a répondu.

Les membres de la communauté plus large sont aussi invités de fournir une critique constructive via ce fil de messages, après avoir pris connaissance de nos [consignes aux évaluateurs et évaluatrices] (/fr/consignes-evaluateurs) et accepté notre politique contre le harcèlement (cf. ci-dessous).

Nous demandons que toute nouvelle évaluation cesse après que la seconde, parmi celles qui ont été formellement sollicitées, a été déposée, pour que l'auteur(e) puisse se concentrer sur les révisions à faire. Lorsque cela est le cas, je prendrai soin de l'indiquer dans le fil de discussion.

La discussion est ouverte sur Github. Si quelqu'un a besoin de discuter en privé, merci de m'envoyer un courriel (daphne.mathelier@cnrs.fr). Il y a toujours la possibilité de vous adresser à notre dispositif de médiation, si vous le souhaitez.

Politique contre le harcèlement. _

Ceci est une déclaration des principes du Programming Historian en français et définit nos attentes concernant le ton et le style des échanges entre évaluateurs/évaluatrices, auteur(e)s, rédacteurs/rédactrices et toute autre personne contribuant à nos forums publics. Le Programming Historian en

Le Programming Historian en français a pour but d'offrir un environnement académique ouvert, qui permet aux membres de la communauté de se sentir libres d'examiner des idées en détail, de poser des questions, de faire des suggestions, ou de formuler des demandes de clarification. Nous insistons sur l'importance de faire en sorte que cet espace de discussion reste respectueux et exempt de tout harcèlement pour tous les contributeur(trice)s, quels que soient leur genre, leur identité et leur expression de genre, leur orientation sexuelle, leur handicap, leur apparence physique, leur masse corporelle, leurs origines, leur âge, leur religion, ou leur expérience technique. Nous ne tolérons pas, sous quelque forme que ce soit, le harcèlement ou les attaques ad hominem contre les membres de la communauté. Les participant(e)s qui violeraient ces règles pourront être exclu(e)s de la communauté à la discrétion du comité éditorial. Si quelqu'un est témoin ou pense avoir été victime des agissements décrits plus haut, veuillez prendre contact avec notre médiatrice Hélène Huet. Merci de nous aider à créer un espace de discussion et d'échange sûr.

DMathelier commented 1 year ago

Merci à @datalogism et à @vjsibro d’avoir accepter de s’occuper de la relecture de cette traduction.

Le délai d’évaluation est d’un mois, vos retours sont donc attendus autour du 12 juin 2023.

Pour transmettre vos commentaires, il vous suffit de répondre directement à ce ticket. Vous pouvez vous aider de la numérotation des paragraphes proposées dans le lien de visualisation.

Rappel : les consignes aux évaluateurs/trices sont disponibles ici.

Bonne lecture et merci encore !

datalogism commented 1 year ago

Bonjour @DMathelier @anisa-hawes, J'essaies de relire cela dans la semaine et vous fait mes retours.

datalogism commented 1 year ago

Bonjour @DMathelier, @vjsibro, j'ouvre donc le bal des corrections.

Une traduction de très bonne qualité, avec quelques petites coquilles récurrentes concernant la fermeture des guillemets. Je ne sais pas trop si je fais bien souligner les accents circonflexes pouvant manquer, car il y a là peut être une réforme qui rend possible cela. Je soulignes donc les coquilles et corrections à faire avec 🧐 et les propositions de reformulation et questions que je me pose avec ❓. Voici donc par paragraphes mes retours :

Bonne continuation

DMathelier commented 1 year ago

Bonjour @datalogism et merci beaucoup pour tes propositions de modifications !

@marie-flesch tu peux déjà en prendre connaissance mais (comme tu sais ;) il faudra attendre le retour du deuxième correcteur @vjsibro pour effectuer des corrections sur ta leçon.

À bientôt

vjsibro commented 1 year ago

Merci @DMathelier pour ton invitation à la relecture ! Vu la qualité de la traductions de @marie-flesch et remarques détaillées de @datalogism, j'ai opté pour une relecture qui questionne surtout la progression dans la leçon. Cette leçon me semble très bien construite pour découvrir R (en se concentrant sur l'utilisation de la console). Du coup, je pense qu'elle mériterait quelques précisions supplémentaires pour limiter des risques de confusion dans les notions (distinguer tableau et série, objet et variable), au prix de petits remaniement dans l'ordre de présentation. Ne sachant pas dans quelle mesure la traduction peut revisiter le texte original (de 2016), j'indique sans distinction remarques, suggestions et corrections.

Objectifs de la leçon

§4 Les matrices sont à ma connaissance très rarement utilisées par les historiens, car de type légèrement des données importées depuis un fichier csv. Il me semblerait donc préférable de remplacer les matrices par des tableaux de données (dataframe ou données tabulaires) tel qu'indiqué dans le titre, et d'adapter la suite (cf. §56 à §71)

Remplacer : "comme la création de matrices" par "comme la création de tableaux de données"?

Utiliser la console de R

Introduire directement quelques opérations de base permettrait d'alléger la partie suivante, sur l'utilisation de jeux de données. Ce serait aussi utile pour épurer le §17. (en distinguant la création et la manipulation d'objets à introduire directement ici, de la sélection de valeurs ou plages de valeurs à traiter en §17)

Suggestion d'ajout de §, après le §11 :

Cette console est utilisable comme une calculatrice, pour exécuter toutes sortes d'opérations. Par exemple, additionnez 112 et 118, puis appuyez sur Entrée pour exécuter.

Supprimer les §18 et §19 et insérer ici le code correspondant :

> 112 + 118
[1] 230

Utiliser des jeux de données

§13. Le type de données choisi est une série temporelle (de type "ts" : class(AirPassengers)). Cela risque de créer quelques malentendus pour les utilisateurs car ce type est à ma connaissance plutôt inhabituel pour des historiens, et il ne s'agit pas de données tabulaires (comme des tableaux de données de type data.frame). Pourriez-vous préciser ce point dès cette première citation, puis dans les suivantes?

"Vous allez dans un premier temps charger la série temporelle AirPassengers dans votre session R.

§14 De même, il serait préférable de remplacer les occurrences de "tableau" par "série"

Vous pourriez probablement trouver les réponses à ces questions en parcourant simplement cette série De plus, examiner une série de valeurs ...

Les fonctions de base de R

§15. Même remarque que précédemment concernant "jeu de données" et ce type particulier

Pour calculer la moyenne et la médiane de la série AirPassengers

§16 Idem

Ces indicateurs procurent une représentation synthéthique des séries de valeurs numériques.

§16 Si possible, indiquer l'existance des graphiques?

Mais des représentations graphiques sont souvent plus explicites que des indicateurs synthétiques. Utilisez par exemple la fonction générique plot() : plot(AirPassengers)

§17 Préciser "Cette fonction est bien pratique pour avoir une vue d’ensemble du jeu de données" et accorder avec le §16 (si modification).

Ces fonctions sont bien pratiques pour avoir une vue d’ensemble d'une série de valeurs numériques

§17 à 46 : Plusieurs notions sont abordées successivement, dont la notion fondamentale de vecteur. Voir par exemple ce tutoriel de J. Larmarange : https://larmarange.github.io/analyse-R/vecteurs-indexation-et-assignation.html Est-il possible de décomposer les étapes et d'introduire un vocabulaire spécifique?

Ajouter un titre avant le §17 :

Sélectionner des valeurs dans un vecteur

Remplacer la dernière phrase du §17 ("Par exemple, on peut additionner le nombre de passagers sur deux mois afin de déterminer le nombre total de personnes qui ont voyagé pendant cette période.") par :

Par exemple, on peut sélectionner la première valeur de la série AirPassengers en indiquant sa position entre crochets :

> AirPassengers[1]
[1] 112

§18 : Exercice bienvenu. En adaptant le prompt qui suit on obtiendrait un exemple plus fidèle à l'énoncé (qui indique les deux premières valeurs de cette série, non deux valeurs à saisir)

> AirPassengers[1] + AirPassengers[2]
[1] 230

§19 Préciser avec une parenthèse en fin de phrase

Le résultat indique le nombre total de passagers, exprimé en milliers de personnes, qui ont voyagé en janvier et en février 1949 (c.a.d la première et la deuxième valeur de la série AirPassengers).

Si l'on traite des sélections de valeurs, ce serait le moment d'introduire une première fois les plages de valeurs. Peut-on ajouter un § en exemple à la suite du §19?

Notez que vous pouvez éxécuter la même opération en sélectionnant une plage de valeurs avec l'opérateur ":" (les deux points s'utilisent comme dans un tableur Calc ou Excel), puis leur applicant la fonction sum(). Affichez, puis sommez les deux premières valeurs de la série AirPassengers :

> AirPassengers[1:2]
[1] 112 118
> sum(AirPassengers[1:2])
[1] 230

§20 : Ce paragraphe introduit une nouvelle notion (création d'objet dans une session). Pourriez-vous ajouter un titre pour marquer cette étape?

Assigner des valeurs à un objet

§20 : Vous faciliteriez la compréhension des données tabulaires en distinguant d'emblée objet, valeur et variable (ce terme ne correspondant pas exactement à l'exemple fourni immédiatement à la suite). Ce § me semble pouvoir gagner en clareté, avec quelques modifications substantielles :

R peut faire bien plus que ce type de calcul simple. En assignant les valeurs à des objets enregistrés dans votre session de travail, vous pourrez les manipuler plus facilement.Par exemple, on peut créer un objet Jan1949, qui contient le nombre de passagers en janvier 1949. Écrivez Jan1949 <- 112 dans la console, puis Jan1949 sur la ligne suivante. Le signe <- (signe inférieur suivi du signe moins) assigne la valeur 112 à l'objet Jan1949. Vous devriez obtenir ceci :

Jan1949 <- AirPassengers[1] Jan1949

§21 : Pour bien distinguer la variable (une série de valeurs) de l'objet (auxquel on assigne une ou plusieurs valeurs mais pas seulement), préférez :

R étant sensible à la casse, il est essentiel d’utiliser exactement la même orthographe quand on crée un objet [...] pour plus d’informations sur les meilleures façons de nommer les objets dans R.

§21 : Peut-être indiquer en fin de § qu'un nom d'objet commence nécessairement par une lettre?

Notez que dans R, les noms d'objets commencent nécessairement par une lettre (majuscule ou minuscule).

§22 et 23 : idem, remplacez "variable" par "objet"

§24 : idem

On a donc deux objets : AirPassengers (qui contient une série de valeurs, et pourra être considérée comme une variable) et Jan1949 (qui contient la valeur que vous lui avez assignée). Nous allons maintenant supprimer Jan1949 et taper à nouveau ls(). On voit ceci :

§26 : L'idée me semble trop pertinente pour être reléguée en fin de partie : la placer à la suite du §21?

Pour nommer vos objets, vous pouvez utiliser des lettres (x, y, etc.) mais, quand vous travaillez avec vos propres données, il est plus pratique d’utiliser des noms représentatifs du contenu. Par exemple, avec les données AirPassengers, choisir des noms d'objets correspondant à certains mois ou années permet de savoir précisément à quoi correspondent chaque valeur ou série de valeurs.

Mise en pratique

§29 et 31 : remplacer "variables" par "objets"

§33 : La notion de variable me semble bien amenée et compréhensible. Pourriez-vous la mettre en exergue avec un titre juste avant le § 33?

Créer une variable : combiner une série de valeurs dans un vecteur

§33 : Précisez que c() est une fonction (non une commande)? Le terme liste est aussi utilisé pour désigner un type d'objet spécifique : préférez "série"?

Créer un objet pour chaque valeur peut être fastidieux [...]. Pour ce faire, il faut créer une série que l’on appelle « vecteur » en utilisant la fonction c(). c() veut dire « combiner »

§35 : Si vous souhaitez conserver la spécificité du terme "liste" :

On peut combiner une série de valeurs consécutives en utilisant un deux-points. Voici un exemple :

§37 : Si vous souhaitez conserver la spécificité du terme "jeu de données" (tabulaires)

Air49 renvoie les 12 premières observations de la série AirPassengers.

§39 : Vous pourriez en profiter pour rappeler le premier exemple de fonction, avec summary(). Ajoutez un § après le § 39?

De même, vous pouvez décrire cette série avec la fonction summary()

> summary(Air49)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  104.0   118.0   125.0   126.7   135.2   148.0 

En 1949, 126 700 personnes en moyenne par mois ont voyagé sur des vols internationaux. Notons que la variation autour de la moyenne est assez importante, puisque que nombre de passagers varie de 104 000 à 148 000 par mois.

Travailler avec de gros jeux de données

"Gros" me semble un peu trop subjectif pour une profession susceptible de traiter une grande variété de données. Préférez un titre plus explicite ?

Traiter des tableaux de données

§47 : De même que pour le titre, modifiez la première phrase?

Les méthodes que nous avons utilisées plus haut ne sont pas adaptées au traitement de plusieurs centaines ou milliers d'observations décrites par des dizaines ou centaines de variables.

§48 la notion de format me semble particulièrement importante. Pouvez-vous la souligner par une assertion dans le §, suivie d'un exemple?

Vous pouvez tout simplement sélectionner des lignes ou des colonnes spécifiques si le jeu de données est dans un format adéquat, de préférence de type "data.frame". Chargez le jeu de données mtcars dans la console et affichez son type avec la fonction class():

> data(mtcars)
> class(mtcars)
[1] "data.frame"

À la suite du §48 :

Affichez le contenu de ce tableau de données

> mtcars
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Matrices

Cette approche par matrice me semble inhabituelle pour un public d'historiens : son usage est-il effectif chez les francophones ? Il me semblerait préférable d'approfondir la notion de data.frame introduite par l'exemple précédent (d'où mes suggestions suivantes si cette remarque vous semble pertinente).

§56 : Remplacez "matrice" par "data.frame" ou "tableau de données"?

Pour les jeux de données de petite taille, vous pouvez créer vos propres tableaux de données (data.frame). Savoir construire des tableaux est très utile, car si vous avez peu de données, vous pouvez les créer directement dans R au lieu d’importer un fichier CSV. Le plus simple, pour construire un tableau, est de créer au moins deux variables, ou vecteurs, et de les associer. Nous alons en construire un avec des données qui se trouvent sur le site d’Old Bailey, la Cour centrale de la Couronne britannique :

§57 : L'illustration me semble proposer un exemple peu lisible de tableau, avec à la fois les valeur absolue, le pourcentage en ligne et le pourcentage en colonne dans une même cellule

§58: remplacer matrice par data.frame

§59: rappeler la notion de vecteur?

Commençons par créer les variables Vols et VolsAvecViolence, en combinant les valeurs correspondant à chaque décennie dans un vecteur :

§60: créer un data.frame?

Pour créer un tableaux d'observations et de variables, on utilise la fonction data.frame(), qui permet de juxtaposer les valeurs de plusieurs vecteurs de même taille. Nous allons associer les variables Vols et VolsAvecViolence dans l’objet Crimes ci-dessous :

> Vols <- c(2,30,38,13)
> VolsAvecViolence <- c(7,20,36,3)
> Crimes <- data.frame(Vols, VolsAvecViolence)
> Crimes
  Vols VolsAvecViolence
1    2                7
2   30               20
3   38               36
4   13                3

§61 à 64 : pourriez-vous les supprimer sans nuire au propos? Cela simplifierait l'assimilation des premières notions.

§65 à 67 : apply() est elle utile dès cette étape? J'aurais privilégié d'autres fonctions plus courantes (affichage des noms de variables), voire un exemple de variable calculée Vols + VolsAvecViolence

§68 à 71 : adapter la Mise en pratique aux tableaux?

Charger votre propre jeu de données dans R

Les fichiers exemples sont-ils accessibles? Sinon vous pourriez peut-être placer les §81 et 82 en amont? Dans ce cas j'exporterais d'abord Crimes au format csv, puis au format Excel.

§72 : commencer par le format csv (le plus générique), puis excel (cas particulier pas recommandé pour conserver les données)?

La suite me semble tout à fait claire et accessible

§78 : à adapter si vous exportez d'abord un data.frame depuis R

DMathelier commented 1 year ago

Merci à @datalogism et à @vjsibro pour vos précieuses évaluations !

@marie-flesch : je te laisse prendre connaissance des différents retours qui concernent autant le fond que la forme (@datalogism souligne notamment quelques problèmes typographiques). Comme tu le verras dans son message, @vjsibro a lu le tutoriel comme une leçon originale et suggère parfois des remaniements : je te laisse voir ce qui te semble pertinent et décider ce qui peut/doit être intégré (je ne sais pas à quel point on peut s'écarter de la leçon originale).

Bon courage pour cette nouvelle phase de corrections et bonne fin de journée.

marie-flesch commented 1 year ago

Merci @DMathelier, je vais regarder tout ça !

marie-flesch commented 1 year ago

Bonjour tout le monde,

J'ai (enfin !) effectué les modifications sur la traduction. Merci beaucoup aux deux évaluateurs @datalogism et @vjsibro qui ont fourni des remarques extrêmement judicieuses, et merci à @DMathelier pour le suivi.

Je suis tout à fait d'accord avec les commentaires de @vjsibro. Les choix effectués par la leçon originale semblent parfois un peu étranges, ce qui est peut-être dû à sa date de production, je ne sais pas. Après réflexion, j'ai décidé de modifier substantiellement la leçon, en m'éloignant de l'original pour proposer un tutoriel plus en phase avec les besoins des débutant.es, et qui propose une terminologie plus juste.

Je n'ai toutefois pas appliqué toutes les propositions (notamment, celle d'introduire les graphiques - je pense que cela devrait faire l'objet d'un autre tuto, étant donné que la leçon est déjà longue). J'ai notamment :

DMathelier commented 1 year ago

Merci pour @marie-flesch pour ton retour et gros travail sur la leçon, notamment en termes d’adaptation/actualisation !

Les modifications apportées sont pertinentes et vont favoriser à coup sûr la compréhension du tutoriel pour les débutants, merci à vous trois !

Ok pour moi de ne rien ajouter sur les graphiques pour ne pas alourdir la leçon mais de conserver néanmoins l’exemple de la fonction apply. Ok aussi pour l’ajout des sous-titres qui favorisent le déroulement du tutoriel.

Je viens de relire une dernière fois la leçon et je n’ai pas grand-chose à ajouter, j’ai juste relevé ces dernières coquilles et remis les remarques de Célian relatives à l’orthographe traditionnelle :

@marie-flesch : souhaites-tu mettre à jour le fichier .md ou je m’en occupe ?

À bientôt !

marie-flesch commented 1 year ago

J'ai donc corrigé les coquilles soulignées par @DMathelier. J'ai choisi cependant d'utiliser l'orthographe rectifiée, ce qui explique que certaines modifications n'aient pas été intégrées.

DMathelier commented 1 year ago

Merci @marie-flesch, j'ai corrigé les dernières coquilles ortho-typo et mis à jour le fichier md. Tout est ok pour moi :)

marie-flesch commented 1 year ago

Bonjour @vjsibro, pourriez-vous me communiquer votre prénom et nom pour que je l'ajoute à la leçon ?

vjsibro commented 1 year ago

Bonjour Marie,

c'est Brian Chauvel, collègue de Daphné à la MSH Mondes ( je suis dans son service à la PUDN). Merci pour le gros boulot cet été.

bien à vous, Brian

Le mer. 13 sept. 2023 à 14:41, Marie Flesch @.***> a écrit :

Bonjour @vjsibro https://github.com/vjsibro, pourriez-vous me communiquer votre prénom et nom pour que je l'ajoute à la leçon ?

— Reply to this email directly, view it on GitHub https://github.com/programminghistorian/ph-submissions/issues/561#issuecomment-1717553795, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO2755SDYBVPTG6XMK6JY4LX2GSWDANCNFSM6AAAAAAXUAW5CY . You are receiving this because you were mentioned.Message ID: @.***>

marie-flesch commented 1 year ago

Merci Brian !

marie-flesch commented 1 year ago

This lesson is ready @anisa-hawes! ✨ (when you have time of course, there is no hurry at all :)

charlottejmc commented 1 year ago

Hello @marie-flesch,

This lesson is ready for your final review + transfer to Jekyll.

Publisher's sustainability + accessibility actions:

Editorial input to YAML:

Files to be transferred to Jekyll:

FR:

Promotion:

marie-flesch commented 1 year ago

Et voilà, la leçon a été publiée ! Bravo et merci à toutes celles et ceux qui ont travaillé dessus : @DMathelier, dont c'était le premier suivi édito (youhou!), @datalogism et @vjsibro (super évaluations !) 🥳

DMathelier commented 1 year ago

Merci à tous !

datalogism commented 1 year ago

Belle première traduction de @marie-flesch, et un gros boulot surtout apporté par vous @vjsibro & @DMathelier.