Devoxx France 2013 : ma première journée

28 mars 2013

Tags : Devoxx

Pour ceux qui ne connaissent pas Devoxx France, il s'agit de LA conférence java où il faut être (1400 personnes). Il s'agit principalement de conférences présentées par des indépendants (pas de conférences commerciales donc).
J'étais déjà présent à la première édition en 2012, et me voici donc de retour à cet événement passionnant.
La première journée de cet évènement est consacrée aux "Universités" (conférence de 3H permettant de voir des sujets en profondeur) et aux "Hands on labs" (sorte de TP de 3H). Il y a également 3 créneaux de Tools in actions (30 minutes pour présenter un sujet/outil) en fin de journée.

Les mains dans le Ceylon : venez coder avec les auteurs du language : Stéphane Épardaud et Emmanuel Bernard

Cette première session à laquelle j'ai assité était un Hands on labs, on est donc parti pour 3 heures de code avec ce nouveau langage que j'avais déjà eu l'occasion de tester à l'occasion de ma participation à Code Story.
Je pense que l'organisation de ce type de session est extrêmement compliqué de part la différence de connaissance et de préparation entre les participants.
J'ai toutefois passé un bon moment qui m'a permis d'apprendre certaines bases qui me manquaient pour bien coder avec ce language que je trouve très prometteur. Ce que j'aime dans la philosophie de Ceylon, c'est qu'ils ne sont pas partis sur le principe d'écrire le moins de caractères possible, mais plutôt d'avoir un code le plus lisible possible, sans pour autant écrire d'informations redondantes. Malgré tout j'ai du mal à croire à la réussite d'un nouveau language, mais "wait and see".

Stratégie de testing de code legacy : David Gageot et Jean-Laurent Morlhon

Cette deuxième session était également un Hands on labs. David et Jean-Laurent nous ont remis un projet "legacy" (code compliqué, 0 test, ...) en début de session, et le but était d'améliorer le code sans tout en garantissant la non régression pendant ces trois heures. David et Jean-Laurent nous donnaient les clés méthodologiques afin de pouvoir atteindre cet objectif au fur et à mesure de la session.
J'ai personnellement beaucoup aimé l'exercice qui semble plus proche de notre travail de tout les jours.
Il s'est par contre avéré que ils ont été un peu ambitieux sur le niveau de difficulté de l'exercice, il faudra sans doute simplifier un peu ce code legacy avant de le confier aux participants la prochaine fois.

3615 Cloud@Devoxx : Nicolas De Loof et Laurent Huet

Cette session était très particulière, et relevait plus de la détente que d'une réelle conférence, mais franchement, après avoir fait 2x3h de TPs, c'était plus qu'utile. Bref un super moment, un Nicolas De Loof toujours aussi drole, et un Laurent Huet qui nous montre ses talents de bricoleur. Ils ont réussi à nous montrer un minitel permettant de déployer un application java dans le cloud!.

Golo, un language simple et léger basé sur invokedynamic : Julien Ponge

Golo c'est quoi? C'est un nouveau language que ne se prend pas la tête! Il a surtout été créer pour des besoins particulier. Ce qui fut agréable sur cette session, c'est que Julien ne se prenait pas la tête et ne manquait pas d'humour. Bref, super moment!
Pour les curieux, les slides sont déjà disponibles sur Speaker Deck.

Good Bad and Ugly Maven - a puzzler session : Nicolas De Loof et Arnaud Héritier

Une nouvelle session de Nicolas De Loof, cette fois accompagné de son co-écrivain d'un livre sur maven : Arnaud Héritier. J'ai passé un super moment, et à la vue de ma timeline, je ne suis pas le seul! Je pense que cette session fera partie des sessions à ne pas rater sur Parlays.


Cette première journée est maintenant terminée, super fatigante, mais plein de choses apprises, vivement la suivante!

PS : Cet article n'ayant pas été relu, merci donc de pardonner les fautes :)

Commentaires

Code Story : la sélection finale

25 février 2013

Tags : CodeStory, Devoxx, Google, Java

Si vous me suivez sur twitter, vous savez sans doute déjà que Jeudi dernier (21/02) avait lieu la finale de Code Story. Je vais tenter de vous raconter comment s'est passée cette soirée haute en stress

Le lieu

Cette soirée s'est passée chez google à Paris. En tant que fanboy Google, ça suffisait déjà à faire de cette soirée une super soirée :)

Pour ceux qui ne connaissent pas les bureaux de Google, je peux vous dire un truc, c'est que ça fait envie. Pour vous faire baver, voici simplement la photo du "coin" fumeurs :



Le déroulement

