Mot-clé - retour d expérience

Fil des billets - Fil des commentaires

vendredi 8 juillet 2011

Retour d'expérience sur le passage en BÉPO

Logo BÉPO

J’ai passé le clavier d’une de mes machines Ubuntu/natty en disposition BÉPO; la procédure fonctionne aussi pour Debian/stable. La keymap BÉPO est disponible dès le démarrage pour déverrouiller le disque, et dans la console et GDM pour permettre la connexion.

Pourquoi le BÉPO ? La communauté BÉPO vous expliquera cela dans les détails.

Mes premières impressions

Si les premières minutes sont horribles, celles qui suivent sont juste terribles. Il faut se forcer à bloquer des années de réflexes et pratiques accumulés sur les dispositions AZERTY et QWERTY. Il faut non seulement réapprendre à (correctement) taper au clavier, mais aussi à utiliser les bons caractères typographiques (apostrophes, tirets quadratins, etc). Au bout de 24 heures, j’ai pris mes repères; après 48 heures je commence à taper des mots de passe et quelques mots sans trop hésiter. Je sens qu'il va me falloir plusieurs semaines pour retrouver une vitesse de frappe acceptable.

Je suis surtout lent, effroyablement lent. Mais dès les premières secondes j’ai bien ressenti l’intérêt de la disposition BÉPO : mes doigts se déplacement beaucoup moins et les voyelles sont à une place extrêmement pratiques. En fait, je peux taper des bouts de phrases entiers sans quitter la rangée médiane. C’est impressionnant.

Passage en clavier BÉPO du portable

Les principaux problèmes que je rencontre sont :

  • les raccourcis clavier : leur usage est tellement systématique et ancré que « déplacer » un ^C ou un ^Z est une véritable douleur
  • VIM : au secours, il faut tout réapprendre ! dd, I et autres ont changé de place (ou plus exactement, ce sont les touches qui ont changé). C’est totalement désespérant de se sentir trahir par son éditeur de texte.
  • les commandes du shell : taper « xi » à la place de « cd » est crispant. Heureusement, les touches à la place de « rm » sont « on »; ça évite les mauvaises surprises…

Globalement, si la rédaction de texte se passe plutôt bien, j’éprouve de réelle difficultés avec tout ce qui est usage technique des touches : programmation, administration, etc. Mais de gré ou de force, mes doigts vont s’habituer. La seule question étant alors « en combien de temps ? ». Comme les vacances d'été commencent, j’espère être au point pour la rentrée.

Procédure à suivre

Ce que j’ai fait :

1) installer le paquet console-data avec les réponses : « Choisir un codage clavier pour votre architecture », « dvorak », « Standard », « Dvorak French Bepo (UTF8) »

2) spécifier la keymap dans /etc/default/keyboard :

XKBMODEL="latitude" # spécifique à mon portable, sinon pc105
XKBLAYOUT="fr"
XKBVARIANT="bepo"
XKBOPTIONS="lv3:ralt_switch,compose:lwin,terminate:ctrl_alt_bksp"

3) pour dire que je veux la keymap dans l’initramfs, ajouter dans /etc/initramfs-tools/initramfs.conf :

#
# KEYMAP: [ y | n ]
#
# Load a keymap during the initramfs stage.
#

# pour avoir la carte Bépo le plus tôt possible
# (voir /etc/console/boottime.kmap.gz ou /etc/console-setup/cached.kmap.gz)
KEYMAP=y

4) générer un nouvel initramfs pour empaqueter le tout : update-initramfs -uv

5) redémarrer

jeudi 19 août 2010

Les chercheurs, la voiture et le plot : une réflexion sur l'usage de la force brute

Au LIRIS, nous n'hésitons à pas donner de notre personne pour résoudre les problèmes. Surtout quand il ne sont pas du domaine de nos spécialités. Laissez-moi vous raconter une histoire.

L'histoire

Il était une fois, un groupe de chercheurs qui sortaient de leur laboratoire afin de rentrer chez-eux.

Chemin faisant, ils se firent héler par une splendide demoiselle aux doux yeux maquillés tel le dieu Ra. La jeune fille était bien en peine car sa voiture, suite à une mauvaise manœuvre, se trouvait perchée sur un plot de béton.

Voiture coincée

Les chercheurs étaient emplis de bonne volonté et s’approchèrent afin d’examiner cette curiosité. Ils se mirent à tourner autour de la voiture, à palper des éléments, à poser des hypothèses et à estimer les différents paramètres.

