Ch’ti JUG : Lili et Cassandra

15 décembre 2011

Le 12 décembre s’est tenu dans les locaux de l’IUT A de Lille une session du Ch’ti JUG sur Lili et Cassandra deux outils autour des bases de données NoSql. La présentation de Lili a été faite par Stevens Noel et celle sur Cassandra par Jérémy Sevellec.

Ayant déjà écrit un post sur la session sur le NoSQL, je ne reparlerais pas de Cassandra (bien que la présentation fut plus complète et fort intéréssante), vous pouvez retrouver mon post sur le NoSQL ici :  Ch’ti JUG : NoSQL

La présentation de Lili par Stevens Noel commença tout d’abord par un rappel de ce qu’est le NoSQL, du pourquoi de l’utilisation du NoSQL et de la notion de BigData. Il explique pourquoi on a eu besoin des bases de données NoSQL par la problématique du BigData : le problème du BigData c’est :

  • Quand un serveur BDD relationnel ne suffit plus à hébergé une base de donnée
  • Quand les performances en écritures ne sont plus suffisante
  • Quand les indexes poses des problèmes car ils représentent une optimisation figé (on ne peut changer un index dynamiquement)
  • Quand on a besoin de possibilité de scaling horizontal (plusieurs serveur)

Quand on est dans une ou plusieurs de ces problématique, alors les BDD relationnels standard ne suffisent plus, c’est la problématique du BigData donc les bases de données NoSQL apportent une solution.

Lili est une solution complète basée sur un ensemble de composants open source tournant autour des problématiques NoSQl, vous trouverez des informations détaillée de la solution sur son site : http://www.lilyproject.org/lily/index.html. Les différents composants peuvent tous être utilisé de sur plusieurs nœud (tout l’interêt du NoSQL est d’utiliser plusieurs serveur au lieu d’un unique) Lili se chargeant de l’orchestration.

Le principe de Lili est de fournir un ensemble de composant pour résoudre toutes les problématiques d’accès a des données de type BigData :

  • Un DataStore
  • Un système d’entrepôt de donnée (DWH)
  • Une partie Analitics

Ceci via un ensemble de briques OpenSource mise bout à bout et communiquant ensemble via ZooKeeper :

  • HBase : base de données NoSQL basée sur Hadoop (Utilisation de la distribution Cloudera de HBase)
  • MapReduce : calcul distribué sur les données NoSQL
  • Solr : indexage et requêtage des données NoSQL

Grâce à ça, Lili permet le stockage, l’indexation et la recherche des données en NoSQL de manière scalable et en temps réel!

Quelques explications sur les principales briques utilisés :

  • Hadoop : disque virtuel distribué, fiable et tolérant aux panes : l’Hadoop Distributed File System (HDFS)
  • MapReduce : calculs distribués sur plusieurs serveurs des données stocké dans l’HDFS. Tolérant aux panes (si un noeud tombe, le calculs est repris par un autre). Le calcul est localisé sur le serveur contenant la donnée. Attention MapReduce n’est pas interactif, le calcul est de type batch.
  • HBase : BDD NoSQL interactive au dessus de l’HDFS. On peut simplifier en la présentant en tant que RAM au dessus du Disque Dur qu’est Hadoop.

Lili intègre tout ça et offre par là un système complet et simple d’utilisation :

  • DataModel : les données NoSQL de HBase ne sont que des tableaux de byte, Lili intègre un système de modèle de données haut-niveau typé et permettant de réaliser des liens entre les données (relation sans contrainte, la validité des liens n’étant pas vérifié automatiquement par la BDD)
  • Version : les objets dans Lili peuvent être versionné (avec différente stratégie au niveau du stockage ou non des différentes versions des objets)
  • API : deux API existent, une Java : AVRO et une via REST
  • Indexation : via Solr, un projet lui-même basé sur Apache. Les index doivent être configuré manuellement puis ils sont créé à chaud et mis à jour à chaud à chaque insertion/suppression/mise à jour des données. On peut utiliser plusieurs indexes de manière concurrentiel. Les index sont partitionné automatiquement sur les différents nœuds.
  • Recherche : via Solr
  • Consistence
  • Pas de Master : les nœud se découvrent automatiquement, l’accès à un nœud par l’API Java fait découvrir les autres à l’API.

Une démo fort intéressante a terminé la présentation, la distribution de Lili contient des scripts permettant de lancer toutes les briques nécessaires sur une machine de développement et plein d’exemple simple pour commencer à l’utiliser.

Maintenant, il ne vous reste plus qu’à télécharger la distribution et à vous amuser avec ;)

Carnet de voyage Jordanie – partie 5 – Le désert du Wadi Rum

2 avril 2011

Jour 17 et 18 – Le désert du Wadi Rum

Dernière étape de notre voyage, le désert du Wadi Rum. Au programme, départ tôt de l’hôtel après avoir avaler à toute vitesse notre petit déjeuner, deux taxi qui remontent pour nous déposer aux portes du désert du Wadi Rum, le plus beau désert de Jordanie, connu pour son sable rouge et Lawrence D’Arabie qui y a vécu.

Pendant le trajet les taximen on essayé de nous refourguer un de leur contact pour la visite du désert, mais nous avons réservé avec Ali un voyage sur mesure. Ali nous a été recommandé par des belges qui ont fait trois jours dans le désert à pied avec lui. A peine descendu du taxi, un bédouin nous aborde, bêtement Yves lui demande “Est-tu Ali”, il répond “Oui” … mais comment en être sur! Après quelques hésitations et de nombreuses questions, oui, c’est bien lui, c’est parti pour notre trip dans le désert avec nuit dans un camp de Bédouin.

Nous commençons pas aller chez lui, pour poser les affaires dont nous n’avons pas besoin, prendre un thé, bien, le thé bédouin sucré, noir et à la sauge. Puis son cousin nous prend en charge pour la journée, nous retrouverons Ali le soir dans son camp.

Notre guide est un bédouin tout de blanc habillé (la tenue traditionnelle , une robe blanche avec un turban blanc sur la tête), calme, très gentil, souriant, parlant peu un anglais moyen mais compréhensible. Le tour de plus de 8H (alors que la plupart des tour des autres guides font entre 4 et 6 heures) fut le meilleur moment de tout le voyage!

Nous montons à l’arrière d’un vieux pickup Toyota au pare-brise en miette aménagé avec de vielles banquette et une bâche pour nous protéger du soleil. Ce n’est pas le grand confort mais d’un pittoresque indéniable! Étonnamment, il fait moins froid dans le désert que près de la mer rouge, le vent n’est même pas brûlant! Enfin, on respire! L’intérêt aussi de notre tour en 4×4 est que nous somme les seuls dans le 4×4, nous croisons de nombreux groupes avec plus de 8 personnes à bord de 4×4 identique au notre. A cinq à l’arrière on est pas serré!

Nous commençons par Lawrence Spring, une source d’eau au flanc d’une montagne à près de 30 minutes de grimpette. Très beau panorama, mais une bonne sué pour monter jusque là en plein soleil! Comme tout les tours commencent par là il y a pas mal de monde mais ça permet de se rendre compte d’à quel point ce désert est touristique!

