Archives du mot-clé Isbn

Ma BIU dans Firefox

Identifier automatiquement les Isbn, et signaler la présence (ou l'absence) de ces livres dans la bibliothèque, sur Firefox, c'est possible !

Préambule

Voilà quelques temps que je réfléchissais à la possibilité pour une application d’indiquer derrière chaque Isbn présent sur les pages que je consulte si, oui ou non, on l’a déjà ce bouquin. Seulement voilà, Javascript, que je maîtrise mal, n’est pas “Cross-domain”, c’est-à-dire en gros qu’il n’autorise pas à insérer dans une page des infos issues d’une autre page. Sylvain Machefert, aka Symac, qui, lui, touche sa bille, avait réussi à aller récupérer des infos sur le Sudoc pour les utiliser ensuite, en utilisant un script Php. Mais moi, le Php, j’y comprends encore moins qu’au Javascript.

Et puis Symac et Étienne Cavalié, aka Lully, ont montré au monde comment intégrer des informations issues du catalogue d’une BU dans les résultats d’une recherche sur Google, par le biais d’une application Chrome. Au cours de ces explications, Symac a présenté sa méthode d’interrogation du Sudoc par le biais d’une page en Php, en fournissant le code à insérer.

Le dernier obstacle, c’est que l’application présentée était dédiée au navigateur Chrome, dont le système d’extensions avait paru à Symac “le plus simple d’accès”. Sauf que moi j’utilise Firefox, que je n’ai pas l’intention de changer de navigateur, et qu’effectivement, leur système d’extensions donne mal à la tête.

Alors je me suis souvenu de GreaseMonkey, une extension Firefox qui permet d’exécuter du Javascript, pour modifier l’affichage de pages web. C’est celle qui fait tourner le superbe Sudoc Plus, créé par (devinez qui) Symac (pour changer  un peu de Bibliothèques [reloaded], allez en voir la présentation chez Mathieu, aka Vingt-sept point sept). Et j’ai réalisé que ces scripts étaient potentiellement Cross-domain. Je n’avais plus d’excuses, il fallait que je m’y mette.

Une page d’interrogation du Sudoc

J’ai commencé par repomper presque à l’identique le script Php de Symac précédemment cité, pour l’intégrer sur une page hébergée gratuitement. Pour un Isbn donné (sous la forme i=978-2-7535-1368-6), elle affiche “present_bsb” ou “absent_bsb”.

J’ai simplement modifié l’Url de recherche pour qu’elle corresponde à une recherche sur le Sudoc par Isbn, restreinte à ma bibliothèque :

http://www.sudoc.abes.fr/DB=2.1/CMD?ACT=SRCHM&ACT0=SRCH&MATCFILTER=Y&MATCSET=Y&NOSCAN=Y&PARSE_MNEMONICS=N&PARSE_OPWORDS=N&PARSE_OLDSETS=N&IMPLAND=Y&IKT0=7&SRT=YOP&ADI_MAT=B&ADI_MAT=T&ADI_MAT=F&ADI_MAT=O&ADI_MAT=A&ADI_MAT=M&ADI_MAT=N&ADI_MAT=G&ADI_MAT=V&ADI_MAT=I&ADI_MAT=K&ADI_MAT=Y&ADI_MAT=X&ILN_DEP_BIB=LIB&ADI_BIB=751052144+&screen_mode=Recherche&TRM0=

L’Url a l’air compliquée, mais c’était le plus simple. Ensuite, j’ai fait en sorte qu’au lieu d’afficher, comme l’original, le nombre de résultats, qu’elle se contente d’annoncer la présence dans ma bibliothèque :

if (preg_match('/<span>[1-9]x{C2}x{A0}résultat/', $res)) {$presence = "present_bsb";} else {$presence = "absent_bsb";} echo ($presence);

Pourquoi chercher sur le Sudoc plutôt que sur mon Opac ? Parce que ça m’a semblé plus simple à bidouiller que du Primo. Et puis, ça me permet de bénéficier des éventuelles modifications sur les notices du Sudoc (l’ajout d’un Isbn-13, par exemple).

Le script userscript

Voici le script a proprement parler. S’il est codé avec les pieds, il est plein de commentaires, si vous souhaitiez l’adapter. Comment il marche ?

  • Il cherche dans le texte affiché sur la page visitée tout ce qui ressemble à un Isbn. C’est à dire quelque chose qui ne soit pas entre chevrons (<>) et qui contienne (éventuellement un 9 puis 2 chiffres, et un éventuel tiret) + 9 à 11 chiffres et/ou tirets + (éventuellement un tiret) + un chiffre ou un X, le tout constituant ce qu’il appelle une  mention. Pour les fanas d’expressions régulières, c’est écrit comme ça :
var mention=/(>(?:[^<]*[:s;])?)((?:9[0-9]{2}-?)?[-0-9]{9,11}-?[0-9xX])((?:[.s&][^<]*)?<)/g;
  • Dans chaque mention, le script va isoler le potentiel Isbn et en supprimer les éventuels tirets. Il va ensuite le décomposer en chiffres isolés, et vérifier par calcul que le dernier chiffre (ou X) corresponde au chiffre de contrôle attendu pour un véritable Isbn. Ce deuxième contrôle permet d’éliminer un maximum de bruit, sans rater trop d’Isbn. Parce que chaque Isbn trouvé va entraîner une requête pour savoir si on l’a, alors autant ne pas ralentir ni polluer trop l’affichage pour rien.
  • Les Isbn qui ont passé le test vont faire l’objet d’une requête sur la page créée précédemment. Si la page affiche present_bsb, une variable presence prendra pour valeur une chaîne correspondant à l’insertion d’une icône choisie pour symboliser la présence du livre dans notre bibliothèque. Si la page affiche absent_bsb, cette même variable prendra pour valeur l’icône correspondante. Cette icône s’affichera dans un élément ayant un identifiant unique composé du préfixe id suivi de l’Isbn débarrassé de ses tirets :
var idIsbn='id'+isbnSansTiret; (...) document.getElementById(idIsbn).innerHTML=presence;
  • L’Isbn va ensuite être enrichi d’un lien vers une page de mon choix (ici, une page de recherche simultanée Sudoc et Electre, j’avais expliqué pourquoi il y a quelques mois). En effet, le script semble être en conflit avec l’autolink de LibX, en tout cas il le désactive (le reste de LibX fonctionne parfaitement, le script rétablit simplement le lien disparu). Surtout, l’Isbn est immédiatement suivi d’un élément span vide, dont l’identifiant sera la variable unique idIsbn (id + l’Isbn sans tiret). Quand la requête aura abouti et donné sa réponse sous la forme d’une image, c’est dans ce span qu’elle s’affichera. Parce que (et j’ai ramé avant de le comprendre et trouver une solution), la fonction renvoie l’Isbn enrichi sans attendre le résultat de la requête. On lui indique donc où elle devra afficher son résultat :
(...)<span id="'+idIsbn+'"></span>'
  • Enfin, on va reconstruire chaque mention contenant un Isbn potentiel, les Isbn avérés ayant été enrichis, et les réinjecter dans la page à la place des mentions initiales. Quand la requête à la page externe renverra ses résultats, ils s’afficheront à coté des Isbn enrichis.

Le résultat

Ça marche ! Ça posait des problèmes avec Facebook, donc j’ai exclu ce site du champ d’application du script. Si vous voulez le tester, vous devrez d’abord installer GreaseMonkey, puis installer le script disponible sur userscripts.org. Quelques captures d’écran du résultat :

Exemple sur le site des Presses Universitaires de Rennes
Exemple sur le site de Belin
Exemple sur le site Cairn.info

En guise de conclusion

Même s’il fonctionne, ce script reste du bricolage. Ceux qui s’y connaissent mieux devrait trouver moyen de faire la même chose en plus propre. Ceci dit, si vous voulez l’adapter pour votre usage, il vous faudra :

  • Créer votre propre page de requête, et l’héberger. Et donc modifier la variable pageTest, et dans la requête les termes à rechercher sur cette page.
  • Créer vos propres icônes, et les héberger. Et donc modifier les variables icoPresent et icoAbsent.
  • Choisir la page où pointera l’Isbn transformé en lien, et donc modifier la variable lien.

En outre, j’ai pensé ce script comme un outil professionnel back-office mais il ne devrait pas être impossible d’en proposer une version aux usagers de la bibliothèque, avec quelques adaptations (à défaut de le faire réécrire intégralement par un professionnel). En tout cas, vos commentaires sont les bienvenus !

Mise à jour (18-08-2011)(les limites du bricolage)

J’ai dû modifier le script, parce qu’en remplaçant (même quasiment à l’identique) le contenu du body, il empêchait les pages d’aller chercher leurs propres contenus externes. Il rendait donc inopérantes toutes les pages avec des options du type “cliquez ici pour afficher l’intégralité de l’article”, ainsi que Facebook, Twitter… (un peu gênant, donc).

Dorénavant, il est un peu plus complexe : il cherche quelque chose ressemblant à un Isbn, et le renvoie avec beaucoup de caractères le précédant. Dans ces caractères, il va chercher la  classe de l’élément contenant l’Isbn (une caractéristique d’un élément permettant sa mise en forme). Le script opère alors l’enrichissement des Isbn contenus dans les éléments de cette même classe, et uniquement dans ceux-ci. Il ne touche donc pas aux éléments qui ne supportent pas d’être modifiés.

L’inconvénient, c’est qu’il risque de manquer des Isbn :

  • Les Isbn contenus dans des éléments sans classe spécifiée – mais honnêtement, ça devient très, très rare : presque tous les sites utilisent des classes, d’autant plus s’ils sont commerciaux ou institutionnels.
  • Les Isbn situés très loin du début de l’élément les contenant (dans un très long article, par exemple) – c’est assez rare sur les sites que je consulte, mais évidemment pas impossible. Je suis cependant obligé de limiter le nombre de caractères renvoyés pour éviter les bugs.
  • Les Isbn situés dans des éléments de classe(s) différente(s) que le premier Isbn potentiel trouvé sur la page – c’est rare aussi, mais ça peut se révéler systématique sur certains types de sites (imaginons un site qui fournirait les biblios trouvées dans des livres, affichant l’Isbn de la source dans une élément, puis le contenu dans un autre élément, de classe différente). Si je trouvais ce genre de site, il faudrait que je règle ce problème. Mais pas tout de suite, parce que ça va finir par vraiment ressembler à une usine à gaz.

Deux LibX en un

Photo originale : Domino graffiti 2 - · · · — — — · · · CC-BY-NC

Préambule

LibX, c’est vraiment très pratique. Le seul problème, quand on l’utilise pour les acquisitions, c’est qu’il faut choisir où mènera le clic sur l’Isbn : vers le catalogue, pour voir si on l’a déjà, vers le site sur lequel on formate les données biblio, vers le site où on stocke ses sélections en ligne, ou vers celui où on passe ses commandes ? Moi j’ai besoin de vérifier sur le Sudoc (mon Opac ne présente pas les Isbn), puis d’aller sur Electre où je formate et fais mes paniers de sélections – mes commandes chez le libraire je les fais d’un coup d’après mes listes Electre.

Pour le Sudoc j’avais donc un lien direct, et pour Electre j’utilisais le menu contextuel.

Une solution très web 1.0

Les frames sont ma solution. C’est pas très joli, c’est sûrement déconseillé par tous les standards W3C, mais ça me suffit. En gros, j’ai bricolé cette page qui présente simultanément les résultats d’une recherche Sudoc et Electre par Isbn. Et j’ai demandé à mon LibX de pointer dessus pour l’Isbn. Comme ça, je sais d’un clic d’un seul si on l’a dans nos collections, ce qu’en dit Electre, si je l’ai déjà repéré voire commandé. Et comme je n’ai qu’un seul onglet à gérer, je gagne pas loin d’une seconde par document vérifié – d’ici une dizaine d’année, j’aurais récupéré l’investissement de temps consacré à ce bricolage, qui deviendra donc rentable.

En gros, c’est pas révolutionnaire, mais je trouve ça plus pratique. Il va sans dire que Sudoc plus fonctionne parfaitement sur un demi-écran.

Le code Javascript (si ça intéresse quelqu’un)

Si vous voulez bricoler le vôtre (pour des recherches multi-catalogues orientées Zotero, par exemple), vous récupérez le code source de la page, puis à vous de l’adapter. Si comme moi vous êtes des quiches, voici quelques explications sur comment ça marche.

Dans le corps, deux iframes habilement nommées comme le catalogue qu’elles doivent accueillir :

Iframes positionnées par un bête css.

La fonction javascript appelée rechIsbn va récupérer le critère de recherche de l’url, c’est à dire ce qui suit le point d’interrogation après html. Bon, là, vous n’en voyez pas, mais il apparaitra grâce à LibX. Elle nommera ce critère isbn :

Ensuite, avec l’isbn, elle fabriquera les Url des deux frames, correspondant aux deux recherches demandées :

Ensuite, il faut appeler la fonction au chargement de la page :

Tadam !

Ne reste plus qu’à héberger la page. L’Url de recherche sur Libx est http://akareup.site50.net/recherche-Sudoc-Electre.html?%i. J’ai conservé les recherches par mots sur le Sudoc et mon Opac par menu contextuel.

Voilà. Je ne sais pas si ça va sembler utile à quelqu’un d’autre qu’à moi, mais pour mon utilisation de LibX c’est top. Ah, en revanche, du point de vue légal, je ne suis pas très sûr que ça soit tout à fait autorisé. Si quelqu’un a des détails, qu’il n’hésite pas à me les signaler avant que je croupisse en prison.

Sinon, joyeuses fêtes à tous !

Yahoo pipes, avec des données formatées

Photo originale : Gas meters and pipes - Iwa CC-BY-SA

Préambule

Comme quelques courageux (ou grands malades) l’ont lu, j’avais évoqué mon combat contre Yahoo pipes pour lui faire avaler des bibliographies et obtenir l’ISBN des ressources, en vérifiant dans la foulée leur présence dans la bibliothèque. C’était ambitieux, et ça c’est révélé moyennement performant. Le formatage des données bibliographiques n’était pas assez rigoureux pour qu’une machine l’interprète (même s’il est limpide pour le lecteur humain, pour peu qu’il soit aguerri aux biblios).

Pourtant, cette promesse de pointage automatique est restée séduisante à mes yeux. J’ai donc tenté de l’appliquer à des données bibliographiques plus formatées : les données éditeurs. Je me suis penché sur Armand Colin et Belin, deux éditeurs qui proposent certaines collections pas compliquées pour les acquéreurs : il nous les faut tous, ou presque. Partant de là, une vérification rétrospective ne sera pas passionnante pour l’acquéreur, alors si une machine peut le faire…

Les pipes et leur fonctionnement

J’ai bricolé un pipe pour chacun des deux éditeurs. Pour Armand Colin, il se nourrit des Url des différentes pages présentant les ressources d’une collection (exemple). Pour Belin, la première page suffit, il va ensuite réécrire l’url en ajoutant un paramètre d’affichage de 200 ressources par page, c’est suffisant pour afficher toute une collection sur une même page (ce paramètre n’existe pas sur le site d’A. Colin).

Le pipe A. Colin va récupérer les Isbn sur les pages de descriptions individuelles des ressources ; le Belin les récupère sur la page de la collection qui les présente directement. Les deux pipes récupèrent également le lien vers la description individuelle de chaque ressource, le titre, l’auteur, et pour A. Colin la date de parution. Ensuite, les items donnent lieu à deux recherches sur le Sudoc : la première sur l’intégralité du catalogue commun, la seconde restreinte à la bibliothèque sélectionnée par l’utilisateur.

Les résultats présentent une vignette de la couverture, en titre l’assemblage titre, sous-titre (éventuelle mention d’édition) et auteur(s), la présence sur le Sudoc et dans les collections de la bibliothèque sélectionnée.

Le Sudoc est capricieux

Déjà, parfois, il ne marche pas. Mais même quand il fonctionne il reste assez lent, parfois trop pour les pipes, qui plantent donc lamentablement dans un dernier souffle énigmatique (timeout, le Rosebud du pipe).

En outre, certaines notices (généralement dérivées de la BnF) mentionnent l’Isbn-10 et pas l’Isbn-13, se contentant d’évoquer l’EAN. C’est la même chose sans les tirets, mais la notice n’est pas identifiée par une recherche Isbn, qui ne renvoie donc aucun résultat.

Ces deux limites m’ont amené à développer deux versions de chaque pipe. Une version avec recherche par Isbn-13 (le seul mentionné sur les sites des deux éditeurs), qui renvoie donc des absences du Sudoc erronées. Et une version avec un sous-pipe de rétroconversion d’Isbn (via Amazon), qui fait donc une recherche pour l’un ou l’autre des deux Isbn. Cette recherche étant plus complexe pour le Sudoc, les risques de plantage du pipe sont plus importants.

Je recommanderait plutôt les version Isbn-13, en partant du principe qu’il est fort peu probable qu’une de ces ressources soit absente du Sudoc. Une réponse “Absent du Sudoc – Absent des collections” mérite donc une seconde recherche pour confirmation. De même, les pipes indiquant le nombre d’items retrouvés, il est toujours utile de comparer ce chiffre avec le nombre de ressources présentées sur la(es) page(s) pointée(s).

Les pipes en question

Pour conclure

Comme l’a fait remarquer Marlène dans un commentaire sur mon précédent post, rien ne vaut Sudoc +, développé par l’imbattable @Symac. Je crois même, comme lui, que l’avenir de ces gadgets est dans les extensions de navigateurs. L’idéal pour moi serait une extension FF qui, derrière chaque Isbn, ajouterait un petit logo indiquant si le document est sur le Sudoc et, si oui, dans la bibliothèque que j’ai sélectionnée dans les paramètres. Sauf que là, ça devient très technique, et largement hors de ma portée. On a pu voir très récemment que ce genre de joujou était possible, même très possible, et que @Symac savait les inventer. C’est là-dedans qu’il faut creuser, mais c’est bougrement plus compliqué que Yahoo pipes.

Yahoo pipes, pour fabriquer son usine à gaz

Photo originale : Gasworks I – TonyBeeman CC-BY

Préambule

Avant, je lisais un peu en diagonales les billets de Lully concernant Yahoo pipes. Bon, les pipes, c’est des machins qui permettent de manipuler les flux. Certes. De fusionner des flux RSS. Pourquoi pas. Ce serait même ça qui fait tourner le Bouillon. Très bien, mais à moi, à quoi ça me sert ? Par acquis de conscience, je suis allé voir, et bien sûr, je n’ai rien compris. Après des efforts désespérés, j’étais parvenu à réinventer un LibX Amazon qui existait déjà depuis longtemps. Fort de cette expérience, avant toute chose, j’ai donc visionné attentivement les tutoriels vidéos présentés sur Bibliothèques [reloaded], et j’ai fini par comprendre que l’outil pouvait s’avérer intéressant. Et même particulièrement prometteur. Bon, et un brin obsessionnel, aussi : dès qu’on s’y plonge, on perd un peu de vie sociale, beaucoup d’heures de sommeil, et on gagne un air ténébreux et fatigué quand on rumine dans le (mauvais) bus en se demandant où est-ce que ça peut bien bloquer.

Un problème : l’absence d’Isbn

On trouve des bibliographies sur internet qui ne présentent pas d’Isbn. Je vous l’accorde, ce n’est pas trop grave comme problème : sélection, clic droit, recherche par mots du titre, nom d’auteur ou tous les mots grâce à LibX. C’est juste un peu lent quand le Sudoc rame, et que le titre est long. On peut toujours se bricoler un LibX qui renvoie à Amazon par mots et au Sudoc par l’Isbn, et rebondir ainsi de l’un à l’autre. Mais ça reste long, et on se retrouve avec un LibX qui a tellement d’options qu’il en devient difficilement maniable.

L’idée était donc, à partir d’un flux, d’aller récupérer l’Isbn sur Amazon (le Sudoc est trop lent et fait planter mes pipes) par une recherche par mots. Et, avec cet Isbn, d’aller vérifier  la présence du livre dans nos collections. J’ai donc tenté de créer le pipe qui pourrait faire ça pour moi. Et au début, j’étais plein d’espoir.

Le pipe et son fonctionnement

Le pipe, le voici.

En gros, il propose un champ “auteur” et un champ “titre”, parce que c’est souvent le plus pertinent pour trouver un livre, mais il va de toutes façons concaténer les deux, désaccentuer les caractères, et retirer tout ce qui n’est pas un chiffre ou une lettre. Ensuite, il va passer ce critère de recherche “nettoyé” dans un autre pipe.

C’est lui qui va lancer la recherche sur Amazon et récupérer l’Isbn-10 de sa première proposition. Il va aussi récupérer la couverture et enregistrer les quelques mots du titre qu’Amazon associe au lien vers l’article. Ce pipe inclut un troisième pipe qui va retrouver l’Isbn-13 (Amazon n’utilise que l’Isbn-10 pour ses liens).

Enfin, ce qui en sortira passe dans un dernier pipe qui, grâce aux Isbn, va vérifier la présence des document sur le Sudoc. Pour restreindre la recherche à une bibliothèque, il suffit d’entrer le code de celle-ci dans le champ correspondant.

Un tentative d’exploitation

Ce pipe ne servant pas à grand-chose tout seul, je l’ai intégré dans un autre pipe. Celui-ci tente, sur les pages de résumé de comptes-rendus et de notes de lecture de CAIRN (comme celle-ci), de reconnaitre une bibliographie et les ressources qui la composent. Ensuite, il ne reste plus qu’à les passer à la moulinette du chercheur d’Isbn. En théorie.

Les failles

Première faille, les bibliographies de CAIRN ne sont pas toujours mises en forme de la même manière, ni prévues pour être exploitées par une machine. Le pipe identifie les titres en italique entre des balises <em> : avec une autre mise en forme, il ne fonctionne pas.

Ensuite, la proposition jugée la plus pertinente par Amazon n’est pas toujours un livre. Le code alpha-numérique ne ressemble alors pas à un Isbn, le pipe est alors réglé pour ne renvoyer aucun résultat pour cette recherche.

De même, le premier livre proposé n’est pas toujours le bon. C’est pourquoi je récupère la couverture et les mots du titre utilisés dans le lien interne du libraire, que j’affiche dans les résultats. Cela permet (souvent) d’identifier les mauvaises réponses. C’est en tout cas plus lisible qu’un Isbn.

Plus technique : certaines pages de description d’article sur Amazon semblent trop longues pour être analysées par Yahoo pipes à cause des suggestions, commentaires, etc. Donc, impossible de récupérer à coup sûr l’Isbn-13. J’ai donc dû bricoler un sous-pipe pour convertir l’Isbn-10 en Isbn-13  de la façon la plus moche du monde : il fabrique dix Isbn-13 potentiels et envoie une recherche Amazon pour chacun d’entre eux. Celui qui renvoie sur l’Isbn-10 a gagné.

Enfin, l’Isbn présent sur le Sudoc pouvant être l’Isbn-10, l’Isbn-13 ou les deux, j’ai dû faire en sorte que la recherche porte sur l’un ou l’autre de ces deux termes. Ça n’a l’air de rien mais ça n’était pas le plus facile.

En  fin de compte

Le projet était ambitieux, et le résultat n’est pas tellement concluant. J’ai inclus dans le pipe un compteur de notices identifiées et d’Isbn proposés, qui s’affiche en premier résultat – on peut donc voir très vite si ça vaut le coût de commencer à utiliser les résultats. Après quelques tests, ça a l’air de fonctionner avec environ une notice sur deux. Ce qui est bien mais pas top.

Et comme les résultats ne s’affichent pas directement sur les comptes-rendus, il faut passer d’un onglet à l’autre, ça n’est pas forcément le plus pratique. Voire même imprimer la page de résumé (c’est tellement 20ème siècle), y rayer les ressources déjà présentes dans la bibliothèque d’après le pipe, y cocher les ressources sélectionnées d’après les comptes-rendus, et utiliser l’Isbn fourni par le pipe pour les commander.

Autre souci, et de taille : pour les éditions critiques d’une œuvre le premier résultat d’Amazon aura une présentation très similaire à n’importe quelle édition de la même œuvre. En gros, oui, c’est bien Germinal, mais je ne suis pas sûr qu’il s’agisse de l’édition que je cherche, et pour le coup c’est le matériel critique qui m’intéresse, plus que le texte original déjà présent dans nos collections.

Enfin, même si c’est un détail, l’Autolink de LibX ne fonctionne pas sur les résultats Yahoo pipes, eux-mêmes étant présentés comme des liens. C’est à dire que les Isbn ne sont pas cliquables, même si LibX les reconnait par sélection et clic droit.

Bref, l’outil créé n’est pas bouleversant d’efficacité. L’avantage, c’est le caractère clonable et bricolable des pipes. Avec une autre bibliographie, plus formatée, et présentant des ressources moins ambiguës (moins rééditées), il devrait être facile de se fabriquer un pipe aux fonctions similaires. En tout cas, Yahoo pipes peut certainement faciliter certaines tâches fastidieuses de pointage, en les automatisant. Pour ma part, je n’en ai pas fini avec cet outil.