Forum
NiklosKoda![]() 54 Messages Confirmed Poster |
the 22/10/2010 at 22h46 # 01 Comme tout le monde le sait, fixer une fois pour toute les points d'une épreuve cay le mal. Et surtout si c'est une seule personne qui les fixe. J'ai réfléchit un peu à tout ça et voilà un début de piste pour constituer un nouveau système de notation dynamique. Selon moi, un système de point est efficace s'il se base sur 3 choses : la difficulté de l'épreuve, le temps depuis sa mise en ligne, et ce qu'elle apporte (fun/apprentissages/...) Le problème c'est que seul le temps est concrètement mesurable, pour les deux autres il faut donc trouver autre chose : le nombre de validation (qui traduit la difficulté seulement s'il est associé au temps) et la note attribuée à l'épreuve (à prendre en compte seulement si le nombre de votant est conséquent). Nous avons donc nos trois éléments sur lesquels se baser pour notre système de points : 1) Le temps : 2) Le nombre de validation 3) La moyenne des votes Maintenant comment faut-il lier ces informations ? (Note : je ne parlerais que de pourcentages pour les validations et pour le temps, ça permet de fixer ensuite les limites min et max) 1) Premièrement attribuer des points à l'épreuve uniquement en fonction du nombre de validations (en progression logarithmique) semble être une bonne idée : ![]() Mais problème : les points sont "trompeurs" lorsque l'épreuve vient d'être publié (pourcentage de temps faible). 2) Deuxièmement on pondère les points attribués précédemment via un coefficient qui dépend du temps (aussi en progression logarithmique). Le coefficient varie entre 0.5 et 1 : ![]() Et on obtiens ceci concrètement comme résultat : -> Si l'épreuve vient de sortir le coeff du au temps est de 1/2 : les points initiaux de l'épreuve sont 50% de la valeur maximale -> Si l'épreuve n'est pas beaucoup validée au cours du temps, c'est à dire si l'épreuve est difficile, alors la note due au validation ne change pas beaucoup (proche de 100%), mais le coefficient du au temps augmente progressivement jusqu'à 1, augmentant la note de l'épreuve qui tend alors vers la note maximale. -> Si au contraire l'épreuve est beaucoup validée dès sa sortie : alors la note due au validation diminue, et le coefficient du au temps la fait baisser encore plus : c'est normal, cela veut dire que l'épreuve est très facile. Le coeff du temps perd ensuite de son impact, il tend vers 1, et la note tend vers sa valeur juste (liée aux validations) Voilà un exemple d'implémentation sous matlab, pour ceux qui préfèrent le code ![]()
Et ça donne : (attention à l'origine des axes de temps et validations) (de plus, ce n'est qu'un exemple rapide d'implémentation, il faut réfléchir aux cas limites pour ne pas avoir d'épreuves ayant des points infinis ou nuls )![]() Ce qui confirme bien tout ce qu'on a dit avant \o/ Et pour finir, on avait parlé de prendre en compte les votes, donc si le nombre de votant est supérieur à un certain seuil : - si la note est inférieure à 4.5 : -1 point - si la note est supérieurs à 7.5 : +1 point (oui c'est un peu simpliste mais j'avais plus d'idée...) Voilà voilà, qu'est ce que vous en pensez ? |
||
| coclico 11 Messages New Poster |
the 23/10/2010 at 12h44 # 02 C'est jolie toutes ces images ![]() Personnellement, au delà du système de points, je suis contre tout ce qui permet d'ordonner les épreuves avant de les avoir soi-même notées/validées pour la bonne raison que le temps que l'on a envie de passer sur une épreuve est proportionnel à son nombre de points, notes, même lorsque l'on essaye d'y faire abstraction. C'est le même constat sur tout les autres sites de challenges ou presque, alors pourquoi ne pas essayer autre chose ? Je suggère quelques amendements à la réforme inévitable (oups...) proposée par Nikloskoda : - Le nombre de validations me semble le seul paramètre à rendre publique. Il attire la curiosité, donne une idée de la difficulté/attractivité de l'épreuve mais sans plus. - En ce qui concerne le temps d'existence d'une épreuve, étant donné que les points seraient recalculés régulièrement, il est déjà pris en compte dans le système ? Après techniquement, je suggère simplement : points de l'épreuve = (nombres de membres - nombre de validations de l'épreuve) Ensuite j'en viens aux notes, le plus important pour moi et ça serait intéressant, est de rendre les notes (et le nom de l'auteur d'une épreuve) accessibles uniquement aux challengers ayant notés/validés l'épreuve (note non-modifiable du coup). Et de plus, ça serait marrant de connaitre les notes et l'auteur d'une épreuve en dernier. |
||
awe![]() 218 Messages Active Poster |
the 23/10/2010 at 14h13 # 03 Merci NiklosKoda d'avoir lancé ce débat fondamental et ma foi, très intéressant. Je suis tout a fait d'accord sur le fait que fixer les points manuellement, ça suxx, et que se baser seulement sur les validations, c'est bien, mais pas parfait. Prendre le temps en facteur est en effet une bonne idée, puisque corrélé avec le nombre de validations, on peut en effet fixer les notes de façon équitable entre les épreuves qui ont 2 ans d'âge et celles qui sont toutes récentes. En se basant uniquement sur les validations, cela n'est pas possible, les épreuves récentes auront toujours plus de points que les anciennes. En revanche, ton idée semble avoir une limite dans le temps, si j'ai bien compris. Au bout de 6 mois, disons, ton coefficient de temps sera approximativement à 1,et du coup on revient sur un nombre de points attribués uniquement avec le nombre de validations. Donc l'idée est juste de ne pas donner trop de points à une épreuve sur ses débuts, c'est ça ? Pour moi le temps pourrait être pris en compte à chaque fois. Il y aurait derrière une échelle logarithmique renvoyant le nombre de points correspondant au rapport (nombre de validations de l'épreuve / temps écoulé depuis la mise en ligne de l'épreuve). Un problème présent dans les systèmes actuels basés sur le nombre de validations est ensuite que certaines catégories attirent plus de monde que d'autres. Il suffit de comparer le nombre de validations en stégano contre celles de hacking. Du coup les épreuves d'une catégorie très prisée auront toujours moins de points qu'une catégorie l'étant moins, et une épreuve très difficile en hacking pourrait avoir moins de points qu'une épreuve moyenne de stéga sur laquelle personne n'a jamais vraiment tenté quelque chose. Pour ça je pense que l'échelle logarithmique devrait être variable en fonction des catégories, et pourrait se fonder sur le nombre de validations de l'épreuve, le nombre de validations de l'épreuve la mieux notée et de la moins bien notée. Ca ferait un truc quasiment full dynamique, sur lequel le coefficient NiklosKoda (si je l'ai bien compris) pourrait toujours être rajouté. Pour finir sur les votes, l'idée de donner des bonus / malus à une épreuve en fonction du fun/difficulté/apprentissage est intéressante. Il faudrait dans ce cas là proposer un vote aux validateurs pour chacun des 3 facteurs, qui apporteraient séparément leurs bonus/malus. Quant à cacher le nom de l'auteur et les votes à ceux n'ayant pas validé, je suis contre. Avec ces informations on peut savoir à peu près quoi attendre de l'épreuve, donc se motiver ou pas pour se lancer dedans, et il est donc nécessaire de les laisser publiques. My name? I've had a few. You can call me root. |
||
NiklosKoda![]() 54 Messages Confirmed Poster |
the 23/10/2010 at 19h50 # 04
coclico said:
Ça me parait trop simple à moi aussi, car comme le dit awe les nouvelles épreuves auront toujours la note maximale. Or justement, l'idée c'est de donner une note moyenne aux épreuves récentes (car on ne sait pas encore réellement ce qu'elles valent) et de laisser ensuite la note évoluer vers une valeur juste au cours du temps.
awe said:
C'est déjà le cas : dans ce que je propose, le coefficient du temps suit lui aussi une progression logarithmique. Et c'est pour ça que je me suis exprimé en pourcentage, le temps max pour lequel le coefficient atteint 1 peut être 6 mois, 1 an ou autre. Par contre oui au bout d'un certain temps l'influence du temps devient nulle, car en fait ce que je reproche à un système qui ne tient pas compte du temps c'est de fournir une note fausse au début. Le pourcentage de validation est un critère tout à fait juste pour attribuer des points à une épreuve, mais il n'est juste qu'après un certain temps. D'où l'emploi d'un critère de pondération qui s'estompe ensuite.
awe said:
Excellente idée selon moi ![]() Disons que l'on exprime les points en pourcentage, l'épreuve ayant le plus de points de la catégorie correspond à 100% pour cette catégorie. On passe ainsi à un système de notation par catégorie plutôt que par épreuves, et je trouve ça plus juste.
awe said:
Pas réellement nécessaire à mon avis, la note globale attribuée à l'épreuve traduit un peu ces 3 facteurs, ça ne ferait que complexifier le système. Par contre pourquoi ne pas proposer au challenger de voter plus tard ? Je m'explique : souvent dès que l'on réussit l'épreuve, on a une bonne impression, et on vote rapidement sans trop réfléchir. Au contraire si on propose au challenger de voter X jours plus tard pour l'épreuve, ou mieux, après avoir validé X autres épreuves de la même catégorie, il peut prendre du recul et voter en se remémorant l'épreuve et surtout en la comparant aux autres ! Mais bon c'est juste un détail, le système actuel est déjà pas mal, vu qu'il permet de modifier son vote. Bref, si on continue comme ça je pense qu'on peut arriver à quelque chose de pas mal ![]() |
||
| BAAL 3 Messages New Poster |
the 04/02/2011 at 18h48 # 05 Quel que soit le système choisi et implémenté il y'aura toujours des illogicitées. Personnellement j'auais tendance à prôner un système à un point par épreuve. |
||
mego![]() 3 Messages New Poster |
the 15/09/2011 at 22h07 # 06 Maybe it is worth to divide points into categories like: educative, originality, difficulty, etc. After that you can discuss about which weights to give to the different categories, but that is likely to be a lot easier as you already gave points for each challenge individual and the total is simply a calculation. Small example (just my thoughts on the points, range from 1 to 5): "Debug me": - educative: 3 - originality: 5 - difficulty: 5 "Asymmetric encryption": - educative: 4 - originality: 5 - difficulty: 3 "W3News p0wned !": - educative: 4 - originality: 5 - difficulty: 4 "Reverse captcha": - educative: 4 - originality: 2 - difficulty: 3 "Cadeau empoisonné": - educative: 5 - originality: 5 - difficult: 3 Taking the formula as simple as it can get: (educative + originality + difficult) / 3 gives: (3 + 5 + 5) / 3 = 4.33 "Debug me" (4 + 5 + 3) / 3 = 4.00 "Asymmetric encryption" (4 + 5 + 4) / 3 = 4.33 "W3News p0wned !" (4 + 2 + 3) / 3 = 3.00 "Reverse captcha" (5 + 5 + 3) / 3 = 4.33 "Cadeau empoisonné" Voila. Now when you are either good in crackmes or in steganos you will score equally. Although each category point might differ, in the end you get the same points. Ideally you let a more people assign values and you average those... Another idea is just to assign 1 point to all challenges and just ignore everything =) |
||
awe![]() 218 Messages Active Poster |
the 15/09/2011 at 23h56 # 07 I agree having various vote categories would be nice, but it just shouldn't influence challenges'score, mainly because: - Points should reflect difficulty - We should never trust user input: having votes influencing scores would lead some people - mostly the youngest, still attracted by ranking because they feel more hax0rz - to vote 10 for each challenge they solve, in order to get more points. - Having the possibility for points to go up and down everytime will be a pain in the ass, and I'm lazy :P About the 1 point per challenge, i really hesitated for a while, but finally for me it's clear it's just not the solution. Of course it would be easier, but i still believe that points should reflect difficulty, and this would obviously not be a good solution. A newcomer would just not really know how to begin. Having different vote categories can be a way to solve the 1 point per challenge problem with difficulty, the problem is people (including me) are lazy, voting in several categories take time and they surely would bypass it most of the time (that's already the case currently with only one simple form...). Still i think it is a good thing to have this feature, even if it doesn't directly concern scoring. So i keep it as an idea in TODO ![]() My solution would be to have a logarithmic association of points, matching validations count. (Updated manually with the time, because currently there are not a lot of challengers, so it will be a valid solution for a limited time). That's already present in a few sites. As i just said, and even if i had the idea earlier in this thread, having points going up and down will just lead to discord. Points going down only would not be a big issue, mostly a problem with players ranked more than 100% on wechall (hey ymvunjq!) Anyway, while we add some new challenges, this problem isn't really important. Of course, this solution doesn't solve the problem of newcoming challenges that seem hard because they have 0 validation and the maximum score, which is the main point stated by NiklosKoda in the beginning.Another problem is that people are not attracted the same way for each category, and some challenges in a popular category can be considered easier than some in another category, even if in the end they really are harder. That's why i guess the best would be to get a separate logarithmic scale for each category. But how to fix it then ? I just don't know ![]() I'm indeed still opened to any suggestion. Thanks for sharing your opinions. My name? I've had a few. You can call me root. |
||
mego![]() 3 Messages New Poster |
the 16/09/2011 at 20h02 # 08 So here are my votes for the challenges.. if more user post theirs you can test your new points system: http://pastebin.com/raw.php?i=u02kVZej |
||

Blog
VM Hacking
Hacking
Cracking
Wargame
Forensic
Cryptography
Steganography
Programming
/dev/null

# 01


)






