Tkabber Wiki

Терминология
Login

Терминология

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

Словом можно обидеть. Словарём — убить.

Афоризм неизвестного автора.

В этом разделе мы постараемся разъяснять некоторые термины, очевидные для одних и непонятные для других. Объяснения будут даны весьма вкратце — времени у нас не вагон. Краткая расшифровка, чтобы можно было понять смысл статьи, где встречается хитрое слово, и ссылка на источник подробной информации (на английском и по возможности на русском).

Содержание

Tkabber

Тут мы будем рассматривать термины, относящиеся (впрочем, весьма условно) к Ткабберу.

Токен (token)

Одно из значений английского слова token — отличительное свойство или характеристика. В этом значении оно используется для случаев идентификации, когда человек или программа должна удостовериться в личности собеседника. Например, session token или security token (обе ссылки на английском). Ещё одно значение, на этот раз грамматическое — основная, простейшая, неделимая лексическая единица. В этом случае речь может идти о разбиении текста на небольшие отрывки или даже слова, чтобы было удобнее их анализировать. Смотрите пример в Википедии) (тоже по-английски).

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

Окно XML

Окно XML — важная часть интерфейса Ткаббера, правда, для повседневного общения оно практически не нужно. Надобность в нём возникает, когда появляются проблемы. Тогда этот инструмент позволяет узнать, что именно отослал Ткаббер серверу и что именно получил в ответ (если получил вообще). Именно этого — лога XML — от вас хотят разработчики, когда вы обращаетесь к ним за помощью в случае неадекватного поведения Ткаббера. Окно открывается через меню Службы → Инструменты администратора → Открыть окно XML. Открывать его следует до того, как вы собрались выполнять дающее сбой действие. Показывать разработчикам весь лог не надо, там много лишнего. Обычно интересна только станца OUT, содержащая отправленное вами сообщение, и ответ на неё (это станца IN, id которой совпадает с id отправленной станцы). Подробнее о станцах и самом протоколе XML можно почитать в этой же статье, чуть ниже.

Сети

Термины из области компьютерных сетей.

SOCKS5

SOCKS – это сетевой механизм прокси, который позволяет локальному компьютеру с одной стороны от SOCKS-сервера получить полный доступ к удалённому компьютеру с другой стороны сервера без необходимости афишировать свой IP-адрес. Работу этого механизма можно изобразить в виде схемы:

локальный компьютер  <======> |
локальный компьютер  <======> | SOCKS-сервер <======> Удалённый компьютер
   ·  ·  ·                    |                       (например, Web-сервер)
локальный компьютер  <======> |

SOCKS-сервер переправляет запросы от локального компьютера к удалённому и наоборот. Главные отличия этого типа прокси от остальных:

SOCKS5-сервер позволяет клиенту:

  1. Socks-клиент может передавать не только IP-адрес хоста, с которым необходимо устанавливать соединение, но и доменное имя хоста. Socks5-сервер сам получит IP по имени. Таким образом, в локальных сетях, работающих через Socks5, можно обойтись без локального DNS-сервера.
  2. Socks5 поддерживает не только TCP, но и UDP. Вместе они покрывают почти все множество используемых прикладных протоколов.
  3. Socks5-сервер поддерживает аутентификацию и авторизацию, может согласовывать с клиентом способ аутентификации.
  4. Socks5 может использовать не только принятые схемы адресации в Internet, но и будущие – такие как IPv6 (Ipng).

SOCKS5-сервер не может:

  1. Поскольку Socks-прокси не знает, какие высокоуровневые протоколы он через себя пропускает, он не может им "помогать". В основном это касается кэширования. Socks не может узнать, какие ресурсы сети извлекаются с его помощью, и, соответственно, не может при следующем обращении к этому ресурсу "подставить" старое содержание немедленно без выполнения запроса.
  2. Когда клиентская программа просит Socks-прокси выполнить за него серверную функцию (прими для меня входящее TCP-соединение), Socks-прокси не гарантирует, что он будет "слушать" именно тот номер порта, который хотел бы слушать клиент, так как на шлюзовой машине этот порт может быть уже занят другим сервером или другим потоком Socks-сервера, обслуживающим другого клиента. Таким образом, почти невозможно организовать работу, например, Web-cервера, находящегося внутри локальной сети, но принимающего соединения через Socks-сервер, – так как внешний клиент не будет заранее знать, с каким портом соединяться. То есть через Socks-прокси клиентское приложение сможет быть сервером, но только временным и только после того, как эта пара – клиент и сервер – уже установили первичное соединение и могут передать через него номер порта для вторичного соединения. Этот номер назначается Socks-сервером и сообщается Socks-клиенту.

Использованы материалы:

  1. Локальные сети и Internet Автор: Андрей Черезов. Опубликовано в журнале "Компьютерра" №10 от 16 марта 1998 года © ИД "Компьютерра", 1997-2006.

  2. Socks Basics My-Proxy © 2006.

Про SOCKS5 рассказывал Archimed.

Windows

