Блог пользователя zenolus

Автор zenolus, история, 4 года назад, По-английски

Hello, Codeforces community!

First of all, I would like to thank MikeMirzayanov for such an awesome platform. It's been almost a year since I joined and ever since I was always in the dilemma which question to solve. It's a commonly accepted fact that one should solve the most solved questions first. Many other recommender websites out there follow the same pattern — solved count for the win. However, after some days of following it, it kinda felt repetitive. Yes, the ones that everyone can solve would be the easier ones. But how do we determine if it can teach us something new? Codeforces has the problem rating system which gives a more accurate view of which question is easy and which is not. But as with the case of solved counts, rating can't be considered as the sole differentiator.

After having analyzed for some time, I found that there are three important factors that decide which problem is best suitable for practice — problem rating, problem tags, and solved count. The solved count is a good measure for determining which problems you are more likely to be able to solve. Problem rating can help us classify problems as easy, medium, or hard for us according to our rating. Thirdly, I would like to explain the importance of problem tags. It can be seen that some tags are more frequent in certain rating ranges. For example, if you check problems of rating 1300-1500, you are more likely to see implementation, brute-force, or greedy problems. So, someone who is in range just below this range can expect questions with these tags to be there in live contests let's say as a Div2 A/B. So, solving these problems will definitely help in ranking up.

Combining all these, I built UpSolve.me as a platform to give personalized suggestions for practice. The rating taken into consideration is the max rating of the user as I believe we must always look beyond what we have already achieved. Everyone has bad days and ratings fall. But it ain't bad targeting a high +ve.

May the codeFORCEs be with you!

Screenshots

Note: I am still working on the project. Team practice and tag-based practice mode will be arriving soon. Feel free to look around and give your opinions. Your involvement will only help me boost the platform. Any constructive criticism or feature requests are dearly welcome.

UPD: I didn't expect so many people flooding in at once. Heroku seems to not be able to handle these many requests at one go. I'll fix it asap. Stay tuned. Thanks!

UPD2: Moved from Heroku to Google Compute Engine. Feel free to explore it now!

UPD3: Things seemed to be corrected on GCE but again a problem popped up that https requests were not passing through. I have reverted it back to Heroku and have enabled it to restart instantly on crash so that you don't experience downtime. However, it's a temporary fix. If anyone can help me out setting it up on the GCE, please do reach out to me.

  • Проголосовать: нравится
  • +349
  • Проголосовать: не нравится

»
4 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Good job on the frontend bro! I really love the UI

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Thanks! The looks and feel are important if you plan to use something on a daily basis. That's what I had in mind.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by zenolus (previous revision, new revision, compare).

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

great idea zenolus!!!

»
4 года назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Can you help me out. Nothing happens when I fill in my codeforces handle and press Enter.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    I added an update you see. Heroku seems to have some issues with the number of requests. I'm working on it. Will fix it asap and let you know!

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    You can try now. I have fixed the issue.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Awesome UI and great job. But what is the difference between UpSolve.me and Codeforces Visualizer

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Thanks! I didn't know about the site. I'll check it out for sure and let you know.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    Hey! CF Visualizer seems to be a great website for user info statistics. I mean you can see how you grew over the last few contests, can compare against other people. But UpSolve.me is focussed on proper practicing, i.e., what to solve.

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      Yup.My apologies, I did not see the practise problems part. Great job buddy and thank you for contributing the community.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by zenolus (previous revision, new revision, compare).

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Its not working..

»
4 года назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Why I see problems only from the last round? I want to upsolve older rounds which I forgot about. Is there any way I can see older rounds' unsolved problems as well?

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    I can add it. But how many past contests should we keep? Like currently I'm showing only of 1

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      Could you make it so that we can choose the number of contests? That'll be pretty cool.

      And great work. Thank you

»
4 года назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

It doesnt seem to be working now, but thanks for the great site.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Yeah, I have been trying to find the perfect fit for the backend. This is my first time experimenting with actual backend hosting. So, please bear with me a little. I'll get it up.

»
4 года назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

