vendredi, décembre 02, 2011

Resign Patterns : les nouveaux patterns

2 commentaires
Cet article est une traduction "libre" de l'excellent papier de Michael Duell qui se nomme "Resign Patterns" Ailments of Unsuitable Project-Disoriented Software.
En fait, Resign Patterns reprend le principe des Design Patterns tels que décrit par the Gang Of Four mais en proposant un tout autres types de Patterns... Je vous laisse juger de leur véracité... Je pense qu'ils ont suffisamment fait leurs preuves pour ne pas avoir droit, eux aussi, à leur gloire... ;-)

Aussi, au même titre que les patterns du GoF, je vous invite à utiliser les dénominations décrites par les Resign Patterns pour vous faire comprendre de vos collègues quand vous parlez du design d'un programme. Ainsi, vous pourrez briller en société mais surtout vous faire comprendre par vos pairs ;-) 

dimanche, novembre 20, 2011

Devoxx 2011 - What's probably coming in Java Message Service 2.0

3 commentaires
La semaine dernière, j'ai eu la chance d'aller à Devoxx en Belgique à Anvers.
Pour ceux, qui ne connaissent pas, je vous invite à aller directement à la pêche aux informations sur le site : http://www.devoxx.com/ et même à vous y inscrire l'année prochaine et/ou même mieux... d'aller assister à Devoxx France!!


Bon, sinon, pour revenir à nos moutons, cet article est un petit retour de la session de Nigel Deakin présentée à Devoxx 2011 et à laquelle j'ai assisté. 
Elle avait pour objectif de montrer l'avancée des travaux sur JMS 2.0 (Java Message Service) aussi connu sous le doux nom de JSR 343. A ce jour, en version early draft, elle devrait être intégrée à JEE7.
Cet article a donc pour vocation de tenter de retranscrire ce que nous a présenté Nigel.

lundi, novembre 14, 2011

Petite découverte de CloudBees

4 commentaires
La semaine dernière, j'ai eu la chance d'assister à un atelier sur CloudBees chez nos amis de Xebia

Ce dernier a été organisé avec brio par (je le fais par ordre alphabétique pour éviter tout favoritisme ;-) ) :

Comme d'habitude, organisation bien rodée et atelier préparé aux petits oignons mais ce n'est pas le but de mon article...

L'objectif de cet article est, pour ceux qui n'étaient pas présents, de faire un rapide tour d'horizon de ce qui m'a marqué dans la solution qu'apporte Cloudbees avec ses offres DEV@Cloud et RUN@Cloud. Cet article sera surtout focalisé sur la partie usine logicielle offerte par Cloudbees car c'est celle qui a été mise en avant pendant l'atelier et c'est aussi celle qui me semble la plus intéressante du point de vue de mes besoins actuels.

Je vais donc essayer de vous résumer ce que j'ai apprécié... Pour ce faire, je ne reviendrai pas sur le usecase qui a été utilisé car je pense qu'il vaut mieux assister à l'atelier et qu'il faut bien laisser un peu de suspens... ;-). De même, je ne parlerai ni de l'intérêt du cloud ni de comment mettre en place DEV@Cloud ou RUN@Cloud.

Cet article s'articulera donc en deux parties :
  • la première consistant en un très rapide retour sur ce que propose CloudBees,
  • et la deuxième sur ce qui me plait dans une approche telle que celle proposée par CloudBees.
PS : au passage, encore un grand merci aux organisateurs de l'atelier!

jeudi, octobre 20, 2011

FuseSource Community Day 2011

2 commentaires
Ce jeudi 13 octobre dernier a eu lieu la troisième édition du FuseSource Community Day à la Défense.
Pour ceux qui ne connaissent pas la société FuseSource, il s'agit, en fait, du nouveau nom de Iona et c'est une société spécialisée dans l'open source qui propose un ensemble de produits packagés et intégrés de différentes solutions de la fondation Apache.

mercredi, septembre 28, 2011

Nouveaux thèmes Blogger

1 commentaires
Pour une fois, ce post n'a pas pour objectif de parler d'une technologie ou d'un évènement en particulier, mais juste d'introduire une nouvelle fonctionnalité de la plateforme de blog Blogger.
En effet, il vient d'être offert aux utilisateurs de cette plateforme, la possibilité d'appliquer un thème dit "dynamique". En fait, il existe 7 thèmes différents qui ont la particularité d'être assez sobres.
Pour plus d'informations, je vous renvoie vers le blog officiel de Google France.
En attendant que des utilisateurs en appliquent un, il est possible de prévisualiser tous les blogs sous Blogger avec ces derniers afin de se faire une idée du rendu de vos sites préférés ;-)

