Anomalie comptable pour les jours visités ?

Comme d’autres avant moi, j’ai essayé d’obtenir le badge « Afficionado » en assistant à mon forum pendant 100 jours consécutifs. Je suis presque y. Je pense avoir manqué un ou deux jours d’affilée, ce qui me rend méfiant quant aux présences signalées, mais ce qui est vraiment anormal, c’est que les comptes ne s’additionnent pas.

Dans le rapport Utilisateurs, pour le trimestre, je suis à 92 jours, ce qui doit couvrir tout le trimestre.
Dans la vue Administrateur des exigences du niveau 3, ma présence est indiquée comme étant de 92/100 jours, soit 92 %, bien au-dessus de 50 %.
À partir de ces deux faits, on devrait conclure que j’ai été absent pendant au moins 8 jours, du jour 100 au jour 93 dans le passé.

Et pourtant : dans la vue Utilisateurs, si je regarde la présence annuelle, j’obtiens 360, ce qui signifie au maximum 5 jours d’absence dans l’année (sans jour bissextil).

Donc, l’une ou l’autre des statistiques n’est pas tout à fait exacte… ou j’ai fait une erreur.

(Ce n’est bien sûr pas un problème grave, mais peut-être que ce bug affecte autre chose, s’il y en a un.)

J’ai installé le plugin Data Explorer et exécuté la requête de Comment voir le nombre de jours consécutifs où j’ai visité le forum ?. Elle indique que ma participation continue est de 99 jours. Si c’est correct, la vue Administrateur qui rapporte les jours de participation sur 100 doit être erronée — comme noté ci-dessus, tl3_requirements indique 92/100.

username start_range end_range days
EdS 2019-10-07 2020-01-13 99
EdS 2019-09-29 2019-10-05 7
EdS 2019-07-28 2019-09-27 62

Mise à jour : J’ai obtenu mon badge « Amateur », ce qui signifie que cette méthode de calcul de la fréquentation a atteint 100. Cependant, le calcul des exigences du niveau 3 indique 93/100. Et le calcul de la fréquentation consécutive dans l’Explorateur de données affiche 101 jours.

Il se passe clairement quelque chose.

Il s’agit très probablement d’un malentendu lié aux fuseaux horaires. L’heure du serveur est toujours en UTC, donc le calcul est le suivant : vous devez vous connecter entre 00:01 et 23:59 UTC ce jour-là pour que cela compte.

Ces chiffres, ainsi que plusieurs autres, suscitaient de nombreuses interrogations ici et sur d’autres instances Discourse en 2014/2015. Il y avait tant de nouveaux utilisateurs désireux d’obtenir des badges, et nous n’avions pas vraiment confiance en Discourse. Certaines différences étaient effectivement dues à des bugs, de sorte que la plupart des calculs ont depuis été largement confirmés.

J’ai vérifié certains aspects moi-même. Je me souviens d’avoir récupéré mes données et compté combien de jours UTC j’avais visité Discourse. J’avais des statistiques tierces provenant d’un logiciel de surveillance du réseau, ce qui me permettait de vérifier les statistiques de Discourse. Cela aurait été agréable de découvrir d’importantes anomalies, mais Discourse s’est avéré correct pour mes statistiques.

Cela ne signifie pas qu’il n’y a pas de problème actuellement. Il semble simplement peu probable.

Au fait, je n’ai toujours pas le badge, car il est difficile de travailler en UTC lorsque l’on se trouve aussi loin que possible de ce fuseau horaire sur cette planète.

J’utilise le badge uniquement comme motivation pour vérifier. Ce n’est pas le badge qui semble douteux, c’est le comptage. Il y a au moins deux ou trois éléments qui comptent la présence, et ils ne sont pas tous d’accord.

Le problème des fuseaux horaires pourrait certainement tromper une personne qui croit avoir visité le site pendant N jours mais qui n’apparaît pas comme ayant visité pendant N jours — mais ce n’est pas le cas ici.

Pour récapituler, nous voyons des comptes de jours de présence dans ces contextes :

  • le rapport des exigences du niveau de confiance 3
  • l’attribution des badges
  • les rapports ‘utilisateurs’ par semaine, mois, trimestre, année
  • le rapport par l’explorateur de données

Pour ajouter quelques réflexions…

Le seul endroit où cela pourrait avoir un impact significatif sur le comportement concerne les rétrogradations au niveau L3. Si le compteur de présence L3 est « erroné », une personne pourrait être rétrogradée pour avoir manqué l’objectif de 50 % de présence, alors qu’en réalité elle ne l’avait pas manqué.

J’ai un membre qui affiche 100 % de présence selon l’Explorateur de données — 290 jours d’affilée — mais qui est indiqué comme ayant seulement 97 présence sur 100 sur la page des exigences L3.

Je sais que c’est ancien, mais par curiosité, avez-vous résolu ce problème / s’est-il résolu comme par magie ?

Je n’ai pas compris, je suis presque sûr que ça ne s’est pas résolu tout seul, donc je serais assez confiant qu’il y a toujours quelque chose qui ne va pas. Je n’ai lu aucun code ni regardé plus en profondeur. Comme je dis, pour la plupart des usages, ce n’est que d’un intérêt passager et cela ne ferait que retarder un badge ou une promotion d’une semaine environ. Mais mon commentaire sur la rétrogradation L3 reste valable.

Cela me dérangerait, je pense, si j’avais une quelconque responsabilité dans une base de code qui ne sait pas compter ! Cela pourrait même m’intéresser de regarder, mais tout le monde n’est pas fait ainsi.

Les requêtes que j’ai faites pourraient facilement être faites sur d’autres forums - pas sur le bac à sable, je suppose, car il n’est pas pérenne.