LeBlog OXiane
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 positionnement 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…
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 .

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 ?

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 :

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:

Dernière petite remarque
Une prétérition se cache dans ce mini-dossier, saurez-vous la retrouver ?
2009
Android : Hello world ! – Feuilleton de l’été 2009 épisode 2
Suite de notre série de l’été consacrée à Android. Après la présentation générale de cet OS pour mobile et la description de ses principaux concepts (Activity, Intent, notion de composant, etc.), voici comment écrire un Hello World grâce au plugin Eclipse et au SDK Android. Ce petit programme nous permettra de faire le tour des principaux aspects du développement sous Android.
Voir également : Introduction à Android – Feuilleton de l’été 2009 épisode 1
Développer sous Eclipse avec ADT (Android Development Tool)

Le plugin ADT pour Eclipse vous permet de créer et de déboguer facilement et rapidement les applications.
- Il vous fournit un nouveau gestionnaire de projet, qui vous aide à initialiser tous les fichiers de base dont vous avez besoin pour une nouvelle application Android.
- Il vous fournit un éditeur Android qui vous aide à écrire des fichiers XML valide pour Android.
- Il vous permet aussi d’exporter votre projet dans un fichier APK signé. Il est important de noter que pour être installé sur un système Android, tout package APK doit être préalablement signé.
Nous supposons à présent que vous avez Eclipse installé. Si tel n’est pas le cas, rendez-vous sur www.eclipse.org pour les instructions de téléchargement et d’installation de l’IDE Eclipse. Les instructions que nous donnons dans la suite concernent Eclipse 3.4 (Ganymede).
Préparation de l’installation
Android requiert une version 5 ou supérieure du JDK.
Après avoir télécharger le SDK d’Android, extrayez l’archive dans un répertoire de votre choix. Notons Rep_Android ce répertoire. Nous en aurons besoin lors de l’installation du plugin. Vous pouvez télécharger le SDK sur http://developer.android.com/sdk/.
Installation du plugin
Le processus d’installation du plugin est le suivant :
- Démarrez Eclipse, sélectionnez Help/Software Updates…
- Dans la boite de dialogue qui apparaît, cliquez l’onglet Available Software, puis sur Add site…
- Entrez l’URL : https://dl-ssl.google.com/android/eclipse/
- Cliquez sur OK.
- De retour dans la vue Available Sofware, vous verrez le plugin listé par son URL, avec «Developer Tools » en dessous. Sélectionnez la case à cocher à côté de Developer Tools et cliquez sur Install…
- Dans l’écran d’installation suivant, « Android DDMS » et « Android Development Tools » doivent être tous cochés. Cliquez sur suivant.
- Lisez et acceptez le contrat de licence, puis cliquez sur Finish.
- Redémarrer Eclipse.
Modifiez à présent vos préférences pour pointer sur le répertoire d’installation du SDK d’Android, le répertoire Rep_Android. Pour cela suivez les étapes suivantes :
- Sélectionnez Windows > Preferences… (Mac: Eclipse > Preferences).
- Sélectionnez Android depuis le panel de gauche.
- Pour l’entrée SDK Location du panel principal, cliquez sur Browse… et localiser le répertoire du SDK
- Cliquez sur Apply, puis Ok.
Bien ! Si vous n’avez rencontré aucun problème, alors votre environnement est prêt pour le développement d’applications Android.
2009
L’esprit du jeu de Go défie la force de la machine (1/2)
Voilà un petit billet pour se détendre, et sortir un petit peu des sujets technologie.
Confucius disait : «Mieux vaut jouer au Go que de rester oisif».
Ce dossier va donc aborder le jeu de Go, et particulièrement les efforts en cours pour développer une IA de Go correcte.
Et revenir également sur l’événement qui a (un petit peu) secoué le monde du Goen 2008 : La victoire d’un programme sur un joueur professionnel.

Le jeu de Go ? Késako ?
Le jeu de Go est originaire de Chine, il s’agit du plus ancien jeu de stratégie connu.
Des légendes anciennes lui attribuent un âge vénérable d’environ 4000 ans, et lui prêtent des origines diverses. En vérité, les premières références au jeu datent d’environ 722 à 481 av JC.
Il s’agit de l’un des 4 Arts chinois, avec la poésie, la calligraphie, et l’art pictural.
A partir d’un matériel simple (un plateau de jeu appelé Goban, des pierres noires et blanches), les règles du jeu se sont progressivement développées au fil des siècles, pour aboutir aux règles actuelles.
Celles-ci sont très simples et peu nombreuses, il s’agit essentiellement des règles de capture de pierres.
Cependant le go n’est pas un jeu facile. Les stratégies et tactiques possibles sont quasi-infinies, l’apprentissage du jeu est très long.
Certaines mauvaises langues (que je ne citerai pas) affirment que le jeu de go est aux échecs ce que les échecs sont au morpion! No comment. J’ajouterai juste que Bobby Fischer, célèbre champion américain d’échecs affirmait : «Les extra-terrestres ont peut être inventé les échecs, ils ont certainement inventé le jeu de go»
2009
Introduction à Android – Feuilleton de l’été 2009 épisode 1
Nous commençons aujourd’hui une série de l’été qui consacrée à un sujet technologique particulier. Cette année, ce sera Android, le système d’exploitation pour équipements mobiles.
Retrouvez cette série par épisode tout au long de l’été.
Android, Qu’est ce que c’est?
La prochaine génération de systèmes d’exploitations libres ne sera pas sur pc ou sur mainframe mais bien sur les équipements mobiles que nous promenons tous les jours. Développée par le consortium Open Handset Alliance (OHA), Android est une plateforme qui inclut un système d’exploitation, un middleware et quelques applications clés. La motivation du consortium OHA à l’origine d’Android est d’accélérer l’innovation dans la technologie mobile et d’offrir à ses utilisateurs une expérience riche et peu onéreuse.
Le SDK d’Android fournit les outils et les APIs nécessaires au développement d’applications en java. A noter qu’un NDK permet également depuis quelques semaines d’envisager le dévelloppement de composants en code natif.
Dans ce tutoriel, vous allez apprendre comment développer une application d’entreprise simple avec le SDK d’Android. Vous ferez tourner cette application à l’aide de l’émulateur d’Android ou sur votre téléphone Android. Notre prototype consistera à consulter depuis son téléphone, la liste des filières de formations inter-entreprises disponibles chez Oxiane, d’obtenir à partir d’une filière sélectionnée la liste des cours dispensés et finalement le détail (durée, objectifs, public, pré requis, tarif, et calendrier) d’un cours donné. L’utilisateur pourra aussi s’inscrire à un cours à partir de son téléphone. Pour ce faire, Oxiane met à disposition des Web services REST-style (XML-RPC) qui retournent au format XML respectivement le catalogue de formation (liste des filières), la liste des cours d’une filière sélectionnée, et le détail d’un cours. Ces services seront appelés à partir de l’application Android.
Vous conclurez après ce tutoriel que le développement d’application Android est assez simple. C’est encore plus simple si vous utilisez Eclipse comme environnement de développement. Google fournit un plugin qui prend en charge la création et la gestion de votre projet afin d’accélérer votre cycle de développement. Nous allons donc au cours de ce tutoriel supposer que vous travaillez sous Eclipse. Si vous utilisez un autre IDE, adaptez nos instructions à votre environnement.
Avant de commencer le tutoriel proprement dit, nous allons d’abord procéder à une présentation des fondamentaux d’Android, nécessaires pour comprendre la suite.

