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

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

Добрый день!

На текущий момент времени 32битная архитектура практически умерла. Тем не менее во всех соревнованиях по программированию продолжают использоваться 32битные компиляторы. Есть какая-то скрытая причина этого? Или просто "так принято" и "так все привыкли"?

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-английски

I would really appreciate any new ideas of what new features to add

I would also appreciate donations


3.99

Kattis support for both Chrome and Contest parsers. You'd need to accept new permissions for Chrome extension. Good luck at ACM ICPC World Finals online contest!


3.98

Codechef fix


3.97

Fixed issue with template selection and Chrome plugin interaction


3.96

Smallish update — you can now select task template per task. You can have several templates for general tasks, one where you need to output with Case #, GCJ where you need to integrate parallelization and similar


3.95

Support for Idea 14.1+

Parsers for RCC and USACO fixed

You can now parse other Codeforces contests when live contest is ongoing

Sorry for big delay, it was couple of crazy months for me


3.94

All parsers should work now. Chrome extension may disable itself on update, reenable it


3.93

Bayan support (will be live after Chrome store will approve update), fix for GCJ and HackerRank


3.91

Fixed Java 8 support. From now on Java 8 is target version, previous Java versions may or may not work properly

Also speed up and for RCC parsing, HackerRank parsing fix and Delete Task pop up fix


3.90