Si on prends l'exemple du mien, vous pouvez vous faire une idée du rendu en allant sur l'url suivante (attention, il semble que cela ne fonctionne pas sous chrome - en tout cas la version sous linux - ) :
http://jetoile.blogspot.com/view/sidebar


Du coup, j'en profite pour faire un petit sondage... :
Préférez-vous que mon blog reste avec le thème actuel ou que je lui donne un petit coup de jeune (et dans ce cas, certaines parties risques d'être dégradées).
Je vous laisse y répondre via les commentaires.
S'il n'y a pas de réponses - ce qui est fort probable... - , je ferai selon mes humeurs ;-) 

lundi, septembre 26, 2011

Jetty, Maven et JMX

3 commentaires
Vous avez peut être remarqué que ces derniers temps, j'étais très Maven et JMX. Cet article ne déroge pas à la règle puisque je vais parler de... Maven et de JMX.
Enfin pour être plus précis, je vais montrer comment il est facilement possible de déployer une application web dans le conteneur embarqué Jetty via Maven en activant la couche JMX afin de pouvoir tester de manière intégrée cette couche.
Pour ce faire, je présenterai dans un premier temps le contexte, puis comment cela peut être mise en œuvre.
Bien sûr, cet article montre comment j'ai fait mais il ne représente pas la seule manière de faire... ;-). En outre, il ne présente rien de novateur mais je me suis dit que cela pouvait toujours être utile afin d'éviter de faire perdre du temps à d'autres personnes.

vendredi, septembre 23, 2011

Présentation sur les problématiques liées à une architecture distribuée

0 commentaires
Ci-dessous se trouve une présentation que j'ai donné dans le cadre de So@t sur les problématiques liées aux architectures distribuées. Pour information, c'est un retour d'expérience d'une mission qui date un peu puisque c'était en 2007 mais les préconisations restent identiques à ce jour.

Enjoy et n'hésitez pas à commenter ;-)

dimanche, septembre 18, 2011

JugSummerCamp 2011 : C'est fini...

0 commentaires
Voilà, pour ceux qui l'auraient manquée ou qui ne le savaient pas (ouh!!!), le JugSummerCamp a fermé ses portes ce vendredi 16 septembre 2011.
Ce fut une journée bien remplie, fatigante mais que du bonheur : des sessions intéressantes, des speakers compétents mais également une super organisation (merci au Poitou-Charente Java User Group mais également à tous les sponsors de l'évènement sans qui rien n'aurait été possible... (on les oublie tout le temps... ;-) ))!


C'est toujours un plaisir de rencontrer/retrouver des personnes géniales (je ne citerai pas de noms, ça fait trop lèche... ;-) ).

Donc, en gros, vous l'aurez compris, au vu de mon enthousiasme, merci encore et vivement l'année prochaine!!

vendredi, juillet 29, 2011

Retour sur le BreizhCamp 2011

0 commentaires
Cela fait un petit moment (plus d'un mois déjà...) qu'a eu lieu le BreizhCamp
Pour les néophytes, BreizhCamp est une journée de conférence sur diverses technologies allant de Python, en passant par .Net pour, finalement finir sur Java.
Cette année, elle a eu lieu le vendredi 17 Juin à Rennes dans les locaux de l’ISTIC et a été organisée par l’équipe du BreizhJug qui comprend :


Ayant eu l'opportunité d'y participer, j'ai rédigé quelques petits compte-rendu de quelques-une des présentations auxquelles j'ai eu la chance d'assister. Les liens se trouvent ci-dessous : 


Le programme complet est ici.
En tout cas, encore un grand merci aux organisateurs ainsi qu’aux speakers et vivement la prochaine édition (en espérant que, la prochaine fois, la Bretagne daigne nous offrir un peu de soleil sans passage pluvieux ;-) )!

samedi, juin 11, 2011

Ubuntu 11.04, problème de complétion?

