Commit bd1fcbec authored by c356ed33d414d53760b5d8b0a508adc0's avatar c356ed33d414d53760b5d8b0a508adc0

Logbook

parents 2528f37b 72173753
# Journal de bord du Mooc / Mooc's logbook
## Module 1
Voir *Notes*.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Journal de bord du Mooc / Mooc's logbook\n",
"\n",
"## Module 1\n",
"\n",
"Voir *Notes*.\n",
"\n",
"## Module 2\n",
"\n",
"*2021-02-17*\n",
"\n",
"<!-- :erreurs:, :document_computationnel: -->\n",
"\n",
"### 0. Introduction\n",
"\n",
"Document computationnel, qui permet de présenter à d'autres ses travaux, mais aussi montrer le détail du code et des calculs.\n",
"\n",
"### 1. Document computationnel\n",
"\n",
"- Étude liée aux politiques d'austérité: Erreurs liées à la non-publication des calculs qui ont conduit à la publication.\n",
"- Imagerie cérébrale: saumon mort qui présente des signes d'activités cérébrales >> données bruitées, menant à des erreurs d'interprétation. Potentielle remise en cause des résultats publiés ces 15 dernières années (40 000 articles environ), et données pas archivées.\n",
"- Fausses structures de protéines >> erreurs de programmation, même si l’acquisition des données était correcte.\n",
"\n",
"Pas un domaine de science est épargné. Problème méthodologique, mais également certainement sociologique. Dans les cas cités, manque de rigueur et de transparence.\n",
"\n",
"*2021-02-18*\n",
"\n",
"### 2. Pourquoi est-ce si difficile?\n",
"\n",
"<!-- :integration_continue:, :git:, :donnees: -->\n",
"\n",
"* Manque d'information:\n",
" - Disponibilité des données\n",
" - Explication des choix\n",
" - D'où, utilisation d'un **cahier de laboratoire**.\n",
"\n",
"\n",
"* Ordinateur, source d'erreurs:\n",
" - ERP meilleur que tableur pour la compta. Idem pour l'analyse de données.\n",
" - Pile logicielle complexe, notamment avec logiciels propriétaires. Tout reprogrammer nous-même n'est pas non plus une solution. Analyser chaque brique.\n",
"\n",
"\n",
"* Manque de rigueur et d'organisation.\n",
" - Sauvegarde\n",
" - Mauvaise gestion de versions\n",
" - Revue de code, intégration continue rarement utilisées dans la recherche\n",
" - Dimension culturelle et sociale. La description d'un article ne devrait pas être la norme! Données trop nombreuses pour être décrites de façon exhaustive, idem pour les protocoles. Si personne n'exige les infos à quoi bon s'embêter à les fournir?\n",
" - Cacher des infos peut être suspicieux. Mieux vaut prendre le risque que l'on détecte des erreurs.\n",
" - Qn pourrait en tirer avantage? Oui mais il doit citer notre travail. De plus, les articles les plus cités sont des articles méthodologiques.\n",
" - Possibilité de se faire une carte de visite avec GitHub, en mettant ses travaux à disposition.\n",
" - Données sensibles? Dans ce cas, définir qui peut avoir accès aux infos. Méthodes cryptographiques. >> Informations semi-publiques.\n",
"\n",
"\n",
"**Outils à éviter**\n",
"- Logiciels propriétaires. Aucune garantie sur le long terme.\n",
"- Formats binaires non ouverts mènent presque systématiquement à de la perte de données.\n",
"- Services d'hébergement propriétaires.\n",
"- Tableurs et outils graphiques\n",
"\n",
"\n",
"**Meilleurs attitude à avoir: transparence.**\n",
"\n",
"\n",
"\n",
"### 3. Document computationnel\n",
"\n",
"Permettre la transparence la plus complète possible.\n",
"\n",
"- Acquisition de données: majeure partie du temps derrière un ordinateur.\n",
"- Visualisation\n",
"- Publication. Attention, l'article est la partie émergée de l'iceberg!\n",
"\n",
"Permettre de refaire le calcul:\n",
"- Vérifier\n",
"- Corriger\n",
"- Réutiliser\n",
"\n",
"Exemples document computationnel: Jupyter notebook, R studio ou Org mode. Principes:\n",
" - Un seul document\n",
" - Session\n",
" - Export\n",
"\n",
"Jupyter: un peu compliqué d'eporter vers un PDF avec un template particulier. Avec Org mode, capacité à écrire directement du LaTeX.\n",
"\n",
"\n",
"On exporte souvent ensuite vers du PDF ou du HTML. Possibilité de spécifier si ou souhaite cacher certaines sections lors de l'export. Choix de partager le document final, ou bien le doc computationnel lui-même.\n",
"\n",
"\n",
"### 4. Prise en main de Jupyter\n",
"\n",
"<!-- :jupyter: -->\n",
"\n",
"Réexécuter le kernel afin d'avoir un notebook dans un état cohérent.\n",
"\n",
"Voir `Help > Keybord shortcuts`\n",
"\n",
"`tab`: complétion automatique\n",
"\n",
"`%matplotlib inline` utile?? Autres commandes magiques pour intéragir avec d'autres langages. Ex.: `%load_ext rpy2.python`, puis `%%R`.\n",
"\n",
"`commit & push` pour commiter le doc dans GitHub (uniquement dans le cas du MOOC?)\n",
"\n",
"`Edit > Cell toolbar > Hide code` pour cacher certaines parties.\n",
"\n",
"\n",
"### 5. Travailler avec d'autres\n",
"\n",
"Produire un document prêt à l'impression demande à avoir un environnement parfaitement configuré.\n",
"\n",
"- Co-auteurs enthousiastes: assurer le service après-vente, pas évident. Différents environnement, prise en main nécessaire... Ceci dit, favorise la reproductibilité.\n",
"\n",
"- Co-auteurs bienveillants: pas de soucis si le document est hébergé sur un cloud. Sinon, les co-auteurs peuvent uniquement éditer l'article avec un éditeur de texte. Le reste est de ma responsabilité.\n",
"\n",
"- Co-auteurs réfractaires:\n",
" - un doc computationnel;\n",
" - et un document plus classiques qui inclut les figures générées par le doc computationnel.\n",
"\n",
"Publier / partager documents:\n",
"- Attention à la pérénité! (ex.: Dropbox)\n",
"- GitHub ou GitLab: attention, on rend tout l'historique publique! Garder à l'esprit que à terme, les choses seront publiques. Sinon, faire le ménage et archiver l'état courant dans un site compagnon. Ex. archives ouvertes comme HAL. Possibilité de déposer des documents en annexe.\n",
"\n",
"\n",
"*2021-02-19*\n",
"\n",
"\n",
"### 6. Analyse comparée des outils\n",
"\n",
"- Cas d'un journal pour la prise de notes avec Org mode. Organisation chronologique, utilisation du mécanisme d'étiquettes pour s'y retrouver. Permet aussi de garder note du code associé si besoin, et de réexécuter à n'importe quel moment. Ensemble hétérogène mais facile à utiliser.\n",
"\n",
"- **Cahier de laboratoire**. Organisation sémantique. Sections avec expériences, analyses... Conventions à expliciter au début du document.\n",
"\n",
"- Article reproductible. Sections :noexport: avec des morceaux de code. Possibilité d'exporter le doc Org mode en Latex, avec un aspect tout à fait normal d'article. Possibilité de modifier facilement une figure en ré-exécutant le code intégré dans le documents. Liens vers le journal correspondant et vers GitHub permettant de revenir aux sources.\n",
"\n",
"Jupyter: lecture directe du ficheir JSOM un peu délicate. A l'inverse, ficheirs Rmd ou Org plus faciles à lire pour un être humain. Rédiger un article de bout en bout avec RStudio ou Org mode de plus en plus souvent faits; possible mais plus compliqué avec Jupyter."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercice 4"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"ename": "OSError",
"evalue": "data.csv not found.",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-2-0655c3d6eba1>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mgenfromtxt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmy_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgenfromtxt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'data.csv'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdelimiter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m','\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/numpy/lib/npyio.py\u001b[0m in \u001b[0;36mgenfromtxt\u001b[0;34m(fname, dtype, comments, delimiter, skip_header, skip_footer, converters, missing_values, filling_values, usecols, names, excludelist, deletechars, replace_space, autostrip, case_sensitive, defaultfmt, unpack, usemask, loose, invalid_raise, max_rows, encoding)\u001b[0m\n\u001b[1;32m 1698\u001b[0m \u001b[0mfname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1699\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbasestring\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1700\u001b[0;31m \u001b[0mfhd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0miter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_datasource\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'rt'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1701\u001b[0m \u001b[0mown_fhd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1702\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/numpy/lib/_datasource.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(path, mode, destpath, encoding, newline)\u001b[0m\n\u001b[1;32m 260\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 261\u001b[0m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDataSource\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdestpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 262\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mencoding\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnewline\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnewline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 263\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/numpy/lib/_datasource.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(self, path, mode, encoding, newline)\u001b[0m\n\u001b[1;32m 616\u001b[0m encoding=encoding, newline=newline)\n\u001b[1;32m 617\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 618\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mIOError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"%s not found.\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 619\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mOSError\u001b[0m: data.csv not found."
]
}
],
"source": [
"from numpy import genfromtxt\n",
"my_data = genfromtxt('data.csv', delimiter=',')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
# Journal de bord du Mooc / Mooc's logbook
## Module 1
Voir *Notes*.
## Module 2
*2021-02-17*
<!-- :erreurs:, :document_computationnel: -->
### 0. Introduction
Document computationnel, qui permet de présenter à d'autres ses travaux, mais aussi montrer le détail du code et des calculs.
### 1. Document computationnel
- Étude liée aux politiques d'austérité: Erreurs liées à la non-publication des calculs qui ont conduit à la publication.
- Imagerie cérébrale: saumon mort qui présente des signes d'activités cérébrales >> données bruitées, menant à des erreurs d'interprétation. Potentielle remise en cause des résultats publiés ces 15 dernières années (40 000 articles environ), et données pas archivées.
- Fausses structures de protéines >> erreurs de programmation, même si l’acquisition des données était correcte.
Pas un domaine de science est épargné. Problème méthodologique, mais également certainement sociologique. Dans les cas cités, manque de rigueur et de transparence.
*2021-02-18*
### 2. Pourquoi est-ce si difficile?
<!-- :integration_continue:, :git:, :donnees: -->
* Manque d'information:
- Disponibilité des données
- Explication des choix
- D'où, utilisation d'un **cahier de laboratoire**.
* Ordinateur, source d'erreurs:
- ERP meilleur que tableur pour la compta. Idem pour l'analyse de données.
- Pile logicielle complexe, notamment avec logiciels propriétaires. Tout reprogrammer nous-même n'est pas non plus une solution. Analyser chaque brique.
* Manque de rigueur et d'organisation.
- Sauvegarde
- Mauvaise gestion de versions
- Revue de code, intégration continue rarement utilisées dans la recherche
- Dimension culturelle et sociale. La description d'un article ne devrait pas être la norme! Données trop nombreuses pour être décrites de façon exhaustive, idem pour les protocoles. Si personne n'exige les infos à quoi bon s'embêter à les fournir?
- Cacher des infos peut être suspicieux. Mieux vaut prendre le risque que l'on détecte des erreurs.
- Qn pourrait en tirer avantage? Oui mais il doit citer notre travail. De plus, les articles les plus cités sont des articles méthodologiques.
- Possibilité de se faire une carte de visite avec GitHub, en mettant ses travaux à disposition.
- Données sensibles? Dans ce cas, définir qui peut avoir accès aux infos. Méthodes cryptographiques. >> Informations semi-publiques.
**Outils à éviter**
- Logiciels propriétaires. Aucune garantie sur le long terme.
- Formats binaires non ouverts mènent presque systématiquement à de la perte de données.
- Services d'hébergement propriétaires.
- Tableurs et outils graphiques
**Meilleurs attitude à avoir: transparence.**
### 3. Document computationnel
Permettre la transparence la plus complète possible.
- Acquisition de données: majeure partie du temps derrière un ordinateur.
- Visualisation
- Publication. Attention, l'article est la partie émergée de l'iceberg!
Permettre de refaire le calcul:
- Vérifier
- Corriger
- Réutiliser
Exemples document computationnel: Jupyter notebook, R studio ou Org mode. Principes:
- Un seul document
- Session
- Export
Jupyter: un peu compliqué d'eporter vers un PDF avec un template particulier. Avec Org mode, capacité à écrire directement du LaTeX.
On exporte souvent ensuite vers du PDF ou du HTML. Possibilité de spécifier si ou souhaite cacher certaines sections lors de l'export. Choix de partager le document final, ou bien le doc computationnel lui-même.
### 4. Prise en main de Jupyter
<!-- :jupyter: -->
Réexécuter le kernel afin d'avoir un notebook dans un état cohérent.
Voir `Help > Keybord shortcuts`
`tab`: complétion automatique
`%matplotlib inline` utile?? Autres commandes magiques pour intéragir avec d'autres langages. Ex.: `%load_ext rpy2.python`, puis `%%R`.
`commit & push` pour commiter le doc dans GitHub (uniquement dans le cas du MOOC?)
`Edit > Cell toolbar > Hide code` pour cacher certaines parties.
### 5. Travailler avec d'autres
Produire un document prêt à l'impression demande à avoir un environnement parfaitement configuré.
- Co-auteurs enthousiastes: assurer le service après-vente, pas évident. Différents environnement, prise en main nécessaire... Ceci dit, favorise la reproductibilité.
- Co-auteurs bienveillants: pas de soucis si le document est hébergé sur un cloud. Sinon, les co-auteurs peuvent uniquement éditer l'article avec un éditeur de texte. Le reste est de ma responsabilité.
- Co-auteurs réfractaires:
- un doc computationnel;
- et un document plus classiques qui inclut les figures générées par le doc computationnel.
Publier / partager documents:
- Attention à la pérénité! (ex.: Dropbox)
- GitHub ou GitLab: attention, on rend tout l'historique publique! Garder à l'esprit que à terme, les choses seront publiques. Sinon, faire le ménage et archiver l'état courant dans un site compagnon. Ex. archives ouvertes comme HAL. Possibilité de déposer des documents en annexe.
*2021-02-19*
### 6. Analyse comparée des outils
- Cas d'un journal pour la prise de notes avec Org mode. Organisation chronologique, utilisation du mécanisme d'étiquettes pour s'y retrouver. Permet aussi de garder note du code associé si besoin, et de réexécuter à n'importe quel moment. Ensemble hétérogène mais facile à utiliser.
- **Cahier de laboratoire**. Organisation sémantique. Sections avec expériences, analyses... Conventions à expliciter au début du document.
- Article reproductible. Sections :noexport: avec des morceaux de code. Possibilité d'exporter le doc Org mode en Latex, avec un aspect tout à fait normal d'article. Possibilité de modifier facilement une figure en ré-exécutant le code intégré dans le documents. Liens vers le journal correspondant et vers GitHub permettant de revenir aux sources.
Jupyter: lecture directe du ficheir JSOM un peu délicate. A l'inverse, ficheirs Rmd ou Org plus faciles à lire pour un être humain. Rédiger un article de bout en bout avec RStudio ou Org mode de plus en plus souvent faits; possible mais plus compliqué avec Jupyter.
14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2, 14.9, 18.1, 7.3, 9.8, 10.9,12.2, 9.9, 2.9, 2.8, 15.4, 15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2, 16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9, 16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7, 17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6, 19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1, 19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9, 20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2, 20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0
{
"cells": [],
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Journal de bord du Mooc / Mooc's logbook\n",
"\n",
"## Module 1\n",
"\n",
"Voir *Notes*.\n",
"\n",
"## Module 2\n",
"\n",
"*2021-02-17*\n",
"\n",
"<!-- :erreurs:, :document_computationnel: -->\n",
"\n",
"### 0. Introduction\n",
"\n",
"Document computationnel, qui permet de présenter à d'autres ses travaux, mais aussi montrer le détail du code et des calculs.\n",
"\n",
"### 1. Document computationnel\n",
"\n",
"- Étude liée aux politiques d'austérité: Erreurs liées à la non-publication des calculs qui ont conduit à la publication.\n",
"- Imagerie cérébrale: saumon mort qui présente des signes d'activités cérébrales >> données bruitées, menant à des erreurs d'interprétation. Potentielle remise en cause des résultats publiés ces 15 dernières années (40 000 articles environ), et données pas archivées.\n",
"- Fausses structures de protéines >> erreurs de programmation, même si l’acquisition des données était correcte.\n",
"\n",
"Pas un domaine de science est épargné. Problème méthodologique, mais également certainement sociologique. Dans les cas cités, manque de rigueur et de transparence.\n",
"\n",
"*2021-02-18*\n",
"\n",
"### 2. Pourquoi est-ce si difficile?\n",
"\n",
"<!-- :integration_continue:, :git:, :donnees: -->\n",
"\n",
"* Manque d'information:\n",
" - Disponibilité des données\n",
" - Explication des choix\n",
" - D'où, utilisation d'un **cahier de laboratoire**.\n",
"\n",
"\n",
"* Ordinateur, source d'erreurs:\n",
" - ERP meilleur que tableur pour la compta. Idem pour l'analyse de données.\n",
" - Pile logicielle complexe, notamment avec logiciels propriétaires. Tout reprogrammer nous-même n'est pas non plus une solution. Analyser chaque brique.\n",
"\n",
"\n",
"* Manque de rigueur et d'organisation.\n",
" - Sauvegarde\n",
" - Mauvaise gestion de versions\n",
" - Revue de code, intégration continue rarement utilisées dans la recherche\n",
" - Dimension culturelle et sociale. La description d'un article ne devrait pas être la norme! Données trop nombreuses pour être décrites de façon exhaustive, idem pour les protocoles. Si personne n'exige les infos à quoi bon s'embêter à les fournir?\n",
" - Cacher des infos peut être suspicieux. Mieux vaut prendre le risque que l'on détecte des erreurs.\n",
" - Qn pourrait en tirer avantage? Oui mais il doit citer notre travail. De plus, les articles les plus cités sont des articles méthodologiques.\n",
" - Possibilité de se faire une carte de visite avec GitHub, en mettant ses travaux à disposition.\n",
" - Données sensibles? Dans ce cas, définir qui peut avoir accès aux infos. Méthodes cryptographiques. >> Informations semi-publiques.\n",
"\n",
"\n",
"**Outils à éviter**\n",
"- Logiciels propriétaires. Aucune garantie sur le long terme.\n",
"- Formats binaires non ouverts mènent presque systématiquement à de la perte de données.\n",
"- Services d'hébergement propriétaires.\n",
"- Tableurs et outils graphiques\n",
"\n",
"\n",
"**Meilleurs attitude à avoir: transparence.**\n",
"\n",
"\n",
"\n",
"### 3. Document computationnel\n",
"\n",
"Permettre la transparence la plus complète possible.\n",
"\n",
"- Acquisition de données: majeure partie du temps derrière un ordinateur.\n",
"- Visualisation\n",
"- Publication. Attention, l'article est la partie émergée de l'iceberg!\n",
"\n",
"Permettre de refaire le calcul:\n",
"- Vérifier\n",
"- Corriger\n",
"- Réutiliser\n",
"\n",
"Exemples document computationnel: Jupyter notebook, R studio ou Org mode. Principes:\n",
" - Un seul document\n",
" - Session\n",
" - Export\n",
"\n",
"Jupyter: un peu compliqué d'eporter vers un PDF avec un template particulier. Avec Org mode, capacité à écrire directement du LaTeX.\n",
"\n",
"\n",
"On exporte souvent ensuite vers du PDF ou du HTML. Possibilité de spécifier si ou souhaite cacher certaines sections lors de l'export. Choix de partager le document final, ou bien le doc computationnel lui-même.\n",
"\n",
"\n",
"### 4. Prise en main de Jupyter\n",
"\n",
"<!-- :jupyter: -->\n",
"\n",
"Réexécuter le kernel afin d'avoir un notebook dans un état cohérent.\n",
"\n",
"Voir `Help > Keybord shortcuts`\n",
"\n",
"`tab`: complétion automatique\n",
"\n",
"`%matplotlib inline` utile?? Autres commandes magiques pour intéragir avec d'autres langages. Ex.: `%load_ext rpy2.python`, puis `%%R`.\n",
"\n",
"`commit & push` pour commiter le doc dans GitHub (uniquement dans le cas du MOOC?)\n",
"\n",
"`Edit > Cell toolbar > Hide code` pour cacher certaines parties.\n",
"\n",
"\n",
"### 5. Travailler avec d'autres\n",
"\n",
"Produire un document prêt à l'impression demande à avoir un environnement parfaitement configuré.\n",
"\n",
"- Co-auteurs enthousiastes: assurer le service après-vente, pas évident. Différents environnement, prise en main nécessaire... Ceci dit, favorise la reproductibilité.\n",
"\n",
"- Co-auteurs bienveillants: pas de soucis si le document est hébergé sur un cloud. Sinon, les co-auteurs peuvent uniquement éditer l'article avec un éditeur de texte. Le reste est de ma responsabilité.\n",
"\n",
"- Co-auteurs réfractaires:\n",
" - un doc computationnel;\n",
" - et un document plus classiques qui inclut les figures générées par le doc computationnel.\n",
"\n",
"Publier / partager documents:\n",
"- Attention à la pérénité! (ex.: Dropbox)\n",
"- GitHub ou GitLab: attention, on rend tout l'historique publique! Garder à l'esprit que à terme, les choses seront publiques. Sinon, faire le ménage et archiver l'état courant dans un site compagnon. Ex. archives ouvertes comme HAL. Possibilité de déposer des documents en annexe.\n",
"\n",
"\n",
"*2021-02-19*\n",
"\n",
"\n",
"### 6. Analyse comparée des outils\n",
"\n",
"- Cas d'un journal pour la prise de notes avec Org mode. Organisation chronologique, utilisation du mécanisme d'étiquettes pour s'y retrouver. Permet aussi de garder note du code associé si besoin, et de réexécuter à n'importe quel moment. Ensemble hétérogène mais facile à utiliser.\n",
"\n",
"- **Cahier de laboratoire**. Organisation sémantique. Sections avec expériences, analyses... Conventions à expliciter au début du document.\n",
"\n",
"- Article reproductible. Sections :noexport: avec des morceaux de code. Possibilité d'exporter le doc Org mode en Latex, avec un aspect tout à fait normal d'article. Possibilité de modifier facilement une figure en ré-exécutant le code intégré dans le documents. Liens vers le journal correspondant et vers GitHub permettant de revenir aux sources.\n",
"\n",
"Jupyter: lecture directe du ficheir JSOM un peu délicate. A l'inverse, ficheirs Rmd ou Org plus faciles à lire pour un être humain. Rédiger un article de bout en bout avec RStudio ou Org mode de plus en plus souvent faits; possible mais plus compliqué avec Jupyter.\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
......@@ -16,10 +156,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment