Est-ce la mode des CV en réalité augmentée ?

La réalité augmentée est un sujet très chaud en ce moment avec de nombreuses expérimentations par des marques, sur l’iPad, pour faire de la traduction, sur des t-shirts et même dans les bibliothèques. Bref, la réalité augmentée se démocratise et les particuliers commencent à s’en servir pour des applications de petite envergure.

Dernièrement j’ai découvert des choses très intéressantes faites avec des CV, notamment par CWJobs qui a créé le premier CV en réalité augmentée : Welcome to the world’s first AR CV.

Exemple de CV en réalité augmentée

Pour être plus précis, il s’agit en fait d’une sorte de showreel que l’on déclenche à l’aide d’un marqueur sur une carte de visite :

Le résultat est très impressionnant, d’autant plus que la réalisation est de qualité et que le monsieur en question a un parcours remarquable (David Wood est le co-fondateur de Psion, excusez du peu…). Le making-of de ce CV est d’ailleurs assez explicite sur les moyens employés :

Mais ne vous découragez pas pour autant, car il existe quantité de briques techniques assez simples à exploiter comme FLARToolkit et IN2AR.

Illustration avec le CV créatif de Victor Petit (Cocorico !) : QR Code Resume Makes Your Embossed Paper Look Lame.

Ici l’utilisation de la réalité augmentée repose sur une application iPhone, mais le rendu est particulièrement novateur (et surtout graphiquement cohérent).

Donc je résume : en plus du code 2D pour facilement vous trouver sur la toile, votre CV ou votre carte de visite devra maintenant intégrer un marqueur pour un visionnage augmenté. Hum… ne serait-il pas plus simple d’utiliser le code 2D comme marqueur ?

Le B A BA de la 3D dans Flash

La semaine dernière j’ai eu la chance de rencontrer Jean-Marc Le Roux d’Aerys, l’éditeur du moteur 3D Minko. Cette rencontre a été pour moi l’occasion de lui poser toutes les questions que je n’avais jamais osé demander sur la 3D et sur Flash. Je vous propose donc un petit résumé de notre entretien.

Les explications qui vont suivre sont une tentative de vulgarisation de l’auteur. Si vous y voyez des erreurs ou des raccourcis dangereux, merci d’apporter votre contribution à cette tentative de vulgarisation de façon constructive dans les commentaires.

Comment fabrique-t-on de la 3D dans un navigateur ?

Pour vous la faire simple, un ordinateur est composé de couches matérielles (processeur, puces, périphériques…) et logicielles (système d’exploitation, applications, plugins…). Tout ceci forme un empilement assez complexe que l’on peut dompter avec les APIs. Les APIs sont des interfaces de programmation qui permettent d’exploiter les ressources matérielles (dans le cas qui nous intéresse, la puce graphique).

Dans le monde de la 3D, il existe deux familles d’APIs : DirectX qui ne fonctionne que sous Windows (édité par Microsoft) et OpenGL qui fonctionne sur les différents OS du marché (Windows, Mac et Linux, édité par le Khronos Group). Ces deux familles d’APIs vous permettent donc de demander à la puce graphique de calculer des objets et scènes 3D. Plus précisément, ces demandes transitent par un programme de rendu (le shader). Vous êtes parfaitement libre de développer vos propres méthodes de dialogue avec la puce ou votre propre shader, mais les APIs sont là pour vous simplifier la tâche.

Jusqu’à récemment, pour faire de la 3D dans le navigateur, il fallait passer par des plugins spécifiques (Shockwave, 3DVia…) ou par Flash et des librairies 3D pas très performantes (qui s’appuyaient sur le processeur pour calculer de la 3D). Tout à changé récemment quand le Khronos Group a décidé de travailler sur WebGL, une API javascript permettant d’accéder à OpenGL (et donc à la carte graphique). Adobe a décidé de proposer une alternative et à travaillé sur Molehill, une API qui permet de solliciter les APIs OpenGL ou DirectX depuis Flash (Flash Player 11 inaugure une nouvelle ère pour le web 3D).

En théorie, WebGL est une API plus performante, car elle limite le nombre de couches logicielles, mais elle subit le problème de fragmentation des différentes implémentations d’OpenGL sur les OS (le rendu n’est pas le même d’une version à une autre). La promesse de Molehill est donc d’harmoniser les différences d’implémentations d’OpenGL et de fournir un rendu homogène quel que soit l’OS ou le navigateur.

L’ambition d’Adobe avec Molehill est gigantesque, à commencer par les performances : Flash10 et une librairie comme PaperVision3D ne permettait pas d’animer plus de 10.000 polygones ; avec Flash 11, on peut facilement dépasser les 300.000 polygones. Pour vous donner une unité de comparaison, une scène 3D photoréaliste nécessite entre 500.000 et 700.000 polygones, nous n’en sommes donc pas très loin. L’objectif d’Adobe avec Flash 11 est donc de se démarquer d’HTML5 (et dans une certaine mesure d’iOS) en permettant des usages impossibles avec HTML (non pas en terme de performances, mais d’expérience utilisateur générale). Pour cela, les équipes d’Adobe ont formé un groupe de travail (mené par notre Thibault national) pour pouvoir développer une solution viable conjointement avec la communauté.

Quake 3 dans votre navigateur avec Flash

Outre Flash, il existe d’autres technologies, à commencer par Unity3D, mais le taux d’adoption de ces plugins est beaucoup plus faible. Il n’y a donc pas de réelle comparaison possible.

Comment faire de la 3D dans Flash ?

Comme nous venons de la voir, Molehill est donc une API permettant de solliciter la puce graphique pour calculer de la 3D. Dans les faits, cette API est assez « brute » (dans le jargon, on dit « bas niveau »). Comprenez par là qu’il va falloir vous retrousser les coudes avant de sortir votre première scène 3D. Les moteurs et frameworks 3D proposent donc une alternative plus haut niveau afin d’accélérer le développement et de « démocratiser la 3D ».