1 commentaires
Ubuntu 11.04 est sorti depuis le 28 avril 2011. Je ne reviendrai pas ni sur son ergonomie ni sur ses ajouts puisque cela a déjà été débattu sur de nombreux sites/blogs. Cependant, depuis la mise à jour, un point avait tendance à m'agacer.
En effet, dans un shell bash, sur la complétion de la commande ls (entre autre) avec des répertoires contenant des espaces, il ne m'échappait plus ces derniers. Du coup, obligation d'aller les échapper manuellement mais chose encore plus embêtante était qu'il ne me proposait plus le contenu de mon répertoire.
Pire, en échappant les espaces et en utilisant la complétion, il me supprimait mon échappement...
Cet article fournira donc une rapide solution pour corriger ce problème.

dimanche, juin 05, 2011

Maven pour les nuls... les archetypes

2 commentaires
Dans le cadre d'une problématique d'une usine logiciel, il peut s'avérer utile de posséder un patron ou template de projet qui fournit les "bonnes" pratiques que doivent respecter l'ensemble des applications du projet.
Bien sûr, notre cher IDE est capable de générer un joli patron de projet. Cependant, il reste toujours nécessaire de modifier la configuration du projet pour y mettre, par exemple :
  • la version de jdk,
  • les libs utilisées (comme mockito par exemple),
  • optionnellement, la configuration de plugins,
  • optionnellemet, l'url du SCM,
  • ou tout simplement, la référence à un projet parent qui permet de définir, par exemple, la version des librairies ou des plugins utilisés. 
Le hic, c'est que, généralement, cela fini par de jolis copier/coller dont le résultat diffère, bien sûr, en fonction du projet qui a servi de template. Le résultat : le syndrome du téléphone arabe sachant qu'en plus, on n'est même plus capable de savoir qu'elle était la référence du départ... embêtant tout ça... surtout pour un projet se voulant industriel...
En outre, posséder un patron de projet peut également s'avérer utile si vous êtes amené à POCer des frameworks ou faire des projets perso chez vous...
Vous l'aurez compris, cet article se focalisera sur les projets construits sur maven où les notions de dépendances, de plugins, d'informations projet sont présentes dans le pom.
Cet article a donc pour objectif de montrer comment il est possible de créer un archetype maven qui permet de répondre à ce problème.
Le use case sera simple puisque je m'appuierai sur la création d'un archetype simple pour mes besoins personnels afin de me fournir un patron normalisé (selon mes normes) me permettant de démarrer un POC rapidement pour un artifact de type jar et cela dans le seul but de ne pas avoir à faire moultes copier/coller... ;-)
A noter qu'il n'y a rien de révolutionnaire dans cet article pour toutes les personnes qui ont quelques connaissances de base en maven mais qu'il peut s'avérer utile (enfin j'espère) pour les autres... ;-)

vendredi, mai 20, 2011

Les repositories Manager pour les nuls... focus sur Nexus

0 commentaires
Cela fait un moment que je n'ai pas bloggé faute de temps mais également d'inspiration... (ça c'est dit et ça, on s'en fout d'un coté ;-) ) Cet article parlera des repository manager. Rien de nouveau à l'horizon puisque la problématique et les solutions existent depuis un moment mais ayant dû en mettre un en place récemment et au vu de nombreuses questions que l'on m'a posées, je vais ici coucher sur "papier" ce qu'est un repository manager, c'est à dire quelques uns de ses concepts clés. En outre, cela me servira également d'aide mémoire et je me dis qu'une piqûre de rappel ne fait jamais de mal... ;-)
Pour ce faire, je vais m'appuyer sur l'excellent repository manager Nexus de Sonatype et plus particulièrement (comme à mon habitude... ;-) ) sur sa documentation officielle.
Par contre, je ne reviendrai pas sur les concepts de base de maven comme la définition de ce que sont les repositories local et distant.
Enfin, ici, j'utiliserai la même dénomination que le guide Nexus pour le terme organisation qui devra être pris au sens large du terme (entreprise, projet open source, poste local, ...).

mardi, mars 22, 2011

MicroBenchmark : par la pratique

0 commentaires
Cet article fait suite à mon article précédent afin de donner mon rapide retour d'expérience sur quelques écueils qui peuvent être commis lors de l'écriture d'un microBenchmark et dans lesquels je suis, bien sûr, tombé :(. Pour remettre dans le contexte, c'est l'écriture de ce benchmark qui a entrainé l'écriture de mon article précédent suite aux résultats que j'ai pu constater et pour lesquels j'ai eu l'aide de mes camarades.

