16-20 September 2019
Centre J. Bosco
Europe/Paris timezone

Avant de venir …

… il faut préparer son ordinateur portable !


Docker

Plusieurs ateliers utilisent, à un moment ou un autre, Docker. Il vous faut donc l'installer, si nécessaire, sur votre machine.

Attention: Docker sous Windows a beaucoup évolué; jusqu'à récemment, seul Docker Toolbox était disponible.  Actuellement, il vaut mieux mettre à jour son Windows (10+) et utiliser uniquement Docker Desktop (Docker for Windows). Nous déconseillons les versions de Windows antérieures à 10, pour lesquelles la variante de Docker commence à être obsolète.


Atelier Java/Scala

  Chaque participant aura installé Educational Tools de JetBrains.

  • Si vous n'êtes pas utilisateur de IntelliJ IDEA, choisissez votre OS et cliquez sur INTELLIJ IDEA EDU.
  • Si vous êtes déjà utilisateur de IntelliJ IDEA, vous pouvez à la place cliquer sur INSTALL EDUTOOLS PLUGIN et suivre les instructions. Pensez alors à installer également le plugin Scala si ce n'est pas déjà fait (File -> Settings -> Plugins).

  Il vous faudra également un JDK (version 1.8). Il n'est pas rare d'avoir plusieurs versions de java installées. Pour voir quelle version vous avez, exécutez java -version dans un terminal et vérifiez que vous obtenez java version "1.8.x_xxx". Sinon suivez le lien plus haut, télécharchez la JDK 1.8, et sélectionnez cette version dans l'IDE.

  Les exercices sont téléchargeables ici. Ce fichier json zippé permet de générer l'arborescence des sources avec les énoncés, ainsi que de télécharger toutes les dépendances externes nécessaires pour ces exercices. Pour cela, il suffit d'ouvrir ce fichier dans le Educational Tools (Learn -> Import Local Course -> sélectionner le fichier -> Join) et attendre la fin (témoin de progression en bas à droite). En raison de la bande passante limitée, il serait préférable que cette opération soit effectuée avant la session de TD mercredi.


Atelier Python

  Chaque participant aura installé Python 3.7 avec les packages suivants, par exemple dans un environnement virtuel :

$> python3.7 -m venv venv
$> source ./venv/bin/activate
$> pip install -U pip

$> pip install mypy
$> pip install pytest
$> pip install hypothesis

Application à un environnement sous Ubuntu 18.04 (validé par Françoise C.) :

  1. Installer les packages python3.7 et python3.7-venv par apt
  2. Créer le virtualenv, l'activer et mettre à jour pip

    $> python3.7 -m venv "venv3.7-prog-fonc"

    $> cd "venv3.7-prog-fonc"
    $> source bin/activate
    $> python -m pip install --upgrade pip

    # On peut vérifier que c'est bien pip associé à Python3.7 (si on fait la même
    # commande hors de l'environnement virtuel avec python3 on voit que pip est
    # associé à Python3.6)
    $> python -m pip --version

  3. Installer les packages demandés dans les pré-requis de la formation + PyCharm

Source : https://jcutrer.com/linux/upgrade-python37-ubuntu1810

Attention aux commentaires !!! Il semble qu'il ne faut pas utiliser update-alternatives sous peine de casser le fonctionnement de la console et de l'outil de mise à jour :/

