Skip to content

Blogs de Développeurs: Aggrégateur de Blogs d'Informatique sur .NET, Java, PHP, Ruby, Agile, Gestion de Projet

Forum Logiciel

Forum Logiciel : diffusion de connaissance et d’informations sur toutes les activités liées au développement d’applications informatiques en entreprise.

Agrégateur de flux

Best Of Web 2016 : Nos Retours

Cette année encore, Xebia était au rendez-vous annuel du meilleur des meetups web parisiens : Best of Web. Nous avons cherry-pické quelques uns des talks que nous avons appréciés.

best of web

 

Web animation performance

Freddy Harris @HarrisFreddy

Freddy est un habitué des talks sur les webperfs et l’animation web. Pendant sa présentation, il creuse en détail une feature CSS du futur (proche) : will-change. Grâce à ce paramètre, il est possible d’indiquer au moteur de rendu des navigateurs qu’un élément html va être animé. Le navigateur placera l’élément dans un layer séparé et utilisera le GPU pour calculer sa position et merger le résultat avec le reste de l’image de la page. En séparant ainsi les layers animés des autres, on bénéficie de la vitesse d’exécution du GPU et on optimise le calcul de l’image finale. Durant une animation, cela permet de faire grimper le framerate à 60 fps, nouvelle norme de vitesse pour une animation fluide. On attend plus que le navigateur Edge implémente la RFC pour pouvoir utiliser cette feature en production !

Audrey Neveu <(Streamdata.io) @Audrey_Neveu

Fini les boutons “rafraîchir” sur nos sites ! Aujourd’hui on veut du temps réel !
Dans ce talk, Audrey Neveu nous présente les différentes façons de faire du streaming d’API en 2016. Le but étant d’afficher sur votre site ou application des données toujours à jour, sans que l’utilisateur n’ait à faire d’action particulière (comme rafraîchir la page ou cliquer sur un bouton par exemple).

Pour interroger une API et recevoir les changements au fil de l’eau Audrey nous présente trois façons de faire : utiliser le Long-polling, les WebSockets ou le Server-Sent Events.

Comme Audrey pendant sa conférence, nous ne nous attarderons pas trop sur le Long-polling dans cet article : cela consiste à interroger régulièrement une api pour récupérer des données fraîches, c’est gourmand car beaucoup d’appels réseaux sont effectués. A bannir sur une appli mobile par exemple (pour laquelle il est important de ménager la bande passante).

Elle nous a ensuite parlé des WebSockets. C’est un protocole réseau qui se base sur un socket TCP et qui offre un lien bi-directionnel entre une application et un serveur. C’est à dire que l’api peut pousser en direct les changements et inversement, l’application peut aussi envoyer des données.
Les WebSockets gèrent le texte et le binaire et sont supportés par tous les navigateurs actuels.
Le petit bémol c’est qu’il n’y a pas de système de reconnections automatique. Néanmoins, on peut pallier ce problème en codant nous même la reprise de la connexion.

Audrey enchaîne avec la description du Server-Sent Events.
Le SSE fourni un lien unidirectionnel. C’est le serveur qui pousse de la donnée en temps réel vers l’application, l’inverse n’est pas possible. Le protocole utilisé est HTTP et SSE n’accepte que du texte.
Au niveau de la prise en charge des navigateurs, il n’est pas supportĂ© par Internet Explorer et pour Edge c’est “Under consideration”, on ne sait pas encore…

Audrey termine sa présentation par le live coding d’une petite application qui permet d’afficher en temps réel la position de l’ISS (Station spatiale internationale) sur une Google Maps. Elle nous montre la facilité avec laquelle on peut mettre en place un Server-Sent Events en vraiment juste quelques lignes de code.

Vous pouvez retrouver cette application sur son compte github

CSS, compagnonnage et vexillologie (css flags)

Tim Carry (Algolia) @pixelastic

En voyant ce titre, on se posait tous pas mal de questions. « CSS je connais, mais vexillololologie… Vexillologie !? Mais qu’est ce que c’est ?? Et compagnonnage ? Qu’est ce que ça Ă  voir avec le web ?? ».

Tim nous a tout de suite expliquĂ© le pourquoi du comment. C’est après avoir visitĂ© le musĂ©e du compagnonnage de Tours qu’est venue l’idĂ©e Ă  notre prĂ©sentateur de faire comme les compagnons, et de rĂ©aliser ce que l’on appelle dans leur jargon un « chef d’oeuvre ». C’est ce qui permet Ă  l’Apprenti de passer MaĂ®tre. Ce chef d’oeuvre est une rĂ©alisation dans laquelle son crĂ©ateur utilise toutes les techniques acquises et qu’il a maĂ®trisĂ© durant sa carrière, l’occasion parfois d’innover et d’en trouver de nouvelles. C’est de lĂ  qu’est venu l’idĂ©e Ă  Tim d’appliquer ces principes Ă  son mĂ©tier.
C’est la qu’intervient la Vexillologie, qui signifie « Collection de drapeaux ». Tim dĂ©cide de reproduire les drapeaux des diffĂ©rents pays du globe uniquement en CSS. Travail fastidieux, dans lequel il se met quelques challenges suppllĂ©mentaires, tel que de n’utiliser qu’une seule `div` par drapeaux et faire le reste en propriĂ©tĂ©s CSS, de n’avoir qu’une seule sĂ©rie de font-icons d’une seule couleur (pour les Ă©lĂ©ments vraiment trop complexes tel que le cèdre du Liban). Il nous explique ainsi les diverses techniques (plus ou moins poussĂ©es) et les astuces qu’il a du utiliser pour pouvoir rĂ©aliser son oeuvre.

Le rĂ©sultat est spectaculaire, mais ce qu’il faut retenir c’est sa rĂ©flexion sur le travail du dĂ©veloppeur : l’apprentissage des drapeaux (fonctionnel) et le fait de pouvoir utiliser pleinement toutes les techniques CSS mises Ă  disposition par le langage (technique). J’achèverai en citant sa phrase de conclusion : « Le voyage compte plus que la destination, et j’espère avoir pu, au travers de ma prĂ©sentation, vous faire voyager ».

Vous pouvez retrouver son travail sur le repository de Tim Carry et voir le résultat sur son site de démonstration

Progressive Web Apps

Florian Orpelière @florpeliere

Les progressives Web Apps (ou PWA) était l’un des sujets phares de Google I/O 16 et ça faisait plaisir d’avoir un talk dessus. Les quelques chiffres annoncés donnent à réfléchir : 80% des utilisateurs suppriment une application lors des trois premiers jours d’utilisation. Ce qui laisse 20% d’utilisateurs qui finiront par vraiment l’utiliser. Avec les PWA, le nombre d’utilisateurs est doublé (soit 40%) en raccourcissant le parcours “d’obtention” de l’application. Florian nous passe en revue les aspects techniques à prendre en compte :