Tout est expliqué sur le blog de Code Story, voici cependant un petit résumé. On avait des données avec pour chaque participant à Code Story, sa ville, trois trucs qu'il aime et deux trucs qu'il n'aime pas. Avec ça on devait construire un site internet from scratch permettant aux participants de connaître ceux avec qui ils ont des atomes crochus.


Notre participation

Les participants étaient par binômes pour ce concours. J'étais pour ma part avec Alexandre Ardhuin (@a14n).

Nous sommes arrivés les mains dans les poches sans rien avoir préparé (ce qui nous a sans doute fait défaut). La première étape a donc été de monter une stack Web et de publier ça pour que ce soit accessible sur Internet. Cette étape nous a pris à peu près 1 heure, à la moitié du temps nous avions donc un magnifique site web accessible sur Internet qui affichait "coucou"...

Pour afficher autre chose que "coucou", nous avons utilisé le framework Angular.js ce qui nous a permis d'afficher rapidement la liste des participants, le tout codé à l'arrache dans un seul fichier index.html

Alexandre est ensuite parti sur une présentation géographique des participants via Google Map, mais il n'a pas pu aller au bout à cause des quotas sur le geo-codage, dommage...

Je suis pour ma part parti sur le refactoring du code pour séparer Javascript, templates HTML et index.html afin de pouvoir mettre en place les routes Angular.js. Tout cela afin d'obtenir un lien par participant affichant les détails de celui-ci. Toutefois, je suis resté bloqué sur de la syntaxe Javascript pendant au moins 10 minutes :


angular.module('CodeStory');
différent de :

angular.module('CodeStory', []);
Dans le premiers cas, rien ne s'affiche, et l'erreur dans le console est : "Error: No module: CodeStory", en bref, un compilateur c'est pas si mal!

Ce refactoring m'a pris beaucoup de temps du coup (environ 20 minutes), et par conséquent il nous restait 25 minutes à peine pour faire la page de détail d'un participant. Nous avons mis environ 15 minutes à mettre en place une page affichant les personnes de la même ville, puis 7 minutes pour afficher les personnes ayant un "Like" en commun. Le "git push" permettant de déployer la dernière fonctionnalité a été fait sur le gong (heureusement qu'on avait un déploiement simplifié!).

Le code final est dispo sur github.

Le résultat

Une fois l'épreuve terminée, chaque binôme a eu 3 minutes pour présenter l'application aux jury. Nous sommes passés en premier, ce qui a permis de faire rapidement retomber le stress...

Au final c'est Xavier Hanin (@Xavierhanin) et Christophe Labouisse (@XtlCnslt) qui ont gagné, et nous avons été second. Un grand bravo à eux, et je leur donne rendez-vous à Devoxx France pour les voir en action :)

Nos erreurs

Notre première erreur a été de venir les mains dans les poches, il était prévisible que le Jury allait nous demander de coder une appli Web, si nous étions venus avec une stack Web prête à déployer, nous aurions gagné une heure...

N'ayant pas de stack web prête à déployer nous aurions dû partir sur un site directement hébergé sur github, n'ayant jamais utilisé le backend, cela aurait fait l'affaire, et nous aurions encore une fois gagné une heure...

Pour finir, voici :

Pour les plus curieux le diff est dispo sur github



Si vous avez eu le courage de lire jusque là, vous aurez peut-être le courage de regarder la vidéo!

Commentaires

Retour de Devoxx France : troisième journée

08 mai 2012

Tags : Devoxx, Java

Après mon retour sur la première journée (ici) et la deuxième journée (ici), voici celui de la troisième et dernière journée.

Les keynotes

Après avoir avalé un nombre de cafés important (la fatigue commençant à se faire sentir), je me dirige vers la salle des keynotes. La salle est toujours aussi impressionnante (950 places).

Trends in mobile application development

Je vais pas pouvoir vraiment vous parler de cette keynote, elle était réalisée par IBM, et tout le monde s'endormait...
La keynote était tellement intéressante que tout le monde se lâchait sur twitter. La seule chose marrante de cette conf a été la fin, où Nicolas Martignole nous a dit que le tweet wall était en panne et qu'il ne pouvait pas l'afficher, belle manière de ne pas mettre mal à l'aise un des sponsors de Devoxx :).

Portrait du développeur en "The Artist"

Rien à voir avec la conf précédente, c'est plutôt l'inverse...
Patrick Chanezon nous livre son portrait de la vie classique d'un développeur, passionnant. Je ne peux que vous conseiller d'aller voir les slides sur slide-share.
Le sujet principale était le cloud, mais cette conf allait beaucoup plus loin et j'ai adoré.

Abstraction Distractions for France

Neal Ford nous parle de couches abstractions, je pense que c'est une des conf les plus impressionnante que j'ai vu, Neal est un très bon orateur et la conf est très bien préparée. Ça ressemblait à une key-note Apple :).

