Installer Processing 3 sous Debian 9

Les sites officiels : Processing et Debian

Dans la console :

Si le répertoire processing n’existe pas déjà, je le crée :
sudo mkdir /usr/share/processing

Je télécharge la version 64 bits (à adapter) :
cd Téléchargements
wget -c http://download.processing.org/processing-3.5.3-linux64.tgz

Je décompresse l’archive et l’installe à l’endroit voulu :
tar -zxvf processing-3.5.3-linux64.tgz
sudo mv processing-3.5.3 /usr/share/processing

Je télécharge l’icône processing et l’installe à l’endroit voulu :
wget http://entropie.org/3615/download/processing.png
sudo mv processing.png /usr/share/processing

Pour effacer une version précédente de Processing (x à adapter) :
sudo rm -rf /usr/share/processing/processing-3.x.x

Pour intégrer le programme au menu de Xfce, je crée un fichier processing-3.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano processing-3.desktop

[Desktop Entry]
Type=Application
Name=Processing 3.5.3
Comment=Un environnement de développement pour le langage Processing
Exec=/usr/share/processing/processing-3.5.3/processing
Icon=/usr/share/processing/processing.png
Terminal=false
Categories=Development;

Installation de Debian 9 (Stretch)

RÉCUPÉRER L’ISO :

On peut télécharger l’ISO proposée sur la page d’accueil du site Debian (en haut à droite) mais l’installation par le réseau est assez longue. Pour accélérer l’installation, je préfère choisir de télécharger l’ISO du premier DVD. L’adresse de base https://cdimage.debian.org/debian-cd/ est à compléter en fonction de la version choisie :
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/
https://cdimage.debian.org/debian-cd/current/i386/iso-dvd/

Pour tester les signatures des fichiers téléchargés, utiliser dans la console :
md5sum debian.iso (à adapter)
sha1sum debian.iso (à adapter)
sha256sum debian.iso (à adapter)
sha512sum debian.iso (à adapter)

CRÉER UNE CLÉ USB BOOTABLE :

Dans la console :
sudo fdisk -l (pour avoir la liste des disques)
Attention ! Danger !
sudo dd if=/chemin/debian.iso of=/dev/sdc bs=4M && sync (à adapter)

DÉBUTER L’INSTALLATION :

Choisir Graphical Install
Select a language : Français
Choix de votre situation géographique : France
Configurer le clavier Français
Interface réseau principale : eth0 : Ethernet Controller
Nom de machine : À adapter
Domaine : Ne rien mettre
Mot de passe du superutilisateur (root) : Ne rien mettre afin de désactiver le compte root
Nom complet du nouvel utilisateur : À adapter
Identifiant pour le compte utilisateur : À adapter
Mot de passe pour le nouvel utilisateur : À adapter
Forcer l’installation UEFI : Non
Partitionner les disques : Manuel
Choisir un disque
Faut-il créer une nouvelle table de partition sur ce disque ? Oui
/dev/sda
Remarque : Dans ce qui suit, je mets pour swap la taille de la mémoire vive :
/dev/sda1 primaire (16 GB) F swap swap
/dev/sda2 primaire (40 GB) F ext4 /
/dev/sda5 logique (le reste en GB) F ext4 home
Faut-il appliquer les changements sur les disques ? Oui
Faut-il utiliser un miroir sur le réseau ? Oui
Pays du miroir de l’archive Debian : France
Miroir de l’archive Debian : ftp.fr.debian.org
Mandataire HTTP : Ne rien mettre
Souhaitez-vous participer à l’étude statistique sur l’utilisation des paquets ? Non
Logiciels à installer :
* Environnement de bureau Debian
* Xfce
* Serveur d’impression
* Utilitaires usuels du système
Installer le programme de démarrage GRUB sur le secteur d’amorçage : Oui
Périphérique où sera installé le programme de démarrage : /dev/sda
L’ordinateur reboote…
Bienvenue ! Le tableau de bord de Xfce démarre pour la première fois : Utiliser les paramètres par défaut

