Les offres d’emplois : parce qu’on a toujours mieux à faire

2010 février 9
par Lully
Marteau en mousse - photo

Marteau en mousse: 4.90 € chez Ruedelafete.com

Voilà un truc qui n’intéressera personne parce que si c’était le cas, on ne verrait pas des trucs aussi moches.

Mais c’est pas grave, ça me fait du bien de râler un peu…

Les outils de diffusion d’offres d’emploi, avec la disparition de Biblio-fr, sont essentiellement devenus (il me semble) :

Ce sont des sites web « normaux ». Ce ne sont pas des forums ou des listes de diffusion. Ils permettent donc :

  • de mettre des titres (pour structurer un document en grandes rubriques)
  • de faire des listes à puces propres
  • de mettre des liens hypertextes

Et ce qui est publié sur ces sites, ce sont des textes

  • avec des lignes entières en majuscules (parce que, vous comprenez, il y a dix ans on ne pouvait pas mettre de gras).
  • aucune structuration (quelques lignes en gras de temps en temps).
  • des paragraphes précédés d’un ‘-’ pour montrer que c’est une liste.
  • aucun lien hypertexte, sauf vers un mail et, parfois, le site de la bibliothèque.

Évidemment, ce sont les demandeurs d’emploi qui sont demandeurs, alors pourquoi les bichonner, pourquoi faire des efforts ?

Personnellement, je n’ai qu’une seule raison : parce que mettre des textes en ligne comme ça, c’est utiliser l’ordinateur comme une machine à écrire. C’est très personnel, c’est un blocage psychologique, mais ça m’exaspère. Par exemple, un lien hypertexte est par défaut masqué derrière des mots cliquables. Si on le rend visible « en clair », c’est dans une intention spécifique (faire voir l’URL racine, par exemple) — pas l’inverse !

Donc je vais tout de même essayer de vous donner des arguments qui vous persuadent, vous, que ça vaut la peine de faire quelque chose d’un peu plus propre (« propre » non pas en opposition à « sale » — quoique — mais dans le sens de « approprié ») :

  • En proposant un texte plus structuré, vous rendez votre proposition plus intelligible, et vous attirez plus de monde (ce qui vous permet une meilleure sélection des candidats)
  • Vous commencez à comprendre ce que signifie « publier du texte du Internet », avec ses logiques, ses principes, etc. Cela ne vous fera peut-être pas de mal de repenser ensuite à votre aide en ligne, ou à votre page d’infos pratiques.
  • Vous faites des liens vers des ressources externes (le site de votre tutelle, l’organigramme, la géolocalisation de votre site) : à moins que l’absence de ces liens ait pour but de tester la capacité des candidats à retrouver ces informations, vous leur permettez de cibler plus rapidement les offres qui leur seront réellement adaptées. Vous gagnez du temps en n’attirant pas des candidats inopportuns.
  • Au lieu de recopier toujours le même canevas en changeant quelques phrases, vous créez simplement un nouveau canevas, qui ne sera pas à refaire à chaque fois.

Mais bon, ces arguments sont certainement insuffisants, et ce billet ne servira à rien.

C’est égal : il m’obsédait depuis 3 mois, c’est enfin sorti. Je vais pouvoir passer à autre chose :-)

Série XSL : petit résumé au bout de deux mois

2010 février 8
par Lully

Je n’ai à peu près aucun retour sur la série XSL. J’ignore si je vais trop vite, trop lentement, si j’oublie de dire des trucs essentiels qui font que vous ne comprenez rien, si je devrais espacer les billets ou accélérer le rythme.

Bref, j’aurais besoin d’un retour sur investissement.

  • Est-ce que vous les lisez ?
  • Est-ce que vous attendez les périodes de vacances pour les lire ?
  • Est-ce que vous attendez les week-end ?
  • Est-ce que vous faites les exercices ?
  • Est-ce qu’il faudrait plus/moins d’exercices ?
  • Est-ce que ça sert à quelque chose ?
  • Est-ce que ma vie a un sens ?

Je ne viens pas me plaindre de votre silence (il est normal). Mais en l’occurrence, comme ce sont des billets qui demandent pas mal de temps de rédaction, autant qu’ils soient bien ajustés à leur cible…

Bilan d’étape : ce que j’ai vu depuis deux mois (et que vous êtes censé avoir vu aussi)

Je vais tout de même synthétiser ce que j’ai écrit depuis deux mois (1er billet : 9 décembre 2009). Pour ceux qui veulent reprendre du début ou au milieu, vous avez :

  1. la catégorie XSLT
  2. la page Séries de billets qui liste (dans l’ordre de rédaction) tous les billets avec courte description.

Je vous ai parlé des bases du XSL, que nous n’allons pas cesser d’appliquer dans les billets à venir :

  1. Un fichier XSL est un fichier XML. Il permet de traiter des fichiers XML pour en produire un affichage « joli » ou en extraire des informations/des données
  2. Le processeur XSL lit les fichiers XML qu’il traite comme des arbres composés de noeuds.
  3. Les règles de traitement contenues dans le fichier XSL sont encadrées par les balises <xsl:template match="/"> et </xsl:template> qui permettent de placer le processeur XSL à la racine du fichier XML à traiter.
  4. On définit des boucles <xsl:for-each select="">...</xsl:for-each> pour indiquer : chaque fois que je rencontre ce genre de noeud dans mon fichier à traiter, je vais récupérer telle ou telle information, grâce à la fonction <xsl:value-of select=""/>
  5. A chaque manipulation, on se place à un endroit précis de l’arbre XML. De là, on peut aller chercher n’importe quelle autre  valeur située dans un autre noeud, grâce à la syntaxe XPath.
  6. Dans le fichier XSL, on peut introduire des balises non-XSL (càd ne commençant pas par <xsl:) : elles seront alors présentes dans le fichier en sortie. On peut donc mettre des balises HTML, afin que les informations récupérées dans le fichier XML source soient encadrées par des balises HTML, et constituent donc un fichier HTML.

Pour l’avenir

Dans les prochains billets, je vais d’abord exploiter systématiquement la syntaxe XPath, parfois de manière un peu forcée (càd pas la plus simple) pour vous faire voir (vous faire vivre !) cette syntaxe. Et je produirai systématiquement des fichiers HTML.

On ajoutera progressivement d’autres fonctions : concaténation de valeurs, filtres, tris, etc.

Ensuite viendra un autre bilan.

Mais je suis prêt à réviser cette projection en fonction de vos commentaires, revenir sur certaines obscurités, voir rapidement certaines fonctions, éventuellement passer un peu de temps sur le HTML (mais dans ce cas, il est probable que je vous fournirai surtout des liens vers d’autres tutos, puisqu’il en existe des centaines très bien faits).

Et bien sûr, pour tout cela on continue d’exploiter les données statistiuqes de la DLL (2005-2008).

Au fait, qui avait remarqué que je n’avais pas fourni la correction du dernier exercice ?

URL avec identifiant de session : brèves explications

2010 février 5
par Lully

Je réponds ici à une question d’Austremoine posée en commentaire au précédent billet.

(j’avais commencé un commentaire, et j’ai réalisé que ça prenait un peu de place…)

Grosso modo, donc — mais je ne sais pas si j’ai compris quel genre de détails vous espériez avoir :
Partons des exigences statistiques : par exemple si vous administrez un site web ou un opac, vous aimerez savoir combien de personnes différentes se sont connectées dessus chaque jour, et combien de temps en moyenne elles y sont restées.

Petit rappel

Comment une machine fait-elle pour vous fournir ces informations ?
Les statistiques de ce genre sont fondées sur les logs des serveurs web.
Un fichier de log, c’est une liste infinie d’URL.
Vous aurez une bonne description de l’exploitation possible de ces fichiers dans cet article du Code4Lib Journal (26/06/2009).

Etape 1

Quand vous vous connectez à un opac, le fichier de log rajoute une ligne et enregistre :

  1. Votre adresse IP
  2. l’URL demandée par votre navigateur (la page d’accueil, donc)
  3. L’instant où vous avez demandé cette URL (date, heure, minute, seconde)
  4. Eventuellement d’autres informations

Arrivé sur la page d’accueil de l’opac, vous saisissez une recherche. Si vous vous reprenez 4 fois pour l’écrire, le serveur de l’opac n’en sait rien. Tout ce dont il est informé, c’est, au moment où vous cliquez sur « Rechercher » (ou « OK », ou « Allez, hop ! »), c’est que vous réclamez une nouvelle page, quelques secondes après avoir demandé à voir la page d’accueil.

