Показаны сообщения с ярлыком xml. Показать все сообщения
Показаны сообщения с ярлыком xml. Показать все сообщения

суббота, 30 декабря 2006 г.

Jabber

Всё началось с небольшой заметки в сети, рассказывающей как подключить Google Talk к сети ICQ.
Оказывается, гугловцы не стали изобретать велосипед, как mail.ru со своим Агентом, а использовали уже готовый и весьма популярный среди знающих людей протокол обмена мнгновенными сообщениями Jabber.
По сути, Jabber очень похож на ICQ, так как выполняет ту же функцию - болталки :)
Однако, есть одно существенное различие. ICQ централизован. Сервера ICQ находятся в руках одной-единственной компании AOL. Компании, которая намеряна получать прибыль из своего детища и поэтому, вешающей рекламный баннер в официальный клиент. Компания, которая уже почивает на лаврах лидера отрасли, и поэтому не намеренной совершенствовать ни протокол, ни клиента.
Конечно, положение капитально исправляют альтернативные клиенты, вроде qip. Лучший клиент для ICQ!
Но протокол и ценртализованный сервер он исправить не в состоянии...
Да и борется AOL с альтернативными клиентами. Менят протокол. Пока по мелочи, но вдруг заставят скачивать этот баннер? А тех клиентов, что не скачивают, отрубать как "не поддерживающие протокол"???
Не хочу я смотреть на баннер.. и даже просто скачивать я его не хочу..
Не хочу что бы моё общение зависило от одной единственной компании....
И тут на сцену выходит Jabber.
Jabber — это открытый протокол, использующий XML, для быстрого обмена сообщениями и информацией о присутствии между любыми двумя абонентами в Интернет. Первым применением технологии Jabber стало появление асинхронной и расширяемой платформы для обмена мгновенными сообщениями и сети обмена мгновенными сообщениями (от англ. IM — Instant Messaging), cходная по возможностям c коммерческими системами IM, такими, как AIM, ICQ, MSN и Yahoo. Однако, Jabber имеет ряд преимуществ по сравнению с коммерческими системами IM:
  • Открытость — протокол Jabber является свободным (от лицензирования), открытым, общедоступным и, кроме того, лёгок для понимания; существует множество реализаций серверов и клиентов, а также библиотек с открытым исходным кодом.
  • Расширяемость — с помощью пространств имён в XML можно расширить протокол Jabber для выполнения требуемых задач и для обеспечения поддержки взаимодействия между различными системами. Общие расширения разрабатываются под контролем Jabber Software Foundation.
  • Децентрализованность — кто угодно может запустить свой собственный сервер Jabber, это позволит организациям и частным лицам заниматься любыми экспериментами с IM.
  • Безопасность — любой сервер Jabber может быть изолирован от общедоступной сети Jabber, многие из вариантов реализации сервера используют SSL при обмене между клиентом и сервером, и немало клиентов поддерживают шифрование с помощью PGP/GPG внутри протокола.

Если то же самое, но проще, то:
  • Протокол, а так же программы сереров Jabber никому не принадлежат. За них нельзя брать деньги. Их нельзя запретить использовать юридический.
  • Протокол не статичен. Он легко расширяется.
  • Нет главного сервера Jabber. Даже jabber.org не является таковым. При выводе любого из них, система будет продолжать работу. Пользователи просто переедут на другие сервера.
  • Параноики могут завести свой собственный сервер Jabber и общатся на нём. Например, внутри организации. Для безопасности и секретности.
Что бы не быть голословным приверду, например ссылку на список (неполный) открытых сереров Jabber.
Их там много. Они разные. Поддерживают разные сервисы.
Некоторые быстрые... некоторые тормозные...
Некоторые работают 24/7.... Некоторые то и дело падают.
Нужно найти свой. Можно использовать несколько.. Можно переключатся между ними...
Но в любом случае, сеть Jabber одна. И пользователи с одного сервера могут точно так же общатся с пользователями других серверов.
И даже других сетей.
Продолжение следует...

воскресенье, 17 декабря 2006 г.

Интегрируем потоки информации! Часть I. "В чём проблема?"

В интернете много информации. Её тут куча. Собственно, весь интернет и состоит из информации :)
К счастью, она нас интересует не вся. У каждого есть любимые темы... И, соответственно, со временем появляются любимые места где пишут на любимые темы. Или не пишут, но могут написать. Или не на любимую, но просто интересную :)
Пока таких мест немного (пара сайтов, 2-3 блога) вполне можно обходить всё "руками", ежедневно пробегаясь по ссылкам.
Когда к списку интересного прибавляется ещё десяток сайтов и штук 50 блогов (что характерно на разных хостингах) обходить всё становистя уже несколько утомительно...
Дело несколько облегается тем, что большинство солидных сайтов предлагают рассылать свои новости по почте... Блоги одного хостинга можно читать в френд-лентах...
Однако, для этого каждый раз нужно совершать кучу манипуляций. Оставлять где-то свой адрес... Заполнять какие-то регистрационные анкеты.. Помнить кучу аккаунтов и паролей...
Морока!
Однако, существует решение, позволяющиее объеденить потоки информации с разных сайтов (новости, обновления в блогах, новые анекдоты и т.п.) в одном месте!
Конкретных реализаций этой технологии несколько, но всех их можно смело назвать одним словом - RSS.

Материал из Википедии — свободной энциклопедии

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами.
Подробнее про RSS и о том, как им пользоватся читайте в следующих выпусках :)

четверг, 14 декабря 2006 г.

В InfoPath есть функция - вложить файл в форму. Если кто не знает, формы в InfoPath это xml файлы, поэтому файл (в общем случае бинарный) вкладывается туда закодированным.
Вот так:

x0lGQRQAAAABAAAAAAAAABEAAAAGAAAAMQAuAGQAbwBjAAAAMTIzNDU28ODnIOTi4CDy8Og=

И есть потом открыть InfoPath, то всё замечательно раскодируется и раскроется.
Однако!
Формы InfoPath предназначены для автоматизированной обработки. Для того они в xml формате и хранятся!
Остальные (текстовые и числовые) поля читаются с ходу, а поле файла нет! Потому что нет в xml стандарте такого типа поля "файл". Есть. CDATA поля, но это не совсем то, да и не в CDATA пишет InfoPath.
Путём разговора с духами, я обнаружил, что ТЕЛО файла InfoPath кодирует используя Base64. И применив соответствующий метод .NET его можно преобразовать к исходному состоянию.
Однако, мы забыли про имя файла! А оно тоже зашито в этом поле!
Нет бы, не выпендриватся и поставить рядом ещё одно текстовое поле! Так нет.... Закодировали туда же. Ещё и в другом формате... в начале идёт мешанинай байт, а потом в ЮНИКОДЕ имя файла. А потом ко всему этому уже применено Base64.
Вот.. думаю как это расшифровать.