Muu 19.12.2010 06:44 eee

ВНИМАНИЕ! ОБЪЯВЛЕНИЕ!
Заплачу́ 2000 (две тысячи) рублей первому, кто напишет и добавит в апстрим (под свободной лицензией) патч для pidgin/libpurple (либо плагин для pidgin) реализующий уведомления о доставке сообщений по протоколу jabber (ака XEP-0184). Подробнее: http://developer.pidgin.im/ticket/6940 http://xmpp.org/extensions/xep-0184.html . Основание для оплаты: после очередного апдейта pidgin приобрел соответствующую фичу, либо на http://developer.pidgin.im/wiki/ThirdPar... появилась ссылка на соответствующий работающий плагин.
Странствующие программисты, сетевые бомжи и просто желающие заработать на шампусик к празднованию НГ и одновременно помочь опенсорцу — не проходите мимо! Отвлекитесь ненадолго от пиления личкрафтов и написания стопицотпервого медиаплеера!
P.S. Торг неуместен, но другие пользователи pidgin'а, заинтересованные в этой фиче, могут присоединиться к выплате.
P.P.S. Настоятельно рекомендуйте.

1. 0xd34df00d 08.03.2012 13:51 Azoth

Нет чтобы личкрафты пилить/юзать, в которых все это давно есть.

2. 0xd34df00d0xd34df00d /1 08.03.2012 13:51 Azoth

А, ну и да, пиджин говно и не нужен, и писать подобное на сишечке/ГЭТЭКА — себя не любить. Спасибо, нет, даже за миллион баксов.

3. nya 08.03.2012 14:13 Home

пили сам

4. ulidtko 08.03.2012 17:38 уважением

> рвущиеся конекты
> уведомления о доставке
да у тебя же X-Y PROBLEM.

Уведомления о доставке, грубо говоря, говно и не нужны. Что действительно нужно — это автоматический фетчинг глобальной по аккаунту истории с сервера, как это сделано в андроидном gtalk-клиенте.

5. L29Ahulidtko /4 08.03.2012 17:39 tkabber-home

Ошибка в наборе хромосом?

6. 0xd34df00dL29Ah /5 08.03.2012 17:39 Azoth_primary

У тебя — да.

7. ulidtkoL29Ah /5 08.03.2012 17:40 уважением

i googled it for you: http://www.perlmonks.org/?node_id=542341

8. L29Ahulidtko /4 08.03.2012 17:42 tkabber-home

На сервере нет никакой истории.

9. ulidtkoL29Ah /8 08.03.2012 17:42 уважением

на gtalk-овском — есть.

10. 0xd34df00dL29Ah /8 08.03.2012 17:42 Azoth

XEP на message archiving нагугли, блеать.

11. L29Ah0xd34df00d /10 08.03.2012 17:43 tkabber-home

Notice (2010-06-21): The XMPP Council [1] believes that the Message Archiving protocol is unduly complex and will likely request a thorough review and simplification of this specification before advancing it to Final.

12. 0xd34df00dL29Ah /11 08.03.2012 17:44 Azoth

Да, я знаю, я-то его читал, в отличие от.

13. L29Ah0xd34df00d /10 08.03.2012 17:44 tkabber-home

Хотя, ты же дедфуд, ты любишь лишние переусложнения.

14. L29Ah0xd34df00d /12 08.03.2012 17:44 tkabber-home

tl;dr, xml ⇒ хочу реферат или ничего.

15. 0xd34df00dL29Ah /13 08.03.2012 17:44 Azoth

Обоснуйте.

16. 0xd34df00dL29Ah /14 08.03.2012 17:44 Azoth

Съеби нахуй.

17. L29Ah0xd34df00d /16 08.03.2012 17:45 tkabber-home

Хорошо.

18. 0xd34df00dL29Ah /17 08.03.2012 17:45 Azoth

Хороший, годный лях.

19. Xenomorph0xd34df00d /18 08.03.2012 17:46 Hive

Тёплый, ламповый лях.

20. lockie 08.03.2012 18:03 ХОЛОДИЛЬНИКА

Запилю бесплатно, если обоснуешь, что оно нужно (я сам пользователь pidgin, и умвр).

21. 0xd34df00dlockie /20 08.03.2012 18:04 Azoth

Кстати, как оно там с крешхендлерами, и не пробовал ли ты лц в роли IM? :3