Leur conclusion fut sans appel : oui, cette voiture était effectivement bloquée sur le plot en béton, et le dégagement allait être une opération délicate car son dessous commençait à être endommagé.

Voiture coincée, vue de dessous avant, protection endommagée
Voiture coincée, vue de dessous avant, protection endommagée

Une fois ce constat établit, restait aux chercheurs à proposer et à mettre en œuvre une solution. En effet, la demoiselle en détresse n'avait pas fait appel à eux pour lui apprendre ce qu'elle savait déjà (à savoir que sa voiture était coincée sur un plot de béton), mais bien pour y apporter une réponse.

Comme nos chercheurs étaient emplis de bonne volonté et se sentaient d'humeur virile, ils affirmèrent vouloir relever ce défi. Mais comment faire ? Deux courants de pensée apparurent.

Il y avait d'une part des chercheurs, emportés dans un élan idéaliste, qui songeaient à fournir des appuis supplémentaires à la voiture afin de lui permettre de se mouvoir de nouveau; et donc de se dégager par elle-même. En langage courant on appelle cette technique « mettre une rampe sous les roues ».

Et d'autre part, des chercheurs (sans doute pressés de rentrer chez eux vu l'heure déjà tardive; qui pourrait leur en vouloir ?) préféraient dégager la voiture à la main en la portant.

