Devoxx France : édition 2015

Publié par Valtech France, le 23/04/2015, dans Événements, Java, javascript
Devoxx FR 2015

Devoxx France a passé la vitesse supérieure cette année avec une édition à l’immense Palais des Congrés et avec plus de 2000 développeurs présents !

Et la famille Devoxx s’agrandit avec l’addition de Devoxx Maroc aura lieu en novembre 2015 à Casablanca dans le second plus grand complexe de Cinéma d’Afrique.

Bref, cette conférence devient de plus en plus incontournable et continue d’aborder des sujets variées comme l’agilité, l’architecture, la sécurité, devops ou le web.


La robotique y a été également représentée avec notamment deux keynotes.

L’une à l’ouverture par Rodolphe Gelin qui présentait les différentes visions d’Aldebaran dans le domaine de l’aide à la personne. Ils imaginent des robots capables de fournir des informations et de rappeler à des personnes isolées de prendre leurs médicaments et repas et aussi de les encourager à maintenir un lien avec leur proches. Ils analysent le quotidien de la personne et donnent l’alerte en cas de changement. Le tout grâce à un gros travail dans le domaine de la reconnaissance d’image et l’intelligence artificielle.

L’autre par Pierre-Yves Oudeyer. Au sein de son laboratoire de recherche, les robots apprennent comme des enfants grâce à des algorithmes qui leur permettent d’explorer leur environnement. Son laboratoire de recherche travaille sur une plateforme de robotique Open Source baptisé le projet Poppy.
L’idée est de pouvoir facilement fabriquer son robot soi-même grâce à l’impression 3D et à l’utilisation de composants facilement disponibles tels que des Arduinos ou Raspberry Pi. À la surprise de Pierre-Yves, cette solution est beaucoup utilisée dans le domaine de l’éducation où elle permet de mettre les enfants au contact des robots à moindre coût.


Stephan TualUne autre keynote intéressante fut celle sur Ethereum où Stephan Tual nous explique le principe de cette technologie. Fondé sur les principes cryptographique de Bitcoin, Ethereum permet de concevoir des applications s’exécutant sur un réseau pair à pair. Il y a trois types d’intérêts  :  la plate-forme permet aux développeurs de se décharger de l’hébergement et de la mise à l’échelle, le pair à pair donne une plus forte résilience à l’application et il limite les situations de monopole des plates-formes centralisées (par exemple avec Facebook).


Concernant les technologies Web, Jean-Christophe Sirot (@jcsirot) nous a présenté “Web Crypto API”, des API cryptographiques JavaScript.
Les applications Web sont en effet de plus en plus complexes et certaines d’entre elles ont besoin de chiffrement pour rivaliser avec les applications natives. Des exemples sont le chiffrement d’email côté client avant envoi, ou le chiffrement de fichier avant le stockage dans DropBox ou d’autres outils de partage de fichiers.

Web crypto API

Grâce à des nouveaux types nécessaires pour la cryptographie (pas sure de comprendre si c’est natif ou fourni par l’API de JC, je mettrais plutôt ) JavaScript a été étendu avec des types de données (tableaux d’entier non signé : UInt8Array, UInt16Array et UInt32Array) et de nouvelles API.  Il est maintenant possible de générer des nombres pseudo-aléatoires robustes via `window.crypto.getRandomValues` et d’appeler des fonctions de hachage (sha1, sha256, etc) ou des fonctions de chiffrement symétriques (AES) ou asymétriques (RSA) via `window.crypto.subtle`. Bref, cette API est encore jeune (et les algorithmes de hachage/chiffrement ne sont pas encore tous supportés partout). Elle ne règle pas encore tous les problèmes mais elle a le mérite de permettre d’améliorer la sécurité des applications Javascript à moindre coût. C’est donc une très bonne nouvelle pour les développeurs Web.


Service Workers

Une seconde conférence sur les API Web fut celle d’Hubert Sablonnière sur les Service Workers.
Les Service Workers sont une nouvelle API du W3C. Cette API est une nouvelle façon de gérer le mode offline. La première tentative du W3C fut celle du Cache Manifest qui souffre malheureusement de nombreuses limitations et qui est difficile  à mettre en place. Avec les Service Workers, il est possible de déclarer un Worker (fichier JavaScript exécutant une tâche de fond) qui permet d’intercepter toutes les requêtes HTTP.

Service Workers en détail

