Специально для Алексея Федорчука (открытое письмо) (Отзыв на книгу "FreeBSD: Установка, настройка, использование")

Обсуждение различной литературы о Linux

Модератор: Модераторы разделов

spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

Здравствуйте!
Пишет Вам spinore, более известный в юникс-кругах как "spinore с linux.org.ru" или просто Олег Пилявец. Сейчас я аспирант ФИАН, закончил небезызвестный Физтех.
Я ещё давно Вам хотел написать, но всё не доходили как-то руки.
Два года назад решил освоить по-хорошему операционную систему. У моего знакомого, жившего в общежитии со мной в комнате, одно время на старом компе стояла FreeBSD 4-й ветки, что, так сказать, и запало в душу мне и ещё одному нашему соседу (впоследствии тот поставил FreeBSD и до сих пор она у него является десктопной системой). В итоге в качестве целевой системы для изучения была выбрана именно FreeBSD. К этому моенту я практически ничего не умел делать в *nix'ах и пользовался Windows 2000. К счастью, мне попалась Ваша книга "FreeBSD: установка, настройка, использование",
которая и была тщательно прочитана в течении свободного времени за несколько месяцев :) Я выражаю вас искренню благодарность за Ваш труд, что Вы привнесли в мир open source, и много поспособствовали для адаптации новичков в мире UNIX/Linux. Благодаря вашей книге я и сам благополучно перешёл сразу с Windows на FreeBSD, и даже, можно сказать, OpenBSD (хотя мне помогали несколько).
На самом деле развитие шло приблизительно так: я благополучно поставил себе FreeBSD 5.2.1 (на тот момент самую новую версию), но возникли проблемы с видеокартой, благодаря чему иксы могли идти только в VGA-режиме. Поразбиравшись с xf86config вместе с напарником мы решили попробовать поставить OpenBSD. В итоге я сразу получил нормально работающие иксы в OpenBSD и, де-факто, "перешёл с windows сразу на OpenBSD" (квалификации после прочтения Вашей вышеупомянутой книги для этого хватило, ещё раз Вам спасибо).
Просидев пол года на OpenBSD я пользовался тем, что рекомендовал сосед (на тот момент - аськой, kde и т.п.). Нормальных "user-friendly" клиентов icq типа licq или sim под OpenBSD тогда не было, и мы пытались их с соседом "портировать", что не получилось (сейчас есть предположение, что этого не получилось из-за слишком староой версии gcc, которрая на тот момент в OpenBSD была умолчальной). Промучавшись с очень неудобной интерфейсной аськой (про джаббер я тогда не знал) я вконец опечалился (к тому времени уже пол года использовал OpenBSD и у меня даже был работающий матлаб 6.5) и снова вернулся на FreeBSD, для которой теперь уже была новая версия - 5.3 - она без проблем устанавливалась, и иксы с моей видеокартой работали корректно. После, используя FreeBSD 5.3 в течении полутора лет я постепенно ушел от user-frienfy-программ в сторону консольных приложений (предпочитая true консольные приложения даже интерфейсу на curces) и легковесных менеджеров. Параллельно я начал осозновать, что мне будет одинаково комфортно теперь в любой юникс-системе и решил начать использовать что-то более "профессиональное" и как бы "лучшее" (более надёжное). Изначально тогда я хотел вернуться на OpenBSD, но меня сразил некий интерес к неизведанному и загадочному, а также система cgd в NetBSD. В итоге ныне я уже около двух месяцев использую NetBSD 3.0., хотя изначально ставил эту систему только для того, чтобы посмотреть. В целом меня NetBSD устраивает на данный момент, но, когда-нибудь, возможно, всё же я вернусь на OpenBSD
(Соответствующие заметки того времени были оставлены здесь: http://www.linux.org.ru/profile/spinore/vi...p?msgid=1376281 О некоторых проблемах и их решении я ещё писал здесь:
http://www.linux.org.ru/profile/spinore/vi...p?msgid=1382354). Cерьёзного cмысла перехода на Linux на десктопе, окромя как любопытства, пока не вижу. Среди тех дистрибутивов, которые видел со стороны, больше всего нравится Gentoo (что-то наподобие bsd-like Linux), благо интернет траффик у меня бесплатный уже 3 года.
Пройдя указанный путь от обычного пользователя до BSD-юзера, хотел бы поделиться с Вами некоторыми замечаниями по поводу указанной книги и вообще идеологии (надеюсь, Вам это будет интересно).
В книге было хорошо сказано про преимущества оконных менеджеров по сравнению с интегрированными графическими средами стиля kde, gnome и xfce. Очень понравился blackbox. Долго время его использовал (с тех времён даже скриншот остался: http://www.linux.org.ru/profile/spinore/vi...p?msgid=1283695). В рамках описания blackbox, по моему мению, Вам следовало бы сказать, что не следует загромождать десктоп таками искусственными программами как bbrun. Всё что нужно, пользователь запускать должен с хоткейсов, которые прописаны в ~/.bbkeysrc (его новейшая версия поддерживает даже keychain'ы, что очень удобно, и чего нет в fluxbox (хотя можно использовать bbkeys и c fluxbox)). В случае же потребности запустить что-то особенное, всегда можно открыть терминал и написать "nohup нечто &". Такие впечатления остались у меня от примерно годовой работы в blackbox.
Позже я случано встретил фразу стиля "настоящие хакеры используют ... OpenBSD, BadWM, ratpoison, ion...". Ради интереса я поставил себе ratpoison чтобы посмотреть на него, а вышло так, что и по сей день им пользуюсьм. Возвращаясь иногда к blackbox я чувствую как мне становится крайне неудобно. Дело же здесь вот в чём. kde является "реконструкцией" windows-подобного интерфейса. Blackbox же, всвою лчередь, не так далеко ушёл от этого самого интерфейса, если его рассмотреть очень внимательно. Кто нам сказал, что "все приложения должны иметь отдельные окна, которые могут перкрываться, у каждого окна должна быть декорация из 3-х квадратиков, щёлкая мышкой на которым можно что-то делать"(?). И уж тем более, кто сказал, что это "самая правильная идеология организации интерфейса, и самая удобная"? (К слову сказать, именно под такую идеологию создавались великие и могучие иксы). Неоптимальность оконного интерфейса прявляется при возрастанрии числа окон (когда их число начинает превышать 10-15). Я придумывал разные ухищрения, как побороть эту неоптимальность. Поясню более конкретно, о чём идёт речь.
Итак, будем реалистичными. У меня запущено 13 разных окон одновременно (консольный curces-based icq-клиент и jabber через centericq (2 окна), vim (1 окно), links (1 окно), opera (1 окно)), обычный терминал для выполнения команд (1 окно), рутовый терминал (1 окно), терминал с запущенным в нём MatLab'ом (1 окно) а также ещё несколько терминалов, в которых происходит редактирование в vim'е чего-нибудь, или браузеры типа firefox. Для удобной работы нужно иметь открытыми сразу все указанные приложения, чтобы в случае чего (а это нужно делать часто) время тратилось только на переключение между окнами а не на открытие приложений. Итак, мне приходится постоянно и часто переключаться между указанными окнами. Если бы использовался только один рабочий стол, я бы устал по 10 раз нажимать Alt-Tab и Alt-Shift-Tab (например) в blackbox. Естественным кажется желание упростить переключение: разбить эти окна на классы - сиречь "рабочие столы". Это всё так, но метод "раскидывания окон по столам" приводит только к кажущемуся решению проблемы. Почему? - Потому, что в нагрузку к хоткеям переключения между окнами добавляются хоткеи для переключения между столами. А на каком столе у нас что находится? Нужно помнить? Да. А можно воспользоваться пейджером - загрмоздить часть стола маленькими скриншотиками всех существущих столов (представляю снизу мысленно 13 микроскриншотов, на котрые я смотрю в надежде понять что же и где у меня открыто). Сам я никогда пейджерами не пользовался, а делал по-другому: на каждый рабочий стол помещал только одно окно, в итоге у меня обычно использовался только хоткей на переключение рабочего стола для того, чтобы сделать активным некоторое приложение. А куда переключаться? Чтобы не мучиться с этим, я старался располагать каждое приложение каждый раз на одном и том же, своём, уникальном столе. Однако, это не работало очень гладко, так как приложений много, и рано или поздно часть из них всё равно начинает находиться неизвестно где. А потому приходится периодически вызывать из меню список всех окон и просматривать все рабочие столы со всеми окнами на них (очень времязатратная операция). Учту (упомяну) ещё 2 очень важных момента в работе с так организованными системами: a) фокус может располагаться на самом root-image на активном рабочем столе, то есть не принадлежать ни какому, отрытому на нём, окну - это создаёт потребность даже при использовании системы "на каждый стол по одному окну" использовать лишние хоткеи для перемещения фокуса на это "одно-единственное" окно; б) есть переключение фокусов в одну сторону (например, альт-таб) и в другую сторону (альт-шифт-таб): предположим, что в итоге у нас на рабочем столе образовалось в какой-то момент 4-5 открытых окон и требуется переключиться не на последнее, бывшее активным, окно; как следствие, мы не знаем какую их комбинаций (альт-таб или альт-шифт-таб) использовать. Это приводит к тому, что вместо одного-двух применеий данного хоткея я должен нажимать его много раз, если начну переключать окна в не правильном порядке (не угадал если :) ). Все эти проблемы заставляют меня обвинить данный интерфейс и назвать его неоптимальным и неудобным, равно как и все менеджеры, его использующие и пропогандирующие (про необходимость тянуться к мышке для ресайза окна или переключения на другое окно я уже даже не упоминаю, хотя в blackbox можно обойтись и без этого). Идею рабочих столов и пейджеров я теперь считаю "костылями", которые люди вынуждены приделывать к оконному менеджеру, использующему не правильный дизайн интерфейса.
Теперь о том, как легко и свободно решаются все указанные проблемы в frame-ориентированных менеджерах (рассмотрю для примера ratpoison). Рабочих столов здесь нет в обычном понимании этого слова. Переключаться между фреймами и окнами можно только с помощью хоткеев (я использую keychain'ы, благо ratpoison это позволяет). Сначала я задал геометрию фреймов: разбил окно на непересекающиеся прямоугольники - фреймы. По душе мне пришлось всего 2 геометрии фреймов: 1) на full-screen открыт один frame, и 2) экран бьётся вертикально на 2 части - образуется 2 фрейма, причём фрейм справа делается в меру узким, и окна в нём гасятся - на нём виден только кусок root-image. На фрейме справа запускается какя-нибудь программа в стиле torsmo или conky (можно использовать ещё root-tail и osd_cat). Можно включить раличные системные мониторы по желанию пользователя, а можно и не включать. Основное - это вывод на root-image списка всех открытых окон с их названиями (урезанными) и номерами (для этого я и освободил справа место и сделал root-image видимым). Скриншот того, как это выглядит, прилагается в ссылках:
http://www.linux.org.ru/profile/spinore/vi...p?msgid=1424357
Это - лучшее, что я сделал за все 2 года (лучший скрин по моему мнению):
http://slil.ru/22878768
Почти современный конфиг для ratpoison приведён здесь:
http://www.linux.org.ru/profile/spinore/vi...p?msgid=1465937
Если я пользуюсь 2-й геометрией фреймов - у меня всегда активен левый фрейм и окна появляются только в нём при их активации в ratpoison. Если я пользуюсь 1-й геометрией фреймов - fullscreen, то все окна всегда полностью максимизированы. Мне не нужно поочерёдно переключаться между активациями окон в текущем фрейме для получения нужного мне окна: посмотрев в список справа на номер окна я набираю, например, альт-8 и я уже на 8-м окне(!). Конечно, забирая все лучшие наработки с blackbox, я и здесь теперь стараюсь держать номера окон различных приложений уникальными (для этого достаточно запускать после логина приложения в нужном порядке или назначать вручную номер вновь открывшемуся окну, что делается легко с клавиатуры средставми ratpoison). Также, мне не нужно помнить теперь что выбирать: "аль-таб" или "альт-шифт-таб" для переключения на какое-то окно с с номером, далёким от номера текущего (активного в данном фрейме) окна: один взгляд на список... и это становится сразу ясным. Также, ratpoison позволяет легко ресайзить фреймы, пользуясь только хоткейсами. Таким образом, я получаю нужную мне масштабируемость при возрастании числа открытых окон: порописав верхний ряд клавиш (1,2,...=,\) для переключения окон (активации соответствующих окон по их номерам) я, нажимая только 2 клавиши (аль+нужная_клавиша_с_верхнего_ряда), получаю моментальный доступ к любому из 13(!) окон. В крайнем случае, я могу воспользоваться и обращением к окнам по встроенным хоткеям ratpoison или обращением к окнам по первым именам заголовков (что также встроено в ratpoison). Пользуясь систематически ratpoison'ом, и установкой окнам нужных номеров после их старта можно, в действительности, заглядывать в список всех открытых приложений справа очень редко. Подчеркну, что список я делаю собственными руками, заставляя стороннюю программу (например, torsmo, периодически обращаться к ratpoison и запрашивать это список (в действительности, это вывод команды ratpoison -c windows)).
Ответ на возможные трудности работы с ratpoison:
1) "У меня есть список окон, которые я хочу видеть объединенными. А также, чтобы геометрия фреймов при обращении к любому окну из данного списка самовосстанавливалась, показывая в каждом фрейме определённое окно. При попытке же активации окна из некоторого другого списка восстанавливалась бы, аналогично, связанная с ним его система фреймов и активированных в них окон". Ответ: a) для большинства возможных работ в каждый момент времени достаточно иметь активным только одно окно, и почти на full-screen (судя по собственному опыту). Необходимость в привязке системы фреймов к активным на данный момент приложениям возникает только, когда нужно постоянно (фактически, ежесекундно) смотреть в оба окна одновременно. Такое бывает. B) для реализации данной возможности можно директивно менять геометрию, потом активный фрейм, и хатем активировать в нём нужное окно (аналогично, для остальных фреймов). Изменение геометрии имеющихся фреймов "налету" можно привязать опять же к хоткеям (у меня сделано именно так). Должен признать, что в ratpoison первична именно геометрия фреймов, а не сами окна, котрые в этих фреймах активируются. Можно спорить с данной идеологией. По моему мнению, она более подходит для одних задач и не очень для других. При прочих равных мне не кажется этот вопрос очень принципиальным. К слову сказать, появился в данный момент скрипт, позволяющий делать привязку геометрии фреймов к приложениям более явно в ratpoison, но он написан на bash и работает медленно, в связи с чем я его не использую.
2) "Почему у окон в ratpoison нет декораций"? Ответ: они нужны, если у меня есть список окон с номерами и их заголовками, всегда висящий справа (если только не используется full-screen-геометрия фреймов). Хочу также заметить, что при прочих равных восприятие приложения лучше, если оно занимает весь экран, а не его маленький клочок. Жертвовать размером окна имеет смысл, только если действительно нужно одновременно видеть несколько окон на одном и том же экране - только в этом случае разбитие экрана на большое число фреймов оказывается оправданным.
3) "Почему нет поддержки мыши"? Ответ: поддержка мыши отсутствует, чтобы не поощрять пользователя пользоваться неудобными инструментами для решения задач при работе с ratpoison. Мышь должна использоваться в тех приложениях и только тех, где она жизненно необходима. Идея в минимализме: "если я могу спокойно управлять системой с клавиатуры, то зачем мне "пятая нога" в виде дополнительной убогой поддержки управления с помощью неудобных и неэффективных инструментов? Это оправдано для новичков, обживающихся в мире юникса, но не оправдано для людей, разбирающихся в приложениях, и уже успевших не по одному разу прочитать документацию на тот же ratpoison от начала и до конца".
О других фрейм-ориентированных менеджерах: самым популярным, пожалуй, является из них ion. Лично меня, как стремящемуся к оптимуму между минимализмом и функциональностью, оттолкнула поддержка мыши, жёстко добавленная в ion и наличие декорации окон по умолчанию. Я не считаю это хорошим признаком. Хотя в целом, по рассказам, ion предоставляет большую гибкость и возможности, чем ratpoison. К тому же, лично мне для моих целей в данный момент хватает ratpoison (использование интернета, просмотр аудио-, видео- и графических файлов, работа в vim с TeX-файлами, программирование в matlab и т. п.) Также, меня можно спросить про удобство работы с gimp в ratpoison, на что я могу ответить двояко: 1) при необходимости иногда пользоваться gimp'ом можно столь же иногда запускать тот же blackbox; 2) никто не мешает изучить другие фрейм-ориентированные оконные менеджеры наподобие иона, которые уже позволяют удобно работать с gimp'ом: я не преследовал пропаганду ratpoison как такового, я только указал на ряд существенных недостатков в интерфейсе не фрейм-ориентированных менеджеров (конечно, приведённую систему управления можно реализовать на любом продвинутом оконном менеджере и повесить список где-либо на экране список окон, а также настроить нужные хоткейсы... но возникает вопрос: "зачем тогда нужна эта 'толстость' оконного менеджера и обилие других возможностей, которые не будут никогда использоваться"?).
Закончив рассмотрение оконных менеджеров, расскажу о других впечатлениях.
Счиатю очень удачным то, что Вы порекомендовали использовать возможнсти командной строки вместо оболочек-визуализаторов напободие mc. Прошло 2 года моего пребывания в юникс-системах, и я не пользовался mc никогда для своих нужд, причём считаю это идеологически правильным. Также, использование kde, blackbox и т. п. "мышовых" интерфейсных программ хорошо для первого освоения но не для постоянного использования.
Меня очень порадовал акцент в сторону использования zsh, а не bash. Наше общество пока не знает о zsh и живёт вчерашним днём, извиняюсь за грубость (я не вижу никаких премуществ bash перед zsh на данный момент окромя большей распространённости первого).
К слову о редакторах: для человека, разобравшегося с vim'ом (emacs'ом) никакие другие редактры не нужны (nedit, kwrite, gedit и т. п.). Возможно, Вам бы следовало бы столь же явно, как для mc и kde подчеркнуть, что использование альтернативных vim'у и emacs'у редакторов может быть обосновано только большими трудозатратами быстрого изучения первых.
Для конечного пользователя не последнюю роль играет возможность шифрования информации, работа с gpg, openssl, а также работа к ключами и сертификатами в различных приложениях (например, в почтовой программе и джаббере). Почему-то считается правилом хорошего тона ничего не упоминать о таких возможностях в стандартных книгах по юниксу. У меня на полке лежит 3 книги по FreeBSD и ни в одной из этих книг ничего не сказано о шифровании дисков. Возможно, этому следовало бы уделить некоторое внимание.
Общепризнанно лучшей почтовой программой признан mutt (смотрим официальную документацию на Gentoo Linux или NetBSD). В книгах не любят, тем не менее, описывать тонкости работы fetchmail/procmail/msmtp/mutt и, думаю, очень даже зря: ведь почтой пользуются все. Жалко, что во всех известных мне книгах нет нормальной документации по указанным программам за исключением слов "это выходит за рамки данной книги".
Есть такая полезная программа - screen, и многие пользователи уже сейчас не представляют себе работу без использования этой программы. ratpoison написан по мотивам именно screen. Однако, о существовании таких хороших программ можно узнать только случайно с некоторых форумов. То же самое следует сказать и о программах tor+privoxy.
Существут браузеры наподобие w3m с чудесными возможностями: истиная графика в исках в консоли! Но о таких программах также можно узнать только случайно. Хорошо было бы упомянуть о w3m в Вашей книге.
С удовольствием я читал Ваши заметки и по другим BSD-системам. У меня возникал вопрос: почему до сих пор все отмалчиваются, и никто из профессионалов не решится взять и написать разгромную статью по сравнению хотя бы Linux/Solaris/FreeBSD/OpenBSD/NetBSD? Это никому не выгодно, может быть, ибо покажет пользователям массу слабых сторон и кучу костылей и ошибок в дизайне этих систем (а это есть!)?
Обычно не описывают никогда процедуру make world со списокм всех возможных нюансов и неожиданных аварийных ситуаций в книгах по BSD :( На данный момент, насколько мне известно, нет других гибких способов устранить ошибки в базовой системе.
Принято не писать о плохих сторонах BSD и Linux. Может быть, где-то официально нужно написать о кривости portupgrade? И это система, рекомендуемая самими разработчиками для управления системой портов. Gentoo Linux команда - молодцы - они сделали хорошую систему работы с портами, опираясь на ошибки предшественников.
Удобно использовать centericq и mpd+mpc для работы, соответственно, с джаббером и аськой. Я могу запустить centericq в бэкграунде, после чего давая определённые команды в любом(!) терминале принимать и отправлять сообщения. Аналогично, работа протекает и с музыкой. Также, активно используются хоткейсы для работы с mpd+mpc под иксами. Это хорошая идея, почему же тогда на каждом углу пропогандируют именно xmms? centericq и mpd работают по клиент-серверному механизму, что является очень удобным. Даже зайдя по ssh через некоторое время на свою домашнюю машину удалённо я могу продолжать как ни в чём не бывало управлять музыкой и джаббером (icq). Хотел бы очень услышать Ваше мнение на этот счёт. Я привёл в качестве системы управления музыкой mpd (music player daemon), так как мне не известны другие программы с клиент-серверной реализацией, работающие с музыкой. Также, centericq я привёл, так как это, насколько мне известно, единственная консольная программа, которая после некоторой доводки начинает работать в клиент-серверном режиме и при этом поддерживает шифрование на осонове персональных ключей (gpg).
Мне кажется, что следует упомянуть, что при прочих равных лучше отказаться от использования samba вообще в пользу других систем, ибо это очень не безопасно.
Насколько я понимаю, любой пользователь вскоре после установки BSD сталкивается со следующими проблемами:
1) Нужно обновить базовую систему (не до current, а только исправить ошибки в stable-ветке), но это не просто. В книгах об этом писать не принято.
2) Лучшие программы в своём роде и общая идеология (о многих программх, которые я использую я узнал чисто случано).
3) Как нормально работать с системой портов (упомяну, что fluxspace тянет за собой php и apache во FreeBSD согласно дефолтным флагам зависимостей). Как просмотреть список всех возможных опций для данного порта? Если я подключу или выключу те или иные опции в порте, то каков будет список всех зависимостей, раскрученных рекурсивно от устанавливаемого порта? И на забываем, что это не emerge. Можно писать свои скрипты, можно руками ходить по дереву портов и смотреть... Но как по уму? Именно как предполагалось разработчиками интересно было бы знать.
Обычно в книгах не упоминается об объёме проблем и ошибок того или иного ПО (операционной системы). А ведь можно было бы очень подробно описать с чем обычно приходится сталкиваться в реальной жизни и как это исправляется (это было бы антирекламой всего open-source и я бы мог по этому поводу написать ещё одно такое "письмо", подробно описывая всё, начиная от coredump'ов иксов и мёртвого зависания системы из-за софтварных ошибок, и кончая вечными падениями оконных менеджеров - всё что было за последние 2 года в моей практике, вплоть до ссылок на багрепорты).
Теперь напишу о грустном. К сожалению, консольные программы, хоть и консольные, потребляют зачастую огромную долю ресурсов, сколько не потребляют даже графические user-friendly-программы. Cвязано это, если не кривить душой, с тем, что многие программы, портированные в BSD- и Linux-системы, пишутся обычными энтузиастами, являющимися низкоквалифицированными программистами. В действительности, человек только думает, что знание одного синтаксиса языка си делает его квалифицированным программистом, способным написать что-то очень хорошее. Рассмотрим пресловутую centericq. На слабых компьютерах (в данный момент у меня, например, 233МГц) видно, как она подвисает в момент прихода сообщений. Видна задержка невооружённым глазом. Об этом же свидетельствует и top. Вопрос: что же потребляет ресурсы?? У меня centericq, запущенная в консоли, использует 8 мегабайт памяти(!) и заметную долю CPU. Бегло сделанный моим напарником анализ исходника centericq даёт ответ: эта программа циклически опрашивает оборудование: в итоге, время тратится на холостые циклы. Уже давно стало ясно, что программируют эти циклы не в самой программе (если по уму), а поручают данную функцию ядру системы: оно умное и догадывается вызвать centericq только тогда, когда прийдёт новое сообщение, пока же не пришло - centericq будет мирно покоиться оставив ресурсы системы другим программам. Я не удивлюсь, что доводка до ума centericq может привести к тому, что эта программа будет использовать в 10 раз меньше cpu и много менньший объём оперативной памяти. Аналогично, могу сказать и про mpd: он открывает массу локальных портов, которые потом долго не закрываются (вывод netstat), возможно, это происходит из-за того, что mpd слишком жёстко рвёт локальные соединения. Как итог, также потребляется большая часть памяти и cpu. В связи с упомянутыми проблемами мне всегда было интересно: что же используют сами разработчики для прослушивания музыки, для jabber'а и т.д.?
В виду всего вышесказанного добавлю, что я почти отказался от ВСЕХ gtk и qt приложений: из тех приложений, которые всё же используют qtk или qt на моей машине могу назвать только gimp, оперу и w3m. Со временем, предполагается, что и эти qt и gtk-based программы будут удалены.
Как видите, начав с чтения Вашей книги, я несколько удалился от исходной стези во всевозможные дебри и тонкости, но начало и основы идеологии были положены именно Вами (получается, являюсь Вашим учеником, таким образом :)). Было бы интересно услышать Ваше мнение по поводу того что я здесь напсал в этом "открытом письме".

