Techdays 2015 - Jour 2 - Nos impressions

La suite de nos impressions sur cette deuxième journée des Techdays, dédiée aux "Professionnels de l'IT". Des sessions plus orientées sur les solutions globales ou les usages, et moins de code, certaines d'entre elles méritaient le coup d’œil.

Keynote : Cloud & mobile, venez comme vous êtes !

Orchestrée par le très sympathique Nicolas Petit, cette keynote avait pour vocation d'évoquer les profonds changements effectués par Microsoft ces derniers temps. Le slogan "Venez comme vous êtes" (petit clin d'oeil à MacDonalds et Nirvana) fait référence à cette nouvelle ouverture de Microsoft. Vous pouvez utiliser les produits Microsoft comme vous le souhaitez, professionnel ou particulier, sur des systèmes Microsoft ou autre, sur n'importe quelle taille d'écran. Pour illustrer ce concept :

  • La sortie de la suite Office sur iOS et Android
  • Les partenariats avec d'autres éditeurs, voire concurrents (Oracle / Cisco / Dropbox)
  • Le passage du Framework .NET en open source

Un discours plutôt convaincant, on a hâte de voir s'ils continuent sur leur lancée !

S'ensuit une présentation  de Windows 10 (pourquoi pas 9, bonne question.. Une réponse ici), la nouvelle version du système d'exploitation ( et particulièrement de sa faculté à gérer n'importe quel type d'écran. Visiblement, tous les futurs devices de Microsoft tourneront sous Windows 10.

Et pour terminer, un petit "teasing" sur le Microsoft Band. Peu d'informations sont données : c'est un bracelet connecté disposant de 12 capteurs (dont Sommeil / UV / rythme cardiaque). A l'image d'Apple, un système global "Microsoft Health" permet de stocker / agréger vos données "Quantified Self". Et dernier point sur cette nouveauté, ici encore, Microsoft fait preuve d'une grande ouverture :

  • L'app du MS Band est disponible sur Windows Phone / Android / iOS
  • Il est possible d'utiliser une autre application avec d'autres bracelets (par exemple Jawbone)
  • Microsoft Health expose des API pour s'interfacer avec d'autres services

Ce que j'en retiendrai :

J'ai aimé cette session pour sa sincérité. Microsoft est pas en train de nous promettre de grandes choses pour plus tard, on y fait un état des lieux des évolutions concrètes de la marque. Et cette évolution fait plaisir !

Technologies « web » d'aujourd’hui et de demain

Par Guillaume Leborgne

Dans cette session, l'orateur parcourait une série de sites pour nous expliquer les technologies utilisées. Le Html5 étant passé au statut de recommandation par le W3C il est maintenant largement utilisé.

Après le gâteau d’anniversaire des 25 ans d’internet et quelques présentations de vieux sites web de 1996, nous avons pu découvrir les nouveautés d’aujourd’hui.

Les deux sites qui m’ont le plus marqué sont :

Et pour demain ?

Guillaume nous parle d’applications Universal en Html5 et HTTP2, de TypeScript, de SIMD et de ASM.js.

Ce que j’en retiendrai :

Les navigateurs sont maintenant quasiment des OS. La majorité de la complexité des sites se trouve côté client et nous le voyons de plus en plus. Les sites peuvent aujourd’hui quasiment tout se permettre en terme de design et il n’y a presque plus de limite. Le débat ancestral du Natif vs Web n'est pas encore fini.

Faites comme Netflix, voire mieux : diffusez de la VOD et du Live dans le monde entier avec Azure et les Frameworks Clients pour atteindre n'importe quel device !

Présentée par Frédéric Le Coquil, Benjamin Moulès et Julien Corioland, cette session nous explique comment les trois compères ont mis au point un site de Streaming Vidéo pour Microsoft. J'ai aimé le fait que ce soit un véritable retour d'expérience, d'un vrai projet que nous avons vu tourner. Pour résumer, l'application dispose d'un BackOffice permettant d'ajouter des vidéos associées à des métadonnées. S'ensuit un encodage en différents formats, et l'application cliente (application mobile Cordova) est ensuite disponible sur différents devices (les formats de vidéos utilisés sont différents sur Windows / Windows Phone / iOS / Android). Le tout est contrôlé par une brique d'authentification via Active Directory.

Le coté intéressant de ce projet est qu'il a été mis en place uniquement sur des briques PAAS (Platform As A Service) sur Azure. Voici un résumé succinct des différentes briques :

  • Azure Media Service : Permet d'encoder directement une vidéo sous différents formats, et de générer des vignettes. Ce service récupère les fichiers "Raw"  déposés précédemment par un upload de l'utilisateur. Il permet aussi le streaming de ces vidéos. A noter que l'on peut scaler le nombre d'instance de ce service en cas de besoin, directement dans l'interface Azure.
  • Azure Mobile Service : Permet en quelque sorte le roaming de paramètres sur les différents devices. Si l'utilisateur commence une vidéo sur l'application Windows, il peut la reprendre simplement sur l'application iPad
  • Azure Website, héberge une appli "WebApi" : fournit les apis consommées par les clients
  • Azure Storage permet de stocker des fichiers de grandes tailles  (les vidéos), et Azure SQL Service est utilisé pour les métadonnées
  • Azure Active Directory permet de gérer l'authentification des utilisateurs
  • Azure CDN permet de soulager le système en fournissant un... CDN :)
  • Des "WebJobs" (programmes C# exécutés sur Azure), et la brique Service Bus permettent d’orchestrer tous ces éléments entre eux

Comme le précise un des speakers, nous retrouvons finalement toutes les fonctionnalités que peut nous offrir Netflix, exception faite du moteur de recommandation.

A noter, plusieurs API et SDK Azure sont open source https://github.com/Azure, dont ceux de Media et Mobile Service: http://azure.github.io

Ce que j'en retiendrai :

Il a l'air facile de streamer des vidéos directement d'un compte Azure !

Dans cette session encore, nous voyons que le cloud Azure peut être vraiment intéressant lorsque l'on développe une plateforme et que l'on souhaite minimiser l'effort sur l'infrastructure.

Kinect pour Windows V2 : La session mouvementée

Par Thomas Ouvré et Fabrice Bardin

Les speakers nous ont parlé du capteur, des usages et du SDK, le tout entrecoupé par de multiples démos. Ils ont désossé en image la Kinect pour nous en montrer le cœur : camera HD et capteur infrarouge percevant des profondeurs de 0.5 à 8m, capteur audio...

La performance de cette nouvelle Kinect et la précision dans la reconnaissance du squelette sont en effet plus meilleures que la V1 et peut ainsi détecter le visage et savoir si nous sourions ou si nous fermons les yeux.

Nous avons pu apprécier quelques cas d’usage dans le domaine de la santé, du marketing ou de l’éducation. Nous avons aussi pu découvrir le SDK et le moteur de machine Learning de la Kinect.

Ce que j’en retiendrai :

Les capacités de la Kinect ouvrent beaucoup de nouveaux chemins pour l’UX. Elle est performante et compatible avec Unity3D.

Création d'une solution d'objets connectés, de l'objet aux services

Présentée par Alex Danvy, cette session rentre dans le détail de la partie "IOT" du projet Héracles présenté lors de la keynote J1. La session rentre directement dans le détail, à partir de l'étape ou des données sont "poussées" par les objets. Autrement dit, nous n'aurons pas de détail sur la création / programmation des objets en soi, ce que j'ai un peu regretté. Il n'empêche que la suite de la session fut très intéressante, avec une bonne dose de code !

Le début de la session concerne la sécurité. Lorsque l'on parle d'objets connectés, il faut décider l'importance que l'on souhaite accorder à la sécurité de nos données.

Typiquement, la brique "Event Hub" d'Azure qui réceptionne les messages n'accepte que des messages envoyés en HTTPS. Certains objets n'ont pas la puissance nécessaire pour encoder leur trafic, il va falloir prévoir des "passerelles" pour faire transiter les messages. Cette passerelle peut prendre la forme, dans leur exemple, d'un Raspberry qui est capable de gérer le SSL. Autre possibilité, envoyer le message en clair sur un site Web classique, qui le retransmettra au bus. La taille de la chaîne "non-cryptée" variant fortement, et il convient d'en tenir compte et de choisir le plus adapté pour notre besoin.

Autre point concernant le stockage des données : veut-on (et a-t-on légalement le droit) de stocker les données des utilisateurs sur un cloud privé ou public, en France ou à l'étranger ? Ou alors, souhaite-t-on un mode hybride (données nominatives sur un serveur privé / données anonymisées sur le cloud) ?IMG_2301[1]

Ces différentes possibilités sont à mesurer en début de projet, et vont avoir un impact important sur l'infrastructure à mettre en place, et son coût.

Pour en revenir à la suite plus "technique", le résumé sera à peu près identique à celui fait dans notre article sur la keynote J1

Le dernier point que j'ai particulièrement aimé dans cette session concerne l'importance de la simulation. Lorsque l'on parle d'un système à très haut débit, il est important de le tester "en charge" pour détecter les potentiels points de contention, et adapter l'infrastructure en conséquence. Les simulations (basées sur des "bots" exécutés sur Azure) nécessitent un minimum de réflexion et de temps de développement, et représentent un coût non négligeable.

Ce que j'en retiendrai :

On parle beaucoup dans ces Techdays d'objets connectés et d'IOT (en même temps, c'est le thème...), mais finalement, les problématiques adressées peuvent s'étendre à d'autres cas d'usage (qui a dit Big-Data ?)

Boite à outils du développeur : Les indispensables

Une des dernières sessions de la journée, victime de la concurrence avec Geek in Da House, la salle était relativement peu remplie. Et pourtant, c'est une de mes sessions "coup de cœur" !

Stéphanie HertrichJohn Thiriet et Rudy Huyn nous ont présenté une session dans la bonne humeur, sur le thème des "Tips & Tricks" à destination de développeurs. Trois thèmes principaux la composent :

Pour commencer, "Fiddler, les fonctionnalités que vous ignoriez"...

Peut-être connaissez vous ces quelques astuces. Ce n'était pas mon cas pour toutes, et cela va m'être utile sur mes projets, dès demain :) Un récapitulatif en quelques bullet-points, je vous invite à visionner la vidéo quand elle sera disponible pour plus de détails

  • Pour tester des connexions lentes, typiquement sur une application mobile, Fiddler permet de "brider" votre connexion ("Custom Rules", dans le menu "Performance")
  • FiddlerCap est un petit soft gratuit. Un "fiddler" light, qui va enregistrer les trames réseaux, permettre d'ajouter des notes, voire même de prendre des screenshots. Autrement dit, l'outil idéal à conseiller à un client qui a des bugs que vous n'arrivez pas à reproduire !
  • Fiddler Echo Service : Lorsque vous utilisez Fiddler sur du Https, il est compliqué d'installer le certificat auto-généré par Fiddler. En fait, il suffit de se connecter sur l'instance de Fiddler, et vous trouverez ce lien en bas de la page (pratique sur les mobiles)
  • Fiddler peut jouer le role d'un reverse proxy. Très pratique pour rediriger les requêtes de son application de Prod vers un serveur de Dev sur lequel on peut débugger
  • On peut "rejouer" une requête capturée par Fiddler et on peut même la modifier avant
  • On peut mettre des points d’arrêts sur certaines requêtes. Par exemple, sur une requête Post, pour modifier la requête en live
  • Geoedge est un site web (payant, mais peu cher), qui permet de simuler des requêtes de divers pays
  • Il existe un plugin "Code" pour Fiddler, qui permet de générer (en drag-&-drop) le code C# d’exécution de la requête sniffée
  • Json Classes Generator est un soft qui permet de générer des classes C# à partir d'un fichier json (NDLR : ou sinon, depuis Visual studio 2013, il est en natif dans le menu "Paste Special")
  • Fiddler Core : Pour terminer, grâce à cette DLL, vous avez accès dans vos propres programmes à toute l'api de Fiddler !

S'ensuit une démonstration de Blend (l'outil de conception graphique complémentaire à Visual Studio). Il est plus difficile de synthétiser cette partie, mais elle nous montre tout ce qu'il est possible de faire directement sous Blend, sans une ligne de code :

  • On peut définir dans nos vues des données de "test" à l'aide du préfixe "d". Par exemple, on utilisera un fichier JSON pour se donner une idée du rendu de nos vues, avec des vraies données métier
  • Il est possible de créer directement des styles, de les modifier, mais aussi de les déplacer dans d'autres fichiers en faisant du drag and drop dans Blend
  • Idem pour les bindings, Blend permet de les choisir simplement dans une liste déroulante
  • dans le code de démarrage de votre application, vous  pouvez ajouter la ligne "this.DebugSettings.IsOverdrawHeatmapEnabled = true;". Cela permet de lancer l'application en HeatMap : avec ce flag, toutes les animations de votre application sont dessinées en temps réel. L’intérêt de cette fonction, c'est de trouver des composants qui sont "animés" sur votre page, sans pour autant être visibles (par exemple, une barre de chargement cachée, qui consomme malgré tout du CPU).

