juin 2009 (8)

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 19 juin 2009

Outil de partage pour les supports visuels de présentation

SlideShare est un outil web de partage de support visuel de présentation (SVP).

Il permet simplement de mettre en ligne ses SVP afin de les diffuser. Mais il apporte en plus des fonctionnalités intéressantes, comme :

  • la notion de groupe, pour rassembler les membres d'une équipe
  • la définition d'une licence pour l'exploitation des contenus
  • des outils à la YouTube pour intégrer les SVP dans une page web
  • un système de commentaire pour obtenir des retours sur ses œuvres
  • des fonctionnalités d'exportation et de téléchargement
  • des fonctionnalités d'enrichissement possible par piste audio
  • le suivi de personnes et d'œuvres intéressantes
  • etc.

Bref, yabon. Fini de s'embêter avec le FTP, la construction (et maintenance !) de page d'index rassemblant le matériel... 3 clics et c'est fait.

En revanche, il ne faut pas oublier qu'un SVP n'est pas un document qui se suffit à lui-même. En effet, comme son nom l'indique c'est bien un support et non pas une ressource autoportée. J'en parle un peu ici.

Pour vous donner une idée de ce qu'il est possible de faire, voici une collection de mes SVP. Sexy, non ?

mercredi 17 juin 2009

Collection d'extensions pour Firefox ayant pour but de renforcer sa vie privée sur le web

La fondation Mozilla propose désormais aux utilisateurs de créer, partager et de collaborer sur des « collections ». Une collection est un ensemble d'extensions, de thèmes et de greffons qui étendent les fonctionnalités d'un logiciel; dans notre cas, il s'agit du navigateur web Firefox mais cela concerne également Thunderbird.

Pour utiliser les collections, il est au préalable nécessaire d'équiper Firefox de l'extension Add-on Collector.

La collection « Protection Vie Privée »

J'ai créé une collection dédiée à la protection de la vie privée sur le web, qui contient les extensions suivantes :

  1. Get jetable mail : Permet de générer à la volée des alias mail qui expirent automatiquement.
  2. CustomizeGoogle : Permet de filtrer les publicités et cookies de Google.
  3. Torbutton : Permet de basculer simplement sur TOR+privoxy durant la navigation web. Aide à la configuration de Firefox pour une navigation protégée.
  4. BetterPrivacy : Permet la gestion des cookies de Flash, autrement inaccessibles.
  5. Adblock Plus : Permet de filtrer les publicités, soit directement, soit en s'abonnant à des listes de règles prédéfinies.
  6. Adblock Plus: Element Hiding Helper : Permet d'ajouter simplement des filtres à la liste d'Adblock Plus, en créant des règles optimisées.
  7. BugMeNot : Permet la navigation anonyme sur des sites demandant une identification.
  8. FoxyProxy : Permet de passer automatiquement par des proxies prédéfinis par listes ou motifs lors de la navigation web.
  9. User Agent Switcher : Permet de changer à la volée l'identification de votre navigateur web.

Le but de cette collection « Protection Vie Privée » est d'apporter à l'utilisateur un ensemble cohérent d'outils, simples à utiliser, qui lui permettrons de protéger sa vie privée durant son utilisation du web : filtrage des cookies insidieux, des publicités envahissantes (et traçant les profils), gestion automatique des proxies, email jetable contre le SPAM, etc.

Un avantage secondaire des collections est la simplicité pour déployer des configurations standards: en installant une collection contenant les extensions à utiliser, on diminue le nombre de manipulations à faire, et la mise à jour de chaque élément est automatisée via l'administrateur de la collection qui décide quelle version employer.

Je discute avec des utilisateurs a priori avancés dans l'utilisation du web sur les forums Ubuntu-fr afin d'obtenir des retours sur cette collection orientée grand public.

Retours sur la collection « Protection Vie Privée »

La principale remarque est l'absence de l'extension NoScript.

