Build 2015 – Windows App Lifecycle from activation/suspension, background and multitasking

Session intéressante sur le cycle de vie des applications et les tâches de fond dans Windows 10. Pas besoin de connaitre déjà ces mécanismes pour voir cette session puisque le speaker explique ces éléments « from scratch ».

Le cycle de vie reprend celui de Windows 8 avec 3 états : Not running / Running / suspended

Dans windows 10, une application tournant en mode desktop est suspendue quand on la passe en « minimize »

La grosse nouveauté concernant le cycle de vie dans Windows 10 est le concept de « Extended Execution ». Une application peut demander un sursit pour by-passer la suspension (par défaut l’application a quelques secondes et elle est tuée si la suspension prend trop de temps). L’objectif est de permettre des traitements plus long à la suspension (enregistrement des données), ou de continuer l’execution (application de navigation GPS par exemple). Ce sursit peut être révoquée par le système en cours de route si il est nécessaire de libérer des ressources, un évènement est alors déclenché pour notifier l’application qu’elle va être quand même suspendue. Côté code, cela passe par la création d’un objet de session qu’on référence au niveau du système, et qui va porter la callback de révocation.

Pour les traitements en tâche de fond, le modèle est également celui de WinRT, avec des évènements déclencheurs (triggers) et des conditions. Il existe cependant plein de nouveaux types de triggers (ajout d’un appointment, d’un contact, device bluetooth demandant une connexion, capteurs, …). Une différence cependant est que les applications n’ont plus besoin d’être sur le lock screen pour certains déclencheurs comme le TimeTrigger (bonne nouvelle car c’est galère).

Parmis les choses intéressantes, de nouveaux triggers comme le ApplicationTrigger, ou des anciens comme le MaintenanceTrigger tournent maintenant en mode opportuniste, sans quota de ressources. Cependant, les tâches de fond de ce type ne fonctionnent que si les ressources sont disponibles. Autre nouveauté intéressante, le ApplicationTrigger, qui permet (enfin) de déclencher une tâche de fond depuis l’application. Très interessant dans les applis offline pour déclencher une première synchro, ou un traitement long.

On peut maintenant aussi avoir une tache de fond qui s’execute dans le même process que l’application.

Build 2015 – Project Oxford : Adding smart to applications

Project Oxford est une nouvelle fonctionnalité qui n’a pas été annoncée pendant la keynote. Elle fait partie de Azure, dans la famille du machine learning

C’est un set d’API REST basé sur du machine learning pour interagir avec des contenus multimedias
– traitement images (analyse, OCR, thumbnail intelligent, …)
– reconnaissance visages (detection, verification, identification)
– speech (Text To Speech, Speech To Text)
– LUIS (language understanding intelligent service, ex: traductions, détecter les intentions)

L’API semble simple d’utilisation, et la partie LUIS permet seule, ou combinée au speech, des scénarios métier assez intéressant pour pouvoir définir des commandes, un peu comme le fait Cortana.

Project Oxford est disponible en béta ici:
http://www.projectoxford.ai

Cela passe par la souscription et le portail azure donc il vous faudra obligatoirement un compte Azure pour pouvoir tester

#PASSBAC 2015 – Andrew Brust – Using Hadoop with Excel and Power Query

Andrew débute la première partie de sa session en présentant Hadoop.

On parle de Big Data lorsque le volume de données dépasse les centaines de To et va jusqu’au Po ou plus. Il s’agit de données transactionnelles énormes issues en grande partie : des données financières, de logs de site web, des réseaux sociaux, des objets connectés (IoT), des données mobiles, etc. Pour pouvoir traiter et analyser ces données, un système monolytique ne suffit plus, il est nécessaire d’adopter une architecture scalable afin de pouvoir effectuer des traitements en parallèle au travers différents serveurs en cluster. C’est le principe même d’Hadoop.

Les concepts principaux à connaître sur Hadoop sont

  1. HDFS : Hadoop distributed files system : c’est le système de fichiers qui détermine où et comment les données sont distribuées et stockées sur le cluster. Les données sont répliquées sur les différents nœuds du cluster, ce qui permet :
  • d’avoir une architecture haute disponibilité (si un nœud tombe => aucune perte de données)