Etape 2

En remplissant un formulaire de recherche, en fait, vous construisez une URL.
(merci aux informaticiens présents dans la salle d’épargner aux autres les détails sur les méthodes post et get ;-) )

Le fichier de log rajoute une nouvelle ligne, avec les nouvelles informations : IP, URL, date, etc.

Etape 3

Vous parcourez alors la liste des résultats. Vous cliquez sur le 5e résultats. C’est encore une nouvelle URL et une nouvelle ligne dans le fichier de log.

Vous notez alors sur un post-it la cote du bouquin qui vous intéresse, et vous fermez votre navigateur.

Résultat

Le fichier de logs contient donc 3 lignes avec votre IP, et des moments proches les uns des autres.

Un programme statistique sera capable d’en conclure que vous être resté 3 minutes sur le site, et que vous avez lancé telle recherche (le mot est présent dans l’URL)

Le même programme traitera les 25000 lignes contenues dans le fichier log pour chaque journée, et fournira ainsi la liste des recherches les plus souvent effectuées et la durée moyenne de sessions. Ainsi qu’une géolocalisation des internautes grâce à leurs IP, à travers un résolveur capable de dire où vous étiez, interfacé avec Google Maps pour projeter cette localisation sur une carte.

Et l’identifiant de session dans tout ça ?

Vous fermez le navigateur. Vous étiez dans une bibliothèque publique. Deux secondes après, un lecteur (qui attendait derrière vous avec impatience) s’empare du poste, ouvre le navigateur, tombe sur la page d’accueil de l’opac.

EEt voilà une ligne dans le fichier de log.

Avec votre IP.

Horreur ! Ce nouveau lecteur va donc être confondu avec vous ! Car comment savoir que vous n’êtes plus là ?

De nombreux systèmes résolvent la question en indiquant un numéro interminable dans l’URL, sous la forme : sid=1234545676575121324sdze87987de1 (sid pour « session ID ». Mais on peut aussi trouver « id », ou « pid », etc.).

Ainsi, dans le fichier de log, votre identifiant est présent pour toutes vos URL. Quand vous fermez le navigateur et que quelqu’un d’autre l’ouvre, cela génère un nouvel identifiant de session, et l’honneur est sauf.

Effets de bords

Si vous allez sur un site indiquant un identifiant de session dans l’URL, et que vous y trouvez une page intéressante que vous souhaitez faire voir à quelqu’un, vous allez copier l’URL et la lui envoyer. Avec l’identifiant de session.

Donc quand le « quelqu’un » va cliquer sur le lien que vous lui donnez, il va « prolonger » la session. En plus, esthétiquement, il va voir une URL impossible à mémoriser.

Et si vous mettez la page en favori, vous allez réactiver la session à chaque fois que vous ouvrirez le site.

(Je pense que les programmes qui exploitent les fichiers de log tiennent compte d’écarts trop grands dans le temps  l’utilisation du même identifiant de session, mais je n’en suis pas sûr).

Si vous voulez réellement conserver, désigner, communiquer l’URL de la page, il faut donc supprimer cet identifiant de l’URL (donc enlever le sid=1234545676575121324sdze87987de1, ainsi que le caractère & qui le précède ou qui le suit). Car cet identifiant n’a rien à voir avec la page elle-même.

Mais comment font-ils ?

(là, toute personne plus éclairée sera la bienvenue pour apporter ses compétences : je n’ai pas révisé mon sujet avant de répondre !)

<update>Cf. ce commentaire au sujet des cookies</update>

Comment font les sites qui n’ont pas d’identifiant de session pour faire des stats ? C’est simple : ils considèrent que pour une même IP, s’il y a un temps d’inactivité supérieur à 10 ou 15 minutes (ou autre durée à définir) entre deux URL réclamées au serveur, la seconde URL doit être considérée comme l’ouverture d’une nouvelle session, et la 1ère comme la dernière URL de la session précédente.

Cela a d’autres conséquences statistiques, mais on ne sait jamais de toute façon si les internautes ne travaillent pas en groupe derrière l’écran, se passant la souris et le clavier à tour de rôle.

Conclusion