C'est une remarque intéressante, qui s'inscrit dans un contexte plus large. Il y a plusieurs discussions sérieuses sur la pertinence ou non de mettre l'utilisateur grand public sur un Firefox avec NoScript. Cela va plus loin que le simple fait de « bloquer la publicité » ou de « protéger l'utilisateur ». J'expose ici simplement les 4 arguments majeurs qui soutiennent que NoScript n'est pas adapté au grand public :

  1. Impact d'usage. L'extension a un impact très fort sur le web. Énormément de sites populaires s'appuient sur des scripts pour construire leurs interfaces dynamiques. Bloquer ces scripts revient alors à fortement dégrader l'expérience de l'utilisateur sur ce genre de site;
  2. Utilisation contraignante. Il faut identifier puis catégoriser les sites web et les scripts qu'ils comportent. C'est un processus long, complexe et agaçant pour l'utilisateur qui est engagé dans une simple démarche d'utilisation;
  3. Efficacité contestée. Le renforcement de la sécurité est fortement contestable, car sans démarche active il est difficile de proposer une couverture fiable des techniques d'attaque. À moins de désactiver entièrement les scripts, mais là on retombe sur le point 1;
  4. Fonctionnalités déjà disponibles. Adblock Plus permet le blocage des scripts externes (et aussi internes, mais moins facilement) aux pages. Via les listes d'inscription, un filtrage des scripts publicitaires est déjà mis en place pour l'utilisateur.

Bonus : la collection « Utilisation courante du web »

J'ai également créé une collection Utilisation courante du web qui apporte un ensemble d'extensions utiles au quotidien pour la navigation web. On peut considérer cette collection comme un « kit de base » permettant une utilisation confortable du web.

lundi 15 juin 2009

Vie quotidienne au CNRS : recrutement sauvage et paupérisation des informaticiens

Des listes de diffusion sur la recherche informatique en France diffusent régulièrement des annonces de recrutement. Il s'agit la plupart du temps d'offres de stage, de post-doc ou encore d'assistant de recherche; mais on y trouve aussi parfois des offres pour ingénieurs.

Celle-ci a attiré mon attention :

Offre d’emploi
Docteur / ingénieur
IA – jeux vidéo - middleware
...
Candidat idéal
Profil : docteur en IA + ingénieur informatique
Spécialité : programmation (C++) - intelligence artificielle (agents autonomes, vie artificielle, apprentissage, évolution)
Expérience :
- Développement de jeux vidéo
- Intelligence artificielle
- Développement de middleware
...
Embauche
Salaire : Le salaire brut prévu pour cette mission sera de l’ordre 2000 € / mois.

Je ne vous cache pas que c'est très en dessous des prix du marché pour recruter un docteur :

  • qui soit également ingénieur
  • polyvalent (IA, web, développement, middleware...)
  • sur des domaines pointus
  • avec de l'expérience
  • pour une mission courte
  • sans avantages particuliers

On peut donc envisager plusieurs possibilités :

  • le marché de l'emploi sur ces domaines est vraiment encombré, au point de faire chuter de façon vertigineuses les salaires. Ce n'est pas le cas.
  • l'entreprise espère, sur un malentendu, parvenir à trouver la perle rare. Pourquoi pas.
  • l'entreprise n'a aucune notion du salaire en adéquation avec un tel profil. Là, c'est plus inquiétant car cela soulève des interrogations sur la gestion de cette entreprise.

Personnellement, sur ce profil je ne demanderais pas moins de 40k€ net par an, avec avantages (PERCO, 13e mois, congés, frais, etc).

vendredi 12 juin 2009

HADOPI, c'est fini

Étant donné que :

12. Considérant qu'aux termes de l'article 11 de la Déclaration des droits de l'homme et du citoyen de 1789 : " La libre communication des pensées et des opinions est un des droits les plus précieux de l'homme : tout citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l'abus de cette liberté dans les cas déterminés par la loi " ; qu'en l'état actuel des moyens de communication et eu égard au développement généralisé des services de communication au public en ligne ainsi qu'à l'importance prise par ces services pour la participation à la vie démocratique et l'expression des idées et des opinions, ce droit implique la liberté d'accéder à ces services ;

17. Considérant, en outre, qu'en vertu de l'article 9 de la Déclaration de 1789, tout homme est présumé innocent jusqu'à ce qu'il ait été déclaré coupable ; qu'il en résulte qu'en principe le législateur ne saurait instituer de présomption de culpabilité en matière répressive ; que, toutefois, à titre exceptionnel, de telles présomptions peuvent être établies, notamment en matière contraventionnelle, dès lors qu'elles ne revêtent pas de caractère irréfragable, qu'est assuré le respect des droits de la défense et que les faits induisent raisonnablement la vraisemblance de l'imputabilité ;

Décision n° 2009-580 DC du 10 juin 2009

Je ne vois rien à ajouter.

mercredi 10 juin 2009

Appel à commentaires sur les modèles de trace

Avant propos

Il y a deux abréviations à connaitre.

i18n (internationalization) internationalisation

Les adaptations à faire sur les formats de données, selon les pays. Par exemple, comment on exprime une date (JJ/MM/AA, MM/DD/AA, etc), une monnaie ($123, 123€), un nombre (123.456 ou 123,456), etc. C'est un travail technique qui demande à faire abstraction du contenu pour en décrire sa structure.