Kotlin ou CodeStory?

Finnalement je suis retourné à CodeStory, si vous ne savez pas ce que c'est, aller voir mon billet sur la deuxième journée :).
Toujours aussi intéressant, cette fois j'ai ramener mon Ordi, j'ai donc même forké et mis en place l'environnement de dev, mais le temps d'installer ZombyJS, j'ai pas pu aller beaucoup plus loin (il fallait installer Node.js...).
Kotlin est lui un nouveau langage créé par Jetbrain, j'irai voir la conf quand elle sera disponible sur Parleys.

Changeons la conception de nos applications grâce aux services Cloud

Cette conf donnée par Cyrille Le Clerc est intéressante mais je ne l'ai pas trouvé adaptée au publique, pas assez de code et beaucoup trop de présentation de produits... Elle avait cependant l'intérêt de faire un inventaire des produits, je me suis noté qu'il fallait que la revoie lorsqu'elle sortirai sur Parleys.

An overview of Guava : Google Core Libraries for Java

Ben en fait non, quand je suis arrivé devant la porte, c'était déjà plein, et je me suis donc fait refoulé...
Du coup, je suis retourné voir CodeStory, chose marrante ils ont mis en place un système de Cache à l'aide de Guava :).

Java Caching with Guava

Après avoir vu une utilisation du cache avec Guava, je vais voir la conf théorique sur le sujet. En toute franchise, je me suis rendu compte que rien ne vaux la pratique. J'ai l'impression d'avoir plus appris avec les 10 minutes d'explications par la pratique qu'avec les 55 minutes de conf théorique.
Pour ceux qui ne connaissent pas Guava, je pense que c'est la première dépendance à ajouter sur un projet. Guava c'est apache-common en moderne et mieux fait :).

Android, Graphisme et Performance

Romain Guy (développeur de la couche graphique d'android) nous livre quelques astuces pour réaliser des applications Android qui marchent bien.
Un des trucs que j'ai noté (et que je n'ai pas encore eu le temps de tester), c'est le StrictMode qui permet de faire planter l'application dès qu'on fait un accès à une ressource lente dans le UI Thread. Cela permet de corriger tous les accès qui sont fait dans le UI Thread et qui ne devraient pas.

Les Cast Codeurs Podcast

Pour la dernière "conf" de la journée, je suis aller voir l'enregistrement live des Cast Codeurs. Pour ceux qui ne connaissent pas, c'est LE Podcast Java en France. L'ambiance était excellente, Atlassian distribuait des bières ce qui ne gâcher rien :). Si vous voulez vous rendre compte de l'ambiance, il suffit d'écouter l'épisode associé (ici).
Pour les bretons, il y aura un autre enregistrement live au Breizhcamp.


Toutes les conférences de Devoxx France étaient filmées et seront disponible sur Parleys au fil de l'eau durant l'année en gratuit ou rapidement en payant (les participants y ont accès tout de suite).
Je tiens à remercier les organisateurs (surnommés les polos rouges), et vivement l'année prochaine!

Commentaires

Retour de Devoxx France : deuxième journée

01 mai 2012

Tags : Devoxx

Après mon retour sur la première journée à Devoxx France (billet ici), voici celui de la deuxième.

Les keynotes

Après le deuxième petit dèj, voici le temps des keynotes. La salle était impressionnante (950 places).

Fier d'être développeur?

Pierre Pezzardi, co-fondateur d'OCTO, nous fait part des raisons pour lesquelles, selon lui, le métier de développeur est mal vu. Le développeur, c'est le gars qui crée des logiciels trop compliqués, qui ne plaisent pas aux utilisateurs, et sans jamais demander leurs avis. Il faut donc prendre le temps de comprendre un peu plus la finalité des fonctionnalités que l'on développe. Il est possible que prendre 5 minutes pour déplacer un bouton est bien plus d'impact pour les utilisateurs que de mettre des mois à développer des fonctionnalités obscures sans vraiment comprendre à quoi ça sert.

This could be Heaveb or this could be Hell

Bon, je l'avais évité jusque là, mais ça y est, voici le moment de ma première conf en anglais...
Deux développeurs du London JUG nous donnent la vision angélique et diabolique de l'avenir de Java. Ça manquait pas d'humour, et ils ont pensé à ceux, qui comme moi, ont du mal avec l'anglais en mettant des traductions de leur slide en français :). Je n'ai pas appris grand chose, mais on s'est bien marré pendant cette keynote.

