Présentations

Feedback your Summer Camp !

Ludovic Borie   Thibault Pouget   Conférence  10:00 - 11:00   Salle Chanchardon

Partons d'une idée simple : une application pour que les participants d'une conférence puisse partager leur avis sur les différentes sessions auxquelles ils assistent. Classique me direz-vous.

Ajoutons quelques contraintes :

  • N'importe qui peut créer sa conférence
  • Très simple à développer
  • Très simple à déployer

Pour répondre à ces besoins, voyons voir ensemble jusqu'où nous pouvons aller en une heure à l'aide des technologies Google.

Mots clés : App Engine, Cloud Endpoints, AngularJS, Drive, et pourquoi pas une application mobile qui va avec ?

Défi relevé ?

Google AppEngine 2.0

Alexis Moussine-Pouchkine   Conférence  10:00 - 11:00   Salle Casoar Tadorne

Google AppEngine est une plate-forme PaaS introduite il y a cinq ans avec des restrictions telles que la "whitelist" des classes autorisées, les timeouts, ... Pour ceux qui ont su travailler dans ce contexte, l'auto-scaling, le versioning et les nombreux services constituent une plate-forme d'une rare puissance. Même si l'arrivée de Backends et de TaskQueues ont permis de lever certaines contraintes, le temps est venu pour une nouvelle version majeure de AppEngine.

  • Vous développez dans le Cloud? AppEngine propose désormais Java 7, Maven de l'intégration continue, un développement dans des IDE Cloud et une API Endpoints pour développments mobiles (Android, iOS).
  • Vous vous sentez emprisonnés dans un environnement non standardisée? N'ayez plus crainte avec l'arrivée du TCK open source AppEngine et des implémentations JBoss CapeDwarf et AppScale.
  • Vous voulez des application plus granulaires ? App Engine Modules est là pour vous !
  • Vous souhaitez tirer partie de Google Compute Engine directement depuis AppEngine? Pas de problème!

Venez donc vous rendre compte par vous-même comment Google App Engine se réinvente tout en gardant ses principes fondateursde simplicité et de (auto-)scalabilité.

CodeStory S03E01 - "Celui dans l'ascenseur infernal"

David Gageot   Jean-Laurent de Morlhon   Tools in action  11:00 - 12:00   Salle Casoar Tadorne

Ding ! Les portes s'ouvrent devant nous. Montez dans l'ascenseur infernal jusqu'au dernier étage. 55 étages, 55 minutes pour nous voir résoudre en live le premier quizz du concours de code CodeStory saison 3.

Dong ! "5ème étage"

Nous prenons connaissance du sujet et déjà il faut écrire le premier test. What else ? TDD, Simple Design, KISS. Tout cela va nous servir. Surtout nous avons notre IDE bien câblé dans les doigts et la tête.

Dong ! "20ème étage"

Les tests s'enchainent à toute vitesse et de nouvelles fonctionnalités doivent être codées. Infinitest lance les tests, pendant que les refactoring s'enchainent. Le CPU chauffe. Les doigts volent sur le clavier.

Dong ! "42ème étage"

Un coucou à la SSII du 42ème, juste le temps de reprendre son souffle avant la dernière ligne droite. Il ne faut pas faiblir même si les tests viennent de passer au rouge.

Ding ! "55ème étage". Terminus.

Juste à temps, nous avons résolu le premier quizz. Maintenant à vous de jouer ! Nous lancerons en direct le site du concours CodeStory saison 3.

Du JavaScript dans mon usine logicielle

Christophe Jollivet   Tools in action  11:00 - 12:00   Salle Chanchardon

Vous avez cédé à la tendance et décidé de développer la partie présentation de votre application en utilisant le dernier framework JavaScript à la mode.

La question qui vient après le choix de ce framework est : Comment cela va-t-il s’intégrer dans mon usine logicielle ? Vous avez entendu parler de Yeoman ou de Grunt mais vous connaissez Maven. Vous avez déjà écrit des tests avec Jasmine mais votre Jenkins affiche des résultats de tests avec JUnit. Et qu’en est-il de votre couverture de tests ou des métriques de qualité dans votre Sonar ?