spinore

P.S: по профессии занимаюсь квантовой механикой, более конкретно - квантовой томографией. Будучи уже под BSD-системами на своём компьютере, напсиал 2 научных статьи, магистерскую диссертацию (с использованием ТеХ, vim, ratpoison и NetBSD:
http://www.linux.org.ru/profile/spinore/vi...p?msgid=1394944) и выполнил ряд расчётов на MatLab (maxima и octave являются достойной альтернативной - собираюсь их изучить). Ещё раз спасибо Вам за Вашу ценную книгу!
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение Dark_Savant »

хоть и "специально для Алексея Федорчука", но прочитал с интересом и решил высказать таки свое мнение: очень порадовал ваш unix-way подход. как хорошо, что розовое опопсение (свинда, кеды, гномы, недоредакторы и прочий хлам) не всюду проникло *)
(spinore @ Jul 17 2006, в 04:50) писал(а):для этого достаточно запускать после логина приложения в нужном порядке или назначать вручную номер вновь открывшемуся окну, что делается легко с клавиатуры средставми ratpoison)

а раскладывать окна по воркспейсам, в соответствии с конфигом ratpoison не умеет ? таки ion позволяет еще сильней упростить взаимодействие с компьютером. заголовки окон там легко отключаются, а вот мышефилия в нем бесит, ага.

