Mot-clé - problème

Fil des entrées - Fil des commentaires

vendredi 10 mars 2023

Il y a vraiment un problème dans la galaxie StackOverflow

Il y a vraiment un problème dans la galaxie StackOverflow, que l’on voit monter depuis une paire d’années.

Je faisais cet après-midi du triage dans les files de modération des nouvelles questions & réponses, et j’y aie vu (comme d’habitude) des soumissions datant de ~20 minutes avec des scores de -2 ou pire.

Pourtant les demandes sont bien rédigées, étayées, sourcés, pertinentes, et tout. Mais non, blam, elles se font enterrer à cause de leurs scores, sans justification des personnes qui les basvotent. Les nouveaux utilisateurs ayant posé ces questions ne recevront alors jamais de réponses, sauf si on redresse manuellement leurs statuts.

C’est très problématique pour ces nouveaux utilisateurs — qui sont donc des juniors dans leurs domaines respectifs — se faisant ainsi torpiller.

Nous enseignons aux élèves de s’appuyer sur les communautés de pratiques, et des utilisateurs de ces communautés font un barrage à l’entrée pour diverses raisons (trop longues à commenter ici). C’est moche.

dimanche 4 septembre 2016

Utiliser Steam sur MacOS en 2016 avec un système de fichiers sensible à la casse

En 2016 , le client Steam sur Mac a beaucoup changé par rapport à ce qu’il était en 2010. Enfin, pas tant que ça… Il est toujours en 32 bits, exige toujours un système de fichiers non sensible à la casse, son overlay est toujours aussi problématique, et sa gestion des manettes de jeu toujours aussi erratique.

Bref, il convient d’adapter la procédure que nous avions mis en place en 2010. Le principe reste le même : on mets tous les éléments dans une image disque, et on crée des liens.

Ouvrir un terminal

Nous allons travailler principalement en ligne de commande. Eh, jouer se mérite un peu ;) On pourrait faire la même chose en utilisant des outils graphiques, mais cela serait plus long à expliquer.

Créer l’image disque qui accueillera Steam

L’image disque peut être rangée n’importe où : /Applications, $HOME, etc. Nous la mettrons dans $HOME/Applications/Jeux

mkdir -p ~/Applications/Jeux
cd ~/Applications/Jeux
hdiutil create -size 50g -type SPARSEBUNDLE -fs HFS+J -volname Steam Steam
created: /Users/USER/Applications/Jeux/Steam.sparsebundle

Pour d’informations, on se tournera vers le billet sur la manipulation des images disques.

Mettre en place l’application Steam

Ouvrir notre image disque pour Steam et y copier l’application Steam fournie par Valve.

hdiutil attach Steam.sparsebundle
/dev/disk4          	GUID_partition_scheme          	
/dev/disk4s1        	EFI                            	
/dev/disk4s2        	Apple_HFS                      	/Volumes/Steam

On constate ici que notre image disque a été montée dans /Volumes/Steam; elle apparait d’ailleurs sur le bureau. Il suffit maintenant d’y copier l’application Steam de Valve directement depuis l’image d’installation.

Adapter le compte utilisateur pour faire fonctionner Steam

Le principe est de stocker dans notre image disque tout ce qui a trait à Steam, et d’utiliser des liens pour maintenir les chemins d’accès.

mkdir -p /Volumes/Steam/Library
# copiez dans /Volumes/Steam/Library votre dossier applicatif « Steam » existant; ou vous pouvez simplement laisser Steam le recréer… et retélécharger tous vos jeux.
ln -s /Volumes/Steam/Library/Steam ~/Library/Application\ Support/Steam

Il ne reste plus qu’à synchroniser le tout et à refermer.

sync
hdiutil detach /Volumes/Steam
"disk4" unmounted.
"disk4" ejected.

Jouer !

Pour utiliser Steam, il suffit de monter l'image disque (en double cliquant dessus, par exemple), puis de lancer l'application.

vendredi 7 octobre 2011

Attaque juridique sur la tz database et ses conséquences pour le monde entier

Qu’est-ce qui s’est passé ?

Ce 30 septembre 2011 s’est produit un événement rare, d’une ampleur catastrophique pour le monde entier. Et personne ne l’a su, en dehors d’informaticiens spécialisés (administrateurs systèmes, gestionnaires de distribution de logiciels, etc.) et compétents[1].

La législation sur la propriété intellectuelle a failli déstructurer non seulement internet, mais aussi la quasi totalité des ordinateurs du monde entier. Je n’ai pas l’habitude des exagérations inutiles, donc moi-même je me surprend à écrire des choses pareilles. Et pourtant, c’est vrai.

La société américaine Astrolabe qui publie des ouvrages d'astrologie et des atlas a abusé utilisé le droit américain sur la propriété intellectuelle pour mettre hors-ligne et faire cesser l’activité autour de la tz database. Cela ne vous parle absolument pas, et c’est normal : il s’agit d’une partie de l’informatique très précise qui ne concerne pas directement les utilisateurs finaux.

La tz database ?

La tz database est un ensemble d'informations techniques sur les fuseaux horaires dans le monde. Ces informations sont utilisées partout en informatique : Détail d'horloge murale

  • Chaque fois que vous indiquez la ville où vous vous trouvez, par exemple, Europe/Paris, vous utilisez la tz database.
  • Chaque fois qu'un de vos appareils se met à l'heure automatiquement, par exemple votre magnétoscope, vous utilisez la tz database.
  • Chaque fois que vous consultez un site web votre ordinateur et celui en face se réfèrent à la tz database.
  • Chaque fois que vous notez un rendez-vous dans votre agenda électronique, vous utilisez la tz database.
  • Chaque fois que vous dépendez d'un appareil médical qui permet de vous maintenir en vie, vous pouvez être sur qu'il utilise la tz database.
  • Chaque fois que vous téléphonez, vous utilisez la tz database.
  • Chaque fois que vous prenez l'avion, vous utilisez la tz database.
  • Chaque fois que vous allumez la lumière dans une pièce, vous pouvez être sur que c'est grâce à des ordinateurs qui utilisent la tz database.