22. lockie0xd34df00d /21 08.03.2012 18:08 ХОЛОДИЛЬНИКА

> как оно там с крешхендлерами
Толсто.

> не пробовал ли ты лц в роли IM? :3
Нет, потому что не нужен (c) (r) (tm)

23. 0xd34df00dlockie /22 08.03.2012 18:08 Azoth

:(

24. ulidtkolockie /20 08.03.2012 18:09 уважением

оно не нужно, так как TCP предоставляет гарантии доставки. И когда условия для этих гарантий не соблюдены, костылики на прикладном уровне никак не помогут.

25. lockie0xd34df00d /23 08.03.2012 18:09 ХОЛОДИЛЬНИКА

*мне не нужен, я имею в виду. Было бы мне лично нужно — пилил бы.

26. 0xd34df00dlockie /25 08.03.2012 18:09 Azoth

Оук, в порядке соцопроса — что делает его ненужным?

27. lockieulidtko /24 08.03.2012 18:09 ХОЛОДИЛЬНИКА

тогда я U

28. lockie0xd34df00d /26 08.03.2012 18:12 ХОЛОДИЛЬНИКА

В порядке перечисленя в списке Main features на глагне лц.орг: Firefox, pidgin, google reader, не понел (vlc, если речь про сетевой аудио/видео плеер, идею подкастов не понимаю), transmission на отдельной файлопомойке+transgui, DCPP не пользую, github :), ну ты понел, (s)mplayer/vlc по настроению.

29. 0xd34df00dlockie /28 08.03.2012 18:15 Azoth_primary

Нууу, а почему заменять пижжином-то? ) Тем более, XMPP у нас полущ.

30. lockie0xd34df00d /29 08.03.2012 18:19 ХОЛОДИЛЬНИКА

Почему заменять? Я его года с 2007-го пользую, это наоборот — заменять голубя лц, а меня в голубе всё устраивает.
#define полущ.

31. 0xd34df00dlockie /30 08.03.2012 18:22 Azoth_primary

Да хотя бы XEP из /0 поддерживается. И ваще, http://leechcraft.org/plugins-azoth-xoox

32. lockie0xd34df00d /31 08.03.2012 18:26 ХОЛОДИЛЬНИКА

зачем мне всё это, если я жабир использую как drop-in replacement асичке и чтобы в жуйк/пстач срать?

33. 0xd34df00dlockie /32 08.03.2012 18:29 Azoth_primary

Пстачеплагин вон тоже годный. И жуйкоплагин. И ваще, give it a try, нам такие погромизды, как ты, нужны, нам нужна твоя душа!

34. ulidtkolockie /28 08.03.2012 18:45 уважением

идея подкастов в том, что это такое радио, серии которого ты можешь слушать в любое удобное для тебя время. Весьма часто это просто записи эфиров, выкладываемые в RSS; но не всегда.

35. lockie0xd34df00d /33 08.03.2012 18:45 ХОЛОДИЛЬНИКА

уже продал тёмным богам хаоса ок

36. lockieulidtko /34 08.03.2012 18:46 ХОЛОДИЛЬНИКА

а разве нельзя просто зайти на сайт (любого) радио и скачать заботливо выложенные админами архивные записи? Да ещё и rss, mother of god. не понимат

37. snakehoney0xd34df00d /6 08.03.2012 18:46

Пиздец.

38. 0xd34df00dsnakehoney /37 08.03.2012 18:47 Azoth

Што.

39. ulidtkolockie /36 08.03.2012 18:50 уважением

ну вот примерно это оно и есть. Архив радиоэфиров.
Единственная тонкость в том, что эфиров может в принципе не быть. Например, ватага школьников может просто раз в неделю орать в микрофон всякую хреноту, и выкладывать записи mp3. Другие школьники (из общей школы, например), может эти mp3 скачивать и слушать в транспорте.

40. lockieulidtko /39 08.03.2012 18:51 ХОЛОДИЛЬНИКА

Dare I say хуита какая-то?

41. ulidtkolockie /40 08.03.2012 18:51 уважением

просто на любителя. Не все же любят читать газеты? Но от этого газеты хуитой не становятся.

42. lockieulidtko /41 08.03.2012 18:53 ХОЛОДИЛЬНИКА

okay

