Google Wave и Drupal: ноды и блипы

Главные вкладки

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 2 июля 2009 в 22:29

Google Wave РоссияПосмотрел я видео-презентацию Google Wave, почитал отклики в сети (в том числе на нашем форуме), восхитился и решил открыть русскоязычную гугло-группу про Google Wave.
И открыл - со скромным названием "Google Wave Россия".

Upd.: Еще вот русскоязычный блог.

Ниже - первая тема для обсуждения, которую я там предложил. Она касается, конечно же, любимого Drupal'а (текст чуть изменен).

Когда я увидел видео-презентацию Google Wave (отдельное спасибо, кстати, команде хабрапереводчиков!), то сразу подумал о возможностях интеграции "волн" с классическими Content Managment System-ами. В первую очередь, конечно, с Drupal.

И не только потому, что Drupal ближе и роднее. Эта CMS по своей идеологии, как мне кажется, находится ближе остальных к тем идеям, которые заложены в Google Wave.
Смотрите: Drupal изначально ориентировался на создание сообществ (даже слоган был «Community plumbing») — GWave позиционируется как универсальное средство коллективной работы и общения. Далее, в Drupal почти все сущности унифицированы, являются node'ами (материалами, узлами, документами) — в GWave есть универсальные исходные «кирпичики», сообщения (blips). Ну и так далее.

Это первая тема, на которую хотелось бы пообщаться. Обсудить необходимость и возможность сближения идеологий классических (так сказать «сайто-ориентированных») CMS и той концепции «волнового» интернета, которую в сущности предлагает Google.

p.s. Для затравки дам еще несколько ссылок на схожие темы из англоязычного интернета (там подобное обсуждение уже идет).

- Реплика «Google Wave is "wow"» в блоге Dris Bytaert (отца-основателя Drupal). (И по-русски. Перевод Влада Савицкого)

- Начало дискуссии о Google Wave API на офсайте drupal.org (некий товарищ из Венгрии, кстати, уже застолбил модуль Wave, но как и все ждет инвайта Smile

- На drupal.org образована дискуссионная группа по Google Wave.

Комментарии

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 2 июля 2009 в 22:44

Есть и более конкретный вопрос.
Друпалер Jeffrey Scott получил доступ к «волно-песочнице» и дал довольно интересный обзор Wave Sandbox'а изнутри - http://webdevnews.net/2009/06/google-wave-sandbox-developers-preview/.

Он же начал тему об интеграции с Drupal и пытается вставить "волну" на страницу Drupal - http://www.typehost.com/blog/google-wave-embed-first-test (правда, мы с вами вместо "волны" сейчас там можем видеть только "заглушку" с wave-сервера, поскольку у нас нет доступа к sandbox'у).

Сама по себе вставка (embed) - довольно простое дело. Google дает туториал - http://code.google.com/intl/ru/apis/wave/embed/guide.html
Можно, например, для страниц с "волной" сделать шаблон определенного типа материалов ("wave"), в котором прописать необходимую html- и js-конструкцию.
Jeffry ищет варианты, как передавать туда переменную с идентификатором "волны" - waveID. Нужно понять, как получать для идентификаторы пользователей, зарегистрированных в Drupal и на wave-сервере.

Аватар пользователя PVasili PVasili 2 июля 2009 в 22:52

В чем смысл обсуждать устриц которые ни кто не ел?
Будет блюдо - будет "базар", пока подано только красивое меню...

Аватар пользователя PVasili PVasili 2 июля 2009 в 23:13

Тут скорее как анекдот: "..., а в 30лет я тупо хочу замуж."
Что-то долго тянется шарманка и PR акции пошли в стиле Джобса.
А как его ввязать в страницу? И нужно ли?

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 2 июля 2009 в 23:43

Нет, не чистый пиар, кажется.
Начальный API открыт. Вроде бы народ вовсю уже "вслепую рисует" роботов, гаджеты для будущих волновых сетей. Smile
PHP, правда, тут не в списке - python и java only.

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

А можно научиться передавать друпаловские ноды в "волну". Тогда ее (точнее, их, волны с разных сайтов) можно будет читать в google wave-клиенте (примерно как сейчас с RSS), а также всячески обрабатывать "роботами" - агрегировать/объединять с другими материалами, переводить на другие человеческие языки, проверять правописание и т.п.

Вот тут я затеял тему про разные варианты использования GW в "народном хозяйстве". Например, можно проводить разные удаленные группы, скажем, психотерапевтические или для разработчиков софта. В презентации Ларс Расмуссен показывал пример интеграции багтрекера.

Аватар пользователя VladSavitsky VladSavitsky 4 июля 2009 в 11:40

Мне кажется, что первое реальное применение в Друпал будет либо система типа CRM для крупных компаний, либо система управления проектами (багтрекер, разработка ТЗ, TODO-списки и прочее) для IT-шников.
То есть либо сначала сделают для себя, либо за очень хорошие деньги сложную систему.
Причём, если сделают наши за хорошие деньги, то на орге выкладывать никто не будет, а будут пытаться рубить капусту как можно больше и дольше.
Если сделают западники первыми для крупного клиента, то возможно появление новых модулей на орге.

Если сделают IT-шники для себя (для внутреннего пользования), то в обоих случаях возможны релизы на орге, потому что использовать для корпоративных клиентов это будет нельзя в чистом виде, а пропиариться на орге можно...

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

Я не пророчества, а предположения. Теперь будем посмотреть как всё будет развиваться...

Аватар пользователя Valeratal Valeratal 6 июля 2009 в 21:24

а я вот блин подумал о своих далеких от IT пользователях, которые даже аську на работе поставить не могут (запрещено)
как они блин волну будут ловить?, как они смогуть поставить это вав-ридер или в чем они будут работать?

Аватар пользователя alexandr.poddubsky alexandr.poddubsky 8 июля 2009 в 9:44

"PVasili" wrote:
В чем смысл обсуждать устриц которые ни кто не ел?

ага, хорошот сказал.

"11th_level" wrote:
Как только я узнал об этом проекте, я сразу же подумал об итеграции этого чуда в Drupal :)