Il existe un certain nombre de moteurs et frameworks que j’ai déjà évoqué sur ce blog (Away3D, Alternativa3D, PaperVisionX…). Pour résumer une longue explication, je dirais que les frameworks sont plus performants, mais nécessitent des compétences plus pointues. Les moteurs sont plus faciles d’accès, mais sont plus directifs (dans le premier cas vous mangez à la carte, dans le second vous prenez le menu). Il n’y a donc pas de bon ou mauvais choix entre les différents frameworks et moteurs, uniquement des solutions proposant des niveaux de complexité différents. Il vous faudra ainsi privilégier la performance ou la simplicité de prise en main. D’autres critères rentrent en considération comme la modularité ou le modèle économique.

Dans ce paysage, Minko est un moteur 3D qui repose sur un framework (donc qui allie facilité d’accès et souplesse). C’est une bibliothèque open-source associée à des extensions. La promesse de Minko est donc de rendre la 3D dans Flash plus simple (pour les éditeurs) et plus accessible (pour les agences et annonceurs). L’objectif ultime étant de fournir un environnement de production 3D qu’un développeur Flash saura appréhender facilement. Ne ratez sous aucun prétexte la très belle démo avec la Citroën DS3.

Très belle représentation 3D dans Flash avec Minko

Minko propose en plus un système d’extensions particulièrement bien conçu pour pouvoir étendre les capacités : moteurs physiques (ex : JigLib Flash), moteur de particules… Plusieurs démos sont disponibles sur leur chaine Youtube : AerysInnovation.

Quels usages pour la 3D dans Flash ?

Après toutes ces explications techniques, nous en venons donc tout naturellement aux usages de la 3D dans Flash, et ils sont nombreux :

  • Les jeux, qu’ils soient sociaux, causal, serious, mobiles ou même les advergames. Flash est aujourd’hui la technologie de référence pour distribuer des jeux en ligne. Molehill et les moteurs 3D, vont permettre de rajouter une troisième dimension (ex : le jeux RobotZ sur Facebook).
  • Le commerce en ligne et le v-marketing. La troisième dimension est ainsi un atout précieux pour mettre en valeur les produits (vue 3D) ou pour plonger les internautes dans des univers immersifs (et restituer plus fidèlement les codes ou les valeurs d’une marque).
  • La réalité augmentée. J’ai déjà eu l’occasion de vous parler de la librairie Flair Toolkit, mais il en existe d’autres (dont la très prometteuse In2AR).
  • L’événementiel. Développer une interface 3D pour une borne ou une surface tactile n’est pas à la portée du premier venu. Par contre, donner la possibilité à des agences qui n’ont « que » des compétences Flash va permettre de démocratiser ce type d’opérations (nous en revenons donc à cette notion de démocratisation de la 3D).

Rajoutons à cela la possibilité de porter des applications Flash en dehors du navigateur. Oui c’est bien d’iOS dont je suis en train de parler. Apple a toujours fait barrage à Adobe pour accepter Flash sur l’iPhone ou l’iPad, mais les dernières versions de la Creative Suite permettent de compiler du Flash en application iOS. Cette solution permettrait donc d’étendre les possibilités de distribution d’un jeu ou d’une développement Flash. Je ne m’attarde pas trop sur le sujet car les choses vont beaucoup bouger dans le courant de l’année…

Quelles évolutions pour la 3D dans Flash ?

Flash 11 n’est pas encore sorti (nous ne connaissons toujours pas la date de lancement officiel), mais les équipes d’Adobe travaillent d’arrache-pied pour finaliser une première version officielle à la fois stable et performante. La suite du chantier 3D va se faire conjointement avec la communauté, l’objectif d’Adobe étant de faire évoluer Molehill pour apporter le plus de valeur ajoutée aux développeurs et éditeurs de moteurs 3D. Cela veut dire à la fois de meilleures performances, mais également des outils de production plus… productifs.

Ceci étant dit, le gain de performances entre Flash 10 et 11 est gigantesque, mais il y a tout de même des limites à ce que l’on peut faire avec Flash. L’effort ne va donc pas se focaliser sur la performance pure, mais sur l’expérience utilisateur. L’avis de Jean-Marc Le Roux est ainsi très tranché : Il n’y a ainsi que très peu d’intérêt à reproduire ce qui existe déjà (par exemple porter dans Flash des jeux traditionnels). La valeur ajoutée réside plus dans des applications et expériences qui n’existaient pas avant, d’où l’intérêt de simplifier (démocratiser) l’accès à la 3D aux équipes créatives et non le restreindre aux développeurs qui maitrisent la programmation « bas niveau ».

Sur ce point-là, nos avis convergent, car j’avais exprimé une posture similaire lors de l’annonce du lancement de Native Client par Google (une technologie ultra-performante mais trop « bas niveau » pour mobiliser un écosystème viable).

Autre possibilité d’évolution : marier la 3D traditionnelle avec la 3D stéréoscopique (celle qui nécessite des lunettes). Là encore, il y a beaucoup à faire, mais nous avons encore un peu de temps car le marché n’est pas encore prêt.

Conclusion

Donc comme vous l’aurez compris, la 3D dans le navigateur ne fait que démarrer. Nous pouvons sans nous tromper dire que 2011 marque un tournant dans le portage des applications 3D au sein du navigateur (qui est possible depuis une dizaine d’années avec Shockwave). Un tournant qui va permettre aux applications 3D de séduire le grand public.

Paradoxalement, les avancées technologiques en cours de finalisation vont ouvrir d’innombrables opportunités pour faire de la 3D dans ET en dehors du navigateur. Une fois ces avancées stabilisées, reste encore à la communauté le travail d’appropriation pour faire émerger de nouveaux usages et de nouvelles expériences. Oui décidément l’année 2011 va être passionnante…