GCJ support should be fixed now. Also RCC support is fixed. Please note that non-current round take a lot of time to load as there is no place where I can see all round ids (it may appear after second round, I'll update then). Please also note that 1st round is currently have 2 instances as both id 4 and id 7 corresponds to it. I'm not sure how well my plugin will handle increased load on their servers and weird pages returned because of it, but I hope for the best

TopCoder checker support coming up in next release


3.85

GCJ support fixed, also GCJ is now supported through Chrome extension as well


3.83

Fix for Idea 13.1


3.80

Mostly fixes (Codeforces, Hackerrank, Yandex). Includes new memory limits support for TC and new action to edit task (if you for some reason do not want to do this through Edit configurations)


3.70

Facebook Hacker Cup and USACO support through Chrome plugin. Also HackerRank should work now


3.65

HackerRank support. Also compatible with Java 6


3.64

Added Codeforces support for Chrome extension. Should be usefull for those Gym contest that have non pdf/doc/etc problem statements


3.62

Rejoice Chrome users — there is now extension to Chrome that will assist in parsing Yandex.Contest tasks. Support for other sites (Codeforces Gym, for example) is coming as well. You will be prompted to install Chrome extension on first load of CHelper-supported project

You can download extension here

Some bugfixes and improvements are also included (Timus should work for now)


3.50

GCJ support finally! With it comes new type of input — local regular expression. Main classes build with this input type would take most recently modified file that matches provided regexp as input.

Also some little fixes to smart testing


3.45

Small fix due to Russian CodeCup page format change. GCJ support would be developed during next week


3.4

Smart testing

New mode, which automatically will test your program only on first failed test from last run and will test on all tests if that test will pass. With this feature you can easily start debug on failed test without need to switch tests on/off. This mode is on by default, you can disable it in project settings

Also test case generation mechanism changed a bit. You now can have at most one class with test cases, but multiple test case methods in it. This method shoule be annotated @TestCase. For compatibility if test class implements TestProvider/TopCoderTestProvider createTests() would still be called. If you create checker or test class through task settings it will now automatically be opened

Finally, templates for TopCoder are introduced


3.3

Templates for automatically generated stubs added 3 new files are automatically added to eligible projects (i. e. projects with chelper.properties) — TaskClass.template, CheckerClass.template and TestCaseClass.template. You may use following placeholders in all this files: %package% — package where file will be created %InputClass% — short name of input class %InputClassFQN% — fully qualified name of input class (used in imports) %OutputClass% — short name of output class %OutputClassFQN% — fully qualified name of output class (used in imports)

Also you can use %TaskClass% in TaskClass.template, %CheckerClass% in CheckerClass.template and %TestCaseClass% in TestCaseClass.template, which is basically short class names of corresponding classes

Would you delete this files by mistake they would be recreated next time you reopen project or when they are needed

TopCoder gengerated files are currently do not have templates, will do in next version


3.21

Previous version was built using Java 1.7, which may lead for Idea to fail on start up if run under Java 1.6. If this is your case please download it here and unpack to %home%\.IntelliJIdea%version%\config\plugins


3.2

This version contains minor and major changes

Minor change is hopefully last iteration of changes in TopCoder support. From now on you do not need to restart arena after restarting Idea. Also socket method is reinstaited with more checks to insure no fails and with automatic back up from file method

Major change is contributed mostly by Petr and provides support for Cojac. This is to help find errors such as unitended integer overflow and others. Support is turned off by default, you can turn it on or off for separate task in task configuration as well as for all new tasks in project settings


3.12

Urgent — temporary TopCoder fix


3.1

Leda (Idea 12) readiness


3.02 — even smaller update

Force locale setting was cleared on opening of Edit Tests dialog (and some others)


3.01 — small update:

Timus current/future contests now works

Redundant caption removed


So I decided it is a good time to go on with the release.

You can read intallation (and some other, under development) instructions here. I would not recommend manual installation, but you can download plugin directly here.

You are welcome to contribute and/or provide translations for manual for different languages. Source code is located here

Feature requests are appretiated as well

Полный текст и комментарии »

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

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

UPD: немного поправил примеры

Некоторые из вас знают про мой плагин для Idea. Одной из его самых интересных/полезных частей является автоматическое создание конфигураций с запуском задачи на всех тестах для некоторых сайтов, а именно — Codeforces, CodeChef, Timus, E-Olimp и RCC. Некоторые другие плагины предоставляют похожую функциональность для других сред разработки и языков программирования. На текущий момент это реализовано за счет скачивания веб-страниц и их парсинга. Данный подход имеет сразу несколько минусов:

  • Повышается нагрузка на сервер (особенно в пиковое время вроде начала контеста)
  • Изменение в структуре веб-страницы приводит к необходимости исправлять парсер и выпускать новую версию. Кроме того, некоторые сайты не имеют четкой структуры оформления примеров (например, CodeChef) — приходится использовать эвристики. Некоторые соревнования — SN*S, OpenCup — используют pdf для задач, что делает невозможным (или, по крайней мере, очень трудным) их парсинг
  • Некоторые контесты (например, виртуальные) требуют логина для доступа к текстам задач. Доверять свои логин и пароль 3rd party софту — опасно

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

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

  • Иметь по фиксированному url (скажем, http://codeforces.com/contests/list.xml?key=my_codeforces_key) xml файл с мета-данными о доступных контестах, которые в случае обращения без указанного выше ключа сообщают о контестах, доступных для всех, а в случае его наличия, а в случае обращения с ключом — доступные конкретному человеку. При этом может сообщаться дополнительная информация. Пример:

<site>Codeforces</site>
<icon url="http://codeforces.com/favicon.png" />
<contest-list>
  <contest id="211">
    <name>VK Cup 2012 Finals</name>
    <name locale="ru">VK Cup 2012, Финал</name>
    <url>http://codeforces.com/contest/212/contest.xml</url>
    <status solved="4" attempted="4" />
  </contest>
  ...
</contest list>
  • Аналогично — для контеста иметь описание в примерно таком формате:
<contest id="211">
  <name>VK Cup 2012 Finals</name>
  <name locale="ru">VK Cup 2012, Финал</name>
  <task id="211A">
    <name>Privatization</name>
    <name locale="ru">Приватизация</name>
    <url>http://codeforces.com/contest/211/problem/A.xml</url>
    <status solved="false" attempted="false" />
  </task>
  <task id="211B">
    <name>Polycarpus is Looking for Good Substrings</name>
    <name locale="ru">Поликарп ищет хорошие подстроки</name>
    <url>http://codeforces.com/contest/211/problem/B.xml</url>
    <status solved="true" attempted="true" />
  </task>
  ...
</contest>
  • Ну и наконец — для задачи:
<task id="211B">
  <name>Polycarpus is Looking for Good Substrings</name>
  <name locale="ru">Поликарп ищет хорошие подстроки</name>
  <status solved="false" attempted="false" />
  <input file="false" />
  <output file="false" />
  <memory-limit value="256" />
  <test-type value="single" />
  <test-case id="0">
    <input>aaaaa\n2\na\na\n</input>
    <output>1\n1\n</output>
  </test-case>
  <test-case id="1">
    <input>abacaba\n3\nac\nba\na\n</input>
    <output>1\n2\n4\n</output>
  </test-case>
</task>

Задача данного поста — понять, считает ли коммьюнити введение подобного единого стандарта хорошим шагом и помочь сформулировать полную спецификацию формата

Полный текст и комментарии »

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

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

UPD5: обновите плагин! Формат Codeforces несколько изменился

UPD4: новая версия:

TopCoder fix for UNIX

RCC support

Better non-English characters support

UPD3: новая версия:

TopCoder alternative protocol

Force locale setting to include Locale.setDefault(Locale.US) in generated file

UPD2: в ближайшее время новые бета версии будут распространятся только через plugin repository. При перезапуске Idea, насколько я знаю, плагины обновляются автоматически. Если это по какой-то причине не работает можно скачать свежую версию плагина здесь. Поставить можно либо старым способом (копированием в папку config/plugins), либо Settings -> Plugins -> Install plugin from disk...

Внимание! Это beta версия, которую не очень много тестировали. Используйте на свой страх и риск!

Скачать можно здесь updated

Основные изменения:

  • настройки теперь можно изменить через специальный диалог. При нажатии ОК в этом диалоге так же в classpath добавляются нужная библиотека. Надобность скачивать chelper.properties с сервера пропала (этот файл будет создан автоматически)

  • таска теперь имеет много дополнительных полей, таких как имя контеста и дата. Архивироваться таска будет во вложенную в archiveDirectory папку в зависимости от этих полей. Кроме того, чекер теперь по умолчанию не создается, но его можно выбрать. Поставляются 2 стандартных чекера (потокенный и посимвольный), в потокенном чекере можно через параметры задать максимальную разрешенную ошибку у даблов (пустые параметры — ошибка запрещена, один параметр — ошибка абсолютная или относительная не больше данного числа, два параметра через пробел — первые комбинация букв a и r — соответственно разрешение абсолютной или относительной ошибки, а второй параметр — собственно ограничение). Можно создавать свои чекеры (они должны имплементить интерфейс Checker и иметь конструктор от String, если ввести в соотвествующее поле валидное имя класса он предложит создать "рыбу" кнопкой Create), аналогично к каждой задаче можно добавлять неограниченное число генераторов тестов (должны имплементить интерфейс TestProvider). В тестах теперь можно не указывать ответ (в этом случае стандартные чекеры будут возвращать вердикт Unknown). Старые таски при переезде потеряются к сожалению, но юнит тесты продолжать работать. Рекомендую заархивировать все текущие таски перед установкой

  • таску теперь можно восcтановить из архива

  • переработано меню парсинга контестов. EOlimp пока не работает

  • TopCoder Arena теперь надо запускать прямо из идеи, дополнительных плагинов (moj) более устанавливать не надо

Ищется человек, который напишет ко всему этому инструкцию на 2х языках (ну, или хотя бы на одном), так же интересна видеоинструкция. Если кто-то хочет поконтрибьютить (особенно парсеры для разных сайтов) — you are welcome, у меня для контрибьюторов есть ключ для IntelliJ Idea Ultimate

UPD: загрузил в репозиторий, теперь плагин можно поставить прямо из Idea

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
  • Проголосовать: нравится
  • +30
  • Проголосовать: не нравится

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

Привет!

27 июля в 17:10 по Москве состоится финал Google CodeJam. Россию представляет 5 участников — Burunduk1, Jacob, Egor, eatmore и vepifanov, Украину трое — dzhulgakov, sdya и Shef. Полный список финалистов (с учетом отказов) можно увидеть тут

Удачи нам :)

Полный текст и комментарии »

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

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

Кто-нибудь знает, почему он "забанен"? А то я в процессе проверки написанного HashSet/HashMap приличное время потратил на поиски рантайма, который загадочным образом не ловился try-catch(Throwable) и выдавал в консоль на сервере просто RUNTIME_ERROR 13131313.

Полный текст и комментарии »

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

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

Привет!

А что с поддержкой таблиц нынче? А то мой пост "инструкция к CHelper" не показывается из-за наличия внутри тега <table>. Есть ли альтернативные варианты

Полный текст и комментарии »

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

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

Сегодня в 20:00 по Москве 12 счастливчиков завоюют места в Parallel Round 3B

Всем удачи!

Полный текст и комментарии »

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

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

Good news everyone!

Так как предыдущая тема съехала из прямого эфира придется заводить новую

Сегодня в 19:10 по Москве состоится очередной СРМ

Полный текст и комментарии »

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

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

Good news everyone!

9 мая (всех с праздником!) в 5 утра по Москве, наше любимое время, состоится очередной SRM

Полный текст и комментарии »

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

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

Состоится сегодня в 15:00 по Москве

Имеется призовой фонд в $5000, так что поспешите с регистрацией, кап может быть достигнут досрочно

Полный текст и комментарии »

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

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

Я правильно понимаю, что по мнению авторов ГП Азова слон не является шахматной фигурой?

UPD: Официально объявлено, что Гран-при внезачетный

Полный текст и комментарии »

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

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

FYI — началась регистрация

Финал 27 июля в Нью-Йорке (изначально сообщали про Париж, в какой-момент изменили — непонятно)

Полный текст и комментарии »

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

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

Вышла новая версия. Вышла она ради баг фиксов для TopCoder'а (проблемы с SRM 530 Div-2 Medium, SRM 531 Div-2 Easy и SRM 534 Div-1 Medium), так же: UI: switch task to current editor and editor to current task automatically Fixed width font for tests

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

UPD: версия 2.41, поправлена генерация для CodeChef

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
Как вы, может быть, знаете, в этом году TCO объявлен очень рано и уже идет в некоторых треках (Design, Development, Studio, etc.)
Позавчера объявили правила алгоритма и они очень серьезно изменились. Теперь нас ждут:
3 * Online Round 1 (бывший квалификационный раунд, из каждого выходят 600 человек, участвовать можно во всех, но регистрация закаплена на 2000 человек в каждый раунд)
3 * Online Round 2 (к 1800 победителям первого раунда добавляется топ-200 по рейтингу, из каждого забега выходит по 50 человек, участвовать можно во всех)
2 * Online Round 3 (из каждого выходит по 12 человек на онсайт, участвовать можно во всех)
Кроме того, для тех, кто уже вышел из 2го/3го раунда будут добавлены дополнительные рейтинговые раунды параллельно с раундами 2BC/3B (в таком раунде для 3B, например, смогут участвовать всего 12 человек - весело)
Одним из спонсоров будет Google, однако Петя может расслабиться - с этого года сотрудники компаний спонсоров, не участвующие непосредственно в подготовке контеста допускаются к участию.
Thoughts? Я думаю, что за счет новой системы отбора этот онсайт должен быть гораздо сильнее предыдущих
Вот ссылка на сайт. Я уже зарегистрировался, но вот сейчас совершенно не могу найти, где это сделать - может, из-за того, что я залогинен, мне не показывают ссылку на регистрацию

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
Вроде бы контест уже совсем закончился
Кто-нибудь умеет вторую решать? Я послал наивное решение, которое в худшем случае работает за 22n, но придумать для него контртест не смог.

Полный текст и комментарии »

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

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

Господа, а объясните мне тупому, как так вышло, что человека, который выиграл в один год GCJ и TCO первым на звание участника года выдвинул я перед самым концом процедуры выдвижения? Давайте исправим несправедливость. Выдвижение вот даже продлили до 17:00

UPD: идет голосование

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
1. Установка
Надо скачать файл плагина и файл конфигурации. Файл плагина надо положить в %home_dir%\.IntelliJIdea10\config\plugins (если папки plugins нету — создать ее), а так же добавить в качестве библиотеки к модулям своего проекта (делается через Project Structure -> Dependencies -> Add Single Entry Module Library...). Затем поправить конфигурацию согласно своим нуждам, положить ее в корень проекта — и все, можно использовать. Для работы с TopCoder необходим плагин moj для арены, инструкции и ссылка — здесь, инструкция на русском — здесь


2. Конфигурация
В конфигурации надо задать несколько директорий. Директория задается путем от корня проекта с заменой \ на /. Пройдемся по пунктам:
inputClass - полное имя класса, используемого для ввода (полное имя — имя пакета + имя класса). Этот класс должен иметь метод next() возвращающей String — следующий токен (как у Scanner) и конструктор, принимающий InputStream. Собственно, Scanner подходит, но он довольно медленный
outputClass - полное имя класса, используемого для ввода (полное имя — имя пакета + имя класса). Соответствующий класс должен иметь 2 конструктора от OuputStream и от Writer и иметь метод close. По умолчанию — java.io.PrintWriter
excludePackages - перечисленные через запятую префиксы пакетов, которые вы не хотите включать в итоговый код, потому что они являются частью окружения на сервере). В большинстве случаев менять значение не надо
outputDirectory - папка, куда складывается итоговый исходный файл (который потом посылается на сервер для проверки). Должна находится в source директории какого-либо модуля в пакете по умолчанию. В проекте, создаваемым idea по умолчанию можно указать папку src
author - содержание тега @author в итоговом файле. В случае пустого значения тег не ставится
archiveDirectory - папка, куда исходники складываются при архивировании. Не рекомендуется, чтобы эта папка была частью source какого-либо модуля. Можно оставить по умолчанию, тогда при первом архивировании эта папка будет создана
defaultDirectory - папка, где будут создаваться автоматически созданные задания. Должна быть в исходном коде какого-либо модуля, но не в пакете по умолчанию. В проекте, созданном по умолчанию, должна быть вида src/package path, например, src/my/package
topcoderDirectory - папка, куда TopCoder плагин moj складывает созданные исходники. Правила те же, что и для outputDirectory. Если не участвуете в TopCoder — можно не беспокоится о значении этой настройки
enableUnitTests - если вы хотите, чтобы на основе ваших заданий создавались юнит тесты, то надо установить в true
testDirectory - если вы не установили значение предыдущей настройки в true, то может иметь любое значение. Иначе должна находится в исходном коде любого модуля, который может видеть те же классы, что и defaultDirectory (собственно, может быть в том же модуле)
Вот и все. Стоит заметить, что после смены конфигурации, чтобы изменения вступили в силу, надо перезагрузить проект

