Trois jours à l'EclipseCon France 2016

Marius Moulis

L'EclipseCon France 2016 s'est déroulée du 7 au 9 juin au cœur de la ville rose. Nous vous proposons ici un résumé des principales conférences auxquelles la rédaction de Developpez.com a assisté.

Pour réagir à ce contenu, un espace de dialogue vous est proposé sur le forum. Commentez

- Titre : Trois jours à l'EclipseCon France 2016

- Auteur : Marius Moulis

- Parution : 8 septembre 2016

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2016 Marius Moulis. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- I-A. L'EclipseCon & EclipseCon France

- I-B. L'EclipseCon Toulouse & DVP

- I-C. L'Édition 2016

- I-D. À propos de moi et de cet article

- I-E. Ce qu'il faut retenir de cette édition 2016

- II. Les workshops du mardi

- II-A. Connecter des appareils IoT basse consommation avec LoRa, MQTT & The Things Network

- II-A-1. Speakers

- II-A-2. Contenu

- II-A-3. Ce qu'il faut retenir

- II-A-4. Ressources

- II-B. Ce que tout développeur JAVA devrait savoir sur Angular JS

- II-B-1. Speakers

- II-B-2. Contenu

- II-B-3. Ce qu'il faut retenir

- II-B-4. Ressources

- III. Les conférences du mercredi

- III-A. Cinq bonnes raisons pour pimenter vos projets avec EMF Parsley

- III-A-1. Speakers

- III-A-2. Contenu

- III-A-3. Ce qu'il faut retenir

- III-A-4. Ressources

- III-B. La domotique repensée

- III-B-1. Speaker

- III-B-2. Contenu

- III-B-3. Ce qu'il faut retenir

- III-B-4. Ressources

- III-B-5. Replay de la conférence

- III-C. La situation actuelle du tooling pour Docker & Vagrant sous Eclipse

- III-C-1. Speaker

- III-C-2. Contenu

- III-C-3. Ce qu'il faut retenir

- III-C-4. Ressources

- III-C-5. Replay de la conférence

- IV. Les conférences du jeudi

- IV-A. La sécurité IoT en action

- IV-A-1. Speaker

- IV-A-2. Contenu

- IV-A-3. Ce qu'il faut retenir

- IV-A-4. Ressources

- IV-A-5. Replay de la conférence

- IV-B. TypeScript : retour d'expérience sur un vrai projet et le futur de JavaScript (sponsorisé par Microsoft)

- IV-B-1. Speaker

- IV-B-2. Contenu

- IV-B-3. Ce qu'il faut retenir

- IV-B-4. Ressources

- IV-B-5. Replay de la conférence

- IV-C. Intégration Continue : streamer son code avec Jenkins

- IV-C-1. Speaker

- IV-C-2. Contenu

- IV-C-3. Ce qu'il faut retenir

- IV-C-4. Ressources

- IV-C-5. Replay de la conférence

- V. What's next ?

- VI. Remerciements

I - Introduction

I-A - L'EclipseCon & EclipseCon France

L'EclipseCon est un événement majeur de la communauté Eclipse. Bien que centré sur l'Eclipse IDE, beaucoup de sujets majeurs sont traités par des experts reconnus. Trois jours sont ainsi nécessaires à l'EclipseCon France pour traiter une grande variété de domaines tels que l'Internet des objets et l'embarqué, le tooling, le cloud, les outils scientifiques et PolarSys. Seul le Big Data est généralement absent des débats.

Le prochain EclipseCon de cette année se déroulera en Allemagne dans un mois. Pour en savoir plus : EclipseCon Europe 2016.

I-B - L'EclipseCon Toulouse & DVP

Developpez.com sponsorise l'événement depuis déjà plusieurs années. Une des conditions de ce partenariat est l'obtention d'un pass gratuit pour couvrir l'événement et cette année, c'est moi qui ai pu en bénéficier.

I-C - L'Édition 2016

Cette année, l'EclipseCon France s'est déroulée au cœur de la ville rose. Pour cette quatrième saison, le Program Committee nous a proposé un programme toujours plus impressionnant : 52 talks, 8 workshops, 2 Key notes et une session d'Ignite Talks fort intéressants.

Le programme complet des workshops et des conférences est disponible grâce à ce lien : Programme 2016.

Pour les plus curieux, il est possible de revoir l'ensemble des conférences sur la chaîne Youtube dédiée : Replay Edition 2016.

Pour finir, le site officiel de l'EclipseCon France 2016 est ici : EclipseCon France.

I-D - À propos de moi et de cet article