En personnes civilisées, les chercheurs se sont mis à débattre du pour et du contre de ces deux approches. Pendant que la demoiselle en détresse commençait à désespérer de voir son problème résolu (surtout que, apparemment, la voiture n'était pas à elle…).

Ne pouvant arbitrer, mais restant toujours bons collègues, les chercheurs établirent le compromis de réaliser les deux solutions.

Le premier petit groupe de chercheurs s'en allât emprunter sur un chantier voisins des matériaux de construction : parpaings, planches épaisses, cales… ils étaient certains d'y trouver les ressources nécessaires à leur entreprise.

Pendant ce temps, hésitant sur la conduite à tenir durant l'expédition du premier groupe, le second groupe de chercheurs rassurait la demoiselle en détresse. Se faisant, les chercheurs examinaient aussi la voiture; cherchant qui des points de levage, qui estimant l'effort à fournir pour lever et porter la voiture, etc.

Voiture libérée

Finalement, n'y tenant plus et ne voyant toujours pas revenir le premier groupe, les chercheurs du second se rassemblèrent autour de la voiture, la levèrent et la portèrent au delà du plot bétonné.

Folle de bonheur, la demoiselle remercia ses sauveurs et s'en allât rejoindre son prince charmant. Ne voyant toujours pas revenir ceux du premier le groupe, les chercheurs se dispersèrent pour rentrer chez eux.

Nul ne sut jamais ce qu'il advint des autres chercheurs partis en quête de matériaux.

Conclusion

Il ne faut pas sous-estimer la capacité de la force brute à résoudre un problème complexe ou sensible.


Discussion

Régulièrement dénigrée dans le monde de la recherche où elle peut être qualifiée d' « inélégante » et de « simpliste », la force brute n'est pas pour autant dénuée de qualités.

En effet, utilisée correctement, elle permet de répondre à un besoin avec des coûts modérés et une mise en œuvre rapide.

Par exemple, supposons que nous aillons à examiner 30000 heures de vidéo provenant de caméras de surveillance pour en relever les passages d'un personne. Les images, qui proviennent d'appareils de qualité moyenne, sont régulièrement floues ou bruitées.

Quelle est la solution la plus rentable ? Concevoir et développer un logiciel d'analyse d'image avec détection de formes et reconnaissance de visages, ou d'embaucher 100 chinois 10 heures par jour durant 30 jours ?

Dans le premier cas, il faut recruter des experts, des ingénieurs et des développeurs dans de nombreuses disciplines : génie logiciel, analyse de signal, traitement de données temporelles, etc. Cela coûte cher et l'estimation du temps nécessaire à la mise en œuvre est imprécise.

Dans le second cas, avec 100 chinois payés $5 par jour durant 30 jours, le coût sera de $15000 et le travail aisé à planifier.

Certes, on peut avancer que le développement du logiciel de reconnaissance est un investissement et permet donc de diminuer le coût unitaire à la longue. Mais en contrepartie, il est moins adaptable que les humains à qui on pourra demander de rechercher dans les images une voiture, une personne portant une valise précise, etc.

Il est également important d'évaluer le coût de maintenance : revient-il plus cher de remplacer un élément déficient (pour cause de maladie ou de casse) d'un système base sur la force brute (tel un ouvrier chinois ou encore un ordinateur basic), ou bien de remplacer un élément d'un système sophistiqué (tel un expert international ou un supercalculateur intégré) ?

Malgré tout, il ne faut pas oublier que l’apparente simplicité d'une solution à base de force brute est illusoire. Cette approche demande des investissements en coordination et en gestion des nombreux éléments : il est loin d'être évident d'interconnecter des milliers d'ordinateurs, et lorsqu'il s'agit de travailleurs humains le support devient une tâche à part entière (rotation d'équipes, restauration, commodités, etc.)

Le choix de la stratégie d'approche intervient tôt dans le cycle de résolution de problème; on constate qu'il peut avoir un impact significatif sur le reste du projet. il est donc important d'évoquer la question suffisamment tôt, par exemple durant la phase d'analyse, afin de ne pas se retrouver piéger.

mercredi 16 décembre 2009

Avancement sur les outils de la trace

Hier est un jour à marquer d'un parpaing blanc : j'ai mis en place la première interconnexion de 3 outils différents qui manipulent des éléments de trace : le client IRC weechat, le préparateur de traces de weechat, et le ktbs. Plus précisément, la séquence réalisée est WeeChat → préparateur de trace → ktbs.

  • WeeChat : il s'agit du client IRC que j'ai instrumenté pour sortir des proto-observés représentant l'activité de l'utilisateur dans celui-ci.
  • préparateur de trace : un agent logiciel spécifique à WeeChat, développé par moi, en charge de :
    • construire des observés à partir des proto-observés
    • assurer l'interconnexion avec le SGBT
    • initialiser le SGBT pour permettre son utilisation (définition de l'utilisateur, du modèle, de la trace, etc)
  • ktbs : l'implémentation du SGBT réalisée par Pierre-Antoine

Ça n'a l'air de rien comme cela, mais tous ceux qui se sont concrètement frottés à la conception complète de modèles, à la création technique de traces, et au KTBS vous diront que c'est limite un exploit :)

Bon, maintenant pour être honnête, je dois dire aussi qu'il y a des warnings dans tous les sens, que ça crash aléatoirement et que c'est vraiment pas évident de tout faire tenir ensemble. Mais le résultat est qu'au final il est possible de demander au KTBS de recracher une trace qu'il a précédemment reçu.

Dans tous les cas, c'est encore loin d'être utilisable, même pour faire des petits essais. Le travail d'ingénierie à réaliser est LOURD, et le code pas réutilisable car spécifique à un outil. mais ça marche \o/

mardi 10 novembre 2009

Compte-rendu d'InCos2009

Avant-propos

Pour ce billet, je vais essayer quelque chose de nouveau en y introduisant une touche de sémantique. Ainsi, les passages strictement scientifiques seront en gras, mes remarques personnelles en italique (à lire à la manière d'apartés), et le reste en normal. Naturellement, des combinaisons sont possibles : je peux très bien faire une remarque scientifique en gras et italique.

De cette façon, les personnes voulant aller droit au but pourront juste se contenter de lire les parties qui les intéressent, alors que celles prenant un café auront le temps de le terminer en considérant mes bafouilles :)

Le déplacement

Plaza real Armé de ma profonde non-maîtrise de la langue espagnole (pour tout vous dire, mon espagnol est encore plus mauvais que mon néerlandais, et je n'arrive à parler néerlandais que lorsque je suis totalement ivre; c'est dire le niveau), j'ai donc débarqué à l'aéroport de Barcelone. Aéroport qui, naturellement, ne porte le nom de Barcelone que par un surprenant hasard vu la distance qui sépare ces deux endroits…

Plage de Barcelone Honnêtement, Barcelone est une ville superbe : des vieux quartiers, des œuvres d'art moderne un peu partout, des immeubles au style design… En plus, il y fait beau et chaud, mais pas trop. La mer est juste aux pieds de la ville, et surtout le nombre de palmiers au mètre carré est limite indécent. Je vous le dis, moi : il faut relocaliser SILEX à Barcelone :)

La conférence

Il s’agissait de la première édition de la conférence, ce qui expliquait son flottement sur le papier. En revanche, une fois sur place tout était clair.

Séance de postersJ’ai donc assisté aux présentations qui nous intéressent dans SILEX; deux thèmes se sont dégagés :

  1. réseaux sociaux : interconnections, services web, exploitation, analyse nœuds forts, critiques, etc)
  2. e-learning :
    • en s'appuyant sur les plates-formes sociales
    • s'appuyer sur Wikipédia (récupérer automatiquement des groupes de ressources liées au thème)

Globalement, la conférence avait un niveau moyen, mais correct. Les thématiques flottaient un peu, mais les organisateurs ont maintenant une vision plus claire de ce qu'ils veulent faire. Pour moi, le principal intérêt de cette conférence était de discuter avec les espagnols qu’on ne voit habituellement quasiment jamais en France.

Comment reconnaître un espagnol dans une soirée ? C'est celui qui parle le plus fort. Comment savoir qu'on est à une conférence espagnole ? Tout les locaux parlent fort !

Il y avait beaucoup, beaucoup, mais alors beaucoup d'asiatiques (chinois, japonais, thaïlandais); ils sont partout désormais ! Ce qui les intéresse surtout :

  • télécom, surtout mobilité
  • e-learning :
    • langue (anglais oral, pour conversation)
    • reprise individuelle des cours d'un professeur (rejouer les annotations et schémas du prof au lieu d'avoir juste le résultat statique)

L’authentification biométrique, c'est un peu la loose quand ça ne fonctionne pas, surtout en plein écran sur le vidéo projecteur : être logué en dehors de sa machine car on a les doigts gras, c'est pas lol du tout :) Bref, les chinois ont pleins de gadgets sympa dans les poches, mais la qualité est… chinoise, on dira.