3. Использование
Добавьте себе на главную панель инструментов (Customize Menus and Toolbars... в контекстом меню панели инструментов) из Plug-ins->CHelper следующие кнопки: New Task, Edit Tests, Archive Task, Delete Task, Create Codeforces Tasks.



New Task (Alt+F2) — создает новое задание в defaultDirectory и выбирает его в качестве активного.
Edit Tests (Alt+F5) — открывает редактор тестов (в том числе для TopCoder)

Archive Task (Alt+F6) — удаляет задание, сохраняя код в archiveDirectory и, если включено, создавая unit test в testDirectory
Delete Task - удаляет задание и все его файлы
Parse Contest - создает все задания для определенного соревнование (пока поддерживаются Codeforces, CodeChef, E-Olimp и Timus).

Parse Task - то же самое, что и предыдущий пункт, но создает только одно задание.

Название сайта ID соревнования ID задачи из архива ID задачи из соревнования
Codeforces contest_id (131) contest_id letter (131 A) contest_id letter (131 A)
CodeChef contest_code (NOV11) problem_code (GCD2) contest_code problem_code
(NOV11 DOMNOCUT)
Timus contest_id (101) problem_id (1000) contest_id problem_number (101 1)
Copy Source (Alt+F8) — копирует содержимое Main.java в буфер обмена. Полезно для сайтов, которые не поддерживают отправку файла