Quand les interfaces riches s’invitent dans votre voiture

Depuis la sortie de l’iPhone et le succès de l’App Store, les différents acteurs économiques se creusent la tête pour savoir comment reproduire ce succès et surtout en tirer profit. Les interfaces tactiles sont ainsi devenues la nouvelle coqueluche des fabricants de produits électroniques, tandis que le monde du logiciel se réinvente autour des marketplace d’applications.

Bref, tout ça pour vous dire que l’industrie automobile n’est pas en reste puisque les plus grands constructeurs se livrent à une course à l’innovation autour des véhicules connectés et des différents services qu’il est possible d’exploiter dans ce contexte. Je vous propose un petit tour d’horizon des différentes initiatives et expérimentations.

Commençons avec Ford qui a annoncé sa plateforme MyFord Touch en grande pompe lors du dernier salon de Detroit : The Connected Car: Ford Introduces MyFord Touch. Les ambitions de Ford sur ce système sont énormes avec un tableau de bord entièrement numérisé (2 écrans autour du compteurs et un autre en colonne centrale) :

Le tableau de bord numérique MyFord Touch

Le système propose un affichage modulaire et même un navigateur web qui visiblement supporte Flash :

Le navigateur web intégré dans MyFord Touch

La plateforme SYNC repose sur l’architecture Microsoft Windows Embedded Automotive, pour le moment les fonctionnalités sont assez restreintes, mais tout est prévu pour pouvoir faire tourner librement dessus des applications en WPF : Apps for the new MyFord Touch in the Ford Edge. Ils misent visiblement beaucoup sur la complémentarité entre votre smartphone et votre voiture.

Tout ceci devrait être disponible sur la future Ford Focus en 2012, sinon sur certains modèles de la gamme Lincoln dès cette année.

General Motors propose un système équivalent baptisé MyLink mais dont nous n’avons encore pas beaucoup de détails : Chevrolet MyLink Creates Smartphones on Wheels.

Le système MyLink de Chevrolet

Idem chez Toyota avec le système Entune qui permet d’accéder à tout un tas d’applications… sur votre smartphone : Toyota Entune, les possibilités d’un smartphone au service d’un système embarqué.

Le système Etune de Toyota

Rien de très original dans ce qui est montré, car tout tourne essentiellement autour de la musique ou de la cartographie. D’autres services sont bien présentés, mais l’idée est plus de piloter votre smartphone à partir des commandes intégrées du tableau de bord que d’intégrer directement ces services.

Terminons avec Mini qui intègre également un écran dans le tableau de bord : Check Out the Car Stereo System of the Future: On-Demand Music From MOG.

Intégration du service musical MOG à bord d'une Mini

Ce n’est pas un hasard si les constructeurs insistent sur les attributs communs de leur système et les smartphones : sans connexion, impossible de proposer des services et donc de facturer (à l’acte ou à l’abonnement). Associer un forfait data avec une voiture relèverait du suicide commercial (cela complexifierait la prise de décision), les constructeurs optent donc pour une complémentarité entre les plateformes mobiles et leur électronique embarquée. Reconnaissons que ce n’est pas une mauvaise idée dans la mesure où les parts de marché des smartphones progressent très vite (1/4 des mobiles en circulation).

Les constructeurs vont maintenant devoir faire face à plusieurs défis :

  • Choisir la bonne plateforme mobile. Idéalement vous devriez pouvoir connecter n’importe quel smartphone, mais nous nous dirigeons vraisemblablement vers des systèmes verrouillés. À ce petit jeu, je pense que c’est Google qui a le plus de chance de séduire avec une plateforme versatile (Android est déjà présent sur les smartphones, tablettes et TV) et un modèle ouvert pas trop gourmand (comparé à Apple). Je ne vois pas trop comment ça serait possible, mais le constructeur qui réussira à proposer une plateforme universelle (avec des socles ou connectiques adaptés aux téléphones) remportera la mise…
  • Optimiser l’ergonomie. Conduire est tout de même une opération qui requiert un maximum d’attention. Choisir sa musique, passer un coup de fil… sont des opérations maîtrisées, mais quid des futures applications à venir ? Une piste intéressante serait d’exploiter des systèmes d’affichage tête haute (directement sur la face intérieure du pare-brise), mais il faudrait pour cela adapter la législation.
  • Nouer les bons partenariats. Puisque l’option du couplage véhicule / smartphone semble avoir été entérinée, reste encore à s’entendre avec les opérateurs. Les constructeurs vont ainsi devoir trouver des terrains d’entente avec les opérateurs sur la bande passante requise pour l’utilisation des différentes applications (notamment la musique en streaming) et surtout pour les transactions qu’il serait possible de passer depuis sont mobile dans sa voiture.

Bref, les difficultés ne sont pas que techniques, mais tout ceci va résolument dans le bon sens avec des tableaux de bord qui vont bénéficier d’un sérieux coup de jeune. À votre avis, le navigateur du MyFord Touch, c’est IE9 ? Est-ce supporte-t-il Silverlight ? et HTML5 ? À quand des spécifications du W3C pour les interfaces des véhicules connectés ?

Avec la sortie d’IE9, HTML5 devient enfin une réalité

J’ai déjà eu de nombreuses occasions de vous expliquer dans quelle mesure HTML5 et CSS3 allaient révolutionner les interfaces web : CSS3 et javascript seront-elles les technologies RIA du future ?. Cette révolution est maintenant définitivement amorcée avec le lancement cette semaine de la version 9 d’Internet Explorer : IE9, Beauty of the Web. Est-ce réellement la dernière version du navigateur de Microsoft qui va révolutionner le marché ? Non pas réellement. Mais la sortie d’IE9 va s’accompagner de plusieurs évènements qui vont accélérer les choses :

