BoyWiki:Agora/3 août 2009

De BoyWiki
Révision datée du 18 juin 2021 à 17:00 par Caprineus (discussion | contributions) (m)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Agora/3 août 2009

Citations du jour manquantes

Il y a décidément quelque chose qui m'échappe dans le système des "citations du jour" de la page d'accueil.

Le cahier des charges porte sur trois points :

  1. Il faut que toutes les citations de BoyWiki défilent à tour de rôle.
  2. Les nouvelles citations doivent être prises en compte assez rapidement.
  3. Il faut si possible que ce défilement se fasse avec une certaine variété.

Or il semble que le premier point, qui est peut-être le plus important, ne soit pas vraiment mis en oeuvre. D'après ce que je crois comprendre, il y a un nouveau "tirage au sort" chaque mois, de 30 citations parmi les 132 actuelles (si j'ai bien compté). Donc à chaque sélection on en "oublie" 102. Ce qui entraîne le double inconvénient suivant : on peut retrouver la même citation à un intervalle assez bref (au pire, si elle est la dernière de la sélection précédente et la première de la nouvelle, elle sera répétée deux jours de suite) ; et une citation peut, au contraire, ne pas apparaître pendant des années !

En effet, ceux qui lisent régulièrement la citation du jour ont pu constater que certaines sont déjà revenues à plusieurs reprises, alors que d'autres n'ont jamais apparu.

Ne serait-il pas possible qu'à chaque sélection l'ensemble des citations soit sélectionné et ordonné aléatoirement, et que la publication soit ininterrompue jusqu'à la fin de cette sélection intégrale ? Malgré le petit nombre de citations qui existent (et qui devrait s'étoffer assez rapidement), ça ferait quand même 4 mois et demi de suite sans aucune répétition.

Avantage supplémentaire : il n'y aurait à se soucier de faire une nouvelle sélection que 3 fois par an actuellement, et beaucoup moins souvent encore quand il y aura plusieurs centaines de citations.

Pour apporter quelques pierres à l'ouvrage, je vais essayer de compléter prochainement la page des Ambassades et celle de La ville dont le prince est un enfant. Et peut-être même créer celle des Garçons...

Caprineus 3 août 2009 à 18:44 (GMT)

Eh oui, il y a les fonctionnalités que l'on souhaite et les bugs que l'on constate ! Outre les limitations que l'on subit... J'en ai rencontré un (de bug) l'autre jour en recréant une liste de citations alors que le lot précédent était consommé. C'est peut-être aussi le même que celui que tu signales. Mais il y en a sûrement d'autres, j'en suis désolé.
Pour mémoire un résumé du fonctionnement prévu de la procédure :
  • La création automatique des citations (côté serveur) étant hors de nos attributions ou trop complexe pour un modèle, et leur génération en temps réel trop longue, on s'est orienté vers une procédure manuelle appelée à la demande qui crée une liste prévisionnelle de citations par dates stockée dans une sous-page insérée dans la page d'accueil.
  • recherche des pages contenant des citations introduites par le modèle {{Extrait}} (7 actuellement)
  • copie de toutes les citations trouvées sur ces pages dans un tableau (il y en a effectivement 132 actuellement), chaque citation étant identifiée par un numéro unique attribué aléatoirement lors de leur création
  • tri du tableau par ordre croissant des numéros identifiants, dans le but de provoquer une variété apparente des citations (ces identifiants étant attribués aléatoirement)
  • lecture de la liste précédente (dans la sous-page Accueil/Citation_du_jour) et extraction de la dernière date attribuée et du dernier identifiant affecté (c'est là qu'il y avait un bug)
  • tirage des n citations suivant dans le tableau le dernier identifiant affecté, pour compléter la liste précédente (avec n max = 30). Quand l'identifiant le plus grand est atteint on continue avec plus petit au bas du tableau
