Sur la route d’Oxiane disgressions diverses

LeBlog OXiane

7 fév
2010

Le Paris JUG a deux ans!

juggyannif02Le Paris JUG a été créé il y a deux ans et c’est très vite devenu un franc succès. Une fois par mois, des développeurs java se retrouvent pour participer à des conférences qui concernent leur métier.
Réflexions sur un succès.
Il y a deux ans il n’y avait pas de JUG en France. Aujourd’hui il y en a au bas mot seize! Qu’est ce qui a fait le succès des JUG en France? Je crois qu’il faut changer de vision et prendre un regard un peu sociologue pour comprendre le succès des Jug.

Confiance et proximité

Tout d’abord, les JUG regroupent des gens d’une population homogène. La plupart des gens qui viennent au Paris Jug ont la trentaine voire l’ont dépassé. Mieux, on retrouve cette homogénéité de l’âge également dans les intervenants, qui ressemblent beaucoup à son public. Je me souviens avoir été très surpris lors de mon premier Jug - sur Maven, présenté par Arnaud Héritier - par la tenue d’Arnaud : simple polo fatigué, baskets, moyennement rasé. Ici, une grande proximité entre le public et celui qui parle. La confiance compte. On est loin des “petits déjeuners” sponsorisés par des entreprises où des consultants avant-vente viennent vous baratiner. “No fluff just stuff”. Cette proximité est accentuée par le fait que l’on parle ici un même langage, celui de la technique.

dscf8564-1

Equilibre

Avoir en général plus de trente ans veut dire que les gens qui participent à ces conférences ont plusieurs années d’expérience. Beaucoup de gens se sont déjà croisés. Soit qu’ils ont été collègues au sein d’une SSII, soit qu’ils se sont connu chez un client, beaucoup de gens ont déjà travaillé ensemble. Bref, le Jug est une occasion pour tout le monde de se retrouver dans un cadre plus détendu. Le Jug est un terrain “neutre” et égalitaire. Ou plutôt… Un terrain désarmé. La convivialité est la règle. En effet, sachant que l’on se retrouve entre collègues et ex collègues, on sait aussi que l’on peut changer d’entreprise ou de client, que la roue tourne assez vite et qu’il n’y a donc pas “intérêt” à jouer les uns contre les autres.
Ce sont les organisateurs et les conférenciers qui donnent l’exemple puisque lors d’une des soirées, on a vu Antonio Goncalves (auteur de Beginning Java EE 6 Platform With GlassFish 3 ) porter un tee-shirt Springsource tandis que Mickaël Isvy (de Springsource) arborait un tee-shirt Glashfish.

sponsors
On voit cette recherche de l’équilibre lorsqu’on porte un regard sur la liste des sponsors Platinium.

Objet Direct et Sfeir revendiquent le même nombre de collaborateurs (250), Novedia un peu plus (420).
Zenika, Xebia et Oxiane sont trois petites entreprises très proches tant en nombre de collaborateurs (moins de 30) que dans l’approche (technologies de pointe, rôle de défricheur, formations). Fast Connect semble ressembler aux trois derniers en un peu plus gros (40 collaborateurs en 2008).
Reste Valtech qui est la seule “grosse” ssii parmi les sponsors mais c’est la seule dans cette catégorie.

On voit aussi que chaque type de ssii est représentée : grosse , moyenne, petite.
Je pense que le Paris Jug se retrouve bien dans cet équilibre, a besoin de cette égalité afin de ne pas susciter une volonté d’hégémonie ou une méfiance de la part du public.
Le fait que le Paris Jug soit mené par plusieurs indépendants va dans le même sens.

En fait la population des développeurs java en Ile de France est assez grande pour permettre de constituer un groupe important. Mais cette population n’est pas assez grande pour que cette communauté prenne le luxe de s’ignorer les uns les autres ou de se faire des guerres trop marquées. Nous ne sommes pas dans un espace Bisounours, mais plutôt dans un territoire où règne un certain équilibre.

Nécessité de la formation continue