интерпретирую. --Пару лет назад я познакомился с друпой и с тех пор постоянно думаю о ней. У нее невероятно красивоое лого, до миллиметров выверенная вёрстка и сложная, но при этом гениально сформированная структура и база, которые еле помещается в мою жо… Чёрт по–моему не туда пишу.

-------------------------------------------
кстати- кому то очень нравится гугля-

гугля создал os

хроме os

Аватар пользователя VladSavitsky VladSavitsky 10 июля 2009 в 0:06

"Valeratal" wrote:
а я вот блин подумал о своих далеких от IT пользователях, которые даже аську на работе поставить не могут (запрещено)

Ой! Было бы желание. Я знаю люди в пускают аськин трафик через свой телефон и продолжают быть на связи, хотя в локальной сети это запрещено.

Аватар пользователя felix felix 10 июля 2009 в 3:56

Что-то я сильно сомневаюсь в Wave. Поскольку это нарушает сам принцип деления информации на приватную и публичную. И так много личного, там где ему не следует быть.

Протестировал Bing.
Выдает те же страницы что и Гугл, некоторых из них уже не существует. Точно те же ссылки, только в другом порядке. (Яндекс на тот же запрос дает свои).
Откуда у него в базе контент, если я вижу поисковых роботов на своих сайтах, а новых поисковиков последнее время не было?
Ничего другого придумать не могу: Он просто тырит у Гугла.

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 12 июля 2009 в 10:10

Конкретный вопрос для знатоков. Вот есть в Google Wave такая возможность, как embed wave. По сути это просто iframe c какой-то "волной", взятой с wave-сервера. Т.е. примерно так же, как сейчас можно вставить гугловские js-виджеты (и не только гугловские).

А вопрос следующий: "знает" ли что-то о содержимом этого iframe та страница, в которую встроен виджет? Иными словами, может ли CMS получать информацию оттуда?
Google Wave Embed API не предоставляет такого метода. Но, нельзя ли это сделать через DOM?

Если такой доступ принципиально получить нельзя, то фактически окажется, что максимум, который можно получить от связки Google Wave и Drupal - это ядро Drupal с навешанными на него прибамбасами типа лент комментариев, голосовалками, рекламными модулями, фотогалереями и т.п. Это жаль, поскольку весь цимес Drupal - в единой системе нод (материалов) и в таксономии, которые будут неприменимы к контенту этих прикрепленных виджетов. Есть свет в конце тоннеля?

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 12 июля 2009 в 17:25

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

