Top articles
-
Comment recharger automatiquement la conf Log4J
Pour faire suite à mon article sur l'utilisation de Log4J, voici une petite astuce qui permet de changer la conf Log4J sans devoir redémarrer son application. En effet lors du chargement de la configuration il suffit d'utiliser la méthode configureAndWatch()...
-
Comment définir un SNMP host dans sendmail
Sous sendmail la définition d'un serveur SNMP s'effectue à l'aide de la directive SMART_HOST dans le fichier sendmail.mc: define(`SMART_HOST', `snmphost')dnl Si on utilise directement une adresse IP il faut la placer entre corchets: define(`SMART_HOST',...
-
MySQL requêtes imbriquées
Voilà quelques jours que je bosse sur des rapports générés avec pas mal de procédures SQL. Même si j'adhère pas vraiment au SQL j'ai appris 2 ou 3 trucs sympas qui peuvent être assez sympa. Voici donc l'un d'entre eux: Comment combiner 2 requètes (en...
-
Comment extraire les lignes d'un fichier qui ne contiennent pas ...
Comment extraire les lignes d'un fichier qui ne contiennent pas certains caractères ou la technique du grep inversé. Cette technique permet de nettoyer un fichier "pollué" par des lignes qui ne sont pas intéressantes mais qui gènent l'analyse. C'est souvent...
-
Comment parcourir un result set sous MySQL
Pour parcourir un result set dans une procedure stockée mysql, il faut utiliser les curseurs et les boucles. Commençons par la théorie: - tout d'abord définir un curseur qui est lié à une requête avec DECLARE CURSOR - puis on ouvre le curseur, ce qui...
-
Comment exécuter une requête dynamique dans une procédure MySQL
Lorsqu'on commence à écrire des procédures MySQL un peu complexe on arrive (dans mon cas au moins) à devoir générer une requête dynamiquement puis à l'exécuter. Pour la générer rien de très compliquer: il faut générer une String ... euh pardon un VARCHAR...
-
Comment générer des clés SSH
Si vous avez lu mon artile précédent sur SSH et que vous avez essayé la commande ssh-copy-id user@remote-host Vous avez probablement rencontré l"erreur suivante: /usr/bin/ssh-copy-id: ERROR: No identities found Cela vient du fait que sur Ubuntu il n'y...
-
MySQL: ERROR 1172 (42000): Result consisted of more than one row
L'erreur suivante " ERROR 1172 (42000): Result consisted of more than one row " se produit lorsqu'on effectue un SELECT ... INTO variable ... et que la requête retourne plusieurs lignes. Ces lignes ne peuvent pas être stockées directement dans la variable....
-
Comment exécuter une commande à distance via SSH
SSH est très connu pour ce connecter à une machine distante mais il permet également d'exécuter une commande à distance sans ouvrir de session. Ceci se fait de manière très simple, il suffit de taper la commande à executer à la fin de la ligne ssh. Par...
-
Comment installer le résultat d'un build sur une machine distante avec Jenkins
Jenkins permet de builder automatiquement ses projets mais il permet aussi de publier les fichiers générés sur des machines distantes. Pour ma part je l'utilise pour déployer le dernier build automatiquement sur la machine de test. Cela se fait au moyen...
-
Qu'est ce qu'une variable volatile en java ?
Une variable volatile est une variable pour laquelle la JVM garantie que l'on récupèrera toujours une valeur à jour. D'un point de vue technique cela signifie qu'il n'y a pas d'optimisation CPU. Par exemple en utilisant le cache CPU qui pourrait engendré...
-
Comment formatter un nombre en java
L'affichage d'un nombre peut vite devenir complexe si on commence à devoir gérer les arrondis, le nombre de chiffre après la virgule, ... Heureusement en java il existe la classe java.text.DecimalFormat qui permet de convertir un nombre en String et vice...
-
Comment changer l'arrière-plan d'un paragraphe sans surligner les lignes
J'ai essayé de changer les propriétés CSS de ce blog pour faire apparaître les blocs de code avec une couleur d'arrière-plan. Le problème lorsque je spécifie une coleur d'arrière plan on dirait que les lignes du paragraphes sont surlignées avec la couleur...
-
Comment générer un graphe à partir de données avec gnuplot
Curieusement je n'avais encore jamais utilisé gnuplot jusqu'à maintenant et j'ai été plutôt agréablement surpris par la facilité d'utilisation. Tout d'abord il faut que le fichier de données soit à la mode csv (ou presque) - les données doivent être rangées...
-
Comment extraire les valeurs d'une chaîne selon une expression régulière
Les expressions régulières sont des outils très puissants pour analyser des chaînes de caractères. En java elles sont très facilement utilisable pour parser une chaîne de caractères et en extraire des valeurs. Dans cette exemple nous allons extraire les...
-
Comment trouver les éléments communs entre 2 tableaux en java
Aujourd'hui l'astuce du jour concerne les tableaux ou plus précisément les Collection en java. En effet il existe une méthode dans l'interface Collection qui permet de ne retenir que les éléments communs entre deux collections: List
croissant... -
Comment déclencher un build Jenkins lors d'un commit SVN
SVN permet de définir des actions (hooks) en fonction des évènements de gestion conf. Il permet de définir les hooks suivant: post-commit: déclenché après un commit post-lock: déclenché après le lock d'un fichier ou d'un repertoire post-revprop-change:...
-
Comment trier une Map selon ses valeurs
Bizarrement en java il est très facile de trier une map selon ses clés mais pas selon ses valeurs. Pour trier une Map selon ses clés il suffit d'utiliser une TreeMap en lui passant éventuellement un Comparator pour trier les clés. Dans cette article nous...
-
Comment reprendre la main avec SSH lors de l'exécution d'une commande distante
Suite à mon article sur l'exécution de commande à distance, j'ai rencontréun problème dans le cas où la commande distante ne se termine pas (par exemple pour démarrer une application genre serveur) et pourtant j'ai besoin de reprendre la main sur la machine...
-
Comment interroger un champ CSV dans une requête MySQL
Dans une table mysql on stock un champ 'data' qui contient en fait des chaînes de caractères au format csv. Jusque là tout va bien jusqu'au moment où on veut récupérer la valeur disons du 4ème champs du csv. J'ai pensé dans un premier temps à bricoler...
-
Comment traiter les dates (heures) avec gnuplot
Je continue à jouer avec gnuplot et maintenant j'essaie de tracer des données en fonction du temps. Voilà mon fichier de données: 2011-12-01 399.95 2011-12-02 1217.50 2011-12-03 928.90 2011-12-04 956.95 2011-12-05 757.95 2011-12-06 782.95 2011-12-07 936.00...
-
Comment trouver la valeur d'un champ dans une chaine csv avec MySQL
La fonction FIND_IN_SET est l'inverse de la fonction SUBSTRING_INDEX. Elle permet de retourner la position d'un champ dans une chaîne csv. Par exemple: SELECT FIND_IN_SET('field3', 'field1,field2,field3,field4'); retourne 3. Par contre contrairement à...
-
Comment exécuter une commande sur le résultat d'un "find"
find est une commande shell très puissante pour rechercher des fichiers mais souvent on veut effectuer une action sur les fichiers trouvés. Par exemple on peut effectuer un "grep" pour ne retenir que les fichiers contenant une certaines chaînes de caractères:...
-
Java: division incorrecte
Le problème du jour concerne les opérations arithmétiques en Java et plus particulièrement la division: Commençons avec une question simple: Quel résultat imprime la ligne suivante: System.out.println(1/4); Facile pensez-vous, c'est 0.25. Et bien non...
-
Comment faire un INSERT ou UPDATE en une seule requête avec MySQL
Je dois souvent enregistrer des données dans une base de données (ici MySQL) mais je ne sais pas forcément si ces données existent déjà en base. Pourtant c'est cette information qui permet de choisir la requête à effectuer: INSERT ou UPDATE. La solution...