It was around three years ago, when our team mate, Suraj, had asked us to implement an automated system of sending goodies. We were struggling to deliver the users their winnings on time and quite a few of them would never reach their intended users. Not responded emails, faulty stale addresses, goodies getting lost in transit and tracking issues; left us hassled. We altered processes, included more checkpoints, reached out to our users, but nothing seemed to work.
Quite naturally, we liked the suggestion. The idea was to switch from a “push the goodie” system to “pull the goodie” one. Let the responsibility of getting a goodie be given to the users. We realised this would solve additional problems too, like the same user getting the same goodie multiple times, by giving her more options of accumulating points and winning something of a higher value.
This year, our growing struggle made us pick this up as a gift to ourselves and our users, as we turned seven. In the summer, with our intern, Raju Varshney, putting his hands up, we finally decided to put an all out effort to get this out. While he took up the coding, the rest of us scampered around to get an exciting new list of goodies prepared. And eventually the new system got ready to be served.
However, one thing at CodeChef is that we are a team full of pranksters! We love playing pranks on each other and we thought this to be a great time to include our users. It was long back that we did something similar and since then we have hardly done anything that grave! And this provided us with the perfect opportunity. It also served us as an experiment.
While we implemented the new system, we also decided to change the goodies to those of no monetary value to be considered as a token of appreciation for the effort put by the users. We wanted to see whether all our users want a goodie of monetary value or is it the winning that matters? We added three fun goodies on the site and kept our fingers crossed to see if one can spend her hard earned laddus against something that wasn’t initially promised – the duck, the cube and the ball.
And what we got was a pleasant surprise! Though we got a lot of criticism on the selection of our new goodies, we did find some of our users placing orders to actually get them! Kudos to them! Though we are removing those dummy goodies, we promise to give these users what they have ordered while reverting their laddus into their accounts. We had loads of fun and we hope that you would not mind this small prank of ours.
With this, we unveil the new goodie system. We have credited all your pending winnings as laddus into your account. Go ahead and check them out and have a look at the new goodies. And order whatever you like. We believe you will like some of them. In case you have any doubts or concerns regarding your laddus, do send us an email to firstname.lastname@example.org. Do not forget to read our terms and conditions to get more insight into the process and to not be disappointed later. We promise it is a good read.
To start with, let us revisit our definition of Time Limit: It is the time in which your program must read, process, and output the result of an input test file. It is defined in detail here.
Up until now, for each submission we used to display the total execution time across all the test files. What this means is that if a problem had multiple input files, then the reported execution time of your submission used to be the sum of times taken for execution on each test file. Thus, many a times, the reported time limit would be higher than the Time Limit specified for the problem. Most of you have gotten used to this, but for every new user this has created a lot of confusion.
Example: If the problem has 3 test files a, b, and c and the time limit for the problem is T. The time taken to pass each of them is ta, tb, and tc respectively. Then currently time displayed is (ta + tb + tc). And may a times (ta+tb+tc) > T, causing the confusion.
Additionally, sometimes revealing the cumulative time of execution reveals a lot more about the test cases than what the problem authors want to reveal during a running contest. This applies more to the Challenge problem where users make many solutions to try and extract information about the test data.
And hence, from the feedback that we have received from our community and problem authors, we have changed the way we will report time against your submission. From now on, the time displayed for your submission will be the maximum of the times taken by your solution to execute each test file. Let us explain with another example.
Example: If the problem has 3 test files a, b, and c and the time limit for the problem is T. The time taken to pass each of them is ta, tb, and tc respectively, with tb being the maximum time taken among the 3 test files. So, from now, the time displayed will be tb, making the time displayed <= T.
This ensures that the reported time will always be less than or equal to the Time Limit of the specified problem which is what is expected by everyone.
So, next time you are looking at that Time column against a submission, do keep this new change in mind. However, we will not be making this change in the previously closed contests. This is only applicable to our new contests and the problems in the practice section.
Do let us know what you think of this new change we have brought in for you at email@example.com
Till next time. Adios.
Any self respecting website on the internet today needs to be on https. And today, after more than 6 years of our inception, thanks to the child-like enthusiasm of our intern, Shivam Khandelwal, we just did that. No more man in the middle attacks and session hijacking by the improperly configured proxies.
Do let us know if anything breaks.
We have done a small change to our practice section. We have gotten rid of our “School” section and added a new “Beginner” section.
We had launched CodeChef for Schools a couple of years ago. Since then, we have visited many schools and one common concern that we have identified is that we do not have a proper place to start for the beginners. And when our intern, Vikesh Tiwari, joined us, this is something he took it upon himself to fix.
This change is a first small step that we took towards that. The “School” section used to contain all the problems from the LunchTime contests. The idea was to have newly added partially graded problems of LunchTime contests under one new tab. However, over a period of time we introduced partial grading in our Long Challenges too, and we realised that the old way of classifying problems based on difficulty levels and not on scoring type was a better one. Also, our Easy section started having problems which ranged from Cakewalk to Simple to Easy and also some Medium level problems! This was undesirable.
So we have made a couple of changes:
As an ongoing endeavour, we will try and classify our problems appropriately so that they are easy to find and attempt. We will also be adding a bunch of very easy problems on CodeChef in the “Beginner” section.
A few other changes that we have done are:
You can see many more changes coming up on CodeChef to make problem classification better in the coming days. We are working hard to make your learning easier and better. Do keep giving us your feedback.
Nothing annoys a netizen more than a long stretched registration process and identity checks associated with them. How do we know that? Well, because we have been on the receiving end of the complaints for our own registration form. But, that bothersome registration form is a thing of past now. We now have a new curtailed sign up form for you to get on board.
So, what’s new about this new registration form you ask? Let us take you through it step by step.
It’s short. That’s right; your days of filling seemingly continual columns to get a CodeChef account are gone. Now, at the time of registration all you need to give is a username and an email address. However, your username should match the following format:
It must start with an alphabet in lowercase.
Subsequent characters can be an alphabet in lowercase, a number, or an underscore.
It must be of 3 – 13 characters long.
Ex: john123, john_123
If you think even that’s tedious. We have also incorporated the social login for you. So, you can log in to CodeChef using your Facebook, Twitter, Google Plus or Github Account.
Furthermore, we have incorporated the Google location API to help you select your precise location. So, no more wondering about the spelling of your city, country, or region. Just type the initial few letters and Google will take care of the rest.
We hope that all the aforementioned changes take care of most of the pain from the previous lengthy registration procedure. However, there still are few fields that you will have to fill before making a submission from your account. And we will bring them up for you. So, you will get a pop up window asking you to fill in the missing details from your profile when you are trying to make a submission. It is just one time pop up, so we hope you will excuse us for the annoyance caused.
Now, you must be thinking “Why do I need to give all these minor details before submitting?” To put it simply, to serve you better. All the information you share with us, stays with us, and is only used to contact you and for ranking you in the appropriate rank table. We do not share any of the information you provide us with anyone. So, you can be absolutely certain about the safety of your information. We are sure you wouldn’t mind sharing them now with us.
We hope you will like our new curtailed registration process. However, if you face any bug, or encounter any problem while using it, feel free to write to us at: firstname.lastname@example.org. We will also like to have your feedback and suggestions on what else can we do to make the signup process smoother for you all. So, keep sending them at: email@example.com.
That will be all from us for now.
See you at the contests.
If you have never made one, you will never understand how herculean the task of deciding a team name is. We want our team names to reflect our attitude, to communicate, and at times to leave a legend. Whether it’s the serious doers or the dabblers, no one takes their team names lightly. This is why when you have to register a new one every time you enter a competition, it takes the fire out of it.
So, we have decided to let you use the same team name that you once registered with grave intensity. We are sure you must have started digging deep into the backyard of your memory in search of that one team name that you wish you could reuse or could register. And to find all the teams that you have made till now, all you need to do it go to your profile and click on the list given against “Team List”. So, while you are at it, there are a couple of things more that we want you to make note of.
So, what are you waiting for? Put your team names to work.
Competing in teams is a great way for preparing for the ACM ICPC. Once you form a team, you can keep taking part in many team contests that are hosted on CodeChef by institutions and organisations. You can also host your own team contests for your group of friends or school or college or organisation. It provides a great opportunity for you to elevate the programming culture in your institute. To know more about hosting a contest with CodeChef visit here.
In our attempt to build a closely knit community of computer programmers from all over the world, we had introduced a silent “group feature” for our discussion forum sometime back. Currently not available for everyone, the objective behind the feature was to let you carry on a conversation, which is pertinent to a specific set of people cutting down the noise. If you wish to create a group of your school or college or campus chapter, you need to get in touch with us and we will do the needful. We already have some groups running like the:
These groups follow the same question answer format along with the features like tagging, searching, commenting and voting the posts. They can be public or semi private to discuss any programming related topic, event, or can prepare for an upcoming contest with other aspirants. While all this sounds awesome, there was a slight shortcoming with the said feature in the form that, unlike our discussion forum, the members did not receive any notifications for their subscription when there was an activity on the group.
So, in order to keep the members of the group updated on the happenings, we have brought in a “subscription” feature. With this we have taken the primary subscription setting from forum to the group, allowing you to receive notifications for all or any activity that you choose to subscribe to in the group. So, the days of missing on updates from the group are gone behind. Go and subscribe to all the alerts from the groups you are part of, and if you are not part of any, but want to start one for your institute or organisation or your programming club, do get in touch with us.
Now, while that small change caters to a limited set of users, here’s something big for all of you. It gives us immense pleasure to introduce the addition of “LaTeX mathematical typesetting” to our discussion forum. With LaTeX the painful exercise of uploading images for every mathematical formula you want to insert in your question or answer, is a fossil now. This was a much wanted feature specially for writing good fun editorials. LaTex allows us to write mathematical expressions in a markup style, which is somewhat akin to HTML. To know more about LaTex read below:
We hope that these new features will make your stay in the discussion forum seamless. However, if you face any trouble or have any queries, do write in to us at: firstname.lastname@example.org. Also, if there is any feature that you think that can enhance the overall experience on discuss or on CodeChef do write into us. For now, play around with these new offerings from our Chefs.
We have been getting queries and suggestions regarding our partially graded problems in the Long Challenge. Starting from the way they were displayed to the section in which they were displayed, we have received many suggestions from our users. After considering them, we have made some changes to our partially graded problems. They are:
That sums up all the changes for our partially solved problems. Now, let us tell you where these changes will be reflected. You will see these changes on:
If you think we have missed something or if there is anything else that you want us, to implement do write to us at: email@example.com
With that, we now move back into the kitchen and get to work.
Till next time, adios.
See you at the contests.
We hope you have been enjoying our newly launched “Code, Compile, and Run” feature. Now, to keep up with that, we have updated quite a few of our languages and have added few new ones too. Yes, CodeChef now also supports “Chicken” and “Pypy”. That makes it two less reasons to not be on CodeChef.
So, what are you waiting for, check out the below list of updated languages and get cracking on the problems.
|Language||Old Version||New Version|
|C99 strict||gcc 4.8.1||gcc 4.9.2|
|Common Lisp||clisp-2.44.1||clisp 2.49|
|ADA 95||gnat-4.3.2||gnat 4.9.2|
If you have any concerns on the language update or if there is something you want to say, feel free to write to us at: firstname.lastname@example.org
Till next time, adios.
See you at the contests.
Ever procrastinated typing in code just because you do not have a compiler? Or, faced with the fear of installing a compiler on your system and do not know which one to do? Or been in a situation when your solution runs fine on your computer but the online judge gives you a compiler error? Or has your account been blocked and ratings deducted just because you have used some other online compiler and left your code open for everyone else without having any intention to do so?
If you answer ‘yes’ to any of the above, you will love this New Year’s gift from the Chef’s kitchen. So here we are, with our latest website addition “CodeChef ‘s CODE, COMPILE & RUN”. This is something that you badly wanted. And kept asking from us. The one who helped us in building this is none other than a long time CodeChef fan, Shivam Khandelwal, who gave you the awesome okrdx and one of our chef Abhijeet Pandey. For those who do not know, we made Shivam intern with us during his winter vacations to build this much needed feature, after he had hacked the CodeChef database and woke us up one fine morning with our admin credentials in an email! More on that offline, as we do not want to tell the world about it! Shivam will be helping us build some other cool features as well
The way you may use it is:
The feature is powered by the awesome ACE editor for the web. Some of the highlights that you will find using this ide are:
But yeah, the features do not stop there; there are many more. Stop for a while, play around and explore it.
Apart from these features, one of the most important issue that we hope this will solve is the unintended cases of plagiarism.
It has been long, that after each contest many of our users get blocked and their ratings get reduced due to the cheating cases. Most of the time, we have realised that the problem was of the code being left “Public”! So here is a big relief for all those – once you submit your code, it is destroyed as soon as you get your execution result! Yes we do not save your code anywhere. In case you want to save your code, just use the download button to have a copy in your desktop.
Isn’t it awesome? We think it is. Start using it, inform your friends about it. Show us some love as well. Whether you like it or don’t like it, do let us know. We will be happy to make it more awesome!
Over and out till next time.
Happy programming and a Happy New Year