Non, l’identifiant de session n’est pas une aberration, et sa présence dans les URL ne doit pas être considérée comme bloquante pour le choix d’un SIGB (d’autant que si vous demander à un fournisseur : « d’accord pour votre opac, mais virez-moi ce truc », je ne suis pas sûr qu’il en soit capable car il fournit aussi l’outil de stats qui va avec, et toutes les requêtes seraient à revoir…).

C’est juste que c’est très moche, et que ça complique la vie quand on veut communiquer une URL ou simplement la mettre dans les favoris. Car en réalité personne ne les enlève, ces identifiants, donc des sessions se baladent dans la nature, susceptibles d’être réactivées à tout moment. Vous ne connaissez ni le jour ni l’heure où ça arrivera. Angoissant, non ?

Les opac – Ergonomie : 1, Bidouillabilité : 0

2010 février 5
mots-clés :
par Lully

Projet initial

Yahoo PipesJ’avais dans l’idée de construire un pype permettant de connaître le taux d’emprunts de documents dans une dizaine de bibliothèques, pour un sujet donné.

Exemples : Mano Solo meurt. Le jour même, je lance « mano solo » dans le formulaire de recherche de mon pype, et je constate que dans les 10 bibliothèques observées, la moitié des documents (en l’occurrence, des CD pour l’essentiel) sont empruntés. Je fais la même requête une semaine plus tard, et j’observe l’évolution. Je peux au bout de deux mois constater sur un panel intéressant si les collections des bibliothèques servent de relais à l’actualité brûlante.

Le jeu pourrait aussi se jouer avec des événements prévisibles : la mort de Johnny Hallyday une conférence mondiale sur l’écologie est annoncée plusieurs mois à l’avance. Avec un certain nombre de mots adéquats, j’observe l’évolution de certains thèmes au regard du calendrier de la conférence.

Le pype envisagé devait fonctionner ainsi :

  1. l’utilisateur indique une requête dans le formulaire de recherche du pype
  2. Yahoo Pipes transmet la requête à plusieurs opac, qui affichent ainsi chacun une liste de résultats
  3. Pour chaque résultat, le pype suit le lien vers chaque notice détaillée, consulte la disponibilité du document.
  4. En sortie, le pype me produit 1 item par opac, et pour chaque opac, le nombre de documents empruntés et le nombre de documents disponibles

(oh ! cela ne nous aurait rien appris de révolutionnaire sans doute : c’était un petit outil sans prétention, comme tous ceux que j’élabore)

Je cherchais des opac

  • de bibliothèques de lecture publique
  • qui permettent d’avoir des URL spécifiques à une liste de résultats
  • et dont les liens dans ces listes conduisent toujours à la notice détaillée.

Cela aurait dû me laisser un large choix de sites. Mais nous savions déjà que nos opac n’étaient pas très ergonomiques pour nos usagers.

Les sites normaux

Si vous prenez Amazon, Google Books, WorldCat, ça marche sans problème. Par exemple sur LibraryThing, l’URL http://www.librarything.fr/search_works.php?q=bibliotheques pointe toujours vers une page listant les résultats pour une recherche « bibliotheques » sur LT.

Au moment où j’interroge LibraryThing, le lien vers le premier résultat est : http://www.librarything.fr/work/6258913. Et ce lien fonctionnera toujours, et pointera toujours vers le même document.

Les opac

J’ai rencontré sur plusieurs opac de multiples problèmes, dont les plus fréquents sont :

  1. chaque requête est spécifique à une session. Donc si vous lancer une requête dans un opac, l’URL de la liste des résultats ne peut pas être transmise à quelqu’un d’autre (si vous voulez lui faire voir cette liste, par exemple).
  2. les liens vers les notices détaillées ne sont pas pérennes. Voyez le Sudoc : Quelle que soit la recherche, le lien vers la première notice est : http://www.sudoc.abes.fr/DB=2.1/SET=1/TTL=1/SHW?FRST=1. Ce lien n’a de valeur que pour la recherche en cours. C’est inexploitable (et ça a rendu très complexe de bricoler un fil RSS pour le Sudoc, d’ailleurs)
  3. Le site n’est pas indexable : le fichier robots.txt interdit l’accès aux répertoires, et Yahoo Pipes ne peut donc traiter ces données.

Sur le dernier point, il n’y a sans doute nulle mauvaise intention de la part de l’opac-master (…) : simplement, ce fichier robots.txt était configuré ainsi par défaut par l’éditeur de l’opac, nul membre de la bibliothèque n’a jamais su qu’il en existait un.