vendredi, mars 18, 2011

MicroBenchmark : mode d'emploi

0 commentaires
Cet article fait suite à une petite discussion que j'ai eue récemment avec un collègue sur qui était le plus fort entre le for et le foreach. Question qui peut paraitre, au premier abord, stupide mais qui m'a fait pas mal me creuser les neurones sur des points qui n'ont pas grand chose à voir avec le problème initial... (mais là, je m'avance un peu sur mon article... ;-) ).
Enfin, pour revenir au sujet initial (qui était, je le répète : "qui était le plus fort entre le for et foreach"), j'ai donc décidé de me faire un petit benchmark pour tester la performance des deux. Et là, ce fut le début des galères...

jeudi, février 24, 2011

Pour les gouverner tous - partie 3/3

0 commentaires
Cet article fait suite à mes précédents posts (ici et ) et à pour objectif d'intégrer la partie JMX à mon petit POC JGroups afin d'offrir une solution permettant de rendre complètement scalable la partie supervision/administration par JMX d'une application distribuée (ie. d'aggréger tous les MBeans au sein de tous les serveurs JMX). Pour rappel, le post précédent introduisait JGroups dans une petite application qui permettait à chaque instance d'une application d'obtenir la valeur d'une donnée offerte par les autres instances.


dimanche, février 20, 2011

Pour les gouverner tous - partie 2/3

0 commentaires
Cet article fait suite à mon article précédent et a pour objectif de présenter un petit POC (Proof Of Concept) simplicime mettant en oeuvre JGroups en version 2.11.0.GA (la dernière version stable à ce jour). Le principe est de montrer comment il est possible d'utiliser JGroups pour permettre à plusieurs instances d'une même application de se partager les valeurs d'une donnée. Enfin, pour être plus précis, cet objet partagé ne le sera pas vraiment (ndlr : partagé) par toutes les instances mais il s'agira plutôt de permettre à chaque nouvelle instance de récupérer la valeur d'une donnée auprès des autres instance déjà présentes dans le système. En outre, les autres instances déjà présentes devront recevoir directement la valeur de la donnée de la nouvelle instance.
L'autre raison d'être de cet article permettra d'introduire la couche protocolaire utilisée par mon petit POC qui permet de rendre distribuable un agent JMX dans une architecture distribuée.

lundi, janvier 31, 2011

Pour les gouverner tous - partie 1/3

0 commentaires
Pour ceux qui l'auraient manqués (comment ça? Personne ne me suit... :( ), j'ai annoncé dans un post précédent que j'avais ouvert un compte sur GitHub pour hoster du code. Bien sûr, il y avait une petite idée derrière... ;-)
En fait, l'idée est partie d'un constat assez simple : sur différent projet, à chaque fois que j'ai voulu mettre en place JMX, ce qui m'a toujours profondément attristé était de ne pas pouvoir regrouper l'ensemble des informations des MBeans à un même endroit, c'est-à-dire, qu'il me fallait me demander où se trouvait tel ou tel MBean dans mon système alors que j'aurais aimé pouvoir me connecter sur n'importe quelle instance de mon système et y trouver tous les MBeans présents dans mon système. Enfin, pour être plus précis, j'aurais aimé pouvoir me connecter à n'importe quelle JVM qui hébergeait mon application et avoir accès à tous les serveurs JMX.

dimanche, janvier 30, 2011

Ouverture d'un compte GitHub

0 commentaires
Voilà, ça fait quelques jours que je travaille sur un petit projet perso.
Aussi, afin de pouvoir le hoster, je me suis créé un compte sur GitHub : https://github.com/jetoile.

Pour toutes informations sur Git, je vous renvoie sur le site : http://blog.gitfr.net/
De mon coté, je continue mon petit projet que je documenterai via de nouveaux articles d'ici peu.

Rester à l'écoute ;-)

dimanche, janvier 23, 2011

Petites astuces avec JMX

2 commentaires
Ce rapide article fournit un petit retour d'expérience de quelques galères que j'ai pu avoir avec JMX (Java Management eXtension), galères certes stupides mais qui pourront peut être servir à d'autres... ;-)
Sera donc abordé deux points :

  1. Erreur lors de l'arrêt de tomcat configuré avec JMX
  2. Impossibilité de se connecter à l'agent JMX