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

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

Всем привет!

Итак, есть как хорошие новости, так и плохие. С каких начать? Да, давайте начнем с плохих, чтобы пооптимистичней закончить.

Удаляя результаты недавнего вандализма по накрутке/сливу вклада, я по неаккуратности удалил результаты всех ваших голосов :( Мне, в самом деле, очень жаль и чувствую себя неприятно. Почти все голоса были подняты из бэкапов, но последний месяц был потерян безвозвратно. Я приношу глубочайшие извинения за этот инцидент. Постам на главной я вернул рейтинг вручную, у остальных постов и комментариев последнего месяца голосования были сброшены. Чтобы не было так обидно, повторю расхожую фразу, что здесь мы все для того, чтобы решать задачи и общаться на тему СП, а вклад это дело десятое.

Нет худа без добра: этот инцидент уже стимулировал меня починить систему ежедневных бэкапов. Эта система разломалась после переноса инфраструктуры на новый сервер. Кстати, бэкапы каждую ночь льются в дата-центр ВКонтакте (спасибо ВКонтакте) — так что попадание атомной бомбы в серверную Саратовского ГУ меня не сильно пугает.

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

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

Теперь хочется похвалиться небольшими нововведениями.

  • Прямые ссылки на решения. Они имеют вид типа http://codeforces.me/contest/contestId/submission/submissionId и доступны из всплывающего окна с решением (кликайте на символ # в заголовке).
  • Введена система специальных Codeforces тегов в комментариях/постах.

Все теги имеют вид [[tagName:param1,param2,...,paramN]], в примерах ниже квадратные скобки специально заменены на круглые, чтобы новые возможности не обработали примеры. При использовании тегов, конечно, надо использовать квадратные скобки. Итак, подробнее о возможных тегах.

  • Напишите ((user:handle)), чтобы вставить ссылку на профиль. Ссылка привязывается к текущей дате, чтобы иметь цвет/звание на момент публикации. Например, вы можете в комментарии написать такой текст "((user:Petr)) — номер один в рейтинге Codeforces".
  • Используйте ((contest:contestId)), чтобы вставить ссылку на контест. Такой тег отображается как название контеста, но допустимо альтернативное содержимое. Попробуйте так "Я принял участие в контесте ((contest:115))" и так "Я принял участие в ((contest:115,контесте))".
  • Аналогично со ссылкой на результаты соревнования: "результаты доступны по ссылке ((standings:115))" и "результаты доступны по ((standings:115,ссылке))".
  • Вы можете вставить ссылку на задачу (по ее коду). Примеры: "Как решить задачу ((problem:115B))" или "Как решить ((problem:115B,эту задачу))".
  • И, наконец, прямая ссылка на решение. Примеры "вот ссылка на решение: ((submission:700734))" или так "вот ((submission:700734, ссылка на решение))".

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

Такие новости,
MikeMirzayanov

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

13 лет назад, # |
  Проголосовать: нравится +15 Проголосовать: не нравится
Нововведения - супер!
Спасибо.
13 лет назад, # |
  Проголосовать: нравится +17 Проголосовать: не нравится

Спасибо. Особенно ждал ссылок на решения.

Что бросилось в глаза:

Не очень понятно, что означает строка в графе "Задача". Некое B-20 в случае с газонокосилкой.

И не указан язык решения. C++ от паскаля я конечно по коду отличу, а вот PHP/Python/Ruby/Haskell - не сразу.

13 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Спасибо большое!!! так классно))) желаю Вам дальнейших успехов!
13 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится
Спасибо за нововведения.

P.S. Мне кажется, в предложении "При использовании тегов, конечно, надо использовать круглые скобки." все же имелись в виду квадратные скобки.
13 лет назад, # |
  Проголосовать: нравится +35 Проголосовать: не нравится
