Sorry folks, to be concise I choosed not to translate my blog post in English for now, thus I respect the 75% french - 25% english part of Devoxx France ;).
However, if you're interested in my opinion, you can try to Google translate the french version below
J'ai eu la chance d'assister à l'intégralité de la première édition de Devoxx France.

Devoxx France ?

Pour les personnes peu bercées dans la culture Java il s'agit de la création en France d'une conférence destinée aux développeurs passionnés. C'est un format adapté de l'ancienne conférence Javapolis renommée Devoxx il y a quelques temps (une sombre histoire d'utilisation du terme déposé Java que Sun voulait empêcher) qui a lieu tous les ans en Novembre à Anvers en Belgique. La principale différence entre les deux conférences réside dans l'obligation pour Devoxx France de proposer au minimum de 75% de talks en français.

Formule

La formule retenue pour cette conférence est divisée en deux formats :

  • le premier jour était dans un format "Université" qui correspond à des conférences de 3h permettant de bien approfondir un sujet précis, des sessions Tools in action de 30 minutes pour découvrir une nouvelle technologie et des sessions "Tools in action" de 3h permettant de mettre les mains dans le camboui,
  • les seconds et troisièmes jours étaient dans un format conférences de 55 minutes ainsi que deux sessions quickies de 15min à la pause déjeuner .

Chaque soir il y a eu des B.O.Fs permettant aux différentes communautés de se retrouver et d'échanger, ainsi que la soirée Meet & Greet du jeudi ouverte à tous.

Quelques chiffres

Je retranscris les chiffres que l'équipe de Devoxx France nous a communiqué lors de la keynote d'ouverture :

  • 133 présentations
  • 199 speakers
  • 36 JUGs et UGs
  • 1250 participants

Impressions

Jour 1 : 18 Avril 2012

J'ai participé, dans l'ordre, aux sessions suivantes :

Les 5 mercenaires du DevOps

Le sujet est très porteur actuellement, beaucoup de structure sont en train de se demander comment faire communiquer de façon plus efficace ses différents services. L'approche utilisée pour traiter le sujet a réellement été très instructive et basée sur un cas concret : la création d'un service de partage de fichiers. La chaîne des techniques utilisées est partie de la rache (ISO 1664) pour arriver à un déploiement en continu via la construction de package natif déployable automatiquement par le serveur d'intégration continue.

Guide de survie en théorie des langages

Cette présentation nous a proposé un parcours de l'ensemble des domaines existants permettant d'exprimer nos besoins algorithmiques par le biais des langages. Des échanges très intéressants ont eu lieu lors de la session permettant de réellement se rendre compte de la problématique de recherche inhérente à la théorie des langages. Le support utilisé pour illustrer la programmation fonctionnelle était Scala.

Réduire la pression sur l'allocation mémoire : le prochain pas dans l'optimisation des performances de la JVM

La problématique de la bonne utilisation de la mémoire est quelque chose qui me tient à coeur c'est pourquoi je suis allé voir cette présentation sur un projet naissant permettant de faire du cache off-heap : Apache DirectMemory. Celui-ci en est à ses balbutiements mais est vraiment très intéressant et mérite de réellement s'y pencher !

Chouchoutez votre code JavaScript

Le javascript prend une place de plus en plus importante dans nos applications, cependant il reste encore en retrait en ce qui concerne l'outillage permettant de s'assurer de sa qualité. Dans cette présentation, différents outils permettant d'augmenter la qualité du code produit ont été présentés. L'approche était didactique en montrant comment, de façon simple, remonter des informations depuis jenkins vers sonar (résultats des tests, violations, couverture...).

Réaliser des tests de charges avec Gatling

La problèmatique de montée en charge d'une application et du bon comportement de celle-ci est réellement quelque chose de fondamental dans les applications que nous produisons actuellement. Ce projet récent mais néanmoins complet offre une approche basée sur un DSL pour tester son applicatif. La façon de faire est très intéressante puisque plus "parlante" selon moi que ce que les autres outils fonctionnant sur un mécanisme d'enregistrement permettent de faire. La présentation nous a permis de cerner comment utiliser le projet et visualiser les résultats obtenus. C'est un projet que je vais essayer au sein de SRMvision pour anticiper notre montée en charge.

Jour 2 : 19 Avril 2012

Bienvenue à Devoxx France

Cette keynote d'ouverture était très bien tenue et a permis de resituer l'histoire de Devoxx France et du Paris JUG qui en est l'organisateur originel.

Fier d'être développeur ?

Présentation très intéressante sur la façon d'aborder les choses du point de vue du développeur. Le sujet a été très bien traité et permet de ressortir en se disant qu'il est nécessaire pour un développeur de s'ouvrir aux personnes qui l'entourent pour produire du logiciel qui réponde réellement aux besoins utilisateurs.

This could be Heaven or this could be Hell

La présentation a été abordée de façon humoristique essayant de se projeter dans 5 ou 10 ans et de deviner ce que peut devenir le paysage du développeur. La présentation a été rondement menée et permet de prendre du recul en se disant qu'énormément de choses peuvent changer en très peu de temps.

Manipulation de bytecode : démocratisons la magie noire

Cette présentation a permis d'aborder, de façon simple, le bytecode manipulé par la JVM. Après une introduction rappelant les mécanismes utilisés en assembleur, différents outils jonglant avec le bytecode ont été présenté, de la génération de bytecode via ASM, à l'injection de code dynamiquement via Byteman en passant par la programmation orientée aspect d'AspectJ. Enfin, la présentation de Jooflux, projet de recherche permettant de changer, à chaud, les appels de méthodes grace à invokeDynamic du JDK7 a conclu la présentation. Le tout a été présenté avec une très bonne approche, didactique et surtout assez exhaustive des possibilités offertes via la manipulation du bytecode.

NodeJS and JavaScript Everywhere

Cette présentation a permis de montrer de façon très simple, la puissance du Javascript côté serveur grace à NodeJS. Le speaker a fait la démonstration du développement d'un proxy http basique en une vingtaine de lignes de javascript. Le résultat est assez bluffant il faut l'avouer. Il a ensuite prolongé sa présentation par une petite revue des points de vigilance nécessaire avec la programmation fonctionnelle, utilisation de fonctions comme méthodes de rappel pour éviter d'être bloquant.

Client/Server Apps with HTML5 and Java

Cette présentation de James Ward a permis de se rendre compte de la simplicité de développement en utilisant Play2! Ceux qui étaient à son université la veille m'ont dit qu'ils ont eu l'impression de revivre la même présentation, ce qui est fort dommage. L'axe utilisé lors de la présentation prônait le fait de s'appuyer au maximum sur les CDN pour servir les données statiques de son site (pour réduire la latence), et de servir les données dynamiques en utilisant JSON. Sa démonstration était bien sûr appuyée par l'utilisation d'heroku pour déployer simplement son application dans le cloud.
C'est exactement l'approche utilisée par Trello pour leur très bonne application de gestion de tâche : ils distribuent le moteur en utilisant les CDN et fournissent les données en utilisant du JSON, la mise en forme est faite par un moteur de templating Javascript.
La technique permet de facilement transformer une application "classique" en application communicante via des appels Javascript asynchrones, en attendant que Websocket soit réellement démocratisé.
La présentation a été l'occasion pour James Ward de nous parler du projet web-jars qu'il venait de lancer, l'initiative est excellente, et l'idée simple, il s'agit de simplement utiliser la puissance de la gestion des dépendances de maven pour représenter les librairies javascript utilisées dans un projet. L'approche est bien plus élégante qu'un bête copier coller des fichiers javascript au sein de son projet.

BigData et Hadoop au secours de téraoctets de logs inexploitables chez l'un des plus grands sites marchands du web européen

Je pense qu'il s'agit d'une des conférences les plus intéressantes que j'ai pu voir cette année. Le sujet traite d'une étude d'une réelle problèmatique d'entreprise. Le sujet était la gestion des logs d'un site marchant, le volume de données à traiter était considérable (7 Go de logs / serveur / jour pour 500 serveurs), l'idée est d'extraire le maximum d'informations des logs en un minimum de temps. Je ne pourrais pas facilement résumer la présentation mais je peux citer les technologies utilisées pour arriver à une exploitation correcte des logs et une analyse complète avec seulement 2 minutes de délai.
La chaîne utilisée pour cette analyse de log part d'une centralisation des logs dans un cluster Hadoop grace à l'utilisation de Flume (pour l'instant syslog-ng est utilisé mais n'est pas réellement indispensable), de là, l'interrogation des données est faite via MongoDB et la restitution visuelle est faite grace à Play! La chaîne est relativement simple mais a nécessité des optimisations de la configuration des différentes couches réseau traversées (pile TCP, interface réseau dédiée...)

Pour un développement durable

Je m'attendais à une présentation permettant de résumer de façon efficace les différentes pratiques permettant à un développement de durer dans le temps, je pensais que j'entendrais des évidences, mais pas autant que j'en ai entendu, le discours était bien mené mais trop simpliste selon moi, je pourrais le résumer en une phrase : "prendre le temps de bien faire les choses au début coûte moins cher que de devoir en assurer la maintenance".

B.O.Fs

J'ai participé au BOF destiné à l'Open Source, le thème était intéressant et il y a eu un vrai échange sur les sujets suivant :

  • Qu'est ce qui nous entraîne à contribuer à l'Open Source?
  • Comment justifier la contribution Open Source à son employeur ?
  • Où en serait le paysage informatique sans l'Open Source (l'exemple de la chaîne de build a été pris comme exemple)?

