Skip to content

Commit

Permalink
modif des markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
linogaliana committed Jul 24, 2020
1 parent b24a1fe commit e8db4cf
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 27 deletions.
8 changes: 4 additions & 4 deletions content/01_data/01_tp_numpy.md
@@ -1,8 +1,4 @@
---
title: "Retour sur numpy"
date: 2020-07-16T13:00:00Z
draft: false
weight: 100
jupyter:
jupytext:
formats: ipynb,md
Expand All @@ -15,6 +11,10 @@ jupyter:
display_name: Python 3
language: python
name: python3
title: "Retour sur numpy"
date: 2020-07-16T13:00:00Z
draft: false
weight: 100
---

# Retour sur numpy
Expand Down
113 changes: 90 additions & 23 deletions content/getting-started/01_installation.md
Expand Up @@ -76,8 +76,6 @@ l'adhésion de la communauté aux outils de versionning (le plus connu étant `g
ayant amené à repenser la manière de traiter des données.


## Exécution dans un environnement temporaire

Avec les dépôts sur `Github` ou `Gitlab`, on dissocie environnement de stockage des codes et
d'exécution de ceux-ci. Sur le
[dépôt github de ce cours](https://github.com/linogaliana/python-datascientist), on peut
Expand All @@ -89,18 +87,27 @@ lancer une instance `Jupyter` en ligne (analogue à celle que vous pouvez
lancer en local en utilisant `Anaconda`) ont émergé. Parmi celles-ci :

* **__Binder__** [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/linogaliana/python-datascientist/master) ;
* [Google collaboratory](https://colab.research.google.com/notebooks/welcome.ipynb) ;
* [Kaggle](https://www.kaggle.com/notebooks) ;
* Il est aussi possible d'exécuter des codes sur les services d'intégration continue de
* **Google collaboratory**
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](http://colab.research.google.com/github/linogaliana/python-datascientist/blob/pandas_intro/static/notebooks/numpy.ipynb)
;


Il est aussi possible d'exécuter des codes sur les services d'intégration continue de
[gitlab (service gitlab CI)](https://medium.com/metro-platform/continuous-integration-for-python-3-in-gitlab-e1b4446be76b)
ou de [github (via travis)](https://docs.travis-ci.com/user/languages/python/). Il s'agit d'une approche
*bash* c'est-à-dire que les scripts sont exécutés par une console à chaque intéraction avec le dépôt
*bash* c'est-à-dire que les scripts sont exécutés par une console à chaque interaction avec le dépôt
distant gitlab/github, sans session ouverte pour les éditer. Cette approche est très appropriée
pour assurer la reproductibilité d'une chaîne de traitement (on peut aller jusq'au
déploiement de visualisations automatiques).
déploiement de visualisations automatiques) mais n'est pas très pratique pour
le griffonnage.

[Kaggle](https://www.kaggle.com/notebooks) propose des compétitions de code mais
donne également la possibilité d'exécuter des notebooks,
comme les solutions précédentes.


Attention, les performances de ces solutions peuvent être variables. Les serveurs publics mis à disposition
ne sont pas forcément des foudres de guerre. Avec les serveurs publics mis à disposition gratuitement,
ne sont pas forcément des foudres de guerre. Avec ceux-ci,
on vérifie plutôt la reproductibilité des scripts avec des jeux d'exemples.
Quand on est dans une entreprise ou administration, qui dispose de serveurs propres,
on peut aller plus loin en utilisant ces outils
Expand All @@ -121,30 +128,74 @@ disposant de toutes les dépendances nécessaires pour ce cours et disposant d'u



### Google collaboratory
### Google collaboratory [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb)

Il s'agit d'un mélange de notebook jupyter et de Google docs. Il est possible de connecter les
*notebooks* ouverts à Google Drive ou à
[github](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb)),
la deuxième solution étant préférable.
[github](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb),
la deuxième solution étant préférable. L'icone
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb)
fournit un raccourci pour lancer le notebook dans un environnement dédié.


### Kaggle
### Docker

`Kaggle` n'héberge pas que des compétitions de code mais donne la possibilité d'exécuter des notebooks,
comme les solutions précédentes.
Derrière ces outils pour exécuter de manière simple des scripts Python sur un serveur temporaire se cache
`Docker`. `Docker` est une technologie qui vise à permettre la construction de machines autosuffisantes
(que l'on nomme containeurs) répliquant un environnement contrôlé (que l'on nomme image).

# Installer et configurer git

Interface avec github?
## Pourquoi utiliser la gestion de version ?

## Docker
Nos travaux statistiques évoluent constamment (productions annuelles, nouvelles enquêtes, etc.) et nous travaillons souvent à plusieurs. En outre, le maintien de la qualité de nos chaînes de traitement nécessite un archivage détaillé et facilement accessible.

Tous les statisticiens se sont déjà demandé (ou à leurs collègues) :

* quelle était la bonne version d'un programme
* qui était l'auteur d'un bout de code en particulier
* si un changement était important ou juste un essai
* comment fusionner des programmes
* etc.

Il existe un outil informatique puissant afin de répondre à tous ces besoins : la gestion de version (*version control system* (VCS) en anglais). Ses avantages sont incontestables et permettent de facilement :

* enregistrer l'historique des modifications d'un ensemble de fichiers
* revenir à des versions précédentes d'un ou plusieurs fichiers
* rechercher les modifications qui ont pu créer des erreurs
* partager ses modifications et récupérer celles des autres
* proposer des modifications, les discuter, sans pour autant modifier la dernière version existante
* identifier les auteurs et la date des modifications

En outre, ces outils fonctionnent avec tous les langages informatiques
(texte, R, Python, SAS, $\LaTeX$, Java, etc.) car reposent sur la comparaison des lignes
et des caractères des programmes.

L'intérêt de `git` dépasse le cadre collaboratif. Même dans une utilisation personnelle de `python` utiliser
`git` rend ***

**TODO**

# Installer et configurer git

## git, kesako ?
## git, kesako ? {{< rawhtml >}} <img src="https://www.linuxjournal.com/sites/default/files/styles/360_250/public/nodeimage/story/git-icon.png?itok=w7zB9vuE" width="100"> {{< /rawhtml >}}

`git` est un système de contrôle de version dont la vocation est de permettre de tracer les modifications faites
entre deux versions d'un fichier. Il s'agit d'un outil particulièrement adapté à la programmation puisque `git` permet
un suivi ligne à ligne des modifications faites à un fichier.

Les modifications sont visibles par tout membre d'un projet et de manière très fine. Il est ainsi possible de
visualiser à quel moment chaque ligne d'un fichier a été modifiée:

![Exemple sur la page d'entrée du cours [ici](https://github.com/linogaliana/python-datascientist/blame/master/content/_index.md)](static/pictures/intro/gitblame.png)

Et il est possible de comparer l'évolution de l'état d'un fichier entre deux versions:

![Exemple sur la page d'entrée du cours [ici](https://github.com/linogaliana/python-datascientist/blame/master/content/_index.md)](static/pictures/intro/sidebyside.png)

L'utilisation de `git` devient une norme dans les administrations, les entreprises et le monde académique.
Des éléments supplémentaires, avec exemples via `Rstudio` (très peu de différences avec `Pycharm`),
peuvent être trouvés
[ici](https://linogaliana.gitlab.io/collaboratif/git.html)


Explication sommaire de git

## Installer et tester git bash

Expand All @@ -167,11 +218,27 @@ est `git clone` (on crée un clone local, qu'on est ensuite libre de faire évol
![Récupération d'un dépôt sur github via git bash](./pictures/gitbash2.png)

Le contenu du dépôt est maintenant disponible dans le dossier désiré.

## Configurer jupyter pour utiliser le plugin git

## Configurer pycharm pour utiliser le plugin git

Aller dans `File > Settings > Version Control > Git` pour définir le chemin vers lequel `Pycharm` doit trouver
l'exécutable `git`. Si `git` a été installé dans un chemin standard, `Pycharm` le trouve ; sinon,
il faut lui donner (dans le dossier d'installation `git`, bien choisir l'exécutable présent dans
le sous-dossier `cmd/git.exe`) ^[2]

![Récupération d'un dépôt sur github via git bash](./pictures/vcspycharm2.png)

^[2:] Si la case `Use credential helper` est cochée, il est recommandé de la décocher car en cas
de mot de passe tapé trop vite, les tentatives de connexion au dépôt distant seront
systématiquement refusées


## Configurer jupyter pour utiliser le plugin git

https://github.com/jupyterlab/jupyterlab-git

## Présentation des fonctionalités de github et gitlab

## Pratiquer git

Faire un petit notebook

0 comments on commit e8db4cf

Please sign in to comment.