### MaximShipko's blog

By MaximShipko, 6 years ago, translation, ,

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.

• +183

 » 6 years ago, # |   +147 EPIC BOOBS :D
•  » » 6 years ago, # ^ | ← Rev. 6 →   0 :)
 » 6 years ago, # |   -60 i don't like this update :(
•  » » 6 years ago, # ^ |   -19 very thanks
 » 6 years ago, # |   -6 OMG :D
 » 6 years ago, # |   -12 For codeforces everything is EXTREME!
 » 6 years ago, # |   -17 (.) (.)
•  » » 6 years ago, # ^ |   -11 (.)(.)How sexy the woman is！
 » 6 years ago, # | ← Rev. 2 →   +10 so beautiful updates :) thanks and Happy New Year to all CodeForces Members!
 » 6 years ago, # |   -35 what a beautiful girl you are:))))))))))
 » 6 years ago, # | ← Rev. 2 →   +20 "EPIC BOOBS :D" +97"(.) (.)" -11lol. What is this difference!?
•  » » 6 years ago, # ^ |   +13 sddl2 was the first one ;)
 » 6 years ago, # |   +93 very bad, everytime i am trying to read the text, the photo on the right is disturbing me and i am not able to read the text. :(
•  » » 6 years ago, # ^ |   0 also each time i read "my wife became so beautiful" instead of "my life beacame so beautiful".
 » 6 years ago, # |   +16 oh God.. the thumbnail on chrome for codeforces page just changed to this one... forced to remove it.. ;-)
 » 6 years ago, # |   -18 beautiful "Dhaka University Debiting Society" ... :-p
 » 6 years ago, # |   0 boobs and only boobs
 » 6 years ago, # | ← Rev. 2 →   +23 Hey guys...It's better to control our selves. :DThis is a programming web-site; not a... :|;)
•  » » 6 years ago, # ^ |   -32 its none of you business!
 » 6 years ago, # |   -20 The comment is hidden because of too negative feedback, click here to view it
 » 6 years ago, # |   -34 what will be the next codeforces round ? I hope it will be after September 25 because after then I will have the holiday , but now it is very for me to take the following tests.I don't hope to miss the competition.What's more,you wife is very beautiful!Does Russia has many beautiful ladies like your wife.
 » 6 years ago, # | ← Rev. 5 →   -24 The Updating Trainings Is Good & The Photo Also.
 » 5 years ago, # |   0 hi,it seems the ftp is not working now,i want to check some data but just can not login in ftp.
 » 4 weeks ago, # |   +1 I get this error when I try to run contest wizard: Exception in thread "main" java.lang.ClassNotFoundException: Can't find com.codeforces.contestwizard.Runner. at com.codeforces.contestwizard.RemoteClassLoader.findClass(RemoteClassLoader.java:153) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at com.codeforces.contestwizard.Main.main(Main.java:12) My Java Version: java version "11.0.1" 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode) And I use OSX 10.14.2. Can anyone help? Or who should I refer?
•  » » 4 weeks ago, # ^ |   0 Why do you need wizard? Just upload your contest to Polygon (if it's not already there) and do the FTP + contest.xml thing
•  » » » 4 weeks ago, # ^ |   0 I was trying to merge OpenCup scoreboard.
•  » » » » 4 weeks ago, # ^ |   0 Does the wizard support xml submission log from Yandex Contest to get correct submission times?
•  » » » » » 4 weeks ago, # ^ |   0 It could parse ejudge scoreboard, I used it here. Didn't tried with Yandex though.And I don't know how to manually specify scoreboard files. Is there any method?
•  » » » » » » 4 weeks ago, # ^ | ← Rev. 2 →   +8 I have a converter [github link] which accepts raw logs from various testing systems and produces contest.dat file, which can be uploaded via FTP or (maybe) just be pasted to Ghosts window at admin page (/gym/NNNNNN/admin)How to get raw logs: in Yandex Contest: enter the admin page, press Edit Contest, then on the left tab press External logs (the link will be https://contest.yandex.ru/admin/edit-contest?contestId=NNNNN#external-logs), download log. in Ejudge: go to contest admin page (/cgi-bin/master), press Dump data -> Export runs in XML external format
 » 4 weeks ago, # |   -25 I upvoted this blog for no reason whatsoever.
•  » » 4 weeks ago, # ^ |   -9 ok