Manipulation de bytecode : démocratisons la magie noire

Je me suis promis qu'un jour je jouerai avec le bytecode, je suis donc allé voir cette conf afin de me donner des pistes. Les speakers nous ont pointé un usage auquel je n'aurais pas pensé : les tests. Injecter du bytecode peux permettre de tester des cas compliqués type filesystem full. J'ai également retenu deux outils à aller voir de plus près : byteman et javassist.

Le déjeuner

À l'image de celui du premier jour, celui-ci était bien sans être exceptionnel. Il fut encore plus compliqué de trouver une place pour manger :)

Code Story

Ne trouvant pas de conf qui me donne envie, je décide d'aller faire un tour à Code Story. Il s'agit donc de quatre développeurs qui codent en pair programming avec des itérations d'une heure, et ce pendant 2 jours. Un des deux groupes prend le temps d'expliquer ce qu'il fait tandis que l'autre code plus vite. Au bout d'une demi heure, deux développeurs changent de paire.
C'est donc l'occasion de découvrir des outils et manières de développer pour être plus productif. Ils développent sous IntelliJ (pour ceux qui n'ont jamais essayé cet IDE, je vous conseille fortement de le faire). Les tests sont toujours développés en premier en utilisant Infinitest pour vérifier l'état en permanence. Autre idée, le build incassable, ils utilisent un script pour effectuer le push, ce script lance les TUs, et si certains ne passent pas, pas de push.
Comme sur tout les projets, ils ont rencontré des difficultés (problème de syntaxe en css par exemple), ce qui a permis de les rendre plus humain :)
La salle de Code Story était pleine à chaque fois, ce qui prouve que ce genre d'exercice a largement sa place dans une conf.

Kanban pour les nuls

Cette conf était très intéressante, Kanban est une méthode agile qui m'attire énormément. Si vous vous intéressez aux méthodes agiles, je ne peux que vous conseiller de regarder Kanban de près. Cette méthode est beaucoup moins contrainte que Scrum et se base énormément sur les fameux post-it sur un paper board. Mais ce n'est pas aussi simple que ça, l'ajout de workload sur les états permet de contraindre le flux et d'introduire le "flux tiré". Le principe est qu'une fonctionnalité ne rentre dans le flux qu'une fois qu'une fonctionnalité en est sortie. Cela est bien entendu un peu plus complexe que ça, mais j'aurais du mal à tout vous expliquer :).
Une seule question me taraude l'esprit, c'est comment appliquer ce genre de méthode lorsque le périmètre et les jalons sont imposés!

Code Story again

Comme vous vous en doutez, le principe m'a plu, du coup j'y retourne :)

Introduction à Ceylon

Ceylon, pour ceux qui n'en ont pas entendu parler, c'est un nouveau langage. Le but de ce langage : faire le langage idéal pour les javaistes si on pouvait partir de la feuille blanche (pas de rétro-compatibilité à gérer). Emmanuel Bernard et Stephane Epardaud nous présentent donc ce nouveaux langage, avec du code qui compile! Au niveau road map, l'interopabilité avec Java vient d'être introduite, on va donc pouvoir commencer à faire des choses intéressantes.
Au delà du sujet, le fait que ce soit présenté par Emmanuel m'a bien plu. Pour ceux qui ne le connaissent pas, c'est un des castcodeurs (podcast à écouter d'urgence). Donc le voir en vrai était plutôt sympa, c'est en plus un très bon speaker.


À bientôt pour la troisième journée :).

Commentaires

Retour de Devoxx France : première journée

24 avril 2012

Tags : Devoxx, Java

J'ai eu l'occasion de participer à LA grosse conf Java en France, et franchement c'était que du bon.

Les rencontres

Un des trucs les plus plaisant à Devoxx a été les rencontres que j'ai pu faire et les discussions que j'ai pu avoir avec les speakers et participants. Un exemple : c'est pas tous les jours qu'on a l'occasion de discuter avec un développeur de Montain View qui bosse sur Android (Romain Guy en l'occurrence). Ce n'est pas non plus tous les jours qu'on a l'occasion de développer avec un développeur d'exception (David Gageot).

Je vais donc maintenant essayer de vous faire un petit compte rendu de ces trois jours qui furent très riches!

Premier jour

Première étape : le café, et les discussions avec les têtes connues et moins connues.
Pour ma part je suis arrivé à 8h tous les matins, ce qui m'a permis de prendre le temps de discuter, les confs ne commençant qu'à 9h30.

