Trucs et astuces
- Trucs et astuces du BR
- Diagnostiquer une panne réseau
- Configurer un routeur dans son casert
- Création d'un compte Sigma
- Comment récupérer mes données que j'ai effacées sur mon disque dur ?
- Comment utiliser Git ? (Pour les projets en équipe)
- Comment utiliser SSH ?
- Mettre en place SSH pour Gitlab
- Comprendre les différents identifiants à l'X
- Comment imprimer à l'X ?
Le saviez-vous ? Il est possible de stocker tous ses mots de passe de manière sécurisée, de regarder youtube sans les pubs, d'utiliser l'intelligence artificielle pour faire les TD d'info (sous réserve de quelques modifications) !
Ci-dessous, les trucs et astuces du BR pour avoir une vie numérique un peu plus confortable.
Les extensions de navigateur, ça change la vie. Ci-dessous sont énumérées quelques extensions populaires qui rendent la navigation plus agréable.
Note: Si vous utilisez Firefox, vous disposerez aussi des extensions sur mobile ! Ce n'est pas le cas de Chrome, qui pourrait bien interdire les adblockers dans le futur.
uBlock Origin
ublock Origin est un Ad Blocker open source très efficace. Il retire l'intégralité des pubs des sites web et de youtube, et n'est pas vendu aux publicitaires.
Bitwarden
Bitwarden est un gestionnaire de mot de passe open-source hébergé dans le cloud et disponible sur navigateur, mobile et desktop. Il permet de générer des mots de passe aléatoires customisés, d'avoir de l'autocomplétion sur vos sites préférés, etc. Ça vaut toujours mieux que les gestionnaires intégrés de Chrome ou Firefox, ou même que d'autres gestionnaires de mots passe propriétaires.
Return Youtube Dislike
Return Youtube Dislike est une extension toute simple qui fait revenir l'affichage des dislikes sur le site de Youtube.
Dark Reader
Dark Reader est une extension qui permet d'avoir un mode sombre sur votre navigateur. Il fonctionne très bien pour la plupart des sites, et peut-être configuré pour afficher un mode sombre par défaut, ou bien seulement pour les sites que vous choisissez.
L'appli Youtube sans pubs
Si vous voulez utiliser une version modifiée du client officiel, continuez votre lecture. Si vous préférez utiliser un client open source, sachez qu'il existe Newpipe qui permet également de bloquer les publicités et de télécharger les vidéos (voir #Applications open source sur Android).
Youtube Revanced est un patch open source (seul le patch est open source, pas l'application) non officiel de l'application Youtube, qui intègre de nombreuses fonctionnalités additionnelles. Elle n'est actuellement disponible que pour Android, car Apple n'autorise pas l'installation d'applications ne figurant pas sur l'Apple Store (tandis qu'Android, si). On y trouve notamment :
- Blocage des pubs et sponsorisations (configurable)
- Retour de l'affichage des dislikes
- Lecture en arrière plan
- Téléchargement de vidéos
- Contrôle du son et de la luminosité avec des swipe gestures, etc.
Le site officiel, et un guide pour l'installation.
Remarque: même après avoir téléchargé l'application, les liens vers youtube seront toujours ouverts avec l'application youtube. Pour y remédier, il faut désactiver l'appli youtube, puis associer l'application Revanced avec les liens youtube. Cette option est disponible dans l'application Settings -> Applications -> Applications par défaut -> Ouverture des liens -> ReVanced -> Adr. Web prises en charge, puis cocher les 4 adresses (testé sur téléphone Samsung).
Mise à jour: pour mettre à jour l'application (nécessaire pour résoudre les bugs susceptibles d'apparaître), il faut télécharger à nouveau l'apk la plus récente. Elle mettra automatiquement à jour l'application.
Github Copilot
Github Copilot est un outil d'intelligence artificielle utile pour accélérer le développement informatique. Il est disponible dans la plupart des IDE. En temps normal, son utilisation se paye 10$/mois, ou 100$/an, mais elle est gratuite pour les étudiants !
Pour accéder gratuitement à Github Copilot, il suffit de:
- Disposer d'un compte Github
- S'inscrire comme étudiant sur education.github.com en ajoutant son adresse en polytechnique.edu comme preuve.
- Une fois la vérification faite, configurer l'accès à Copilot depuis les settings de votre compte Github.
Et voilà ! Il n'y a plus qu'à installer l'extension Github Copilot dans l'IDE de votre choix, puis d'authentifier votre compte Github, et vous êtes prêts à coder !
Applications open source sur Android
Sur Android, il existe un magasin d'applications qui ne contient que des logiciels libres : F-droid. Le client officiel est daté et pose des problèmes de sécurité. On vous conseille donc d'installer un client plus récent : Droid-ify (bouton DOWNLOAD F-DROID) (disponible uniquement sur Android, évidemment).
Cette application est un Google Play pour applications libres et open source. Pour pouvoir l'utiliser, il faudra d'abord l'autoriser comme application de téléchargement d'autres applications (à l'ouverture).
On vous recommande notamment l'application NewPipe, un client Youtube libre n'utilisant pas l'API de Google qui enlève les publicités et qui permet de télécharger des vidéos et d'écouter des vidéos en arrière plan.
Gestionnaires de versions pour coder
Selon les projets d'informatique que vous réalisez, vous aurez probablement besoin d'utiliser des versions de python ou node différentes (node16 pour Sigma, python3.7 pour les sites binets python hébergés par le BR).
C'est notamment une très bonne pratique pour faciliter le déploiement d'applications python que d'utiliser un environnement virtuel pour son projet, avec un liste de dépendances requirements.txt à la racine du projet. On vous explique comment configurer et utiliser tout ça.
Python
Pour le développement d'applis python, sites, etc : voir Pyenv.
Pour le développement de scripts scientifiques en python, avec utilisation de notebooks jupyter et shell IPython, etc : voir Mamba.
Environnements virtuels python avec Pyenv
Installation
Pyenv est un gestionnaire de versions Python qui permet de changer rapidement de version sans toucher à la version python utilisée par le système. Les versions sont installées dans /home/<username>/.pyenv/versions/
sous Linux, et C:\Users\<username>\.pyenv\versions\
sous Windows.
Installer pyenv sur Linux (ou via votre gestionnaire de paquets).
Installer des versions de python
Pour lister les versions de python disponibles :
pyenv install --list
Pour lister des versions spécifiques :
pyenv install --list | grep 3.11 # Sur Linux pyenv install --list | findstr 3.11 # Sur Windows
Pour installer une version :
pyenv install -v 3.11.3 # Remplacer par le nom complet de la version désirée
Pour lister les versions disponibles via pyenv :
pyenv versions
Générer un environnement virtuel
Pour générer un environnement virtuel python à la racine d'un projet : Activer une version de python dans le shell:
pyenv shell 3.11.3 # Utiliser cette version temporairement, dans ce shell pyenv local 3.11.3 # Toujours utiliser cette version dans ce dossier pyenv global 3.11.3 # Toujours utiliser cette version, partout
Créer un environnement virtuel dans un dossier venv/
:
python -m venv venv
Activer l'environnement virtuel :
source venv/bin/activate # Sous Linux .\venv\Scripts\activate # Sous Windows
Vous avez à présent un environnement virtuel python à la racine de votre projet, qu'il vous suffira d'activer à chaque fois que vous lancez votre projet. Note : VSCode réalise cette activation tout seul si vous lui dites d'utiliser l'environnement virtuel pour votre projet.
Remarque : si votre projet est versionné avec Git, il ne faut pas commit votre venv! Ajoutez un fichier .gitignore
à la racine de votre projet, et ajoutez une ligne venv
dedans.
Vous pouvez à présent installer des packages (après avoir activé l'environnement virtuel !)
pip install <packages> pip install -r requirements.txt # Si vous récupérez un projet avec des dépendances existantes
Pour générer un fichier requirements.txt
afin de faciliter la mise en place pour vos collègues / pour le déploiement de votre app sur les serveurs du BR :
pip freeze > requirements.txt
Environnement virtuel global
Pyenv permet aussi de générer des environnements virtuels globaux avec pyenv virtualenv
, un plugin que vous pouvez installer ici. C'est similaire au fonctionnement de Mamba.
Créez un environnement virtuel global avec la commande suivante :
pyenv virtualenv <version> <nom de votre environnement global custom>
Vous pouvez ensuite l'activer comme les autres environnements avec
pyenv shell <nom de votre environnement global custom>
Environnements python avec Mamba
Vous connaissez peut-être déjà Conda, un gestionnaire de paquets et d'environnements python principalement utilisé pour des projets scientifiques. Mamba en est une version entièrement réécrite en C++, bien plus rapide et performante.
Installation ici.
Mamba permet de créer des environnements virtuels dans /home/<username>/mambaforge-pypy3/envs
(sous Linux, par exemple) qui seront réutilisables dans tous vos projets !
Créer un environnement virtuel :
mamba create -n nom_de_lenvironnement <liste de packages> mamba create -n nom_de_lenvironnement <liste de packages> python=3.10 # Avec une version spécifique de python
Exemple :
mamba create -n inf442 numpy pandas scikit-learn
Activation d'un environnement virtuel :
mamba activate inf442 mamba deactivate # Pour le désactiver
Installation de paquets : après avoir activé votre environnement mamba, utilisez la commande mamba install
au lieu de pip install
, et le tout est joué.
Environnements python avec poetry
poetry est un autre gestionnaire de dépendance extrêmement utile si vous développez en collaboratif notamment avec Git. Là où Mamba permet de réutiliser ses environnements, la logique de poetry est d'utiliser un environnement par projet.
L'intérêt est que poetry produit un fichier poetry.lock permettant de reproduire à l'identique l'environnement virtuel sur une autre machine en une commande, tout en gardant la possibilité d'effectuer des mises à jour des dépendances aisément.
Installation ici
Les principales commandes de poetry sont :
Création d'un environnement poetry :
poetry init
Cette commande permet d'initialiser poetry dans le dossier courant de manière interactive, en définissant le nom du projet, les auteurs et les dépendances.
Cette commande génère les fichiers pyproject.toml
, qui contient toutes les informations du projet, et poetry.lock
, qui contient l'état exact du projet (l'équivalent de pip freeze
). Il est fortement recommandé de traquer ces fichiers avec Git si votre projet utilise Git.
Installation d'un environnement poetry :
poetry install
Cette commande permet d'installer un environnement sur la base d'un fichier poetry.lock
(typiquement suite à un git clone
)
Ajout de dépendances :
poetry add <name>
Cette commande ajoute et installe la dépendance. La gestion des dépendances de poetry respecte semver, c'est-à-dire qu'un projet peut indiquer être compatible avec toute version ultérieure de la dépendance ayant la même version majeure (c'est le cas par défaut). Cela est indiqué en ajoutant ^
à la version requise, par exemple python = "^3.8"
(i.e. cela indique que le projet est compatible avec Python 3.8, 3.9, 3.10... mais pas 4.0)
Mettre à jour les dépendances :
poetry update
Lancer une commande dans l'environnement :
poetry run <commande>
Par exemple :
poetry run python mon_projet.py
Activer l'environnement :
poetry shell
Cette commande génère un shell dans l'environnement
Ces commandes sont détaillées en détail ici
Plusieurs versions de Node.js avec NVM
Si vous faites du développement web avec du Typescript/Javascript sans utiliser de conteneurs docker, vous avez besoin d'installer Node.js, un runtime javascript. Selon votre système d'exploitation, il est possible que la version de node installée par défaut ne corresponde pas à celle attendue par votre projet (sous Linux, en particulier).
Le gestionnaire de versions Node NVM permet d'installer et switcher rapidement entre plusieurs versions de Node.
Installer une version :
nvm install <version> nvm install 16 # Pour Sigma, par exemple
Utiliser une version :
nvm ls # Lister les versions nvm use <version> # Utiliser une version node -v # Vérifier que la version est bien utilisée
Pour utiliser à nouveau la version système dans votre shell :
nvm use system
Faire du C++
Utiliser Windows Subsystem for Linux
L'environnement de Windows est peu optimisé pour faire du C++. Le C++ est un langage qui, contrairement à python, javascript, Go, Rust... n'a pas de gestionnaire de paquets. Il est donc incroyablement difficile d'installer et utiliser des librairies supplémentaires sur un système d'exploitation qui n'est pas fait pour ça (Windows) ! Ce problème ne se pose pas sous Linux, dont le système de fichiers et les gestionnaires de paquets intégrés fonctionnent très bien avec ce langage.
Heureusement, Windows dispose d'un système de machines virtuelles légères pour utiliser Linux dans un terminal. Voici un guide pour la mise en place de WSL sur une machine Windows.
Note: le script fourni dans le guide a été conçu pour mettre en place l'environnement c++ pour inf442. Si vous ne suivez pas ce cours, il vous suffit juste d'installer les outils de développement c++ avec la commande apt-get install -y build-essential
Le guide.
Le script.
Guide réalisé par Thibaut de Saivre, VPrez BR21. Contactez-moi si vous avez un problème avec ce setup
Xmake
Guide réalisé par Cédric Holocher, BR22. Contactez-moi si vous voulez un tunnel / de l'aide
xmake est un outil très pratique pour faire du C++ sous tout système d'exploitation. Sachez tout de même que c'est un outil peu connu : il reste idéal pour les projets perso. Xmake s'occupera pour vous de la compilation et de la gestion des dépendances. Pour démarrer rapidement :
Installation
Pour windows, tapper dans un terminal administrateur :
winget install xmake
Les autres OS l'auront aussi dans leur manager de paquets.
Nouveau projet
Ouvrez une console où votre dossier de projet sera créé
xmake create my-project
cd my-project
xmake build
xmake run
Voilà ! C'était facile non ? Vous pouvez aussi faire git init
et mettre votre code sur gitlab.
Configuration
La configuration se fait par xmake.lua
. Lisez la documentation pour tout savoir, mais globalement voici comment utiliser des paquets de conan (vous pouvez aussi utiliser les paquets de vcpkg
et xmake vcpkg
):
add_rules("mode.debug", "mode.release")
set_languages("c++17")
set_warnings("allextra")
set_policy("build.warning", true)
set_policy("run.autobuild", true)
------------------------------------------------------------------
-- Lib deps
------------------------------------------------------------------
add_requires("conan::glm/0.9.9.8", {alias = "glm", })
add_requires("conan::eigen/3.4.0", {alias = "eigen", })
------------------------------------------------------------------
-- Main target definition
------------------------------------------------------------------
target("my-project")
set_kind("binary")
add_packages("glm", "eigen")
add_files("src/**.cpp")
add_includedirs("src")
Intégration dans VSCode
Télécharger l'extension xmake
et executer xmake project -k compile_commands .vscode
pour que l'éditeur sache trouvez le code. Des boutons utiles apparaîtront sur le bas de l'éditeur (build, run, debug).