Nous enchaînons sur la maison de Lawrence, un vieux mur en ruine, un panorama pas spécialement intéressant … mais Lawrence est LE personne du désert donc c’est un passage obligé quoi de peu d’intérêt. Les bédouins sont très fier de leur désert (et ils ont raison) et de l’hôte célèbre qu’il a hébergé.

Vint ensuite les inscription nabatéenne, des gravures d’idéogramme dans la roche. Certainement intéressant d’un point de vue archéologique mais … De là, un point de vue magnifique

Jordanie - Wadi Rum -1 Jordanie - Wadi Rum -2

Ensuite, notre guide nous arrête en plein milieu du désert, au bas d’une montagne pour manger. Pas un touriste en vue, pas un bédouin en vue. Nous mangeons nos panier repas et puis c’est le moment obligatoire de la sieste : 2H allongé dans le sable, dans un silence inimaginable, au milieu d’une étendue de sable rouge et de montagnes majestueuse. A un moment, j’entends des oiseaux au loin, j’ouvre les yeux et un rapace passe au dessus de nous, je ne suis pas un expert mais de là où j’étais il ressemblait a un aigle.

Nous décollons vers 15h00, d’après les informations glanée sur le net et au grès ne nos rencontre, on s’attend à être au camp d’ici une heure … mais pas avec Ali, le voyage ne faisait que de commencer pour notre plus grand plaisir!

Notre guide nous dépose ensuite à l’entré d’un canyon pour une ballade d’une heure celons lui, il nous attendra de l’autre coté. Nous voici a la queue leu leu serpentant entre deux falaise impressionnantes aux couleurs allant de l’ocre au rouge. Le chemin est casse gueule par endroit, il faut s’aider de ses deux mains à plus d’une reprise mais pas trop dur. L’aire est frais, la ballade est vraiment sympa. 30 minutes après nous en sortons, le paysage s’ouvrant à nous est magnifique. Notre guide discute avec un autre guide, apparemment il n’est pas pressé de repartir ce qui nous va tout à fait. On profite du paysage et de la tranquillité du désert. Nous commençons déjà à prendre le plis, se presser ne sert à rien, profitons :)

Direction Buda et sa grande arche, au bout de la partie visitable du désert. En effet, une grande partie du désert est en réserve naturelle interdite aux touriste pour protéger la faune. Buda est une grande arche de pierre que nous ne regardons que d’en bas, il faut prêt d’une heure pour y grimper et le temps s’écoule … Ensuite, l’arche d’Uhm Frath, que nous allons gravir (sauf ceux qui ont trop le vertige). dix minutes d’ascension scabreuse, sur une roche très glissantes avec rien pour se retenir puis nous y voici, à la queue leu leu sur une arche de pierre au milieu du désert : la classe internationale! D’en haut, la vue est impressionnante, à déconseiller sérieusement à ceux soufrant de vertige!

Jordanie - Wadi Rum -3 Jordanie - Wadi Rum -4

Il est déjà tard, le soleil va bientôt se coucher, on repart en faisant un détour par la petite arche de pierre, que nous n’avons pas le temps de gravir car on approche de 18H00 l’heure à laquelle on doit se retrouver au camp pour ne pas rater le coucher du soleil. Notre guide nous dépose dans un tout petit camps de bédouin (5 tentes traditionnelle et une tente commune pour prendre les repas), on pose nos affaire et buvons un thé avec Ali en attendant le coucher du soleil. Le camps d’Ali est vraiment sympa, tente traditionnelle (et pas tente canadienne grise comme certain camps), tout petit, caché derrière une dune au bas d’une falaise. On discute avec Ali qui est vraiment super sympa et nous compte plein d’histoire, puis on grimpe sur une petite montagne avoisinante pour admirer le coucher du soleil sur le désert.

Le soleil se couche derrière une chaîne de montagne, au loin, pas âme qui vive dans le désert (bon, à part les bédouins au camps derrière nous :) ), une grande étendue de sable rouge à nos pied, c’est un paysage grandiose. On ressent la force tranquille de la nature et une certaine tristesse s’empare de moi : c’est la fin du voyage, je vais retrouver notre civilisation occidentale qui semble si futile ici, au milieu du désert. Mais la beauté du coucher de soleil partagée avec des gens que j’aime me donne du baume au cœur.

Jordanie - Wadi Rum -5 Jordanie - Wadi Rum -6

De retour au camps, thé bédouins, petits biscuits secs au sésame et discussion avec les bédouins. Ils nous présente leur façon de vivre qu’il ne troquerais pour celle de personne. Ils aiment vivre dans le désert, dormir à la belle étoile (aucun ne dormira dans une tente). Bien qu’ils aient tous une maison dans le village à la sortie du désert, tout les soirs ils se retrouvent au camp pour partager un repas, un thé, des histoires et un ciel étoilée. Ils se demandent comment ont peut vivre en ville sans étoiles ou presque! Et quand on regarde le ciel d’ici, on se pose la même question. On comprend pourquoi ces hommes simple et si accueillant préfèrent la solitude et la rudesse du désert. Le ciel du Wadi Rum est réputé pour sa beauté, ici on le nomme le ciel aux 10000 étoiles et c’est au minimum le nombre d’étoile visible, dont plusieurs filantes! Regarder les étoiles et la deuxième occupation des bédouins après la sieste! Ils sont fière de nous présenter la voix lactée que l’ont voit parfaitement au dessus de nos têtes. Nous passons longtemps, dans le noir, entouré de fourmis géante, à siroter du thé la tête dans les étoiles et discuter. Moment très agréable coupé par un moment tout aussi agréable : le dîner. Nous sommes affamés!

Repas traditionnel : poulet, pommes de terres et petit légume cuit dans la cendre. Délicieux. Nous mangeons assis en tailleur dans la tente commune. Puis nous ressortons admirer les étoiles et continuer nos discussions avec nos amis bédouins. Petits à petit tout le monde va se coucher, les bédouins prennent un tapis ou un matelas et se couchent au pied de la falaise. Une partie du groupe décide de tenter sa chance dans le désert et, malgré le risque de serpent et de scorpions se prépare à dormir à la belle étoile sur la dune qui borde notre camps. Ali leur à dit : pas de problème mais n’allais pas plus loin que la dune … Déjà quand nous avions posé nos affaires dans la tente il nous avais conseillé de bien fermer la porte et la fenêtre … pour qu’aucune bête ne rentre dedans. La blague du moment : ne pas oublier de secouer ses chaussures avant de les mettre pour faire tomber les scorpions!

La nuit fut fraîche mais bonnes. Au levé je vais voir mes deux potes qui dormait sur la dunes, ils ont eu froid, un peut peur (ils ont fait des tours de garde pour surveiller les serpents et les scorpions :) ), ils ont peu dormit mais content de l’avoir fait. Autour d’eux, des traces de serpents, de scolopendres, de scorpions …

Jordanie - Wadi Rum -7 Jordanie - Wadi Rum -8

Retour au village dans le 4×4 d’Ali, retour à Madaba en minivan 7 places, achats de souvenir, nuit à l’hôtel, direction l’aéroport, Paris, Lille.

