Lectures d’Homo InTechus #1 : Mastery

Quoi de mieux qu’un bon livre pour vous accompagner en cette période estivale.

Mastery

Que ce soit pour un art, un sport ou une compétence particulière, la maîtrise d’un domaine n’est pas uniquement réservée à des gens hyper-talentueux mais bien accessible à tous. C’est ainsi que George Leonard démarre son livre  Mastery: the keys to success and long-term fulfillment.

La maîtrise n’est pas un but mais une longue phase d’apprentissage que l’auteur illustre sous la forme suivante : une succession de plats à chaque fois un peu plus élevés que les précédents appelée The Mastery Curve.

mastery-curve

The Mastery Curve

La progression se fait par légers bonds espacés de phases plus ou moins longues appelées plateaux. Celui en quête de maîtrise doit s’attendre à passer une grande partie de son temps sur un plateau : ce fameux moment qui semble interminable où nous avons le sentiment de ne plus progresser ; celui où la tentation d’abandonner est la plus grande.

Alors pourquoi passer autant de temps sur un plateau ? Continuer à s’exercer sans relâche, échouer puis recommencer est la clé pour atteindre son objectif. Cette étape est nécessaire pour atteindre le plateau suivant. Accepter le plateau sur lequel nous sommes c’est tout simplement suivre sa passion.

La maîtrise n’est pas une destination mais un chemin qu’il faut apprécier. Dans son œuvre, l’auteur nous donne les clés qui aideront à passer du statut d’apprenti à celui de maître.

For the master, surrender means there are no experts. There are only learners.

Pourquoi un tel livre ?

Mastery ne traite absolument pas de notre métier et tant mieux ! La vision portée par l’auteur est beaucoup plus large et parlera à toutes celles et ceux en quête d’amélioration dans leurs domaines de prédilection.

Ce que j’ai aimé :

Il met en avant des notions au cœur du Software Craftsmanship (pratiquer et s’améliorer) et de l’Amélioration Continue. Si l’un de ces deux termes vous est familier, ce livre est alors pour vous ! Bonne lecture 😉

Posted in lecture | Tagged , | Leave a comment

Plus d’agilité dans nos stages

Les stages 2016 chez InTech c’est 13 stagiaires issus de 6 cursus universitaires différents qui nous ont rejoint depuis ce printemps pour 6 mois soit un potentiel de plus 1500 j/h répartis sur 8 sujets/projets dont 4 en partenariat avec nos clients et partenaires.

C’est également plus de 20 collaborateurs InTech concernés de près ou de loin par les stages: tuteurs, experts, management et direction.

seminaire-agile-2016Nous avons initié, cette année, le programme collectif Stage AGILE qui vient compléter les actions déjà menées depuis quelques années pour la partie purement technique.

Le stage AGILE, Pourquoi ?

L’objectif de cette démarche est double :

  • d’une part, elle donne aux stagiaires l’occasion d’appréhender l’agilité dès son stage, lui apportant une première expérience Agile au plus proche du terrain.
  • d’autre part, le stage permet aux tuteurs de stages d’expérimenter l’agilité au travers de nouveaux rôles et de nouvelles pratiques. En introduisant l’agilité dans le stage, le tuteur a l’occasion de prendre des rôles divers comme Product Owner, Facilitateur, Expert technique ou fonctionnel voire selon son expérience Coach. Il est intégré à l’équipe Agile avec le(s) stagiaire(s) encadré(s).

Ainsi le Stage AGILE permet à chacun des acteurs de progresser et d’expérimenter des facettes de l’agilité.

Le stage AGILE, Comment ?

Nous avons découpé la démarche en 3 grandes étapes : pre-games, game, feedback !

Etape 1 : les pre-games

connaissanceEn parallèle de l’intégration du stagiaire dans l’entreprise, de la découverte plus en profondeur de son sujet de stage et de la formation technique dispensée par nos Experts Techniques, nous avons initialisé la démarche AGILE en proposant une étape d’initiation aux tuteurs et aux stagiaires:

Tout d’abord nous avons organisé une demi-journée de sensibilisation pour les tuteurs de stage qui n’étaient pas encore à l’aise avec l’agilité.

Puis nous avons mené un séminaire agile pour l’ensemble des stagiaires. Au-delà de la formation théorique, cela a été l’occasion de proposer des Serious Games, des Icebreakers, des Workshops…. A l’issue de ce séminaire, chaque stagiaire a pu avoir une réflexion concrète sur la mise en place de l’agilité dans le contexte de son stage et ainsi rédiger un engagement en conséquence.

Etape 2 : le game

gameTout au long du stage, cette étape permettra aux acteurs de mettre en exergue les principes et bonnes pratiques échangées pendant les différents workshops. Un accompagnement sera proposé par les coachs pendant toute cette phase ainsi qu’une formation de sensibilisation à la qualité logicielle.

Etape 3 : le feedback

feedbackCette étape finale sera l’occasion pour chaque stagiaire de clôturer son activité : finalisation, livraisons, rédaction du rapport de stage. Pendant cette période (août-septembre), nous recueillerons le feedback de chacun en s’interrogeant sur la suite à donner en 2017.

 

Le programme est ambitieux et doit être nourri par la participation de chacun des acteurs impliqués. Il reste également ouvert aux questions, aux idées et autres améliorations, alors n’hésitez pas à prendre contact avec nous.

Peggy Tarillon et Julien Ledoux

Posted in Non classé | Tagged , | Leave a comment

Retour Game Of Code

GOC_logo_2016-01

Game Of Code – 8 et 9 Avril 2016

Lors du week-end du 9 Avril 2016 a eu lieu la première édition du Game Of Code organisée par IT One. Un hackathon luxembourgeois qui s’est déroulé au Forum Geesseknäppchen à Luxembourg Ville pendant deux jours. A l’occasion de cet événement, sept courageux Homo-InTechus se sont lancés dans la bataille pour remporter la victoire ! Chaque équipe devait être composée de trois à quatre membres. Nous avons donc composé deux équipes:

  • InTech 1: CBL, CSA, CTN et MCI
  • InTech 2: LSR, ADE et DPD

(Oui, InTech 1 et InTech 2 sont bel et bien les noms officiels soumis à l’organisation)

img_0003

Organisation

Pour l’événement, les organisateurs avaient mis les petits plats dans les grands. Plusieurs Food Truck, des lits de camp, des douches et un bar, nous avions tout à disposition. Avant le début du concours, nous avions aussi la possibilité d’assister à plusieurs conférences, notamment sur l’intelligence artificielle et la plateforme Azure de Microsoft.

Concours

Lors du hackathon, il y avait deux challenges possibles:

  • Challenge « Tree Of Life »: Révolutionner le monde grâce à l’intelligence artificielle,
  • Challenge « Open Data »: Exploiter les données présentes sur la nouvelle plateforme OpenData du Luxembourg pour améliorer le quotidien des luxembourgeois et des frontaliers avec pour objectif de créer une « Smart Nation ».

Les deux équipes InTech ont choisi le sujet « Open Data » qui semblait plus accessible en 24 heures. Le challenge « Tree Of Life » manquait cruellement d’informations et était beaucoup trop ouvert à notre goût. Pour informations, nous étions 120 participants réparties dans 35 équipes. (dont 25 sur le challenge Open Data)

Avant de débuter la phase de développement, nous avons commencé par un brainstorming général afin de trouver un projet pour chaque équipe InTech. Dans notre quête aux idées, nous pouvions compter sur les présences exclusives de deux mentors de renom, Sébastien Larose et de Nicolas Sanitas (que nous remercions encore une fois pour nous avoir ramené un switch et des câbles réseaux). Afin d’avancer tous ensemble, nous organisions toutes les deux heures un rassemblement collectif pour faire le point sur l’avancement et nous fixer des objectifs pour les deux prochaines heures. Cela permettait aussi de réagir rapidement lorsqu’une tâche était trop ambitieuse et pouvait devenir bloquante, et d’avoir le feedback de l’autre équipe sur l’orientation que l’on donnait à notre projet.

Comme vous le savez sûrement, lors de l’événement, il était possible de suivre notre aventure via le service Livecoding.tv. De nombreux collaborateurs nous ont suivi et c’était une véritable source de motivation d’avoir des encouragements à toutes les heures de la journée et de la nuit. Nous en profitons donc pour vous dire merci pour votre soutien au cours du week-end.

Pitch et résultats

Après une vingtaine d’heures de développement, nous devions préparer le pitch final. Chaque équipe devait présenter son projet en 3 minutes avec un support visuel de type PowerPoint. Antoine Detante et Camille Thomassin ont pris les places de speakers pour leurs équipes respectives et ont réalisés des très bonnes performances ! Au niveau des résultats, comme vous le savez déjà, aucune des deux équipes n’est montée sur le podium, mais nous n’avons pas démérité et nous étions très satisfaits du travail réalisé.

Conclusion

Cela restera un très bon souvenir collectif, grâce à nos supporters et au bon esprit de l’ensemble des participants. C’était un plaisir de travailler tous ensemble avec une véritable dynamique de groupe. Ce genre de challenge est l’occasion pour nous de travailler d’une façon différente de celle habituellement pratiquée sur les projets : en totale autonomie, les équipes doivent s’organiser pour arriver à un résultat dans des délais très rapides. C’est une expérience très intéressante et très motivante, mais également éprouvante il faut le reconnaître ! Certains ont quand même regretté que les sujets soit donnés en avance et que certaines équipes soient arrivées avec des projets finalisés. 3 minutes sur scène pour présenter le travail de 24h est également un exercice très compliqué. Une petite déception pour être resté au pied du podium cette année. Mais ne nous laissons pas abattre, si l’événement est reconduit l’an prochain, nous sortirons vainqueurs !

Posted in Non classé | Tagged , , , , | Leave a comment

La prise de parole en public

Retour sur le workshop auquel j’ai eu la chance de participer : « Inspirer et convaincre l’audience, la prise de parole dans tous ses aspects ! » animé par Dirk Evenepoel, 2 the Audience pour Paperjam Club le 15 mars 2016.

Le pitch du workshop

« Plus des deux tiers des personnes n’aiment pas parler en public. La plupart des cadres et dirigeants s’attachent à leur expertise technique mais ignorent les autres éléments, souvent plus déterminants comme le non-verbal ou l’interaction avec le public. Comment convaincre et inspirer l’audience, que ce soit en interne ou externe, afin qu’elle se souvienne de vous ? Découvrez par la pratique et des exemples comment faire partie du bon tiers. »

Nuage

« Tout ce qu’il faut retenir »

Ce que j’ai retenu du workshop

Pour placer toutes les chances de notre côté, Dirk propose de suivre la recette suivante :

  • Impliquer suffisamment le public pour capter son attention, pour établir une relation dès le début de l’intervention. Par exemple, en posant des questions directes.
  • Captiver l’auditoire en utilisant le storytelling, les retours d’expérience, le parler vrai. En effet, le public quel qu’il soit sera plus perceptif si vous racontez une histoire de votre vécu (en relation avec le sujet exposé bien sûr ;o))
  • Soigner sa diction :
    • en utilisant les silences au bon moment,
    • en entraînant sa voix : une heure de bouchon = une heure de chant dans sa voiture, à condition de ne pas faire de co-voiturage !!! Cela marche aussi sous la douche mais il faut des voisins compatissants.
    • en établissant une dynamique de la voix : attention à la vitesse d’élocution, au volume et à la tonalité. Au passage, Dirk indique que les tonalités graves (donc masculines) sont mieux perçues que les tonalités aiguës (donc féminines).
  • Répéter, répéter, répéter

Pour la posture, l’expert conseille de :

  • Faire face au public pour garder le contact établi, ce n’est plus le moment de découvrir les slides
  • BOUGER sur scène et utiliser l’espace… cela peut vous permettre de donner du rythme et une certaine dynamique, cependant il faut que cela reste naturel.
  • utiliser les mains et surtout éviter de les laisser dans vos poches
  • Se tenir bien droit et bien centrer : ne pas hésiter à travailler sa posture « debout » : les jambes légèrement écartées, le dos bien droit, la tête bien axée…

Enfin, concernant le contenu et le support de présentation, Dirk nous donne encore quelques règles efficaces :

  • Le support de présentation doit donner envie et ne pas être surchargé : pour cela, il faut travailler le visuel, utiliser l’animation, ne pas se limiter au slide conventionnel (puces/textes)…Comme nous l’avons vu plus haut, il est préférable de démarrer par du storytelling mais il est également possible d’ouvrir sur une citation ou une question adressée au public. Par exemple : « à quoi correspond ce chiffre ? »,
  • La règle des 4 ! Pas plus de 4 points/informations importantes à faire passer, au-delà il y a de fortes chances pour que le public trouve la présentation confuse, voire ne comprenne pas le message,
  • Soignez son ouverture (on l’a dit) mais aussi sa clôture,
  • La pointe d’humour reste la cerise sur le gâteau : à utiliser avec des pincettes, au risque de faire un flop !

Et le stress, me direz-vous ?

Le fameux stress… les jambes qui flagellent, la voix qui se dérobe, les bégaiements qui s’installent, les répétitions et autres tics d’élocution… pas de panique, tout le monde y est sujet, même les orateurs chevronnés !

Dirk relativise : « Dites-vous que tout le monde (ou presque) y est confronté » pour des raisons multiples et variées, notamment selon le vécu de chacun, le contexte de la présentation, le sujet abordé, le public présent …. Comme la pratique d’une langue étrangère ou d’un sport technique, il faut pratiquer un maximum pour acquérir de l’aisance. Vous aurez bien sûr compris que l’on ne se lance pas dans une arène de 500 spectateurs lors d’une conférence comme dans une salle de 10 personnes en plein Comité de direction, que l’on ne présente pas aussi facilement un sujet que l’on ne maîtrise pas encore, que l’on ne pratique pas l’humour comme Gad Elmaleh…

La règle d’or : se lancer en se fixant des objectifs de progressions simples mais atteignables avant chaque représentation ! Pratiquer l’amélioration continue… finalement n’est-il pas encore une fois question d’agilité ?