Pour continuer avec notre oeil de sociologue amateur, je vois une autre conséquence à l’âge de la population du Paris Jug. Au delà de trente ans, on a quitté l’école depuis un certain temps et le développeur a besoin de se tenir informé de ce qui se passe. Il a besoin de connaître les dernières technologies, les nouvelles solutions. C’est ce qu’apporte le Jug. Une universitaire, à qui je décrivais le Jug, m’a fait remarquer que ces conférences s’apparentent à un système de formation continue, tout simplement.

Beaucoup de monde!

Beaucoup de choses vues simplement en réfléchissant sur  l’âge des participants? J’émets ici l’hypothèse que la population des développeurs se “séniorise”. Qu’on s’éloigne peu à peu de cette image d’armées de développeurs juniors qui ne rêvent que d’une chose, devenir tous chefs de projets. En ce sens, ce ne serait pas un hasard si Le billet le plus commenté sur le blog le plus connu de la sphère Java en france (celui du Touilleur express) parle justement de ces développeurs de plus de trente ans. Il devient possible d’être techniciens et de le rester longtemps. En ce sens, participer à des conférences devient aussi normal que, pour un médecin, de participer à un congrès. A chacun par la suite, s’il veut creuser le sujet, de suivre une formation plus complète ou de créer un projet pour “tester la techno”.

Qualité et réactivité

Enfin, dernière observation concernant le Paris Jug : les conférences de qualité! Plusieurs conférenciers étrangers et spécialistes reconnus dans leur domaine. Plusieurs conférenciers français qui par la suite ont fait des présentations dans les conférences internationales. De plus, si on regarde la liste des sujets abordés on voit qu’il s’agit en général de sujets très chauds, qui ont moins d’un an, voire souvent moins de 6 mois! Pour ne parler que des dernières conférences : jsf2, Atmosphere, Android, JavaEE6 et Spring 3….

Conférences de qualité, respect du métier du développeur et de son point de vue, événements qui permettent de structurer une communauté au delà des valeurs qui auparavant semblaient dominer (le “produit”, la “marque”, l’”employeur”…) pour imposer d’autres problématiques… Le succès du Paris Jug - et de tous les jug en France - est un excellent signe de la maturité nouvelle des développeurs.

Auteur : Gabriel Kastenbaum.
Photos : venues du site de www.parisjug.org Creative Commons creativecommons

photobuffet2ejug

Le buffet lors du second Jug. Depuis bien du chemin a été parcouru

banquet-nouveau

4 fév
2010

Un petit outil bien sympa pour enchères Ebay

Gixen

Je voulais partager mon astuce qui me permet de gagner mes enchères Ebay sans rentrer dans l’escalade.

Peut être faîtes vous comme moi et profitez de l’€uro fort pour acheter à l’étranger des objets.

Ce matin par exemple, je suis tombé sur une annonce sympa en UK  qui va durer 6 heures.
Mise à prix : 89,99 £ + 18,99£ de livraison soit 128 € livrée à Boulogne.

Ca me va bien car il me semble que c’est moitié moins cher que dans le commerce traditionnel et que c’est mieux que d’acheter une copie dont le prix est avoisinant.

Le seul hic, sur des annonces de ventes flash comme celles ci qui attirent vers des boutiques pro, si vous avez le malheur d’enchérir le vendeur, l’encherissement automatique ou d’autres shoppers fous en quête de la bonne affaire enchainent et vous entrainent vers des prix plus élevés.

Le système que je vous propose est simple d’utilisation.
On commence : connectez vous à https://www.gixen.com/fr/index.php

Vous entrez votre login et mot de passe Ebay puis ajoutez le n° de l’article souhaité et votre ultime enchère.

Le logiciel se connectera à la dernière seconde du temps de la mise à prix et fera l’enchère qu’il faut pour gagner l’objet sans dépasser la limite que vous avez fixé.

Pour la petite histoire, à une seconde de la fin, comme il n’y avait pas d’enchère j’ai obtenu le produit à l’enchère minimale comme convenu alors que j’avais prévu une marge d’achat plus importante !