Toujours est-il que pour 1 opac qui correspondait à mes critères, j’ai dû en éliminer 19 autres.

La morale de cette histoire ?

Vous vous en fichez sans doute, de mes pypes. Mais pour moi ce n’est pas là le problème.

La bidouillabilité (traduction proposée par Tristan Nitot et d’autres pour hackability), c’est la capacité d’un logiciel à être détourné. Un « bon » logiciel est un produit que ses utilisateurs peuvent appliquer à d’autres usages que ceux prévus par son concepteur.

Cela peut vous paraître curieux si vous le découvrez ici. Mais songez à un roman où les lecteurs ne trouveraient que ce que l’auteur y a consciemment et volontairement mis. Oui, ces auteurs existent (je ne donnerai pas de nom), mais ce ne sont pas eux qui édifient la littérature.

En moins prétentieux : songez au carton d’emballage d’un jouet qui serait conçu pour ne pas pourvoir servir aussi de chapeau, de chaussure, de lit à poupée ou de table à repasser !

Bref, la bidouillabilité pour un opac, ce serait la possibilité de l’utiliser autrement que prévu par son concepteur. Par exemple :

  • l’utiliser comme base d’ouvrages et non comme outil de signalement de collections. Cela signifie que l’opac doit faciliter les rebonds vers d’autres plate-formes, la citation, la récupération de métadonnées, etc.
  • l’exploiter pour en extraire des statistiques diverses sur les collections.
  • l’interroger autrement que par le formulaire de recherche (parce que je le veux, pour les raisons que je veux et que je n’ai pas à fournir).

Lorsque nous élaborons un cahier des charges, la bidouillabilité n’entre pas dans les critères, pour tout un tas d’excellentes raisons, dont la première est que le concept est le plus souvent ignoré.

Je ne vais pas vous démontrer l’intérêt d’intégrer le concept dans vos cahiers des charges.

Je ne vais pas vous démontrer même l’intérêt de la bidouillabilité. Elle est faite pour les bidouilleurs, et vous avez parfaitement le droit de n’en avoir point l’âme.

Ce qui me frappe dans les constatations ci-dessus, c’est que les concepteurs de SIGB/Opac n’élaborent pas leurs bases de données comme le fait le reste du monde (les problèmes rencontrés sur les opac pour du bidouillage sont inexistants sur WorldCat, Amazon, etc.).

On peut bien dire que les bibliothécaires sont à la traîne.

Mais vous voyez que sur des caractéristiques auxquelles les bibliothèques n’ont pas accès, les éditeurs de SIGB sont scandaleusement hors des logiques d’Internet.

Tout n’est donc pas notre faute — ouf ! Mais il y a tout de même un problème !.

Conclusion

Certains SIGB, du fait de leur fonctionnement, sont irrécupérables pour l’utilisation que je voulais en faire. Pour certains, je pense que ça pourrait être possible, mais en compliquant considérablement ma tâche au regard de ce que j’aurais eu à faire avec LibraryThing, WorldCat ou Amazon.

Deux seulement m’ont semblé possiblement utilisables (mais nécessitant tout de même quelques raffinements pour se débarrasser de l’identifiant de session, de certains Javascript, etc). Il m’apparaît inutile de les citer car de toute façon ce genre de considération ne permettra jamais de faire des choix en cas d’appel d’offre : ce test ne nous apprend nullement

  • si ce sont de « bons opac » (en termes d’ergonomie et de fonctionnalités).
  • si leurs concepteurs ont volontairement rendu leurs opac plus bidouillables que ceux des autres.

Et en fin de compte le seul opac rencontré qui soit simple dans ses URL et ses rebonds, c’était Koha.

Voyez la médiathèque intercommunale Ouest-France : l’URL de requête est du type http://koha.mediathequeouestprovence.fr/cgi-bin/koha/opac-search.pl?q=couleurs, et le lien vers un résultat est ainsi : http://koha.mediathequeouestprovence.fr/cgi-bin/koha/opac-detail.pl?biblionumber=519.

Malheureusement Koha n’est pas implanté dans un nombre significatif de de villes de tailles significatives. D’où mon renoncement. Temporaire, j’espère.

Styles Zotero, suite (et fin ?)

