• Custom User Avatar

    I mean to mention that within the description of the kata for people to avoid confusion for future folks. I have already solved it in the past. Mentioning it here won't be visible for newcomers and won't be helpful to help them understand the problem!

  • Custom User Avatar

    Thanks for resolving the issue. But concurrency is well-known as advanced level in Go and generally speaking, and that's why I considered this rank.

    Look lemme share my thoughts for clarity. I wanted to present some excercises for people to train on before interviews e.g
    When engineers get a chance to join companies, they are asked to solve an online test to examine their abilities. Usually & Often the test includes some debugging exercise like this. I wanted to let trainees get the sense of going through all possible places that could cause the bug. that's it!

    Yes, the solution is so easy. Sometimes it's an = sign missing. But it requires an advanced understanding of advanced language topics or computer science topics in-general.

  • Custom User Avatar

    I am thinking now about what should or can i do in order to get your reported issue resolved, May you kindly advise? :)

  • Custom User Avatar

    But i'd love to learn more from you regarding why would this affect ranking. Just don't feel that i understand.

  • Custom User Avatar

    Good Catch! Thank you for that.

    Though it is meant to be solved in any way that works and should adhere to best practices and idiomatic Go standards. The main purpose of authoring it is to start introducing some challenges for folks need to train on Go concurrency model since I've noticed a lack of such excercises and wanted to start myself. Same applies for Debugging in Go here on CW, all available are white 8kyu.

    In a real-world scenario though, people's code/solutions will absolutely go through a review process to spot such inefficiencies in their solutions. So, if somebody tried a solution here for this kata, that works like the one you kindly presented .. they are supposed to check the other approaches/solutions after submitting theirs for the sake of learning. That's assuming they are approching the kata to learn/train on Go concurrency issues. And that's the main goal assumed by the platform. Otherwise, we need to set constraints (memory & time) to prevent such work arounds for agreed upon submission approaches. And since CW does not provide such ability, the only solution left is to add Performance tag and stress on the tests till they consume the 12 seconds threshold and may be also drain the available memory :D

    I wanted to avoid the latter since begininng as I wanted the kata to focus on concurrency && debugging only. Because of the reason stated above (enrich debugging and concurrency kata available on the platform for Gophers).

    Anyway, I do not think of an instant modification right away that can refuse similar kinda solutions. But as I told you it's the kinda kata that presumes innocence in trainees xD due to lack of constrains tuning.

    However, I might re-think it to find out something "I feel there could be". But TBH, don't feel it's worth the effort as the main goal is specified within the desc along with an advice or pushing towards the standard & best practice. Since the only firewall to guard against other un-desired solutions is all about setting env constraints, which is not easily doable with the current environment, let it be I'd say.

    Speaking of the ranking, I just went through the docs tryna find the most suitable rank for it. Ended up unable to determine. So used the feedback that usually is provided for early solvers during Beta state of any kata once they submit a successful solution at the top of the page. I found the most suitable one is as follows:

    1. 4 kyu kata represent a competent programming level. At this level the kata begin to take some serious thought to complete. They include tasks that may handle:
    • Computer science concepts utilizing complex algorithms
    • Advanced design patterns
    • Understanding intricate business requirements
    • Advanced concepts such as concurrency, parallelism, meta programming and cryptography
    1. 3 kyu kata represent a competent programming level. At this level the kata are similar to 4 kyu but are more challenging. They include tasks that may handle:
    • Computer science concepts utilizing advanced algorithms
    • Ability to implement advanced requirements in a scalable fashion
    • Basic AI/machine learning algorithms
    • Detailed usage of advanced concepts such as concurrency, parallelism and cryptography

    and that was the only space where i found instructions on how to rank a kata related to concurrency that's to the point. Thus, changed the rank just yesterday to 4kyu instead of 6 or something i can't accurately remember now.

  • Custom User Avatar

    It's overhelming procedure, isn't it!

  • Custom User Avatar

    BTW When I tried I ensured that the search criteria includes All Languages not only My Languages :)

  • Custom User Avatar

    Tried already before, nothing seems relevant to me.
    Also tried turtle, bot, direction, robot moving in 4 directions, directions.

  • Custom User Avatar

    Looked up using the keyword direction in search but couldn't find something similar.

    Would be appreciated if you can point out to something.

  • Custom User Avatar

    Good point & good input example, but the author implicitly explained it within the desc with the first and second examples provided. The intention of the kata is to define the day as the 24 hrs starting from first time the alarm rings at (the least value provided) all the way to itself again, with no consideration to midnight. "Midnight is just a mankind agreement on day start & end, still controversial though!"

    That said, yeah with the input you suggest ["09:00", "10:00"] should return 23 hrs or more precisely "22:59" since alaram takes a minute till stops ringing and that minute isn't taken into account, so we start counting after which all the way until the next ring. And that's a day according to the kata's implicit definition.

    In other words, we can get 2 intervals from that input during the entire day (9 o'clock - 9 o'clock):

    • One interval as 59 minutes. After first ring finishes till next ring start.
    • Second interval as the other way around .. from 10:01 to 9:00.
      The max interval here is the outer as opposed to the inner. "Treating the day as a cycle between any given 2 seconds that must be equal to 24 hrs"

    The provided solution & test cases also verifies that intention.

    LMK if I missed something :)

    Cheers,

  • Custom User Avatar

    Shouldn't it be stated clearly within the desc that input is guaranteed to not be empty? Having at least one time item as argument.

    I'm saying that as I'm translating the kata and wanted to ensure test cases are written properly (i.e no need to handle such an edge case e.g)

    Kindly LMK as I see the solution && test cases are based on that fact without clarifying it in the description.

    I'd rather to always have I/O section provided for any kinda kata to standardize the process a bit.

  • Custom User Avatar

    Wanted to convey a msg to author/contributors and/or reviewers tbh

  • Custom User Avatar

    But I never meant that

  • Custom User Avatar

    Okay, i think it must be crystal clear that after every mistake Alex has to redo the failed kata solution .. Thus, consumes more 6 minutes for next trial! Hence, only after successful submission of each kata we can mark it solved and subtract calculated time for this particular kata from the total time provided!
    Shouldn't the description be that clear?

    Guys, the kata is marked as FUNDAMENTALS and Ranked as 7 KYU. Isn't it?

    Being tricky by hiding important info for solving the challenge is different from making the challenge more complex by racking up complexity & difficulty like utilizing different data-structures and/or algorithms for the sake of solving the problem and being really trained on PROGRAMMING.

    Brevity is different from conciseness.

    Maybe it can be a fit for PUZZLES. But IMHO making the description clear is the way to go!
    Think of it as a task handed/provided to you in a day-to-day job/work on a task management tool like Jira for instance, would you like to get your tasks described that way?
    People are here to practice programming I swear, Ain't they?!
    At least this is the fundamental and principal and main and master and ultimate goal. Then, whoever wants puzzling should visit the relevant space/tag/criteria on-purpose and expect this kind of tricks and be on their own, shouldn't they?

    Please review this and LMK your thoughts =)

    Kind Regards,

    BTW, the kata is great. Fun, well-designed, well-solved, and well tested. I liked it so much! Just like it to be perfect and help future folks avoid questioning themselves and think that tests are written in a wrong manner or mistakenly!

  • Custom User Avatar

    Perfecto =)
    Keep Going & Rolling, Gopher!

  • Loading more items...