(spinore @ Jul 17 2006, в 04:50) писал(а):В виду всего вышесказанного ещё добавлю, что я почти отказался от ВСЕХ gtk и qt приложений: из тех приложений, которые всё же используют qtk или qt на моей машине могу назвать только gimp, оперу

аналогично 8)
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение alv »

2spinore
Во-первых, спасибо за отзыв - всегда приятно слышать, что твоя работа для кого-то оказалась полезной.

А по поводу затронутых Вами вопросов - с удовольствием пообсуждаю их (особенно стили работы в графической среде), только, если не возражаете, постепенно :)
Спасибо сказали:
Аватара пользователя
edoc_modnar
Бывший модератор
Сообщения: 1638
Статус: Форум больше не посещаю

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение edoc_modnar »

(alv @ Jul 17 2006, в 07:52) писал(а):А по поводу затронутых Вами вопросов - с удовольствием пообсуждаю их (особенно стили работы в графической среде), только, если не возражаете, постепенно smile.gif

Какой изящный способ сказать "спросонья ниасилил" :D. Шутю.
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

(spinore @ Jul 17 2006, в 04:50) писал(а):для этого достаточно запускать после логина приложения в нужном порядке или назначать вручную номер вновь открывшемуся окну, что делается легко с клавиатуры средставми ratpoison)
Dark_Savant писал(а):
17.07.2006 07:40

а раскладывать окна по воркспейсам, в соответствии с конфигом ratpoison не умеет ? таки ion позволяет еще сильней упростить взаимодействие с компьютером. заголовки окон там легко отключаются, а вот мышефилия в нем бесит, ага.


В принципе, жёстко в ratpoison такая возможность не вделана, в сам код.
Я пытался написать собственный конфиг, опираясь на существующие команды ratpoison для автосохранения и автовосстановления сессии. Реализация упёрлась в невозможность программными методами проконтролировать: открылось ли уже предыдущее окно, для которого я назначил определённый номер, чтобы запускать следующее приложение. (иначе номера перепутываются - ratpoison их присваивает уже физически появившимся окнам).


alv писал(а):
17.07.2006 07:52
А по поводу затронутых Вами вопросов - с удовольствием пообсуждаю их (особенно стили работы в графической среде), только, если не возражаете, постепенно :)


Хорошо :)
Спасибо сказали:
bsdlamer
Сообщения: 2
ОС: OpenBSD

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение bsdlamer »

а fvwm2 уже пробовал ?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение diesel »

Сам минимализма не люблю, но тем не менее автор письма очень точно заметил - в большинстве книг почему-то не описывается классическая связка mutt+procmail+fetchmail+(sendmail|postfix|exim|qmail) хотя было бы интересно и полезно, про замечательный плейер mpd+ ... в моем случае ncmpc тоже узнал не из книг - не могу вспомнить встречал ли вообще упоминания об этом чуде в бумажной литературе, тоже относительно centericq. Хотя об этих вещах стоит рассказывать. Это даже не минимализм, просто хорошие удобные инструменты.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение alv »

по поводу того, чего нет в книгах