Un dernier point sur l'exploitation des Crash Dumps de vos applications "Windows Store". Cette partie nous détaille pas à pas comment, à partir de ces fichiers, retrouver une stacktrace "managée" qui nous permettra de trouver le bug ou l'appel à l'origine de ce crash. Pour cela, notre speakeuse utilise WinDbg, et nous montre les différentes commandes et fonctionnalités de l'outil. Difficile de prendre en note toute la procédure. N'hésitez pas à vous procurer les slides dès qu'ils seront disponibles !

Ce que j'en retiendrais :

  • Fiddler est notre ami, vraiment
  • Blend est un peu mal-aimé des développeurs, et pourtant, il est beaucoup plus rapide pour certaines tâches
  • Pour exploiter les crash-dumps fournis sur les applications Store, il faut un peu mettre la main à la patte, mais on peut en sortir des choses

Applications multi-plateformes avec Cordova, Html5 et JavaScript

Par Eric Mittelette et Etienne Margraff

Les speakers ont pris très à cœur de respecter le nom de la salle de cette session : Coding4Phone dans la salle à Vannes (enfin, Havane).

Grâce à la filiale Microsoft Open Tech, on peut voir que l'open-source est devenu un vrai sujet pour Microsoft.

A la question « Pourquoi faire du mobile en techno web ? », les présentateurs ont répondu en nous montrant la puissance du html5 et JavaScript sur nos mobiles. Le Js est compilé en natif sur Windows Phone et Webview pour les autres. Nous avons pu voir la même application tourner sur iPhone, Android et Windows phone. Cette application a été développée grâce à Cordova, un outil à utiliser en ligne de commande ou sur Visual Studio. Il permet de développer en JS et TypeScript.

Ce que j’en retiendrai :

Faire une application mobile compatible sur tous les supports, développée en JavaScript …

Mais alors peut-on faire de la 3D en utilisant le webGL ? Eh bien oui ! On peut donc faire comme montré par Eric, un magnifique jeu de dés sur tous les smartphones. Ou alors plus simplement créer une application beaucoup plus rapidement sur les différents supports mobiles. IMG_2313

Le mot de la fin

Microsoft nous a offert un très bel événement cette année. Des sessions intéressantes, des gens passionnants avec qui discuter au détour d'un stand, le tout finement organisé. Lorsque nous voyons le nombre de sessions où l'on a entendu parler d'iPad, d'Android, nous nous disons que Microsoft va vraiment dans le sens de l'ouverture. La simplicité et la puissance d'Azure, les démonstrations techniques BabylonJS montrent que Microsoft a toujours une réelle place légitime dans notre paysage IT d'aujourd'hui, n'en déplaise à certains !

Si travailler sur ces technologies (et bien d'autres) vous intéresse, n'oubliez pas qu'OCTO recrute.