La tz database a été mise en place par Arthur Olson en 1986, pour permettre de disposer en un seul d'endroit des informations nécessaires pour gérer la data et l'heure sur les dispositifs informatiques. Avoir une seule source d'information permit à l'époque de factoriser de nombreux efforts éparpillés et de résoudre les problèmes de synchronisation. Ce projet s'est révélé être tellement pratique qu'il a été ensuite utilisé par l'ensemble des équipements qui utilisent de l'informatique; et qui donc s'appuient sur la notion de temps. De nos jours, on retrouve l'utilisation de la tz database dans la quasi totalité des équipements informatiques.

La tz database est gérée dans la grande tradition du libre : ouverture et transparence totale. N'importe qui peut rejoindre le projet, discuter de la structuration des données, participer au travail de collecte et de vérification des informations, réfléchir sur l'évolution de la gestion du temps (année bissextile, ajout et retrait de seconde pour compenser la rotation de la Terre, etc). Il est donc aisé pour n'importe quelle personne de contrôler la qualité du travail accompli et de le réutiliser.

Par une de ces bizarreries dont l'histoire a le secret, la tz database est hébergée par le NIH, ce qui convient très bien. De plus, elle est libre de toute contrainte politique et ne dépend d'aucun organisme. Ce qui correspond parfaitement aux besoins [2].

La bonne gestion de la tz database est importante car chaque année plusieurs dizaines de modifications y sont apportées : des pays sont créés et supprimés, des décisions politiques sont mises en œuvre pour limiter la consommation d'énergie (horaire été/hiver), des zones géographiques sont réaménagées, des tremblements de terre affectent la rotation de la planète, etc.

Conséquences de l'attaque juridique sur la tz database

La tz database est alimentée par des informations publiques : des lois sont votées, des arrêtés sont pris, des calculs scientifiques sont publiés… Son contenu n'est donc pas soumis à de quelconques règles d'exclusivité. En fait, c'est même l'inverse : ces informations doivent absolument être diffusées. Et au niveau international, la question politique du temps est plutôt bien gérée. Bref, rien à signaler.

Tout le monde (ou presque) dépend des informations de cette base de données. L'armée, la police, les secours aux personnes, la médecine, les transports, les entreprises, les particuliers… il n'y a aucun domaine couvert par l'informatique qui ne soit pas concerné. Et donc, la législation sur la propriété intellectuelle a failli supprimer et bloquer tout usage ultérieur de ces informations. Vous réalisez maintenant ce qui a affolé les informaticiens ?

kilo-étalon

Supprimer cette base de données équivaut à supprimer le kilo-étalon du Bureau international des poids et mesures et à interdire l'usage de sa dimension. Il n'y aurait alors plus de référence pour calibrer les machines-outils, et les conséquences seraient aussi dramatiques qu'immédiates dans tous les secteurs. Il se passe actuellement une chose similaire au niveau du temps : sa référence (ou plus précisément la grille qui permet de l'interpréter) est supprimée.

Naturellement, les informaticiens ont mis en place des procédures temporaires pour préserver le temps[3] et réfléchissent à une réorganisation de la gestion du projet pour que cela ne soit pas reproductible. Mais le problème initial demeure, à savoir que de plus en plus des actes juridiques aberrants attentent non seulement aux libertés fondamentales, mais mettent aussi en danger notre vie quotidienne.

Que des avocats agissant au nom d'une société aient pu mettre à genoux le temps, simplement en ayant une mauvaise connaissance du sujet qu'ils traitent et en abusant d'une législation créé pour protéger la rente culturelle des grands groupes internationaux, est inacceptable.

Solution(s)

Une solution serait de faire avancer les réformes sur le droit d'auteur, la protection des œuvres, et de poursuivre la législation sur les droits et devoir des hébergeurs internet afin que cette situation ne puisse pas se reproduire. C'est le but des lois DADVSI, HADOPI et LCEN. Malheureusement cette approche est vouée à l'échec, de part la nature de la technique du numérique et de celle du travail législatif. Il va vraiment falloir que le législateur accepte le fait qu'il ne peut pas simplement « réguler internet ».

Plus prosaïquement, une solution pratique serait de supprimer la propriété intellectuelle sur les œuvres de l'esprit, les logiciels, et les brevets. Pan. Ah oui, c'est vrai : cela ne plairait pas à Vivendi Universal. Donc à la place on préfère conserver une loi qui permet de casser tous les appareils informatiques avec une simple lettre de 5 pages envoyée de l'autre côté de l'océan par une personne sur laquelle on n'a aucun contrôle.

Notes

[1] Si vous êtes directement concerné et que vous n'êtes pas au courant de cette histoire, posez-vous sérieusement la question de votre qualification… vraiment.

[2] Imaginez que vos dispositifs informatiques dépendent du bon vouloir politique d'un pays tiers ; vous apprécieriez ? Je ne pense pas ; donc c'est très bien que la politique reste en dehors du projet.

[3] Ah, l'informaticien, ce héros des temps modernes. Il passe sa vie à Sauver le Monde, et le grand public ne le sait jamais.

lundi 1 août 2011

Opération frauduleuse sur compte bancaire, le retour

Depuis la nuit de vendredi à samedi, pour la seconde fois et de la même façon que la précédente, j’ai constaté des opérations frauduleuses sur mon compte bancaire. Il s’agit de cinq opérations par carte bancaire pour 2407,1€ chez différents marchands[1]. Je réutilise donc ma documentation qui avait bien fonctionné.

Carte bleue punie

Je me rend au commissariat de police pour porter plaine. Le jeune agent qui me reçoit m’écoute : je ne sais pas ce qui s'est passé, ni comment ça a été fait; je constate juste un usage frauduleux de mon compte bancaire. Et bien sûr je fais un usage responsable de mes cartes bancaires : Je les surveille « normalement » quand je paie en boutique, je vérifie le SSL pour les transactions en ligne, etc.

L’agent rédige une main courante, dont je récupère juste le récépissé sans en avoir une copie. Également, cette fois-ci je ne signe aucun papier. La procédure aurait-elle changé ?

En revanche, pas moyen de joindre ma banque — la Banque Postale — sur un numéro non surtaxé. Nous sommes samedi donc les centres financiers sont fermés, et la ligne d’appel en cas de problème me laisse en attente. Ce n’est pas sérieux. J'ai donc du attendre lundi matin pour compléter la procédure.