4. Меню настройки новой таски

Name - имя класса для задания. Если используются файлы .in/.out, то стоит использовать такое имя, которое при переводе в нижний регистр совпадает с именем входного/выходного файла (без расширения)
Test type - каким образом идут тесты — по одному на файл, сначала количество тестов, а потом сами тесты или тесты прекращаются по какому-то условию (скажем, вход из нулей). В последнем случае основной метод должен кидать UnknownError когда условие выхода выполнилось)
Input type/Output type - тип ввода/вывода. Standard — через стандартный поток, Task_id — см. Name, Custom — имя файла задается в появившемся поле
Heap memory - ограничение на размер памяти
Stack memory - ограничение на размер стека

5. Созданные файлы
В основном файле задания есть один единственный метод - void solve(int testNumber, %input% in, %output% out)
testNumber — номер теста в файле начиная с 1
В файле чекера есть 3 метода:
String check(%input% input, %input% expected, %input% actual)
возвращает null, если ответ правильный, не пустую строку если неправильный, пустую строку для запуска чекера по умолчанию (потокенное сравнение)
double getCertainty()
возвращает точность сравнения даблов для чекера по умолчанию. Если 0, то будут сравниваться как токены
Collection<? extends Test> generateTests()
возвращает набор дополнительных тестов, которые генерируются программно

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
Обновлено до версии 2.33 - поменялся формат страниц Codeforces
Обновлено до версии 2.32 - не удален отладочный вывод
Обновлено до версии 2.31 - TopCoder задание могло не запускаться, если первым аргументом была строка (баг проявляется не всегда)

