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

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

Добрый день.

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

Я собрал в список всех тех нововведений, которые в той или иной степени коснулись кого-то (или всех) из пользователей. В этом безликом списке нашли свое место результаты многодневной работы каждого члена (иногда c приставкой ex-) технической команды Codeforces: MikeMirzayanov, MaximShipko, kuviman, fcspartakm, Avalanche. Есть и ценные помощники Edvard (помог с внедрением образовательных раундов), stingray (постоянная помощь с администрированием и настройкой серверов бесценна), demlit и lthirteenthl (помощь с администрированием и железками). И это я только перечислил тех, кто помогает в техническом плане — есть еще важный список всех тех, кто способствует развитию и жизни Codeforces в других аспектах. Спасибо!

А вот и обещанный список завершенных (иногда частично) наших дел в 2015-м году.  

Codeforces

  1. Шаг в 250 баллов в стоимостях задач.
  2. Редиректы со страницы профиля с учетом переименовываний аккаунтов.
  3. \href и \url в HTML-версиях условий.
  4. Нотификации и уведомления при одновременной работе нескольких менеджеров по ответам на вопросы во время раунда.
  5. Правила проведения регионального этапа РОИ с помощью lite-версии сайта.
  6. Кастомные процессы регистрации для раундов Rockethon 2015, ZeptoLab CodeRush 2015 и AIM Fund Round.
  7. Расширена функциональность всплывашки по клику в таблице результатов.
  8. Добавлен поиск в тренировках и мэшапах по названию контеста.
  9. Фикс многократной отсылки одного вопроса во время контеста.
  10. Улучшение отображения теневого статуса, названий файлов авторских решения для менеджеров контестов.
  11. Регистрация команд для VK Cup 2015, поддержка команд на Codeforces-раундах.
  12. Пересчет индивидуального рейтинга при участии команд.
  13. Реализована возможность проводить краудфандинг-кампаниии. Спасибо всем поддержавшим!
  14. Постраничная навигация для тренировок/мэшапов.
  15. Отдельная страница с изменениями рейтингов (в виде табов у таблицы результатов).
  16. Запуск визарда подготовки тренировки в обычном режиме (а не обновления) для пустого контеста по клику на “+".
  17. Удаление комментариев в первые несколько минут после публикации.
  18. Заблокирована переписка для неопытных участников во время контеста.
  19. Ссылка на правильную локаль в письмах-нотификациях о комментариях.
  20. Строчка со статистикой в ранклистах.
  21. Подтверждение перед публикацией поста.
  22. Протягивание хэндла взломщика в качестве мета-информации при пуше теста в Полигон.
  23. Обновлен способ авторизации через Google.
  24. Улучшена поддержка ревизий для постов: просмотр диффов, отдельных ревизий, переключение между ревизиями и т.п.
  25. Удобный способ добавлять картинки в пост прямо со страницы создания поста.
  26. Нотификации через browser api о новых объявлениях во время контеста.
  27. Списки пользователей: менеджемент, их применение на некоторых страницах.
  28. Предзагрузка картинок в постах/комментариях/задачах.
  29. Проверка детерменизма генераторов при взломах.
  30. Подсветка синтаксиса кода на форме взлома.
  31. Не показывать давно не участвующих пользователей на странице рейтинга (отключаемо).
  32. Для сокращения потребления памяти и ускорения работы под нагрузкой переписали хранение некоторых данных на in-memory C++ сервис.
  33. Поддержка печати беджей и дипломов (нужно для финала VK Cup 2015).
  34. Поддержка печати во время раундов, уведомлений о шариках (нужно для финала VK Cup 2015).
  35. Рейтинг по контестам в группах.
  36. Улучшена поддержка логических задач и формата проведения Call To Code (в рамках совместного мероприятия с Google).
  37. Обновлены формулы подсчета рейтинга, появились новые звания.
  38. Добавлена мета-информация об авторах раундов/контестов.
  39. Cтраница “Проблемсеттинг" в профиле.
  40. Улучшен парсинг ранклистов контестов в визарде создания тренировок.
  41. Поддержка сообществ в рамках программы Botan Investment по поддержке регионов.
  42. Поддержка форматов образовательных раундов (открытые взломы для ACM-ICPC контестов).

Polygon

  1. Значительно улучшена производительность за счет мониторинга файловых изменений в working copy.
  2. Локализация stdin/stdout в problem.tex.
  3. Улучшена поддержка разборов задач для контестов — теперь можно скачать PDF/HTML со всеми разборами.
  4. Добавили свои olymp.sty и statements.ftl в каждую задачу.
  5. Улучшена производительность сборки пакетов.
  6. Загрузка решений в Полигон из Codeforces.
  7. Окрывать по-умолчанию максимальный тестсет.
  8. Добавлена поддержка Review — одновременный просмотр условий на всех языках + валидатора.
  9. Установка валидатора/чекера/интерактора со страницывалидатора/чекера/интерактора.
  10. Новый редактор для кода.
  11. Поддержка testOverviewLog и найденных features в валидаторах.
  12. Поддержана верификация состояния задачи (в том числе при сборке пакетов) — сделать ошибку при подготовке задачи стало еще сложнее.
  13. Поддержаны многочисленные языки и возможность их выбора при загрузке файлов исходных текстов.
  14. Отображение состояния задачи прям в строках табличек с задачами.