La Banque Postale propose un service de e-carte bleue qu'elle facture 12,50€/an. Vu qu'en 18 mois 2803,73€ ont été dérobés de mon compte bancaire, il serait beaucoup plus rentable pour elle de me proposer gratuitement ce produit plutôt que de vouloir absolument me le faire payer. Ceci dit, comme elle est responsable de mon argent, les frais liés à sa sécurité ne regardent qu'elle (à condition de ne pas augmenter mes cotisations trimestrielles).

En attendant, je m’apprête à recevoir ma nouvelle carte bancaire, et je ne change rien à mes habitudes.

Note

[1] dont un français; fois précédente c'était pour une entreprise de juridiction US; là c'est en France donc on verra si ça change :)

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.

vendredi 14 mai 2010

Utiliser Steam sur MacOS avec un système de fichiers sensible à la casse

Tout joyeux, vous avez téléchargé la version MacOS de Steam pour profiter gratuitement de Portal. Vous avez bien raison, c'est un excellent jeu. Mais une fois lancé, Steam s'arrête en affichant le message suivant :

Steam requieres that /Users/USER/Téléchargements/Steam.app/Contents/MacOS be created on a case insensitive filesystem, with read-write access.

Le problème : pour être installé sur MacOS, Steam exige un système de fichiers insensible à la casse. Et ce aussi bien pour l'application elle-même que ses données (~/Library/Application\ Support/Steam et ~/Documents/Steam\ Content).

La solution : utiliser la technique habituelle, à savoir passer par une image disque pour regrouper les fichiers sur un volume personnalisé.

Ouvrir un terminal

Nous allons travailler principalement en ligne de commande. Eh, jouer se mérite un peu ;) On pourrait faire la même chose en utilisant des outils graphiques, mais cela serait plus long à expliquer.

Créer l'image disque qui accueillera Steam

L'image disque peut être rangée n'importe où : /Applications, $HOME, etc. Nous la mettrons dans $HOME/Applications

$ mkdir -p ~/Applications
$ cd ~/Applications
$ hdiutil create -size 50g -type SPARSEBUNDLE -fs HFS+J -volname Steam Steam
created: /Users/USER/Applications/Steam.sparsebundle

Pour d'informations, on se tournera vers le billet sur la manipulation des images disques.

Mettre en place l'application Steam

Ouvrir notre image disque pour Steam et y copier l'application Steam fournie par Valve.

$ hdiutil attach Steam.sparsebundle
/dev/disk4          	GUID_partition_scheme          	
/dev/disk4s1        	EFI                            	
/dev/disk4s2        	Apple_HFS                      	/Volumes/Steam

On constate ici que notre image disque a été montée dans /Volumes/Steam; elle apparait d'ailleurs sur le bureau. Il suffit maintenant de copier l'application Steam de Valve dans cette image disque.

Adapter le compte utilisateur pour faire fonctionner Steam

Le principe est de stocker dans notre image disque tout ce qui a trait à Steam, et d'utiliser des liens pour maintenir les chemins d'accès.

$ mkdir /Volumes/Steam/Application\ Support
$ mkdir /Volumes/Steam/Steam\ Content

$ ln -s /Volumes/Steam/Application\ Support ~/Library/Application\ Support/Steam
$ ln -s /Volumes/Steam/Steam\ Content ~/Documents/Steam\ Content

Il ne reste plus qu'à synchroniser le tout et à refermer.

$ sync
$ hdiutil detach /Volumes/Steam
"disk4" unmounted.
"disk4" ejected.

Jouer !

Pour utiliser Steam, il suffit de monter l'image disque (en double cliquant dessus, par exemple), puis de lancer l'application.

jeudi 22 avril 2010

Censure de la recherche et du Libre par l'INPI

Isabelle Vodjdani, enseignante-chercheuse, a participé à la conception d'une exposition sur la contrefaçon; sa contribution était sous la forme d'une présentation du Libre. Mais l'INPI l'a censurée. Je reprends ci-dessous sa contribution à l'exposition.

« Une exposition aux intentions pédagogiques sur la Propriété Intellectuelle, décrit toutes les formes de contrefaçon mais censure les informations se rapportant aux pratiques licites du Libre et de l’Open-Source. Si on avait voulu faire l’apologie des pratiques illicites on ne s’y serait pas mieux pris ! »

Texte sous Licence Art Libre

Le libre, un phénomène en expansion

Dans le cadre du droit d’auteur qui protège les créations littéraires et artistiques, un nombre croissant d’auteurs choisissent de mettre leurs œuvres à la disposition du public avec un type de contrats bien spécifiques qu’on appelle des licences libres. Ces licences autorisent quiconque à diffuser des copies de l’œuvre. Elles l’autorisent également à publier sous sa propre responsabilité d’auteur des versions modifiées de l’œuvre. Ces autorisations sont assorties de deux conditions :

  • Premièrement, il faut mentionner l’auteur de l’œuvre initiale et donner accès à ses sources
  • Deuxièmement, les copies ou versions modifiées de l’œuvre doivent être publiées avec les mêmes autorisations.

Les œuvres libres sont nécessairement divulguées avec une licence qui garantit ces conditions. Parmi ces licences, on peut citer la GNU GPL, pour les logiciels, et la Licence Art Libre, pour les œuvres culturelles. Le domaine des œuvres libres n’est donc ni une zone de non droit ni assimilable au gratuit. D’ailleurs les anglo-saxons associent le mot français « libre » au mot « free » pour écarter toute confusion, car il y a des œuvres gratuites qui ne sont pas du tout libres, et il y a des œuvres libres payantes.

On parle aussi du « monde du libre » pour désigner l’ensemble des acteurs qui participent à la promotion et au développement du domaine du libre. Ce mouvement s’inspire des usages qui régissent la circulation des connaissances dans les milieux académiques. Mais depuis 1983, ce sont les développeurs de logiciels qui sont à l’avant-garde de ce mouvement et de sa formalisation juridique, car dans ce secteur d’activité la nécessité d’innovation est constante et les utilisateurs ont tout intérêt à mettre la main à l’ouvrage pour améliorer les défauts d’un logiciel ou l’adapter à leurs besoins. Ainsi, ils deviennent à leur tour auteurs.

Ce modèle de développement correspond aux aspirations d’une société démocratique composée de citoyens qui apportent une contribution constructive à la vie publique et ne se contentent pas d’être seulement gouvernés. L’intérêt que suscite le Libre est donc d’abord d’ordre politique. Cet intérêt est exacerbé par le fait que les législations de plus en plus restrictives sur le droit d’auteur évoluent à contresens de l’intérêt du public et deviennent des freins pour la création. Dans ce contexte, les licences libres apparaissent comme une issue légale et pragmatique pour constituer un domaine dans lequel les obstacles à la diffusion et à la réutilisation créative des œuvres sont levés.

