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

Автор Avalanche, 10 лет назад, По-русски

Добавлен перевод на английский язык.

Привет, Codeforces!

Меня зовут Максим Гусаров, в сентябре я присоединился к команде разработчиков Codeforces и в данный момент вместе с Виталием kuviman Кудасовым работаю над улучшением системы Polygon.

Сегодня я бы хотел рассказать вам о новых возможностях системы, в которой готовятся все задачи для раундов Codeforces и многих других соревнований по программированию.

Обновление 1

При входе в систему пользователь наряду с логином теперь может использовать и адрес электронной почты, указанный при регистрации. Также имеется возможность привязать сессию к IP адресу, что позволяет улучшить безопасность.

Обновление 2

Любой пользователь, имеющий права на редактирование задачи, может стать ее супервизором. Супервизор всегда будет получать на электронную почту уведомления о внесенных изменениях, даже если при их отправке была включена опция “Minor changes”. Для этого требуется войти в нужную задачу, перейти во вкладку “Manage ‘Access” и поставить напротив себя галочку “Supervisor”.

Данная опция может быть использована для того, чтобы создатель задачи или координатор контеста, в котором эта задача используется, не пропустил ни одного изменения.  

Обновление 3

Появилась возможность создания задачи со страницы контеста.

При создании можно выдать необходимые права каждому из разработчиков контеста. Созданная задача будет автоматически включена в контест, из которого была создана.

Обновление 4

На странице контеста теперь можно добавлять задачи в избранное. Таким образом, например, удобно помечать полностью готовые задачи или задачи, требующие доработки.

Обновление 5

На главной странице Polygon появилась ссылка на публичный github issue tracker. Там вы можете высказать свои пожелания и предложения по улучшению работы системы.

Обновление 6

Для удобства работы с большими таблицами была добавлена ненавязчивая подсветка строки, на которую указывает курсор.

Обновление 7

При добавлении в контест новых разработчиков появилась возможность выдать им выбранный тип доступа ко всем задачам контеста, к которым сам пользователь имеет доступ на редактирование. Обратите внимание, что данная операция перезаписывает имеющиеся права добавляемых пользователей к этим задачам (кроме прав владельца задачи).

Аналогично, при удалении разработчика контеста появилась возможность удалить его права к задачам контеста, к которым текущий пользователь имеет доступ на редактирование. Разумеется, эта операция не затрагивает права владельца задачи.

Обновление 8

Для большей наглядности была переработана страница “Invocation”. Рядом с каждым тестом отображается затраченное решением время в миллисекундах и использованная память в мегабайтах. В последней строке таблицы отображается максимальное время и максимальное количество использованной памяти по каждому решению. Для каждого решения цветом выделяются те тесты, на которых решение показывает наихудшую производительность, а также тесты с вердиктом OK, которые не укладываются в деленное на два ограничение по времени, и тесты с вердиктом TL, которые укладываются в удвоенное ограничение по времени.

Обновление 9

На странице контеста появилась возможность выдавать права сразу на все задачи контеста, к которым у самого пользователя есть доступ на редактирование.

Обновление 10

Теперь на странице со списком задач отображается краткая информация об их готовности, например, о наличии у задачи чекера или интерактора, если она интерактивная. Обратите внимание, что эта информация обновляется только при коммите задачи.

Обновление 11

На странице “Advanced Setup” появилась возможность клонирования задачи. При необходимости можно клонировать любую ревизию задачи вместе с историей правок, если предварительно на нее переключиться.

Обновление 12

Добавлена возможность предпросмотра условий контеста из рабочих копий и пакетов в HTML.

Обновление 13

Для уменьшения вероятности ошибок на странице “Commit Page” теперь отображаются предупреждения о текущем состоянии задачи. Так вы никогда не забудете добавить валидатор и тесты к нему.

Обновление 14

Наконец, последнее обновление касается тестов из условия задачи. Чтобы скрыть от участников особенности своего решения, автор задачи при создании сэмплов может использовать поле "Output in statements". Теперь при сборке пакета проверятся корректность введенного пользователем ответа. Эту проверку можно отключить при добавлении или редактировании теста, убрав галочку “Verify output for statements”.

Заключение

Надеюсь, что данные нововведения позволят облегчить жизнь авторам задач и уменьшат вероятность ошибок.

P.S. О своих пожелания и предложениях вы можете писать мне в личных сообщениях или на issue tracker Polygon.

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

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

WOW!

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

Это все конечно хорошо, но главная проблема полигона сейчас немного в другом.

История пользователя: I_love_natalia и валидатор. Основано на реальных событиях.

  1. Обратить внимание на красную надпись "нет валидатора".
  2. Нажать на нее.
  3. Нажать на комбококс "выберите валидатор".
  4. Поднять руки к небу.
  5. Перейти на вкладку "файлы".
  6. Поднять руки к небу.
  7. Загуглить ман к тестлибу.
  8. Скопировать валидатор "одно число от 1 до 1000".
  9. Перейти на вкладку "файлы".
  10. Поднять руки к небу.
  11. Нажать "загрузите файл".
  12. В папке создать файл "validator.txt".
  13. Открыть созданный файл через меню ПКМ.
  14. Вставить в файл текст из буфера обмена.
  15. Сохранить файл и переименовать в "validator.cpp".
  16. Выбрать файл "validator.cpp".
  17. Поднять руки к небу.
  18. Перейти на вкладку "валидатор".
  19. Выбрать файл "validator.cpp".
  20. Открыть вкладку "invocations".
  21. Запустить main correct solution на всех тестах (~8 кликов).
  22. Открыть запущенный main correct.
  23. Жать F5 до позеленения всех тестов.
  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    Так валидатор по хорошему надо еще до решений коммитить. А если действовать по принципу "да тесты полюбому нормальные, забиваем на валидатор", получаются некорректные тесты на всяких чемпионатах Поволжья

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

      Я валидатор (каждый раз по алгоритму выше) коммитаю после самплов.

      (Т.е. порядок примерное условие — самплы — main correct — чекер+валидатор).

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

    О да, интерфейс загрузки валидатора — это, безусловно, самая главная проблема полигона.

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

Благодарю за реализацию функции копирования задач!

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

is this only for codeforces contests or I can organise my own contest in it?

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

I think the webpage formatting has got messed up. Check the login/logout links and the footer note. They appear on the left for some reason. I am viewing it in Google Chrome.

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

If you are a girl, codeforces can't remember you!!!