OpenESB Community Day 2011

24 mars 2011

Le 03/03/2011 s’est déroulé à Lille (exactement à Polytech Lille à Villeneuve d’Ascq) l’OpenESB Community Day. Une journée de conférence autour d’OpenESB centré sur la communauté de développeur et d’utilisateur.

OpenESB est une implémentation Open Source d’un ESB (Enterprise Service Bus) développé par Sun, qui a été abandonné par Oracle lors du rachat de Sun. OpenESB est basé sur JBI (Java Business integration), un standard Java de développement d’ESB régie par une JSR (la 208) et comprenant principalement un ensemble de composant fonctionnant avec Glassfihs et un ensemble de plugin Netbeans. OpenESB fait aujourd’hui l’objet d’une reprise en main par une communauté externe Oracle, et c’est le sujet de cette journée de conférences.

State of the Community – Paul Perez (Pymma)

La communauté à repris le code d’OpenESB et les développements autour de la technologie:

  • OpenESB v2.3 : version en cours de finalisation basée sur Glassfish 2.1.1 et Netbeans 6.9.x. Première version livrée par la communauté (bien qu’elle ai repris les version 2.1 et 2.2 qui sont toujours disponible sur le site)
  • OpenESB v3 : version prévue pour l’année prochaine basée sur Glassfish 3 (projet Fuji) avec l’aide des partenaires de la communauté (Pymma, LogiCoy, Integrated Apps)

Oracle a arrêté tout développement sur OpenESB, a arrêté le support sur Glassfish ESB (la version commerciale d’OpenESB que vendrait Sun) et a arrêté tout développement sur Java CAPS (version “enterprise” historique de l’ESB de Sun racheté à l’entreprise SeeBeyond et comprenant des composants supplémentaire par rapport à OpenESB) et ne vend plus de licence Java CAPS. De plus Oracle a démantelé les équipes ESB de Sun dans le but de n’offrir plus qu’Oracle ESB (l’ESB propriétaire d’Oracle basé sur WebLogic).

Pour les projets ayant démarré avec Java CAPS, Glassfish ESB ou OpenESB, OpenESB est maintenant la seule solution. Pour ceux qui recherchent une solution ESB ouverte, performante, simple et outillée, OpenESB est une bonne solution maintenant qu’une nouvelle communauté se créé.

La communauté OpenESB:

  • 600 membres
  • Des services tournés vers les entreprises : support, training, …
  • Une infrastructure de développement
  • Des partenaires : LogiCoy (USA), Integrated Apps (Russie), Pymma (Royaume Uni)

Infrastructure – Nicolas Heron (Adeo)

Une infrastructure a été mise en place pour la communauté OpenESB :

La plateforme a permis de faire un fork d’OpenESB et d’en reprendre le développement par la communauté. La plateforme hébergée chez OVH est maintenant prête et va permettre de relancer la communauté.

Monitoring (Youssef Yekhlef – Cap gemini)

Présentation d’une solution de monitoring d’une plateforme OpenESB à l’aide de Nagios et d’OpsView. Le but étant de valider si les composants du serveur (les Service Engine) et les composants applicatifs (les Service Assemblies) sont démarré.

Pour cela :

  • Utilisation d’un agent Nagios dans le domaine Glassfish : Jmx4Perl
  • Définition de check actif dans Nagios appelant l’Agent
  • Utilisation de l’API JMX de management d’OpenESB qui permet de gérer tout les aspects de l’ESB (la console Glassfish et l’asadmin se basent dessus) : administration,  configuration, installation, notification, alerte, …
  • Centralisation des checks Nagios dans OpsView qui est une console de supervision de Nagios OpenSource

Une démo a présenté l’implémentation et le résultat.

Services Oriented Developement Process – Bruno Sinkovic (Pymma)

Problématique : comment développer efficacement des services de types SOA.

Tout d’abord, une petite définition de ce qu’est un service :

service = Piece of business Process

Un service a donc une notion métier. La définition d’un service se fait au niveau fonctionnel et pas technique.

Pymma a mis au point un processus de développement SOA léger en s’inspirant de TOGAF (The Open Group Architecture Framework). Le principe de base de TOGAF est d’avoir une méthodologie centré sur les requirements et conduite par des évènements . La notion centrale est un repository de requirements, les évènement entrant dans le répository et créant un ensemble de TODOs qui eux même génèrent des évènement qui rentrent de nouveau dans le repository.

Cette méthodologie est sensée permettre de rester plus proche des requirements du métier.

Transaction, Delivery, Concistency, Error management in BPEL – Paul Perez (Pymma)

Je n’ai pas noté le nom exacte de cette conférence alors j’ai listé les notions abordées.

BPEL Transaction avec XA

Nativement, le langage BPEL ne support pas les transactions de type XA. Mais OpenESB a ajouter le support des transaction comme fonctionnalité additionnelle a son moteur BPEL.

L’interêt de XA réside dans le fait que c’est un standard de transaction supporté par de nombreuses technologies (infrastructure, SGBD, J2EE) qui permet donc de créer une transactions entre plusieurs systèmes.

XA est basée sur les principes suivants:

  • délivrance garantie d’un et d’un seul message
  • nécessite UNIFORMITY et PROXIMITY : tout les systèmes impactée par la transaction doivent supporter XA
  • nécessite de la consistance et de la disponibilité (selon le Théorème CAP, il ne peut donc avoir de résistance au morcellement)

Un ensemble de notion SOA et ESB on été présentée:

  • Integration Process : processus d’intégration : processus court, impliquant peut de partenaires, tâches automatiques.
  • Business Process : processus long, impliquant de nombreux partenaire, tâches automatiques et manuelles.
  • Acknowledge (ack) en BPEL : si le BPEL n’est pas atomique, l’acknoledge est envoyé juste après le receive. S’il est atomic, l’acknowloedge est envoyé à la fin du BPEL (donc, en cas de problème, un rollback est fait).
  • Side effect : un composant a modifié sont contexte et ne peut donc pas faire de rollback cohérent en cas d’exception.
  • Compensation : action de supprimer le side effect d’un composant.

Pour aller plus loin, consultez les livres blanc disponibles sur le site de Pymma : http://www.pymma.com/eng/Open-ESB-JCAPS-Papers

Training

