Mozilla Raindrop

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:53, 20 июня 2016.
Mozilla Raindrop
fraimed
Разработчики: Mozilla Corporation
Операционная система: Кросс платформенная
Тип ПО: Mozilla Public License 1.1
Веб-сайт Официальный сайт Raindrop

Raindrop - это приложение для обмена сообщениями, созданное на основе CouchDB Apache [1], который используется через веб-интерфейс. Основная идея Raindrop Mozilla агрегатора заключается в установке приоритетов для сообщений, а также отслеживании обновлений буквально везде где это только возможно.

Основная идея

Основная идея Raindrop заключается в сохранении не просто ссылки на заинтересовавшую вас страницу, а и расположенного на ней контента. То есть, если вы читаете статью, то сохранится ее текст с иллюстрациями, на странице фотогалереи сохранится соответствующее фото, а с YouTube – видео. Причем все это происходит автоматически, так как сервис в состоянии самостоятельно распознавать основное содержание страницы. Неважно где пользователь начал обсуждение новой темы, в электронной почте, твиттере, блоге, социальной сети или ленте RSS, Raindrop собирает переписку из всех этих источников вместе, чтобы не приходилось отслеживать все эти ресурсы по отдельности. При этом важной частью работы Raindrop является определение приоритета тех или иных сообщений для пользователя. К примеру некоторые письма могут быть очень важными, а часть из них является обычным спамом. Raindrop должен определять это автоматически и в первую очередь информировать о действительно важных событиях.

Raindrop.jpg

Возможности

Raindrop сохраняет контент в зависимости от типа страницы. A также доступны следующие возможности:

Raindrop2.png
  • Подписки - На публичные коллекции можно подписываться
  • Поиск - Возможность искать контект по заголовку, описанию, тегам, сайту или типу закладки
  • Импорт и экспорт закладок - Из любого браузера и некоторых сервисов

Бэк-энд

Работа системы Raindrop и части системы на CouchDB. Сервер на Python при запуске raindrop.py выполняет процесс 'начальной загрузки', когда он запускается. Создает базу данных, если это необходимо, а затем создает определенные couch документы, необходимые для работы Raindrop - эти файлы включают в себя все настройки пользовательского интерфейса, сведения об учетной записи и так далее.

В то время как среда Raindrop выполняет загрузку свеого содержимого из базы данных, процесс начальной загрузки всегда сравнивает файлы в исходном дереве Raindrop с версией в Couch и обновляет Couch документы в соответствии с требованиями. Это делается в первую очередь, чтобы сделать инструмент простым для разработчиков Raindrop,а также, чтобы поддерживать первоначальное состояние в системе и управленять версиями.

Очередность работы

Очередность работы описывает, как Raindrop расширение работает над документами. Есть 2 различных "очереди", по-разному сообщающие об изменениях, внесенных в базу данных в порядок того, как они произошли или происходят.

Входящая очередь

'Входящая очередь' - это код, который запрашивает CouchDB на изменения базы данных сразу, как они происходят. Каждый раз, когда новое изменение видно, Raindrop определяет идентификатор для элемента, определяет, какие расширения нужно запустить над элементами и выполняет эти расширения.

Отстающая очередь

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

Фронт-энд

Фронт энд Raindrop является частью, которая создает пользовательский интерфейс. Пользовательский интерфейс написан на HTML, JavaScript и CSS и служит в качестве надстройки для обработки файлов с CouchDB.

Уровни кода

  1. JavaScript Data Api обрабатывает запросы к CouchDB (в /клиент/Raindrop/Lib/rd/API)
  2. UI виджеты, которые используют в API JavaScript (в /клиент Raindrop /Lib /RDW)
  3. Веб-приложения, использующие UI виджеты (в raindrop/клиент/директории, не относящиеся к "lib", "dojo" или "bespin")

JavaScript Data API

rd.api().conversation({
  ids: []
})
.ok(function(json) {

})
.error(function(err) {

});

UI Виджеты

Виджеты UI используют API JS данных для отображения каких-либо аспектов бэк-энд данных. Они расположены в клиенте Raindrop/Lib/RDW. Большинство виджетов происходят из rdw._Base баз. Система виджетов Dojo's Dijit используется для виджетов rdw._Base, котороые в свою очередь использует dijit._Widget и dijit._Templated. Он также загружает пакет i18n по умолчанию и создает некоторые служебные методы для работы с дочерними виджетами.

Веб приложение

Самый высокий уровень структуры кода является приложение. Оно использует HTML, JavaScript и CSS файлы, которые находятся в папке RDW или непосредственно в клиенте. На данный момент, были запущены следующие приложения:

  • raindrop/rdw/client/extender/ - Пользовательский интерфейс для создания простых расширений и использовании их.
  • raindrop/rdw/client/inflow/ - Основное приложение raindrop - показывает ваши сообщения основанные на разговорах и контексте взаимодействия с другим человеком.
  • raindrop/rdw/client/inflowgrid/ - эксперимент, который исследует альтернативное представление поточного приложения с использованием строгого макета сети.
  • raindrop/rdw/client/rd_list/ - Перечень установленных приложений.
  • raindrop/rdw/client/settings/ - Показывает учетные записи пользователя, позволяет изменять настройки для каждой учетной записи.

Примечания

  1. CouchDB — документо-ориентированная система управления базами данных с открытым исходным кодом, не требующая описания схемы данных, написана на языке Erlang.

Ссылки