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

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

Привет, Codeforces!

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

Как создать группу

Чтобы создать группу необходимо иметь рейтинг участника Div. 1. Если у вас есть возможность создать группу, то на странице Группы у вас будет соответствующая ссылка.

При создании группы кроме названия можно указать:

  • описание — может содержать простой HTML,
  • логотип — будет сиять на каждый странице вашей группы,
  • ссылку на внешний веб-сайт группы.  

Видимость группы

Бывают открытые и закрытые группы. Открытые группы видны всем, а закрытые — только членам группы. Однако, на закрытую группу можно увидеть по секретному URL вида codeforces.ru/group/{groupCode}, где groupCode — это случайная последовательность из латинских букв и цифр. Например, этот URL можно распространять среди заинтересованных во вступлении в группу.

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

Политика регистрации

Их всего три: открытая регистрация, модерируемая регистрация, регистрация по приглашениям.

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

Роли в группе

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

Соревнования в группе

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

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

О правах на соревнования

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

Пример

В качестве примера мы создали открытую группу, в которой собрали все тренировки Codeforces Trainings Season 01, которые проходят по средам в 16:10 (MSK).

То ли ещё будет

Конечно, функциональность групп будет постоянно расширяться. Предлагайте в комментариях идеи, рассмотрим!

Иван Фефер,
разработчик Codeforces

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

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

I think this can be a really awesome feature added to the groups if there is a provision to create contests with your own choice of problems. That is, I will be able to create a contest that only the members of the groups can participate in, and I can select problems from the problemset on codeforces. This should create a contest like environment where all the members are in a room and the points system can be similar to the codeforces round. Hacking provision can be added if possible. This will be really helpful when a group of people want to practice some particular topic. Example: If I along with some friends want to practice DP, I will make a contest, set the time and duration, search and add 4-5 problems on DP that none of us has done before and then we can compete like a normal codeforces round.

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

А будут ли доступны для дорешивания задачи с приватных соревнований/тренировок?

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

It will be awesome if it support to use problems from different rounds to make a new contest.

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

Считается ли целевым использованием функционала создать группу только чтобы ее участникам было проще друг друга найти? И правда ли, что ее надо сделать приватной в таком случае?

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

    Давай попробуем начать с приватной группы. Если будут неудобства — будем смотреть.

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

This would be better if we could add contest from Polygon too.I mean , our own contests and problems.

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

    I think it's a very good idea, but it may needs a stronger judge machine and some more strict rules (may be only grandmasters can add their own contests ...)

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

    Red and yellow users can add own contests to gym. And then add it contests to group.

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

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

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

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

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

I was thinking about this recently, since I got coach mode in Gym. I thought "it'd be good to be able to organize small contests here, but without spamming the site".

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

Допустим я пишу какой-то контест из группы А и тот же контест добавлен в группу Б, в которой я состою. Есть ли возможность просмотреть результаты по обеим группам?

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

    Для этого вы должны зайти в контест через интерфейс группы Б.

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

Thank you very much for such great feature I wonder if I can delete group after creating it ? Because I want to create a group for testing the new feature and I don't want to stuck with the group forever I also wonder if the name , description and logo of group can be changed or not?

Edit: can I create my own contests and problems or only I can choose from gym?

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

Is it okay to create university public groups(with >100 members) like there is one as for Cambridge?

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

Большое спасибо за группы!

Почему создателя группы не показывают в результатах? Можно ли как-то это изменить?

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

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

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

Сразу бросается в глаза отсутствие группового чата/блога, наподобие того, как это сделано в социальных сетях. А так получается, что группы — всего лишь средство для проведения приватных контестов.

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

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

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

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

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

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

        Функционал групп будет расширяться. Однако, так как часть, относящаяся именно к контестам была довольно готова, было решено её опубликовать.

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

Полагаю, в robots.txt должен быть Disallow на /group, если приватные группы по урлам доступны.

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

Не совсем понимаю, для какой цели в URL групп присутствуют буквы разного регистра, если URL являются case-insensitive. Можете, пожалуйста, прояснить?

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

    Потому что функция randomAlphanumeric возвращает как большие, так и маленькие буквы : )

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

    Откуда информация? Цитата из стандарта:

    There may be URLs, or parts of URLs, where case doesn't matter, but identifying these may not be easy. Users should always consider that URLs are case-sensitive.

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

      Отсюда и отсюда.

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

      Хотя брутить ссылки нет резона в любом случае :).

»
11 лет назад, # |
Rev. 5   Проголосовать: нравится +8 Проголосовать: не нравится

В группу можно добавлять тренировки из уже имеющихся.

  1. Можно ли будет в группу добавить тренировку, созданную из имеющихся в системе задач (только указав номера добавляемых в тренировку задач)?

  2. Так как группы непосредственно связаны с тренировками, можно ли расширить функционал работы с ними:

1) Флаг видимости тренировок в перечне — "только те, на которые есть доступ".

2) Создание тренировок с указанием менеджеров, имеющих доступ на ее редактирование?

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

This is great!

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

Я заметил один баг.
Если ты менеджер и меняешь свой статус на менеджера то справа будет написано пригласил и твое имя.
Как то не логично приглашать самого себя.

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

    Вы, наверное, имели в виду, когда меняешь свой статус с менеджера на участника. Это не баг. Колонка отображает пользователя, который вас пригласил/подтвердил/поменял вам роль. Так как вы помели себе роль, то вы и отображаетесь. Вероятно, поведение стоит поменять.

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

Можно ли добавить в список доступных контестов (в GYM) какой-нибудь совсем простой контест из 2-3 задач (Warm-Up), для тестирования функционала?

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

if possible, please add the option to sort the members of a group based on their rating. it would certainly help a lot. thanks!

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

Just to clarify, are group members in trouble if they lose their Division 1 standing? (As you can see, I'm teetering on the edge :D)

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

При попытке сохранить измененные данные группы — Internal Server Error. Это норма, или проблема скорее всего у меня?

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

I would like to ask if there are any restrictions on the number of groups created, for example, I can create up to five groups. Or at the moment I can create it without limit.

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

Hi how do I register teams for contests in CF groups?

After I click 'register them', nothing happens.

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

I created a group sometime back which I want to leave now but I am not able to find any such option. is there any way to leave the group if I am the creator???

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

Hello,

Sorry to bump this thread up after so long, but how do you disable the common status in groups? I made a private contest in a group, with private rank list and status, but participants were able to use the group status to see the results of other's submissions. Does anyone know a fix to this?

Thanks!

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

    You would have created a mashup and added that in the group, right?? If yes, you should be able to see Can participants view common status?: in contest settings. I think unchecking this should be fine.

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

      Yes, in the mashup we unselected "Can participants view common status?" and we also unselected "Allow standings?:". This problem arises despite both these settings.