Par le plus grand des hasards, je suis visible dans Google Street View. Enfin, uniquement si on sait où j'habite, à quoi je ressemble avec mon aspirateur à la main, et ce qui se trouve sur mon balcon.
Néanmoins, je suis dans Google Street View :)
Chercheur en informatique. Plongeur. Spécialiste de l’innovation numérique. Geek. Enseignant. Libriste. Vélotaffeur.
dimanche 2 août 2009
dimanche 2 août 2009. Trouvailles et lectures
jeudi 30 juillet 2009
jeudi 30 juillet 2009. Idées et réflexions
Non, non, ne hurlez pas; je vous vois venir avec vos mais qu'est-ce qu'il va encore nous inventer cette fois-ci ?
:)
Lisez, vous allez voir, ça va vous intéresser.
Je travaille depuis maintenant un bon moment à mettre en place une partie de nos idées sur les traces, concernant la visualisation d'activité (individuelle ou collaborative, a/synchrone, ici on s'en fout). Architecture, conception de modèles, instrumentation d'application, couche réseau, formats de données, parsers, etc; vous l'avez compris, tout passe entre mes mains excepté le SGBT qui est pour moi une boîte noire. Si vous pouvez imaginer quelque chose relatif aux traces (RàPC excepté), alors je me suis certainement penché dessus à un moment durant ces six derniers mois.
Je vous présente ici un retour sur l'expérience que j'ai développé, à base de réflexions personnelles. Le constat est plutôt mitigé, je vous préviens d'avance. Rien de dramatique, mais il faudra en tenir compte pour la suite de nos travaux car ça a des conséquences importantes. Je vais essayer de faire un découpage propre, mais vous allez voir que tout est lié.
Ma réflexion est orientée sur le transfert vers l'entreprise (non, ce n'est pas un gros mot) de nos travaux de recherche. C'est à dire : « qu'est-ce qu'il faut prendre en compte lorsqu'on va essayer de vendre la trace modélisée à un industriel ».
La première étape de l'enrichissement d'une situation informatique par les traces (sous-entendu, après tout le blabla d'analyse) est la conception d'un modèle de traces de logiciel(s). Cela :
Soyons réalistes, comprendre la théorie de la trace modélisée et être capable d'expliciter des interactions dans son formalisme n'est pas à la portée de tout le monde. Non pas que cela soit particulièrement complexe, mais cela exige un certain nombre de connaissances et de compétences qui ne se trouvent pas partout.
Que ce soit par une méthode ascendante ou descendante, concevoir des modèles de trace d'applications ne peut être fait que par un petit nombre de personnes. Or, ce qui est rare est cher. Il va donc falloir convaincre l'entreprise de réaliser cet investissement. Cela peut passer par une mission d'un expert extérieur, la formation d'une personne déjà en place, un partenariat avec une structure compétente, etc. Plusieurs possibilités existent, mais toutes ont un coût qui n'est pas négligeable.
Un logiciel, même très simple, est riche en possibilités d'interactions. On peut retenir l'utilisation de menus, de boutons, de paramètres, de zones de saisie, de fonctions, etc, ainsi que des opérations plus globales impliquant les périphériques d'entrée et de sortie.
Au final, on se retrouve à manipuler un très grand nombre d'observés et de relations, ce qui nécessite plusieurs jours semaines de travail. La richesse en observés étant exponentielle par rapport à la complexité d'un logiciel, essayez de visualiser ce à quoi pourrait ressembler le modèle de trace d'OpenOffice. Oui, c'est plus que gros : c'est énorme. Et on ne peut pas se permettre de laisser de côté certaines parties du modèle car cela impliquerait de ne pas être capable de représenter correctement les interactions de l'utilisateur sur ce logiciel.
L'entreprise ayant besoin de tracer une activité, un environnement ou que sais-je encore, va devoir y passer du temps (qui est aussi de l'argent, comme nous le rappel le célèbre adage). Ce temps sera pris au dépend d'autres activités, peut-être plus facilement et rapidement rentables.
Tout comme sans maîtrise, la puissance n'est rien, des traces qu'on ne peut pas manipuler sont tout de suite moins intéressantes. La conception de jeux de règles de transformations adaptées aux modèles de traces est un des à-côté du travail conceptuel de la trace.
En effet, on ne peut pas simplement donner un modèle de trace à une entreprise en lui disant « voilà, tu as ton modèle, à toi de te débrouiller pour faire ce que tu veux avec ». Il faut donc en parallèle du modèle construire les règles de transformations qui vont les utiliser, afin d'obtenir un résultat final qui corresponde aux attentes de l'entreprise. L'entreprise pourra certes produire en interne de nouvelles règles de transformations (par une tactique de copie/adaptation), mais il faudra lui préparer le terrain. Et qui est-ce qui va se taper le travail ? Gagné, c'est l'expert qui s'occupe déjà du modèle. Cela augmente sensiblement sa charge de travail, et donc le coût pour l'entreprise.
Selon le logiciel à instrumenter, le travail technique pour réaliser la collecte d'observés varie grandement. J'ai identifié 3 catégories d'instrumentation :
Selon les applications à instrumenter et les méthodes utilisées, le coût de l'adaptation logicielle varie énormément. Malheureusement, il n'est pas possible d'identifier un petit nombre de critères précis permettant de quantifier simplement ce coût. C'est uniquement en prenant en compte une combinaison de nombreux facteurs qu'on peut le déterminer. À titre d'idée, on peut citer sans s'y restreindre :
Il y a également les coûts liés; par exemple, les structurels : achat d'un serveur pour le SGBT, mise à jour des matériels, adaptation de l'architecture réseau...
Un logiciel peut être vu comme quelque chose de « vivant », évoluant au fur et à mesure des versions. Ces évolutions sont nécessaires pour de nombreuses raisons : changement dans l'environnement d'accueil (le système d'exploitation), sécurité, nouvelles fonctionnalités, etc.
Tout naturellement, il faut que les éléments du traçage accompagnent ces évolutions. Tout s'enchaînent très rapidement de façon implacable :
On se rend compte alors que la mise à jour est coûteuse car il faut de nouveau faire appel à notre expert. Vous souvenez de lui, celui de la 1e étape, qui avait conçu les modèles ? Et bien il va falloir retourner le voir pour lui demander de se pencher sur les modifications. Ceci dit, ça tombe bien car il pourra tout traiter d'un seul coup : l'évolution des modèles et celle des transformations. Et si en plus derrière il peut assurer la formation ça ne sera pas perdu.
Le plus problématique est qu'il faut répéter ce cycle à chaque nouvelle version du logiciel. C'est réellement un surcoût, car la rentabilité n'est pas évidente à dégager (comptablement parlant).
Mentalement, insérez ici un joli schéma de traces complet d'une application, montrant côte à côte les modèles de traces pour la version N et la version N+1. Imaginez de gros, gros (mais alors gros), graphes avec des nœuds et des arcs dans tous les sens, qui seraient différents de seulement quelques détails : observés en plus ou en moins, déplacement de relations, changement d'attributs, etc.
Je mettrais les schémas quand je les aurais fini, le but est ici de vous faire prendre conscience du volume de travail que ça représente.
En ce qui concerne l'utilisateur final, c'est plus simple pour lui. Une évolution de son environnement tracé se traduit non seulement par une modification de sa pratique métier, mais également de sa pratique réflexive via les traces. Ben oui, vous ne croyez quand même pas qu'au final rien ne change ? Et comme nous le savons, tout ce qui change les habitudes de l'utilisateur le fait râler (sauf si c'est Génial, mais ça seul Apple arrive à le faire :)
De petites modifications dans un logiciel peuvent avoir de grandes répercutions sur le modèle de trace, et donc sur la visualisation interactive de la trace par l'utilisateur. Il va donc lui falloir un temps d'adaptation (ce qui influera sur sa productivité), voir même une formation.
Également, les changements dans les traces et modèles pourront se propager à d'autres environnements, tracés ou non. C'est le cas lors de la documentarisation de traces en vue de générer des productions (textes, hypermédia, etc.) Même si ces outils ne sont pas tracés, ils sont impactés par les changements sur les données d'entré.
On peut dire qu'instrumenter un environnement pour lui faire générer des traces est long, pas toujours simple, et n'est pas nécessairement faisable de façon clairement rentable.
Les problèmes apparaissent à tous les niveaux : conceptuel (modèles), technique (instrumentation) et humain (usage). Les principaux étant le coût (je crois l'avoir suffisamment répété :) de la mise en œuvre de la trace dans un système existant, et les compétences spécialisées requises dans chacune des étapes de la réalisation.
Convaincre un industriel d'investir dans la trace est alors réellement un problème, car les gains à dégager sont difficilement calculables, et la mise initiale est élevée.
Au final, pour moi la théorie de la trace est attirante sur le papier, mais les difficultés liées à la réalisation sont vraiment rebutantes.
Tout n'est pas perdu ! Maintenant que nous avons regardé le problème droit dans les yeux, on peut louvoyer en évitant ce qui justement nous embête.
Ainsi, on peut songer à cibler en priorité les systèmes figés, qui n'évoluent pas ou très peu :
Une autre approche est de se poser la question de savoir qui a suffisamment d'argent à dépenser pour se lancer dans un projet pareil, sans que le responsable risque de se faire virer après la réception de la facture par le service compta :
Vous l'avez compris, j'exclus tout ce qui est grand public dans les cibles potentielles. Il y a éventuellement le monde du Libre qui pourrait mettre en place et maintenir des utilisations de traces modélisées, mais il faudrait vraiment que ça soit pertinent.
dimanche 21 juin 2009
dimanche 21 juin 2009. Idées et réflexions
Thibaud Hulin travaille avec moi au LIRIS, CNRS UMR5205, dans l'équipe SILEX. Thibaud Hulin et moi partageons le même statut, à savoir contractuel et non pas titulaire.
Dans le contexte de l’affaire Vincent Geisser, Thibaud relai les évènements en cours et les commente. Quelques jours plus tard, il reçoit un appel téléphonique (quand on connait l'état de l'annuaire du LIRIS, c'est déjà en soit une surprise :) du directeur de laboratoire lui demandant de supprimer son billet; la demande venant du service du Fonctionnaire de Sécurité Défense (FSD).
Au delà d'un soutien normal envers mon collègue de travail, je ne peux pas m'empêcher de m'interroger sur les prérogatives et droits de ce fameux FSD qui agit tant mais dont on ne sait rien.
Sur cette affaire, je ne prend pas position sur les travaux de Vincent Geisser, que je ne connais pas, mais sur le contrôle de la liberté de parole des personnes travaillant au CNRS.
En savoir plus :
vendredi 19 juin 2009
vendredi 19 juin 2009. Trouvailles et lectures
SlideShare est un outil web de partage de support visuel de présentation (SVP).
Il permet simplement de mettre en ligne ses SVP afin de les diffuser. Mais il apporte en plus des fonctionnalités intéressantes, comme :
Bref, yabon. Fini de s'embêter avec le FTP, la construction (et maintenance !) de page d'index rassemblant le matériel... 3 clics et c'est fait.
En revanche, il ne faut pas oublier qu'un SVP n'est pas un document qui se suffit à lui-même. En effet, comme son nom l'indique c'est bien un support et non pas une ressource autoportée. J'en parle un peu ici.
Pour vous donner une idée de ce qu'il est possible de faire, voici une collection de mes SVP. Sexy, non ?
mercredi 17 juin 2009
mercredi 17 juin 2009. Informatique
La fondation Mozilla propose désormais aux utilisateurs de créer, partager et de collaborer sur des « collections ». Une collection est un ensemble d'extensions, de thèmes et de greffons qui étendent les fonctionnalités d'un logiciel; dans notre cas, il s'agit du navigateur web Firefox mais cela concerne également Thunderbird.
Pour utiliser les collections, il est au préalable nécessaire d'équiper Firefox de l'extension Add-on Collector.
J'ai créé une collection dédiée à la protection de la vie privée sur le web, qui contient les extensions suivantes :
Le but de cette collection « Protection Vie Privée » est d'apporter à l'utilisateur un ensemble cohérent d'outils, simples à utiliser, qui lui permettrons de protéger sa vie privée durant son utilisation du web : filtrage des cookies insidieux, des publicités envahissantes (et traçant les profils), gestion automatique des proxies, email jetable contre le SPAM, etc.
Un avantage secondaire des collections est la simplicité pour déployer des configurations standards: en installant une collection contenant les extensions à utiliser, on diminue le nombre de manipulations à faire, et la mise à jour de chaque élément est automatisée via l'administrateur de la collection qui décide quelle version employer.
Je discute avec des utilisateurs a priori avancés dans l'utilisation du web sur les forums Ubuntu-fr afin d'obtenir des retours sur cette collection orientée grand public.
La principale remarque est l'absence de l'extension NoScript.
C'est une remarque intéressante, qui s'inscrit dans un contexte plus large. Il y a plusieurs discussions sérieuses sur la pertinence ou non de mettre l'utilisateur grand public sur un Firefox avec NoScript. Cela va plus loin que le simple fait de « bloquer la publicité » ou de « protéger l'utilisateur ». J'expose ici simplement les 4 arguments majeurs qui soutiennent que NoScript n'est pas adapté au grand public :
J'ai également créé une collection Utilisation courante du web qui apporte un ensemble d'extensions utiles au quotidien pour la navigation web. On peut considérer cette collection comme un « kit de base » permettant une utilisation confortable du web.
lundi 15 juin 2009
lundi 15 juin 2009. Idées et réflexions
Des listes de diffusion sur la recherche informatique en France diffusent régulièrement des annonces de recrutement. Il s'agit la plupart du temps d'offres de stage, de post-doc ou encore d'assistant de recherche; mais on y trouve aussi parfois des offres pour ingénieurs.
Celle-ci a attiré mon attention :
Offre d’emploi
Docteur / ingénieur
IA – jeux vidéo - middleware
...
Candidat idéal
Profil : docteur en IA + ingénieur informatique
Spécialité : programmation (C++) - intelligence artificielle (agents autonomes, vie artificielle, apprentissage, évolution)
Expérience :
- Développement de jeux vidéo
- Intelligence artificielle
- Développement de middleware
...
Embauche
Salaire : Le salaire brut prévu pour cette mission sera de l’ordre 2000 € / mois.
Je ne vous cache pas que c'est très en dessous des prix du marché pour recruter un docteur :
On peut donc envisager plusieurs possibilités :
Personnellement, sur ce profil je ne demanderais pas moins de 40k€ net par an, avec avantages (PERCO, 13e mois, congés, frais, etc).
vendredi 12 juin 2009
vendredi 12 juin 2009. Idées et réflexions
Étant donné que :
12. Considérant qu'aux termes de l'article 11 de la Déclaration des droits de l'homme et du citoyen de 1789 : " La libre communication des pensées et des opinions est un des droits les plus précieux de l'homme : tout citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l'abus de cette liberté dans les cas déterminés par la loi " ; qu'en l'état actuel des moyens de communication et eu égard au développement généralisé des services de communication au public en ligne ainsi qu'à l'importance prise par ces services pour la participation à la vie démocratique et l'expression des idées et des opinions, ce droit implique la liberté d'accéder à ces services ;
17. Considérant, en outre, qu'en vertu de l'article 9 de la Déclaration de 1789, tout homme est présumé innocent jusqu'à ce qu'il ait été déclaré coupable ; qu'il en résulte qu'en principe le législateur ne saurait instituer de présomption de culpabilité en matière répressive ; que, toutefois, à titre exceptionnel, de telles présomptions peuvent être établies, notamment en matière contraventionnelle, dès lors qu'elles ne revêtent pas de caractère irréfragable, qu'est assuré le respect des droits de la défense et que les faits induisent raisonnablement la vraisemblance de l'imputabilité ;
Décision n° 2009-580 DC du 10 juin 2009
Je ne vois rien à ajouter.
mercredi 10 juin 2009
mercredi 10 juin 2009. Ingénierie de l'expérience tracée
Il y a deux abréviations à connaitre.
Les adaptations à faire sur les formats de données, selon les pays. Par exemple, comment on exprime une date (JJ/MM/AA, MM/DD/AA, etc), une monnaie ($123, 123€), un nombre (123.456 ou 123,456), etc. C'est un travail technique qui demande à faire abstraction du contenu pour en décrire sa structure.
CF l18n
Il s'agit de la traduction à proprement parler.
WP :
La régionalisation de logiciel concerne le processus de traduction de l'interface utilisateur d'un logiciel d'une langue vers une autre et en l'adaptant à la culture locale. On utilise parfois le terme localisation, qui est une transposition du mot anglais localization (faux ami). On écrit parfois l10n car le mot localization est composé de dix lettres encadrées par un l et un n.
Avant qu'un logiciel ne soit régionalisé, il faut au préalable qu'il ait été internationalisé, c’est-à-dire qu'il ait été écrit pour pouvoir être traduit dans différentes langues et cultures.
CF l10n
Pour construire l'interface de l'outil générique de visualisation interactive de trace (OGVIT), il faut que chaque attribut ait un nom compréhensible pour l'utilisateur. Ce qui veut dire qu'au couple attribut+valeur (par exemple, ktbs:hasTime et 1244638257), il faut ajouter un 3e élément qui est le « nom humain » (mercredi 10 juin 2009, 14:50:57)
De plus , ce nom humain doit pouvoir être internationalisé (et localisé), car tout le monde n'utilise pas la même langue. Ce qui veut dire qu'un observé, au final, doit autant être compréhensible par la machine que par l'humain. Si l'humain sait vaguement s'adapter, la machine elle a besoin d'un formalisme explicite.
Il existe plusieurs endroits où ajouter ces élément de i18n et de l10n :
Reste à décider. Vos avis sur la question ?
Je souhaite visualiser la trace de ma (« Damien_traces ») frappe clavier dans weechat, mon client IRC tracé. La trace correspondant à l'envoi du message « bonjour » sur le canal #LIRIS de Freenode est la suivante :
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix ktbs: <http://liris.cnrs.fr/~ithaca/ns/ktbs/0.1/> . @prefix : <http://example.com/trace-model/> . [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "*b"; :zoneDeSaisieAvantCaractère ""; :zoneDeSaisieAprèsCaractère "b"; :drapeauAway "0"; :contenuDeLaZoneDeSaisie "b"; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie " "; :positionDuCurseurDansLaZoneDeSaisie "1"; ktbs:hasBegin "1244635383"; ktbs:hasEnd "1244635383"; ktbs:hasTrace <> ; ]. [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "*o"; :zoneDeSaisieAvantCaractère "b"; :zoneDeSaisieAprèsCaractère "bo"; :drapeauAway "0"; :contenuDeLaZoneDeSaisie "bo"; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie " "; :positionDuCurseurDansLaZoneDeSaisie "2"; ktbs:hasBegin "1244635383"; ktbs:hasEnd "1244635383"; ktbs:hasTrace <> ; ]. [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "*n"; :zoneDeSaisieAvantCaractère "bo"; :zoneDeSaisieAprèsCaractère "bon"; :drapeauAway "0"; :contenuDeLaZoneDeSaisie "bon"; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie " "; :positionDuCurseurDansLaZoneDeSaisie "3"; ktbs:hasBegin "1244635383"; ktbs:hasEnd "1244635383"; ktbs:hasTrace <> ; ]. [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "*j"; :zoneDeSaisieAvantCaractère "bon"; :zoneDeSaisieAprèsCaractère "bonj"; :drapeauAway "0"; :contenuDeLaZoneDeSaisie "bonj"; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie " "; :positionDuCurseurDansLaZoneDeSaisie "4"; ktbs:hasBegin "1244635384"; ktbs:hasEnd "1244635384"; ktbs:hasTrace <> ; ]. [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "*o"; :zoneDeSaisieAvantCaractère "bonj"; :zoneDeSaisieAprèsCaractère "bonjo"; :drapeauAway "0"; :contenuDeLaZoneDeSaisie "bonjo"; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie " "; :positionDuCurseurDansLaZoneDeSaisie "5"; ktbs:hasBegin "1244635384"; ktbs:hasEnd "1244635384"; ktbs:hasTrace <> ; ]. [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "*u"; :zoneDeSaisieAvantCaractère "bonjo"; :zoneDeSaisieAprèsCaractère "bonjou"; :drapeauAway "0"; :contenuDeLaZoneDeSaisie "bonjou"; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie " "; :positionDuCurseurDansLaZoneDeSaisie "6"; ktbs:hasBegin "1244635385"; ktbs:hasEnd "1244635385"; ktbs:hasTrace <> ; ]. [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "*r"; :zoneDeSaisieAvantCaractère "bonjou"; :zoneDeSaisieAprèsCaractère "bonjour"; :drapeauAway "0"; :contenuDeLaZoneDeSaisie "bonjour"; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie " "; :positionDuCurseurDansLaZoneDeSaisie "7"; ktbs:hasBegin "1244635385"; ktbs:hasEnd "1244635385"; ktbs:hasTrace <> ; ]. [ a :presseTouche; :versionDeWeechat "0.2.6.1"; :monPseudo "Damien_traces"; :nomDuCanal "#LIRIS"; :nomDuServeur "freenode"; :typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0"; :caractère "return"; :zoneDeSaisieAvantCaractère "bonjour"; :zoneDeSaisieAprèsCaractère ""; :drapeauAway "0"; :contenuDeLaZoneDeSaisie ""; :contenuDuMasqueDeCouleurDeLaZoneDeSaisie ""; :positionDuCurseurDansLaZoneDeSaisie "0"; ktbs:hasBegin "1244635386"; ktbs:hasEnd "1244635386"; ktbs:hasTrace <> ; ].
L'OGVIT est supposé construire automatiquement, à partir du modèle de la trace, la visualisation suivante.
On constate plusieurs choses :
Comme quoi, c'est vraiment là un problème technique et non pas scientifique. Il faut qu'on se force à prendre des décisions pour avancer.
« entrées précédentes - page 12 de 16 - entrées suivantes »