Un ensemble de training fourni par Pymma on été proposé (vous pouvez les retrouver ici : http://www.pymma.com/eng/Training) à la réalisation avec l’aide des experts venus assisté à la journée. Ce fut principalement l’occasion de discuter avec les intervenants et les participants plus que réellement réaliser les exercices proposés.

Carnet de voyage Jordanie – partie 4 – Aqaba et la mer rouge

6 février 2011

Jour 12 à 16 Aqaba

Après 2H30 de voiture, nous voici arrivé au Bedouin Village Garden à Aqaba, un jolie hôtel en face de la mer rouge (de l’autre coté de la route) fait de bungalow climatisé, disséminé dans un jardin tropical remplit de terrasse et au milieu duquel trône une petite piscine.

L’hôtel se situe à 12Km d’Aqaba (au Sud si je me souvient bien) en face d’une plage publique sur la zone réservé à la plongé. Le roi de Jordanie est fan de plongé et protège et aménage des zones de plongé sur le littoral de la mer rouge.

En sortant de la voiture, la chaleur nous terrasse littéralement, le soleil est brulant, accablant, et le vent est chaud! J’ai rarement connu une chaleur comme celle là, même l’air du Sénégal ou du sud de Madagascar été plus respirable. Il doit faire 45°C à l’ombre et, chose que je n’ai jamais vécu auparavant, le vent est aussi, si ce n’est plus, chaud que l’air ambiant. Le vent souffle de l’intérieur des terres, il vient donc du désert, et est à près de 45°C! Je n’ai jamais eu aussi chaud qu’ici! Le fait que je sois encore en partie déshydraté ne m’a certainement pas aidé …

Je ne vais pas vous faire un récit jour pour jour des 5 jours que nous passâment là bas car ils se ressemblèrent tous un peu enter terrasse, piscine, plage et snorkeling sous un soleil de fou. Je vais donc raconter les principales attraction sans les ordonner d’un point de vue chronologique.

Une journée classique à Aqaba:

  • Levé tôt, petit déjeuné en terrasse, il ne fait pas encore trop chaud
  • Un petit tour à la piscine, entre baignade et transat
  • A 10h00, la chaleur devient insupportable
  • Entre 10h00 et 11h00, direction la plage (on n’a qu’à traverser la rue) pour un peu de snorkeling (nage avec masque et tuba pour voir les beauté de la mer rouge)
  • Midi, on mange à notre hôtel ou à celui d’en face, pour changer un peu le menu.
  • Sieste jusqu’à 16h00, la chaleur étant réellement invivable (bungalow climatisé avec télé)
  • Vers 16 – 17h on va à la plage pour refaire du snorkeling ou on se bouge à Aqaba
  • Le soir, on mange (Aqaba, notre hôtel, celui d’en face) puis un peut de piscine pour se rafraichir quelques tour de carte sur une terrasse et on se couche relativement tôt (23-24H)

Ce qui est fou, c’est que même la nuit la température ne baisse quasiment pas. Dans les bungalow, on règle la température de la clim à 31°C, la température la plus haute que l’on puisse mettre sinon on ne supporte pas le froid par comparaison avec la chaleur du dehors. Sans clim, on ne tient pas 10mn! Dire qu’en France à 30°C je ne support déjà plus la température.

Le Vendredi, c’est le jour de repos des Jordaniens, ils se retrouvent tous, en famille, sur la plage, avec femmes et enfants, tout le monde se baigne ou au moins se mouille les pieds. On voit de tout : jeune, vieux, voilée, pas voilée, tenues traditionnel, jean, … Les familles amènent de grande natte, des fauteuils pour les parents, un petit barbecue pour faire chauffer l’eau pour le thé et se préparer à manger et passe la journée là. Certain plante même la tente dans des espaces réservé pour ça. La plage est noir de monde. Ça fait plaisir de voir que les gens du pays profitent de la beauté de la mer (au Sénégal par exemple, uniquement les touristes profitent des plages) … même si il ne la respectent pas vraiment à la vue de tout les déchets qu’ils y laissent.

Snorkeling : La location de matériel à l’hotel est hors de prix (8 dinar la journée dans mes souvenirs), encore heureux que l’on est venu avec une partie du matos ce qui fait que nous avons du que rarement louer du matos. Quasiment tout les jours, et parfois deux fois par jours, nous partions faire du snorkeling : tubas, masque, palme et à nous la découverte des fond marins splendide de la mer rouge. Juste en face de l’hôtel, de nombreux spot de snorkeling, les plus proches du rivages ne sont pas les plus intéressants, les jordaniens ne sachant pas très bien nager y vont de préférence, et hélas, il font beaucoup moins attention que nous au fond marin et casse énormément de coraux! Mais un peu plus au large (10-15m du bord) on peut découvrir de magnifique fond marin. Les coraux sont magnifique, et il y a plein de poisson (même si je trouve moins qu’il y en a moins qu’à Bali). Les plus remarquable de magnifique Puffer Fish et de surprenant Lyon Fish à profusion (surtout à la tombée de la nuit). Le roi de Jordanie a fait couler un char à 6m de profondeur et un bateau de 40m de long entre 12 et 25m de profondeur, c’est assez impressionnant. Personnellement, je ne me suis pas lassé d’admirer ces fond magnifique et cette diversité de poissons et de coraux. Des amis on même vu une tortue de mer en snorkeling! Certe, je trouvais les fond plus beau et moins endommagé à Bali mais il les fond de la mer rouges valent quand même le détour.

Plongée : Hélas, ayant souffert de déshydratation et étant encore sous antibiotiques à large spectres (au moins au début du séjour à Aqaba), pas de plongée pour moi. D’autres dans le groupe en on fait. Il y a de nombreux clubs de plongée près du Bedouin Garden Village, la plus part sont affiliés Padi. Un conseil : en visiter quelques un et vous faire une idée. Ils proposent tous des initiations ou des plongée pour tout les niveaux. Il y a de nombreux sites facile et plein de trucs super intéressant (entre autre les sites accessible en snorkeling décrit plus haut.)

Aqaba : Un bus régulier passe devant l’hôtel et nous amène à Aqaba pour presque rien. Attention, il y a ensuite une dizaine de minutes pour arriver dans le centre, à déconseillé à l’heure de midi à cause de la chaleur! Aqaba n’est pas une ville très belle mais on y trouve de nombreux restaurant et plein de magasin. le shopping y est intéressant car bien que très touristique Aqaba est dans une zone économique spéciale détaxée. C’est assez sympa de faire le tour des petites boutiques à la nuit tombée et les gens sont globalement sympa.

Après Aqaba, la dernière étape de notre voyage avant de remonter pour prendre l’avion : le désert du Wadi Rum.

Carnet de voyage Jordanie – partie 3 – Petra

28 janvier 2011

Jour 9 et 10 – La polyclinique de Petra

Nous voici enfin à Petra, la ville rose. Un des plus beau site de cette partie du monde, classée au patrimoine mondiale de l’UNESCO.

Nous déscendons au Valentine’s Hostel, ce n’été pas l’hôtel que nous voulions (il été complet), mais un hôtel conseillé, négocié et réservé par Azim du Dana Tower Hostel. Petra est cher, et cet hôtel l’est pour ce qu’il est. Nous prenons une chambre pour 5 en demi-pension (petit-dej + repas du soir buffet assez sympa). La chambre est plutôt bof, elle fait la longueur de 4 lit mis cote à cite qui sont collé l’au aux autre et un petit lit est mis dans l’autre sens pour faire la cinquième place. L’hôtel est bruyant et la patronne … parfois sympa et parfois pas.

Mon séjour à Petra fut l’occasion d’une expérience unique : un séjour de deux jours dans un hôpital jordanien (en hôpital de jour, uniquement). Dès mon arrivé j’appèle un médecin qui m’emmène à la Polyclinique de Petra où je fut bien accueillit (on voit qu’ils prennent soin des touristes) dans une clinique sombre, à la propreté douteuse … mais tout est à usage unique et je n’en suis pas mort. Perfusion de ré-hydratation, deux antibiotiques à large spectre en perfusion deux fois par jours pendant deux jours, puis 10 jours de deux antibiotiques à large spectre en cachet … je vous passe les détails. Une méchante bactérie squatte mon organisme.

Pendant ce temps, le reste du groupe passe deux jours dans Petra. Le premier il firent la ballade que je fit le dernier jour. Et le deuxième jour ils allèrent au Monastère (Ed Deir), le deuxième plus beau bâtiment de Petra (ou alors le premier, je ne l’ai pas vu de mes yeux mais les photos sont impressionnantes). Il faut grimper 800 marches en plein soleil pour y accéder, mais l’effort est bien récompensé. Le Monastère est un bâtiment à l’architecture proche du Khazneh mais en plus imposant, et sans les dégâts fait par les bédouins. Il n’a été découvert que récemment et daterais du 1er siècle et aurait été un refuge pour les premiers chrétien d’où son nom.

Voici deux photos prises par eux :

Jour 11 – Le site de Petra

Le troisième jour, direction Petra. Je suis très fatigué (la nuit précédente a été quasiment blanche pour cause de ronflement intempestif et de vent qui fait claquer les fenêtres! Quand la chance nous abandonne …) mais je me bouge quand même pour visiter Petra, et ça valais le coup de se forcer! En plus j’ai put visiter Petra dans des conditions exceptionnelle : sous la pluie alors qu’il ne pleut jamais là ba!

Après l’entrée sur le site, un chemin sur lequel vont à toute vitesse des calèches et au bord duquel on commence à découvrir quelques roches sculptée et quelques petite façades troglodyte défraichie. Dès l’entré, le site est étonnant et envoutant. Puis apparais une profonde forge aux couleur éclatant dans les tons roses avec des veinures jaune et parfois tirant vers le bleu. Le Siq, le seul point d’accès à Petra, magnifique, il faut déjà à lui seul le détour. De chaque coté des falaises de plus de 50m de haut et nous serpentant dans un boyaux faisant parfois à peine plus d’un mètre de large et où le vent s’engouffre et soulève un sable rose qui nous gifle le visage. C’est ce qui aurais protégé le site : invisible et difficile d’accès pour ceux qui ne connaissent pas. Avant de nombreux chemin maintenant muré faisaient se perde l’explorateur. Le Siq explose de couleurs allant de l’ocre aux rouge dans une beauté minérale à vous couper le souffle.

Après plus d’un km, au détour d’un tournant, le voici qui apparait, le plus connus des bâtiments de Petra, le Khazneh, le fameux temple d’Indiana Jones, creusé à même la roche. Une splendeur. Il est placé en face de la sortie du Siq, sur une petite place qui permet à peine d’avoir assez de recule pour le contempler en entier. L’effet est saisissant. Creusé à même la roche un bâtiment de cette taille à cette époque a dut être une tâche titanesque. Il est plutôt bien conservé à part que les Bédouin qui gardaient le lieu ont tiré dessus pour cassé la grande urne qui trône tout en haut, réputée pour contenir un trésor (Khazneh veut dire trésor en arabe) alors … qu’elle est juste de pierre pleine. Un poète à dit : “Est-ce que le légendaire trésor du Khazneh n’est pas le Khazneh lui-même”…

Nous continuons ensuite vers le ville basses, à quelques centaines de mètres du Khazneh. C’est une véritable ville troglodytes, avec des centaines de façades creusée à même la roche. L’ensemble est étonnant. Le site de Petra contient en tout 900 bâtiment  creusé dans la roche …enfin ce qui en as été découvert. On estimes à prêt de 3000 les bâtiments de Petra donc il reste encore de nombreuses beauté à découvrir … et peut être certain encore de la beauté du Khazneh! Nous nous arrêtons dans une tente de bédouins pour boire un thé. Le thé traditionnel des bédouins est un thé noir, très sucré, infusé avec de la sauge. Je n’imaginais pas qu’on pouvais faire quelque chose d’aussi bon avec de la sauge :) . Au bout de 10 minutes, il se met à pleuvoir, ici!, en plein mois de septembre!, fait rarissime! Les bédouins sont content … mais pas les touristes. Personnellement j’aime : il fait moins chaud, ça lave la roche et il y a plus grand monde sur le site que des avantage … même si les photos avec un ciel bleu ça fait toujours mieux au moins les miennes sont originale :)