43. rapturelockie /20 09.03.2012 03:42 unknown

У меня тоже все работало, пока по какой-то хуите не начали пропадать реплики в разговорах. КОннект был нормальный вроде. Короче, начал замечать такую фичу иногда. И вроде бы уже люто-бешенно ее реквестировал тут.

44. gelraenulidtko /24 09.03.2012 07:37 imax

TCP предоставляет не гарантию доставки, а всего-лишь уведомление в случае удачной доставки, это раз. Во вторых, это уведомление доставки не к remote recipient, а только к серверу, который, не будет посылать тебе уведомление о том доставлено ли сообщение и, скорее всего, даже не будет посылать его повторно если не получит TCP ACK. Ну а XEP в /0 как раз решает проблему end-to-end acknowledge. Так от чего "костылики на прикладном уровне не помогут"?

45. ulidtkogelraen /44 09.03.2012 08:45 уважением

orly, а повторную отправку кто делает?

доставка к серверу — ну и отлично! пусть записывает себе в историю и заботится о дальшейшей маршрутизации месаджа.
в ололо-распределённой сети хотеть знать что-то большее о маршруте месаджа просто странно.

И опять же, в схеме «xmpp-клиент говорит другому xmpp-клиенту по xmpp-протоколу, что предыдущее xmpp-сообщение получил», а xmpp-сервера пассивно гоняют эти xmpp-месаджи туда-сюда только мне одному видятся потоки излишнего иксэмеля? не проще ли открыть прямое TCP соединение между клиентами и общаться по нему? Какую функциональность тут вообще несёт дополнительный, «прикладной» уровень абстракции?

Я считаю, что если в ваших юз-кейсах для IM часто рвутся низлежащие подключения и urn:xmpp:ping вас не удовлетворяет — вы ошиблись с выбором XMPP.

46. lexszeroulidtko /45 09.03.2012 08:46 nyapad

ПОТОКИ ИЗЛИШНЕГО ИКСЕМЕЛЯ

47. ulidtkolexszero /46 09.03.2012 08:47 уважением

да-да, ваши любимые базворды

48. 0xd34df00dulidtko /47 09.03.2012 08:48 Azoth_primary

Дибас и питон забыл.

49. gelraenulidtko /45 09.03.2012 09:39

> orly, а повторную отправку кто делает?
ВНЕЗАПНО, но кто тебе гарантирует что со второй попытки данные будут доставлены? а хоть с третьей?

> доставка к серверу — ну и отлично! пусть записывает себе в историю и заботится о дальшейшей маршрутизации месаджа.

было бы хорошо, да, если бы такое поведение было закреплено законодательно. Но при этом всё равно надо какое-то уведомление о доставке на уровне xmpp, потому что, afaik, у приложения нету способа узнать какие данные не были доставлены (приложение просто получает -1 в ответ на write и какой-то код в errno), а в следствие этого, получаем дополнительный вектор DoS-атаки — посылку сообщений клиенту, который не отвечает на них уведомлениями о доставке (это решается лимитами, но тогда мы опять теряем гарантию доставки сообщения адресату). Впрочем, подобная атака возможна даже если есть способ узнать какие данные не были доставлены, берём клиента который не посылает TCP ACK и шлём ему сообщения: содениение будет разрываться после таймаута, но сервер все равно вынужден держать все сообщения в памяти чтобы послать их заново при повторном подключении клиента. Но всё равно, кто гарантирует доставку в случае падения сервера или просто отключения питания? Как не крутись, больше чем end-to-end acknowledgement не получишь, так почему не иметь хотя бы это?

> в ололо-распределённой сети хотеть знать что-то большее о маршруте месаджа просто странно.
маршрут никому и не нужен, нужно уведомление о доставке. Да и в случае XMPP маршрут всегда в себя включает не более 2 серверов между общающимися клиентами.

> xmpp-сервера пассивно гоняют эти xmpp-месаджи
TCP/IP именно так и работает: роутеры гоняют "пассивно" IP-пакеты, не запоминая никакого состояния, всё остальное ложится на плечи тех, кто пытается общаться с какими-то гарантиями. Дизайн "тупая сеть — умные endpoints" по очевидным причинам более устойчив к разного рода атакам и отказам частей сети чем "умная сеть — тупые endpoints".