Когда речь доходит до пользовательских приложений для открытых ОС (не важно, будь то Linux или любая BSD), коих - бессчетное множество, то оказывается, потому перед автором открывается два пути:
1) описать наиболее распространенные приложения для каждой задачи
2) описать те приложения, которыми автор пользуется сам (возможно, они окажутся малоизвестными или малопопулярными)

Потому что описать все - невозможно физически
Да и невозможно одному человеку одинаково хорошо знать несколько инструментов, предназначенных для одной задачи.
Тому, кто пользуется mutt+procmail+fetchmail+(sendmail|postfix|exim|qmail) , вряд ли интересно писать про KMail или почтового клиента Мозиллы, а тот, кто пользуется KMail, скорее всего, не знает mutt сотоварищи в достаточной степени.

Почему у меня и появилась мысль сочинять коллективные книги - по образцу знаменитой серии "Основания математики" Бурбаки.

Причем книги не стандартные, где понемногу говорится обо всем, а именно тематически целенаправленные. Например:

шеллы и классические юникс-утилиты
средства работы с текстами - от редакторов до программ верстки и веб-редакторов
средства коммуникаций - от почты до программ обмена сообщениями
и так далее - вариантов можно придумать массу

А нынче, похоже, появилась и реальная возможность такие книги издавать.

Предложения и соображения по этому поводу обсуждаются здесь: http://forum.posix.ru/viewtopic.php?id=239
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

bsdlamer писал(а):
17.07.2006 17:02
а fvwm2 уже пробовал ?


Нет. Вроде он не тру минималистичный.
Там есть поддержка мыши и декорации (предложения просто не использовать мне не нравятся)?
Спасибо сказали:
bsdlamer
Сообщения: 2
ОС: OpenBSD

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение bsdlamer »

spinore писал(а):
17.07.2006 20:31
bsdlamer писал(а):
17.07.2006 17:02

а fvwm2 уже пробовал ?


Нет. Вроде он не тру минималистичный.
Там есть поддержка мыши и декорации (предложения просто не использовать мне не нравятся)?


я не знаю что такое тру минималистичный и не знаю что ты подразумеваешь под "поддержка мыши", но знаю что с fvwm можно творить чудеса (про декорации молчу ибо делай как тебе угодно). Если тебе не нравятся всякие таскбары и айконменеджеры то можешь не использовать. fvwm очень мал и жрет мало ресурсов. Самоя главная проблема в fvwm это когда по началау от обилия возможностей даже не знаешь чего тебе хочется а чего нет.
смотри скриншоты тут
после того как открыл для себя этот WM, не пойму что клаcсного может быть в других :) подойдет и для минималистов и для тех кто рюшечки любит
Спасибо сказали:
stalkerg
Сообщения: 6

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение stalkerg »

Скажу своё мнение:
1. Об оконных менеджерах:
Всё же класический виндовый интерфейс очень неудобен когда много окон... но большое количество окон это проблемма програм. Когда я работал во fluxbox я тоже страдал от обилия этих самых окон... и переключение между ними иногда дело трудоёмкое. Но когда я перешёл в КДЕ я понял что очень многии проблемы решает граммотная организация программ - табы или аналоги. КДЕ и ГНОМ берут интегрированностью... когда сложные вещи можно делать очень просто(и быстро). Сейчас у меня 6 рабочих столов из которых я использую где то 5, а всё по тому, что: Окно консоли у меня одно... но в нём по 6 табов такая груперовка очень удачна... У меня один Kate в котором тоже открыт проект на 20 файлов у меня firefox.... вобщем если не плодить кучу окон на однотипные программы то выходет достаточно скромный набор в котором удобно перемещаться даже мышкой(хотя хот кеями быстрее).

2. Редакторы:
Хм... незнаю чего вы нашли в VIM и Emacs :) Для моих скромных потребностей в Kate есть всё... и автодополнение и анализаторы С/C++ Python... сворачивание блоков... ну а про подсветку я и неговорю.

И вобще... кроме того что бы программы были быстры, мало весели в оперативке, удобны они ИМХО должны быть ещё и красивыми.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение alv »

Согласен, табы - одно из величайших достижений программирующего человечества
у меня тоже так организовано (сейчас - в KDE):
один десктоп - одно окно в полноэкранном режиме, в каждом окне - табов сколько нужно
переключение между десктопами Alt+#, между табами, где можно - Alt+F#
И тоже окно каждой программы привязано к своему десктопу: 1-й - konsole, 2-й - конкверор, и так далее
а десктопов у меня 8-м, 7 заняты окнами, а восьмой - резервный, там у меня аська (то бишь licq), и чего еще по потребностям запускаю

2stalkerg
а у kate есть один серьезный (для меня) недостаток - нет простого способа писать макросы
Спасибо сказали:
stalkerg
Сообщения: 6

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение stalkerg »

Да... согласен привязки к интерпетированому языку типо того же Python нехватает но:
1. пока есть всё что надо и писать что то своё смысла пока нет.
2. думаю если надо возьму и напишу на C++ модуль.
Спасибо сказали:
sinai
Сообщения: 25
ОС: Debian GNU/Linux 4.0r0 Etch

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение sinai »

Респект Вам за дельное письмо.

Оно радует самим фактом того, что Вы, перейдя на unix-like систему, не только не были удручены сложностями при настройке системы - но наоборот, идеология unix-систем вдохновила Вас на то, чтобы критически, "со стороны" посмотреть на привычные большинству ползователей интерфейсы и отметить их недостатки для регулярного и подготволенного пользователя.

Особенно приятно слышать Вашу точку зрения в виду того печального стремления к виндуизации некоторых unix-овских (прежде всего - линуксовских) DE. Особенно грустны тенденции в Gnome, но и KDE тоже воспринимает ряд не самых лучших черт интерфейса офтопика, важных и нужных для тех, кто не пожелал сделать малейшего усилия для изучения работы на компьютере - и в результате "интуитивно" использует его самым неэффективным образом, занимаясь бесконечными перетаскиваниями мышки разных объектов или ожидая, когда вставленный в CD ROM диск заработает "сам". :-)

Я не пользователь BSD, хотя много хорошего слышал от друзей об этой системе. Для моих нужд и задач мне, наоборот, вполне хватает KDE + консоли (иногда в обратной последовательности). Более того, по необходимости приходится предлагать новичкам при установке Linux'а ставить и графическую DE (я обычно рекомендую KDE). Сегодня, например, одной сотруднице, занимающейся в основном офисными задачами, поставили Linux вместо Windows; завтра у нее первый день работы и сижу пишу ей краткое руководство (к сожалению, пока алгоритмического типа), как сделать то-то и то-то в KDE. Командная строка здесь стоит не на первом месте, увы.

Тем не менее, возможно, Вам будет небезынтересно услышать некоторые суждения о Вашей рецензии именно такого пользователя, придерживающегося некоего серединного, и во многом мейнстримного пути на Linux'e.

Таким образом, я получаю нужную мне масштабируемость при возрастании числа открытых окон: порописав верхний ряд клавиш (1,2,...=,\) для переключения окон (активации соответствующих окон по их номерам) я, нажимая только 2 клавиши (аль+нужная_клавиша_с_верхнего_ряда), получаю моментальный доступ к любому из 13(!) окон.


Все гениальное просто. Вы совершенно верно отметили, что циклические переходы по Alt-Tab начинают весьма утомлять при многих запущенных приложениях. И Вы правы в том, что опытные пользователи предпочитают держать разные приложения подолгу открытыми, только подгружая и выгружая из них файлы (редактор и браузер у меня бывают загружены по многу дней подряд). Наверное, при регулярной и типовой работе 95 процентов приложений используются постоянно и только 5 - время от времени! Поэтому идея повесить каждое приложение на функциональную клавишу - отличная! И иметь список (неважно, где - внизу или справа) - для того, чтобы знать, что у меня сейчас запущено (если клавиши всегда одни и те же).

Вы правы в том, что это можно сделать и в полновесных гражических DE, но тогда вся их неипользуемая навороченность напрасно тратит ресурсы системы. После Вашей статьи у меня появилось желание попробовать ion (его мне и прежде рекомендовали).

"Почему нет поддержки мыши"? Ответ: поддержка мыши отсутствует, чтобы не поощрять пользователя пользоваться неудобными инструментами для решения задач при работе с ratpoison. Мышь должна использоваться в тех приложениях и только тех, где она жизненно необходима. Идея в минимализме: "если я могу спокойно управлять системой с клавиатуры, то зачем мне "пятая нога" в виде дополнительной убогой поддержки управления с помощью неудобных и неэффективных инструментов? Это оправдано для новичков, обживающихся в мире юникса, но не оправдано для людей, разбирающихся в приложениях, и уже успевших не по одному разу прочитать документацию на тот же ratpoison от начала и до конца".


Согласен с тем, что мышь, как правило, неэффективное средство управления. Но не стоит ли вспомнить здесь поговорку "в малых дозах - лекарство, в больших - яд"? Разве Вам не встречались в сети сайты (не всегда грамотно организованные), на которых навигация с помощью клавишь менее удобна, чем мышью? Или выделение областей на изображении в графическом редакторе? Может быть, при спокойном отношении, мышь _иногда_ (или даже _изредка_) может быть вполне полезна...

Счиатю очень удачным то, что Вы порекомендовали использовать возможнсти командной строки вместо оболочек-визуализаторов напободие mc. Прошло 2 года моего пребывания в юникс-системах, и я не пользовался mc никогда для своих нужд, причём считаю это идеологически правильным.


А философски? Копирование / перемещение предполагает наличие источника / приемника. Двухпанельное представление может быть в ряде случаев весьма удобно. А собственно консольные операции при этом выполнять в консоли...

Общепризнанно лучшей почтовой программой признан mutt (смотрим официальную документацию на Gentoo Linux или NetBSD). В книгах не любят, тем не менее, описывать тонкости работы fetchmail/procmail/msmtp/mutt и, думаю, очень даже зря: ведь почтой пользуются все. Жалко, что во всех известных мне книгах нет нормальной документации по указанным программам за исключением слов "это выходит за рамки данной книги".