Travaux intéressants vus sur place

Je n’ai rien vu qu’y ait spécialement retenu mon attention, mais j’ai malgré tout noté quelques petites choses qui m’ont titillé.

Group Intelligence: a distributed cognition perspectivePoster « Group Intelligence: a distributed cognition perspective » : vision du web 2 selon un point de vue de cognition distribuée.

Educational Games based on Open ContentPoster « Social Educational Games based on Open Content » : le but de leurs travaux est, entre autre, d'arriver à mettre en place un système d'e-learning ludique construit automatiquement à partir de ressources libres; ça peut être des jeux de questions-réponses, de coloriage de cartes, etc. J'aime bien l'idée, mais je n'en sais pas suffisamment sur leurs approches pour dire ce que ça vaut.

Miloš Kovačević, un serbe, qui travaille sur la création automatique de moteurs de recherche spécialisés à partir d'une simple liste d'URL. Par exemple, on lui fourni une collection de liens pointant vers des ressources choisies par un enseignant pour documenter son cours, et l'outil va construire automatiquement un corpus étendu à partir des liens hypertextes initiaux, pour ensuite alimenter un moteur de recherche; du coup, avec juste quelques liens on se retrouve avec un vaste ensemble de documents. Il cherche à améliorer son travail en collectant automatiquement des ressources jugées pertinentes, en se basant sur la navigation de l'utilisateur, ses échanges avec d'autres personnes, etc. Donc, hop des traces.

Ma présentation

Passant en dernier, j’avais décidé de réveiller la salle en dynamisant un peu la présentation; pas de doute, ça a marché : c'est moi qui ai distribué le plus de cartes de visite dans le panel (bon, OK, les traces modélisées ont intéressées les gens bossant sur la collaboration et l'apprentissage; mais quand même). Un des participants du panel n’étant pas présent, j’ai pu (discrètement :) récupérer son temps de parole pour continuer à discuter sur les traces.

D'ailleurs, le LIRIS devrait vraiment donner des cartes de visite aux doctorants, car là j'ai lâché mes cartes pro à moi, et pas celles aux couleurs du labo… (mais je ne me plains pas, hein ;)

Retours et questions