On se balla de encore un peu sur le site, un peut plus loin, à notre droite, se trouve les tombeaux royaux, un ensemble de façades magnifique, très riches en décoration, dans une pierre très rouges. Certains sont assez abimé mais je trouve l’ensemble vraiment super. Après on continue un peut pour avoir une vue d’ensemble sur le site et les montagnes avoisinantes. Le paysage lui-même est somptueux. Je ne regrette pas d’avoir bougé ma carcasse endolorie jusque là mais le retour jusqu’au Khazneh fut un enfer, et là on pris un calèches qui nous emmena à l’entrée. Les chevaux font de la peine, c’est bien parce que je ne peut plus marcher!

Pendant ce temps, le reste du groupe (sauf un blessé) on fait tout une boucle dans les montages pour entre autre aller voir le Khazneh en contre plongé. Au passages ils ont vu de nombreux sites de fouille dont certain découvrant des bâtiments imposant … peut être un rival au Khazneh.

Demain, nous irons à la mer rouge pour que je puisse récupérer tranquillement avant d’aller visiter le désert du Wadi Rum.

Prochain épisode : Aqaba et la mer rouge.

Carnet de voyage Jordanie – partie 2 – la descente vers le sud

17 janvier 2011

Suite notre voyage, la descente vers le Sud. Je prévient tout de suite le lecteur, à partir de là, j’étais vraiment malade, je vais donc moins rentrer dans les détails …

Jour 5 – Day off

Le 5e jour, je ne bouge pas de l’hôtel, trop malade de ce que je prend alors pour une simple tourista. Pendant ce temps là, le reste du groupe va voir la mer morte en passant avant cela par le Mont Nebo.

Le Mont Nebo offre un point de vue sur Israël et la vallée du Jourdain … théoriquement, mais apparemment ils n’en on vu que la brume, ce qui as l’air d’être assez classique ici.

Après cela ils allèrent voire la mer morte, depuis un hôtel. Entrée de l’hôtel environ 12€ pour avoir accès à une plage privée, des douches (obligatoire à cause du sel) et une piscine (obligatoire à cause de la chaleur). Ils y restèrent la journée entre mer et piscine avec bain de boue et cocktail pendant que je soufrais en silence, seul,  dans l’hôtel …

La mer morte est si salée (environ 30% de sel, soit 10x la salinité d’une mer classique) qu’on ne peut y rester longtemps (10 minutes max) et qu’on ne peut réellement nager car on flotte (voir les photos classique de gens lisant leur journal dans la mer morte). De plus à la moindre égratignure, impossible de s’y plonger. Il parait même que le sel s’insinue et pique dans tout les trous du corps … je vous laisse imaginer!

Certain on même tenté la boue de la mer morte, 3€ le sceau, on s’en met sur tout le corps, on attend normalement 10 minutes puis on se rince dans la mer! Idéale pour tout les problèmes de peau.