> только мне одному видятся потоки излишнего иксэмеля?
XMPP практически весь состоит из излишних потоков XML'я >_>

> не проще ли открыть прямое TCP соединение между клиентами и общаться по нему? Какую функциональность тут вообще несёт дополнительный, «прикладной» уровень абстракции?
Не всегда есть такая возможность. В IRC была предусмотрена такая возможность в виде DCC. И в XMPP тоже можно такое сделать, и даже лучше, из-за наличия поддерржки SOCKS-прокси, но, видимо, это никому не нужно.

> Я считаю, что если в ваших юз-кейсах для IM часто рвутся низлежащие подключения и urn:xmpp:ping вас не удовлетворяет — вы ошиблись с выбором XMPP.
Возможность получения уведомлений о доставке отправленного сообщения — это не что-то странное, а вполне закономерное требование. Олсо, есть мнение (и не безосновательное) что XMPP — это одна большая ошибка.

50. ulidtkogelraen /49 09.03.2012 10:12 уважением

> ВНЕЗАПНО, но кто тебе гарантирует что со второй попытки данные будут доставлены? а хоть с третьей?
внезапно, и чем в этом случае end-to-end acknowledgement — который не придёт — лучше не пришедшего пинга на сервер?

абзац про атаку не понял.

> TCP/IP именно так и работает: роутеры гоняют "пассивно" IP-пакеты, не запоминая никакого состояния
мечты-мечты. Это в идеале так, а точнее если смотреть на абстракции TCP/IP «сверху». Ниже у нас найдутся всякие радости вроде ната, умных файрволов, FTP и прочего. И мне непонятно, почему endpoints вдруг отделились от сети и в одних случаях стали называться «умными», а в других — «тупыми».

> не проще ли открыть прямое ... видимо, это никому не нужно.
ну да, для ipv4-то понятно, где нат в нате сидит и подсети для натов раздаёт.

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

Расскажу ещё раз: андроидный клиент гуглотолка эту проблему решает просто замечательно (а андроидомобильнички практически обязательно сталкиваются с разрывами связи при движении: роуминги между вайфаем и сотовой сетью, туннели метро этц). Как только клиент детектит потерю связи с сервером, в диалогах появляется маленькая красненькая надпись: «Связь потеряна, сообщения будут доставлены после возврата в онлайн». При собственно возврате производится синхронизация с историей сервера: все недополученные сообщения принимаются, все отосланные (с точки зрения сервера, то есть включая и других клиентов/ресурсов) добавляются, если есть что ещё отослать — отсылается.
Ничего нигде не проёбывается, всё просто работает™.
Правда, глупый пиджин не умеет так круто забирать историю, потому здесь не всё так гладко.

51. snakehoneyulidtko /50 09.03.2012 10:13 NOBLE DIGGER

Пиздец костыль.

52. 0xd34df00dulidtko /50 09.03.2012 10:14 Azoth_primary

Хм, пойти что ли прикрутить уже message archiving. Правда, этот XEP говно, и разрабатывал его какой-то пьяный сантехник, не знакомый с паттернами проектирования вообще.

53. ulidtkosnakehoney /51 09.03.2012 10:18 уважением

а индикация типа ВОТ ВОТ ЭТА СТРОЧКА, ПОХОЖЕ, ЕЩЁ НАВЕРНОЕ НЕ ДОШЛА, МОЖЕТ БЫТЬ, А, И ЭТИ СЛЕДУЮЩИЕ ДВЕ ТОЖЕ НАВЕРНОЕ НЕ ДОШЛИ ПОКА, которую половина пользователей не поймёт без подсказки — лучше?..

и надстройка в протоколе прикладного уровня, точь-в-точь повторяющая фичу транспортного уровня — не костыль? Странное у тебя мнение.

54. 0xd34df00dulidtko /53 09.03.2012 10:21 Azoth_primary

Ты еще забыл про совместимость разных версий XEP'ов на delivery receipts — вернее, про отсутствие таковой. Поэтому, например, говноgajim не понимает, что до личкрафтов сообщения доходят.

55. ulidtko0xd34df00d /54 09.03.2012 10:23 уважением

ну это как бы общая болезнь всего xmpp, хотя конкретный пример тоже интересен.

56. raptureulidtko /45 09.03.2012 14:31 unknown