Время от времени на конференции xmpp:tkabber@conference.jabber.ru всплывают вопросы, касающиеся настройки Ткаббера под Windows. Иногда авторы этих вопросов выказывают просто-таки вопиющую неосведомлённость в устройстве своей любимой системы. Что ж, не будем ворчать и посылать вас подальше (любой дурак может это сделать), а постараемся восполнить пробел в ваших знаниях ;)

Linux

Всё, что сказано выше в предисловии к разделу о Windows, справедливо и для Linux, и даже в бо́льшей мере — в мире Линукс не принято выпрашивать помощь. Напротив, приветствуется самостоятельность. Тем не менее, мы не видим большого греха сделать несколько пояснений.

Tcl/Tk

Сразу скажем: если у вас возникли проблемы с непониманием каких-то вещей в "тикле", вам сюда — на официальный сайт этого языка программирования. Если покопаться на вики официального сайта, моментально находится целая куча ресурсов, посвящённых тиклю и его изучению. Часть из них мы продублируем здесь. Практически все они написаны на английском.

Jabber

Здесь будут рассмотрены термины, касающиеся протокола XMPP (англ.) (в просторечии — Jabber (рус.)).

XML

A Gentle Introduction to XML.

Станца (stanza)

Это в поэзии станца (или станса — кому как нравится) обозначает "строфа" (ещё одна транслитерация из латыни). В применении к протоколу XMPP станца — это законченное по смыслу высказывание на XML. Более технически, станца — это корневой элемент потока XML. Основная идея в том, что станца обладает свойством "атомарности": станцы пересылаются, обрабатываются и хранятся только целиком. В XMPP вся информация, передаваемая протоколом, обходится всего тремя типами строф:

<message>

используется для передачи текстовых сообщений;

<presence>

используется для передачи информации о присутствии и управлением подпиской на получение этой информации;

<iq>

используется для передачи различных информационных запросов и ответов на них.

Типичная станца, передающая сообщение:

<message to='tkabber@conference.jabber.ru/sulci'
   type='chat'
   id='295'
   xml:lang='en-US'>
 <body>привет!</body>
 <x xmlns='jabber:x:event'>
    <offline/>
    <delivered/>
    <displayed/>
    <composing/>
 </x>
</message>

Почитать подробнее про элементы XML: (англ.).

Разное

Сюда войдёт то, что не лезет ни в какие другие ворота разделы.

Плагин (plugin)

Плагин (он же "штепсель") — небольшая программа, с помощью которой расширяются возможности программы, в которую этот штепсель "втыкается". Основная программа может легко работать и без плагина.

Например, плагин autoaway переключает ваш статус на "Отошёл", если вы не трогаете клавиатуру или мышь, скажем, 5 минут. Если времени проходит больше (допустим, 15 минут), статус автоматически меняется на "Отсутствует давно". Без этого плагина Ткаббер, конечно же, будет работать, просто если вам понадобится отойти, каждый раз придётся устанавливать статус вручную, иначе ваши собеседники будут думать, что вы сидите за компьютером, упорно их игнорируя.

Строго говоря, вышеприведённый пример немного неудачный, так как autoaway — это плагин, код которого включён в программу, так как жизнь без него была бы тяжела большинству пользователей. В рамках нашей вики понятие плагина будет относиться к таким расширениям, которые нужны лишь какой-то относительно небольшой части пользователей, например, шахматы или георостер. О существующих официальных и неофициальных плагинах для Ткаббера можно почитать тут.

Биндинги (bindings)

Словом "би́ндинги" () называют программный код, который является прослойкой между какой-либо библиотекой (как правило, написанной на низкоуровневом языке вроде Си) и другим программным кодом, написанным на другом языке программирования (как правило, высокоуровневом, например, Tcl).

Таким образом, биндинги "связывают" (англ. "to bind" — связывать, привязывать) "чужеродный" код с "нашим", являясь своего рода прослойкой между двумя разными "программными мирами". Поэтому биндинги также иногда называют словом "вра́пперы" (англ. "to wrap" — заворачивать, обёртывать).

Обычно задачей биндингов является "импорт" интерфейса библиотеки, написанной на "чужом" языке, в код, написанный на языке реализации программного продукта, для которого эти биндинги создаются.

Транк (trunk)

"Транк" это основная ветка разработки (какой-либо программы).

Термин (обычно) относится к системам контроля версий (таким как CVS и Subversion), лучшие из которых позволяют вести параллельную разработку кода несколькими направлениями (ветвями), а так же копировать изменения между ними. Основная ветка разработки — транк — обычно является наиболее стабильной, так как побочные ветки, как правило, используются для разработки экспериментальных возможностей и тестирования новых идей.

Зачастую же этот термин используется просто чтобы обозначить "официальный код". К примеру, сторонний разработчик изготавливает патч на программу. Этот патч может быть "выложен" где-нибудь и иметь широкое хождение среди пользователей программы. Однако он является неофициальным. Разработчики программы могут принять решение интегрировать патч в основной ("официальный") код (возможно, после того, как прошло некоторое тестирование этого патча среди пользователей). В этом случае говорят, что патч "попал в транк".

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

Переменные окружения

(!) Сделать: написать