How is it different from false positive on a method or a class. Please do not misunderstand me, but this is a part of story telling. This is the same. We should be able to say: this rule is in general correct but for this specific case (method, class, package) it is not correct (false positive)
If you donât want to see a critic (of a class or a method), you mark it as false positive. I do not understand "don't want to see a critic" I do not want to get reminded that I should take action to address a quality problem when I know that there is none.
Now you can also ban rule on the level of a class or package, so you will not see the critics about it.
Exact. There is an overlap between ban a rule at package level and marking it as a false positive. Banning is do not check false positive is I run it and I tell you that it is wrong. So people have to decide what they want.
For me this two stories are intersecting. Why not simply say: âIf you donât want to see this critic anymore (for any reason), then you can ban it on the level of method, class, tag, package, or whole systemâ. This way the story is simpler. We could but we lose a granularity. When I ban a rule I do not want to run it. While a false positive could be reevaluated if I change me code we could have a button that say rerun false positives.
Then again, skip works as former âfalse positiveâ. But in my opinion âfalse positiveâ is not a good name from the logical point of view. You have a rule that detects if you have no #yourself message in the end of a cascade. Now do people really mark this as âfalse positiveâ if the rule detects cascades that have #yourself message in the end? Or they do it if they donât want to see the critic? Then itâs not false positive, then they just want to hide or âskipâ the rule. Sorry but I do not understand your argument. For me this is simple: the rule tells me something is wrong and it is not. -> so I mark it as false positive.
This is fun part from statistics to name things as false positives. But if we program a rule in such way, that it is fuzzy, I think that itâs not correct to call it as false positive. Maybe itâs critics are useless more times that they are helpful, and if the critic is correct, the issue is not that important. Then probably we should just remove the rule or rewrite it.
Now with useless button, the only reason is to collect data on which rules are actually useless to people [1], so we can take a look at them in a first place. It doest not affect the functionality.
I do not like useless. Because it is too violent and unclear. Please again have a look at the vocabulary used in the CodeCritics and the chapter that describes it. Or you should fix everything but we should not have two different vocabularies. There is enough confusing terms in Pharo so that we do not add more.
I understand. I will re-read the vocabulary and fix discrepancies. But please read my argument bout duplicated behavior of banking and marking as false positive, I think that it may be confusing.
I'm not against your arguments I do not understand them.
Also âUseless" button does not do anything besides sending me an information that this critic was useless to somebody. Ideally there should be no button like this and I should be able to collect user actions that they perform.
So far I do not understand skip and useless difference. Now I get it. There are two different action. One is about feedback and the other is banning/
But from server/privacy/time perspective it was easier for me to make a simple button. Would be nice to have an advanced data collection, but I am not sure that I will have time now to program all that, so if it is bothering so much, I can simply remove it. In fact by crawling the metadata of package we can see if a rule is useless: people will ban it.
Uko
Stef
Uko
[1]: http://renraku.inf.usi.ch/rules
Stef
Uko
On 23 Jul 2015, at 22:29, stepharo <stepharo@free.fr <mailto:stepharo@free.fr>> wrote:
HI yuriy
it would be good that quality assistant uses the same vocabulary than codecritics. for example skip -> ban? marks as false positif?
Stef