Il y a 5 ans -
Temps de lecture 9 minutes
Sujets du XKE de Février 2018
Chaque mois, tous (oui tous) les consultants de Xebia se réunissent pour la journée du XKE (Xebia Knowledge Exchange), notre journée de partage de la connaissance.
La session de février a été riche et variée, en voici un aperçu.
Productivité
#Pomodoro #GTD L’efficacité personnelle, comment gérer les interruptions, animé par François Laurain
Selon certaines études, il est possible de gagner 40% de productivité en limitant les interruptions. Les deux méthodes les plus accessibles et efficaces sont la technique Pomodoro (pour gérer son temps) et GTD (pour gérer ses actions). Les deux philosophies se complètent parfaitement. Nous en avons expliqué les grands principes, leur application au quotidien et nous avons fait des retours d’expériences sur les points critiques de ces organisations.
Data
Back to Basics : HDFS & YARN, animé par Alban Phélip
HDFS est le bibliothécaire, YARN le chef d’orchestre. Ils constituent le cœur de l’écosystème Hadoop. Ils sont utilisés dans de nombreux projets chez Xebia. Les Data Architects, Data Engineers ou Data Scientists se doivent de bien les connaitre.
HDFS est le système de fichiers du cluster. Les données sont distribuées, la quantité stockée peut ainsi être gigantesque. Il répartit, organise et restitue la donnée aux utilisateurs.
YARN planifie et organise. Il prend en charge l’exécution des applications, relance celles qui sont tombées, alloue les ressources, agrège les logs. Il est le garant du bon fonctionnement de la plateforme.
La bonne connaissance de ces deux outils est essentielle pour travailler sur un projet data. Cela permet d’être autonome, efficace et pertinent dans les décisions à prendre et les applications à developper.
Hands-On – Spark agg kata, animé par Romain Sagean
Affutez vos compétences en Spark à travers 3 exercices utilisant l’agrégation ! Le but était de trouver deux solutions différentes pour chaque exercice.
Intelligence Artificielle
Programmation par contraintes : résoudre des problèmes de logique facilement, animé par Jonathan Norblin
Présentation de la Programmation Par Contraintes, domaine de l’Intelligence Artificielle qui s’intéresse à la résolution de problèmes :
- Partie théorique : concepts, modélisation, filtrage et résolution ;
- Partie pratique : utilisation de Choco Solver (librairie Java) pour résoudre différents jeux de logique (Sudoku, Fubuki, Garam, …).
Deep Learning Series – Episode 1 – Compréhension théorique et pratique des réseaux de neurones, animé par Yoann Benoit
Nous venons de lancer à Xebia une série de XKE au format Hands-On autour du Deep Learning. Le but de ces slots est de donner toute l’intuition théorique et les informations pour être autonome dans la construction de Réseaux de Neurones profonds, et ce avec le plus de pratique possible. L’idée était d’implémenter au maximum pour comprendre au fur et à mesure tous les rouages des algorithmes. A la fin de cette série de slots, nous saurons construire nos propres réseaux de neurones pour des tâches de reconnaissance d’image, de prédiction de séries temporelles, d’analyse de données textuelles, et de génération de nouvelles données.
Pour ce premier slot de la série, nous avons utilisé le framework Keras, qui est l’un des frameworks les plus populaires dans l’écosystème, et surtout le plus accessible lorsqu’on démarre dans le domaine. Nous avons vu comment construire nos réseaux de neurones pour des tâches de classification binaire et multi-classes, ainsi que comprendre ce qu’était le Deep Learning, la notion de layer, de gradient et de retro-propagation. Nous sommes désormais prêts à affronter les tâches pour lesquelles ces algorithmes sont les plus performants.
Craftsmanship
Transducer in clojure, animé par Julien Simon
Transducer in Clojure : sur 3 mots, 2 sont incompréhensibles pour la plupart des gens. Pauvre concept, il part mal dans la vie.
Il est pourtant très intéressant.
Clojure encourage le développeur à être explicite
Les parenthèses n’ont tué personne, promis. Clojure est un LISP sur la JVM. Dynamique. Fonctionnel. Il encourage le développeur à être explicite sur le management de l’état.
Transducer : tranformation algorithmique composable
Map, filter, reduce sont des outils intéressants. Le soucis ? Le couplage entre la modification des éléments et l’input/output. Il existe une alternative : les transducers sont là. Ils permettent de séparer la partie transformation d’éléments individuels de la partie collection. Ce sont des transformations algorithmiques composables. Et le tout sans création de collections intermédiaires.
Pour les allergiques de la parenthèse, pas de panique. Le concept a été implémenté dans d’autres langages (javascript, python, java).
Hands-On – Rust – Présentation du langage Rust en action et exercices, animé par Jean-Baptiste Petit, Dmytro Podyachiy
Le but de ce slot était de présenter les spécificitées du langage Rust (pas de Garbage Collector, la gestion automatique de la mémoire via ownership et borrowing…) de manière formelle dans un premier temps avec un support de slides ; et dans un second temps de faire expérimenter ce langage avec des exercices portant sur les différents concepts clefs exécutables directement en ligne sur la platforme play.rust-lang.org.
9 things that will make your ES/CQRS journey painful, animé par Clément Heliou
De prime abord, l’Event Sourcing et CQRS ne présentent pas de complexité majeure. Et pourtant, nous sommes nombreux à avoir souffert en les implémentant de façon maladroite ou à mauvais escient.
Après avoir re-posé les bases de ces deux patterns, Clément nous a proposé de revenir ensemble sur les 9 pièges à éviter lorsque l’on se lance dans leur implémentation. Nous avons notamment abordé les problématiques des systèmes distribués, le versionnage des événements, la cohérence à terme, les process managers/sagas, le Domain-Driven Design et l’Event Storming.
Enfin, un temps a été dédié tout au long de la présentation et en fin de session pour échanger autour de ce sujet.
Hands-On Elixir, animé par Diana Ortega
Elixir est un langage fonctionnel et dynamique qui tourne sur la machine virtuelle d’Erlang, conçu pour développer des applications hautement scalables grâce à son modèle de gestion de la concurrence.
Le but de ce slot était de présenter le langage et de faire des exercices de programmation. L’idée était de permettre aux participants d’avoir une vision sur la construction des applications Elixir de zéro jusqu’à la mise en place d’un end-point web.
DevOps
Hands-On Conteneurs de build, animé par Jean-Louis Rigau
Vous êtes développeur et vous n’en pouvez plus d’avoir à installer votre poste de développement à chaque nouvelle mission, vous souhaiteriez pouvoir contribuer sur n’importe quel projet de votre organisation, quel que soit le langage et sans avoir à installer tout le runtime de build nécessaire comme pré-requis … il est temps de passer au conteneur de build !
En adoptant les conteneurs de build, vous n’aurez plus jamais besoin d’installer un outil de build ! Passer d’une version d’un SDK à une autre devient très simple et surtout c’est la fin du syndrome “Ça marche sur ma machine !”. Le conteneur de build est identique sur votre environnement d’intégration continue et sur votre poste de travail. Vous êtes maintenant capable de contribuer sur n’importe quel module de votre organisation grâce à l’utilisation d’un simple conteneur.
Hands-On – Linux hit down data, animé par Nicolas Déchandon
Pirater, hacker, contre-hacker : ces gestes que les acteurs font au quotidien, alors pourquoi ne pas pousser le vice plus loin ? Les règles sont simples, vous êtes « Mister Robot » dans « 60 minutes chrono ». Votre mission, si vous l’acceptez : reprendre le contrôle du serveur.
Pour cela un code root à retrouver et 15 défis à résoudre. Bonne chance !
Un moyen ludique pour apprendre, réviser, approfondir les commandes linux.
Au programme: grep, find, head, cut, join, jq, uniq, sort, wc, regex
Formal : Storage War, animé par Thomas Auffredou
Avec la généralisation des plateformes de Cloud et la popularisation des conteneurs, les développeurs sont face à une responsabilité parfois difficile, celle de choisir le mode stockage le plus approprié au projet.
Dans cette présentation, le sujet était traité à différents niveaux – matériel, système d’exploitation et applicatif – en abordant les différents types de stockage – bloc, fichier et objet – ainsi que différentes solutions du marché.
Objectif : être en mesure de faire un choix éclairé et d’éviter l’absurdité, parfois justifiée, de certaines architectures.
Cloud
Présentation de Google Cloud Platform, animé par Jean-Baptiste Claramonte
Introduction : Qu’est-ce que GCP, ses particularités et son organisation ?
- La partie Compute
- La partie DB et stockage
- La partie Data Pipeline
Hands-On Google Assistant et AWS, animé par Qian Jin, Benjamin Lacroix
- Présentation de Actions on Google (~15-20min)
- Présentation de Alexa (~15-20min)
- Hands-On : application Google Assistant ou (et) Alexa
- Mobile
CI & mobilité, animé par Michaël Ohayon, Jean-Christophe Pastant, Thomas Depinoy
Dans ce slot, nous avons présenté notre approche de l’intégration continue en mobilité : Quels outils et workflows ? SaaS ou On-Premise ? Quelles sont les possibilités sur iOS et Android ?
Agilité
Atelier – Le procès de #Noestimates, animé par Ludovic Perot
Le mouvement #noestimates déchaîne les passions. Des débats passionnés voire houleux ont eu cours en 2017. Mais d’abord, qu’est-ce que ce mouvement exactement ? Pourquoi, en IT, procédons-nous à des estimations ? Sous la forme d’une joute verbale, nous avons préparé notre plaidoirie d’avocat du mouvement ou à l’inverse celle de procureur pour avoir une image globale des arguments des deux camps.
Atelier – Ducks & specs, animé par Nelson Dufossé
Vous pratiquez l’agilité mais avez toujours besoin de convaincre vos interlocteurs. Auraient-ils des difficultés à oublier le cahier des charges ? Vous préférez vous adapter en apprenant par l’expérience ? Le serious game Ducks & specs vous permettra de comprendre l’intérêt d’itérer pour avancer et s’adapter ensemble.
2 équipes, 5 minutes et 10 pièces Lego par joueur, c’est ce qu’il a fallu pour vivre l’expérience. Nous avons lancé les débats et tenté de convaincre l’auditoire que l’expression de besoin n’était peut-être pas l’idéal pour la construction d’un produit…
Web
Tester ses animations, animé par Alexis Tessier
Tester le rendu d’une interface utilisateur peut relever de la gageure. On aurait tendance à associer cela aux tests end to end, et à tous les soucis que cela pose (complexité de mise en place et problèmes de maintenance pour ne citer qu’eux). Alors tester une animation, c’est encore un autre challenge… à moins que ?
Ce slot a abordé notamment :
- Les raisons de tester une animation
- Les principaux obstacles techniques à la mise en place de ces tests
- Comment appliquer la séparation des responsabilités à vos animations, pour pouvoir les tester unitairement
Nous avons abordé bien d’autres sujets tels que le Deep Learning, un retour sur le développement de X-QRCode une application interne, Microsoft Azure, Scrum 3.0 et un retour d’expérience sur Java 9.
Vous avez envie de faire partie de l’aventure ? Rejoignez-nous !
Commentaire