Как подсказали в гугло-группе "внешняя страница" вполне имеет доступ к встроенной через getElementById() и свойства .contentWindow и .contentDocument.
Что ж, уже прогресс. Кривой способ синхронизации CMS и Google Wave: можно отслеживать новые блипы и вносить их в базу CMS (как nodes, ноды, материалы, узлы в терминах Drupal). Это тоже нелегкая задача, учитывая нелинейное добавление блипов в волну. Новые блипы ведь добавляются в волну в любом месте, в начале, в конце, в середине. А сортировки по дате, похоже, нет.
Кроме того, при таком способе доступа мы можем работать только с "видимой" частью волны, представленной на странице.

Аватар пользователя tema tema 17 июля 2009 в 0:02

На мой взгляд интеграция Wave и Drupal должна быть на стороне сервера, а не у клиента. Пока не разбирался с ихним протоколом, радует, что он поверх XMPP, а на эту тему для Drupal есть и фреймворк, и API, и сервер, и клиент. Не уверен, что всё это живые проекты, но ясно, что с нуля начинать не придется.

"VladSavitsky" wrote:
Мне кажется, что первое реальное применение в Друпал будет либо система типа CRM для крупных компаний, либо система управления проектами (багтрекер, разработка ТЗ, TODO-списки и прочее) для IT-шников.

Это первое, что подумалось при просмотре презентации. Exchange давно пора на свалку истории.

Аватар пользователя PVasili PVasili 17 июля 2009 в 1:55

"tema" wrote:
Exchange давно пора на свалку истории.
- я бы так не утверждал :). Корпоратива очень много на нем сидит.
Во.. прям я защитник MS Smile

Аватар пользователя tema tema 17 июля 2009 в 19:08

"PVasili" wrote:
Корпоратива очень много на нем сидит

Вот именно что «сидит», половину фич не использует, потому что неудобно и падает регулярно. Манагеры смотрят эту презентацию как научную фантастику, в победу коммунизма open source не верят.

Аватар пользователя PVasili PVasili 17 июля 2009 в 19:23

"tema" wrote:
потому что неудобно и падает регулярно.
тут можно развить долгую дискуссию о руках, 80/20 и т.д. Но по отзывам 2 банковских ИТ-ников особых проблем нет.
Тем более, вся почта внутренняя и внешняя у них висит на нём + куч своих заморочек. Уж кто кто, но я не думаю, что кто-то будет использовать банках и больших компаниях то, что падает регулярно (дамы меня поддержат ;)).

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 25 июля 2009 в 8:34

Насчет синхронизации с "волной" все оказалось с точностью до наоборот. Не из Drupal'а обращаться к внедренной "волне", а писать волнового робота (на java или python), который будет взаимодействовать с Drupal - публиковать сообщения волны на Drupal-сайт. Но это если нужно глубоко интегрироваться. А просто вставка волны на любую страницу делается элементарно. Только пока надо ручками проставлять WaveID.

В плагине для WordPress это решили через вставку макросов (или как это у них там называется) по нажатию кнопки редактора. Нажал, появляется форма, которую пользователь заполняет, указывая в т.ч. WaveID. Оп, и в текст вставляется код (что-то типа [wave=1234]), который при выводе страницы превращается в код js-скрипта для вставки "волны".

У нас в Drupal это можно сделать как добавочный фильтр ввода и кнопку для BuEditor (или другого редактора).

Kipp Watson уже выложил на code.google.com пример интеграции. Но там пока фактически просто вставка стандартного js-кода. Все еще в самом начале. Кому интересно - присоединяйтесь.

Такие вот новости с полей. Или, точнее, с волн. Smile

p.s. Пару дней назад получил доступ к Google Wave Sandbox. Еще много проблем (тормозит, иногда падает, нет хорошей документации, отсутствуют многие фичи интерфейса), но очень интересно и довольно необычно. Идет интенсивная доработка, надо успеть - с 30 сентября обещается массовый (100 000 инвайтов) доступ к рабочему серверу http://wave.google.com (зарегистрируйтесь там, чтобы попасть на раздачу).

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 26 июля 2009 в 6:49

Процесс пошел. На drupal.org выложили первый приличный модуль Emwave (точнее, субмодуль к Emfield/CCK) для встраивания волны.

Здесь реализована другая идея, чем через вставку кода в текст материала - тут создается новый тип поля "волна" для CCK. Плюс: стандартизированное решение. Минус: не во всех проектах требуется использование "большого" модуля CCK.