Да, это верно. Хороших книг по unix-системам мало. Знаете, в некоторых учебниках по математике раньше (не знаю, как сейчас), было понятие "МШ" - "мелкий шрифт" - когда даются дополнительные сведения, большинству не интересные, но для единиц очень важные.

Существут браузеры наподобие w3m с чудесными возможностями: истиная графика в исках в консоли! Но о таких программах также можно узнать только случайно. Хорошо было бы упомянуть о w3m в Вашей книге.


Будем смотреть :-) ...

Насколько я понимаю, любой пользователь вскоре после установки BSD сталкивается со следующими проблемами:

1) Нужно обновить базовую систему (не до current, а только исправить ошибки в stable-ветке), но это не просто. В книгах об этом писать не принято.


Странно, но до сих пор и в Linux-дистрибутивах, которые принято считать "попсовыми", рассчитанными на широкие круги пользователей, приходиться все же дорабатывать напильником даже элементарные вещи, которые востребованы хотя бы в элементарной офисной работе. В Mandriva 2006 - приходиться вручную править конфиг X для установки раскладки ru-typewriter (в которой работают большинство прошедших подготовку машинописи на специальных курсах секретарш) и качать отдельно djvu-библиотеку; в SuSE 10.1 - менять установленный по умолчанию переключатель раскладки Shift+Ctrl на Shift+Alt, потому что при первом варианте не работает выделение блока текста с помощью Shift+Ctrl+стрелака или +Home/End и т.д; а еще ставить MPlayer (иногда может понадобиться)... Я уж молчу про более серьезную возню с аппаратурой (сканеры - головная боль)... Есть еще что шлифовать.

Обычно в книгах не упоминается об объёме проблем и ошибок того или иного ПО (операционной системы). А ведь можно было бы очень подробно описать с чем обычно приходится сталкиваться в реальной жизни и как это исправляется (это было бы антирекламой всего open-source


А об этом надо писать не как антиреклама - а наоборот, как предупреждение о трудностях. Ведь многие трудности исправимы. Хорошо сказал один спец. по безопасности - "безопасность - не свойство, а процесс". Также и стабильность - это процесс постоянной работы над исправлением ошибок в нововедениях. Но без последних невозможен прогресс. И Linux-системы, например, за последние 3 года, что я их постоянно использую на десктопе, стали значительно лучше.

Теперь напишу о грустном. К сожалению, консольные программы, хоть и консольные, потребляют зачастую огромную долю ресурсов, сколько не потребляют даже графические user-friendly-программы.


Не забывайте, что Red Hat, Novell, Mandriva вкладывают немалые деньги в доработку софта. Не стоит пренебрегать и мейнстримом...

в данный момент у меня, например, 233МГц


Ух ты! А для меня 800МГц, куда сегодня Linux ставил для сотрудницы, казался медленным. Но ничего, тем не менее KDE 3.5 летает...
Спасибо сказали:
alumno
Сообщения: 25

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение alumno »

Пользуясь возможностью хотел бы поблагодарить Вас Алексей, за ваши книги и статьи. Спасибо и Muchas gracias! из далёкой Аргентины от ваших читателей.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение alv »

alumno писал(а):
18.07.2006 08:46
Пользуясь возможностью хотел бы поблагодарить Вас Алексей, за ваши книги и статьи. Спасибо и Muchas gracias! из далёкой Аргентины от ваших читателей.

Salud, compa~nero!
Спасибо и Вам - польщен
И рад - наших есть и в Аргентине!
Спасибо сказали:
Аватара пользователя
Dr.Linux
Сообщения: 272
Статус: Cтудент
ОС: Mandriva Linux 2007 Discovery

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение Dr.Linux »

Хотя открытое письмо адресовано специально для Алексея Федорчука напишу открытый ответ и я. Историю моего перехода на Linux можно прочитать здесь: http://drlinux.livejournal.com да и привел я эту ссылку, чтобы было понятнее почему я придерживаюсь именно таких взглядов и мнений (о unix-way и Linux), а не каких-либо иных.
Возвращаясь иногда к blackbox я чувствую как мне становится крайне неудобно. Дело же здесь вот в чём. kde является "реконструкцией" windows-подобного интерфейса. Blackbox же, всвою лчередь, не так далеко ушёл от этого самого интерфейса, если его рассмотреть очень внимательно.
Blackbox я не пользовался, но не могу согласиться с тем, что KDE является реконструкцией windows-подобного интерфейса. Хотя действительно разработчики KDE любят повторять девиз "как в Windows - лучше Windows", но на мой взгляд KDE скорее интегрированная среда для простого (читай офисного) пользователя. Тем более, что идеи, воплощенные в KDE, либо взяты из более ранних реализаций графических интерфейсов (Xerox, Next Step и др.), либо созданы самими разработчиками KDE (а потом уже разработчики Windows воруют некоторые идеи из KDE). Во-вторых, многие пользователи Windows (которым довелось уведедь и поработать с KDE) признают, что интегрированная среда KDE кажется им намного более удобной и гибкой, чем графический интерфейс Windows, и если бы была такая возможность, они бы (под Windows) пользовались бы KDE.
"Почему нет поддержки мыши"? Ответ: поддержка мыши отсутствует, чтобы не поощрять пользователя пользоваться неудобными инструментами для решения задач при работе с ratpoison. Мышь должна использоваться в тех приложениях и только тех, где она жизненно необходима. Идея в минимализме: "если я могу спокойно управлять системой с клавиатуры, то зачем мне "пятая нога" в виде дополнительной убогой поддержки управления с помощью неудобных и неэффективных инструментов? Это оправдано для новичков, обживающихся в мире юникса, но не оправдано для людей, разбирающихся в приложениях, и уже успевших не по одному разу прочитать документацию на тот же ratpoison от начала и до конца".
Т.К. сказанное здесь для ratpoison о использовании мыши применяется и далее по тексту отвечу здесь. Манипулятор мышь является уже достаточно стандартным средством управления (я еще во времена DOS мышкой под Нортоном пользовался), поэтому странно было бы от него отказываться. Кстати, я в свое время с радостью обнаружил, что в консоли Linux мышь поддерживается. Был счастлив!
Считаю очень удачным то, что Вы порекомендовали использовать возможнсти командной строки вместо оболочек-визуализаторов напободие mc. Прошло 2 года моего пребывания в юникс-системах, и я не пользовался mc никогда для своих нужд, причём считаю это идеологически правильным. Также, использование kde, blackbox и т. п. "мышовых" интерфейсных программ хорошо для первого освоения но не для постоянного использования.
А я еще в DOS Norton Commander пользовался, хотя идеологически правильным считалось использование команд в консоли. Но в Нортоне все-таки файловые операции нагляднее. Сейчас пользуюсь KDE + Konsole и такая связка меня устраивает.
Меня очень порадовал акцент в сторону использования zsh, а не bash. Наше общество пока не знает о zsh и живёт вчерашним днём, извиняюсь за грубость (я не вижу никаких премуществ bash перед zsh на данный момент окромя большей распространённости первого).
Почему пользуюсь bash? Привычка наверное, т.к. в принципе unix shell есть unix shell. Только функционал у каждого шелла разный: кому-то нравиться bash, кому-то zsh, кому-то вообще... Fish.
С удовольствием я читал Ваши заметки и по другим BSD-системам. У меня возникал вопрос: почему до сих пор все отмалчиваются, и никто из профессионалов не решится взять и написать разгромную статью по сравнению хотя бы Linux/Solaris/FreeBSD/OpenBSD/NetBSD? Это никому не выгодно, может быть, ибо покажет пользователям массу слабых сторон и кучу костылей и ошибок в дизайне этих систем (а это есть!)?
Если Вы имеете ввиду слабые стороны дизайна ОС Unix (а Linux, BSD это суть Unix) то Эрик Реймонд в своей замечательной книге "Искусство программирования для Unix" уже написал. И про создание Open Source программ Эрик написал в "Собор и Базар". Так что качество программ, написанных миллионами разработчиков и тестированных миллионами пользователей просто не может быть низким, особенно при том, что код проходит тщательный контроль. Плохой код Open Source разработчики не исправляют, а выбрасывают и заменяют. А если Вы обаружили ошибку в программе, то почему бы Вам не сообщить о ней разработчикам. Тем более, если у Вас есть возможность, можно и патч прислать, который исправит обнаруженную Вами ошибку.
Вот и все, кажется. И спасибо Вам за письмо.
Хау, я сказал Enter.
"Для теории нужны знания, для практики, сверх того, и умение".
А. Н. Крылов
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение t.t »

2spinore: скажите пожалуйста, а ту часть вашего открытого письма, которая посвящена ratpoison, у вас нет желания в виде статьи оформить? Если желание есть -- то, думаю, posix.ru этого ждёт (Алексей, что скажешь?)
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение alv »

t.t писал(а):
18.07.2006 15:12
2spinore: скажите пожалуйста, а ту часть вашего открытого письма, которая посвящена ratpoison, у вас нет желания в виде статьи оформить? Если желание есть -- то, думаю, posix.ru этого ждёт (Алексей, что скажешь?)

я скажу: да, нужно
только вот стыдно мне - статью Dark'а до сих пор не разместил, и статью Полячка не сапгрейдил
Звиняйте, хлопцы
Ну зашился с делами - разрываюсь между больницей, больной собакой, прокуратурой и книжкой, которую тоже нужно срочно
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

bsdlamer писал(а):
17.07.2006 20:55
spinore писал(а):
17.07.2006 20:31

bsdlamer писал(а):
17.07.2006 17:02

а fvwm2 уже пробовал ?


Нет. Вроде он не тру минималистичный.
Там есть поддержка мыши и декорации (предложения просто не использовать мне не нравятся)?


я не знаю что такое тру минималистичный и не знаю что ты подразумеваешь под "поддержка мыши", но знаю что с fvwm можно творить чудеса (про декорации молчу ибо делай как тебе угодно). Если тебе не нравятся всякие таскбары и айконменеджеры то можешь не использовать. fvwm очень мал и жрет мало ресурсов. Самоя главная проблема в fvwm это когда по началау от обилия возможностей даже не знаешь чего тебе хочется а чего нет.
смотри скриншоты тут
после того как открыл для себя этот WM, не пойму что клаcсного может быть в других :) подойдет и для минималистов и для тех кто рюшечки любит


