Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно.
Начну сначала:
Во-первых, есть два Emacs'а — XEmacs и GNU Emacs, с достаточным
количеством различий. Поставил XEmacs, скачал из EDonkey книжку об
использовании Emacs'а. Половину книжки рассказывается о том, какой же
крутой Emacs и как в нем можно делать все, что угодно. По этой книжке
изучил базовые методы редактирования (причем особой крутости по
сравнению со Студией не обнаружил).
Потом скачал XRefactory — эта штука мне крайне понравилась, она даже
смогла распарсить boost и мой проект. При этом рефакторинг работает
вообще почти идеально. Это, наверное, из-за того, что сама xref написана
на С, а не на elisp...
Затем я попробовал поставить CEdet — мой XEmacs стал падать по Access
Violation. Ну ладно, я скачал emacs-22.0.50.1 — он стал просто
зацикливаться при ede-new-project. Скачал emacs-21.3 — он наконец-то
заработал.
Затем я попробовал поискать VisualStudio mode — агащаз, нет такого.
Умные люди используют нормальный VS, а не Emacs.
Попробовал создать проект — сразу наткнулся на "замечательную"
документированость EDE, чтобы выяснить как мне прописать путь к
include'ам. Что характерно, готовых примеров C++ных проектов в EDE в
Сети я не нашел. Вообще, создается впечатление, что emacs'оиды делают
все, что возможно, чтобы отпугнуть пользователей.
Потом тут сказали про ECB, я попробовал его установить. Минут 40
потратил на поиск того, как изменить размер ECBшного фрейма.
Оказывается, надо было очень точно попасть мышкой в границу окна. Причем
как изменять размер окна с клавиатуры — я так и не нашел. Иконки в
списке каталогов не заработали (скриншоты типа этого http://ecb.sourceforge.net/screenshots/1.png они явно в Photoshop'е
рисуют), а сам список каталогов через некоторое время перестал подавать
признаки жизни.
Ладно, интегрирую speedbar вместо дерева каталогов. Естественно, оно не
работает нормально, да и еще откуда-то появилась "замечательная" фича —
курсор автоматически после двух секунд неактивности клавиатуры
перемешается в окно редактирования. Добавление файлов в проект из
менюшки speedbar'а, естественно, не работает — жалуется на отсутствующую
функцию ecb-speedbar-project-add-file.
Стал зверски раздражать "Tip of the day", который вылазил при каждом
запуске Emacs'а (галочки "больше не показывать" в это tip of the day не
было). Полез в исходники ecb — как тултип отключить я нашел быстро,
теперь нужно было отключить показ "ECB First Steps" при каждом запуске.
Почти сразу нашел такой код:
Сразу возник вопрос: а как же конфигугировать ecb-source-path для разных
проектов. Ответ нашел в списке рассылки: "Добавьте хук, который при
загрузке проекта будет устанавливать нужное значение". Как будто я
ожидал чего-то другого...
Я уж не говорю про совершенно неинтуитивные и неоптимальные клавиатурные
сокращения: для того, чтобы попасть в speedbar мне нужно набрать "C-c .
g d", в Студии мне просто надо нажать ctrl-alt-l. Автоматического
скрытия панели ECB я тоже не нашел — надо самому писать.
В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не
знать в соверешенстве elsip и внутреннюю структуру используемых модулей.
C>В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не C>знать в соверешенстве elsip и внутреннюю структуру используемых модулей.
Вам, пардон муа, вообще не следовало заниматься оценкой emacs-а. Это все равно как женьщину просить оценить удобство презерватива, у вас просто ОРГАНА соответствующего не хватает...
C>>В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не C>>знать в соверешенстве elsip и внутреннюю структуру используемых модулей.
dmz>Емаксоиды — ну вы все поняли? Идти и стреляться немедленно. Код, написанный dmz>вами в емаксе признается с этого момента недействительным.
А под вим есть xrefactory и VS-mode ? Нету . Фтопку
dmz>Мы же, приверженцы вима, пока похихикаем...
Просто товарищь пытался запустить вещь написанную для GNUEmacs на XEmacs
Такие штуки не прокатывают обычно. Спасибо столману
Здравствуйте, MaximE, Вы писали:
ME>Cyberax wrote:
ME>[]
>> В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не >> знать в соверешенстве elsip и внутреннюю структуру используемых модулей.
ME>Если человек не умеет пользоваться ручной коробкой передач, значит ли это, что все машины с такой коробкой неюзабельны?
Для этого человека -- однозначно неюзабельные.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно.
Всего? я вот уж лет 7 его ковыряю и еще конца не видно.
C>Начну сначала: C>Во-первых, есть два Emacs'а — XEmacs и GNU Emacs, с достаточным C>количеством различий.
Еще бы . Лично не видел что что-то прилично написанное для GNUEmacs
нормально работало на XEmacs и наоборот . Это как есть вот
два (ну их больше конечно) компилятора под винду Borland и VS.
Вроде код под одну ОС гененрят и на одном языке С++, но у одного
из них такая фигня получается, а другой ничего.
ъх C>(причем особой крутости по сравнению со Студией не обнаружил).
Хмм... базовые на то и базовые что они есть везде... смотри Advanced
C>Потом скачал XRefactory — эта штука мне крайне понравилась, она даже C>смогла распарсить boost и мой проект. При этом рефакторинг работает C>вообще почти идеально. Это, наверное, из-за того, что сама xref написана C>на С, а не на elisp...
На С++.
C>Затем я попробовал поискать VisualStudio mode — агащаз, нет такого. C>Умные люди используют нормальный VS, а не Emacs.
А что это за мода такая? Это которая будет рисовать все как в VS?
Такой думаю нет. Или это о раскладке?
C>Затем я попробовал поставить CEdet — мой XEmacs стал падать по Access C>Violation. Ну ладно, я скачал emacs-22.0.50.1 — он стал просто
[skip про ECB]
Мне лично он не нравится. Ибо сама среда emacs + xrefactory + console
уже достаточно. Нафига мне эмулятор VS? "Настоящие емаксоиды"
не исользуют всякие костыли типа ECB.
C>Я уж не говорю про совершенно неинтуитивные и неоптимальные клавиатурные C>сокращения: для того, чтобы попасть в speedbar мне нужно набрать "C-c . C>g d", в Студии мне просто надо нажать ctrl-alt-l. Автоматического C>скрытия панели ECB я тоже не нашел — надо самому писать.
Хмм... чем же ctrl-alt-l более "инуитивна"? . И еще, отвечая на вопрос
почему такие кривые биндинги — юзайте dworak . Там все _очень_ удобно под
пальцами лежит.
C>В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не C>знать в соверешенстве elsip и внутреннюю структуру используемых модулей.
Ну в совершенстве не обязательно... хотя elisp — то еще убожество. Вот
когданить выйдет CLImacs (название конечно ...) и будет щастье.
Здравствуйте, <Аноним>, Вы писали:
C>>В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не C>>знать в соверешенстве elsip и внутреннюю структуру используемых модулей. А>Вам, пардон муа, вообще не следовало заниматься оценкой emacs-а. Это все равно как женьщину просить оценить удобство презерватива, у вас просто ОРГАНА соответствующего не хватает...
Кроме того, что это довольно грубо, это еще и довольно не точно. Т.к. вопросы качества, надежности и удобства применения презерватива женщину волнуют ничуть не меньше, а может и больше -- беременнеет-то она.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно.
<...поскипано...> C>В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не C>знать в соверешенстве elsip и внутреннюю структуру используемых модулей.
Имхо, изначальный посыл был не верным. В Unix-е, на мой взгляд, не прокатывает подход "Сейчас мы быстренько-быстренько спустимся и покроем вон ту буренку". Здесь нужно переходить к подходу "Мы спокойно и не торопясь спустимся и покроем все стадо". С наскока практически ничего не делается, нужно обкладываться книгами, man-ами, howto и пробовать, пробовать, пробовать. И со временем все приходит.
По-моему, тебе здесь эту мысль неоднократно юниксоиды повторяют. Остается либо прислушаться и попробовать, либо перестать наезжать на Unix/Emacs/Vim, а то в "Священные войны" передем.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Имхо, изначальный посыл был не верным. В Unix-е, на мой взгляд, не прокатывает подход "Сейчас мы быстренько-быстренько спустимся и покроем вон ту буренку". Здесь нужно переходить к подходу "Мы спокойно и не торопясь спустимся и покроем все стадо". С наскока практически ничего не делается, нужно обкладываться книгами, man-ами, howto и пробовать, пробовать, пробовать. И со временем все приходит.
+
E>По-моему, тебе здесь эту мысль неоднократно юниксоиды повторяют. Остается либо прислушаться и попробовать, либо перестать наезжать на Unix/Emacs/Vim, а то в "Священные войны" передем.
Я думаю уже пора
dmz wrote:
> C>В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не > C>знать в соверешенстве elsip и внутреннюю структуру используемых модулей. > Емаксоиды — ну вы все поняли? Идти и стреляться немедленно. Код, > написанный > вами в емаксе признается с этого момента недействительным.
Нет, недействительным становится только код на ELisp'е.
> Мы же, приверженцы вима, пока похихикаем...
eao197 wrote:
> Имхо, изначальный посыл был не верным. В Unix-е, на мой взгляд, не > прокатывает подход "Сейчас мы быстренько-быстренько спустимся и > покроем вон ту буренку". Здесь нужно переходить к подходу "Мы спокойно > и не торопясь спустимся и покроем все стадо". С наскока практически > ничего не делается, нужно обкладываться книгами, man-ами, howto и > пробовать, пробовать, пробовать. И со временем все приходит.
Ну не нравится мне такой подход. Я бы предпочел, чтобы все работало
сразу и интуитивно: как в IDEA или в VS, а advanced-трюки можно уже
постепенно изучать в процессе работы.
> По-моему, тебе здесь эту мысль неоднократно юниксоиды повторяют. > Остается либо прислушаться и попробовать, либо перестать наезжать на > Unix/Emacs/Vim, а то в "Священные войны" передем.
Я стараюсь, прислушиваюсь — а в ответ Emacs ногой в ухо пинает....
Здравствуйте, Cyberax, Вы писали:
C>eao197 wrote:
>> Имхо, изначальный посыл был не верным. В Unix-е, на мой взгляд, не >> прокатывает подход "Сейчас мы быстренько-быстренько спустимся и >> покроем вон ту буренку". Здесь нужно переходить к подходу "Мы спокойно >> и не торопясь спустимся и покроем все стадо". С наскока практически >> ничего не делается, нужно обкладываться книгами, man-ами, howto и >> пробовать, пробовать, пробовать. И со временем все приходит.
C>Ну не нравится мне такой подход. Я бы предпочел, чтобы все работало C>сразу и интуитивно: как в IDEA или в VS, а advanced-трюки можно уже C>постепенно изучать в процессе работы.
Да пойми же, что emacs и vim это очень интуитивно. После нескольких лет применения. Это так и с этим ничего не поделаешь.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>Ну не нравится мне такой подход. Я бы предпочел, чтобы все работало C>сразу и интуитивно: как в IDEA или в VS, а advanced-трюки можно уже C>постепенно изучать в процессе работы.
Вот здесь сказывается то, что разработка ведется community: им продавать продукт не нужно и поэтому в товарный вид он не приводится. Тот же, кто справился с барьером обучения, становится членом community и ему товарный вид продукта уже не нужен.
По хорошему, Emacs нужен лишь один человек, которому не нравятся настройки по умолчанию, при этом являющйся хакером продукта, чтобы настроить все для новичка и пропихнуть mainstream, но таких пока что не нашлось. Альтернативой является компания, готовая по каким-либо причинам заплатить за такой тюнинг.
eao197 wrote:
> C>Ну не нравится мне такой подход. Я бы предпочел, чтобы все работало > C>сразу и интуитивно: как в IDEA или в VS, а advanced-трюки можно уже > C>постепенно изучать в процессе работы. > Да пойми же, что emacs и vim это очень интуитивно. После нескольких > лет применения. Это так и с этим ничего не поделаешь.
Вот в этом и проблема — интуитивность нужна в начале работы, а не после
нескольких лет.
dottedmag wrote:
> C>Ну не нравится мне такой подход. Я бы предпочел, чтобы все работало > C>сразу и интуитивно: как в IDEA или в VS, а advanced-трюки можно уже > C>постепенно изучать в процессе работы. > Вот здесь сказывается то, что разработка ведется community: им > продавать продукт не нужно и поэтому в товарный вид он не приводится.
FireFox тоже не продается и создается community, однако у него юзабилити
вообще выше всяких похвал.
> По хорошему, Emacs нужен лишь один человек, которому не нравятся > настройки по умолчанию, при этом являющйся хакером продукта, чтобы > настроить все для новичка и пропихнуть mainstream, но таких пока что > не нашлось. Альтернативой является компания, готовая по каким-либо > причинам заплатить за такой тюнинг.
Не так все просто — тот же ECB или Speedbar занимают достаточно много
кода, одному человеку такое писать будет весьма долго. Причем, чтобы
такой код написать, нужно УЖЕ хорошо знать Emacs.
CrystaX wrote: > C>>Вим у меня следующий на очереди... > dmz>вижуал студии из него не получится — можено даже не пробовать. > > Это смотря как его готовить.
Здорово... Если бы я к этому стремился — попросил бы _vimrc . И
остальные скрипты. Но мне это пока по счастью не нужно.
Здравствуйте, raskin, Вы писали:
R>Здорово... Если бы я к этому стремился — попросил бы _vimrc . И R>остальные скрипты. Но мне это пока по счастью не нужно.
Между прочим, это результат всего недели работы. Естественно, до сих пор все улучшается и правится, но основной скелет был сделан всего за неделю. Самый большой плюс — конфиг один и тот же и под виндами, и под Solaris/FreeBSD/Linux. Поведение и внешний вид, конечно, тоже.
raskin wrote:
> Про vim скажу сразу — vimtutor, http://www.vim.org/tips/tip.php?tip_id=305 > (g)vim + :help map > (g)vim _$VIM/vimrc > Это — час-другой. После станет хотя бы понятно, что происходит, и на что > здесь упор сделан. Не на то, на что в VS.
Сейчас как раз смотрю. Кстати, мне VIM понравился намного больше Emacs'а
— у него нет претензий на отдельную ОС
Здравствуйте, Cyberax, Вы писали:
C>Сейчас как раз смотрю. Кстати, мне VIM понравился намного больше Emacs'а C>- у него нет претензий на отдельную ОС
Ага, мне тоже. Была даже фраза такая (не ручаюсь за точность, но смысл передан): "emacs — это очень хорошая, просто отличная программа! Туда бы еще редактор нормальный...".
CrystaX wrote: > R>Здорово... Если бы я к этому стремился — попросил бы _vimrc . И > R>остальные скрипты. Но мне это пока по счастью не нужно. > > Между прочим, это результат всего недели работы. Естественно, до сих пор > все улучшается и правится, но основной скелет был сделан всего за > неделю. Самый большой плюс — конфиг один и тот же и под виндами, и под
Проект меньше — за день сделал себе вкладки, ну и постепенно писал
разные вкусности для редактирования кода. А нормальная система
управления проектом не упала, к счастью — надо только иметь работающую
копию всего перед существенными изменениями.
Cyberax wrote: >> C>Ну не нравится мне такой подход. Я бы предпочел, чтобы все работало >> C>сразу и интуитивно: как в IDEA или в VS, а advanced-трюки можно уже >> C>постепенно изучать в процессе работы. >> Вот здесь сказывается то, что разработка ведется community: им >> продавать продукт не нужно и поэтому в товарный вид он не приводится. > > FireFox тоже не продается и создается community, однако у него юзабилити > вообще выше всяких похвал.
Цель другая. ViM нужно 10^4 человек почитателей для живого развития и
написания скриптов. FF надо уважение к стандарту HTML/CSS/DOM/... — ему
надо, чтоб с ним считались.
Здравствуйте, MaximE, Вы писали:
ME>Если человек не умеет пользоваться ручной коробкой передач, значит ли это, что все машины с такой коробкой неюзабельны?
Вообще говоря, ручная коробка передач, с которой человек не в состоянии освоиться за 4 дня — это неюзабельная коробка передач :)
CrystaX wrote:
> C>>Вим у меня следующий на очереди... > dmz>вижуал студии из него не получится — можено даже не пробовать. > Это смотря как его готовить.
А можно конфиг на мыло выслать? А я обязуюсь попробовать прикрутить
XRefactory
Здравствуйте, Cyberax, Вы писали:
C>FireFox тоже не продается и создается community, однако у него юзабилити C>вообще выше всяких похвал.
Юзабилити... Ну-ну. И давно они глюки с фокусом в gtk2-сборке пофиксили? btw, смотри ниже.
>> По хорошему, Emacs нужен лишь один человек, которому не нравятся >> настройки по умолчанию, при этом являющйся хакером продукта, чтобы >> настроить все для новичка и пропихнуть mainstream, но таких пока что >> не нашлось.
Вот. У файрфокса такой человек нашелся.
>> Альтернативой является компания, готовая по каким-либо >> причинам заплатить за такой тюнинг.
C>Не так все просто — тот же ECB или Speedbar занимают достаточно много C>кода, одному человеку такое писать будет весьма долго. Причем, чтобы C>такой код написать, нужно УЖЕ хорошо знать Emacs.
aka50 wrote:
> C>Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно. > Всего? я вот уж лет 7 его ковыряю и еще конца не видно.
Нет, все забиваю на Emacs — ухожу в ViM
> C>(причем особой крутости по сравнению со Студией не обнаружил). > Хмм... базовые на то и базовые что они есть везде... смотри Advanced
Тоже как-то не впечатлили. Пожалуй, понравилось только transposition'ы,
но это мелкая фишка.
> C>Потом скачал XRefactory — эта штука мне крайне понравилась, она даже > C>смогла распарсить boost и мой проект. При этом рефакторинг работает > C>вообще почти идеально. Это, наверное, из-за того, что сама xref > написана > C>на С, а не на elisp... > На С++.
Ну вот — quod erat demonstrandum
> C>Затем я попробовал поискать VisualStudio mode — агащаз, нет такого. > C>Умные люди используют нормальный VS, а не Emacs. > А что это за мода такая? Это которая будет рисовать все как в VS? > Такой думаю нет. Или это о раскладке?
Естественно, раскладка — существующие клавишные привычки сложно менять,
особенно для таких сложных вещей, как отладчик. Потом, нужен аналог
Solution Explorer'а и Class Browser'а. Ну и еще нужен автоматический
maintainer для make-файлов, с автоматическим вычислением зависимостей.
> Мне лично он не нравится. Ибо сама среда emacs + xrefactory + console > уже достаточно. Нафига мне эмулятор VS? "Настоящие емаксоиды" > не исользуют всякие костыли типа ECB.
От него нужно было дерево исходников.
> Хмм... чем же ctrl-alt-l более "инуитивна"? .
Да, как ни странно: ctrl-alt — это префикс для панелек, а L — это из
SoLution. Как ни странно, очень легко запомнить.
> почему такие кривые биндинги — юзайте dworak . Там все _очень_ удобно под > пальцами лежит.
MaximE wrote:
>> В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не >> знать в соверешенстве elsip и внутреннюю структуру используемых модулей. > Если человек не умеет пользоваться ручной коробкой передач, значит ли > это, что все машины с такой коробкой неюзабельны?
aka50 wrote:
> dmz>Емаксоиды — ну вы все поняли? Идти и стреляться немедленно. Код, > написанный > dmz>вами в емаксе признается с этого момента недействительным. > А под вим есть xrefactory и VS-mode ? Нету . Фтопку
Дерево файлов там есть, менеджер проекта — тоже. XRefactory я прикручу.
> dmz>Мы же, приверженцы вима, пока похихикаем... > Просто товарищь пытался запустить вещь написанную для GNUEmacs на XEmacs > Такие штуки не прокатывают обычно. Спасибо столману
Оно, кстати, потом заработало в XEmacs при чистом _emacs. Что на него
влияло — не представляю.
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, Cyberax, Вы писали:
C>>Сейчас как раз смотрю. Кстати, мне VIM понравился намного больше Emacs'а C>>- у него нет претензий на отдельную ОС :)
CX>Ага, мне тоже. Была даже фраза такая (не ручаюсь за точность, но смысл передан): "emacs — это очень хорошая, просто отличная программа! Туда бы еще редактор нормальный...". :)))
Я слышал немножо другую версию.
что емакс — это целая операционная система, в которой есть все, кроме нормального текстового редактора :)
Здравствуйте, jazzer, Вы писали:
CX>>Ага, мне тоже. Была даже фраза такая (не ручаюсь за точность, но смысл передан): "emacs — это очень хорошая, просто отличная программа! Туда бы еще редактор нормальный...".
J>Я слышал немножо другую версию. J>что емакс — это целая операционная система, в которой есть все, кроме нормального текстового редактора
Ну я же говорил, что не ручаюсь за точность формулировки.
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, dmz, Вы писали:
C>>>Вим у меня следующий на очереди... dmz>>вижуал студии из него не получится — можено даже не пробовать.
CX>Это смотря как его готовить.
Эти все менюшки с клавы управляются? Или надо до мыши тянуться?
Здравствуйте, aka50, Вы писали:
A>Здравствуйте, CrystaX, Вы писали:
CX>>Здравствуйте, dmz, Вы писали:
C>>>>Вим у меня следующий на очереди... dmz>>>вижуал студии из него не получится — можено даже не пробовать.
CX>>Это смотря как его готовить.
A>Эти все менюшки с клавы управляются? Или надо до мыши тянуться?
Здравствуйте, aka50, Вы писали:
A>Эти все менюшки с клавы управляются? Или надо до мыши тянуться?
Некоторые с клавы. Другие еще не успел прикрутить. Прикручиваю по мере необходимости, тем более что это довольно просто.
Я вижу, народу захотелось пощупать. Вот, выложил на всеобщее обозрение: vim70aa.rar — это полностью запакованный рабочий каталог с Vim-ом. Я уже не помню, что именно и в каком порядке добавлял, поэтому выложил каталог целиком. vimrc.rar — это _vimrc и .vim, которые должны лежать в домашнем каталоге. В случае, если это unix, нужно переименовать _vimrc в .vimrc
Важное замечание: чтобы это все работало с C++ кодом, нужно чтобы где-то в путях был прописан каталог, где находится файлик exctags. Это Exuberant ctags. Я работаю с версией 5.5.4.
И наконец, disclaimer: я ни за что не отвечаю и ни на что не претендую. Конфиг писался чисто "для себя" и многое надо бы переделать и до ума довести. Если у Вас из-за запуска Vim-а с моим конфигом сгорит дом и сломается автомобиль — я не виноват.
Здравствуйте, Sergey Solovjev, Вы писали:
C>>А можно конфиг на мыло выслать? А я обязуюсь попробовать прикрутить C>>XRefactory
SS>А можно мне тоже конфиг выслать ?
SS>sergey.solovjev AT gmail.com
Cyberax wrote: > > Ну не нравится мне такой подход. Я бы предпочел, чтобы все работало > сразу и интуитивно: как в IDEA или в VS, а advanced-трюки можно уже > постепенно изучать в процессе работы.
Ты не поверишь, но человеку, привыкшему к vim + ctags + make, VS кажется
ужасно не-интуитивным.
Здравствуйте, Cyberax, Вы писали:
C>вообще почти идеально. Это, наверное, из-за того, что сама xref написана C>на С, а не на elisp... Дерево портов придется синхрить голубями, т.к. Cvsup на Modula написан. А жаль, жаль, так удобно было...
C>Затем я попробовал поискать VisualStudio mode — агащаз, нет такого. C>Умные люди используют нормальный VS, а не Emacs.
Прошу прощения. А я вот в Студии не могу отыскать php-mode и python-mode. В сети нет. Кстати, lisp-mode тоже. Могу ли я выслать DVD со Студией обратно в Microsoft?
C>Потом тут сказали про ECB, я попробовал его установить. Минут 40 C>потратил на поиск того, как изменить размер ECBшного фрейма. C>Оказывается, надо было очень точно попасть мышкой в границу окна. Причем C>как изменять размер окна с клавиатуры — я так и не нашел. Иконки в
Очень плохо.
`C-x ^'
Make selected window taller (`enlarge-window').
`C-x }'
Make selected window wider (`enlarge-window-horizontally').
`C-x {'
Make selected window narrower (`shrink-window-horizontally').
Глава 16.6
C>списке каталогов не заработали (скриншоты типа этого C>http://ecb.sourceforge.net/screenshots/1.png они явно в Photoshop'е C>рисуют), а сам список каталогов через некоторое время перестал подавать C>признаки жизни.
Вот тут конечно, лаг. Чтобы поиметь такой эмакс, как на скриншоте, его надо качать совсем не с оффсайта. Т.к. на рисунке — эмакс, собранный с поддержкой gif и jpeg. У меня такой, кстати.
C>менюшки speedbar'а, естественно, не работает — жалуется на отсутствующую C>функцию ecb-speedbar-project-add-file.
Скорее всего, на не вызванную.
C>Я уж не говорю про совершенно неинтуитивные и неоптимальные клавиатурные C>сокращения: для того, чтобы попасть в speedbar мне нужно набрать "C-c . C>g d", в Студии мне просто надо нажать ctrl-alt-l. Автоматического C>скрытия панели ECB я тоже не нашел — надо самому писать.
?? Как понять — автоматическое скрытие? Плавающее окно?
glyph wrote:
> C>вообще почти идеально. Это, наверное, из-за того, что сама xref > написана > C>на С, а не на elisp... > Дерево портов придется синхрить голубями, т.к. Cvsup на Modula > написан. А жаль, жаль, так удобно было...
У меня от cvsup'а остались крайне плохие впечатления, когда мы пробовали
сделать распределенный репозиторий в CVS. Сейчас используем svk (написан
на Перле, работает поверх svn) — и уже забыли про cvsup.
BSD'ей у нас тоже больше нет
> C>Затем я попробовал поискать VisualStudio mode — агащаз, нет такого. > C>Умные люди используют нормальный VS, а не Emacs. > Прошу прощения. А я вот в Студии не могу отыскать php-mode и > python-mode. В сети нет. Кстати, lisp-mode тоже. Могу ли я выслать DVD > со Студией обратно в Microsoft?
Можете. Кстати, PHP mode кем-то делался, еще слышал что-то про
расширение VS для IronPython.
А вообще, Студия не предназначена для работы со всеми возможными
языками. Она хорошо поддерживает C++, C#/J#/VB.NET, SQL и JS. Собственно
говоря, больше обычно и не надо.
> C>Оказывается, надо было очень точно попасть мышкой в границу окна. > Причем > C>как изменять размер окна с клавиатуры — я так и не нашел. Иконки в > Очень плохо. > `C-x ^' > Make selected window taller (`enlarge-window'). > `C-x }' > Make selected window wider (`enlarge-window-horizontally'). > `C-x {' > Make selected window narrower (`shrink-window-horizontally'). > Глава 16.6
Это говорит только о низком качестве документации. Кстати, а почему у
этих команд префикс C-x, а не C-c . ?
> C>списке каталогов не заработали (скриншоты типа этого > C>http://ecb.sourceforge.net/screenshots/1.png они явно в Photoshop'е > C>рисуют), а сам список каталогов через некоторое время перестал подавать > C>признаки жизни. > Вот тут конечно, лаг. Чтобы поиметь такой эмакс, как на скриншоте, его > надо качать совсем не с оффсайта. Т.к. на рисунке — эмакс, собранный с > поддержкой gif и jpeg. У меня такой, кстати.
На скриншоте об этом написать — слабо?
> C>менюшки speedbar'а, естественно, не работает — жалуется на > отсутствующую > C>функцию ecb-speedbar-project-add-file. > Скорее всего, на не вызванную.
Ее вообще нет в исходниках.
> C>Я уж не говорю про совершенно неинтуитивные и неоптимальные > клавиатурные > C>сокращения: для того, чтобы попасть в speedbar мне нужно набрать "C-c . > C>g d", в Студии мне просто надо нажать ctrl-alt-l. Автоматического > C>скрытия панели ECB я тоже не нашел — надо самому писать. > ?? Как понять — автоматическое скрытие? Плавающее окно?
В Студии я жму Ctrl-alt-l и у меня выползает панелька Solution Explorer,
я делаю на ней то, что нужно, жму esc и снова оказываюсь в редакторе, а
панелька скрывается.
Здравствуйте, Cyberax, Вы писали:
C>У меня от cvsup'а остались крайне плохие впечатления, когда мы пробовали C>сделать распределенный репозиторий в CVS. Сейчас используем svk (написан C>на Перле, работает поверх svn) — и уже забыли про cvsup.
Вообще говоря, CVSup и SVN — немного разные вещи. Может имелся ввиду CVS?
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, aka50, Вы писали:
A>>Эти все менюшки с клавы управляются? Или надо до мыши тянуться?
CX>Некоторые с клавы. Другие еще не успел прикрутить. Прикручиваю по мере необходимости, тем более что это довольно просто.
CX>Я вижу, народу захотелось пощупать. Вот, выложил на всеобщее обозрение:
skip
Мда... прикольная вещь . Но я все-таки наверное емаксоид . В емаксе как-то все роднее
и понятнее... и лисп как-то ближе чем vim-овские скрипты. Плюс к тому, сильно на Makefile подвязано,
как я понял. И в виме походу нельзя во фрейме поменять размер шрифта... не удобно , ибо например
sidebar я бы помельче сделал...
Здравствуйте, aka50, Вы писали:
A>Мда... прикольная вещь . Но я все-таки наверное емаксоид . В емаксе как-то все роднее A>и понятнее... и лисп как-то ближе чем vim-овские скрипты. Плюс к тому, сильно на Makefile подвязано, A>как я понял.
Да, на Makefile. Но Makefile генерится самим Vim-ом, поэтому проблем нет.
A> И в виме походу нельзя во фрейме поменять размер шрифта... не удобно , ибо например A>sidebar я бы помельче сделал...
Ну дык я же говорил — делал для себя. А для себя никакой супер настраиваемости на лету не нужно. Хотя, я думаю, и там много чего можно было бы сделать, если заняться серьезно.
Здравствуйте, Cyberax, Вы писали:
>> C>Оказывается, надо было очень точно попасть мышкой в границу окна. >> Причем >> C>как изменять размер окна с клавиатуры — я так и не нашел. Иконки в >> Очень плохо. >> `C-x ^' >> Make selected window taller (`enlarge-window'). >> `C-x }' >> Make selected window wider (`enlarge-window-horizontally'). >> `C-x {' >> Make selected window narrower (`shrink-window-horizontally'). >> Глава 16.6
C>Это говорит только о низком качестве документации. Кстати, а почему у C>этих команд префикс C-x, а не C-c . ?
Нет. Достаточно более внимательно читать документацию. Есть несколько способов
получить помощь
1. C-h-b
2. apropos
3. собсно мануаль
Т.е. c-x — системная карта, а C-c это биндинги для текущей моды. C-x 4/5 — это
соотвественно управление окнами/фреймами и т.д.
>> C>списке каталогов не заработали (скриншоты типа этого >> C>http://ecb.sourceforge.net/screenshots/1.png они явно в Photoshop'е >> C>рисуют), а сам список каталогов через некоторое время перестал подавать >> C>признаки жизни. >> Вот тут конечно, лаг. Чтобы поиметь такой эмакс, как на скриншоте, его >> надо качать совсем не с оффсайта. Т.к. на рисунке — эмакс, собранный с >> поддержкой gif и jpeg. У меня такой, кстати.
C>На скриншоте об этом написать — слабо? http://ecb.sourceforge.net/docs/FAQ.html
ECB does not display images in the tree-buffers — what can i do?
Customize ecb-tree-buffer-style and restart ECB.
But note: GNU Emacs <= 21.3.X for Windows does not support image-display so ECB uses
always ascii-guide-lines even when here the image-style is set in ecb-tree-buffer-style.
Хотя согласен, это косяк разработчиков ECB. Но при чем тут emacs
>> C>Я уж не говорю про совершенно неинтуитивные и неоптимальные >> клавиатурные >> C>сокращения: для того, чтобы попасть в speedbar мне нужно набрать "C-c . >> C>g d", в Студии мне просто надо нажать ctrl-alt-l. Автоматического >> C>скрытия панели ECB я тоже не нашел — надо самому писать. >> ?? Как понять — автоматическое скрытие? Плавающее окно?
C>В Студии я жму Ctrl-alt-l и у меня выползает панелька Solution Explorer, C>я делаю на ней то, что нужно, жму esc и снова оказываюсь в редакторе, а C>панелька скрывается.
butcher wrote:
> C>У меня от cvsup'а остались крайне плохие впечатления, когда мы > пробовали > C>сделать распределенный репозиторий в CVS. Сейчас используем svk > (написан > C>на Перле, работает поверх svn) — и уже забыли про cvsup. > Вообще говоря, CVS*up* и SVN — немного разные вещи. Может имелся ввиду > CVS?
Я знаю, мы пытались с помощью cvsup синхронизировать два
CVS-репозитория для распределенной разработки.
Здравствуйте, Cyberax, Вы писали:
C>BSD'ей у нас тоже больше нет
Ну ничего. Думаю, переживете...
C>Можете. Кстати, PHP mode кем-то делался, еще слышал что-то про C>расширение VS для IronPython.
Ага. Я даже пробовал. Но оно за деньги, а еще для комфортной работы в машине памяти мало было. Забил. Но они есть, да.
C>А вообще, Студия не предназначена для работы со всеми возможными C>языками. Она хорошо поддерживает C++, C#/J#/VB.NET, SQL и JS. Собственно C>говоря, больше обычно и не надо.
С#-mode тоже есть.
C>Это говорит только о низком качестве документации.
Выпад, недостойный программиста вашего уровня. Отыскать можно самостоятельно, даже вручную, без автоматического поиска. C>Кстати, а почему у этих команд префикс C-x, а не C-c . ?
Хз. Науке это неизвестно. Наука пока что, как говорится, не в курсе дела. 8)
C>На скриншоте об этом написать — слабо?
Ессно слабо. Это скиншот ведь.
Дело тут в другом — кто как компилирует эмакс. NTEmacs скомпилирован под mingw, кажется. Вот, кто-то скомпилировал с --with-jpeg и --with-gif и выложил. А кто-то сам из сорсов компилировал. А кто-то качал с оффсайта, где он скомпилирован так, чтобы запуститься везде. 9х и т.д. Ну да, аскетично. Так и мы вроде делом заняты, а не в игрушки играем...
C>Ее вообще нет в исходниках.
Печально. Версии все свежие?
>> ?? Как понять — автоматическое скрытие? Плавающее окно?
C>В Студии я жму Ctrl-alt-l и у меня выползает панелька Solution Explorer, C>я делаю на ней то, что нужно, жму esc и снова оказываюсь в редакторе, а C>панелька скрывается.
Хехе. А в чем негатив? Оно работает? Работает как надо? По одному нажатию кнопки, небось? Написано быстро?
А сколько времени уйдет у меня, чтобы написать плагин к Студии? Допустим, чтобы почту почитать? 8)
Я, конечно же, иронизирую. Да, далек продукт от идеала. Однако, пусть бросит в меня камнем тот, кто сам безупречен.
Кстати, самое время показать окружающим скрипт для эмуляции плавающего окошка.
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, aka50, Вы писали:
A>>Мда... прикольная вещь . Но я все-таки наверное емаксоид . В емаксе как-то все роднее A>>и понятнее... и лисп как-то ближе чем vim-овские скрипты. Плюс к тому, сильно на Makefile подвязано, A>>как я понял.
CX>Да, на Makefile. Но Makefile генерится самим Vim-ом, поэтому проблем нет.
Я это понял... но я CMake пользую. Хотя конечно обычно это не проблема.
A>> И в виме походу нельзя во фрейме поменять размер шрифта... не удобно , ибо например A>>sidebar я бы помельче сделал...
CX>Ну дык я же говорил — делал для себя. А для себя никакой супер настраиваемости на лету не нужно. Хотя, я думаю, CX>и там много чего можно было бы сделать, если заняться серьезно.
Я только не понял, а это вообще возможно? Мне показалось, что фреймы имеют одинаковый шрифт. И скриншоты
которые я до этого видел обычно это подтверждают. Хотя я могу ошибаться.
Здравствуйте, Cyberax, Вы писали:
C>Я знаю, мы пытались с помощью cvsup синхронизировать два C>CVS-репозитория для распределенной разработки.
И в чём были сложности если не секрет? Там все как два пальца об асфальт..
Вчера поднял у себя в локалке CVSup сервер с зеркалом репозитария FreeBSD.. CVSup FAQ
Здравствуйте, aka50, Вы писали:
CX>>Ну дык я же говорил — делал для себя. А для себя никакой супер настраиваемости на лету не нужно. Хотя, я думаю, CX>>и там много чего можно было бы сделать, если заняться серьезно. A>Я только не понял, а это вообще возможно? Мне показалось, что фреймы имеют одинаковый шрифт. И скриншоты A>которые я до этого видел обычно это подтверждают. Хотя я могу ошибаться.
В 6.3 — нет, невозможно. А вот в 7-ой версии что-то там грозились сделать с GUI. Надо почитать внимательнее. В любом случае, разные шрифты мне не нужны. Меня и один устраивает.
jazzer wrote:
> Слушай, раз ты такой поклонник Студии 7.1 — как сделать в ней > нормальную работу с жабовскими исходниками? > Сейчас в ней даже раскраски нет
Поставить Eclipse/IDEA, которые специально для Явы затачивались.
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, Cyberax, Вы писали:
C>>Я знаю, мы пытались с помощью cvsup синхронизировать два C>>CVS-репозитория для распределенной разработки.
B>И в чём были сложности если не секрет? Там все как два пальца об асфальт.. B>Вчера поднял у себя в локалке CVSup сервер с зеркалом репозитария FreeBSD.. B>CVSup FAQ
Возьмите меня к себе в локалку, а? Хочу жить в среде OpenSource.
butcher wrote:
> C>Я знаю, мы пытались с помощью cvsup синхронизировать два > C>CVS-*репозитория* для распределенной разработки. > И в чём были сложности если не секрет? Там все как два пальца об асфальт.. > Вчера поднял у себя в локалке CVSup сервер с зеркалом репозитария > FreeBSD..
Мы пробовали сделать двустороннюю репликацию, при это делали так, чтобы
изменения не пересекались. Но все равно, были какие-то странные проблемы
с crlf'ами, и спутаными номерами ревизий.
Здравствуйте, Cyberax, Вы писали:
C>jazzer wrote:
>> Слушай, раз ты такой поклонник Студии 7.1 — как сделать в ней >> нормальную работу с жабовскими исходниками? >> Сейчас в ней даже раскраски нет
C>Поставить Eclipse/IDEA, которые специально для Явы затачивались.
У меня места нет на винте после всех этих SDK и студий ставить еще отдельную здоровую приблуду для жабы, и времени на их изучение тоже нет :(
6-я студия ведь умела все отображать без проблем, и плюсы, и жабу...
Здравствуйте, jazzer, Вы писали:
J>У меня места нет на винте после всех этих SDK и студий ставить еще отдельную здоровую приблуду для жабы, и времени на их изучение тоже нет J>6-я студия ведь умела все отображать без проблем, и плюсы, и жабу...
Сам подумай, нафига это МS, если есть такая супер текнолоджи .Net . Зачем им java поддерживать?
jazzer wrote:
> C>Поставить Eclipse/IDEA, которые специально для Явы затачивались. > У меня места нет на винте после всех этих SDK и студий ставить еще > отдельную здоровую приблуду для жабы, и времени на их изучение тоже нет > 6-я студия ведь умела все отображать без проблем, и плюсы, и жабу...
Не смешите. IDEA/Eclipse+JDK займет максимум 200-300 мегабайт. А если у
вас нет даже этого, то какого черта вы полезли использовать VS???
Ну а уж не суметь изучить IDEA (или даже eclipse) может только
законченый юниксоид...
Здравствуйте, Cyberax, Вы писали:
C>Ну а уж не суметь изучить IDEA (или даже eclipse) может только законченый юниксоид...
Как-то это очень презрительно и обидно звучит. Спасибо что когда на этот форум зашли
сразу не сказали:
"Ну что уроды недоделаные, как тут вашим сра%#$%#ным xemacs пользоваться"
aka50 wrote:
> C>Ну а уж не суметь изучить IDEA (или даже eclipse) может только > *законченый юниксоид*... > Как-то это очень презрительно и обидно звучит.
Ну что сделать, если IDEA максимально не похожа на Emacs?
> Спасибо что когда на этот форум зашли сразу не сказали: > "Ну что уроды недоделаные, как тут вашим сра%#$%#ным xemacs пользоваться"
Если честно, то после 4 дней занятий нетрадиционным сексом с
[X]Emacs'ом, именно это и хотелось сказать.
приложение должно быть интуитивно понятно. интуитивно понятно означает — сел и разобрался за 1-2 дня. не просто сумел запустить, а сумел сделать в нем то либо имеющее коммерческую ценность /это для данного контекста/.
если почитать по ветке ниже, то люди с продуктом годами разбираются, и после этого говорят что он прост и интуитивно понятен. не находите что это довольно странно?
Здравствуйте, k., Вы писали:
k.>приложение должно быть интуитивно понятно. интуитивно понятно означает — сел и разобрался за 1-2 дня. не просто сумел запустить, а сумел сделать в нем то либо имеющее коммерческую ценность /это для данного контекста/. k.>если почитать по ветке ниже, то люди с продуктом годами разбираются, и после этого говорят что он прост и интуитивно понятен. не находите что это довольно странно?
Нет, не кажется.
Почему-то никто не удивляется, что нельзя просто так взять карандаш и нарисовать портрет или пейзаж -- этому нужно долго учиться. Хотя чего тут сложного: бумага, карандаш, ластик. Все просто и интуитивно понятно.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>Не смешите. IDEA/Eclipse+JDK займет максимум 200-300 мегабайт. А если у C>вас нет даже этого, то какого черта вы полезли использовать VS???
Сколько-сколько??????? Это у нас сейчас называется мало?
Не, у меня столько свободного нет, у меня одних объектников во время билда только одной конфигурации примерно столько выползает, не говоря уже о всякой лабуде типа sbr, pdb и прочая.
А VS — это, извините, необсуждаемый в моем случае параметр.
И вообще, мне есть, чем винт забить, более полезным, чем целая система ради раз-в-недельной правки жабных исходников.
C>Ну а уж не суметь изучить IDEA (или даже eclipse) может только C>законченый юниксоид...
Ты читай внимательно, что я пишу: "времени на их изучение тоже нет".
А не способностей, как ты неправильно прочитал :)))
C>-- C>С уважением, C> Alex Besogonov (alexy@izh.com)
Твое уважение, Алексей, выражается весьма оригинально с лексической точки зрения :))
eao197 wrote:
> k.>приложение должно быть интуитивно понятно. интуитивно понятно > означает — сел и разобрался за 1-2 дня. не просто сумел запустить, а > сумел сделать в нем то либо имеющее коммерческую ценность /это для > данного контекста/. > k.>если почитать по ветке ниже, то люди с продуктом годами > разбираются, и после этого говорят что он прост и интуитивно понятен. > не находите что это довольно странно? > Нет, не кажется.
Кажется, кажется.
> Почему-то никто не удивляется, что нельзя просто так взять карандаш и > нарисовать портрет или пейзаж -- этому нужно долго учиться. Хотя чего > тут сложного: бумага, карандаш, ластик. Все просто и интуитивно понятно.
Предположим, что человек уже умеет рисовать, а ему дают карандаши,
которые надо 2 года осваивать.
К примеру, понадобилось быстро помочь проекту, в котором использовалась
Omnicore XDevelop (до этого я его ни разу не использовал) — я сел, и
_сразу_ смог в нем писать. Конечно, приходилось постоянно тянуться к
мышке из-за несоответствующих шорткатов и незнакомых пунктов меню, но
при этом я могу нормально работать (пусть даже медленнее, чем обычно).
Это как раз и называется "интуитивность".
А вот в Emacs'е мне пришлось прежде чем начать работу:
1. Прочитать достаточно большой мануал
2. Поэкспериментировать с софтом
3. Поотлаживать код в elisp'е
При этом меню в Emacs такое, что ничем особо не помогает. Сейчас вот 40
минут искал опцию, чтобы заставить speedbar открывать файлы при нажатии
enter, но не переключаться на них сразу.
Здравствуйте, Cyberax, Вы писали:
>> Почему-то никто не удивляется, что нельзя просто так взять карандаш и >> нарисовать портрет или пейзаж -- этому нужно долго учиться. Хотя чего >> тут сложного: бумага, карандаш, ластик. Все просто и интуитивно понятно.
C>Предположим, что человек уже умеет рисовать, а ему дают карандаши, C>которые надо 2 года осваивать.
...И поэтому ну на фиг эти карандаши, я и дальше фломастерами плакаты лепить буду!
Проблема в том, что понятие "умеет рисовать вообще" становится бесполезным, если нужно выполнить работу обязательно в графике. И либо приходится становится графиком, либо нет. Даже если у тебя большой предыдущий опыт в акварели или масле, то здесь он просто не применим.
C>А вот в Emacs'е мне пришлось прежде чем начать работу: C>1. Прочитать достаточно большой мануал C>2. Поэкспериментировать с софтом C>3. Поотлаживать код в elisp'е
C>При этом меню в Emacs такое, что ничем особо не помогает. Сейчас вот 40 C>минут искал опцию, чтобы заставить speedbar открывать файлы при нажатии C>enter, но не переключаться на них сразу.
А вот мне интересно, тебе это реально надо было? Нет, ну серьезно, подумай. Вот не включил бы ты эту опцию и тратил бы на открытие файла на 5 секунд больше. 40 минут -- это время открытия 480 файлов. Если ты работаешь с 40-ка файлами каждый день, то этого времени тебе хватит на 12 рабочих дней -- две недели. Теперь представь, что вместо поиска опции самому, ты бы запостил вопрос о существовании этой опции сюда. И продолжил бы отрывать файлы по старинке. Мне кажется, что за две недели кто-нибудь из emacs-оводов бы тебе чего-нить подсказал. И может даже чего-нибудь более полезного.
Я вот, например, чуть больше года назад волевым усилием заставил себя пересесть из SciTe в vim (как раз тогда много приходилось по telnet-у и ssh на удаленных машинах работать). И что ты думаешь, после прочтения vim tutor я стал продвинутым пользователем vim-а? Да ни в жисть! Первые месяцы я вообще кроме h, j, k, l, dd, x, X, y, p, P, o, O, u, ^R и перехода в Visual-mode ничего не мог запомнить -- за всем приходилось в help заглядывать. И уж совсем смешно -- первый месяц я думал, что в Vim можно только один файл редактировать (ну не дочитал я сразу в tutor-е про буфера и окна). А как между буферами переключался: сначала :ls, затем находил имя и номер буфера, затем :b<номер>. Потом узнал, что можно :b<фрагмент имени>. А как я был счаслив, когда вычитал про :b# Самому смешно вспоминать. И такие маленькие (а иногда и не очень) приятные открытия сопровождают меня до сих пор. Вот недавно, например, в форуме "Средства разработки" подсказали принцип комбинаций ciw, diw -- ну очень помогает. А сейчас многие команды vim мне кажутся намного удобнее аналогичных из Visual-сред. И даже новые файлы в Vim через :e + автодополнение по tab мне открывать гораздо удобнее, чем через Open File Dialog в Word-е.
Так к чему это я. Да к тому, что лично у меня процент времени, который занимает набор кода в vim, намного меньше 50% от времени, которое я трачу на разработку (может быть даже меньше 30%). Гораздо больше времени уходит на проектирование, тестирование и документирование. Поэтому затраты на изучение и овладение новой средой (emacs или vim) оказывают незначительное влияние на время всей разработки.
Ну а Unix, в моем представлении, это вообще среда не для спешки. Ну куда можно спешить в системе, которой уже под 30 лет и которая еще столько же счастливо прожить собирается? Днем/неделей раньше, днем/неделей позже -- какая разница. Ну не пишут под Unix софт, который пользователь пару раз запустит, полюбуется на диалоговые окошки с картинками и снесет нафиг. Наоборот, делают системы, которые месяцами, годами работают без перезагрузки и участия пользователя/администратора. А если программа будет работать 5-10 лет без серьезных upgrade, с минимумом необходимых patch-ей, то так ли будет важно, что при ее написании один из разработчиков тратил на открытие одного файла в emacs на пять секунд больше, чем в Visual Studio (да и то в первые три-четыре недели разработки)?
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
>> Почему-то никто не удивляется, что нельзя просто так взять карандаш и >> нарисовать портрет или пейзаж -- этому нужно долго учиться. Хотя чего >> тут сложного: бумага, карандаш, ластик. Все просто и интуитивно понятно.
C>Предположим, что человек уже умеет рисовать, а ему дают карандаши, C>которые надо 2 года осваивать.
А вот скажи, сколько ты по времени осваивал виндоуз? Прочитал книжку
"виндоуз для чайников" и сразу стал гуру? И VS тоже минут за 10 освоил?
Особенно вероятно ctlr-alt-l сразу без чтения мануаля само с небес спустилось?
C>К примеру, понадобилось быстро помочь проекту, в котором использовалась C>Omnicore XDevelop (до этого я его ни разу не использовал) — я сел, и C>_сразу_ смог в нем писать. Конечно, приходилось постоянно тянуться к C>мышке из-за несоответствующих шорткатов и незнакомых пунктов меню, но C>при этом я могу нормально работать (пусть даже медленнее, чем обычно). C>Это как раз и называется "интуитивность".
Это не интуитивность. Это _привычка_. При ближайшем рассмотрении XDevelop
есть не что иное как VS-клон. Я думаю если сравнивать это с тем же CForge
или KDeveloper думаю у них тоже интерфейс окажется очень интуитивным.
Я вот чего не понимаю. Опять к стати задаю тот-же вопрос. Почему приходят
и начинают рассуждать об интуитивности, когда на самом деле это просто банальная
привычка. И получается, что то, что не похоже на VS — помойка. Если меня посадить
за VS (хотя когда-то работал но 5-ке) я тоже буду плеваться и говорить, что
я 40 минут пытался заставить переключаться между файлами по вхождению слова
(к стати, а это возможно?).
Опять же повторюсь: unix — своя философия. В чем-то она старомодна, в чем-то
элегантна, в чем-то просто кривая. Но своя. С этим ничего не поделаешь.
Попытки превратить тотже линух в винду (спасибо скажем KDE/GNOME etc) ни к чему
хорошему не приведут. Может умреть серверная/девелоперская ОС и самое печальное
не родится новая ОС для домохозяек. Да unix требует большого количества скриптов,
знаний и просто желания разобраться. Но после нескольких лет это становится второй
натурой. Например class-browser мне частенько заменяет команда:
Есть еще куча всяких полезных вещей типа sed,awk (правда их можно perl-ом или python-ом
заменить, но проще бывает именно эти утилиты использовать).
Одно похвально, что в отличии от многих других Вы все таки честно попытались освоить эти
чудеса юниксовой мысли и только после этого сделали свой вывод. Думаю дальнейшие убеждения
бессмысленная трата времени ибо xemacs и даже уверен vim не дадут вам VS. Более того Вас будет
окружать чуждая вам среда и комфортно от этого не будет.
k.>если почитать по ветке ниже, то люди с продуктом годами разбираются, и после этого говорят что он прост и интуитивно понятен. не находите что это довольно странно?
На то, что бы начать работать в Виме, у меня ушел день. Правда, у меня был бакгроунд — я
уже умел из него выходить (ZZ). Думаю, на емакс не ушло бы намного больше времени, если
бы я принял волевое решение пересесть на него. Просто вим первым подвернулся.
Здравствуйте, dmz, Вы писали:
dmz>На то, что бы начать работать в Виме, у меня ушел день. Правда, у меня был бакгроунд — я dmz>уже умел из него выходить (ZZ). Думаю, на емакс не ушло бы намного больше времени, если
Да
Для начинающих это большая проблема — выйти из vi/vim
Здравствуйте, Cyberax, Вы писали:
>> Почему-то никто не удивляется, что нельзя просто так взять карандаш и >> нарисовать портрет или пейзаж -- этому нужно долго учиться. Хотя чего >> тут сложного: бумага, карандаш, ластик. Все просто и интуитивно понятно. C>Предположим, что человек уже умеет рисовать, а ему дают карандаши, C>которые надо 2 года осваивать.
А давайте предположим, что не умеет? Это форум для программистов или форум для исследования сфероконных скачек в вакууме?
Умение писать программы под определенную платформу ничего не говорит о степени развития интуиции. И хотя меня считают электронным демиургом местного эгрегора, но пользоваться программами типа Word в полном объеме
их функционала я попросту не в состоянии. У меня нет времени на постижение их идеологии. В этом отношении мне быстрее сверстать html-страницу, чем искать хитромудрую опцию во глубине Оффисных меню. О чем это говорит? Что я плохой программист? Или неинтуитивный пользователь? Философия...
aka50 wrote:
> C>Предположим, что человек уже умеет рисовать, а ему дают карандаши, > C>которые надо 2 года осваивать. > А вот скажи, сколько ты по времени осваивал виндоуз? Прочитал книжку > "виндоуз для чайников" и сразу стал гуру? И VS тоже минут за 10 освоил?
Винду я осваивал долго, но вот сказать, что я долго осваивал VS — это
вряд ли. Использовать VS я смог почти сразу, потом просто постепенно
изучал разные шорткаты, трюки с более оптимальным использованием
редактора/отладчика и т.п.
> Особенно вероятно ctlr-alt-l сразу без чтения мануаля само с небес > спустилось?
Оно написано справа от от Solution Explorer в меню View.
> Это не интуитивность. Это _привычка_. При ближайшем рассмотрении XDevelop > есть не что иное как VS-клон. Я думаю если сравнивать это с тем же CForge > или KDeveloper думаю у них тоже интерфейс окажется очень интуитивным.
CForge достаточно сильно отличается от VS. Вот KDevelop как раз и
копирует Студию, но у него это не очень получается.
> Я вот чего не понимаю. Опять к стати задаю тот-же вопрос. Почему приходят > и начинают рассуждать об интуитивности, когда на самом деле это просто > банальная > привычка. И получается, что то, что не похоже на VS — помойка.
Ну так ведь получается, что 90% разных IDE сделаны по одному подобию.
> Если меня посадить за VS (хотя когда-то работал но 5-ке) я тоже буду > плеваться и говорить, что > я 40 минут пытался заставить переключаться между файлами по вхождению > слова > (к стати, а это возможно?).
Возможно: Ctr-F — набор слова (поддерживаются регэкспы) — ctrl-j — enter.
> Опять же повторюсь: unix — своя философия. В чем-то она старомодна, в > чем-то > элегантна, в чем-то просто кривая. Но своя. С этим ничего не поделаешь. > Попытки превратить тотже линух в винду (спасибо скажем KDE/GNOME etc) > ни к чему > хорошему не приведут. Может умреть серверная/девелоперская ОС и самое > печальное > не родится новая ОС для домохозяек. Да unix требует большого > количества скриптов, > знаний и просто желания разобраться. Но после нескольких лет это > становится второй > натурой.
Так ведь получается, что часть программ в Юниксе сейчас как раз unix-way
нарушают. И тот же emacs — как раз такой случай.
> Например class-browser мне частенько заменяет команда:
Не серьерзно, в большом проекте так браузить код очень неудобно.
>find ./ -name "*.h" | xargs egrep -H "^class[ ]*Mutex" >./IceUtil/Cond.h:class Mutex; >./IceUtil/Mutex.h:class Mutex > >
f11 (Plugin menu) — g (ReGexp search) (набор "class [ ]*Mutex") — alt-p
(Panelize) — в FAR'е. Набирается в разы быстрее, чем find и т.п. Причем
все это можно сделать через менюшки и диалоги, не зная шорткатов.
В самой Студии — ctr-f и т.д.
> Очистка кода от svn директорий вот так > >find ./ -type d -path "*.svn" -prune | xargs rm -rf > >
alt-f7 — набор ".svn" — enter — alp-p (Panelize) — * (Select All) — f8
(Delete). Тоже в FARе.
> Есть еще куча всяких полезных вещей типа sed,awk (правда их можно > perl-ом или python-ом > заменить, но проще бывает именно эти утилиты использовать).
Да, только реально они нужны очень редко. Большую часть времени хватает
возможностей FARа.
> Одно похвально, что в отличии от многих других Вы все таки честно > попытались освоить эти > чудеса юниксовой мысли и только после этого сделали свой вывод.
Юниксами я занимаюсь уже лет 10, и давно освоил их администрирование и
использование. Вот теперь я попытался попробовать научиться их
эффективно использовать для разработки.
> Думаю дальнейшие убеждения бессмысленная трата времени ибо xemacs и > даже уверен vim не дадут вам VS. Более того Вас будет > окружать чуждая вам среда и комфортно от этого не будет. >
> За сим завязываю я это флейм .
Я тут с интересом наблюдаю за вашими попытками, потому что сам нахожусь примерно в такой же ситуации .
Вы не пробовали jEdit? Несмотря на то, что он написан на java и немного тормозит ( как обычно ), он тем не менее довольно удобный ( привычней точно ), очень легко обновлять ( сам соединится по интернету, выкачает список плагинов и поставит их ) да и некоторые встроеные возможности в нем есть сразу ( например бразер файлов ). Сам я его использовал пока очень мало, хотелось бы услышать мнения ..
jazzer wrote:
> C>Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно. > Эх, а как бы и в случае emacs, и в случае vi помогла бы клавиатура > Optimus!
Кстати да, у нас уже люди мечтают: а вот бы ее к zsh прикрутить. Типа
пишешь: ps, а оно на каждой клавише выводит название опции
sylрh wrote:
> Я тут с интересом наблюдаю за вашими попытками, потому что сам > нахожусь примерно в такой же ситуации . > Вы не пробовали jEdit? Несмотря на то, что он написан на java и > немного тормозит ( как обычно ), он тем не менее довольно удобный ( > привычней точно ), очень легко обновлять ( сам соединится по > интернету, выкачает список плагинов и поставит их ) да и некоторые > встроеные возможности в нем есть сразу ( например бразер файлов ). Сам > я его использовал пока очень мало, хотелось бы услышать мнения ..
Только что его снес Не нашел в нем поддержки отладчиков для С++ и
нормального менеджера проектов.
> p.s. Да .. к нему подходит xrefactory
Денис Корявов wrote:
> C>Только что его снес Не нашел в нем поддержки отладчиков для С++ и > C>нормального менеджера проектов. > А ProjectViewer чем не понравился?
glyph wrote:
> C>Предположим, что человек уже умеет рисовать, а ему дают карандаши, > C>которые надо 2 года осваивать. > А давайте предположим, что не умеет? Это форум для программистов или > форум для исследования сфероконных скачек в вакууме?
Вспоминая тему "Синтаксический оверхед".....
> Умение писать программы под определенную платформу ничего не говорит о > степени развития интуиции. И хотя меня считают электронным демиургом > местного эгрегора, но пользоваться программами типа Word в полном объеме > их функционала я попросту не в состоянии. У меня нет времени на > постижение их идеологии. В этом отношении мне быстрее сверстать > html-страницу, чем искать хитромудрую опцию во глубине Оффисных меню.
Однако же, вы без проблем сможете сразу же набросать достаточно средний
по сложности документ, не читая никакой документации. Ну а все
суперкрутые возможности Ворда, знают весьма немногие.
С Emacs'ом наоборот — придется долго сидеть и читать про
advanced-методы, чтобы сделать даже самые примитивные вещи.
Здравствуйте, Cyberax, Вы писали:
C>С Emacs'ом наоборот — придется долго сидеть и читать про C>advanced-методы, чтобы сделать даже самые примитивные вещи.
После tutorial'а (30 минут от силы) примитивные вещи делаются элементарно.
Константин wrote:
> C>С Emacs'ом наоборот — придется долго сидеть и читать про > C>advanced-методы, чтобы сделать даже самые примитивные вещи. > После tutorial'а (30 минут от силы) примитивные вещи делаются элементарно.
Покажите мне после 30 минут туториала как сделать следующие вещи:
1. Создать проект на С++.
2. Написать простенькую программу.
3. Откомпилировать.
4. Запустить.
5. Запустить под отладчиком.
6. Поставить точку прервыания.
7. Поотлаживать.
Здравствуйте, Cyberax, Вы писали:
C>Константин wrote:
>> C>С Emacs'ом наоборот — придется долго сидеть и читать про >> C>advanced-методы, чтобы сделать даже самые примитивные вещи. >> После tutorial'а (30 минут от силы) примитивные вещи делаются элементарно.
C>Покажите мне после 30 минут туториала как сделать следующие вещи: C>1. Создать проект на С++. C>2. Написать простенькую программу. C>3. Откомпилировать. C>4. Запустить. C>5. Запустить под отладчиком. C>6. Поставить точку прервыания. C>7. Поотлаживать.
Не скажу, что для текстового редактора это примитивные вещи. Встречный вопрос, как это сделать в notepad'е, vim-е?
По ходу, что такое проект на C++?
Здравствуйте, Cyberax, Вы писали:
C>Покажите мне после 30 минут туториала как сделать следующие вещи: C>1. Создать проект на С++. C>2. Написать простенькую программу. C>3. Откомпилировать. C>4. Запустить. C>5. Запустить под отладчиком. C>6. Поставить точку прервыания. C>7. Поотлаживать.
Константин wrote:
> C>Покажите мне после 30 минут туториала как сделать следующие вещи: > C>1. Создать проект на С++. > C>2. Написать простенькую программу. > C>3. Откомпилировать. > C>4. Запустить. > C>5. Запустить под отладчиком. > C>6. Поставить точку прервыания. > C>7. Поотлаживать. > Не скажу, что для текстового редактора это *примитивные вещи*. > Встречный вопрос, как это сделать в notepad'е, vim-е?
А мне, блин, текстовый редактор не нужен. Мне IDE для С++ нужна.
> По ходу, что такое проект на C++?
Набор взаимосвязаных файлов, образующих библиотеку/программу.
aka50 wrote:
> C>Покажите мне после 30 минут туториала как сделать следующие вещи: > C>1. Создать проект на С++. > C>2. Написать простенькую программу. > C>3. Откомпилировать. > C>4. Запустить. > C>5. Запустить под отладчиком. > C>6. Поставить точку прервыания. > C>7. Поотлаживать. > Хмм... ворд это умеет? Круть.
Ворд — нет (если не считать встроеного VB ), а вот VS — умеет.
> А если честно, то туториал по емаксу, а не по IDE. > Но если воспользоваться гуглом "xemacs c++ tutorial" > то буквально 7-я ссылка > http://www.yolinux.com/TUTORIALS/LinuxTutorialXemacs.html
Непосредственно по редактированию там есть и неплохой встроеный
tutorial. На них нареканий у меня нет.
> Я уже говорил или нет что ты не умеешь пользоваться google?
Мне не XEmacs tutorial нужен, а [X]Emacs C++ IDE Tutorial.
* This works best if you have a Makefile
* Use *| M-x compile |* to compile program
* The default (make -k) is usually ok
* Use *| C-x ` |* to locate the next error
* See sample .emacs for to define function keys for previous-error
and next-error
* Emacs supports many debuggers (gdb, dbx, perldb) through GUD, the
Grand Unified Debugger
* Start with *| M-x gdb |* or *| M-x dbx |* or *| M-x perldb |*
* Standard debugger commands are executed in one window, Emacs
automatically tracks the source code file and line number in the
other
* Emacs understands many debugger commands
* The most common one is *| M-space |* to set a breakpoint on the
line where the cursor is located
Здравствуйте, Cyberax, Вы писали:
C>Покажите мне после 30 минут туториала как сделать следующие вещи: C>1. Создать проект на С++.
А проект предполагается кроссплатформенный или только под Unix?
Если кроссплатформенный, то как ты собираешься поддерживать проектные файлы от разных IDE на разных платформах?
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>aka50 wrote:
>> C>Мне не XEmacs tutorial нужен, а [X]Emacs C++ IDE Tutorial. >> http://lug.umbc.edu/tutorials/adv-emacs.html
C>Я сейчас заплАчу:
skip C>Это "debug tutorial"???
Что из перечисленных пунктов нельзя сделать после прочтения
указанных мной ссылок?
(ну кроме бредового 1-го. Что есть С++ проект? configure.ac?
CMakeLists.txt? Makefile? xrefrc?)
1. Создать проект на С++.
2. Написать простенькую программу.
3. Откомпилировать.
4. Запустить.
5. Запустить под отладчиком.
6. Поставить точку прервыания.
7. Поотлаживать.
Или требуется в стиле:
1. Нажимите C-X f
2. Наберите filename
....
Тогда вам в виндоуз. Там полно книжек С++ за 21 день
где кроме скриншотов VS ничего полезного нет.
ЗЫ: ссылки были найдены в гугле за 10 минут. Если немного поупираться
то можно и более толковые найти. Вопрос желания. Разжевывать ИМХО
никто не будет, т.к. за емакс никто денег не берет. По этому зачем
тратить свое время на разжевывание непонятливым VSоидам какие кнопочки
тыкать? Блин, детский сад.
Народ, завязывайте уже это, зачем вы уговариваете друг друга что надо использовать?
Ну не нравится/не хочет, зачем тогда убеждать в чём-то? Пообсуждайте лучше что-нибудь интересное
Cyberax wrote:
> Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно.
[]
> В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не > знать в соверешенстве elsip и внутреннюю структуру используемых модулей.
Читаю я дискуссию, вижу, что человек ты с другой планеты. Ну нахрена, скажи мне, все эти auto complete, class browser, etc..? Когда я трудился под виндозой, я неоднократно пытался заставить себя пользовать visual assist. Не смог. Как начинал пользоваться, чувствовал, что тупею, мысль останавливается, теряется. class browser вообще вещь уникальная в своей бесполезности — что толку от тучи названий классов и их функций, когда нет картины их взаимодействия?
Я понимаю, что человеку, начавшему с Visual Studio, модель мира с бесполезными рюшечками кажется единственно правильной. Но это, опять же, как с медитациями — пока не практикуешь, не осознаешь, что свою "сознательную" жизнь ты спишь наяву.
emacs — из другого мира, там несколько другие понятия и система ценностей. С наскока не осваивается — я пытался.
Как я изучал emacs: прочел O'Reily Leaning GNU Emacs, и Bash заодно. Сел и стал работать продуктивно в любой среде.
Здравствуйте, MaximE, Вы писали:
ME>Читаю я дискуссию, вижу, что человек ты с другой планеты. Ну нахрена, скажи мне, все эти auto complete, class browser, etc..? Когда я трудился под виндозой, я неоднократно пытался заставить себя пользовать visual assist. Не смог. Как начинал пользоваться, чувствовал, что тупею, мысль останавливается, теряется. class browser вообще вещь уникальная в своей бесполезности — что толку от тучи названий классов и их функций, когда нет картины их взаимодействия?
Ты очень преувеличиваешь.
Когда работаешь в большом проекте или сразу в нескольких (как раз мой случай), физически невозможно помнить все названия всех методов и членов.
Т.е. ты помнишь, что есть метод, который генерит новый ключ, но как именно он называется — gen_key, gen_new_key, generate_key, они же с подчеркиваниями, они же в верблюжей нотации... Тратить время на выяснение такой фигни — недопустимо, а времени оно отнимает много, если нет auto-complete.
Как раз тупеешь, когда приходится заниматься разнообразными грепами вместо того, чтобы писать код.
Это — рутина, а рутина должна быть максимально автоматизирована, чтобы ты не думал ни о чем, кроме собственно программирования.
Иными словами, ты должен быть окружен средствами, которые позволят написать код, который у тебя в голове, максимально быстро. И не тратить время на борьбу с редактором.
Здравствуйте, MaximE, Вы писали:
ME>Ну нахрена, скажи мне, все эти auto complete, class browser, etc..? Когда я трудился под виндозой, я неоднократно пытался заставить себя пользовать visual assist. Не смог. Как начинал пользоваться, чувствовал, что тупею, мысль останавливается, теряется.
А я уж стал думать, что я один такой -- тупеющий, когда мне среда начинает названия методов и параметров подсказывать. Следующая стадия -- когда ждешь, что IDE за тебя еще и следующую строку напишет.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>А я уж стал думать, что я один такой -- тупеющий, когда мне среда начинает названия методов и параметров подсказывать. Следующая стадия -- когда ждешь, что IDE за тебя еще и следующую строку напишет.
именно.
Когда я пишу "if" или "for", я жду, что у меня тут же появятся две пары скобок. Потому что их так и так писать придется в 99% случаев — так зачем мне тратить свое время?
Здравствуйте, jazzer, Вы писали:
E>>А я уж стал думать, что я один такой -- тупеющий, когда мне среда начинает названия методов и параметров подсказывать. Следующая стадия -- когда ждешь, что IDE за тебя еще и следующую строку напишет.
J>именно. J>Когда я пишу "if" или "for", я жду, что у меня тут же появятся две пары скобок. Потому что их так и так писать придется в 99% случаев — так зачем мне тратить свое время?
Я не об этом (такая фишка еще лет 12-13 назад в MultiEdit-е была). Например, пишешь вызов какого-нибудь метода, который возвращает ссылку на объект. А у этого объекта, скажем нужно метод DrawRect вызывать. Что-то вроде GetDC()-> и вот тут я уже начинаю ждать, когда же среда мне DrawRect напишет. Ладно, не дождался, сам начинаю вписывать DrawRe -- о! Тут мне подсказывает. Получается GetDC->DrawRect(. И опять от меня чего-то ждет, сама ничего не пишет, только говорит, что нужна координата x. Ага. А где же она у меня? Почему никто не подсказывает? Оказывается мне ее вычислить нужно. И опять я сам должен формулу написать. И т.д.
Кому-то нравится. А лично меня раздражает. Если я знаю, что мне нужно нарисовать прямоугольник и знаю как вычислить его координаты, то пусть мне никто не мешается под ногами. А если кто-то лезет с подсказками, так пусть сам все и делает
Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно. ;)
А я начинал с калькулятора Электроника БЗ-34, и с тех пор ценю всякие средства, помогающие несчастным труженикам стека и регистра :)
Здравствуйте, jazzer, Вы писали:
ME>>Если человек не умеет пользоваться ручной коробкой передач, значит ли это, что все машины с такой коробкой неюзабельны?
J>Вообще говоря, ручная коробка передач, с которой человек не в состоянии освоиться за 4 дня — это неюзабельная коробка передач
Вообще говоря, реактивный истребитель, с которым человек не в состоянии справиться за четыре дня, совершенно необязательно является неюзабельным истребителем. Более того, этот факт не скажет о юзабельности истребителя НИ-ЧЕ-ГО.
Здравствуйте, jazzer, Вы писали:
E>>Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно. J>А я начинал с калькулятора Электроника БЗ-34, и с тех пор ценю всякие средства, помогающие несчастным труженикам стека и регистра
Ой, тоже мне... Помнится, мы с Адой, Байрона внучкой, как вернемся от Бэббиджа... Так сразу рукоятки дергать... Пока перфокарты изобрели — я такие бицепсы накачал...
Здравствуйте, glyph, Вы писали:
G>Здравствуйте, jazzer, Вы писали:
E>>>Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно. J>>А я начинал с калькулятора Электроника БЗ-34, и с тех пор ценю всякие средства, помогающие несчастным труженикам стека и регистра G> Ой, тоже мне... Помнится, мы с Адой, Байрона внучкой, как вернемся от Бэббиджа... Так сразу рукоятки дергать... Пока перфокарты изобрели — я такие бицепсы накачал...
дык я вот читал читал и не понял...
у кого же всё таки больше?
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
execve wrote:
> C>Покажите мне после 30 минут туториала как сделать следующие вещи: > C>1. Создать проект на С++. > >$ cd ~/devel >$ mkdir newproject >$ cd newproject >$ vi Makefile >TARGET=1 >OBJS=1.o > >ifdef DEBUG >CFLAGS+=-ggdb -O0 >CXXFLAGS+=-ggdb -O0 >endif >LD=$(CXX) > >all: $(TARGET) > >$(TARGET): $(OBJS) > $(LD) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ > >clean: > rm -f $(TARGET) $(OBJS) > >
У меня куча библиотек в h-файлах. Где автоматическое вычисление
зависимостей? То есть, если я меняю файлик grammar.hpp, то мне НЕ
хочется перекомпилировать все cpp-шники, а только те, где включен
grammar.hpp. При этом еще желательно, чтобы автоматически определялись
non-relevant изменения (то есть, если файл blah.cpp только включает
grammar.hpp, но не использует его — то перекомпилировать его не надо).
Далее, у меня исходники раскиданы по достаточно глубокому дереву
каталогов. Где здесь рекурсивный обход?
Почему линковка не инкрементальная?
> C>5. Запустить под отладчиком.
Да, забыл сказать, что под _нормальным_ отладчиком. То есть с нормальным
интерфейсом, а не командной строкой.
> 5 минут.
Нет.
> В реальном проекте всё, разумеется, не набивается "с нуля", а > копируется/генерируется. > gdb при желании заменяется на DDD, а vi — на emacs.
BreQwaS wrote:
> C>Она хорошо поддерживает C++, C#/J#/VB.NET, SQL и JS. Собственно > C>говоря, больше обычно и не надо. > Не надо кому? Мне — надо.
Ну так используйте для этого _другие_ среды, а не жалуйтесь, что VS не
поддерживает brainf**k и whitespace. Кажется, это ведь unix-way, когда
каждая программа делает немного, но хорошо?
Здравствуйте, Cyberax, Вы писали:
C>То есть, если я меняю файлик grammar.hpp, то мне НЕ C>хочется перекомпилировать все cpp-шники, а только те, где включен C>grammar.hpp. При этом еще желательно, чтобы автоматически определялись C>non-relevant изменения (то есть, если файл blah.cpp только включает C>grammar.hpp, но не использует его — то перекомпилировать его не надо).
А это как?
C>Почему линковка не инкрементальная?
А у GCC и ld есть инкрементальная линковка?
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197 wrote:
> Кому-то нравится. А лично меня раздражает. Если я знаю, что мне нужно > нарисовать прямоугольник и знаю как вычислить его координаты, то пусть > мне никто не мешается под ногами. А если кто-то лезет с подсказками, > так пусть сам все и делает
Кстати, для IDEA есть такой плугин. Пишешь, например:
String str="sdfsdf"
str.
Жмешь shortcut для completion'а, появляется список методов у
java.lang.String. Выбираем, например getBytes. Он пишет примерно так:
Если навести мышку/курсор на charsetName, то он покажет примерно это: "
charsetName — the name of a supported _charset_" (_charset_ —
гиперссылка на доку/исходник для java.nio.charset.Charset).
Такой автокомплит хорошо помогает новичкам, хотя мне больше нравится
чуть менее полный autocomplete.
MaximE wrote:
>> В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не >> знать в соверешенстве elsip и внутреннюю структуру используемых модулей. > Читаю я дискуссию, вижу, что человек ты с другой планеты. Ну нахрена, > скажи мне, все эти auto complete, class browser, etc..?
Продолжим: а нафига вообще редактор-то нужен? Настоящие программисты
руками набивают перфокарты. Там и настоящий cut&paste (ножницами
и клеем) будет, который никаким emacs'ам и не снился.
> class browser вообще вещь уникальная в своей бесполезности — что толку > от тучи названий классов и их функций, когда нет картины их > взаимодействия?
В C++ в одном файле могут быть несколько классов. Как мне быстро найти,
где определен данный класс? Еще часто очень удобно посмотреть какие у
класса есть наследники и предки.
> Я понимаю, что человеку, начавшему с Visual Studio, модель мира с > бесполезными рюшечками кажется единственно правильной. Но это, опять > же, как с медитациями — пока не практикуешь, не осознаешь, что свою > "сознательную" жизнь ты спишь наяву.
Ну вот как всегда — стандартный ответ...
> Как я изучал emacs: прочел O'Reily Leaning GNU Emacs, и Bash заодно. > Сел и стал работать продуктивно в любой среде.
Еще раз говорю: сам редактор сложности не представляет. Просто очередные
нестандартные key-binding'и и пара других трюков.
Здравствуйте, Cyberax, Вы писали:
C>execve wrote:
C>У меня куча библиотек в h-файлах. Где автоматическое вычисление C>зависимостей? То есть, если я меняю файлик grammar.hpp, то мне НЕ C>хочется перекомпилировать все cpp-шники, а только те, где включен C>grammar.hpp. При этом еще желательно, чтобы автоматически определялись C>non-relevant изменения (то есть, если файл blah.cpp только включает C>grammar.hpp, но не использует его — то перекомпилировать его не надо).
C>Далее, у меня исходники раскиданы по достаточно глубокому дереву C>каталогов. Где здесь рекурсивный обход?
OBJ=`find . -name "*.cc" | sed 's/\(.*\)\.cc/\1.o/'`
C>Почему линковка не инкрементальная?
Почему в шапке?
>> C>5. Запустить под отладчиком.
C>Да, забыл сказать, что под _нормальным_ отладчиком. То есть с нормальным C>интерфейсом, а не командной строкой.
$ ddd ./1
>> 5 минут.
C>Нет.
Да.
>> В реальном проекте всё, разумеется, не набивается "с нуля", а >> копируется/генерируется. >> gdb при желании заменяется на DDD, а vi — на emacs.
C>Про edit&continue я вообще молчу...
Здравствуйте, Cyberax, Вы писали:
C>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, C>где определен данный класс? Еще часто очень удобно посмотреть какие у C>класса есть наследники и предки.
doxygen мне в этом очень помогает.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197 wrote:
> C>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, > C>где определен данный класс? Еще часто очень удобно посмотреть какие у > C>класса есть наследники и предки. > doxygen мне в этом очень помогает.
Значит, class browser таки используется. Только в виде внешней утилиты,
которая на сложном С++ весьма глючная.
C>>У меня куча библиотек в h-файлах. Где автоматическое вычисление C>>зависимостей? То есть, если я меняю файлик grammar.hpp, то мне НЕ C>>хочется перекомпилировать все cpp-шники, а только те, где включен C>>grammar.hpp. При этом еще желательно, чтобы автоматически определялись C>>non-relevant изменения (то есть, если файл blah.cpp только включает C>>grammar.hpp, но не использует его — то перекомпилировать его не надо).
E>http://www.rsdn.ru/Forum/Message.aspx?mid=1296922&only=1
>>> C>5. Запустить под отладчиком.
C>>Да, забыл сказать, что под _нормальным_ отладчиком. То есть с нормальным C>>интерфейсом, а не командной строкой.
E>
Здравствуйте, Cyberax, Вы писали:
C>eao197 wrote:
>> C>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, >> C>где определен данный класс? Еще часто очень удобно посмотреть какие у >> C>класса есть наследники и предки. >> doxygen мне в этом очень помогает.
C>Значит, class browser таки используется. Только в виде внешней утилиты, C>которая на сложном С++ весьма глючная.
Ну по мне это не class browser, а генератор документации. Про глючность doxygen ничего говорить не буду, особо не замечал (возможно потому, что я на "C с классами" по большей части программирую).
Кроме того, весь смысл как раз в том, что внешние утилиты позволяют получать тот же результат, но не нуждаясь в монстроидальных IDE.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
execve wrote:
> C>У меня куча библиотек в h-файлах. Где автоматическое вычисление > C>зависимостей? То есть, если я меняю файлик grammar.hpp, то мне НЕ > C>хочется перекомпилировать все cpp-шники, а только те, где включен > C>grammar.hpp. При этом еще желательно, чтобы автоматически определялись > C>non-relevant изменения (то есть, если файл blah.cpp только включает > C>grammar.hpp, но не использует его — то перекомпилировать его не надо). > http://www.rsdn.ru/Forum/Message.aspx?mid=1296922&only=1
Вы представляете, сколько это будет работать на библиотеке типа Boost'а?
Да еще и работает это все неикрементально (в отличие от VS) (которая
отслеживает изменения в include'ах).
> C>Почему линковка не инкрементальная? > Почему в шапке?
Ну знаете, у меня в проекте полная линковка занимает две минуты, а
инкрементальная — всего 30 секунд.
> C>Да, забыл сказать, что под _нормальным_ отладчиком. То есть с > нормальным > C>интерфейсом, а не командной строкой. > >$ ddd ./1 > >
Плоховато у него с нафигацией по коду.
> C>Про edit&continue я вообще молчу... > Правильно молчишь.
Ну да, в Linux'е его нет — значит это ересь. Слышали уже....
Здравствуйте, dmz, Вы писали:
dmz>http://www.opennet.ru/docs/RUS/gnumake/index.html dmz>autotools
C>>>Далее, у меня исходники раскиданы по достаточно глубокому дереву C>>>каталогов. Где здесь рекурсивный обход?
E>>
E>>OBJ=`find . -name "*.cc" | sed 's/\(.*\)\.cc/\1.o/'`
E>>
dmz>Прикольно. Но можно и средствами GNU make. dmz>
C>Ну да, в Linux'е его нет — значит это ересь. Слышали уже....
Система открытая и бесплатная. Вам что-то надо, а этого нет —
допишите. Ну или хотя бы фиче-реквест отправьте куда надо.
Вот не пойму — оно всё вам надо или нет? Если да — то есть два
пути: научиться пользоваться тем, что есть или написать своё.
Что толку от разведения тут базара? От него что, волшебным образом
ваше любимое MSVS в линукс портируется, что ли?
Знаю кучу людей, которым удобно работать именно так, как вам упорно не
нравится. То, что все такое, какое оно есть означает ровно то,
что тем кто разрабатывает под GNU, работать удобно именно так.
C>Вы представляете, сколько это будет работать на библиотеке типа Boost'а?
Простите, вы boost отлаживаете?
Если да, то один раз make depend.
Если нет, то зачем учитывать зависимости от boost'а?
C>Да еще и работает это все неикрементально (в отличие от VS) (которая C>отслеживает изменения в include'ах).
Оно отслеживает изменение в include'ах.
C>Ну знаете, у меня в проекте полная линковка занимает две минуты, а C>инкрементальная — всего 30 секунд.
А у меня ещё меньше.
Потому, что есть разделение на библиотеки.
>>$ ddd ./1 >> C>Плоховато у него с нафигацией по коду.
Меня устраивает.
А если тебе нужно "то же самое, но с перламутровыми пуговицами" — ищи сам:
$ apt-cache search debugger | wc -l
160
>> C>Про edit&continue я вообще молчу... >> Правильно молчишь.
C>Ну да, в Linux'е его нет — значит это ересь. Слышали уже....
Здравствуйте, Cyberax, Вы писали:
C>Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно.
Прочитал весь тред.
Резюме одно: "со своим уставом в чужой монастырь не ходят".
Все твои претензии — суть "я в Windows/VisualStudio привык делать ТАК, как мне сделать ТОЧНО ТАК ЖЕ в Linux/Whatever".
Тебе-таки процесс нужен, или результат?
Если процесс, то боюсь, ни [X]Emacs, ни остальное тебе не поможет. Просто потому, что под *nix нет Visual Studio.
Если результат, то придётся-таки изучить те методы достижения результатов, которые приняты в *nix. Они не лучше и не хуже, чем в Visual Studio, они просто другие.
Здравствуйте, BreQwaS, Вы писали:
BQS>Здравствуйте, jazzer, Вы писали:
J>>Сколько-сколько??????? Это у нас сейчас называется мало?
BQS>По PCшным меркам, в общем-то, да. Какой у вас винчестер? 20? 10? 5? Даже если 5, то 300 Мб — это мало.
Ну да, я забыл, ведь память у нас больше не русурс...
Повторю, для меня 300 МБ ради тупой возможности редактировать жаверские файлы — это очень много.
Потому что, повторю, у меня есть чем винт забить, намного более полезным и для меня нужным.
Если у вас такого нет и единственное, чем можно заполнить винт — это очереджной редактор на 300 метров — я очень за вас рад, но это не мой случай.
Здравствуйте, BreQwaS, Вы писали:
BQS>Здравствуйте, jazzer, Вы писали:
ME>>>Если человек не умеет пользоваться ручной коробкой передач, значит ли это, что все машины с такой коробкой неюзабельны?
J>>Вообще говоря, ручная коробка передач, с которой человек не в состоянии освоиться за 4 дня — это неюзабельная коробка передач :)
BQS>Вообще говоря, реактивный истребитель, с которым человек не в состоянии справиться за четыре дня, совершенно необязательно является неюзабельным истребителем. Более того, этот факт не скажет о юзабельности истребителя НИ-ЧЕ-ГО.
А с чем Вы спорите, собственно?
Максим, который не я, говорил о ручной коробке передач, и я ему возразил.Вот если бы он говорил про реактивный истребитель — я бы возражал ему иначе, а именно: если редактор сравним по сложности с реактивным истребителем, то это — неправильный редактор, потому что редактор должен быть сравним по сложности с коробкой-автомат, максимум — с ручной. Потому что редактор — это вспомогтельное средство и не более того, и ресурсов спинного мозга на него должно хватать с головой, потому что голова должна быть занята делом, а не многочисленными трех-четырехклавишными шорткатами и прочими неочевидными настройками.
Здравствуйте, jazzer, Вы писали:
J>Если у вас такого нет и единственное, чем можно заполнить винт — это очереджной редактор на 300 метров — я очень за вас рад, но это не мой случай.
jazzer wrote:
> BQS>По PCшным меркам, в общем-то, да. Какой у вас винчестер? 20? 10? > 5? Даже если 5, то 300 Мб — это мало. > Ну да, я забыл, ведь память у нас больше не русурс... > Повторю, для меня 300 МБ ради тупой возможности редактировать > жаверские файлы — это очень много.
Если необходимость писать программы на Java — одна из основных
потребностей, то тут лишние 300Мб ничего не значат. А если просто
изредка нужно что-то подредактировать, то вполне подойдет jEdit или даже
встроеный редактор FARа. Для FARа можно даже умный autocomplete для Java
поставить (плугин такой есть).
> Потому что, повторю, у меня есть чем винт забить, намного более > полезным и для меня нужным. > Если у вас такого нет и единственное, чем можно заполнить винт — это > очереджной редактор на 300 метров — я очень за вас рад, но это не мой > случай.
IDEA/Eclipse — это не _редакторы_, а IDE. Две большие разницы, что
называется.
execve wrote:
> C>Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно. > Прочитал весь тред. > Резюме одно: "со своим уставом в чужой монастырь не ходят". > Все твои претензии — суть "я в Windows/VisualStudio привык делать ТАК, > как мне сделать ТОЧНО ТАК ЖЕ в Linux/Whatever".
Проблема в том, что сейчас есть де-факто стандарты на IDE.
> Тебе-таки процесс нужен, или результат?
И то, и другое.
> Если процесс, то боюсь, ни [X]Emacs, ни остальное тебе не поможет. > Просто потому, что под *nix нет Visual Studio.
Да, к сожалению для С++ в *nix'ах нет VS. В основном из-за большой
сложности самого языка С++. А вот для Java/Python/C#/Perl аналоги VS
вполне себе существуют и чувствуют себя неплохо.
> Если результат, то придётся-таки изучить те методы достижения > результатов, которые приняты в *nix. Они не лучше и не хуже, чем в > Visual Studio, они просто другие.
Я сейчас вижу, что они заставляют меня писать кучу скриптов, рыться в
горах настроек, а результаты получаются не лучше, чем в VS.
C>Да, к сожалению для С++ в *nix'ах нет VS. В основном из-за большой C>сложности самого языка С++. А вот для Java/Python/C#/Perl аналоги VS C>вполне себе существуют и чувствуют себя неплохо.
Это вы, наверное, с ними плотно не работали.
Что-то мне все равно подсказывает, что все равно 90% кода на скриптовых
языках пишется и правится в vim/emacs. Потому что проще и удобнее, плюс
сами языки довольно емкие — писанины меньше получается. К Java и C# это, конечно,
не относится.
C>Я сейчас вижу, что они заставляют меня писать кучу скриптов, рыться в C>горах настроек, а результаты получаются не лучше, чем в VS.
Настройка редактора под свой вкус и стиль работы — это разовая акция.
Делается один раз за всю жизнь, после чего конфиг может спокойно
перетаскиваться с одного рабочего места на другое. Тоже относится к
autotools и/или написанию мейкфайла. Но и эту акцию можно ускорить,
если воспользоваться готовыми конфигами, которые постепенно
подкрутить под себя. В принципе, мы уже в этом топике потратили больше
времени, чем нужно для того, что бы достичь желаемой цели — получить
приемлемую среду для разработки.
Кстати, большая загадка, что такое в данном случае загадочные "результаты",
которые в VS "лучше". Код более качественный? Кода больше за единицу времени?
Смешно. В любом случае, стоило бы упомянуть, что это лично у вас так выходит
— что, в общем, неудивительно.
C>Проблема в том, что сейчас есть де-факто стандарты на IDE.
Это вам так кажется, просто. Что они есть. Они есть только для
представителей альтернативной, околовиндузовой реальности
Но, с другой стороны, никто же не мешает написать свою IDE, учитывая
эти "стандарты". Можно даже заточить под них готовую — тот же KDevelop.
Чего там не хватало-то? Если эти идеи востребованы, то прославитесь.
dmz wrote:
> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. > Это вам так кажется, просто. Что они есть. Они есть только для > представителей альтернативной, околовиндузовой реальности
Простите, эта "альтернативная" реальность занимает процентов 95% рынка,
так что альтернативная реальность — это emacs/vim. А причина —
производители IDE думают об удобстве пользователя, наравне с
функциональностью.
> Но, с другой стороны, никто же не мешает написать свою IDE, учитывая > эти "стандарты". Можно даже заточить под них готовую — тот же KDevelop. > Чего там не хватало-то? Если эти идеи востребованы, то прославитесь.
Подбросил коллегам идею прикрутить xrefactory к Eclipse CDT. Так что все
возможно...
Здравствуйте, Cyberax, Вы писали:
C>Простите, эта "альтернативная" реальность занимает процентов 95% рынка, C>так что альтернативная реальность — это emacs/vim. А причина — C>производители IDE думают об удобстве пользователя, наравне с C>функциональностью.
Здравствуйте, BreQwaS, Вы писали:
BQS>Здравствуйте, jazzer, Вы писали:
J>>Если у вас такого нет и единственное, чем можно заполнить винт — это очереджной редактор на 300 метров — я очень за вас рад, но это не мой случай.
BQS>Это вы мне говорите, да? ;)
Ну так о чем мы тогда спорим??? :)
P.S. Stiv Vai -> Steve Vai :)
Quintanar wrote:
> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. > VS никоим местом не стандарт, даже де-факто.
Я не про VS говорю, а про общие принципы создания современных IDE. В
частности, они подразумевают использование понятия "проектов",
современные IDE предоставляют пользователю удобную навигацию по дереву
проекта, tabbed MDI интерфейс, удобные (и достаточно стандартные) меню.
Так же, считается хорошим тоном иметь встроеный отладчик и некоторы
интегрированые инструменты.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Cyberax, Вы писали:
C>>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, C>>где определен данный класс? Еще часто очень удобно посмотреть какие у C>>класса есть наследники и предки.
E>doxygen мне в этом очень помогает.
а он отслеживает, какие файлы изменились, с тем, чтобы перепарсить только их?
Или он каждый раз заново парсит всю тучу файлов проекта?
Здравствуйте, Cyberax, Вы писали:
C>execve wrote:
>> C>Все, достало. Четыре дня убил на настройку Emacs'а, а конца ей не видно. >> Прочитал весь тред. >> Резюме одно: "со своим уставом в чужой монастырь не ходят". >> Все твои претензии — суть "я в Windows/VisualStudio привык делать ТАК, >> как мне сделать ТОЧНО ТАК ЖЕ в Linux/Whatever".
C>Проблема в том, что сейчас есть де-факто стандарты на IDE.
Для разработчиков под Windows.
Остальное комментировать не буду, так как все проблемы — от этого.
А вообще мне эта тема напиминает то, что я слышал от одного приятеля-дельфака примерно 8-10 лет назад.
Он тоже волей судеб был вынужден переходить на Visual Studio с Delphi, и рассказывал, что VS — Г, а вот Delphi — действительно стандарт и вершина мысли в области посроения UI для сред разработки.
Претензии были абсолютно те же самые: "я привык так, а VS так не умеет".
Здравствуйте, jazzer, Вы писали:
C>>>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, C>>>где определен данный класс? Еще часто очень удобно посмотреть какие у C>>>класса есть наследники и предки.
E>>doxygen мне в этом очень помогает.
J>а он отслеживает, какие файлы изменились, с тем, чтобы перепарсить только их? J>Или он каждый раз заново парсит всю тучу файлов проекта?
Нет, не отслеживает.
Но это не проблема по нескольким причинам.
Во-первых, doxygen работает весьма шустро.
Во-вторых, в нем есть возможность создавать т.н. tag-файлы (xml-файлы с результатами предыдущего разбора) и подключать их впоследствии. Поэтому большие проекты можно разбить на несколько tag-ов и перегенерировать только то, что изменялось (правда придется делать это вручную).
Ну и еще такой фактор -- doxygen описания, как правило нужны для тех фрагментов программы, которые давно разрабатывались. А в том, что я сейчас делаю, я и так нормально ориентируюсь.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>Quintanar wrote:
>> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. >> VS никоим местом не стандарт, даже де-факто.
C>Я не про VS говорю, а про общие принципы создания современных IDE. В C>частности, они подразумевают использование понятия "проектов",
А совместимость тоже наличествует? Или проекты — это все должны писать только
под VS или городить огород как в той-же ACE с кучей разных проектов под все
"правильные" IDE?
C>современные IDE предоставляют пользователю удобную навигацию по дереву C>проекта,
Что есть "удобная навигация"? Без мышки слабо навигироваться? Я вот ее не использую.
Мне не будет удобно в этой супер стандартной IDE. А вот в этой будет. http://www.xref-tech.com/xrefactory/images/emacs/browsing.png
C> tabbed MDI интерфейс,
C>удобные (и достаточно стандартные) меню.
Хмм. А зачем они? Меню? Опять 25. Говорят же, тут другие правила
и приемы. Ну не пользуют тут меню. Не нужны они. Все делается либо
через shortcut либо через команды (Выход ":q" в vi, "C-x C-c" в emacs, или
:%s/sss/sss/ в vi M-x replace-regex в emacs)
C>Так же, считается хорошим тоном иметь встроеный отладчик и некоторы C>интегрированые инструменты.
Опять же любовь прививаемая MS. Зачем сторониие тулзы? Большой MS позаботится о вас:
Outlook + MSIE + VS + VSDebugger + VSS + ... Жуть. И всякие Eclipse и прочие двигаются
туда же, лишь бы переманить юзверей с VS на свои продукты. А дабы не возникало
вопросов мы сделаем "удобный, интуитивный MDI tabbed mousdriven menu based lemming friendly interface"
Супер. Ума не приложу, как и каким боком можно было общаться с unix 10 лет и такое городить .
Неужели Вам не встречался ни разу ни один юниксоид и вы не видели насколько удобно
ему в этом окружении работать? Либо цифра сильно завшена либо работа сводилась к "залить файло по фтп".
ЗЫ: сорри если кому покажется что это переход на личности. Мне действительно интересно.
aka50 wrote:
> C>Я не про VS говорю, а про общие принципы создания современных IDE. В > C>частности, они подразумевают использование понятия "проектов", > А совместимость тоже наличествует? Или проекты — это все должны писать > только > под VS или городить огород как в той-же ACE с кучей разных проектов > под все > "правильные" IDE?
Нет, проекты несовместимы, к сожалению. Хотя их форматы часто весьма
похожи. Вот тот же ACE или Apache спокойно ложаться на разные форматы
проектных файлов, что свидетельствует о достаточно универсальности
понятия "проект".
> C>современные IDE предоставляют пользователю удобную навигацию по дереву > C>проекта, > Что есть "удобная навигация"? Без мышки слабо навигироваться?
Слабо, так как я не хочу запоминать ВСЕ клавиатурные сокращения. Я
предпочитаю раз в неделю ткнуть мышкой в какой нибудь редкоиспользуемый
пункт меню, а не рыться в доке в поисках его клавиатурного сокращения
или имя команды.
Для всех часто используемых операций, естественно, я использую
клавиатурные сокращения.
> Я вот ее не использую. > Мне не будет удобно в этой супер стандартной IDE. А вот в этой будет. > http://www.xref-tech.com/xrefactory/images/emacs/browsing.png
Про XRef я вроде уже сказал, что оно — рулез. И прикручивается она к
чему угодно, так как работает сервером.
> C> tabbed MDI интерфейс, > C>удобные (и достаточно стандартные) меню. > Хмм. А зачем они? Меню? Опять 25.
Для удобного просмотра всех доступных действий.
> Говорят же, тут другие правила > и приемы. Ну не пользуют тут меню. Не нужны они. Все делается либо > через shortcut либо через команды (Выход ":q" в vi, "C-x C-c" в emacs, или > :%s/sss/sss/ в vi M-x replace-regex в emacs)
Опять же — банальные команды редактирования через меню вызываются всего
несколько раз — чтобы запомнить их шорткаты. Меню нужны для сложных и
редких действий типа какого-нибудь "запустить в дебаггере с поддержкой
UML на машине в Африке через SSH поверх голубиной почты".
> C>Так же, считается хорошим тоном иметь встроеный отладчик и некоторы > C>интегрированые инструменты. > Опять же любовь прививаемая MS. Зачем сторониие тулзы?
Просто так. Например, прикрутить test coverage тулзу там, или профайлер.
Или в emacs'е есть уже все что нужно до конца времен?
> Большой MS позаботится о вас: > Outlook + MSIE + VS + VSDebugger + VSS + ... Жуть.
Outlook+MSIE к VS отношения имеют мало. Разве что MS используется в
качестве рендерера для HTML.
VS+VSDebugger — не имеет смысла разделять, но если так хочется, то можно
приделать к Студии даже gdb — для этого есть публичные и
документированые интерфейсы.
VSS работает поверх SCC-интерфейса, через который можно подключить к
Студии практически любую систему контроля версий. В частности: CVS,
Subversion, ClearCase, Perforce и даже RCS. К сожалению, до недавнего
времени документацию о SCC можно было получить только под NDA, хотя и
бесплатно (я сам его подписывал, кстати).
> И всякие Eclipse и прочие двигаются туда же, лишь бы переманить > юзверей с VS на свои продукты.
Нормальный процесс, я не говорю, что VS идеальна, но вот замены ей
что-то не видно.
> А дабы не возникало вопросов мы сделаем "удобный, интуитивный MDI > tabbed mousdriven menu based lemming friendly interface" > Супер. Ума не приложу, как и каким боком можно было общаться с unix 10 > лет и такое городить .
А что, все кто работает под *nix'ами обязаны любить Emacs/vim и
закрывать глаза на более удобные инструменты?
> Неужели Вам не встречался ни разу ни один юниксоид и вы не видели > насколько удобно > ему в этом окружении работать?
В том-то и дело, что видел как "удобно".
> Либо цифра сильно завшена либо работа сводилась к "залить файло по фтп".
Да, да. И больше ничего я не умею, только еще настраиваю Mysql через
phpMysqlAdmin (в перерывах между правкой ядерных модулей и апачевских
расширений).
Здравствуйте, Cyberax, Вы писали:
C>Нет, проекты несовместимы, к сожалению. Хотя их форматы часто весьма C>похожи. Вот тот же ACE или Apache спокойно ложаться на разные форматы C>проектных файлов, что свидетельствует о достаточно универсальности C>понятия "проект".
Понятие "проект" в данном случае это конь в вакууме... при чем сферический.
Особенно удобно продираться сквозь кучу файла типа .vsproj и Makefile.GNU.
А если разработчики либы не позаботились? Бум в свое IDE это руками пихать?
Я например в этом случае использую CMake. Ибо нету траблов с этими чудесами,
всегда можно NMake или make проект (проект как структуру каталогов и файлов
на диске) получить без отдельных головных болей.
>> C>современные IDE предоставляют пользователю удобную навигацию по дереву >> C>проекта, >> Что есть "удобная навигация"? Без мышки слабо навигироваться?
C>Слабо, так как я не хочу запоминать ВСЕ клавиатурные сокращения. Я C>предпочитаю раз в неделю ткнуть мышкой в какой нибудь редкоиспользуемый C>пункт меню, а не рыться в доке в поисках его клавиатурного сокращения C>или имя команды. C>Для всех часто используемых операций, естественно, я использую C>клавиатурные сокращения.
Опять же. Не надо ничего запоминать. На все есть всемогущий autocomplete.
(пример ниже где про ssh)
C>Про XRef я вроде уже сказал, что оно — рулез. И прикручивается она к C>чему угодно, так как работает сервером.
Я про нее вспоминаю применительно к тому, что этой штуки в купе с emacs
достаточно . А для С или С с классами достаточно и cedet.
>> C> tabbed MDI интерфейс, >> C>удобные (и достаточно стандартные) меню. >> Хмм. А зачем они? Меню? Опять 25.
C>Для удобного просмотра всех доступных действий.
Как я уже говорил C-h b спасет отца русской демократии.
C>Опять же — банальные команды редактирования через меню вызываются всего C>несколько раз — чтобы запомнить их шорткаты. Меню нужны для сложных и C>редких действий типа какого-нибудь "запустить в дебаггере с поддержкой C>UML на машине в Африке через SSH поверх голубиной почты".
Допустим у нас есть некий пакет debug-via-ssh. Тогда пути 2.
1. Если все правильно названо, то и имеет префикс dvs
M-x dvs-<TAB>*тут мы получим список возможных комманд*
M-x dvs-co<TAB> -> dvs-connect <ENTER>
Which command we will use? ssh debuguser@africa | golubinaja_pochta decode |
What we will debug via ssh? /u<TAB>/b<TAB>/su<TAB> -> /usr/bin/superproga
(после /u<TAB> может попросить ssh пароль если нету ключей)
открылось окно отладчика через ssh декодированный golubinaja_pochta туннель. Отлаживаемся.
Возражения на тему, а кто напишет чтобы все эти вопросы Where и What задавались,
отвечу вопросом: а кто напишет и нарисует формочки и предусмотрит все варианты
использования? Тут хоть пайпы прозрачно встраиваются.
>> C>Так же, считается хорошим тоном иметь встроеный отладчик и некоторы >> C>интегрированые инструменты. >> Опять же любовь прививаемая MS. Зачем сторониие тулзы?
C>Просто так. Например, прикрутить test coverage тулзу там, или профайлер. C>Или в emacs'е есть уже все что нужно до конца времен?
Как показал выше все это и так легко вкручивается. Никто не говорит, что
все есть в emacs. Разговор как раз об обратном, что на все есть сторонние тулзы
и не совсем обязательно даже встроенный дебагер. Как раз по Вашей логике надо
чтобы и "test coverage тулзу там, или профайлер" тоже были встроены в IDE.
C>VSS работает поверх SCC-интерфейса, через который можно подключить к C>Студии практически любую систему контроля версий. В частности: CVS, C>Subversion, ClearCase, Perforce и даже RCS. К сожалению, до недавнего C>времени документацию о SCC можно было получить только под NDA, хотя и C>бесплатно (я сам его подписывал, кстати).
Это я знаю... но он достаточно убогий (во всяком случае все что я видел
под VS для работы с subversion и cvs достаточно убого... особенно любов
MS на все lock ставить )
>> И всякие Eclipse и прочие двигаются туда же, лишь бы переманить >> юзверей с VS на свои продукты. C>Нормальный процесс, я не говорю, что VS идеальна, но вот замены ей C>что-то не видно.
Замены? А кто ее хочет заменить? Под вынь особенно?
>> А дабы не возникало вопросов мы сделаем "удобный, интуитивный MDI >> tabbed mousdriven menu based lemming friendly interface" >> Супер. Ума не приложу, как и каким боком можно было общаться с unix 10 >> лет и такое городить .
C>А что, все кто работает под *nix'ами обязаны любить Emacs/vim и C>закрывать глаза на более удобные инструменты?
Ну как минимум не надо делать громких заявлений на предмет стандартов
и удобства. Везде свои законы и стандарты.
>> Либо цифра сильно завшена либо работа сводилась к "залить файло по фтп".
C>Да, да. И больше ничего я не умею, только еще настраиваю Mysql через C>phpMysqlAdmin (в перерывах между правкой ядерных модулей и апачевских C>расширений).
Интересно в чем это делается? Особенно те 9 лет до появления интереса к
emacs/vi/...? Я догадываюсь что FAR + Ftp + ssh .
aka50 wrote:
> C>Нет, проекты несовместимы, к сожалению. Хотя их форматы часто весьма > C>похожи. Вот тот же ACE или Apache спокойно ложаться на разные форматы > C>проектных файлов, что свидетельствует о достаточно универсальности > C>понятия "проект". > Понятие "проект" в данном случае это конь в вакууме... при чем > сферический. > Особенно удобно продираться сквозь кучу файла типа .vsproj и Makefile.GNU.
Ну а что делать?
> А если разработчики либы не позаботились? Бум в свое IDE это руками > пихать?
Я так, собственно, и делаю. С Boost'ом, например.
> Я например в этом случае использую CMake. Ибо нету траблов с этими > чудесами, > всегда можно NMake или make проект (проект как структуру каталогов и > файлов > на диске) получить без отдельных головных болей.
Я давно ищу тулзу, которая сможет генерировать vcproj-файлы из некого
формального описания проекта _И_ еще переносить изменения из vcproj
обратно в описание проекта. Сейчас использую для этого самодельный xsl,
но он годится только для моего собственного layout'а каталогов в проекте.
> C>Про XRef я вроде уже сказал, что оно — рулез. И прикручивается она к > C>чему угодно, так как работает сервером. > Я про нее вспоминаю применительно к тому, что этой штуки в купе с emacs > достаточно . А для С или С с классами достаточно и cedet.
Ее достаточно для навигации, но не для поддержания проектов.
> C>Для удобного просмотра всех доступных действий. > Как я уже говорил C-h b спасет отца русской демократии.
Как-то слегка неудобно искать нужный пункт в большом плоском списке.
> C>Опять же — банальные команды редактирования через меню вызываются всего > C>несколько раз — чтобы запомнить их шорткаты. Меню нужны для сложных и > C>редких действий типа какого-нибудь "запустить в дебаггере с поддержкой > C>UML на машине в Африке через SSH поверх голубиной почты". > Допустим у нас есть некий пакет debug-via-ssh.
А может он называется ssh-debug? Или extra-ssh-debug? А может dbg-ssh? А
как насчет openssh-dbg?
Почему, например, в XEmacs есть "paren-set-mode", а не "set-paren-mode"?
И я уже на такое не раз натыкался.
> 1. Если все правильно названо, то и имеет префикс dvs
А может sshd?
> M-x dvs-<TAB>*тут мы получим список возможных комманд*
Он большой. И неструктурированый.
> Which command we will use? ssh debuguser@africa | golubinaja_pochta > decode |
А может там "pigeon_mail" или "PigeonMail" или даже "pigeon-mail"? А
может надо указывать для ssh какую-нибудь опцию типа "-" как для tar'а?
> Возражения на тему, а кто напишет чтобы все эти вопросы Where и What > задавались, > отвечу вопросом: а кто напишет и нарисует формочки и предусмотрит все > варианты > использования? Тут хоть пайпы прозрачно встраиваются.
Только ведь абослютная кастомизация всего нужна далеко не всегда — в 99%
случаев используются типовые варианты, которые вполне можно заранее
предусмотреть и автоматизировать. Ну для оставшегося 1% можно дать
доступ к командной строке.
> C>Просто так. Например, прикрутить test coverage тулзу там, или > профайлер. > C>Или в emacs'е есть уже все что нужно до конца времен? > Как показал выше все это и так легко вкручивается. Никто не говорит, что > все есть в emacs. Разговор как раз об обратном, что на все есть > сторонние тулзы > и не совсем обязательно даже встроенный дебагер. Как раз по Вашей > логике надо > чтобы и "test coverage тулзу там, или профайлер" тоже были встроены в IDE.
Да, они должны быть встроены в IDE. _НО_ не обязательно самим
производителем IDE, который должен лишь представить интерфейс для
подключения 3rd-party тулзов.
> Это я знаю... но он достаточно убогий (во всяком случае все что я видел > под VS для работы с subversion и cvs достаточно убого... особенно любов > MS на все lock ставить )
Тяжкое наследие, что поделать. Надо посмотреть на из Team Server, там
вроде все должно быть круто.
Кстати, я никогда не пользовался ни VSS, ни другими системами через SCC.
Предпочитаю командную строчку + FAR
> C>Нормальный процесс, я не говорю, что VS идеальна, но вот замены ей > C>что-то не видно. > Замены? А кто ее хочет заменить? Под вынь особенно?
Для С++ — никто. А вот для C# скоро IDEA-вцы начнут делать свою IDE.
> C>А что, все кто работает под *nix'ами обязаны любить Emacs/vim и > C>закрывать глаза на более удобные инструменты? > Ну как минимум не надо делать громких заявлений на предмет стандартов > и удобства. Везде свои законы и стандарты.
Ну и я пытаюсь выяснить, как бы их адаптировать к best practicies с
конкурирующей ОС.
> C>Да, да. И больше ничего я не умею, только еще настраиваю Mysql через > C>phpMysqlAdmin (в перерывах между *правкой ядерных модулей и > апачевских ** > C>расширений*). > Интересно в чем это делается? Особенно те 9 лет до появления интереса к > emacs/vi/...? Я догадываюсь что FAR + Ftp + ssh .
Не угадал: в FAR+smb Ну еще в MC+vim когда все падает. Просто до
недавнего времени это не было моим основным занятием.
Очень, кстати, удобно админить машины из FAR'а — расшариваю "/" через
smb для root'а и хожу себе FARом. Еще я написал себе команды в
пользовательское меню для chmod и прочей радости (работают через ssh).
eao197 wrote:
> Ну и еще такой фактор -- doxygen описания, как правило нужны для тех > фрагментов программы, которые давно разрабатывались. А в том, что я > сейчас делаю, я и так нормально ориентируюсь.
А теперь подумайте: а не лучше ли, если это все было бы доступно
непосредственно из IDE с дополнительной возможностью экспорта во внешнюю
доку?
execve wrote:
> А вообще мне эта тема напиминает то, что я слышал от одного > приятеля-дельфака примерно 8-10 лет назад. > Он тоже волей судеб был вынужден переходить на Visual Studio с Delphi, > и рассказывал, что VS — Г, а вот Delphi — действительно стандарт и > вершина мысли в области посроения UI для сред разработки.
Что самое интересное, это отчасти правда. Лет 10 назад не было
соперников для Delphi в области создания простых "формочковых"
приложений. Ну разве что VB6, но это уж слишком убогий язык.
execve wrote:
>>> Резюме одно: "со своим уставом в чужой монастырь не ходят". >>> Все твои претензии — суть "я в Windows/VisualStudio привык делать ТАК, >>> как мне сделать ТОЧНО ТАК ЖЕ в Linux/Whatever". > C>Проблема в том, что сейчас есть де-факто стандарты на IDE. > Для разработчиков под Windows.
Коих большинство. Кстати, на Mac'е тоже IDEшки весьма похожи на VS
(XCode, например).
> Остальное комментировать не буду, так как все проблемы — от этого.
А может это просто следствие проблем Юникса? Никогда такая еретическая
мысль не закрадывалась?
Quintanar wrote:
> C>Простите, эта "альтернативная" реальность занимает процентов 95% рынка, > C>так что альтернативная реальность — это emacs/vim. А причина — > C>производители IDE думают об удобстве пользователя, наравне с > C>функциональностью. > Десктопов, не забывайте добавлять.
Кроме десктопов есть еще серверы и встроеные компьютеры, непосредственно
на которых софт обычно не пишут. Есть еще суперкомпьютеры и мейнфреймы —
но это вообще отдельная параллельная вселенная.
Здравствуйте, Cyberax, Вы писали:
C>execve wrote:
>> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. >> Для разработчиков под Windows. C>Коих большинство.
Какое отношение это имеет к "де-факто стандарты"?
Водителей легковушек тоже намного больше пилотов боингов.
Предлагаешь UI у боингов срочно переделать в соответствии с принципами, принятыми в обычном легковом автомобилестроении?
Чтобы случайно севшему за штурвал самолёта водителю было удобно?
C>Кстати, на Mac'е тоже IDEшки весьма похожи на VS (XCode, например).
А в Киеве дядька.
>> Остальное комментировать не буду, так как все проблемы — от этого.
C>А может это просто следствие проблем Юникса? Никогда такая еретическая C>мысль не закрадывалась?
Нет.
Мне (и не только мне) удобно с vi+CLI. И не удобно с VS.
Ещё раз: со своим уставом в чужой монастырь не ходят.
ЗЫ: А сколько тебе лет, кстати? Может мы тут зря своё время тратим?
Здравствуйте, Cyberax, Вы писали:
C>execve wrote:
>> А вообще мне эта тема напиминает то, что я слышал от одного >> приятеля-дельфака примерно 8-10 лет назад. >> Он тоже волей судеб был вынужден переходить на Visual Studio с Delphi, >> и рассказывал, что VS — Г, а вот Delphi — действительно стандарт и >> вершина мысли в области посроения UI для сред разработки.
C>Что самое интересное, это отчасти правда. Лет 10 назад не было C>соперников для Delphi в области создания простых "формочковых" C>приложений. Ну разве что VB6, но это уж слишком убогий язык.
В Visual Studio + MFC можно было делать практически всё то же самое.
Но для этого нужно было
1). Изучить (или хотя бы знать о существовании) MFC.
2). Иметь представление об Win32 API.
3). Быть готовым хоть немного поменять полученные в Delphi навыки.
Вышеописанный "программист" оказался неспособен сделать ни то, ни другое.
jazzer wrote:
> C>Про XRef я вроде уже сказал, что оно — рулез. И прикручивается она к > C>чему угодно, так как работает сервером. > Если я правильно понял, оно работает толкьо с emacs, или нет?
Оно может работать с чем угодно (в том числе и автономно). Сам xref
встает локальным сервером, работающим через сокеты. К нему коннектятся
клиенты (Emacs или jEdit). Исходники переходника к xref для Emacs и
jEdit — открыты, так что можно на их основе пришпилить xref к чему угодно.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, jazzer, Вы писали:
C>>>>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, C>>>>где определен данный класс? Еще часто очень удобно посмотреть какие у C>>>>класса есть наследники и предки.
E>>>doxygen мне в этом очень помогает.
Я для той же цели использую ctags.
A ctags мы используем потому, что с ним одинаково хорошо работает и VIM, и NEdit (два главных редактора в нашем проекте).
С doxygen кто-нть интегрируется? И насколько это сложно в нем?
Раскрывает ли doxygen сишные макросы?
J>>а он отслеживает, какие файлы изменились, с тем, чтобы перепарсить только их? J>>Или он каждый раз заново парсит всю тучу файлов проекта?
E>Нет, не отслеживает.
вот и ctags не отслеживает :(
E>Но это не проблема по нескольким причинам.
E>Во-первых, doxygen работает весьма шустро.
Не знаю, насколько doxygen работает быстрее ctags. Это не наезд, я просто не знаю.
На reparse нашего огромного проекта у ctags уходит 3 минуты.
Правда, в эти 3 минуты еще входят кое-какие перловые скрипты, которые добавляют таги для всяких несишных файлов, из которых потом генерятся сишные.
В принципе, 3 минуты — это немного, и за чаем можно сходить, но часто этим не побалуешься, я просто столько не выпью :)
E>Во-вторых, в нем есть возможность создавать т.н. tag-файлы (xml-файлы с результатами предыдущего разбора) и подключать их впоследствии. Поэтому большие проекты можно разбить на несколько tag-ов и перегенерировать только то, что изменялось (правда придется делать это вручную).
NEdit позволяет подключить несколько tag-файлов.
По разным причинам проект на части разбить невозможно (dmz знает, по каким).
E>Ну и еще такой фактор -- doxygen описания, как правило нужны для тех фрагментов программы, которые давно разрабатывались. А в том, что я сейчас делаю, я и так нормально ориентируюсь.
а комментарии в коде уже не рулят?
P.S. Еще раз, я не наезжаю на doxygen, просто пытаюсь оценить его возможности с точки зрения нужд нашего проекта.
Здравствуйте, Cyberax, Вы писали:
C>eao197 wrote:
>> Ну и еще такой фактор -- doxygen описания, как правило нужны для тех >> фрагментов программы, которые давно разрабатывались. А в том, что я >> сейчас делаю, я и так нормально ориентируюсь.
C>А теперь подумайте: а не лучше ли, если это все было бы доступно C>непосредственно из IDE с дополнительной возможностью экспорта во внешнюю C>доку?
Что-то я себе это не очень представляю. Видел я в Java как это происходило с javadoc-ами: в всплывающем tooltip-е было видно совсем мало. А если класс серьезный. Что-то вроде ACE_Get_Opt? Такие вещи лично мне удобнее в соседнем браузере просматривать.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, jazzer, Вы писали:
J>Раскрывает ли doxygen сишные макросы?
Вроде да. Кроме того, в нем можно в конфиге прописывать раскрытие макросов.
J>P.S. Еще раз, я не наезжаю на doxygen, просто пытаюсь оценить его возможности с точки зрения нужд нашего проекта.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, jazzer, Вы писали:
J>>Раскрывает ли doxygen сишные макросы?
E>Вроде да. Кроме того, в нем можно в конфиге прописывать раскрытие макросов.
А тяжело его настроить на работу с неизвестным ему форматом файла?
J>>P.S. Еще раз, я не наезжаю на doxygen, просто пытаюсь оценить его возможности с точки зрения нужд нашего проекта.
E>jazzer, мне кажется ты не очень представляешь себе, что такое doxygen и для чего он обычно используется. Вот, посмотри, что он строит: E>это документация по моему собственному, не маленькому проекту, E>а вот это документация по монстроидальному ACE.
Да, я уже видел сгенеренные им доки, мы используем несколько библиотек, которые как раз таким образом задокументированы.
Может быть, народ не умеет этим тулом пользоваться, потому что пока не позвонишь и не поговоришь с ними, понятно не становится.
E>Имхо, doxygen и ctags -- это разные вещи. И предназначены они для решения разных задач.
вполне может быть, просто я уцепился вот за это:
C>>В C++ в одном файле могут быть несколько классов. Как мне быстро найти,
C>>где определен данный класс? Еще часто очень удобно посмотреть какие у
C>>класса есть наследники и предки.
E>doxygen мне в этом очень помогает.
вот для быстро и удобно посмотреть (и сразу прыгнуть на объявление/определение) ctags вполне подходит.
Иными словами, я рассматриваю ctags как то, что превращает любой редактор, который умеет с ним работать (даже не с ним, а с произведенными им файлами), в мини-IDE. На сегодняшний день такими редакторами ясляются vi с производными, emacs с производными, и NEdit. Наверняка еще кто-то есть.
Ну и, соответственно, смотрю, что есть лучше и что может быть заменой ctags.
Здравствуйте, execve, Вы писали:
E>В Visual Studio + MFC можно было делать практически всё то же самое. E>Но для этого нужно было E>1). Изучить (или хотя бы знать о существовании) MFC. E>2). Иметь представление об Win32 API. E>3). Быть готовым хоть немного поменять полученные в Delphi навыки.
E>Вышеописанный "программист" оказался неспособен сделать ни то, ни другое.
Ты преувеличиваешь.
В MSVC ручной работы на порядок больше, чем в дельфях.
Здравствуйте, jazzer, Вы писали:
J>>>Раскрывает ли doxygen сишные макросы?
E>>Вроде да. Кроме того, в нем можно в конфиге прописывать раскрытие макросов.
J>А тяжело его настроить на работу с неизвестным ему форматом файла?
А что значит "неизвестный формат файла"?
J>>>P.S. Еще раз, я не наезжаю на doxygen, просто пытаюсь оценить его возможности с точки зрения нужд нашего проекта.
E>>jazzer, мне кажется ты не очень представляешь себе, что такое doxygen и для чего он обычно используется. Вот, посмотри, что он строит: E>>это документация по моему собственному, не маленькому проекту, E>>а вот это документация по монстроидальному ACE.
J>Да, я уже видел сгенеренные им доки, мы используем несколько библиотек, которые как раз таким образом задокументированы. J>Может быть, народ не умеет этим тулом пользоваться, потому что пока не позвонишь и не поговоришь с ними, понятно не становится.
Ну, doxygen способен только извлечь информацию из комментариев. А вот записать в комментарии внятную документацию он не сможет
J>
C>>>В C++ в одном файле могут быть несколько классов. Как мне быстро найти,
C>>>где определен данный класс? Еще часто очень удобно посмотреть какие у
C>>>класса есть наследники и предки.
E>>doxygen мне в этом очень помогает.
J>вот для быстро и удобно посмотреть (и сразу прыгнуть на объявление/определение) ctags вполне подходит.
Ну и для каждого класса он рисует иерархию наследования:
Вот именно об этом я и говорил.
J>Иными словами, я рассматриваю ctags как то, что превращает любой редактор, который умеет с ним работать (даже не с ним, а с произведенными им файлами), в мини-IDE. На сегодняшний день такими редакторами ясляются vi с производными, emacs с производными, и NEdit. Наверняка еще кто-то есть.
J>Ну и, соответственно, смотрю, что есть лучше и что может быть заменой ctags.
Имхо, doxygen заменой ctags не является. А вот мощным дополнением -- вполне.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>Я давно ищу тулзу, которая сможет генерировать vcproj-файлы из некого C>формального описания проекта _И_ еще переносить изменения из vcproj C>обратно в описание проекта. Сейчас использую для этого самодельный xsl, C>но он годится только для моего собственного layout'а каталогов в проекте.
Ну дык давали уже линки. Мне вот CMake нравится. Просто бинарь на 2Мб + немного
егошних скриптов. Умеет и под VC, KDeveloper и вроде даже под XCode генерить.
Язык дубоват конечно , но работает. Или вот у eao197 посмотри его mxx_ru.
Он правда на ruby.
>> C>Про XRef я вроде уже сказал, что оно — рулез. И прикручивается она к >> C>чему угодно, так как работает сервером. >> Я про нее вспоминаю применительно к тому, что этой штуки в купе с emacs >> достаточно . А для С или С с классами достаточно и cedet.
C>Ее достаточно для навигации, но не для поддержания проектов.
Опять не понятно . Что есть "поддержание проектов"?
>> C>Для удобного просмотра всех доступных действий. >> Как я уже говорил C-h b спасет отца русской демократии.
C>Как-то слегка неудобно искать нужный пункт в большом плоском списке.
Дело привычки и C-s
>> C>Опять же — банальные команды редактирования через меню вызываются всего >> C>несколько раз — чтобы запомнить их шорткаты. Меню нужны для сложных и >> C>редких действий типа какого-нибудь "запустить в дебаггере с поддержкой >> C>UML на машине в Африке через SSH поверх голубиной почты". >> Допустим у нас есть некий пакет debug-via-ssh.
C>А может он называется ssh-debug? Или extra-ssh-debug? А может dbg-ssh? А C>как насчет openssh-dbg?
Нет. Обычно все называется правильно. Есть исключения кудаж без них. Но для
этих случаев есть apropos (к стати еще вопрос где быстрее найдешь, во вложенных
меню или посиком по слову ssh).
<skip>
C>А может там "pigeon_mail" или "PigeonMail" или даже "pigeon-mail"? А C>может надо указывать для ssh какую-нибудь опцию типа "-" как для tar'а?
Про опции я уже показывал как это шел решает. Не будем повторяться.
>> Возражения на тему, а кто напишет чтобы все эти вопросы Where и What >> задавались, >> отвечу вопросом: а кто напишет и нарисует формочки и предусмотрит все >> варианты >> использования? Тут хоть пайпы прозрачно встраиваются.
C>Microsoft, например. Посмотрите на досуге GraphEdit: C>http://www.3dnews.ru/download/dvd/graphedit/
Ну и? Не понял при чем тут эта ссылка?
Может пропускать полученный с
помощью одного из установленных в системе фильтров сигнал через любой другой кодек
или фильтр, установленный и зарегистрированный в системе. Используется для прямого кодирования звукового потока DVD в MP3
Такого добра под линух вагон и маленькая тележка. Ссылок щас под рукой нет,
но вот что-то вроде этого http://flowdesigner.sourceforge.net.
Или может она еще что-то великое умеет? А если без гуи то система pipes в
линухе развита по самое нехочу... даже обсуждать это не хочется.
C>Только ведь абослютная кастомизация всего нужна далеко не всегда — в 99% C>случаев используются типовые варианты, которые вполне можно заранее C>предусмотреть и автоматизировать.
Угу. Только вот в если в предусмотренной и кастомизированной штуке нет одного
малюсенького но очень нужного крыжечка начинаются танцы с бубнами. Да и
разработчики этого голубиного ssh могут поболе вопросов задать. И можно
забубенить функцию, которая сама будет все заполнять как надо и только спрашивать
юзвера "Куда пойдем? В африку? Ок. Уже готово" . C> Ну для оставшегося 1% можно дать доступ к командной строке.
Этот 1% никто не будет знать и он отомрет. А когда понадобится, будет поздно.
У людей будет 1 палец и специальный "колесиковый" сустав.
>> C>Просто так. Например, прикрутить test coverage тулзу там, или >> профайлер. C>Да, они должны быть встроены в IDE. _НО_ не обязательно самим C>производителем IDE, который должен лишь представить интерфейс для C>подключения 3rd-party тулзов.
Ну и? В емакс есть супер интерфейс. lisp называется. Чего еще надо?
>> Это я знаю... но он достаточно убогий (во всяком случае все что я видел >> под VS для работы с subversion и cvs достаточно убого... особенно любов >> MS на все lock ставить )
C>Кстати, я никогда не пользовался ни VSS, ни другими системами через SCC. C>Предпочитаю командную строчку + FAR
Это даже удивительно... думаю виндозные товарищи на тебя пальцем показывают
>> C>Нормальный процесс, я не говорю, что VS идеальна, но вот замены ей >> C>что-то не видно. >> Замены? А кто ее хочет заменить? Под вынь особенно? C>Для С++ — никто. А вот для C# скоро IDEA-вцы начнут делать свою IDE.
Только добалю: для любителей VS .
>> C>А что, все кто работает под *nix'ами обязаны любить Emacs/vim и >> C>закрывать глаза на более удобные инструменты? >> Ну как минимум не надо делать громких заявлений на предмет стандартов >> и удобства. Везде свои законы и стандарты. C>Ну и я пытаюсь выяснить, как бы их адаптировать к best practicies с C>конкурирующей ОС.
Никак. Винда всю дорогу двигается к отмене клавы. Юникса сопротивляются,
но все упорно хотят из них сделать винду. Нахрена если винда и так есть?
>> Интересно в чем это делается? Особенно те 9 лет до появления интереса к >> emacs/vi/...? Я догадываюсь что FAR + Ftp + ssh . C>Не угадал: в FAR+smb Ну еще в MC+vim когда все падает. Просто до C>недавнего времени это не было моим основным занятием.
Да ладно не угадал . что smb что ftp — те же яйца только в профиль.
C>Очень, кстати, удобно админить машины из FAR'а — расшариваю "/" через C>smb для root'а и хожу себе FARом. Еще я написал себе команды в C>пользовательское меню для chmod и прочей радости (работают через ssh).
Мааамааа.... ааа.... гоните его %$#%$%тряпками.... ужас
рута под рутом да еще и по smb .
Ндаа... чиста виндоуз подход. Да еще и самый %#$&*( из всех. Кошмар .
Здравствуйте, Cyberax, Вы писали:
C>execve wrote:
>>>> Резюме одно: "со своим уставом в чужой монастырь не ходят". >>>> Все твои претензии — суть "я в Windows/VisualStudio привык делать ТАК, >>>> как мне сделать ТОЧНО ТАК ЖЕ в Linux/Whatever". >> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. >> Для разработчиков под Windows.
C>Коих большинство. Кстати, на Mac'е тоже IDEшки весьма похожи на VS C>(XCode, например).
Нет ужжж, простите — подвинтесь.
Это что же в XCode похоже на VS???
Ты видел как им пользуются те кто на нём пишет? И близко непохоже на VS!
Отдельно на мониторе валяется дерево файлов (кстати дерева классов там нет — я если честно уже и не знаю нафик оно вообще нужно это дерево классов), отдельно открытые редакторы исходников ( 10 сорцов открыто — 10 окон — там мониторного пространнаства не жалеют — никаких тебе таббед-меню — или как там ты их называл... ), а над всем этим отдельно висит меню...
где сходство со студией??? Да — всякие там примочки для удобства там делаются перл-скриптами ... Может больше похоже на unix-way ???
Хотя... Это и не unix-way — у маков свой way
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
Здравствуйте, aka50, Вы писали:
A>Здравствуйте, Cyberax, Вы писали:
C>>Я давно ищу тулзу, которая сможет генерировать vcproj-файлы из некого C>>формального описания проекта _И_ еще переносить изменения из vcproj C>>обратно в описание проекта. Сейчас использую для этого самодельный xsl, C>>но он годится только для моего собственного layout'а каталогов в проекте. A>Ну дык давали уже линки. Мне вот CMake нравится. Просто бинарь на 2Мб + немного A>егошних скриптов. Умеет и под VC, KDeveloper и вроде даже под XCode генерить. A>Язык дубоват конечно , но работает. Или вот у eao197 посмотри его mxx_ru. A>Он правда на ruby.
Зато в mxx_ru есть:
-- поиск C++ зависимостей (т.е. после изменения заголовочных файлов иницируется перекомпиляция cpp-файлов);
-- есть отслеживание зависимостей на уровне результатов компиляции. Например, если exe-шник A нуждается в dll-ке B, которая нуждается в lib-е C, то для Windows в список либ для линковки A будет автоматически добавлена библиотека импорта от B. А на Unix-ах в либы к A автоматически будет добавлен как so-файл от B, так и a-файл от C;
-- есть такое понятие, как распространяемые опции. Например, если какой-то проект требует использования дополнительного пути к заголовочным файлам или определенного define, то во все проекты, которые зависят от него будет добавлен этот путь или define;
-- документация на русском
-- русскоязычный разработчик, с которым вполне можно обсуждать дальнейшее развитие инструмента.
А Ruby, между прочим, классный язык
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
J>>А тяжело его настроить на работу с неизвестным ему форматом файла?
E>А что значит "неизвестный формат файла"?
Неизвестный doxygen'у.
Например, ctags изначально заточен под распарсивание только определенных форматов файлов, скажем, С++ и java.
А у нас в проекте используются еще всякие разные файлы внутреннего левого формата, из которых потом генерятся сишные файлы для компиляции. Ближайший пример из видны — это текстовые ресурсные файлы. Правда, для них есть спец. редактор и в сам файл прыгать нет необходимости, а вот когда этот файл пишется руками, как в нашем случае, в него очень хочется запрыгивать.
E>Имхо, doxygen заменой ctags не является. А вот мощным дополнением -- вполне.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, eao197, Вы писали:
J>>>А тяжело его настроить на работу с неизвестным ему форматом файла?
E>>А что значит "неизвестный формат файла"?
J>Неизвестный doxygen'у.
Нет, на такое он не способен. Он может парсить только то, что ему известно.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
[off]
m.a.g., это ты? Неужели под дотнет переехал?
[/off]
D>Вот здесь сказывается то, что разработка ведется community: им продавать продукт не нужно и поэтому в товарный вид он не приводится. Тот же, кто справился с барьером обучения, становится членом community и ему товарный вид продукта уже не нужен.
Путь воина.
D>По хорошему, Emacs нужен лишь один человек, которому не нравятся настройки по умолчанию, при этом являющйся хакером продукта, чтобы настроить все для новичка и пропихнуть mainstream, но таких пока что не нашлось. Альтернативой является компания, готовая по каким-либо причинам заплатить за такой тюнинг.
Согласен на все сто.
Почти всем новичкам не нравятся настройки по умолчанию. Это факт. Но вот пронести эту антипатию по пути от новичка до квалифицированного юзера не может никто. Во всяком случае бесплатно. Видимо в емаксе что-то есть такое...
[off] LCR>m.a.g., это ты? Неужели под дотнет переехал?
Да, я. Выкинул не alphanumeric-символы из ника. Мешали. Да и чего бы я в Unix-форуме тогда делал?
[/off]
D>>Вот здесь сказывается то, что разработка ведется community: им продавать продукт не нужно и поэтому в товарный вид он не приводится. Тот же, кто справился с барьером обучения, становится членом community и ему товарный вид продукта уже не нужен.
LCR>Путь воина.
D>>По хорошему, Emacs нужен лишь один человек, которому не нравятся настройки по умолчанию, при этом являющйся хакером продукта, чтобы настроить все для новичка и пропихнуть mainstream, но таких пока что не нашлось. Альтернативой является компания, готовая по каким-либо причинам заплатить за такой тюнинг.
LCR>Согласен на все сто.
LCR>Почти всем новичкам не нравятся настройки по умолчанию. Это факт. Но вот пронести эту антипатию по пути от новичка до квалифицированного юзера не может никто. Во всяком случае бесплатно. Видимо в емаксе что-то есть такое...
Не... Настройки по умолчанию не нравятся тогда, когда их не тюнили под новичка. Когда-то я в первый раз увидел IntelliJ IDEA, и проработал в ней несколько дней до того, как полез в первый раз настраивать что-то.
В emacs же умолчательные настройки, имхо, сделаны так же, как и в fvwm: чтобы заставить их подстраивать под свои нужды.
И так же, как и в fvwm, до уровня изначальной настроенности IDEA им не дотянуть — слишком и emacs и fvwm гибки и могут использоваться для слишком широкого круга задач.
dottedmag,
D>Здравствуйте, Lazy Cjow Rhrr, Вы писали:
D>[off] LCR>>m.a.g., это ты? Неужели под дотнет переехал? D>Да, я. Выкинул не alphanumeric-символы из ника. Мешали. Да и чего бы я в Unix-форуме тогда делал?
Ну например высказаться, что "моно рулит, пишу на шарпе под емаксом, так что и он тоже рулит" и т.д. и т.п.
Ну классно, рад тебя видеть снова! D>[/off]
D>Не... Настройки по умолчанию не нравятся тогда, когда их не тюнили под новичка. Когда-то я в первый раз увидел IntelliJ IDEA, и проработал в ней несколько дней до того, как полез в первый раз настраивать что-то.
Идея хороша! Однако, первое, что я начал делать, это полез менять расстановку скобок (не люблю K&R) и этот мерзкий фон. При этом недели не прошло, как я начал тюнинговать шорткаты.
Просто удобство — вещь во-первых субъективная, во-вторых относительная. И с этим мало что можно сделать...
eao197 wrote:
> C>А теперь подумайте: а не лучше ли, если это все было бы доступно > C>непосредственно из IDE с дополнительной возможностью экспорта во > внешнюю > C>доку? > Что-то я себе это не очень представляю. Видел я в Java как это > происходило с javadoc-ами: в всплывающем tooltip-е было видно совсем > мало. А если класс серьезный. Что-то вроде ACE_Get_Opt > <http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__Get__Opt.html>? > Такие вещи лично мне удобнее в соседнем браузере просматривать.
Ну опять та же идеология: "если есть средство, то оно должно
поддерживать ВСЕ возможное". В 99% случаев хватает тултипа, а в 1%
остальных случаев можно открыть доку в соседней вкладке или окне (IDEA,
кстати, это поддерживает).
Здравствуйте, Cyberax, Вы писали:
>> C>А теперь подумайте: а не лучше ли, если это все было бы доступно >> C>непосредственно из IDE с дополнительной возможностью экспорта во >> внешнюю >> C>доку? >> Что-то я себе это не очень представляю. Видел я в Java как это >> происходило с javadoc-ами: в всплывающем tooltip-е было видно совсем >> мало. А если класс серьезный. Что-то вроде ACE_Get_Opt >> <http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__Get__Opt.html>? >> Такие вещи лично мне удобнее в соседнем браузере просматривать.
C>Ну опять та же идеология: "если есть средство, то оно должно C>поддерживать ВСЕ возможное".
Имхо, не самая правильная идеология.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
C>Ну опять та же идеология: "если есть средство, то оно должно C>поддерживать ВСЕ возможное". В 99% случаев хватает тултипа, а в 1% C>остальных случаев можно открыть доку в соседней вкладке или окне (IDEA, C>кстати, это поддерживает).
Слушай, а может быть тебе не париться с Vim, emacs а просто VS под Wine запустить, а?
Ибо тема уже скатилась до Windows way vs Unix way.
C>-- C>С уважением, C> Alex Besogonov (alexy@izh.com)
aka50 wrote:
> C>Я давно ищу тулзу, которая сможет генерировать vcproj-файлы из некого > C>формального описания проекта _И_ еще переносить изменения из vcproj > C>обратно в описание проекта. Сейчас использую для этого самодельный xsl, > C>но он годится только для моего собственного layout'а каталогов в > проекте. > Ну дык давали уже линки. Мне вот CMake нравится.
Он не умеет делать обратное преобразование из _измененного_ vcproj в
описание проекта.
> C>Ее достаточно для навигации, но не для поддержания проектов. > Опять не понятно . Что есть "поддержание проектов"?
Чтобы я мог добавить файлик в проект, а IDE мне сама без вопросов
пересчитала зависимости, переписала makefile'ы и т.п.
>>> C>Для удобного просмотра всех доступных действий. >>> Как я уже говорил C-h b спасет отца русской демократии. > C>Как-то слегка неудобно искать нужный пункт в большом плоском списке. > Дело привычки и C-s
Тогда нужно помнить часть имени.
> C>А может он называется ssh-debug? Или extra-ssh-debug? А может > dbg-ssh? А > C>как насчет openssh-dbg? > Нет. Обычно все называется правильно. Есть исключения кудаж без них
И вот что-то я на них постоянно нарываюсь.
> C>А может там "pigeon_mail" или "PigeonMail" или даже "pigeon-mail"? А > C>может надо указывать для ssh какую-нибудь опцию типа "-" как для tar'а? > Про опции я уже показывал как это шел решает. Не будем повторяться.
Это я к тому, что на практике обычно все отличается от теории.
> C>Microsoft, например. Посмотрите на досуге GraphEdit: > C>http://www.3dnews.ru/download/dvd/graphedit/ > Ну и? Не понял при чем тут эта ссылка?
Пример как графически с помощью мышки создавать сложные графы фильтров.
Возражение к "а иногда без пайпов и командной строки не обойтись".
> C>Только ведь абослютная кастомизация всего нужна далеко не всегда — в > 99% > C>случаев используются типовые варианты, которые вполне можно заранее > C>предусмотреть и автоматизировать. > Угу. Только вот в если в предусмотренной и кастомизированной штуке нет > одного > малюсенького но очень нужного крыжечка начинаются танцы с бубнами.
Ну да, в Emacs'е танцы с бубном нужны всегда. Согласен — недостаток.
> C> Ну для оставшегося 1% можно дать доступ к командной строке. > Этот 1% никто не будет знать и он отомрет.
Значит этот 1% окажется ненужным.
> А когда понадобится, будет поздно. > У людей будет 1 палец и специальный "колесиковый" сустав.
Почему я не слышу требований: "Верните перфокарты! Долой мониторы и
клавиатуры!"?
> C>Да, они должны быть встроены в IDE. _НО_ не обязательно самим > C>производителем IDE, который должен лишь представить интерфейс для > C>подключения 3rd-party тулзов. > Ну и? В емакс есть супер интерфейс. lisp называется. Чего еще надо?
Во-первых, ничего особо крутого в нем я не вижу — у той же Eclipse
гораздо более грамотно продуман механизм плугинов и точек расширения.
> C>Ну и я пытаюсь выяснить, как бы их адаптировать к best practicies с > C>конкурирующей ОС. > Никак. Винда всю дорогу двигается к отмене клавы.
С чего бы? Все функции Винды доступны с клавиатуры (и часто поудобнее,
чем в каком-нибудь KDE).
> C>Не угадал: в FAR+smb Ну еще в MC+vim когда все падает. Просто до > C>недавнего времени это не было моим основным занятием. > Да ладно не угадал . что smb что ftp — те же яйца только в профиль.
Нет, smb — это полноценная файловая система, в отличие от ftp. То есть
мне не надо скачивать файл целиком, чтобы его редактировать.
> C>Очень, кстати, удобно админить машины из FAR'а — расшариваю "/" через > C>smb для root'а и хожу себе FARом. Еще я написал себе команды в > C>пользовательское меню для chmod и прочей радости (работают через ssh). > Мааамааа.... ааа.... гоните его %$#%$%тряпками.... ужас рута под рутом > да еще и по smb .
А что не нравится? Поконкретнее, пожалуйста. Чем smb хуже ssh+ftp?
Естественно, шифрование паролей и подписывание пакетов включено.
> Ндаа... чиста виндоуз подход. Да еще и самый %#$&*( из всех. Кошмар .
Ага, а это чисто юниксовый подоход — сразу кричать "suxxx, ламер,
отстой" на все, что слегка отличается от обычной мантры "ssh, ftp, www".
Здравствуйте, Cyberax, Вы писали:
>> C>Ну опять та же идеология: "если есть средство, то оно должно >> C>поддерживать ВСЕ возможное". >> Имхо, не самая правильная идеология.
C>Так ведь вы сами ее и проповедуете.
Это где? Можно цитату, а то, боюсь, меня не так поняли.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
>> C>Очень, кстати, удобно админить машины из FAR'а — расшариваю "/" через >> C>smb для root'а и хожу себе FARом. Еще я написал себе команды в >> C>пользовательское меню для chmod и прочей радости (работают через ssh). >> Мааамааа.... ааа.... гоните его %$#%$%тряпками.... ужас рута под рутом >> да еще и по smb . C>А что не нравится? Поконкретнее, пожалуйста. Чем smb хуже ssh+ftp? C>Естественно, шифрование паролей и подписывание пакетов включено.
Монтировать / под рутом по smb -- это извращение и поиск приключений.
Я понимаю, что в trusted сети это еще можно, но подход в корне не
верный. Хорошая привычка -- никогда не работать пользователем
с uid == 0. Нигде. Даже на домашней машине. Для этого есть su, sudo и
прочий подобный софт. А уж по сети -- тем более. Все-таки не даром
по умолчанию sshd не пускает рута.
Kemm,
K>Монтировать / под рутом по smb -- это извращение и поиск приключений. K>Я понимаю, что в trusted сети это еще можно, но подход в корне не K>верный. Хорошая привычка -- никогда не работать пользователем K>с uid == 0. Нигде. Даже на домашней машине. Для этого есть su, sudo и K>прочий подобный софт. А уж по сети -- тем более. Все-таки не даром K>по умолчанию sshd не пускает рута.
Да уж. Где-то с годик назад мелькало сообщение, типа "вот дескать скрипт на Perl, не могу запустить, помогите...".
А этот скрипт был зашифрованным "rm <всё нахрен>" (ну вы же знаете Perl...).
Некоторые форумчане плакали, некоторые хихикали, а некторые крыли хардкорным матом невзирая на модеров, потому что действительно потеряли данные, потому что работали под рутом...
Человеку свойственно ошибаться, поэтому работать под рутом нельзя.
Kemm wrote:
> C>А что не нравится? Поконкретнее, пожалуйста. Чем smb хуже ssh+ftp? > C>Естественно, шифрование паролей и подписывание пакетов включено. > Монтировать / под рутом по smb -- это извращение и поиск приключений. > Я понимаю, что в trusted сети это еще можно, но подход в корне не > верный.
Чем? Тем, что он удобен?
> Хорошая привычка -- *никогда* не работать пользователем > с uid == 0. Нигде. Даже на домашней машине.
Бред. Если моей рабочей машине потеряются мои данные, то от того факта,
что система будет продолжать работать легче не станет. Все равно,
придется рабочий environment восстанавливать. Уж лучше я просто буду
правильно использовать системы контроля версий и бэкапы.
Ну а заниматься администрирование в Linux'е без прав рута все равно не
получается.
> Для этого есть su, sudo и прочий подобный софт. А уж по сети -- тем > более. Все-таки не даром > по умолчанию sshd не пускает рута.
Ладно... думаю никто никого не убедить... а флейм разводить — неконструктив.
Остановимся поподробнее на администировании.
>> C>Не угадал: в FAR+smb Ну еще в MC+vim когда все падает. Просто до >> C>недавнего времени это не было моим основным занятием. >> Да ладно не угадал . что smb что ftp — те же яйца только в профиль.
C>Нет, smb — это полноценная файловая система, в отличие от ftp. То есть C>мне не надо скачивать файл целиком, чтобы его редактировать.
Это все детали имплементации. Скачивается он или редактируется по большому
счету это вопрос временной задержки. Вопрос именно в том, что таким
образом администрить сервер на удаленном collocation — изврат. Это не
администрирование, а издевательство над системой. Если это локальный игрушечный
сервер (пусть даже и продакшн, хотя я бы на него свою почту и ценные данные
не положил бы) и к реальной жизни имеет мало отношения.
По поводу администрирования из под рута по smb. Ответ был конечно эмоционален .
Но я видел подобное только один раз в жизни и думал что это случайность и
дилетантсво. Оказывается это "практикуемый" способ.
C>А что не нравится? Поконкретнее, пожалуйста. Чем smb хуже ssh+ftp? C>Естественно, шифрование паролей и подписывание пакетов включено.
1. Ничем. Удаленный вход из под рута недопустим в любом случае, даже
с sftp.
2. При работе с программами можно запустить программу содержащую троян,
который будучи запущеным под рутом, спрячется так, что его потом без
монтирования диска в другую систему не найдешь (подгрузкой драйвера)
3. Под рутом невозможно (без специальных fs с acl) запретить ему доступ
к чему либо, обычно права для рута вообще не проверяются.
4. При администирировании с Win32 любой троян дергая hashdb может
получить данный smb пароль за конечное время.
5. Под линуксом нет необходимости работать под рутом вообще, в отличии
от винды. Все необходимые программы можно запускать через sudo.
В особых случаях (например монтирование устройств) через утилиты
с suid/sgid битом, причем не обязательно root (достаточно operator).
Почему я так эмоционально среагировал? Потому, что в с точки зрения
юниксового админа грубейшая ошибка. Если бы у меня был человек, который
таким образом администрировал _любой_ сервер в моей организации он был
бы уволен (или отстранен если это не его прямая обязанность).
C>Ага, а это чисто юниксовый подоход — сразу кричать "suxxx, ламер, C>отстой" на все, что слегка отличается от обычной мантры "ssh, ftp, www".
Зачем же? Если нужно более удобное что-то но X11 via ssh, ssh + mc.
aka50 wrote:
> C>Нет, smb — это полноценная файловая система, в отличие от ftp. То есть > C>мне не надо скачивать файл целиком, чтобы его редактировать. > Это все детали имплементации.
Нет, smb позволяет еще делать полноценную блокировку файлов.
> Скачивается он или редактируется по большому счету это вопрос > временной задержки.
Угу, особенно приятно, если файл большого размера.
> Вопрос именно в том, что таким образом администрить сервер на > удаленном collocation — изврат.
Чем? До удаленной сети все равно VPN, так что у меня серверы даже в
сетевом окружении видны.
> По поводу администрирования из под рута по smb. Ответ был конечно > эмоционален . > Но я видел подобное только один раз в жизни и думал что это случайность и > дилетантсво. Оказывается это "практикуемый" способ.
Ну так root — вообще в целом дилетанство создателей Linux'а. Должно быть
нормальное разделение прав по различным ролям. Как в Windows, например.
> C>А что не нравится? Поконкретнее, пожалуйста. Чем smb хуже ssh+ftp? > C>Естественно, шифрование паролей и подписывание пакетов включено. > 1. Ничем. Удаленный вход из под рута недопустим в любом случае, даже > с sftp.
Почему? Или опять догмы мешают?
> 2. При работе с программами можно запустить программу содержащую троян, > который будучи запущеным под рутом, спрячется так, что его потом без > монтирования диска в другую систему не найдешь (подгрузкой драйвера)
Запустить программу можно и из консоли. Кстати говоря, при работе из smb
из под FARа нужно еще долго потрудиться, чтобы запустить программу на
удаленном компе.
> 3. Под рутом невозможно (без специальных fs с acl) запретить ему доступ > к чему либо, обычно права для рута вообще не проверяются.
А зачем мне чего-то запрещать? У меня и так есть доступ ко всему.
Естественно, кроме меня эта шара никому не доступна (и вообще невидима в
network browser'е).
> 4. При администирировании с Win32 любой троян дергая hashdb может > получить данный smb пароль за конечное время.
Это трудоемко и сложно для реализации, по крайней мере я не знаю готовых
утилит, которые это делают. А вот поставив сниффер на клавиатуру и ловя
команду sudo, этот же троян получит пароль гораздо раньше (черт, да я
сам лично такой снифер писал в далеком 97 году, чтобы "взломать
интернет"). Так что NTLM авторизация здесь намного надежнее (сейчас вот
думаю как бы ее прикрутить к Putty).
> 5. Под линуксом нет необходимости работать под рутом вообще, в отличии > от винды. Все необходимые программы можно запускать через sudo.
Угу... "sudo joe", "sudo /etc/init.d/xxxx restart". Очень "удобно", а
главное точно так же небезопасно.
> Почему я так эмоционально среагировал? Потому, что в с точки зрения > юниксового админа грубейшая ошибка. Если бы у меня был человек, который > таким образом администрировал _любой_ сервер в моей организации он был > бы уволен (или отстранен если это не его прямая обязанность).
В чем ошибка? Вы без догматов попробуйте проанализировать слабые места в
этой системе.
eao197 wrote:
>>> C>Ну опять та же идеология: "если есть средство, то оно должно >>> C>поддерживать ВСЕ возможное". >>> Имхо, не самая правильная идеология. > C>Так ведь вы сами ее и проповедуете. > Это где? Можно цитату, а то, боюсь, меня не так поняли.
Что-то я себе это не очень представляю. Видел я в Java как это
происходило с javadoc-ами: в всплывающем tooltip-е было видно совсем
мало. А если класс серьезный. Что-то вроде ACE_Get_Opt
<http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__Get__Opt.html>?
Такие вещи лично мне удобнее в соседнем браузере просматривать.
eao197 wrote:
> C>То есть, если я меняю файлик grammar.hpp, то мне НЕ > C>хочется перекомпилировать все cpp-шники, а только те, где включен > C>grammar.hpp. *При этом еще желательно, чтобы автоматически > определялись ** > C>non-relevant изменения (то есть, если файл blah.cpp только включает > C>grammar.hpp, но не использует его — то перекомпилировать его не надо).* > А это как?
Нужна магия компилятора, чтобы он вычислял реальные зависимости. VS7.1
это делает (хотя и не очень хорошо), в VS8 это работает уже практически
идеально.
> C>Почему линковка не инкрементальная? > А у GCC и ld есть инкрементальная линковка?
А ну я и забыл, что под Линуксом инкрементального линкера для С++ все
еще нет (в Солярисе есть).
eao197 wrote:
> C>Значит, class browser таки используется. Только в виде внешней утилиты, > C>которая на сложном С++ весьма глючная. > Ну по мне это не class browser, а генератор документации. Про > глючность doxygen ничего говорить не буду, особо не замечал (возможно > потому, что я на "C с классами" по большей части программирую).
Он сильно глючит с темплейтами (особенно если что-нибудь с политиками
забахать).
> Кроме того, весь смысл как раз в том, что внешние утилиты позволяют > получать тот же результат, но не нуждаясь в монстроидальных IDE.
Внешние утилиты надо еще запускать, а внутри IDE оно все сразу под пальцами.
execve wrote:
> C>Вы представляете, сколько это будет работать на библиотеке типа > Boost'а? > Простите, вы boost отлаживаете?
Кстати да, иногда отлаживаю. Но мой собственный проект не сильно
уступает многим бустовым библиотекам.
> Если да, то один раз make depend. Если нет, то зачем учитывать > зависимости от boost'а?
Мне надо зависимости внутри МОЕГО проекта считать, а он немаленький.
> C>Да еще и работает это все неикрементально (в отличие от VS) (которая > C>отслеживает изменения в include'ах). > Оно *отслеживает* изменение в include'ах.
Не инкрементально, в отличие от VS.
> C>Ну знаете, у меня в проекте полная линковка занимает две минуты, а > C>инкрементальная — всего 30 секунд. > А у меня ещё меньше. > Потому, что есть разделение на библиотеки.
Не всегда возможно, особенно с темплейтными библиотеками.
>$ apt-cache search debugger | wc -l >160 > >
apt-cache search debugger | grep "C++":
diasce — a C/C++ code editor for GNOME
diasce2 — A C/C++ code editor for GNOME 2
libskstream-0.3-dbg — Isostream C++ socket library — debugging libs
libwftk-0.7 — WorldForge Toolkit — a C++ widget toolkit
libwxgtk2.4-dbg — wxWindows Cross-platform C++ GUI toolkit (GTK+
development)
Что дальше?
>>> C>Про edit&continue я вообще молчу... >>> Правильно молчишь. > C>Ну да, в Linux'е его нет — значит это ересь. Слышали уже.... > См. выше про библиотеки.
execve wrote:
>>> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. >>> Для разработчиков под Windows. > C>Коих большинство. > Какое отношение это имеет к "де-факто стандарты"?
К тому, что они стали "де-факто".
> Водителей легковушек тоже намного больше пилотов боингов.
Разные классы.
> ЗЫ: А сколько тебе лет, кстати? Может мы тут зря своё время тратим?
Dj.ValDen wrote:
> C>Коих большинство. Кстати, на Mac'е тоже IDEшки весьма похожи на VS > C>(XCode, например). > Нет ужжж, простите — подвинтесь. > Это что же в XCode похоже на VS???
В идеологии.
> Ты видел как им пользуются те кто на нём пишет? И близко непохоже на VS!
Я сам им пользуюсь.
> Отдельно на мониторе валяется дерево файлов (кстати дерева классов там > нет — я если честно уже и не знаю нафик оно вообще нужно это дерево > классов), отдельно открытые редакторы исходников ( 10 сорцов открыто — > 10 окон — там мониторного пространнаства не жалеют — никаких тебе > таббед-меню — или как там ты их называл... ), а над всем этим отдельно > висит меню...
Ну так tabbed-интерфейс не главное. Вы лучше скажите, пришлось ли вам
после установки XCode лезть править ее скрипты через текстовый редактор?
> где сходство со студией??? Да — всякие там примочки для удобства там > делаются перл-скриптами ... Может больше похоже на unix-way ???
execve wrote:
> C>Что самое интересное, это отчасти правда. Лет 10 назад не было > C>соперников для Delphi в области создания простых "формочковых" > C>приложений. Ну разве что VB6, но это уж слишком убогий язык. > В Visual Studio + MFC можно было делать практически всё то же самое. > Но для этого нужно было > 1). Изучить (или хотя бы знать о существовании) MFC. > 2). Иметь представление об Win32 API. > 3). Быть готовым хоть немного поменять полученные в Delphi навыки. > Вышеописанный "программист" оказался неспособен сделать ни то, ни другое.
Могу сказать, что в MFC очень сложно писать простые формочковые
интерфейсы. Скажем, окно с несколькими табами делается через ж. (для
каждого таба рисуется отдельный диалог), набор стандартных контролов
весьма бледен, а ActiveXовые часто неудобны в использовании и т.п.
ЗЫ: Дельфи я всегда ненавидел, но врага нужно знать.
Здравствуйте, Cyberax, Вы писали:
C>eao197 wrote:
>>>> C>Ну опять та же идеология: "если есть средство, то оно должно >>>> C>поддерживать ВСЕ возможное". >>>> Имхо, не самая правильная идеология. >> C>Так ведь вы сами ее и проповедуете. >> Это где? Можно цитату, а то, боюсь, меня не так поняли.
C>
Что-то я себе это не очень представляю. Видел я в Java как это
C>происходило с javadoc-ами: в всплывающем tooltip-е было видно совсем
C>мало. А если класс серьезный. Что-то вроде ACE_Get_Opt
C><http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__Get__Opt.html>?
C>Такие вещи лично мне удобнее в соседнем браузере просматривать.
Ну и?
Где в приведенной цитате я говорил, что "должно быть средство, которое поддерживает все возможное"?
Doxygen -- это небольшая утилита для вполне конкретной задачи. Берет документацию из исходников и строит html-файлы.
Которые затем другой утилитой (браузером) отлично просматриваются.
При это в другой утилите (текстовом редакторе vim) я пишу исходный код.
В соседнем shell-е я компилируюсь и запускаю программы.
Набор простых инструментов, каждый из которых делает только то, для чего предназначено. А вместе все это -- моя среда разработки. Практически одинаковая и в Linux, и в Window, и на NonStop-ах.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197 wrote:
> Ну и? > Где в приведенной цитате я говорил, что "должно быть средство, которое > поддерживает все возможное"?
Так сразу критикуете фишку потому, что она не работает для всех
возможных случаев.
> Doxygen -- это небольшая утилита для вполне конкретной задачи. Берет > документацию из исходников и строит html-файлы. > Которые затем другой утилитой (браузером) отлично просматриваются.
А какбы сделать так, чтобы оно сразу в браузере прыгало на нужное
определение?
Кстати, работает Doxygen хоть и быстро, но далеко не мгновенно, а
инкрементального построения доки я у него не нашел. Крмое того, вроде бы
нельзя разбивать документацию на несколько отдельных проектов (чтобы
собирать их отдельно, но не терять при этом кросс-ссылки).
> Набор простых инструментов, каждый из которых делает только то, для > чего предназначено. А вместе все это -- моя среда разработки.
Здравствуйте, Cyberax, Вы писали:
C>В чем ошибка? Вы без догматов попробуйте проанализировать слабые места в C>этой системе.
А чего мне это анализировать? Это моя специальность... Учить я тебя не буду,
просто поверь что это так. Когда ты это поймешь, будет уже поздно . А вообще
почитай пару книжек по безопасности. Сервера целее будут. И открою секрет: vpn
не панацея.
Здравствуйте, Cyberax, Вы писали:
C>Dj.ValDen wrote:
>> C>Коих большинство. Кстати, на Mac'е тоже IDEшки весьма похожи на VS >> C>(XCode, например). >> Нет ужжж, простите — подвинтесь. >> Это что же в XCode похоже на VS???
C>В идеологии.
не согласен
расшифруйте плз.
>> Ты видел как им пользуются те кто на нём пишет? И близко непохоже на VS!
C>Я сам им пользуюсь.
Я тоже
Не в SMK случаем?
>> Отдельно на мониторе валяется дерево файлов (кстати дерева классов там >> нет — я если честно уже и не знаю нафик оно вообще нужно это дерево >> классов), отдельно открытые редакторы исходников ( 10 сорцов открыто — >> 10 окон — там мониторного пространнаства не жалеют — никаких тебе >> таббед-меню — или как там ты их называл... ), а над всем этим отдельно >> висит меню...
C>Ну так tabbed-интерфейс не главное. Вы лучше скажите, пришлось ли вам C>после установки XCode лезть править ее скрипты через текстовый редактор?
Сразу после установки — нет.
Но я и в Emacs не сразу полез менять что то...Зачем?
И Vi не перенастраиваю — зачем?
Я около 2-х лет работал на Linux, дома была Win2k
Терь работаю на MacOS X, Дома Linux и WinXp.
Вначале не спорю — тяжко было Ругался от того что на в Linux давил виндовые шоткаты, в винде линуксовые.
Потом привык.
Терь вообще как видишь их у мну 3 — и все разные.
Позжее — да, благо перл для меня не тёмный лес.
>> где сходство со студией??? Да — всякие там примочки для удобства там >> делаются перл-скриптами ... Может больше похоже на unix-way ???
C>А в VS примочки делаются на VB.NET и что?
А JavaScript не видели???
А я уже видел — ругался матом, если честно, Ибо как по мне так тот JScript не руками писался а генерился чем то...
А разбирать тупорылую генерацию сами понимаете... Удовольствие одно из последних... А генерилки подобной я не нашёл
отсюда и ругань...
Да и тормозит 7-ка... как на неё не сотри... но тормозит страшно... Как для IDE — непростительно страшно.
И не надо говорить что у меня тачка слабая.
Посему...
Я наверное перейду на что то типа EMacs или Vim Хоть я и предпочитаю на каждой системе использовать "родные" аппликухи... Но всё же...
Плавающие окна мне давно уже ненать, да и не нужны никогда не были нафик их придумали то? Разве это удобно?
Что то я распи...ся
И всё же XCode c VS не связывает ничто
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
aka50 wrote:
> C>В чем ошибка? Вы без догматов попробуйте проанализировать слабые > места в > C>этой системе. > А чего мне это анализировать? Это моя специальность... Учить я тебя не > буду, > просто поверь что это так. Когда ты это поймешь, будет уже поздно . А > вообще > почитай пару книжек по безопасности.
Какие? Шнайдеровскую "Прикладную криптографию" я прочитал (и понял) уже
годы назад.
> Сервера целее будут. И открою секрет: vpn не панацея.
Открою еще больший секрет: ssh и vpn имеют примерно одинаковый уровень
защищенности. Взломать его при нынешнем уровне криптоалгоритмов
возможным не представляется, проще поставить трояна на _мой_ компьютер.
Еще раз: какие есть проблемы в данной схеме? Чем она хуже ssh+sftp?
Стойкость шифров считаем одинаковой.
Здравствуйте, Cyberax, Вы писали:
C>aka50 wrote:
C>Какие? Шнайдеровскую "Прикладную криптографию" я прочитал (и понял) уже C>годы назад.
>> Сервера целее будут. И открою секрет: vpn не панацея.
C>Открою еще больший секрет: ssh и vpn имеют примерно одинаковый уровень C>защищенности. Взломать его при нынешнем уровне криптоалгоритмов C>возможным не представляется,
Да забудь ты о криптографии... pptp и тот только теоретичекси сломать можно.
C>проще поставить трояна на _мой_ компьютер.
C>Еще раз: какие есть проблемы в данной схеме? Чем она хуже ssh+sftp? C>Стойкость шифров считаем одинаковой.
Выделено жирным. При такой схеме трояном можно запросто подменить любой
файл в системе на нужный. При использовании ssh-ftp еще придется попотететь,
особенно если сервера недоступны извне. Более того если это еще и в домен входит
виндовый, то это можно делать с любой машины в сети. Тот же древний BO справится
с этим в 2 минуты. И если у тебя нет hashdb дергалки, то это не значит что ее
нет и ее сложно написать. (особенно учитывая что под виндой все тоже кругом root-ы)
При использовании ssh есть возможность:
1. Хранилище ключей в ldap. (или ssh-add)
2. Гипотетическому хакеру нужно запустить из-под трояна ssh и зайти туда. При этом
ему надо будет пробросить некое подобие соединения. В случае с smb — все просто,
это полноценная файловая система. Пиши куда хочешь и чего хочешь. Да и в браузинге
сам говоришь светится. Так что проблем не возникнет.
3. Собственно банальные эксплоиты:
Samba: http://www.security.nnov.ru/source/SAMBA.html
IE: http://www.security.nnov.ru/soft/1501.html (можно не устанавливая трояна при
должной осведомленности просто через подходящий эксплоит положить нужный файлик)
А вообще если честно, надоело мне лечить... это уже точно holywar начинается.
Для меня перечисленных проблем хватает за глаза чтобы так не делать. Если
тебе этого не достаточно, жди когда ты это увидишь собственными глазами.
А клавивиатурный сниффер лечится www.alladin.ru. А вот запоминание самбой
пароля (или если просто забыть отмонтировать диск) практически не лечится.
aka50 wrote:
> C>проще поставить *трояна на _мой_ компьютер*. > C>Еще раз: какие есть проблемы в данной схеме? Чем она хуже ssh+sftp? > C>Стойкость шифров считаем одинаковой. > Выделено жирным. При такой схеме трояном можно запросто подменить любой > файл в системе на нужный.
Для этого троян должен знать путь к диску на сервере.
> При использовании ssh-ftp еще придется попотететь, особенно если > сервера недоступны извне.
Однако, если кто-то умудрится поставить троян мне на компьютер, то у
него уже есть доступ в мою сеть, соответственно никакие ssh уже не помогут.
> Более того если это еще и в домен входит виндовый, то это можно делать > с любой машины в сети. Тот же древний BO справится > с этим в 2 минуты. И если у тебя нет hashdb дергалки, то это не значит > что ее > нет и ее сложно написать. (особенно учитывая что под виндой все тоже > кругом root-ы)
Можно, называется L0phtCrack. Однако, база паролей защищена правами
системного аккаунта. Конечно, это можно обойти с помощью
имперсонированого процесса, но это уже тоже сложно.
> При использовании ssh есть возможность: > 1. Хранилище ключей в ldap. (или ssh-add)
И что? Надежность хранения от этого не увеличится.
> 2. Гипотетическому хакеру нужно запустить из-под трояна ssh и зайти > туда. При этом > ему надо будет пробросить некое подобие соединения.
Ээээ... Про scp слышал?
> В случае с smb — все просто, это полноценная файловая система. Пиши > куда хочешь и чего хочешь. Да и в браузинге > сам говоришь светится. Так что проблем не возникнет.
? Only trusted individuals should be granted Administrator privileges
on the system.
? The Administrator account should not be intended for casual use.
? The Administrator account should only be used to administer the
network or domain.
? The Domain controllers should be physically secured.
? Maintain a strong password policy. See http://www.microsoft.com/security/default.asp.
(http://www.microsoft.com/security/default.asp)
? Rename the Administrator account.
? Never run untrusted programs while logged in as Administrator.
Как ни странно, я соблюдаю отсюда все пункты (ну кроме физической защиты
контроллера домена).
> А клавивиатурный сниффер лечится www.alladin.ru <http://www.alladin.ru>.
Точно так же он может быть использован и для NTLM-авторизации.
> А вот запоминание самбой пароля (или если просто забыть отмонтировать > диск) практически не лечится.
Достаточно просто НЕ монтировать диск — FAR поддерживает UNC-пути.
[злостно поскипано]
Ей-богу, странно после этого читать про администрирование юникс-серверов 10 лет.
C>Ну а заниматься администрирование в Linux'е без прав рута все равно не C>получается.
См. ниже про su/sudo/etc.
>> Для этого есть su, sudo и прочий подобный софт. А уж по сети -- тем >> более. Все-таки не даром >> по умолчанию sshd не пускает рута. C>Пускает, на многих дистрибутивах.
Это личные половые трудности этих дистрибутивов. В *BSD не пускает ни
в каких. И это правильно. По этому поводу спор был где-то в RU.UNIX.BSD,
можно поискать. Только вот там речь шла об удаленном запуске чего-нибудь,
требующего супервизорских прав, а не про постоянную работу под рутом.
Про последнее никто даже и спорить не будет.
root -- это не для работы, а для каких-либо редких действий.
Kemm wrote:
> [злостно поскипано] > Ей-богу, странно после этого читать про администрирование > юникс-серверов 10 лет.
Опять мешает религия, да?
>>> по умолчанию sshd не пускает рута. > C>Пускает, на многих дистрибутивах. > Это личные половые трудности этих дистрибутивов. В *BSD не пускает ни > в каких. И это правильно. По этому поводу спор был где-то в RU.UNIX.BSD
Это "Миф о ненадежности пускания рута по ssh" или я чего-то пропустил?
Так там все сошлось к тому, что атакующему кроме пароля рута еще и логин
придется подбирать. За возможность подбора своего пароля перебором я не
боюсь.
> можно поискать. Только вот там речь шла об удаленном запуске чего-нибудь, > требующего супервизорских прав, а не про постоянную работу под рутом. > Про последнее никто даже и спорить не будет. > root -- это не для работы, а для каких-либо редких действий.
Так вроде бы я что-то говорил про "администрирование", которое в
Linux'ах без root'а делать не очень приятно?
А про "не пускать сразу под рутом" и т.п. — я _лично_ взламывал с
помощью самописного сниффера аккаунты root'ов. Просто ловил нажатие sudo
и логгировал 100 клавиш после этого. Так что все эти "не пускать рута" —
полная чушь.
Для действительно серьезной защиты нужно использовать аппаратные
средства, типа smart-карт и т.п.
Здравствуйте, Cyberax, Вы писали:
>> [злостно поскипано] >> Ей-богу, странно после этого читать про администрирование >> юникс-серверов 10 лет. C>Опять мешает религия, да?
Нет, ну если здравый смысл религией считать -- то да.
>>>> по умолчанию sshd не пускает рута. >> C>Пускает, на многих дистрибутивах. >> Это личные половые трудности этих дистрибутивов. В *BSD не пускает ни >> в каких. И это правильно. По этому поводу спор был где-то в RU.UNIX.BSD C>Это "Миф о ненадежности пускания рута по ssh" или я чего-то пропустил? C>Так там все сошлось к тому, что атакующему кроме пароля рута еще и логин C>придется подбирать. За возможность подбора своего пароля перебором я не C>боюсь.
Угу. Только там не только эти соображения высказывались, afair.
>> можно поискать. Только вот там речь шла об удаленном запуске чего-нибудь, >> требующего супервизорских прав, а не про постоянную работу под рутом. >> Про последнее никто даже и спорить не будет. >> root -- это не для работы, а для каких-либо редких действий. C>Так вроде бы я что-то говорил про "администрирование", которое в C>Linux'ах без root'а делать не очень приятно?
*ИК* Я про root'а забываю как про страшный сон сразу после установки
sudo. Потратить четверть секунды на набор 'sudo ' мне не лень.
А sudo ставится во вторую очередь. (Я про FreeBSD в данном случае.
В первую -- cvsup и сразу обновление системы, после чего уже можно
какие-то сервисы открывать наружу)
C>А про "не пускать сразу под рутом" и т.п. — я _лично_ взламывал с C>помощью самописного сниффера аккаунты root'ов. Просто ловил нажатие sudo C>и логгировал 100 клавиш после этого. Так что все эти "не пускать рута" — C>полная чушь.
Сниффер клавиатуры? Без прав супервизора? Оррригинально.
Или имеется ввиду ssh и клиентская машина? Тогда это клиника, у меня
десктоп не менее защищен, чем сервера.
C>Для действительно серьезной защиты нужно использовать аппаратные C>средства, типа smart-карт и т.п.
А так же бронированного сейфа весом тонн в 7 + автоматизированная
охранная система с пулеметами и отсутствие доступа к сети, это понятно.
Если есть способ избежать лишних проблем -- зачем им пренебрегать-то
вот так вот сразу? Под виндой тоже администратором сидите?
Здравствуйте, Cyberax, Вы писали:
C>execve wrote:
>>>> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. >>>> Для разработчиков под Windows. >> C>Коих большинство. >> Какое отношение это имеет к "де-факто стандарты"?
C>К тому, что они стали "де-факто".
OMG
>> Водителей легковушек тоже намного больше пилотов боингов.
C>Разные классы.
Ты сказал.
>> ЗЫ: А сколько тебе лет, кстати? Может мы тут зря своё время тратим?
C>Не беспокойтесь, больше 17, даже больше 21.
Здравствуйте, Kemm, Вы писали:
K>А sudo ставится во вторую очередь. (Я про FreeBSD в данном случае. K>В первую -- cvsup и сразу обновление системы, после чего уже можно K>какие-то сервисы открывать наружу)
Кстати, для любителей писать в sudoers "NOPASSWD" есть "sudo rm -rf /"
Здравствуйте, Cyberax, Вы писали:
C>aka50 wrote:
>> C>проще поставить *трояна на _мой_ компьютер*. >> C>Еще раз: какие есть проблемы в данной схеме? Чем она хуже ssh+sftp? >> C>Стойкость шифров считаем одинаковой. >> Выделено жирным. При такой схеме трояном можно запросто подменить любой >> файл в системе на нужный.
C>Для этого троян должен знать путь к диску на сервере.
Нафиг? Он это в браузере увидит. А дальше просто //MYSUPERCOMP/etc/passwd
>> При использовании ssh-ftp еще придется попотететь, особенно если >> сервера недоступны извне.
C>Однако, если кто-то умудрится поставить троян мне на компьютер, то у C>него уже есть доступ в мою сеть, соответственно никакие ssh уже не помогут.
Зачем ему доступ в твою сеть? Ты можешь хоть за сотней checkpoint-в сидеть,
троян выйдет через http.
>> Более того если это еще и в домен входит виндовый, то это можно делать >> с любой машины в сети. Тот же древний BO справится >> с этим в 2 минуты. И если у тебя нет hashdb дергалки, то это не значит >> что ее >> нет и ее сложно написать. (особенно учитывая что под виндой все тоже >> кругом root-ы)
C>Можно, называется L0phtCrack. Однако, база паролей защищена правами C>системного аккаунта. Конечно, это можно обойти с помощью C>имперсонированого процесса, но это уже тоже сложно.
Для профессионала это не будет сложно. Всегда есть local Admin.
>> 2. Гипотетическому хакеру нужно запустить из-под трояна ssh и зайти >> туда. При этом >> ему надо будет пробросить некое подобие соединения.
C>Ээээ... Про scp слышал?
И? Чем ему поможет scp если под рутом вход запрещен? (в твоем случае
действительно из под рута по scp без проблем). Сотрет мне .profile?
>> В случае с smb — все просто, это полноценная файловая система. Пиши >> куда хочешь и чего хочешь. Да и в браузинге >> сам говоришь светится. Так что проблем не возникнет.
C>Светится только сам сервер и _публичные_ шары. Закрытые шары — не браузятся.
Да пофигу. http://www.rawlogic.com/netview/
NetBrute shows hidden resources using the, so-called obsolete, Microsoft NetShareEnum API call. This feature allows you to see hidden resources, special resources like the hidden "PRINTER$" resource, system drives, and the IPC resource. If this new feature doesn't yield satisfactory results, revert to the previous method by unchecking NetShareEnum in the Options menu.
C>? Only trusted individuals should be granted Administrator privileges
C>on the system.
C>? The Administrator account should not be intended for casual use.
C>? The Administrator account should only be used to administer the
C>network or domain.
C>? The Domain controllers should be physically secured.
C>? Maintain a strong password policy. See
C>http://www.microsoft.com/security/default.asp.
C>(http://www.microsoft.com/security/default.asp)
C>? Rename the Administrator account.
C>? Never run untrusted programs while logged in as Administrator.
C>Как ни странно, я соблюдаю отсюда все пункты (ну кроме физической защиты C>контроллера домена).
The Administrator account should not be intended for casual use.
Предоставление как шары всего диска — это и есть использование
casual use. Под рутом должны выполняться только определенные программы.
В худшем случае sudo su.
Never run untrusted programs while logged in as Administrator.
Samba — untrusted. ssh тоже можно назвать untrusted, но это родная вещь
для юнксов, самба чужеродная. По большому счету все программы untrusted,
по этому в нормальных системах все сервисы работают под своими пользователями
и по возможности в chroot и/или jail.
>> А клавивиатурный сниффер лечится www.alladin.ru <http://www.alladin.ru>. C>Точно так же он может быть использован и для NTLM-авторизации.
Опять повторяю: самба некотролируема в плане остаточного монтирования и кеширования
пароля. ssh запускаетcя из шела. рута можно получить только через sudo уже в шеле.
Запрос пароля в ssh производится через консоль и не допускает скриптования
(хотя можно конечно, через expect, но доп гимор).
>> А вот запоминание самбой пароля (или если просто забыть отмонтировать >> диск) практически не лечится.
C>Достаточно просто НЕ монтировать диск — FAR поддерживает UNC-пути.
Винда обязан примонтировать неявно. Иначе каким образом будет работать
файловая система (т.е. если нет монтирования как будем файлик
редактировать и любимые виндой локи расставлять?) Иначе будет работать
как ftp, прицепился, выкачал, отцепился.
Попробуй, к стати, посмотреть net view когда работаешь из фара. Должны
быть видны эти ресурсы. (не уверен, т.к. этим не сильно интересовался).
Kemm wrote:
> *ИК* Я про root'а забываю как про страшный сон сразу после установки > sudo. Потратить четверть секунды на набор 'sudo ' мне не лень. > А sudo ставится во вторую очередь. (Я про FreeBSD в данном случае. > В первую -- cvsup и сразу обновление системы, после чего уже можно > какие-то сервисы открывать наружу)
Ну и какая разница между рутом и sudo? Просто секрет смещается с пароля
рута на твой собственный пароль. Узнав твой пароль, злоумышелнник точно
так же получит рутовый доступ к системе.
> C>А про "не пускать сразу под рутом" и т.п. — я _лично_ взламывал с > C>помощью самописного сниффера аккаунты root'ов. Просто ловил нажатие > sudo > C>и логгировал 100 клавиш после этого. Так что все эти "не пускать > рута" — > C>полная чушь. > Сниффер клавиатуры? Без прав супервизора? Оррригинально.
Да. Подходил к компу админа, вставлял дискету и нажимал enter на
exe-файле. Если бы комп у админа был не под Windows, то было бы еще
проще — я бы просто добавил "магический скрипт" в .bashrc.
> Если есть способ избежать лишних проблем -- зачем им пренебрегать-то > вот так вот сразу? Под виндой тоже администратором сидите?
Я _не_ вижу, какие проблемы (кроме удобного администрирования) решаются
запретом smb. Может быть расскажете, наконец?
Здравствуйте, Cyberax, Вы писали:
C>Kemm wrote:
>> [злостно поскипано] >> Ей-богу, странно после этого читать про администрирование >> юникс-серверов 10 лет.
C>Опять мешает религия, да?
>>>> по умолчанию sshd не пускает рута. >> C>Пускает, на многих дистрибутивах. >> Это личные половые трудности этих дистрибутивов. В *BSD не пускает ни >> в каких. И это правильно. По этому поводу спор был где-то в RU.UNIX.BSD
C>Это "Миф о ненадежности пускания рута по ssh" или я чего-то пропустил? C>Так там все сошлось к тому, что атакующему кроме пароля рута еще и логин C>придется подбирать. За возможность подбора своего пароля перебором я не C>боюсь.
а как же сниффер? Под виндой даже админских прав не надо чтоб сниферить.
C>А про "не пускать сразу под рутом" и т.п. — я _лично_ взламывал с C>помощью самописного сниффера аккаунты root'ов. Просто ловил нажатие sudo C>и логгировал 100 клавиш после этого. Так что все эти "не пускать рута" — C>полная чушь.
Ну у меня судо по другому зовется . А cmd.exe (если уж приходится из под винды
) не так просто перехватить. Токо через драйвер, но тут нужны опять же админские
права (которых у меня под виндой не бывает, а у тебя есть). И собственно не поделишься,
как бы засниферить из одной консоли другую из под обычного юзера? .
(всякие tty примочки не прделагать, именно я стартую процесс из под себя и он ловит
все что я ввожу в другой пусть и моей консоли).
C>Для действительно серьезной защиты нужно использовать аппаратные C>средства, типа smart-карт и т.п.
Тут согласен. Но при этом это не спасет от неявного монтирования .
Любое обращение трояна из под тебя к защищенному ресурсу незаметно
опросит smartкарту и получит доступ . (можно конечно сделать чтоб
она вопила об этом при любой попытке, но обычно это будет отключена
"а нафига мне это, я и так супер защищен vpn + сейф + плюс охранник)
aka50 wrote:
> C>Для этого троян должен знать путь к диску на сервере. > Нафиг? Он это в браузере увидит. А дальше просто //MYSUPERCOMP/etc/passwd
_НЕ_ _УВИДИТ_. Я раза 3 сказал, что браузинг этой шары — запрещен, нужно
знать ее точное имя.
> C>Однако, если кто-то умудрится поставить троян мне на компьютер, то у > C>него уже есть доступ в мою сеть, соответственно никакие ssh уже не > помогут. > Зачем ему доступ в твою сеть? Ты можешь хоть за сотней checkpoint-в > сидеть, > троян выйдет через http.
Что мешает злоумышленику использовать сниффер через этот троян? Это еще
BackOrifice умел.
> C>Можно, называется L0phtCrack. Однако, база паролей защищена правами > C>системного аккаунта. Конечно, это можно обойти с помощью > C>имперсонированого процесса, но это уже тоже сложно. > Для профессионала это не будет сложно. Всегда есть local Admin.
Файл с паролями заблокирован системеным процессом, чтобы прочесть его,
придется имперсонировать процесс от имени пользователя system (аккаунт
system — это вовсе не администраторский) и inject'нуть вражеский код в
процесс, который держит файл авторизации.
Все это делается весьма непросто, и готовых утилит для этого нет.
Ну а если злоумышленик имеет полный доступ к моему компу и обладает
знаниями как прочесть базу паролей — то уже можно не беспокоиться о том,
что банальный пароль по ssh он не сможет перехватить.
> C>Ээээ... Про scp слышал? > И? Чем ему поможет scp если под рутом вход запрещен? (в твоем случае > действительно из под рута по scp без проблем). Сотрет мне .profile?
Нет, добавит в .bashrc изменение path так, чтобы он указывал на
"правильный" sudo.
> C>Светится только сам сервер и _публичные_ шары. Закрытые шары — не > браузятся. > Да пофигу. http://www.rawlogic.com/netview/ > NetBrute shows hidden resources using the, so-called obsolete, > Microsoft NetShareEnum API call. This feature allows you to see hidden > resources, special resources like the hidden "PRINTER$" resource, > system drives, and the IPC resource. If this new feature doesn't yield > satisfactory results, revert to the previous method by unchecking > NetShareEnum in the Options menu.
Зато я помню, как наш сервак именно через ssh и поломали. Кстати, samba
наружу не смотрит.
> C>Как ни странно, я соблюдаю отсюда все пункты (ну кроме физической > защиты > C>контроллера домена). > The Administrator account should not be intended for casual use. > Предоставление как шары всего диска — это и есть использование > casual use. Под рутом должны выполняться только определенные программы.
Ну так я не использую админовскую шару для копирования фильмов и
музыки.
> Never run untrusted programs while logged in as Administrator. > Samba — untrusted. ssh тоже можно назвать untrusted, но это родная вещь > для юнксов, самба чужеродная.
Опять религия. ssh, кстати, это еще новая вещь (до 95 года даже открытых
реализаций его не было). _Настоящая_ юниксовая вещь — это telnet.
>>> А клавивиатурный сниффер лечится www.alladin.ru > <http://www.alladin.ru> <http://www.alladin.ru>. > C>Точно так же он может быть использован и для NTLM-авторизации. > Опять повторяю: самба некотролируема в плане остаточного монтирования > и кеширования > пароля.
Так же неконтролируема, как и sudo....
> Запрос пароля в ssh производится через консоль и не допускает скриптования > (хотя можно конечно, через expect, но доп гимор).
Уверен?
> C>Достаточно просто НЕ монтировать диск — FAR поддерживает UNC-пути. > Винда обязан примонтировать неявно. Иначе каким образом будет работать > файловая система (т.е. если нет монтирования как будем файлик > редактировать и любимые виндой локи расставлять?)
Так и работает — просто указываются UNC-пути для файлов. И ничего
монтировать не надо.
> Иначе будет работать как ftp, прицепился, выкачал, отцепился. > Попробуй, к стати, посмотреть net view когда работаешь из фара. Должны > быть видны эти ресурсы. (не уверен, т.к. этим не сильно интересовался).
Нет, не видны. При желании, есть API, которое позволяет перечислить
открытые в данный момент соединения, но ни один известный мне троян этим
не пользуется. С таким же успехом можно ожидать трояна, который будет
ожидать команды sudo внутри putty, а потом быстро набирать в putty
что-то типа "sudo nohup rm -Rf / &".
Здравствуйте, Cyberax, Вы писали:
>> C>А про "не пускать сразу под рутом" и т.п. — я _лично_ взламывал с >> C>помощью самописного сниффера аккаунты root'ов. Просто ловил нажатие >> sudo >> C>и логгировал 100 клавиш после этого. Так что все эти "не пускать >> рута" — >> C>полная чушь. >> Сниффер клавиатуры? Без прав супервизора? Оррригинально.
C>Да. Подходил к компу админа, вставлял дискету и нажимал enter на C>exe-файле. Если бы комп у админа был не под Windows, то было бы еще C>проще — я бы просто добавил "магический скрипт" в .bashrc.
Позвольте полюбопытсвовать 2 вопроса:
1. Под виндой не под админом как в cmd.exe перехватываем?
2. Чего ж такого этот магический скрипт делает? zsh | tie 2>&1 > /var/tmp/sniff`date`?
И еще вопрос? а каким образом на машину то попадаем чтоб с дискетки чтонить
скопировать? Может тогда это уже нафиг не надо, сразу рута узнать?
>> Если есть способ избежать лишних проблем -- зачем им пренебрегать-то >> вот так вот сразу? Под виндой тоже администратором сидите?
C>Я _не_ вижу, какие проблемы (кроме удобного администрирования) решаются C>запретом smb. Может быть расскажете, наконец?
Блин. Как разговор со слепым о красоте мира .
Удобство для тебя == удобство для злоумышленника. Чем больше у тебя сложностей,
тем сложнее ему. Если уж другие доводы до тебя не доходят.
aka50 wrote:
> C>Да. Подходил к компу админа, вставлял дискету и нажимал enter на > C>exe-файле. Если бы комп у админа был не под Windows, то было бы еще > C>проще — я бы просто добавил "магический скрипт" в .bashrc. > Позвольте полюбопытсвовать 2 вопроса: > 1. Под виндой не под админом как в cmd.exe перехватываем?
То есть? Не понял вопроса.
> 2. Чего ж такого этот магический скрипт делает? zsh | tie 2>&1 > > /var/tmp/sniff`date`?
Нет, изменяет path так, чтобы запускался фальшивый sudo. Ну и много чего
еще можно придумать, если стоят какие-нибудь системы реакции на вторжения.
> И еще вопрос? а каким образом на машину то попадаем чтоб с дискетки > чтонить > скопировать? Может тогда это уже нафиг не надо, сразу рута узнать?
А какая разница? Я просто физически к машине подходил, но это мог бы
быть и троян, который дает возможность удаленного управления.
> C>Я _не_ вижу, какие проблемы (кроме удобного администрирования) решаются > C>запретом smb. Может быть расскажете, наконец? > Блин. Как разговор со слепым о красоте мира . > Удобство для тебя == удобство для злоумышленника. Чем больше у тебя > сложностей, > тем сложнее ему. Если уж другие доводы до тебя не доходят.
Поэтому доступ для root'а должен быть _только_ с консоли, находящейся за
железной решеткой, охраняемой людьми с автоматами.
Здравствуйте, Cyberax, Вы писали:
C>aka50 wrote:
C>Что мешает злоумышленику использовать сниффер через этот троян? Это еще C>BackOrifice умел.
cmd.exe не снифферится.
>> C>Можно, называется L0phtCrack. Однако, база паролей защищена правами >> C>системного аккаунта. Конечно, это можно обойти с помощью >> C>имперсонированого процесса, но это уже тоже сложно. >> Для профессионала это не будет сложно. Всегда есть local Admin.
C>Файл с паролями заблокирован системеным процессом, чтобы прочесть его, C>придется имперсонировать процесс от имени пользователя system (аккаунт C>system — это вовсе не администраторский) и inject'нуть вражеский код в C>процесс, который держит файл авторизации.
C>Все это делается весьма непросто, и готовых утилит для этого нет.
CreateRemoteThread хакеру в помощь. Не преусложняй. Если чего-то нет в
публичном доступе не надо думать что этого никто не знает как это сделать .
От скрипткидисов может и поможет. От профессионала нет. Если есть хоть
маленькая возможность, он ее не упустит.
>> C>Ээээ... Про scp слышал? >> И? Чем ему поможет scp если под рутом вход запрещен? (в твоем случае >> действительно из под рута по scp без проблем). Сотрет мне .profile?
C>Нет, добавит в .bashrc изменение path так, чтобы он указывал на C>"правильный" sudo.
У меня sudo — это функция шела которая вызывает по полному пути. У меня
не пройдет. Плюс к тому ему надо вызвать потом родной sudo. При этом
придется "правильный" судо писать на expect. Иначе ничего не получится.
C>Я не сказал "скрытые", я сказал "закрытые" ("browseable = no" для шары). C>Для тех, кто не в курсе — они ВООБЩЕ не видны из браузера сети. Ну а C>скрытые шары и FAR показывать умеет.
Ладно... с закрытыми действительно не проканает.
>> C>http://www.google.ru/search?hl=ru&q=ssh+exploit&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr= >> <http://www.google.ru/search?hl=ru&q=ssh+exploit&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=> >> Ты год видел? >> root ssh exploit 2003-09-16 11:15:48.009624-07 >> Samba integer overflow updated since 16.12.2004
C>Зато я помню, как наш сервак именно через ssh и поломали. Кстати, samba C>наружу не смотрит.
Апдейты надо ставить. И пользовать от OpenBSD. ssh exploit-ов было всего два
и патчи выходили практически сразу. И более того, нефиг ssh открывать в инет.
tcpwrapper в помощь. Правда тоже самое можно и самбой сделать. Но
с root проблемой это перпендикулярно.
>> The Administrator account should not be intended for casual use. >> Предоставление как шары всего диска — это и есть использование >> casual use. Под рутом должны выполняться только определенные программы.
C>Ну так я не использую админовскую шару для копирования фильмов и C>музыки.
А кто это контролирует? sudo можно обучить запускать только определенные тулзы.
кто это будет smb объяснять если она под root? В понимании security officer
это именно casual use.
>> Never run untrusted programs while logged in as Administrator. >> Samba — untrusted. ssh тоже можно назвать untrusted, но это родная вещь >> для юнксов, самба чужеродная.
C>Опять религия. ssh, кстати, это еще новая вещь (до 95 года даже открытых C>реализаций его не было). _Настоящая_ юниксовая вещь — это telnet.
Ну да ... очень новая... всего то каких-то 11 лет. А то, что самба токо пару
лет назал начала нормально работать... да и сама по себе сложнее, значит
более подвержена багам (типа той же NFS).
>>>> А клавивиатурный сниффер лечится www.alladin.ru >> <http://www.alladin.ru> <http://www.alladin.ru>. >> C>Точно так же он может быть использован и для NTLM-авторизации. >> Опять повторяю: самба некотролируема в плане остаточного монтирования >> и кеширования >> пароля.
C>Так же неконтролируема, как и sudo....
Как это? Через sudo можно котролировать все. Например я могу webmaster-у
разрешить пререзапускать apache. Но больше ничего? Через samba как бум
делать? Ну и собственно пока ты работаешь в far я могу в трояне параллельно
тебе лазить и делать то что нужно. В ssh так не получится.
>> Запрос пароля в ssh производится через консоль и не допускает скриптования >> (хотя можно конечно, через expect, но доп гимор). C>Уверен?
Угу. Оно ругается если не консоль.
>> C>Достаточно просто НЕ монтировать диск — FAR поддерживает UNC-пути. >> Винда обязан примонтировать неявно. Иначе каким образом будет работать >> файловая система (т.е. если нет монтирования как будем файлик >> редактировать и любимые виндой локи расставлять?)
C>Так и работает — просто указываются UNC-пути для файлов. И ничего C>монтировать не надо.
Монтирование идет неявно... а не в диск D:. Все равно система должна
как-то отслеживать состояния файлов и т.д.
C>При желании, есть API, которое позволяет перечислить C>открытые в данный момент соединения, но ни один известный мне троян этим C>не пользуется.
И о чем это говорит? если тебе не извествен не надо держать хацкеров
за идиотов.
C> С таким же успехом можно ожидать трояна, который будет C>ожидать команды sudo внутри putty, а потом быстро набирать в putty C>что-то типа "sudo nohup rm -Rf / &".
А вот такого писать ... под все ssh клиенты будем писать или как?
Я вот могу из cmd.exe ssh.exe запустит. Или pytty из My documents.
Или SecureCRT. Есть еще много разных. А вот с самбой есть
одни великий API .
Здравствуйте, Cyberax, Вы писали:
C>aka50 wrote:
>> 1. Под виндой не под админом как в cmd.exe перехватываем? C>То есть? Не понял вопроса.
Ну так. Каким образом работает сниффер когда вводиться пароль в cmd.exe?
>> 2. Чего ж такого этот магический скрипт делает? zsh | tie 2>&1 > >> /var/tmp/sniff`date`?
C>Нет, изменяет path так, чтобы запускался фальшивый sudo. Ну и много чего C>еще можно придумать, если стоят какие-нибудь системы реакции на вторжения.
Как я сказал это лечится функциями шела с прямым вызовом. Да и привычка
набирать /sbin/ifconfig обычно такие шутки убивает.
>> И еще вопрос? а каким образом на машину то попадаем чтоб с дискетки >> чтонить >> скопировать? Может тогда это уже нафиг не надо, сразу рута узнать?
C>А какая разница? Я просто физически к машине подходил, но это мог бы C>быть и троян, который дает возможность удаленного управления.
Изменение файла .bashrc (а точнее .cshrc .zshrc .bashrc .profile etc)
может видеть fam. Более того, эти файлы у меня принадлежат руту. Я их
сам менять не могу .
C>Поэтому доступ для root'а должен быть _только_ с консоли, находящейся за C>железной решеткой, охраняемой людьми с автоматами. Недостижимый идеал.
Здравствуйте, Cyberax, Вы писали:
>> *ИК* Я про root'а забываю как про страшный сон сразу после установки >> sudo. Потратить четверть секунды на набор 'sudo ' мне не лень. >> А sudo ставится во вторую очередь. (Я про FreeBSD в данном случае. >> В первую -- cvsup и сразу обновление системы, после чего уже можно >> какие-то сервисы открывать наружу) C>Ну и какая разница между рутом и sudo? Просто секрет смещается с пароля C>рута на твой собственный пароль. Узнав твой пароль, злоумышелнник точно C>так же получит рутовый доступ к системе.
Большая. Я не работаю с правами супервизора постоянно. Только для некоторых
(достаточно редких) задач, где это необходимо.
>> C>А про "не пускать сразу под рутом" и т.п. — я _лично_ взламывал с >> C>помощью самописного сниффера аккаунты root'ов. Просто ловил нажатие >> sudo >> C>и логгировал 100 клавиш после этого. Так что все эти "не пускать >> рута" — >> C>полная чушь. >> Сниффер клавиатуры? Без прав супервизора? Оррригинально. C>Да. Подходил к компу админа, вставлял дискету и нажимал enter на C>exe-файле. Если бы комп у админа был не под Windows, то было бы еще C>проще — я бы просто добавил "магический скрипт" в .bashrc.
Это еще большая клиника. Если админ не лочит машину, при том, что к его
рабочему месту может кто-то подойти -- нафиг таких админов.
>> Если есть способ избежать лишних проблем -- зачем им пренебрегать-то >> вот так вот сразу? Под виндой тоже администратором сидите? C>Я _не_ вижу, какие проблемы (кроме удобного администрирования) решаются C>запретом smb. Может быть расскажете, наконец?
Я где-то говорил про запрет smb? Только вот к администрированию машины smb
имеет мало отношения.
Kemm wrote:
> C>Ну и какая разница между рутом и sudo? Просто секрет смещается с пароля > C>рута на твой собственный пароль. Узнав твой пароль, злоумышелнник точно > C>так же получит рутовый доступ к системе. > Большая. Я не работаю с правами супервизора постоянно. Только для > некоторых > (достаточно редких) задач, где это необходимо.
Ну так и у меня этот диск не всегда подключен, а только для особых
административных задач.
> C>Да. Подходил к компу админа, вставлял дискету и нажимал enter на > C>exe-файле. Если бы комп у админа был не под Windows, то было бы еще > C>проще — я бы просто добавил "магический скрипт" в .bashrc. > Это еще большая клиника. Если админ не лочит машину, при том, что к его > рабочему месту может кто-то подойти -- нафиг таких админов.
Все люди ошибаются и что-то иногда забывают.
> C>Я _не_ вижу, какие проблемы (кроме удобного администрирования) решаются > C>запретом smb. Может быть расскажете, наконец? > Я где-то говорил про запрет smb? Только вот к администрированию машины smb > имеет мало отношения.
Так мне не объяснили до конца, где в цепочке с smb+far более
небезопасное звено, чем в цепочке ssh+sftp. Оба варианта практически
невзламываемы без доступа к машине админа, оба варианта требуют
достаточно сложных троянов в случае взлома. Так в чем разница?
Здравствуйте, Cyberax, Вы писали:
>> C>Ну и какая разница между рутом и sudo? Просто секрет смещается с пароля >> C>рута на твой собственный пароль. Узнав твой пароль, злоумышелнник точно >> C>так же получит рутовый доступ к системе. >> Большая. Я не работаю с правами супервизора постоянно. Только для >> некоторых >> (достаточно редких) задач, где это необходимо. C>Ну так и у меня этот диск не всегда подключен, а только для особых C>административных задач.
Разницы в "выполнить только то, что необходимо, от рута" и
"выполнить все от рута" не видно? Ну тогда извините.
>> C>Да. Подходил к компу админа, вставлял дискету и нажимал enter на >> C>exe-файле. Если бы комп у админа был не под Windows, то было бы еще >> C>проще — я бы просто добавил "магический скрипт" в .bashrc. >> Это еще большая клиника. Если админ не лочит машину, при том, что к его >> рабочему месту может кто-то подойти -- нафиг таких админов. C>Все люди ошибаются и что-то иногда забывают.
Первый раз -- предупреждение. Второй -- снос хоума (с бэкапом -- пусть
попугается). Третий -- снос всего без бэкапа. Была такая хорошая практика
когда-то в ряде мест. Жаль, что не везде.
>> C>Я _не_ вижу, какие проблемы (кроме удобного администрирования) решаются >> C>запретом smb. Может быть расскажете, наконец? >> Я где-то говорил про запрет smb? Только вот к администрированию машины smb >> имеет мало отношения. C>Так мне не объяснили до конца, где в цепочке с smb+far более C>небезопасное звено, чем в цепочке ssh+sftp. Оба варианта практически C>невзламываемы без доступа к машине админа, оба варианта требуют C>достаточно сложных троянов в случае взлома. Так в чем разница?
Расскажите мне, как по smb перезапустить апач. Или по ssh лезть?
Тогда накойфиг добавлять еще одну возможную точку взлома, к тому же
поверх такого протокола?!
Здравствуйте, Cyberax, Вы писали:
C>Нет, изменяет path так, чтобы запускался фальшивый sudo. Ну и много чего C>еще можно придумать, если стоят какие-нибудь системы реакции на вторжения.
просто админ ОБЯЗАН выработать привычку писать ТОЛЬКО /bin/sudo.
и тогда обпридумывайся :)
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Cyberax, Вы писали:
C>>Нет, изменяет path так, чтобы запускался фальшивый sudo. Ну и много чего C>>еще можно придумать, если стоят какие-нибудь системы реакции на вторжения.
J>просто админ ОБЯЗАН выработать привычку писать ТОЛЬКО /bin/sudo. J>и тогда обпридумывайся
Начали за здравие... кончили за упокой
Только ветку не грохайте всю — про vim и emacs оставте плз — я на досуге ссылочки промониторю
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
Cyberax пишет:
> Да, к сожалению для С++ в *nix'ах нет VS. В основном из-за большой > сложности самого языка С++. А вот для Java/Python/C#/Perl аналоги VS > вполне себе существуют и чувствуют себя неплохо.
Назовите мне IDE для Perl кроме Komodo, которые были бы по возможностям
идентичны VS for C++.
jazzer wrote: > E>alias /bin/sudo=~/bin/evilsudo > E>Как минимум в zsh работает. > > блин, ну нельзя же так!
А command alias сразу после этого сработает? А программа должна отсылать
данные сразу — она будет обнаружена после первого обмана — sudo suid, и
очень не любит работать не с консоли. Или это легко исправить?
Здравствуйте, raskin, Вы писали:
R>А command alias сразу после этого сработает?
Если тут же из консоли повторить, то сразу. R> sudo suid, и R>очень не любит работать не с консоли. Или это легко исправить?
aka50 wrote: > R>А command alias сразу после этого сработает? > Если тут же из консоли повторить, то сразу.
Ой... Я тут сходил в zsh посмотрел... Вы правы.
Это чудо даёт перегрузить builtin, alias и полный путь. Хана какая-то.
Мечта хакера.
J>Иными словами, я рассматриваю ctags как то, что превращает любой редактор, который умеет с ним работать (даже не с ним, а с произведенными им файлами), в мини-IDE. На сегодняшний день такими редакторами ясляются vi с производными, emacs с производными, и NEdit. Наверняка еще кто-то есть.
а есть в Nedit файловый навигатор? + еще можно его на нормальныне шрифты настроить? (со сглаживанием)
еще интересует насколько он с latex ом интегрируется.
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Здравствуйте, Cyberax, Вы писали:
C>jazzer wrote:
C>Ну а уж не суметь изучить IDEA (или даже eclipse) может только C>законченый юниксоид...
попрошу... C>-- C>С уважением, C> Alex Besogonov (alexy@izh.com)
Здравствуйте, MaximE, Вы писали:
ME>Читаю я дискуссию, вижу, что человек ты с другой планеты. Ну нахрена, скажи мне, все эти auto complete, class browser, etc..? Когда я трудился под виндозой, я неоднократно пытался заставить себя пользовать visual assist. Не смог. Как начинал пользоваться, чувствовал, что тупею, мысль останавливается, теряется.
Максим, как же ты на С++ пишешь — это ж сплошная деградация, сколько работы за тебя делают: типы проверяют, this передают, vtbl всякие. А уж шаблоны-то, шаблоны...
Пытаюсь понять, это двойные стандарты или просто я чего-то не понял?
J>>Иными словами, я рассматриваю ctags как то, что превращает любой редактор, который умеет с ним работать (даже не с ним, а с произведенными им файлами), в мини-IDE. На сегодняшний день такими редакторами ясляются vi с производными, emacs с производными, и NEdit. Наверняка еще кто-то есть.
dad>а есть в Nedit файловый навигатор?
только через File-Open.
Т.е. если тебе нужен навигатор, висящий постоянно отдельным окошком — такого нет.
Может быть, есть в патчах, там очень много чего есть, чего нет в официальном билде, типа сессий, макро для тегов и прочего.
dad>+ еще можно его на нормальныне шрифты настроить? (со сглаживанием)
Думаю, да, а в чем там может быть проблема? По-моему, сглаживанием шрифтов X server должен заниматься, а не само приложение.
dad>еще интересует насколько он с latex ом интегрируется.
а что имеется в виду под интеграцией?
синтаксис подсвечивает. Можно настроить макро, который будет файл компилять и запускать смотрелку
Здравствуйте, Dj.ValDen, Вы писали:
DV>Здравствуйте, Cyberax, Вы писали:
C>>execve wrote:
>>>>> Резюме одно: "со своим уставом в чужой монастырь не ходят". >>>>> Все твои претензии — суть "я в Windows/VisualStudio привык делать ТАК, >>>>> как мне сделать ТОЧНО ТАК ЖЕ в Linux/Whatever". >>> C>Проблема в том, что сейчас есть де-факто стандарты на IDE. >>> Для разработчиков под Windows.
C>>Коих большинство. Кстати, на Mac'е тоже IDEшки весьма похожи на VS C>>(XCode, например).
DV>Нет ужжж, простите — подвинтесь. DV>Это что же в XCode похоже на VS??? DV>Ты видел как им пользуются те кто на нём пишет? И близко непохоже на VS! DV>Отдельно на мониторе валяется дерево файлов (кстати дерева классов там нет — я если честно уже и не знаю нафик оно вообще нужно это дерево классов), отдельно открытые редакторы исходников ( 10 сорцов открыто — 10 окон — там мониторного пространнаства не жалеют — никаких тебе таббед-меню — или как там ты их называл... ), а над всем этим отдельно висит меню...
Есть-есть Токо оно непрактичное совершенно, в отличие от вижуаловского, да и оно, в свою очередь...
А вообще, после этого XCode меня сильно на emacs потянуло, какой-то период на нем работал. DV>где сходство со студией??? Да — всякие там примочки для удобства там делаются перл-скриптами ... Может больше похоже на unix-way ??? DV>Хотя... Это и не unix-way — у маков свой way
C>>Затем я попробовал поискать VisualStudio mode — агащаз, нет такого. C>>Умные люди используют нормальный VS, а не Emacs. G> Прошу прощения. А я вот в Студии не могу отыскать php-mode и python-mode.
Для питона есть ActiveState Visual Python примитивный, но работает.
G>В сети нет. Кстати, lisp-mode тоже.
lisp кто-то уже пишет если ещё не написал. G>Могу ли я выслать DVD со Студией обратно в Microsoft?
Нет читайте в EULA.
Здравствуйте, Stoune, Вы писали:
S>Для питона есть ActiveState Visual Python примитивный, но работает. G>>В сети нет. Кстати, lisp-mode тоже. S>lisp кто-то уже пишет если ещё не написал. G>>Могу ли я выслать DVD со Студией обратно в Microsoft? S>Нет читайте в EULA.
Вы надеетесь на ласки гурий в раю или на путешествие в Вальгаллу? Как Священный Воин?
S>>Нет читайте в EULA. G> Вы надеетесь на ласки гурий в раю или на путешествие в Вальгаллу? Как Священный Воин?
Ни то не другое, я не фанатик, моя философия: хоть крестиком вышивать буду, только вам это обойдётся дороже.
Здравствуйте, Stoune, Вы писали:
S>Здравствуйте, glyph, Вы писали:
S>>>Нет читайте в EULA. G>> Вы надеетесь на ласки гурий в раю или на путешествие в Вальгаллу? Как Священный Воин? S>Ни то не другое, я не фанатик, моя философия: хоть крестиком вышивать буду, только вам это обойдётся дороже.
Если не секрет — зачем такой трэд поднимать было?
glyph wrote:
> S>>>Нет читайте в EULA. > G>> Вы надеетесь на ласки гурий в раю или на путешествие в Вальгаллу? > Как Священный Воин? > S>Ни то не другое, я не фанатик, моя философия: хоть крестиком > вышивать буду, только вам это обойдётся дороже. > Если не секрет — зачем такой трэд поднимать было?
Для желающих могу создать новый. Например, "vim — отстой" или "Linyx
скоро сдохнет"
Здравствуйте, Cyberax, Вы писали: C>Для желающих могу создать новый. Например, "vim — отстой" или "Linyx C>скоро сдохнет"
Да пжалста. Только на другом форуме, ок?