mercredi 2 décembre 2020

docker, alpine, python, mariadb : Modifications pour faire tourner les tests avec python / mariadb en utilisant MySQL-python

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 :
  • 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: Specified key was too long; max key length is 767 bytes

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

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 :)
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...

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

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.

java, lambda et "jointure" de chaines

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
  • 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
Ricoh envoie un mail avec 2 identifiants (un ID d'enlèvement et un ID de suivi de colis).
Sur le site UPS, pour Pour reprogrammer l'enlèvement : suivre les indications du mail

mysql, entiers et plages de valeurs

https://dev.mysql.com/doc/refman/5.6/en/numeric-type-syntax.html

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/

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

linux, date installation initiale

java, regexp nommées

jeudi 17 septembre 2020

solutions partage écran

Solutions de partage d'écran simples qui fonctionnent sans spécifier l'ip / utilisateur du poste distant. Ils demandent un ID du poste et mot de passe généré.

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...


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 :(

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

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

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

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.



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 :

  • 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)
En jouant sur les options, on peut faire disparaître les valeurs d'une ou plusieurs colonnes
  • -1 pour faire disparaître la colonne 1
  • -2 pour faire disparaître la colonne 2
  • -3 pour faire disparaître la colonne 3
Attention, les fichiers doivent être au préalable triés.


Exemple :

samedi 25 avril 2020

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).



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.

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.