Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Social issue: Simple kata rejection. #1866

Closed
lbvf50mobile opened this issue Jul 4, 2019 · 16 comments

Comments

Projects
None yet
6 participants
@lbvf50mobile
Copy link

commented Jul 4, 2019

Problem: Impossible to publish simple kata.

The glory of 7-8kyu

Each tool have its powerful side: stackoverflow.com allows to solve "stupid" question "How to push value in Lua array" - this makes it's number 1 tool for developers.

codewars.com really give a toolset to get into new language smoothly. And it's power side not 3kyu-1kyu tasks, there a lot of this kind of tasks servers around internet. But most powers is 8kuy-7kyu kata, that allows spending 5-10 minutes get some life-hacks and coding flavor of new language.

If I want start to write on Go I can do it with codewars easily, by 8kyu tasks, not 2kyu ones.

So what do I faced now when I start to write kata? I faced 1kyu guys that is 0.00% top who blame kata because it is trivial and offers no educational value as @donaldsebleung said.

But I take kata ideas from real developers forums. For example today BigInt kata was rejected. It was created based on real request from a chat how work twitter pagination, where guy really asked how to wield with long numbers. And first I create gist for him and then I created this kata.

And this is a second time I faced with this way to treat task as the self codding fun for 0.00% Top but not a tool for a newcomers. Looks like this is like things works now.

So what?

If this situation with blaming simple kata will continue. Only because it solved by a language Standard Library . Codewars will lost it most powerful side.

I got a lot from Codewars and I do not like the situation is happens. I like to spend 10-15 minutes and get new snippets of code. And only Codewars give such possibilities.

How to explain?

How to explain to top 0.00% that it's important to have simple kata. And the purpose of this kata is not bring them a codding challenge. But show how solve daily routine by a language?

@FArekkusu

This comment has been minimized.

Copy link

commented Jul 4, 2019

  1. CodeWars is a competitive programming website, not educational - you may learn something from completing the tasks, but that's not the main CW's purpose. If you want to teach people something, create a tutorial/blog-post/gist/whatever but don't spam questionable content here, you're not doing anything good for the community by doing so.
  2. White katas do get approved, but considering there's more than a thousand of them, coming up with good ideas is not easy at all. Nowadays almost all these "potential whites" are duplicates, worthless, or low-quality.
  3. The reason why your latest kata got retired is exactly because it was worthless. I've found 5(!) issues with it. IIRC all other katas you've authored were very quickly retired due to multiple problems with them. And if you keep on creating low-quality content, the same will be happening to it again and again.
@lbvf50mobile

This comment has been minimized.

Copy link
Author

commented Jul 4, 2019

How can be located 5 issues in a primitive oneliner?

let minusOne = x => (BigInt(x) -1n).toString();

I banned you in CodeWars because you seeking endless Issues that does not reflect any way on a main idea. If there is a simplest kata find second largest value in an array: messages arrive one by one about Auto test cover cases covered with Static Tests and etc.

CodeWars is a competitive programming website,

That's a core. You came here to proof yourself, and amuse you ego. I came here to get new knowledge and share them with people. It's educational site in a way of game.

@DonaldKellett

This comment has been minimized.

Copy link

commented Jul 4, 2019

@lbvf50mobile The problem with your Kata isn't that it falls in the 7-8 kyu range, it's that you haven't bothered to put any effort into it whatsoever to make it novel, interesting and educational. My obligation as a moderator (i.e. any Codewarrior with 6000 honor or more) is to ensure that all Kata leaving the Beta process and made available to the general public are of a high quality so as to not degrade the Codewars experience.