2010 février 3
mots-clés :
par Stéphanie

Je vous présentais récemment deux styles créés spécifiquement pour répondre à nos exigences en matière d’écriture bibliographique. Pour mémoire, l’un liste tous les auteurs, tandis que l’autre utilise la mention « et al. » (je vous renvoie au premier billet pour plus d’explications), et les deux produisent des bibliographies dont les références sont numérotées et triées par ordre d’apparition dans le texte.

J’avais proposé de travailler sur une variante non numérotée, c’est chose faite. J’ai créé deux nouveaux fichiers. Lorsqu’un document de la bibliothèque Zotero est cité dans le corps du texte, il l’est sous la forme « (Auteur, date) ». Attention : si l’auteur manque, il semble que cela entraîne un bug avec la barre d’outil Zotero sous OpenOffice (et probablement sous Word).

En résumé, voici les quatre fichiers (j’ai ajouté des numéros aux titres, pour m’y retrouver) :

Pour télécharger les fichiers depuis le wiki de Zotero, allez en bas de la page et cliquez sur « Original format ».

Pour installer un style, ouvrez le fichier avec firefox et acceptez la proposition d’installation.

Des affiches en bibliothèque : quelques remarques de bon sens

2010 février 2
par Stéphanie

Aujourd’hui je parle communication et affichage, et mets mes idées au propre, pour y voir plus clair et parce que ça ne fait pas de mal de prendre du recul de temps en temps.

Bien. Qu’observons-nous dans beaucoup de bibliothèques universitaires (non, pas la vôtre, bien sûr) ?

  • un joyeux mélange d’affiches, les unes fournies par le service culturel de l’Université, les autres par les associations étudiantes, les dernières par le SCD lui-même,
  • des panneaux d’affichage de divers formats, certains sur pied, d’autres muraux,
  • pour ce qui est des seules affiches « bibliothéconomiques », une curieuse juxtaposition d’informations factuelles (horaires d’ouverture, règlement intérieur, …), de supports publicitaires fournis par les éditeurs de ressources en ligne, etc.

cc licensed flickr photo shared by Locace

Et étrangement, malgré les x affiches annonçant la période de fermeture hivernale, qu’avez-vous comme moi entendu toute la fin décembre ? « Vous êtes ouvert le 23 décembre ? » (oui, nous l’étions, bande de mauvaises langues). Signe que notre communication manque un peu sa cible, manifestement … Plusieurs raisons possibles à cela (liste non exhaustive).

L’information produite par la bibliothèque n’est pas clairement identifiée

Elle est « concurrencée » par les messages d’autre provenance. Il faut se rendre à l’évidence : l’affiche colorée et graphique annonçant la prochaine beuverie étudiante saute au visage, tandis que notre pauvre feuille A4 collée juste à côté passe totalement inaperçue. D’où l’importance, à mes yeux, de bien séparer physiquement les types d’affichage : tels panneaux et tels lieux réservés à la communication de la bibliothèque, tels autres à celle des services et associations.

On m’objectera que les affiches festives, qui attirent l’oeil, peuvent au contraire être placées sur le même panneau que nos messages, dans l’espoir que ces derniers bénéficieront de la même attention. Mouais, j’ai un doute quand même. Sauf à ce que le support de la bibliothèque soit 1. vecteur d’une information de type événementiel, 2. visuellement à la hauteur des affiches dont il est entouré (et là, c’est pas gagné).

Les panneaux d’affichage ne sont pas placés en des lieux stratégiques

Bien souvent, le panneau est à sa place depuis plus longtemps que vous en poste. Or il est possible que depuis l’ouverture de la bibliothèque, la configuration des lieux ait évolué. Ainsi de cet immense panneau en liège, là, fixé dans le dos des étudiants : ne serait-il pas judicieux de prendre quelques minutes pour s’interroger sur l’impact des affiches qui y sont accrochées ? Allez, une perceuse, et hop on le déplace, tenez, là par exemple, au-dessus des postes de consultation du catalogue* (ou ailleurs, hein, à vous de voir quel est l’endroit le plus pertinent chez vous).

La communication de la bibliothèque est indifférenciée

