jeudi 26 mars 2009

Maven 2.1.0

Maven est sortie en version 2.1.0.
La release notes est disponible ici.
Le téléchargement peut se faire à partir de .

Bonne journée ;)

jeudi 19 mars 2009

Introduction au load balancing

Le load balancing est une technique qui permet de répartir la charge entre plusieurs machines, selon certaines règles, un "load balancer" bascule la charge sur l'un des serveurs contenu dans la ferme.
Si vous voulez en savoir plus, lisez cet article et les liens qu'il contient.

JSR 203 : les entrées/sorties en Java 7

La gestion des fichiers et répertoires a évoluée avec Java 7, on trouve des exemples de code sur cette page.
Tout semble vraiment simplifié, l'ouverture/fermeture de fichiers, le déplacement ou la visite dans un système de fichiers.
Il y a même une gestion d'évènements pour scruter les modifications d'un répertoire.

mercredi 18 mars 2009

Les topics de l'artchitecture logiciel en 2009

Voici un point de vue sur les topics dont on devrait entendre parler en 2009.
La majorité des sujets sont connus depuis un long moment, on retiendra :
- le travail collaboratif,
- le cloud computing,
- les mashup,
- les langages dynamiques.

Une petite astuce

J'ai testé le logiciel Fences ce matin. Les postes de développement au travail sont sous Windows.
J'essaie d'organiser mon bureau par répertoire, parfois en créant une nouvelle barre de tâches,
et puis je suis tombé sur un article présentant Fences.

Ca ne révolutionnera pas votre facon de travailler, mais ca a son petit plus.
Tout est organiser par boîte, vite visible, vite trouvable. C'est un petit soft très sympa.
Les avantages :
- l'organisation,
- pouvoir cacher une ou plusieurs fences,
- on peut modifier la couleur, la transparence.

Les inconvénients
- on ne peut pas imbriquer des 'Fences',
- on ne peut pas déplacer les icônes comme on veut a l'intérieur d'une Fence,
- on ne peut pas réduire une Fence, on peut juste la cacher.

mardi 17 mars 2009

Les performances en Java

Comment tester ou mesurer les performances de son applications ?
L'article suivant présente DynaTrace, les interfaces ont l'air claires, les résultats faciles à trouver, dommage c'est payant.
Bon et bien il ne reste plus qu'à coder proprement et comprendre les tenants et aboutissants, ca demande du travail! Alors commencer par lire l'article sur la fonction 'Escape analysis' de la JVM.

Pour ou contre les annotations

Apres avoir écrit, modifié, supprimé de nombreux fichiers de configurations XML, le principe des annotations arrive avec Java 5.
J'ai pu l'utiliser pour les webservices (avec CXF), rapidement avec les EJB 3, et je trouve que certains codages sont simplifiés grace a se principe.
Bien sûr, il y a des mauvais côtés, et je serai trop peu expert pour vous les lister.
De ce fait, je vous laisse aller regarder cet article qui donne 3 avantages et 3 inconvénients, en espérant qu'il s'enrichisse.

mercredi 11 mars 2009

Introduction au pair programming

Après un bon repas en compagnie de son directeur de projet et d'autres collègues, on ressort toujours avec plein d'idées. C'est intéressant de confronter le point de vue de personnes qui ont peu d'expériences avec celles qui en ont plus.
D'un côté, il y a l'envie forte de respecter toutes les théories, de l'autre il y a le pragmatisme. Confronté quotidiennement aux problèmes d'implémentations, de temps, de coût, entre les bonnes pratiques et les vraies pratiques, il faut faire la part des choses.
En ce moment, le sujet des tests unitaires revient souvent. Qu'est ce qu'un bon test, comment va-t-on faire pour le maintenir, ne faut-il pas écrire les tests avant, et j'en passe.
C'est un vrai sujet, qui demande réflexion, et un point qui est ressorti, c'est le pair programming.
Quelle chance, je rentre et que vois-je sur infoQ, "adopter le pair programming"! Génial!
Les avantages, les inconvénients, un avis sur la manière débuter... "y a plus qu'a" comme on dit

