diff --git a/journal/2026-03-22_introduction_module1.md b/journal/2026-03-22_introduction_module1.md new file mode 100644 index 0000000000000000000000000000000000000000..38d855b0dd5e51e6055d2f12d18d14fadf982e59 --- /dev/null +++ b/journal/2026-03-22_introduction_module1.md @@ -0,0 +1,127 @@ + +# Journal MOOC recherche reproductible - 2026-03-22 - AGR +## 0 Introduction du MOOC recherche reproductible I +Objectif : technique de préparation de documents réplicables (données, logiciels et calculs) + +Documents computationnels +* Jupyter +* RStudio +* OrgMode + +Hors sujet : cf. futur MOOC Recherche reproductible II : pratique et outils pour gérer calculs et données +* statistique +* gestion environnement (e. g. Docker) +* automatisation (e. g. Snakemake) +* gestion volume important de données (e. g. HDF5, git LFS/annex) +Enseignants : +* Christophe Pouzat (MAP5, U. Paris-Descartes) +* Arnaud Legrand (labo informatique de Grenoble) +* Konrad Hinsen (centre Biophysique Moléculaire / Synchrotron SOLEIL) +Notation : +* 25 % quiz I (16) sauf les deux quizzes à notes minimales +* 25 % quiz P (12) attachés à l'un des trois parcours +* 40 % exercice K des trois premiers modules +* 10 % ExoEvalPair TP en autonomie évalué par les pairs + +## 1 Cahier de note, de labo +### 1.0 Intro +Sur support papier et numérique : markdown +Gestion de version +### 1.1 Nous utilisons tous des cahiers de notes + +Codex annotés d'Aristoteles et manuscrits de Galilée +Fiches : armoires à notes de Placcius et Leibniz ; Fulgence Tapir et ses notes fatales dans le roman *L'Île des pingouins* d'Anatole France. +Carnet de bord de Tabarly* + +#### 1.1.2 Marie-Noëlle Bourguet sur les carnets d'Alexandre de Humbolt +Alexandre de Humbolt : voyage en Amérique du Sud 1799-1805, puis carnet de voyage en Italie, mesures météorologiques au brouillon puis sélectionnées pour recopiage à l'encre, notes de lectures/thématiques paragraphes numérotés, travail sur manuscrits mexicains à la bibliothèque vaticane, délégation des notes puis recopiage en citant son assistant, flux continu avec numérotation des paragraphes et des pages et renvois en avant et arrière. + +#### 1.1.3 Annie Lacroix-Riz : prise de notes au travail dans les archives +Gratte-papier : du premier document de l'archive au dernier en notant les documents sans-intérêt +PC dans les années 1990 : vérification par le lecteur de la production de l'historien, numérotation automatique des notes +Synthèse : recherche dans les notes, synthèse toutes les semaines le soir ou en fin de semaine dans des fichiers papiers (liste de documents intéressants), multiplication des fichiers numériques mêmes classés sur ordinateurs + +#### 1.1.4 Isabel Llano : neurophysiologiste et son cahier de labo +Paramètres constants du laser (longueur d'onde et puissance) +Enregistrement manuel chronologique des coordonnées de la platine microscope, température cellule échantillonnée dans un cerveau, paramètres de stimulation électrique + +### 1.2 Aperçu historique de la prise de note +matériau : tablette de cire, argile, volumen (rouleau de papyrus) (-3000) puis codex, fiche après le XIX (dont Carl Linné), post-it, ordinateur/tablette + +Codex : Ptolémée à Alexandrie vs. Eumène de Pergame, début de paragraphe indiqué par la couleur/lettrine +Canon eusébien : références croisées des évangiles +Chinois : IXe siècle concours et épreuve de culture gé, ouvrage florilège (*leishu* dont un de 370 millions de caractères) + +#### 1.2.1 Organisation de la prise de notes +Fiches : détachables recollables pour faire une synthèse +Méthode de John Locke : créer un index alphabétique des pages avec la première lettre et la voyelle suivante + +### 1.3 Fichiers texte et langage de balisage léger +Fichier texte, fichier numérique lisible avec un éditeur de texte (Notepad++, gedit, TextEdit) +Caractère encodés en UTF-8, pas formatable +Langage de balisage (*markup language*) : HTML mais pas destiné à être lu par un humain +Langage de balisage léger : Markdown, Wikitexte, AsciiDoc, RestructuredText + +#### 1.3.1 Ressources complémentaires sur Markdown et Pandoc +Mardown et Pandoc : [« Élaboration et conversion de documents avec Markdown et Pandoc »](https://www.jdbonjour.ch/cours/markdown-pandoc/) didacticiel de Jean-Daniel Bonjour (EPFL) +Cours de GitHub : https://guides.github.com/features/mastering-markdown/ +Le projet CommonMark propose, en plus d'une spécification plus rigoureuse de la syntaxe Markdown, des convertisseurs Markdown → html / LaTeX (et plus) écrits en C et en JavaScript (https://github.com/CommonMark/CommonMark). + +#### 1.3.2 Encodage UTF-8 +Une table des symboles UTF-8, avec leur code se trouve à l'adresse : [http://www.utf8-chartable.de/](http://www.utf8-chartable.de/). C'est pratique pour insérer un symbole pas très courant comme la lettre « TLO » : Ꮰ de la langue cherokee, ou le symbole mathématique ∀, « pour tout ». + +Pour ceux qui doivent souvent utiliser des lettres grecs (par exemple pour écrire des équations), il est possible sous Linux de (re)définir des combinaisons de touches pour générer directement les dites lettres. Ces combinaisons sont définies dans le fichier `.XCompose`, le début de mon fichier contient : + +``` +# On charge la base de donnée de Compose la plus complète en UTF-8 + include "/usr/share/X11/locale/en_US.UTF-8/Compose" + # espace insécable fine + : " " U202F + # Lettres greques + : "α" Greek_alpha + : "Α" Greek_ALPHA + : "β" Greek_beta + : "Β" Greek_BETA + : "γ" Greek_gamma + : "Γ" Greek_GAMMA + : "δ" Greek_delta +``` + +J'ai en plus redéfini la «  » pour qu'elle corresponde à la touche « impression d'écran » de mon clavier. Pour apprendre à redéfinir des touches, consultez : [https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Configuring_compose_key](https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Configuring_compose_key). + +### 1.4 Pérennité et évolutivité avec la gestion de version +Traitement de texte : pas fichier texte et gestion de version imbriquée dans le fichier principal +DokuWiki : format texte, historique de version, sauvegarde à la charge de l'utilisateur, mais une page modifiable à la fois +Git : arborescence de fichiers (dont texte), historique des versions, comparaison des version, correction simultanée de plusieurs fichiers (utile pour le développement logiciel), grand projet collaboratif utilisant git (noyau Linux), sauvegarde centralisée + + +#### 1.4.1 Démystifions Git, Github, Gitlab +##### Notion d'historique +Duplication avec des noms de fichier, s'envoyer des mails +Gestionnaires de version (depuis les années 1970), git en 2005 pour noyau Linux +Historique avec embranchement des *commits* `git add` puis `git commit` du projet identifiés par un SHA1, `git diff` pour comparer les versions, `git chechout` pour revenir à une version antérieur +Sauvegarde synchronisée : les branches sont synchronisées en échangeant des morceaux d'historique `git push` en sur branche du serveur local, puis sur serveur distant *remote*. + +##### Collaboration +`git pull` depuis le serveur distant +Détection de conflit, régler le conflit puis `git merge` sur le serveur distant +Réduire les conflits : séparer le projet en modules, faire des commit légers et commit, `git status` pour séparer différent types de commit. + +##### Écosystème Git +GitHub / GitLab : interface web pour héberger des projets collaboratifs gratuitement, gestion des utilisateurs et permissions, réseau social de développeurs +Fork et pull requests introduits par GitHub : copie personnelle d'un projet, modifications personnelles, puis pull request pour partager ses améliorations au projet original. +GitHub : logiciel propriétaire, gratuit pour individu, payant pour les organisations +GitLab : version communautaire libre, entreprise propriétaire, possibilité d'héberger un gitlab dans son institution pour protéger les données. + +==#idée imposer à chaque stagiaire, doctorant ou post-doc de contribuer un document dans un DocuWiki EMSE/SMS (e.g. méthode, procédure, documentation plus logiciel sous gitlab== + +### 1.5 Étiquettes et logiciels d'indexation +Problème de l'indexation de fichiers numériques aux formats hétérogènes +* moteur de recherche de bureau : DocFetcher (Linux, MacOS, Windows), Tracker (Linux), Recoll (L, M, W), Spotlight (M) + +Ajouter des étiquettes avec des mots-clefs entre signe de ponctuation `?phase-field?` +* commentaires en markdown ou code source, +* métadonnées des fichiers images avec ExifTool pour modifier les métadonnées, ajouter l'URL source de l'image en plus de mots-clefs +* fichiers PDF : champs `Keywords, format XMP conçu originellement par Adobe + +`grep` et sa version évoluée [cgvg](http://uzix.org/cgvg.html)