MODIFIER LE FICHIER SOURCES.LIST DES DÉPÔTS :

Dans la console :
sudo nano /etc/apt/sources.list

# deb cdrom:[Debian GNU/Linux 9]/ stretch contrib main
# Mises à jour de sécurité
deb http://security.debian.org/debian-security stretch/updates main contrib
deb-src http://security.debian.org/debian-security stretch/updates main contrib
## Miroir Debian
# Dépôt de base : stretch
deb http://ftp.fr.debian.org/debian/ stretch main contrib
deb-src http://ftp.fr.debian.org/debian/ stretch main contrib
# Mises à jour pour stable : stretch-updates, previously known as ‘volatile’
deb http://ftp.fr.debian.org/debian/ stretch-updates main contrib
deb-src http://ftp.fr.debian.org/debian/ stretch-updates main contrib
# Rétroportages vers stable : stretch-backports
deb http://ftp.fr.debian.org/debian/ stretch-backports main contrib
deb-src http://ftp.fr.debian.org/debian/ stretch-backports main contrib

SAUVEGARDER LE MBR ET LA TABLE DE PARTITIONS :

Dans la console :
Pour le MBR :
sudo dd if=/dev/sda of=~/mbr.img bs=512 count=1
Pour la table de partitions :
sudo sfdisk -d /dev/sda > table_partitions_sda_$(date +%Y%m%d).dmp
Se les envoyer par e-mail par exemple.

POUR METTRE LE SYSTÈME À JOUR :

Dans la console :
Pour récupérer les nouvelles listes de paquets :
sudo apt-get update
Pour réaliser une mise à jour :
sudo apt-get upgrade
Pour supprimer un paquet :
sudo apt-get remove nom_paquet
Pour supprimer des paquets qui ne sont plus nécessaires :
sudo apt-get autoremove

LES PAQUETS SUPPLÉMENTAIRES QUE J’INSTALLE :

Dans la console (c’est tellement plus rapide !) :
sudo apt-get install nom_paquet

audacity
avogadro
calibre
chromium chromium-l10n
filezilla
freecad
fritzing fritzing-parts
gcc-avr binutils-avr avr-libc avrdude avrdude-doc gdb-avr
gdebi
geany
geogebra
ghex
gnome-calculator
gnome-disk-utility
gnuradio gr-osmosdr
gqrx-sdr
inkscape
kazam
kdenlive kde-l10n-fr breeze-icon-theme
nbc
openscad
python3-tk
shotwell
spyder3 (remarque : python3-rope n’est pas encore disponible => voir Testing)
thunderbird thunderbird-l10n-fr (supprimer lightning, l’extension de calendrier)
tilp2

Certains paquets plus récents que ceux du dépôt de base sont dans le dépôt stretch-backports (l’option -t spécifie que c’est la version de stretch-backports qui doit être utilisée).
Dans la console :
sudo apt-get install -t stretch-backports nom_paquet

kicad
musescore
stellarium

NXC et Geany sous Debian 9

NXC est un langage de programmation spécifique au robot Lego Mindstorms NXT. Il est basé sur le NBC, un langage assembleur.

Dans la console :
sudo apt-get install nbc

Paramétrer Geany pour pouvoir compiler aussi bien des fichiers nxc que nbc (Construire > Définir les commandes de construction) :

Enregistrer les fichiers sources au format nxc, puis compiler (touche F8). Le transfert sur la brique NXT se fait dans la foulée. Par conséquent, si la brique NXT n’est pas allumée, Geany indique « Compilation échouée », ce qui ne veut pas dire que le code est erroné : Une erreur dans le code entraîne un message d’erreur en rouge au moment de la compilation.

Installer Sweet Home 3D (version 6) sous Debian 9

Seule la version 5.3 de Sweet Home 3D est disponible dans les dépôts de Debian 9, d’où cet article.

Le site officiel : Sweet Home 3D

Dans la console :

Si le répertoire SweetHome3D n’existe pas déjà, je le crée :
sudo mkdir /usr/share/SweetHome3D