Mon avis sur le workshop

L’animation était très bonne, tous les trucs et astuces étaient mis en pratique par l’expert… cela faisait une bonne démo live de ce qu’il faut faire ou pas. Le workshop m’a permis de prendre vraiment conscience qu’il faut PREPARER et REPETER un maximum, là où j’ai tendance à faire confiance à mes « talents » d’improvisation…mais aussi qu’il faut oser et se lancer. Merci à Dirk Evenepoel !

À vous de jouer ! Rendez-vous le 23 juin prochain à Kayl pour le premier LuxI/O ou lors d’une de nos prochaines réunions thématiques.

Posted in conférence | Leave a comment

Retour Conférence DotJS

Salle DotJS

DotJS – 7 décembre 2015

Introduction

Nous nous sommes rendus le lundi 7 décembre 2015 au Théâtre de Paris afin d’assister à la conférence dotJS.

Cette conférence fait partie du groupe des dotConferences, qui comprend notamment :

  • dotSwift
  • dotScale
  • dotGo
  • dotCSS
  • dotSecurity
  • et donc dotJS

La conférence dotJS se targue d’être la plus grande conférence javascript en Europe. Chaque année, elle accueille des speakers prestigieux présentant des sujets divers et variés : cette année était notamment annoncé Brendan Eich, l’inventeur du langage.

1 millier de personnes étaient attendues cette année.

Organisation

Après avoir récupéré nos badges, nous avions un peu de temps avant le début de la première session de conférences. Nous en avons donc profité pour échanger avec les différents partenaires de l’event.

Il est à noter que l’event se déroulant au Théâtre de Paris, une seule conférence se déroulait à la fois.

On peut notamment citer :

wakanda

une plateforme javascript utilisée pour gérer l’ensemble des applis webs et mobiles. Elle se base notamment sur des outils et frameworks open source tels que AngularJS, ionic, Apache Cordova … et possède également un IDE intuitif qui comprend un outil de conception, un éditeur de code (JavaScript, HTML, CSS), un gestionnaire du modèle objet.
Un point intéressant est la génération d’objets à partir d’une base de données. Il est alors possible de surcharger ce modèle, et même de recréer des liens qui n’existeraient pas dans la base relationnelle.
https://wakanda.github.io/

platform.sh

une solution d’intégration continue PAAS qui se veut developer friendly, en permettant aux développeurs de se concentrer sur le code en laissant la plateforme gérer la partie DevOps. (génération d’environnement à la volée, cloud hosting …)
https://platform.sh/

clusterpoint

qui se veut être une troisième alternative aux bases de données SQL et No SQL en rassemblant les points forts de ces deux types (data and computation scalability + strong transactional consistency). Utilisation du javascript dans des query SQL  https://www.clusterpoint.com/

Conférences du matin

Nous nous sommes ensuite rendus dans l’amphithéâtre pour assister à la première session de conférences.

salle

Voici les sujets qui nous ont été présentés :

Modern async JS, par Christophe Porteneuve (@porteneuve)

A propos de la problématique des callback en javascript et de la gestion de l’asynchrone, et plus précisément l’écriture du code qui peut vite devenir incompréhensible à la lecture. (cf. callback hell)

Pour rester dans le système des callback, Christophe commence par nous présenter Async.js. Ce petit module fournit plusieurs fonctions qui permettent des traitements asynchrones. Cela ne demande pas de connaissances supplémentaires, il n’y a pas de perte de performances, le module est bien maintenu (@caolan). Mais cela ne résout que quelques problèmes initialement identifiés.

Puis, les promises nous ont été présentées. Elles existent déjà depuis un long moment, pas seulement en Javascript. Elles sont maintenant natives dans ES6. Avantages : elles sont fiables (un seul callback garanti), elles sont composables mais cela ajoute un nouveau niveau d’abstraction, il y a des légers problèmes de performance et l’exécution du code n’est pas vraiment très facile à comprendre (je ne parle même pas du débogage).

Les générateurs : un générateur est un type de fonction spécial qui fonctionne comme une fabrique (factory) d’itérateurs.

Exemple de générateur :

function* idMaker(){   
	var index = 0;   
	while(true)     
		yield index++; 
}  
var gen = idMaker();  
console.log(gen.next().value); // 0 
console.log(gen.next().value); // 1 
console.log(gen.next().value); // 2

Mais les générateurs ne sont pas asynchrones. Alors quel est le rapport avec notre problème ?

Si on combine les générateurs avec les promises, cela permet d’avoir du code asynchrone, mais écrit comme du code synchrone. Cette méthode est déjà expérimentée dans la librairie task.js.  

La bonne nouvelle, c’est que l’arrivée de ES7/2016 nous apportera deux nouveaux mots clé: async/await. Cela permet de régler les problèmes d’écriture de code : du code asynchrone écrit comme du code synchrone.

Lien vers les slides

Hyperdrive, par Mathias Buss (@mafintosh)

Mathias a publié beaucoup de modules sur NPM (750 modules avec une équipe de 3 personnes).  Il nous a présenté l’un deux, hyperdrive, qui est un module de partage de fichiers en peer2peer. Le principe est simple, et les concepts utilisés pour le développement du module étaient intéressants.

Le fonctionnement repose sur le partage via URL et sur un système de Hash qui permet de partager un fichier en plusieurs parties de tailles réduites.

Il permet entre autre de faire du Streaming vidéo…

Lien vers les slides / Dépôt github du projet hyperdrive

Dealing with Garbage, par Samuel Saccone, Software Engineer chez Google (@samccone)

Comment détecter et régler les problèmes de fuites mémoire ?

