HackMD
  • Beta
    Beta  Get a sneak peek of HackMD’s new design
    Turn on the feature preview and give us feedback.
    Go → Got it
      • Create new note
      • Create a note from template
    • Beta  Get a sneak peek of HackMD’s new design
      Beta  Get a sneak peek of HackMD’s new design
      Turn on the feature preview and give us feedback.
      Go → Got it
      • Sharing Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • More (Comment, Invitee)
      • Publishing
        Please check the box to agree to the Community Guidelines.
        Everyone on the web can find and read all notes of this public team.
        After the note is published, everyone on the web can find and read this note.
        See all published notes on profile page.
      • Commenting Enable
        Disabled Forbidden Owners Signed-in users Everyone
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
        • Everyone
      • Invitee
      • No invitee
      • Options
      • Versions and GitHub Sync
      • Transfer ownership
      • Delete this note
      • Template
      • Save as template
      • Insert from template
      • Export
      • Dropbox
      • Google Drive Export to Google Drive
      • Gist
      • Import
      • Dropbox
      • Google Drive Import from Google Drive
      • Gist
      • Clipboard
      • Download
      • Markdown
      • HTML
      • Raw HTML
    Menu Sharing Create Help
    Create Create new note Create a note from template
    Menu
    Options
    Versions and GitHub Sync Transfer ownership Delete this note
    Export
    Dropbox Google Drive Export to Google Drive Gist
    Import
    Dropbox Google Drive Import from Google Drive Gist Clipboard
    Download
    Markdown HTML Raw HTML
    Back
    Sharing
    Sharing Link copied
    /edit
    View mode
    • Edit mode
    • View mode
    • Book mode
    • Slide mode
    Edit mode View mode Book mode Slide mode
    Note Permission
    Read
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    Write
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    More (Comment, Invitee)
    Publishing
    Please check the box to agree to the Community Guidelines.
    Everyone on the web can find and read all notes of this public team.
    After the note is published, everyone on the web can find and read this note.
    See all published notes on profile page.
    More (Comment, Invitee)
    Commenting Enable
    Disabled Forbidden Owners Signed-in users Everyone
    Permission
    Owners
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Invitee
    No invitee
       owned this note    owned this note      
    Published Linked with GitHub
    Like1 BookmarkBookmarked
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    # Element de réflexions 8 décembre ## Du Notebook et du GT Notebook Le Notebook est un objet plus complexe qu'il n'en a l'air, je crois que c'était notre point de départ dans le GT. Complexe dans sa fabrication, multiples dans ses utilisations, mouvant dans sa destination. Complexe aussi dans sa maintenance, dans son déploiement, des actes qui demande une technicité, un savoir faire et des métiers qui parfois vont bien au delà de son utilisation. Je crois ce groupe de travail s'est formé avec l'envie de suivre certaines de ces ramifications techniques, méthodologiques, épistémologiques. Avec cette volonté aussi d'observer plus finement le Delta entre l'objet tel qu'il a pu être, tel qu'il se réifie, c'est à dire avec les fantasmes et les deceptions qu'il suscite parfois avec fracas [273] au sein d'une communauté d'outils et de méthodes (R/Python), et ce que nous en savons, au travers de nos pratiques inter-disciplinaires. Ce qui nous as permis de réaliser un premier atelier de 3h ( [slides](https://gt-notebook.gitpages.huma-num.fr/workshop/workshop_3_decembre_2021/slide/) et [slides avec commentaires](https://gt-notebook.gitpages.huma-num.fr/workshop/workshop_3_decembre_2021/slide2html-3-dec/)) pour dérouler cette complexité de l'objet, qui va de l'exposition des concepts à leur examplification au sein d'un notebook. Le mieux pour en donner une idée c'est de déconstruire l'objet en partant de ce que l'on a sous les yeux, sous les mains. Le Notebook est bien un écrit à destination de l'oeil humain, mais dont le contenu scriptural est un mélange de prose non executable, et de prose executable compréhensible par la machine, qui peut être visible et/ou caché. Si on n'y faisait pas attention, on pourrait tenter de comparer l'objet à un bloc note de papier classique que l'on aurait "augmenté" en donnant la possibilité à l'utilisateur d'écrire également du code executable, de l'executer et d'afficher le résultat dans ce même bloc. Un peu comme si on ajoutait des blocs de codes executables à la place des titres de journaux animés vu dans Harry Potter. ![](https://i.imgur.com/EgKywZm.jpg =400x) Le Notebook est donc un support d'écriture qui supporte et même incite à une transformation. Il s'écrit et certaines parties de ces écrits s'executent. Tel que je vous le décrit celui-ci pourrait "sembler" autonome. On pourrait même ajouter qu'il est en quelques sorte "reproductible", vu qu'il execute toujours la même chose, ce qui est une forme d'autonomie plus forte encore. Mais l'analogie et la magie s'arrête là. Tout comme le texte sur écran n'est pas du texte (c'est du binaire), tout comme le rectangle de recherche "Google" n'est pas Internet, le Notebook n'est pas juste un enchainement de cellule executable et de cellule non executable. La pensée, le geste, l'environnement bien sur aussi, tout cela est surement très éloigné d'une prise de note sur un bloc de papier, et cette simple possibilité d'inclure du code executable dans un document cache en réalité une potentialité de pratiques, mais aussi de réalités techniques et conceptuelles. Ce paradigme de transformation et d'écriture, le Notebook le tient du "Literate Programming" de Donald Knuth : > "Literate programming is a methodology that combines a programming language with a documentation language, thereby making programs more robust, more portable, more easily maintained, and arguably more fun to write than programs that are written only in a high-level language. The main idea is to treat a program as a piece of literature, addressed to human beings rather than to a computer. " > > Src : [Site Web LP](https://www-cs-faculty.stanford.edu/~knuth/lp.html) ![](https://i.imgur.com/7hsMEge.png) Cet apport est double, et si on regarde un peu comment les Notebooks sont utilisés aujourd'hui à mon sens on *ne respecte qu'une partie du contrat* tel qu'il a été évoqué par Donald. On a tendance à se focaliser sur la partie opératoire, et à oublier la partie scripturale. La partie opératoire, si on met de côté l'attirail technique nécessaire à la transformation, apparait finalement de façon relativement simple du côté de l'utilisateur. J'écrit du code source, je clique sur un bouton, ou j'appuie sur une touche, celui-ci s'execute, et cela affiche un résultat qui vient s'intégrer directement dans ma prose non-executable. On perçoit bien l'intérêt que cela peut avoir, en terme d'interaction/co-construction avec les collègues (Sacha en parlera je crois), mais aussi avec à la clef "la possibilité" d'une meilleure reproductibilité. Je dit "possibilité" car contrairement à ce qui est souvent dit, c'est loin d'être automatique [274]. On pourrait penser que l'existence dans un même document du code et de la documentation de ce code est un premier pas( par rapport à ce que décrit Collberg par exemple en informatique [272]), c'est vrai en partie, mais en réalité le problème est juste déporté. Dans le cadre du GT nous essayons d'aller plus loin sur cet axe. La deuxième partie du contrat est beaucoup plus subtile, et là on sort du cadre classique du Notebook tel qu'il est utilisé et imaginé par les Data Scientists. Le terme est flou, je ne l'aime pas particulièrement et il faudra trouver mieux, car nous sommes tous des Data Scientist, mais il a le mérite pour le moment d'évoquer une pratique interdisciplinaire avec le point commun d'utiliser cet objet pour "travailler/explorer/présenter/discuter" les/nos données. Le "Literate Programming" s'est prendre le temps de s'intéresser "au pourquoi", il s'agit de documenter le processus qui a amené le programmeur à faire "ce choix". Ce n'est donc pas de la documentation à destination de l'utilisateur ou du développeur. C'est la mise en narration d'une partie ou de la totalité du code, pour l'humain, avec un objectif final explicatif. Sauf que voilà, Donald Knuth a beau être un pilier mondialement reconnu de la jeune discipline informatique, il se trouve que les "codeurs" n'ont jamais vraiment (pris) le temps de s'intéresser à l'écriture de ce "pourquoi". C'est un peu comme si on demandait à un artisan du bois d'expliquer pourquoi il avait choisi cet outil, à ce moment là et dans cet ordre là pour réaliser sa sculpture. Le "Literate Programming" ne recoupe donc qu'en partie les objectifs et la pratique des Notebooks actuels, mais c'est une piste que nous aimerions développer, notamment parceque cela a un intérêt dans d'autre domaines d'applications ou "le pourquoi" est fondamental comme la modélisation/simulation par exemple. Si on revient aux Notebook, et nous en discutions avec Sacha qui m'a introduit ces éléments suivant, il y a quand même des distinctions à faire dans l'usage fait des notebooks [275] - exploratoires avec du prototypage et de l’analyse interne, et souvent peu d’explications par rapport au code. - explicatifs pour le partage et la reproductibilité de résultats, qui sont parfois l’extension de premiers notebooks exploratoires. Ces deux usages peuvent être en tension [276] : un notebook exploratoire permet de garder une trace linéaire et exhaustive de l’histoire de l’analyse, laissant notamment de la place aux résultats négatifs [277], mais peut s’avérer peu intelligible. Là où sa mise en forme et réorganisation pour le rendre explicatif, tronquera des éléments d’exploration peu fructueux. Concernant les notebooks explicatifs, les destinataires peuvent aussi bien être des collègues et pairs, étudiants , grand public ou encore son moi futur. Dans le cadre du GT nous avions juste effleuré cette question de la trajectoire prises des Notebooks et de leur contenus, des choix d'écriture et d'organisation étant fait selon l'objectif (assumé ou non) : pédagogie, exploratoire, publications. Sur les perspectives plus écologiques, j'aurais tendance à dire qu'il y a un début de mouvement, au moins dans le monde académique. Des initiatives comme "Laboratoire 1.5" sont souvent cités, et/ou font figure de modèle à suivre. Reste à voir dans la pratique... Si on revient au Notebook, une étude de Pimentel [274] faisait la collecte et l'étude de 1.4 Million de Notebook Jupyter stockés sur la plateforme Github.com, déposés entre 2013 et 2018. Sur ce volume, 264,510 (18.58%) était des doublons. Seulement 25% étaient "reproductible sur le plan technique", c'est à dire au moins executable dans leur entiereté sans erreur. Ces Notebooks repose sur un plus ou moins large panel de technologies, qui peuvent être très différentes selon le type de Notebook et le public visé. En effet éxécuter un notebook en local sur sa machine nécessite bien moins de couches techniques superposées que sont utilisation une fois déployée pour un cours, pour un article. Avec [Binder](https://mybinder.org), on fait du déploiement à la demande : on clique sur un bouton, et on a un Notebook qui "pop" sur son propre ordinateur à l'autre bout du monde. Autre exemple, avec la démocratisation des notebooks en physique, en informatique est venu la question du déport de calcul et/ou de l'environnement d'execution du Notebook. Soit pour de la visualisation, soit pour du calcul. Autrement dit, les cellules executables seront executés non plus par votre machine, mais par un super-calculateur distant, par exemple. Il y a donc un vrai gap. Evidemment ce gap est difficile à calculer car la question de l'efficience des systèmes est complexe : est il plus couteux d'avoir son serveur à la maison alimenté par énergie solaire ? ou est-ce mieux dans un datacenter qui mutualise et capitalise des décennies de recherche dans ce domaine ? Alors faut il tout sauvegarder ? C'est plus ou moins le parti pris par *Software Heritage* et *Internet Archive* par exemple. Mais peut on se le permettre ? La "Curation" des données serait le terme adapté pour désigner une forme de responsabilité des chercheurs vis à vis des Notebooks et plus généralement de la donnée, et pourtant on l'entend assez peu dans la politique des données actuelles. Il faut dire que cela prend du temps, et que la politique de la "recherche par projets" ne suis pas cette voie là. Enfin, dans ce cadre écologie et technique, il est difficile aujourd'hui de ne pas parler à un moment donné du mouvement "Low-Tech", un terme encore en construction mais qui pose des bonnes questions : - [https://lowtechlab.org/](https://lowtechlab.org/), - https://gauthierroussilhe.com, - https://pad.lescommuns.org/Accueil_LowTech_Enseignement#, - https://forum-lowtre-ecosesa.univ-grenoble-alpes.fr/). Comme on peut s'y attendre, les motivations qui se place sous ce terme tout autant sociales/éthiques que technologiques, avec des ramifications assez complexes et des degré de structurations assez différents : - l'indiweb https://indieweb.org/ - le "self tooling" aka les gens qui créé du software pour eux - https://thesephist.com/ - https://100r.co/site/home.html - les signaux faibles, individuel, qui pointent ce qui serait une "crise du software" actuel : - sur le plan technique : - https://blog.kronis.dev/articles/never-update-anything - https://randomascii.wordpress.com/2022/09/29/why-modern-software-is-slow-windows-voice-recorder/ - https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html - https://unixsheikh.com/articles/is-the-madness-ever-going-to-end.html - http://pketh.org/why-software-is-slow-and-shitty.html - sur le plan organisationel : - https://logicmag.io/clouds/agile-and-the-long-crisis-of-software/ - les initiatives techniques diverses et variées - Html / CSS http://motherfuckingwebsite.com/ , https://github.com/lyoshenka/awesome-motherfucking-website - Refroidissements calculateurs (software/hardware): - voir les communications de https://jcad2022.sciencesconf.org/resource/page/id/7 - Homelab PC recyclé : https://www.servethehome.com/introducing-project-tinyminimicro-home-lab-revolution/ Pour le moment cette porte n'a pas été ouverte dans le cadre du GT, mais c'est clairement un axe que nous pourrions explorer. Perspective : - Le Notebook est linéaire, aujourd'hui on a des outils de portée équivalente qui intègre "une dimension spatiale" à la réflexion. Ce n'est pas nouveaux évidemment, et on trouve un fil historique à ces réflexions sans trop de difficultés. - Le Notebook n'est pas un objet uniquement dédié à produire de la "Data Science", réintégré la deuxième partie du contrat de Knuth permet d'imaginer d'autres applications. Dans la construction de simulation en interdisciplinaire par exemple. - Pertinence du Notebook, voire du numérique quant aux objectifs poursuivis ? - Curation ? Ecologie ++Sources:++ 272. Christian Collberg and Todd A. Proebsting. 2016. Repeatability in computer systems research. Commun. ACM 59, 3 (March 2016), 62–69. https://doi.org/10.1145/2812803 273. J. Gruss, I Don't Like Notebook https://conferences.oreilly.com/jupyter/jup-ny/public/schedule/detail/68282.html 274. J. F. Pimentel, L. Murta, V. Braganholo and J. Freire, "A Large-Scale Study About Quality and Reproducibility of Jupyter Notebooks," 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), 2019, pp. 507-517, doi: 10.1109/MSR.2019.00077. 275. Kery MB, Radensky M, Arya M, John BE, Myers BA. The Story in the Notebook: Exploratory Data Science using a Literate Programming Tool. Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems [Internet]. New York, NY, USA: Association for Computing Machinery; 2018 [cité 12 avr 2022]. p. 1–11. Disponible sur: https://doi.org/10.1145/3173574.3173748 276. Rule A, Tabard A, Hollan JD. Exploration and Explanation in Computational Notebooks. Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems [Internet]. New York, NY, USA: Association for Computing Machinery; 2018 [cité 13 avr 2022]. p. 1–12. Disponible sur: https://doi.org/10.1145/3173574.3173606 277. Herbet M-E, Léonard J, Santangelo MG, Albaret L. Dissimuler ou disséminer ? Une étude sur le sort réservé aux résultats négatifs [Internet]. Zenodo; 2021 sept. Disponible sur: https://zenodo.org/record/5541589 ## Pharmakon - Open Source reste une contre-tendance à l'industrie, même si celle-ci y participe et s'en nourrit.

    Import from clipboard

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lost their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template is not available.


    Upgrade

    All
    • All
    • Team
    No template found.

    Create custom template


    Upgrade

    Delete template

    Do you really want to delete this template?

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Tutorials

    Book Mode Tutorial

    Slide Mode Tutorial

    YAML Metadata

    Contacts

    Facebook

    Twitter

    Feedback

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions

    Versions and GitHub Sync

    Sign in to link this note to GitHub Learn more
    This note is not linked with GitHub Learn more
     
    Add badge Pull Push GitHub Link Settings
    Upgrade now

    Version named by    

    More Less
    • Edit
    • Delete

    Note content is identical to the latest version.
    Compare with
      Choose a version
      No search result
      Version not found

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub

        Please sign in to GitHub and install the HackMD app on your GitHub repo. Learn more

         Sign in to GitHub

        HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Available push count

        Upgrade

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Upgrade

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully