Archives du blog

JUGSummerCamp 2012

Premier voyage de l’équipe NinjaSquad, direction La Rochelle pour le JUG Summer Camp. Du Java, du Web, l’océan, une conf gratuite d’une journée avec une organisation irréprochable, il faudrait être difficile pour ne pas aimer!

JUG Summer Camp 2012

Keynote : Nicolas de Loof – @ndeloof

Nicolas nous a fait un numéro de stand up très drôle en parodiant le podcast bien connu dans le monde Java : les Castcodeurs. Comme aucun d’entre eux n’étaient présents, Nicolas a eu l’idée de faire un puppet show en reprenant les traits caractéristiques de chacun d’entre eux, pour faire une keynote originale sur notre métier. Franc succès dans la salle (évidemment seulement drôle si on écoute ce podcast).

La journée se déroule ensuite sur deux tracks de confèrence, il faut donc faire des choix.

Google TV : Olivier Gonthier – @rolios

Première présentation sur la Google TV, petit boîtier qui permet de faire tourner des applis Android sur votre télé, mais pas encore disponible en France (on ne connait même pas les partenariats avec les opérateurs). Le principe est simple : une prise HDMI en entrée reçoit le flux vidéo et une prise HDMI de sortie le renvoie vers la TV. A noter que le code de Google TV n’est pas open source. Sinon techniquement c’est le même market que les applis Android traditionnelles.

Commençons par le point qui fâche et qui, à mon sens, fait perdre tout l’intérêt de la chose : il n’est pas possible de récupérer le flux video, ni la chaine visionnée par l’utilisateur, donc vous pouvez oublier toutes les idées d’applications contextuelles: IMDB sur le film en cours ou les stats du match que vous êtes en train de regarder, c’est foutu!

Mais il y a deux ou trois trucs intéressants quand même : par exemple, le « second screen app« , qui permet aux devices Android de s’interfacer avec la GoogleTV et de vous servir de télécommande ou mieux, d’écran annexe pour certaines applications. L’exemple que je trouve assez cool : un jeu de poker Hold’em où la TV affiche la table de jeu (avec les cartes communes et les mises) et chaque joueur voit ses cartes sur son téléphone. Ce genre d’application peut avoir un grand potentiel, je suis sûr que l’on va voir apparaître des applications géniales!

Le développement est de la programmation Android traditionnelle, le SDK étant complété avec des fonctions pures TV (touches telecommande par ex). Si vous souhaitez développer une application Android utilisant le « second screen », vous pouvez utiliser Anymote library (voir dans les exemples de code fournis par Google, dans l’application Blackjack TV).

Il est également possible de développer des applications en html5, la GoogleTV ayant un très bon navigateur Chrome intégré (très bien documenté d’après le speaker). Il est aussi possible de packager votre application avec Phonegap pour la distribuer directement sur le Market.

En plus j’ai gagné la GoogleTV du concours, yay!

Node.js : Romain Maton – @rmat0n

Romain faisait une présentation générale de Node.js (voir articles précédents et les excellents articles de Romain) avec quelques rappels sur les principes de base. C’était une présentation très orientée web-app avec le framework web Express et son moteur de template par défaut Jade (cf article précédent également).

Puis les modules importants :

– l’incontournable Socket.io pour faire des websockets

– logging avec Winston

nodemon, redémarrage automatique dès que vous modifiez un fichier.

forever pour relancer l’application en cas d’erreur qui coupe l’appli

jasmine, qunit pour les tests

Et pour terminer une petite démo sympa avec la librairie speak qui fait parler le navigateur pour annoncer le prochain bus qui passe.

Start me up : Nicolas de Loof – @ndeloof

Après le buffet repas le plus incroyable pour une conf que j’aie vu (les membres de l’orga Mix-it présents étaient impressionnés), on reprend avec ‘Start me up’ ou comment passer rapidement de l’idée à la réalisation (en utilisant Cloudbees, dont Nicolas est employé). L’idée est ici de faire un mini moteur de recherche sur les talks de la conf. Nicolas utilise au passage un autre service dans le cloud que je ne connaissais pas : WebSolr, un Solr as a Service. Cloudbees on aime bien, Mix-it est hébergé gracieusement dessus et ça marche très bien (le support a toujours été très réactif en cas de problème).

La présentation est intéressante, Nicolas étant un bon speaker, mais si vous avez déjà vu une présentation de Cloudbees le contenu ne vous surprendra pas (comment déployer, comment gérer ses instances, comment déclarer des propriétés pour le déploiement etc.). La nouveauté la plus notable est sans doute le Click Start, qui permet en un clic de créer tout ce qui va bien pour un type d’application (squelette du projet, repository de code, instance jenkins, base de données et instance de run). Pour l’instant, quatre types de Click Start sont disponibles (JavaEE6, Hibernate/Tomcat, Rest/Backbone, Scala/Lift).

Du legacy au cloud : David Gageot – @dgageot

David est un excellent speaker que je vous recommande de voir si il est dans une conférence à laquelle vous assistez. Son talk est du pur live coding, sans aucun slide, et reprenait le kata de Gilded Rose où une application existante doit être refactorée.  Une spécification est disponible, mais David ne recommande pas particulièrement de la lire pour commencer mais plutôt de créer des tests sur le code existant que l’on doit retravailler. La logique étant que si l’application convient aux utilisateurs actuellement, le plus important est de préserver son fonctionnement. Les tests sont assez simples à écrire, on appelle chaque méthode et on colle dans le assert le résultat renvoyé : on obtient ainsi une série de tests au vert qui seront notre sécurité.

David utilise le plugin infinitest qui relance les tests dès que le code est modifié : si vos tests sont très courts, le feed-back est immédiat.

La marche à suivre pour refactorer le code est la suivante :

– augmenter la symétrie (mettre les if/else et les equals de la même façon, en enlevant les conditions inversées par exemple).

– puis faire apparaître les duplications de code afin d’extraire de nouvelles méthodes

David finit par introduire de la délégation (un objet était passé dans toutes les méthodes de la classe), en utilisant une annotation de Lombok.

Une fois le code propre, David écrit un petit serveur http qui expose les données en JSON, déploie l’application sur heroku, puis déploie un front statique sur Github Pages (comme le blog de NinjaSquad) qui consomme les données.

Le tout en 45 minutes, en expliquant très bien ses choix et en utilisant IntelliJ avec maestria. C’est la présentation que j’ai préféré de la journée, même si parfois le refactoring était un peu magique, David connaissant bien le code et étant pressé par le temps. Si vous voulez tester le dojo par vous même, les projets sont disponibles sur le compte Github de David.

Beaglebone = Arduino^10 : Laurent Huet – @lhuet35

Laurent nous faisait descendre de quelques niveaux d’abstraction avec un talk sur Beaglebone, une carte plus puissante qu’un Arduino, un peu du même type que le Raspberry Pi. La présentation était intéressante, avec une explication générale des principes, une démo, et les technos que l’on peut faire tourner sur ce type de cartes (C/C++, Java, Python, Node.js …). Manque de chance pour Laurent, sa carte de démo avait grillé la veille (les risques du métiers), mais son talk n’en a pas été trop perturbé, bravo à lui!

Programatoo pour les grands : Audrey Neveu – @audrey_neveu et Ludovic Borie – @ludovicborie

Vous avez peut être entendu parler de Programatoo, un atelier de programmation pour initier les enfants dès l’age de 6 ans aux joies du code. Audrey et Ludovic nous ont montré les différents outils que l’on peut utiliser pour  éveiller la curiosité des plus petits (je ne sais pas si cela peut fonctionner avec vos collègues également) : Scratch, KidsRuby ou encore TortueScript. Très sympa, si vous avez des enfants, ce genre d’outils devraient vous intéresser!

La journée de conf se termine déjà, l’assemblée se dirige vers le port pour un repas tous ensemble. Le JUGSummerCamp aura été une très belle journée, superbement organisée par Jerôme Petit, Orianne Tisseuil et leur équipe. L’équipe Mix-it en partie présente compte bien leur emprunter quelques bonnes idées! Si vous avez l’occasion de vous rendre à la prochaine édition, n’hésitez pas, la conférence, gratuite, est l’une des toutes meilleures en France et la Rochelle et ses alentours ne manquent pas de charme pour rester quelques jours supplémentaires!

Mix-it 2012 : toutes les sessions et pourquoi !

  L’une des tâches les plus intéressantes quand on organise une conférence reste la confection du programme. Pour Mix-it, ce programme est fait en deux phases. Tout d’abord il y a les speakers que nous invitons : nous passons quelques semaines a spammer les personnes que nous avons envie de faire venir ou à chercher des speakers sur des thèmes précis que nous souhaitons voir aborder. Quand je dis spammer, c’est vraiment spammer, aussi parce que nous tentons d’avoir des personnes très connues (Oui je pense à toi Joel Spolski!) pour une conférence assez petite dans une ville pas forcément très connue à l’international. Parfois nous n’avons pas de réponse, parfois un non très clair et des remerciements, ou une façon plus “subtile” de le dire (“je viens mais je facture la prestation 50000€, plus les frais de déplacement bien évidement”). Et, parfois (souvent), le speaker accepte ! Et nous voilà avec un programme qui nous fait très plaisir, surtout avec notre objectif de rester une conférence avec un prix d’entrée abordable. Comme nous passons du temps à chercher les speakers, ce sont parfois des noms que vous ne connaissez pas mais je peux vous assurer qu’ils déchirent !

  Faisons un petit tour des speakers invités :
Pamela Fox : l’une des premières à avoir accepter notre invitation. Cette fille est une ancienne dév Google à Mountain View, sur Maps puis Wave. Ce qui déjà, amène un certain respect. Elle était de plus Google Advocate, c’est à dire qu’elle représentait Google dans les conférences. Elle a maintenant lancé sa propre startup, où elle réalise tous les développements dont une application mobile multi plateforme utilisant un framework qui fait du bruit : Phonegap. Nous sommes très heureux de la voir accepter de venir depuis San Francisco pour en parler, et cela s’annonce passionnant.
Petra Cross : est, elle, encore chez Google, où elle fait partie de l’équipe qui développe App Engine. Et comme Mix-it a l’agilité dans ses gènes, elle viendra nous parler de la façon dont Google en fait. Je trouve particulièrement intéressant de voir comment les teams de devs utilisent les méthodes agiles chez Google et notamment leur workflow de développement et release.

  Ne serait-ce que pour ces deux talks, vous en avez pour vos 30€ (repas et goodies compris), non ? Mais ce sont seulement 2 des 30 speakers. Dans les invités, nous comptons également :
Pieter Hintjens, l’un des leaders du projet ZeroMQ et des rédacteurs de la spécification AMQP. Il nous serait difficile de faire meilleur speaker pour parler de messaging, ZeroMQ ayant une approche innovante dans le domaine en étant brokerless !
– Parce que nous voulions parler de Node, mais en parler avec quelqu’un qui connaisse vraiment le sujet, nous avons le plaisir d’accueillir l’un des rares core committer Node.js européen, j’ai nommé Felix Geisendorfer ! En plus de posséder une solide expérience technique sur le sujet, il a également lancé une startup dont Node est la principale brique technique. Il nous parlera de javascript côté serveur et si cette solution est vraiment plus scalable que d’autres technologies. Et y a-t-il sujet plus chaud en ce moment ?

  Je pourrais vous parler des 10 autres invités, mais je vois que ce post est déjà plus long que prévu… Bref, il nous restait alors 11 places. C’est là qu’entre en jeu le call for paper, sachant que ni les sponsors, ni les amis ne bénéficient de faveurs. Nous avons eu 64 propositions de talks! Et très peu ne nous plaisaient pas! La soirée de choix a donc été agitée. Il n’a pas toujours été simple de trancher, et nous avons essayé d’expliquer aux speakers refusés pourquoi, individuellement. Mais nous avons enfin notre programme, avec du Play! 2 (par l’un de ses développeurs), du Kanban, du Hadoop, du MongoDB (par une startup qui l’utilise tous les jours), du Devops (par une entreprise qui en fait tous les jours)… Ce genre de session avec un retour d’expérience concret nous intéresse beaucoup, et je suis sûr qu’elles vous plairont.

  Une programmation dont nous sommes très contents ! Amis lecteurs, j’espère vous voir nombreux le 26 Avril (Lyon, c’est pas loin, 30€ c’est pas cher et c’est éligible au DIF, pas besoin de poser de congés) !

fOSSa 2011 : retours sur la track Dev

Les 26,27,28 Octobre se tenait à Lyon fOSSa, une conférence par ordinaire organisée par l’INRIA. Comme le laisse supposé le OSS du nom, le thème central est l’open source, et le but de la conférence est de partager l’expérience entre les participants issus de l’industrie ou de la recherche, entre utilisateurs et producteurs de contenu open source. Les 3 jours abordaient des thèmes différents, je me suis pour ma part concentré sur la track Développement, qui proposait un programme sur une matinée rassemblant des speakers bien connus de nos JUGs (on reconnait bien là les goûts de @jponge, organisateur et maître de cérémonie ce matin là).

Il faut préciser que les talks sont courts, en anglais, et que la conférence était gratuite !

Oracle, 18 mois plus tard

Le premier talk est donné par @alexismp qui nous parle d’Oracle et du changement que le rachat a amené, par rapport à la politique de Sun, qui était clairement positionné sur l’open source.

Photo par Julien Ponge

Alexis commence par un rapide sondage sur ce que nous évoque Oracle :
– base de données
– argent
– open source
Les bras se lèvent plus majoritairement pour les deux premiers avec quelques rires pour le second, que la troisième option. Le but du talk d’Alexis est justement d’éclairer la position d’Oracle à ce sujet. Il nous rappelle du déroulement de l’acquisition et les doutes que l’on a connu (problème avec l’UE, les produits en double dans le catalogue Sun/Oracle sur lequel un doute planait comme NetBeans…). Oracle veut garder un Java attractif, malgré ce que la presse informatique en dit et malgré les départs emblématiques (dont James Gosling le papa de Java). Alexis nous parle aussi des points fachants, comme le procès avec Google pour l’utilisation de Java sur Android puis enchaîne sur une partie plus technique, HotSpot qui va récupérer les fonctionnalité de JRockit, OpenJDK rejoint par IBM, Apple et SAP.
Puis le départ de la fondation Apache du JCP, regretté par tout le monde et les différents projets qui ont forkés : Hudson, MySQL, OpenOffice. Dans les points positifs, Alexis note le soutien d’Oracle à GlassFish, qui dans sa version 3.1 inclue le clustering, ce qu’il ne proposait pas jusqu’a présent et dont Oracle aurait pu se passer avec WebLogic qui propose déjà cette option.

Au niveau communautaire il y a également des progrès, avec l’inclusion d’un JUG dans le JCP et JCP.next (JSR 348) approuvé ce mois-ci.
Le futur de Java, c’est Java FX2, Java 8/9, JavaEE7, et la convergence SE/ME.
Alexis conclue avec humour sur le « real evil plan » d’Oracle : investir, collaborer, encourager l’eco système.

OpenDJ, life after Sun-set

Ludovic Poitou prend la suite : c’est un ex employé de Sun, community manager OpenDJ chez ForgeRock, fork OSS de OpenDS.

Photo par Emmanuel Hugonnet

Quel est le modèle rêvé du projet oss : démarrer un projet seul, être rejoint par une communauté et commencer à gagner de l’argent avec. Modèle qui n’est pas le reflet de la réalité, si l’on en croit le rapide sondage dans la salle !
OpenDS a commencé par une volonté de réécrire SunDS et de l’open sourcer : stratégie un peu suicidaire qui sabotait la propre ligne de produit de l’entreprise, mais Sun était capable de faire ces choix. 30 personnes pour faire le développement, mais seulement 3 contributions externes en 4 ans. Ludovic nous montre les métriques de téléchargement au cours du temps, avec en parallèle les téléchargements réels (par ip) qui sont bien plus réalistes (et aussi plus faibles  évidemment).
Le rachat par Oracle va changer la donne : pas de volonté de poursuivre le développement d’OpenDS, mais le produit est conservé “ouvert”. Avec quelques personnes, Ludovic a forké le produit, ainsi est né OpenDJ et ForgeRock. ForgeRock est 100% OpenSource et spécialisé dans la gestion des identités (OpenAM, OpenIDM…). La communauté migre peu à peu vers OpenDJ, malgré seulement 4 développeurs. Déjà plus de contributions externes en un an que durant la vie d’OpenDS, il semblerait qu’une petite équipe de développeurs facilite la contribution en « effrayant » moins les contributeurs qu’une grosse équipe lancée à plein régime. Les challenges : rebatir une communauté, faire connaitre OpenDJ, réécrire la doc. Beaucoup de releases (tous les deux mois), beaucoup de bugfixes, OpenDJ est prêt pour la production. On a quelques chiffres sur 3 sociétés qui ont souscris à l’offre support : plusieurs millions d’utilisateurs, jusqu’à 200000 sessions parallèles, toutes utilisent de 6 a 12 serveurs.
Pour conclure, Ludovic explique qu’il n’y a pas une seule voie pour faire de l’OSS, trop de ressources fait peur aux contributeurs externes potentiel, alors que la participation est un reflet de l’ouverture.

Projet ALERT

Photo par Julien Ponge

Clara Pazuela nous parle de la façon de faire de l’OSS a ATOS :
– beaucoup de développeurs, qui communiquent par chat/mail et ne parlent pas tous anglais.
– Beaucoup d’utilisateurs qui rapportent des bugs mais peu de code.
Les bugs même très simples peuvent prendre très longtemps a être corrigé avec beaucoup d’interactions entre différentes personnes (mailing list, irc, forum, bugs liés…). ALERT est destiné a faire un “bus” qui centralise les informations, et fonctionne en publish/suscribe entre les sources d’informations et les consommateurs, avec un des informations sémantiques. C’est un projet de recherche soutenu par l’UE et dont le développement n’a commencé que depuis un an et pas encore releasé ou open sourcé.

Involvement of software engineering companies in OSS contributions

Jerome Petit, travaillant chez SERLI et JUG Leader du PoitouJUG nous parle des contributions OSS dans sa société et de l’impact que ces contributions peuvent avoir.

Photo par Orianne Tisseuil

SERLI c’est 65 personnes, beaucoup de Java et 10% du temps consacré à l’OSS. Ils offrent du temps pour contribuer aux projets OSS, de quelques jours à plusieurs mois sur différents projets (GlassFish, Sonar pour les produits d’éditeurs, Selenium, Jonas pour les produits communautaires, ou même Ceylon, le nouveau langage JVM de RedHat). La contribution va du bugfix à la core feature, parfois guidée par le besoin ou l’envie d’ajouter des fonctionnalités ‘bleeding edge’.
Cela change plusieurs choses dans leur entreprise :
– organisation : cela amène de la visibilité, de la crédibilité avec des speakers dans les grands events, des articles de blogs etc…
– business : il est plus facile de convaincre des clients, des missions plus pointues, de nouvelles opportunités (développer l’i18n pour Sonar, payé par les clients de Sonar). Les développeurs impliqués dans l’OSS sont très rapidemment visibles et demandés. Depuis l’ajout de l’OSS  le CA a plus que doublé en 5 ans, et  la part de Java dans l’activité a explosé.
– personne : pas de meilleure école de code que l’OSS, différente culture, motivation des développeurs et développement de leur potentiel.
C’est un cercle vertueux : contribution -> credit/visibilité/skills -> clients -> plus de revenus/recrutement de meilleur qualité -> contribution.
Il faut savoir garder un équilibre entre business et oss, faire les bonnes contributions, en respectant les différentes règles d’un projet ciblé, sa roadmap etc… Les core features sont les plus intéressantes et motivantes.
Pour SERLI, les retombées valent largement les investissements.
Très bon talk, inspirant sur la façon de faire du business et de l’OSS et comment les deux peuvent se marier et s’enrichir.

Opensource & Business at Cloudbees

Nicolas de Loof, employé de Cloudbees et JUG Leader à Rennes nous parle également de marier le plaisir et les affaires

Photo par Jerome Petit

Il commence par l’histoire de Jenkins : commencé en 2004 comme un projet perso par Kosuke Kawaguchi, qui a rapidement gagné une communauté. Les releases sont très fréquentes (1 par semaine) , les contributions très simples, extensible par plugins (dont le nombre augmentent toujours). Petite comparaison des stats Hudson/Jenkins histoire d’enfoncer le clou!
La communauté de Jenkins est une SPI : Software in the Public interest, différente d’Apache, qui permet de diriger son projet simplement, avec un board constitué de différents acteurs (Cloudbees, Cloudera, Yahoo).
Différents modèles sont possibles pour faire du business et de l’oss :
– Double licence, principalement supporté par une entreprise, CLA à signer pour contribuer, suit une roadmap commerciale (SpringSource, Sonatype) -> pas vraiment OpenSource, difficile de contribuer, pas pour Jenkins
– Support et service : ce qui est fait sur toutes les versions de Jenkins
– Formation (aussi pratiquée à Cloudbees)
– Version Pro : plus stable, sécurité, virtualisation (aussi pratiqué à Cloudbees)
– Hosting : avec le Saas Dev@Cloud
Cloudbees est parti de Jenkins pour bâtir toute une plateforme de services à la demande (Repo de code, Sonar, XWiki …) pour obtenir une forge logicielle complète. Si le sujet vous intéresse, les slides et l’enregistrement de Sacha Labourey (CEO Cloubees) sont disponibles sur le site du JUG et sur Cast-it.

From a legacy proprietary application to a modern libre solution

Emmanuel Hugonnet, travaillant chez Silverpeas et JUG Leader à Grenoble conclue la matinée.

Photo par Jerome Petit

Le projet Silverpeas a démarré en 99 avec 40 développeurs, en Java 1.2 et Weblogic. Après quelques années, le développement devient difficile : trop de bugs, pas assez de tests. Emmanuel est alors embauché pour ouvrir le projet et le ressuciter. Emmanuel nous explique les différentes étapes :
– Changement de licence
– Problème du build (1/2 journée) -> standardisation avec Maven
– Gestion des sources CVS -> SVN -> Git
– JPA2, migration vers API REST
– UI plus sexy avec GWT
– Ecrire moins de code, simplifier la communication entre modules.
Maven et Git est un combo gagnant et donne de la flexibilité et reproductibilité. L’utilisation de Jenkins et de Sonar les a également aidé pour améliorer la qualité du code.
Les résultats sont visibles : le projet évolue plus rapidement et simplement, moins de régressions, plus de plaisir à coder pour les développeurs. Le tout accompagné de musique !

Une matinée sympa autant pour les talks que pour les échanges en off entre passionnés d’open source, avec une organisation très bien réglée.

Allez, c’est pas tout ça, mais j’ai des patchs à proposer moi.

What’s next

Ce vendredi 27 Mai était l’occasion de découvrir l’avenir de notre métier à la conférence What’s Next organisée à Paris. De beaux locaux (le Grand Rex) et de bons speakers étaient au rendez vous !

Neal Gafter
Pour entamer la journée, un talk de Neal Gafter qui commence par rappeler l’histoire de Java, l’origine des disputes avec Google etc… Il nous parle ensuite des nouveautés de Java7 et des possibilités de Java8. Pas forcément la peine d’entrer dans le détail, rien de très nouveau ici. Sa conclusion : c’est mieux d’avoir quelqu’un comme Oracle qui dirige l’innovation et les progrès sur la plateforme Java, et que les efforts soient concentrés sur un seul projet open source (OpenJDK). Cela va dans la bonne direction et il pense que nous assistons a un renouveau de Java. Thomas Conté, architecte chez Microsoft, termine en nous parlant de Azure qui se veut ouvert non pas seulement a .Net mais aussi a Java, Ruby, Python, Php. L’intégration à l’IDE semble aussi bien penser. Pour plus détails si vous êtes intéressés, consultez le whitepaper Azure pour les javaistes.

Rob Harrop
On enchaine avec Rob Harrop qui nous présente RabbitMQ. Cette présentation est probablement l’une de mes préférées de la journée, on a vu des concepts et des démos, le tout dans 5 langages différents (Java, Python, Ruby, Erlang, Javascript !). RabbitMQ se base sur le protocole de messaging AMQP et supporte également STOMP, protocole de plus bas niveau. RabbitMQ est écrit en Erlang et fait partie du portfolio VMWare. Les démos s’enchaine avec des consumers/producers de messages dans des langages différents, avec des protocoles différent. La dernière démonstration montre un serveur node.js qui récupère des messages d’une queue et utilise le protocole websocket pour afficher en live les messages dans le browser.
Speaker très impressionnant et intéressant, si vous avez l’occasion de le voir, je le recommande chaudement !

Theo Schlossnagle
Si le nom du speaker m’était inconnu, son activité n’en est pas moins impressionnante : contributeur à une vingtaine de projets open source, dans différents langages, il est là pour nous parler architecture scalable. Son point de vue est intéressant car il a également travaillé dans les teams ‘ops’ et pas seulement ‘dev’. Il rappelle que le cloud et NoSQL ne sont pas des solutions miracles et que nos applications doivent avant tout être bien pensées pour scaler.
Il prône un modèle d’application ou chaque composant est entièrement découplé et communique avec les autres composants par messages déposés dans des queues. On retrouve là les propos du speaker précédent. Ce découplage permet ensuite de tester chaque partie en isolation, et ainsi grâce à la puissance du cloud, de vérifier des hypothèses sur le dataflow, le cheminement de vos données dans les traitements.
Il faut également vérifier la consistance du comportement en effectuant plusieurs fois la même action : si cela se passe mieux ou moins bien que prévu, il faut enquêter pour trouver la cause et on apprendra forcément quelque chose sur le fonctionnement de l’application. Il insiste également beaucoup sur les traitements asynchrones afin que l’expérience utilisateur soit fluide. Le monitoring (nombre de messages, de connections parallèles, etc…) est également important. Pour terminer il rappelle le ‘Fail often, fail early’ pour garder une expérience utilisateur la moins dégradée possible. Speaker intéressant également !

Michael Chaize
La présentation tourne autour de Flex 4.5, un peu la même que l’on avait pu voir dans nos JUGs. Il faut dire que Michael est français (le seul à nous faire une conférence dans la langue de Molière!) et que c’est un habitué des présentations Flex. Sa démo, un client Twitter, réalisé en live, nécessite très peu de code. Le déploiement peut se faire sur de nombreuses plateformes : navigateurs évidemment mais aussi tablettes android, playbook, ios…
La présentation se termine par le retour d’expérience d’un développeur Flex. Pas mal, un peu de UI ca change…

