programmation
-
[Android] Application Automate
Automate est une application pour ordiphone sous Android permettant de programmer des scripts ou de lancer une série d'actions à l'aide de briques à la façon de Node-Red. Cette application est très puissante et offre un éventail de possibilités inouï, notamment en domotique. Vous trouverez sur cet artcile comment je l'utilise pour piloter mon ampli Yamaha : [Yamaha Ampli RX-V677] Pilotage par le réseau via l'API xml de Yamaha.
Site officiel : https://llamalab.com/automate/
La version gratuite est limitée à 30 blocs travaillant simultanément, sans publicité ou autre désagrément, ce qui est largement suffisant pour découvrir la puissance de cette application. Je vous conseille, comme moi, de soutenir ses développeur⋅euses en payant les 3,90€ demandés 😉 pour lever cette limitation, somme très raisonnable au demeurant.
Il faut dire qu'il faut prendre le temps de rentrer dans cette application mais avec le cas de mon ampli très particulier, je me suis rendu compte de sa puissance.Appli sur le store : https://play.google.com/store/apps/details?id=com.llamalab.automate
Je mets sur cette page des info et des liens utiles.
A- Comment accéder à des droits avec des privilèges élevés
Certaines actions nécessitent des droits avec des privilèges élevés comme par exemple "tuer" une application (commande "App Kill"). Il est donc nécessaire de paramétrer Automate pour le lui permettre.
Source : https://llamalab.com/automate/doc/adb.html.Dans Automate, aller dans "Settings" -> "Privileged service start method" et choisir "Android Debug Bridge (ADB). Ensuite, Automate guide l'utilisateur⋅rice pour réaliser les réglages dans Android en indiquant chaque étape.
À partir d'Android 11 (comme pour mon ordiphone Xiaomi), il faut simplement activer le debugage sans fil par wifi (Wireless debugging option) dans le mode développeur. Puis appairer l'ordiphone pour lui permettre de communiquer avec Automate, en restant appuyer sur l'option "débugage sans fil". -
[BASH] Scripts utiles
Cette page me permet de retrouver des scripts en bash qui peuvent resservir (car on oublie lorsqu'on ne pratique pas souvent...).
- Site permettant de vérifier et déboguer ses scripts : https://www.shellcheck.net/. Il est aussi possible d'installer shellcheck dans sa distribution pour tester ses scripts avec un commande du type :
shellcheck my_script
- Conseils sur la robustesse des scripts : https://connect.ed-diamond.com/linux-pratique/lp-133/rendre-ses-scripts-bash-plus-fiables
- Conseils pour sécuriser ses scripts : https://blog.stephane-robert.info/docs/admin-serveurs/linux/scripts-shell-securises/
Un script bash est un fichier exécutant un ensemble de commandes de façon automatisée (équivalent des macros).
Pour lancer ce fichier, on tapera dans un terminal une commande du type :./fichier_script.sh
Pour commencer un script, on commence par la 1ère ligne commençant par "#!" qu'on appelle sheBang. On écrira :
#!/bin/bash (façon "classique") ou aussi pour faciliter la portabilité #!/usr/bin/env bash (source : https://www.cyberciti.biz/tips/finding-bash-perl-python-portably-using-env.html)I- Problème d'espace, de tirets ou de caractères spéciaux dans les noms de fichiers et de répertoire
Voir :
- Fixer le séparateur avec IFS : https://michauko.org/blog/ifs-separateurs-scripts-bash-174/
- Ignorer les tirets avec l'option "--" ou "./" : https://fr.linux-console.net/?p=2297#gsc.tab=0
II- Créer un sous-dossier identique dans tous les dossiers d'un même répertoire :
Sources :
- Site permettant de vérifier et déboguer ses scripts : https://www.shellcheck.net/. Il est aussi possible d'installer shellcheck dans sa distribution pour tester ses scripts avec un commande du type :
-
Développer en html, css et javascript
Page aide-mémoire pour m'aider à développer des applications web...
Les applications web ont l'énorme avantage d'être utilisables à travers un navigateur web et sont donc interopérables par défaut quels que soient les systèmes d'exploitation et le matériel (tablettes par exemple).Ressources en ligne :
- Développer des applications html5 de A à Z : http://diveintohtml5.info
- Créer des Web applications : https://www.freecodecamp.org/news/build-a-pwa-from-scratch-with-html-css-and-javascript/
I- Choix de l'outil pour développer : VSCodium
Après quelques recherches sur Internet, j'ai choisi VSCodium qu'on peut installer dans Ubuntu. C'est la version libre de VSCode proposé par Microsoft (oui, oui...) et qui dispose de nombreuses extensions : https://github.com/VSCodium/vscodium. Je dois reconnaître que pour une fois Microsoft propose une application très intéressante avec des outils facilitant grandement la programmation : visualiseur MarkDown pour les ReadMe, visualiseur HTML, erreurs de syntaxes,...
Autre bonne surprise : VSCode est intégré dans Gitlab et en particulier la forge https://forge.apps.education.fr/, ce qui permet de ré-investir ses connaissances/habitudes !!!
Du coup, on peut installer l'extension "Gitlab Workflow" pour lier VSCodium et le dépôt Gitlab du projet : https://blog.jbriault.fr/vscode-gitlab-workflow/.Extensions utiles de VSCodium (attention certaines nécessite NodeJS) :
- GitLab Workflow de GitLab
- Live Preview de Microsoft
- open in browser de TechER
- vscode-icons de VSCode Icons Team
- Svelte for VS Code de Svelte (NodeJS)
- ESLint (NodeJS)
A- Pour lier ses dossiers locaux avec le Gitlab de la Forge Éduc
- Voir ce tutoriel permettant de se connecter avec un jeton en https : https://forge.apps.education.fr/laurent.abbal/utiliser-la-forge-avec-vscodium-ou-visual-studio-code
- Il est aussi possible de se connecter par clé ssh :
- Pour générer une clé ssh sur son ordi sous Linux Mint dans le dossier caché de son home ".ssh" :
ssh-keygen -t ed25519
- Dans son dossier .ssh, on va ouvrir avec un éditeur , la clé publique se terminant par l'extension ".pub" et on la copie dans le presse papier.
- Sur le site Gitlab, https://forge.apps.education.fr dans son compte, on va dans les préférences et on ajoute cette clé SSH en collant le contenu du presse-papier.
- Pour vérifier si une clé fonctionne et qu'il n'y a pas de refus d'accès avec le message "Permission denied (publickey)", dans le terminal de son ordinateur on tape :
ssh -Tv
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. - Si tout se passe bien, on pourra se connecter à partir de VSCodium au Gitlab de la Forge et cloner un des projets qui nous appartient. Pour cela, dans le site gitlab, on va sur le projet à cloner, on clique sur le bouton bleu "Code" et on copie le contenu du champ "Cloner avec SSH" qui commence avec "
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. :xxxxxxxxxxxxxxxxxxxxxx". - Dans VSCodium, dans une nouvelle fenêtre, on ouvre le panneau de commande avec CTRL+Maj+P, on recherche et on choisit "git: Cloner", puis on indique l'adresse de la forge https://forge.apps.education.fr/nom_de_son_groupe_gitlab et il suffira de choisir le projet qui nous intéresse.
- Pour générer une clé ssh sur son ordi sous Linux Mint dans le dossier caché de son home ".ssh" :
B- Comment jongler avec différents projets sur la Forge avec VSCodium
Si l'on travaille sur des projets différents dans la Forge, par défaut VSCodium s'ouvre sur le dernier. Pour en changer, il faut ouvrir une nouvelle fenêtre (CTRL+Maj+N)dans VSCodium et choisir le dossier local contenant les sources : la synchronisation se mettra en place automatiquement (grâce au dossier caché .git).
II- Tutoriels
Pour commencer, il est nécessaire de suivre des tutoriels...
-
Retour d'expérience et avis Kit Robototique Éducation Nationale chez Easytis
Cette page est un retour d'expérience concernant l'utilisation du kit robotique Éducation nationale que l'on trouve chez Easitys : https://www.easytis.com/fr/programmation/8804-kit-robotique-education-nationale-cycle-3.html. Je vais avoir l'occasion de l'utiliser dans le cadre d'une expérimentation auprès de classes de CM1 et CM2.
Ce lot se compose de 7 robots différents avec notamment 6 Blue-Bots avec station de charge et accessoires. Les autres sont en exemplaire unique.
Le lot fourni ne comporte aucune tablette alors que tous les robots (sauf Matata Studio "Coding Set") doivent communiquer avec une application pour être exploitables. Il ne contient pas non plus un seul chargeur USB...Déjà, on constate qu'aucun de ces robots, d'après leur fabricant, ne fonctionnent officiellement sous GNU/Linux : aucune mention sur leur site. C'est déjà selon moi, le défaut majeur de ce kit en terme de pérennité et du respect à la vie privée avec souvent l'utilisation imposée de Google Chrome pour pouvoir les programmer à partir d'un PC (ça ne marchera pas sous Firefox).
Du coup, la distribution éducative Primtux spécialement conçue pour les écoles ne pourra pas les programmer (à moins d'un contournement qui, s'il existe, ne sera pas à la portée de tous et de toutes). À l'heure où l'on prône le développement durable, le numérique responsable en insistant sur le prolongement de la durée de vie des équipements et de la sobriété numérique, ça peut interroger. Dommage... Espérons que les fabricants feront évoluer leur pratique en proposant du matériel réellement interopérable. Politique qui n'évoluera que s'il existe une incitation via par exemple des recommandations/préconisations de l'Éducation Nationale (comme on peut le voir sur le site https://ecoresponsable.numerique.gouv.fr/ qui affiche cette volonté).
I- Matata Studio "Coding Set"
Ce coffret contient un plateau principal accueillant une tour et sur lequel on va poser des briques plastiques (avec des détrompeurs pour les poser dans le bon sens) pour déplacer un robot mobile sur un parcours de 4 cases par 4. On pourra placer des obstacles sur le parcours et il est aussi possible de se créer son propre plateau.
C'est le seul jeu du kit qui ne nécessite aucune tablette ou ordinateur : c'est particulièrement intéressant car ça limite l'exposition aux écrans, sans rien enlever à ses qualités, bien au contraire.
Le coffret contient 3 livrets d'exercices qui permettent progressivement d'appréhender différentes notions telles que les boucles et les fonctions. Par contre, il n'y a pas les conditions.