Expliqué simplement, avec moult dessins et pas de choses qui font peur, le concept de la trace modélisée est facilement compris; surtout en l'appuyant dès le début avec des exemples concrets. Les questions ont porté sur :

  • la possibilité de raisonnement à partir des traces : j'ai tracé en deux lignes le RàPET
  • la nature du modèle : j'en parlais beaucoup mais n'en montrais jamais concrètement. J'ai commencé par sortir un bout de RDF, mais comme j'ai senti que ça ne passait pas j'ai repris ma métaphore de la boîte à chaussure et du catalogue; et là c'était bon.
  • l'utilisation des traces pour fournir à une classe d'élèves des information sur leur travail, leur activité, etc. Comme je ne sais pas vraiment ce qui se fait dans l'équipe en terme de traces dans les EIAH, j'ai renvoyé vers le site de SILEX.
  • les gens du e-learning sont d'accord avec le fait qu'on ne peut pas se passer de l'intention et de l'objectif quand on travaille avec des traces modélisées pour l'humain
  • quid de l'utilisations des traces passées ? J'ai déroulé l'exemple de KM à base d'insertion d'image dans Word (très très bien cet exemple pour faire comprendre aux gens l'utilisation de traces)
  • est-ce qu'on n'a pas peur de rater des informations sur l'utilisateur dans son activité ? J'ai répondu que dans notre cas de l'apprentissage collaboratif synchrone, cela est très peu probable car on construit le modèle en fonction de l'objectif, de l'activité réalisé et des ressources impliquées. Mais c'est à voir dans d'autres circonstances; rapide évocation de la génération automatique de modèle

Beaucoup de questions, donc, aussi bien théoriques que très pratiques : comment construit-on un modèle ? Quelles sont les possibilités de liaisons avec des outils existants ? Comment exploiter les traces pour faire telle ou telle chose ? Ce qui est régulièrement revenu est la question de faire des inférences automatiques sur les traces, pour produire des nouvelles choses.

Et maintenant ?

Que faire pour exploiter les retours de cette conférence ? Très simplement, il me vient immédiatement à l’esprit qu’il faut :

  • une page web de vulgarisation pour présenter les traces
  • une courte liste de nos principales publications pour la compréhension des traces
  • renforcer la communication au sein de l'équipe (mais je l'ai déjà dit ça, non ? :)
  • renforcer le travail en commun au sein de l'équipe

On peut également songer à faire une base de connaissance pour nos déplacements : hôtels où descendre, pièges à éviter, etc. Par exemple :

Barcelone

Hôtel :

  • Pension 45, juste à côté de la Placa de Catalunya; fortes connexions pour les transports en commun
  • confort simple, tranquille, le wifi gratuit est bon quand il n'est pas saturé par une andouille qui pompe des torrents

Aéroport :

  • les navettes avec Barcelone se trouvent au Terminal 1, et se nomment « aérobus »; 5 euros le trajet, des billets A/R existent; vont jusqu'à la Placa de Catalunya
  • difficile de trouver des prises de courant dans le Sky Center; il faut les chercher au pied des blocs élévateurs

Transport :

  • le ticket à l'unité est cher
  • il existe un ticket donnant droit à 10 trajets, pour pas cher du tout
  • les portillons du métro sont fourbes : selon le dispositif, soit il faut passer à gauche de la borne, soit il faut passer à droite

Vie quotidienne :

  • on survit très bien avec juste quelques mots de vocabulaire, et une langue bien pendue
  • les barcelonaises sont faciles à aborder et aident volontiers les touristes

Les documents

J'ai mis, comme d'habitude, mes documents sur SlideShare. Voici les widgets embarqués dans le billet.

Et bien sur, le carton qui-va-bien Best Paper Award

Damien recevant le Best Paper Award

mercredi 23 septembre 2009

Interconnexion application flash ↔ KTBS

Bonne nouvelle, les interconnexions sont en train de se mettre en place entre le KTBS et différents prototypes. Par contre, il reste du boulot.

Enfin bon, ça commence à tourner, c'est le principal. Voici un extrait de code en ActionScript montrant comment faire un aller-retour entre une application Flash et le KTBS. Notez la création simple de la liaison pour le service web via le HTTPService(). En revanche, ne me demandez pas (encore) comment on fait si la connexion timeout, saute, se bouche ou autre. Il est également possible d'utiliser directement des sockets, ce qui est pratique pour affiner les choses à la main.

Sérieusement, ce langage est immonde. Ça a la lourdeur du javascript, et la grammaire a été conçue par un polonais shooté à la vodka : ça ressemble presque à un langage normal, sauf quand ils se sont amusé à permuter l'ordre des éléments sans aucune raison valable (genre variable:type ← franchement, faut être malade pour inventer ça...). C'est supposé être un langage de haut niveau, userfriendly et tout, mais on se tape les contraintes héritées des années 70 (marqueur de fin de ligne, typage fort, etc). Et surtout ils ont tout pété entre les versions 2 et 3 du langage. Sans compter que le compilateur (en java) a le dynamisme d'une vache salers explosée au Lexomil.