J'ai ensuite profité de la fin de la soirée pour discuter avec les différents exposant présent sur les stands et enfin terminer cette dernière journée avec l'équipe du Paris Android User Group ainsi que Romain Guy au restaurant, où nous avons pu échanger sur nos différents parcours et nos activités.

Jour 3 : 20 Avril 2012

Trends in mobile application development

Cette présentation était une présentation sponsorisée d'IBM, rien d'intéressant à se mettre sous la dent, le réveil difficile a en plus été plutôt inutile. Cette présentation ne m'a strictement rien apporté, à part l'envie de prendre un café supplémentaire pour rester éveillé.

Portrait du développeur en "The Artist"

Excellente présentation, Patrick Chanezon a pris le parti de comparer la vie d'un développeur à l'histoire de The Artist, pour relever les écueils auquel un développeur est souvent confronté au cours de son expérience professionnelle. Le passage quasi obligatoire en chef de projet au bout d'un laps de temps très court qui finalement ne correspond pas aux envies de la majorités des développeurs. Je n''ai finalement pas regretté de m'être levé, cette intervention était réellement exceptionnelle.

Abstraction Distractions for France

Neal Ford est un speaker reconnu, je n'avais jamais eu la chance d'assister à l'une de ses présentations, c'est maintenant chose faite et je peux vous confirmer que sa réputation n'est pas surfaite. En admettant que nous sommes obligés de nous positionner au dessus d'abstractions pour réaliser notre travail de tous les jours, il a permis, via des exemples très bien trouvés, de faire passer le message qu'il est nécessaire de connaître le niveau d'abstraction inférieur à celui sur lequel nous nous basons pour être réellement efficace dans notre travail.

