Damien Clauzel - Mot-clé - RDF2024-03-27T11:37:53+01:00Damien Clauzelurn:md5:6728c0058bb2c4b2870d8dbd71b50f9eDotclearOffre de poste : ingénieur des technologies weburn:md5:a22c7d38c912db45c0922c27f827e11c2009-10-08T09:13:00+02:002014-08-13T23:26:50+02:00Damien ClauzelCommunicationFlexGPLJavaMySQLRDFrecrutementREsTSGBTSILEXXML <h3>Description du poste</h3>
<p>Le LIRIS (laboratoire CNRS, UMR5205) / Université Lyon 1 recrute un ingénieur expérimenté au 1er janvier 2010 pour une durée de 20 mois. L'ingénieur travaillera dans l'équipe SILEX dans le cadre du projet ITHACA en lien avec des scientifiques du LIRIS, de l'Université Lyon 2 et du TECFA-Genève. Le projet ITHACA a pour objectif de mettre en place une plateforme web synchrone dédiée au tutorat dans l'enseignement supérieur, dotée de capacités réflexives permettant de favoriser la conscience d'activité de groupe et l'apprentissage. La plateforme sera spécialisée pour être utilisée dans le cadre de plusieurs formation universitaires à distance. Elle utilisera une plateforme de gestion de traces d'utilisation développée dans l'équipe SILEX du LIRIS, appelée SGBT (Système de gestion de bases de traces).</p>
<p>Les missions du candidats seront les suivantes :</p>
<ul>
<li>développement de la plateforme Ithaca et du SGBT</li>
<li>coordination des développements de la plateforme Ithaca et du SGBT en liaison avec l'équipe technique de Lyon 2, et avec les autres projets de l'équipe SILEX</li>
<li>encadrements de stagiaires et intégration de leurs travaux, etc.</li>
</ul>
<p>Les technologies utilisées sont des technologies web au sens large : serveur de médias Red5/java, Flex/Flash, python. Une connaissance de frameworks tels que Cairngorm ou Spring serait un plus, ainsi que de REST et RDF.</p>
<p>Le candidat devra justifier de quelques années d'expérience dans le domaine ou dans un domaine proche, il devra avoir des qualités relationnelles, de rédaction, de travail en équipe, etc. Il devra être capable d'être à la passerelle entre des utilisateurs non-techniques et des chercheurs en informatique.</p>
<p>Le poste sera situé à l'Université Claude Bernard Lyon 1</p>
<p>Salaire : > 2200 € net</p>
<p>Contact : envoyer CV + lettre de motivation à Pierre-Antoine.Champin@liris.CNRS.fr et Yannick.Prie@liris.CNRS.fr</p>
<h3>Précisions</h3>
<p>Rapidement, il s'agit de participer au développement d'une application Flash qui gère des flux audio/vidéo en simultané, avec en parallèle de transactions rapides sur des bases de données et différents services.</p>
<p>C'est un contrat de 20 mois, dans le cadre d'un projet de recherche. Il s'agit pour le candidat d'être leader sur sa partie du travail, mais il pourra (un peu) s'appuyer sur d'autres membres du projet pour des points précis. Nous recherchons quelqu'un qui soit immédiatement opérationnel sur les technologies web utilisées; il est important de bien maîtriser développement d'interfaces graphiques, y compris de nouveaux composants.</p>
<p>Globalement, c'est un boulot sympa, avec du volume mais rien de bien extraordinaire niveau complexité. Les partenaires du projet (différents universitaires) sont dynamiques, avec des profils variés (enseignement de langues, modélisation, visualisation interactive, suivi de l'activité, web sémantique...)</p>
<p>Je peux répondre à toutes vos questions sur ce poste, en privé ou en commentaire de ce billet.</p>
<p>En savoir plus :</p>
<ul>
<li>Le <a href="https://liris.cnrs.fr/~ithaca/fr/apropos" hreflang="fr">projet ITHACA</a></li>
<li>L'<a href="http://liris.cnrs.fr/equipes?id=44" hreflang="fr">équipe SILEX</a></li>
</ul>
<p>Précisions diverses :</p>
<ul>
<li>tout le développement informatique est placé sous des licences libres (GPLv2 et v3, précisément)</li>
<li>l'employeur est particulier, puisqu'il s'agit d'un projet de recherche universitaire (CNRS)</li>
<li>le projet comporte des personnes fortement impliquées dans le logiciel libre, qui contribuent au noyau linux ou à VLC</li>
<li>c'est une possibilité intéressante de travailler dans le logiciel libre : mission longue, correctement rémunérée</li>
<li>le projet s'appuie sur de nombreuses technologies libres déjà existantes (java, mysql, python, GNU/linux, HTTP, REsT, RDF, XML, apache), ainsi que sur des outils de recherches libres eux aussi (advene, SGBT)</li>
</ul>https://damien.clauzel.eu/post/2009/10/08/Offre-de-poste-%3A-ing%C3%A9nieur-des-technologies-web#comment-formhttps://damien.clauzel.eu/feed/atom/comments/8Appel à commentaires sur les modèles de traceurn:md5:62d941965cc20f1f21c251cefd6ad4e62009-06-10T16:17:00+02:002016-01-06T18:08:48+01:00Damien ClauzelIngénierie de l'expérience tracéeAPIdocumentationformat de donnéesHTTPi18nl10nOGVITprotocoleprototypequestionRDFrechercheREsTSGBTspécificationtechniquetrace modéliséeturtlevisualisation de donnéesweechat <h3>Avant propos</h3>
<p>Il y a deux abréviations à connaitre.</p>
<h4>i18n (<em>internationalization</em>) internationalisation</h4>
<p>Les adaptations à faire sur les <strong>formats</strong> de données, selon les pays. Par exemple, comment on exprime une date <code>(JJ/MM/AA</code>,<code> MM/DD/AA</code>, 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.</p>
<p>CF <a href="http://fr.wikipedia.org/wiki/I18n" hreflang="fr">l18n</a></p>
<h4>l10n (<em>localization</em>) régionalisation</h4>
<p>Il s'agit de la traduction à proprement parler.</p>
<p>WP :</p>
<blockquote><p>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 <em>localization</em> (faux ami). On écrit parfois l10n car le mot <em>localization</em> est composé de dix lettres encadrées par un l et un n.</p>
<p>
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.</p></blockquote>
<p>CF <a href="http://fr.wikipedia.org/wiki/L10n" hreflang="fr">l10n</a></p>
<h3>Discussion sur les modèles</h3>
<p>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, <code>ktbs:hasTime</code> et <code>1244638257</code>), il faut ajouter un 3e élément qui est le « nom humain » (<code>mercredi 10 juin 2009, 14:50:57</code>)</p>
<p>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.</p>
<p>Il existe plusieurs endroits où ajouter ces élément de i18n et de l10n :</p>
<h4>Dans l'observé lui-même</h4>
<ul>
<li>avantage : l'information est immédiatement présente, on peut la traiter directement</li>
<li>inconvénients :
<ul>
<li>ça prend de la place, on répète l'information autant de fois qu'on a d'observés.</li>
<li>pour gérer plusieurs langues, il faudra ajouter autant d'éléments de traduction; c'est du gaspillage.</li>
</ul></li>
</ul>
<h4>Dans le modèle de trace</h4>
<ul>
<li>avantage : c'est définit une fois pour toute; on économise de la place et du temps</li>
<li>inconvénients :
<ul>
<li>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.</li>
<li>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.</li>
</ul></li>
</ul>
<h4>Dans un document à côté du modèle</h4>
<ul>
<li>avantages :
<ul>
<li>on peut modifier et compléter les traductions et formats sans toucher au modèle.</li>
<li>le modèle ne contient que la définition de la trace, le reste étant dans un document associé.</li>
</ul></li>
<li>inconvénients :
<ul>
<li>quand on veut manipuler un modèle, il faut alors manipuler deux fichiers pour avoir les littéraux. Pas pratique.</li>
<li>ça complique le schmilblick.</li>
</ul></li>
</ul>
<p>Reste à décider. Vos avis sur la question ?</p>
<h3>Exemple concret</h3>
<p>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 :</p>
<pre class="brush: xml">@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 <> ;
].</pre>
<p>L'OGVIT est supposé construire automatiquement, à partir du modèle de la trace, la visualisation suivante.</p>
<p><a href="https://damien.clauzel.eu/public/OGVIT/Debut_de_l<strong>interface_du_1e_prototype_de_l</strong>outil_generique_de_visualisation_interactive_de_traces.png"><img src="https://damien.clauzel.eu/public/OGVIT/.Debut_de_l__interface_du_1e_prototype_de_l__outil_generique_de_visualisation_interactive_de_traces_m.png" alt="Interface pour la visualisation de la trace des frappes clavier de weechat" style="display:block; margin:0 auto;" title="Interface pour la visualisation de la trace des frappes clavier de weechat, juin 2009" /></a></p>
<p>On constate plusieurs choses :</p>
<ul>
<li>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</li>
<li>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é.</li>
</ul>
<p>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.</p>https://damien.clauzel.eu/post/2009/06/10/Appel-%C3%A0-commentaires-sur-les-mod%C3%A8les-de-trace#comment-formhttps://damien.clauzel.eu/feed/atom/comments/41