Au cours de cette session, je vous propose de découvrir les outils de build et gestion de dépendences JavaScript. Nous verrons comment ils peuvent s’intégrer dans votre usine logicielle et intégration continue.

Comment utiliser Couchbase depuis votre application Play 2

Mathieu Ancelin   Quickie  12:00 - 12:15   Salle Chanchardon

Ce quicky sera l'occasion de voir comment utiliser au mieux Couchbase depuis une application Play 2 en tant que Cache ou source de données principale tout en bénéficiant d'une intégration poussée avec la surpuissante API JSON, l'API asynchrone non bloquante et les Futures, ainsi que des nombreux goodies fournis par le framework depuis Java ou Scala.

Make sense of your (BIG) data

David Pilato   Quickie  12:00 - 12:15   Salle Casoar Tadorne

Building analytics live

Et si on fabriquait des dashboards selon notre besoin au moment où nous en avons besoin ?

Je vous ferai découvrir lors de cette session comment coupler la puissance d'Elasticsearch et la simplicité de Kibana pour analyser sans efforts vos données, qu'elles proviennent de Twitter, de vos logs de Prod ou de vos données marketing...

SoapUI pour la SOAP et le REST

Antony Guilloteau   Quickie  12:15 - 12:30   Salle Chanchardon

Autour d'une petite application train tweet, une session de live coding pour démontrer l'utilité de SoapUI dans les développements de type SOA : shoot, mock & test.

Gatling en 15 min

Rossi Oddet   Quickie  12:15 - 12:30   Salle Casoar Tadorne

Au menu :

  • Qu'est-ce qu'est Gatling ?
  • Sa philosophie, en quoi il se distingue de ses concurrents
  • Les nouveautés de Gatling 2
  • une démonstration de son utilisation sur un exemple simple
Le tout préparé et servi en 15 min.

Minitel dans les nuages

Laurent Huet   Quickie  13:20 - 13:35   Salle Chanchardon

Dans cette session, vous allez découvrir comment "marier l'internet français d'hier avec le Cloud d'aujourd'hui !"

De manière décalée, venez découvrir comment, avec un petit peu de hardware, on peut superviser ses instances du cloud avec un Minitel et une carte Raspberry Pi! Ce bricolage trans-générationnel servira de support pour présenter la programmation sur Raspberry, depuis le niveau hardware jusqu'à notre bonne vieille JVM.

Spring Integration in Action

Grégory Boissinot   Quickie  13:20 - 13:35   Salle Casoar Tadorne

Spring Integration est la librairie de l'écosystème Spring, proposant une boîte à outils pour l''implémentation des Entreprise Integration Patterns (EIP) dans son contexte.

Véritable extension du framework Spring core à travers un même modèle de programmation, cette librairie fournit un ensemble de composants sur étagère, prêt à l'emploi pour faciliter l'intégration intra et inter applications. Elle est en outre de plus en plus utilisée (au détriment de ses principaux concurrents comme Apache Camel) au sein des projets proposant déjà une stack Spring.

Cette session permettra de faire découvrir les concepts et la mise en oeuvre de Spring Integration au sein de vos projets.

Nous verrons également comment Spring Integration peut s'utiliser comme bus de communication inter-applications sans la complexité de la mise en place d'un ESB.

Tester efficacement

Thomas Queste   Quickie  13:35 - 13:50   Salle Casoar Tadorne

Certains n'écrivent pas de tests car il faut certaines compétences et il est vrai qu'à la fin, avec beaucoup d'effort, tout marchera.

D'autres écrivent beaucoup de tests, après ou avant d'écrire le code, mais là-aussi la démarche peut conduire à certains gâchis.

Alors comment faire de la qualité en étant toujours efficace ?

Nous verrons certains chausses-trappes et leur contournement, quelles méthodes et comment détecter le test à ne pas écrire (oh sacrilège !). Car oui, disons le : le meilleur test est encore celui qui n'a pas besoin d'être écrit.

Gradle au quotidien

Sébastien Cogneau   Quickie  13:35 - 13:50   Salle Chanchardon