Improving Resource Utilisation - the JVM, the OS and the Hardware

J'ai été un peu déçu par cette présentation, je m'attendais à de réels exemples et bonnes pratiques permettant de tirer le maximum du matériel. Il s'agissait en fait d'une conférence rappelant l'architecture de nos systèmes et nous rappelant que la principal goulot d'étranglement de nos systèmes se trouve être les accès au monde extérieur depuis le ou les CPU(s) et qu'il est donc important de bien gérer les entrées / sorties.

Hibernate OGM: JPA pour NoSQL

Très bonne présentation permettant d'appréhender la version NoSQL de l'ORM Hibernate. L'idée est de réutiliser au maximum l'existant d'Hibernate pour être capable de passer d'un système relationnel classique à un backend NoSQL en utilisant le même mécanisme d'annotation que celui qui est connu de tous sur les entités JPA. Le projet est pour l'instant encore en phase de démarrage, et les backend supportés ne sont pas nombreux (Infinispan, Mongodb de façon sommaire)

An Overview of Guava: Google Core Libraries for Java

Conférence un peu décevante, je m'attendais à avoir autre chose qu'une simple lecture de la documentation de l'API de Google Guava. Bien qu'intéressant, il n'y avait finalement que peu de points qui n'étaient pas abordés explicitement dans la documentation du projet. Cependant, l'ouverture vers l'API de cache m'a donné envie d'aller voir la conférence suivante qui traitait justement de cette API.