Ce n’est donc pas IE9 qui va bousculer le marché, mais sa sortie effective. IE était ainsi le boulet qui ralentissait l’adoption d’HTML5 et CSS3. Maintenant qu’IE9 est sorti, HTML5 va réellement commencer à être exploité en masse. Certes, il va falloir quelques mois avant que le marché se reconfigure (migration vers IE9 et FF4), mais la tendance est déjà bien amorcée comme en témoignent les récentes statistiques de parts de marché (source = StatCounter) :

Parts de marché des différents navigateurs en Europe

Cela fait déjà quelques mois que Microsoft s’est repositionné sur HTML5 (avec des sites comme IE9 Test Drive ou Never Mind the Bullets) et la sortie de cette neuvième mouture ne déçoit visiblement pas : The most modern browser there is: Internet Explorer 9 reviewed.

Non, IE9 n’est pas plus performant que les dernières versions de Chrome ou Firefox. Par contre, les premiers tests révèlent des scores de compatibilité et de performances très largement supérieurs à ceux d’IE7 ou 8. La volonté de Microsoft n’est donc pas de livrer le navigateur le plus poussé techniquement, mais de proposer un bon compromis en terme de performances, stabilité et de continuité avec les anciennes versions. N’oubliez pas que, contrairement aux autres, Microsoft doit gérer l’héritage de ses anciennes versions.

La nouvelle interface d'IE9

Cette neuvième version matérialise donc des mois d’efforts pour les équipes d’Internet Explorer qui ont su livrer un produit fidèle à la promesse. Ne vous y trompez pas : je n’utilise plus IE depuis des années, mais cette sortie m’enthousiasme au plus haut point car elle va réellement changer beaucoup de choses. À commencer par les coûts de développement : assurer une compatibilité avec IE6 alourdissait votre code source de 50% (15% pour IE7). Développer des interfaces web compatibles avec les dernières générations de navigateur va donc être bien plus simple… et rentable !

Ceci étant dit, plusieurs questions sont aujourd’hui en suspens. Il y a tout d’abord la place de Silverlight dans la stratégie de Microsoft. Pour résumer une longue histoire, disons que Microsoft préfère se concentrer sur HTML5 et faire de Silverlight un produit de niche (Internet Explorer Director: HTML5 Will Revolutionize Web Experience). De ce point de vue là, les équipes de Microsoft font preuve de clairvoyance car il faudrait un miracle pour que Silverlight remplace Flash. Chose qui ne risque pas de se produire dans la mesure où Flash est en ce moment la technologie à abattre (Firefox VP: Say Goodbye to Flash). Silverlight va donc poursuivre son évolution tranquillement, au même titre que Quicktime qui traverse les âges avec un taux d’installation pourtant très faible, mais qui ne remet pas en cause sont abandon.

Il me faut également aborder la concurrence qui ne va pas se laisser coiffer au poteau par IE9 :

  • Firefox sort donc une version 4 et commencer à communiquer de façon active sur les prouesses de sa bestiole (cf. Mozilla Demo Studio et le très impressionnant Planetarium) ;

    Notre système solaire en HTML5 et CSS3
  • Chrome continu son évolution à un rythme incroyablement élevé avec notamment le support récent de WebGL (cf. l’incroyable démo Hello Racer) ;

    De la 3D native dans votre navigateur avec WebGLOpera
  • Opera poursuit son évolution avec une prochaine version 11 toujours plus novatice ;
  • Safari maintient sa position dans le peloton de tête avec une posture toujours très discrète.

Au final, faut-il se réjouir de la sortie d’IE9 ? Oui, car elle annonce la mort d’IE6 et la migration des interfaces web vers HTML5 et CSS3. Cette migration va être d’autant plus spectaculaire que les bénéfices sont directement visibles : typographies personnalisées, coins arrondis, ombrage et transparence, dégradés, transitions…

Vous remarquerez d’ailleurs que le nouveau thème graphique de ce blog exploite à fond HTML5 et CSS3. Si la mise en page est cassée, alors vous savez quoi faire (indice : vérifiez que votre navigateur est à jour).

Une interface riche en boîte avec Emulator et Windows 7

La semaine dernière j’étais au Rex Club, temple de la musique électronique, pour une démonstration publique d’Emulator, une interface tactile MIDI pour les DJs. Pour faire simple, il s’agit d’une émulation du logiciel Traktor sous Windows 7. Cette innovation est le fruit de la collaboration entre Smithson Martin (le fabricant), PQ Labs (le logiciel qui gère le multi touch) et Microsoft.

L'interface d'Emulator

Cette console se présente donc sous la forme d’une dalle tactile (avec une interface rétro-projetée à l’arrière) sur laquelle est branchél’ordinateur du DJ. Ce dernier peut alors piloter avec les doigts une table de mixage tactile, gérer les effets sonores et rechercher les bons morceaux dans sa bibliothèque. Cette installation présente deux avantages : elle offre une interface naturelle plus facile à manier pour les DJs (qui n’ont pas forcément envie de mixer avec une souris) et est visuellement très plaisante pour les clubbeurs qui peuvent apprécier le travail du DJ par en dessous :

L'interface tactile vue d'en dessous

C’est donc une expérience à la fois visuelle et sensorielle. Bon OK, ça vous semble certainement sur-vendu en ces termes, mais je peux vous assurer qu’avec une telle installation le DJ est parfaitement mis en valeur et parvient à créer une expérience de proximité tout à fait intéressante sans même recourir à des substances illicites (mise en scène visuelle par l’agence A-Blok et distribution par Floating Point Audio).

