Les Novenciens au pays Devoxx

Partager sur linkedin
Partager sur twitter
Partager sur facebook

Les Novenciens au pays Devoxx

 

La 3ème édition de la conférence Devoxx France 2014, s’est déroulée du 16 au 18 avril dernier.

Devoxx 2014 était à guichet fermé sept semaines avant la date d’ouverte, avec 24 exposants, 170 conférences, 1500 visiteurs et 5 NOVENCIENS.

Sans faire la revue détaillée de toutes ces présentations (que l’on pourra retrouver sous http://www.parleys.com/), quelques mots sur chacune d’entre elles écrits par nos 5 Novenciens au pays des développeurs.

 

Dans le monde merveilleux de Java 8 …

  • ” Tout ce que vous avez toujours voulu savoir sur les lambdas et plus encore ” de Rémi Forax

« L’occasion pour moi de commencer par un sujet arrivé avec Java 8 (sortie en Mars 2014), que je n’avais pas encore creusé.

Sujet très intéressant, le développement des lambdas, et speaker génial puisqu’il explique simplement des choses pouvant être compliquées. Regardez bien les noms des experts de la JSR 335 (https://jcp.org/en/jsr/detail?id=335).

Sans se formaliser sur la forme (cf. le slide des objectifs de la présentation :o))), il nous fait suivre le parcours qu’ont suivi les experts, les choix et surtout les raisons de ces choix (bonnes, mauvaises ou simplement le hasard) ainsi que les anecdotes qui ont ponctuées la sortie de ce changement de langage, permettant à Java d’avoir ses HOF (High Order Function).

D’autre part, dans les points d’histoire de cet aboutissement, j’ai apprécié le récit de la “guerre des closures”, prémice de la sortie des lambdas avec l’opposition entre trois catégories de développeurs : ceux côté compilateur (BGGA), les développeurs d’API (CICE) et enfin les utilisateurs d’API (FCM).

J’ai également aimé la capacité à expliquer ce que sont les lambdas aussi bien d’un point de vue API, qu’au milieu d’une stacktrace d’exception ou encore deeper dans le bytecode.

C’était donc une présentation très riche et très didactique où l’on ne voit pas le temps passer !

Pour avoir un aperçu en attendant la mise à disposition sous Parleys, une précédente présentation du sujet par le même speaker :

http://www.parleys.com/play/52b0c3e4e4b0729480086caf/chapter0/about»

Sébastien

 

«Trois heures sur les lambdas pour commencer. Une excellente présentation, avec beaucoup de retour sur le processus qui a amené aux choix définitifs sur l’implémentation et la syntaxe adoptée (le speaker a participé au JSR 335), ainsi que les détails de fonctionnement au niveau de la JVM.

Pour ma part j’en retiens : beaucoup de sucre syntaxique, pas forcément utile tous les jours dans mon métier de développeur applicatif, mais qui au final prend tout son sens pour l’utilisation des librairies. »

Romain

 

  • ” Java 8 Streams & Collectors : patterns, performances, parallélisation ” de José Paumard

«Cette deuxième université, continuité de la précédente était là encore l’occasion pour moi d’aborder les nouveautés de Java 8.

De ce fait on trouvait à nouveau : speaker de très grande qualité, très clair dans ce qu’il montre et explique, pour nous amener au cœur du sujet, étape par étape.

Balayage large puis zoom sur les différents points de l’API Stream dans une première partie pour nous emmener sur une session live coding plus concrète. Cette 2e partie permettant de vraiment visualiser la manière d’utiliser les Streams et Collectors sur des exemples parlants.

Un peu plus dur sur la fin mais c’est le format qui veut cela : 3h de présentation, 2e présentation de ce type de la journée … ca retourne un peu le cerveau. »

Sébastien

 

« La suite logique de la conférence du matin (cf : Tout ce que vous avez toujours voulu savoir sur les lambdas)! On rentre en détails dans les nouvelles API de Java 8. Le contenu est beaucoup plus dense, car il s’agit de concepts nouveaux pour un dévelopeur Java.

Les Streams permettent de se passer du pattern Iterator, et de traiter les données sous forme de pipeline, où l’on décrit directement les traitements qui seront effectués sur les éléments, un peu à la manière d’une requête SQL. A opposer à l’ « ancienne méthode », où l’on itère sur une collection, en appliquant le traitement élément par élément.

Un gros avantage, au-delà de la lisibilité du code, est la parallélisation transparente de ce type d’opération, effectuée par la librairie. »

Romain

 

  • ” Java SE 8 for Tablets, Pis, and Legos ” de Stephen Chin

« Cette conférence était animée par la société Oracle, en anglais. Elle était plutôt orientée démo pour nous montrer qu’on pouvait utiliser Java 8 dans à peu près n’importe quel hardware, à savoir dans les nano-ordinateurs Raspberry Pi et PandaBoard à processeur ARM mais aussi pour les fanatiques dans les Lego Mindstorms EV3 (ça devrait donner des idées à certains;), sans oublier les montres, les tablettes et téléphones IOS et Android et enfin le DukePad.

Sachez que Linky, la petite boite magique développée par ERDF, sera installée dans les foyers d’ici quelques années pour remplacer nos bons vieux compteurs électriques fonctionnera avec le langage C# ! Mais non, ils ne sont pas fous chez ERDF, avec Java bien sûr ! »

Murat

 

La contrée « Redis »…

  • ” Redis, une base Not Only NoSQL ” de Nicolas Martignole

« Une présentation rapide de Redis, par N. Martignole. Redis est une base mémoire, qui fonctionne sur un modèle de collections de données. String, List, Map, se transposent directement le modèle.

A retenir : vitesse, rapidité et flexibilité dans le développement, valable pour des datasets qui tiennent en RAM (ce qui est somme toute très souvent le cas aujourd’hui).»

Romain

« Ce premier tool in action était pour moi l’occasion d’avoir du feedback sur un outil dont j’avais déjà lu quelques articles : Redis. Base dite NoSQL, in memory, codée en C dont le protocole d’échange est en TCP avec bien sûr des drivers existant pour interagir avec elle dans nos langages favoris (Jedis en Java, Sedis en Scala, la liste est longue http://redis.io/clients).

Sur le cas présenté par Nicolas Martignole : ZapTravel (ceux qui suivent son blog http://www.touilleur-express.fr/ doivent déjà avoir lu quelques articles sur le sujet), intéressant de voir comment Redis a complètement remplacé un SGBD classique et permet de tenir la charge en prod avec des temps de réponses sympas.

J’aime beaucoup, sur la documentation de Redis, le time complexity qui est indiqué pour chaque commande (exemple : http://redis.io/commands/append).

En résumé, outil à garder en tête et à essayer si l’occasion se présente : Redis (http://redis.io/). Pour ceux voulant faire quelques gammes afin de se faire une idée de l’utilisation : http://try.redis.io/ »

Sébastien

 

Les petits secrets de la JVM …

  • ” Tout ce que vous avez toujours voulu savoir de la JVM sans jamais oser lui demander en ligne de commande ” de Brice Leporini

« Vous avez un service Java qui tourne sur un serveur… Celui-ci ne fonctionne pas en mode graphique et/ou il ne faut absolument par faire ralentir le serveur pendant vos diagnostics ? Pour arriver à votre but vous devez connaître un minimum les outils de la JVM en ligne de commande.

En voici quelques-uns :

• jps : équivalant à PS sous Linux mais dédié aux processus Java.

• Jinfo : donne les infos de base sur un processus Java. (info sur la heap, la permGen, la version de la JVM, les arguments utilisés, etc.)

• Jstack : affiche les calls stacks des threads en vie de l’application

• Jmap : permet d’afficher la mémoire utilisée dans les différents blocs mémoires, de classer les objets par taille, voire de créer un dump de la mémoire dans un fichier pour pouvoir ensuite l’analyser dans un outil graphique

• Jstat : peut afficher le taux d’utilisation de la mémoire par bloc en une ligne sur le terminal, l’activité du compilateur JIT et aussi les optimisations qui y sont faites. Il est possible de faire jouer les résultats toutes les n secondes.

• Jdb : débugger en ligne de commande en posant des breakpoints, en exécutant le code ligne par ligne, etc.

• Il est possible de logger toute l’activité du GC dans un fichier de log pour ensuite pouvoir le rejouer dans un outil graphique comme GCViewer. »

Murat

« Bien aimé également (vous avez dû vous en rendre compte, c’est rare quand je n’aime pas quelque chose) cette dernière présentation. Je connaissais la plupart de ces outils mais un refresh ne fait jamais de mal et la présentation en live coding était vraiment agréable. Bien réalisée, avec une application sous tomcat comme cible de la démonstration.

Passage en revue des différents outils (jps, jstat, jinfos, jmap, jstack, …), les jvm args pour avoir les sorties log du Garbage Collector, un outil en passant pour une analyse plus visuelle GCViewer (https://github.com/chewiebug/GCViewer). Et pour finir, clou du spectacle debug de jvm en ligne de commande via jdb.

Bien de connaitre ces outils car on n’a pas toujours un profiler sous la main et cela peut sortir de mauvais pas. »

Sébastien

 

Et dans le reste du monde des « Tools in actions » …

  • ” Microbenchmarking avec JMH” de Henry Tremblay

« Le microbenchmarking est le fait de mesurer un tout petit bout de code de manière précise qui prend généralement quelques millisecondes voire moins à s’exécuter. Le présentateur, Henri Tremblay, expliquait que les microbenchmarks étaient souvent faux malgré leur utilité. Cela était dû à la complexité d’avoir une mesure précise en Java sans bien connaître cette technologie. En effet Java est un langage JIT (Just In Time) faisant des optimisations en runtime.

Ces optimisations peuvent rendre complétement faux nos microbenmarking. Pour contourner ce souci, il nous a rapidement présenté JMH, un outil qui se lance en ligne de commande. La difficulté de cet outil est d’être capable de bien le paramétrer. Cela se fait directement dans le code à analyser via des annotations. »

Murat

 

  • ” REST facile et robuste avec Vert.x et Groovy ” de Aurélien Maury

« Vert.x permet la création de serveurs web très performant. Son fonctionnement est basé sur un composant appelé Verticale. Une Verticale s’exécute toujours dans le même thread et un thread peut gérer plusieurs Verticales. Par défaut, pour des raisons de performance, un pool de thread contenant autant de threads qu’il y a de cœur physique dans la machine est créé.

Le présentateur a mis en avant un autre avantage de Vert.x : la simplicité avec laquelle on peut dé-commissionner des URL grâce au langage Groovy. »

Murat

 

  • “Détection des malwares par leur empreinte réseau” de Thomas Bailet

« C’est parti, pas de temps mort, tool in action suivant pour découvrir l’architecture d’un produit d’Hurence (http://www.hurence.com/) permettant de faciliter la détection des malware sur un parc de machine.

La performance de ce produit vient du fait de pouvoir agréger beaucoup de données (log de routeurs, …), de calculer de cette masse d’information des métriques significatives (utilisation de machine learning, un autre domaine dont on entend régulièrement parler) pour en sortir un dashboard permettant de lever des alertes, et de suivre les métriques, …

Présentation de l’architecture utilisant un grand nombre de framework d’actualités : Hadoop, ElasticSearch, Spring Batch, Mahout, node.js, nginx, …

C’est bien de savoir que cela existe, que l’on peut faire tourner en production ces briques applicatives au sein d’une architecture complète mais pas d’autres apports que la culture générale, à mon sens. Quoi qu’il en soit bravo pour leur application qui a l’air de bien tirer parti des technologies à disposition. »

Sébastien

 

Les NOVENCIENS de retour du Paradis …

« Enfin, un petit mot sur l’organisation, très carrée. Pas de souci pour obtenir mon badge, cadre du Mariott rive-gauche agréable, très bien. Le seul bémol était l’accès au buffet le midi, un peu compliqué par l’affluence en ce premier jour de convention. »

Romain

« Mes premières impressions. Très content de l’accueil et de l’arrivée. Malgré la foule, aucune attente, chemin bien indiqué, après la remise du TShirt, de la tasse, du sac et du programme. On arrive prêt pour prendre un petit déjeuner dans le hall des exposants.

Le temps de croiser quelques visages familiers, tour rapide des exposants en finissant son croissant, revue du programme de la journée et discussions, puis c’est parti.

J’ai BEAUCOUP aimé, la qualité des speakers, les sujets abordés, l’organisation bref je ne vous le fais pas en 30 pages, tout est dans le BEAUCOUP. Du côté des moins, c’est aussi dans le BEAUCOUP : beaucoup de monde et je me suis senti un peu à l’étroit (repas du midi, navigation entre les salles de conférence et pas évident de se poser pour échanger avec ses pairs). Le 2e petit moins, c’est qu’avec les enchainements de conférences et le monde rendant la circulation difficile je n’ai pas trop eu le temps de me poser pour échanger autour des conférences.

Je tempère par le fait que je n’étais là qu’une journée et également par le fait que c’était un choix personnel de favoriser les conférences. J’aurais très bien pu faire l’impasse sur un tool in action par exemple pour prendre ce temps. Ces deux petits moins ne pèsent en rien face aux gros plus de ce Devoxx Paris 2014.»

Sébastien

 

« Ce que l’on recherche lors d’une telle journée ce sont les nouveautés qu’apportent Java, les différents outils et frameworks à la mode que l’on ne connaît pas ou peu autour de ce langage, et enfin tous les trucs et astuces qui ont parfois leurs importances dans des projets divers et variés. Vu la diversité de sujets proposés on était plutôt bien servi ! Il fallait tout de même faire des choix entre des sujets qui se déroulaient au même moment. Hélas, on ne peut pas toujours tout avoir 😉

Concernant les conférences universités, je les ai trouvées un peu longues (3h). Certaines se sont d’ailleurs finies ½ heure plus tôt.

Les sujets que j’ai vus m’ont apporté des réponses (université de la performance), des solutions (JVM interrogé en ligne de commande, microbenchmarking), voire des idées (Java 8 for Tablets, Pis and Legos). Pour conclure en quelques mots, ce fût une journée fructueuse ! »

Murat

A l’année prochaine, du 8 au 10 avril 2015 pour de nouvelles aventures

 

En réagissant à cet article, vous nous permettez d'affiner les contenus que nous publions ici !

  • Awesome (0)
  • Interesting (0)
  • Useful (0)
  • Boring (0)
  • Sucks (0)

Si cet article vous a plu, n’hésitez pas à le partager via

Partager sur linkedin
Partager sur twitter
Partager sur facebook

Ces articles peuvent également vous intéresser