to post messages and comments.

← Все записи с тегом Jabber

@vt:

"Приобрел" домен spectrum.im вместе с правами на гитхаб, теперь еще и пользователи спектрума будут ныть и требовать от меня что-то делать :)

@vt:

у меня дуров побеждает красноглазиков в жаббере, что делать?

@vt:

а ваш жаббер так может?

@vt:

В погоне за ватсаппом jabber.ru пытается запустить собственный веб-клиент. Уже можно попробовать на chat.jabber.ru — он уже может читать и писать сообщения, конференции, и даже показывать картинки из жуйка!
Желающие поучаствовать в разработке приглашаются в [email protected] и на гитхаб — github.com

@vt:

i.imgur.com — дезигн здорового человека.
i.imgur.com — дезигн любителей андроида

@vt:

Нас убил ватсапп. А так — сегодня могло исполниться 10 лет. Не чокаясь! Мы убили на тебя 10 лет, бомбус!

@vt:

Автослесарь рассказывает как писать жаббер-клиент — pastebin.com — вкратце: сокеты не нужны! Попытки объяснить что такое сокеты на примерах, близких к автосервису — закончились неудачей, во всем виноват @vt, придумавший ненужные сокеты :(

@vt:

Модные современные мессенджеры умеют получать push-уведомления на Android/iOS-устройства о новых сообщениях, а XMPP разработчики этих убийц Whatsapp-а считают "устаревшим" и "не умеющим" реализовывать подобные фичи. На самом деле все очень просто и нужно совсем немного кода:
1) берем xmpp-сервер prosody и модуль mod_smacks из prosody-modules, реализующий XEP-0198: Stream Management
2) настраиваем ему параметр smacks_hibernation_time = 86400 — столько секунд он будет держать сессию клиента подключенной, если он(клиент) отключился.
3) немножко патчим его(модуль), добавляя туда один единственный вызов события получения сообщения — paste.org.ru
4) теперь пишем дополнительный модуль, назовем его mod_smacks_notifications, который будет слать принятые во время отсутствия клиента сообщения через Google Cloud Messaging (аналогичным образом можно работать и с Apple и Microsoft, coming soon)
paste.org.ru
5) далее нужно добавить поддержку в клиент, мной взят Android-клиент SawIM:
а) быстренько дописываем поддержку XEP-0198, очень простой XEP, нам достаточно считать полученные пакеты и по запросу сервера высылать это число, ну и естественно включать управление сессиями и продолжать разорванную сессию.
б) при получении от GCM регистрационного кода устройства, шлем нашему серверу запрос типа:
<iq type=set"><register xmlns="..." regid="[полученный-regid-от-гугла]" /></iq>
в) Создаем в Google API Console проект для нашего мессенджера, в консоли разработчика Google Play связываемся с приложением через Server API Key, в конфигурации нашего написанного модуля указываем gcm_api_key.
На все про всё ушло пара дней неспешной работы в свободное время, lua видел второй раз в жизни, ну java видел чуть побольше :) — github.com

@vt:

Зарелизился Tkabber 1.1, изменения: главное — поддержка OTR, плюс Roster Versioning, новая встроенная игра и багфиксы :)
Официальная новость — tkabber.jabber.ru
Сборочка для Windows — tkabber.jabber.ru

@vt:

Сборочку Tkabber 1.0 под Шиндошс наконец выложили в официальном месте — tkabber.jabber.ru
UAC должен показывать зеленый свет, а вот Smartscreen-у что-то не нравится, но это возможно временно.

@vt:

Говорят совсем всё, и мне контакты срут ошибками уже два дня:
jeff.ecchi.ca

@vt:

Тут вот новый крутой сайт про жаббер, xmpp.net — тестирует безопасность жаббер-серверов. К juick.com ему даже не удалось подключиться — xmpp.net

@vt:

Сборочка Spectrum2 под Шиндошс — dropbox.com
Отладочные символы + все необходимое для того чтоб написать свой плагин, например транспорт вконтактика — dropbox.com
Дополнительно требуется Шиндошс Vista/Server 2008 и выше (на икспи/2003 работать не будет) и MSVC 2012 Redist X86 — microsoft.com

@vt:

Идем на swift.im и читаем там:

Why Choose Swiften?
You don’t have to spend time reading specs and determining correct behaviour – we’ve been doing that for over a decade, and even wrote the book on it.
Окей. Берем Swiften и пишем такой крошечный тест:

void createWithInvalidName() {
Swift::JID jid("romeo", "example.net", "");
CPPUNIT_ASSERT_EQUAL(std::string("[email protected]"), jid.toString());
}

Что мы получаем на выходе? Правильно:

Test name: LocalBuddyTest::createWithInvalidName
equality assertion failed
— Expected: [email protected]
— Actual : [email protected]/

Сказать ФЕЙСПАЛМ это просто ничего не сказать. Пишут они жаббер десятилетиями, ага.

@vt:

просто оставлю это здесь: infostart.ru