Imaginez un objet très disputé, ca vous le garantit presque tout en vous gardant d’exploser votre budget avec ces renchérissements automatiques.

Amusez vous bien c’est bon pour la consommation nous dit t on :-)

Auteur : Jean-Louis Rousselin

4 jan
2010

On s’était dit rendez-vous dans 10 ans…

carte_ox_2010

Je reprends les paroles de cette chanson de Bruel en vous épargnant les vocalises (pitoyables) de votre serviteur pour vous rappeler que cette année 2010 est une année particulière pour Oxiane.

Toute l’équipe se joint à moi pour vous remercier de votre fidélité à nous confier vos projets, vos missions et la formation de vos collaborateurs.

Née durant les années de la bulle Internet, Oxiane a traversé des périodes de frénésie économique et des périodes plus difficiles. Nous sommes particulièrement fiers d’avoir sû maintenir notre cap et notre croissance raisonnée quelque soit le contexte.

10 ans d’existence est une durée importante pour une société et à fortiori dans l’informatique où les cycles sont de plus en plus courts.

C’est avec la même passion, la même ferveur et la même rigueur que nous poursuivons nos motivations premières dans ces métiers -très proches- de conseil et de formation.

Notre expérience dans les technologies IT de pointe nous permet encore et toujours de pouvoir Anticiper, Comprendre et Transmettre nos compétences vers nos clients et partenaires.

Afin de mieux vous accompagner, nous avons enrichi notre offre et allons plus en profondeur dans le spectre déjà large des filières que nous couvrions par le passé.

Notre cœur de métier reste sans conteste les architectures et le développement, au plus proche des technologies.

Que peut-on souhaiter à Oxiane pour les 10 années à venir ?

De continuer à bâtir ensemble des applications, des architectures, des solutions et des relations fiables, agiles et pérennes et de nous encourager à rester pertinents tout au long des 10 prochaines années !

En attendant, je vous souhaite une excellente lecture de cet opus 2010 du catalogue des formations Oxiane. Si toutefois vous ne trouviez pas précisément dans ces pages les thèmes ou les modules qui correspondent à vos attentes, n’hésitez pas à nous contacter. Oxiane dispose d’un patrimoine de cours important et une capacité à mettre en œuvre une action de formation « sur mesure » adaptée à votre besoin.

Cordiales salutations,

Jean-Louis ROUSSELIN

Directeur Général

13 déc
2009

Google Chrome OS : le cloud sans filet

broken hard disks

Google l’avait annoncé et le voici : le système d’exploitation basé sur son navigateur open-source chrome. Plutôt destiné aux netbooks, il est pensé pour les utilisateurs qui n’allument leur ordinateur que pour lire leurs mail et trainer sur facebook, c’est-à-dire qui n’ont souvent besoin que d’un navigateur ouvert en plein écran. Google Chrome OS leur propose un délai de quelques secondes seulement entre le bouton marche et le navigateur sur internet. Il fonctionne sans stocker de données sur l’appareil : applications et données sont manipulées directement sur internet. Par exemple, il s’agit d’utiliser un document en ligne google docs au lieu d’utiliser traitement de texte et document stockés par l’appareil. On pourrait dire que google pousse la molette de réglage local<->cloud à 11.

Jamais sans mon disque dur

J’imagine l’intérêt pour les utilisateurs ainsi que pour les vendeurs de logiciel (qui verront enfin leur vieux rêve de location de leurs logiciels - donc zéro piratage - enfin réalisé). L’erreur, à mon humble avis, serait dans l’approche “Toutes vos données sont sur le cloud. Toutes ? Toutes !”. Je veux bien que les données soient hébergées en ligne mais il faut quand même un disque dur ou un quelconque moyen de conserver une copie personnelle (ou d’entreprise) des données. C’est l’exacte symétrique de la recommandation de faire un backup en ligne à ceux qui gardent tout sur leur disque dur… Je n’écris pas ça par conservatisme, je n’ai pas peur du cloud, tout comme on peut être fana d’escalade et recommander le mousqueton.