The thing you have to understand here is this: solving a Kata and authoring one are two completely different things. When you click on the "Train" button on a Kata and hack away, all you have to care about is passing the tests, sometimes within the given time limit (if the Kata enforces performance requirements). However, when you author a Kata, you have to take many more factors into account, below of which are just a few of them:

  • Is the Kata novel, interesting and educational? Once a fellow Codewarrior solves your Kata, will it leave him/her satisfied having learnt something new or will he/she just go "Meh, I've done something like this a thousand times before"? If it is the latter case then the Codewarrior solving your Kata has just wasted their precious time on something unproductive. How would you feel if you solved a Kata but didn't learn anything new at all, e.g. the millionth Hello World variant?
  • Does the Kata follow established conventions? That is (for example), if the vast majority of JavaScript developers name their functions in camelCase, does your Kata name its functions in such a way as well or does it use some obscure name such as hax0r_HAksjdlksfjslkfHA_0123478927348923? If your Kata does the latter then Codewarriors solving your Kata may get the wrong message that it is OK to write ugly, unfamiliar-looking, unmaintainable code elsewhere such as in their workplace or a shared project. And that could be a disaster.
  • If your Kata outlines certain requirements that should be met (e.g. it should be efficient, it shouldn't use certain built-in features or it should be under a certain length) then does the test suite of your Kata actually enforce these requirements? The only thing that a Codewarrior is required to do in order to solve any Kata is to pass the tests that you provide so if you mention some standards that the solver's solution should meet but don't actually enforce them in the tests then it's just empty talk. Consider this: What would you do if you saw a Kata that asked you to write a C compiler but the tests only test that 1 + 1 == 2?

No one said that authoring a Kata would be easy. Even for simple 7 kyu Kata such as Computer Science 101 - #1 Stacks which takes the average Codewarrior under 15 minutes to solve, I often find myself spending hours on it perfecting the Kata description, writing comprehensive fixed, edge and random tests to ensure that solvers can't simply fumble their way through with a buggy, inefficient solution and whatnot. For more challenging Kata such as RoboScript #3 - Implementing the RS2 Specification, spending days or even weeks on end making the Kata description interesting and attractive, perfecting the reference solution and reinforcing the test suite to close off potential loopholes is the norm.

As I suggested in this comment of mine, it would probably do you good to perform a careful reading of the link that I gave you before proceeding to author any more new Kata.

@lbvf50mobile

This comment has been minimized.

Copy link
Author

commented Jul 4, 2019

No one said that authoring a Kata would be easy
I often find myself spending hours

minusOne solves practical task from a real life communication, it's examples created by @voile and @FArekkusu already bring profit to JS developers sharing how to use 1n literals.

So even this fast created katas have their right to live and bring mastery throw completion.

@lbvf50mobile lbvf50mobile reopened this Jul 4, 2019

@hobovsky

This comment has been minimized.

Copy link

commented Jul 4, 2019

To give you some insight why kata might be perceived as low quality:

  1. Test messages are misleading, because "actual" and "expected" are swapped:
    image

  2. Tests for kata are beyond poor, I did not have to do any actual work to solve it:
    image

  3. Kinda poor wording, but this might be a language issue. Me, as a non-native English speaker, seeing "delete 1 from this number", I would just do str.replace('1', ''). I think "subtract" would be better word.

While I agree that it's not an exact duplicate, there's A TON of bigint kata all over CW, ad nauseam. However as a not JS person, I think I would get some education from this simple introduction into JavaScript BigInt type. If it would be a good introduction, that is. I solved the kata as you see above and leanrt nothing.

So even this fast created katas have their right to live

Here you are wrong. fast created is usually crap, you need to work a bit harder to create something of good quality, albeit easy.

How can be located 5 issues in a primitive oneliner?

These 5 issues are not located in a primitive one-liner. They are located in all lines you (i.e. kata author) wrote or haven't written while authoring the kata - most notably test suite, and potentially in solution setup and/or reference solution.

@lbvf50mobile

This comment has been minimized.

Copy link
Author

commented Jul 4, 2019

@hobovsky why do you lies?

Tests for kata are beyond poor, I did not have to do any actual work to solve it:

You code solves only static tests of minusOne kata, and you specially avoid to share code.

@hobovsky

This comment has been minimized.

Copy link

commented Jul 4, 2019

Yeah I mixed up the screenshot, here's actual one:

image

Sorry for that.

@lbvf50mobile

This comment has been minimized.

Copy link
Author

commented Jul 4, 2019

@hobovsky no problem. Some time it happens.

@lbvf50mobile

This comment has been minimized.

Copy link
Author

commented Jul 4, 2019

@hobovsky you know, even you "cheating" solution is a good example how to approach :)
But how did you know that 1062462935174393900.

