Projet

Général

Profil

Bastien Boineau

Je suis actuellement en licence pro ADSILLH à l'université de bordeaux.
Je suis joignable à cette adresse mail : .
Je suis en stage du 03 avril jusqu'au 31 juillet 2023 en tant qu'admin sys.
Stage précédent (mai->juin 2021) : Projet thermo-bibli
La bibliothèque est celle de la fac de médecine et le serveur qui stockeras les informations se situe 20 rue tourat.

Premier Stage

lundi 17 mai :

  • introduction du stage + présentation des outils
  • recherche sur les rf longues distances (lora, wifi, Bluetooth, sigfox, GPRS) pour le cahier des charges : Foo
  • 1er recherche sur Sigfox :
    1. envoie possible de 140 messages par jours
    2. module sigfox 4 euros : Foo
    3. rapport distance prix (1-10 km pour 0.5/mois)
  • 2eme recherche sur Lora :
    1. envoie possible de 140 messages par jours
    2. abonnement lora 1 euros / mois pour 36 mois(orange)
    3. module lora : Foo
  • 3eme recherche sur GPRS :
    1. carte sim 5 euros/mois pour opérateurs normaux
    2. avantage ne passe pas par un serveur

mardi 18 mai :

  • présentation de l'architecture du projet
  • présentation du matériel commandées
  • modèle de l'ESP 32 utilisé : Foo
  • fiche technique de l'ESP 32 : Foo
  • fiche technique du DHT22 : Foo
  • installation des logiciels nécessaires (vscode, inskcape)
  • inscription sur les outils nécessaires pour communiquer (element + framagit)
  • soudage de la carte esp32 + branchement pour vérifier que la carte soit bien soudé et branché
  • commencement du code pour faire clignoté une led

mercredi 19 mai :

  • correction des bugs d'installation de vscode + correction des programmes pour que ça s'affiche correctement dans le moniteur série
  • application du code sur l'ESP32 pour voir si il fonctionne avec (l'ESP32 renvoie bien le message voulu)
  • passage par un terminal pour affiche correctement le message voulu "Hello World"
  • application du code pour faire clignoter une LED sur l'ESP32 (la LED clignote correctement)
  • bibliothèque du DHT22 : Foo
  • bibliothèque Arduino : Foo
  • recherche sur le fonctionnement du capteur de température
  • communique entre deux pi : Foo
  • bus informatique : Foo
  • recherche sur l'utilisation du rtm sur l'ESP32
  • commande mqtt : Foo
  • utilisation de watchdogs ?
  • architecture du projet (fait sous inskcape) :

jeudi 20 mai :

  • recherche sur rtm et étude de la doc : Foo
  • résolution du problème de permission, résolution du problème de configuration de l'esp-idf, résolution du problème de configuration du projet (board etc...)
  • compilation du programme hello world avec un problème d'affichage par rapport au baud-rate
  • recherche de la solution du problème d'affichage du terminal
  • solution du bug de la console -> rajoute deux lignes de vitesse au platformio : monitor_speed et upload_speed
  • monitor_speed = 115200 upload_speed = 115200
  • code pour le capteur trouve en c++
  • modification du code en c
  • installation correcte des bibliothèque en c
  • résolution du bug des bibliothèques : mauvaise installation : "lip_deps =" en c
  • recherche sur les bibliothèques en c du capteur dht22

vendredi 21 mai :

  • passage sur le framework arduine en c++
  • recherche sur MQTT
  • test avec plusieurs dht22 sur un esp 32 valide (jusqu’à 5 dht en même temps)
  • création d'un .h pour soulage le code et que ça soit plus lisible
  • correction des bugs du .h
  • la fonction crée marche bien avec les 5 capteurs (test réussis)
  • test de mqtt pour ce connecté au wifi du Raspberry PI0
  • test de connexion au wifi établi
  • test d’envoie de la température et de l'humidité sur le Raspberry PI0
  • prototype de la grappe en cours de fabrication
  • création des câbles pour la grappe
  • sertissage des câbles pour la grappe
  • prototype de la taille du mur (colle dessus)
  • soudage des câbles pour la grappe
  • test d'envoie des données au Raspberry PI0
  • prototype de la grappe terminé

mardi 25 mai :

  • recherche sur la fin de l'utilisation de MQTT
  • connexion au serveur MQTT réussis
  • finition du code pour lire les valeurs envoyé sur le serveur Raspberry PI0
  • test du code pour lire les valeurs
  • optimisation de la lisibilité sur le serveur Raspberry PI0
  • ajouts d'un 5eme capteur à la grappe du prototype
  • optimisation du code pour les 5 capteurs
  • assemblage du capteur sur le prototype
  • optimisation de la lisibilité du serveur
  • optimisation du code pour une utilisation de plusieurs grappe en même temps
  • prototype de la grappe :

mercredi 26 mai :

  • mise en place raté de l'horodatage sur le code
  • mise en place de l'horodatage du code sur le fichier texte
  • test avec un nouveau capteur pour voir la différence d'humidité entre les capteurs
  • test du capteur avec une pile pour voir si il envoie toujours les valeurs au serveur
  • rescotchage des capteurs sur le prototype
  • récupération des données dans un ficher texte
  • optimisation du code pour la récupération et le formatage pour un programme
  • présentation optimisé de la page txt ou le code arrive

jeudi 27 mai :

  • résolution du problème de wifi avec le raspberry PI0
  • test de la batterie 18650b pour son autonomie
  • branché la pile en même temps que l'ordinateur fait charge la pile si elle l'est
  • soudage d'une 3eme carte esp 32 (en cas de problème)
  • recherche sur grafana, prométheus et influx DB
  • affichage de la batterie 18650b ?
  • gestion d'erreur
  • géré l'envoie de mail pour les erreurs
  • affichage du graphe des données récupérer avec influx db et graphana : Foo
  • optimisation de la consommation de la batterie
  • forfait par mois (environ 7 euros)
  • tuto sur freecad + explication de quelques base
  • nouveau schéma réseau de notre infrastructure :