Je m'appelle Marius Moulis et je suis Leader Technique chez Apside. Depuis 4 ans, je me suis spécialisé dans les technologies JAVA et plus particulièrement Eclipse RCP. Lorsque Developpez.com m'a proposé d'écrire un article sur l'EclipseCon France 2016, j'ai tout de suite sauté sur l'occasion. Grâce à eux et à ma société, j'ai ainsi pu concrétiser une envie que j'avais depuis le début de ma carrière professionnelle.

La rédaction de cet article fut une grande découverte pour moi étant novice dans cet exercice. Pour cette première expérience, j'ai décidé de me focaliser sur les workshops et conférences qui m'ont le plus marqué.

I-E - Ce qu'il faut retenir de cette édition 2016

1. Des sujets variés traités par des experts sur des exemples concrets.

2. Une ambiance de folie permettant de faire de belles rencontres.

3. Un comité et un staff en or !

4. Les conférences sont en anglais.

5. Deux KeyNotes inoubliables :

1. Une présentation de la genèse du projet The things Network par Johan Stokking (CTO & cofondateur).

2. Expliquer le développement informatique à ma mère ou une excellente heure de rigolade pilotée par l'excellent Thomas Guenoux de CommitStrip.

II - Les workshops du mardi

II-A - Connecter des appareils IoT basse consommation avec LoRa, MQTT & The Things Network

II-A-1 - Speakers

1. Benjamin Cabé : Eclipse Foundation

2. Johan Stokking : cofondateur The Things Network

II-A-2 - Contenu

Pendant 4h, nous avons découvert de manière ludique comment envoyer des données sur un réseau IoT puis comment récupérer et traiter ces informations. Pour ce faire, nous avons utilisé un simple capteur de lumière relié à un Arduino.

Les informations générées par le capteur ont ainsi été envoyées sur le réseau LoRa grâce au Shield dédié et un simple sketch Arduino.

Par la suite, nous avons exploité le framework ergonomique proposé par The Things Network pour transformer les données. Pour finir, nous avons récupéré les données avec un simple programme JAVA utilisant le framework PaHo et le protocole MQTT.

Pour aller plus loin, il nous a été présenté le « logiciel » Node-RED permettant de refaire notre atelier intégralement de manière visuelle. Nous avons même réussi à faire twitter notre capteur de lumière !!!

II-A-3 - Ce qu'il faut retenir

1. LoRa (LOw power, long RAnge) est un réseau IoT basses fréquences (ondes radio) permettant d'atteindre une couverture de plusieurs kilomètres (même dans des environnements denses tels que les agglomérations) tout en assurant une consommation en énergie très faible.

2. MQTT est le protocole de communication IoT de référence. Il se base sur un système producteur / consommateur avec topics et QoS (Quality Of Service).

3. PaHo est l'implémentation MQTT officielle proposée par Eclipse couvrant une multitude de langages en passant par le Java, le C ou encore le JavaScript.

4. Pour pouvoir se connecter sur le réseau LoRa il est nécessaire de se procurer un shield LoRa (moins de 50 €). The Things Network propose le leur pour la plateforme Arduino et SnootLab prépare un shield pour Raspberry Pi.

5. Sigfox propose un réseau IoT français alternatif à LoRa.

II-A-4 - Ressources

1. LoRa

2. The Things Network

3. Présentation Protocole MQTT

4. Eclipse PaHo

5. Mosquitto Broker

II-B - Ce que tout développeur JAVA devrait savoir sur Angular JS

II-B-1 - Speakers

1. Maximilian Koegel : EclipseSource Munich

2. Edgar Mueller  : EclipseSource Munich

II-B-2 - Contenu

Nous avons découvert le célèbre framework JavaScript proposé par Google : Angular JS dans sa version 1. Pendant 4h, nous nous sommes efforcés de développer une page web riche présentant une liste d'artistes avec photos, proposant chacun une liste d'albums et une liste de titres. La page devait proposer un filtrage dynamique de ses données grâce à l'utilisation des concepts clefs apportés par cette technologie.

II-B-3 - Ce qu'il faut retenir

1. Le framework Angular JS permet de développer des applications web riches de manière efficace grâce notamment à la possibilité d'étendre le langage HTML avec ses propres balises ou encore grâce à un système de data-binding bidirectionnel puissant.

2. La version 2 du framework sera basée sur le langage TypeScript. Il est possible de développer d'ores et déjà des applications basées sur Angular JS en version 1 avec TypeScript.

3. Le langage TypeScript proposé par Microsoft permet d'apporter des notions importantes au JavaScript telles que le typage.

4. Les components d'Angular JS V2 sont la concaténation des notions de contrôleur et de directive proposées par la version 1. La notion est très similaire aux plugins Eclipse RCP.

5. Favoriser autant que faire se peut l'utilisation des directives et de TypeScript sur les applications écrites en Angular JS 1 afin de favoriser / préparer la migration vers la version 2 du framework.

6. Le JSDT de l'EDI Eclipse (tooling Javascript) est maintenant mature (Néon). Le confort de développement en JavaScript sur l'IDE est sensiblement identique à celui du développement JAVA (par exemple : autocomplétion 100 % fonctionnelle).

II-B-4 - Ressources

1. TypeScript

2. Angular JS

3. Plugin Eclipse pour Angular JS 2

III - Les conférences du mercredi

III-A - Cinq bonnes raisons pour pimenter vos projets avec EMF Parsley

III-A-1 - Speakers

1. Vincenzo Caselli : RCP Vision

2. Francesco Guidieri : RCP Vision

3. Lorenzo Bettini

III-A-2 - Contenu

Pendant 35 minutes, les contributeurs du projet EMF Parsley nous ont montré comment il est possible de générer des formulaires pour nos modèles EMF.

III-A-3 - Ce qu'il faut retenir

1. EMF Parsley est très léger et utilise les composants EMF.

2. Les composants sont hautement customisables grâce à un DSL d'une grande efficacité et simplicité.

3. EMF Parsley propose un mécanisme d'injection de dépendances efficace piloté par Google Guice.

III-A-4 - Ressources

1. Site Web du projet

2. Résumé de la conférence

III-B - La domotique repensée

III-B-1 - Speaker

1. Kai Kreuzer : fondateur openHAB.org

III-B-2 - Contenu

Cette conférence fut l'occasion de découvrir un tout nouvel aspect de la domotique. Au lieu de mettre en place un nouveau standard de communication IoT, le projet Eclipse Smart Home propose une autre approche : capter les événements produits par les différents objets connectés de la maison et les transformer. Ces « traducteurs » sont appelés bindings. Grâce à une interface de configuration très ergonomique écrite en Material Design, il est possible de configurer ces bindings pour faire communiquer les différents objets de la maison directement depuis son smartphone.

L'exemple pratique proposé par Kai fut de configurer en quelques clics une lampe pour que celle-ci soit rouge lorsque la consommation électrique d'un sèche-cheveux dépassait un certain seuil. Très fort !

III-B-3 - Ce qu'il faut retenir

1. La communication entre les différents éléments de la maison se fait par réseau local (Intranet of Things).

2. Un catalogue de bindings est déjà disponible pour connecter instantanément les objets de sa maison. Il suffit de télécharger ceux correspondant à ses objets connectés.

3. Certains bindings sont fournis par les constructeurs d'objets connectés eux-mêmes.

4. Il est possible de contribuer au catalogue existant.

5. QVICON, OpenHAB & JUNG exploitent le projet Eclipse Smart Home.

III-B-4 - Ressources

1. Site Web du projet

2. Slides de la conférence

III-B-5 - Replay de la conférence

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=JvWnzb7DWb8

III-C - La situation actuelle du tooling pour Docker & Vagrant sous Eclipse

III-C-1 - Speaker

1. Roland Grunberg : Red Hat

III-C-2 - Contenu

Rolang Grunberg nous a montré les possibilités offertes par Eclipse (à partir de Mars) pour prendre en charge Docker et Vagrant directement dans l'IDE.

III-C-3 - Ce qu'il faut retenir

1. Docker est une solution de containerisation d'application / environnements.

2. Vagrant permet de gérer les environnements virtualisés.

3. Les plugins sont accessibles directement sur l'Eclipse Market Place.

4. Il est possible de faire des pull ou des push sur des dépôts Dockers (locaux ou distants).

5. Les plugins fournissent la plupart des fonctionnalités Docker et Vagrant sous Eclipse (exécutions d'images, édition des fichiers Docker et Vagrant…).

6. La stabilité n'est pas encore atteinte à cause de la volatilité de l'API « remote » de Docker.

III-C-4 - Ressources

1. Docker

2. Vagrant

3. Résumé de la conférence

III-C-5 - Replay de la conférence

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=eK11zKJ21F0

IV - Les conférences du jeudi

IV-A - La sécurité IoT en action

IV-A-1 - Speaker

1. Julien Vermillard : Sierra Wireless

IV-A-2 - Contenu

Pendant 35 minutes, Julien Vermillard nous a démontré que la sécurité sera une des problématiques majeures de l'IoT. Grâce à des outils tels que Ettercap ou Wireshark, il nous a montré comment quelques attaques informatiques classiques peuvent permettre de compromettre des infrastructures IoT et les solutions disponibles pour les protéger.

À titre d'exemple, nous avons pu voir comment un simple DNS spoofing permet de créer une attaque Man In the Middle et ainsi espionner les échanges entre des capteurs et leurs serveurs. Une des solutions à ce type d'attaque serait de protéger ses serveurs DNS avec DNSSEC.

IV-A-3 - Ce qu'il faut retenir

1. La sécurité des échanges doit être une priorité lors de la mise en place de n'importe quel système IoT.

2. Des solutions « standards » existent pour protéger les échanges des systèmes IoT telles que Eclipse IoT Projet, Open SSL ou GnuPG.

IV-A-4 - Ressources

1. Working Group Eclipse IoT

2. OWASP

3. Open SSL

4. PGP

5. Résumé de la conférence

IV-A-5 - Replay de la conférence

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=jXfRDloqqZY

IV-B - TypeScript : retour d'expérience sur un vrai projet et le futur de JavaScript (sponsorisé par Microsoft)

IV-B-1 - Speaker

1. Sebastien Pertus : Microsoft

IV-B-2 - Contenu

L'objectif de cette session fut de présenter succinctement le langage TypeScript et son impact sur le JavaScript. TypeScript est la solution permettant de rendre le JavaScript « scalable » avec des fonctionnalités comme le typage, les annotations et les métadonnées.

IV-B-3 - Ce qu'il faut retenir

1. TypeScript fonctionne sur n'importe quel navigateur, n'importe quel serveur ou système d'exploitation.

2. TypeScript est open source : GitHub TS.

3. TypeScript est compatible avec EcmaScript 5 & 6.

4. TypeScript est utilisé par de nombreux frameworks JavaScript tels que AngularJS 2 ou Ionic.

5. Supporté par Eclipse, Atom et Sublime.

6. La version 2.0 de TypeScript est déjà en version bêta.

IV-B-4 - Ressources

1. TypeScript

2. Angular JS

3. Ionic

4. Résumé de la conférence

IV-B-5 - Replay de la conférence

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=pfbv9Xy656s

IV-C - Intégration Continue : streamer son code avec Jenkins

IV-C-1 - Speaker

1. Baptiste Mathus : Cloudbees

IV-C-2 - Contenu

Dans une démarche LEAN et de l'optimisation du « stock », Baptiste Mathus nous a montré comment il était possible d'utiliser Jenkins pour garantir et diminuer le temps d'attente avant de mettre un code source en production.

Pour cela, il nous a été présenté le plugin « Pipeline » de Jenkins. Avec l'aide d'un DSL (Domain Specific Language), il est maintenant facile de décrire et d'améliorer le processus de déploiement d'un produit logiciel.

IV-C-3 - Ce qu'il faut retenir

1. Tout code non mis en production représente un stock et coûte de l'argent.

2. Pipeline est un plugin Jenkins permettant d'optimiser le processus de construction d'une brique logicielle et ainsi diminuer le temps de mise en production.

3. Pipeline utilise un DSL pour décrire le processus de construction.

4. Pipeline permet de fiabiliser les builds Jenkins même en cas de panne du serveur.

5. Pipeline permet d'inclure les interactions humaines / utilisateurs dans le processus de construction.

6. Pipeline permet de paralléliser différents sous-processus de construction.

IV-C-4 - Ressources

1. Plugin Pipeline

2. Lean / Éviter le gaspillage

3. Résumé de la conférence

IV-C-5 - Replay de la conférence

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=ORNDwYXa4nQ

V - What's next ?

Pour ceux qui veulent eux aussi participer à l'expérience de l'EclipseCon, voici les prochaines dates à retenir :

1. EclipseCon Europe en Allemagne du 25 au 27 octobre 2016. Toutes les informations sont ici ;

2. EclipseConverge 2017 à San Jose en Californie, USA le 20 mars 2017. Toutes les informations sont ici ;

3. EclipseCon France 2017 : probablement en juin 2017 à Toulouse. Stay connected !

Tous les événements Eclipse sont sur cette page : Eclipse Events.

Toutes les infos, en direct sur Twitter : #eclipsecon.

Pour finir, sachez que tout le monde peut proposer une conférence. Pour cela, il suffit de faire une soumission sur le site de l'EclipseCon désiré.

VI - Remerciements

Tout d'abord, je tiens particulièrement à remercier Alain Bernard pour son grand soutien tout au long de ce projet et notamment pour sa relecture précise de ce premier article.

J'aimerais également remercier Mickaël Baron et Joël Drigo pour la relecture de cet article et plus généralement toute l'équipe de Developpez.com pour m'avoir choisi pour couvrir cet événement, pour leur patience et leur support tout au long de la rédaction de cet article.