Dans le domaine de la création artistique et de la publication scientifique, le modèle du libre correspond aussi à une réalité sociale. C’est l’émergence d’une société d’amateurs qui, à la faveur d’un meilleur accès à l’éducation, au temps libre, aux moyens de production et de communication, s’invitent sur la scène en bousculant parfois les positions établies. Ces amateurs sont les vecteurs, les acteurs et les transformateurs de la culture, ils en sont le corps vivant ; sans eux les œuvres resteraient « lettre morte ».

Depuis le 19ème siècle, avec la création des musées et la naissance du droit d’auteur, notre culture a privilégié les moyens de la conservation pour assurer la pérennité des œuvres. Aujourd’hui, les supports numériques et internet sont en train de devenir les principaux moyens de diffusion des œuvres. Certes, internet est un puissant moyen de communication, mais il n’a pas encore fait ses preuves en tant que moyen de conservation. Ce qui se profile avec le modèle du libre, c’est que parallèlement aux efforts de conservation dont le principe n’est pas remis en cause, une autre forme de pérennisation retrouve sa place dans notre culture ; il s’agit de la transmission, qui fonde aussi la tradition. Or, l’acte de transmission passe par un processus d’appropriation (on ne peut transmettre que ce qu’on a déjà acquis ou assimilé), et cela implique des transformations qui font évoluer les œuvres. C’est la condition d’une culture vivante, une culture portée par des acteurs plutôt que supportée par des sujets.

dimanche 17 janvier 2010

HOWTO : Que faire en cas d'opération frauduleuse sur son compte bancaire ?

Procédure générale à suivre

La procédure est connue de la police et des banques, il vous suffit de vous laisser guider. Elle se décompose en quatre étapes.

Préparation

Réaliser deux copies de votre relevé bancaire, et mettre en évidence l'opération contestée. Cela vous permettra de montrer rapidement les transactions posant problème.

Banque

Préparer :

  • votre carte d'identité
  • le numéro de compte concerné
  • votre carte bancaire associée au compte
  • une copie du relevé bancaire

Une fois les informations rassemblées, il faut prendre contact avec sa banque pour les informer de la situation et déclencher une procédure adaptée. Votre banque vous informe alors sur les démarches à effectuer de votre côté, et vous accompagne tout du long. Il est bien important de confirmer que vous êtes toujours en possession de votre carte bancaire car cela vous dégage de votre responsabilité pour vol ou perte, et la rendre à votre banque.

Au niveau de la banque, la démarche est de remplir un formulaire de contestation d'opération.

Récupérer :

  • le formulaire rempli de contestation d'opération

Police

Préparer :

  • votre carte d'identité
  • le numéro de compte concerné
  • une copie de relevé bancaire
  • le formulaire de contestation de la banque

Porter maintenant plainte auprès du commissariat de police. Lors de la déposition, s'en tenir uniquement aux faits. Vous n'êtes pas là pour « supposer que » ou » imaginer que », mais pour décrire ce que vous constatez : c'est à dire une opération sur votre relevé bancaire :

  • dont vous n'êtes pas à l'origine;
  • que vous ne comprenez pas;
  • que vous contestez.

Votre déposition, que vous signez, doit comprendre au minimum ces informations :

  • votre nom
  • le numéro de compte concerné
  • la date de l'opération contestée
  • le montant de l'opération contestée

Déclaration de main courante :
Déclaration de main courante

Récépissé de déclaration de main courante
Récépissé de déclaration de main courante

Récupérer :

  • la déclaration de plainte
  • le récépissé de dépôt de plainte

Banque

Préparer :

  • la déclaration de plainte

Transmettez à votre banque une copie du dépôt de plainte; cela permettra d'appuyer légalement votre démarche, et donc de récupérer votre argent.

Attendre :

  • votre nouvelle carte bancaire
  • la restitution de l'argent manquant sur le compte bancaire

Ce que dit la loi

Pour faire simple, si l'usager n'a pas commit de faute (non-déclaration de perte ou de vol de carte bancaire, de chéquier, par exemple, ou encore diffusion de ses informations confidentielles), alors la banque rembourse tout : argent, frais directs et indirects. Elle dispose pour cela d'un délais de maximum un mois.

mercredi 28 octobre 2009

Classement des auteurs pour un article

Une fois de plus revient ce vieux serpent de mer qu'est la question de l'ordre des auteurs d'un article rédigé à plusieurs mains. On aurait pu croire le problème simple, mais manifestement ce n'est pas le cas (pour tous). Je ne peux pas résister au plaisir de faire un billet rapide sur la question (juste pour vous faire réagir :)

PhDcomics_author_list.gif Illustration tirée de Cham, Jorge : Author List, dans Piled Higher and Deeper, 13/3/2005

Quand il s'agit de déterminer l'ordre des auteurs d'un article, les gens sont capable d'une imagination débordante : simple ou double tris imbriqués selon le poste, l'âge, le domaine ou encore la météo du jour, ou bien par importance de contribution, de besoins administratifs ou encore de positionnement. Chaque fois qu'on pense avoir tout vu, on tombe sur une nouvelle fantaisie.

Au final, si c'est très distrayant à regarder, c'est surtout très casse-pied à démêler. Surtout quand on est face à un discours multiple :

  • d'un côté, il y a (quasi ?) unanimité sur l'absurdité de la bibliométrie telle qu'elle est pratiquée par les agences gouvernementales en charge de la recherche;
  • d'un autre côté, quand on regarde la liste des auteurs d'un article inconnu, on ne peut faire aucune déduction sur l'intention qu'ont eu les auteurs en adoptant un ordre précis. Est-ce que Machin est plus respectable que Truc, ou a encore plus contribué que Bidule ? Impossible à savoir;
  • et bien sur, il y a également l'aspect de déterminer quel ordre va adopter un groupe de personnes quand il s'agira, pour elles, de publier.

La solution est à mes yeux évidente : affirmer ses idées et n'utiliser que l'ordre alphabétique [1], au besoin en mentionnant ce détail pour plus de clarté.

Comme de toute façon personne ne peut en déduire quoi que ce soit, et que tout le monde s'en fout, autant faire simple. Honnêtement, vous faites l'effort de suivre des auteurs pour savoir si leur position dans la liste des rédacteurs de leurs publications augmente ou régresse ? Moi pas.

L'ordre alphabétique est simple, compréhensible par tous, « juste » (quand on connait l'importance de ce critère...) et permet surtout de se débarrasser d'un problème humain empoisonnant.

Note

[1] le choix des méthodes de comparaison est laissé comme amusette à l'intention du lecteur : comment déterminer la précédence entre caractères accentués (é, ê et e, par exemple), ou pire entre caractères non-latin (チ, ϐ, Ж...) ?

lundi 7 septembre 2009

Génération automatique du modèle de trace d'une application instrumentée

Le problème

Maintenir la conception du modèle de trace d'une application de la conception de l'application n'a pour moi pas de sens : on perd du temps à passer de l'un à l'autre, on s'embrouille et c'est une approche préhistorique (ou du moins datant du COBOL :)

On pourrait se dire que disposer d'un modèle de l'application ne présente pas nécessairement un intérêt quand on cherche à obtenir une trace des interactions d'un utilisateur, mais pour moi c'est sauter une étape.

En effet, depuis de nombreux mois plusieurs personnes de l'équipe SILEX travaillent sur des modèles d'interactions. Au delà des problèmes concrets lié à l'expression de modèles conformes au métamodèle, il se pourrait qu'une des choses qui nous freine soit de vouloir réaliser tout de suite un grand pas : on ne sait pas décrire le comportement d'une application, alors qu'on veut décrire le comportement de l'utilisateur dans cette application.

La solution (possible ?)

Plus j'y pense, et plus je me dis que la solution passe peut-être par une génération automatique des modèles de l'application. Le principe serait alors de générer le(s) modèle(s) de l'application à la compilation, sur le même principe que la documentation des API tel javadoc ou doxygen.

On peut songer à quelque chose de similaire au javadoc : avec des marqueurs bien placés dans le code, on génère à la compilation des modèles correspondant à des éléments d'interface.

Du coup, on permet au développeur de structurer les modèles de l'application, tout en permettant à l'utilisateur de concevoir des modèles supplémentaire.

Conceptuellement

idée clé : les API sont un modèle de l'application orienté développeur; le modèle de trace d'interactions est un modèle de l'application orienté utilisateur.

Cette approche serait utilisée, a priori, uniquement pour les applications instrumentées directement dans le code. Éventuellement, peut-être aussi pour les enrichissements d'application à base de plugins, mais il faudrait que j'y réfléchisse.

En pratique

Pour réaliser la génération de modèle d'application, ces questions pratiques se posent : sur quelles fonctions placer les marqueurs de génération d'observés ? Callback/méthode associés aux widgets ? D'une façon générale, très probablement sur les fonctions les plus proches de l'utilisateur, donc au niveau des E/S. L'idée est de ne pas ajouter de code, juste des commentaires contenant les marqueurs.

On commence par définir globalement les propriété communes : références au métamodèle, à l'extension temporelle, etc. On peut songer par exemple à un mécanisme de macro ou de variables (je l'appellerais ici « en-tête 1 »

=define "en-tête 1"
@prefix : <http://liris.cnrs.fr/silex/ns/ktbs/>.
@prefix mod: <>.
@prefix xsd: <TODO> .

<> a :TraceModel ;
	:hasTemporalDomain :seconds .

Puis, dans le code de l'application on insère les marqueurs pour la génération du modèle

/*
 * =include "en-tête 1"
 * =type presseTouche
 * =description "décrit la frappe d'une touche dans la zone de saisie"
 * =string "versionDeWeeChat"
 * =string "monPseudo"
 * =string "nomDuCanal"
 */ 
LaFonctionGérantLesFrappesClavierDeLutilisateur(...) {
	...
}

Et là, c'est le drame car il faut exprimer des choses comme comme le fragment ci-dessous.

>:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;%%%
	xsd:pattern "(#|&)[a-zA-Z0-9]{,63}"
]

Mais l'idée reste la même : pour moi, les informations permettant la génération du modèle doivent être notées sous forme réduite, juste à côté du code, et sans gêner les développeurs.

Le modèle généré :

@prefix : <http://liris.cnrs.fr/silex/ns/ktbs/>.
@prefix mod: <>.
@prefix xsd: <TODO> .

<> a :TraceModel ;
	:hasTemporalDomain :seconds .


mod:presseTouche a :ObserType .


mod:versionDeWeeChat a :Attribute ;
	:aDomain mod:presseTouche ;
	:aRange xsd:string ;
.

mod:monPseudo a :Attribute ;
	:aDomain mod:presseTouche ;
	:aRange xsd:string ;
.

mod:nomDuCanal a :Attribute ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
		owl:onDatatype xsd:string ;
		xsd:pattern "(#|&)[a-zA-Z0-9]{,63}"
	] 
.

mod:nomDuServeur a :Attribute ;
	rdfs:label "Nom du Serveur"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern "(IPv4|IPv6|hostname)"
	]
.

mod:typeDeTampon a :Attribute ;
	rdfs:label "Type de tampon"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern "[0-2]"
	]
.

mod:caractère a :Attribute ;
	rdfs:label "Caractère frappé"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern "(\*?|STRING)"
	]
.

mod:zoneDeSaisieAvantCaractère a :Attribute ;
	rdfs:label "Contenu de la zonne de saisie avant la frappe clavier"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern ".*"
	]
.

mod:zoneDeSaisieAprèsCaractère a :Attribute ;
	rdfs:label "Contenu de la zonne de saisie après la frappe clavier"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern ".*"
	]
.

mod:drapeauAway a :Attribute ;
	rdfs:label "Status de présence"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern "(0|1)"
	] ## ?? vérifier dans la spec de OWL 2
.

mod:contenuDeLaZoneDeSaisie a :Attribute ;
	rdfs:label "Contenu de la zone de saisie"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern ".*"
	]
.

mod:contenuDuMasqueDeCouleurDeLaZoneDeSaisie a :Attribute ;
	rdfs:label "Masque de la zone de saisie"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern ".*"
	]
.

