Всем привет!
Интересует такой вопрос: есть ли какие-нибудь альтернативы писанию в eclipse на финале (для языка C++)? Может есть что-то похожее на far или просто удобный редактор кода (vim не предлагать удобным его трудно назвать :-( ).
Если альтернатив нет, то как нормально копировать шаблонный проект? Я кое-как (спасибо e-maxx у) научился воспроизводить последовательность действий, которая приводит к правильному результату, но если хоть что-то сделать не так, то все ломается.
Просьба высказаться тем кто раньше участвовал в финале и поделиться опытом того как есть фичи в финальной Ubuntu и как ими пользоваться.
P.S.: Кто-нибудь научился ставить финальную Ubuntu с флешки на ноут?
Всех с прошедшими праздниками!
А разве свежий образ финальной убунты уже выложили? Или речь идет пока про прошлогодний?
Речь идет о прошлогодней.
Вообще-то можно не запариваться и поставить любую адекватную убунту и тренироваться на ней. Отличия будут минимальными. Мы просто писали все тренировки на моем ноуте, на финале почувствовали разницу только в том, что обои были другие и настройки вима были никакие, Я сам почти всегда пишу в виме и для меня это было неприятно, но мы знали об этом заранее. Все тренировки мы писали в эклипсе и на финале вим использовали только для того, чтобы тесты вбить
Не знаю, какой сейчас там эклипс, но "в наше время" Ctrl+C Ctrl+V в Project Explorer'е прокатывал.
А по поводу вима — если вы пишете не на джаве, то кодить в нём олимпиадные задачи будет очень удобно (удобнее чем где бы то ни было), нужно только много опыта. Сначала он конечно бесит, но как только спинной мозг запомнит хотя бы 100-200 команд, вы поймёте, что вим офигенный :) До финала ещё куча времени, так что успеете его освоить, если сейчас начнёте.
На худой конец (если религия не позволяет использовать вим, а эстетические чувства — эклипс) можно писать в gedit'е (он при грамотной настройке очень похож на редактор visual studio, по модулю автодополнения, конечно).
(совет по поводу образа финального линукса — установите его на виртуальную машину, скопируйте всем членам команды и пишите контесты только из-под неё; это довольно эффективный способ быстро привыкнуть к системе).
В прошлом году был Indigo 3.7.1. Ну ctrl+c ctrl+v и сейчас прокатывает, но он время от времени начинает не тот файл запускать и ему совсем плохо становится.
С вимом попробую, но сейчас это похоже на ад.
На счет gedit: его можно быстро настроить? или это очень долгая процедура с выкачиванием всякой фигни и прочее. Мне из плюшек нужна подсветка кода (даже без автодополнения) и табуляция в 4 символа автоматическая.
На счет образа мы сейчас так и делаем.
Ну так зачем же запускать программы из эклипса (может, вы ещё и его дебаггер пробуете использовать? :) ). Из линуксовой консоли это делать на порядок удобнее, и никаких глюков нет. Эклипс для C++ — нормальный редактор с автодополнением, но ни в коем случае не полноценное IDE.
Настройка gedit — autoindent там в preferences настраивается, подсветка кода у него из коробки есть (если расширение файла правильное).
Только надо gdb научиться юзать, это отдельная тема.
А как вы компили из консоли? Написали shскрипт который компилит с нужными опциями?
Нет, один раз вбили полную строку компиляции (вида "g++ -O2 -blahblah main.cpp"), а потом пользовались автодополнением (ctrl+r).
Попробую пока gedit+console. Я правильно понял, что вы писали eclipse+console?
Да, оба раза. Но мы тогда не умели пользоваться вимом, а зря :)
g++ -O2 A.cpp && ./a.out < input.txt
Последние годы есть уже готовый sh скрипт, который компилит с теми же опциями, что и проверяющая система.
Сегодня наткнулся:)
Q. How do you generate a random string?
A. Put a first year CS student in front of VIM and tell him to save and exit.
Насчет установки с флешки: записать образ на флешку с помощью UltraISO пробовали? Лично я делал это с виндой, и все нормально получилось. С линуксом, мне кажется, тоже все будет нормально.
Конечно я пробовал там все не так просто, если залить образ на DVD то все норм, а с флешки ничего не работает. "С линуксом, мне кажется, тоже все будет нормально." с линуксом ничего не бывает просто, а с урезанной финальной Ubuntu 11.01 еще хуже.
"Ничего не работает" — не получается даже загрузиться?
Нет все загружается только Ubuntu отказывается ставится грузится пишем в консоли какие-то логи и говорит типа я жду DVD-ROM.
По поводу записи на флешку образа.. После многочисленных проб и ошибок образы на флешку записываю утилитой, которая входит в состав всех дистрибутивов убунты (в поиске по программам набираете usb и сразу ее найдете). Это надежный вариант, по крайней мере прокатывал на всех версиях убунты/минта/etc.. Единственное, нужна конечно машина с линухой, но я думаю в наше время это не проблема.
Есть неплохой редактор Kate. На финале 2009 года предлагался организаторами как один из вариантов
Я тоже хотел про него сказать. Но я бы не сказал, что это "неплохой редактор", но в этом чуде можно выделить участок текста мышкой, нажать Ctrl+C, и, о чудо, вставить его в другое место, где установлен (МЫШКОЙ!!!) указатель. Поминусуйте меня нубы, или VIM'одрочеры, но это очень важно для тех кто так привык работать. Я бы сказал, что он очень похож на notepad++, те же возможности — подсветка, убогонький автоотступ, подсветка открывающей/закрывающей скобки.
А каких фич вам в Kate не хватает, чтобы назвать ее хорошим редактором?
В образе прошлого года Kate вроде нет или я плохо ищу.
Вроде нет. И это печально. Придётся либо смотреть на gedit (а он есть?) и пытаться его смержить с консолькой, либо пытать себя vim'ом (меня лично бесит отсутствие мышки — иногда быстрее, чем добежать клавиатурой)
а
:set mouse=a
не подходит? после этого просто копи-паста делается и при помощи мыши, только по y/p(внутри одного файла)или ctrl+shift+c/i-ctrl+shift+v, но опять же если забыть войти в режим редактирования, то эффект может быть неожиданным.
возможно есть лучшие методы, это те, которые я нашёл сам, когда нужно было
Подходит, наверное, надо попробовать. Спасибо.
Мы прямо на финале (ну то есть на пробном туре) узнали, что Kate за год исчез. Но gedit + console оказался крайне удобным вариантом.
Kate — стандартный KDE'шный "блокнот", gedit — аналогичный по функциональности gnome'овский. Убунту всегда была на гноме, так что gedit в ней заведомо будет, kate — точно нет.
Kate прекрасно ставится на все ubuntu, которые я видел (неожиданно!) командой
apt-get install kate
. Правда надо сказать, что оно тащит за собой кучу других пакетов. Но я не думаю, что это проблема. Принципиальной разницы между kate+teminal и gedit+terminal я не вижу.Меня куда больше убивает 2GB ML и 8 MB стека.
На финале не удастся поставить что-либо из репозитория. Так что лучше учиться пользоваться тем, что есть.
Стек можно настроить прямо из консоли sudo ulimit -s 64000
sudo, думаю, тоже никто не разрешит. Хотя не факт.
Даже если локально и удастся, то что делать, если надо писать сложный DFS на 10^6 вершинах и 8 метров не хватает? Это раздражает гораздо больше.
sudo действительно нельзя использовать
Не помню точно, но там эта команда работала и без sudo, кажется
Команда работает только без sudo на убунте. Либо я что-то не так делаю :) Но без sudo она точно работает.
А откуда информация про 8MB стека?
Вот отсюда
Я думал это для Java только указано.
Есть KUbuntu(раньше точно была в ней KDE). Там, конечно стоит Kate по умолчанию. Ну в Kate не надо переключатся между консолью с целью компиляции, встроенный файловый менеджер, нумерация строк, можно сворачивать части кода. Так что сложновато назвать его аналогом(ну при поверхностном знакомстве с gedit и с kate, сам то я vim использую).
Ubuntu на самом деле поставить очень просто. Насколько я знаю, ей нужен смонтированный образ — наверное образ с финала тоже подойдет.
P.S. Что лучше — научить одного человека писать на джаве или лишиться IDE и дебаггера? C++ в эклипсе что-то вообще жесть какая-то, ниче не работает
Ubuntu — просто, а Ubuntu с финала нет. Там ничего просто не ставится. Лишиться нормальной IDE и дебаггера лучше (дебаггером я не пользуюсь).
Мне кажется, не сильно плохо будет поставить обычную Ubuntu, а потом просто доставить туда весь доступный на финале софт.
Твой ответ то мне понятен, вы и джаву не любите, и дебаггером не пользуетесь. С другой стороны, я не представляю, как бы мы B на NEERC сдали без дебаггера. Да и вместо того, чтобы писать
cerr << variable_name
, обычно быстрее тыкнуть брейкпоинт и глазами посмотреть. Ладно, срача не хочу, хочу еще мнений.Джаву мы любим (я и на работе на джаве пишу). Просто на джаве скорость писания у меня даже в Idea (не говоря про eclipse) вдвое меньше чем на С++, плюс опыта писания олимпиадного кода на С++ в бесконечность раз больше чем на джаве. Без дебаггера думаешь больше и багов сажаешь меньше.
Последний аргумент выглядит как самовнушение :)
Я на джаве единственное чего боюсь, так это слишком жесткого тайм-лимита. Кстати, как с этим на финалах? Тоже полезно знать. Были ли случаи, когда приходилось сильно оптимизировать джава-прогу, или копипастить джава-код в с++-прогу?
Судя по онлайн-трансляции, на последнем финале команда ИТМО занималась жестким пропихиванием задачи F (Keys). В трансляции говорилось, что их не устраивала производительность жабовского битсета, что они переписали код на С++, но он у них все равно не укладывался в ТЛ, что они в конце концов написали свой битсет и сдали задачу.
Это не F была, а E (infiltration). Мы ничего не переписывали на с++. Насколько мне рассказали, в трансляции говорили, что если даже мы на плюсы перепишем, мы не сдадим и что нужно придумывать другое решение. Но тут же Миша написал свой битсет на Java и прошло, там битсет-то был: два long'а.
В плане СП, ответы выше соответствовали бы моему ответу, если бы вопрос в блоге был задан мною при подготовке к финалу. Удивляет другое: Почему нормальные IDE для С++ нужно ставить как-то через зад, или только под другие ОС, как Microsoft Visual Studio? Ну на последний вопрос ответ понятен более менее, но блять почему считается нормальным писать без IDE? Это тупо. Можно сколько угодно дрочить на FAR и VIM, можно ходить по лестнице и не пользоваться лифтом никогда, но это глупо запрещать или мешать делать это другим. Да да, есть дисциплинирующий эффект в отказе от дебагера, но делайте это во время дрочева перед офф. стартом, во время учебы и тренировок, но не мешайте людям пользоваться современными достижениями и удобствами, это идиотизм полнейший. Вы еще скажите, что добираться на соревнование нужно пешком. Ибо РЖД или Аэрофлот не дали лицензии на свой транспорт. ИМХО мелкомягкие сами будут рады если их винду с MS VS Express заюзают на ACM ICPC World Finals, и не нужно за это им платить, они еще сами доплатят за это.
О, можно еще третьему участнику все 5 часов крутить динамо машину для компа, тогда даже идиоту станет понятно почему это спортивное программирование.
Мне действителььно удобнее писать в вим. Я никого не заставляю это делать, но в этом правда есть свои плюсы.
Я не считаю, что писать в VIM плохо, я сам так делаю иногда, когда так быстрее. Я работаю в одной из крупнейших IT компаний России, и рад тому, что могу работать и собирать под WinX64 проекты сделанные для запуска под Free BSD, пользуясь своей любимой MS VS из винды. Для СП можно придумать для моего случая множество отговорок, за вас судить не берусь, может вам и впрямь так удобнее, но для меня ходить по лестнице глупо, если есть лифт.
Для кого что является лифтом и лестницей — дело индивидуальное, надеюсь это понятно из предыдущих комментариев.
Ну тут все просто, вим минималистичен и поэтому он быстрее.
Реагирует на нажатие клавиш на 2.39 мс быстрее? На современных компьютерах (которые стоят и на тренировках, и дома, и, судя по информации, на финале) я не отличу скорость работы Far/VIM/IDEA.
Если же это относилось к скорости работы, то опять же не соглашусь — блокнот еще минималистичнее, но без подсветки синтаксиса совсем печально.
Ну так фишка как раз в золотой середине — подсветка, автозамена, номер строки, поиск и все нужное в виме есть. Но нет ничего лишнего, ты сам настраиваешь, что тебе нужно.
Шурик, ты знаешь, что раньше я писал в IDE. И тоже сейчас работаю в довольно крупной IT компании. НО. Я пересел на VIM. Сознательно. Безповоротно. Я могу сделать все, не отрываю рук от клавиатуры, даже не двигая их. И мне это нравится.
Когда я только начал работать, я думал, что VIM — это не удобно, и тоже работал в IDE, но сейчас я просто снес IDE с машины. Поясню почему.
1) VIM реально быстрее. Я не говорю о 2 секундах, я говорю, что реально, если мне нужно отредактировать 1 файл, мне не надо грузить IDE, мне надо просто сделать vim code.cpp
2) VIM реально быстрее. Что? Я повторяюсь? Нет. Теперь я говорю о скорости работы. Нет, это не скорость печати! Я говорю о всех действях. Например: ты хочешь перейти на символ b в слове abacaba. Ты отрываешь руку, мышью щелкаешь на позиции, еще будешь эту позицию искать... А я нажму кнопку 'f', которая у меня под указательным пальцем левой руки. Все 'b' подсветятся и я за пару нажатий перейду на нужную позицию. Спасибо за эти знания Алексу Скиданову и плагину easymotion. Ну и, конечно, лично меня бесят стрелки, и то, что мне надо двигать руку, для их использования. hjkl — ну блеск :) Правда мне опять же не нравится, так как не под пальцем. Одно открытие .vimrc и вуаля: jkl; — это мои стрелки. И много другого..
3) VIM гибок. Ты можешь кодить в нем на любом языке практически из коробки. Я посмотрю на тебя когда ты по ssh будешь кодячить в студии, а мой конфиг будет работать легко и просто. Что? Можно код на локальную машину кинуть? А зачем? :)
4) VIM сейчас стал другой. Раньше надо было настраивать все плагины через одно место, а иногда и через другое. Я, конечно, имел в виду папки куда пихать файлы, а вы что подумали? Сейчас все гораздо удобнее. vundle и прочее подобные установщики в помощь :)
5) VIM support. Ну кто поддерживает студию? Microsoft? Ну здорово. VIM — почти все, кто хоть раз открывал vimrc. Я сам пишу плагины под него. Вим настраивается под каждого до мельчайшей детали.
6) VIM прост! Кто бы что не говорил, я не собираюсь учить все горячие клавиши. Я просто знаю, то что я использую регулярно и перемапил их. А остальное мне не нужно.
7) VIM будет с тобой всегда. На любой машине, один файл .vimrc. Сколько ставится IDE? Ну последний раз я ставил студию для Windows Hackathon и это заняло у меня около 35 минут и выход в интернет. Мой конфиг весит меньше метра и легко помещается даже на 1Гб флешку, которая у меня уже давно. Ну или там на Google Drive.
8) Нету автодополнения? Ерунда. clangs autocomplete. Мне для ACM хватает за глаза и из коробки! Для проектов побольше тоже.
9) Нету навигации по коду? Ерунда. ctags справляется почти со всем. Конечно, не берем очень серьезные вещи, однако, IDE тоже иногда подводит.
---
На самом деле в чем писать совсем не важно! Главное — это качество кода. Другой вопрос, что считать vim хождением по лестнице, а студию — лифтом, это значит просто не уметь пользоваться этой самой лестницей, или даже просто не открывать дверь на эту лестницу. А когда откртоешь, поймешь, что там не лестница, а вполне себе такой приятный скоростной лифт со всеми удобствами в нем. Последние контесты я писал в виме и весь прошлый сезон OpenCup тоже. И вроде ничего.
И закочить свое эссе я хотел бы избитой фразой, что нет ничего более индивидуального, чем среда программирования :) Просто хотелось бы, чтобы выбор этот совершался, зная и оценивая реальные возможности этих сред.
Наверное мне стоит получше поизучать возможности VIM, попытаться привыкнуть к непривычному, похоже это и впрямь эффективно. Но вопрос то был не конкретно в VIM, а в том что люди привыкли к определенным средствам, но у них нет возможности использовать их. Я не говорю про конкретную версию ПО, я говорю о некоторых элементарных фичах:
1) привычного типа редактор
2) встроенный компилятор подсказывающий где и что не так
3) дебагер с всего-лишь вотчем и брекпоинтами (а не VS с шахматами и поэтессами).
Для меня привычный редактор это подсветка синтаксиса, автоотступ, выделение мышкой и привычный копипаст (без V). Конкретно мне крайне неудобно отсутствие перемещения курсора на следующую строку по достижении конца предыдущей строки, и обратное этому движение, я часто это использую, и нужно привыкать к таким редакторам, что не могут этого.
Это все частности, можно с той же любовью как ты описал VIM описать какой-нить блокнот, к которому человек привык. Дело не в VIM, просто он очень отличается от того к чему мы привыкли. Вот дай notepad и винду человеку, который никогда в жизни не видел мышки и писал только в VIM, ему будет не сильно проще.
Я считаю, что пункты 1-3 должны быть удовлетворены на соревнованиях по программированию. На мой взгляд, это само собой разумеющиеся вещи.
Это же все разговор о фломастерах. По твоим 3 пунктам лично для меня:
Для меня вим — единственный используемый редактор уже много лет. Он единственный, где можно комфортно работать полностью без мыши и делать кучу приятных вещей, которые не умеет ни один другой. Кому-то нравятся тяжелые ide. И такие на финале есть. В чем проблема?
Компиляция в виме по хоткею настраивается за пару минут. С уже стандартными хоткеями перехода к предыдущей/следующей строке компиляции
gdb. Можно с ключом -tui для более гламурного вида. Более чем достаточен, тем более что дебаггер обычно вызывается ровно на 5 секунд — посмотреть стектрейс до места креша или места зависания. А если выйти за пределы контеста и предположить возможность самостоятельной настройки среды, то и к виму gdb прикручивается неплохо. Правда, нужда в этом возникает нечасто.
Хорошее желание. Но вот из тех соревнований, где я был, оно удовлетворялось только на финале. Это единственное место, где есть достаточно богатый набор сред, включающий как простые текстовые редакторы типа gedit, так и мощные vim и emacs, а так же тяжеловесные ide. Тот же полуфинал с выбором из фара и дико тормозящей студией сильно отстает в этом плане.
Возражу только по одному пункту
Вим не так прост. Не один раз я находил ранее неизвестные горячие клавиши, и уже через пару дней я переставал понимать, как я раньше жил без них. И в нем есть много вещей, которые на самом деле весьма нужны, но мы просто не догадываемся об их существовании.
Я с тобой согласен, видимо, просто плохо выразился. Имелось в виду, что того, что я знаю и настроил сейчас мне хватает. Мне не нужно новое для текущего состояния. И люди, которые боятся в виме кучи хоткеев могут просто взять мой конфиг и выучить допустим около 20 команд и будут работать эффективно. Однако, как только я узнаю что-то новое, я это пробую и мой техминимум иногда расширяется, а то и, как не раз бывало, переписывается :)
Судя по тому, что MS раздает бесплатно большую часть своих коммерческих продуктов по всяким там программам (DreamSpark, MSDN Academic Alliance и т.п.), они не отказались бы поставить на финал даже Pro-версию вижака :).
Microsoft может и не откажется, IBM откажется.
Извените, но я поставил Ubuntu 12.10 по ссылке и не пойму как в ней к wi-fi инету подключиться. После установки с сайта больше ничего не ставил, настроек не менял. Не судите строго, первый раз сижу под Линукс. Помогите
А тестирующую систему KATTIS никто не знает, где найти? Может, кто-то поднял? Хотелось бы туда посдавать что-нибудь, чтобы понять ее особенности. Я нашел вот это, но там нельзя зарегаться.
(наверное здесь это все таки небольшой оффтоп)
мы никаких не заметили
Она абсолютно такая же в интерфейсе, как и любые другие, никаких особенностей там нет, забейте..
Если верить документации, то там есть приятная возможность в виде консольной сабмитилки.
да, кстати, правда. И посылать на печать тоже надо из консоли
Если нету geany значит настраиваем gedit... там можно на комбинацию клавиш повесить выполнение баш скрипта... то есть можно легко обходиться без консоли, что как бы делает его достаточно удобным.
Ещё с подачи команды БГУ узнал о том, что решения можно слать через консоль...
Сегодня скачал образ и попробовал установить его на нетбук (Samsung N100-MA02).
Попытка 1 (Epic Fail): записываю образ на флешку с помощью этой проги. Как позже выясняется, прога что-то изменяет в дистрибутиве, в итоге запускается не родной экран с выбором двух опций, который описан в инструкции, а левое текстовое меню. Из этого меню все-таки запускаю инсталлятор, он на середине копирования файлов выкидывает сообщение насчет поврежденного CD/DVD/жесткого диска.
Попытка 2 (Epic Win): использую другую прогу, далее делаю все по вышеуказанной инструкции, в итоге все нормально встает и работает.
Мне нравится sublime text 2.Удобный, красивенький и настраивается очень гибко.Еще он и кроссплатформеный.
Еще и на финале его нет. Действительно удобно