Cache et sécurité
Grâce notamment à l’utilisation de Service Workers pour gérer les appels dans des workers séparés, en asynchrones et en HTTPS. Ils permettent également une gestion fine du cache pour une utilisation off-line (https://developer.mozilla.org/fr/docs/Web/API/ServiceWorker).
Performance
Pour avoir une expérience comparable au natif, la performance devient primordiale. Toutes les couches doivent y passer : CSS, appels réseau (HTTP2), gestion de l’asynchronisme, etc.
RĂ©-engagement
Une bonne application est celle qui vous tient automatiquement au courant des informations importantes en les faisant remonter sur votre smartphone. L’utilisation de la push API permet à une PWA de couvrir ce besoin (https://developer.mozilla.org/en-US/docs/Web/API/Push_API).
Installation
Afin de pouvoir installer véritablement une PWA, un manifeste doit être rédigé, il décrira votre application, son nom, etc. (https://developer.mozilla.org/en-US/docs/Web/Manifest)

Bien que certaines briques techniques ne soient pas encore bien supportées par tous les navigateurs, c’est pour bientôt. Les PWAs sont une nouvelle opportunité pour le web d’opposer au “tout natif” une alternative sérieuse. L’avenir nous dira si le défi sera relevé.

Allez voir le Pokédex en PWA, la plus performante du moment.

Mixité dans le monde des web components

Horacio Gonzalez @LostInBrittany

Le web est plus que jamais tournĂ© vers les composants : React, Angular2, WebComponents, Polymer, pour ne citer qu’eux sont autant de rĂ©ponses possible pour les implĂ©menter. Nageant Ă  contre courant du “new is always better”, Horacio nous dĂ©montre comment il est possible de faire cohabiter toutes ces formes de composants, ensemble, sur une mĂŞme application. Sa bonne parole : ne pas constamment tout jeter pour tout refaire avec la nouvelle techno Ă  la mode, mais embrasser les webcomponents afin d’être rĂ©sistant au changement.
Pour lui, c’est Polymer qui apporte la juste dose de facilité d’utilisation au dessus des WebComponents natifs et qui permet de prendre de la distance avec les implémentations particulières. Il nous a présenté une démo à la promiscuité étonnante : Angular 1, React, Polymer, Xtag partageant différentes couches de l’application en bon voisinage. Une présentation très convaincante et pleine d’espoir pour l’avenir de nos applications web.

Retrouvez la dĂ©mo d’Horacio Gonzalez sur son repository

Du web au mobile, les technos multiplateformes qui changent les standards en 2016

Florian Rival @Florianrival

Yann Leflour @yleflour

Dans ce REX, nous avons pu bénéficier de détails très intéressants sur les deux grandes solutions mobiles “non natives” du moment : React Native et Ionic. Chacune présente des avantages et des inconvénients. Ionic (avec bientôt sa version 2) tire son épingle du jeu grâce à une très grande bibliothèque de composants. React Native, quant à lui, offre une intégration native accrue mais souffre d’un choix limité de composants, d’une intégration à Windows Phone pas encore disponible et parfois de composants n’existant que sur l’une des plateformes. Avec l’arrivée d’une solution permettant d’utiliser Angular 2 avec React Native, la scène web / native promet de continuer à faire parler d’elle dans l’année à venir.

En Conclusion

C’était bien, détendu et avec du super fromage ! On garde l’esprit meetup, un niveau technique assez conséquent, avec une nouveauté : quelques guest-stars qui sont venues pimenter cette édition. La conférence proposait également des formations la veille à un prix imbattable. Vous pourrez retrouver photos et croquis sur le site de Best of Web Paris.

Pour nous l’objectif est atteint : partager les connaissances hors des frontières des meetups, sans trop de corporate, pour un prix abordable par tous. Chapeau aux organisateurs et aux speakers et à l’année prochaine !

Thomas Carvalho, Paul-Guillaume Dejardin et Antoine Le Taxin

Catégories: Blog Société

Dernier Hackergarten… avant septembre

Paris Hackergarten

L’open source est un mouvement majeur de notre industrie. Il est le moteur de nombreuses technologies et innovations que nous utilisons chaque jour dans nos projets. En revanche, pour que ça fonctionne, il est nĂ©cessaire de faire l’effort de contribuer en retour. Par exemple si on modifie le logiciel pour un besoin spĂ©cifique, cette amĂ©lioration peut ĂŞtre soumise au mainteneur pour l’intĂ©grer.

Parfois, il est quasiment impossible de contribuer à un projet tellement le coût d’entrée est élevé (on pense au noyau linux avec ses milliers de commits, son organisation commander/lieutenant, sa technicité, etc.).

Cependant, si tout le monde avait cette vision de l’open source, aucun projet ne pourrait bénéficier des contributions de la communauté.

Ce que vous proposent les organisateurs du Paris Hackergarten, c’est de rendre la contribution aux projets open source simple et enrichissante. En effet, quoi de plus enthousiasmant que de se faire aider par les créateurs ou les mainteneurs de ces projets pour se mettre le pied à l’étrier de la contribution active ?

La seconde édition du Paris Hackergarten aura lieu dans les locaux de Xebia le 30 juin prochain. Moyennant l’inscription gratuite au meetup, vous pourrez contribuer à l’un des projets open source :

Si vous souhaitez reprĂ©senter votre propre projet, n’hĂ©sitez pas Ă  contacter les organisateurs directement.

Bref, que vous soyez mentor ou hacker, venez participer à ce tout dernier Hackergarten… avant la trêve estivale.

Catégories: Blog Société

[Product Conference 2016] A provocative question to identify the features that matter

Ce mardi 21 juin 2016, le prestigieux CAP 15 accueillait la première Ă©dition de la Product Conference, un Ă©vĂ©nement entièrement dĂ©diĂ© au Product Management. Au programme, trois tracks parallèles suivant des grands thèmes autour du produit : build, imagine et scale, accueillant chacune 5 confĂ©rences. Comme toujours, on voudrait voir tous les sujets, assister Ă  […]
Catégories: Blog Société

La réalité augmentée avec Google Tango et Lenovo Phab 2 Pro

Le jeudi 16 juin, nous étions chez Google France pour la présentation de la plateforme de réalité augmentée Google Tango et de la phablette Phab 2 Pro de Lenovo, le premier périphérique commercial utilisant cette technologie.

  • Qu’est-ce que Tango ?
  • Comment cela fonctionne ?
  • Pour quels usages ?

Nous vous dirons tout.

Qu’est-ce que Google Tango ?

Anciennement connu sous le nom de “Project Tango”, il est devenu officiellement “Google Tango” le 9 juin dernier et démontre avoir atteint un niveau de maturité suffisant pour ne plus être considéré comme un projet de R&D.

Tango est une technologie, développée par Google depuis 2 ans, qui permet de modéliser un environnement en 3 dimensions grâce à la captation d’images en temps réel depuis un périphérique mobile. Grâce à cette numérisation, le périphérique est capable de reconnaître rapidement son environnement et sa localisation sans utiliser de signal GPS ou Beacon, souvent peu pratique dans un intérieur ou peu précis.

Les 3 concepts de base tango motion trackingLe “Motion Tracking”

C’est la possibilitĂ© pour les pĂ©riphĂ©riques intĂ©grant Tango de se repĂ©rer en temps rĂ©el dans l’environnement. Quelque soit les dĂ©placements (avant-arrière, latĂ©rale, rotation, hauteur), Tango va les dĂ©tecter grâce Ă  la combinaison de capteurs optiques et inertiels, et ainsi dĂ©terminer sa position dans l’espace.

tango depth perceptionL’ “Area Learning”

L’Area Learning est en quelque sorte la mĂ©moire de Tango. Vous pouvez scanner des lieux allant d’une simple pièce au dĂ©dale de couloirs d’un bâtiment. Grâce Ă  cet environnement 3D enregistrĂ©, le pĂ©riphĂ©rique Tango pourra se situer prĂ©cisĂ©ment lorsqu’il sera Ă  nouveau dans le lieu grâce Ă  la reconnaissance d’Ă©lĂ©ments visuels clĂ©s comme les textures, les angles, les coins ou certains objets notables dans son champ de vision.

tango area learningLe “Depth Perception”

C’est la capacitĂ© de voir en 3D et de dĂ©terminer les distances. Avec un pĂ©riphĂ©rique munis de deux camĂ©ras et d’Ă©metteur/rĂ©cepteur infrarouge, Tango capte le relief de ce qu’il voit et arrive à calculer les distances/mesures entre les objets.
Il sera alors possible de créer facilement une expérience en réalité augmentée de bonne qualité.

 

Tango rompt ainsi les barrières entre les diffĂ©rentes rĂ©alitĂ©s : notre rĂ©alitĂ©, la rĂ©alitĂ© augmentĂ©e (AR) et rĂ©alitĂ© virtuelle (VR). Il est possible de faire de la AR en attachant des Ă©lĂ©ments virtuels sur le monde physique mais de s’immerger dans un monde virtuel tout en captant les mouvements rĂ©els de l’utilisateur.

Les 3 APIs pour développer un projet Tango

Google nous propose 3 APIs différentes pour profiter au mieux de Tango.

tango unity Une première destinée à Unity pour créer des jeux ou des applications nécessitant un moteur de rendu 3D. tango java Une deuxième pour les personnes qui sont familiarisées à Java pour les applications sur Android. tango c Et enfin une API en C dans le cas où vous auriez déjà un moteur 3D et que vous souhaitiez accéder à la couche basse directement. La Lenovo Phab 2 Pro

Nourdine OUIDJA (Lenovo) a présenté en avant-première la phablette Phab 2 Pro (téléphone grand écran). C’est le premier périphérique (Android) qui embarque la technologie Tango. Il est le résultat de 2 ans de développement conjoint entre Google et Lenovo pour pouvoir concevoir un appareil capable de proposer des expériences en AR ou VR.

Les caractéristiques techniques

La Phab 2 Pro est équipée d’un écran 6,4” QHD (1 440px × 2 560px). A l’arrière, 3 caméras scrutent l’environnement :

  • un capteur 16M pixels couleur permettant de gĂ©nĂ©rer les textures
  • une camĂ©ra infrarouge capable de dĂ©tecter la profondeur (couplĂ© Ă  son émetteur infra rouge)
  • une lentille fish eye pour Ă©largir le champ de perception de l’appareil et de tracker les mouvements

Lenovo Phab 2 Pro

Afin de rendre plus immersifs les contenus captés par la Phab 2 Pro, elle doit aussi enregistrer le son à 360 degrés. L’appareil est doté d’un capteur audio 5.1 composé de 3 micros. La restitution sonore spatialisée est faite grâce à la technologie Dolby Atmos®.

Pour calculer toutes ces informations en temps réel, un processeur Qualcomm® Snapdragon™ 652 est intégré dans la phablette.

La production devrait démarrer cet été pour une commercialisation à la rentrée 2016.
Cette phablette devrait être abordable, car elle devrait être vendue autour de 500€.

Les démos présentées

Plusieurs démos ont été faites :

  • The Enemy Is Here : le photographe de guerre Karim Ben Khelifa Ă©tait lĂ  pour prĂ©senter via son projet The Enemy comment la rĂ©alitĂ© virtuelle et rĂ©alitĂ© augmentĂ©e permettent une plus grande immersion et gĂ©nèrent des Ă©motions plus fortes. Un sujet très sĂ©rieux qui permet d’envisager de nouveaux moyens de communication.
  • Tango MeasureIt : c’est une application très simple permettant de mesure prĂ©cisĂ©ment longueur, surface ou volume.
    La prise en main est simple, l’application arrive Ă  dĂ©tecter automatiquement les angles entre le sol et le mur (snap) ce qui est pratique pour dĂ©limiter son espace de travail.

tango measure it

  • L’application du MusĂ©e National de New York permettant de visualiser des dinosaures en rĂ©alitĂ© augmentĂ©e dans la pièce.
    Il est possible de faire apparaĂ®tre les dinosaures Ă  l’Ă©chelle. La possibilitĂ© de se dĂ©placer physiquement auteur d’eux ajoutait du rĂ©alisme Ă  l’expĂ©rience.

tango dinosaure

  • Wayfair : une application permettant de visualiser des meubles en AR et de les acheter en ligne. L’application fonctionne correctement mĂŞme s’il n’est possible que de poser des meubles au sol.
  • Un jeu de tir dĂ©veloppĂ© par GPartner (Devoteam)
    tango shootVoici une expĂ©rience originale et pertinante mixant VR et dĂ©placement physique: l’intĂ©rĂŞt du jeu rĂ©side dans le fait d’esquiver des balles rebondissantes en se dĂ©placement rĂ©ellement dans la pièce.
Les use cases envisagés

Plusieurs cas d’utilisation viennent Ă  l’esprit :

  • Indoor mapping / localisation / Guidage en intĂ©rieur: il est possible de modĂ©liser en 3 dimensions les couloirs d’un bâtiment, un rĂ©seau de mĂ©tro et de dĂ©tecter prĂ©cisement la position de l’utilisateur sans balisage physique
  • Aide Ă  distance avec affichage d’informations en AR
  • Mesures prĂ©cises de longueur, surface, volume
  • Personnalisation d’objets en AR en appliquant des couleurs, textures…
  • Ajout d’informations contextuelles dans les rayons d’une grande surface ou dans un musĂ©e
  • Ameublement virtuel : placer virtuellement des objets dans son environnement physique

L’indoor mapping semble très intĂ©ressant car il permet de se localiser lĂ  oĂą les GPS ne sont pas assez prĂ©cis. Il permet aussi de faire de la visite virtuelle une fois que le lieu a Ă©tĂ© scannĂ©.

L’AR et la personnalisation intĂ©ressent dĂ©jĂ  des constructeurs automobiles et des e-commerçants. L’expĂ©rience est pertinente aussi bien pour la conception assistĂ©e par ordinateur, la prĂ©visualisation par immersion ou la formation et l’assistance.

Notre point de vue

Les seuls points perfectibles que nous avons vu sont la portĂ©e de capture et la latence entre les mouvements rĂ©els et leur retranscription dans l’interface.

Pour le premier point, nous atteignons des limites de capture en deçà de 0.5m et au-delà de 4m environ. Ces limites sont inhĂ©rentes Ă  l’utilisation de l’infrarouge sur mobile, seul une avancĂ©e technologique sur la gestion de la consommation Ă©lectrique de l’infrarouge ou un changement de technologie de capture permettra d’amĂ©liorer cela.

Concernant la latence encore trop prononcĂ©e, elle empĂŞchera d’avoir des expĂ©riences satisfaisantes de rĂ©alitĂ© virtuelle (comme DayDream VR/Cardboard) combinĂ©es au suivi des mouvements de Tango. En effet, ce dĂ©calage entre le mouvement de la tĂŞte et l’image perçue par le cerveau provoque le fameux « motion sickness » (nausĂ©e) souvent Ă  l’origine des mauvaises expĂ©riences virtuelles. L’amĂ©lioration des processeurs et des temps traitements devrait faire disparaĂ®tre prochainement ce problème.

En conclusion

Google est en train de préparer une plateforme mobile all-in-one pour la VR/AR avec beaucoup d’avantages. Un appareil compatible Tango (comme le Phab 2 Pro) pourra scanner un environnement, lui donner du volume grâce à la 3D et permettra de faire de la géolocalisation en intérieur sans réseau ou GPS. La promesse: des expériences de réalité augmentée ou virtuelle plus naturelles et plus immersives et pouvant se mêler plus facilement.

Une technologie à suivre assurément pour 2016 et 2017.

Articles suggested :

  1. Améliorer sa productivité avec les expériences immersives
  2. Tour d’horizon de la rĂ©alitĂ© virtuelle, rĂ©alitĂ© augmentĂ©e et des vidĂ©os 360
  3. OCTO obtient en exclusivité la nouvelle génération de Kinect pour Windows

Catégories: Blog Société

Soirée: Être développeur et entrepreuneur

A Duchess Community Blog for France - jeu, 06/23/2016 - 12:12

Vous avez dĂ©jĂ  hĂ©siter Ă  lancer votre propre projet ? Vous vous ĂŞtes sĂ»rement posĂ© pleins de questions : comment je vais pouvoir faire connaĂ®tre mon produit, comment obtenir des investissements … ?

Certes, on est développeur mais comment devenir également entrepreneur ?

Estelle Giuly vous parlera d’un retour d’expĂ©rience très enrichissant autour de son projet web et comment elle a rĂ©ussi Ă  convaincre avec son Ă©quipe, des partenaires pour obtenir du financement:

« Comment prĂ©senter votre futur produit avec un prototype en 5 jours ? » Chez Theodo, nous rĂ©solvons les problèmes mĂ©tiers de nos clients en construisant des applications

Cet article Soirée: Être développeur et entrepreuneur est apparu en premier sur Duchess France.

Catégories: Association

[Agile France 2016] Menaces sur l’équipe projet

Agile France est, selon moi, l’un des Ă©vĂ©nements agiles brassant la plus grande diversitĂ© de sujets. On y rencontre des personnes issues de domaines professionnels très diffĂ©rents, avec des postes et des attentes très diffĂ©rentes, le tout dans le cadre intimiste et familial de Chalet de la Porte Jaune. Après deux jours passĂ©s Ă  dĂ©couvrir […]
Catégories: Blog Société

Création d'une structure d'application avec flexbox

L'actualité de Synbioz - mer, 06/22/2016 - 23:00

Bonjour à tous, suite à un premier article portant sur la théorie de flexbox je me suis dis qu’il était temps de mettre ces connaissances en pratique.

Ainsi à commencé la refonte de notre plateforme Hackademy, où j’ai repris la structure à partir de rien, avec pour objectif d’utiliser au maximum les outils proposés par flexbox.

Lire la suite...

Catégories: Blog Société

iOS / Mobile : WWDC 2016 – allYouNeedToKnow()

Keynote.jpg

Le 13 juin, à San Francisco, a eu lieu le lancement de la fameuse conférence d’Apple pour développeurs : la WWDC. Comme chaque année, le début de cette conférence a été marqué par la Keynote, suivie par le Platforms State Of Union pour des annonces plus techniques. Après plusieurs heures d’attente devant le Bill Graham Civic Auditorium nous avons pris connaissance des évolutions tant attendues cette année sur tous les différents OS: watchOS, tvOS, OSX (désormais appelé macOS)  et iOS. Pour notre plus grand bonheur, les prochaines versions des systèmes made in Cupertino intégreront une myriade de nouveautés.

On note surtout cette annĂ©e un effort de la part d’Apple d’ouvrir encore plus leurs API : des extensions telles que Calls, Siri, Maps, Widgets et Messages pourront directement ĂŞtre intĂ©grĂ© au sein de nos applications par le biais d’extensions.

Deux autres points ont particulièrement retenu notre attention : le premier est l’annonce de Swift Playground sur iOS. Apple souhaite rĂ©volutionner notre façon d’apprendre en proposant un environnement de compilation et execution de code Swift directement sur iPad. Le but, pour l’instant, est principalement didactique : deux tutoriaux interactifs sont dĂ©jĂ  inclus dans l’applicatif. Le deuxième est l’annonce du nouveau système de fichiers APFS (Apple File System) qui va remplacer l’ancien format HFS crĂ©Ă© il y a plus de 18 ans.

Bien sûr, d’autres annonces majeures ont été dévoilées et nous aimerions vous les partager plus en détail dans cet article:

  1. Messages
  2. SiriKit
  3. Swift 3
  4. Xcode 8
  5. Interface Builder
  6. watchOS 3
  7. tvOS 2
1. Messages

Le nouveau Framework Messages permettra d’avoir les mêmes fonctionnalités que celles des outils de chat des réseaux sociaux comme SnapChat ou Facebook. Les développeurs pourront créer (très) facilement des extensions pour interagir directement avec l’application Messages d’Apple.

Nous aurons accès à deux aspects de l’application Messages:

  • le Sticker Pack qui permettra aux dĂ©veloppeurs d’intĂ©grer des stickers Ă  base d’images pouvant ĂŞtre ajouter Ă  un chat. Ce type d’application ne requiert pas de code et peut ĂŞtre crĂ©Ă©e en copiant simplement les images dans un projet gabarit d’Xcode
  • des applications iMessages permettront de crĂ©er des interfaces utilisateurs personnalisĂ©es qui apparaissent en ligne dans l’interface de chat de Messages pour montrer un certain nombre de messages interactifs. Selon Apple ce type d’application permettra de partager du contenu, d’envoyer des paiements, de jouer Ă  des jeux, de collaborer et tout cela directement depuis Messages. D’un point de vue utilisateur, il est intĂ©ressant mettre en Ă©vidence le workflow d’installation d’une extension iMessage : en effet, lorsque nous enverrons un message en utilisant une extension, notre destinataire pourra installer rapidement l’extension nĂ©cessaire pour visualiser le contenu sans passer par l’App Store.
Sessions Ă  explorer : #204, iMessage Apps and Stickers, Part 1 #224, iMessage Apps and Stickers, Part 2 2. SiriKit

Siri est enfin rendu accessible sur iOS 10 grâce Ă  SiriKit et avec le support d’ Intents framework et Intents UI frameworks . L’API rend possible l’intĂ©gration directe dans l’UI de Siri et de parser les paroles de l’utilisateur pour en dĂ©duire des actions pour l’utilisateur.

Pour le moment, SiriKit fonctionnera seulement avec les applications concernant les domaines suivants :

  • Appels audio et vidĂ©o
  • Messagerie
  • Payements
  • Recherche photos
  • Workouts
  • RĂ©servation de trajets

SiriKit.png

SiriKit a Ă©tĂ© pensĂ© de telle sorte que Siri s’occupe de la conversation tandis que l’application fournira la logique pour exĂ©cuter les actions. Comme le suggère aussi le diagramme ci-dessus, il faudra fournir Ă  Siri un vocabulaire source d’intentions sous la forme de .plist. Ensuite l’application recevra en retour une sĂ©rie de donnĂ©es basĂ©es sur les intentions de l’utilisateur, qui pourront ĂŞtre utilisĂ©es pour afficher une interface contenant une ou plusieurs actions.

Sessions Ă  explorer : #217, Introducing SiriKit #225, Extending Your App With SiriKit 3. Swift 3

Swift a Ă©tĂ© annoncĂ© comme le langage Open Source le plus adoptĂ© sur GitHub. Il centralise plus de 350 contributeurs et est utilisĂ© de plus en plus sur des plateformes diffĂ©rentes. La roadmap du langage restera totalement ouverte avec actuellement plus de 100 propositions d’évolutions. Swift 3.0 sera la première version Ă  ĂŞtre compatible avec toutes versions ultĂ©rieures (tout du moins avec la version 4.0), mĂŞme si, comme on s’y attendait, la compatibilitĂ© binaire (ABI Compatibility) ne sera toujours pas garantie.

Swift 3.0 sera plus clair et plus rationnel mais au dĂ©triment de ne pas assurer de rĂ©tro compatibilitĂ© avec la version actuelle : il faudra en effet prĂ©voir des changements sur l’API dues Ă  des nouvelles conventions de nommage. À titre d’exemple, la bibliothèque Grand Central Dispatch utilise maintenant une toute nouvelle interface.

Voici un exemple d’une invocation d’un dispatch_queue en Swift 3.0 :

let queue = dispatch_queue_create("com.xyzcorp.myqueue", nil)
dispatch_async(queue) {
 print("Hello World")
}

qui deviendra plus simplement :

let queue = DispatchQueue(label:"com.xyzcorp.myqueue", nil)
queue.async(queue) {
 print("Hello World")
} 

CoreGraphics recevra aussi le même traitement et, bien sûr, une grande partie des classes de Foundation perdront leur préfix NS.

Sachez que Xcode 8 intégrera un outil pour pouvoir migrer votre code vers Swift 3.0 : nous avons d’ailleurs déjà tenté de faire cette migration pour certains de nos projets actuels mais l’outil reste encore perfectible pour le moment.

Sessions Ă  explorer :

#402, What’s New in Swift #403, What’s New in Foundation for Swift #205, What’s New in Cocoa Touch 4. Xcode 8

Xcode va permettre d’écrire des extensions standardisées donnant aux développeurs la possibilité d’améliorer leur façon d’opérer avec l’IDE. Le premier type d’extension supporté est le Source Editor. La contrepartie est qu’Xcode adopte un nouveau système de sécurité pour ces extensions : la conséquence directe est que le célèbre gestionnaire de plugin Alcatraz ne sera pas en mesure de fonctionner sans avoir préalablement désactivé le System Integrity Protection.

Xcode s’enrichit surtout de deux nouveaux outils de déboggage permettant de détecter des bugs aux runtime :

  • le thread sanitizer: un outil pour identifier les races conditions sur les accès aux donnĂ©es dans un environnement multi-threads
  • le memory debugger : un outil permettant de visualiser un graphe des objets allouĂ©s par l’application. Ceci permettra d’isoler beaucoup plus facilement les fuites mĂ©moire et les rĂ©fĂ©rences cycliques ; une fois ces problèmes identifiĂ©s sur le graphe, il sera donc très facile d’identifier la ligne de code responsable des effets de bords sur la mĂ©moire.

Étant donnĂ© la difficultĂ© d’identifier ce type de bugs on apprĂ©cie grandement que de tels outils soient dĂ©sormais Ă  notre disposition.

Sessions Ă  explorer :

#417, Debugging Tips and Tricks #418, Using Time Profiler In Instruments #412, Thread Sanitizer And Static Analysis #414, Using And Extending The XCode Source Editor 5. Interface Builder

Interface Builder Ă©volue aussi avec des nouveaux modes de visualisations permettant d’obtenir un rendu quasi final sur les devices supportĂ©s par votre application : la prĂ©-visualisation se fera par une combinaison de choix entre un device particulier et un choix size class. Aussi le nouveau Interface builder supportera enfin le zoom continue, ce qui devrait grandement nous faciliter l’Ă©dition des Ă©crans de taille consĂ©quente, tels que ceux de tvOS.

L’annonce la plus notable est certainement l’identification automatique des contraintes ambiguĂ«s sans avoir Ă  builder ou Ă  lancer l’application : nous pourrons ainsi gagner un temps prĂ©cieux sur l’identification complexes des bugs liĂ©s Ă  la mise en place des contraintes.

Sessions Ă  explorer :

#236, What’s New In Auto Layout #222, Making Apps Adaptive, Part 1 #223, Making Apps Adaptive, Part 2 6. watchOS 3 watchOS offrira Ă  priori des performances de calcul bien meilleures que watchOS 2 permettant de lancer de façon quasi instantanĂ©e les applications prĂ©fĂ©rĂ©s. Ces dernières s’afficheront dans un nouveau dock qui remplacera glances. watchOS 3 intègrera de nouveaux gestes et une interface plus Ă©laborĂ©e : plusieurs frameworks connus sur iOS tels que SpriteKit, SceneKit et CloudKit seront seront dĂ©sormais disponibles sur cette plateforme.

 

Sessions Ă  explorer : #208, What’s new in watchOS 3 #227, Architecting for Performance on watchOS 3 7. tvOS 2 Tout comme watchOS, Apple a assurĂ© le portage de plusieurs de ses frameworks sur tvOS pour se rapprocher de ceux d’iOS. Sont concernĂ©s ExternalAccessory, HomeKit, MultipeerConnectivity, Photos, ReplayKit et UserNotifications. Le support pour les contrĂ´leurs sur cette plateforme sera amenĂ© Ă  changer : l’OS sera capable de supporter jusqu’à quatre contrĂ´leurs simultanĂ©s et les dĂ©veloppeurs pourront annoter les jeux nĂ©cessitant un contrĂ´leur.

 

Sessions à explorer : #216, What’s new in tvOS #210, Mastering UIKit on tvOS #215, Focus Interaction on tvOS #212, Developing tvOS Apps Using TVLMKit, Part 1 #229, Developing tvOS Apps Using TVLMKit, Part 2 Conclusion

Cette annĂ©e la WWDC est allĂ©e bien au delĂ  de nos espĂ©rances. Non seulement nous avons eu de belles surprises comme l’annonce du nouveau playground sur l’iPad, mais Apple a su dĂ©velopper des outils de debugging et de dĂ©veloppement adaptĂ©s qui devraient grandement augmenter notre productivitĂ©. On apprĂ©cie bien attendu toutes les nouveaux frameworks (SiriKit, CallKit, Messages) qui au final vont permettre Ă  nos applications de mieux s’intĂ©grer avec l’Ă©cosystème d’Apple mais aussi de mieux interagir entre elles.  Nous vous recommandons donc sans plus attendre de tĂ©lĂ©charger XCode 8 et iOS 10 sur le portail de dĂ©veloppeurs afin de tester ces belles nouveautĂ©s.

Catégories: Blog Société

Retours sur PyData Paris

pydata.png

Les 14 et 15 juin, nous étions à la deuxième édition parisienne de PyData, la conférence internationale regroupant tous les sujets traitant de près ou de loin de Python et de la Data. Au cours de cet article, nous allons vous faire un retour sur quelques-unes des interventions qui nous ont marqués.

Overview : programme et pitches

Keynote d’ouverture – "Predictive Modeling and Python: some trends" – O. Grisel

Lors de cette keynote d’ouverture, Olivier Grisel nous a parlĂ© de l’Ă©volution des outils pour la modĂ©lisation prĂ©dictive au cours du temps. Si l’on se rĂ©fère en termes de quantitĂ© de donnĂ©es Ă  traiter par des « Data Scientists », tout Ă©tait encore envisageable en Excel il y a peu de temps. Avec l’augmentation progressive de la taille des datasets Ă  traiter et de la complexitĂ© des cas d’utilisation Ă  adresser, des outils plus performants comme Python ou R sont apparus plus adĂ©quats. Et puis, au fur et Ă  mesure, les donnĂ©es d’entrĂ©e que l’on avait Ă  traiter ne tenaient plus en mĂ©moire, si bien que des outils tels que Hive devenaient nĂ©cessaires pour faire toute la phase de traitement et Feature Engineering des donnĂ©es. Cependant, une fois ces phases rĂ©alisĂ©es, les donnĂ©es traitĂ©es pouvaient repasser en mĂ©moire, et l’utilisation de bibliothèques telles que scikit-learn Ă©tait toujours envisageable. La nouvelle tendance aujourd’hui est que mĂŞme les datasets traitĂ©s ne tiennent plus en mĂ©moire, et il faut alors utiliser des frameworks de calcul distribuĂ© comme Spark qui permettent de rĂ©aliser toutes les Ă©tapes avec le mĂŞme outil.

Le prĂ©sentateur a ensuite identifiĂ© les problèmes liĂ©s aux passages Ă  l’Ă©chelle des modèles prĂ©dictifs. Ces problèmes surviennent Ă  plusieurs niveaux :

  • Les phases de Feature Engineering et de scoring d’un modèle sont très consommatrices en termes d’I/O
  • La phase d’entraĂ®nement d’un modèle de Machine Learning consomme Ă©normĂ©ment de CPU (Cross-Validation, Modèles d’ensemble, …)

Aujourd’hui, des outils tels que Spark sont de plus en plus utilisĂ©s pour la quasi totalitĂ© des phases d’un projet data. Cependant, son API Python peut prĂ©senter quelques limites:

  • NĂ©cessitĂ© de passer d’un driver Python Ă  du code sur JVM puis repasser Ă  des workers Python, crĂ©ant ainsi beaucoup de latence
  • La traceback est très complexe pour les dĂ©veloppeurs ne faisant pas de Scala
  • Pas de pur modèle Python en local pour PySpark

Ces problèmes font que, souvent, il est nĂ©cessaire de comprendre toute la stack pour debugger du code. MalgrĂ© cela, des outils comme Spark restent les rĂ©fĂ©rences dans le domaine du processing et modeling de la donnĂ©e Ă  grande Ă©chelle. Cependant, quelques alternatives sont en train de voir le jour. Des bibliothèques comme dask ou distributed, qui sont des purs outils Python, permettent de travailler sur de grosses volumĂ©tries de donnĂ©es tout en continuant d’utiliser de manière similaire les bibliothèques classiques que sont pandas ou scikit-learn via des runs asynchrones. Ces bibliothèques ne sont pas encore prĂŞtes pour la production, et il leur manque quelques pièces importantes (shuffle et group by distribuĂ©s notamment), mais pourront Ă  l’avenir devenir des alternatives crĂ©dibles Ă  Spark.    

Pour terminer, Olivier Grisel a parlĂ© des frameworks pour le Massive Parallel Processing (MPP), tels que BigQuery, PrestoDB ou Impala, qui permettent de lancer des requĂŞtes SQL sur de larges volumes de donnĂ©es en utilisant des moteurs diffĂ©rents du Map-Reduce classique. Bien que très pratiques, ces outils ne permettent de faire que du SQL. C’est donc intĂ©ressant pour des requĂŞtes ad-hoc, mais il n’y a notamment pas de possibilitĂ© de visualisations simples des donnĂ©es, ni de processus de tests facilement implĂ©mentables. C’est pourquoi des bibliothèques telles que blaze et ibis apparaissent, permettant d’avoir des APIs en Python par dessus les moteurs SQL.

En conclusion, l’une des choses principales Ă  retenir est que, bien que les bibliothèques pour le calcul parallĂ©lisĂ© sont de plus en plus nombreuses et utilisĂ©es, on ne devrait jamais sacrifier la possibilitĂ© d’utiliser une seule machine locale tant que c’est possible.

Liens utiles :

Présentation similaire Keynote PyData Berlin 2016 : vidéo

Twitter : @ogrisel

Dépôt Github :  ogrisel

Dépôt Github dask :   dask

"Lightning, a library for large-scale machine learning in Python" – F. Pedregosa

Fabian Pedregosa nous a prĂ©sentĂ© Lightning, une bibliothèque Python spĂ©cifique pour le Machine Learning Ă  grande Ă©chelle. Lightning a Ă©tĂ© dĂ©veloppĂ©e en partant du principe que des projets phares commes scikit-learn ne permettent pas toujours de couvrir tous les cas d’utilisation, ni d’intĂ©grer beaucoup de nouveaux algorithmes. Comprenant de nombreux algorithmes pour l’optimisation Ă  grande Ă©chelle, Lightning a une API compatible avec scikit-learn et scalable. Le terme grande Ă©chelle inclu ici les cas oĂą il y a Ă©normĂ©ment d’Ă©chantillons de donnĂ©es, mais aussi les cas oĂą il y a Ă©normĂ©ment de features (colonnes) dans un dataset, avec des algorithmes spĂ©cifiques pour chaque cas.

Bien que la bibliothèque soit compatible avec scikit-learn, il y a tout de mĂŞme des diffĂ©rences en termes de philosophie de construction du code. En effet, scikit-learn est basĂ©e sur les modèles: la classe correspond Ă  la fonction de coĂ»t, et l’algorithme en lui-mĂŞme est un paramètre. Dans Lightning, c’est l’inverse: l’API est basĂ©e sur l’algorithme (qui correspond Ă  la classe), et la fonction de coĂ»t est un paramètre.

Enfin, il n’est jamais vain de rappeler que Lightning est une des premières bibliothèques construites en rĂ©pondant aux critères de scikit-learn-contrib, permettant d’ĂŞtre acceptĂ©e comme bibliothèque compatible avec l’API scikit-learn.

"10 plotting libraries" – X. DuprĂ©

La Data Visualization est un vaste sujet, et chaque domaine peut avoir des contraintes spĂ©cifiques en fonction des donnĂ©es et des informations que l’on cherche Ă  montrer. Cette prĂ©sentation de Xavier DuprĂ© avait pour but de prĂ©senter quelques bibliothèques Python pour la visualisation. De nombreuses bibliothèques existent, nous prĂ©sentons ici les principales qui ont Ă©tĂ© introduites, que ce soit pour de la visualisation statique ou interactive.

Visualisations statiques
  • seaborn: BasĂ©e sur matplotlib, permet de crĂ©er des graphes statistiques attrayants, tels qu’on peut les rĂ©aliser en R ou via matplotlib, avec peu de lignes de code et un design Ă©lĂ©gant.
  • basemap: Aussi basĂ©e sur matplotlib, permet de crĂ©er des cartes de manière très simple avec simplement.
  • ete3: Bibliothèque permettant de reprĂ©senter et analyser des arbres de dĂ©cision. On peut très simplement reprĂ©senter les diffĂ©rentes branches d’un arbre et afficher la distribution des donnĂ©es dans les branches.
  • ggplot: bibliothèque basĂ©e sur la mĂŞme syntaxke que la bibliothèque ggplot2 de R.
  • missingno: Permet de repĂ©rer et visualiser les donnĂ©es manquantes dans une DataFrame pandas.
Visualisations interactives

Les bibliothèques permettant des visualisations interactives sont très souvent basées sur du Javascript, qui reste la référence dans le domaine. 

  • bokeh: Permet de rĂ©aliser simplement des visualisations interactives dans le style de d3.js
  • mpld3: Permet de concilier matplotlib avec d3.js
  • lightning-viz: bibliothèque qui fonctionne aussi en R, JavaScript et Scala.
  • bqplot: Visualisations interactives pour les notebooks Jupyter, utilisant d3.js et ipywidgets.
"How to apply data to make better hiring decision in recruitment" – K. Yeung

Au cours de cette prĂ©sentation, Ken Yeung a parlĂ© de leurs diffĂ©rents travaux concernant des approches Data Driven pour le recrutement. Plusieurs constats ont menĂ© Ă  la volontĂ© de rĂ©aliser ce genre d’Ă©tudes. Premièrement, les entreprises peuvent perdre jusqu’Ă  plusieurs millions en recrutant les mauvaises personnes. Mais un autre point important est de savoir que la notion de recrutement peut ĂŞtre perçue comme subjective et souffre d’un biais dĂ» Ă  l’humain. Des Ă©tudes ont pu rĂ©vĂ©ler que des recruteurs peuvent parfois ne passer que très peu de temps sur un CV et ne regarder que certains concepts clĂ©s, principalement Ă  cause du grand nombre de CVs Ă  Ă©tudier pour un mĂŞme poste. C’est pourquoi une approche Data Driven pour analyser les CV et repĂ©rer les potentiels bons candidats semblait intĂ©ressante.

L’approche proposĂ©e est relativement simple: 

  • Transformer les CV dans un format structurĂ© de donnĂ©es ;
  • Extraire des features reprĂ©sentatives des candidats ;
  • EntraĂ®ner un modèle en se basant sur les CVs des employĂ©s de l’entreprise ;
  • Appliquer les prĂ©dictions de ce modèle sur les CV des candidats pour un poste spĂ©cifique pour repĂ©rer un sous groupe de CV de potentiels bons candidats.

Le gros du travail se situe alors dans l’identification et l’extraction des features Ă  partir des CVs qui ont Ă©tĂ© prĂ©alablement parsĂ©s. Voici quelques unes des features utilisĂ©es pour catĂ©goriser un candidat:

  • SĂ©nioritĂ© ;
  • Potentiel de management ;
  • ExpĂ©rience en industrie ;
  • Indices de performances sur certaines expĂ©riences ;
  • CompĂ©tences tirĂ©es Ă  partir de l’intitulĂ© du job de la personne.

La majoritĂ© de ce travail d’extraction a Ă©tĂ© fait en Python, en construisant un extracteur spĂ©cifique pour chaque feature, et en les assemblant dans un pipeline scikit-learn. De nombreuses questions se posent encore, comme le fait d’ĂŞtre dĂ©pendant de la CV-thèque de l’entreprise ou bien de potentiellement scorer moins bien des candidats avec des profils plus atypiques, mais cette Ă©tude donne un bon exemple de comment utiliser les donnĂ©es Ă  disposition pour assister les recruteurs Ă  prendre de meilleures dĂ©cisions.

"Become an expert in webscraping (data extraction)" – F. Vauchelles

Fabien Vauchelles, CTO chez Zelros, a pu nous prĂ©senter, au cours d’un workshop, sa vision de ce qu’est un « expert » du webscraping et de comment le devenir.

Dans son introduction, il a commencĂ© par Ă©numĂ©rer quelques conseils et pièges Ă  Ă©viter pour extraire les donnĂ©es d’un site web. Il a notamment insistĂ© sur les diffĂ©rentes questions Ă  se poser avant de se dĂ©cider Ă  passer Ă  l’acte : Est-ce lĂ©gal ? Est-ce que les donnĂ©es sont liĂ©es au business du site ? Suis-je sĂ»r que le site ne met pas les donnĂ©es Ă  disposition ? Bien sĂ»r, il a dĂ©conseillĂ© d’utiliser son accès DSL et de passer par un agent utilisateur par dĂ©faut. Vous trouverez plus de dĂ©tails dans sa prĂ©sentation "From 0 to 1 with scraping".

Le framework Scrapy Ă©crit en python a Ă©tĂ© dĂ©crit comme l’un des plus simples, des plus efficaces et des plus robustes pour l’extraction de donnĂ©es structurĂ©es dans des pages web. Il a aussi Ă©voquĂ© son projet, Scrapoxy, qui empĂŞche que votre scraper ne soit  blacklistĂ©. En effet, scrapoxy permet d’utiliser un groupe de proxy pour lancer un grand nombre de requĂŞtes (des instances AWS et OVH peuvent ĂŞtre utilisĂ©es). C’est open-source, Ă©crit en AngularJS/Node.js et facilement utilisable avec Scrapy.

Dans une seconde partie nous avons pu mettre en pratique le framework Scrapy, en nous confrontant Ă  quatre challenges d’une difficultĂ© graduelle. D’abord nous devions scraper le contenu d’une page web puis de plusieurs et enfin contourner diffĂ©rentes mesures de protections (authentification, refus d’agent utilisateur non usuel). Ci-dessous le dĂ©pĂ´t Github permettant de rejouer cet atelier

Liens utiles :

Présentation  : "From 0 to 1 with scraping"

DĂ©pĂ´t Github Workshop : Scraping challenge workshop

Twitter :    @fabienv

Dépôt Github :   fabienvauchelles

"Building Visualisations in D3.JS for Python Programmers" – T. Parslow

LĂ  encore, le sujet de Visualisation de la donnĂ©e a étĂ© abordĂ©. Thomas Parslow nous a prĂ©sentĂ© la bibliothèque JavaScript D3.js permettant de crĂ©er des visualisations interactives pour mettre en valeur la donnĂ©e. Selon lui, bien qu’il existe un grand nombre de façons de crĂ©er des visualisations en python, seule l’utilisation de Javascript permet d’avoir un contrĂ´le total.

S’en est suivi des exemples concrets de visualisations ainsi qu’un premier tour de dĂ©couverte concis et intĂ©ressant du code liĂ© Ă  D3.js. Plus de dĂ©tails dans sa prĂ©sentation Introduction to D3.JS.

Liens utiles :

Présentation  : Introduction to D3.JS

Twitter :  @almostobsolete

"When Software Craftsmanship meets Data Science" – Y. Benoit and S. Lequeux

Cette prĂ©sentation Ă©tait l’occasion pour nous de revenir sur nos idĂ©es et nos avancĂ©es pour concilier les domaines de la Data Science et du Software Craftsmanship. Ces domaines, ainsi que les profils de personnes qui les composent, fonctionnent Ă  priori diffĂ©remment mais ont tout Ă  gagner Ă  collaborer.

C’est pourquoi nous sommes revenus sur les principales diffĂ©rences entre ces deux mondes, tant sur les objectifs, les personnes, l’Ă©ducation que sur les outils utilisĂ©s. Une fois ces constats faits, des pistes de rĂ©flexion ainsi que des conseils et exemples concrets issus de nos travaux ont Ă©tĂ© proposĂ©s. Parmi les thèmes abordĂ©s, les environnements de travail, les tests, l’agilitĂ© et la place du Data Scientist au sein des Ă©quipes.

Toutes ces rĂ©flexions ont pour objectif d’intĂ©grer au plus tĂ´t le Data Scientist dans un mode de travail orientĂ© vers le dĂ©veloppement et le dĂ©ploiement continu, pour une intĂ©gration et une mise en production plus simple et optimisĂ©e des projets avec les Data Engineers et DevOps.

Nous reviendrons sur toutes ces notions dans un article dédié.

Liens utiles :

Twitter : @YoannBENOIT, @slequeux

Catégories: Blog Société

[Agile France 2016] L’organisation mise à nu avec la TOB

L’Agile France ne craint pas la pluie. Pour le dĂ©montrer, 280 participants se rĂ©unissaient ce jeudi 16 juin, sous une mĂ©tĂ©o capricieuse, au Chalet de la Porte Jaune, pour dĂ©marrer deux jours de confĂ©rences et ateliers sur des thèmes divers et variĂ©s. Après un discours d’accueil plein d’humour et un rappel des Ă©vĂ©nements de la […]
Catégories: Blog Société

ekito is a partner incubator of the French Tech Ticket

ekito people - mar, 06/21/2016 - 15:00

Logo_FrenchTechTicket

We are proud to announce that ekito has been selected to be a partner incubator of the French Tech Ticket.

 

Program benefits

As a startup, what do you get?

  • Money!
    You receive 45 000 € per team. You are free to use it as you want, either on professional or personal expenses.
  • an anglophone administrative helpdesk
    You get a dedicated team to help you with every administrative tasks (visa, opening a bank account, convince a lendlord to rent you their house…).
    All ministers worked together to create special “short track” procedures, to make sure you get all you need quickly and smoothly.The administrative helpdesk can be used for you and members of your family.You also get help to find a place to live and get you set up in your new city.
  • 12 months of incubation
    In the package :

    • regular mentoring sessions ; in our case, you will have the joy -at least at the beginning- to meet with us weekly
    • desks
    • access to a master class about entrepreneurship. Each incubator adapts its classes to their startups needs.
    • nomination of an entrepreneur (outside of the incubator) to be your mentor
    • 2 demo-days with VCs and big-cos

I actually wish I could use the administrative helpdesk for my personal life.
Even as a native french.
Or maybe especially, as I already had contact with french administration

Catégories: Blog Société

Digital studies, vol.1 : le nouveau livre blanc d’OCTO Technology

Repositionner les enjeux du digital

Visuel du livre blanc Digital Studies par OCTOLe digital dans les entreprises devenant mainstream, OCTO a souhaité repositionner les enjeux du digital en sortant des sentiers battus et des lieux communs véhiculés par des discours sur la transformation digitale et sur la disruption qui tendent à devenir indifférenciés.

Or l’indifférenciation amène un manque de relief, produit de la confusion et c’est pourquoi, dans l’excitation des transformations digitales, règne un sentiment de désorientation digitale.

Certes, les catalogues de nouvelles méthodes, de nouvelles architectures, d’offres d’accompagnement et de conseil commencent à s’étoffer mais, paradoxalement, elles nous plongent dans le «  vertige de la liste », pour paraphraser Umberto Ecco. Par où commencer ? Comment ne pas s’y perdre ? De plus, comme tout le monde commence à avoir un avis sur le digital, cela devient rapidement le brouhaha.

Volume 1 : ouvrir une nouvelle critique du digital

digital-studies-chapitre-2Une chose est sûre, pour les grandes entreprises, le digital est d’abord un coup rude, un choc. Profitant de l’étourdissement que provoque tout choc, de nouveaux entrants ont pu s’immiscer, parfois en changeant radicalement la donne et en transformant le marché.

Après l’étourdissement, il est temps de reprendre ses esprits, aussi bien pour les victimes de la disruption digitale que pour les licornes de ce nouveau monde, qui ne sont pas forcément les mieux placées pour comprendre pourquoi et comment elles en sont arrivées là ; on se souvient d’autre part ce qu’il advient dans la fable du lièvre et de la tortue.

 

Il est donc temps de donner du relief aux enjeux du digital en sortant du mimétisme ambiant. OCTO a souhaité contribuer à ce renouveau en publiant le premier livre blanc de ses Digital Studies. Il s’agit en effet du premier volume d’une série de publications qui souhaitent ouvrir une nouvelle critique du digital ; une critique qui ne soit pas simplement un avis sur telle ou telle «  solution digitale »  mais une tentative de co-articuler l’économique, l’industriel, le politique et le sociétal à la lumière des technologies numériques et des expertises que nous y avons.

Ce premier volume propose un cadre d’interprétation général aux volumes suivants, il remet le digital dans une perspective historique et anthropologique en présentant les enjeux de la co-évolution et du co-ajustement de plusieurs« régimes d’individuation» (expression qui est précisée dans ce premier volume) : l’individuel, le collectif, le technologique et l’environnemental. Ce cadre général permet de faire la nécessaire mise en contexte pour poser toute question dans de bonnes conditions ; vous y verrez un nouveau visage de la « disruption »,  et plus précisément des «  politiques de la disruption » .

 

TELECHARGER LE LIVRE BLANC

Articles suggested :

  1. Les Géants du Web
  2. OCTO Academy lance son offre de séminaires interentreprises
  3. Formations OCTO : rentrée 2015

Catégories: Blog Société

User story: managing backlogs at Twitter with JIRA user story mapping

Le blog de Valiantys - mar, 06/21/2016 - 10:30

This is a guest blog by Nick Muldoon, Atlassian and Twitter alumnus and the creator of Easy Agile User Story Maps for JIRA. In this blog, Nick explains how JIRA user story mapping enabled Twitter to better understand customer needs, making it easier to manage backlogs and gain a holistic view of products. Tweeps in need I hadn’t ...

The post User story: managing backlogs at Twitter with JIRA user story mapping appeared first on Valiantys Blog - Atlassian Expert.

Catégories: Blog Société

LCC 149 - En direct du Web2day - sans toit ni lua

Les Cast Codeurs se réunissent pour un épisode en direct de Web2day / Tech2day. On y discute de l’évènement en première partie et des news Java et plus en deuxième partie. Merci à Clever Cloud, JFrog et Netapsys pour avoir amené tireuses et futs de bières !

Enregistré le 16 juin 2016

Téléchargement de l’épisode LesCastCodeurs-Episode–149.mp3

Web2day
Tech2day

Riviera DEV

Arnaud HĂ©ritier
CloudBees

Antonio Goncalves

Emmanuel Bernard
Red Hat

Vincent Massol
XWiki

Guillaume Laforge
Google

Web2day

Quentin Adam
Web2day
Tech2day
SEO
SEA

Clever Cloud

Point de vue général

Nantes c’est génial
Zone artistique

Tous des camera sur pied
Beaucoup de panels
Ça casse beaucoup les grands du web (vie privée etc). Point de comparaison ?

La chaussure connectée

Succès par accident

Business face Ă  un mastodonte Recrutement chez Google

Plus de manager pendant un certain temps
Utilisation des données.

La réalité virtuelle

24 millions de matériels vendus

Autopartage

Mixe achat voiture et location de sa voiture
Augmentation de 3 Ă  5%
Apport d’un nouveau publique
Partenariat avec une startup vs innovation en interne

Faut il congeler des ovocytes ?

Place de l’enfant
Un projet embĂŞtant dans la vie ?

Reprendre sa vie numérique Tristan Nitot

Tristan Nitot
Cozy Cloud

Les cochons ne sont pas les clients du fermier. Nous sommes les cochons du numérique.

Coup utilisateur pour Facebook 5 a 6 $ / utilisateur / an

Cauchemars analytique Le code dans les films au cinéma

Tumblr

jfrog
JFrog XRay

News Autres Conférences

Devoxx US
Spring IO
Spring 3 bientôt déprécié, Spring 5 pour JDK 9 mais ne l’attendra pas.

Langages

Les patterns d’exceptions
Parler de System.out

Web

Les principales causes d’erreur Selenium

Pricing

Apple réduit sa commission sur les abonnements
Nouveau prix XWiki

Big data

Consequences et impacts du machine learning
Les CPU spécifiques pour le machine learning chez Google
Les questions des chercheurs dans le domaine

Netapsis

Outillage

Gradle embrasse Kotlin
CĂ©dric Champeau

Architecture

Architecture serverless expliquée par Amazon
On gère ta donnée avec nos applis proprio ; et tu fais ton petit code

Pourquoi DOS Ă  un antislash

Sécurité

2FA et SMS, pas la panacée
Guide pour sécuriser et privacy pour Mac OS X El Capitan

Stratégie et méthodologie

Google gagne contre Oracle sur le fair use des API
La copie des API Ă  travers le temps

Les interruptions

La rubrique du débutant

Expliquer final, expliquer immuable

Conférences

Scala.io et son CfP

Nous contacter

Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com

 

Catégories: Blog Individuel

SOAT reçoit l’Association Alumni Epitech pour une soirée T-REX !

Le 15 juin dernier, SOAT recevait dans ses locaux l’Association Alumni Epitech pour une première soirĂ©e T-REX ! Au programme : retours d’expĂ©riences techniques, mais pas que. L’AAE, crĂ©Ă©e officiellement en 2014, a pour vocation de faciliter, maintenir et dĂ©velopper les liens entre les anciens Ă©lèves et amis de l’EPITECH. Thomas Foulet, dĂ©veloppeur front chez […]
Catégories: Blog Société

Intégrer son application Windows 10 au sein de Cortana

Cortana vous propose non seulement de lancer votre application par la voix comme nous l’avons vu prĂ©cĂ©demment, mais aussi d’y intĂ©grer directement votre contenu. Cette fonctionnalitĂ© vous permet donc de mettre en avant votre contenu directement au sein du système d’exploitation. Nous allons voir, au cours de cet article, comment faire en sorte d’intĂ©grer votre […]
Catégories: Blog Société

PySpark sur votre IDE – Comment faire ?

sparkSpark est maintenant un framework incontournable pour le traitement massif de donnĂ©es. Il est aussi de plus en plus utilisĂ© dans les Ă©quipes de dĂ©veloppement de projets Data, surtout via son API principale en Scala. Qu’en est-il de Python ? Si cette API est elle aussi massivement utilisĂ©e, force est de constater qu’on la retrouve moins souvent dès qu’il s’agit de projets Ă  packager et Ă  mettre en production. Et on comprend pourquoi lorsque l’on voit la difficultĂ© que l’on peut avoir pour simplement utiliser PySpark proprement dans son IDE, tant pour le dĂ©veloppement que pour les tests.

Cet article a pour but de vous aider Ă  outrepasser les difficultĂ©s d’utilisation de PySpark dans un IDE, pour ne pas se restreindre Ă  son utilisation uniquement dans des notebooks ou en shell. Fini les « No module named pyspark » dans vos logs lorsque vous voulez tester votre code dans votre IDE, et surtout plus besoin de tout recoder en Scala pour intĂ©grer proprement votre code dans un environnement de production.

Pré-requis

Cet article est prĂ©sentĂ© sur la base d’une distribution Anaconda, qui incorpore automatiquement toutes les principales bibliothèques Python et facilite l’installation de nouvelles. De plus, nous allons nous baser sur les IDE IntelliJ Idea et PyCharm, et supposer que vous travaillez sur un environnement Mac ou GNU/Linux.

Contrairement au Java ou au Scala, oĂą vous avez simplement Ă  spĂ©cifier dans vos configurations Maven ou SBT quelle version de Spark vous souhaitez utiliser, vous devez tĂ©lĂ©charger vous-mĂŞme un exĂ©cutable de Spark pour travailler avec l’API Python dans votre projet. TĂ©lĂ©chargez de prĂ©fĂ©rence la version prĂ©-buildĂ©e pour Hadoop 2.6 ou supĂ©rieur, et placez le dossier dĂ©zippĂ© dans le rĂ©pertoire de votre choix.

Non, Anaconda ne supporte pas pyspark par défaut

PySpark n’Ă©tant pas prĂ©sent par dĂ©faut dans votre distribution Anaconda, il est nĂ©cessaire de rajouter les paths spĂ©cifiques dans ceux de l’interprĂ©teur. Ces paths vont permettre de spĂ©cifier qu’en plus des bibliothèques prĂ©sentes dans Anaconda, nous souhaitons utiliser le module Python de Spark.

Créez un nouveau projet Python dans votre IDE avec Anaconda comme interpréteur (pour IntelliJ, il faut avoir au préalable téléchargé le plugin Python).

Sur IntelliJ
  • File -> Project Structure -> SDKs -> votre interprĂ©teur Anaconda
  • Cliquer sur « + »
  • SĂ©lectionner le dossier python du rĂ©pertoire spark: your_path_to_spark/spark-X.X.X-bin-hadoopX.X/python
  • « OK »
  • Cliquer une nouvelle fois sur « + »
  • SĂ©lectionner le zip de py4j dans le dossier python/lib du rĂ©pertroire Spark: your_path_to_spark/spark-X.X.X-bin-hadoopX.X/python/lib/py4j-X.X-src.zip
  • Cliquer sur OK
  • OK -> Apply -> OK

PySpark

Sur PyCharm
  • File -> Default Settings -> Project Interpreter -> votre interprĂ©teur Anaconda
  • Cliquer sur l’icĂ´ne « … » Ă  droite du path de votre interprĂ©teur, puis sur « More… », votre interprĂ©teur, puis enfin sur le dernier icĂ´ne en bas Ă  droite (« Show paths for the selected interpreter »)
  • Cliquer sur « + »
  • SĂ©lectionner le dossier python du rĂ©pertoire spark: your_path_to_spark/spark-X.X.X-bin-hadoopX.X/python
  • « OK »
  • Cliquer une nouvelle fois sur « + »
  • SĂ©lectionner le zip de py4j dans le dossier python/lib du rĂ©pertroire Spark: your_path_to_spark/spark-X.X.X-bin-hadoopX.X/python/lib/py4j-X.X-src.zip
  • Cliquer sur OK
  • OK -> Apply -> OK

PySpark

Nous venons de spĂ©cifier Ă  notre interprĂ©teur Python qu’il doit aussi utiliser d’autres chemins afin de pouvoir dĂ©tecter et utiliser les modules spĂ©cifiques Ă  PySpark.

Tout est une histoire de variables d’environnement

Notre pĂ©riple n’est pas encore terminĂ©. Pour fonctionner correctement et sans erreur, votre projet doit avoir des variables d’environnement spĂ©cifiques qui vont permettre d’indiquer automatiquement les rĂ©pertoires nĂ©cessaires Ă  Spark. C’est un peu rĂ©barbatif dans la mesure oĂą ces chemins sont globalement les mĂŞmes que lors de l’Ă©tape prĂ©cĂ©dente, mais nĂ©cessaire pour vous Ă©viter des erreurs du type « SPARK_HOME not recognized » quand vous lancez votre projet.

Que vous soyez sur IntelliJ ou PyCharm, effectuez les Ă©tapes suivantes pour ajouter les bonnes variables d’environnement Ă  votre projet:

  • Run -> Edit Configurations -> Defaults -> Python
  • (Sur IntelliJ) Python Interpreter -> Use specified interpreter -> your Anaconda interpreter
  • Dans la section « Environment variables », cliquer sur « … »
  • Cliquer sur l’icĂ´ne « + »
  • Name: PYTHONPATH
  • Value: your_path_to_spark/spark-X.X.X-bin-hadoopX.X/python:your_path_to_spark/spark-X.X.X-bin-hadoopX.X/python/lib/py4j-X.X-src.zip
  • Click again on « + »
  • Name: SPARK_HOME
  • Value: your_path_to_spark/spark-X.X.X-bin-hadoopX.X
  • OK -> Apply

PySpark

FĂ©licitations ! Vous ĂŞtes maintenant prĂŞt Ă  utiliser PySpark sur votre IDE. Ă€ titre d’exemple, copiez le code suivant après avoir crĂ©Ă© un fichier python dans votre projet (le code suppose que vous possĂ©diez un README.md Ă  la racine de votre projet) :

import os
from pyspark import SparkContext, SparkConf


def main():
    # Spark Configurations
    conf = SparkConf()
    conf.set("spark.master", "local[*]")
    conf = conf.setAppName('WordCount')
    sc = SparkContext(conf=conf)

    # Load README
    readme_rdd = sc.textFile(os.path.join(os.path.dirname(__file__), "../README.md"))

    # WordCount
    print (readme_rdd.flatMap(lambda line: line.split())
           .map(lambda word: (word.lower(), 1))
           .reduceByKey(lambda a, b: a + b)
           .map(lambda x: (x[1], x[0]))
           .sortByKey(ascending=False)
           .map(lambda x: (x[1], x[0]))).take(5)


if __name__ == "__main__":
    main()
Pas de bon développement sans tests

DĂ©velopper un code propre dans votre IDE, c’est bien, mais quand il est testĂ©, c’est encore mieux.

Si vous souhaitez tester du code spĂ©cifique Ă  PySpark, les mĂŞmes règles que pour la phase de dĂ©veloppement s’appliquent: Il faut spĂ©cifier les bonnes variables d’environnement. Il est alors nĂ©cessaire de refaire toutes les Ă©tapes de la partie prĂ©cĂ©dente pour la librairie de tests que vous utilisez (par exemple, Run -> Edit Configurations -> Defaults -> Python tests -> Unit tests). Et quitte Ă  le faire pour une bibliothèque de tests, autant le faire pour toutes, afin de s’Ă©viter tout problème si on change de bibliothèque par la suite !

Conclusion

Nous avons parcouru au travers de cet article toutes les configurations nĂ©cessaires au bon fonctionnement (dĂ©veloppement et tests) de PySpark dans votre IDE IntelliJ ou PyCharm. Comme vous l’aurez compris, le chemin est lĂ©gèrement plus fastidieux que pour du dĂ©veloppement en Scala, mais une fois cela fait, vous bĂ©nĂ©ficiez des mĂŞmes outils de dĂ©veloppement propices Ă  un code stable, testĂ© et industrialisable.

Toutes les Ă©tapes prĂ©cĂ©dentes ainsi qu’un projet simple sont rĂ©sumĂ©s dans le rĂ©pertoire Github suivant: https://github.com/ybenoit/pyspark-ide-starter

Catégories: Blog Société

[PO Dojo] Session d’échanges et retours d’expérience

Agile Nantes - dim, 06/19/2016 - 19:20
Après plusieurs sessions oĂą nous avons collaborĂ© sur la crĂ©ation de notre produit, le groupe a choisi un format d’Ă©changes ouvert pour cette dernière session avant la pause estivale : venez avec vos questions, problĂ©matiques, difficultĂ©s mais aussi retours d’expĂ©rience afin d’Ă©changer avec les membres de la communautĂ© « Product Owners » nantaise. Cette session s’adresse Ă  [...]
Catégories: Association

Rejoignez le premier meetup « Start Me Up » le 28 Juin

OCTO Technology lance le meetup « Start Me Up »

Pour partager sur le dĂ©veloppement de l’innovation au sein des grandes organisations publiques ou privĂ©es, OCTO Technology lance son meetup « Start Me Up », c’est par ici : http://www.meetup.com/fr-FR/Start-Me-Up/

stup1

Ce groupe s’adresse Ă  tous ceux qui sont intĂ©ressĂ©s par le corporate intrapreneuriat et l’innovation. Tous les niveaux de connaissance et d’acculturation sont les bienvenus. Rejoignez-nous pour dĂ©couvrir des pratiques intrapreneuriales, des dĂ©marches de conceptions innovantes et surtout partager des retours d’expĂ©riences, Ă©chec ou succès, issus du monde corporate.

Première session le 28 Juin à 19h

Nous aurons le plaisir de partager deux retours d’expĂ©riences très intĂ©ressants d’innovateurs et startupers « internes » Ă  de grandes organisations : PrivĂ© et Public. En particulier :

  • Thibaut Gery & Xavier Julien, Startuper d’Ă©tat, beta.gouv.fr.
  • Philippe Boulanger, CTO Neopost.

Un moyen très concret de partager les rĂ©ussites et difficultĂ©s de l’innovation dans de grandes organisations.

Une sĂ©quence d’Ă©changes et networking suivra ces deux retours d’expĂ©riences.

 

 

Catégories: Blog Société

Back from spring.io 2016

ekito people - ven, 06/17/2016 - 09:53

The new spring.io conference has been scheduled once again in the beautiful city of Barcelona. This year we talked about Spring Framework (of course), Spring Boot, Spring Cloud, Spring Data, cloud deployment, distributed API, reactive programming… the direction is quiet clear: cloud ready reactive microservices architecture.

Spring.IO is a technical oriented conference, dedicated to the Spring framework ecosystem. The entire agenda (http://www.springio.net/agenda/) is quiet hard to follow (too much interesting subjects). The planning offered 3 concurrent session tracks, and one track for getting hands on with workshops. Below some of the great sessions that we could see.

 2016-05-20 15.31.54

What’s new in Spring?

The first day’s opening keynote is this year focused on majors step of the green leaf framework: 4.3 & 5 with the keynote from Juergen Hoeller, Stéphane Nicoll and Phil Webb. Next few days, will be release Spring 4.3, bringing bunch of fixes & new features and with it:

  • Testing improvement with  annotations & mock integration : Testing improvements
  • Restfull documentation api : Spring REST Docs a mix with hand written information and auto-generated snippets
  • Devtools, the every day life developer survival kit : live-reload, automatic restart, remote debug tunneling  restart  : devtools
  • Stacktrace sanitize (action / message)
  • Distributed tracing : Spring Cloud Sleuth

The major step will come with Spring 5 (early 2017). Although the project will follow the Java standards (JDK 9 : Jigsaw, Servlet 4, JMS 2.1,Http 2…), the next bleeding feature will be the reactor project integration as an entire part of the core : Spring will become reactive !  The emergence of this new programming model reactive tight with Spring tool framework will greatly help its adoption.

2016-05-19 10.29.22

Spring.IO Keynote from Juergen HOELLER

Spring Cloud: the microservices architecture toolkit

From the official project page : “We live in the era of microservices, Cloud Native applications, and containers. This movement is transforming the way enterprise deliver digital initiatives. As enterprises march towards their digital journey, flexibility to adapt to change and timely reaction to the data-driven business decision, matters…” 

In a nutshell, Spring Cloud is a set of tools/modules which are contributing to Spring Boot, for providing all functionalities to build custom distributed solution based on microservices architecture. Here is what’s in the package: 

  • Service discovery (Netflix feature Eureka)
  • Externalized configuration in a distributed system (Spring Cloud Config)
  • Routing (Netflix feature : Router and Filter: automatic registration of Zuul filters)
  • Load Balancing/Inter process communication (Netflix feature : Ribbon)
  • Distributed tracing : Spring Cloud Sleuth
  • Distributed messaging: Spring Cloud Stream
  • Circuit breakers (Netflix feature  Hystrix )
  • Security-identification (OAuth2, SSO)
  • Centralized configuration management (Spring Cloud Consul)

Many sessions were demoing those feature and components. The Spring cloud familly targets the following aspects:

  • An All in the box solution (SSO, auth, HATEOAS, Config, Data, Load balancing, router ….)
  • A Fast deployment off the shelf.
  • An enhanced developer support : documentation, tutorials, dev tools

start.spring.io_urlJosh Long’s Homepage :  start.spring.io (What ever you do, start from here)

The Spring cloud sessions:

  • Cloud Native Java Josh Long
  • Spring Cloud : Exloring Spring Cloud Implementations Spencer Gibb
  • Cloud Native applications with Spring Cloud & Netflix OSS Spencer Gibb (workshop)
Spring 5 & Reactor: reactive programming is coming

Reactive is a programming paradigm that allow you to embrace aspects that must be total part of our daily work in 2016 : scalability & stability. The reactive manifesto is in the place since some years now, and it is still buzzing today ! The core concepts behind are event driven, fault tolerance, scalability and low latency. Even if the event driven programming is not quite a new thing, we must rather see all of it at the emergence of several years of experience and good practices from the cloud industry.

Just take a step back, think with functional programming approach (streams, functions, immutable objects …), event driven and message passing underneath. Reactive programming offers you a great way to rethink components integration in a smarter way, as a publisher/subscriber integration relation. The reactivity of your system is now a first order aspect that you can deal with since the first lines of your project, and not just a stuff you just try to add in production.

Ci4ll8xUUAEf9ew

Keynote with Stephane Maldini

The second day’s keynote titled “Designing Applications: the reactive way” was followed by the “from imperative, to reactive” session. This clearly confirm the will of the Spring community to become globally reactive. But why going reactive ? That’s the subject of the 2nd keynote, by Stephane maldini & Rossen Stoyanchev. As StĂ©phane says, reactive is not the silver bullet, you don’t have to put reactive everywhere, but it now help design components with such key concepts of what we must see in today’s systems.

For those who were eager and couldn’t wait for the keynote of the second day, there were a workshop to have hands on Reactor framework, presented by Sebastien DELEUZE & Stephane Maldini. A great moment to better understand the project’s api.  

The workshop slides & exercises can be found here : https://github.com/reactor/lite-rx-api-hands-on

What else ?

This conference was intense and lots of things to dig in. Here is a small overview of some others sessions:

Getting HATEOAS and Hypermedia right with Spring

Session by Eugen Paraschiv

2016-05-20 15.37.34

HATEOAS with Eugen Paraschiv

A nice presentation about HATEOAS implementation and usage through proper Spring Resource (extends ResourceSupport ) for a fine grained control on produce json (for content and embedded link). The speaker talk about his experience. He speak about Roy fielding phd, Richardson Maturity Model and a way to implement “level 3 of maturity  : Hypermedia Controls”. A lot of doc about this subject Spring HATEOAS – Reference Documentation and Building Rest Service with Spring

Keep calm and push apps AAS

Session by Eugen Paraschiv

Eugen come back on the cloud delivery process, and address continuous delivery from the dev machine to the cloud. Start with a good reminder about how to specify/describe your stories (Gherkin is here). Next, a demo of the Pivotal Cloud Foundry tool belt: push your app to the cloud in one command. You can handle elastic scale with another etc… Eugen shows how to handle your entire build pipeline with Cloud Foundry. Will it be a good concurrent of my favorite heroku tools ? I must test it from myself !

Geospatial web service with Spring & Kotlin

Session by SĂ©bastien Deleuze

Even if Kotlin is not well known in the Spring community, it has its entire chance to be a good alternative to java for writing your next applications. After a good intro for the language, Sebastien presented us his geospatial Spring Boot example.  The exposed library from Jetbrains allows you to avoid JPA for your data persistence, and use a small (but smart) database oriented DSL. The app run with -Xmx32m… yes only 32m of ram !

Catégories: Blog Société

Partagez la connaissance

Partagez BlogsdeDeveloppeurs.com sur les réseaux sociaux