Jonas Boner
Créateur du framework Akka, travaille maintenant pour TypeSafe (pour ceux qui n’ont pas suivi voir article précédent). Scala est intéressant pour faire des applications… scalables! Et Akka permet de tirer profit de la puissance a notre disposition (Boner vient d’acheter une machine 48 coeurs pour tester pour 5000$, un prix relativement faible pour une telle machine). Petite déception pour ma part, la présentation est à peu près la même que celle de Viktor Klang à Devoxx. Celle ci étant disponible sur Parley’s, je vous conseille d’y jeter un oeil si vous êtes intéressés. La première partie nous présente le fonctionnement des acteurs, puis la seconde des ‘remote actors’ qui permettent de faire du distribué (basé sur NIO, Netty plus précisement et ProtoBuf). Akka 2.0 permettra de faire des ‘clustered actors’ et de gérer notamment la configuration de déploiement.

Shay Banon
La présentation portait sur Elastic Search un moteur d’indexation et de recherche très puissant. On pourrait dire que c’est un SolR sous stéroïdes. Pour tous ceux qui ont travaillé avec un outil de ce genre, la présentation est passionnante : aucun slide mais un enchainement de petits cas pour montrer la puissance de l’outil. Tout commence par le démarrage d’une instance d’Elastic Search en console, puis un enchaînement de commande ‘curl’ pour l’utiliser ! Elastic Search est en effet entièrement exposé par une API REST à laquelle on envoie du JSON, que ce soit pour ajouter des documents à indexer ou faire des requêtes. On passe ensuite en mode distribué en ajoutant plus de noeuds ce qui déclenche une répartition automatique de la charge ainsi que la réplication des données. Tout cela sans que cela dérange vos requêtes : impressionnant ! Si on coupe un noeud, la charge est bien évidement à nouveau répartie de manière uniforme entre les nœuds restants. Point marrant : les instances d’Elastic Search sont nommées aléatoirement à leur création pour simplifier leur suivi : nous avions donc Docteur Sun, Torso et Pasco lors de la démo. Un ajout de document ne nécessite pas de déclaration des différents champs : ES se charge pour vous d’interpréter de quel type est chaque champ. Mais il est également possible de faire cette configuration par l’API REST et de définir soi même les types. L’indexation peut faire appel à un ensemble d’analyzer : phonétique, ngram, etc (on retrouve les analyzer Lucene). Les requêtes offrent elles une véritable DSL qui permet de combiner filtre, analyzer etc… On retrouve également la gestion des facettes : par terme (nombre de fois ou chaque terme est utilisé), statistiques sur un champ (min, max, moyenne, etc…), valeur dans un intervalle donné, histogramme (voir blog ES). La dernière fonctionnalité présentée est le ‘percolator’ qui permet d’enregistrer les requêtes et voir si un document répond à l’une d’entre elles (le document n’est pas indexé mais renvoie les requêtes matchées). Une solution à surveiller si vos besoins d’indexation exige de la scalabilité (le speaker annonce des temps de requêtes de l’ordre la centaine de ms pour plusieurs millions de documents).

Kohsuke Kawaguchi
La journée se termine par une présentation de Koshuke Kawazaki sur Jenkins et son futur. On retrouve pas mal d’idées autour de la gestion des DVCS, les builds distribués exploitant la puissance des machines, les outils de revue de code comme Gerrit. Rien d’exceptionnel mais il est bon de voir que le papa de Jenkins est encore plein d’idées pour la suite !

Une belle journée donc, avec bien sûr l’occasion de rencontrer les fidèles des conférences autour d’un café à la pause. Merci à la société Zenika qui prenait en charge l’organisation de cette journée !