Gradle amène une syntaxe déclarative et une grande souplesse pour organiser son build, vous pourrez assister au live-coding d'un script de build. En partant d'une feuille blanche vous verrez comment packager l'application en jar puis en war, démarrer un serveur jetty contenant l'application,personnaliser la phase de tests pour utiliser jacoco et s'interfacer avec Sonar.

Live coding: Web temps réel avec Play 2

Mathieu Ancelin   Tools in action  14:00 - 15:00   Salle Chanchardon

Les applications web temps réel font usage de WebSockets, Server Sent Events, Comet et d'autres protocoles pour offrir une communication permanente entre le serveur et le navigateur. De nombreux frameworks web offrent déjà ce genre de possibilité mais à travers des APIs très basiques ne permettant que d'envoyer/recevoir des messages.

Cependant ce modèle atteint ses limites lorsqu'il s'agit de manipuler des flux de données riches.

Cette présentation vous montrera comment utiliser les Iteratees et les Futures offerts par Play 2 pour manipuler, filtrer et fusionner à la demande des flux de données de manière réactive et non bloquante à travers des exemples concrets et funs utilisant les technologies web temps réel.

Elastifiez votre application : du SQL au NoSQL en moins d'une heure

David Pilato   Conférence  14:00 - 15:00   Salle Casoar Tadorne

Au cours de cette session "live coding", David reprendra une application Java full SQL "à papa" pour la réécrire en NoSQL en 45 minutes

En s'appuyant sur CouchBase et Elasticsearch, il mettra en avant les bénéfices de cette nouvelle architecture :

  • la facilité de mise en place (productivité)
  • l'élasticité (scalabilité)

Les thèmes abordés seront :

  • Approche document
  • JSon
  • REST
  • Cache / Memcache
  • Filtres et Facettes

La démonstration sera exécutée avec du code Java et AngularJS.

Notre plan diabolique est de vous convertir au NoSQL à tel point que vous ne puissiez faire autrement que de le mettre chez vous (et chez vos amis) !

Soyons RESTful avec RESTX

Xavier Hanin   Tools in action  15:00 - 16:00   Salle Chanchardon

Le monde du web est en pleine ébullition, on voit de plus en plus de JS sur le frontend avec des frameworks comme Angular ou Backbone qui finissent même pas séduire les développeurs Java que nous sommes.

Mais pour le serveur, le monde Java garde quand même l'avantage avec son typage, sa maintenabilité et ses performances. Et pour faire communiquer les deux, rien de mieux que des services REST !

Dans cette session, je vous propose donc quelques révisions sur les principes des services REST, pour voir ensuite au travers de nombreuses démos comment RESTX, un outil open source, innovant et made in France peut vous aider à construire, documenter et tester l'API REST idéale pour vos applications web de demain.

Pour plus d'infos sur RESTX, jetez un oeil à restx.io

Java 8 et les lambdas : définitions, patterns, performances.

José Paumard   Conférence  15:00 - 16:00   Salle Casoar Tadorne

Java 8 sera la prochaine version de Java disponible, en mars 2014. Elle porte en elle une révolution : l'introduction des lambdas. Cette introduction va radicalement changer nos habitudes de programmation.

Au-delà d'une nouvelle syntaxe, les lambdas introduisent de nouveaux concepts qui transforment le langage, ses API, et la JVM elle-même. L'API Collection est entièrement réécrite, comme elle l'avait été lors de l'introduction des génériques en Java 5. Mais cette fois, ses patterns d'utilisation sont entièrement revus. Ce sont donc nos habitudes de programmation au quotidien que Java 8 va changer.

Cette présentation a pour objet de passer en revue tous ces points, de montrer comment les lambdas vont nous permettre d'écrire sans peine un code performant. De nombreux exemples pratiques sont donnés, centrés sur l'utilisation de l'API Collection.

Un backend NoSQL pour Geektic avec MongoDB !

Jérôme Creignou   Sébastien Prunier   Tools in action  16:15 - 17:15   Salle Chanchardon

Avez-vous entendu parlé de "Geektic - le site de rencontre pour les geeks" ? Non ?

