Playing with puppet: The installation

The subject of this post may be misinterprated….or not.
To help search engines to find it more easily, the subject here is to give some tricks while using the puppet tool from www.puppetlabs.org which used to automatically administer large systems by allowing automated installations and configurations drifts detection.

These functionnalities are also available on some other tools, among them JBoss Operation Network (the drift feature is available since version 3.0), however puppet seems to gather of a larger adoption among the community.

While working at a customer, I met a sponsor so we decided to give it a large try.

Corporate customers often rely on a enterprise Linux distribution, and RHEL 5 is often a common guest in the party. Unfortunately, puppet is not a part of the distribution and you have to rely on the EPEL (Extra Packages for Enterprise Linux) repository to make it available for installation.
To do so, simply add /etc/yum.repos.d/epel.repo with the following content:

[sourcecode]
[epel]
name=Extra Packages for Enterprise Linux 5 – $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
[/sourcecode]
And then, perform the agent installation with:
[sourcecode]
sudo yum install puppet
sudo /etc/init.d/puppet start
[/sourcecode]
Fine, your puppet agent must be up and running. You can now have fun trying to write your own classes and manifest.

Load testing Seam-Booking with JMeter

There are some interesting  blog posts on how to do load tests of seam applications with JMeter. Since a few days, I had to train a customer in doing load tests. We had a pilot project, that already had a testable application with its own JMeter tests scripts, however, because of lack of time, the application was not ready, and I had to fallback on another solution.

My favorite demo application is Seam Booking application which is a “bogus” Hotel Reservation Web Application developed with Seam (using JSF, Seam and Hibernate). The application is pretty and nice to use. It uses Ajax and just like all JSF applications it rely on javax.faces.viewState’s that are exchanged along pages. Because it uses Seam, there is also a “Conversation ID” that is hold from pages to others.

Continue reading

Une méthode de 1000 lignes ou 100 méthodes de 10 lignes ?

La réponse à cette question est évidement: 100 méthodes de 10 lignes …

Nombre de lignes de code ou LoC

Parmi les métriques de bases de la qualité logicielle, s’il y’en a une bien qui est vraiment LA métrique de base, c’est le nombre de ligne de codes. On ne va pas expliquer ici comment on calcule ce nombre, Wikipedia en anglais contient une page LoC (Lines of Code) sur le sujet.

Le nombre de ligne de codes d’un projet, d’une application, d’une classe ou d’une méthode est une métrique intéressante pour évaluer la complexité de chacun de ces éléments.

Le mot “évaluer” est délibérément choisi, car effectivement ce n’est qu’une évaluation et non pas une vision exacte de cette complexité, néanmoins c’est un indicateur  convenable. Ceci n’est pas du à la précision du calcul, mais au fait que la complexité, comme la simplicité ou l’intelligibilité sont des critères subjectifs et donc difficilement quantifiables. Continue reading

Leçon d’humilité: Balayer devant sa porte ou la découverte du bug du Pentium

Ca ne fonctionne pas, c’est la faute à l’autre

Dans mon travail, j’entends souvent: Ce n’est pas ma faute, il y’a une anomalie dans le service, il ne retourne pas les bonnes données. Ou encore il y’a un bug dans le framework.
Ou plus rarement, mais c’est arrivé, c’est un bug de la JVM ou de Spring ou de Hibernate.

C’est souvent plus facile d’accuser quelqu’un d’autre, parfois même ça peut rendre service. Mais face à ce genre de situation, dans 99,9999% des cas, le problème provient de ce qui se trouve entre le clavier et l’écran: Le développeur (en l’occurence moi).

Comment s’y prendre

En fait, ce genre de situation me rappelle une anecdote que j’avais entendu quand j’étais encore sur les bancs du cours de Génie Logiciel (en école d’ingénieurs), qui concerne la façon dont a été découvert le bug du Pentium. Continue reading

Le plugin Sonar PHP

Vous savez, peut-être, qu’en plus de m’interresser à Sonar, je suis impliqué dans le développement d’un plugin pour la plateforme Sonar. Un plugin et demi, si on compte le commit sur le plugin twitter 😀 .

Du PHP dans Sonar

Vous l’aurez compris, il s’agit plugin PHP pour Sonar. Depuis Sonar 2.1, il est en effet possible de développer des plugins permettant à Sonar de réaliser l’analyse de la qualité du code d’applications écrites dans autre chose que du Java.

Continue reading

Qualité de code avec Sonar

J’ai entendu parlé de Sonar pour la première fois en 2008. Je travaillais alors comme consultant pour un éditeur de logiciel spécialisé dans le domaine de la qualité logicielle et de l’Application Intelligence. A l’époque, Sonar commençait tout juste à être connu mais n’était perçu encore que comme un agrégateur de résultats d’analyse fournis par différents outils.Courant 2008, je réalise une étude comparative pour le client pour qui je travaille, et là, je me rends réellement compte qu’il s’agit d’une solution crédible pour l’audit de code et pour l’inspection continue. La grande différence avec les outils avec lesquels je travaille chaque jour et la réelle automatisation et l’extensibilité. Continue reading

Qualité logicielle: De grands mots?

Le domaine de la qualité logicielle est relativement large. En y regardant de plus près, on se retrouve rapidement confronté à des mots comme termes comme Modèle Qualimétrique, Complexité Cyclomatique, Manque de Cohésion, taux de couverture de tests…

L’objectif de cette article n’est pas de faire peur ou de dire que la qualité logicielle est réservé aux esthètes, aux intégristes de la ligne de code ou aux architectes qui n’en écrivent jamais une. Continue reading

Historique des web services

La légende raconte que c’est Bill Gates, alors président de Microsoft qui a le premier utilisé ensemble les termes Web Services. Il l’aurait fait  le 12 Juillet 2000 au cours de Microsoft Professional Developers Conference à Orlando. Même si cette légende est controversée, il est plus certains en revanche que c’est chez Microsoft que ces mots ont été utilisés la première en les associants à SOAP, XML, WSDL et UDDI. Continue reading

Créer un formulaire simple avec Spring et SimpleFormController

Ce billet décrit l’utilisation d’un SimpleFormController pour la création d’un formulaire simple avec Spring. Je vous conseille d’utiliser SimpleFormController lorsque vous devez créer un formulaire permettant de peupler un objet composé de propriétés simples (boolean, int, String, etc…) . Dans le cas où vous voudriez écrire une applicaiton permettant de peupler des objets un peu plus complexe, je AbstractWizardFormController qui fera l’objet d’un prochain billet.