# Ecole SO SHS ressources [Atelier Git, Forges Logicielles](https://cahiers.umr-idees.fr/formations/ateliers-adn-forge/) [Software Carpentries](https://software-carpentry.org/workshops/workshops-upcoming/) enquêtes [le Hackmd des enquêtes](https://hackmd.io/uiSNKylFTJOc2GXnjrntbw) TODO : - [name=Hugues] fait le dépot sur le gt notebook - [name=Hugues] Transformation Atelier pratique 1 en site web (et il faudra faire le AP 2) - [name=Sébastien] - Chic Choc : - Python 100% (dév + publi) :heavy_check_mark: - Lisp 100% mais à tester (dév publi) - R 100% mais à publier en html :heavy_check_mark: - Make à passer en html à publier - Org-Mode 20% :arrow_double_up: - Partie Install Jupyter + screenshoot (AM) :heavy_check_mark: - Finir commentaire Schéma Quarto/Jupyter / simplifier ; prise recul critique ; contexte économique (PM) - Contenu Atelier pratique Python (AM) :heavy_check_mark: - Scripts déploiements de la solution à l'atelier du matin : super notebook R ( Python c'est fait) (AM) :heavy_check_mark: - Image Python :heavy_check_mark: - Démo Renv (PM) :heavy_check_mark: - Démo Renv + cache - Paragraphe sur la reproductibilité :heavy_check_mark: - [name=Raphaëlle] - explicitation (capture d'écran) pull request & merge sur slot 3 des sessions info dans un seul markdown - plan détaillé du cours dans README & sélection/structure des slides quarto - [name=Raphaëlle, Sébastien] - Interet plurilingue ! - Déroulé de la partie plurilingue deb/R/Python/Org = 1 à 2 points saillant (15 min ?) Réunion le 30 Trouver un fil directeur tout de suite : - Ticket chic/choc pour montrer la diversité : - debian (fait - transormer en html) - lisp (fait) - org-mode (a faire) - R (fait) - Python (a faire) => fonction computationelle et fonction thématique du Notebook en tant qu'outil => différence peut être entre l'objectif "DATA Science" et "l'objectif Logiciel" du LP => différence communauté de pratique au départ => ex de claerbout, figure sans montrer le code, pas du tout l'objectif initial du LP => les gens des notebook se réclame du LP mais en fait il n'en font pas vraiment. **Premier Slot 9h - 10h30** *magistral* Pourquoi ces paradigmes & technologies apparaissent ? *perspective question écoinfo & interopérabilité/reproductibilité technique* 1/fichiers / lisibles & interopérables - exemple docx / exemple txt (conversion docx en archives) (https://endof10.org/) - langage de "balisage léger" ([html](https://htmlforpeople.com/), markdown, lowdown, [rst](https://en.wikipedia.org/wiki/ReStructuredText), [org](https://orgmode.org/fr/), [asciidoc](https://asciidoc.org/) ), tex (latex) - AST - parser "pandoc" https://mystmd.org/sandbox, https://en.wikipedia.org/wiki/Abstract_syntax_tree - collaboratif etherpad / hackmd - suivi & version / démo ajout ![image](https://hackmd.io/_uploads/H1dMl8aXlx.png) + partie code : exemple programming historian, mise en page 2/écriture partagée - écriture en **gras** (ref https://ellanew.com/ptpl/161-2025-06-16-markdown-emacs-and-vim) - apparence d'un `code` mais à jouer "à côté" - spécificité / introduction notebook / "supprimer la dualité texte / code" voir https://elementr.gitpages.huma-num.fr/session_notebook/programmation_lettree/#/3/2 3/historique (de l'écriture informatique) - Programmation Lettrée (voir slide LP) - Notebook (voir slide https://elementr.gitpages.huma-num.fr/session_notebook/programmation_lettree/#/s-show voir Émergence de la recherche reproductible computationnelle) - une réflexivité spécifique aux shs 4/question de la publication scientifique vs working paper - un langage Turing complet vs langage de balisage (qui n'est pas nécessairement un langage de programmation) - interprétations disciplinaires - exemple notebook rzine (caractère polymorphe) 5/plurlingue - diversité de pratiques - définition document computationnel ? multiplicité / complexité - LP est une propriété qui n'est pas forcément incluse dans ces docs (exemple de la linéarité des "blocs de code" des notebooks alors que LP est la construction d'un récit) - Exemples et des démo (générer du html statique) - cultures scientifiques data science/DeepLearning vs explicitation de méthodes shs & R 6/Focus Jupyter et Quarto : processus/schéma/éosystème "compatible" 7/observation/réflexivité critique sur "nos pratiques" - gt notebook (epistémo, écosophie, littératie, reproducibilité), inachevé d'imprimer - journal of digital history (réf. médiéviste & ordinateur), bertin (géographie & code) - actualité mooc rr 7bis/notebook / regards **Deuxième Slot 11h - 12h30** *document computationnel versionné : individuel, cadré avec expérimentation en live* support site web quarto - présentation de l'atelier - choix de la technologie (script R, script Python) - 2 déclinaisons Quarto (R), Jupyter (python) - construction du notebook - en-tête du document (.yml) - bibliographie liée (csl) - css - blocs de code - écriture / LP - déploiement forge logicielle **Objectif** : *Passage script à un notebook, à l'échelle individuelle, env hétérogène* - Deux technos (quarto / jupyter), a priori les groupes ont déjà choisi en fonction de leur affinités : env rstudio Quarto Notebook - Installation des packages - Récupération de l'atelier pratique / TP et choix : - Jupyter Lab / Book / Mystmd avec R/Python - RStudio / Quarto avec R~~/Python~~ - Session info : discussions sur l'hétérogeneité des env. - Déploiement CI pour les pages - création coté forge du gitlab-ci.yaml - a) fichier html **Conclusion** : On a des environnements hétérogènes, comment fait on pour travailler collectivement avec tous le même environnement ? **Troisième Slot 14h - 15h30** pull request & merge version info des notebooks individuels *document computationnel versionné : collectif en groupe* Objectif : *Comment le rejouer sur n'importe quel machine ? = Fixer la recette* - Théorie : - collectif = reproductif, harmonisation des pratiques - Reproductibilité : Pile logicielle = Bonne pratique - v1 = CI, c'est déjà ordinateur de quelqu'un d'autre, fixer l'environnement distant - v2 = Comment faire çà en local ? Renv/Pyenv - Installation et Explication pour que çà marche : - VirtualEnv et pip - Rstudio et Renv - Déploiement CI pour les pages (reproductibilité) - b) build site à chaque commit -CI/CD- *Question du collectif dans le slot ?* - Bascule sur le mode groupe, on en choisit un et on - Modif perso - Git pull commit push - Fork et pull request - choisit un collegue, il propose un pull request sur son dépot - dépôt sur un dépôt perso gitlab :::info - Installation et Explication pour que çà marche : - VirtualEnv / Renv pour Rstudio - ? jupyter ::: Les gens manipulent les différentes technologies. Quatrième Slot 16h - 18h *atelier* Normalement ils ont déjé créé un dépot git avec un script R ou Python, en local ou sur la forge, dans l'atelier précédent. ## Scratch SEB The following package(s) will be installed: - plyr [1.8.9] These packages will be installed into "~/SOSHS/mon_super_notebook_R-main/renv/library/R-4.2/x86_64-w64-mingw32". Do you want to proceed? [Y/n]: # Installing packages -------------------------------------------------------- - Installing plyr ... OK [installed binary and cached in 0.34s] Successfully installed 1 package in 0.41 seconds. > renv::status() The following package(s) are out of sync [lockfile != library]: # CRAN ----------------------------------------------------------------------- - plyr [1.8.8 != 1.8.9] See `?renv::status` for advice on resolving these issues. > renv::snapshot() The following package(s) will be updated in the lockfile: # CRAN ----------------------------------------------------------------------- - plyr [1.8.8 -> 1.8.9] Do you want to proceed? [Y/n]: Y - Lockfile written to "~/SOSHS/mon_super_notebook_R-main/renv.lock". > renv::restore() It looks like you've called renv::restore() in a project that hasn't been activated yet. How would you like to proceed? 1: Activate the project and use the project library. 2: Do not activate the project and use the current library paths. 3: Cancel and resolve the situation another way. Sélection : 1 - Project '~/SOSHS/reproduce_mon_super_notebook_R' loaded. [renv 1.1.4] - One or more packages recorded in the lockfile are not installed. - Use `renv::status()` for more details. > renv::restore() The following package(s) will be updated: # CRAN ----------------------------------------------------------------------- - askpass [* -> 1.1] - base64enc [* -> 0.1-3] - BH [* -> 1.81.0-1] - brew [* -> 1.0-8] ... - webshot [* -> 0.5.4] - withr [* -> 2.5.0] - wk [* -> 0.7.2] - xfun [* -> 0.39] - yaml [* -> 2.3.7]