La première journée est un peu particulière, elle est principalement consacrée à des "Universités" et des "Hands-on Labs" qui sont des sessions de 3 heures avec pour les Labs de la manip sur son ordi. Ça laisse donc le temps de rentrer un peu plus dans le détail du sujet, et un peu moins le survoler.

Les 3 A pour Java EE 6

Cette session était donc consacrée à Java EE6. Elle s'est déroulée sous forme de TP permettant de mettre en pratique les nouveautés JEE6. Le TP s'appuyait sur le projet exemple initié par Antonio Goncalves.
J'ai profité de cette session pour tester NetBeans, et franchement, pour faire du JEE, c'est juste excellent. On était 2 sous NetBeans sur 40 personnes environ. Ceux qui utilisaient Eclipse ont commencé à avoir un environnement de dev fonctionnel au bout d'un peu plus d'1h, alors que j'avais quasiment fini. J'avais tout de même anticipé en préparant l'environnement la veille. L'absence d'internet sur place rendant toute installation compliquée.
J'ai donc pu mettre en pratique CDI et JAX RS, et j'ai plutôt été agréablement surpris. On va peut être pouvoir enfin se passer de Spring :). Les speakers étaient très disponibles et plutôt sympas (ce qui était le cas pour tout les speakers, je ne vais donc pas le répéter :) ).

Après cette session, une petite pause déjeuner. J'ai pu manger à ma faim, et sans être exceptionnel (ça vaut pas les galettes saucisses du breizhcamp), c'était plutôt bon, merci donc aux organisateurs. Encore une occasion de discuter et partager avec plein de monde.

Hackergarten Paris

Ne trouvant pas de sujet qui m'intéresse particulièrement, je décide d'aller au Hackergarten. J'ai donc pu découvrir ce que c'est que cette chose imprononçable. C'est en fait l'occasion de contribuer à un projet open-source. La session commence par un inventaire des projets open-source représentés (par un contributeur). Voici ce qui est ressorti de l'inventaire (du moins ceux dont je me souviens) :
  • Maven
  • Groovy
  • Jenkins
  • Infinitest
  • Je sais plus mais y en avait d'autre :)
Il y avait donc du lourd, j'ai décidé de contribuer à Infinitest. Ce projet se concrétise par un plugin Eclipse et un plugin Intellij permettant d'avoir un état des tests unitaires en permanence dans l'IDE. Dans Eclipse, à chaque build (autant dire tout le temps), le plugin analyse les deltas afin de lancer les tests potentiellement impactés par la modification.
Nous nous somme retrouvés à deux pour contribuer à Infinitest encadrés par David Gageot qui est le Leader du projet. Pendant que David nous présente le code, j'installe l'environnement de dev. David nous présente également une idée de fonctionnalité à réaliser. Actuellement le plugin analyse les dépendances entre classes afin de sélectionner les tests à exécuter, mais si un test est impacté par une modification de fichier plat, il n'est pas exécuté. Sans rentrer dans les détails, cette session c'est traduite par une pull request dans github, c'était donc plutôt concret. Cela m'a permis de découvrir le développement de plugin Eclipse, et toute la difficulté pour réaliser des tests automatisés dans ce genre d'environnement.



Les tools in action

La journée s'est terminée pour ma part par trois tools in action, ce format est un format intense : 30 minutes pour présenter un sujet.

Le premier était sur Selenium Grid, qui permet de mettre en place un pool de browser qui serviront ensuite aux tests automatisés avec Selenium. Malgré toutes les difficultés qu'a pu rencontrer Mathilde Lemee pour les démos, cela donne une bonne idée du fonctionnement de l'outil et donne envie de tester.

Le suivant était sur AndroidAnnotations : sur scène deux speakers (Pierre-Yves Ricau et Alexandre Thomas). AndroidAnnotations est un framework dont le but est de simplifier les développements Android en utilisant massivement les annotations. Les 30 minutes ont quasiment été entièrement utilisées à du live-coding, ça aurait pu être un exercice casse gueule, mais les deux speakers ont préparé leur truc et tout se déroule sans encombre. Résultat : faut que j'essaye, et j'ai bien envie de contribuer au projet.

La tout dernière session fue consacrée aux lambdas en actions avec la beta du JDK8. Ce que j'ai retenu : enfin une évolution majeure du langage Java. Une conséquence marrante des Lambdas est la quasi introduction du polymorphisme (les interface peuvent maintenant avoir des implémentations par défaut pour les méthodes).

L'article sur la deuxième journée arrivera un peu plus tard :)

Les photos ont été récupérées sur les albums de Claude

Commentaires