Programmation web à un niveau plus élevé

La majorité des sites utilises Ajax, CSS, toutes les briques de bases du Web 2.0, permettant d'augmenter l'interaction avec l'utilisateur.
Le souci avec Ajax, c'est qu'il faut choisir une librairie, ou un framework. En utilisant JQuery par exemple, même si je le trouve extrêmement puissant et rapide à prendre en main, c'est qu'on reste très proche du Javascript.
L'article suivant propose de s'orienter vers des "outils" de plus haut niveau comme Cappuccino. Honnêtement je ne sais pas si j'aurais un jour l'occasion de le tester et plutôt que de dire des bêtises, je vous laisse lire l'article et pourquoi pas vous diriger sur le site de Cappuccino.

Les fuites mémoires

Avec Java, l'habitude n'est pas forcément de regarder sa consommation mémoire.
On peut même le voir sur des projets très connus comme Eclipse. Malgré le fait que cet outil est tout de même
très pratique, qu'il est plutôt bien fait, il a une forte tendance a demander de plus en plus de ressources.
Vous imaginerez très vite le temps qu'on peut perdre avec un projet multi-module utilisant maven, déployé sur Weblogic 10, sur un poste de dev.Bref, entre les temps de compilation, de démarrage, de téléchargement de librairies, je crois que si j'allais prendre un café à chaque fois que j'en ai l'occasion, je deviendrais hyperactif.

Bien entendu, ce n'est qu'un exemple, et le choix de ce mode de fonctionnement est peut être discutable, toutefois, et j'en viens au sujet de ce billet, il est bon de jeter un oeil à la consommation de mémoire de son projet.
J'ai lu quelque part que face à une fuite mémoire, il y a deux types de réactions. La première est d'augmenter la taille allouer à la jvm pour contourner le problème, la seconde est de la réduire pour reproduire le bug plus facilement.
Il est bien évident que tout le monde choisit à chaque fois la deuxième solution :p
Et pour cela les bon outils font le bon ouvrier, pour cette raison je vous invite à vous informer en lisant cet article.

Tutoriaux Struts 2

Struts 1.2 et consort ont longtemps vécu, et dans le monde de l'entreprise, Struts 2 prend sa place petit à petit.
Voici deux tutoriaux pour prendre en main ce framework :
- HelloWorld,
- Les validators.

mardi 10 mars 2009

A partir de quel jar ma classe est chargée ?

Voici une astuce tout bête qui peut aider à comprendre un dysfonctionnement,
comment connaître le jar depuis lequel une classe est chargée.
La réponse en quelques lignes sur cette page, ou
    Class cls = Example.class;
ProtectionDomain protectedDomain = cls.getProtectionDomain();
CodeSource codeSource = protectedDomain.getCodeSource();
URL jarLocation = codeSource.getLocation();
System.out.println(jarLocation);

Il y a un site très pratique aussi : http://www.jarfinder.com, il permet à partir du nom d'une classe de retrouver le ou les jars qui la contiennent.

Comment faire une revue de code

Il est parfois important de faire une revue, par exemple lorsque de programmeurs avec peu d'expérience arrivent sur un projet, ou travaillent sur une partie sensible.
Ce n'est pas toujours constructif, et certains pourraient mal le prendre. En effet, le but de cet exercice est de déterminer les défauts, et la manière de les corriger.
Voici un point de vue sur la revue de code et sur la facon dont elle doit s'organiser.

mardi 3 mars 2009

Renforcer son serveur Ubuntu

Aujourd'hui, une équipe de développement quelqu'elle soit, se doit d'avoir un gestionnaire de configuration. Voici un article qui présente de manière très simple comment installer et configurer SVN sur Ubuntu.
Serveur auquel Webmin sera ajouté. Webmin est une interface d'administration utilisable dans un navigateur web.