Pourquoi conserver une copie sur disque dur ?

  1. Pour avoir une copie de sauvegarde, à un prix comparable aux services de sauvegarde les plus abordables. Avec un avantage colossal : le temps d’accès. C’est en essayant de m’imaginer en train d’essayer de retélécharger 18Go d’album photo (eh oui, vive le reflex numérique) depuis mozy.com -l’envoi de DVD est un service lourdement facturé- que j’ai décidé de conserver un miroir sur disque dur à la cave.
  2. Pour conserver la propriété et la jouissance de mes œuvres. Si l’on est dans un système de location, le loueur peut disparaitre, faire faillite, changer ses tarifs, ses prestations, vous mettre sur la liste des pays subissant l’embargo américain, effacer vos données à distance (comme amazon sur son lecteur d’ebooks), la liste des ennuis potentiels est infinie… Quand je prends une photo, développe un logiciel ou rédige un document, je veux pouvoir y avoir accès indéfiniment. Cela veut également dire qu’il faut être vigilant quant au format d’exportation que proposent les suites logicielles en “cloud” : il faut pouvoir obtenir un backup lisible sur le long terme (dans un format ouvert et de préférence non-propriétaire).
  3. Pour avoir accès à mes documents sans réseau. Quel que soit votre FAI, vous aurez des coupures ; vous partirez peut-être en congés sans clé 3G ; vous serez peut-être victime des dommages collatéraux de l’HADOPI… Bref, sans réseau point de données. L’idéal est de disposer d’un mécanisme de synchronisation capable de gérer efficacement les connexions intermittentes. La technologie Google Gears (tiens donc) permet d’ores et déjà de le faire pour certaines applications. HTML5 promet de généraliser cette fonction entre autres capacités utiles au cloudapps.

La CloudBackupBox

Je vous propose donc la CloudBackupBox : un boitier silencieux autour d’un gros disque dur et d’une connexion réseau, qui se connecte régulièrement à tous les services cloud que j’utilise et qui synchronise toutes mes données sans intervention manuelle. On peut imaginer une prise USB qui permet de se brancher physiquement pour configurer l’appareil ou bien travailler sur les données stockées sur le disque dur : mode hors-ligne ou restauration de sauvegarde. Ajoutez à cela un mode sécurité qui demande un code PIN pour s’allumer et crypte toutes les données sur le disque dur, afin qu’un cambrioleur ou autre indélicat ne puisse pas lire le contenu du disque. Il ne me reste plus qu’à déposer le brevet. Ah flûte, trop tard ! Je n’aurais pas dû en décrire le principe ici, ça doit compter comme prior art


Auteur : Guillaume Rams

Crédit photo : purplemattfish Certains droits réservés (licence  Creative Commons)

7 oct
2009

J’ai testé un BarCamp

182168535_68c83108cc

Je suis allé au 17ème BarCamp parisien, sur le thème “OpenWeb + Cloud + Geo + Social”. C’était à la fois un sujet que je suis de près et l’occasion de découvrir un BarCamp…

Qu’est-ce qu’un BarCamp ?

Pour résumer, un BarCamp est à une conférence ce qu’un wiki est à un site web. Comparons avec une conférence traditionnelle : liste déterminée d’orateurs et de sujets, auditoire attentif, mais dont la participation se limite aux questions-réponses de clôture après chaque présentation. Le BarCamp se veut participatif : chacun se présente rapidement, lance des mots-clés et on essaie sur tableau blanc de constituer des groupes de travail ad-hoc autour d’un thème (démo, présentation, atelier, session de programmation). Les premières “non-conférences” étaient organisées sur invitation : les FooCamp. Au contraire, pour un BarCamp tout le monde est bienvenu, dans la limite des places disponibles.

Les sessions

<cynique>Ce que je constate c’est que même si la conférence s’auto-organise librement, ce sont les têtes d’affiche (évangélistes auprès des développeurs pour les APIs de google et de Mozilla par exemple), dont la présence avait attiré les foules, qui ont fait leur présentation … Certes de façon informelle, en face à face.</cynique>