Bien évidemment l’interface demande du doigté et un temps minimum d’apprentissage pour s’y retrouver dans les fonctions (boucles, effets sonores, recherche dans la bibliothèque…) et les réglages (cue, basses, pitch…), mais le spectacle est tout à fait hypnotique :

Il existe d’autres interfaces de ce type comme la très impressionnante Reactable (cf. Quand la musique devient tactile et visuelle), mais c’est une sacrée grosse machine. Il existe aussi quantité d’applications pour iPad comme DJ Mixer ou Electrify, mais elles sont limitées. Une seconde version de l’Emulator est en cours de développement pour équiper les VJ (Video Jockey) et leur permettre de créer des effets visuels en live. La prochaine étape logique va selon moi être l’apparition d’une troisième interface capable de créer des morceaux en capitalisant sur l’héritage du vénérable MC-303. Là encore, il existe des applications iPad très convaincantes comme moxMatrix ou iElectribe, mais une interface plus ambitieuse couplée à un matériel plus robuste comme la Surface 2 devrait remporter un vif succès.

L'application iElectribe pour iPad de Korg

En fait il faudrait idéalement une application livrée en trois versions :

  • une version pro installée sur une table tactile à destination des DJs ;
  • une version normale sous forme d’application pour touchbook ;
  • une version simplifiée distribuée gratuitement sur les terminaux mobiles avec un nombre limité de sons et d’effets sonores (et la possibilité d’acheter des packs).

Finalement le monde de la nuit est peut-être en train de connaitre sa deuxième révolution numérique avec les applications tactiles. Nous verrons bien comment tout ceci évolue dans les prochains mois, mais la clé du succès de ce type d’installation repose sur des surfaces tactiles fiables et à bas prix. Peut-être qu’un bon compromis pourrait être trouvé avec des surfaces moins encombrantes et onéreuses que celles présentées plus haut et une tablette XL offrant une plus large surface de travail que les machines de 9″ à 10″ distribuées actuellement. Il y a peut-être un marché de niche à exploiter…

Description et usages de XForms

Parmi la myriade de spécifications du W3C, il existe les XForms. Très discrète depuis son lancement (en 2003), cette technologie mérite néanmoins que l’on s’y attarde pour bien comprendre ses avantages et les différents usages que l’on peut en faire.

Qu’est-ce que XForms ?

Pour faire court, XForms est un format XML servant à créer des formulaires « riches ». Le principe des XForms est de séparer la présentation des traitements (architecture MVC) et de se passer de javascript. XForms permet donc de réaliser des formulaires enrichis où l’on va retrouver des contrôles plus sophistiqués, où l’on va pouvoir gérer des contraintes entre les contrôles ainsi que faire de la validation silencieuse des champs (sans utiliser Ajax). Plus d’infos ici : What are XForms?XForms pour les développeurs HTML et XForms for XML Users.

Schéma d'architecture des XForms

Vous pourriez me dire que tout ceci existe déjà, et je vous répondrais que l’intérêt de XForms est de le faire avec une approche industrielle. Le recours à Javascript n’est pas tant un problème en soit, par contre, les XForms permettent d’industrialiser des formulaires métier, voir de générer des formulaires à partir d’une structure de données.

Jusqu’à présent l’implémentation était faite du côté du serveur, mais c’était une opération plutôt laborieuse (il existe pourtant des solutions packagées comme betterFORM). Vous avez également la possibilité de l’implémenter côté client avec des extensions (comme la Mozilla XForms Extension) ou en passant par un processus de transformation avec XSLTForms.

Les grands promoteurs des XForms sont Mozilla, IBM (avec notamment IBM Forms pour Lotus), EMC, XEROX ou encore OpenOffice (qui supporte les XForms depuis la version 2.0). Il existe assez peu de spécialistes XForms en France et j’ai eu la chance de pouvoir échanger avec Alain Couthures qui m’a bien aidé pour rédiger cet article (il est intarissable sur le sujet).

Plutôt destiné à un usage d’entreprise

Venons-en maintenant aux usages. Comme précisé plus haut, les XForms sont particulièrement bien adaptés aux applications qui reposent sur une base de données XML. XForms permet alors d’exploiter la structure de vos données XML pour générer le formulaire correspondant. Démonstration ici avec ce formulaire d’assurance :

Application en ligne d'assurance

Ne vous arrêtez pas au design du formulaire, car je vous rappelle que les XForms séparer les traitements de la présentation, les formulaires sont donc personnalisables à volonté grâce aux feuilles de style. Ceci est particulièrement utile pour les applications multi-support qui peuvent être consultées sur un ordinateur, un smartphone ou un touchbook.

Vous trouverez sur le site de Mozilla un certain nombre d’exemples qui illustrent les capacités d’XForms. Ici, un formulaire d’impôts qui intègre un graphique SVG :

Formulaire intégrant un graphique SVG

Concurrents et évolution

Outre dans le cas bien précis des applications XML, les XForms subissent la concurrence des framework javascript (jQuery, Prototype, Ext JS, Backbase…) et des environnements de développement un peu plus sophistiqués (ASP.net, Flex…).

Mais dans l’immédiat, ce sont les Web forms d’HTML5 qui sont les plus proches de la « philosophie » des XFroms : Enhance your web forms with new HTML5 features. Pour vous épargner une longue argumentation, je laisse les spécialistes vous expliquer les avantages / inconvénients et surtout les différences.

En ce qui concerne l’évolution des spécifications (actuellement en version 1.1), il existe un groupe de travail qui planche sur XForms 2.0 qui devrait supporter XPath 2.0, XSLT2.0 et même JSON.

J’espère avec cet article vous avoir éclairé sur ce que sont les XForms et ce à quoi ils servent. N’étant pas un spécialiste du domaine, je laisse les spécialistes vous orienter vers d’autres ressources…

Flash Player 11 inaugure une nouvelle ère pour le web 3D