This is great. Need to shuffle you got this number, from the test sequence.

 it("Auto test Huge numbers", function() {
    _.shuffle(_.range(1,1500)).forEach(x =>{
         let a = (BigInt('1062462935174393900') + BigInt(x)- BigInt(1)).toString();
         let b = (BigInt('1062462935174393900') + BigInt(x)).toString();
         Test.assertEquals(a, minusOne(b))
      
      });
  });

Any way, here you showing master approach. But kata is for newbies.

@FArekkusu

This comment has been minimized.

Copy link

commented Jul 4, 2019

I came here to get new knowledge and share them with people

It was created based on real request from a chat

Nobody cares why you're authoring on CW, but people do care about what and how you're authoring. Your may create an ideal guide on some concept/technology in the form of a kata, but if it does not meat the quality standards, it will be retired, and no amount of crying about "bad PUs" will change this fact.

I blocked you because you are seeking endless issues that do not reflect the main idea in any way

The quality standards for the translations are the same as for the katas. Your translation was bad, and I pointed out the issues. It's not my problem that you don't recognize them as ones, in that case the best thing you can do is learn from more experienced users. But if you choose to ignore everything - the translation can be rejected easily (which I did eventually).

@lbvf50mobile

This comment has been minimized.

Copy link
Author

commented Jul 4, 2019

@FArekkusu misconception in purpose of Codewars in your case made a huge harm to Codewars itself. Situation that you going to prevent guides appearance on the Codewars simply killing this service.

What you did eventually adding damage to Codewars via forbidden normal translation of intersting kata to the JS.

Instead of improving it by fork and deliver translation to users. You prefer to write endless comments. And users still does not have JS translation of this kata. Just nothing but you demonstration of your reject power.

I meet many katas even without Auto Tests at all and their serves to their purpose. U just do not get why do these katas required by practical developers.

@hobovsky

This comment has been minimized.

Copy link

commented Jul 4, 2019

What you did eventually adding damage to Codewars via forbidden normal translation of intersting kata to the JS.

I just checked your translation to see what's this fuss all about, and to be honest, I would rise exactly the same remarks Farekkusu did. There are some widely recognized standards when it comes to creating tests in general (in so-called "real world"), like covering edge cases and covering ~100% of the specification, and there are a few things agreed on by CW authors (like random tests which should ideally cover 100% of specification, and edge cases, if possible).

I meet many katas even without Auto Tests at all and their serves to their purpose. U just do not get why do these katas required by practical developers.

That's true that there is a lot of translations which do not comprehend to these rules. It's true that there's many power users who do not care about these. But in almost every case such translation turned out to cause troubles of some kind.
CW has lots of problems with quality of content (kata and translations) - just pick 10 kata at random and see how many of these has no issues raised by users. Power users eventually got fed up with this and decided to go harder with reviews, approval criteria and rejecting bad stuff, and, in the long run, they hope to improve quality. Another thing is that since some time it's much easier to find and accept a pending translation and many people do it mindlessly without proper review - that's why you might observe a rise in the number of rejected translation: so they do not sit there to get eventually approved, full of issues, by someone else. But rejected translation is not the end of the world: it can be forked and fixed.
*Did you know: * that 90% of C and C++ kata is broken because of flawed or underspecified memory management requirements, or missing includes? Do you know why? Because authors do not care.
Also the fact that kata is meant to be easy (8 or 7 kyu) does not really mean that it should be authored in a sloppy way. If you leave issues in your kata, someone, sooner or later, will stumble into them and will be disappointed in some way. Why would you want to make people not like your translation? Like someone said above: authoring an easy kata is not easy.

Instead of improving it by fork and deliver translation to users. You prefer to write endless comments.