Jour 6 – Um El Rasas et Kerak

Je me sens un peu mieux aujourd’hui, nous prenons la direction de Kerak pour aller visiter la citadelle des croisés. La route est magnifique, sinuant entre des vallées que l’on nomme Wadi, au fond desquelles coules des rivières. Le paysage est minérale, un déluge de roche allant de l’ocre au rouge en passant par des milliers de teintes. Nous nous arrêtons plusieurs fois pour admirer le paysage et bien sur prendre de nombreuses photos.

Sur la route, un panneau indique Um El Rasas, inscrit au patrimoine mondiale de l’Unesco, nous décidons de faire un détour pour aller visiter le site. Le site a un visitor center tout neuf, des toilettes hyper classes et du personnel mais il reste gratuit car les fouilles ne sont pas encore finie. En gros le site est fermé mais visitable! Nous partons visiter le site guidé par un policier qui nous mènera vers un hangar contenant de magnifique mosaïque (enfin, comme je vous l’ai déjà dit, je ne suis pas super fan des mosaïque). Le site n’est pas encore aménagé, il n’y a aucun panneau et peu de sentier marqué, ce n’est donc pas évident de savoir ce qu’il faut voir.

Les mosaïques du site sont très bien conservées et plus belle que celles de Madaba. Le reste du site est un ensemble de palais et d’églises dont il ne reste plus que des murs et quelques arches, de nombreuses mosaïques sont cachée par des bâches en plastique car pas encore restaurée. Le site est totalement désert, nous sommes les seuls à le visiter, ça lui donne un air de ville fantômes incas avec ses imposants mur de larges pierres anthracite. En tout cas, ça vaut le détour de se balader seul dans un site aussi grandiose.

Nous reprenons la route vers Kerak, c’est une ville moche et peut accueillante, où les touristes ne viennent que pour la citadelle des croisés. Nous mangeons dans un resto cher et pas super, visitons l’hôtel d’à coté conseillé par le routard qui s’avérera miteux surtout pour le prix (25 JOD alors que le routard en annonçais moins de 15)! Enfin, y voici dans la citadelle des croisés. Perché en haut d’une montagne, 3 niveau au dessous de la terre, deux au dessus, c’est une citadelle imposante mais en grande partie en ruines.Ses murs épais font 50m de hauteur dans le but d’impressionné et ça a dut marcher!

On se balade dans une suite de sous-terrains et de pièces. Le site est assez grand, on grimpes sur des ruines, descend dans de vrai labyrinthe de sous sols et prend beaucoup de photos. On y reste plus d’une heure, c’est assez sympa.

Après ça, nous cherchons un hôtel, la ville étant si peut sympathique, nous choisissons de ne pas rester dans le centre. Après avoir chercher pas mal de temps nous trouvons en dehors de la ville, dans un quartier tranquille et sympa un hôtel qui nous loue une suite de deux chambres avec salon et cuisine pour 44 JOD. Après nous être installé nous décidons d’aller boire un verre dans un café. Ici aucun café pour touriste! A chaque café il n’y a que des jordaniens en terrasse buvant un jus de fruit en fumant une shisha et jouant au carte, dès, échec. Traditionnel! Nous choisissons un café et commandons de délicieux cocktail de jus de fruit avec un shisha. Nous faisons sensation car il y a une femme dans notre groupe, seul femme de tout le café, et qu’en plus elle fume la shisha! Mais le patron du café nous accueil avec un air bienveillant, nous sommes les seuls touristes du quartier apparemment! Nous faisons l’attraction et tout le monde est super sympa avec nous! Nous mangeons un shawarma à la terrasse du meilleur resto du coin (à ce qu’il parait), un petit restaurant de grillade sans prétention. Me sentant mieux j’abandonne les médicaments.

De retour dans notre suite, le classique Belote-Arak avant d’aller nous coucher.

Jour 7 – Retour vers la mer morte
Lire le reste de cet article »

Carnet de voyage Jordanie – partie 1 – le nord

6 janvier 2011

Jour 1 : L’arrivé à Madaba

Une série d’article sur la Jordanie, pays magnifique que j’ai eu la chance de traverser lors de mes dernière vacances du 12/09/2010 au 02/10/2010.

Tout débute … comme d’habitude par une nuit quasiment blanche avant de prendre l’avion. Train, attente, embarquement … 4h30 après nous voici en Jordanie. Un vol de qualité avec Royal Jordanian.

Arrivé à Amman, notre loueur de voiture nous attend avec notre véhicule : un minibus Hyundai de 8 places qui ma fois à l’aire assez neuf (loué ici : http://www.rentareliablecar.com). Nous sommes 5, et ce minibus nous permettra de visiter le nord de la Jordanie et de faire une partie du voyage vers le sud assez facilement. Sans perdre de temps, nous prenons la route pour Madaba où nous avons avons loué un hôtel. Nous avons choisit de ne pas dormir à Amman, la capitale mais à Madaba une ville plus petite à 30 de la capitale beaucoup plus tranquille qui sera notre base pour visiter le nord.

Sur la route, nous voyons de tout : des belles maisons, des tentes, des bidonvilles, des grosses cylindré, des petites mobylettes … Arrivée à Madaba nous demandons notre route … 50 mètres à coté de l’hôtel :)

Nous séjournons au Mariam Hotel, assez sympa, presque classe, avec une jolie piscine … mais à l’ombre toute la journée et comme les nuits sont froide dans le Nord elle été toujours froide. Nous mangeons rapidement un shawarma en buvant une Amstel faite en Jordanie! Nous finissons la soirée à l’Arak, la boisson nationale (après le thé), un alcool anisé à 50° qui se boit dilué dans l’eau. Nous apprendront vite que bien que musulman pratiquant, beaucoup de Jordanien aiment boire un petit verre d’Arak ou de Whisky jordanien le soir.

Jour 2 : Madaba et Amman

Réveillé tôt par des bruits dans le couloir, c’est un hôtel de voyageur! Un bon petit dej dans le restaurant panoramique avec vue à 360° sur Madaba et c’est parti! Nous décidons de commencer tout naturellement par la visite de Madaba … et la recherche d’une carte routière ce qui ne fut pas chose facile. A 10h00 nous commençons à visiter. Madaba n’est pas grand, nous en ferons le tour en moins de 3h!

Nous commençons par le parc archéologique qui présente de nombreuses mosaïque, la spécialité de Madaba qui as encore une école de spécialiste en mosaïque, et qui contient de nombreuses mosaïques dont les plus anciennes datent de l’an 600 et paraient le sols des églises catholique de Madaba. Dans le parc archéologique, à part des mosaïques, quelques vielles pierres …

Ensuite, direction l’église St George, une petite église orthodoxe qui contient la mosaïque de la Palestine, très belle mosaïque qui représente une carte de la Palestine avec dessiné ses principales villes. Ça vaut le coup d’œil. Au mur, des petites mosaïques représentant, bien sur, St George terrassant le dragon.