Если руки дойдут, то посмотрю на него.
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

alv писал(а):
17.07.2006 23:05
Согласен, табы - одно из величайших достижений программирующего человечества
у меня тоже так организовано (сейчас - в KDE):
один десктоп - одно окно в полноэкранном режиме, в каждом окне - табов сколько нужно
переключение между десктопами Alt+#, между табами, где можно - Alt+F#
И тоже окно каждой программы привязано к своему десктопу: 1-й - konsole, 2-й - конкверор, и так далее
а десктопов у меня 8-м, 7 заняты окнами, а восьмой - резервный, там у меня аська (то бишь licq), и чего еще по потребностям запускаю

2stalkerg
а у kate есть один серьезный (для меня) недостаток - нет простого способа писать макросы


А вот за табы я отвечу.
Костыли это почти те же, но вид уже сбоку.
Заменяем слово "рабочий стол" словом "группа окон, объединённых табом" и задача свелась к уже рассмотренной. Поясняю для примера и ясности:

Есть 2 рабочих стола.
На 1-м рабочем столе одно окно - console, с 5-ю табами, в данный момент активен 3-й таб в окне.
На 2-м рабочем столе также только одно окно - konqueror.

Пусть физически у нас сейчас активен 2-й рабочий стол и konqueror. Мы хотим переключиться на 1-й рабочий стол в окно с console, но в самый 1-й таб.

Заметим, что для хоткеев используется обычно как минимум 2 клавиши (альт-что_то, например) на одно действие. Предположим, что переключение между рабочими столами происходит как альт+F#, а между табами - как аль+#.

Итак, поехали переключаться:
Мы находимся на 2-м столе в konqueror.
Нажимаем альт+F1.
Мы попали на 1-й рабочий стол, в окно с console, активен 3-й таб.
Нажимаем альт+1
Попали по месту назначения.

Счиатем итоги: 4 нажатых клавиши при условии, что помним на каком экране что открыто и в какой именно из 5-ти табов в console нужно переключиться. В 1-е я ещё поверю (за каждым столом закреплено только одно приложение), но в то, что я ещё помню в каком терминале что происходит... (а терминалы часто создаются новые и удаляются старые...). Если, одним словом, я что-то забыл - количество нажатых клавиш возрастает ещё в 2 раза (из-за перебирания попорядку всех табов в окне console). Если вдруг фокус на 1-м рабочем столе из-за чего-то переместился на root-image - ещё + 2 нажатия...

Сравниваем с моим методом: смотрим в список, видим название окна и его номер, нажимаем всего 2 клавиши: аль-номер, и оказываемся сразу в нужном месте.

Вот именно из-за этого я и сказал: должен быть список, причём с названиями и номерами окон.
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

sinai писал(а):
18.07.2006 00:48
Респект Вам за дельное письмо.

спасибо.

Таким образом, я получаю нужную мне масштабируемость при возрастании числа открытых окон: порописав верхний ряд клавиш (1,2,...=,\) для переключения окон (активации соответствующих окон по их номерам) я, нажимая только 2 клавиши (аль+нужная_клавиша_с_верхнего_ряда), получаю моментальный доступ к любому из 13(!) окон.



Согласен с тем, что мышь, как правило, неэффективное средство управления. Но не стоит ли вспомнить здесь поговорку "в малых дозах - лекарство, в больших - яд"? Разве Вам не встречались в сети сайты (не всегда грамотно организованные), на которых навигация с помощью клавишь менее удобна, чем мышью? Или выделение областей на изображении в графическом редакторе? Может быть, при спокойном отношении, мышь _иногда_ (или даже _изредка_) может быть вполне полезна...


Я уже упоминал, скажу ещё раз: я НЕ ПРОТИВ использования мыши в иксах. Я и сам её часто испоользую в приложениях: для копирования между консолями, в опере, линксе, гимпе... В общем, везде где пока не научился без неё обходиться. Я простив привлечения мыши для переключения между окнами и ресайза окон. Ну и против применения мыши для запуска приложений и т.д.

Счиатю очень удачным то, что Вы порекомендовали использовать возможнсти командной строки вместо оболочек-визуализаторов напободие mc. Прошло 2 года моего пребывания в юникс-системах, и я не пользовался mc никогда для своих нужд, причём считаю это идеологически правильным.


А философски? Копирование / перемещение предполагает наличие источника / приемника. Двухпанельное представление может быть в ряде случаев весьма удобно. А собственно консольные операции при этом выполнять в консоли...


$ /где/сидит/источник
$ cp что_копируем /куда/копируем/это
$ ~/

Я снова дома!
P.S: лично у меня в силу настроек zsh это делается именно так как я написал, дословно. Только приглашение строки командной другое :)
Я уверен, что это быстрее, чем
1) найдём путь в левом окошке.
2) найдём путь в правом окошке.
3) Молодцы. Побарабаем с маркером, поставим его куда надо.
4) нажмём F5.

P.P.S: меня мой очень хороший знакомый упрекал за неиспользование mc. Он говорил: "в mc можно быстро выделить инсертов кучу файлов и махом их скопировать..., а тебе прийдётся давать для каждого файла отдельную команду...". Потом я ему показал (zsh):

cp /где/всё/сидит/{раз_файл,два_файл,три_файл} /путь/куда

Причём после "cp /где/всё/сидит/{раз_файл," автодополнение работает :))
Он меня спрашивает: "а как ты догадался"? Я говорю "даже не знаю... просто первое, что пришло в голову. И это оказалось правдой".

Я ещё хочу сделать такую штуку в zsh: когда я нажимаю на таб и он мне снизу выводит список всех возможных вариантов, а бы хотел видеть во всех этих вариантах (во всех файлах из предлагаемого списка) подсвеченной ту букву, которая должна быть следующей, для уточнения имени файла, которое я в данный момент набираю. Представили мысленно как это выглядит? Предвкушаю, что это будет очень здорово :)

В общем. Нет. не фанат я mc.

Обычно в книгах не упоминается об объёме проблем и ошибок того или иного ПО (операционной системы). А ведь можно было бы очень подробно описать с чем обычно приходится сталкиваться в реальной жизни и как это исправляется (это было бы антирекламой всего open-source


А об этом надо писать не как антиреклама - а наоборот, как предупреждение о трудностях. Ведь многие трудности исправимы.


Любой здоровый человек после объяснения ему процедуры того как что "фиксится" покрутит пальцем у виска :) , назовёт всех нас больными людьми и будет прав.

в данный момент у меня, например, 233МГц


Ух ты! А для меня 800МГц, куда сегодня Linux ставил для сотрудницы, казался медленным. Но ничего, тем не менее KDE 3.5 летает...


Да... я до этого на другом компе был - там 600МГц было.. Так это был, как теперь кажется, просто суперкомпьютер со сверхмощностями :)
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

Так что качество программ, написанных миллионами разработчиков и тестированных миллионами пользователей просто не может быть низким, особенно при том, что код проходит тщательный контроль.

:)) Это вопиюще не верное утверждение. Из этих миллионов только малые-малые единицы ковыряются в исходниках. Если программу массово используют - отлавливают баги, а те нехотя их фиксят, добавляя новые. Майкрософт добивается стабильности тем, что много-много народа тестит её продукты. Если отнормировать на то, сколько продукт тестят, то оупенсорс в среднем пишут очень даже не плохо. Но по абсолюту макрософтовские программы - стандартные десктопные приложения - работают существенно стабильнее открытых и свободных. Я видел своими глазами и много-много раз.

Плохой код Open Source разработчики не исправляют, а выбрасывают и заменяют.

Ну почему же? К нему приделывают "костыли", ибо перерабоать проект с ошибкой дизайна - это огромный труд. Команда же маленькая. На лоре уже упоминали о том, что netgraph - это косталь в BSD как и демон natd (ибо нат должен делать в ядре, чтоб было быстро). portupgrade - просто недоведённый до ума проект с кучей внутренних противоречий.

А если Вы обаружили ошибку в программе, то почему бы Вам не сообщить о ней разработчикам.


Знаете, как privoxy пишут? лучше бы вам в его сорс не смотреть :))
Мы с другом пофиксили сорс, у нас заработало. Багрепорт написали. До сих пор фиксят :))
Не один месяц уже прошёл.

В нетбсд wsvt25m и colors в тру консоли пофиксили только в каррент. Вот, сидели разбирались, как же нам не обновляясь до каррент пофиксить это в stable (проблеме 4 года, кажись уже). За вечер пофиксили :) Теперь у меня многие приложения в обычной консоли стали цветными :) Цена - вечер труда очень уважаемого и квалифицированного человека (ясно дело, не меня).

Вот и все, кажется. И спасибо Вам за письмо.

И Вам спасибо.

t.t писал(а):
18.07.2006 15:12
2spinore: скажите пожалуйста, а ту часть вашего открытого письма, которая посвящена ratpoison, у вас нет желания в виде статьи оформить? Если желание есть -- то, думаю, posix.ru этого ждёт (Алексей, что скажешь?)


Вообще - да, хорошая идея. Будет время - сделаю. Ранее у меня были мысли перевести официальный сайт ratpoison на русский язык.
Спасибо сказали:
snake
Бывший модератор
Сообщения: 677

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение snake »

(spinore @ Jul 19 2006, в 07:25) писал(а):Майкрософт добивается стабильности тем, что много-много народа тестит её продукты. Если отнормировать на то, сколько продукт тестят

Крайне не согласен с этим утверждением. Боле-менее человеческая стабильность в Майкрософте появилось только с NT'шным ядром, а оно изначально разрабатывалось с другими целями и другими методами, чем Win32 Причем, чем больше фичь изначально присутствовавших в десктопных виндах (а именно их и тестировало много-много народа ) попадало в линейку NT, тем меньше в ней становилось стабильности.