Faisans suite aux annonces de la dernière édition de MAX (Récapitulatif des annonces pour Adobe MAX 2010), Adobe vient juste de rendre disponible la technology preview du Flash Player 11 « Molehill » dans le cadre de son programme Incubator : Adobe Flash Player Incubator. La grosse nouveauté de cette onzième version est donc la disponibilité de nouvelles capacités 3D : 3D APIs for Adobe Flash Player and Adobe AIR.

Pour vous épargner une longue explication technique, avec le Flash Player 10.1, vous aviez la possibilité d’appliquer des textures 3D sur des objets 2D. Il existait un certain nombre de moteurs 3D, mais ils n’étaient pas très performants car les calculs étaient faits par le processeur. La nouvelle version du Flash Player offre maintenant un jeu complet d’API pour exploiter la puce graphique de votre machine (ils appellent ça l’accélération matérielle). Donc dans les faits, Flash Player 11 n’intègre pas de moteur 3D, mais permet aux moteurs 3D existants d’exploiter la puce graphique et donc d’afficher des performances bien supérieures. Parmi ces fameux moteurs 3D, nous pouvons citer : Alternativa3D, Away3D, Coppercube, Flare3D, Minko, Sophie3D, Yogurt3D, Zest3D

Pour installer cette technology preview il vous faut désinstaller la précédente version de Flash et installer la nouvelle. Méfiez-vous, ça ne fonctionne pas encore avec Chrome sous Mac (utilisez plutôt Safari pour le moment). De nombreuses démonstrations sont déjà disponibles :

  • Zombie Tycoon, un casual game avec une vue en 3D isométrique (utilisez les flèches pour faire pivoter la scène)

    Le jeu Zombie Tycoon en Flash 3D
  • MAX Racer, le jeu de course présenter en Keynote du dernier MAX

    Le jeu MAX Racer avec le moteur Alterntiva3D
  • Shallow Water Simulation et 3D Head Scan propulsés par le moteur Away3D 4.0
    Très beau visage en 3D avec Away3D

  • Une reproduction d’un terrain de jeu de Quake3

    Quake3 avec Flash 3D
  • L’armée des canards qui utilise plus de 240.000 polygones pour animer les 100 canards ;
  • Le très impressionnant Stone Spring qui repousse les limites avec une animation de près 1,3 million de polygones (How Fast is Molehill?)

    1,3 M de polygones animés avec Flash Player 11

Pour le moment nous n’en sommes qu’au tout début, attendez-vous à une avalanche d’expérimentations et de nouveautés.

Une nouvelle ère pour le web 3D

Est-ce que ce Flash Player 11 va réellement révolutionner le web ? Non, par le web dans son intégralité. Par contre le web 3D va pouvoir prendre son réel essor. J’attends par là l’ensemble des sites et applications en ligne utilisant des contenus 3D. Il est pour le moment un peu tôt pour évaluer l’impact de cette nouvelle version de Flash, mais je rejoins tout de même l’avis de Thibault Imbert sur l’importance de cette sortie : Changing the web, again.

Certes, il y a eu de gros progrès ces derniers mois autour de WebGL (cf. 2011 sera-t-elle l’année de la 3D grâce à Chrome et Firefox (et Flash) ?), mais le taux de renouvellement du marché pour les navigateurs est extrêmement lent. En 6 mois le Flash Player 11 peut être installé sur 90% du parc, un taux de couverture que les navigateurs de nouvelle génération n’atteindront jamais. C’est donc en ça que cette future nouvelle version va changer la donne : offrir de la 3D de bonne qualité dans votre navigateur en un temps record.

Les détracteurs de Flash pourraient arguer que c’est une technologie propriétaire, mais les équipes d’Adobe ont su nous prouver qu’ils n’étaient pas animés de mauvaises intentions. En d’autres termes : le Flash Player est gratuit depuis sa création il y a près de 15 ans, et ça ne risque pas de changer. Tout l’intérêt de cette nouveauté est que le Flash Player 11 se « contente » de fournir un jeu d’API, c’est à la communauté de fournir le moteur 3D qui les exploitera au mieux (dans des versions libres, gratuites ou payantes).

Certains pourraient penser que les technologies 3D concurrentes sont condamnées, mais c’est une vision très restrictive de la réalité du marché :

  • Unity3D a déjà dévoilé son jeu en annonçant le support de Molehill : Unity, Flash & 3D on the web. L’environnement de développement Unity offrira donc la possibilité de générer du contenu Flash, tandis que le Unity Web Player poursuivra son évolution avec un focus sur les jeux en ligne (« there will be plenty of experiences that the Unity plugin is better suited for« ) ;
  • Les autres technologies comme 3DviaShiVa3D ou Viewpoint vont se spécialiser sur des usages bien particuliers et développer des leviers de différenciation vis-à vis-d’un Flash Player « généraliste ».
Exportation de Unity vers Flash

Je suis donc persuadé que les possibilités du web 3D sont si nombreuses qu’il y aura de la place pour tout le monde, le Flash Player 11 ne fera qu’accélérer la cadence. Je vous donne rendez-vous dans 1 semaine pour un article de fond sur l’impact de cette sortie…

(via Hebiflux)

La mode des clips vidéos en HTML5 ?

Tout a commencé avec House of Cards de Raiodhead, une expérimentation de visualisation artistique de données réalisée par les équipes de Google. L’idée était de mélanger création artistique et programmation pointue. Puis il y a eu The Wilderness Downtown qui a bénéficié d’une plus grande couverture médiatique. Là nous étions à mi-chemin entre expérience vidéoludique et démonstration de force pour Google (cf. Google à l’assaut d’iTunes et d’iOS avec Chrome et HTML5 ?).