Cette API s’appuie sur la nouvelle API fetch, qui remplace l’objet XmlHttpRequest et simplifie énormément les appels HTTP en JavaScript. Avec les Services Workers, à chaque requête, on peut préciser le comportement à déclencher comme par exemple renvoyer la page telle qu’on l’a précédemment stockée en cache,  toujours chercher la page sur le serveur ou encore renvoyer un contenu spécifique. Ainsi par exemple, il serait possible lorsque l’utilisateur consulte une nouvelle page non-cachée et s’il n’y a plus de connexion, d’indiquer à l’utilisateur que cette page n’est pas disponible mais de proposer une liste des pages précédemment consultées et cachées. Un exemple que vous pouvez tester est l’application Web https://nextspeaker.io/ où les données sont récupérées à la première connexion et qui permet ensuite une utilisation en mode hors-connexion. Hubert est convaincu qu’avec ces nouvelles API, le Web entame une nouvelle révolution qui mettra à mal les applications mobiles natives puisque l’un des avantages de celle-ci fut justement, le fonctionnement en mode hors ligne.


Du côté des conférences Agile, celle de Dimitri Baeli (@dbaeli) et Benjamin Degerbaix (@benbaix) de lesfurets.com sur “Livrer chaque jour ce qui est prêt” était très intéressante. Ils expliquent comment ils ont transformé leurs livraisons mensuelles en livraison quotidienne. A travers une adaptation de Git Flow et grãce à l’utilisation d’un outil développé par leurs soins (Git octopus), ils déploient automatiquement et en continu l’ensemble de leurs branches de fonctionnalités sur les environnements de recette. Un travail conséquent a été initié sur les 200 tests Selenium afin de passer leur exécution de 6 heures à 1 heures via Selenium Grid à 10 minutes en les lançant en parallèle via de nombreuses instances Docker et surtout, en RamFS.
Selenium Grid en RamFS
Plus d’information sont disponibles sur https://github.com/lesfurets/selenium-lxc. Enfin, afin de détecter les régressions de style CSS d’une livraison sur l’autre, un autre outil a été développé : il s’agit de Zeno Pixel. Bref, un retour d’expérience très intéressant avec de nombreuses “astuces” à expérimenter sur nos projets.


