Наше сообщество уникальное в своем роде – каждый здесь разработчик!!! Пусть кто-то с большими знаниями, кто-то с меньшими, но современные средства разработки и технологии позволяют организовать разработку новых модулей сайта сообществом при этом обеспечивая безопасность системы. Организаторам часто не хватает времени на реализацию предложений сообщества по улучшению сайта, хотя они нужны, а порой необходимы.
Более конкретно предлагаю:
1) организаторы предоставляют сообществу совокупность API сайта (при необходимости API дорабатывается или создается новое).
2) при поступлении новых предложений они проходят
этап обсуждения, где выясняется, нужно ли это усовершенствование воплощать в жизнь, выдвигаются предложения и т.д.
3) Разрешение организаторов на данное усовершенствование (возможно можно будет отказаться).
4) Создание программного кода силами сообщества и загрузка через систему контроля версий. Возможно конкурирующее программирование - выигрывает реализация с меньшим расходом ресурсов. Также возможны две стратегии разделения исходных фалов
а) любой участник сообщества может вносить изменения в код
б) только один участник, или группа друзей создает какой-то компонент.
5) Разработка тестов также силами сообщества.
6) Организаторы утверждают обновление и подсоединяют к codeforces.
Преимущества: не только наполнение, но и создание функционала портала ведется руками сообщества, что по идее приведет к увеличению скорости доработки и улучшения codeforces.
Недостатки:
1) не до конца понятно как можно справиться с проблемой безопасности (предлагается предоставление интерфейсов системы с валидацией в реализации всех аргументов на корректность и проверка на отсутствие «запрещенных» функций, как во время проведения контестов).
2) возможно не будет хватать производительности серверов codeforces на все желания сообщества.
Более конкретно предлагаю:
1) организаторы предоставляют сообществу совокупность API сайта (при необходимости API дорабатывается или создается новое).
2) при поступлении новых предложений они проходят
этап обсуждения, где выясняется, нужно ли это усовершенствование воплощать в жизнь, выдвигаются предложения и т.д.
3) Разрешение организаторов на данное усовершенствование (возможно можно будет отказаться).
4) Создание программного кода силами сообщества и загрузка через систему контроля версий. Возможно конкурирующее программирование - выигрывает реализация с меньшим расходом ресурсов. Также возможны две стратегии разделения исходных фалов
а) любой участник сообщества может вносить изменения в код
б) только один участник, или группа друзей создает какой-то компонент.
5) Разработка тестов также силами сообщества.
6) Организаторы утверждают обновление и подсоединяют к codeforces.
Преимущества: не только наполнение, но и создание функционала портала ведется руками сообщества, что по идее приведет к увеличению скорости доработки и улучшения codeforces.
Недостатки:
1) не до конца понятно как можно справиться с проблемой безопасности (предлагается предоставление интерфейсов системы с валидацией в реализации всех аргументов на корректность и проверка на отсутствие «запрещенных» функций, как во время проведения контестов).
2) возможно не будет хватать производительности серверов codeforces на все желания сообщества.
Мне нравится. Действительно (говорю про интернет вообще), иногда попадается какая-нибудь мелкая неправильность, допилить которую - две минуты.
Только меня смущает пункт 5. Мне кажется, что всё-таки лучше, когда тесты/задачи делает очень ограниченный круг людей (не вообще, а для конкретного контеста).
Вроде это и планируется после выхода из беты.
Единственная ассоциация, всплывшая сейчас - test cases. Что это такое, я не знаю, но хочу узнать. Можете просветить?
Спасибо, Alex за дополнения))
Кстати возникщий вопрос показывает проблему образования и олимпиадного программирования в частности они имеют теоритическую направленность, без указания где это и для чего может быть применено. Вот пример обсуждения А что после ICPC? И в чем вообще смысл?. Если усовершенствование сайта будет вестись руками сообщества, то у отличных программистов как yeputons будет возможность узнать о существующих технологиях разработки ПО, попробовать свои силы. Пусть в начале и получив кучу минусов от сообщества за нечитабельный код или несоответствие принципам ООП. Но зато после окончания вуза будет проще устроиться на работу.
Codeforces - это ведь образовательный портал?? Или я может что-то не так понял???
Мне кажется меня не совсем поняли. Я не говорю про контесты и вообще до создания функциональности отвечающей за проведение контестов не особо хочется допускать сообщество, поскольку найдутся люди, которые будут пытаться сломать систему или подшаманить под себя (поднять рейтинг)
Но по-моему codeforces - это не только контесты и не столько!!!
Здесь главное - это обсуждение, причем не обязательно задач, но и, например, сред программирования, что брать с собой в Питер на полуфинал и т.д. Плюс еще возможно объединение с обучающими материалами (я про обещанное слияние с e-maxx.ru). Для меня codeforces - это место для обучения, тренировке и общения с единомышлениками, соратниками по профессии.
Потребности сообщества по созданию инфраструктуры все время растут и этот процесс не остановить) Сколько постов было по улучшению codeforces причем не только касаемо проведения контестов и отображения рейтинга (например, Ряд предложений по CodeForces). Организаторы при всей своей профессиональности, работоспособности и энтузиазме не смогут быстро воплощать пожелания в жизнь.
Лучше будет если они будут заниматься координацией процесса усовершенствования codeforces, а сам процесс разработки портала ляжет на плечи сообщества.
P. S. Коллектив codeforces профессионалы в деле проведения контестов и их организации. Сложившаяся стратегия создания и проведения контестов всех устраивает. А вот, например, навигация по сайту, поиск постов и т.д. нуждаются в улучшениях.
> я думаю, что если наберётся два десятка программистов с кучей свободного времени
Человека три хватило бы для начала.
Это может быть вообще неплохой идеей. Codeforces взорвал так потому, что кроме топкодера нет ни одного качественного ресурса. И с появлением кодефорса ресурсов стало два. То есть по прежнему конкуренции нет.
Если кто-то хочет, я бы в принципе начал (одному не очень хочется). Не на Java только. На PHP фтонтенд и совсем простенький тестирующи на Java или С++ допустим.
отправилось раньше времени
тесритующий сервер вида "select из базы, запустить, обновить, селект, запустить, обновить", а всю логику по распределению ресурсов между серверами уже положить на PHP - такого рода.
если это кому-то интересно, пишите в личку :о)
П.С. Майк, не бань меня :о
Цель очевидно такая же как у (я полагаю) кодефорса - сделать web20 портал по спортивному программированию.
Только OpenSource сможет быстрее развиваться, видимо, и лучше подстраиваться под нужды людей. Нет виртуальных контестов, но нужны? Нет проблем, сделай их :о) Плюс люди смогут его развенуть у себя локально для тренировок на своих задачах.
Сегодня, вообще говоря, нет качественных решений для тренировки. Хорошая возможность сделать одно.
Вообще ты не поверишь насколько можно развить идею подобного портала. Многие идею здесь витают, но с закрытой командой разработчиков они увидят свет очень не скоро. Многие из них имеют низкий приоритет, или вообще не запланированы.
1. Архив задач с сложностью и тегами, оцененными сообществом. Надо подтянуть потоки? Их есть у нас.
2. Форматы соревнований - не надо ничем ограничиваться (сообщество может добавить реализацию любого формата, который им нужен). Виртуальные контесты в паре с этим - и можно готовиться к топкодеру в режиме, близком к реальному. Собрались с ребятами, выбрали три задачи из архива (сложность указана), запустили - вам создало комнату, кодячим, взламываем, радуемся, повторяем на следующий день. Скоро Google Code Jam? Тренируемся в режиме GCJ. Готовишься к школьной олимпиаде - решай задачи с указанными баллами.
3. Прикрутить что-то типа ACM Server (чтобы задачи из других архивов хаками можно было использовать). Теперь можно тренироваться в любом из существующих форматов, которые не требуют доступа к тестам/чекеру на любимом архиве (ну это и сейчас можно).
4. Социальность проекта, не ограниченная блогами. Wiki с алгоритмами, wiki с разборами задач из других архивов.
Я все это еще хотел (и даже начинал) делать в ВУЗе, но тогда не хватило усидчивости.. Почти все пункты показали себя как выполнимые. Конечно, требуется очень крутой дизайн всех решений, чтобы все было расширяемо. Но именно это и делает задачу challenging.
Ну если четыре человека соберутся заняться этим, то первая рабочая версия будет готова уже за месяц.
А дальше уже аудитория = комьюнити = более быстрое развитие.
Ну и я в принципе готов тратить адекватное время на это. Главное чтобы были еще желающие :о)
а)PHP кроссплатформен. Если потребуется, можно легко перенести на линь/фряху или же разрабатывать изначально там.
б)PHP гораздо легче установить, настроить, и написать Hello World.