Il s'agit de l'application développée en live lors de la conférence Devoxx France 2013 par l'équipe Code Story ! Actuellement elle vous permet de rechercher des geeks par affinité, via la saisie d'un mot clé (java, scala, chats, ...).

Lors de ce Tools In Action, nous vous proposons de rajouter des fonctionnalités à Geektic, notamment :

  • trouver des geeks proches de moi
  • améliorer la recherche (plusieurs mots-clés par exemple)

Pour cela, nous mettrons en oeuvre un backend NoSQL avec MongoDB et utiliserons les dernières fonctionnalités de la version 2.4 : recherche géographique et recherche full text.

Plus de détails sur Geektic :

Plus loin avec CDI : extensions, design patterns et eco-système

Antoine Sabot-Durand   Conférence  16:15 - 17:15   Salle Casoar Tadorne

La spécification CDI sortie avec Java EE 6 en 2009 vient d'être mise a jour avec sa version 1.1 (sortie avec Java EE 7). Souvent sous estimée, car réduite à une simple solution d'injection de dépendance, cette technologie constitue le moteur d'intégration de technologies tierces dans Java EE. Dans cette présentation nous reviendrons rapidement sur l'historique et les idées reçues autour de CDI et Java EE puis évoquerons comment des techniques et frameworks permettant de tirer le meilleur de CDI et de Java EE en évoquant notamment :

  • La mise en oeuvre des extensions CDI
  • L'utilisation de la bibliothèque d'utilitaires et d'extensions CDI : Apache Deltaspike
  • L'intégration de code legacy dans une application CDI
  • Quelques design patterns utiles et facilement mis en oeuvre avec CDI
  • La bibliothèque d'exemples de JDF
  • La mise en oeuvre de la sécurité avec PicketLink
  • D'autres frameworks basé sur CDI pour enrichir vos applications

Une nouvelle vision des tests avec Arquillian

Alexis Hassler   Conférence  17:15 - 18:10   Salle Casoar Tadorne

La réalisation de tests unitaires est fondamentale pour développer des logiciels de qualité. Cependant, tout miser sur eux est illusoire, car il faudra à un moment ou un autre vérifier que les composants interagissent convenablement et que leur intégration dans l'environnement cible fonctionne comme prévu. De plus, si l'application fournit une interface graphique, il faut vérifier si les interactions avec celle-ce sont corrects.

Arquillian est une plateforme qui est en train de révolutionner la façon de développer les tests d'intégration et fonctionnels dans le monde Java. Et malgré des défauts de jeunesse, Arquillian permet de faire des tests automatisés de composants et d'applications Java, depuis la persistance jusqu'à l'interface graphique, en couvrant un périmètre qui dépasse largement son cadre initial qui était Java EE.

Lors de cette session, vous apprendrez comment Arquillian est capable de tester :

  • l'intégration de composants Java EE, sur différents serveurs d'applications,
  • le code de persistance avec l'extension APE,
  • les interfaces Web, en facilitant l'utilisation de Selenium.

jparsec - Parsing made easy

Arnaud Bailly   Conférence  17:15 - 18:10   Salle Chanchardon

Il n'est pas rare dans des systèmes d'une certaine taille qu'il soit nécessaire d'interpréter ou de compiler des mini-langages : scripts, configuration, macros, "On a souvent besoin d'un plus petit que soi" et les DSL (Domain Specific Languages) sont partout. L'approche traditionnelle pour un DSL externe est d'écrire une grammaire compilée par un générateur tel que javacc ou Antlr, introduisant un niveau de complexité supplémentaire dans le développement.

jparsec est une simple bibliothèque, inspirée d'Haskell, qui permet d'écrire des grammaires directement en Java au moyen de combinateurs fonctionnels. Une telle grammaire devient testable, incrémentale, composable ce qui permet de développer plus vite et de manière plus fiable des mini-langages.

Cette présentation est une introduction pratique à l'écriture d'interpréteurs de langages avec jparsec: Nous y développerons un mini-langage fonctionnel inspiré du lambda-calcul, le tout dirigé par des tests.

Ils soutiennent le Jug SummerCamp