Материал из Tkabber Wiki
Ткаббер ЧаВо разделился на несколько статей. Здесь рассматриваются вопросы разного (подчас совершенно странного) характера. Для удобства даны ссылки на другие тематические страницы ЧаВо.
Содержание
- 1 Всякая всячина
- 2 Внешний вид и звук
- 3 Глюки, возникающие в процессе работы
- 4 А как мне...?
Всякая всячина
Что такое...?
Ростер
Ответ: Ростер (по-английски roster) — это "Список контактов". В версиях Ткаббера начиная с 0.9.8 термин "ростер" исчез, сбивая с толку привыкших к англизированному названию ветеранов Jabber.
Ресурс
При логине в закладке Учётная запись можно наблюдать поле Ресурс, в котором уже написано что-то вроде "Tkabber". Что это означает? Согласно протоколу Jabber, к одной и той же учётной записи (аккаунту) можно подключаться неограниченное количество раз, при условии, что каждый раз мы указываем новый ресурс. Если мы коннектимся из разных программ, они выставляют ресурс автоматически (например, Psi, JAJC, Bombus). Кроме того, это поле можно редактировать, указав, к примеру, своё местоположение (Home, Work, пляж, Хижина дяди Тома).
Приоритет
На той же вкладке подключения есть поле Приоритет, где уже стоит некоторое значение. Приоритет нам становится нужен, когда мы параллельно открываем несколько подключений к одному и тому же аккаунту из нескольких джаббер-клиентов. Например, один может быть подключен из дома, а другой — с работы; это могут быть и несколько копий Ткаббера, работающих "рядом", например, "рабочая" и запущенная для тестирования.
Как же это влияет на дальнейшую работу? Дело в том, что XMPP-сервер отсылает сообщения, приходящие на "голый" ("bare") JID (то есть JID без реусрса), тому подключению, которое имеет максимальный приоритет.
Приоритет может принимать значения в диапазоне -128...127 (включительно), при
этом сообщения на подключение с отрицательным приоритетом не доставляются
никогда, а вот случай равных неотрицательных приоритетов у нескольких
подключений более интересен: согласно
rfc3921 в случае совпадения
приоритетов сервер волен выбирать
алгоритм доставки,
гарантируется лишь, что сообщение будет доставлено (то есть как минимум одному
подключению). ejabberd, под управлением которого
работают jabber.ru
и jabber.org
, в таком случае доставляет сообщение всем
подключениям.
В настройках AutoAway Ткаббера есть опция
plugins::autoaway::options(drop_priority)
Если она установлена в 1, то при переходе Ткаббера в автоэвей приоритет сбрасывается до нуля. Настройка полезна для случая перемещения пользователя между несколькими запущенными Ткабберами, которые будут попеременно уходить в автоэвей и выходить из него. Например, когда мы приезжаем с работы домой, то активным становится домашний клиент, и все сообщения, отправленные на наш "голый" JID, начнут доставляться на домашнюю машину, потому что у неё приоритет поднялся, как только вы за неё уселись.
Это довольно удобно, как нетрудно догадаться, но имеется небольшой недостаток: что происходит в случае, когда оба приоритета равны? Вы добираетесь с работы домой час, а тайм-аут для перехода в эвей — от силы пять-десять минут, и всё это время сообщения будут приходить куда их взбрендит отправить серверу. О том, что может ему взбрендить, читайте выше.
Консоль Ткаббера
"Консоль Ткаббера" на самом деле является отладочным средством виндовых версий интерпретатора Tcl/Tk (wish), поэтому вызвать её можно только в Ткаббере, запущенном под управлением Windows (про другие ОС см. ниже). Находится она в главном меню: Помощь → Показать консоль.
Командная строка, которую вы получаете, открыв консоль, позволяет напрямую управлять интерпретатором, выполняющим код Ткаббера (!), а также пользоваться широчайшими возможностями, предоставляемыми Tcl для интроспекции выполняемых программ. Обычно именно этого и хотят от вас те, кто предлагает вам открыть консоль Ткаббера. Пара примеров:
Узнать, загрузил ли Ткаббер пакет TkImg:
% package present Img
Выяснить список доступных виндовых кодировок:
% lsearch -all -inline -glob [encoding names] cp125*
Кроме отладки консоль может служить и для многих других издевательств над Ткаббером, о некоторых из которых можно прочитать здесь. Естественно, пользу приносить консоль будет лишь тем, кто ею пользоваться умеет, то есть вам надо иметь в голове некоторый ликбезный минимум по Tcl/Tk.
В юниксовых версиях интерпретатора Tcl/Tk встроенной консоли нет. Нет, соответственно, и описанного выше пункта главного меню Ткаббера. Сей "перекос" объясняется техническими и историческими причинами, изложенными здесь (по-английски), а отладка Ткаббера в "иксах" ничуть не сложнее, чем в Windows, просто здесь следует применять другое средство — tkcon.
Tkcon, в отличие от большинства лекарств, допускает как "внутреннее", так и "внешнее" применение на Ткаббере:
- Можно запустить Ткаббер "из-под" tkcon. В этом случае последний будет доступен примерно в таком же виде, что и консоль виндового wish. Об этом методе читайте в соответствующем разделе официальной документации.
- Можно запустить tkcon отдельно, а затем "прицепиться" из него к работающей копии Ткаббера. Для этого в tkcon активируйте пункт меню Console → Attach to... → Interpreter, и в появившемся подменю, озаглавленном "Foreign Interpreters", выберите "tkabber". (Также там могут быть "tkabber #2", "tkabber #3" и т.д. — это, соответственно, вторая, третья и прочие запущенные копии Ткаббера.)
Внимание: виндовая "консоль Ткаббера" имеет один подводный камень: активация пункта её главного меню File → Выход вызывает завершение управляемого консолью интерпретатора (то есть самого Ткаббера). Поэтому закрывайте консоль либо "крестиком", либо повторно активировав соответствующий пункт главного меню Ткаббера. Также, если вам приспичило учинить "хАкЕрСк0е" завершение работы Ткаббера, пишите в консоли "quit", а не "exit", чтобы работа Ткаббера завершилась корректно.
Примечание: ещё одним свойством консоли виндового wish является то, что
стандартные потоки ввода/вывода этого процесса по умолчанию "направлены в
консоль". Поэтому открыв консоль, иногда можно увидеть там предупреждения (к
примеру, возникающие при загрузке пакетов Tcl/Tk.) Также туда попадает любой
отладочный вывод, если вы, скажем, установили в конфиге переменную
debug_lvls
, но не
перенаправили стандартные потоки ввода/вывода в файл
или не
воспользовались плагином debug.
Сделать: написать статью про tkcon, tkinspect, send, conn, и дать ссылку на неё отсюда
Репозиторий teo
Репозиторий teo это репозиторий неофициальных пакетов для Debian GNU/Linux, содержащий готовые сборки нескольких Tcl-пакетов, расширяющих возможности Ткаббера, под текущую стабильную версию этой ОС.
URL репозитория: http://people.debian.org/~sgolovan/debian/
Вписывать в /etc/apt/sources.list нужно так:
# Lenny:
deb http://people.debian.org/~sgolovan/debian/ lenny main
deb-src http://people.debian.org/~sgolovan/debian/ lenny main
# Etch:
deb http://people.debian.org/~sgolovan/debian/ etch main
deb-src http://people.debian.org/~sgolovan/debian/ etch main
Имейте в виду, что не все пакеты могуть быть доступны для "предыдущего стабильного" дистрибутива. На данный момент (9 января 2007) наибольшее количество пакетов доступно для Etch.
Разное
...а мне ИГРАТЬ охота!!!
Вопрос: Слышал я, что в Ткаббере можно играть в шахматы, шашки и т.д. Где мне найти соперников, а то из друзей никто не играет?
Ответ: Ещё как можно. Для начала вам надо установить игровые
плагины. А если не с кем играть, добро пожаловать в
xmpp:tkabber-games@conference.jabber.ru
— чем больше народу будет там
тусоваться, тем больше шансов найти себе соперника по силам.
Владелец комнаты xmpp:agnessa@jabber.ru
, по всем вопросам касательно этой
комнаты обращайтесь к ней.
Старые версии Ткаббера и плагинов
Вопрос: Где я могу скачать сабж?
Ответ: На сайте jabberstudio.org имеются все стабильные версии Ткаббера и плагинов, начиная с 0.9.4.
Не нашли там? Поищите здесь.
Работает ли Ткаббер на КПК?
Вопрос: Можно ли запустить Ткаббер на КПК?
Короткий ответ: Запустить можно. Работать нельзя.
Длинный ответ: Прочитайте эту заметку.
Почему Ткаббер написан именно на Tcl/Tk?
Вопрос: Вот бы сделать такое же, но под GTK (Qt, curses), на python, (C++, Java, etc.) Почему мне нельзя написать плагин для Ткаббера на языке, который я знаю? Что — надо обязательно учить тикль?
Ответ: Почитайте эту статью.
Кто убил Лору Палмер? ©
Вопрос: Я прочитал в логах конфы, у вас игра такая есть: кто задаст вопрос, которого нет в ЧаВо, выигрывает заказную версию Ткаббера. Так вот, кто же её убил?
Ответ: Вы не умеете пользоваться гуглем. Самая первая ссылка по вашему запросу приводит на пост в useless_faq (вопрос этот задолбал даже их). Вообще, мы подумали, и я решил, что стоит изменить правила игры: надо задать вопрос, которого нет на вики. И само собой, он должен относиться к Ткабберу. Если вы придёте в конфу с вопросом из тех, что задают в useless_faq, мы вас, скорее всего, быстро забаним. Теперь насчёт приза: про заказную версию мы, конечно же, пошутили. Но идея хорошая, идите читать про неё сюда.
У вас в конференции топик с ошибкой написан
Вопрос: Вот вы пишете "Перед тем как задавать вопрос, обязательно почитайте нашу Wiki". Дальше в топике грозитесь банить за коверкание русского языка. А между тем, перед словом "как" должна ставиться запятая...
Ответ: Вы неправы. Она ставится далеко не перед каждым словом "как". В данном случае "перед тем как" — это один из сложных подчинительных союзов, которые запятыми не разрываются. Подробнее о них можно прочитать у Розенталя. Если Розенталь Вам кажется сложным, начните с чего-нибудь попроще: вот замечательная страничка, цель которой — помочь в исправлении самых распространённых ошибок Рунета.
Вопрос устарел (топик сократили, ибо разросся), но пускай остаётся для двоечников.
А добавят ли когда-нибудь в Ткаббер...?
Вопрос: Мне хотелось бы видеть в следующем релизе Ткаббера автоматическое увеличение поля ввода сообщения /поддержку stream-video /красивый интерфейс на tile /зелёные рюшечки (нужное подчеркнуть). Когда это можно ожидать? Добавят ли это в код или придётся делать форк?
Ответ:
- Если вы знакомы с тиклем, проще всего получить желаемую функциональность, написав плагин и выложив его на вики для тестирования и вообще на радость людям.
- Если вы не знакомы с тиклем настолько, чтобы этим заняться, можете поинтересоваться мнением народа в нашей конференции и/или оставить своё пожелание тут. Возможно, этой идеей кто-нибудь заинтересуется.
- Если вам некогда ждать и ради этой фишки вам не жалко денег, без лишних раздумий обращайтесь в конференцию — думаю, желающие подработать найдутся ;)
- Если вам претит мысль, что за работу надо платить, но зелёную рюшечку хочется, остаётся лишь посоветовать набраться терпения и подождать, когда кому-нибудь захочется из интереса или сочувствия реализовать нужную вам вещь.
- Ещё одно замечание следует сделать относительно помещения этой
функциональности в официальный код.
- Если вы не уверены, что эта фишка Ткабберу крайне необходима, делайте плагин: кому надо, его скачают, поставят и будут использовать.
- Если вам кажется, что без этой рюшечки Ткаббер не может называться "труъ" XMPP-клиентом, попробуйте убедить в этом разработчиков. Убеждать желательно аргументированно, со ссылками на соответствующие XEP'ы или по крайней мере апеллируя к здравому смыслу, а не просто ссылаться на то, что в QIP эта хрень давно есть. (Может, и в Ткаббере она не помешает, но это ещё надо доказать).
- Перед тем как бросаться в объяснения, следует перечитать статьи Ткаббер - чемпион? и особенно Tkabber, где доходчиво написано, чего следует и чего не следует ожидать от Ткаббера. Да, это клиент не для средних умов. Не нравится — никто вас на него силком не сажает. Люди, неспособные скачать и установить готовый плагин, давно сидят на Квипе и радуются. По большому счёту, Ткаббер — это не клиент для коммуникаций, это инструмент для личного развития как пользователя и, возможно, разработчика. С другой стороны, разработчики не звери и не дураки, и они тоже хотят, чтобы Ткаббер стал лучше. Но лучше — не значит попсовее. Если вы готовы к нормальному взрослому диалогу, милости просим со свежими идеями. Если мы вас не убедили, делайте форк — никто этого не запрещает. Не забудьте потом поместить сюда ссылку на ваш проект.
Вопросы, связанные с протоколом XMPP
MUC
Кто есть кто в конференции?
Некоторая рассказка по-русски доступна здесь.
Сделать: Полноценно перевести на русский соответствующий кусок XEP-0045
Не работают инвайты
Вопрос: Пытаюсь пригласить в конференцию друзей, и ничего не получается.
Ответ: Для начала вам надо удостовериться, что вы в этой конференции имеете ранг, отличный от "никто" (none): например, "участник" (member), "админ" (admin) или "владелец" (owner). Если ваш статус — "никто", приглашение в эту конференцию послать вам не удастся при любом раскладе. Если же вы "участник", а приглашения всё равно не отсылаются, узнайте у владельца комнаты, включена ли опция "разрешать пользователям слать приглашения" в её конфигурации. Если опция включена, а инвайты всё равно не уходят, обратите внимание на то, каким способом вы шлёте инвайт. При тестировании было замечено, что приглашения, отправленные через меню комнаты (вызываемое при клике на кнопку "Тема" в верхней части окна чата), не отсылаются. Зато прекрасно работают приглашения через контекстное меню участника конференции (правый клик на нике в списке конфы) и через контекстное меню ростера (при условии, что приглашаемый находится у вас в ростере, естественно). Ещё можно попробовать такой способ: набрать /invite vasya@jabber.pupkin.ru в конференции, куда вы хотите Васю пригласить. Само собой, вам должен быть известен JID приглашаемого.
Если с отправкой приглашения ничего не получается, даже если вы хозяин комнаты
и приглашаете в неё пользователя, который сидит у вас в ростере, смело идите в
xmpp:tkabber@conference.jabber.ru
и рассказывайте, что и как. Однако перед
тем как туда идти, советуем ознакомиться с соответствующим
XEP'ом по MUC (анг.), хотя бы с главами
4. Terminology и
5. Roles and Affiliations. И,
думаем, не стоит и напоминать, что всё это касается лишь пользователей
джаббера. То есть если вы непонятно почему приглашали в комнату айсикушников,
то, как говорится, вы сами себе злобный Буратино ;)
Сделать: Перевести эти две главы и воткнуть сюда на вики отдельной статьёй. И потом ссылаться, соответственно, уже на этот перевод
UPDATED: Последние исследования вопроса показали несостоятельность теории ролей. Посетитель комнаты, являющийся в ней member'ом, не мог отсылать инвайты другим её посетителям. Не отчаивайтесь, работы продолжаются.
Внешний вид и звук
Ткаббер ЧаВо/Внешний вид и звук