Il y a pourtant plusieurs types d’information ; j’en dénombre au moins trois :

  • le factuel (horaires d’ouverture, règlement),
  • l’événementiel (annonces de formations, d’animations),
  • le promotionnel (l’information relative aux services, aux ressources électroniques, cette dernière étant double : les messages produits par les fournisseurs d’une part, ceux produits par la bibliothèque d’autre part).

Si visuellement tout se ressemble, alors rien ne se voit. Pourquoi ne pas définir une feuille de style par niveau d’information ? J’imagine assez bien des affiches relativement austères pour le premier type d’information, et un graphisme plus travaillé pour les autres (et de la couleur, mais cela va de soi). Peut-être peut-on également réfléchir aux emplacements les plus appropriés au type d’information diffusée. Lors d’une conversation à ce sujet, Lully me proposait les associations suivantes (je cite) :

la machine à café et la porte d’entrée pour l’événementiel, les postes publics pour le promotionnel, les murs pour l’institutionnel (information que le lecteur ne consultera que s’il la cherche, de toute façon).

Bon évidemment ça suppose d’avoir une machine à café.

Reste un dernier point : la plupart des affiches sont posées … et c’est tout

Elles seront décrochées lorsqu’elles seront jaunies par le temps ou que l’abonnement à la base de données aura été résilié (si on y pense). Si bien qu’elles font réellement partie du décor pour l’usager, et donc ne sont plus vues. Mais ça, j’aurai l’occasion d’y revenir, puisque la prochaine fois, amis de la mercatique, il sera question de campagnes publicitaires.


* Ce billet est dédicacé à ovin ravi, à laquelle il devrait évoquer quelques souvenirs – pour les autres : oui, c’est un nom de code ;-) .

Faire un peu plus que des fichiers texte avec du XSL – N°6/XXX

2010 février 1
mots-clés : , , ,
par Lully

Bon, c’est pas tout ça, mais jusque-là nous n’avons produit que des fichiers texte, sans mise en forme ni structuration.

XSL permet de traiter des fichiers XML, pour en produire d’autres fichiers de toutes sortes, notamment :

  • XML
  • HTML
  • et tous les fichier textes sans balises, tels CSV, SQL, etc.

Donc un fichier XSL peut contenir deux sortes de balises :

  • les balises XSL, préfixées <xsl:. Elles traitent, récupèrent, manipulent les valeurs trouvées dans les fichiers XML (et éventuellement génèrent de nouvelles valeurs)
  • toutes les autres balises non préfixées par <xsl:. Toutes ces balises-là seront donc présentes dans le fichier produit en sortie.

Déjà vu : produire du texte brut

Revenons au billet précédent qui proposait un fichier XSL permettant d’extraire la liste des communes ayant 0 inscrit en 2005.

Voici le contenu du fichier XSL :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
  <xsl:for-each select="//an2005/inscrits[.='0']">
    <xsl:value-of select="ancestor::ville/@nom"/>
    <xsl:text>
</xsl:text>
  </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

Il génère un simple fichier texte (une liste de ville), chaque nom de ville étant à la ligne :

Marboz
Saint-Georges-de-Didonne
La Roche-Chalais
Novéant-sur-Moselle
Chevrières
Rhinau
Blacé
Provins
Roissy-en-Brie
Beauvoir-sur-Niort
Bonifacio

Intégrer des balises HTML dans la feuille XSL, pour obtenir un fichier HTML en sortie

Si je veux que cette liste soit en réalité un fichier HTML contenant ces noms, avec la même mise en forme (saut à la ligne), le code de ce fichier HTML sera :

<html>
<head>
<title>Liste des villes ayant 0 inscrit en 2005</title>
</head>
<body>
<p>
Marboz<br/>
Saint-Georges-de-Didonne<br/>
La Roche-Chalais<br/>
Novéant-sur-Moselle<br/>
Chevrières<br/>
Rhinau<br/>
Blacé<br/>
Provins<br/>
Roissy-en-Brie<br/>
Beauvoir-sur-Niort<br/>
Bonifacio</p>
</body>
</html>

Mon fichier XSL doit donc contenir les balises HTML, en distinguant :

  • les balises qui seront générées quel que soit le nombre de villes concernées : ce sont les balises <html>, <head>, <title>, <body>, <p> (balises en gras)
  • les balises qui seront générées pour chaque ville : ce sont les balises <br/>. En effet pour chaque ville, je dois récupérer le nom de la ville et mettre une balise <br/> (balise de saut de ligne)