Нововведения эти - очень здорово и своевременно! Починенные бэкапы тоже очень здорово (хотя вероятно они не так заметны пользователю, но ведь куда как важны!) По поводу удалившейся части рейтинга вряд ли кто-то станет переживать! Спасибо за предпринятую работу. Очень радостно когда ожидаемые перемены к лучшему действительно приходят! ;-)
13 лет назад, # |
Rev. 3   Проголосовать: нравится +3 Проголосовать: не нравится

Тест - tourist занял первое место на контесте Codeforces Beta Round #87 (Div. 1 Only)

13 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится
Хрен с ним, с вкладом, заново наберем.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Для некоторых пользователей, думаю, будет хорошо с прямыми ссылками на код а не через mySubmissions, что их и никто не видит (было когда-то и такое)
13 лет назад, # |
Rev. 2   Проголосовать: нравится +14 Проголосовать: не нравится

три единицы вклада потерял Alex_KPR — о, нееееееееееееееееееееееееет!


:D
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
не понимаю, почему у комментариев и текста поста по умолчанию разный размер

и если это не сильно бросается в глаза при простом просмотре текста, то при вставке никнейма это очень заметно — хотелось бы унификации
13 лет назад, # |
Rev. 8   Проголосовать: нравится +11 Проголосовать: не нравится

При вставке тега ((user:Alex_KPR)) при последующем редактировании тег выглядит как ((user:Alex_KPR, сегодняшнее_число)). Кажется, что это будет означать, что цвет пользователя будет определяться на основании этой даты (сейчас проверю, Alex_KPR да, это верно). Таким образом, эта вставка ничем не отличается от уже имеющегося копирования ссылки. 

Кроме того, в этой вставке при редактировании иногда пользователь заменяется на жесткую ссылку, когда - не понял.

Хотелось бы, чтобы все было "по-честному", т.е. цвет пользователя определялся на момент просмотра, а при редактировании тег оставался тегом. Не говоря уже о том, что написание с пробелом ((user: Alex_KPR)) не отработает.

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

    anonymous прав!

  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    1. Это сделано специально по двум причинам. Во-первых, преобразование текста комментария/поста в готовый для вывода HTML складывается в кэш с почти бесконечным временем жизни. Т.е. даже если преобразовывать тег на лету, то при изменении цвета надо инвалидировать весь кэш, что делать не хочется. Во-вторых, в любом случае будет довольно странно выглядеть запись вида, например, "Поздравляю с оранжевым цветом, Gerald" (допустим она была написана давно, а сейчас он уже красный). В комментариях довольно часто аппелируют к цвету.

    2. Если заменяется, то это какой-то минорный баг. Если научитесь его воспроизводить, то можно будет пофиксить.

    3. Как и писал выше, не уверен что "на момент просмотра" это хорошо. Да, синтаксис довольно строгий, просто соблюдайте его.
    • 13 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
      Например, если сейчас в этом сообщении я нажму "редактировать", будет прямая ссылка. Возможно, связано с тем самым кэшированием.

      Reproduce: создаю сообщение, пишу ((user:Alex_KPR)). Жму редактировать. Получается либо сразу прямая ссылка, либо ((user:Alex_KPR, дата)). Если второе, то сохраняю и еще раз жму редактировать.

      Пробный пользователь Alex_KPR.
      • 13 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

        серьёзно именно так и происходит?

        пробный пользователь anonymous

        UPD: да, так и есть

        ну и способ решения проблемы! а если я в другой локали напишу или коммент сделаю на другом языке? вот почему цвет участника не меняется автоматически!

        блин, от копипасты ника не далеко ушло решение проблемы =/
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          кстати, в случае с блогом такой проблемы не происходит

          значит, я погорячился, и это всё-таки просто баг; приношу свои извинения


          P.S. для фанатов автосмены цвета ника, таких как я, есть решение проблемы в виде ((user:никнейм,9999-01-01)) - цвет никнейма будет обновляться автоматически ещё очень долго! :-Р
    • 13 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      жаль, что поздно прочитал этот комментарий

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

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

      вообще, это одна из причин, чем мне не нравился копипаст - отсутствием автообновления цвета имени