vendredi 28 mai :

  • prise des valeurs remit a 1 min
  • réglage du problème du au quel on ne peut plus recevoir de valeurs
  • prise en main de grafana pour pouvoir intégré notre base de données en graphique
  • problème de valeurs de données qui ne s'envoyait pas (réglé : cause delay trop long)
  • utilisation d'un plugin graph (old) pour l'affichage du graphe sous grafana
  • recherche sur comment on ajoute une base de donnée dans grafana pour faire un graphique avec les valeurs prit préalablement
  • base de donne sur grappe1 (réussis)
  • graphe sur grafana complété température + humidité en fonction du temps
  • activé la base de donnée sur influxdb et la backup et restore pour l'utilise
  • changer le nom de la base de donnée sinon conflit ou la supprime
  • 2eme graphe sur grafana avec les valeurs moyennes en plus
  • autonomie pile 43h
  • graphique des valeurs de tout les capteurs de température sur grafana :

lundi 31 mai :

  • inertie d'un capteur tombe sur un morceau de métal de la chaise qui fait que la courbe de la température qu'affiche grafana a beaucoup moins de variation a cause du métal le métal "protège" le capteur d'une variation trop grande
  • affichage des courbes des capteurs en température et en humidité sur grafana sur le week-end
  • optimisation de l'espace sur les graphiques et de la lisibilité des graphes
  • gestion des alertes sur les capteurs de température et humidité
  • tentative de résolution du problème de connexion by peer en écoutant avec wireshark change le nom de l'id ne jamais avoir le mème
  • test de valeur de 10 min
  • ré affichage des graphes sur grafana avec les alertes
  • vérifier que le matériel est bien sur on
  • réglage du problème de bibliothèque (prise d'un ancien code) + modification de celui-ci pour colle de nouveau avec le programme de récupération des données
  • démarrer grafana manuellement quand l'ordi s'allume
  • test sur la pile
  • optimisation de la duré de la pile
  • exemple de l'architecture grafana des graphes après 3 jours de mesure (mesure de 2 capteurs température + humidité) :

mardi 1 juin :

  • test sur l'hibernation
  • aide stagiaire (css couleur)
  • recherche de composant sml
  • installation de grafana sur un pc portable pour les affichées les valeurs en temps réelle sur grafana
  • test base de donnée en temps réel avec grafana pour voir si le graphique prends les valeurs tout seul
  • recherche sur comment grafana prends les valeurs et les affiche en temps réelle
  • recherche sur comment ajoute from time a la liste des option grafana pour avoir le temps réelle
  • problème de fuseau horaire avec grafana donc les valeurs ne s'affichaient pas
  • affichage de l'heure sur le code
  • utilisation du standard UTC pour grafana + le code programme

mercredi 2 juin :

  • change les valeurs dans le code pour avoir l'heure qui s'affiche correctement dans le terminal
  • problème de concaténation c++ (erreur sur la double concaténation avec sprintf exemple :
      lenght = sprintf(date, "%d-%d-%d ", year, month, day); // "2021-6-2" 8 caractères 
      lenght = sprintf(date + lenght, time); // "2021-6-2 15:49:55" lenght = 8 caractères 
      lenght = sprintf(date + lenght, msg); // "2021-6-2grappe1|nan|nan" 
    

la fonction sprintf renvoie la longueur du char[] et permet de convertir et concaténé différents type de données en char[], sur la deuxième ligne de mon exemple lenght prends la taille du char[] du time (8 caractères), en revanche lors de la deuxième concaténation lenght n'a pas prit en compte la taille du char[] date avant la concaténation et prends en compte que la taille du char de time (demande a pierre)

  lenght = sprintf(date, "%d-%d-%d ", year, month, day); //lenght est déjà calculé et donc est plus performant
  sprintf(date + lenght, time);
  sprintf(date + strlen(date), msg); // "2021-6-2 16:08:34|grappe1|nan|nan" 

strlen() sert a compté le nombre de caractères sans le caractère de fin, et donc ça s’arrête pas au char[] time mais parcours aussi le char[] date et affiche les 16 caractères attendus avec le char[] msg )
  • conversion de EpocheTime() pour que il affiche correctement la date en année-mois-jour
  • faire affiche l'heure dans le publish

jeudi 3 juin :

  • changer la valeur du fuseau horaire pour que ça corresponde avec grafana et avoir des valeurs cohérente avec l'heure
  • changement du programme qui récupère les valeurs dans la base de données car l'heure a été ajouté et donc comme ce n'est pas une valeur que peux prendre la base de donnée elle plante
  • test du nouveau programme pour la base de donnée pour qu'elle récupère l'heure en plus des données correctement
  • mise en place de la nouvelle base de donnée sur grafana pour avoir la température et l'humidité en fonction de l'heure et la date qu'on aura dans la base de donnée
  • test réussis pour la température
  • mise en place de tout les graphes de température et humidité
  • l'actualisation des données ne se fait pas correctement (résolution du problème)
  • l'actualisation se fait correctement changement du "now" (sélection d'un now de 1h à 2h pour ne pas avoir de décalage)
  • test avec toute les valeurs tout les 10 mins pour l’économie de la batterie
  • exemple de graphe qui s'actualise automatiquement (capteur 1 et 2) :

vendredi 4 mai :

  • gestion des erreurs sur tout les graphes avec comme valeur d'alerte :
    1. température : min 15 max 30
    2. humidité : 30 min 80 max
  • brainstorming sur les questions a pose a romain pour la visio
  • apprentissage de vim
  • visio finit et adaptation des réponses a nos questions
  • test de l'autonomie de la batterie sur le week-end

lundi 7 juin :

  • recollage de la grappe + vérification des valeurs des capteurs
  • recherche sur l'optimisation de la batterie
  • l'esp 32 mis a disposition ne peut pas se mettre en deep_sleep et donc l'autonomie avec la batterie est de 10 jours (voir une possibilité autre pour optimisé la batterie)
  • refaire les alertes avec les nouveaux seuils sur tous les graphes (marge d'erreur de température)
  • vérifier le nombre d'octet pour 1 mesure envoyé (environ 100 octets par messages)
  • test du code du deep_sleep pour voir si on peut faire mieux que la conso actuel (retour au code de base)
  • test de la batterie pour voir si c'est pas le module pour charge la batterie qui consommerai le surplus d’énergie (test avec un pile sur 24h)
  • doc sur le sleep de l'esp32 : Foo

mardi 8 juin :

  • test sur l'esp 32 pour savoir qu'elle composant a cramé, le composant TP5400 qui gère a recharge de la batterie sur l'esp
  • recherche sur le forfait qu'on va utilise pour la carte sim
  • modification du wiki du projet avec les tableaux des récurrents
  • demande a pierre si la datasheet est bonne ? (validé)
  • recherche d'un code pour affiché le pourcentage de batterie
  • correction du tuto d'installation de platform.io
  • création des tuto d'installation pour grafana influxdb et vscode

mercredi 9 juin :

  • optimisé la lisibilité du tuto platform.io
  • demande a pierre le sous domaine à utiliser (la semaine prochaine avec la VM)
  • mettre en place un mot de passe pour grafana (la semaine prochaine avec la VM)
  • recherche sur pourquoi le code qui est sensé affiche la batterie affiche des valeurs fausses (calcules faux et donc affiche toujours les mêmes valeurs)
  • test des tuto influxdb grafana et vscode
  • changement de quelques lignes pour le code (ajustements)
  • test du tuto platform.io et réglage des quelques bug restant (géré une erreur, refaire les "fléches")
  • bug récurrent quand on débranche et rebranche l'esp chaque jour (recherche de la cause)
  • changement d'esp pour l'instant, le temps d'effectué des tests pour savoir d’où viens le problème
  • modification du texte pour grafana et influxdb
  • aide stagiaire (modification création de compte)
  • recollage de la des capteurs sur la grappe

jeudi 10 juin :

  • trouve une nouvelle idée pour faire tenir les capteurs du prototype contre le mur (urgent à cause de la chaleur les capteurs ne tiennent plus)
  • problème avec le câble USB qui faisait une erreur lors du téléversement
  • recollage de la grappe avec du scotch fait exprès pour
  • problème de batterie cause par la température trop élevé (25°C) (veille de la pile pour ne pas qu'elle chauffe plus ?)
  • correction du montage de la pile pour le mettre sur l'esp32
  • test avec plusieurs batterie pour voir si on arrive à affiché sur le serv mqtt (en attente d'avoir le montage pour la batterie)
  • gestion d'erreur par rapport a la hausse de la température ou l'humidité par semaine (à voir si possible de le faire, pour l'instant pas trouve de solution)
  • aide stagiaire css redmine
  • pin 19 de l'esp ne marche plus

vendredi 11 juin :

  • vérification que les capteurs soit dans le bonne ordres l'or de la réception sur le serveur
  • test sur le programme qui permet de sleep l'esp32
  • mauvaise utilisation de la fonction sleep (bien garde les deux variables une pour la conversion et l'autre pour le temps (pour modifie avec le temps voulu)
  • l'esp s'endort correctement et se réveille bien après les 5 minutes demandé
  • affichage du pourcentage de la batterie sur le terminal de vscode (fait)
  • affichage du pourcentage de la batterie sur le serv mqtt (fait)
  • programme python pour crée la base de donnée avec la batterie en plus pour grafana (fait)
  • optimisation du programme final
  • affichage d'un graphe sur grafana avec la valeur en % de la batterie (une fois que le code pour sera fini, code fini mais comme on améliore le code a faire plus tard)

lundi 14 juin :

  • finition des graphiques avec les températures et humidité sur grafana
  • affichage du graphe de la batterie sous grafana
  • vérification que les capteurs tiennent toujours sur le prototype
  • gestions d'alertes de la batterie (une alerte à 50% + 1 semaine avant que la batterie soit à 0 (faire une estimation du % de la batterie avant qu'elle soit morte pour faire l'alerte à 1 semaine))
  • problème avec les ports USB des pc donc l'esp 32 n'envoie aucune valeur (marche quand ça veut)
  • (j'ai pousse sur le gogs de mon lycée le code que nous avons fait : lyceekastler)
  • test pour savoir pourquoi on n'a pas les bonnes valeurs quand l'esp est sur batterie

mardi 15 juin :

mercredi 16 juin :

  • configuration de la VM pour pouvoir l'utilise avec influxdb et grafana
  • configuration de grafana pour la VM
  • mise en place des graphes sur grafana
  • mise en place d'un utilisateur "user" avec un mot de passe
  • mise en place des alertes sur tout les graphes
  • après avoir zoomer sur un valeur il faut remettre la plage de temps relative à l'heure souhaité
  • test d'une grappe 2 (valeur envoyé à la main pour le test) sur grafana pour voir si il est possible d'affiche plusieurs grappes sur la même base de donnée (réussis)

  • problème avec le compte user on ne voit pas les graphes qui prennent tout les capteurs (problème réglé)
  • installation d'un pc sous Debian 10 (avec zsh, oh-my-zsh, package wifi)

jeudi 17 juin :

  • demande a pierre des infos sur les utilisateurs grafana
  • 1 ou 2 session admin pour le Fablab, 1 session admin pour romain, 1 compte utilisateur pour romain
  • ajoute de la raspberry sur le tableau de chiffrage
  • cherche sur le problème de sim qui se reconnecte automatiquement (changement de module)
  • mesure de la consommation de l'esp quand il dort et quand il envoie des valeurs
  • test sur la batterie avec des température moins élevé
  • modification du prog python sur la mv pour que il y est un user et mdp, doc utilisé : prog python-mdp

vendredi 18 juin :

  • modification du prog python pour avoir un mdp et user sur le prototype de grappe actuel (fonctionnel)
  • la batterie à tenu toute la nuit sans aucun problème de valeur avec un envoie toute les 5 minutes
  • vérification de pourquoi l'esp ne marche que 1 fois sur 6 et donc n'envoie que des valeurs toute les heures voir plus (câble défectueux)
  • ajoute sur le programme de l'esp le mdp pour ce connecte au raspberry
  • push sur gitea des nouvelles modif
  • changement de base de données donc j'ai du refaire entièrement les alertes et l'interfaces de grafana
  • ajout d'un fichier cache sur gitea avec les mdp
  • quand grafana n'a plus de valeurs une flèche apparaît en bas du graphe
  • le grafana pour la MV est accessible depuis n'importe ou
  • création d'un fichier .env pour cache les mdp
  • reset de la raspberry pour verif le problème de valeur de l'esp
  • test voir ça a réglé le problème

lundi 21 juin :

  • ajout d'un fichier secret(avec les mots de passe) dans le gitea
  • présence aux oraux blanc de mes collègues
  • exemple de retour sur le Raspberry

mardi 22 juin :

  • résolution du ticket sur le projet thermo-bibli (batterie)
  • test sur le fait que les capteurs mettent 1 minute à ce lancer pour savoir si le temps qu'on doit laisse pour éteindre l'esp avec la rtc (les capteurs mettent 10sec à s'enclencher)
  • résolution du ticket sur le projet thermo-bibli (site Carreire)
  • on a enlevé la LED de l'esp pour abaisse la consommation
  • test sur la batterie pour savoir la consommation sans la LED qui consomme

mercredi 23 juin :

  • réglage de l'esp qui ne marchait plus
  • vérification de valeurs du test de la batterie (nul vu que le code avait un problème)
  • remise de debian 10 sur un pc
  • recherche sur comment utilise tls avec mqtt
  • mise en place du code dans l'esp : MQTT-tls
  • test sur la VM (problème sur la connexion a la vm)
  • utilisation de la découpe laser pour coupe un support pour le DHT22
  • écoute des oraux blanc de mes collègues /oral blanc du stage
  • recherche du problème au quel le certificat ne passe pas la vm (Software caused connection abort)

jeudi 24 juin :

  • test sur l'esp pour que l'envoie et la réception des valeurs soit plus lisse
  • l'esp envoie correctement toute les minutes sur le test
  • mise en place sur des valeurs réelles (test valide 1 à 2 sec de décalage)
  • retour sur le test pour le certificat de la vm
  • recherche sur les logs de la vm de mosquitto pour voir une erreur et recherche de celle-ci
  • essaie sans la demande de certificat pour voir si on peut (marche pas)
  • essaie de mise en place d'une fonction de callback
  • test avec insecure
  • autre serveur mqtt si avec mosquitto on y arrive pas : autre-serv

vendredi 25 juin :

  • test avec un pc en guise de récepteur (non concluant)
  • recherche sur une erreur python (importerror cannot import name _remove_dead_weakref)
  • copie de disque dur
  • création d'un serveur mosquitto sur un pc portable
  • installation de wireshark pour voir les trames qui passent lors de l'erreur de l'esp avec le certificat (pas réussis problème de display)
  • regarde pour voir si ça marche : tls-mqtt

lundi 28 juin :

  • faire les mises à jour du thermo-bibli (documentation du code, changement sur les informations du thermo-bibli, changement du lien de gitea)
  • description et photos du site carreire : site carreire
  • donne la feuille d'éval a pierre
  • impossible de push le nouveau codes documenté sur gitea donc test sur un autre pc pour push
  • clonage du projet sur mon pc opérationnelle + modif de la branche test mqtt/tls
  • test avec un nouveau client autre que mosquitto : client hiveMQ de mqtt

mardi 29 juin :

  • l'esp c'est arrête d’envoyé des valeurs à la base de données à partir d'une certaines heure
  • test sur la vm avec se site : création de certificat
  • test sur un serveur test avec l'erreur internal error

mercredi 30 juin :

  • commande pour change les paramètres d'un certificat
    openssl req -x509 -new -nodes -key ca.key -sha256 -days 365 -out ca.crt -subj /C=FR/ST=France/L=Bordeaux/O=Someone/CN=Fablab
    

vendredi 2 juin :

openssl x509 -in ca.crt -text # permet de lire un certificat 
  • test avec un double true dans le ca.crt, ne marche pas non plus même erreur
  • passage à la rtc au lieu du sleep, 0,7 mA de consommation sans aucune valeur et avec valeur 90 mA
  • calcule de durée de la batterie, 3 mois d'autonomie

Deuxieme Stage

lundi 03 avril :

Explication des missions pendant le stage, actualisation des clés ssh + ma page
Check les tickets + faire une cat sur le wiki SI pour le modification de l'adressage du Fablab

mardi 04 avril :

Suppression des tickets superflus
Recherche sur le problème de Jean-baptiste qui reçois les mails du serveur en tant que Alexander
Début du nettoyage du wiki (mise en forme)

mercredi 05 avril :

Bug de la fonction collapse de redmine, conflit avec le header section (lien : Bug collapse)
Recherche sur l'ide avec tmux et vim
Recherche sur le bug d'exportation en pdf des images qui passent pas
Recensement des urls du fablab

mardi 11 avril :

Recherche sur pourquoi le nouveau serveur laravel plante et met une erreur 403 quand on se connecte

les fichiers était zip donc ca faisait bug le serv juste a dezip pour réglé le probleme (merci lukas)

Mercredi 12 avril :

Enlevé le MdP root de MySQL

Test a effectué, si ça marche, changer les plugins de root pour force un MdP et voir si en faisant un "MySQL -u root" la connexion est possible ou pas et aussi vérifié si en root la connexion est possible.exemple
lock du compte root exemple de lock

pas trouvé donc remis un mdp

exemple d'ide tmux exemple
exemple
exemple

faire l'upgrade redmine

Jeudi 13 avril :

Plugins tmux potentiellement utiles :

Thème tmux :

Modification manuelle de la barre d'état dans tmux: https://ciksiti.com/fr/chapters/12026-customizing-the-status-bar-in-tmux

Commande pour dump la BDD postgres

sudo -u postgres pg_dump redmine > /home/bastien/pgsql.sql

ide vim a test

Mise à jour de postgres de la version 11 vers 13 de Redmine et Gitea

Vendredi 14 avril :

pour désinstaller spacevim :

curl -sLf https://spacevim.org/install.sh | bash -s -- --uninstall 

Il faut que je note tous les plugins que j'utilise et comment j'ai faits
faire une p'tite doc pour me rappeler ce que j'ai fait
plus voir comment marche Vim-polyglotte et si je n'arrive pas mettre les plugins bash c/c++ git et les grammaires française et anglaise


Tout d'abord, nous avons deux commandes de cartographie générale:

    map- fonctionne de manière récursive dans les modes normal, visuel, sélectif et en attente d'opérateur.
    map!- fonctionne de manière récursive en mode insertion et en ligne de commande.

Les variations non récursives de ces commandes sont:

    noremap- n travaillère de manière récursive dans des modes normal, visuel, sélectif et en attente d'opérateur.
    noremap!- fonctionne de manière non cursive en mode insertion et ligne de commande.

Vous pouvez y penser comme no[remap] {lhs} {rhs}qui signifie cartographier la séquence de touches {lhs}à {rhs}, mais ne notrefaites pas de nouveau les commandes dans {rhs}d'éviter les cartographies imbriquées et récursives.

Ensuite, nous avons des commandes spécifiques au mode:

    nmap- fonctionne de manière récursive en mode normal.
    imap- fonctionne de manière récursive en mode insertion.
    vmap- fonctionne de manière récursive en mode visuel et en mode de sélection.
    xmap- fonctionne de manière récursive en mode visuel.
    smap- fonctionne de manière récursive en mode de sélection.
    cmap- fonctionne de manière récursive en mode ligne de commande.
    omap- travaille de manière récursive en mode opérateur en attente.

Et leurs variations non récursives:

    nnoremap- fonctionne de manière non récursive en mode normal.
    inoremap- travaux non récursifs en mode d'insertion.
    vnoremap- fonctionne de manière non récursable en mode visuel et en mode de sélection.
    xnoremap- fonctionne de manière non cursive en mode visuel.
    snoremap- fonctionne de manière non cursive en mode de sélection.
    cnoremap- fonctionne de manière non cursive en mode ligne de commande.
    onoremap- travaux de manière non récursive dans le mode en attente de l'opérateur.

Enfin, remapest une option booléenne qui permet aux cartographies de fonctionner de manière récursive. Il convient de mentionner que vous devez toujours conserver cette option par défaut. on.

Documentation IDE Vim

Lundi 17 avril :

Plugins Vim a testé pour l'ide :
https://vimawesome.com/plugin/syntastic trop dur à mettre en place
https://vimawesome.com/plugin/vim-tmux-navigator il faut toucher à la conf tmux et je n'ai pas encore regardé
https://vimawesome.com/plugin/deoplete-nvim pip3 nécessaire
https://vimawesome.com/plugin/vim-workspace pas ouf
https://vimawesome.com/plugin/command-t-ours ruby nécessaire donc pas gardé

le <CR> a la fin nmap dans mon fichier vimrc sert à rendre les raccourcis opérationnels comme l'arborescence et l'historique

modif de la doc ide vim

Lundi 24 avril :

Correction de la doc Vim ide

Test de nouveau thème pour ce dernier :
  • basic-dark
  • onedark
  • black_angus
  • theme de base : boa
  • cool
  • elda
  • space-vim-dark

option sympa a test:

apt install aspell aspell-fr
map ,C :w:!aspell -c %:e %

-x pour chiffrer un fichier avec vim

Mardi 25 avril :

voir le bug avec le copié collé + voir le mail cf notes

pour régler le problème quand ont utilisé mouse=a et quand vous voulez copier collé, il faut tape sur shift avant de sélection le texte voulu
soit, on se met en mode visuel et on sélectionne AVEC Vim le texte, on appuie sûr y pour copier et on peut ctrl-v pour coller dans le navigateur

modification de quelques coquilles sur la doc IDE Vim

test de la conf ide vim + ajustement des quelques probleme sur la doc

Mercredi 26 avril :

changement de la conf apache pour le nouveau site (certificat)
test d'autocomplétion sur le vim

Jeudi 27 avril :

Correction de la doc vim
Ajout de raccourcis pour la gestion d'onglets
Tentative de recherche sur plusieurs mots

nmap gy :silent execute "!firefox https://duckduckgo.com/?q=" . shellescape("<cWORD>") . " &"<CR>
vmap gy <Esc>:silent execute "!firefox https://duckduckgo.com/?q=" . shellescape("<C-r>*") . " &"<CR>

bah ça marche pas

j'ai trouvé comment mettre l'autocomplétion soit avec un ctrl-n ou ctrl-p si on ne veut pas de plugin sinon on prend SuperTab qui fait la même chose

https://dud.univ-amu.fr/fr/public/quelques-killer-tips-vim

Vendredi 28 avril :

https://vim.rtorr.com/ site pour avoir des commandes Vim (c'est très complet)
modification de la doc avec pierre

modification à faire voir ticket

Mardi 2 mai :

ticket sur vimscode fini + ajout de nouvelle fonction

https://github.com/iggredible/Learn-Vim/blob/master/ch26_vimscript_conditionals_and_loops.md
https://spacevim.org/development/vim-script/#loop
https://blog.arduino.cc/2020/03/13/arduino-cli-an-introduction/

Mercredi 3 mai :

tabulation de masse shift + >

ajout au niveau de la doc pour le script et les alias
mise sur gitea du projet
contournement du problème pour lequel je n'arrivais pas à faire en sorte que la boucle marche

Jeudi 4 mai :

Faire la doc Arduino sur l'install + les commandes
Faire le test pour voir si ça marche correctement

Documentation_Arduino_cli

le plugin vidéo n'est pas supporté par Redmine, c'est le seul

redl arduino-cli + voir comment on peut avoir l'autocomplétion des commandes avec bash et zsh

on ne peut pas remonte dans le terminal

le plugin devnote créer un fichier .devnote c'est la ou il stocke tout ce qui est écrit

liens utiles :https://dev.to/stepanvrany/esp32-with-arduino-cli-36mh
https://www.survivingwithandroid.com/arduino-cli-compile-upload-manage-libraries-cores-boards/
https://www.pcbway.com/blog/Activities/Arduino_cli__compile__upload_and_manage_libraries__cores__and_boards.html

a explorer si j'arrive pas https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html

La fonction |term_getsize()| peut être utilisée pour obtenir la taille actuelle du
terminal. | term_setsize()| ne peut être utilisé que dans le premier ou le deuxième mode,
Pas quand 'termwinsize' est "rowsXcols".

Vendredi 5 mai

je n'arrive pas à trouver comment redimensionner correctement le terminal tout ce que j'ai test ne marche pas dernière solution c'est d'arriver a exécuté un ctrl-ww dans la commande Vim

port introuvable pour arduino-cli

mise jour du serveur

Mardi 9 mai

récap avec pierre

pour le terminal y faut faire Ctrl w + N ça passe le terminal en mode Vim et donc on peut scroller dedans et pour sortir, on fait i ou a j'ai fait un raccourci F2 pour éviter un méga raccourci
donc plus de problème pour le terminal dans Vim

push des modifs sur gitea

pour le problème avec Arduino, il fallait rajouter son user dans dialout avec la commande :

sudo usermod -aG dialout "votre utilisateur" 

Il faut ensuite redémarrer l'ordi si ce n'est pas pris en compte.
Après ça le teste marche très bien.

Documentation esp-idf

Début de la doc/installation pour espressif

si tu colles du texte a un h"12345" le bouton modifier despawn et le texte prends la taille du titre

Documentation platform.io cli

Mercredi 10 mai :

correction des docs

ajouter aux docs l'autocomplétion des commandes → fait sur les toutes les docs

modif de la navbar pour agreugreu

Jeudi 11 mai :

navbar de agreugreu fini
add librairies platform.io

test de oh-my-tmux

attente de la maj redmine
gitea en 1.18.1
voir la gueule du serveur a aquilenet pour enleve une alim pour diminuer la conso

Vendredi 12 mai :

Correction sur le serveur + mise à jour gitea
Regarde s'il y a un plugin vidéo et resize image facilement -> pas actuellement sous redmine 5.0.5

mettre une image sur gitea :

Save a new wiki page
Clone the wiki repository (http://localhost/org/repo.wiki.git)
Commit an image into the root directory and push to remote
Edit the wiki page and use the following markup: ![title](../raw/image.jpg)

enleve l'obligation nom et prenom lors de la création d'user, on ne peut pas en graphique donc j'ai regardé en cli mais pas trouver comment on fait

faire les docs dans vimscode de platform.io et esp32

Lundi 15 mai :

faire de la doc

raspberry pierre

Mardi 16 mai :

doc esp + platform.io

faire des dossiers par langues
j'ai fini les docs sur de vimscode

Mercredi 17 mai :

correction doc + recherche extensions gnome

Lundi 22 mai :

changement de gitea vers forgejo + création de la doc
maj de la doc (quelques petits probleme regle)
voir pk vundle ne se met pas correctement -> le dossier a pas suivis

si j'ai pas un dossier dans bundle gitea le delete automatiquement
est cce que y'a bien le dossier bundle quelque part et voir si tout vas bien dans la doc

Mardi 23 mai :

création d'un lien symbolique entre forgejo et gitea
mail a samuel
correction doc vimscode

Ajout de correctif sur les docs platform.io, esp, arduino.

Ajout de f10 pour fermer vimscode mais il faut, double tape pour fermer une fenêtre sauf que vimscode en ouvre 2 donc c chiant

Mercredi 24 mai :

ajout d'une erreur quand une option vimscode est invalide
ajout d'une aide -h pour vimscode
les options vim ne marchent pas avec vimscode conflit entre mon script et les options vim
f10 ne quitte pas quand le fichier est vide

ajout d'une page home dans le wiki vimscode

Jeudi 25 mai :

doc pour la pi de l'expo
ajout de quelques trucs sur vimscode
faire la reproduction pour la raspberry pi 3 pour l'expo

Vendredi 26 mai :

faire la doc de la rapberry pi 3
voir LDAP (est-ce que ce n'est pas mieux de mettre laravel en principal parce que le redmine est voué à disparaître)

Allez dans Administration → Authentification LDAP et cliquez sur Nouveau mode d'authentification.
Pour activer et setup le ldap de redmine

pour forgejo admin site>source d'authentification

https://adldap2.github.io/Adldap2-Laravel/#/

Mardi 30 mai :

tuto openldap
tuto openldap
tuto openldap
"Post-Processing Options:" pour les options yt-dlp intéressante
j'ai fait un exemple pour pierre qui s'appelle test
l'activation du ldap est quasiment pareil sur redmine et forgejo

stagiaire n'a pas acces aux projets du fablab -> ajout de chaque projet au role stagiaire

Mercredi 31 mai :

Voir pour l'alim

Voir pour la backup
faire mes animes

usb -> sata
changement des cables ethernet de la baie informatique
soudage des nv cable d'alimentation des ssd du serveurs

Jeudi 1 juin :

mise en place du ldap redmine
casse puis remit

regarde la bakcup nas

solution pour faire que le nas prenne la backup ninja du serveur :
https://kb.synology.com/en-global/DSM/tutorial/How_to_back_up_Linux_computer_to_Synology_NAS
https://danielrosehill.medium.com/4-ways-to-backup-linux-workstations-onto-a-synology-nas-with-videos-487a54943702

Vendredi 2 juin :

debug pour amplificator

modif de l'accueil de gitea en forgejo modif du fichier app.ini dans /etc/gitea/app.ini RUN_USER-> gitea to forgejo

ldap:https://likegeeks.com/linux-ldap-server/

Host: ims.example.com
Port: 389
User: MYDOMAIN\accountName
Password: *
Base DN: dc=mydomain,dc=example,dc=com

On-The-Fly User Creation: YES
Login: sAMAccountName
Firstname: givenName
Lastname: sN
Email: mail

https://jetstream.laravel.com/2.x/features/authentication.html

Lundi 5 juin :

changer le mdp du ldap
https://docs.bmc.com/docs/fpsc121/ldap-attributes-and-associated-fields-495323340.html

Mardi 6 juin :

ldap + changement d'alim du serv

prise j23 qui bug

bug du serveur donc on est allé au datacenter pour voir, mais l'ordi a "cramer" lors de nos tests

Mercredi 7 juin :

Vérification avec la restauration de Debian si on trouvait un truc, mais rien donc on a décidé de remonter un serveur de rien

Jeudi 8 juin :

finition sur le serveur de quelques trucs style automatisation du lancement de redmine et des choses qu'on aurait pu oublier
fail2ban
SSH
PHP
APACHE
connexion en cle ssh

Vendredi 9 juin :

Suppression des users et mdp a la con
nettoyage des ports du pare-feu

Lundi 12 juin :

modification de ma doc perso
début de la doc de backup du serveur
tentative d'upgrade de pgsql mais ça a pas marché donc on n'a pas changé la version
changement des permissions du dossier redmine

Mardi 13 juin :

finition des perms sur le serveur
solution aux problèmes de la base de données laravel
chiffrement
maj de la doc de bakcup du serveur

pose du nv serveur au datacenter et finition des derniers problemes de configuration

Mercredi 14 juin :

Problème de 503 sur forgejo en spammant de requete comme un gogol

chiffrement usb veracrypt et utilitaire debian

Jeudi 15 juin :

mumuse avec des vm androids
ldap sur un nv serveur

Vendredi 16 juin :

ldap

probleme de port et connexion avec mon ldap

Lundi 19 juin :

ldap

https://guide.ubuntu-fr.org/server/openldap-server.html
https://eole.ac-dijon.fr/documentations/2.5/partielles/HTML/ClientsGnuLinux/co/30-configurationClient.html
https://tldp.org/HOWTO/LDAP-HOWTO/globaldirect.html

Mardi 20 juin :

j'ai réussi à faire marcher le ldap
ajout raccourci dans vimscode
ajout des groupes ldap et quelques tests pratiques

voir comment marchent les scripts ldap pour ajouter, modifier et supprimer
l'ajout d'utilisateur de redmine ldap ne s'applique pas dans la bdd ldap

https://medium.com/geekculture/laravel-ldap-authentication-laravel-login-with-ldap-437674903068

Mercredi 21 juin :

regarder comment marcher les scripts ldap

les scripts de ldap sont dans /usr/local/bin

https://wiki.debian.org/LDAP/ldapscripts

j'ai une erreur à la con quand je veux créer un groupe ou un user dans le ldap à partir des scripts dl

ajout d'un attribut "memberUid" avec le nom de l'utilisateur dans le groupe voulu, mais c'est un peu barbare selon le nombre d'utilisateurs
https://wiki.debian.org/LDAP/ldapscripts

Jeudi 22 juin :

pour la backup ldap avec git
les users ldap se voient dans passwd mais se sont pas connus par le serv

finition des scripts maisons d'ajout, de suppression et de modification

Lundi 26 juin :

le mail a aquilenet pour l'agrandissement de la vm thermo-bibli
ldap laravel : https://ldaprecord.com/
https://phpflow.com/laravel-7/ldap-authentication-using-laravel-7/
https://www.youtube.com/watch?v=5lRBGdLrxj0&list=PLKS4z7uJf8CC9Cb6JUIi1hA5LODVd_Ovx&index=3

Mardi 27 juin :

alex a réglé le probleme de forgejo en enlevant le watchdog
ldap laravel
j'ai fait planter le laravel avec la conf ldap

Mercredi 28 juin :

https://www.csrhymes.com/2020/10/12/use-ldap-record-with-laravel-fortify.html?ref=morioh.com

Le tuto est plutôt bon, mais j'ai une erreur sur le authprovidersservice qui n'est pas trouvé par Laravel, mais si je l'enlève le site reste accessible, mais on ne peut pas s'authentifier.
Si je laisse activer les options dans config/fortify, il y a que le login et les portfolios qui cassent.
J'ai niqué quelques autres trucs sur le passage (lien a la base de données).

Lundi 3 juillet :

ldap laravel
petit bug sur le ldap redmine et forgejo

Mardi 4 juillet :

ldap laravel
certains liens sont tj niqué

doc laravel avec pierre

Mercredi 5 juillet :

ldap laravel
https://laravel.fr/t/laravel-5/message-d-erreur-lors-de-la-connexion-these-credentials-do-not-match-our-records

Jeudi 6 juillet :

vérification du hash de slapd
laravel utilise bcrypt et slapd SHA

https://lindevs.com/create-custom-password-hasher-in-laravel/
https://gist.github.com/rcknr/47d3a175fb32647742850666dbdbc086

Vendredi 7 juillet :

ldap laravel
ajout de l'ide arduino sur quelques pc du fablab

Lundi 10 juillet :

Démontage de mon pc portable + test de l'atelier vacances

Mardi 11 juillet :

script ldap + laravel ldap

vimscode ajout d'une maj auto + correctif de fichier quand on tape juste vimscode, je dois ajouter les raccourcis vimscode

https://runebook.dev/fr/docs/laravel/docs/8.x/authentication
https://kinsta.com/fr/blog/guide-authentification-laravel/

voir comment spacevim fait pouvoir avoir l'historique meme en quittant vim

Mercredi 12 juillet :

ldap laravel

ldap compatibilité de hash https://www.synetis.com/importer-passwords-haches-dune-base-sql-vers-ldap/

potentielle solution https://stackoverflow.com/questions/33562285/how-can-i-use-md5-hashing-for-passwords-in-laravel

solution pour le hashage

https://github.com/wclarie/openldap-bcrypt/

https://github.com/jotaelesalinas/laravel-adminless-ldap-auth

Jeudi 13 juillet :

ldap laravel + log ldap voir si y'a un truc

hash laravel : $2y$10$ytdtqVY2PB8NtnUFZkf4KOhi7oKs/TZZ5oo3c2tmgxo5IKxIkl5A2

hash ldap : {SHA}GtehXBfUEAh7hG5GpIJveRcd8YU= 28

test de hash en sha256 de laravel : f0154198b616bcc97f34ae6182a898640c131a648fda3cef58674934c0ed9706 40

hash salt https://auth0.com/blog/adding-salt-to-hashing-a-better-way-to-store-passwords/

fonction de hash utiliser par ldap https://perldoc.perl.org/functions/crypt

Lundi 17 juillet :

laravel ldap
test de créer un utilisateur laravel et tester l'authentification dessus pour voir ce que ça donne

[2023-07-17 10:16:24] local.INFO: LDAP (ldap://127.0.0.1:389) - Operation: Binding - Username: cn=admin,dc=cohabit,dc=fr  
[2023-07-17 10:16:24] local.INFO: LDAP (ldap://127.0.0.1:389) - Operation: Bound - Username: cn=admin,dc=cohabit,dc=fr  
[2023-07-17 10:16:24] local.INFO: LDAP (ldap://127.0.0.1:389) - Operation: Search - Base DN: dc=cohabit,dc=fr - Filter: (&(objectclass=\74\6f\70)(objectclass=\70\65\72\73\6f\6e)(objectclass=\6f\72\67\61\6e\69\7a\61\74\69\6f\6e\61\6c\70\65\72\73\6f\6e)(objectclass=\75\73\65\72)(email=\6a\6f\68\6e\2e\64\6f\65\40\6f\75\74\6c\6f\6f\6b\2e\66\72)(!(objectclass=\63\6f\6d\70\75\74\65\72))) - Selected: (objectguid,*) - Time Elapsed: 10.91 

dans les logs laravel quand je me co j'ai un objectclass qui semble etre le mdp et qui est identique meme si je change de mdp

/*$this->registerPolicies();

         Fortify::authenticateUsing(function ($request) {
              $validated = Auth::validate([
                  'email' => $request->username,
                  'password' => $request->password
              ]);

              return $validated ? Auth::getLastAttempted() : null;
          });*/

j'ai reset mon install ldap sur le laravel et je perds la connexion sur le changement dans le providers -> authServiceProvider

Mardi 18 juillet :

laravel ldap

fichier pour changer le hash admin de laravel -> app/Console/Commands/CreateAdminUser.php

hash ldap :SHxme0Y4MlRaRy9FYDJxZA

pour changer le hash utiliser phpseclib :

$tata = hash('sha256','test');
echo $tata;

Mercredi 19 juillet :

voir avec pierre pour ce que j'ai fait hier
ce qui me reste à faire une doc pour ldap et mes avances sur ldap laravel
la backup et peut etre d'autre truc que j'ai pas en tete

doc ldap dans le portail web et ajustement de ce que j'avais déjà écrit dedans

Jeudi 20 juillet :

un peu de doc par-ci par là

les liens que je trouve les plus utiles que j'ai trouvé :
tuto ldap laravel avec ldaprecord
doc de ldaprecord
fonction php utilisé pour changer le hash

ldap laravel fini

Vendredi 21 juillet :

si ldap plante comment revenir pour laravel et les autres -> fait
ticket pour l'authentification laravel pete -> fait
ticket if else quand l'authentification sera réparer -> fait

fichier a modifier pour le if else
vendor/directorytree/ldaprecord-laravel/src/Auth/DatabaseUserProvider.php
mettre a jour le laravel ma version actuelle + celle de lukas -> fait

voir avec pierre pour le SI

doc pour laravel faite sur le ldap redmine et sur forgejo fait

création des scripts pour ajouter et supprimer des groupes ldap
ne pas oublier de passer un user ldap laravel en admin pour pierre

Autre :

pour se co au laravel c'est l'adresse mail