Le blog du Pere-nono

mardi 27 juillet 2010

Groupe d'onglet

Après la révolution des favoris, puis des onglets voici venir celle des groupes d'onglet. Le principe est simple : gérer de manière hyper dynamique les onglet en permettant de les regrouper et les ordonner comme on le souhaite. Ensuite on nous donne la possibilité de passer d'un groupe à un autre. Un groupe correspond en réalité à une vue de firefox contenant uniquement les onglets du groupe séléctionné.

Un plugin pour firefox4 a été mis à disposition en version build, il permet cette fameuse gestion hyper dynamique des onglets.

Lors de mon test, moi qui est toujours 10 sites d'ouverts, je me suis fait trois groupes : veille techno, perso et boulot. Et maintenant je jongle entre chacun. C'est vraiment très pratique et totalement intuitif. Mais plutot qu'un long discours, je vous conseille d'aller tester par vous même et à mon avis vous allez vite l'adopter.

A télécharger ici

Article plus complet sur Developpez.com

lundi 26 juillet 2010

Au revoir Oslo-Software

C'est fait! Mon ancienne société est déclarée en liquidation judiciaire! Oslo Software n'est plus! Ou en tout cas ne sera plus comme avant.
Je ne peux m'empêcher de penser au gâchi humain et financier. Néanmoins cette expérience m'aura permi de grandir plus vite, ainsi que d'autres d'ailleurs. Elle démontre s'il en était besoin que même une bonne idée si elle n'est pas suivi d'une vision claire et d'une orientation client ne peut faire vivre une société à long terme.
Oslo Software aura été une belle aventure dec 2002-juillet 2010 et avril 2008 me concernant.
Avis aux futurs patrons, une société ne peut vivre de belles paroles et d'un pdg qui prend seul toute les décisions. Une société reste une association de personne cherchant à répondre à une problématique client.
Je souhaite bonne chance aux anciens que j'avais recruté dans leurs futures recherches. Billet d'un ancien directeur un peu déçu mais qui voit l'avenir en bleu clair.

dimanche 18 juillet 2010

Load Balancing Apache 2 ( bis )

Ça y est l'article est prêt! Vous pouvez le consulter à travers mon site à l'url suivante http://www.pere-nono.net/dossiers/index.php

jeudi 15 juillet 2010

Première carte de visite personnelle

Et voici ma carte de visite personnelle
Je l'ai voulu colorée et plus dynamique qu'une carte professionnelle

mercredi 14 juillet 2010

Load Balancing Apache 2

Suite à la formation JBoss plusieurs tests s'offrent à moi mais il y en a un qui me tient plus à cœur : le load balancing. Pourquoi cela? Après tout en tant qu'Architecte logiciel certain considèrent que notre problématique et de savoir que cela existe. La technique restant aux administrateur et architecte SI. Personnellement ce n'est pas ma conception et même si je ne prétend pas avoir les mêmes compétences je souhaite savoir de quoi je parle.

Tout d'abord une petite définition du load balancing : ou répartition de charge est une technique utilisée en informatique pour distribuer un travail entre plusieurs processus, ordinateurs, disques ou autres ressources ( source wikipedia ).

Le load balancing peut se faire de différentes manières :

  • hard : solution permettant de résister à la plus forte charge, elle aura des problèmes en cas de répartition sur un protocole haut niveau à session,
  • soft : permet de facilement gérer des répartition de charge avec respect de session.

Pour mon test, je me suis intéressé uniquement à la partie logiciel avec la configuration la plus courante dans le monde java :

  • deux serveurs JBoss ( ici avec des configurations différentes mais une application commune, habituellement les deux serveurs seront totalement iso )
  • un serveur apache sur lequel j'ai activé le module mod_jk.

Résultat, j'ai pu répartir la charge et vérifier dans la console JMX JBoss que les requêtes étaient bien avec affinité de session. Puis j'ai touché les réglages pour assurer la continuité de service en cas de panne d'un serveur JBoss et son retour dans le SI quand le serveur est relancé.

J'écris actuellement un document autour de ces essais que je publierais soit sur un site officiel, soit sur mon site personnel.

samedi 3 juillet 2010

Hibernate grand mystère

Plusieurs cas nécessitent de ne pas laisser hibernate gérer ce que l'on nomme la partie DDL de la base de données. Autrement dit la création de la structure ou metadonnées. Pourquoi cela? Parce que :

  • on utilise qu'une partie de la structure,
  • on veut ajouter des optimisations particulières,
  • voir que certaines tables n'en sont pas ( utilisation des vues ).

Dans tout ces cas, il faut faire attention car le plus souvent on va aller mettre dans le fichier persistence.xml la ligne suivante :

<property name="hibernate.hbm2ddl.auto" value="" />

Problème, peu de gens en sont conscients mais cela désactive la validation de la base par rapport au mapping déclaré à Hibernate :

  • cohérence des types de champs,
  • cohérence des liaisons bidirectionnelles,
  • test des clés étrangères.

Très concrètement lorsque hibernate se lance, il ne vérifie plus de façon fine les types et va convertir à la volée. Ceci avec certaines fois avec un risque de perte de précision. Imaginons que vous ayez un entier dans votre classe java et un varchar en base de données. Sans validation, pas de soucis il convertit et en base vous aurez votre entier en chaine de caractère. Question : que se passe t'il au niveau de la base si elle doit accueillir 5 caractères et que vous en envoyez 8??? Et bien cela dépendra de la base de données, certaines refuseront l'insertion d'autres vont tronquer le résultat.

Autre problème, sans validation et j'ai pu le vérifier, Hibernate ne crie pas si vous représentez une relation bidirectionnel avec un OneToOne d'un côté et OneToMany de l'autre. Vous en conviendrez cela peut s'avérer très grave. Pourquoi cela? En fait hibernate n'a besoin que d'une des deux relations pour représenter les liens entre les objets ( l'un des liens se fait par mapby or celui ci n'est pas utile à Hibernate pour travailler ).

Maintenant vous en conviendrez mieux vaut un mapping validé dont les erreurs sont lévées au plus tôt et surtout qui ne masque pas par un effet de manche une erreur de mapping. Celle-ci pouvant à tout moment entrainer une erreur plus grave qui invalidera le contenu de la base. Pour cela il vous est donc conseillé d'utiliser la configuration suivante :

<property name="hibernate.hbm2ddl.auto" value="validate" />

Celle ci n'écrase jamais le contenu de la base, ni ne la change. Par contre, la routine de vérification des informations entre le mapping hibernate et la base sera effectuée au chargement d'hibernate et vous indiquera TOUTE les erreurs et pas uniquement les erreurs à l'exécution comme précédemment.

vendredi 2 juillet 2010

Formation Red Hat JB336

Formation JBoss JB336 sur l'administration d'un serveur JBoss finie. Vraiment très intéressante avec un intervenant très bon et très calme. Dommage que nous ayons eu un souci matériel et que j'ai du utiliser VirtualBox pour finir la formation. Ceci m'a posé des soucis en mode cluster. En tout cas que de bonnes choses et d'éclaircissements, il ne reste plus qu'à tester tout cela à la maison avant une certification et surtout une rapide mise en pratique je l'espère.