why its not working!? i mean nothing happen when you enter the handle :(

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by zenolus (previous revision, new revision, compare).

»
4 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Would it be possible to open source the recommendation engine on Github? I think it would be beneficial for a few reds from the community to look at how you're recommending problems and try to incorporate what they have found helpful in their practice.

For example, if I were to guess, you don't consider WA in your recommendations. I found that at my level, WAs (and looking at the test case) will make me stuck in blue forever. I would definitely help you incorporate that into your recommendations somehow.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Sure thing. I was actually going to write another blog regarding how exactly I'm scoring the problems. But due to the backend issue, I didn't have time. I'll soon post another blog and will add a link to the GitHub project.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Awesome site!!!

Here are some more suggestions from my end to add to the functionality: (1) You are currently showing the tags. I would rather that you keep a switch function there, whether or not to show. (2) Allow us to blacklist tags, and maybe whitelist some too.

Thanks again for this n0ice website.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    As I said in the post, I'm working on two things right now. Team practice and tag-based practice. I'll surely take your suggestions into consideration.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Isnt this just like a sub part of codeforces visualizer , they show unsolved problems too , not only from past contests , but problems which were not in any contests too

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Once again, I didn't know about Codeforces Visualizer before. Besides, the unsolved problems shown there are only the ones that you might have tried but couldn't get an AC. Be it in practice or contest. But what UpSolve does is it suggests what questions you should try so that there is a high probability of learning newer stuff that may help you in future contests as well. Basically, as you might know from the codeforces community upsolving means solving at least 1 question above of your level. That's what the aim is here as well.

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      I thought upsolving meant solving problems from the contest which you were unable to solve before

      There is also a website for problems , and it recommends problems based on the weak areas (as per the submissions )

      https://recommender.codedrills.io , this one i guess

      • »
        »
        »
        »
        4 года назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Yes, I know of it. But you see, in their FAQ section, they have clearly mentioned about solved count being the judging criteria.

        "We use the number of users who have solved the problem to estimate its difficulty. The recommendations are relative to the difficulty of your solved practice problems so far. So, for example, the easy recommendations for a red coder will be harder than the easy recommendations for a grey coder"

        But I didn't find it to be the only criteria for recommendation. For example, there may be a dp question having 10k+ submissions. But the thing is for a Newbie or Pupil, targeting to be able to solve all Div2 A/B questions, dp is not one of the most important topics. Rather he should focus on implementation, brute force, etc.

        • »
          »
          »
          »
          »
          4 года назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          How do you know what one should focus on , I just dont understand

          Besides that , you are a specialist yourself , setting any criteria as per your thinking may not be a good idea

          • »
            »
            »
            »
            »
            »
            4 года назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Yes, I agree. I am open to all suggestions. I'll be releasing a blog describing how exactly I determine the recommendation score for each problem. Any input on that from the codeforces community will be appreciated and implemented.

»
4 года назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

We are getting an overwhelming response. Thanks a lot guys. But Heroku limits API calls at 4500 calls per hour. If it seems like it is down, don't worry. Please try a bit later. Moving to GCE will solve this problem, but for now, it's a temporary fix.

»
4 года назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится

Hi! First of all, awesome website, congratulations. Just a quick suggestion (might only be me), when you hover over a problem, its difficulty starts upside down and then flips back to normal. I think it would look better if it started out in the correct orientation, just my opinion though. Once again, awesome job!

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I made it like that cus it kinda felt cool. But if you feel like it's messy, I'll remove it.

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Not messy at all, just a little too extra (again, just my opinion, if you want to leave it looks just as good).

»
4 года назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

UI rated 100% :)

»
4 года назад, # |
Rev. 2   Проголосовать: нравится +58 Проголосовать: не нравится

Here's an interesting feature idea that none of the existing sites have: in "suggested practice problems" only show problems from contests I already have some submissions. There are many contests I can't do a honest virtual in because I have solved some random problem from there already. Initially I thought you had this feature because most suggested problems were like that. Also, it seems truer to the "upsolving" theme of your site.

(Contrary to many previous commenters I'm not a big fan of this kind of UI. I'm a firm believer in motherfuckingwebsite.com. Because there are so many not really functional websites with fancy UI (example: Topcoder), plain and simple websites "feel" more robust.)

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Thanks a lot for your input. I'll definitely work on that suggestion. Yes, I agree that it is better to have a plain and solid working website rather than a fancy just for show one. But I assure you the fancy UI was just my personal preference. I don't intend to cut on functionalities for that. Besides, referring to a previous comment, would it be better to have more problems in the upsolve section from a number of past contests or should I keep like a filter function that takes a particular contest ID and returns the problems that need upsolving?

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится

      would it be better to have more problems in the upsolve section from a number of past contests or should I keep like a filter function that takes a particular contest ID and returns the problems that need upsolving?

      I like the first option. Suggesting based on difficulty is good, I just want to filter out problems that I could use in a virtual contest later. I can go to a particular contest ID myself, but it's not so easy to find upsolvable problems with appropriate difficulty.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Can you elaborate a little on the web technologies used for this app? Is the code on any GitHub repository?

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

What I need to do after inputting my handle?

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

NOTHING is working properly. please check the issue.

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I just checked. It's working. I think when you would have tried, Heroku call limit might have exceeded. Please have a look at this comment.

»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Thanks for the app! There's a bug in Suggested Practice problems: It suggests problems which weren't solved in div1 contests, but solved in div2. Please fix

»
3 года назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

Site is not working.

»
3 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Is upsolve.me down?

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

OP, the site is down. Can you kindly have a look at it?

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

It's down right now pls do something to fix this...

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

i can't find it

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is the website still alive?

»
3 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Love the UI It will be really helpfull for us :) Btw What techstacks u have used in it?

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

is it working anymore ? it's just opening a page that has 3 choices : Free product advertising , games and game what shall I do?

»
2 года назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

It is not working. Please help

»
2 года назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Amazing website but I only saw screenshots as the website itself is not working right now :(

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Bad project

»
14 месяцев назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

I followed link and It opened 1xBet

Is it bug or ...

»
14 месяцев назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

You can join NealWu's discord, and there is an amazing bot, which suggest you problem