CF l18n

l10n (localization) régionalisation

Il s'agit de la traduction à proprement parler.

WP :

La régionalisation de logiciel concerne le processus de traduction de l'interface utilisateur d'un logiciel d'une langue vers une autre et en l'adaptant à la culture locale. On utilise parfois le terme localisation, qui est une transposition du mot anglais localization (faux ami). On écrit parfois l10n car le mot localization est composé de dix lettres encadrées par un l et un n.

Avant qu'un logiciel ne soit régionalisé, il faut au préalable qu'il ait été internationalisé, c’est-à-dire qu'il ait été écrit pour pouvoir être traduit dans différentes langues et cultures.

CF l10n

Discussion sur les modèles

Pour construire l'interface de l'outil générique de visualisation interactive de trace (OGVIT), il faut que chaque attribut ait un nom compréhensible pour l'utilisateur. Ce qui veut dire qu'au couple attribut+valeur (par exemple, ktbs:hasTime et 1244638257), il faut ajouter un 3e élément qui est le « nom humain » (mercredi 10 juin 2009, 14:50:57)

De plus , ce nom humain doit pouvoir être internationalisé (et localisé), car tout le monde n'utilise pas la même langue. Ce qui veut dire qu'un observé, au final, doit autant être compréhensible par la machine que par l'humain. Si l'humain sait vaguement s'adapter, la machine elle a besoin d'un formalisme explicite.

Il existe plusieurs endroits où ajouter ces élément de i18n et de l10n :

Dans l'observé lui-même

  • avantage : l'information est immédiatement présente, on peut la traiter directement
  • inconvénients :
    • ça prend de la place, on répète l'information autant de fois qu'on a d'observés.
    • pour gérer plusieurs langues, il faudra ajouter autant d'éléments de traduction; c'est du gaspillage.

Dans le modèle de trace

  • avantage : c'est définit une fois pour toute; on économise de la place et du temps
  • inconvénients :
    • on se retrouve à trimbaler dans le modèles des informations dont on n'a pas besoin. Par exemple, moi je n'ai pas besoin de pouvoir exprimer mes dates en japonais.
    • ajouter une langue revient à reprendre le modèle, ce qui n'est pas toujours évident à faire car celui-ci n'est pas forcément modifiable. Par exemple, il peut être intégré dans une application dont on n'a pas les sources.

Dans un document à côté du modèle

  • avantages :
    • on peut modifier et compléter les traductions et formats sans toucher au modèle.
    • le modèle ne contient que la définition de la trace, le reste étant dans un document associé.
  • inconvénients :
    • quand on veut manipuler un modèle, il faut alors manipuler deux fichiers pour avoir les littéraux. Pas pratique.
    • ça complique le schmilblick.

Reste à décider. Vos avis sur la question ?

Exemple concret

Je souhaite visualiser la trace de ma (« Damien_traces ») frappe clavier dans weechat, mon client IRC tracé. La trace correspondant à l'envoi du message « bonjour » sur le canal #LIRIS de Freenode est la suivante :

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix ktbs: <http://liris.cnrs.fr/~ithaca/ns/ktbs/0.1/> .
@prefix : <http://example.com/trace-model/> .

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*b";
:zoneDeSaisieAvantCaractère "";
:zoneDeSaisieAprèsCaractère "b";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "b";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie " ";
:positionDuCurseurDansLaZoneDeSaisie "1";
ktbs:hasBegin "1244635383";
ktbs:hasEnd "1244635383";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*o";
:zoneDeSaisieAvantCaractère "b";
:zoneDeSaisieAprèsCaractère "bo";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bo";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "  ";
:positionDuCurseurDansLaZoneDeSaisie "2";
ktbs:hasBegin "1244635383";
ktbs:hasEnd "1244635383";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*n";
:zoneDeSaisieAvantCaractère "bo";
:zoneDeSaisieAprèsCaractère "bon";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bon";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "   ";
:positionDuCurseurDansLaZoneDeSaisie "3";
ktbs:hasBegin "1244635383";
ktbs:hasEnd "1244635383";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*j";
:zoneDeSaisieAvantCaractère "bon";
:zoneDeSaisieAprèsCaractère "bonj";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonj";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "    ";
:positionDuCurseurDansLaZoneDeSaisie "4";
ktbs:hasBegin "1244635384";
ktbs:hasEnd "1244635384";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*o";
:zoneDeSaisieAvantCaractère "bonj";
:zoneDeSaisieAprèsCaractère "bonjo";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonjo";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "     ";
:positionDuCurseurDansLaZoneDeSaisie "5";
ktbs:hasBegin "1244635384";
ktbs:hasEnd "1244635384";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*u";
:zoneDeSaisieAvantCaractère "bonjo";
:zoneDeSaisieAprèsCaractère "bonjou";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonjou";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "      ";
:positionDuCurseurDansLaZoneDeSaisie "6";
ktbs:hasBegin "1244635385";
ktbs:hasEnd "1244635385";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*r";
:zoneDeSaisieAvantCaractère "bonjou";
:zoneDeSaisieAprèsCaractère "bonjour";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonjour";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "       ";
:positionDuCurseurDansLaZoneDeSaisie "7";
ktbs:hasBegin "1244635385";
ktbs:hasEnd "1244635385";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "return";
:zoneDeSaisieAvantCaractère "bonjour";
:zoneDeSaisieAprèsCaractère "";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "";
:positionDuCurseurDansLaZoneDeSaisie "0";
ktbs:hasBegin "1244635386";
ktbs:hasEnd "1244635386";
ktbs:hasTrace <> ;
].