Java Caching with Guava

Cette conférence était malheureusement très similaire à la précédente, l'approche n'était pas très intéressante et se résumait à une lecture de l'API documentée. Quelques exemples venaient étayer l'ensemble, mais je n'ai pas trouvé le contenu très enrichissant.

OOM m'a tuer : paramétrage de la Heap et du Garbage Collector sous forte charge

Cette conférence était une étude d'un cas pratique exposant, de façon didactique, les différentes étapes et concepts à connaître lorsqu'on veut optimiser au maximum la configuration de la mémoire au sein de la JVM utilisée par son application. L'objectif étant de minimiser au maximum les phases de "Stop the world" présentes lorsque la JVM lance le Garbage Collector pour récupérer de la mémoire.

Les Cast Codeurs Podcast

Les trois jours de Devoxx France se sont terminés sur l'enregistrement live d'un épisode des Cast Codeurs en direct de Devoxx France. Au menu, un bon moment de rigolade et de convivialité que vous pouvez librement écouter en vous rendant sur le site.

Conclusion

C'est la première fois que je me rend à ce genre de conférence, et ce n'est certainement pas la dernière. Bien que rythmées, les journées sont loin d'être ennuyeuses, les sujets abordés par les conférences sont dans la majorités des cas très intéressants, et il est également possible de faire des rencontres sympa et d'échanger simplement avec d'autres développeurs. Un point très positif est que toutes les conférences seront visible sur la plateforme Parleys, dont un accès est fourni à chaque participant. Il est ainsi possible de revoir toutes les sessions !
Merci à toute l'équipe des organisateurs qui s'est démenée pour organiser ces trois jours : Rendez vous à Devoxx World en Novembre si je parviens à y aller, et sinon, à Devoxx France l'année prochaine !

I will be one of the 1200 geeks in Paris to attend the first edition of the famous Devoxx conference in France. I will try to give feedback here on the keynotes I attend throughout the 3 days of this conference. Stay tuned...

Have a look at the teaser :

Migrating to Git

At work, we made the move from subversion to git as our version control tool. I used git for a few times before we migrate the whole project thanks to the git-svn bridge, and, apart from the usual headache when it comes to merging branches, I was rather convinced we would make the migration to git. To explain what branching model I was expecting to use, I dig the Internet for a good tool, hoping to migrate our so "1.0" Trac version control and issue management to a more github like one.

Founds

There is not as much tools as I first thought, I found gitorious, which seems to be a good tool, but it looks complicated to setup and lacks (or I didn't find it) a good graphical representation of the branches in the repository.
I came across gitlabhq, which is a starting project, but promising as it aims to mimic github in many ways. I've tried it and I must say I am very impressed, it is now one of the tool we use internally, it is not yet a perfect tool but it does its jobs very well. We still use our old Trac environment with git integration to hunt down our bugs and control ticket workflow with commit messages (blog post to come). We also use Trac's wiki to write our internal documentation toward developpers.

Apple silently announced their future release of Mac OS X operating system to come this summer (2012). The pages on Apple website show the new features and claim this release is the missing bridge between the iPad and the Macs, I think it narrows the gap between their two OSes even more than they claim, I fear a completely bound to Application Store operating system requiring jailbreak to be free in OS X 10.9...