mod:positionDuCurseurDansLaZoneDeSaisie a :Attribute ;
	rdfs:label "Position du curseur dans la zone de saisie"@fr ;
	:aDomain mod:presseTouche ;
	:aRange [ a owl:DatatypeRestriction ;
	owl:onDatatype xsd:string ;
		xsd:pattern "[0-9]*"
	]
.

mercredi 2 septembre 2009

À la recherche du positionnement perdu

Le problème

Pour savoir où l'on va, il est utile de déterminer où l'on est; cela se fait en observant ce qui nous entoure et en dressant des cartes. Avant d'entamer des métaphores, comparaisons et autres analogies géographiques bancales, passons tout de suite à la question essentielle : comment situer mes travaux dans l'existant ? Je touche en effet à beaucoup de domaines, et au final il y a toujours ce risque que je bascule d'un côté, alors que je dois rester en équilibre, quelque part dans tout cela.

J'ai donc sorti ma fidèle table périodique des visualisations, et je me suis mis au travail.

L'évolution des représentations

Trouver la méthode de représentation qui-va-bien n'est en soit pas très compliqué. Avec le temps, on prend ses habitudes, on réutilises ses patrons de schémas et zou; la subtilité réside alors dans l'arrangement esthétique. En effet, la complexité d'un schéma augmentant avec le nombre de ses éléments, le nombre de permutations possibles entre ses éléments croit de même, sinon plus (cette démonstration est laissée comme amusette à l'attention du lecteur :).

Représentation par un diagramme de Venn classique

Point bleu de Google Maps

Puisque j'avais à faire avec une carte montrant les recouvrements entre différents concepts, avec quelque part un point bleu nommé « mon travail est ici », ma première idée a été de faire dans la simplicité en invoquant Venn et son diagramme.

J'ai commencé par représenter les trois domaines initiaux que j'avais identifié dans mon travail de doctorat :

  • l'informatique
  • les sciences cognitives
  • les sciences de l'enseignement

Même si mon sujet de thèse a récemment évolué vers la visualisation interactive de traces d'interactions, les fondamentaux restent les mêmes : la couverture sera juste tirée un peu plus d'un côté au lieu d'un autre.

