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

Deduplicate - validate sudoku board #171

Closed
4 tasks done
hobovsky opened this issue Jan 16, 2023 · 14 comments
Closed
4 tasks done

Deduplicate - validate sudoku board #171

hobovsky opened this issue Jan 16, 2023 · 14 comments
Assignees

Comments

@hobovsky
Copy link
Contributor

hobovsky commented Jan 16, 2023

  1. Did I Finish my Sudoku?

    • 5 kyu
    • Regular 9x9 board
    • 91% with 15.5k completions
    • 6 pending issues
    • 6 languages + 5 pending translations
    • Published Aug 2014, author inactive
  2. Sudoku Solution Validator

    • 4 kyu
    • Regular 9x9 board
    • 92% with 42.4k completions
    • 25 (sic!) pending issues, but a bunch of issues is just a list of languages with missing random tests
    • 14 languages + 3 pending translations
    • Published Dec 2013, author inactive
  3. Validate Sudoku with size NxN

    • 4 kyu
    • A bit generalized version with allowed sizes other than 9x9
    • 85% with ~7.3k completions
    • 15 pending issues
    • 6 languages + 9 pending translations
    • Published Sep 2014

Conclusion

@hobovsky hobovsky converted this from a draft issue Jan 16, 2023
@hobovsky
Copy link
Contributor Author

hobovsky commented Jan 17, 2023

Kata 1. and 2. are exact duplicates, and both are a subset of 3.

I am not sure if 3. is a duplicate because of a more generic problem, but I would be happy to get rid of it if only for the maintenance cost it currently imposes. I am also not sure if 3. is related to actual sudokus, so maybe 1. or 2. are simply more appropriate. I also don't like how the problem is presented in 1. because I feel that "a(n un)finished sudoku" is IMO not really a good description.

Generally, this set of kata makes me not sure how to proceed. Whichever kata are chosen to stay, they will need a lot of attention and effort to bring them to a good shape. All three are a clusterf**k of issues, from missing tests to terrible feedback to insufficient descriptions (users are constantly tripping over and/or complaining about insufficient explanation of "boxes"). IMO there is no good choice. However, possible options are:

  • Keep 2. as oldest and having most languages. Retire 1. as an exact duplicate. Keep or retire 3.
  • Keep 1. and 3. as two separate problems, with more or less appropriate relative ranks.
  • Keep 3. as the most generic, retire 1. and 2. as not really different from 3.
  • Try something not done before: nuke all three, replace with a new kata moved through beta process form scratch.

Maybe someone has some other ideas.

@hobovsky hobovsky moved this to Discussing in Deduplication process Jan 17, 2023
@ejini6969
Copy link

The rank of 2 does not seem to fit standards nowadays! I suggest the 2nd opinion: keep 1 and 3. And I don't think we need to transfer any languages from 2 to 1 or 3, since most of them are in bad shape.

@Madjosz
Copy link

Madjosz commented Jan 17, 2023

They are all severely overranked, this task is 6kyu at most.

  1. No random tests in any language
  2. has random tests in Java, Python, Kotlin, Scala, Rust, Prolog
  3. has dumb input validation with non-square arrays and wrong datatypes. Random tests only in Rust and pending Scala, Swift (although Swift expects false in nearly 100%)

Vote to keep 2. and rerank. Retire the rest.

@Blind4Basics
Copy link

not possible to rerank: too many completions.

I'd almost retire the three of them...

@benjaminzwhite
Copy link

benjaminzwhite commented Jan 17, 2023

I agree with B4B and/or Madjosz if we must keep 1 of them: kata 2 is the "least bad" and requires least work.

I think unfortunately that it is worth keeping one such kata mainly because otherwise the Beta process will be full of people re-submitting Sudoku katas when they don't find one in the catalogue (since it's a classic in intro books/courses).

If the main argument against kata 2 is that it is really overranked, and can't be reranked, well maybe it's an acceptable compromise? It can act as many users' first Blue and be a nice little freebie?

Finally, I note from reading comments on the 3 katas that many users have provided specific fixed tests that invalidate solutions - as a maintenance activity it would be a nice idea to collect all these examples and paste them into whichever kata gets to stay while waiting for menders to make full random tests.

@hobovsky
Copy link
Contributor Author

hobovsky commented Jan 17, 2023

We don't actually "must" do anything particular, and I think other solutions are also possible. For example, we could retire all three and replace them with a new kata, build from ground up, but correctly (or, at least, to hope so). This is something I considered for some kata which cannot be easily deduplicated because all alternatives are bad, but this is not easy, and the method is not well established, so it would have to be carefully thought through. If you ask me, I think I'd like this approach the most: retire all three kata, publish a new one as a beta, and hope that it will attract translations, get approved, and serve as a replacement for the current, bad ones.

@KayleighWasTaken
Copy link

KayleighWasTaken commented Jan 17, 2023

Keep 1 and 3. At the very least Scala can be copy pasted from 2 to 1, since I wrote that pretty recently. I thought we added random tests to 3 for Python as well when we made the Scala translation, but that should be pretty easy to fix as well.

I want to keep 3 as it does have some worth as a generalisation of the task.

@hobovsky
Copy link
Contributor Author

hobovsky commented Jan 30, 2023

I think now we can test out following procedure:

I created a new kata from scratch: Sudoku board validator. I will publish it as a beta kata and add a note that it's meant as a replacement. Let's see how reviewers see the idea of replacements. If it gets to an approvable shape, it could be approved with rank determined by votes, have translations added, etc. Afterwards, we will ask to retire the two existing 9x9 kata.
The NxN kata will be kept and I will start a trial for it, present alternatives to retirement, like fixing and strengthening tests, and see what people think. If the kata survives, it will be fixed. If not, it will get retired.

@4500zenja1
Copy link

Well, with that kata the first two katas in question should be retired 'cuz the solution from the newest kata can be applied to them.

In advance, the NxN kata should be keeped because it's not as trivial, imo (also, why new kata has 9x9 grid, not NxN?)

@hobovsky
Copy link
Contributor Author

Well, with that kata the first two katas in question should be retired 'cuz the solution from the newest kata can be applied to them.

Yes, they are planned to be retired.

(also, why new kata has 9x9 grid, not NxN?)

I tried to explain this in this post.

@Blind4Basics
Copy link

I think those 2 old kata could be retired right away. This could avoid the extra use of the solutions of the new kata to grab easy points 4500zenja1 is talking about. Since we have the links to the old ones here, all translations there would still be accessible.

@hobovsky
Copy link
Contributor Author

Thats a good idea, i did not think the new kata will collect enough votes so quickly.

@Blind4Basics
Copy link

I think everyone looking here or at discord knows the intent, so I'm not surprised. As long as it doesn't come out of the blue, I think the process should succeed.

@hobovsky hobovsky moved this from Discussing to Waiting for admin actions in Deduplication process Jan 30, 2023
@kazk kazk closed this as completed Jan 31, 2023
@github-project-automation github-project-automation bot moved this from Waiting for admin actions to Done in Deduplication process Jan 31, 2023
@hobovsky
Copy link
Contributor Author

A follow-up discussion on "Validate Sudoku with size NxN" has been created: #172 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

8 participants