Dernièrement j’ai découvert l’incroyable travail du groupe japonais SOUR avec le titre Mirror qui mélange multi-fenêtrage, HTML5, Flash et réseaux sociaux :

La vidéo interactive de SOUR

Le résultat est divertissant et surtout très surprenant pour ceux qui laissés un minimum de traces sur le web :

Cette semaine j’ai également découvert le travail de No Eleven qui propose avec High une vidéo HTML5 qui utilise les paroles de la chanson pour rapatrier en temps réel les résultats de recherche de Google Images :

La vidéo interactive de No Eleven

J’ai donc bien l’impression que nous sommes en présence d’un nouveau meme qui consiste à exploiter les interfaces riches pour mettre en scène un morceau musical. Sur la papier, nous pouvons craindre le pire, mais il faut bien admettre que les exemples cités plus haut sont des authentiques réussites, à la fois sur le plan artistique que d’un point de vue technique. Certes, parfois c’est un peu long à charger (ou ça sollicite un peu trop le processeur), mais ces différentes expérimentations ouvrent la voie d’une nouvelle forme de création artistico-technologique.

Cette idée est d’ailleurs reprise avec brio par Intel dans sa campagne récente The Chase :

Je ne sais pas trop quelle est la limite de cet exercice de style, en tout cas il remplit parfaitement sa mission : attirer l’attention. N’hésitez pas à publier les URLs d’autres exemples dans les commentaires.

(via @ksandre)

Pourquoi Google a deux ans de retard avec Native Client

Annoncé de façon très discrète en 2009, Native Client fait à nouveau parlé de lui avec l’annonce d’un lancement imminent : Native Client: Getting Ready for Takeoff. Il a fallu visiblement 2 ans aux équipes de Google pour finaliser la technologie et surtout blinder les aspects sécurité. J’avais à l’époque de l’annonce exprimé mon scepticisme dans un article qui critiquait la façon dont cette technologie à été présentée : Native Client, la technologie RIA de Google qui risque de faire long feu.

NaCl n’est pas une technologie de RIA, donc n’est pas concurrent de Flash

Pour résumer une longue et laborieuse explication, Native Client est un module de Chrome qui permet d’exécuter du code natif. L’enjeu de cette technologie est d’améliorer les performances des applications en ligne. Quand une application traditionnelle sollicite le processeur de votre machine, il le fait au travers du système d’exploitation (1 intermédiaire). Quand une application en Flash sollicite le processeur, elle le fait au travers du plug-in, du navigateur et du système d’exploitation (3 intermédiaires). L’empilement de ces différentes couches logiciel pèse sur les performances de votre application. NaCl apporte dans ce contexte une solution en proposant un accès direct au processeur via des instructions en C ou C++.

Mais la promesse de NaCl ne s’arrête pas là, puisque ce module vous assure également une parfaite portabilité de vos applications : puisqu’elles sont écrites en C/C++ et sollicitent directement le processeur, elles fonctionnent indifféremment sous Windows, Mac ou Linux (des systèmes d’exploitation qui reposent tous sur l’architecture x86 d’Intel). Donc si l’on résume : meilleures performances, portabilité et souplesse sont les 3 atouts de NaCl. OK, mais tout ceci n’est pas sans vous rappeler les applets Java ou ActiveX ? Je  n’ai pas les compétences pour vous faire une comparaison formelle et argumentée, mais la promesse est très proche.

Ceci nous amène donc à une première observation : NaCl n’est résolument pas une technologie d’interface riche, plutôt un environnement d’exécution d’applications. Espérons que Google profitera de l’annonce officielle pour communiquer de façon moins ambiguë sur ce qu’est NaCl et surtout sur ce que cette technologie n’est pas (un concurrent de Flash ou Silverlight). Précisons au passage que l’idée n’est pas de créer des applications exclusivement avec NaCl, mais plutôt de créer des applications en ligne avec javascript ET des instructions en C/C++ qui seront directement exécutées par le processeur via NaCl.

Flash et Silverlight sont ainsi devenus au fil des évolutions bien plus que des environnements d’exécution, ce sont des canaux de distribution pour contenus à valeur ajoutée. Ces canaux s’appuient sur un écosystème très dense de producteurs, annonceurs, distributeurs… qui ne vont pas changer de technologie du jour au lendemain sous prétexte que les performances sont meilleures.

Pas de NaCl sans Chrome ou x86

NaCl se présente donc sous la forme d’un plug-in pour Chrome. OK, mais Chrome ne représente que 10% du marché. Certes, la progression du navigateur de Google sur l’année 2010 est spectaculaire, mais ces deux principaux concurrents (Microsoft et Mozila) vont faire un retour en force dans les prochaines semaines avec la sortie de Firefox 4 et Internet Explorer 9. Il y a ainsi très peu de chances pour que NaCl soit disponible pour ces derniers navigateurs avant leur sortie officielle.

Est-ce un problème pour Google ? Non pas réellement, car ils ont d’énormes ambitions à ce sujet. Par contre le marché risque d’être refroidi par cette limitation : Google’s Native Client updates to Pepper API, looks set to fragment the Web. D’autant plus que nous avons déjà connu ça avec les technologies citées plus haut (notamment ActiveX).

Autre limitation de taille : NaCl ne fonctionne qu’avec les processeurs à architecture x86. Ce qui veut dire que NaCl ne fonctionnera pour le moment pas sur les terminaux alternatifs qui sont tous basés sur l’architecture ARM. Cette limitation est due au fait que NaCl permet de solliciter directement le processeur, changez de processeur et il faut tout revoir. Une version compatible avec les processeurs de la famille ARM serait en cours d’étude, mais cela revient à reprendre le travail depuis le début (et donc à gérer deux projets avec deux cycles de développement / évolution).

De nombreuses alternatives pour les jeux 3D