Distributed File System : on where data gets distributed over commodity drives on commodity servers

  • de pouvoir effectuer des traitements en parallèle
  • d’ajouter simplement de la puissance de calcul en ajoutant de nouveaux nœuds au cluster (scale-out)
  1. Map Reduce : c’est l’opération qui permet de parser l’ensemble des données en parallèle pour n’extraire que celles dont vous avez besoin. Cette opération se décline en deux temps :
  • Map step : les données sont parsées en parallèle sur l’ensemble des nœuds du cluster
  • Reduce step : retourne toutes les données associé à la même clé et les agrège

Ces opérations se font en java.

  1. Schema-on-Read : lorsque vous traiter des données non structurées, le schéma est imposé lors de la requête et dépend du contexte par exemple :
  • Si vous scanner un livre, les valeurs à retournées sont-elles les mots, les lignes, les pages, les chapitres ?
  • Est-ce que la date et l’heure sont deux champs séparés ou bien un seul …

Pig et Hive sont les deux outils qui permettront d’effectuer cette interprétation de schéma à la volée.

Andrew continue ensuite par la présentation de la stack Hadoop V1 puis V2. Je ne m’attarderai quant à moi qu’à la V2.

HadoopStack

Je complète juste par quelques annotations sur les éléments les plus marquants de cette stack :

  • HDFS : Hadoop Distributed File System
  • YARN : ressource governor
  • HBASE : base de données avec stockage en colonne
  • Hive et Pig : couche d’abstraction permettant de faire du Map Reduce
  • SCOOP : utiliser pour l’import/export RDBMS bidirectionnel
  • Sparl SQL, Impala et Tez permettent de faire du SQL interactif
  • Lucine et SolR sont des moteurs de recherche
  • Sparl MLib et Mahout : permettent de faire du machine learning/ Data Mining
  • Spark Streaming, Storm et Kafka : sont utilisés pour le Streaming Data

Les différentes distributions d’Hadoop sont Cloudera, Hortonworks HDP, MapR, IBM InfoSphere, Pivotal HD et Microsoft HDInsight. Elles utilisent toutes le même noyau Hadoop décrit précédemment.

Microsoft HDInsight a été développé avec Hortonworks et permet d’avoir une distribution HDP sous Windows. Les spécificités de cette distribution sont :

  • Windows Azure HDInsight
  • Azure Blobs Storage
  • L’accessibilité via du PowerShell et des cmdlets HDInsights
  • Une interface web permettant d’exécuter des requêtes Hive et de monitorer des jobs

S’en vient alors les démos :

  • Mise en place du cluster sous Azure
    • Création d’un cluster HDInight via le portail MS Azure => cela se fait en quelques clics, en configurant soit même le type de plateforme souhaitée (nombre de nœud dans le cluster, la région, le type de vm (core CPU + mémoire), un username, l’accès en RDP, le stockage). Le cluster Hadoop est créé et accessible quelques minutes
    • Connexion au cluster HDP via l’interface Azure
    • Utilisation de la console HDIngith Query Console vous permettant d’exécuter des requêtes Hive
    • Revue des solutions proposées avec ou sans sample data)
  • Hadoop commands (cf. slide pris en photo sur tel)
  • Connexion au cluster hadoop en rdp via la console Azure,
    • ouverture d’une fenêtre de command hadoop et quelques exemples de commandes Hadoop
    • Création d’un job executant une requête hive
  • Récupération de données HDP via Excel
    • Via le driver ODBC
  • Pig est un combo entre un requêteur et un ETL, il permet de travailler avec des données structurées et non structurées. Andrew nous livre quelques exemples de requêtes Pig.
  • Démo Power Query sur une source de données HDFS
  • Power Bi 2.0
    • Pas de dépendance avec Office 365
    • Moins cher : freemium model, Pro version pour $10/user/month
    • Across platform experience (iOS, Android, Windows)
  • Démo Power BI Designer
    • Connexion à HD Insight via Power Query, quelques transformations, puis passage en mode reporting/dahsboarding sur Power BI Site
  • Démo Tableau
    • Connexion à HD Insight et exécution de la même requête
    • Travail sur les mêmes données….

Andrew n’a pas eu le temps de faire d’autre démo avec d’autres outils comme Qlik Sense ou Jaspersoft, peu importe, quel que soit l’outil utilisé, les données Hadoop sont très facilement utilisables et exploitables.

Il ne vous reste plus qu’à aller sur le site d’Hortonworks pour aller télécharger la sandbox et jouer avec. Ou bien aller directement sur Azure.

Resolving WinJS webcomponents attributes

Now that you know how to use WinJS as webcomponents, and how to declare your controls, we will talk about the mecanism for resolving attribute values.

Lets work with an example :

<win-listview id="recentItemsList" member 
	itemdatasource="list:ctrl:recentItemsPromise" 
	itemtemplate="select:#pictureItem" 
	iteminvoked="event:ctrl:recentListItemInvoked"></win-listview>

You could think of attribute resolution as

[what to do]:[where to look]:[string token]

If you look at the « itemdatasource » attribute, you could read it like this : get the « recentItemsPromise » property from parent control, and wrap it in a WinJS.Binding.List for the ListView.

In this example, « recentItemsPromise » is just a string, and « ctrl » and « list » are operators. The list operator is smart enougth to see that it received a promise, and await it to set value.

Operators are just functions referenced in the namespace WinJSContrib.Utils.ValueParsers. You could provide your own operators by adding them to this namespace.

When the attribute is resolved, you will endup with something equivalent to :

list(domelement, ctrl(domelement, "recentItemsPromise"));

As you can see, their is no complex parsing involved, it is very efficient, and enforce composition. You have no limit at the number of operators you can chain like this.

You could find the list and details about built-in operators in the API documentation.

#PASSBAC 2015 – Teresa Palmer Boroski – Instant dashboard for your critical business

Teresa nous montre les forces de Power BI au travers un panel de démo permettant d’éprouver :

  • La richesse des connecteurs Power BI
    • Exemple de dashboard sur Dynamics CRM, sur Google Analytics (un nouveau né) et Salesforce puis revue des autres connecteurs Excel workbook Power BI Designer File, Analysis Services, GitHub, Marketo, Dynamics Marketing, Salesforce, SendGrid et ZenDesk
  • La simplicité d’utilisation de l’outil
    • Au cours des différentes démos, nous avons pu voir :
      • Comment créer une connexion à une source de données
      • Comment créer un dataset
      • Comment créer des rapports
      • Comment créer des dashboards
      • Comment ajouter des éléments sur un dahboard issus de différents datasets
      • Comment rafraîchir les données (soit par l’intermédiaire d’une planification, soit à la demande)
      • Comment modifier l’apparence de son dashboard en disposant et en redimensionnant les éléments à la volée
      • L’utilisation du Q&A

Pour résumer cette session :

  • Les forces de l’outil :
    • De nombreux connecteurs
    • Permet aux utilisateurs de se connecter à leurs données sans savoir une plateforme analytique dédiée
    • La grande simplicité d’utilisation de l’outil
    • Richesse des graphes
    • Des mises à jour tous les mois
  • Les faiblesses sont quant à elles pointées par l’audience
    • Pas d’encapsulation possible sur un autre portail Web ou dans une application comme Dynamics
    • Pas d’autorefresh à l’ouverture, par conséquent, le rapport partagé expose les dernières données rafraîchies avec les credentials enregistrés au niveau des data sources et non ceux de l’utilisateur connecté
    • Pas de possibilité de passer des paramètres dans l’url
    • Pas de mode déconnecté
    • Pas de push mail, ni de data alerting

Il faut donc se tourner vers le support pour indiquer les fonctionnalités que vous voulez voir implémenter et se tenir au courant de celles délivrées chaque mois.

#PASSBAC 2015 – Jen Underwood – Best Practice Mobile Dashboard Design

Des décisions cruciales doivent être prises à tout moment, partout et sur n’importe quel appareil. Fournir des réponses immédiates à vos utilisateurs quand ils en ont le plus besoin peut se révéler être un véritable défi. Quand on sait que plus de 80% des employés utilisent déjà des appareils mobiles aussi bien dans leur cadre personnel que professionnel, il est désormais crucial de fournir à vos employés les informations nécessaires pour prendre les bonnes décisions au bon moment.

Dans cette session, Jen (http://www.jenunderwood.com) nous initie aux considérations à prendre en compte pour la mise en en œuvre d’un BYOD et nous fournis un ensemble de démos intéressantes sur Power BI et Datazen.

Quels sont les challenges de la BI mobile ?

  • Les différentes tailles d’écran des terminaux
  • Le manque de clavier physique
  • La navigation tactile

Quelles sont les questions à se poser ?

  • Quelles actions doivent être prises ?
  • Comment les utilisateurs vont utiliser les dashboards ?
  • Quels sont les terminaux qui seront utilisés pour visualiser les dashboards ?
  • Est-ce que les utilisateurs peuvent voir les évolutions, les tendances ou bien faire des comparaisons rapides ?
  • Est-ce que les utilisateurs peuvent personnaliser les dashboards pour recevoir/emmettre des alertes contextuelles ou proactives ?

Quelles sont les bonnes pratiques ?

  • Repensez le besoin, n’apporter que l’information essentielle
  • Concevez l’information afin qu’elle puisse être affichée sur les plus petits écrans
  • Adoptez une visualisation en mosaïque du haut vers le bas Créez des templates par terminaux
  • Utilisez des palettes de couleurs réduites
  • Vérifiez la disponibilité des polices sur vos différents terminaux (les tailles de polices les plus utilisées sont 9,12 et 15)
  • Utilisez des noms et des formats de données courts
  • Mettre en places des « one top actions » pour partager rapidement l’information (email, twitter, facebook, etc.)

La data visualisation est essentielle

  • Quelles significations ont les couleurs et les icones ?
  • N’oubliez pas de prendre en compte les daltoniens => faites un tour sur http://colorlab.wickline.org/colorblind/colorlab/
  • Le contexte social, l’identité, la motivation et la langue sont autant de facteurs à ne pas négliger.

Les erreurs de visualisation les plus communes :

  • L’utilisation de graphes camembert ou en 3-D modifie la perception de l’information
  • Trop d’informations affichées
  • L’utilisation de pattern de remplissage
  • Des axes inconsistants, un mauvais tri ou un mauvais placement
  • L’utilisation du count vs %

Il faut donc rester sobre, succinct, et ordonner l’affichage des données en fonction de leur priorité en choisissant le graphe le plus adapté en fonction de l’information à véhiculer.

Jen passe ensuite de la théorie à la mise en pratique par quelques démos effectuées sur Datazen avec une utilisation multi plateforme (sur PC sous win 8.1, sur IPad  et sur IPhone). La prise en main du Datazen Designer est simple et montre la capacité du produit à concevoir un même dashboard sur différents devices (PC, tablette, smartphone), définir des templates, de définir et d’utiliser ces propres maps, etc. Un produit qu’il faudra prendre en main rapidement, d’autant plus, qu’il est gratuit pour tous ceux possédant une licence SQL Server 2008 Enterprise et plus, avec ou sans software assurance.

Jen passe ensuite aux démos Power BI, toujours en Public Preview. A ce sujet, entre les sessions, j’ai pu discuter avec Kasper De Jongue afin d’avoir une éventuelle date de release de Power BI (Et oui, pour ma part je n’ai jamais connu de client partir sur une preview sauf pour des POCs, en règle générale ils attendent plutôt le SP1). Kasper m’a alors répondu que Google était resté en preview pendant plus de 10 ans sans que cela ne gêne personne. Il faudra donc faire avec et convaincre nos clients de la maturité du produit tout en jouant sur les update packs qui sont délivrés tous les mois et qui sont loin d’être des mises à jour correctives :

  • Apparition du Power BI Designer
  • Apparition de nouveaux connecteurs ces derniers mois Salesforce, Dynamics, SAP BO, Google Analytics,…
  • De nouveaux graphes (treemap, funnel chart, filled map, cluseterd combo, gauge) et de nouvelles fonctionnalités (gestion des relations many-to-many dans Power Pivot, de nouvelles transformations Power Query)
  • La possibilité de piloter Power BI via l’API
  • Un mode de licensing agressif par rapport à la concurrence

Je suis pour ma part plutôt convaincu par Power BI, mais il reste encore quelques points clés comme

  • avoir la main sur les palettes de couleurs
  • pouvoir embarquer des rapports/dashboards Power View dans Dynamics ou bien sur un portail SSRS natif ou bien n’importe quel site .Net par l’intermédiaire d’un viewer
  • la gestion des credentials pour certaines sources de données
  • permettre un mode déconnecté
  • intégrer SSRS, car pour l’instant c’est le seul qui sache faire du reporting opérationnel, une diffusion en masse pilotée par les données, et du data alerting

Merci à Jen pour cette session très enrichissante.