Evènements

Retour sur BreizhCamp 2013

Publié le : Auteur: Florent DUPONT 4 commentaires
evenement

Ce vendredi 14 Juin marque la fin des deux journées exceptionnelles de la conférence BreizhCamp qui a eu lieu à Rennes. J’y étais présent pour ces deux jours et vous propose un compte rendu rapide des différentes sessions auxquelles j’ai participé.

Magnificent JavaEE 7

Antoine Sabot-Durand nous présente une session pratique dans laquelle nous voyons les nouveautés de JavaEE7. Au programme : CDI 1.1, coup d’oeil rapide JSF 2.2, JPA 2.1. C’est surtout CDI qui a été mis en avant lors de cette session de 3 heures. Nous avons pu réaliser une application de Chat utilisant WebSocket, puis l’améliorer au fur et à mesure…

 

Les tests sont effectués dans un GlassFish 4, fraichement sorti, exécuté en mode embedded depuis Maven. On notera au passage que WildFly, le nouveau nom de Jboss 8, implémentera également Java EE 7, mais n’est pour l’instant qu’en version alpha.

Minitel On the Cloud

Laurent Huet, fou de bidouilles techniques et cartes embarquées – et accessoirement nostalgique des vieux claviers qui font du bruit – nous présente une démo technique dans laquelle il utilise un Minitel pour se connecter à Cloudbees : il fallait oser, Laurent l’a fait ! Le minitel a ici un rôle passif : il récupère l’entrée (Clavier) qui communique via la prise péri-informatique avec un Raspberry PI, qui a son tour se connecte à un PC, qui effectue des requêtes à CloudBees via WebService. Le tout est ensuite récupéré puis affiché sur le terminal du minitel. Sans intérêt au quotidien, mais très fun !

Developpement sur @CloudBees avec un #minitel au @breizhcamp ... on Twitpic

DevOps ou l’admin système par tous les bouts

Nicolas Ledez nous explique les principes de Devops. Le mur de la confusion entre les développeurs d’une part – qui souhaitent faire évoluer les applications – et les opérationnels (exploitants) d’autres part – qui souhaitent stabiliser les applications. L’intérêt du mouvement DevOps est de rapprocher les deux métiers et de savoir faire intervenir les opérationnels au plus tôt dans le démarrage du projet. A l’heure actuelle, les opérationnels interviennent seulement à la fin du projet : il est important de les faire intervenir dès le début et également de savoir spécifier les besoins de production dès le départ du projet, au même titre que les spécifications fonctionnelles. Cela passe par de la sensibilisation des développeurs aux problématiques de production pour leur donner une « culture production », facilitant la compréhension des problématiques de production. Mais également aux « décideurs », chose encore difficile en France dans les grosses entreprises qui trainent encore leur historique organisationnel. Il n’y a pourtant pas de raison que ça ne marche pas car des grands du Web, tels que Google, Nokia, LinkedIn, Amazon ou encore American Express suivent déjà ce mouvement avec succès.

Nicolas et Matthias font ensuite un tour des outils facilitant le rapprochement Dev/Ops : Chef, Puppet, VirtualBox, Vagrant, Capistrano.

Plus d’infos sur Rennes Devops ou encore sur dev2ops.fr

Google Cloud Messaging in Action

Thomas Guérin présente le Cloud Messaging, une API offerte par Google pour pusher des notifications aux clients mobiles sous Android. Les messages peuvent être des notifications send-to-sync pour « réveiller » le terminal et lui dire d’aller se mettre à jour, ou alors un message-with-payload, c’est à dire un message avec des données pouvant aller jusqu’à 4ko.

L’intérêt de cette approche est de ne pas garder une socket de connexion ouverte en permanence, ce qui serait trop couteux : on n’active le réseau pour effectuer une synchro serveur que si nécessaire et on peut ainsi mutualiser les requêtes. On réduit ainsi la connectivité et on réduit la consommation de la batterie. Cette API est déjà utilisée à l’heure actuelle par les outils de Google sur mobile : GMail, GTalk par exemple.

Plus d’info sur la page de Google.

L’amour est dans le graphe

C’est LA conférence qui m’a le plus surpris. Djamel Zouaoui raconte un retour d’expérience sur l’utilisation de Neo4j, la base NoSQL orienté Graphe, dans un cas très concret : le moteur de recommandations de Meetic. Il explique en détail la problématique de recherche de prospects dans une base orientée graphe qui, pour les relations humaines, peut s’avérer compliqué et long à calculer. Étape par étape, il explique comment optimiser le requêtage Cypher pour réduire les temps de réponses. Ce que j’ai trouvé intéressant, c’est que la priorité est avant tout donnée au filtrage « fonctionnel » : supprimer ou réduire les aberrations statistiques, réduire le scope de recherche à une fourchette d’âges, réduire le nombre de prospects au top 20 par exemple. Ensuite, on peux effectuer les optimisations « techniques » : utiliser des sous requêtes (avec WITH), ou aller encore plus loin en utilisant les unmanaged extensions (équivalent des procédures stockées pour Neo4j) et encore encore plus loin en utilisant directement l’API Core, de bas niveau, pour requêter directement en Java.

