MaximShipko's blog

By MaximShipko, 11 years ago, translation, In English

Good evening!

I'm glad to announce a series of improvements in the Codeforces::Gym subproject. Many people faced the following problem as they prepared problems in this section: to add a problem or edit an existing training a little bit, one had to parse and repackage the whole contest from the scratch in the Wizard. Another variant was manually editing the files on FTP. Both these ways added unreasonable challenges.

From now on you can create contest patches in the Wizard. Want to add a problem? There's no need to repackage the whole contest. Update the standings, add resources or statements? The procedure is simplicity itself. All you've got to do is to run the Wizard in the update mode and add only the really necessary changes. The Wizard will assemble the contest.zip package and mark it as a patch. You can upload the package into Taskbook in the usual manner.

Let's take a closer look at how the patch updates the contest.

  • The problem from the patch completely replaces the problem of the contest with the same index, otherwise it appears as a new problem. The problems from the contest's sandbox that don't occur in the patch, are left unchanged. To add problems to the contest, you need to run Wizard, create and parse one or several problems and assemble the package.

  • You can replace the problem statements and resources in the similar manner. A statement replaces the one that exists for this language, whatever the file name is. A resource replaces an existing one if they have the same names, otherwise a new resource is added.

  • File with standings of ghostly participants (contest.dat) replaces the existing one, if the new one contains at least one submit. If there is no such submit and the problems of the patch are a subset of the existing problems of the contest (in the sandbox), then contest.dat remains unchanged. Otherwise, a new contest.dat is generated (without submits) which joins together the sets of the contest problems and the patch problems. To update the results of the ghostly participants, you must parse the new standings in the Wizard, skip all problems by clicking Skip problem button, and pack.

Applying a patch assumes that the data of the patch and the current state of the sandbox are consistent. For this both the patch and the sandbox have a validation. This validation is similar to the one that occurs when you release a training, but is a bit simplified. When you download the full package of the contest, such validation does not occur, the archive unpacks as is and is checked only when the contest is released. The patch is applied only if both validations are completed successfully. Otherwise, the patch file is simply removed, and a new record in error.log of the training can tell you what went wrong.

The improvements also affected Taskbook, namely the validation system: if the problem was not changed since the last release of the contest, its validation won't be performed. This will dramatically speed up the process of releasing the training in the case of minor changes. If no file of the training was changed, then release will not happen, and the user will get the corresponding message.

As a little bonus we have made many improvements in the Wizard's interface. In particular, we added hotkeys for most actions (the details are in tooltips to the buttons), we have also improved a lot of dialogues:

  • We've accelerated launching the multiple file selection dialog in the Windows OS by hiding the Network element. The item can be returned by pressing a special button.

  • We've added a button that allows you to save the contest.dat, not assembling the full package.

  • We've changed the mechanism of launching open and save file dialogs. It had almost no impact on their look, but it let us add a number of enhancements, such as setting up a default file name and saving the current directory in the subsequent uses of the dialogue.

  • If saving the contest package fails, the user will be suggested to try to do it again. No need to re-validate the contest and re-assemble the package.

Full text and comments »

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

By MaximShipko, 12 years ago, translation, In English

Hi!

There are a lot of contests and trainings on Codeforces now. And it's difficult to find a tutorial or announcement for a specific contest.

And now you have an opportunity to attach materials (Codeforces blogs or external URLs) to any contest. You can click on the paperclip below blog's title and fill the popup form to attach blog entry to the contest. Or you can attach any URL in the contest's sidebar frame. There you can see resources that are already attached to the contest. Visibility of material depends on user's locale and current phase of the contest. For example you can't view statements before contest start.

The access to manage (add or delete) resources of the contest have administrators, contest managers and all "red" users.

Full text and comments »

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

By MaximShipko, 12 years ago, translation, In English

Hi all!

My name is Max Shipko. I am lead programer of Codeforces::Gym sub-project. In this blog you can post bugs of the system relating to this sub-project, as well as your feature requests. Codeforces team will make every effort to implement them.

This is a purely technical blog. Please bring as much as possible the specific information and does not throw a lengthy discussion and exchange of views on the sub-project. To do this, there is a special theme.
All posts not related to the topic will be deleted without warning.

UPD. Fixed bugs and implemented improvements ​​in the future will be deleted (hidden)
to prevent littering of the blog. All the obtained for these contributions, however, is not going anywhere.

Full text and comments »

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

By MaximShipko, 13 years ago, translation, In English

Hello!

Now you can view rating statistics for specified country and/or city on the ratings page. But there are also separate pages for rankings of the countries and the cities themselves (links to them are in the sidebar "Top rated").

Rating of a country (city) depends on participants ratings from a country (city) and calculated by the following simple formula:


where N is a minimum of 100 and number of country (city) participants, and K = 0.75.

Maxim Shipko, Codeforces Team

Full text and comments »

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

By MaximShipko, 13 years ago, translation, In English

Hello!

As many of you have noticed we have new features on Codeforces. The tab “Friends” has appeared on the user ratings page. But it is only the first of improvements made. Now you can view a list of friends on problemset standings, contest registrants and contribution standings pages. Because of increasing popularity of Codeforces the pagination has been added to the rating page.

But that's not all. In order to classify problems, it was decided to introduce the ability to add tags to them. Search by tags is not implemented yet, but administrators and users with high (your color should be at least blue) rating can add tags right now. To do this, simply open the desired problem and add tags in the sidebar form.

As you can see, the project development is actively underway. We would like to hear from you new constructive suggestions. 


Updated:

In the near future will be implemented a compact view of tags in the problemset and a setting to show/hide tags.


Maxim Shipko, Codeforces Team

Full text and comments »

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