Publié le 28 Octobre 2011

Après un article sur comment afficher sa dette technique avec Sonar, voici comment la maitriser en suivant jour après jour les nouvelles violations des règles de codage introduites dans le code.

Le but est de suivre l'évolution des 'Rules compliances' build après build. Cela est possible directement dans sonar avec l'option 'since previous analysis' ou 'over 5 days'.

Cela permet déjà de trouver les nouvelles violations et de les corriger. Et oui c'est le but!!

 

Mais sur un projet assez conséquent avec plusieurs développeurs il peut être plus rapide que chaque personne répare ses propres erreurs. De plus cela permettra à la personne de se former plus rapidement en prenant conscience de ces erreurs de codage... (et je me sens aussi concerné quand j'écris ceci ).

 

Pour revenir à la configuration de sonar il faudra installer le plugin 'SCM Activity' qui permettra de suivre l'évolution du projet depuis l'outils de gestion de conf (ici SVN mais il fonctionne aussi avec d'autres).

Dans la configuration du plugin il faudra renseigner le login à utiliser pour se connecter au SCM.

Il faut également veiller à ce que dans le pom.xml du projet il soit bien déclarer l'url de connection à SVN.

Pour plus de détail sur la configuration du plugin voir ici: http://docs.codehaus.org/display/SONAR/SCM+Activity+Plugin.

 

Et voilà c'est tout. Lors de la prochaine analyse, il s'affichera dans la marge du code source le nom de la personne ayant commiter le changement avec les violations. Plus qu'à le prévenir pour effectuer les corrections!!

Cool, non ?

Voir les commentaires

Rédigé par Bliz

Publié dans #Intégration continue

Repost 0

Publié le 25 Octobre 2011

Le xml est un format très utilisé et beaucoup de services utiilsent ce format pour transmettre des données.

Dans ces cas il arrive très souvent que le xml ne soit pas identé, ce qui permet d'économiser des caractères, mais qui rend les données difficilement exploitable pour le commun des mortels.

Heureusement sous linux il existe un utilitaire qui permet d'indenter automatiquement n'importe quel flux xml.

Il s'agit de xmllint:

Pour formater un fichier xml il suffit de taper la commande suivante:

xmllint --format mon_fichier.xml

On peut même traiter directement un flux provenant d'un service web en spécifiant '-' comme nom de fichier:

wget http://mon.service.web/ | xmllint --format -

Voilà c'est tout simple mais ça simplifie la vie!!

Voir les commentaires

Rédigé par Bliz

Publié dans #Script

Repost 0

Publié le 24 Octobre 2011

Sonar est très connu pour permettre de suivre la qualité du code d'un logiciel, il va même jusqu'à afficher la dette technique accumulé sur un projet.

Après avoir installé Sonar et analysé mon projet, je voulais avoir une estimation de la dette technique mais impossible de trouver cette information dans l'interface web de sonar.

En fait les infos sur la dette technique ne sont pas présente par défaut sous Sonar. Il faut pour cela ajouter le plugin 'Technical Debt'.

Cela se fait très facilement en utilisant l'interface d'administration.

Voir les commentaires

Rédigé par Bliz

Publié dans #Intégration continue

Repost 0

Publié le 19 Octobre 2011

SSH permet de se connecter à une machine distante sans avoir à saisir de mot de passe pour peu que les clés SSH soient bien configurées.

Le principe est simple (je pars du principe qu'on est sur une machine locale et qu'on veut se connecter à une machine distante):

- Chaque machine (et chaque utilisateur) possède un répertoire .ssh dans son home. C'est là où sont stockés les clés SSH.

- Pour pouvoir se connecter à une machine distante il faut que le fichier .ssh/authorized_keys contiennent la clé publique de la machine locale. Ainsi la machine distante peut facilement vérifier l'identité de la machine local à l'aide du mécanisme de clés publique/privée.

- La clé publique de la machine locale se trouve dans le fichier .ssh/id_rsa.pub. Il faut donc copier le contenu de ce fichier sur la machine distante dans  .ssh/authorized_keys

Et voilà c'est tout il suffira de répondre 'yes' lors de la première connection vers la machine distante et après le login devient complétement automatique.

Comme la copie des clés manuellement est un peu fastidieuse il existe la commande :

ssh-copy-id user@host

qui permet d'automatiser ce processus.

Voir les commentaires

Rédigé par Bliz

Publié dans #SSH

Repost 0

Publié le 17 Octobre 2011

J'ai récemment mis à jour Eclipse. Tout c'est bien passé mais après avoir redémarrer avec la nouvelle version et sélectionné mon workspace, surprise!

Tous mes projets sont bien là mais ils ne sont plus reconnus en tant que projets SVN. Bien sûr ce sont tous des projets SVN qui contiennent tous des marques SVN (les répertoires .svn par exemple).

Après une petite recherche sur le net, j'apprends que dans ce case la connection vers SVN est automatique.

Bon après quelques essais, il s'avère qu'il suffit de faire un 'delete' du projet (en faisant bien attention de ne pas cocher la case 'also delete content on disk (can not be undone)'.

Puis de refaire un 'import / Existing project from workspace' et là tout rentre dans l'ordre, ouf!!

Voir les commentaires

Rédigé par Bliz

Publié dans #Eclipse

Repost 0

Publié le 11 Octobre 2011

On peut simplement désactiver un profile maven avec l'option -P en faisant précéder le nom du profile par un !

ce qui donne par exemple:

mvn clean install -P\!monProfile

Le backslash sert simplement à protéger le ! lors de l'interpretation de la ligne de commande, afin d'éviter l'erreur suivante:

bash: !monProfile: event not found

Voir les commentaires

Rédigé par Bliz

Publié dans #Maven

Repost 0

Publié le 11 Octobre 2011

J'ai récemment rencontré un problème avec mes styles css.

J'utilise une table HTML à 2 colonnes pour afficher diverses information sous forme de clé/valeur.

Les clés sont du texte donc pas de problème mais les valeurs peuvent être du texte ou des éléments plus complexes.

Mon problème et que j'applique une bordure sur les images lorsqu'elles correspondent à une valeur du tableau.

Pour ceci j'utilise le style CSS suivant:

.monTableau img { border: 1px solid #000; }

Jusque là pas de problème.

 

Mais j'ai eu besoin d'ajouter un élément complexe qui n'était pas juste une image mais une autre table comprenant des images.

Et forcément mon style CSS s'est retrouvé appliqué aussi sur ces images en plus du style défini dans mon élément - ce que je ne voulais pas.

En fait on peut spécifier dans le CSS sur quel élément doit s'appliquer le style. Il m'a donc suffit de transformer mon style de la manière suivante:

.monTable > tbody > tr > td > img { border: 1px solid #000; }

pour qu'il ne s'applique que sur les images directement placées à l'intérieur d'une cellule <td> et non sur des images situées plus profondément dans la structure HTML du document.

Bien joué CSS!

Voir les commentaires

Rédigé par Bliz

Publié dans #CSS

Repost 0