Изменения:

Defect Task generation: CodeChef: Multiple samples not working
Defect TopCoder: main method not deleted even if unused
Enhancement Task Generation: E-Olimp support
Enhancement Task Generation: Timus support
Enhancement Tester: add option to trunkate long input/output and enable it by default
Enhancement Parser: remember selected contest/task site for current session

Ввод/вывод более 2000 символов теперь по умолчанию сокращается в тестере - печатаются первые 1500 и последние 100 символов через троеточие. Выключить это для текущего задания можно в меню Edit Configurations
Форматы id для новых сайтов будут добавлены в инструкцию
Скачать плагин можно здесь, формат конфигурации плагина не изменился

Полный текст и комментарии »

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

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

Изменения:

Enhancement Add universal interface for task generation
Enhancement Tester: ability to pass message from checker irrespective from verdict type
Defect New Task: default directory should be created if absent
Enhancement Create action to copy full source in order to submit to judges that do not provide file selection as option
Enhancement Task generation: support for CodeChef

Теперь можно генерировать не только таски на весь контест, но и отдельную таску из архива - в качестве id надо ввести "номер_контеста буква_таски", например, "128 B". Кроме того, введена поддержка CodeChef. Тесты на нем структурированы гораздо хуже, так что используется эвристика. Возможно добавление в тест пустых строк, а так же может вообще не сработать. На последних 10 контестах все таски генерируются, проверено. Id для контеста - последняя часть url его страницы, например - NOV11. Id для таски из архива - ее Problem code (например, "LCM"), а для таски из контеста - "contest_id problem_code" (например, "NOV11 DOMNOCUT")
Так же добавлена еще одна акция, которая просто копирует содержимое Main.java (созданный файл) в буфер обмена. Полезно для джаджей, которые не поддерживают отправку файла