Может что-то и упустил. Утомился логи коммитов читать!

Кроме того, есть еще какие-то завершенные небольшие задачи по testlib и другим мелким проектам (например, PBOX). Короче, мы не стоим и двигаемся вперед. Надеюсь, вы с нами :-)

С наступающим Новым Годом!

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

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

next year ..is it possible that you can provide txt files of test cases for the problems available for download

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

5. Правила проведения регионального этапа РОИ с помощью lite-версии сайта.
Что это значит? Codefofces будет официально использоваться в регионах как Яндекс.Контест, или в качестве тренировок?

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

    Пока мы используем lite-версию для проведения регионального этапа в Саратовской области. Возможно, в будущем будем расширять. Мне кажется там всё удобно и аккуратно сделано, участникам нравилось.

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

    codefofces?

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

Codeforces is always improving, one of the improves in the future could be giving access to large test cases :)

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

Happy New Year to Codeforces administrators and every coder in the world!!! ^^

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

Great Codeforces!

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

A little hope... Many people have talked about this...

It would be really great if there could be a place to hold all the educational blogs together so that novice could get started easily.

Thank Mike and Codeforces staff for this great platform!

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

You forgot the feature that shows you the time for events in your own timezone.

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

Огромное спасибо вам за вашу работу! Codeforces — поистине бесценный ресурс!

Я хотел бы внести предложение по улучшению рейтинга в группах. В принципе, там есть несколько спорных моментов, но что мне кажется однозначно плохим — это то, что человеку засчитываются в качестве участия все контесты, где он сделал хотя бы одну попытку, в том числе в дорешивание. А набрать приличное количество баллов в дорешке практически невозможно. Получается, что дорешевать контесты, которые ты пропустил, "невыгодно" в плане группового рейтинга. Конечно, по-настоящему мотивированных учеников такими мелочами не смутить, но всё равно, мне кажется, что при вычислении среднего рейтинга делить надо на количество онтайм участий (но сумму баллов считать как сейчас).

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

It would be very nice if you can add countrywise standings in every round. I know there are some API/browser extensions for this feature but if we get this here that would be great.

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

the educational rounds are the best thing happened in 2015...

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

Will I be able to change my handle/username at the beginning of new year?

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

45 hour to Good Bye 2015

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

45 hour to Good Bye 2015

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

At the first look, I thought the blog post is about:


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

    After this post, I realized that there should be a feature to auto-resize the images posted here.

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

Очень хочется, чтобы через API можно было работать с блогами/комментариями

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

"Determinism of generators verification for hacks."

How does that work? Is the generator simply ran multiple times to see if the output stays the same? If so, what if I put a 0.1% chance that the output will be different?

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

That was a great year wasn't it? Now what I hope for you to implement in the following year is to CLEAR, THE FREAKING, COUNTRY DATABASE!

GOD it's so darn PAINFUL TO LOOK AT!

               LOOK AT THIS! WHAT IS THIS???

Out of all those countries only 19 have been written correctly, or exist AT ALL! And look now:

Tunisia and Tunisie, Turkey and Turkiye... WHICH ONE IS THE REAL ONE????

Codeforces is growing and growing and given the option that you can set your country to the one you live in, it means that probably Codeforces is an international website right? Which would require them to be at least REMOTELY competent at adding countries and their ISO codes to their databse right? Well here's a shocker for ya, THEY DON'T!

If you didn't read the post above or didn't understand a single thing, let me explain how Codeforces' country system works right now. If you set yourself a country which's name haven't been added to the database yet (which is usually small countries or non-existing countries) you have to add it to the database yourself and give an ISO code.

Here comes the dumbest part: if, for some reason the ISO code of an existing country has been taken by a non existing county (Easiest example: Central African Republic, ISO Code: CF (no joke), obviously it will be taken by some smartass on a website which's abbreviation (is that a word?) are CF, because "hue-hue look at me i'm so funneh, my country's ISO code is this websites' abbreviation hue-hue look at me!") You won't be able to set it up for an actual existing country. Which is pretty sad for a minority of people (the ones that are from the countries that aren't even on the list yet).

Come on Mike, just clear the country database, it's not that hard. The website's growing every day, and lots and lots of people from various contries visit the website to practice programming. Let's make sure that everyone gets what they deserve and let us be competent at making people comfortable.

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

18.Заблокирована переписка для неопытных участников во время контеста.

Что имеется ввиду?

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

    Нельзя отправить ЛС во время контеста, если участвовал меньше, чем в определенном количестве соревнований

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

1) Похоже, что после цветовой революции, перестали приходить письма о Div2-only раундах "синим" пользователям. Наверно, осталась где-то проверка "оповестить, если рейтинг меньше 1700".
2) Ожидается ли в обозримом будущем добавить в набор языков более новую MS Visual Studio, чем 2010?

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

Thank you, Codeforces was amazing in 2015 (like always). I've learned a lot from educational contests and your very good editorials.