De ces domaines initiaux, j'en ai tiré des domaines secondaires. Secondaires non pas par l'importance, mais par le fait qu'ils existent grâce à la rencontre des domaines premiers. On pourrait couper les cheveux en quatre et se lancer des briques au visage pour décider si ma vision est bonne ou pas, mais à ce point je m'en moque un peu (la source des schémas est sur le dépôt SVN de l'équipe, vous pouvez les reprendre si vous le souhaitez :)

Finalement, dans tous ces domaines j'ai placé quelques concepts-clés pour préciser les spécificités concernées. Et je me suis placé au milieu.

Positionnement classique

Le résultat est moche (comprendre : pas sexy, banal, évident et à la limite de l'ennuyeux), il faut être honnête. Certes, on voit dans l'ensemble où je veux en venir et comment je surf sur une foultitude de domaines, mais la seule réaction que cela m'évoque (en dehors d'un « c'est moche » dubitatif) est que si le fond a du potentiel, la forme est à revoir.

Représentations par barres

Positionnement par barres

Mon deuxième essai a été d'envisager une approche similaire, mais plus propre. Puisque les patatoïdes de Venn rendaient mal à cause de leurs nombreuses intersections, je me suis dit qu'une approche plus carrée fournirait un résultat plus net. Hop, les traits se raidissent et les angles apparaissent. Malheureusement, je constate immédiatement que cela ne règlera pas le problème des intersections.

Ou alors, il faudrait ajouter une dimension spatiale et faire une schémas en 3D isométrique. On aurait alors une superposition sur l'axe des Y des différents domaines principaux : informatique, science cognitive, etc. Les domaines résultant de croisements (EIAH = informatique + enseignement) étant alors représentés par des volumes de coupe, occupant sur les axes X et Y des espaces de spécialisation.

Jolie idée, pouvant fonctionner. Mais elle implique de dégainer un outil de modelage 3D pour produire un tel schéma, car les outils de diagrammes habituels (comme dia et OmniGraffle (non, Visio®™© n'est pas un bon outil)) ne sont pas adaptés à ce genre de réalisation. Certes, on pourrait y arriver par des losanges et des effets de transparence, mais… non, vraiment non, en fait.

Essayons autre chose.

Représentation par blocs

Décidément, plus je gribouille des trucs sur le tableau et que je joue avec différentes méthodes de représentation, et plus je me dis que les diagrammes de Venn sont probablement l'approche la plus adaptée (je vous fais grâce des étapes intermédiaires, pour la faire courte); mais en laissant tomber quelques aspects formels, pour me simplifier la tâche. Au besoin je reprendrais alors le schémas pour le régulariser.

Positionnement par blocs

Et donc, mes patatoïdes initiaux discutent avec mes barres pour donner des blocs. La nature est parfois étrange, mais le résultat est très intéressant. J'obtiens quelque chose de propre, clair, et surtout immédiatement lisible. L'œil est flatté et le cerveau repus; j'approche de la solution, pas de doute !

Mais non en fait : il me reste un gros problème. Regardez là. Oui, là ! Mon bloc « trace modélisée » en haut à droite, il ne vous choque pas ? Non ? Regardez au centre, le bloc « visualisation interactive de traces d'interactions dans les activités collaboratives synchrones d'apprentissage »; et ouiiii, ils ne se recouvrent pas. Autrement dit, les deux domaines sont complètement disjoints. Et ça, ce n'est Pas Bon car la visualisation de traces est liée à la théorie de la trace. De la même façon, mon bloc « activité collective » est isolé alors qu'il est primordial.

Bon, clairement ça ne fonctionne pas. il faut que je reprenne mon approche.

Représentation par rosace

Voyons voir… Ce qui compte dans le schéma, c'est moi. En effet, ce que je veux représenter, c'est comment MOI je me situe par rapport aux domaines. La première étape consiste donc à me poser (ou plus exactement, mon sujet de thèse) au milieu d'un espace vide pour ensuite positionner le monde autour de moi. Une approche très narcissique, certes, qui a parfaitement fait ses preuves.

Et hop, ensuite je trace un premier patatoïde qui m'englobe. Hum, qui m'englobe partiellement ou complètement ? Partiellement, cela veut dire que je ne touche pas à l'ensemble du domaine; complètement, je couvre tout. Cela demanderait réflexion si le leitmotiv de Yannick ne me revenait pas en tête : « ton travail, c'est tout cela ». Paaaarfait, j'ai ma réponse sans avoir à réfléchir.

Positionnement par rosace

La suite de la conception est mécanique : je prend tous les domaines, premiers et secondaires, pour les mettre au même niveau et je les répartis autour de moi. Copier, coller, changer la rotation, changer la légende, changer la couleur. Hop, ça c'est fait. OoooOoOoooh, ça fait une rosace. Shiny.

J'ajoute un fond pour borner la figure (et du coup me rapprocher du formalisme de Venn en définissant l'univers), et je le dégrade pour faciliter la lecture des textes clairs (sérieusement, les développeurs d'Omnigraffle, il faudrait leur envoyer des fleurs : ce logiciel est tout simplement divin).

J'ajoute enfin quelques concepts-clés, pour donner matière à discussion (ruse : pendant que les gens pinaillent dessus, ils ne parlent pas du reste ;) et je n'oublie pas de bien mettre en avant l'aspect « trace modélisée » de la chose.

Je termine en rédigeant ce billet, et je pars manger.

Et maintenant ?

C'est, ma foi, une fort belle première étape (sisi). Non seulement elle donne un support visuel permettant de discuter, mais aussi de déjà illustrer mon travail. Mais on peut faire mieux, j'en suis sur. On pourrait, par exemple, réfléchir sur :

  • le recentrage d'éléments, ou en mettre certains en valeur. Ainsi, je ne suis pas cogniticien mais informaticien, donc est-ce qu'il ne faudrait pas faire la taille des pétales en fonction de l'importance du domaine dans mes travaux ?
  • la précision de concepts-clés : je peux en ajouter, ou alors en faire passer certains sous forme de pétales s'ils sont suffisamment important;
  • jouer à positionner des choses (travaux, idées, outils, etc) sur la rosace, pour voir si ça tient. Si j'arrive à tout caser dedans, est-ce que cela ne serait pas une forme de validation de ma représentation ?
  • la généricité et la spécialisation : comment réutiliser et décliner ce schéma ? Au vu des travaux que font les membres de l'équipe, comment pourrait-on envisager une harmonisation globale pour avoir des représentations simples des positionnements de SILEX sur des thématiques précises ?

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.

dimanche 21 juin 2009

Vie quotidienne au CNRS : censure des opinions personnelles

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 15 mai 2009

Résoudre les problèmes de son sur Ubuntu, version Jaunty Jackalope

Très simplement, les mêmes causes produisant les mêmes effets, la version Jaunty Jackalope d'Ubuntu souffre de problèmes de son. Comme avec Intreprid Ibex, des logiciels tels que Flash ou Skype restent muets et sourd.

La solution est simple : il suffit d'appliquer la même méthode que pour Intrepid Ibex, à savoir supprimer PulseAudio.

mercredi 25 mars 2009

Vie quotidienne au CNRS : la rationalisation du téléphone

Les membres du LIRIS, personnels titulaires et non-permanents, ont reçu le message suivant du directeur de laboratoire.

Bonjour,

Afin d'harmoniser les pratiques sur chacun de nos sites en matière de communication téléphonique, nous avons fixé quelques règles de bon sens :

Professeurs et HdR : ligne internationale jour et nuit

MCF : ligne nationale + portable jour

PR invité : ligne nationale + portable jour

Administratif/techniques : ligne nationale + portable jour

Post Doc/Doc : ligne nationale jour

Stagiaires : ligne régionale jour

Fax : ligne internationale jour et nuit

J'invite les responsables site (Saïd, Serge et Liming) à faire un état des lieux et de converger vers cette utilisation.

merci

Étant doctorant au LIRIS, cette nouvelle politique me concerne directement.

Le problème principal est que, de nos jours, tout le monde a des portables. Ne pas pouvoir composer de 06* signifie ne plus pouvoir joindre les collègues en déplacement ou communiquer avec les personnes en dehors du LIRIS.

Accéder aux numéros en 09* est aussi critique pour les téléphones VoIP (genre Freebox, PBX d'entreprise, etc).

Rationaliser l'accès aux ressources part d'une bonne idée, mais si pour passer un coup de fil il faut remplir un formulaire, cela ne va pas améliorer les conditions de travail et la productivité générale.

Pour améliorer le fonctionnement du LIRIS, il faudrait peut-être plutôt commencer par faciliter la vie des personnes, et non pas poser davantage de restrictions. Il y a plein de petites améliorations simples à apporter au quotidien et qui rendrait vraiment service.

Par exemple, améliorer le système de sauvegarde pour automatiser la conservation des données des ordinateurs portables (actuellement, c'est à faire manuellement), ou encore déployer un outil permettant simplement de créer et de gérer des listes de diffusion internes au laboratoire afin de faciliter la communication.

mardi 3 mars 2009

Vie quotidienne au CNRS : l'achat d'une webcam

Contexte

Au moment où je commence la rédaction de ce billet (début mars 2009), le CNRS et les universités sont en lutte contre les réformes universitaires imposées par le gouvernement.

Mais en parallèle, la vie quotidienne se poursuit, avec son ensemble de petits tracas. Un exemple concret des problèmes qui encombrent la recherche publique est l'achat de petit matériel. Dans mon cas, il s'agit d'une webcam, la Logitech QuickCam Communicate Deluxe, disponible chez LDLC à 39,90€.

Il se trouve que mon équipe de recherche, SILEX a besoin d'une webcam pour réaliser des expérimentations et des visioconférences. Sans être extraordinaire, cette webcam a besoin d'avoir des caractéristiques précises : compatibilité avec nos systèmes existants, capacités techniques, etc.

Notre choix s'est porté sur cette QuickCam qui équipe bon nombre de foyers français, et qui est disponible un peu partout. Sauf pour le CNRS, qui doit suivre des procédures d'achats particulières : le Marché public (brrr).

Voici donc comment se passe concrètement de nos jours l'achat d'une webcam au CNRS. Et après on s'étonne que la recherche publique va mal…

Fin novembre 2008

Fin novembre 2008, la décision est prise de réaliser l'achat. Muni de l'autorisation officielle de mon supérieur hiérarchique (un courriel), je discute donc avec la secrétaire du laboratoire afin de faire une demande d'achat pour l'équipe.

La démarche est très simple, je n'ai qu'à donner la référence du produit (avec en plus dans mon cas le lien vers la fiche de LDLC) et le secrétariat s'occupe du reste.

Sauf que… plus possible de faire d'achats, le budget annuel est bouclé : il faut attendre mi-janvier 2009 que le nouveau budget soit ouvert et que les vacances soient terminées. Soit.

Mi-janvier 2009

Je réactive la demande d'achat; mais la réponse arrive très rapidement : impossible de commander la webcam. Il faut obligatoirement passer par le marché pour réaliser cet achat, catégorisé par le CNRS dans les « consommables ». Il faut donc faire notre choix dans le catalogue proposé par l'entreprise ayant remporté ce marché.

Mais ce catalogue n'a qu'une seule webcam en référence, qui :

  1. ne correspond pas du tout à nos besoins;
  2. est plus chère de 15% que le prix constaté dans le commerce.

Il nous faut donc trouver une solution. Nous décidons de négocier directement (comprendre, « par email et par fax ») avec l'entreprise ayant remporté le marché sur cette catégorie, afin qu'elle nous propose un produit, à un prix acceptable, qui corresponde à nos besoins. Je ne suis pas sûr que cette démarche soit conforme aux procédures, mais les autres alternatives ne sont pas envisageables :

  • lancer une procédure de demande d'achat hors-marché : c'est long, très long, car ça passe par différentes commissions pour être validé et n'a aucune garanti d'être accepté;
  • réaliser l'achat sur mon salaire, et faire une demande de remboursement : ce qui veut dire ne pas avoir de certitude sur le fait d'être remboursé (car la procédure n'a pas été suivie), et que de toute façon les délais seront astronomiques (environ 6 mois).

L'entreprise répond qu'elle va établir un devis pour nous le soumettre. Entre-temps, la secrétaire fait remonter à l'administration (laquelle ? Je ne sais pas) les prix anormalement élevés du marché (qui a choisi ce fournisseur ? je l'ignore).

Début mars 2009

Rien. Pas de nouvelles précises si ce n'est que « les démarches sont en cours ». Cela fait désormais un peu plus de trois mois que j'ai demandé une webcam à 39€ pour travailler, et je n'ai toujours rien.

Mi-mars 2009

La webcam est arrivée au secrétariat du laboratoire. Il aura en tout fallu 3 mois et demi, ainsi que de nombreux échanges par email, fax et téléphone pour obtenir une webcam grand public achetable partout en France et sur internet.

Conclusion ?

D'un point de vue très concret, une des améliorations simples envisageables pour faciliter la recherche en France serait de simplifier les procédures administratives. Le principe des marchés publics avait à l'origine comme but de favoriser la baisse des prix via des achats de masse, et d'éviter les abus de favoritisme. Mais de nos jours, ce mécanisme des marchés publics bride le travail au quotidien.

Ainsi, le nouveau système mis en place pour les missions impose de déclarer au minimum 7 jours à l'avance les achats de billets de train. Il devient alors très difficile (et long) de se faire rembourser des déplacements impromptus mais tout à fait légitimes.

Parmi toutes les réformes de la recherche publique, il ne faudrait pas oublier celle-ci : simplifier les achats de petits matériels.
 

jeudi 15 janvier 2009

Résoudre les problèmes de son sur Ubuntu, version Intrepid Ibex

Historiquement, la gestion du son avec GNU/linux a souvent été une bataille pour l'utilisateur. Même si Ubuntu prend soin d'éviter de retomber dans les guerres de tranchées historiques, il n'en reste pas moins que les problèmes continuent d'exister.

Ubuntu a fait le choix de s'appuyer sur PulseAudio pour présenter à l'utilisateur la gestion du son. Pour faire simple, même si PulseAudio peut travailler de façon autonome le plus souvent il se comporte comme une surcouche à ALSA et à OSS, avec quelques fonctionnalités spécifiques supplémentaires.

Pour l'utilisateur, la principale différence avec OSS et ALSA est l'intégration de PulseAudio dans l'environnement du bureau : applet de gestion, vuemètres des entrées-sorties, panneau de préférences accessibles, etc. Rien de bien indispensable, mais qui donne une vision simple et pratique du réglage et de l'utilisation du son sur l'ordinateur.

Mais le problème est que PulseAudio ne peut pas être utilisé directement par les logiciels audio, ils doivent être programmés en conséquence. Et c'est alors que se pose le problème du point de vue technique, car de nombreux outils et services, anciens et répandus, travaillent différemment sur les niveaux de la pile des services audio. Des passerelles existent pour faire cohabiter et communiquer les logiciels entre-eux, mais le résultat n'est pas satisfaisant pour l'utilisateur final qui doit jongler entre plusieurs technologies.

Quelles sont pour l'utilisateur grand public les conséquences de l'utilisation de PulseAudio ? Principalement, il n'est pas assuré de parvenir à faire fonctionner un logiciel. Ainsi, Skype est réputé pour ses problèmes d'utilisation dans Ubuntu à cause des mixeurs; FlashPlayer nécessite l'installation de bibliothèques particulières pour accéder à PulseAudio; et c'est sans parler des logiciels comme RecordMyDesktop qui réalisent des captures de session.

Une solution simple à ces problèmes est de supprimer PulseAudio du système, afin de basculer complètement sur ALSA. Cela implique de quitter les technologies préconisées par Ubuntu pour s'occuper nous-mêmes de la chaîne audio. Il s'agit naturellement d'une manipulation entièrement réversible.

La première étape consiste à supprimer les paquets de PulseAudio :

apt-get --purge remove pulseaudio* libpulse*

On constate que la dépendance sur le paquet ubuntu-desktop va intervenir et nous obliger à retirer ce paquet. Aucun souci ici, il suffira de le remettre en place avant la prochaine mise à jour du système vers Jaunty Jackalope. Ensuite, nous installons des outils pour gérer ALSA, qui vont nous amener également par le jeu des dépendances les bibliothèques nécessaires (qui sont normalement déjà présentes sur le système) :

apt-get install alsa-utils gstreamer0.10-alsa

Il ne reste qu'à redémarrer la machine pour nettoyer les services. Le résultat est que Skype, FlashPlayer et d'une façon générales toutes les applications utilisant l'audio fonctionnent correctement, sans réglage particulier. Mais on a perdu au passage les jolis vuemètres de PulseAudio.

On pourra affiner le réglage des entrées-sorties audio par les outils alsamixer et gnome-sound-properties.