Субмодуль имеет хорошую админскую часть - настраивается практически все, что предоставляется Embed API. (За исключением, разве что, двух callback'ов в js-скрипте. Ну это пока экзотика, хотя их можно тоже использовать, например, для вывода сообщений на странице с "волной" или каких-либо модификаций структуры страницы).

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 26 июля 2009 в 6:58

Да, кстати, для вставки волны в материал достаточно примерно такого кода:

<script src="http://wave-api.appspot.com/public/embed.js" type="text/javascript"></script>
    <script type="text/javascript">
    function initialize() {
      var wavePanel = new WavePanel('http://wave.google.com/a/wavesandbox.com/');
      wavePanel.loadWave('wavesandbox.com!w+2Bi7arMxYM%25A');
      wavePanel.init(document.getElementById('waveframe'));
    }
    </script>
  <body onload="initialize()">
    <div id="waveframe" style="width: 100%; height: 100%"></div>
  </body>

Это наверняка некорректно с точки зрения html-кода (второй тег body на одной странице), но работает. Вместо "2Bi7arMxYM%25A" надо подставлять WaveID нужной волны.

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 26 июля 2009 в 23:47

Проведем улучшения - избавимся от повторного тега body. Еще используем возможности, предоставляемые Wave Embed API на данный момент - добавим кнопки "Подключиться к этой волне", "Ответить", раскрасим волну и сделаем вызов callback при загрузке волны:

<script src="http://wave-api.appspot.com/public/embed.js" type="text/javascript"></script>
<div id="waveframe" style="width: 100%; height: 100%"></div>

// Выведем здесь какое-либо значение, например, имя пользователя. Или его волновой адрес, если он его указал в своем профиле.
// Все это не обязательно выводить именно здесь, можно использовать любой элемент на странице.
<span id="waveuser"><?php global $user; print $user->name;?></span>

<form id="comment_form">
    <button type="button" onclick="wavePanel.addReply()">Говорить сюда</button>
    <button type="button" onclick="wavePanel.addParticipant()">Следуй за кроликом</button>
</form>
<script>
var wavePanel = new WavePanel('https://wave.google.com/a/wavesandbox.com/');
// Настроим дизайн под оформление сайта (фон, текст, шрифт, кегль)
wavePanel.setUIConfig('#446666', '#cceedd', 'verdana', '9pt');
// Для примера добавим вызов функции с приветствием пользователю, в котором используем его имя. Аналогично добавляется callback к wavePanel.init
wavePanel.loadWave('wavesandbox.com!w+i7arMxYM%A', welcomeMsg("Welcome to World Wide Wave, "));
wavePanel.init(document.getElementById('waveframe'));

// Собственно callback функция, которая в этом примере формирует приветственное сообщение
function welcomeMsg(text) {
  var item=document.getElementById("waveuser");
  if(item) {
    item.innerHTML=text + item.innerHTML + "!";
  }
}
</script>

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 15 августа 2009 в 6:14

На страницу http://wavesandbox.com/ зашли?

Пока вас кто-то не включил в состав участников какой-нибудь волны, в вашем Inbox'е пусто. Тут несколько вариантов:

- Можно самому создать волну ("New wave") и добавить туда участников. Это слева панель Contacts - там в строке поиска начинайте вводить чей-нибудь адрес (например, мой - vadbars@wavesandbox.com) и появится учетная запись этого человека. Ее можно перетянуть в заголовок своей волны и тогда этот человек сможет общаться в данной волне.

- Можно дождаться, когда кто-то вас добавит в волну или "пинганет" (тогда при вашем следующем заходе вы увидите окошко с запросом к вам). Если я угадал ваш ник, то увидите мой пинг. Smile

- Можно посмотреть публичные, общедоступные волны. Для этого в строке поиска (которая в Inbox) наберите "with: public". Некоторые волны размечены тегами, поэтому можно искать и по тегам, например, "tag: russian".
Самая крупная русскоязычная волна - "Русские идут!". Сейчас там порядка 200 человек.

Заходите в группу, а то здесь писать о всяких чисто волновых подробностях - это как-то некошерно. Smile

p.s. На Хабре я разместил заметку, где свел воедино все, что на данный момент мне известно про использование Embed Wave API для встраивания волн в CMS Drupal.