zenolus's blog

By zenolus, history, 5 years ago, In English

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.

  • Vote: I like it
  • +349
  • Vote: I do not like it

| Write comment?
»
5 years ago, # |
  Vote: I like it +3 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

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

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

great idea zenolus!!!

»
5 years ago, # |
  Vote: I like it +1 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +3 Vote: I do not like it

    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!

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    You can try now. I have fixed the issue.

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Would be nice to display a message..."currenty not working" or something.

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    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.

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it +1 Vote: I do not like it

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

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Its not working..

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I'm trying to see what's wrong. I'll let you guys know when I clear it

»
5 years ago, # |
  Vote: I like it +1 Vote: I do not like it

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?

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

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

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it +1 Vote: I do not like it

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

      And great work. Thank you

      • »
        »
        »
        »
        5 years ago, # ^ |
          Vote: I like it +2 Vote: I do not like it

        Okay cool. I can do that. No issues!

»
5 years ago, # |
  Vote: I like it +6 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
5 years ago, # |
  Vote: I like it +9 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it -19 Vote: I do not like it

    Coz his focus was on building the UI only. Its a hollow website with no backend.

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      That's not the case. It is my first time working with backend. I'm having some trouble setting things right. I'll correct it.

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    same here

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    hey, i'm sorry but i'm trying to fix it. First there was some issue with heroku not being able to handle so many requests. Now when I shifted to GCE, there is some issue with http/https. I'm working on it.

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    Hey AriaH you can check it out now!

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
5 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      5 years ago, # ^ |
      Rev. 2   Vote: I like it 0 Vote: I do not like it

      I think the point (1) should be your highest priority, since tags often "spoil" problems :")

      Point (2) can be done sometime later.

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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

      • »
        »
        »
        »
        5 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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.

        • »
          »
          »
          »
          »
          5 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          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

          • »
            »
            »
            »
            »
            »
            5 years ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            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.

»
5 years ago, # |
  Vote: I like it +1 Vote: I do not like it

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.

»
5 years ago, # |
  Vote: I like it +12 Vote: I do not like it

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!

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

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

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

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

      • »
        »
        »
        »
        5 years ago, # ^ |
          Vote: I like it +20 Vote: I do not like it

        Nah it is a little too extra actually. I'll remove it tomorrow

»
5 years ago, # |
  Vote: I like it +5 Vote: I do not like it

UI rated 100% :)

»
5 years ago, # |
Rev. 2   Vote: I like it +58 Vote: I do not like it

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.)

  • »
    »
    5 years ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    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?

    • »
      »
      »
      5 years ago, # ^ |
        Vote: I like it +5 Vote: I do not like it

      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.

      • »
        »
        »
        »
        5 years ago, # ^ |
          Vote: I like it +5 Vote: I do not like it

        Okay I got your point now. I'll work on that.

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I have used MERN stack for this. You can find the code for the frontend here

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

What I need to do after inputting my handle?

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    That's all you need to do. Put your handle and submit (press Enter).

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

NOTHING is working properly. please check the issue.

  • »
    »
    5 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
4 years ago, # |
  Vote: I like it +4 Vote: I do not like it

Site is not working.

»
3 years ago, # |
  Vote: I like it +3 Vote: I do not like it

Is upsolve.me down?

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

i can't find it

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Is the website still alive?

  • »
    »
    3 years ago, # ^ |
      Vote: I like it +2 Vote: I do not like it

    This works! upsolve.netlify.app.

»
3 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

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

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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 years ago, # |
  Vote: I like it +5 Vote: I do not like it

It is not working. Please help

»
2 years ago, # |
  Vote: I like it +5 Vote: I do not like it

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

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Bad project

»
15 months ago, # |
  Vote: I like it -8 Vote: I do not like it

I followed link and It opened 1xBet

Is it bug or ...

»
15 months ago, # |
  Vote: I like it -8 Vote: I do not like it

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