Je suis un peu resté sur ma faim car en allant à une conférence sur un sujet que je suis de près, les séances d’initiation ne m’apportaient rien… Exit donc l’introduction à GWT, et la séance d’autocongratulation autour de FireFox et son XUL. Je n’ai pas vu la suite, j’ai préféré passer ma soirée en famille plutôt qu’à partager des pizzas avec des hackeurs fous. Allez savoir, j’ai peut-être raté le meilleur moment… Il s’agit effectivement d’un événement autant social que technique, si ce n’est plus.

Conclusion

Le passage qui m’a intéressé était une table ronde autour d’un sujet que je ne connaissais pas : FOAF+SSL (je vais rédiger un billet spécifiquement sur cette présentation). Ça m’a rappelé l’époque ou je starte-upais dans le web-sémantique… Eh bien justement, ma conclusion perso est que ce genre d’événements est intéressant quand on est entrepreneur et que l’on veut réseauter, ou bien un développeur qui veut s’initier simplement à des nouvelles technologies. Sinon… je garde un faible pour les conférences avec de sympathiques papiers à lire et relire. Par exemple, on peut consulter en ligne les actes des conférences Pattern Languages of Program Design (PLoP), c’est quand même du bon stimulant neuronal !


Auteur : Guillaume Rams

Crédit photo : t_a_i_s - Certains droits réservés (licence Creative Commons)

8 sept
2009

ESUG 2009 l’événement Smalltalk européen de l’année

smalltalkL’événement annuel du monde Smalltalk européen, à savoir l’ESUG 2009, vient de se dérouler à Brest. OXiane y était représenté de deux manières : cité comme collaborateur du projet de Geomer avec Océanopolis et représenté par mon humble personne.

La plupart des gens s’attendraient à une réunion de vieux croulants ressassant les heures de gloire de Smalltalk. Il n’en est rien (j’étais le seul). Je reviens gonflé à bloc et convaincu, après avoir côtoyé près de 140 autres passionnés venus du monde entier, qu’une renaissance de Smalltalk est en cours. Smalltalk a toujours été un marché de niche mais la niche subsiste, prospère et la communauté se prend à rêver d’expansion sur des airs de « Yes we can ».

Un des grands intérêts de cette conférence internationale est qu’elle réunit industriels et universitaires. Nul doute que l’utilisation de Smalltalk dans les universités augmente et les deux projets phares que sont Pharo et Seaside constituent un réel espoir de changer l’image du langage et de lui donner un nouvel essor. Certains en profiteront ici pour conforter leur certitude que Smalltalk est un langage d’universitaires. Plusieurs faits leur donnent tort. Par exemple, j’ai appris que la branche Smalltalk de Cincom, distributeur des produits VisualWorks et ObjectStudio réunis dans une même offre appelée Cincom Smalltalk, voit son chiffre d’affaire augmenter régulièrement d’environ 20% tous les ans. Elle acquiert de nouveaux clients, augmente l’effectif de ses équipes et investit dans des développements comme son nouveau produit appelé WebVelocity, basé sur VisualWorks et Seaside.

Un autre fait marquant vient de la société Instantiations, qui nous a présenté les nouveautés actuelles et futures de VASmalltalk, le successeur du VisualAge/Smalltalk d’IBM.

Un troisième acteur industriel, GemStone, a aussi montré l’intégration du langage Ruby dans son système Smalltalk, ce qui devrait sans aucun doute augmenter encore l’intérêt et la coopération entre les deux communautés.

Lire la suite du bllet »

3 sept
2009

Android : Threading, Moteur de base de données SQLite - Feuilleton de l’été épisode 4

androx4Nous vous présentons aujourd’hui l’avant-dernier épisode de notre série d’été sur Android. Lors de l’étape précédente, nous avons récupéré la liste des filières disponibles chez Oxiane via un appel à un service REST-RPC. Cependant nous avons utilisé pour l’appel le même thread que l’interface utilisateur. Ce qui n’est pas une bonne idée. Nous commencerons cet épisode en corrigeant le tir. En effet, nous expliquerons comment utiliser un thread différent pour cet appel.

