Tkabber Wiki

Ткаббер ЧаВо/Разное
Login

Материал из Tkabber Wiki

Ткаббер ЧаВо разделился на несколько статей. Здесь рассматриваются вопросы разного (подчас совершенно странного) характера. Для удобства даны ссылки на другие тематические страницы ЧаВо.

Содержание

Всякая всячина

Что такое...?

Ростер

Ответ: Ростер (по-английски 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, в отличие от большинства лекарств, допускает как "внутреннее", так и "внешнее" применение на Ткаббере:

Внимание: виндовая "консоль Ткаббера" имеет один подводный камень: активация пункта её главного меню 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

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'ом, не мог отсылать инвайты другим её посетителям. Не отчаивайтесь, работы продолжаются.

Внешний вид и звук

Ткаббер ЧаВо/Внешний вид и звук

Глюки, возникающие в процессе работы

Ткаббер ЧаВо/Глюки

А как мне...?

Ткаббер ЧаВо/Как мне...?