J'entrepose ici mes découvertes linux, bash, python et java que je souhaite partager et mettre de côté...
mercredi 2 décembre 2020
docker / alpine / mariadb : ce que j'en pense....
J'ai voulu passer à alpine à cause de la taille de l'image produite et parce qu'elle boote vite.
Je voulais améliorer les performances du pipeline de mon projet.
J'ai eu beaucoup de déboires pour :
Hier, soir, j'arrive enfin à faire tourner les tests... et désenchantement !
Les tests sont extrèmement lents sous alpine ! Trop c'est trop...
Apparemment c'est connu... Je vais en rester là, peut-être aller voir du côté de debian:buster-slim
Références additionnelles
Je voulais améliorer les performances du pipeline de mon projet.
J'ai eu beaucoup de déboires pour :
- comprendre et réussir à faire tourner le service MariaDB dans docker (je voulais une image généraliste qui ne fasse pas que MariaDB mais aussi du java/maven & du python2.7)
- contourner des problèmes pour réussir à configurer mariadb convenablement (actuellement les postes de dévs et le gitlab sont en mysql alors que nos serveurs d'intégration/préproduction/production sont passés en MariaDB). Les sysadmins m'ont aiguillé.
- corriger des pbs d'appels depuis les tests java ou python
Hier, soir, j'arrive enfin à faire tourner les tests... et désenchantement !
Les tests sont extrèmement lents sous alpine ! Trop c'est trop...
Apparemment c'est connu... Je vais en rester là, peut-être aller voir du côté de debian:buster-slim
Références additionnelles
docker, alpine, mariadb: ce qui m'a été nécessaire...
Attention, ça ne démarre pas étrangement si on ne fait pas le rc-status auparavent...
docker, alpine, mariadb: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
La connexion se fait en ligne de commande mais pas depuis les tests unitaires lancés par maven.
Source: https://stackoverflow.com/a/2985169/3550759
Source: https://stackoverflow.com/a/2985169/3550759
mardi 1 décembre 2020
sed, insérer avant ou après matchage de ligne
Peut-être pratique pour modifier un fichier de configuration par exemple
vendredi 20 novembre 2020
bash, appel callback à la sortie...
Il est possible en bash d'appeler des méthodes lorsque de la fin du script est atteinte et ce même s'il y a une erreur. Ci-dessous, le script appellera cleanup_err puis cleanup_ok lorsque false sera atteint.
C'est bien pratique pour nettoyer les fichiers et répertoires temporaires :)
C'est bien pratique pour nettoyer les fichiers et répertoires temporaires :)
trap
mercredi 18 novembre 2020
tmux, copier/coller à la vi + dans le presse-papier
Commandes à ajouter au ~/.tmux.conf
Dans mon cas, il s'agit d'un tmux 1.8 :
Cela nécessite d'ajouter la commande xclip
Attention, l'exécution est très très lente...
Dans mon cas, il s'agit d'un tmux 1.8 :
Cela nécessite d'ajouter la commande xclip
Attention, l'exécution est très très lente...
vendredi 13 novembre 2020
python, distance de levenshtein
La distance de Levenshtein est une distance, au sens mathématique du terme, donnant une mesure de la différence entre deux chaînes de caractères. Elle est égale au nombre minimal de caractères qu'il faut supprimer, insérer ou remplacer pour passer d'une chaîne à l'autre.
Exemple:
Source: https://fr.wikipedia.org/wiki/Distance_de_Levenshtein
Exemple:
Source: https://fr.wikipedia.org/wiki/Distance_de_Levenshtein
jeudi 12 novembre 2020
mysql, données binaires
Dans certains cas, la commande LOAD_FILE n'est pas utilisable (problèmes de droits, etc..) pour alimenter un blob.
Dans ce cas, il peut être intéressant de convertir un fichier binaire (ici un fichier texte) en séquence hexadécimale...
et utiliser cette séquence hexadécimale pour faire sa requête mysql.
On utilisera alors la commande UNHEX pour décoder la séquence hexadécimale et la remettre en binaire dans la requête SQL.
Le xxd -p permet de ne sortir que l'hexa sur la sortie standard tandis que le tr -d '\n concatène les lignes.
Dans ce cas, il peut être intéressant de convertir un fichier binaire (ici un fichier texte) en séquence hexadécimale...
et utiliser cette séquence hexadécimale pour faire sa requête mysql.
On utilisera alors la commande UNHEX pour décoder la séquence hexadécimale et la remettre en binaire dans la requête SQL.
Le xxd -p permet de ne sortir que l'hexa sur la sortie standard tandis que le tr -d '\n concatène les lignes.
mardi 3 novembre 2020
ricoh, retour des toners usagés
Ricoh fournit un service pratique pour le recyclage des toners. UPS passe les chercher !
Sur la page https://www.ricoh-return.com/fr/eu, cliquer sur
Sur le site UPS, pour
Sur la page https://www.ricoh-return.com/fr/eu, cliquer sur
- France
- Dans créer un compte, cliquer sur "Poursuivre sans compte"
- Remplir le formulaire, accepter les conditions et dire s'il s'agit d'un retour simple ou multiple
- Imprimer l'étiquette
- Programmer le passage UPS
Sur le site UPS, pour
- vérifier l'état de l'enlèvement https://wwwapps.ups.com/pickup/pending?loc=fr_FR : saisir l'identifiant d'enlèvement (dans le titre du mail / corps du mail), dans mon cas il commence par 29BA
- le suivi du colis https://www.ups.com/track?loc=fr_FR&requester=ST/ : saisir l'identifiant tracking commençant par 1Z79 (disponible sur l'étiquette)
vendredi 16 octobre 2020
mercredi 14 octobre 2020
Intellij, Makefile & tabulations
Le fichier .editorconfig permet de centraliser au sein d'un même fichier la configuration à utiliser pour tel ou tel type de fichier.
Ainsi, si on change d'éditeur et que cet éditeur utilise ce fichier, on aura la même configuration.
Source: https://editorconfig.org/
Ainsi, si on change d'éditeur et que cet éditeur utilise ce fichier, on aura la même configuration.
Source: https://editorconfig.org/
MySQL : ERROR 1215 (HY000): Cannot add foreign key constraint
Echec de l'import du dump.
Ajouter en haut du script :
jeudi 8 octobre 2020
ssh, local forwarding
exemple :
- depuis le poste local, lancer firefox et aller sur http://127.0.0.1:7533
- les requêtes transitent dans le tunnel SSH (user@example.com)
- à la sortie, elles partent sur le host 127.0.0.1 port 7575 où tourne le fitnesse
mercredi 7 octobre 2020
Simuler un lien WAN sous Linux
Voici un script qui m'a bien été utile il y a 3-4 ans.
Le déploiement d'un livrable échouait lorsque je le lançais depuis chez moi via le VPN de la société.
En simulant une connexion comme chez moi mais depuis mon bureau, j'ai pu détecter qu'il y avait un timeout qui se produisait.
J'ai alors pu corriger un plugin maven afin d'augmenter ce timeout pour faire en sorte que sur une connexion lente, le déploiement se passe bien.
https://github.com/nicolargo/simulwan
Le déploiement d'un livrable échouait lorsque je le lançais depuis chez moi via le VPN de la société.
En simulant une connexion comme chez moi mais depuis mon bureau, j'ai pu détecter qu'il y avait un timeout qui se produisait.
J'ai alors pu corriger un plugin maven afin d'augmenter ce timeout pour faire en sorte que sur une connexion lente, le déploiement se passe bien.
https://github.com/nicolargo/simulwan
jeudi 17 septembre 2020
solutions partage écran
Solutions de partage d'écran simples qui fonctionnent sans spécifier l'ip / utilisateur du poste distant.
- teamviewer: https://www.teamviewer.com/fr/
- dws: https://www.dwservice.net/fr/home.html
lundi 22 juin 2020
docker, tests karma dans un container docker
Je suis novice en docker / gitlab ci/cd mais je m'y mets depuis la semaine dernière.
Mon ancienne machine de dév avait été transformée en jenkins. Elle a son disque qui a "cramé" et c'est donc l'occasion de changer de technologie...
Le projet supervisé a des tests karma.
Lors du portage sur git ci/cd, les tests étaient gelés jusqu'au claquage d'un timeout (cf traces ci-après).
Ca ne se passait que dans gitlab ci/cd. En local, hors du container docker tout était OK, dans le container, c'était KO
Dans mon cas, il manquait simplement l'installation de firefox lors de la création de l'image docker...
Après ajout, c'est bon (ouf de soulagement)
Il faut dire que l'erreur n'était pas très explicite. Beaucoups de fils de discussion parlent de problèmes de proxy...
Mon ancienne machine de dév avait été transformée en jenkins. Elle a son disque qui a "cramé" et c'est donc l'occasion de changer de technologie...
Le projet supervisé a des tests karma.
Lors du portage sur git ci/cd, les tests étaient gelés jusqu'au claquage d'un timeout (cf traces ci-après).
Ca ne se passait que dans gitlab ci/cd. En local, hors du container docker tout était OK, dans le container, c'était KO
Dans mon cas, il manquait simplement l'installation de firefox lors de la création de l'image docker...
Après ajout, c'est bon (ouf de soulagement)
Il faut dire que l'erreur n'était pas très explicite. Beaucoups de fils de discussion parlent de problèmes de proxy...
samedi 13 juin 2020
jar, github, repo : transfert des anciens jars vers le repo définitif
Manipulations pour les envoyer vers maven.pkg.github.com en ligne de commande
EDIT: le système nécessite visiblement le paramétrage d'un token dans le settings.xml même pour télécharger le war. Ce cas d'usage me déçoit :(
EDIT: le système nécessite visiblement le paramétrage d'un token dans le settings.xml même pour télécharger le war. Ce cas d'usage me déçoit :(
jar: repository sur github
Il y a bien longtemps, j'ai mis à disposition des jars sur github, via un repository
https://github.com/jfgiraud/mvn-repo
A l'époque, l'hébergement de jar ne devait pas exister ou bien, je n'étais ni tombé sur la documentation ni fais les bonnes recherches google.
Donc, à savoir, github met à disposition un repo pour les paquets maven.
Voici le lien vers la documentation : https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages
https://github.com/jfgiraud/mvn-repo
A l'époque, l'hébergement de jar ne devait pas exister ou bien, je n'étais ni tombé sur la documentation ni fais les bonnes recherches google.
Donc, à savoir, github met à disposition un repo pour les paquets maven.
Voici le lien vers la documentation : https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages
jeudi 4 juin 2020
html, liste des balises html
Liste des balises HTML pouvant être utilisées pour vérifier que des entrées de formulaires ne contiennent pas de code HTML.
Sous forme de liste (avec quote and join disponible ici)
Source: extrait de http://www.w3.org/TR/html4/strict.dtd
Sous forme de liste (avec quote and join disponible ici)
Source: extrait de http://www.w3.org/TR/html4/strict.dtd
mercredi 20 mai 2020
mysql, LOAD_FILE renvoie NULL
La méthode LOAD_FILE renvoie toujours NULL
Je suis tombé sur cette page :
https://stackoverflow.com/questions/18069054/mysql-load-file-loads-null-values
Dans mon cas, la solution est :
https://stackoverflow.com/a/51301002/3550759
Je suis tombé sur cette page :
https://stackoverflow.com/questions/18069054/mysql-load-file-loads-null-values
Dans mon cas, la solution est :
https://stackoverflow.com/a/51301002/3550759
vendredi 15 mai 2020
intellij, page vide sans menu au démarrage
Suite à la mise à jour d'un plugin (python), mon intellij 2020.1 ne démarrait plus correctement. Les versions antérieures oui, mais j'ai eu des difficultés pour rétablir un démarrage correct.
Voici les commandes que j'ai effectuées pour nettoyer et permettre le redémarrage correct avec ouverture des projets.
Attention, vous pouvez perdre d'autres configurations mais pour moi c'était acceptable.
Voici les commandes que j'ai effectuées pour nettoyer et permettre le redémarrage correct avec ouverture des projets.
Attention, vous pouvez perdre d'autres configurations mais pour moi c'était acceptable.
jeudi 30 avril 2020
commande, comparer des ensembles avec comm
Parfois, on a besoin de comparer des ensembles. La commande comm permet de faire ressortir :
Exemple :
- les valeurs qui n'appartiennent qu'au fichier f1 (colonne 1)
- les valeurs qui n'appartiennent qu'au fichier f2 (colonne 2)
- les valeurs qui appartiennent aux fichiers f1 et f2 (colonne 3)
- -1 pour faire disparaître la colonne 1
- -2 pour faire disparaître la colonne 2
- -3 pour faire disparaître la colonne 3
Exemple :
samedi 25 avril 2020
mysql, supprimer les "mysql: [Warning] Using a password on the command line interface can be insecure."
En bash une solution plus simple existe équivalente à la solution 3 :
jeudi 23 avril 2020
bash, uniformisation de numéros de version
Sur notre projet, les numéros de version des lots s'appellent des GOROCO.
Ils regroupent tout un tas d'applicatifs ayant chacun leur propres numéros de version (format x.y.z).
Ils peuvent être saisis de différentes manières, avec des 0, sans 0... du coup pour uniformiser les valeurs, j'ai réussi à trouver les commandes bash pour les avoir sur 1 caractère si possible (GOROCO) ou bien sur 2 (GOOROOCOO).
Ils regroupent tout un tas d'applicatifs ayant chacun leur propres numéros de version (format x.y.z).
Ils peuvent être saisis de différentes manières, avec des 0, sans 0... du coup pour uniformiser les valeurs, j'ai réussi à trouver les commandes bash pour les avoir sur 1 caractère si possible (GOROCO) ou bien sur 2 (GOOROOCOO).
mardi 21 avril 2020
bash, créer des requêtes sql depuis un csv
Il y a quelques temps, j'avais utilisé la commande awk pour générer des requêtes sql depuis un fichier CSV.
Dans le cas présent, j'utilise simplement un script bash.
Au final, la solution bash -bien que plus verbeuse- me semble plus lisible à lire et modifier.
Dans le cas présent, j'utilise simplement un script bash.
Au final, la solution bash -bien que plus verbeuse- me semble plus lisible à lire et modifier.
samedi 15 février 2020
csv, visualiser en ligne de commande
Voici une commande à ajouter dans son .bashrc afin de visualiser le contenu d'un fichier CSV sans avoir à ouvrir une application spécifique.
Inscription à :
Articles (Atom)