>Я считаю, что если в ваших юз-кейсах для IM часто рвутся низлежащие подключения и urn:xmpp:ping вас не удовлетворяет — вы ошиблись с выбором XMPP.
Так толсто, что даже тонко.

57. 0xd34df00drapture /56 09.03.2012 14:32 Azoth_primary

Я считаю, что если вы используете XMPP — вы ошиблись с выбором XMPP.

Вот это — толстота, что тонкота. А у него нормик.

58. rapture0xd34df00d /57 09.03.2012 14:33 unknown

s/толстота/хуита/g

59. gelraenulidtko /50 09.03.2012 16:28 imax

> внезапно, и чем в этом случае end-to-end acknowledgement — который не придёт — лучше не пришедшего пинга на сервер?
Хотя бы тем, что повторная отправка ложится на плечи отправителя, а не сети. И тем, что отправитель может точно знать что его сообщение доставлено.

> абзац про атаку не понял.
Если кратко, мы получаем или уязвимую к выеданию всей доступной памяти сеть, или не получаем гарантий доставки.

> мечты-мечты. Это в идеале так, а точнее если смотреть на абстракции TCP/IP «сверху». Ниже у нас найдутся всякие радости вроде ната, умных файрволов.

Но это всё костыли, при чём необязательные. А если ты хочешь NAT или stateful packet filtering, то тебе, ясен хрен, надо лазить внутрь L4 чтобы отличать разные соединения. Это никак не отменяет того, что базовая задача IP-сети — доставлять пакеты без каких либо гарантий, остальное — задача endpoint'ов, которым это нужно.

> И мне непонятно, почему endpoints вдруг отделились от сети и в одних случаях стали называться «умными», а в других — «тупыми».
Потому что они в рассматриваемой ситуации не являются транзитными узлами сети, а только потребителями. "умные" и "тупые" — в зависимости от того, кто берёт на себя дополнительные действия для хоть какого-то обеспечения доставки данных. В одном случае этим занимается endpoint, а сеть просто предоставляет возможность доставки пакета (может дойдёт, а может и нет). В другом — клиент просто посылает данные, а о том чтобы они были доставлены заботятся транзитные узлы.

> ну да, для ipv4-то понятно, где нат в нате сидит и подсети для натов раздаёт.

Почему ты считаешь что для других протоколов всегда есть возможность установить прямую связь между любыми двумя точками? Даже для ipv6 провайдер вполне может фильтровать входящие соединения и требовать за отключение фильтрации дополнительную плату.

> костылики на прикладном уровне никак не помогут.
> Как только клиент детектит потерю связи с сервером, в диалогах появляется маленькая красненькая надпись: «Связь потеряна, сообщения будут доставлены после возврата в онлайн». При собственно возврате производится синхронизация с историей сервера

Хех, а что это тогда, как не "костылики на прикладном уровне"?

Впрочем, это вполне годный вариант, но здесь от клиента требуется чуть больше чем просто послать сообщение (но это не проблема) и чтобы это работало надо чтобы все сервера хранили историю, но это не закреплено в XMPP-IM, потому может быть реализовано только в очень отдалённом будущем.
Почему надо чтобы все хранили? Потому что иначе при обрыве соединения между серверами сообщения тоже будут потеряны (и как здесь делать синхронизацию?), как и при обрыве соединения между сервером получателя и самим получателем. Так что этот метод спасает только от одной из возможныз неприятностей: разрыва соединения между отправителем и сервером. Если оба сервера пишут историю — то это спасает и от разрыва между получателем и его сервером. Но проблема с разрывом между серверами все равно остаётся. Ну и да, кто помешает засрать историю сообщений? Кластер для хранения истории есть далеко не у всех.

66. ojab 16.03.2013 16:02 YGG!

как-то похуй

67. ulidtkoojab /66 16.03.2013 16:28

кстати, @gelraen здесь по большему счёту был прав.

68. gelraenulidtko /67 16.03.2013 17:17

блядь, я здесь какие-то длинные простыни писал. tl;dr

69. amd63 16.03.2013 21:34 Azoth

Тока когда оно появится в ticket/6940 отпишитесь плиз кто-нибудь в этой теме, хочу тупо засечь, за сколько дней/недель тикет пятилетний закроют за 2000р и кому действительно нужен pidgin и azoth и XEP-0184 и блять нахуй я это написал

Do you really want to delete ?