13 лет назад, # |
Rev. 6   Проголосовать: нравится -10 Проголосовать: не нравится

Just one word - Thank You  MikeMirzayanov

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

verdict is not colored in solutions . like green for accepted : 700734

13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Изчезло ~30 вклада, за пост с предложением виртуальных контестов =(
А вообще это действительно не так важно. Спасибо ((user:MikeMirzayanov)) за то, что продолжаешь развивать CF =)
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
мне кажется, в таком виде теги не очень удобны.
скопипастить ссылку намного проще, чем набирать все эти скобки с переключениями раскладки туда-сюда.

было бы круто, если бы некоторые виды ссылок автоматически преобразовывались в такие теги и красиво форматировались.
например,
http://codeforces.me/profile/MikeMirzayanov
превращать в:
((user:MikeMirzayanov))

разумеется, магию отключать, если ссылка является частью написанного вручную тега <a>.

для user, как для самого популярного тега, сделать короткий вариант, например, @MikeMirzayanov, как в твиттере.

еще у submission было бы еще замечательно дописывать язык.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Написать Alex_KPR проще, чем скопировать по 10 причинам:
    1) не меняется форматирование, см. также "что мне не нравится на CodeForces - 2"
    2) не надо трогать мышку, чтобы это набрать (язык по умолчанию у меня английский, переключение отработано до автоматизма - возможно, дело в этом)
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Great, it's good how Codeforces are improving, I was missing a direct link to the submission until now.
It would be also nice to be able to see the whole input of a test case, now it's truncated if too long.
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Transmitting all of 10^6 bytes of input may be too tedious for CodeForces server.

    • 13 лет назад, # ^ |
        Проголосовать: нравится +10 Проголосовать: не нравится
      Well, you are right, it may take too much space on screen to.
      But what about some manual download on-demand? I miss it sometimes when my solution always fails on same input and I  have no idea what's wrong.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Very good innovation.
The next should be something I asked some time ago: a standard "Contest editorials" section, maybe in the upper menu, Contest -> Editorials, where each editorial is organised like a wiki. It would be awesome if each editorial is divided in 5 section (one for each task) and you can modify (especially: you can create) each "paragraph". A system where every rated member, who solved that particular task, can write about its solution. Imagine if an user commits some changes, then the new version will go into an "approval queue" until some admin (or more simply, some red user) checks and confirms that edit.

It would be a great improvement, imho. And it is surely possibile (by a coder perspective).
  • 13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Many "red users" are latent trolls, so enabling them approve changes would lead to very specific editorials.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Of course, implementation details of this "feature" are likely to be different than I described. Surely, the problem setter(s) should have "approval rights" on their own rounds. The important thing is to make this feature be real: it is often annoying (at least for me) when some editorials are missing, or aren't listed in the unofficial "main" post (link).
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
13 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
one more test: MikeMirzayanov
13 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится
Навеяно этим блогом и его началом: http://codeforces.me/blog/entry/3297
"Привет, %username%"

Может сделать возможность писать что-то вроде: ((user:me))
И каждый будет видеть что-то вроде: "Привет, YatsukoYin" или "Привет, Egor"

Было бы неплохо.
  • 12 лет назад, # ^ |
      Проголосовать: нравится -8 Проголосовать: не нравится

    Коль всплыла тема: я считаю, это плохо, ибо тогда будет вводить в заблуждение и возникать вопрос: "А чего это он ко мне обращается?"

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

Прошу прощения за некропостинг. Я уже второй раз пытаюсь добиться того, чтобы разбор нормально парсился. В данный момент все теги показываются как теги и не парсятся совсем. Но, меняя какие-то не относящиеся к делу части текста можно добиться того, что теги начнут парситься. Это странно. Я что-то делаю не так?