Neo4j s’avère idéal pour les données fortement connectée, mais n’est cependant pas magique. Il faudra tweaker les requêtages pour avoir des temps de réponses corrects dans certains cas. Ça reste une implémentation à fort potentiel sur certains cas de figure : gardons ouvert notre esprit car Neo4j pourrait répondre à nos futurs besoins.

Crafting Custom Android Views

Dans une présentation très graphique et Design, Cyril Mottier explique la mise en place de vues personnalisée sur Android. Le garçon sait de quoi il parle et est reconnu sur le sujet puisqu’il a été nommé « Google Developer Expert » par Google. Seulement deux développeurs en France on ce privilège : attention, ça rigole pas 😉 !

Les Views sont les composants graphiques de base sous Android (Button, TextView, FrameLayout, etc.). Cyril nous explique les responsabilités des Views : Mesure, Positionnement et Dessin. Les intérêts de créer ses propres Views sont évidemment multiples : factoriser du code existant, optimiser le rendu de l’interface, innover en proposant une expérience ou un design unique, accéder au comportement protégé d’une vue existante…

Au passage, on voit Android Studio, la nouvelle mouture de l’IDE Android poussé par Google et qui risque de remplacer petit à petit Eclipse ADT…

Web Components, l’avenir des Développeurs Web

Les WebComponents sont encore en cours de spécifications auprès du W3C mais vont petit à petit devenir un standard. Les WebComponents permettent de partager des composants communs, d’encapsuler, d’agréger des éléments au sein d’une page Web Html5. Avant, la solution pour le faire était de passer par des IFRAME (ouh, c’est nul!). Julien Vey nous explique comment utiliser le shadowDOM (pour l’instant sous Chrome) pour capitaliser sur des templates, tout en isolant le style et les scripts. Il existe pour l’instant des solutions avec Dart WebUi, ou AngularJS Directive (je vous invite sur ce point à voir la présentation d’Antoine Richard à sujet ou encore ce post), mais non standard pour l’implémenter en attendant…

A surveiller: le projet Polymer de Google, qui propose des polyfills pour les WebComponents.

The future is NAO with Python

Une autre présentation fun et qui sort du lot. Franck Calzada, qui fait parti du Developer Program d’Aldebaran Robotics (au passage Société Francaise : leader mondial de robotique humanoïde) a apporté son joujou : un robot NAO et nous montre les possibilités offerte par cette curieuse petite bête ! Au programme : traitement d’image, déplacements, son pour que NAO écrive, dessine,  joue au golf. Les possibilités sont infinies. Je vous laisse découvrir quelques vidéos de ses capacités :


Android Bootstrap

 Jean François Garreau fait un retour d’expérience sur les librairies Android : ActionBarSherlock, ACRA, Compatibility Package, ViewPager. HaloEverywhere, Maps V2, NavigationDrawer (anciennement appelé SlidingMenu), Android Annotations, RoboGuice. Ce qu’il faut retenir de cette présentation, c’est qu’il faut éviter d’essayer de mettre toutes les librairies ensembles, car certaines restent incompatibles (ou difficilement compatibles) entre elles. C’est le cas notamment de ActionBarShelock qui, de par son implémentation (héritage, apk-lib) pose des limitations avec les autres librairies.

Les slides de la présentation sont disponibles son blog

Papy fait du Scala

Damien Lecan, créateur du plugin Play2-War-Plugin fait un retour d’expérience sur son utilisation de Scala. Je ne m’étend pas sur le sujet car je suis en cours de préparation d’un prochain article sur ce sujet, ce sera donc l’occasion de reparler du point de vue de Damien !

BreizhCamp 2013, c’est fini, rendez-vous l’année prochaine..

La conférence est passée trop vite. Elle aura été l’occasion de découvrir ou redécouvrir certaines technologies et de faire de belles découvertes notamment autour de NAO ou Neo4j. Rendez-vous l’année prochaine pour découvrir de nouvelles choses !!

  • Vincent Hanniet

    Merci Florent. Super intéressant !

    Au passage, on retrouve le Raspberry PI mis en avant par Philippe dans son compte-rendu de EclipseCON France.
    A propose de Neo4J : c’est utilisé chez Sodifrance ! Voir Kevin à la R&D pour plus d’infos…

  • franck calzada

    Bonjour, petite précision, concernant la partie sur ‘The future is NAO with Python’, je tenais à préciser que Franck Calzada (https://twitter.com/f_calzada) ne travaille pas chez Aldebaran Robotics, mais chez SQLI. En revanche, il fait parti du ‘Developer Program’ de chez Aldebaran.

    • Florent Dupont

      Bonjour Franck. Merci pour cette précision. Je n’étais en effet plus trop sûr. J’apporte la correction.
      Merci encore pour cette super présentation 🙂

  • Vincent Hanniet

    Voir aussi le compte-rendu de Cédric Pineau ici : http://sodiblog.sodifrance.fr/?p=1873#more-1873