Добрый день. 10 дней назад возникла нехорошая ситуация, когда некоторые решения участников были отклонены в связи с тем, что некоторая их часть является копипастой с e-maxx.ru. Ситуация, на мой взгляд, плоха тем, что проверены и отклонены по этой причине лишь некоторые решения, а также нет явных критериев отбора, и, опять же, как мне видится, таких критериев не может существовать в принципе. Это вызвало негодование и обсуждений правил, в ответ даже появился пост, который помимо указанной проблемы затрагивает и некоторые другие.
Я присоединился к недоумению многих относительно таких мер, и также написал ответный пост. Пост был весьма прямолинейным, и мое возмущение в столь грубой форме было оценено отрицательно.
В продолжение, в новом посте я предложил, по словам MikeMirzayanov «взломать систему», и даже обещал за это вознаграждение, но пост был забанен, и я получил предупреждение. Суть поста заключалась в том, что я объявил конкурс на программное обеспечение, которое может снимать с экрана нарисованный на нем код (с учетом того что код на экран не помещается, и нужна прокрутка) а затем преобразует его в текстовый вид и позволят легко запустить как Java или C++. Дата окончания конкурса подошла, и победителя не выявлено, поскольку участников кроме меня самого и небыло. В связи с этим объявляю о завершении конкурса, и отзываю обещанное мною вознаграждение в 5 тыс. рублей. У меня есть некоторые зайчатки ПО, которое выполняет необходимые действия.
Этот пост написан с целью объявления официального окончания конкурса, а также с тем, чтобы мы вместе обсудили текущие правила и ваше к ним отношение. Считаете ли вы, что копипаст неприемлем,? Если да, то по каким критериям администрация должна это определять? Как автоматизированно проверять на это код всех решений? Где грань между копипастой, и стандартным написанием боянистых вещей в СП?
Как вы относитесь к тому, что исходный код взламываемого решения печатается у вас на экране, а скопировать вы его не можете? Я, например, могу. Также я могу его легко запустить в три клика мышкой. Вы не считаете, что находитесь в невыгодном положении? Будете каждый писать своё ПО, которое обходит данное ограничение системы, или согласитесь с требованиями, несмотря на то, что иные участники легко их обходят? Интересны любые мнения, подливайте масла в огонь.
К копипасту кода с е-макса я отношусь строго отрицательно, но не считаю, что это стоит запрещать (т.к. этот код выпущен под лицензией public domain).
Насчет Вашего софта, способного извлекать код из окошка для взломов: спасибо Вам большое за то, что Вы его не выложили в открытый доступ, ибо не стоит ему попадать в руки несознательных людей...
Я к тому и веду, что выложу его в public domain.
Имхо, несознательные люди придумывают правила, которые легко обходятся. Но я пока подожду.
Логика странная какая-то: украсть что-то из магазина тоже не очень тяжело => несознательные люди придумали закон => украду.
На мой взгляд, аналогия несколько неверна. Здесь магазин с двумя залами, в один из них приглашают людей, и продают товары за деньги, а вход во второй зал находится рядом, там можно брать бесплатно и сколько влезет, и у администрации магазина нет даже теоретической возможности подтвердить что вы заходите во второй зал.
Если бы еще было явное правило, запрещающее извлекать исходный код из окошка для взломов программным путем...
Хотя, честно говоря, я в предыдущем комментарии погорячился с благодарностями, т.к. сама идея взломов в ее нынешнем виде несколько мутная, и Вы просто наглядно продемонстрируете ее фундаментальный недостаток.
С тем же успехом можно ввести правило, позволяющее сабмитить код после ревью своего преподавателя-тренера, но ведь это никак не проследишь. Степень глупости весьма близка, имхо.
Так же невозможно проследить дейстаительно ли вы решаете контест один или вам кто-нибудь помогает (тренер, например). Это тоже по вашей логике надо разрешить?
Не передёргивайте. Здесь на лицо субъективный бан "копипастных" решений.
Я за вас отвечу. Да, по этой логике надо разрешить, потому что никак не проверить. Если это не так — не уходите от ответа и объясните, почему.
Редиска
Ну для того, что бы скопировать этот код вам пришлось написать программу. Сомневаюсь, что она очень простая. Так же сомневаюсь, что она будет работать, если формат окна взлома будет случайнвм образом относительно немного менятся каждый раз. Спасибо, что добавили проблем разработчикам.
Кстати, на ТопКодере так же нельзя скопировать, иначе challenge-фаза превратилась бы в "кто быстрее запустит скрипт"
По-моему тут был изобретен велосипед. Код как-то передаётся в это окошко, верно? Значит его можно просто перехватить. Для этого уже существует достаточно софта, уверен, что это просто сделать при помощи того же Charles.
Можно же шифровать при передаче. Думаю что на tc шифруется, сомневаюсь в шифровании на cf.
Да даже если пакеты и шифруются, сомневаюсь, что растеризация текста осуществляется собственным жутко обфусцированным кодом. Вот и очевидная уязвимость: похачить JRE (чтобы не трогать арену) и вытащить текст непосредственно из окошка.
Ну вроде бы можно распознавание образов заюзать. Может оно будет и плохого качества, но часть кода можно руками исправить, а проблему с прокруткой тоде можно самому исправить руками. Та и много кода помещается в пределах екрана.
Распознавание на мой взгляд самая плохая идея(как минимум труднореализуемая + на само распознавание будет тратиться драгоценное время). Если даже добавить шифрование — всё равно можно выдернуть при помощи JS всё что за хочется(ведь дешифровываться всё равно будет во флэше).
p.s. Это так велико желание нарушить правила или в рейтинге на CF есть реально большая выгода?
Ну по поводу сложности не скажу. Думаю что методов распознать символы с картинки много, "выбирай — не хочу". А по поводу времени, то не думаю что открыть окно и запустить прогу которая проработает хоть даже 10-20 сек долго.
Так оно может так и происходит? Вы даете гарантию, что нет участника, который вместо челенж фазы запускает скрипт?
Нет, не даю. Более того, это вроде правилами не запрещено. Кстати, на Codeforces, кажется, тоже. Но это не значит, что надо просто так предоставлять людям файл с решением.
Если это к тому же не запрещено правилами, то как раз стоит.
Но это не значит, что надо просто так предоставлять людям файл с решением
Не понятно почему, кстати. Если кто-то путём автоматизированного сравнения с некой своей предположительно работающей программой может челенджить лучше, чем кто-то другой путём мучительного вчитывания в код, то декларируемая цель челленджей достигается первым лучше(хорошо-хорошо, не хуже).
Потому что с использованием таких программ взломы теряют какую-либо ценность. Все просто скриптов наделают и будут запускать стресс-тест со своим решением. Если код решения можно тупо скачать, то это просто. А если надо прокручивать, склеивать скриншоты, распознавать, править ошибки распознавания и потом только запускать, то это более сложно и человек, который написал программу, которая всё это делает, заслуживает небольшой помощи при взломах. Если же эта программа получит распространение, то регулярно будет изменятся формат окна отображения кода.
А потом будет код, написанный CAPTCHA'ей.Ну до этого не дойдет, конечно.Потому что с использованием таких программ взломы теряют какую-либо ценность.
Как известно, из неверной посылки следует всё что угодно :/
Ну так будет бонус для неленивых, достаточно просто запретить чужие распознаватели и стресс-тестеры.
Предлагаю задать те же вопросы по правилам на форуме TopCoder, там обсуждаемые правила тоже есть, практически в таком же виде.
На TopCoder эти правила чётко описаны и более-менее работают. На Codeforces правила чуть менее чёткие и хуже работают. Но могут работать лучше при некоторой поддержке сообщества.
Думаю, понимание и принятие этих правил плохо совместимо с позицией постоянной борьбы с окружающим миром. Да, можно показать всем, как легко сломать правила, получить за это бан, завести новый аккаунт, использовать дырки по-тихому, подняться в рейтинге, через некоторое время попасться и ещё раз получить бан, ну и так далее. К счастью, такая жизнь-борьба интересна не всем: многие участники способны выполнять правила, если эти правила чётко объяснены, вовремя доведены до их сведения и достаточно разумны. Даже если какие-то из них совсем легко обойти. И многие вообще не переживают по этому поводу.
Во-первых — я очень сомневаюсь, что codeforces сделан шайкой алкашей, которые нифига не шарят в программировании, и поэтому — не думаю, что даже очень обозлившись на сайт и его Создателя кто-то решит такую писать программу (думаю это не два пальца об асфальт), тем более за такое щедрое вознаграждение. Если же ты такой крутой хакер, то почему просто не посмотреть код другого человека для сдачи задачи?
Во-вторых — ты немного под*****л (скажу, как ты любишь выражаться) своими "обсуждениями" правил, или прямо — срачем, который ты разводишь из-за негодования. Правила сделаны для их соблюдения. А кто не соблюдает — того надо
повязатьнаказать. А самое интересное — что почему-то почти никто срач не поднимал на эту тему (с тех у кого сняли задачу), а ты, даже не пробуя сдавать эту задачу, поднял срач вселенского масштаба.Чего ты хочешь добиться?
P.S. конечно я немного погорячился, но все же...
Не расшифровал слова "под*****л", в личку скажи. По поводу остального — у меня обостренноё чувство справедливости. Вот я например не принимаю жопоголовый закон о пиратстве, принятый на днях. И уйду если надо будет в какие-нибудь шифрованные торренты, а вы, если хотите, сосите дальше.
Слово я так зашифровал потому что не люблю таковые использовать. И это слово есть синонимом слова надоел.
На счет закона о пиратстве (если я понимаю о чем ты) я думаю все честно.
Даже приведу пример: ты написал свою крутую прогу, которая ломает кф, окда? решил продать ее за нормальные деньги (профит), но тут какой-то "не очень хорошая личность" купил или даже украл ее и раздает кому попало бесплатно, хотя все те люди могли бы тебе дать денег.
Ты немного не понял, я хотел дать 5 тыс рублей за то, чтобы прогу написали и выложили в общий доступ. Я её безвозмездно опубликую.
Ладно пример неудачный. А если бы было все так как я сказал — ты старался, из шкуры вон лез, что бы написать эту прогу, хочешь продавать ее, и вдруг тот же "не очень хороший человек" крадет ее у тебя и раздает кому попало. Какие бы чувства были у тебя на душе. Не думаю, что при встрече с тем человеком у тебя появилось бы желание пожать ему руку, а не исправить нос или щеку.
Почитай (на хабре например) посты гугла и яндекса по теме закона, закон не против пиратства, а против рунета. Но я также пират, по убеждениям, я не согласен с тем, что люди плятат за исполнение песни "happy birthday to you", я считаю это идиотизмом.
Запретить рунет дебильный шаг. Но все же пока есть рунет пока будут находится доброжелатели, которые будут бесплатно отдавать платные программы/игры/вставить свое. И даже если подумать — то как более демократично можно решить эту проблему?
Не знаю о какой проблеме речь ведёте вы, созадйте пост. Я спросил примерно то же — "как более демократично можно решить имеющи**еся** проблем**ы**"
Вот любишь ты подстебать... речь идет о проблеме с пиратством.
Я не вижу проблемы. Байты можно копировать. Если вы не хотите, чтобы набор байт сделанный вами, был скопирован, не предоставляйте к нему доступ. Держите в тайне. Если кто-то случайно воспроизведёт такой же набор байт, то он имеет на него те же права что и вы.
===========================================================================================
То есть в случае с всякими фильмами/играми/программами по несколько GiB (и по несколько тысяч файлов) можно утверждать, что кто-то случайно воспроизведет последовательность байт?
Можно утверждать, что кто-то публикует наборы байт. Нельзя утверждать, что кто-то не воспроизвел те же байты случайным образом.
С таким самим успехом я могу утверждать, что после завтрашнего контеста мой рейтинг поднимется на, пусть будет, 576 пунктов, что, как по мне, не возможно, даже заняв я первое место.
Такое себытие действительно может быть невероятным, т.е. иметь шанс случиться ранвый нулю. Такое может быть исходя из особенностей системы, так ли это вопрос не ок мне. С другой стороны, шанс случайным образом выбрать многогигабайтное двоичное число не равен нулю, каким бы длинным оно ни было. Легко оценить и вероятность такого события, имея некоторую грамотность в теории чисел. Вы продолжите спор?
Дальнейший спор, думаю, не имеет смысла, как и само его начало.
Про пиратство пример не очень. Иначе бы все open-source организации разорились.
Но красть open-source продукт не имеет смысла, если ничего не мешает скачать с официального сайта тоже бесплатно.
Я вам больше скажу, есть open source распознавалка текста, которую я и юзаю.
Взрыв мозга.
Я как "авторететный зеленый" заявляю: "Долой демократию, да здравствует тирания". Как вариант предлагаю ввести довереных лиц администрации, человек 10, которые будут обладать неким правом контроля.
Правом контроля чего? Основным моментом, с которого начался мой протест, это момент про мифический копипаст. Где грань? Нет её.
Тут начнется тирания
С распознавалкой или без — но что-то ты в контестах не жжошь :) это ли не доказывает, что распознавалка распознавалкой, но голову на плечах нужно иметь все равно?
А по сути — если ты хотел обсудить правила, то давай, только убери хрень из поста про волшебную историю с волшебной программкой.
Что-то я в контестах не участвую, это ли не доказывает? Что?
Что за хрень с волшебной программкой? Момент про программку основополагающий.
Давай обсуждать правила, если хочешь. А обсуждение волшебных программок в эту тему не вписывается, потому что их использование не зависит от правил.
что это за любимый саратовский аргумент — в контестах не жжошь, в контестах не участвуешь? я не понимаю, почему чтобы иметь своё мнение, нужно обязательно быть успешным спортсменом?
вон, snarknews в контестах не участвует, давай скажем ему дасвиданья
.
По-моему — если идея создания такой программки не понравилась администрации — то наверное ее использование тоже не понравится (забудем про тот факт, что отловить ее будет очень сложно). В чем я не прав?
Я не вижу противоречий в ваших словах. Но я пользуюсь и не парюсь. В чем я не прав?
Тут я не могу вам ничего сказать — пользуйтесь на здоровье, но какова польза от этого? И что делать если неведомым образом таки отловят эту прогу? Думаю тогда начнется срач на тему: "почему я не мог просто найти универсальный тест и ломать на нем всех?".
Вот в том то и дело, что отловили "неведомым образом" нескольких участников, и докопались, более того, лишили онсайт соревнования. Я считаю это не приемлемо.
Теперь, пожалуй, я могу с горя пополам согласится с вашей точкой зрения, но все же я так и не пойму в чем смысл всего этого срача? чего вы добиваетесь? почему практически никто больше не добивается справедливости, если его это не задело?
Думаю стоит поднять бунт.Нет, не стоит. Администрация все же на чем-то основывалась перед принятием такого решения.cerealguy — не RAD, задача снята.
Anton_Lunyov — не RAD, задача снята.
maksay — не RAD, задача снята.
RAD — RAD, задача не снята.
Сомнительные основания для принятия решений...
P.S. Все вышесказанное ни в коем случае не в обиду Артему.
все не рады кроме RADa)
RAD — не cerealguy, задача не снята.
JKeeJ1e30 — не cerealguy, задача не снята.
cerealguy — cerealguy, задача снята.
Улавливаете мою мысль?
Кажется Вы забыли приставу не- в последнем слове.
По теме. А какое решение Вы предлагаете относительно взломов? Предоставлять файл с решением вместо картинки? Убрать взломы вообще?
Я, конечно, до сих пор считаю, что мне задачу по-хорошему надо бы снять(так же как и Артему, и множеству других людей), или же вернуть задачи людям, ее сдавшим. Но раз ответные действия администрации последовали(от ABBYY — приглашение "провинившихся" людей на онсайт, от администрации codeforces — уточнение правил сайта), считаю что пороть горячку пора прекратить. Нужно вести себя достойно. Товарищу же goo.gl_SsAhv надо подумать о том, какой пример он подает несовершеннолетним пользователям сайта(коих хватает). Что-то не нравится в действиях администрации? Напиши ПО и ломай систему! Лично я считаю такое поведение недостойным. Тем более, что сайт бесплатный, никто не заставляет вас на нем сидеть.
Я по ходу слоу, а какие были уточнения?
http://mirror.codeforces.com/blog/entry/4088. Были внесены изменения в этот пост, уточнения в "Что можно делать, а что нельзя".
UPD: извиняюсь, как раз там изменений не было, плохая память меня подвела:(.
Можно всё же подробнее, какие были уточнения?
Если сравнивать со страницей примерно годичной давности, отличия есть в разделе "Компиляция решений"; а вот в разделе "Что можно делать, а что нельзя" отличий не нашла.
Вам, может быть, кажется, что своей программой вы боретесь против кровавых репрессий администрации, а на самом деле, вы бьете (то есть пытаетесь ударить) по самому формату соревнований, который многим очень нравится (например, мне). Надеюсь, ничего у вас не выйдет.
Очевидно, что правила не должны позволять "вытягивать" взламываемый текст решения. Это примерно как разрешить ездить на автомобилях на соревнованиях по бегу. Это полностью разрушит соревновательную идею взломов, оставив соревнование по запуску скриптов.
Аналогичная позиция есть и на TopCoder. Кстати, там бывали довольно громкие баны читеров.
Правила обновлены таким пунктом:
Проблема, которую поднял г-н Прудаев, все еще не решена: как отслеживать выполнение этого правила?
Уточнение к первому вопросу: как обнаруживать не особо наглые нарушения?
Да хватит и общественного мнения, зачем делать из администрации полицию. У вас есть друг, который пытается читерить? Образумьте его или не дружите с ним.
Не всех нужно ловить и бить по рукам, некоторые вполне способны и так понять и принять общие для всех правила, если они четко сформулированы. Или отказаться от участия, если правила не нравятся.
В театре всех зрителей перед началом просят выключить телефоны. Далеко не все это делают и часто приходиться слушать не игру актеров, а безвкусный рингтон. Однако это не повод ставить металлодетекторы и камеры хранения для телефонов, или вшивать экранирующие пластины в стены и потолок зала.
В мае я неделю был в Германии и часто ездил на поездах. За все время, билет у меня проверили где-то 3 раза, а я совершал по 3-4 поездки в день. И каждый раз у меня был билет.
В Копенгагене в метро нет турникетов. Иногда просто ходят контроллеры и проверяют билеты.
Так же сошлюсь на пример, который привел раньше (http://mirror.codeforces.com/blog/entry/8066#comment-137831): "Так же невозможно проследить дейстаительно ли вы решаете контест один или вам кто-нибудь помогает (тренер, например). Это тоже по вашей логике надо разрешить?"
Скажите, когда вы, например, покупаете продукты в магазине вы не совершаете кражу только лишь потому что вас могут поймать? А если у вас появится возможность украть у что-нибудь у кого-нибудь абсолютно безнаказано, вы ей воспользуетесь?
Мы вроде бы как на "ты" :).
Нет, я, прежде чем сделать какой-то недобросовестный поступок, задаюсь вопросом: "А что бы было, если бы все так делали?". За редкими исключениями желание пропадает.
Жалко, однако, что большая часть общества рассуждает по-другому: "ему сошло с рук — и мне сойдет"...
Ладно, ты и naagi меня все-таки убедили: пусть надзор за пользователями останется на их собственной совести.
Совесть, к сожалению или счастью — главный помощник закона. Если бы большая часть общества была бессовестной — никакие законы, никакая полиция не помогла бы в наведении порядка в стране.
Очень жаль, что некоторые люди на этом сайте позволяют себе УМЫШЛЕННО совершать действия, противоречащие правилам сайта. Пусть правила недостаточно формализованны, но все равно вести себя нагло нельзя. Еще больше мне жаль, что такие люди пользуются поддержкой определенного слоя сообщества. И совсем противно, когда люди, совершающие такие действия, и люди, поддерживающие такие действия — это люди, которые вполне неплохо выступают в соревнованиях.