L'OGVIT est supposé construire automatiquement, à partir du modèle de la trace, la visualisation suivante.

Interface pour la visualisation de la trace des frappes clavier de weechat

On constate plusieurs choses :

  • c'est vide : ben oui, car je n'ai pas le modèle de cette trace, et d'une façon plus générale le format d'un modèle
  • il manque des informations pour construire la représentation de la trace : les noms (humains) des colonnes doivent provenir du modèle, ou du fichier de l10n associé.

Comme quoi, c'est vraiment là un problème technique et non pas scientifique. Il faut qu'on se force à prendre des décisions pour avancer.

lundi 8 juin 2009

Diigo : un outil de web social

Diigo est un outil d'enrichissement partagé du web.

Ses principales fonctionnalités sont :

  • la gestion de bookmarks en collections (comme Reddit)
  • la gestion de groupes d'utilisateurs (comme Reddit)
  • le partage de bookmarks entre utilisateurs et groupes (comme Reddit)
  • le marquage par tags de bookmarks (comme Reddit)

Jusqu'ici, que du très classique me direz-vous. Là où Diigo devient intéressant, c'est avec ses possibilités d'enrichissement du contenu.

Il est ainsi possible d'annoter une page web, de la même façon qu'on annoterait un PDF. Ces annotations peuvent être privées ou partagées. Des outils permettent de trouver rapidement toutes les annotations partagées au sein d'un groupe et de les consulter, autorisant ainsi une lecture collective asynchrone de ressources web.

Les annotations sont attachées à des éléments précis d'une page web (zone de texte, par exemple) pour créer une forte contextualisation.

Annotations dans Diigo

Lors de la navigation web, il est possible de filtrer les annotations existant pour une page afin de ne visualiser que celles provenant de personnes ou de groupe précis.

Filtrage des annotations dans Diigo

Également, Diigo permet des commenter des pages et sites web. À la différence des annotations, ces commentaires sont globaux et approprié à la mise en place de discussions simples.

Commentaires dans Diigo

En revanche, Diigo ne permet que de « plusser » des bookmarks afin de leur attribuer une note globale, là où d'autres outils (comme Reddit) ont plus de possibilités.

Une des fonctionnalités de Diigo est très intéressante pour SILEX : il est possible de s'abonner aux flux RSS de presque tous les éléments existants : activité des membres d'un groupe, annotations liées à une page, commentaires, mot-clé, etc. Ce qui veut dire qu'en mettant en place un préparateur de trace RSS→observé on a la possibilité d'alimenter le SGBT, et donc d'avoir un traçage d'une activité collective tournant autour des bookmarks.

Ah oui, et aussi : Diigo pourrait permettre à SILEX de partager simplement des trouvailles sur le web ;)

jeudi 4 juin 2009

Veille sur la trace modélisée dans les recoins du web

C'est bien connu, Google fait tout sauf le café.

En combinant les outils de recherche et de traduction, il devient possible d'aller regarder ce qui se fait sur le web (pour le reste du net, il faudra trouver une autre solution. Je pense surtout à USENET et aux archives publiques de ML) en matière de traces modélisées.

L'idée est de trouver ce qui se fait en russe, japonais et chinois sur le suivi de l'activité. Pour se faire, j'ai décliné la recherche « trace modélisée activité collective » dans différentes langues. Des résultats intéressants sont sortis, ça faudrait le coup d'y passer un peu de temps pour faire le tri.