Ссылка на плагин, конфигурация не изменилась

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
Всем привет!

Сегодня в 20:00 по Москве состоится очередной TopCoder SRM

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
Изменения:
Defect Codeforces generation: should unescape HTML
Defect TopCoderTester: should accept arrays without curle bracers
Enhancement Add ability to select tests on which task would be tested
Enhancement Allow using custom output class instead of PrintWriter
Enhancement Tester: Should return WA if actual is not exhausted in checker

Соответственно добавлена новая настройка в файл конфигурации - outputClass. По умолчанию - java.io.PrintWriter. Соответствующий класс должен иметь 2 конструктора от OuputStream и от Writer и иметь метод close. Не обязательно скачивать новую конфигурацию - если вы не собираетесь менять эту настройку, то можно ее просто не упоминать - значение по умолчанию будет использовано в любом случае (верно вообще для всех настроек)
Метод next ввода теперь должен кидать исключение, если файл закончился (для Scanner'а это так)
Ссылки для скачивания: plugin, конфигурация

Полный текст и комментарии »

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

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

Картинки для привлечения внимания:



Текущая версия - 2.33

Итак, попробуем еще раз. Я переписал с нуля плагин для IntelliJ Idea (напомню, у нее есть бесплатная весрия), который позволяет во-первых, один раз ввести тесты, а затем тестить на них всех, во-вторых, инлайнить файлы из собственных библиотек, а в третьих - на основе введенных тестов создает юнит тесты для библиотеки. Я думаю, что прошлая версия не получила распространения из-за сложности в начале использования - нужен был специальный проект, надо было не забывать нажать "Run Task" перед посылкой на сервер и т. д. Кроме того, в качестве бонуса, данная версия умеет автоматически создавать таски (включая семпл тесты) для контестов Codeforces.

Инструкция

Если возникнут какие-либо проблемы - пишите комментарии к этой записи, а не задавайте через личку - возможно, у кого-то еще такие же проблемы

Полный текст и комментарии »

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

Автор Egor, 12 лет назад, По-русски
Для моего плагина (а точнее - для акции, которая генерирует таски для контеста Codeforces) требуется иконка Codeforces размера 16*16. Есть такая?

Полный текст и комментарии »

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