Et voilà ce que ça donne
(si vous lisez ce billet directement sur le blog, ouvrez le fichier XSL en cliquant sur le texte : sans cela, la largeur de colonne du blog tronque les fins de lignes…)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
        <html>
          <head><title>Liste des villes ayant 0 inscrit en 2005</title></head>
         <body>
            <p>
              <xsl:for-each select="//an2005/inscrits[.='0']">
                <xsl:value-of select="ancestor::ville/@nom"/>
                <br/>
                </xsl:for-each>
            </p>
         </body>
      </html>
  </xsl:template>
</xsl:stylesheet>

Explications :

  • A l’intérieur de la balise <xsl:template>, les balises globales sont posées (celles qui encadreront la liste des villes : <html>, <head>, <title>, <body>, <p>).
  • Et à l’intérieur de la boucle <xsl:for-each>, on rajoute une balise <br/>.

Exercice 1

Je ne vais pas faire de cours de HTML et vous apprendre les balises. Je ne prendrai pour ces exercices que des balises de bases, servant à générer des listes, des tableaux, des liens, etc. Je vous les suppose connues.

Reprenez le fichier XSL ci-dessus, et modifiez-le de manière à générer une liste à puces pour cette liste de villes (balise <ul> contenant des balises <li>).

Exercice 2

En tête de la liste produite dans l’exercice 1, rajoutez un paragraphe qui indiquera le nombre de villes ayant eu 0 inscrit en 2005 (fonction count(), déjà vue).

XSL – Corrigé de l’exercice 5

2010 janvier 29
mots-clés : , , ,
par Lully

La feuille XSL permettant d’afficher le nombre d’inscrits en 2008 pour les communes ayant eu 0 inscrit en 2005 est celle-ci.

Relire l’exercice

Vous aurez constaté en effectuant la transformation que pour certaines villes, nous ne connaissons pas le nombre d’inscrits en2008 : la valeur renvoyée est donc… vide.

Merci WordPress (titre ironique)

2010 janvier 28
mots-clés : ,
par Lully

Le logiciel de blog WordPress a fait une mise à jour formidable, en permettant de saisir des guillemets simples  » dans l’interface d’édition, qui se transforment en guillemets à chevrons  » à l’affichage.

Et la plate-forme WordPress.com, qui utilise ce logiciel, a effectué cette mise à jour.

Extraordinaire avancée, qui permettent aux amoureux de la langue français de cesser leurs pratiques de codages complexes lorsqu’ils voulaient obtenir des guillemets « français » quand WordPress ne permettait que des guillemets droits par défaut.

Sauf que…

Sauf qu’il y a des blogs qui contiennent du code, qui le commentent, qui l’explicitent. Et le code (HTML, XML, XSLT, Javascript, etc.), ce n’est jamais des guillemets français, ce sont toujours des guillemets droits.

Je sais

qu’il y a des manières d’indiquer du code dans des billets de blog, qui permettent d’éviter ce genre de transformation automatiques (mettre mes exemples de balises XML entre des balises html <code></code>, notamment).

Pour l’avenir,

je vois à peu près comment faire : je rédigerai mes billets en utilisant ces précautions pour éviter ceci :

Et tous mes billets antérieurs ?

Suis-je censé reprendre tous les billets pour y intégrer des balises <code> afin que leurs guillemets y soient respectés ?

Non.

Alors je vous souhaite bon courage pour les lire.

Et merci aux développeurs de WordPress pour cette brillante idée, qui fait ressembler un peu plus WordPress à Word, avec toutes ses initiatives pertinentes.

Tiens, mais au fait : pour obtenir des « guillemets français » ne suffisait-il pas, dans l’ancienne version, de saisir son texte sous Word (qui transformait les guillemets) et de le copier dans WordPress ?

Voilà le genre d’évolutions qui pourrait me décider à installer mon blog sur un serveur propre. Ce qui en soi est certainement une bonne chose, de toute façon…

Thème du blog reloaded (no comment)

2010 janvier 27
par Lully

J’ai de pénibles problèmes d’affichages avec le thème utilisé depuis janvier.

Je reviens à l’ancien jusqu’à ce que je les ai résolus.

<update>Je n’ai pas résolu mes problèmes, mais j’ai constaté qu’ils n’avaient rien à voir avec le thème. Alors…</update>