En principe toutes les citations devraient être parcourues en 132 jours. La variété est assurée par le numéro aléatoire de l'identifiant, mais on est pas à l'abri du hasard qui peut affecter des nombres consécutifs dans la même page. Les nouvelles citations se trouvent intercalées de manière imprévisible en fonction de leur identifiant au moment du tri du tableau : celles dont l'identifiant est inférieur à l'identifiant courant au moment du tirage devront attendre que tout les numéros supérieurs soient consommés.
Il est possible d'augmenter le maximum de 30 jours mais il faut tenir compte de la taille de la sous-page (actuellement 15Ko pour 30 jours en fonction du texte variable des citations), et surtout ceci retarderait d'autant la prise en compte des citations nouvelles puisqu'elles ne seront prise en compte que lors d'un nouveau tirage.
Pinocchio 5 août 2009 à 16:43 (GMT)
Tiens ! Déjà de retour de la plage ?! J'espère pour toi qu'il faisait beau, que ça sentait bon le sable chaud, et qu'il était beau ton (petit) légionnaire (voir Serge Gainsbourg pour plus de détails...).
Merci pour la liste des opérations concernant les citations : même quand je ne fais pas les choses moi-même (et là j'en serais tout à fait incapable), j'aime bien comprendre ce qui se passe, ça me donne l'impression d'être intelligent :-)
La nécessité de refaire manuellement l'opération tous les 30 jours reste quand même un inconvénient, car le "préposé" peut être indisponible à ce moment précis. Et le fait que les citations nouvelles ne soient pas prises en compte rapidement n'est peut-être pas très important (elles sont quand même tout de suite accessibles sur leur page normale).
Si je peux faire une suggestion : au lieu d'une sous-page de 30 citations, peut-être serait-il envisageable que soient automatiquement créées, à chaque tirage, autant de sous-pages de 30 citations (ou de 50) qu'il en faut pour les répertorier toutes. Ainsi chaque sous-page ne serait pas trop lourde, et la procédure ne serait à recommencer que beaucoup plus rarement.
Bien entendu, si beaucoup de nouvelles pages de citations sont créées en peu de temps, il serait toujours possible de les intégrer, en procédant à un nouveau tirage sans attendre la fin du prédédent.
Caprineus 5 août 2009 à 17:23 (GMT)
Il faisait beau oui, mais trop chaud à mon goût pour la plage !
C'est justement pour éviter la nécessité d'un préposé désigné que la procédure peut être lancée par quiconque possède les droits d'écriture. Il faudrait que la page de lancement soit répertoriée et accessible depuis une page spécifique (de même que le formulaire de création des références), il y aura sûrement d'autres procédures de maintenance longues à lancer régulièrement (nettoyage, correction orthographique, remplacement de caractères). Le plus simple serait de lier ce lancement à la consultation longue d'une page particulière, mais je n'ai pas trouvé laquelle ; la page d'accueil semblait toute désignée pour ce lancement mais le délai de consultation était trop court (si on sort de la page la procédure s'arrête).
Sinon on peut passer à 60 jours sur une seule sous-page sans problème probable. Mais l'idée des sous-pages multiples complique beaucoup...
Pinocchio 5 août 2009 à 20:28 (GMT)
Tant qu'on est dans les citations, une question me turlupine depuis un certain temps : est-ce que ce serait une amélioration utile de créer un espace de noms Citations ?
Dans ce cas, la page Les passions schismatiques (citations) deviendrait Citations:Les passions schismatiques.
Avantages ? Inconvénients ? Je reste perplexe...
Caprineus 5 août 2009 à 17:33 (GMT)
Ça peut être un avantage dans l'organisation pour séparer les articles des pages de citations portant le même titre. Techniquement ça semble n'apporter ni ne retirer rien.
Pinocchio 5 août 2009 à 20:28 (GMT)

Pour garder une certaine vie sur l'Agora

Quand il y a une relative inactivité sur l'Agora, celle-ci se vide inexorablement... Les sujets vieux de plus d'un mois disparaissent.

Serait-il possible que, par exemple, les 10 ou 20 derniers sujets restent systématiquement visibles, même s'ils sont anciens ? Ou alors, les 10 ou 20 dernières journées non vides ?

Caprineus 3 août 2009 à 18:58 (GMT)

Je n'ai pas trouvé comment faire aussi simple ! Mais il est possible d'ajouter des blocs de jours si le nombre de jours pleins affichés est inférieur à un seuil. Par exemple si le nombre de jours pleins des premiers 30 jours est inférieur à 15 alors on ajoute les jours pleins des 30 jours précédents.
En test. Pinocchio 6 août 2009 à 10:13 (GMT)