Dernier détail : sur le papier, l'eventListener fonctionne, mais en pratique il ne me donne rien; je soupçonne fortement un tripatouillage interne des données, genre « bouge pas, je vais te mettre ça en forme et nettoyer ce qui ne sert pas ». Ben tiens...

// l'objet décrivant le SGBT
private var _sgbt :HTTPService;


/*
 * constructeur de KTBS
 */
public function SGBT() :void {
// création d'un service web sur le KTBS de PA
	_sgbt = new HTTPService();
	_sgbt.url = "http://ip6-localhost:8001/";
	_sgbt.method = "GET";
	_sgbt.contentType = "application/rdf+xml";
// reniflage de la réponse du KTBS, avec appel à reponse() en lui passant les données retournées
	_sgbt.addEventListener(ResultEvent.RESULT, reponse);
	_sgbt.send();
}


/*
 * traite les données reçues du KTBS
 * retourne : rien
 * mesData est l'événement provenant du listener sur requête du KTBS
*/
public function reponse(mesData :ResultEvent) :void {
	_sgbt.removeEventListener(ResultEvent.RESULT, reponse);
// trace() est une primitive de déboguage écrivant sur la sortie standard
	trace(mesData.result.toString());
}

jeudi 30 juillet 2009

Pourquoi je ne crois pas (encore) en la trace modélisée

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.

Avant-propos

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 conception de modèle

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 :

Demande des compétences très spécialisées

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.

Nécessite beaucoup de temps

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.

Comprend aussi la conception des règles de transformations usuelles

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.

Instrumentation des logiciels

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 :

  • édition en profondeur du code source : méthode qui nécessite d'avoir accès au code source du logiciel, et d'être en mesure d'y apporter des modifications;
  • création de greffons présentant des interfaces pour interroger le contenu de variables d'état : ici, on ajoute des fonctionnalités à l'application en s'appuyant sur ses API. On est limité par ce que propose l'application en terme d'accès aux ressources internes.
  • création de préparateurs de traces qui récupèrent des données exportées par l'application pour produire des observés : cette approche consiste à récupérer des informations sorties de l'application via ses méthodes standard (par exemple, flux RSS ou AppleEvent). Cette méthode apporte le découpage le plus fort dans le tandem application/traçage, et est limitée par l'application elle-même.

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 :

  • la complexité du travail;
  • la durée du travail;
  • le langage de programmation (allez trouver quelqu'un qui fait encore du COBOL, tiens :)
  • la documentation disponibles (humain, référentiel de développement, etc);
  • l'urgence;
  • etc.

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...

Les cycles de vie logiciel dans environnements tracés

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 :

  1. modifier le logiciel tracé (peut) oblige(r) à modifier la collecte
  2. modifier le logiciel tracé oblige (pas moyen d'y échapper, là) à modifier le modèle de traces
  3. modifier le modèle de traces oblige à modifier les transformations de traces (et oui...)
  4. modifier les transformations de traces impacte sur la visualisation des traces (j'y reviendrais plus tard)

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.

Pratiques des utilisateurs liées aux traces

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é.

Que retenir au final ?

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.

Pistes envisageables

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 :

  • machine-outil : une chaîne de production change rarement, car son utilisation est planifiée en amont. Du coup, pas besoin non plus de faire évoluer les trucs-de-la-traces \o/
  • systèmes critiques : les outils comme ceux du contrôle aérien n'ont pas le même cycle de vie que les logiciels grand public; on ne passe pas son temps à les mettre à jour. Il sont conçus pour durer, et c'est au contraire les autres systèmes qui s'adaptent pour interagir avec eux. En gros, une fois le traçage dedans, il n'en bouge plus.
  • logiciels arrivés à maturité; ils peuvent être complexes (Lotus Notes) ou très simples (calepin de Windows). De par leur nature, rôle ou histoire, certains logiciels sont intouchables; on se contente au plus de les recompiler, mais en veillant à ne rien changer afin de ne pas provoquer d'effets de bord (comme par exemple un changement de modèle de trace).

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 :

  • les grands comptes : la Poste, EDF (eh, ça tombe bien :), etc;
  • la fonction publique : quand l'administration investie, elle ne le fait pas à moitié; souvenons-nous du « Plan informatique pour tous »;
  • les Décideurs Pressés qui imposent contre l'avis de leurs DSI des solutions qu'ils jugent intéressantes. Avec un joli PowerPoint®™©, on arrive à vendre des glaçons au Pôle Nord.

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.