Les TD pyspark se feront dans une image Docker. Chaque participant doit donc avoir installé Docker Desktop (pas Toolbox! C'est trop vieux...) et avoir téléchargée l'image jupyter/pyspark-notebook :

$> docker pull jupyter/pyspark-notebook

 


Atelier C++

L'ensemble de la procédure ci-dessous doit être menée à son terme. En bref, il s'agit de récupérer une copie locale de l'indispensable documentation Cpp Reference, d'installer si nécessaire Docker, de télécharger l'image gcc:9.1, d'installer Git, de cloner tout le matériel de l'Ecole, et enfin de réaliser un petit exercice pour vérifier que tout l'outillage est en place, et vos souvenirs de C++ pas trop vieux.

  • Cpp Reference

Nous vous demandons de préinstaller sur votre ordinateur portable une copie du site cppreference  (https://en.cppreference.com/w/Cppreference:Archives). Assurez-vous de désarchiver l'ensemble et vérifiez que votre navigateur y accède normalement.

  • Bash

Nous vous fournissons différents scripts optionnels écrit en Bash pour faciliter certaines tâches. Si vous utilisez Windows et que vous n'avez pas la possibilité d'ouvrir un terminal acceptant les commandes Linux, vous aurez la lourde charge de déterminer vous-même les commandes équivalentes aux scripts, dans une langue comprise par votre terminal Windows (DOS, PowerShell...).

  • Docker & g++

Par ailleurs, pour compiler les exercices, vous aurez besoin d'une version de g++ supérieure ou égale à 9.1. Nous recommandons d'utiliser Docker et de précharger l'image gcc:9.1.0 (docker pull gcc:9.1.0). C'est ainsi que les travaux pratiques ont été préparés et testés. Tout autre mode d'installation est "à vos risques et périls". 

Si vous ne connaissez pas Docker, il y a des tutoriels officiels très abordables. Nous vous proposons d'éditer vos fichiers depuis votre machine principale, avec votre éditeur local préféré, et de n'utiliser Docker/g++ que pour la compilation et l'exécution des programmes, en montant le répertoire courant au sein du conteneur. Un exemple est donné ci-dessous.

Pour windows 10, si Docker vous pose des difficultés, vous avez le dernier recours d'une installation directe de g++ dans le sous-système Ubuntu intégré à Windows (WSL) :

        sudo add-apt-repository ppa:ubuntu-toolchain-r/test
        sudo apt update
        sudo apt install g++-9

L'édition peut alors se faire depuis le système hôte windows, à l'aide Visual Studio Code avec la fonction remote WSL.

  • Git

Vous aurez enfin besoin de git, ceci afin de cloner le dépôt central contenant tout le matériel de l'Ecole :

        git clone https://gitlab.in2p3.fr/EcoleInfo2019/ecoleinfo2019-materials.git

ATTENTION POUR LES UTILISATEURS WINDOWS : si vous utilisez le compilateur
recommandé (g++) à travers Docker, ce compilateur s'attend à des fin de lignes de type linux. Si vous faites votre clonage du dépôt de l'école à l'aide d'une application git installée sur windows, soyez attentif aux options de l'application et assurez-vous qu'elle ne remplace pas à la volée les fins de lignes des fichiers texte par des fins de ligne de type windows
  • Verification finale

Dans le sous-répertoire CppFonctionnel/Preparation, le script make.sh permet d'enchainer la compilation et l'execution d'un programme. Il attend les arguments suivants :

  • le niveau de standard C++ à utiliser : 98, 17, ...
  • le niveau d'optimisation du compilateur : 0, 1, 2, ...
  • le nom du programme à compiler, sans l'extension .cpp
  • les éventuels arguments à transmettre lors de l'exécution du programme.

Par ailleurs, le script make-docker.sh montre comment executer make.sh à travers Docker, en utilisant l'image gcc:9.1, et en montant le répertoire courant dans le conteneur en tant que /work. Il attend les mêmes arguments que make.sh et les lui transmet.

Afin de vérifier que tout est en place sur votre ordinateur portable, et à titre d'échauffement pour les travaux pratiques C++ à venir, nous vous proposons de réaliser l'exercice décrit dans le fichier ref.cpp, en utilisant la commande

         make-docker.sh 98 0 ref 

pour compiler et exécuter le programme.

Sous Windows 10 cela peut se faire de 2 façons :

  • soit utiliser un script adapté, make-docker.cmd, en partant d'une fenêtre de commande Windows, et c'est tout (le plus rapide)
    docker run --rm -v %~dp0:/work -w /work -it gcc:9.1.0 ./make.sh %*
        
  • soit communiquer depuis WSL avec une installation Windows de Docker, mais il faut suivre la procédure décrite ici (plus compliqué, mais on est sous bash comme les linuxiens)

 


Atelier Haskell

Option 0 : Installer IHaskell: https://github.com/gibiansky/IHaskell
(image docker disponible)​​​​​​​

Option 1: installer Haskell sur son ordinateur

  • installer l'environnement Haskell avec stack
  • Une Aide pour Windows si besoin

Option 2: Via le Web

  • Réseau externe : identification
  • Réseau interne : une borne wifi locale à Bosco, information communiquée ultérieurement.

 


Atelier F#

Pour tester les exemples F# présentés par François-David, il vous faut :

  • Installer le dernier SDK de Dotnet pour la plateforme adaptée (Mac/Linux/Windows)
  • Installer Visual Studio Code (version communautaire)
  • Dans Visual Studio Code : installer les extensions ionide et C#
    • Ionide-fsharp
    • Ionide-paket
    • Ionide-fake
    • Omnisharp (C#)
  • Pour jouer avec la démo d’un serveur web Full Stack, il faut également avoir :

 


Atelier OCaml

Une instance de la plateforme Learn-OCaml (voir aussi https://github.com/ocaml-sf/learn-ocaml ) devrait être disponible en local pendant l'école, ne nécessitant qu'un navigateur web pour faire les exercices.

Option avancée : si vous voulez pouvoir installer le langage sur votre machine, pour utiliser des programmes ou bibliothèques existants, vous pouvez installer OPAM en suivant ces instructions. Cela n'est pas nécessaire pour suivre les matériaux présentés pendant l'école.