Les gains de performances promis par NaCl seraient très appréciables pour les applications qui sollicitent le plus le processeur ou la puce graphique. Outre les logiciels de montage vidéo, les jeux seraient donc les premiers bénéficiaires de ces gains de performances. L’idée étant de pouvoir proposer des jeux 3D dans le navigateur avec le même rendu (résolution, taux de rafraichissement) que les jeux installés sur votre machine. OK, mais Google va être confronté à deux problèmes de taille :

  1. Les jeux récents sont gourmands en puissance de calcul mais également en stockage (ils dépassent tous le Go une fois installés). Il va donc falloir une sacrée bonne bande passante pour télécharger tout ça à la volée !
  2. Il existe de nombreuses alternatives très crédibles pour avoir de la 3D de bonne qualité dans le navigateur : Et on reparle des Rich Internet Games.

En deux ans (l’annonce initiale de NaCl remonte à 2009), les autres technologies de RIA ont ainsi fait des progrès considérables :

À ces technologies-là, il va également falloir rajouter la concurrence des offres de cloud gaming qui sont parfaitement au point : OnLive, Gaikai, Playcast… Donc pour résumer : Google arrive avec deux ans de retard sur le marché du jeu en ligne. Ou du moins : la promesse de performances accrues dans un contexte de jeu 3D n’est plus aussi pertinente qu’il y a deux ans.

L’architecture à 4 couches de Chrome

Malgré tout ce qui a été dit plus haut, NaCl n’en reste pas moins une petite révolution. Le fait de pouvoir exécuter du code natif n’est pas en soi une exclusivité propre à Google (il me semble que Flash permet également de faire ça, mais dans une moindre mesure), mais cette possibilité s’insère dans un contexte beaucoup plus large.

Pour simplifier, « l’architecture Chrome » est composée des couches suivantes :

  • Chrome OS, la couche d’abstraction matérielle qui permet de gérer les périphériques ;
  • Chrome Browser, la couche de gestion des ressources, et accessoirement la couche de distribution des contenus, services et applications ;
  • Native Client, l’environnement d’exécution (pour les processus les plus gourmands en ressource) ;
  • Chrome Web Store, la place de marché d’applications.

NaCl est donc la touche finale d’un plan d’ensemble sacrément bien ficelé. Par « bien ficelé« , comprenez « bien verrouillé« , car sous couvert de projects open source, l’objectif pour Google est de capter et sécuriser des parts de marché. Une fois qu’un utilisateur ou qu’une entreprise met le doigt dans l’engrenage Chrome, il est très difficile d’en sortir, surtout avec l’avantage compétitif que NaCl représente par rapport aux autres navigateurs.

Le marché a-t-il encore besoin de puissance ?

Nous venons donc de voir que NaCl est une technologie révolutionnaire, mais dont la portée est maintenant limitée par les progrès des technologies concurrentes et par ses restrictions intrinsèques. Reste maintenant à aborder une question de fond : les utilisateurs sont-ils réellement en demande de puissance ? Les ordinateurs reposant sur l’architecture x86 sont ainsi en fin de cycle, l’informatique de demain sera ainsi dominée par les terminaux alternatifs qui répondent mieux aux attentes du marché : mobilité et autonomie (cf. 2011, l’année du point de bascule).

Dans ce contexte-là, NaCl n’a pas sa place car le rythme d’innovation est très élevé (Hummingbird vs. Snapdragon vs. OMAP vs. Tegra 2: ARM Chips Explained) et car les préoccupations des industrielles et éditeurs sont ailleurs. Nous nous dirigeons ainsi vers une configuration de marché où les utilisateurs valoriseront avant tout la portabilité et la sociabilisation des contenus liés au divertissement (musique, film, jeux) et où les collaborateurs d’une entreprise seront à la recherche d’outils de travail légers, souples et surtout collaboratifs.

Encore une fois, Google a les compétences et les capacités techniques pour réussir là où d’autres ont échoué (Microsoft avec ActiveX, Sun avec les applets Java), mais le défi relevé par NaCl ne va pas réellement révolutionner l’industrie. Je serais par contre très curieux de savoir comment ils souhaitent intégrer NaCl à Android, là nous aurons potentiellement quelque chose de beaucoup plus disruptif. En attendant, voyons déjà s’ils réussissent à accoucher correctement d’une première version de NaCl. Réponse dans quelques semaines…

SoundCloud + Winamp + Flash = ApexVJ

Vous connaissez SoundCloud ? Mais si enfin, le service de streaming musical. Vous vous souvenez de Winamp ? Mais si enfin, le lecteur audio qui offrait de multiples modules de visualisation. Mélangez les deux et vous obtenez ApexVJ. Cette application en ligne repose sur l’API de SoundCloud pour récupérer un flux audio et sur le moteur 3D du dernier Flash player (plus précisément avec PixelBender et Away3D) pour offrir des représentations visuelles très poussées.

L’interface propose donc de choisir un titre ainsi que l’effet visuel :

L'interface de sélection d'ApexVJ

Le résultat est très spectaculaire car ces animations sont très réactives et affichées en plein écran :

Les différents effets visuels d'ApexVJ

Tout ceci devrait stimuler les services de streaming à proposer des interfaces plus sophistiquées (cf. Deezer et son nouveau player 3D en plein écran). Si vous cherchez des détails, les coulisses du projet sont ici : APEXvj, Born of the idea.

(via Hebiflux)

MàJ (21/02/2011) : Je découvre grâce à Molokoloco plusieurs expérimentations similaires en HTML / javascript : Music and visualisation, JS driven.

De ces différents exemples je retiens JuicyDrop :

L'interface de JuicyDrop qui reproduit celle de Winamp en javascript

Ainsi que Pocket Full of HTML5 qui exploite l’Audio Data API d’HTML5 :

L'API Audio Data d'HTML5 en action