Parmi les autres conférences qui ont éveillé mon attention, il y a celle sur OptaPlanner par Geoffroy De Smet et Frédéric Hornai (RedHat Luxembourg).
Ce logiciel Open source en Java (http://www.optaplanner.org/) est un solveur, un peu à la manière de celui de Microsoft Excel. A travers différents exemples, on nous présente comment cet outil permet de s’approcher d’une solution optimale pour plusieurs problèmes NP-complet tels que celui du voyageur du commerce ou alors comment optimiser le déploiement d’applications sur des instances de plusieurs fournisseurs de Cloud ayant des coûts / ressources différents. Ce dernier exemple est d’ailleurs un cas concret où un service de Cloud Computing a pu économiser 17 % de dépenses. Cet outil est intégrable dans vos projets Java.


Qu’attendez-vous de votre manager agile ?

Publié par Laetitia Thernier, le 22/04/2015, dans Agile, Événements, Valtech

A question difficile, pas de réponse, ou mille réponses différentes.

Comme chacun a sa propre idée de ce qu’est un « manager agile », Valtech_ vous a offert la possibilité de vous exprimer sur son stand au Scrum Day.

Voici le résultat :wall_manager_agile_2_small

Et voilà notre proposition après catégorisation (post-it rose) :

Manager_Agile

Merci à tous pour votre participation et n’hésitez pas à diffuser ce billet à tous vos managers !

L’équipe Valtech_.


NCrafts, parce que la culture crafts est importante

Publié par Radwane Hassen, le 20/04/2015, dans Valtech

sponsor-platinium-600x187

Nous sommes heureux chez Valtech de soutenir pour la deuxième année consécutive NCrafts et de promouvoir une culture qui nous est chère, la culture craft.

Le software craftsmanship rappelle l’importance du savoir-faire du développeur, dont l’excellence technique et l’amélioration continue sont les clés.
Parce qu’un logiciel qui fonctionne n’est pas suffisant et pour que nous puissions livrer de la valeur continuellement, il faut non seulement la maîtrise du workflow de développement en automatisant tout ce qui est possible de l’être (build, packaging, test…) mais aussi une maîtrise de la qualité du code.

Cette culture craft, pousse les développeurs à ne pas être de simples exécutants mais à être maître de leur art pour que la qualité du produit fasse la différence.

Manifesto

Pendant deux jours de conférence le 21 et 22 mai, venez à la rencontre de speakers internationaux de grande qualité et venez partager avec vos pairs.

Valtech accueillera le 20 mai une journée de pré-conférence où vous pourrez choisir entre 4 workshops :

– “Crafting code workshop” par Sandro Mancuso
– “Event Storming workshop” par Alberto Brandolini & Mathias Verraes
– “Getting Started by Configuration Management” par Paul Stack
– “Introduction to functional programming (using C# and F#)” par Scott Wlaschin


DevOps ok? Voici DevEE!

Publié par Paul-Emmanuel Faidherbe, le 30/03/2015, dans IoT, Valtech

Ces dernières années ont largement été marquées par la volonté d’améliorer la collaboration entre les équipes de développement et d’exploitation afin d’assouplir les process en entreprise.

Mais alors que vous pensiez pouvoir reprendre une activité normale et continuer sur cette lancée, voici qu’un nouveau courant pointe son nez, porté par le secteur en plein essor de l’Internet des objets : j’ai nommé le “DevEE”, pour “Developers” et “Electronics Engineers”!

Lire la suite »



Utilisations des API cachées d’Android

Publié par David Gonzalez, le 2/02/2015, dans Android, Java, Mobile, Tutoriel

En tant que développeur d’application mobiles Android, vous êtes vous déjà demandé comment certaines applications pouvaient accéder à des fonctionnalités qui ne sont pas offertes par le SDK Android? Et même pourquoi certaines applications requièrent d’avoir le téléphone “rooté” pour fonctionner?

Cet article, destiné avant tout aux développeurs Android, va tenter de vous donner quelques éléments de réponses à travers l’utilisation de fonctionnalités cachées, sans rooter (débloquer) son téléphone.

Lire la suite »


Un Domain Specific Language à la rescousse

Publié par Louis Foucart, le 20/01/2015, dans Valtech

Un DSL pour sauver le State Chart XML

Nous allons présenter dans cet article ce que peut nous apporter l’approche “Domain Specific Modeling” grâce à une étude de cas tirée d’une expérience réelle dans l’industrie automobile. Voici en un clin d’oeil le problème à résoudre :

clindoeil

Figure 1. Problème et solution en un clin d’oeil

Nous allons voir comment passer d’un mode de travail d’édition de XML dans un éditeur commun et d’étapes de tests et validations multiples à un mode de travail plus direct et spécifique grâce à un environnement dédié pour un Domain Specific Language.
Un Domain Specific Language est un langage spécifique pour un domaine d’application (métier ou technique). Nous allons définir un Domain Specific Language (DSL) grâce au “Language Workbench” de Jetbrains : Meta Programming System (MPS). Un “Language Workbench” est un environnement de développement de DSL. Nous n’insisterons pas sur le comment (ce n’est pas un tutoriel) car cet outil est très bien documenté sur internet, mais plus sur ce que l’on peut facilement obtenir avec. Nous présenterons ainsi ces capacités d’édition qui nous aideront déjà à sortir de notre problématique. Pour cela, nous allons prendre comme cible, le standard XML de définition de machines à états : le SCXML. Cet article est la suite pratique de Le Choc des Titans : Coder vs Modéliser écrit comme introduction au Domain Specific Modeling (DSM).

  1. Il était une fois… (les machines à états et le marécage du SCXML)
  2. L’Oracle (comment s’en sortir grâce à la recherche du sens)
  3. Le Chevalier du Guet (les difficultés qui font peur à tout le monde)
  4. Les passes d’armes (notre éditeur et ses capacités)
  5. L’épée et le bouclier magique (la réutilisation pour aller plus loin tout de suite)
  6. L’Auberge et la quête (cela ne fait que commencer)

Lire la suite »


Les plugins eclipse indispensables

Publié par Sylvain Delafoy, le 15/12/2014, dans Valtech

On ne vous mentira pas en disant qu’eclipse est moins maintenu qu’avant. Grâce à Ohloh Open Hub, on a les stats depuis 2002. Cependant, en sa qualité d’EDI open-source et gratuit, il n’en reste pas moins beaucoup utilisé. Et à ce titre, nous partageons avec vous les bons plugins eclipse que nous utilisons pour être performants.

MoreUnit

moreUnit

Permet de passer du code de l’implémentation au code de test : CRTL + J. Si le test n’existe pas, ça vous ouvre l’assistant de création d’un nouveau test.

Permet aussi de lancer les tests : CTRL + R. Si le focus est sur une classe d’implémentation, ça lance le test associé.

Ce plugin comble intelligemment les manques d’eclipse. À noter : la possibilité de personnaliser par expression réglière le lien entre la classe de test et l’implémentation au cas où vous n’utiliseriez pas la convention MaClasse / MaClasseTest. J’ai déjà vu du code : MaClasse / MaClasseShould par exemple.

 

Lire la suite »