пятница, 5 апреля 2013 г.

Документация по Ejabberd

В этом посте, я поделюсь ссылками на документацию по Ejabberd, нужными спецификациями по протоколу XMPP и ссылками на всевозможные примеры реализации логики (список будет расти).  Основная цель - собрать вместе разрозненные данные по Ejabberd.

Документация:
Список событий и хуков: Events and hooks
IQ обработчики: IQ handlers
Основные модули: Core modules

Спецификации:
XMPP спецификация переписки и получения статусов пользователей: Instant Messaging and Presence (RFC3921)

Разное:
Пишем модуль для Ejabberd: http://habrahabr.ru/post/130396/

вторник, 26 февраля 2013 г.

Js. Как разбить длинную строку на куски заданного размера

Задача: есть длинная строка, ее нужно разбить на куски по N символов.

Решение:
str.match(/.{1,N}/g);

Пример 1:
str = 'qwertyuiopasdfghjklzxc';
str.match(/.{1,10}/g);
Результат: ["qwertyuiop", "asdfghjklz", "xc"]

Пример 2:
str = 'qwertyuiopasdfghjklzxc';
str = '1234567890';
n = 5;
re = new RegExp(".{1,"+n+"}", "g");
str.match(re);
Результат: ["12345", "67890"]

четверг, 24 января 2013 г.

Ubuntu. Убить процессы по имени.

Для того чтобы убить все процессы по части имени нужно сделать так:
ps aux | grep -e 'somename' | grep -v grep | awk '{print $2}' | xargs -i kill {}

понедельник, 5 ноября 2012 г.

Запуск приложений Ubuntu с правами администратора

Если нужно запустить приложение из под терминала, используем команду sudo:
$ sudo mc

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

Чтобы не держать для каждого приложения параллельно открытую консоль, есть простое решение.

Команда gksu. Это "графический" аналог sudo. Разница только в том, что пароль суперпользователя вас попросят ввести не в консоли, а в диалоговом окне. Можно использовать в настройках команд запуска ярлыков (я думаю, вы уже пробовали писать там sudo и ничего не получилось). Пример команды:
$ gksu gedit

"Графический" пример, научим ярлык приложение Sublime Text запускать приложение с правами администратора:


понедельник, 29 октября 2012 г.

Как узнать версию ejabberd

ejabberd - XMPP сервер, написанный на Erlang. Узнать версию установленную в системе можно так:
1. Если остались файлы дистрибутива, то версию можно узнать по имени пакета ejabberd-x.x.x
2. Найти в системе файл ejabberd.app и найти там строку вида: {vsn, "x.x.x"}
3. Если у вас нет доступа к системе, но нужно открыть в XML-консоль (например в QIP, Miranda) и послать серверу команду:

  

Сервер он вам ответит приблизительно так:

  
    ejabberd
    2.1.10
  unix/linux 3.2.0
  

четверг, 25 октября 2012 г.

XML Viewer. Удобный просмотр XML

Столкнулся с задачей - нужно просматривать большие логи в формате XML. Естественно, что логи в файле не форматированы, а идут одним сплошным потоком, который нереально читать.

1. Если вы уже используете какую-то из JetBrains IDE, то нажмите Ctrl+Alt+L (или через меню: Code->Reformat Code)

2 . Еще есть простая бесплатная программа Free XML Editor:

Пример просмотра документа:

Для форматирования документа, нужно нажать F8.

Предварительно нужно открыть пункт меню Tools->Preferense, и там выбрать форматирование табуляцией:




Очень просто и удобно.

среда, 24 октября 2012 г.

VirtualBox. Настройка общих папок для Ubuntu

Основная ОС: Windows 7
VirtualBox ОС: Ubuntu 12.04
Задача: настроить общие папки

1. Создаем папку "d:/share" под Windows 7.

2. Открываем настройки VirtualBox, находим в меню пункт "Общие папки" и добавляем там нужную:

3. Заходим на виртуальную машину, и в папке вашего пользователя, создаем новую папку, ставим нужный уровень доступа:
username@your_server:~# mkdir shared
username@your_server:~# chmod 0777 shared

4. Монтируем папку:
username@your_server:~# sudo mount -t vboxsf share shared

!!! Есть неприятный баг: когда имена папок в обоих системах совпадают - команда mount вернет ошибку, именно потому, папки специально названы share и shared