И потом, если единственный способ достижения маломальской безглючности в работе, это оттестировать программу во всех возможных условиях, то это как раз есть признак неправильного изначального проектирования.
В реальности все не так, как на самом деле...
JabberID: zmeyk@jabber.ru
Спасибо сказали:
snake
Бывший модератор
Сообщения: 677

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение snake »

(spinore @ Jul 19 2006, в 07:25) писал(а):Но по абсолюту макрософтовские программы - стандартные десктопные приложения - работают существенно стабильнее открытых и свободных. Я видел своими глазами и много-много раз.

Во-первых, я видел неединожды много примеров и поттверждающих Ваше высказывание и совершенно опровергающих. -- Как Вам пример с *.doc файлом вешающим любые ворды от 97 до XP включительно, но прекрасно открывающимся в OO-райтере?
Во-вторых, не открою америки, если скажу, что стиль работы диктуемый т.н. "стандартными десктопными приложениями" изначально чужд *nix системам. Так что ожидать, что заменяя M$ офис на OOO, Explorer на Конкверер, IE на Мозиллу, ВинРар на какой-нить FileRoller или Arc, можно добиться повышения эффективности работы, по меньшей мере наивно. Эффективность не в названиях програм, и даже не в их производителе, она в методах работы.
Ну и в третьих, копия как правило хуже оригинала. А еще прибавьте к этому закрытость микрософтовских форматов данных и следующию из этого фундаментальную сложность их воспроизведения в отрытых программах.
В реальности все не так, как на самом деле...
JabberID: zmeyk@jabber.ru
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

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


Из всех известных мне программ, начиная с gcc, тестирование народом шло как неотъемлемая компонента доводки программы до ума. Конечно, чем лучше дизайн, тем меньше ошибок находят. Я к тому, что довольно важно как правильное проектирование, так и тестировка.

С остальным, в целом, согласен.
Спасибо сказали:
Аватара пользователя
hron
Сообщения: 32
ОС: Debian Etch

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение hron »

Нормальное грамотное письмо. Сам начинал с этой книги. Критику считаю уместной в отношении к книги. Мелодраматическое начало - это наверное меня и привлекло к данной книге в книжном магазине

К Алексею Федорчуку:
Алексей, планируются ли следующие издания "FreeBSD: установка, настройка, использование" ?
Скажите, если не секрет, сколько времени занял этот ТРУД? Как долго велась работа над книгой?
Уже больше года как не работает счетчик моих сообщений
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение alv »

hron писал(а):
20.07.2006 19:14
Нормальное грамотное письмо. Сам начинал с этой книги. Критику считаю уместной в отношении к книги. Мелодраматическое начало - это наверное меня и привлекло к данной книге в книжном магазине

сразу для определенности - я не пишу:
документацию
обзоры
хатуи
...
и еще много чего

я пишу беллетристику - о том, о чем мне интересно
это гарантия того, что все мной написанное интересно по крайней мере одному человеку в мире - мне, любимому :)
поскольку я вряд ли так уж уникален - вполне возможно, что это будет и инетерсно еще кому-то
ну а если от моей беллетристики кому-то еще и польза - так я рад вдвойне
hron писал(а):
20.07.2006 19:14
К Алексею Федорчуку:
Алексей, планируются ли следующие издания "FreeBSD: установка, настройка, использование" ?
Скажите, если не секрет, сколько времени занял этот ТРУД? Как долго велась работа над книгой?

второго издания не будет:
FreeBSD изменилась, и я изменился тоже (не смотря на свои преклонные годы :) )
м.б., ЕБЖ, будет книга на ту же тему - но она будет совсем другая
а ту книгу я написал на одном дыхании (почти): первую половину - за месяц, зато вторую (и доводку до печати) - мучил почти год
:)
Спасибо сказали:
thekonst
Сообщения: 1

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение thekonst »

Уважаемый Олег,

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

> В действительности, человек только думает, что знание одного синтаксиса
> языка си делает его квалифицированным программистом, способным
> написать что-то очень хорошее.

Очевидно, что приведя в пример «пресловутую centericq», в роли специалиста низкой квалификации вы имели в виду меня. Давайте для начала представимся друг другу с профессиональной точки зрения. Мое резюме вы можете найти по адресу http://thekonst.net/cv/, я его ни от кого не скрываю. У меня за плечами не один десяток самых разнообразных проектов и публикаций на специальные темы. Разные фирмы, командировки, клиенты. Всего около 8 лет реального опыта разработки. С компьютерами опыта 17 где-то лет в общем счете.

Кстати сказать, только знание языка «Си» не поможет вам раздолбать какую-то фичу закрытого протокола. Нужно еще иметь некоторые навыки в network programming как минимум.

> Бегло сделанный моим напарником анализ исходника centericq даёт
> ответ: эта программа циклически опрашивает оборудование: в
> итоге, время тратится на холостые циклы.

Ваш напарник дилетант. Он определенно не прошел бы собеседование на работу, если бы я его принимал. Дело в том, что бросив самый беглый взгляд, даже если вы знаете только синтаксис языка «Си», вы найдете метод icqface::mainloop(), в котором при помощи обращения к методу getsockets() в классах, наследованных от abstracthook, собираются идентификаторы всех сокетов, от всех подключенных в данный момент протоколов. После этого по ним делается select(). Я вообще слабо представляю себе циклическое опрашивание сокетов всех подключенных протоколов, учитывая, что соединение с одним сервером IM может открывать по нескольку сокетов одновременно.

Впрочем, не только ваш напарник. Вы тоже дилетант. В частности, здесь – вообще улет:

> оручают данную функцию ядру системы: оно умное и догадывается
> вызвать centericq только тогда, когда прийдёт новое сообщение, пока
> же не пришло - centericq будет мирно покоиться оставив ресурсы
> системы другим программам.

Вы себе представляете системный вызов (ядра?), который будет ждать прихода сообщения по icq? Вы же бред написали. Впрочем, для человека, освоившего два года назад операционную систему, это не удивительно.

Только в следующий раз, когда захочется написать на техническую тему, пишите, наверное, стихи.

С уважением,
Конст (автор centericq)
Спасибо сказали:
spinore
Сообщения: 17
ОС: NetBSD 3.0 i386

Re: Специально для Алексея Федорчука (открытое письмо)

Сообщение spinore »

Здравствуйте, Константин.

thekonst писал(а):
27.07.2006 02:46
Товарищ мне дал ссылку на ваш опус.


Это очень хорошо, хотя я и не ожидал вас здесь увидеть.
В своё время я не решился писать багрепорт по centericq в связи с тем, что толку, как обычно, это даёт мало. Ибо open source, и никто ни за что не отвечает - "не нравится - не используйте".

Очевидно, что приведя в пример «пресловутую centericq», в роли специалиста низкой квалификации вы имели в виду меня.


Да, именно так.

Давайте для начала представимся друг другу с профессиональной точки зрения. Мое резюме вы можете найти по адресу http://thekonst.net/cv/, я его ни от кого не скрываю. У меня за плечами не один десяток самых разнообразных проектов и публикаций на специальные темы. Разные фирмы, командировки, клиенты. Всего около 8 лет реального опыта разработки. С компьютерами опыта 17 где-то лет в общем счете.


Это всё очень хорошо. Возможно, что centericq является не самым удачным из ваших проектов. Я не являюсь программистом. На мою долю выпало только использование программ на уровне обычного пользователя. Остальные подробности обо мне уже приведены в <<этом опусе>>.

Ваш напарник дилетант. Он определенно не прошел бы собеседование на работу, если бы я его принимал. Дело в том, что бросив самый беглый взгляд, даже если вы знаете только синтаксис языка «Си», вы найдете метод icqface::mainloop(), в котором при помощи обращения к методу getsockets() в классах, наследованных от abstracthook, собираются идентификаторы всех сокетов, от всех подключенных в данный момент протоколов. После этого по ним делается select(). Я вообще слабо представляю себе циклическое опрашивание сокетов всех подключенных протоколов, учитывая, что соединение с одним сервером IM может открывать по нескольку сокетов одновременно.


Скажем так, в своё время он писал TCP/IP стек под DOS, хотя и неокончил этот проект.
У него были идеи написать свой icq-клиент, учитывая ошибки всех предыдущих.
Я обязательно передам ему ссылку на ваш пост и попрошу его прокомментировать.
Также, думаю, для сообщества в целом было бы полезно взять какой-либо из неудачных консольных проектов и, разобрав по полчкам все ошибки, начиная с ошибок дизайна и кончая имплементационными, написать книгу "о том, как не надо писать программы".

По поводу:

"собираются идентификаторы всех сокетов, от всех подключенных в данный момент протоколов. После этого по ним делается select(). Я вообще слабо представляю себе циклическое опрашивание сокетов всех подключенных протоколов, учитывая, что соединение с одним сервером IM может открывать по нескольку сокетов одновременно".

Я не специалист, но, кажется, здесь-то и сидит ваша квалификация. Знаете, мне говорили, что за использование select-механизмов надо сразу записывать в "как программисты не состоявшихся". Так сокеты вы всё-таки циклически опрашиваете? :) С нетерпением жду комментария специалиста на ваши слова. Через несколько дней он будет иметь возможность написать всё что думает по этому поводу :)))

Впрочем, не только ваш напарник. Вы тоже дилетант. В частности, здесь – вообще улет:

> оручают данную функцию ядру системы: оно умное и догадывается
> вызвать centericq только тогда, когда прийдёт новое сообщение, пока
> же не пришло - centericq будет мирно покоиться оставив ресурсы
> системы другим программам.


В программировании я не разбираюсь - это правда.
Также, я мог ошибиться и исказить информацию, передавая её из чужих уст.
Но дело не в этом. Всю эпопею с centericq инициировал я. Я её рассматриваю как пользователь. И как обычный пользователь скажу вам, что у неё есть существенные недостатки, я бы даже сказал, безобразные. Большие плюсы centericq состоят в том, что это -
1) единственный консольный клиент, умеющий худо-бедно работать с gpg-ключами
и
2) худо-бедно позволяющей, пусть даже через костыли, реализовать клиент-серверный механизм работы.
Пока какой-либо другой клиент не приобретёт данную возможность, я буду вынужден продолжать пользоваться centericq.