Toujours dans l’épisode précédent, dès lors que nous avons les données, elles sont affichées à l’écran. En conséquence, à chaque fois que l’utilisateur lance l’application une requête est effectuée vers le serveur http. Nous avons conclu ensemble que procéder ainsi peut entraîner une surcharge injustifiée du réseau, hormis le risque d’indisponibilité des données qui peut se poser. Dans cet épisode, nous allons introduire le moteur de base de données embarquée SQLite. A l’issue de la première requête, les données seront stockées en base. Lors des connexions suivantes, les données seront extraites de la base et affichées.

Nous nous sommes aussi engagé à compléter notre code afin de récupérer, à partir de la position cliquée par l’utilisateur dans la liste, la liste des cours de la filière sélectionnée. Pour ce faire, nous introduirons le concept d’Intent. Sous Android, les composants communiquent à l’aide des messages asynchrones appelés intents.

Notre feuille de route étant définie, procédons sans plus tarder à sa matérialisation.

Threading

Nous pouvons contourner le problème de blocage d’interface utilisateur en produisant des threads séparés et en gardant leurs traces, mais nous ne devons pas. Heureusement Android fournit un ensemble d’APIs sous la forme de librairie Apache HttpClient qui apportent une abstraction des classes java.net et qui sont conçues pour offrir un support http robuste et aider à prendre en charge le souci de threads séparés. Nous allons effectuer des requêtes réseau dans un thread séparé de l’interface utilisateur en utilisant l’API HttpClient.

L’utilisation de HttpClient commande au moins 3 étapes dans le processus de développement :

  • Définition d’un handler Android : Permet d’envoyer et de traiter les messages et objets runnable d’un thread. Chaque instance Handler est associée à un seul thread et à sa liste de messages (message queue).
  • Définition d’un responseHandler Apache : pour récupérer la réponse à la requête http.
  • Effectuer la requête réseau dans un thread différent de celui de l’interface.

Lire la suite du bllet »

17 août
2009

Appel à des services Web sous Android - Feuilleton de l’été 3/4

androx03Comme annoncé lors de l’épisode précédent, nous allons compléter notre code afin de récupérer le fichier correspondant au catalogue Oxiane et de le présenter à l’utilisateur.

Dans cette étape, nous construirons une liste de filières afin de permettre à l’utilisateur de choisir dans le catalogue de formations la filière qui l’intéresse. Cette étape permettra d’aborder :

  • Comment appeler un service web avec Android et traiter le document XML retourné pour en extraire les éléments significatifs. Nous montrerons comment choisir un modèle de traitement XML sous Android.
  • Comment positionner une liste sur un écran et comment attacher des actions aux items de la liste afin de prendre en charge la sélection de l’utilisateur.

Ah, si dans la vie tout se passait bien d’un coup comme on l’aurait souhaité, ce serait merveilleux, non ? Hélas il arrive très souvent que des imprévus s’y mêlent aussi. En programmation ce sont généralement des exceptions. Nous allons aussi voir comment déboguer une application Android.
Dans notre classe CatalogueOxiane nous récupérons la liste des filières de formation par un service web REST-RPC (pour reprendre la dénomination trouvée par les auteurs de RESTFul Web services). Pour ce faire, nous allons créer un objet Catalogue. Cet objet va contenir la liste des filières de formation. Nous utiliserons aussi une base de données SQLite pour stocker les filières de formation.

Pour commencer, modifiez la définition de la classe CatalogueOxiane pour qu’elle hérite de la classe ListActivitity. (public class CatalogueOxiane extends ListActivity). Le compilateur vous propose d’importer la classe ListActivity. ListActivity est une sous-classe de Activity qui offre des fonctionnalités supplémentaires permettant de travailler sur les listes.

La classe Catalogue