Une démonstration de comment utiliser la console de Chrome pour diagnostiquer les fuites mémoire et présentation de son outil drool, qui permet de détecter automatiquement les fuites mémoire et de les analyser. (https://github.com/samccone/drool)

Lien vers les slides

Vidéo : http://www.thedotpost.com/2015/12/samuel-saccone-dealing-with-garbage

http/2 is here, now let’s make it easy, par Rebecca Murphey (@rmurphey)

Rebecca nous a présenté http/2 et pourquoi il n’était pas encore très utilisé. Selon elle, il n’est pas encore utilisé pas parce que les développeurs ne veulent pas, mais parce qu’il n’existe pas « d’écosystème » complet prêt à l’accueillir (comme les serveurs, les navigateurs…).

Lien vers les slides

Vidéo : http://www.thedotpost.com/2015/12/rebecca-murphey-http2-is-here-now-lets-make-it-easy

Pause repas

Ne vous inquiétez pas, y’en aura pour tout le monde !!! (ou pas …)

En effet, le repas se déroulait dans les couloirs, où des plateaux de miniatures étaient disséminés un peu partout, le problème, le nombre de personnes … en quelques minutes, tout était vide.

Nous nous sommes donc divisés en groupes de 2 pour chercher les … pizzas, denrée rare mais nourrissante.

A noter qu’une montagne de fromage se trouvait sur une table, mais qu’elle n’a pas fait beaucoup d’émule étant donné la présentation style “oeuvre d’art contemporaine”.

screen

Conférences de l’après midi

Elle s’est découpée en deux parties, tout d’abord des présentations en temps limité (environ 10-15 minutes), puis des présentations plus longues.

Henrik Joreteg : Pocket-sized JavaScript

Henrik part du constat que le javascript sur mobile est lent et peu performant. Il propose ensuite une approche qui consiste à  s’appuyer sur les bonnes idées des gros frameworks type Angular et utiliser des nouvelles techniques (Virtual DOM et WebWorkers) afin de produire du code minimaliste pour une application javascript sur mobile beaucoup plus rapide.

Vidéo + slides : http://www.thedotpost.com/2015/12/henrik-joreteg-pocket-sized-javascript

Tim Caswell : Teaching Kids Programming using Web Browsers and Real Robots

http://www.thedotpost.com/2015/12/tim-caswell-teaching-kids-programming-using-web-browsers-and-real-robots

Petite surprise pour cette présentation , le speaker Tim Caswell  est venu sur scène avec son jeune fils de 9 ans : Jack . Il a mis en place un langage simplifié (peu de symboles) et utilise un IDE comprenant des bonnes fonctions de validation et coloration syntaxique afin de  rendre plus  accessible la programmation à des enfants. Son fils nous a fait ensuite une demo live, en codant un petit programme permettant d’allumer des LEDs.

Andre Medeiros : The whole future declared in a var

André est l’inventeur du framework javascript Cycle.js.

Il nous a présenté la notion de “Micro-Service”.

Nouveau paradigme → programmation fonctionnelle réactive

Analogie avec Excel → dès que variable change les cellules avec des formules qui la contiennent se mettent à jour.

Les concepts important à retenir sont :

  • Scalabilité
  • Pas de serveur requis
  • Encapsulé

Exemple d’implémentation :

  • Amazon
  • Pay by use

RxJS (ReactiveX)

Présentation du framework “ReactiveX”.

Les concepts important à retenir sont :

  • Reactive programming
  • Gestion de stream
  • Très similaire à Scala dans les concepts

Pour plus de détail :

http://www.thedotpost.com/2015/12/andre-medeiros-the-whole-future-declared-in-a-var

Etienne Margraff : VorlonJS

Présentation de VorlonJS : un outil de debugging multi navigateur, open source et extensible.

Il permet de débugguer du JavaScript, en apportant la possibilité de débugguer plusieurs devices en même temps.

Il permet également de débugguer des mobiles.

http://vorlonjs.com/

Slides : http://fr.slideshare.net/emargraff/dotjs-lightning-talk-vorlonjs

Johannes Fiala : How to end manual REST-API client coding

Démonstration de comment créer une API rapidement avec Spring Boot, puis documenter les différentes opérations et générer rapidement le code client javascript avec l’outil de Swagger Codegen

http://www.thedotpost.com/2015/12/johannes-fiala-how-to-end-manual-rest-api-client-coding

  • Eric Schoffstall ; Real world webRTC
    • Eric Schoffstall est le créateur de Gulp.
    • Gulp 4.0 arrive bientôt, cela avait pris du retard à cause d’un bogue NPM.
    • Eric s’est lancé dans une boîte faisant du speed-dating par WebRTC ; il a dû faire en sorte que ça fonctionne sur tous les navigateurs. Beaucoup de galères pour IE, Safari… et sur mobile.
    • Pour Android, il a utilisé Crosswalk.
    • Pour iOS, il a utilisé iosrtc.
    • Pour IE / Safari, il a dû recourir au plug-in TEMASYS.
    • Comme ça a été l’enfer pour lui, il a voulu faciliter le travail des autres pour la suite, et a lancé http://rtc.works : rtc-everywhere ; un setup cross platform pour webRTC.
  • Forbes Lindesay : conception de Pug
    • Pug est le nouveau nom du langage de templating Jade.
    • Le talk décrit comment concevoir un outil de transpilation tel que Pug: il a montré comment coder un lexer, parser, code generator et linker.
    • Un talk intéressant pour ceux qui veulent contribuer à un projet de transpilateur (Babel, Webpack, Less, Sass etc.).

Conclusion

Voilà qui conclut une journée bien dense avec un grand nombre de conférences portant sur des thèmes assez variés.

Retour en Lorraine avec des goodies plein les poches!

Astronautes

Posted in conférence | Tagged , , , | Leave a comment

Directive PSD2 : Comment l’Europe force le secteur bancaire de détail à innover.

En novembre dernier, le parlement européen a adopté la nouvelle directive sur les services de paiement : la PSD2 « Payment Service Directive 2 » (ou DPS2 « Directive sur les Paiements et Services version 2 ». Cette directive a pour vocation de faciliter l’innovation dans le secteur bancaire en créant les conditions qui permettront, aussi bien aux grands acteurs qu’à de nouveaux entrants, de créer de nouveaux produits et services. Cette directive modifie ainsi de manière profonde la manière dont les banques de détails vont pouvoir interagir avec leurs clients dans les années à venir.
Cette directive est entrée en vigueur en janvier 2016 pour application et transcription dans les lois nationales d’ici à janvier 2018.

Les mesures principales de cette directive tournent autour de l’introduction de deux nouvelles catégories d’acteurs. Les A.I.S.P (Account Information Service Provider) et les P.I.S.P (Payment Initiation Service Provider).

Account Information Service Provider

Ces nouveaux acteurs permettront aux clients des banques d’accéder aux informations liées à leurs comptes bancaires, sur des applications en ligne autre que celles conçues par les banques elles-mêmes. Ces acteurs vont permettre de rapatrier ces informations, quelle que soit la banque dans laquelle elles sont domiciliées. Ce client aura ainsi la possibilité de consulter et obtenir des services sur l’ensemble de ses comptes bancaires sur une interface unique.

Account Access avant PDS2

Account Access après PDS2

Il va de soi, afin de limiter les dérives, que les informations liées aux comptes bancaires d’une personne ne pourront pas être consultées sans son consentement explicite.

Des acteurs de ce type se sont déjà créés avant que la législation ne les y autorise vraiment. Ils extraient les informations contenues dans les sites de web-banking des banques (directement depuis le code HTML), en demandant les données de connexion à leurs utilisateurs.

Afin de permettre de créer des conditions de fonctionnement plus saines pour ces acteurs (notamment pour ce qui concerne l’authentification), la directive prévoit que les banques seront dans l’obligation de fournir ces informations aux A.I.S.P. via un système d’API. Dans ce cadre, l’E.B.A (European Banking Authority) a été désignée afin de créer un RTS (Regulatory Technical Standard) concernant l’authentification et des recommandations sur le contenu des API en tant que telles.

Payment Initiation Service Provider

Ces acteurs vont jouer un nouveau rôle dans le cadre des paiements en ligne. Dans le cadre d’un achat chez un marchand, au moment de payer, le client aura de nouvelles possibilités par rapport aux services de paiements actuellement disponibles. Il pourra ainsi donner une autorisation directe au site internet du marchand pour qu’il se connecte à son établissement bancaire, et lui débite directement son compte du montant de son achat.

PSP avant PDS2

PSP après PDS2

Cette démarche se fera bien entendu dans un cadre très strict en termes d’authentification et de validation de la transaction, afin de garantir une sécurité optimale.

Tout comme pour les A.I.S.P, les banques seront dans l’obligation de fournir aux P.I.S.P des API qui leur permettront de faire les interactions nécessaires afin de mener à bien ces nouveaux types de transactions. L’E.B.A est aussi désignée afin de fournir les R.T.S et recommandations nécessaires concernant ces communications.

Conséquence de la Directive pour les banques

Deux conséquences principales sont à considérer concernant les banques.

La première est au niveau de leurs relations avec leurs clients. Les A.I.S.P vont potentiellement intervenir dans une part importante des interactions avec leurs clients. Ces interactions, qui sont actuellement effectuées à travers les guichets des agences physiques (dont la fréquentation est en constante baisse), et via les applications bancaires dont ils sont propriétaires, sont un des piliers majeurs de leurs stratégies de fidélisation. Il leur faudra compenser cette probable volatilité, s’ils ne veulent pas voir leurs chiffres d’affaires baisser d’une manière conséquente.

La deuxième conséquence concerne les systèmes d’informations des banques. Ils devront être profondément modifiés pour permettre la mise en place d’APIs, afin d’interagir avec les A.I.S.P et P.I.S.P. Ces modifications devront aussi accompagner les changements que les banques devront effectuer afin de s’adapter à ces nouveaux marchés. Ces changements, dont la bonne exécution aura un impact de premier ordre sur la capacité des banques à savoir répondre aux nouveaux besoins de leurs clients, devront s’effectuer dans des délais relativement courts, compte tenu des impératifs de mise en application de la PDS2.

En conclusion, cette directive qui est à replacer dans un ensemble de dispositions voulu par la commission européenne afin de créer un “marché digital unique” pour 2020, fait entrer réellement les banques dans le monde du digital. La manière dont celles-ci sauront répondre à ces changements influencera d’une manière importante leurs chiffres d’affaires et leurs résultats opérationnels pour la décennie à venir.

Paul & Philippe

Posted in Non classé | Leave a comment

Monnaies virtuelles et blockchain, rupture ou évolution ?

Qu’est ce qu’une monnaie virtuelle ?

Les monnaies virtuelles sont des monnaies numériques non réglementées qui sont émises, gérées et dont les échanges sont validés par des programmes informatiques. Elles sont en général acceptées et utilisées à l’intérieur de communautés fermées mais peuvent également, comme le Bitcoin être utilisées pour des achats de biens réels et être échangées contre des monnaies fiduciaires. Il ne faut pas confondre monnaies virtuelles et monnaies électronique. La monnaie électronique est définie comme une valeur stockée sous forme électronique, émise après réception de fonds dont le montant ne doit pas être inférieur à la valeur de l’unité monétaire émise, et acceptée comme moyen de paiement par des tiers autres que l’émetteur.

Les monnaies virtuelles peuvent être centralisées ou décentralisées comme le Bitcoin. Les crypto-monnaies sont un type particulier de monnaies virtuelles dont les principes de fonctionnement reposent sur des algorithmes cryptographiques.

Quels sont les principes de fonctionnement de ces monnaies ?

Les crypto-monnaies décentralisées fonctionnent en général sur le principe de la blockchain. La blockchain peut être vue comme un grand livre de toutes les transactions ayant été effectuées depuis la création de la crypto-monnaie. Le fichier blockchain est copié sur chacun des ordinateurs qui participent au fonctionnement de la monnaie. Les portefeuilles des utilisateurs sont matérialisés par un paire de clés publique/privée utilisée pour accéder au portefeuille et valider les transactions. Pour qu’une transaction représentant un échange de monnaie soit acceptée par le système, elle doit avoir été validée par un ordinateur du réseau. Dans le cas du Bitcoin, le processus de validation se nomme le minage. Les ordinateurs participant au réseau essaient de valider une transaction (en réalité un ensemble de transactions regroupés sous la forme d’un bloc) en résolvant un challenge mathématique. Le premier ordinateur qui résout le challenge valide le bloc et l’insère dans la blockchain. De la monnaie est créée à chaque validation et donnée à celui qui a résolu le challenge en guise de récompense.

 Qui est en charge de la gestion de ces systèmes ?

Les systèmes de monnaies virtuelles sont créés par des communautés de développeurs indépendants qui font évoluer le programme informatique qui gère le fonctionnement du système. Les utilisateurs peuvent créer de nouveaux comptes soit en téléchargeant le programme et en l’exécutant sur leur ordinateur, soit en s’inscrivant sur une plate-forme d’échange telle que Paymium par exemple. Dans certains cas comme Ripple, le système est géré par une société qui s’occupe alors de la gestion des comptes et des participants au réseau et qui fait évoluer le programme.

 Combien y a-t-il de monnaies virtuelles en circulation aujourd’hui ?

Le site coinmarket.com recense les monnaies virtuelles réellement utilisées ainsi que leur valorisation. Il y a actuellement 639 monnaies listées. La principale est le bitcoin qui possède une capitalisation d’un peu plus de 3 milliards d’euros. Un bitcoin vaut 207,87€ au 23 septembre 2015. La valeur des monnaies virtuelles est très volatile à cause notamment des faibles volumes échangés et des aspects spéculatifs liés à leur utilisation. La capitalisation totale des 10 plus importantes monnaies virtuelles est de 3,49 millairds d’euros. 

Qui sont les utilisateurs de ces monnaies ?

L’une des caractéristiques de ces monnaies a trait à l’anonymat des utilisateurs. Il n’est donc pas aisé de savoir qui sont les utilisateurs. Elles sont utilisées pour faire des achats de biens réels sur les sites qui les acceptent, pour réaliser des échanges de monnaies entre utilisateurs ainsi que pour spéculer. Les monnaies virtuelles principales peuvent être échangées contre des monnaies fiduciaires par l’intermédiaire de places de marché. Le bitcoin peut être utilisé pour acheter des biens.

Quels sont les avantages de ce type de monnaies ?

Les monnaies virtuelles possèdent plusieurs avantages. Tout d’abord, elles sont utilisables par n’importe quelle personne qui télécharge le programme sans contrôle préalable. Alors que l’ouverture d’un compte bancaire prend plusieurs jours voire plusieurs semaines, l’entrée dans un système de monnaie virtuelle et la première transaction peuvent se faire en quelques minutes. L’exécution des transactions est également plus rapide. Elle prend environ 10 minutes pour le Bitcoin alors que l’exécution d’un virement international prend plusieurs jours. Un autre avantage est lié à la décentralisation des systèmes qui sont très résilients et ne possèdent par de point unique de défaillance (Single Point of Failure). De même contrairement aux monnaies fiduciaires contrôlées par des Etats ou des Banques Centrales, les monnaies virtuelles ne sont pas contrôlées et l’exécution des systèmes est uniquement gérée par des algorithmes, ce qui baisse également le coût des transactions qui est proche de zéro.

Quels sont principaux risques ?

Les risques sont liés aux avantages. L’absence de contrôle lors de l’entrée dans le système combinée à l’anonymat en fait des systèmes adaptés aux cas où l’on veut dissimuler les transactions aux autorités, comme par exemple les échanges de monnaies non fiscalisés (travail au noir, …) ou l’achat de marchandise interdite. L’utilisation pour le blanchiment d’argent est également possible mais reste cependant difficile dans la mesure ou il nécessite le passage par une place de marché, or les places de marchés ont mis en place des procédures de vérification des utilisateurs respectant toutes les contraintes réglementaires. Les autres risques concernent la volatilité de ces monnaies dont la valeur peut très rapidement se déprécier (le bitcoin qui vaut aujourd’hui environ 208 € valait plus de 1000 euros il y a moins de 2 ans. Enfin et en particulier pour les monnaies encore peu utilisées, les systèmes peuvent disparaître du jour au lendemain en cas de faille de sécurité ou si un nombre suffisant d’utilisateurs le souhaite.  

Quels sont les moyens déployés pour arrêter ces arnaques ? Quels sont les pouvoirs d’action des États ?

La difficulté d’empêcher les utilisations frauduleuses de ces monnaies est l’un des freins principaux à leur déploiement à grande échelle et à la généralisation de leur utilisation. Le seul moyen actuellement en place pour limiter ces utilisations est la non acceptation en tant que monnaie fiduciaire et l’obligation assignée aux places de marché de respecter les mêmes contraintes que les banques en matière d’anti blanchiment et de connaissance des clients. Certains pays interdisent purement et simplement l’utilisation de monnaies virtuelles. En France, l’échange de Bitcoin contre une monnaie ayant cours légal est considéré comme la fourniture d’un service de paiement et implique de disposer d’un agrément de prestataire de services de paiement (établissement de crédit, établissement de monnaie électronique ou établissement de paiement) délivré par l’ACPR. 

A quel avenir ces monnaies virtuelles sont-elles vouées ?

Il est peu probable que les monnaies virtuelles remplacent les monnaies fiduciaires à court terme, notamment à cause de la difficulté de contrôler les échanges et les entrées/sorties dans le système par les institutions financières. En revanche, les principes de confiance décentralisées mis en œuvre dans la blockchain sont particulièrement innovants et pourraient être utilisés pour dématérialiser les titres de propriétés de tout bien et en accélérer les échanges en court-circuitant les acteurs de confiance classiques et notamment les officiers ministériels, de même pour la tenue de registres de possession de titres qui pourraient également être stockés dans une blockchain. Enfin, certaines grandes banques commencent à se regrouper pour envisager l’utilisation de blockchain pour l’exécution des paiements interbancaires, ceci afin d’en diminuer le coût tout en les accélérant.

Posted in Non classé | Leave a comment

Repoussons les limites des performances avec MongoDB !

Pré-requis

Pour bien comprendre cet article, je vous conseille de vous familiariser un minimum avec les concepts de MongoDB. (document, collection, requête, index, projection)

Focus sur le tuning des performances !

Requêtes et analyses

Contexte : Vous avez une idée toute simple. Un réseau social ou les utilisateurs peuvent s’exprimer avec une limite de 140 caractères.

Vous êtes le futur créateur de Twitter.

Vous optez pour une base de données MongoDB.

Très bien, on crée notre première collection : tweet

On génère quelques documents de cette forme :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "_id" : ObjectId("56d419f5581cb5bdae8a43fc"),
  "content" : "Mon premier tweet !",
  "author" : "johnny",
  "date" : ISODate("2016-02-05T14:53:48.808Z"),
  "likes_count" : 2,
  "retweets_count" : 1,
  "likes" : [
    "bradley",
    "greg"
  ],
  "retweets" : [
    "greg"
  ]
}

On écrit nos premières requêtes :

1
db.tweet.find({author:"johnny"}).sort({date:-1})

Notre prototype commence à voir le jour !

Les jours passent, les utilisateurs adhèrent au concept ! déjà 1 million de tweets !

On s’aperçoit rapidement que nos requêtes sont interminables. On décide donc d’utiliser l’analyseur de requêtes MongoDB :

1
db.tweet.find({author:"johnny"}).sort({date:-1}).explain()

Et là c’est le drame :

1
2
3
4
5
6
7
"executionStats" : {
  "executionSuccess" : true,
  "nReturned" : 10,
  "executionTimeMillis" : 3000,
  "totalKeysExamined" : 0,
  "totalDocsExamined" : 1000000
}

On comprend qu’il faut 3 secondes pour récupérer 10 tweets (et accessoirement scanner 1 million de documents…). On va rajouter quelques index !

Indexation

On décide donc d’indexer les champs sur lesquels on requête :

1
db.tweet.createIndex({author:1,date:-1})

On analyse de nouveau notre requête :

1
2
3
4
5
6
7
"executionStats" : {
  "executionSuccess" : true,</span>
  "nReturned" : 10,</span>
  "executionTimeMillis" : 100,</span>
  "totalKeysExamined" : 10,</span>
  "totalDocsExamined" : 10</span>
}

On est sauvés. Avec ce genre de performances on va pouvoir bientôt passer en prod !

Les semaines passent et nous voilà avec 100 millions de tweets. Les requêtes commencent légèrement à ralentir. Au départ vous vous dites que la solution est le sharding…

Puis vous tombez par hasard sur la doc MongoDB paragraphe covered query (*)

Covered Query

D’après cette doc, un index couvre une requête si :

  • tous les champs de la requête font partie de l’index (ça parait ok !)
  • tous les champs retournés font partie de ce même index

Ça veut dire quoi ? Et bien qu’on peut faire encore mieux !

Grossièrement, l’index précédent prend effectivement en compte tous les champs de votre requête. Le problème c’est que votre application est obligée d’aller chercher sur disque les 10 documents qui ont matché la requête pour retrouver les champs non-indexés !

On peut éviter ça de façon simple. Imaginons que vous ne vouliez afficher que l’auteur, le contenu, la date, et les nombres de likes et de retweets (ce qui est fait actuellement sur twitter et à mon sens ce n’est pas un hasard).

On va supprimer l’index précédent et en créer un nouveau :

1
db.tweet.createIndex({author:1,date:-1,likes_count:1,retweets_count:1,content:1})

Il suffit d’ajouter une projection à votre requête précédente :

1
2
3
4
db.tweet.find(
  {author:"johnny"}, //query
  {_id:0,author:1,date:1,likes_count:1,retweets_count:1,content:1} //projection
).sort({date:-1})

Analysons cette requête :

1
2
3
4
5
6
7
"executionStats" : {
  "executionSuccess" : true,
  "nReturned" : 10,
  "executionTimeMillis" : 20,
  "totalKeysExamined" : 10,
  "totalDocsExamined" : 0
}

Conclusion : avec un simple tuning de votre index et l’ajout d’une projection vous avez divisé par 5 votre temps de requêtes !

Aller plus loin :

Attention :

Il ne faut pas abuser des covered queries. Les gros index prennent de la place en mémoire.

Mon conseil :

Cibler un ou deux use cases principaux de votre système. (l’exemple de twitter n’est pas anodin, récupérer les derniers tweets est LE use case principal de l’application)

Couvrez les quelques requêtes qui répondent à ces use cases et vous aurez gagné significativement en performance !

Posted in Non classé | Leave a comment

Projet Drone

Lors de nos 6 premiers mois au sein d’InTech, nous avons eu l’occasion de travailler dans le domaine du drone et plus particulièrement dans la programmation de celui-ci. L’objectif était de voir ce qu’il était possible de faire avec un drone ‘open-source’ fait maison, un peu de connaissances dans le domaine et beaucoup d’huile de coude ! Le drone en question possédait quelques capteurs dont notamment des capteurs gyroscopiques, accéléromètres, magnétomètre, de positions (GPS et relatif) et un capteur vidéo.

ExempleApplication

De nos jours l’Internet of Thing participe activement à la vulgarisation des capteurs, en effet ils coûtent de moins en moins cher et sont plus performants. Le concept du drone part d’un simple appareil pour prise de vue mais peut désormais avoir des applications multiples suivant le type de capteurs que l’on y installe. Ses applications sont par exemple : reconnaissance d’image, détection thermique, partage d’accès internet (Facebook), circulation autonome (drone ambulancier, Amazon) et tant d’autres encore !

Comment ça marche?

Au fur et à mesure de l’extension du marché de l’embarqué, les logiciels propriétaires se développent mais bon nombre de solutions Open-Source solides font également leurs apparition. C’est le cas de la plateforme ArduPilot, créée par DIY Drones Community en 2007, qui fournit des outils Open Source au niveau hardware, firmware et software.

Il est possible de définir le comportement de notre drone grâce au firmware, ensemble d’instructions et de structures de données, qui lui est implanté. ArduPilot propose des firmwares de base pour différents types de véhicules tels que : Avion, Hélico, Voiture ou Bateau. Ici notre base sera le firmware Hélico et plus précisément celui du QuadCopter, il est nommé ArduCopter. Il est possible de définir différents comportement pour notre drone dans un firmware, on parlera ici de mode de vol. Chaque mode de vol permettra de piloter le drone d’une manière différente.

De plus il est possible via un software, MissionPlanner, de configurer les différents paramètres disponibles pour le drone comme par exemple la vitesse des moteurs au démarrage ou encore le mode d’utilisation des GPS. Ce software sert à configurer automatiquement certains paramètres sensibles notamment au niveau des accéléromètres et du compas. Il nous permet également de configurer les commandes disponibles sur la télécommande, le comportement du drone en cas de problème, de consulter les logs de vols et offre bien d’autres possibilités.

ControlerCodeInput

Le schéma ci-dessus représente le fonctionnement du drone. L’utilisateur envoie ses commandes via la télécommande, le contrôleur de vol va récupérer ces inputs via son récepteur radio. Il va également tenir compte des données de ses capteurs et de l’électronique de bord (GPS, accéléromètres, …). Une fois les données récoltées, il va devoir choisir la manière de réagir. Il va donc utiliser le code que nous lui avons chargé et réagir selon les instructions contenues dans celui-ci, plus précisément dans le mode de vol sélectionné. Après avoir déterminé sa réaction, il va envoyer les consignes moteur pour appliquer sa trajectoire.

C’est bien beau mais on en fait quoi ?

Lors de notre stage nous avons donc été amenés à développer deux modes de vol. Petit rappel, les modes de vol influent sur le comportement du drone dans l’air. Ils vont déterminer les réactions de celui-ci en fonction des informations que l’on lui envoie en entrée.

La démarche pour reconstruire le modèle 3D d’un bâtiment consiste à prendre des photos successives de celui-ci en se décalant un peu entre chaque prise de vue. Il faut ainsi effectuer plusieurs cercles à des altitudes différentes autour du sujet pour être sûr de l’avoir capturé sous tous les angles.

Notre premier mode de vol est destiné à faciliter cette prise de vue. Il existe déjà un mode similaire sous Arducopter, le mode ‘circle’. Dans ce mode on demande au drone d’effectuer une trajectoire en cercle autour d’un point mais l’utilisateur n’a plus la main sur la trajectoire de l’appareil une fois le mode engagé. Notre mode permet d’intervenir sur le rayon du cercle ainsi que la vitesse et le sens de rotation autour de l’objet, le pilote à donc la liberté de modifier les déplacements à tout moment.

PhotoMode

C’est avec ce mode de vol, et l’aide de logiciel Autodesk 123D, que nous avons pu obtenir la modélisation 3D de plusieurs objet.

Voiture Maison

Le deuxième mode de vol nous a permit de tester la manipulation des données du GPS, nous nous sommes fixés l’objectif de créer une fonction qui permet au drone de ‘revenir sur ses pas’. On va donc relever des positions GPS à des intervalles de distance réguliers lors d’un vol libre et à chaud on va traduire ces positions en vecteurs, définis par rapport au point de décollage, et les enregistrer. Une fois le retour déclenché on dépile le tout et le drone revient graduellement sur sa trajectoire.

La librairie étant assez flexible et complètement Open-Source, elle est en constante évolution. Il existe par exemple un mode ‘Follow-Me’, très utilisé par les sportifs, qui va faire en sorte que le drone suive la position GPS de l’utilisateur. Ce mode est actuellement en test afin qu’il puisse suivre la personne uniquement grâce à sa caméra sans utiliser de GPS.

Parlons IoT !

L’une des premières applications mixant l’IoT et le Drone consistait à utiliser un beacon afin d’améliorer la précision d’atterrissage automatique de celui-ci. L’idée était de permettre au drone d’atterrir sur une cible en mouvement comme par exemple une voiture ou encore un bateau dans le cas du sauvetage en mer.

Le drone a aussi été rapidement couplé à des puces SigFox pour permettre la collecte de donnée passive sur de vastes terrains. Par exemple l’automatisation d’un système d’irrigation des cultures ou encore pour de la surveillance de zones difficiles d’accès.

Avec l’aide de quelques composants il est possible de réaliser un drone « espion » qui va sniffer les appareils connectés sur un rayon de 50 à 100 mètres. Il va analyser les communications ZigBee environnantes afin de récupérer diverses informations puis il va réaliser une carte des zones de dangers (niveau de protection faible voire inexistant) des appareils connectés. Bien entendu un projet de la sorte soulève de nombreux problèmes de réglementation : sécurité des zones surveillées, cohabitation avec d’autres engins volants, … ces questions étaient encore en cours de résolution en fin d’année 2015.

Le mot de la fin !

Le drone se démocratise de plus et en plus et la législation est en constante évolution autour de ce sujet qui fait tant parler de lui. De plus le drone est un véritable couteau suisse : en fonction du résultat final désiré il suffit de rajouter les capteurs nécessaires et quelques lignes de codes pour obtenir une application concrète. C’est donc une tendance à surveiller car les utilisations du drone civil s’étendent désormais à un bon nombre de domaines différents et tendent à évoluer rapidement.

Voilà pour une première présentation sur le drone, ses applications potentielles et notre retour d’expérience, nous espérons que cet article à piqué votre curiosité et réveillé des instincts d’aéromodélistes chez certains d’entre-vous :)

Suivant vos retours, nous pourrons faire une présentation plus en détail des éléments du drone et vous guider afin que vous puissiez dimensionner et choisir les composants adaptés pour votre drone en fonction du type d’application souhaitée.

Nous pouvons également vous aider à mettre un environnement de travail en place et vous apprendre comment le code est exécuté, comment le tester, comment l’intégrer et vous partager plus en détails notre expérience sur la partie codage.

Allan & Anthony

Posted in Non classé | Leave a comment

DEVOXX BE 2015

Devoxx2015Thema

L’année 2015 a marqué les 20 ans de Java. Cela peut sembler beaucoup, surtout dans le monde informatique où quelques années à peine suffisent à rendre tout obsolète. C’est avec ce slogan en tête que nous avons participé du 11 au 13 novembre au Devoxx 2015 Belgium :

« 20 years of Java,  just the beginning »

Et oui déjà 20 ans que Java existe.

Mais Java, ce n’est pas juste un langage. Comme on peut le voir dans les conférences qui étaient proposées, on parle plutôt de la JVM, qui permet aujourd’hui de faire tourner des programmes écrits en d’autres langages, et c’est aussi bien sûr des frameworks qui se basent sur ces langages.

Le Devoxx, en quelques chiffres, c’est :

  • 5 jours de conférences
  • 3500 visiteurs de 40 pays
  • 200 intervenants
  • 650000 visiteurs en ligne

Les conférences se sont déroulées dans un Kinépolis à Anvers, où pas moins de 10 salles étaient réservées pour l’événement. L’engouement était parfois tel qu’on ne trouvait pas de place assise. Devant chaque salle, un écran avec le résumé de la conférence. On notera la présence d’un raspberry sous chaque écran : les organisateurs s’amusent-ils en travaillant ?

 

Pour bien commencer…

La keynote d’ouverture veut tout de suite nous en mettre plein la vue. Elle est retransmise en simultané dans toutes  les salles. L’un des organisateurs arrive sur un solowheel agrémenté de LEDs multicolores, et le robot Pepper nous fait rêver en nous disant quelques mots.

Nouveauté importante cette année : les vidéos sont directement filmées avec le speaker d’un côté et sa présentation incrustée de l’autre. Tout est retranscrit en temps réel sur le grand écran afin de fournir une bonne visibilité. Youtube sera utilisé pour uploader les vidéos pour ceux qui n’ont pas pu faire le déplacement, ce qui ne prendra que quelques heures au lieu des nombreux mois des sessions Devoxx précédentes.

Ensuite, Mark Reinhold d’Oracle nous parle un peu des nouveautés de Java 9 :

  • Le classpath à rallonge va disparaitre au profit d’un nouveau système de modules
  • Le jdk va être remanié en modules pour permettre de minimiser sa taille si on n’a pas besoin de toutes les classes

Bref, tout est là pour nous faire rêver.

 

Les conférences qui nous ont plu :

Docker

On retrouve plusieurs sessions sur docker. L’une d’entre elles nous énonce les différents outils permettant d’utiliser et administrer docker.

Le plus intéressant à venir semble être une interface graphique (certes payante) qui ravira sans doute les refoulés de la ligne de commande comme les inconditionnels.

Nous vous invitons aussi à relire l’article de Nicolas Sanitas sur le sujet : http://ictexpertsluxembourg.lu/ict-cloud/docker-technologie-conteneurisation-dapplications-decouvrir/?DanaInfo=0

 

Frameworks

Il existe aujourd’hui de nombreux frameworks de développement rapide, regroupant en fait tout un tas de frameworks dédiés chacun à une partie d’application : templating (vue), persistance (data), web services (controleur), déploiement (cloud, scalability), …, et enfin des CLI pour générer tout ça plus facilement (Yeoman, JHipster, Spring root, …).

Play, Rails, Ratpack et Immutant ont été montrés dans cette conférence, le tout en 40 minutes ! :

 

logo-jhipster-drink-coffee

Si vous voulez voir un dernier framework, avec un excellent speaker, nous vous conseillons cette vidéo : 

On y parle de JHipster, qui regroupe :

  • Spring boot
  • Spring data
  • Angular
  • Yeoman
  • Bootstrap
  • Bower
  • Grunt
  • Maven
  • Browsersync

Objectif : Développer un site de blog assez complet et le publier en ligne en moins de 30 min.

 

IoT

Il y a tellement à dire et tellement de conférences à voir qu’il a été difficile de faire un choix.

Aujourd’hui on peut facilement construire par soi-même quantités d’objets connectés. Le principe du Do It Yourself a quelque chose de magique qui parfois nous fait retomber en enfance. Qui n’a jamais revé de voir s’animer ses constructions Lego ou Mecano ?

Pour les nostalgiques des Lego et les conducteurs de train dans l’âme, regardez ce qu’on peut faire avec un peu d’imagination :

Boire une bière ne sera plus jamais comme avant.

 

Dans un contexte plus professionnel, 2 intervenants ont su capter notre attention en nous montrant différents usages possibles pour les cartes que certains d’entre nous connaissent déjà bien : arduino, raspberry, …

CEqC4DkW0AAQL-_

Notez l’importance de l’allume-cigare !

Leur utilisation ne se limite pas uniquement aux “bricolages” domotiques dont on parle souvent entre nous. Nous avons découvert entre autre une nouvelle carte : IoT Surfboard, qui concentre tout un tas de capteurs pour les passionnés que nous sommes.

B-mpxjMVIAEFMk8

Et oui coder en Java 1.2 c’est toujours utile !

 

Les conférences qui nous ont moins plu :

Robots intelligents…, ou pas

softbank-pepper-bot

Pepper et Nao sont des robots au design élaboré qui montrent un niveau élévé de sophistication. Dotés de nombreux capteurs et doués de parole, on peut interagir avec eux et les voir évoluer et parler. Enfin… en théorie.

D’après leur site (https://www.aldebaran.com), Pepper devrait être capable de détecter nos émotions et de s’adapter, et Noa peut bouger et répondre.

Mais la conférence s’est limitée à une séance de live coding bâclée, où certes le développeur connaît ses packages sur le bout des doigts, mais dans un IDE qui s’en soucie ?

nao

Voici tout de même la video, juste pour admirer le design des robots :

et une autre avec une interview de Pepper : 

 

Pour le fun

Pour s’amuser, on peut voir en images une centaine d’accès VNC non sécurisés partout dans le monde : poste d’un hacker, applications de gestion de centrales électriques, … Au bout de quelques exemples, on se lasse vite, mais ça fait tout de même réfléchir…

 

Conclusion

Beaucoup de conférences, sur des sujets variés. Nous vous invitons d’ailleurs à aller les visionner sur Youtube.

https://www.youtube.com/channel/UCCBVCTuk6uJrN3iFV_3vurg

C’est une bonne expérience qui a pu satisfaire (temporairement) notre soif de connaissances. Une chose est sûre : il nous reste plein de choses à apprendre.

Arnaud Gillet   Yohann Tref   Nicolas Delsaut   Mathieu Canzerini

4 en voiture

Posted in conférence | Leave a comment