Теперь о самых плохих сторонах вашего проекта:

1-й БАГ) centericq требует неадекватно много своей функциональности ресурсов.
Требовательность к ресурсам и своё неумение писать программы всегда можно вуалировать под то, что на фоне современных мощных компьютеров глазом это не заметно. Ранее, когда компьютеры были не столь мощными, программы, написанные неоптимально, вообще не стали бы использовать - всё б тормозило. Сейчас же программисты пишут всё менее и менее оптимальные программы, всё менее и менее качественные. В своё время Дональд Кнут предлагал по доллару каждому, кто найдёт у него ошибку в программе. Вы готовы платить хотя бы по доллару за каждый баг в centericq? Итак, centericq жрёт безобразно много ресурсов. У меня слабая машина: 233МГц, 196Мб оперативной памяти. Однако, тормоза centericq я замечал и когда сидел на более мощном компьютере (600 МГц). Имеется в виду, что у меня хоть и слабый компьютер, но он слабый не до такой степени, чтобы на нём тормозил какой-либо консольный(!) icq-клиент. Конечно, это далеко не всегда наблюдается... но периодически я вижу ситуацию, как перед каждым принятием нового сообщения centericq "подвисает". Возможно, частично данное подвисание объясняется тормозами графического терминала с прозрачностью, однако, запуск top'а показывает, что centericq находится среди 1-ых мест.

А ещё у меня вопрос по использованию памяти.
В данный момент по результатам top вижу: запущено 2 centericq (почему две - объясню позже - см. Ваш Баг "4"), и про каждую из них top говорит: RES=6800K, SIZE=3896K. Мне всегда было интересно: если centericq в данный момент ничего не делает, окромя как обмененивается пакетами с сервером, подтверждая мой онлайн, то зачем ей отожирать 7(!) мегабайт?

2-й БАГ) Отсутствие реализации клиент-серверного механизма
Возможно, вы об этом подумали, но было поздно. Знакомимся с багом в дизайне. Хотя вы и сделали поддержку работы в режиме, близком к серверному, однако "не осилили" довести это до ума. У centericq есть очень мало опций для контроля с терминала: кроме основных опций, наподобие ручного задания директории с конфигами, centericq умеет только посылать сообщения и менять статус. Про то, как она отсылает их - смотрите баг "9".

Очень удобно работать с программами в клиент-серверном режиме.
Зависли или начали тормозить у меня иксы? Ничего страшного, переключился в любую текстовую консоль и продолжил работать: принимать и отправлять сообщения по аське (centericq+необходимые_для_этого_костыли), переключать музыку (mpd+mpc), работать с почтой (mutt)... Дальше можно пускать ввод/вывод программ через pipe на grep, sed и т. д. Удобным не кажется? В естественном виде клиент-серверный режим в centericq недоступен. Ибо не предполагался. Да, я ненавижу курсес. Ненавижу интерфейсы. Я сижу в командной строке, но хочу тут же, никуда не_переключаясь, а всего лишь дав_команду, узнать: кто сейчас находится в онлайн, хочу вывести в командную строку не прочитанные новые сообщения, хочу вывести хистори какого-либо юзера, хочу посмотреть статус отправки сообщения (включен ли gpg и ssl при общении с конкретным пользователем)... список можно продолжать и продолжать... Резюме я уже сказал: клиент-серверного механизма не встроено, от него есть только 2 "зачатка": возможность поменять статус из любой консоли и возможность отправить сообщение из любой консоли. Однако, есть встроенный механизм написания своих функций через файл external. Данная возможность весьма похвальна как допвозможность писать свои, уникальные и специфические функции. Но использование её для реализации вышеозначенных базовых функций работы (приём сообщений в терминал, вывод онлайн-списка пользователей... и т.д.) являются костылями. И, благодаря вам, все кто любит работать с терминалом, вынуждены использовать для таких целей external. О тех ужасах - "как это происходит" и что для этого нужно прописать в external, для примера, я описал здесь: http://www.linux.org.ru/profile/spinore/vi...p?msgid=1394944 Ознакомьтесь с размером необходимых костылей только для реализации возможности принимать сообщения в терминал... (для реализации каждой следующей функции пишется по костылю такого же размера). О сопутствующем баге, который будет сопровождать пользователя при написании костылей для насущных возможностей см. баг "7".

3-й БАГ) Отсутствие поддержки нескольких аккаунтов
Да, это очень не приятно, что такоЙ поддержки нет. Для каждого аккаунта запускаем отдельный терминал, а в нём - свою centericq.

4-й БАГ) Приятности при работе с транспортом
Я готов признать, что вы не успели сделать возможность полноценно поддерживать JIT (jabber icq transport). Но дело даже не в этом. Преположим, у меня есть джаббер-аккаунт. Также, в этом аккаунте зарегистрирован JIT. Не всегда, когда я захожу в джаббер, я хочу законнекчивать транспорт. Например, я хочу выйти в онлайн только в джаббере. Данный вопрос, как не сложно догадаться, решается следующим костылём: заводим отдельный джаббер-аккаунт, который будет использоваться только для транспорта - только тогда можно разъединить статусы в jabber и icq. (Следует заметить, что данная проблема имеется не только у centericq, но и у других клиентов, но в них есть хотя бы кнопка "on" и "off" для транспорта).

5-й БАГ) Мне часто нравится сидеть в статусе "Free for chat". Вы помните какой там status message? Господин vbirf@jabber.ru уже заколебал меня сообщениями "не прочь поботать". А мне нечего ему ответить, окромя того, что "в centericq нет возможности, не ковыряясь в сорсе, изменить status message". Поправьте меня если я не прав. Я не нашёл места, где это меняется через существующие интерфейсы.

6-й БАГ) Подождите минуточку! Сейчас я схожу в соседнюю комнату к другу - он psi'ёй пользуется - я там от него законнекчусь, и авторизую Вас. А потом вернусь, и мы продолжим общаться в centericq. Все всё поняли? У меня нет других клиентов в данный момент на компьютере. Авторизацию в jabber я отправить не могу. Если же пользователь у меня запрашивает авторизацию, и если centericq не проглючт в данный момент, то, словив птицу удачи я отвечаю на запрос авторизации, посылая её... но обычно не везёт. Птица удачи пролетает мимо и приходится снова писать человеку: направь мне запрос на авторизацию, сам я выслать не могу... Но птица опять пролетает, авторизация ему почему-то не приходит... Что ж, либо специально запускаем для этих целей другой клиент jabber'а, либо идём к соседу в комнате... У меня нет слов.

7-й БАГ) Ставим серию экспериментов по определению формата конфига - иначе нельзя
Должен отметить, справедливости ради, что возможности, задокументированные в мануале по centericq, описаны очень понятно. Это одна из лучших по документации программ из всех, какие я когда-либо встречал в UNIX-подобных системах. Но и здесь не обошлось без недостатков. Предположим, я всё же решился на реализацию костылей для осуществления клиент-серверного режима работы в centericq. В файле ~/.centericq/юзер/info 52 строчки. Каждая из них что-то означает. Значение скольких из этих строчек вы описали в документации? Это очень умно: менять опции соединения каждый раз и смотреть "как это отразилось на файле info". Одним словом, поизвращавшись в меру, я так и не определил как centericq узнаёт, использовать ли gpg для отправки сообщения произвольному пользователю в jabber'е. Как мне показалось, centericq не каждый раз перечитывает файл info перед отправкой. Изменение же сторонними способами файла info есть единственная возможность управлять с произвольной консоли параметрами (включить gpg или нет) отправляемого пользователю сообщения.

8-й БАГ) Бедные мои глаза
centericq знает белый цвет, но не знает серый. Как бы смешно это ни казалось :) Я не говорю уже об указании RGB для всех отображаемых элементов... Конечно, если использовать её в клиент-серверном режиме - это не нужно. Однако бывают случаи, когда и curses-интерфейсом приходится пользоваться...

9-й БАГ) О чём задумались в момент отправки сообщения?
Я не первый пишу об этом - мне приходилось видеть вопросы и от других людей: "почему при отправке сообщения с терминала centericq долго думает каждый раз, а не отправляет сообщение сразу же, как и в случае с курсес-интерфейсом?" Имеется в виду этот механизм:
$ echo "привет" |centericq -s msg -p jab -t кому_то@jabber.ru
Действительно сокеты (или что там ещё) циклически опрашиваем? Ждём пока цикл сойдётся? В современных методах программирования и современных механизмах разбираетесь? Или также и пишем как 17-ть лет назад? :)

P.S: большой вам привет от всех русскоязычных пользователей centericq, которая по праву является самым популярным консольным jabber- и icq-клиентом, лучшем чем остальные...
P.P.S: ... что не убивает в ней русскую душу: делали как положено - made in russia - "тяп, ляп, и на сковородку". Скажите честно: а что, сразу писать по уму, "на века" - это не принято? Живём одним днём всегда?

Вы себе представляете системный вызов (ядра?), который будет ждать прихода сообщения по icq? Вы же бред написали. Впрочем, для человека, освоившего два года назад операционную систему, это не удивительно.


Я не специалсит, но выразился приблизительно, как мог. Думаю, идея ясна. Вы мне что хотите сказать? Что centericq сама с сетью работает? Я-то дурак думал, что со всем оборудованием на компьютере, включая сетевую, работает ядро, остальные же программы используют только те или иные интерфейсы к ядру.

Кстати, по поводу системы: передайте пламенный привет мэйнтейнерам centericq в NetBSD - они так умело её портировали, что при установке через pkgsrc, когда происходит конфигурирование, centerciq клятвенно утверждает, что gpg в системе не обнаружено. А я всё никак поверить ей не могу :)

Только в следующий раз, когда захочется написать на техническую тему, пишите, наверное, стихи.


Пользователи centericq с нетерпением ждут Ваших комментариев на вышериведённые ляпы в centericq. После этого они сами решат - кому писать стихи, а кого можно посчитать несостоявшимся программистом.

С уважением, пользователь centericq.
Спасибо сказали: