palais descongrèsParis7, 8 et 9février 2012
Vous êtes dans la salle 352A
Kinect + Office365 : Unbon geste en faveur devotre SI !Mardi 7 févrierJulien LO PRESTISamuel BLANCHARDFabrice BARBIN
Samuel BLANCHARD   Au niveau communautaire     Rédacteur/Modérateur chez      Développez     Rédacteur pour Programmez! ...
Julien LO PRESTI   Au niveau communautaire       Contributeur Club SP et .NET Ouest       MSP                           ...
Fabrice BARBIN   Au niveau communautaire      Fondateur Club SP et .NET Ouest      MVP SharePoint Workspace             ...
Contenu de cette session  Kinect + Office365 : Quel usage en entreprise ?  Kinect    Comment ça marche ?    Du code et d...
Kinect + Office 365Quel usage en entreprise ?      De nombreuses suggestions !        Minority Reports – Droits réservés -...
Kinect + Office 365Quel usage en entreprise ?   De nombreux champs d’application !
Kinect + Office 365 : Casd’usage                   Communication interne                   (Information, sensibilisation, ...
Kinect + Office 365 : Casd’usage  Pourquoi Kinect ?
Kinect + Office 365 : Casd’usage  Pourquoi Office365 ?
Kinect + Office 365 : Casd’usage  Les contraintes spécifiques du projet                   Environnement sonore            ...
Kinect : Comment ca marche ?      Contenu (de la « V1 »)           Un projecteur infrarouge           Une caméra infraro...
CODE & DEMOUne souris dans la Kinect ?
Code : Une souris dans laKinect ?     Une position pour la souris // on parcourt tous les squelettes disponibles foreach (...
Code : Une souris dans laKinect ?    Affichage du curseur // Affichage du curseur float x, y; // Normalisation dans un ran...
CODE & DEMOUne souris sur mes contrôles !
De la souris aux contrôles :solution 1        Curseur            • Position Curseur            • Diffusion       Contrôle ...
De la souris aux contrôles :solution 2         Curseur              • Position Curseur              • InputHitTest        ...
Code : Des events pour uncontrôle control = this.InputHitTest(point) as DependencyObject;  DependencyObject   var kinectCo...
CODE & DEMOQu’est-ce qu’elle a ma posture ?
Code : Détection de posture// on recherche le point de lépaulePoint epaule = e.GetSkeletonPositionsWithoutDepth(this)[Join...
CODE & DEMOZoom : Framework KINECT
Office 365 : Comment camarche ?
CODE & DEMOAuthentificationExploitation du projet CodePlex de Wictor Wilén (MVP SharePoint)http://www.wictorwilen.se/
Code : Authentification//Helper pour injecter le cookie avec le COM SPMsOnlineClaimsHelper claimsHelper = new MsOnlineClai...
CODE & DEMOSharePoint : lecture de listes
Code : Liste SharePoint//Creation url liste SPstring url = this.CreateSharepointListUrl( listId, subUrl, viewId );//Webcli...
CODE & DEMOLync : Contacts
CODE & DEMOLync : Communication
Code : Lync//ConnectionService.SignIn("login", "mdp",                () =>                    {                         //...
DEMO, the big one !         OBOX 365
Conclusion  Kinect    Oui : Bonne réponse aux attentes    Mais :       Ergonomie des applications à ré-imaginer       ...
Merci de votre attention Autres sessions sur Office365 Jusquà 10 fois plus de performance pour Sharepoint et Exchange! Jeu...
Merci de votre attention Autres sessions sur KINECT Au coeur dun projet Kinect         Kinect Effect - user experience inn...
Merci de votre attention   QuizzQuestions ?   ?                     Fabrice BARBIN          Julien LO PRESTI      Samuel B...
Vous êtes dans la salle 352A
Kinect et Office365 : Un bon geste en faveur de votre SI
Upcoming SlideShare
Loading in …5
×

Kinect et Office365 : Un bon geste en faveur de votre SI

1,161 views

Published on

Présentation utilisée lors de la session "Kinect + Office365 : un bon geste en faveur de votre SI", co-animée avec Julien LO PRESTI et Samuel BLANCHARD lors des Microsoft TechDays 2012 à Paris.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,161
On SlideShare
0
From Embeds
0
Number of Embeds
384
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Kinect et Office365 : Un bon geste en faveur de votre SI

  1. 1. palais descongrèsParis7, 8 et 9février 2012
  2. 2. Vous êtes dans la salle 352A
  3. 3. Kinect + Office365 : Unbon geste en faveur devotre SI !Mardi 7 févrierJulien LO PRESTISamuel BLANCHARDFabrice BARBIN
  4. 4. Samuel BLANCHARD Au niveau communautaire  Rédacteur/Modérateur chez Développez  Rédacteur pour Programmez! A remplacer par une  Fondateur Club SP et .NET Ouest photo  Créateur d’applications Windows Phone  Outil : isoStoreSpy  Apps: Wario’s Jewels, Sonic’s Jewels Au niveau professionnel  Responsable Développement & Innovation chez Naviso
  5. 5. Julien LO PRESTI Au niveau communautaire  Contributeur Club SP et .NET Ouest  MSP A remplacer  Développement Apps WP7 par une  Don du sang, IC12, Flickr Explorer photo Au niveau professionnel  Etudiant SUPINFO Rennes  Stagiaire chez SYNERGIZ
  6. 6. Fabrice BARBIN Au niveau communautaire  Fondateur Club SP et .NET Ouest  MVP SharePoint Workspace A remplacer  Fondateur de la Communauté par une SPW photo  Auteur d’un ouvrage dédié à SPW  Contributeur Club SharePoint FR (UGSF) Au niveau professionnel  Dirigeant de SYNERGIZ, centre de compétences et de R&D sur technologies Microsoft (www.synergiz.com)
  7. 7. Contenu de cette session Kinect + Office365 : Quel usage en entreprise ? Kinect  Comment ça marche ?  Du code et de la démo…  Zoom : Création d’un Framework Kinect Office365  Comment ça marche ?  Du code et de la démo Démonstration du cas d’usage complet Quizz et Goodies !
  8. 8. Kinect + Office 365Quel usage en entreprise ? De nombreuses suggestions ! Minority Reports – Droits réservés - http://fr.wikipedia.org/wiki/Minority_Report
  9. 9. Kinect + Office 365Quel usage en entreprise ? De nombreux champs d’application !
  10. 10. Kinect + Office 365 : Casd’usage Communication interne (Information, sensibilisation, culture d’entreprise, management) Accueil d’un visiteur (Information, recherche de personnes, …)  Via une « borne » placée dans un endroit public  Pilotée par le geste via Kinect  Dont le contenu et les fonctionnalités reposent sur Office365
  11. 11. Kinect + Office 365 : Casd’usage Pourquoi Kinect ?
  12. 12. Kinect + Office 365 : Casd’usage Pourquoi Office365 ?
  13. 13. Kinect + Office 365 : Casd’usage Les contraintes spécifiques du projet Environnement sonore Public non formé Données « impersonnelles »
  14. 14. Kinect : Comment ca marche ? Contenu (de la « V1 »)  Un projecteur infrarouge  Une caméra infrarouge  Une caméra vidéo  Des micros  Une motorisation Principe  Reconnaissance de la profondeur et suivi de « joueurs »  Reconnaissance de 20 points par squelette  Reconnaissance vocale  Possibilité (par code) de détecter des postures et des gestes En savoir+ : http://fr.wikipedia.org/wiki/Kinect
  15. 15. CODE & DEMOUne souris dans la Kinect ?
  16. 16. Code : Une souris dans laKinect ? Une position pour la souris // on parcourt tous les squelettes disponibles foreach (SkeletonData skeleton in skeletonFrame.Skeletons) { // Le squelette est-il bien repéré ? if (skeleton.TrackingState == SkeletonTrackingState.Tracked) { // on prend la main droite Joint jointHandRight = skeleton.Joints[JointID.HandRight]; // Qualité trop médiocre on passe son tour // (main non affectée par son environnement) if (jointHandRight.Position.W < 0.8f) continue; // on en a trouvé une main ! joie ! return jointHandRight.Position; } }
  17. 17. Code : Une souris dans laKinect ? Affichage du curseur // Affichage du curseur float x, y; // Normalisation dans un range de 0 à 1 kinect.SkeletonEngine.SkeletonToDepthImage(hand.Value.Position, out x, out y); double winX = this.ActualWidth * (double)x; double winY = this.ActualHeight * (double)y; // deplacement par RenderTransform (Translation) this.TranslateCursor.X = winX; this.TranslateCursor.Y = winY;
  18. 18. CODE & DEMOUne souris sur mes contrôles !
  19. 19. De la souris aux contrôles :solution 1 Curseur • Position Curseur • Diffusion Contrôle 1 Contrôle 2
  20. 20. De la souris aux contrôles :solution 2 Curseur • Position Curseur • InputHitTest • Ancetre IKinectCursorControl Contrôle Enfant Contrôle 2 Contrôle 1
  21. 21. Code : Des events pour uncontrôle control = this.InputHitTest(point) as DependencyObject; DependencyObject var kinectControl = control as IKinectControl; // on cherche si un papa nest pas un KinectControl while (kinectControl == null && control != null) { control = VisualTreeHelper.GetParent(control); kinectControl = control as IKinectControl; } if (this.LastKinectControl != kinectControl) { // on quitte lancien control ! if (this.LastKinectControl != null) { this.LastKinectControl.OnKinectLeave(); } this.LastKinectControl = kinectControl; if (kinectControl != null) { // on entre pour la première fois ! kinectControl.OnKinectEnter(); } } if( kinectControl != null ){ // on se deplace car on est déjà rentré kinectControl.OnKinectMove(point); }
  22. 22. CODE & DEMOQu’est-ce qu’elle a ma posture ?
  23. 23. Code : Détection de posture// on recherche le point de lépaulePoint epaule = e.GetSkeletonPositionsWithoutDepth(this)[JointID.ShoulderLeft];// puis la mainPoint main = e.GetHandPositionWithoutDepth(this);// Obtenir langle entre deux points grace à pythagore ! AB2=AC2+BC2double angleInRadian = KinectDevice.GetAngle(main, epaule, AngleUnity.Radian);double angleInDegree = KinectDevice.RadianToDegree(angleInRadian);this.Line.X1 = epaule.X;this.Line.Y1 = epaule.Y;this.Line.X2 = main.X;this.Line.Y2 = main.Y;// Detection : verifier que langle est bien de 140° à + ou - 10° prèsif (KinectDevice.IsAngleInRange(angleInDegree, 140, 10)){ this.Line.Stroke = new SolidColorBrush(Colors.Red);}Else { this.Line.Stroke = new SolidColorBrush(Colors.White);}this.TextAngle.Text = ((int)angleInDegree).ToString() + "°";
  24. 24. CODE & DEMOZoom : Framework KINECT
  25. 25. Office 365 : Comment camarche ?
  26. 26. CODE & DEMOAuthentificationExploitation du projet CodePlex de Wictor Wilén (MVP SharePoint)http://www.wictorwilen.se/
  27. 27. Code : Authentification//Helper pour injecter le cookie avec le COM SPMsOnlineClaimsHelper claimsHelper = new MsOnlineClaimsHelper(siteUrl, login,password);context = new ClientContext(siteUrl);context.ExecutingWebRequest += claimsHelper.clientContext_ExecutingWebRequest;//Webclient injectant le cookievar wb = new ClaimsWebClient(new Uri(this.SiteUrl, UriKind.Absolute),this.Login, this.Password);//Parse document apres le downloadwb.DownloadDataCompleted += (s, args) =>{ ...}
  28. 28. CODE & DEMOSharePoint : lecture de listes
  29. 29. Code : Liste SharePoint//Creation url liste SPstring url = this.CreateSharepointListUrl( listId, subUrl, viewId );//Webclient avec injection du cookievar wb = new ClaimsWebClient(new Uri(this.SiteUrl, UriKind.Absolute),this.Login, this.Password);//Parse document apres le downloadwb.DownloadDataCompleted += (s, args) =>{ var result = new SharepointListResultEventArgs<T>(){ Cancelled =args.Cancelled, Error = args.Error }; if (args.Cancelled == false && args.Error == null) { byte[] data = args.Result; result.Result = ParseDocument<T>(data); }};
  30. 30. CODE & DEMOLync : Contacts
  31. 31. CODE & DEMOLync : Communication
  32. 32. Code : Lync//ConnectionService.SignIn("login", "mdp", () => { //Obtention des contacts de l’utilisateur foreach (var contact in Service.GetContacts()) { ... }});service = new LyncService();//Evènements sur le début et fin de la conversationservice.ConversationStarted += new EventHandler(service_ConversationStarted);service.ConversationStopped += new EventHandler(service_ConversationStopped);Personne personne = this.ContactView.DataContext as Personne;//Début de la conversationservice.StartConversation(personne.Email);
  33. 33. DEMO, the big one ! OBOX 365
  34. 34. Conclusion Kinect  Oui : Bonne réponse aux attentes  Mais :  Ergonomie des applications à ré-imaginer  Nécessité d’un framework (Dev Haut Niveau) Office365  Oui : Solution pérenne, bien outillée pour répondre aux besoins  Mais :  Disponibilité des données à optimiser (Cache)  Lync : Nécessité d’avoir le client installé Kinect+Office365, en entreprise ?  Oui : Concept démontré  Mais : Nécessité d’éprouver dans « la vraie vie »
  35. 35. Merci de votre attention Autres sessions sur Office365 Jusquà 10 fois plus de performance pour Sharepoint et Exchange! Jeudi 9 Février | 14h30-15h30 Tout ce que vous avez toujours voulu savoir sur Office 365! Mercredi 8 Février | 14h30-15h30 La gouvernance du Cloud : Retour dexpériences des clients Office 365 Mercredi 8 Février | 13h00-14h00
  36. 36. Merci de votre attention Autres sessions sur KINECT Au coeur dun projet Kinect Kinect Effect - user experience innovant revolution Mardi 7 Février | 16h00-17h00 Mardi 7 Février | 13h00-14h00 La kinect à lécoute des nouveaux Tout sur Microsoft Speech usages métiers et interactions Mercr. 8 Février | 17h30-18h30 avec les solutions Microsoft Mercredi 8 Février | 14h30-15h30 Jeux multi-écrans : envolez- vous avec Kinect, Silverlight et Applications robotiques avec WP7 Kinect et Robotics Dev Studio Mardi 7 Février | 13h00-14h00 Mercredi 8 Février | 13h00-14h00 …
  37. 37. Merci de votre attention QuizzQuestions ? ? Fabrice BARBIN Julien LO PRESTI Samuel BLANCHARD fbarbin@synergiz.com jlopresti@synergiz.com samuel.blanchard@naviso.fr
  38. 38. Vous êtes dans la salle 352A

×