Installer une image VMDepot dans Azure

Vous savez comment ça se passe quand vous voulez tester une nouvelle application serveur ? Vous ne voulez pas la mettre sur votre OS hôte, pour ne pas risquer de mettre le bazar sur votre ordi, surtout si c’est une beta. Vous la mettriez bien sur une machine virtuelle, mais il y en a déjà plein, vous ne savez pas trop sur laquelle ça posera le moins de problèmes de compatibilité, etc. Et puis il y a toujours le problème de dépendances multiples (voir par exemple http://gouigoux.com/blog-fr/?p=1036).

Bref, l’idéal serait de disposer d’images virtuelles avec tout ce qu’il faut dessus, déjà préinstallées par des personnes expertes du serveur en question, et qu’on pourrait juste instancier quand on a besoin de tester… Eh bien, ça existe ! Vous avez tout ce qu’il faut sur VMDepot (http://vmdepot.msopentech.com/)

image

Prenons un exemple : je voudrais un Alfresco installé sur un Ubuntu. Une petite recherche sur le site et je trouve ce qu’il me faut :

image

Pour la mettre en place sur votre compte Azure, ça peut difficilement être plus simple que les quelques manipulations ci-dessous. Après s’être connecté, dans la section Ordinateurs virtuels, on se place dans l’onglet Images, et on lance la commande Parcourir le dépôt d’ordinateurs virtuels.

image

Ca donne accès à une liste où on retrouve justement les fameuses images virtuelles prêtes à l’emploi, et où on peut donc retrouver notre fameuse image Alfresco :

image

Ensuite, on choisit la région et le compte de stockage. Le compte de stockage est nécessaire parce qu’il faut stocker le fichier correspondant à l’image virtuelle dans notre compte Azure avant de pouvoir l’utiliser comme disque principal d’une machine virtuelle.

image

Après quelques minutes – allez, un quart d’heure – pour la recopie de l’image, vous êtes prêt à la valider. Bon, je n’ai pas bien compris (ni cherché en détail) à quoi servait cette étape de validation, mais j’imagine que ça permet de vérifier le checksum avant de la considérer comme fiable pour créer une machine virtuelle.

image

On clique donc sur le bouton Inscrire en bas de l’interface et on valide l’enregistrement :

image

Une fois cette étape passée (quelques secondes), nous pouvons passer à la création de la machine virtuelle proprement dite, en choisissant dans l’assistant de créer une machine virtuelle à partir de la galerie :

image

En fait, l’expression n’est pas très bien choisie car il faut ensuite changer à nouveau de choix pour sélectionner Mes images, et voir le disque virtuel que nous avons copié :

image

En deuxième étape, on choisit le nom de l’ordinateur virtuel, et le type de machine qu’on souhaite. Les informations d’authentification qui sont demandées sont celles qui serviront pour se connecter en SSH sur l’ordinateur. On peut utiliser un certificat / un mot de passe. Pour une machine de test, on ne se cassera pas trop la tête, un mot de passe suffira :

image

A l’étape suivante, on donne un nom DNS pour accéder à l’ordinateur et un groupe d’affinité. Le groupe d’affinité est un ensemble de machines virtuelles ou d’applications qui se trouvent toujours dans la même zone géographique, pour améliorer les performances. Si on spécifie juste une région Azure, on n’associe pas de groupe d’affinité.

image

Pour la quatrième et dernière étape, je laisse la documentation embarquée expliquer à quoi ça sert. Là encore, vu qu’il s’agit juste d’une machine de test, on ne se cassera pas la tête avec un groupe à haute disponibilité…

image

Une fois validée la dernière étape, on doit attendre le déploiement et le démarrage de la machine, qui prend quelques bonnes minutes :

image

Il nous reste un dernier petit détail à régler, à savoir les réglages d’accès réseau. On va donc rajouter un point de terminaison :

image

Dans l’assistant qui apparait, on utilise le premier choix :

image

Puis on donne les caractéristiques d’une ouverture du protocole HTTP sur le port 80 à l’externe :

image

Là encore, ça prend un peu de temps (un peu moins d’une minute), mais une fois arrivé à cette étape, on a notre fameuse machine :

image

En allant dans le wiki de Bitnami, on trouve les crédentiels par défaut, et on peut donc se connecter (après bien sûr être allé sur Access my application) :

image

Et voilà ! Un serveur Alfresco tout propre installé avec toutes les dépendances, prêt à fonctionner, et surtout monté de A à Z en à peine un quart d’heure ! Quand je pense au temps qu’il m’aurait fallu pour créer la machine virtuelle, installer un Ubuntu, chercher comment installer un Alfresco, bidouiller jusqu’à plus d’heure avec les problèmes qui n’auraient pas manquer d’arriver, etc., je pense que je vais utiliser de plus en plus cette solution pour mes tests.

En plus, la bibliothèque est extrêmement riche : un peu moins de 300 machines à ce jour. Donc, à part si vous avez des besoins très spécifiques, vous êtes quasi assurés de trouver ce que vous voulez…

Posted in .NET | Tagged | Leave a comment

La nouvelle Kinect est vraiment impressionnante !

Ultra haute définition, reconnaissance faciale, monitoring du rythme cardiaque par les variations (infimes) de couleur de la peau, suivi des efforts dans le squelette, etc.

Tout est ici : http://gizmodo.com/kinect-2-full-video-walkthrough-the-xbox-sees-you-like-509155673

image

Il va falloir que je mette à niveau mon TD sur les tests unitaires utilisant Kinect… Prochain objectif : détecter les étudiants qui stressent Sourire

image

Posted in Uncategorized | Tagged | Leave a comment

5 ans de blog !

En écrivant l’article précédent et en recherchant mes références, je me suis rendu compte que ce blog vient de passer les 5 ans. Pas loin de 200 articles, que j’ai pondus… Alors, puisque personne ne m’a fêté cet anniversaire, voici pour toi, cher blog, un beau gâteau Sourire

http://www.feminelles.com/wp-content/uploads/2011/01/G%C3%A2teau.jpg

(Source de la photo : http://www.feminelles.com. Tiens, c’est Breton également !)

Posted in Uncategorized | 1 Comment

Twitter et Big Data : redescendre un peu sur terre

C’est rare que je fasse un billet sur un coup d’humeur (le dernier sur ce blog date de presque deux ans), mais là, franchement, c’est dur de se retenir avec des idioties pareilles :

image

Prédire les évènements, mais après…

Si vous voulez lire – avec des pincettes – l’article complet est ici. Attention, c’est un panégyrique total à la grandeur de la société qui a eu la brillante idée d’analyser après coup les gazouillages de Twitter contenant le mot zbeul pour déclarer qu’elle aurait pu prédire les évènements malheureux du Trocadéro.

Vous avez bien lu : après coup et prédire dans la même phrase. Eh oui, c’est beaucoup plus facile de dire qu’un évènement était prévisible quand il s’est passé…

L’auteur accumule ensuite un tas de bourdes toutes plus énormes les unes que les autres :

  • Confusion entre la prédiction d’une consommation globale d’un produit avec la production par un individu (ça améliore le sensationnalisme, c’est sûr, de dire que le sens du vent va permettre de savoir quels chips vous allez acheter)
  • Croyance aveugle dans les gains de l’analyse prédictive pour l’optimisation de la logistique de la grande distribution : il y a déjà vingt ans que ça se tente dans tous les sens, avec des résultats aussi débiles que de mettre les bières à côté des couches culottes (avec évidemment des résultats nuls)
  • Confusion entre les évènements et les tendances, rattrapée par la fin de la phrase “prévoir les crimes, en tout cas essayer d’en étudier la fréquence (…)”. Ben, ça fait quand même une sacrée différence, non ? En premier, c’est de la magie, en deuxième, c’est simplement de l’analyse numérique…

Quelques phrases bien ronflantes pour emballer le tout : “Le Big data n’est plus un mythe. Il entre dans nos vies quotidiennes et va forcément nous faire réfléchir”. Hmmm… Là, si j’étais vraiment méchant, je pourrai souligner que l’effet se fait toujours attendre. “L’enjeu devient public et national. On change radicalement de dimension”. Bigre ! Dois-je m’attendre à voir des extra-terrestres ?

Et en dernier, la bonne grosse exagération qui tâche : “des centaines de gamins écrivent en toutes lettres « je finis le boulot et je vais au troca casser du CRS »”.

Le problème

Le problème n’est pas juste que l’ “animateur / blogueur” de BFM a écrit un article mal informé, c’est surtout le fait que la croyance aveugle dans le Big Data et l’analyse des signaux faibles est en train de s’insinuer dans le domaine culturel général, en sortant petit-à-petit de la communauté des informaticiens. Alors justement que nous avons passé plus d’un an à nous rendre compte que c’est à 90% du vent, et que ça commençait justement à se savoir dans notre petit cercle !

Si le grand public, relayé par des articles comme critiqué ci-dessus, se met à croire à ces lanternes, on va encore avoir du mal à faire atterrir tout le monde dans les années qui suivent…

Petit rappel : après des mois (voire années) de matraquage sur le Big Data, on commence enfin à entendre dans les médias quelques voix discordantes, qui indiquent qu’il y a “trop de flou sur l’origine des données” (article), que “la sécurité reste un problème” (article), qu’il va falloir “mieux valoriser les données” (article). Ce qui n’empêche pas le gouvernement, décidément souvent à contre-courant sur les technologies de l’IT, d’investir dans le Big Data, mais bon… je ne ferai pas de mauvais esprit sur le fait que la totalité des expériences françaises en cours se font sur des Clouds américains.

Un avertissement de Forrester (qui a pourtant porté le concept de Big Data pendant longtemps) est assez révélateur :

Après la phase « big data » où les entreprises se sont évertuées à tout traiter avec plus ou moins de succès, une phase de tri et de sélection des informations a priori pertinentes devrait débuter.

Perso, depuis le début, je ne suis pas convaincu par le Big Data (ou en tout cas, je sais qu’il ne sera pas à la hauteur des attentes démesurées qui sont placées en lui), et j’avais fortement apprécié le recul de Serge Abiteboul, au point de faire un billet de blog dessus, dès Octobre 2012.

J’étais content de voir que la presse spécialisée commençait enfin à se déciller, mais si c’est pour se rendre compte que pendant ce temps-là, la presse grand public reprend les mêmes âneries, c’est à désespérer…

Bonus

Allez, c’est cadeau : un autre exemple de grosse tromperie sur la marchandise en ce moment, à savoir l’utilité des réseaux sociaux en entreprise. Il se trouve qu’on commence à se rendre compte qu’il ne suffit pas de poser un portail pour que tous les employés communiquent comme par magie… Selon Gartner, seuls 10% des déploiements sont réussis, et ZDNet enfonce le clou en parlant de la nécessité de “prier pour que cela fonctionne” (sic). Si j’avais du temps, je rechercherai les articles dithyrambiques d’il y a quelques mois à peine et qui expliquaient comment les réseaux sociaux et la génération Y allait bouleverser la communication d’entreprise… Mais j’ai déjà perdu assez de temps à commenter des idioties pour ce soir.

Posted in Retours | Tagged | Leave a comment

BizTalk 2013 pour les grands débutants

Vu que je commence à explorer BizTalk, pour essayer de voir comment ça se compare avec un ESB du type ServiceMix, je me disais que ça pourrait aider quelqu’un si j’enregistrais l’installation.

Je procède à une installation sur un Windows Server 2012 en 64 bits dans une machine virtuelle Virtual Box, avec 4 Go de RAM et 2 CPU alloués.

Après avoir téléchargé l’image, on lance Setup.exe EN TANT QU’ADMINISTRATEUR. Je me suis fait avoir par le passé dans des procédures d’installation Windows qui ne disaient rien au début, mais qui plantait en cours d’installation parce qu’on ne les avaient pas démarré en mode administrateur, donc ne nous faisons pas avoir.

Premier écran, premier questionnement : à quoi peut bien servir ce BizTalk ESB Toolkit ? BizTalk n’est pas censé permettre de monter un ESB justement ?

image

L’explication pourrait venir du fait qu’on voit aussi un UDDI à installer. Bon, UDDI, c’est mort, et Microsoft est pourtant bien placé pour le savoir vu qu’ils ont même arrêté le leur (http://uddi.microsoft.com). Mais on va dire que c’est nécessaire pour les usages internes, même si ça n’a jamais marché en internet.

D’après ce que je comprends, BizTalk se charge surtout de médiation, mais par exemple ne s’occupe pas de réaliser le routage d’un endpoint sur l’implémentation du service correspondant, comme dans un “vrai” ESB. Entre parenthèses, c’est justement le fait que cette redirection, en théorie nécessaire mais en pratique tout à fait oubliable, n’est pas utile qui fait qu’UDDI non plus.

Pas bien compris non plus le warning en bas, mais bon… Bref, on lance l’installation de BizTalk 2013. Comme je suis MVP, j’ai la chance d’avoir une licence pour tout, et c’est même intégré dans le déploiement. Je masque le numéro de série, NDA oblige…

image

On accepte la licence, le programme de retour d’information éventuellement, et on arrive au choix des modules. Comme c’est pour tester, je rajoute un peu tout et on verra bien :

image

Les deux premiers sont apparemment nécessaires pour mettre en place du Single Sign-On, les règles d’entreprise seront intéressantes pour voir comment on peut faire du BPM avec BizTalk, et le BAM est apparemment un des points forts du produit, donc ça vaut le coup justement de tester comment ça fonctionne… Quant à la dernière option, elle indique qu’elle permet de développer pour BizTalk sans avoir Visual Studio. J’espère effectivement que c’est possible, sinon ça va bien me charger ma VM de déployer un Visual Studio dessus. Et il faudra encore voir quels sont les modules à utiliser, voire bidouiller parce que VS n’était pas installé avant et qu’on ne verra donc pas les projets de type BizTalk. Bref, ça sent la galère cette partie-là.

Voici certainement à quoi correspondait le warning sur la première page, à propos de ces fameux fichiers CAB :

image

On va dire qu’on va laisser le choix par défaut, n’y connaissant rien pour l’instant… Après, ça semble prêt à démarrer.

image

Je vais effectivement définir les informations d’identification pour qu’il ne m’embête pas avec les redémarrages, vu que je compte bien manger pendant l’installation. S’il y a des dépendances à télécharger, ça peut prendre un peu de temps.

Effectivement, ça charge des trucs :

image

Plus qu’à attendre…

Bon, premier problème :

image

Du coup, je vais dans le gestionnaire de serveur, et je rajoute manuellement la fonctionnalité manquante :

image

Pendant ce temps, une autre erreur dans le processus d’installation de BizTalk !

image

Super… Je commence à me demander si c’est bien prévu pour installation sur Windows Server 2012, mais comme c’est un BizTalk 2013, ça paraitrait logique…

Bon, ben, au moins le framework .NET 3.5 s’installe pendant ce temps :

image

Le temps que ça finisse, je jette un œil sur le contenu de l’ISO de BizTalk 2013, mais je ne vois pas le SQL XML 4.0 SP1, donc on va le chercher sur internet. La configuration de sécurité d’IE dans Windows Server 2012 est aussi serrée que des mâchoires de pitbull sur un steak, mais on arrive bon gré mal gré au download voulu :

image

Sauf qu’évidemment, Windows Server 2012 ne veut pas :

image

Et ce n’est pas qu’un avertissement : il bloque. Il va falloir du coup trouver comment on lui dit de laisser passer… Dans les options, je désactive donc le “mode protégé”. Oui, je sais, c’est pas bien, il faut pas… en production. Mais là, je suis sur ma VM pour mes tests, donc go !

Ca ne suffit pas et j’ai toujours un tas de warnings. Donc, je clique sur l’aide qui me dit ce qu’il faut faire :

image

Et là, le truc logique : l’aide dit qu’il faut commencer par fermer tous les IE, y compris donc bien sûr celui qui contient la procédure à réaliser, et qui est bien sûr longue comme le bras. Je suis pas loin de commencer à m’impatienter, mais bon… je copie-colle dans ce blog et on y va calmement. Au moins, pendant ce temps, une bonne nouvelle :

image

Ca tombe bien, puisque j’ai besoin de me balader dans le gestionnaire de serveurs pour trouver les fameuses options IE à désactiver. “Configure this local server”, moui, mais je ne vois rien en français qui s’y rapporte… Eh oui, je suis un de ceux qui s’obstinent à utiliser les locales plutôt qu’à prendre les versions anglaises. Je suis pourtant bilingue, mais ça me parait important. Là, je paie le prix. Où est cette fichue commande ? Il semblerait que ce soit juste en cliquant sur “Serveur local”, mais le problème est que je ne vois pas de “Propriétés”. Ah si, c’est juste le nom de la zone, et la commande est sur la droite :

image

Je clique donc sur “Actif” et je désactive cette fameuse sécurité renforcée pour les administrateurs :

image

Du coup, je ne vois pas trop à quoi servait l’option que j’ai désactivée précédemment, alors je la remets en place :

image

Les noms sont proches, mais celle-là était liée à la zone de sécurité… On verra ça une autre fois. On redémarre IE, et on peut enfin télécharger tranquille. J’exécute ensuite le fameux SQL XML 4.0 SP1 (dont je ne suis pas très bien sûr de ce que c’est : le XML Parser de Microsoft ? Mais pourquoi SQL dans le nom ? Ou alors un module de SQL ? Mais BizTalk n’a pas l’air d’avoir un SQL Server comme prérequis…). Comme c’est un .msi, il ne me donne pas la possibilité de faire un clic-droit et “lancer en tant qu’administrateur”, mais l’UAC s’active bien lors de l’installation, qui se passe a priori correctement.

Je peux relancer mon setup.exe de BizTalk et refaire tout comme précédemment, en espérant qu’il n’y aura pas une autre dépendance qu’il ne sait pas installer tout seul… Allez, je tente sans faire le clic-droit et “lancer en tant qu’administrateur”. Comme j’ai quand même le message UAC, c’est que ça doit être fait automatiquement par l’exe.

C’est reparti pour l’install, et du coup, il re-télécharge… Bien pensé, ça Triste

Et là, encore une erreur, plus coyote :

image

Bon, je crois que je vais chercher sur internet si BizTalk 2013 est prévu pour aller sur Windows Server 2012, si les prérequis sont à installer avant (rien n’y fait allusion dans la procédure d’installation), si cette erreur est connue.

Pour résumer, c’est la galère.

Le message suivant laisse imaginer que le problème est lié aux options sur le SSO :

image

Du coup, je tente en décochant les deux premières options que j’avais ajoutées. Bien évidemment, c’est parti pour un re-re-téléchargement… Et là, toujours le même message sur MSVCP100.dll (c’est pas le redistribuable VC++, ça ?). Et toujours le même message après…

Bon, tant pis, j’en suis réduit à faire la pire des choses : lire la doc… Oui, ça devrait être le premier réflexe, mais j’ai toujours tendance à tester le processus d’installation. De la même manière qu’un code parfaitement écrit ne nécessite en théorie pas de commentaires, j’ai la faiblesse de penser qu’un installateur complet devrait installer toutes ses dépendances, et indiquer clairement lesquelles manquent s’il ne peut pas…

Effectivement, la liste des dépendances est énorme : le guide d’installation donne tout ceci :

image

Du coup, c’est encore plus la galère : il va falloir installer Office et Visual Studio, plus SQL Server (qui est en soi une galère pas possible à mettre en place) juste pour tester BizTalk 2013 !!!

Bon, je vais voir s’il existe une image pour Azure, ça sera peut-être plus simple ? Qui sait ? Sauf bien sûr que ce sera une autre paire de manche pour la licence et tout le tintouin…

La galère continue… Je poste ce blog et je reprendrai un peu plus tard, pour expliquer mes pérégrinations.

Posted in Urbanisation | Tagged | 5 Comments

BreizhCamp 2013

C’est ma conférence préférée, et cette année encore, j’ai la chance d’avoir une de mes conférences choisie ! Pour ceux d’entre vous qui ne connaitraient pas (les malheureux), le BreizhCamp est, comme son slogan l’indique, un Mix de technologies. Voila une des rares conférences, peut-être même la seule, à revendiquer pleinement sa volonté de rassembler tous les langages, sans ostracisme. Pour vous dire, on y a même vu une conférence “Java .compareTo .NET” Sourire

image

Bref, ça va roxer du poney, comme disent les jeunes ! Deux jours d’ateliers, de conférences, de démonstrations de nouvelles technologies, etc. Le programme est enfin sorti, et disponible sur http://www.breizhcamp.org/programme/. Ca va être dense, mais génial !

Si vous êtes prêt à vous déplacer à Rennes, je ne peux que vous conseiller de réserver vos places au plus vite. L’an dernier, tout était parti très vite…

Posted in Uncategorized | Leave a comment

On aura beau tester…

Je l’avoue, ce billet est plus fait pour me faire plaisir que pour véhiculer une vraie information, mais honnêtement… c’est-y pas bon de savoir que même les tout meilleurs, après des années de mise au point, et des tests qu’on imagine homériques, arrivent tout de même, tous les deux ans, à se prendre les pieds dans le tapis ? Sourire

http://www.linformaticien.com/actualites/id/10227/bug-sandybridge-coup-dur-pour-intel.aspx (01/02/2011)

http://www.linformaticien.com/actualites/id/28662/intel-confirme-un-bug-sur-ses-processeurs-haswell.aspx (08/04/2013)

Et je ne remonte pas au fameux bug de la division sur les Pentium… (Note : j’adore la petite remarque assassine “Anything critical, like checking the safety of blood products, is done on an AS/400.”, dans cet article d’InformationWeek)

Bref, merci Intel de rassurer tous les développeurs du monde : on aura beau faire tous les tests possibles, relire et faire relire notre code, il restera toujours ce dernier bug qui fiche tout par terre. Et franchement, si vous qui équipez la majorité des CPU sur terre n’y arrivez pas toujours, je me sens moins nul de ne pas y arriver la plupart du temps…

Posted in Tests | Leave a comment

OData ou/et RDF ?

Executive summary

Si vous n’avez pas le temps de lire cet article, un résumé en quelques points :

  • OData est souvent comparé négativement à RDF, car plus limité dans ses ambitions.
  • En pratique, RDF et SPARQL n’ont pas à ce jour réussi à faire leurs preuves pour de l’exposition de la donnée sur internet.
  • Ils viennent d’une approche académique qui, sous couvert d’universalité des relations inter-sources, force pour son utilisation effective à reconstituer des ensembles de données couplées les unes aux autres.
  • L’approche simplificatrice portée par REST, et donc OData qui en découle, apportera à mon sens plus vite des résultats en termes de valorisation de la donnée.

Le problème

L’origine de ce billet est dans la polémique existant ça et sur la supériorité de RDF par rapport à OData pour l’exposition des données sur internet (voir également ici). Il y a, je trouve, beaucoup de subjectivité à déclarer qu’OData reproduit un modèle en silo, alors qu’il s’agit simplement d’un protocole. Pour moi, ça sent plutôt le rejet épidermique de développeurs qui n’ont pas changé leur façon de voir Microsoft depuis dix ans, alors que ces derniers ont réellement évolué dans leur approche de l’interopérabilité, du support des standards et de la relation à l’Open Source. Il y a pourtant plusieurs arguments à l’utilisation d’OData :

  • OData est un protocole ouvert, licencié sous Open Specification Promise. Il a été proposé à la validation au consortium Oasis. SAP, IBM, et d’autres éditeurs majeurs supportent le protocole.
  • RDF et SPARQL (le langage d’interrogation des datastores, bref le SQL de RDF) sont beaucoup plus compliqués à utiliser que le protocole OData, fondé sur une approche REST, favorisant la simplicité d’usage. N’importe qui peut utiliser un flux OData comme source de données dans une feuille Excel, tandis qu’il faut une personne formée spécialement pour écrire une requête SPARQL.
  • Enfin, et c’est certainement le point le plus important, il n’y a pas d’incompatibilité entre les deux. Il est tout à fait possible de commencer par OData, puis de graduellement ajouter du RDF dans les sources.

RDF promet beaucoup, mais depuis dix ans, les mises en œuvre ont été très limitées. Le mouvement Open Data a poussé des technologies plus simples, comme OData ou GData. Pour moi, c’est un peu le même antagonisme qu’il y a entre les approches SOAP / WSDL / UDDI et les services REST. Les premières sont conceptuellement meilleures, mais le souci est qu’elles n’ont jamais donné leur mesure (UDDI est mort, par exemple, alors que cette norme d’annuaire de services était censé être la pierre angulaire de leur découplage), et c’est pour cette raison que REST a de plus en plus de succès : moins complexe, permettant d’obtenir des résultats rapidement, bref agile…

Décalage entre la théorie et la pratique

L’idée de RDF et du web sémantique est de créer des relations entre toutes les ressources disponibles sur le web, de façon que chaque URL puisse dynamiquement poursuivre sur une autre, qu’il soit possible d’appeler des contenus agrégés. Il devenait alors possible de parcourir n’importe quelle ressource de manière standard dans le monde, et le web devenait une gigantesque source de donnée semi-structurée. Inutile de recourir à des moteurs de recherche par indexation qui ne comprennent pas la sémantique des pages, mais parcourt bêtement des associations de mots… Le rêve. Mais ça, c’est la théorie.

Malheureusement, les choses se passent rarement comme prévues par les personnes qui inventent une technologie, et l’appropriation de celle-ci par ses utilisateurs sort souvent de ce qui était imaginé à l’origine. Pour le coup, c’est HTML qui a été le loup dans la bergerie. En mélangeant dans un langage à balise relativement simple le contenu et les liens entre les ressources, les URL pouvaient être incluses dans une page sans aucune sémantique. Encore pire, les informations qui auraient pu renvoyer à des URL, de façon à porter une information de manière formelle, n’étaient le plus souvent que mise en place sous forme de texte dans l’HTML.

Voici un bout d’HTML tout ce qu’il y a de plus banal :

image

C’est à peu près comme ça que sont écrites les milliards de page HTML en circulation dans le monde aujourd’hui. Le souci est que les partisans du web sémantique avaient en tête à l’origine que les développeurs écriraient quelque chose plutôt de ce genre :

image

Et encore, je ne vais pas au bout, car théoriquement, ce qu’on est censé écrire devrait aussi embarquer un lien pour la fameuse relation, par exemple pour la date :

image

Il est évident qu’avec une complexité pareille, tout est parti en sucette à la vitesse de l’éclair ! Comment ont-ils pu se tromper à ce point, et croire que les gens allaient créer du HTML parfaitement sémantisé ? Très simple : au début, l’internet était utilisé uniquement par des chercheurs, pour qui cette écriture extrêmement rigoureuse était simple, voire naturelle. Dès que les vannes de l’internet ont été ouvertes aux universitaires, puis au grand public, plus personne ne s’est soucié de ça. La course était plutôt à celui qui aurait le plus de couleurs dans sa homepage (pour les plus jeunes d’entre vous, la homepage était une sorte de blog, mais où on tapait tout le code HTML à la main, y compris la racine du site Sourire – voir ici pour un exemple, attention ça pique les yeux).

La fuite en avant

La suite, vous la connaissez : le web est un immense amas de données sans quasiment la moindre relation, et si on veut créer de la connaissance, il faut mettre en relation toutes ces données à la main. C’est là qu’interviennent tout un tas de méthodes pour essayer de reprendre la main :

  • Les microformats : l’idée est de réintroduire à faible dose du RDF dans les pages HTML, en se basant comme je le faisais dans l’exemple plus haut sur certaines parties les plus importantes (la date de début de la conférence, le lieu, etc.). Les microformats sont, en gros, une manière simple d’écrire des triplettes dans un lien HTML. Il reste évidemment toutes les limites, à savoir la présence d’une ontologie normée. Surtout, la présence de microformats dépend du bon vouloir de l’auteur. Aujourd’hui, tous les navigateurs les supportent, mais c’est quand la dernière fois que vous avez vu une page annonçant une conférence, et votre navigateur qui vous propose de l’ajouter à votre calendrier car il a reconnu le microformat associé ?
  • La norme HTML Microdata (http://www.w3.org/TR/microdata/), qui reprend là où les microformats ont échoué, en enlevant un peu de la complexité RDF, et ont du coup peut-être un peu plus de chance d’arriver à quelque chose. Surtout que ce coup-ci, il y a Microsoft, Google et de nombreuses autres grosses boites qui soutiennent cette utilisation.
  • La Business Intelligence : l’approche de la BI est de dire “Moissonnons toute la donnée dont on a besoin, sur internet comme dans le SI, et faisons un énorme cube qui croise tout dans tous les sens à l’avance. Comme ça, quand on aura besoin de mesurer le taux de corrélation entre le nombre de babouins férus d’art néogothique japonais et le chiffre d’affaire de notre dernier logiciel, on pourra avoir les résultats super vite”. Je me suis déjà longuement exprimé sur la BI. Pour moi, la solution pour une BI réussie n’est pas un moteur de cube, mais se poser les questions sur ce qu’on veut savoir (ce qui est plus dur, mais apporte plus de valeur).
  • Big Data : la BI ayant échoué, les constructeurs de machines avaient besoin d’une nouvelle embrouille technologie pour vendre du CPU. C’est le Big Data, dont l’approche pourrait être résumé, avec le brin de mauvaise foi qui caractérise votre serviteur, comme ceci : “La BI a planté, et au bout de 500 To, nous n’avons pas réussi à convaincre nos clients qu’il fallait encore plus de données dans le cube. De toute façon, nous avions déjà ratissé les fonds de tiroir chez eux… Donc, proposons-leur désormais d’aller croiser les données du babouin arty-nippon avec le nombre de tweets contenant le mot ‘néogothique’, ce qui nécessitera dix fois plus de machine pour un résultat aussi impressionnant”. Rendez-vous dans dix pour croiser le taux d’échecs des projets Big Data avec celui des projets BI. 82%, record à battre…
  • Le web sémantique : je ne reviens pas sur ce point. L’échec était d’ouvrir le HTML (et même le web) à toute cette populace grossière qui n’a même pas un doctorat. Evidemment, on se retrouve avec de la donnée n’importe comment. Pour schématiser, c’est un peu comme si on laissait à des développeurs le rôle d’administrateur du réseau.
  • L’internet des objets : de la même manière que l’arnaque BI est remplacée par l’arnaque Big Data, le web sémantique qui (après avoir annoncé son décollage immédiat depuis dix ans) commence à avoir plus que du plomb dans l’aile a trouvé son successeur : l’internet des objets. L’idée est de voir encore plus grand, avec tous les objets physiques de notre monde courant (du frigo au caleçon) équipés d’une adresse IPv6, et qui échangeront des données sémantisées en continu. Le rêve… Je vous laisse imaginer comment il finira : on n’a déjà pas réussi à se mettre d’accord pour sémantiser les dates et les auteurs des pages web, alors le faire pour chaque banane et bouton de culotte…

Le retour aux sources

Après ce (très) long exposé des problèmes autour du web sémantique, vous vous demandez certainement le rapport avec le comparatif OData / RDF que je vous ai infligé en entrée de ce billet… La réponse tient en un acronyme : REST.

REST représente le retour aux sources qui a apporté de la fraîcheur au web tel que nous le connaissons depuis quelques années. En repartant de la notion centrale de ressource, et en encourageant les développeurs à se réapproprier le sens des verbes HTTP, REST a participé, avec le renouveau de JavaScript, au Web 2.0, à la mise en place de services simples. Surtout, REST est resté sur le protocole, et n’a jamais prétendu à l’universalité des descriptions de ressources. Il est revenu aux fondamentaux : une ressource est identifiée par son URL, les verbes HTTP servent à la manipuler. Point. Pas de métadonnées superflues, pas de triplette, rien…

Les services de données doivent suivre cet exemple.

Comme le web sémantique, SOAP a connu l’échec (bien que dans des proportions bien moindres) car il était trop complexe. Pour un SI interne, ça passait car la lourdeur était supportable par rapport aux gains en termes de validation forte, mais pas sur internet. C’est pour ça que les services internet sont majoritairement en REST.

OData est un protocole basé sur REST.

C’est pour moi la force n°1 d’OData. Contrairement à RDF et SPARQL, qui cherchent à atteindre le Graal du web sémantique, OData ne fait pas le malin. Ce protocole se contente de réaliser de manière propre et standard le peu qu’il s’est fixé comme objectif. Mais il le fait bien, et surtout il est déjà largement assez puissant pour la grande majorité des usages de la donnée que nous allons avoir dans les dix prochaines années.

Le mur de la réalité

Pour revenir cette fois-ci tout à fait à notre problème original, OData a effectivement un problème de silo, bien qu’il ne soit pas constitutif du protocole, mais des sources existantes : les relations directes en OData sont limitées à la collection de données exposée. Par exemple, si un service de données expose la liste des communes, des départements, des groupements et des régions, il est tout à fait possible de faire porter au flux des relations entre les différentes entités. Par exemple, la notion de communes voisines pour une commune, ou la notion de région d’appartenance pour une commune. Mais cela s’arrête là, et si on souhaite connecter une ressource extérieure au service, il faut exposer son URL et prévoir une manipulation côté client pour la traiter.

C’est la promesse de RDF : des liens normalisés partout pour qu’une URL puisse suivre le lien sur une autre, et ainsi de suite. C’est ce qu’on appelle le Linked Data. C’est basé sur une approche sémantique forte. Et ça ne marche pas…

En tout cas, ça ne marche pas aujourd’hui. Alors oui, on peut espérer que ce n’est que transitoire, et que de plus de plus de liens vont se faire de manière normalisée. Mais aujourd’hui, et c’est la limite de la promesse de la sémantisation, les normes sont tellement peu nombreuses que le parcours des liens se fait obligatoirement par une interaction utilisateur ou logicielle, mais jamais automatique. Il est bien sûr possible de l’automatiser, mais ça se fait obligatoirement en connaissant la source de définition de la donnée sur laquelle on pointe. Bref, exactement la même limite en pratique que celle d’OData en théorie.

La réalité est que SPARQL et RDF sont des idées de laboratoire, bien trop compliquées pour croiser de la donnée au jour le jour. Quand on voit que même des articles de passionnés indiquent que l’inférence et le raisonnement automatique, bref les deux grandes forces de RDF, sont seulement “pour les plus braves”, ça doit faire réfléchir. Allez, une dernière preuve du manque d’efficacité de l’approche RDF : il faut un énième Working Group du W3C pour mettre en place le Linked Data. Rappelez-moi : ce n’était pas justement le but initial de RDF, puis de SPARQL ?

La route

Alors comment on avance en attendant ?

Déjà, on respecte scrupuleusement les enseignements de REST. C’est sûr que si des consommateurs voient dans les flux OData des identifiants comme ceux que produit OGDI par défaut, ça ne va pas aider à crédibiliser le protocole. Ceci par exemple est une horreur :

<id>http://datafeed.edmonton.ca/v1/coe/BusStops(PartitionKey=’1000′,RowKey=’3b57b81c-8a36-4eb7-ac7f-31163abf1737′)</id>

Le client qui consomme des arrêts de bus doit pouvoir accéder à sa donnée avec un identifiant qui fasse sens, comme par exemple :

<id>http://datafeed.edmonton.ca/v1/coe/BusStops(BusLine=’A21′,StopNumber=’3′)</id>

Ensuite, on ajoute le minimum de sémantique dans les flux pour que la valorisation soit au rendez-vous. Ce n’est pas compliqué de trouver des cas où les relations sont suffisamment simples pour qu’on pointe directement sur des URIs d’autres services.

Enfin, on fait attention à être cohérent dans les services de données. Pour cela, il suffit de garantir que les URI sont uniques et sont bien partagées entre les différents services, et pas seulement entre les différentes collections d’une même source.

En fait, le vrai travail est sur la structuration intelligente de la donnée et des services. L’exposition d’un format en elle-même représente moins de travail. Mais pour apporter de la valeur, c’est OData qui marchera dans les premières années, et peut-être au delà si RDF n’arrive pas à prouver sa valeur.

Ce n’est pas pour rien que Yahoo Pipes se base majoritairement sur du REST (voir test-drive de la technologie).

Bonus

Quelques références complémentaires :

Posted in Uncategorized | Tagged | Leave a comment

Kinect SDK 1.7 : premier essai de Kinect Fusion

Pour ceux qui ne connaissent pas, Fusion est une technologie Microsoft qui permet de se servir de la Kinect pour enregistrer des formes en 3D, en tournant simplement autour. Fusion fait partie du nouveau SDK en version 1.7, et les exemples livrés avec le kit du développeur permettent de se faire une idée du fonctionnement.

Quand on démarre le Kinect Fusion Explorer, on se retrouve avec ce genre d’affichage :

image

Si on fait tourner la Kinect autour de ce qu’elle voit, Fusion reconstruit progressivement un mesh 3D. Pour une personne seule, ce n’est pas facile, car l’objet ne doit pas trop se déformer, or c’est ce qu’il arrive lorsqu’on tient la caméra à bout de bras. Il faut un peu d’habileté par exemple pour lui faire faire le tour de son visage tout en la gardant bien orienté.

Du coup, on se rabattra sur des objets plus faciles à capturer pour les premiers tests d’envoi dans une application 3D, par exemple les murs et plafonds :

image

Ceci est un bout de fenêtre de toit dans mon bureau. Cet exemple est intéressant car il permet de mieux appréhender le fonctionnement de Fusion. Déjà, la technologie semble se limiter à une certaine taille : au bout d’un moment où on balaie une surface, elle ne s’étend plus. On doit pouvoir jouer sur les réglages du Fusion Explorer pour changer ça.

Ensuite, il est possible d’exporter la mesh en OBJ et en STL. A priori, on doit pouvoir faire à peu près ce qu’on veut avec ces deux formats, quitte à les retransformer après. Il y a peut-être une étape de traitement à réaliser. Par exemple, je n’ai pas réussi à importer directement l’OBJ dans un logiciel de 3D. Par contre, pas de problème avec GLC Player, donc ça ne semble pas être le modèle qui est en cause.

Autre chose : les fichiers acquis sont plutôt lourds :

image

Il ne s’agit pas à proprement parler de nuages de points, car c’est bien une structure 3D qui se trouve dans les fichiers, mais les polygones sont assez nombreux. Encore une fois, on doit pouvoir jouer sur le degré d’interpolation qu’on souhaite. Dans l’exemple plus haut, avec des arêtes très tranchées, on éviterait d’ailleurs l’aspect un peu granuleux des surfaces en diminuant le nombre de polygones.

Pour résumer, technologie impressionnante, même s’il ne faut pas imaginer capturer un objet en 3D en quelques minutes pour l’envoyer dans une imprimante 3D : il faudra jouer sur les réglages pour avoir une bonne acquisition, puis passer par une bonne étape de smoothing dans un logiciel 3D.

Mais au final, on fait avec 150 € de matos ce qui nécessitait il y a quelques mois à peine du matériel que seuls les studios de cinéma étaient capables de se payer…

Posted in Uncategorized | Tagged | 3 Comments

TechDays 2013 : Video de la conférence

Les vidéos sont disponibles, et j’ai le plaisir de vous annoncer que vous pouvez donc retrouver Eric Mittelette, Olivier Philippot et moi-même de concert pour notre présentation sur la conception logicielle écologique, sur cette page.

image

Si vous voulez coder proprement et réaliser des économies d’énergie, c’est là que ça se passe Sourire.

Posted in Performance | Tagged , | Leave a comment