Предлагаю добавлять свои вопросы в этот топик.
Пожалуйста, нумеруйте их, чтобы было легче ориентироваться в вопросах-
ответах. Если возникнет потребность организовать длинные обсуждения по
ответам Вадима, лучше выносить их в отдельные топики.
1) Какие направления в разработке приложений для Google Wave вы
считаете наиболее востребованными и перспективными сейчас? Есть ли
рынок для таких приложений в коммерческом смысле, собирается ли Google
делать что-то вроде AppStore?
2) Какой перевод терминов "Wave" - "Wavelet" - "Blip" вы бы
предложили?
3) Используете ли Google Wave вы и ваши коллеги из Гугля в
профессиональном и личном общении? Ваши впечатления, насколько это
удобно и насколько уже отработана технология.
4) Имеют ли смысл региональные сообщества разработчиков и
пользователей Google Wave или лучше общаться "централизованно" и на
английском языке? Если смысл имеется, на что нам стоит обратить
внимание в первую очередь?
5) Можно ли на GWT + Wave library писать standalone приложения?
Например, я думаю, что может потребоваться "волновой" клиент для
общения в стиле IM (сидящий где-нибудь в трее). Держать постоянно
открытым браузер для такой задачи - это, наверное, стратегически
правильно (Google Chrome OS "внутри" браузера, переход на
исключительно веб-приложения и т.п.), но пока только перспектива.
Спасибо.
> 1) Какие направления в разработке приложений для Google Wave вы
> считаете наиболее востребованными и перспективными сейчас? Есть ли
> рынок для таких приложений в коммерческом смысле, собирается ли Google
> делать что-то вроде AppStore?
Сейчас наиболее удачное время для начала разработки приложений. Сама
волна находится в сравнительно ранней стадии разработки, когда уже
есть много идей, но еще очень мало реализовано в использовании этой
технологии. На мой взгляд, самые перспективные направления связаны с
использованием возможности поддержки многих пользователей в реальном
времени. Это касается, обмена сообщениями, совместной работы над
документами, и компьютерных игр с большим количеством участников.
Волна поддерживает связь между клиентами и сохранение состояния и
истории за счет инфраструктуры Гугла. Разработчики могут уделять
больше внимания содержанию, не тратя время на разработку, установку и
поддержку серверов.
Возможность коммерческого распространения приложений рассматривается.
Но конкретные детали того, как это будет организовано, еще не ясны.
> 2) Какой перевод терминов "Wave" - "Wavelet" - "Blip" вы бы
> предложили?
Волна, подволна, блип.
> 3) Используете ли Google Wave вы и ваши коллеги из Гугля в
> профессиональном и личном общении? Ваши впечатления, насколько это
> удобно и насколько уже отработана технология.
Да, команда волны активно использует и одновременно работает над
улучшением пользовательских качеств системы. Волна удобна для
повседневного общения и заметно отличается от других приложений для
связи. С моей точки зрения наиболее привлекательная сторона волны --
это возможность использования гаджетов, роботов и поддержка истории
диалогов. Например, обратите внимание на последнюю часть демонстрации,
в которой робот Rosy переводит сообщения на выбранный язык в реальном
времени.
Основная трудность -- это то, что еще не всем можно посылать волны.
Количество пользователей ограничено.
> 4) Имеют ли смысл региональные сообщества разработчиков и
> пользователей Google Wave или лучше общаться "централизованно" и на
> английском языке? Если смысл имеется, на что нам стоит обратить
> внимание в первую очередь?
Команда разработчиков волны в Гугле сравнительно небольшая (около 50
человек на сегодня). Поэтому уделять внимание разработчикам и
пользователям во всем мире силами команды невозможно. Поэтому помощь и
поддержка региональных групп очень важна. Например, вы можете помочь в
переводе и адаптации к местным условиям и обсуждении общих вопросов по
использованию волны и разработке приложений. Вы также можете повлиять
на будущее развитие волны.
> 5) Можно ли на GWT + Wave library писать standalone приложения?
> Например, я думаю, что может потребоваться "волновой" клиент для
> общения в стиле IM (сидящий где-нибудь в трее). Держать постоянно
> открытым браузер для такой задачи - это, наверное, стратегически
> правильно (Google Chrome OS "внутри" браузера, переход на
> исключительно веб-приложения и т.п.), но пока только перспектива.
GWT компилирует Java в JavaScript код и упрощает разработку сложных
приложений для работы в браузере. Предполагается, что GWT +
существующая Wave library должны работать браузере. GWT предоставляет
возможность разрабатывать приложения, аналогичные по качеству и
сложности пользовательского интерфейса в "standalone" приложениях, для
браузера.
Поскольку все протоколы будут открыты, то разработка вне-браузерных
приложений тоже не исключается.
> Спасибо.
>
> >
>
> 2) Какой перевод терминов "Wave" - "Wavelet" - "Blip" вы быВолна, подволна, блип.
> предложили?
Если есть желание обсудить ответы Вадима или высказать свое
развернутое суждение по затронутым темам - прошу открывать отдельное
обсуждение. В начале его можно просто дать ссылку, на какое сообщение
вы реагируете.
Operational transformation -- это понятие из прикладной математики:
http://en.wikipedia.org/wiki/Operational_transformation. Основная
идея: система операций над документами и алгоритм их выполнения и
синхронизации должны обеспечивать сходимость к одинаковому результату
независимо от последовательности в которой клиенты видят версии
документа и производят изменения.
Было бы полезно перевести статью из Википедии.
Интересно так же отметить, что OT системы обычно работают с текстовыми
операциями и могут быть плохо приспособлены к согласованию численных
или других объектов. Вы можете столкнуться с подобной
проблемой в написании гаджетов и роботов.
> 2) могут ли гаджеты в волне взаимодействовать друг с другом, или они
> исключительно варятся в собственном соку?
В настоящее время гаджеты могут видеть только свое собственное
состояние и участников волны и изменять только свое состояние. Для
более сложного взаимодействия необходим робот, который может видеть и
модифицировать всю волну. Волна будет поддерживать установку
"расширений", которые могут включать любой набор гаджетов и роботов,
предназначенных для совместной работы.
Общий подход: гаджеты предназначены для сложных пользовательских
интерфейсов и алгоритмов для выполнения в волне на клиенте; роботы
предназначены для автоматической обработки/модификации/синхронизации
содержимого волны с сервера.
> 3)
>>
>> > 2) Какой перевод терминов "Wave" - "Wavelet" - "Blip" вы бы
>> > предложили?
>>
>> Волна, подволна, блип.
>
> Насколько это устоявшийся/рекомендуемый вариант?
Мое дело предложить :)
Wavelet имеет смысл части волны. Существует таже математическое
понятие wavelet, которое обычно переводится как вейвлет. Но, по-моему,
подволна в контексте волны выглядит лучше.
Изначальное значение blip -- это всплеск на экране осциллографа или
радара. Переводится плохо, и смысловая связь с волной не вполне
определена. По-моему, блип звучит лучше, чем всплеск или бульк.
>
> >
>
> 1) Что в команде Гугл и вообще англоговорящими понимается под OperationalOperational transformation -- это понятие из прикладной математики:
> Transformation?
> - сам подход к совместному изменению документов отдельными операциями,
> вместо, например, пересылки новых версий и ручному их сведению - т.е.
> "пооперационное преобразование (документов)"
> - тот аспект этого подхода, что операции при нём невозможно не подгонять под
> паралельно произошедшие конкурентные правки - т.е. "преобразование
> операций"?
http://en.wikipedia.org/wiki/Operational_transformation. Основная
идея: система операций над документами и алгоритм их выполнения и
синхронизации должны обеспечивать сходимость к одинаковому результату
независимо от последовательности в которой клиенты видят версии
документа и производят изменения.
Было бы полезно перевести статью из Википедии.
Интересно так же отметить, что OT системы обычно работают с текстовыми
операциями и могут быть плохо приспособлены к согласованию численных
или других объектов. Вы можете столкнуться с подобной
проблемой в написании гаджетов и роботов.
Речь идет о трансформации операций. Операции включают элементарные
действия такие, как добавить или удалить текст в определенном месте в
документе. В операцию входят координаты и что сделать с текстом. Под
трансформацией операций понимается действие, которое из двух (или
более) операций получает одну, которая либо объединяет действия двух
операции (прямая трансформация), либо исключает действие одной
операции из действия другой (обратная трансформация). Это все
расписано в статье в википедии.
Operational Transformation также является названием общего подхода к
изменению и синхронизации документов при помощи такого рода операций и
трансформаций.
>
>>
>> Было бы полезно перевести статью из Википедии.
>
> Да читал я её.. Из неё ответ на мой вопрос так же не следует, как и из
> Вашего ответа ;)
>
>>
>> Интересно так же отметить, что OT системы обычно работают с текстовыми
>> операциями и могут быть плохо приспособлены к согласованию численных
>> или других объектов. Вы можете столкнуться с подобной
>> проблемой в написании гаджетов и роботов.
>
> А в чём именно проблема, и что такое численный объект?
> Или Вы о гипотетической синхронизации таким образом содержимого какой-нибудь
> JPEG-картинки, RAR-архива или экзешника, в которых подобное сведение
> изменений без учёта внутренней бинарной структуры неизбежно приведёт к
> полному внутреннему рассогласованию?
>
Обычно, операции определяются только для текста. И проблемы могут
возникнуть даже с элементарной арифметикой. Если два клиента
одновременно заменят 1 на 2 (текст, интерпретируемый как число),
используя текстовые операции, конечный результат будет 22.
> >
>
>Обычно, операции определяются только для текста. И проблемы могут
>>
>> Было бы полезно перевести статью из Википедии.
>
> Да читал я её.. Из неё ответ на мой вопрос так же не следует, как и из
> Вашего ответа ;)
>
>>
>> Интересно так же отметить, что OT системы обычно работают с текстовыми
>> операциями и могут быть плохо приспособлены к согласованию численных
>> или других объектов. Вы можете столкнуться с подобной
>> проблемой в написании гаджетов и роботов.
>
> А в чём именно проблема, и что такое численный объект?
> Или Вы о гипотетической синхронизации таким образом содержимого какой-нибудь
> JPEG-картинки, RAR-архива или экзешника, в которых подобное сведение
> изменений без учёта внутренней бинарной структуры неизбежно приведёт к
> полному внутреннему рассогласованию?
>
возникнуть даже с элементарной арифметикой. Если два клиента
одновременно заменят 1 на 2 (текст, интерпретируемый как число),
используя текстовые операции, конечный результат будет 22.
On 06/26/2009 12:12 AM, Naomi Bilodeau wrote:
> I have just uploaded the Russian track to the Google Wave video.
(речь идёт о нашем переводе субтитров "developer preview")
> I sent it to a Russian member of the Google Wave team and he could not
> help himself, he made a few small edits to make things clearer.
> The Wave team was really excited to see the captions --
> I think this will be really helpful for developers in Russia.
Я правильно догадываюсь о том, кто этот russian member,
или в команде более многочисленная русская диаспора ?:)
В зависимости от контекста, Operational Trasformation -- это либо
преобразование операций в математическом смысле, либо подход к
сихронизации документов при помощи преобразований операций в
инженерном смысле.
Да, результат: одно удаление и два добавления, если изменяется текст
внутри одного элемента.
> Хотя, если этот текст - XML-ка например от гаджета карты, и один участник
> двигает узел карты в одну сторону, а другой в другую - то на сервер придут
> операции про атрибуты элемента или про подэлементы этого XML, и как-то
> должны будут объединяться. И считать это удалением и вписыванием вряд ли
> получится...
>
Изменение атрибута является отдельной операцией, которая всегда
полностью заменяет содержимое атрибута. В этом случае клиент,
пославший операцию последним, "выигрывает" изменение.
> А кстати, а если один участник правит волну в офлайне - исправляет опечатки
> в фрагменте, который в это время в онлайне другой участник вовсе целиком
> удаляет - что произойдёт с волной, когда офлайновый участник подключится и
> пошлёт свою операцию? Он увидит, как его исправления исчезают вместе с
> фрагментом, или удалявший увидит, как фрагмент возрождается в подправленном
> виде? Как такие конфликты вообще решать?
>
>
Если полностью удаляется элемент, редактируемый офлайновым клиентом,
то вся редактируемая часть исчезнет. Если же удаляется часть текста
внутри элемента, то исчезнет все, за исключением текста, добавленного
офлайновым клиентом. Конечный результат зависит от организации
редактора. От того, как разбит текст на элементы, и какие операции
применяет редактор для изменения текста.
>
> >
>
Может лучше "вихрь"?
1. Правильно ли я понимаю, что джаббер-технологии были выбраны по
причине готового решения транспорта S2S (и еще некоторых моментов)?
2. Какова причина того, что клиент обращается напрямую к волноводу, а
не через джабберный C2S? Ограничения C2S, или из меркантильных
соображений?
Да. Стандарт publisher/subscriber джаббера хорошо подошел для
федерации серверов волны.
> 2. Какова причина того, что клиент обращается напрямую к волноводу, а
> не через джабберный C2S? Ограничения C2S, или из меркантильных
> соображений?
Джабберный XMPP C2S стандарт не подошел для начальной разработки
существующего клиента по техническим причинам. Клиент Волны для
браузера и соответствующий сервер работают c набором HTTP технологий.
В принципе, XMPP может быть использован и стандартизирован для
клиентов/серверов Волны в будущем.
> >
>
2009/8/12 HG :
Попробую,вмешавшись, ответить. Роботы - обычные приложения google app
engine, и, как все appengine приложения выполняются в песочнице, т.е.
многие вызовы, такие как доступ к файловой системе, tcp сокеты, и
другие подобные библиотечные вызовы таким приложениям недоступны.
Для получания данных по http в appengine можно пользоваться сервисом
urlfetch [1]. Другие доступные сервисы настранице [2], аналогичные
сервисы доступны для java-приложений.
Надеюсь, это полезная информация ;)
[1] http://code.google.com/appengine/docs/python/urlfetch/overview.html
[2] http://code.google.com/apis/wave/extensions/robots/python-tutorial.html
- --
DU
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkqC83kACgkQqdN5Ji6Vwme7sACfZYWDo++eb/BLWr1HmGIFu31K
TbUAmwVec15+lxCa7VYZj8c42YZXEbOJ
=fDNT
-----END PGP SIGNATURE-----
Могу добавить, что в моем случае urlfetch вполне нормально работает,
как пример -
http://vdb-app.appspot.com/urlfetchtest/mit.edu
- --
DU
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkqC9KIACgkQqdN5Ji6Vwmcw7gCghjAXF9B4/tEJIA+r2c+dYqO3
/cgAnRBJwfIbQWYihLK9gvN3/Z9xiJTG
=yqDx
-----END PGP SIGNATURE-----