Créez la classe Catalogue comme indiqué sur le listing 4. Cette classe comprend un membre (mfilieres) qui est une liste d’objets Filiere et les méthodes addFiliere (qui ajoute une filière à la liste), getFilieres (qui retourne la liste des filières) et getFiliere (qui retourne la filière qui se trouve à une position donnée de la liste).

public class Catalogue {

	private ArrayList<Filiere> mfilieres = new ArrayList<Filiere>();

	public void addFiliere (Filiere filiere){
		this.mfilieres.add(filiere);
	}

	public ArrayList<Filiere> getFilieres(){
		return this.mfilieres;
	}

	public Filiere getFiliere(int i){
		return (Filiere) this.mfilieres.get(i);
	}

}

Listing 4. La classe Catalogue

Lire la suite du bllet »

11 août
2009

VMWare rachète SpringSource. Après le printemps…

VMWare vient donc de racheter Spring, pour une somme assez conséquente, de quelques 420 millions de dollars (soit le prix de quatre Ronaldo et un Benzema).
Pour le coup tout le monde a été surpris. Autant le rachat de JBoss par Red Hat (pour à peu près la même somme) était stratégique, marketing, autant le rachat de Sun par Oracle était industriel, autant le rachat de VMWare pourrait bien être un investissement qui augurerait de beaucoup d’autres choses.

Spring a rarement fait n’importe quoi. Ils ont été très agressifs du point de vue marketing mais ils ne sont jamais sortis de leur positionnemment technologique et novateur. On peut le voir dans le communiqué de Rod Johnson : il y parle autant des perspectives technologiques que du mot “Simplicité” qui est - plus qu’un mantra - leur slogan.

Du côté de VMWare, on a une politique ambitieuse. Le recrutement se fait d’abord à très haut niveau. Les deux entreprises au recrutement le plus ambitieux sont Google et eux. Ils ont ainsi récemment engagé un core développeur du noyau de Windows NT. Certainement pas pour développer un pacman.
Alors, que nous réserve cette alliance inattendue? Quelle perspective technologique là dessous? Rod Johnson le pense, l’avenir est le cloud. Spring et VMWare souhaitent se positionner sur ce nouveau marché, comme PAAS (Plateform as a Service), alliant le meilleur et le plus simple des deux entreprises (pour reprendre un gimmick à la Spring).

Du moins ce que vient de dire SpringSource est clair. A la conquête d’un nouvel eldorado. Après la crise de 2008-2009, le renouveau. Les nouveaux farwests s’ouvrent à nous.
Mais qui sait ce que l’on va trouver au bout de cette nouvelle frontière? Dans cette course aux nuages…

6 août
2009

L’esprit du jeu de Go défie la machine (2/2)

Cet article est en deux parties. Retrouvez ici la première partie de cet article .

03-machineamogo

Une machine s’impose face à un professionnel

Le 07 Août 2008, Le programme Mogo Titan, développée par l’université de Maastricht et par l’INRIA, a battu Kim MyungWan, un joueur professionnel coréen 8ème dan.

Cependant, quelques bémols:
A l’instar de Deep Blue, le programme tourne sur un supercalculateur, conçu par IBM. La machine, le «Power 575 Hydro-Cluster» est dotée de 3328 processeurs POWER6, cadencés à 4,7 GHz et de près de 15 To de mémoire vive. Elle est capable d’atteindre 60 000 milliards d’opérations à virgule flottante par seconde (60 TéraFLOPS). A titre de compaison, elle est plus de 1000 fois plus puissante que Deep Blue… Ce qui la place cependant assez loin des plus puissants supercalculateurs du monde.
La partie est jouée avec 9 pierres de handicap (à l’avantage de Mogo), ce qui représente environ 120 points d’avance
Kim MyungWan utilise moinsde 6 minutes de temps pour jouer la partie
D’ailleurs, le joueur coréen avait facilement battu Mogo à plusieurs reprises lors des phases de test

Mais au final, la machine gagne….. De 1,5 points!

Cependant, l’événement reste de taille. Mogo reste le programme ayant obtenu le meilleur résultat face à un joueur professionnel.

Quel est son secret ?