Pour finir, nous traversons tout le centre de Madaba pour aller à l’église des Apôtres, un grand hangar contenant les ruines de l’église et surtout une mosaïque d’une taille imposante qui couvrait son sol. Globalement les sites pris un à un ne sont pas d’un grand intérêt à part pour les amateurs de mosaïques (que je ne suis pas), Madaba étant LA ville de la mosaïques, mais c’est une petite ville tranquille et agréable qui nous as permis de nous familiariser avec la Jordanie, son centre est vivant sans être stressant et ses rues typiques agréables à parcourir. Les Jordaniens sont sympathiques (à part quelques regards agressifs de Jordanienne pour la seule fille du groupe).

Après un petit sandwich et un cocktail de fruit dans un petit resto du centre ville, nous voici parti pour aller visiter Amman, la capitale de la Jordanie.

Comme toute capitale, elle est grande, populeuse, pollué et bruyante. Le trafic est dingue, apparemment, ici, la technique c’est “le premier qui klaxonne à raison”. Je m’explique : tu veut doubler ? tu klaxonne puis tu double, tu veut couper la route à quelqu’un, tu klaxonne puis t’y va, tu peut passer au stop alors qu’il y a plein de monde dans le carrefour, tu klaxonne puis t’y va! A la fin, on klaxonnais non stop : deux devant : un qui klaxonne l’autre qui tient le volant, c’est la meilleur méthode pour conduire à Amman :)

Amman ressemble à l’idée qu’on se fait des villes du proche orient : des maisons carré, ocre, serré les unes les autres à flanc de colline à perte de vue.

Au bout de 30 minutes de bouchons klaxonnant, nous voici arrivé au fin fond de la ville d’Amman : downtown, le vieux quartier d’Amman, au bas des 8 collines d’Amman pour visiter le théâtre romain.

Le théâtre romain de Amman est vraiment impressionnant : tout en pierre, restauré avec soin à l’identique (ce qui sera une constante en Jordanie), 6000 places assise sur 30 à 40 rangée normalement au centre d’un forum romain mais qui n’a pas été conservé (ou alors, caché sous les chantiers qui bordent le théâtre). d’en haut, une vue impressionnantes sur Amman et la citadelle vers laquelle nous nous dirigeons ensuite.

Nous empruntons une série d’escalier totalisant plus de 300 marches serpentant entre les maisons de la vielle ville pour arriver à la citadelle. Avec la chaleur ambiante c’est pas facile! La citadelle est un ensemble de bâtiments romains puis post-romains (temples, mosquée, observatoire, …) en ruine dans un grand jardin entouré par d’épaisse muraille. Au centre un musé qui retrace l’histoire de la région de -100000 à nos jours. A ne pas rater, dans le musée, des rouleaux de cuivre des manuscrit de la mer morte, les fameux manuscrit trouvé à Qunram près de là!

Le retour à Madaba fut laborieux : 1H30 de route pas tant à cause des bouchons mais surtout car nous tournons longtemps avant de trouver la bonne sortie! Pas facile de se repérer dans Amman, mais bon nous ne comptons pas y retourner.

Jour 3 :  les châteaux du désert

Lire le reste de cet article »

Ch’ti JUG : NoSQL

20 décembre 2010

Le 2 décembre s’est tenu dans les locaux de l’IUT A de Lille une session du Ch’ti JUG sur les technologie NoSQL animé par Olivier Mallassi.

L’intervenant a commencé la conférence par un bref historique de la manière dont les données on été stockées dans le monde de l’informatique:

  • Au commencement été les fichiers plats
  • Puis vinrent les fichiers plats indexé (gain de performance grâce à l’index) encore couramment utilisés (et surtout en COBOL).
  • Ensuite apparurent les base de données relationnelle (les SGBDR – Système de Gestion de Base de Données Relationnel) et le langage SQL, nous étions dans les année 1970!

Pendant prêt de 40 ans, les SGBDR régnèrent en maître sur les technologies de stockage de données … puis au détour des années 2000 un outsider est apparut, poussé par les besoins spécifique des géants du web.

En effet, de par l’accroissement de la fréquentation du web, certaines société telle que Google ou Amazon ont eu a traiter un nombre de données tellement important avec une nécessité de sécurisation des données tellement grande (leur business model étant basé dessus) que les SGBDR montrèrent leur limite et ces société commencèrent à développer des bases de données non relationnelle : le NoSQL été né.

Revenons sur les contraintes de ces géants du web:

  • Performance malgré tout (même en cas où une partie des serveurs tombe)
  • Disponibilité > 99,99%
  • Résilience (capacité à supporter les pannes)
  • Scallabilité horizontale

Pour pallier à ces contraintes, chaque société développa ses technologies. Aujourd’hui on peut les ranger en 4 catégories distinctes.

Les bases de données orientées colonne

Références : BigTable (Google), HBase (Apache) et Cassandra (Facebook)

Principales fonctionnalités:

  • Stockage des données en colonne et non en lignes
  • 1 ligne = une HashMap et 1 valeur = une HashMap, on manipule donc des HashMap de HashMap via l’API.
  • Données stockée en tableau de byte : donnée non structurée
  • Implémentation de l’algorithme MapReduce au plus proche des données (Job directement dans la base de données) pour le requêtage de données
  • Existence de DSL (Domain Specific Language) au dessus de MapReduce pour en simplifier l’utilisation telle que Hive et Pig permettant l’utilisation de JDBC et d’une sémantique plus proche du SQL.

Les bases de données Key/Value

Référence : Dynamo (Amazon) et Project Voldemor (LinkedIn)

Principales fonctionnalités:

  • Données stockée sous forme de key/value dans des HashMap : on manipule donc directement des HashMap via l’API
  • But : accepter une demande quelle que soit l’état de la base
  • Modèle distribué, élastique, ajout d’un serveur dans l’infrastructure à la demande
  • Modèle clé/valeur distribué sur l’ensemble des serveurs : clé = localisation
  • Scalabilité horizontale
  • Tolérance à la panne grâce à une synchronisation asynchrone et synchrone des différents serveurs : mode Master/Master et mise à jour concurrente (transaction non ACID)
    • gossip protocol : les serveurs se parlent entre eux au sujet de leur disponibilité
    • hinted handoff : capacité à servir la requête d’un autre serveur si celui-ci ne répond pas
  • Read Repair : modèle “eventually concistent“, ce qui veut dire consistant à la fin : plusieurs versions différentes sur les différent serveur selon leur degré de synchronisation, mais la réponse est toujours consistante.

Les bases de données orientées document

Référence: MongoDB

Principales fonctionnalités:

  • Modèle de donnée en Key/Valeur dont la valeur est une donnée structurée et indexable
  • Requêtage possible à l’intérieur de la valeur (dans sa structure)

Les bases de données Graph

Référence: neo4j

Principales fonctionnalités:

  • Données représentée en graphe
  • Implémentation d’un algorithme de parcours de graphe pour le requêtage
  • Principales notions : node, relation, property

Autres types de bases de données NoSQL

Base de données XML, Base de données Objet, Base de données géographique, …

Force et faiblesse du NoSQL

Attention, dans certain cas les forces et faiblesses peuvent être vue comme des faiblesse ou des forces. En effet par exemple le fait que la modélisation soi faible est un avantage quand on ne veut pas s’embarrasser d’une modélisation complexe.

