Devoxx France
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 !