04-kimmyungwan

Les trois atouts principaux de Mogo

MoGo utilise principalement trois techniques :
Exploration de l’arbre des coups possibles par l’algorithme UCT
Evaluation des positions fondée sur des algorithmes de Monte-Carlo
Parallélisme afin de disposer de la puissance de calcul nécessaire pour qu’une évaluation Monte-Carlo donne des résultats suffisamment précis

L’algorithme UCT – issu de recherche de travaux en IA - est une méthode pour explorer des arbres min/max gigantesques. L’idée étant de se focaliser sur un coup et d’éliminer les autres.
Je ne rentrerai pas en détail là-dessus - surtout que je n’ai pas tout compris…

La partie intéressante est l’algorithme de Monte-Carlo.

Méthode de Monte-Carlo

Une méthode de Monte-Carlo est une technique visant à calculer une valeur numérique en utilisant des procédés aléatoires.

C’est utilisé notamment dans le domaine de la finance pour faire des mesures de risque (du coup on se dit que ça ne marche pas toujours très bien…).

Pour illustrer la méthode, je vais honteusement reprendre l’exemple de Wikipedia,. Il s’agit de faire une estimation de la superficie d’un lac :

05-estimationdulac

Prenez un lac, inclus dans une zone rectangulaire (image de gauche).
Bombardez au hasard N coups de canon dans cette zone (deuxième image).

Comme vous connaissez la superficie du terrain, le nombre total de boulets de canon (X), et le nombre de ceux tombés en dehors du lac (N), vous pouvez estimer la superficie du lac par la formule:


Superficie lac ~= ( ( X – N ) * superficie terrain ) / X

Méthode de Monte-Carlo appliquée au Go

La méthode de Monte Carlo est utilisée par Mogo pour évaluer une position sur le Goban (l’une des principales difficultés du Go).

L’idée est, pour évaluer une position, de jouer des pierres noires et blanches au hasard,
excepté sur les intersections correspondant à des yeux (un «oeil» est une intersection vide unique entouré de pierres de la même couleur, c’est à dire un territoire minimal).

Le but est de terminer aléatoirement la partie, afin d’obtenir une position finale facile à évaluer (on sait qui gagne et de combien, il suffit de compter les territoires).
Puis on répète l’opération à partir de la position initiale.
Plus on répète l’opération, plus l’estimation de la position devient fiable (on fait la moyenne des estimations).

Pour être plus efficace encore, Mogo ne joue pas les coups totalement au hasard, mais essaie de jouer des coups crédibles, selon certains patterns pré-définis.

La combinaison de l’algorithme UCT et des méthodes d’évaluation basées sur Monte-Carlo ont fait de MoGo le meilleur programme de Go à ce jour. Mais il reste encore loin du niveau professionnel.

Pour conclure

Depuis 2006, la programmation du jeu de Go a fait des progrès importants, grâce à la méthode de Monte-Carlo notamment, et à des techniques avancées d’IA.
Le jeu de Go étant un terrain d’étude privilégié pour les sciences cognitives, il est probable que les rencontres entre machine et joueurs professionnels se multiplient dans le futur.

Mais la profondeur du jeu, sa complexité, et les qualités humaines qu’il requiert, font du Go un jeu qui restera encore longtemps l’apanage d’Homo sapiens sapiens! Enfin.. C’est mon avis :-)

Auteur : Mikaël Lester

Annexe

Ressources diverses sur le Go
gobase.org
goproblems.com
http://igo-kisen.hp.infoseek.co.jp/news.html, pour trouver les parties professionnels des tournois coréens, chinois et japonais.
www.gnu.org pour télécharger le programme GnuGo.

Pour rappel : retrouvez ici la première partie de cet article .

Humour et Go

Voici une petite blague tordante (glacée et sophistiquée) qui prouve bien que l’humour du joueur de Go n’a absolument rien à envier à celui de l’informaticien:

06-humouretgo

Dernière petite remarque

Une prétérition se cache dans ce mini-dossier, saurez-vous la retrouver ?