Je télécharge SweetHome3D (64 bits) depuis cette adresse :
http://www.sweethome3d.com/fr/download.jsp

Je décompresse l’archive et l’installe à l’endroit voulu :
cd Téléchargements
tar -zxvf SweetHome3D-6.1.2-linux-x64.tgz
sudo mv SweetHome3D-6.1.2 /usr/share/SweetHome3D

Pour effacer une version précédente de SweetHome3D (x à adapter) :
sudo rm -rf /usr/share/SweetHome3D/SweetHome3D-6.x.x

Pour intégrer le programme au menu de Xfce, je crée un fichier SweetHome3D-6.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano SweetHome3D-6.desktop

[Desktop Entry]
Type=Application
Name=Sweet Home 3D 6.1.2
Comment=Logiciel d’aménagement d’intérieur
Exec=/usr/share/SweetHome3D/SweetHome3D-6.1.2/SweetHome3D
Icon=/usr/share/SweetHome3D/SweetHome3D-6.1.2/SweetHome3DIcon.png
Terminal=false
Categories=Graphics;2DGraphics;3DGraphics;

Rechercher un fichier par son nom ou par ce qu’il contient (sous Debian)

Dans la console :

Pour rechercher un fichier par son nom :
find <emplacement> -iname <nom fichier> -print
-iname n’est pas sensible à la casse, contrairement à -name
* sert à remplacer des caractères
Autres filtres possibles :
-type
-and / -or / -not
-size

Pour rechercher un fichier par ce qu’il contient :
grep -r -i "<expression>" <emplacement>
-r : rend la recherche récursive
-i : la recherche n’est pas sensible à la casse

Ressources liées à Python

Python


Spyder : Environnement de développement.
NumPy : Pour manipuler des matrices ou des tableaux à N dimensions.
SciPy : Pour du calcul scientifique. Complète NumPy.
Matplotlib : Pour tracer des courbes, des graphiques.
Pandas : Pour la manipulation et l’analyse des données.
Scikit-image : Traitement d’images.
Scikit-learn : Machine Learning.
Sous Debian 9, installer les paquets spyder3, python3-numpy, python3-scipy, python3-matplotlib, python3-pandas, python3-skimage, python3-sklearn.


Pygame : Pour le développement de jeux vidéo temps réel

Rogner une vidéo sous Debian 9

Pour visualiser le rognage à effectuer, j’utilise au préalable VLC :
Outils > Effets et filtres > Effets vidéo > Rognages

Puis j’utilise en mode console FFmpeg :
ffmpeg -i input.mp4 -qscale:v 0 -filter:v "crop=w:h:x:y" output.mp4
ou éventuellement :
ffmpeg -i input.mp4 -crf quality -filter:v "crop=w:h:x:y" output.mp4
avec :
quality : qualité de la vidéo (0 : la meilleure ; 63 : la pire)
w : largeur de la vidéo recadrée
h : hauteur de la vidéo recadrée
x:y : coordonnées du coin supérieur gauche du rectangle précédemment défini (les coordonnées 0:0 sont en haut à gauche de la vidéo initiale)

Pour éventuellement modifier la taille de la vidéo finale :
ffmpeg -i input.mp4 -qscale:v 0 -vf scale=w:h output.mp4
avec
w : largeur de la vidéo finale
h : hauteur de la vidéo finale

Remarque : L’option -qscale:v 0 permet de garder la même qualité que la vidéo d’origine.

Puissance 4 en Python

J’ai écrit trois programmes :
– Un humain joue contre un humain
– Un humain joue contre l’ordinateur (sans IA)
– L’ordinateur joue contre lui même (sans IA)
Les sources des programmes sont sur Github.

La prochaine étape va être de mettre en oeuvre une intelligence artificielle, en commençant par l’algorithme minimax puis l’algorithme alpha-bêta. Mon objectif est à terme de réussir à mettre en oeuvre une IA qui repose sur de l’apprentissage.