Ces forces et faiblesses s’appliquent principalement aux base de type orientée colonnes, orientée document ou Key/Value.

Forces Faiblesses
Performance
Stockage de gros volume
Disponibilité et tolérance aux pannes
Élasticité du stockage
Souplesse de modélisation : pas de structure, on stocke ce que l’on veut.
Transaction non ACID
Faible modélisation
Pas de contrainte d’intégrité
Changement d’outillage d’administration (le plus souvent, bases de données en Java => JMX)
Peu de contraintes d’accès (GRANT)
Pas de standard
Difficile d’intégrer à un Système d’Information existant

Pour autant, il ne faut pas perdre à l’esprit que les bases de données NoSQL ne veulent pas remplacer les bases de données relationnelle mais bien offrir une alternative permettant de répondre à des besoins que n’adressent pas les SGBDR classique. C’est une réelle innovation qui nous oblige à penser différemment la notion de stockage de base de données et vient bouleverser 40 années de SGBDR.

Initiative citoyenne contre le sur emballage

2 juin 2010

Les citoyen de l’Union Européenne peuvent maintenant faire des propositions de loi à la Commission Européenne si elle est porté par un million de citoyen.

Un français a lancé une initiative intéressante consistant à une pétition contre le sur-emballage (ajout d’emballage ne servant à rien), le jour où elle atteindra un million de signature elle sera communiqué à la Commission Européenne qui sera alors obligé de l’étudier.

Pour la signer, c’est ici: http://www.over-packaging.eu/?PHPSESSID=t0r3ppvfu768nemnuoh8p7ahb3

Ch’ti Jug: GIT et Mockito

26 mai 2010

Mardi 20 avril s’est déroulé une session du Ch’ti JUG sur GIT et Mockito sponsorisé par ProxiAD : GIT et Mockito avec ProxiAD

Pour ceux qui ne savent pas ce qu’est le Ch’ti Jug ou ce qu’est un Jug, voir l’introduction de mon article sur la première session à laquelle j’ai participé:  Ch’ti Jug: les technologies Google.

Cette session été animée par David Gageot directeur technique chez Algodeal.

GIT

Les principaux atouts de GIT:

  • Rapide : il fonctionne en locale.
  • Déconnecté : commit local, repository local intégrale, possibilité de synchroniser un repository local avec un repository  distant
  • Ouvert
  • Flexible
  • Robuste
  • Simple : utilisation simple par des lignes de commandes
  • Complet et Complet : possibilité étendue.
  • Grande communauté d’utilisateur : github

De nombreux outils sont compris dans GIT qui permettent de faciliter grandement sont utilisation et qui peuvent faire gagner énormément de temps. Le présentateur nous a fait une démonstration de l’outil git-bisect qui a lui-seul suffit à vouloir utiliser GIT.

Imaginez que vous ayez fait une centaines de commit dans votre repository et que vous découvrez ensuite que les sources ne compilent plus! Comment faire pour trouver l’erreur ? git-bisect vous permet de facilement retrouver le commit à partir duquel vos sources ne compilent plus. Son principe: il utilise un algorithme de type dichotomie pour tester un a un l’état de votre repository. Pour cela vous lui donnez la version de départ et une commande à exécuter (par exemple “mvn compile” si vous utilisez Maven), il va ensuite lancer la commande sur les versions de votre repository et vous donner la première version dont la commande est en erreur. Comme il utilise un algorithme de dichotomie cela prend beaucoup moins de temps que de tester toutes les version … et en plus c’est automatisé!

Comment marche git au jour le jour. N’importe quel répertoire peut être définie comme un repository git (le présentateur nous a même expliqué qu’avant toute mise à jour d’Eclipse il transformer le répertoire d’Eclipse en repository git pour pouvoir revenir en arrière si nécessaire!). Ensuite ils suffit d’ajouter des fichiers (git add) et de faire des commits des fichiers (git commit -m “message”). Tout se passe alors en locale, sans connexion a aucun serveur.

Vous me direz, oui mais, et le travail en équipe?

Pour cela il y a de nombreuses manière de faire.
Par définition, on doit utiliser les commandes suivantes:

  • git clone : clone un repository (depuis une machine distante, un disque réseaux, une clé USB, un autre répertoire, …).
  • git push : envoit les modification de votre repository vers un autre.
  • git pull : recupère les modification d’un autre repository.

Classiquement, on utilise deux architecture différentes:

  • Server centralisé : on défini un serveur qui sera le repository centralisé sur lequel toute l’équipe fera ses push et depuis lequel elle fera ses pull.
  • Cercle de confiance : architecture utilisé dans les projets open source (et notamment dans le développement du noyeau linux). Il y aura alors une hiérarchie de commiteur, les plus “petit” feront un push vers une personne de plus grande confiance qui lorsqu’elle aura tester les changement fera un push vers une personne de plus grande confiance et cela jusqu’au repository de référence. Ensuite tout le monde fera des pull en cascade. Intérêt: pas d’administration, idéale pour les grande équipe, vérification limité grâce aux cercles de confiance, pas de serveur centralisé: peut marcher s’il y a défaillance d’une partie des repository.

GIT est réputé aussi pour son merge “omniscient” : GIT peut merger tout seul énormément de situation qui sous d’autre gestionnaire de source nécessite une action manuelle et permet donc des refactoring lourd sans code freeze. Il réussit à faire un merge d’un fichier ayant été déplacé et renommé alors qu’une autre personne le modifié!

Pour tout ceux qui voudrait essayer, il existe un outils permettant de migrer un repository SVN existant en gardant l’historiquel : git-svn.

Il existe de nombreuses autres fonctionnalités, si vous êtes intéressé, n’hésitez pas à creuser le sujet.

MOKITO

Mockito est un framework de mock facilitant grandement l’écriture de test unitaire par la possibilité de créer différents objets de test tel que :

  • Dummy object : Mockito.mock(Class c) : mock une classe concrète ou une interface : créé une instance “bidon” de cette classe.
  • Fake object : MaClass fake = Mockito.mock(MaClass.class); when(fake.getTime()).thenReturn(1,2,3) : crée une instance “bidon” de la classe retournant des valeurs prédéfinie (1,2,3) lors d’appel successifs d’une des méthode de cette classe.
  • Stub : MaClass stub = Mockito.mock(MaClass.class); verify(stub).send(Email.class) : crée une instance “bidon” de la classe. On peut ensuite l’utiliser (par exemple appeler une méthode send avec comme paramètre un Email). Puis dans notre testcase on va vérifier que notre stub a bien été appelé : on vérifie que la méthode send a été appelé avec un email en paramètre.
  • Mock : sur le même principe un mock permet de valider les exceptions, l’appel des méthodes avec le contenu des paramètre, les appels multiples, les réponses multiples, …

Mockito peut s’interfacer facilement avec JUnit4 grâce à l’annotation RunWith qui permet ensuite d’utiliser l’annotation Mock pour mocker un objet.

Mockito contient de nombreuses fonctionnalités avancées toujours aussi facilement utilisable (mock partiel, deep-stub, syntaxe BDD, …), pour plus d’information allez faire un tour sur le site officiel: http://code.google.com/p/mockito/