Tell me please, why should anyone fix your work while you are still active and present here? Why can't you fix imperfections pointed out by others in your translation? Yes, users edit and modify imperfect kata and translations, but they usually do it when original autor is no longer active or does not respond to their remarks. Hijacking a content of an active author is not considered a proper approach.

And users still does not have JS translation of this kata. Just nothing but you demonstration of your reject power.

While I admit that I do not like the tone and the way some Power Users approach other people, I also do not get why you are so touched by your translation being rejected and you seem to take it very personal. Can't you just submit a new one, with issues resolved and remarks properly addressed? If it will be good translation, it's really unlikely to be rejected. Also please mind that people raising remarks on your translation might know something what you do not know (okay, maybe not always, but sometimes they do) - it's sometimes worth to ask what they mean, why do they think it's a problem, and how would they suggest to solve it. You can even ask on chat (in "kata authoring channel") to get better feedback. Just do not expect it to be easy, because it's not.

Perfect is the enemy of done.

... and "crappy" is opposite of "fun".

@daniloxxv

This comment has been minimized.

Copy link

commented Jul 4, 2019

I think you are missing the point that Codewars already has a library with thousands of kata covering a wide range of 7-8 kyu challenges. That should be taken into account before creating a new kata: if the challenge you are proposing doesn't offer anything new compared to older ones, there is no point in adding it to Codewars. This is mentioned right at the top of the Create Your First Kata guide.

There are plenty of other kata asking the user to perform mathematical operations on strings. They were created years ago and fulfill their role well. There's no point in adding another one. In my opinion, that was the main issue with your kata -- not the fact that it could be easily solved with BigInt.

I do agree that the beta process is too strict sometimes, but your kata is an example of why the beta process exists in the first place -- to stop duplicates or low quality kata from being published and reaching users who would be better served by the existing challenges on Codewars.

@kazk

This comment has been minimized.

Copy link
Member

commented Jul 6, 2019

Closing because users have explained well already.

I like to spend 10-15 minutes and get new snippets of code.

If you mean you'd like to spend 10-15 minutes authoring a kata and get new snippets from others as solutions, then please use something else.

already bring profit to JS developers sharing how to use 1n literals.

I don't think JS developers need a kata to learn that.

A BigInt is created by appending n to the end of an integer literal — 10n — or by calling the function BigInt().

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt

@lbvf50mobile

This comment has been minimized.

Copy link
Author

commented Jul 6, 2019

If you mean you'd like to spend 10-15 minutes authoring a kata and get new snippets from others as solutions, then please use something else

I'm sorry. But did not you get after 8 paragraphs that I write about power side of Codewars is an ability to get into new languages by solving simple kata in several minutes?

I don't think JS developers need a kata to learn that https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt

Why are you so careless about text you are reading? I stressed several time that this kata is to use Standard Library and you send me link I used to create this kata. This is 7-8kyu kata.

If this situation with blaming simple kata will continue. Only because it solved by a language Standard Library . Codewars will lost it most powerful side.

@kazk

This comment has been minimized.

Copy link
Member

commented Jul 8, 2019

But did not you get after 8 paragraphs that I write about power side of Codewars is an ability to get into new languages by solving simple kata in several minutes?

You can continue to do so by solving existing kata created by others. If you want to become an author, please meet the requirements. That's all.

What you're complaining here is your "fast created" kata being rejected. And users have explained that it was rejected because it doesn't meet the requirements, not because it's "simple".

By the way, we had an idea to introduce a separate category of content for purely educational purposes (tutorials) in the future. Those will explain some concepts in the description and have some simple tests to check the knowledge. This will be a completely separate thing and I think what you're trying to say can be supported there.

you send me link I used to create this kata

No, I quoted the first line from the description of BigInteger, which you decided to ignore: "created by appending n to the end of an integer literal — 10n". No kata is necessary just to "teach" that, i.e., if someone didn't know about BigInteger, they'll read the documentation and see it there.
I'm just pointing this out because this (BigInteger literal) was the only "benefit" mentioned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.