мои первые игрушки: волновой гаджет «Meeting Time Matcher»

    Собираться группами по трое и больше — обычная практика для людей.
    Иногда можно созвониться и договориться о месте и времени встречи, иногда можно объявить о встрече у себя в блоге.
    Однако, ситуация может заметно осложниться, если вы собираете не тусовку на свой день рождения в родной деревне, а онлайновую встречу с участниками из разных концов света и, как следствие, в разных часовых поясах, которых только в России 11. Так, что когда у вас среда, у кого-то может быть уже четверг, и выбрать оптимальное время для встречи может оказаться нетривиально

    Сделанный мной гаджет предназначается какраз для таких ситуаций.
    • организатор вставляет в объявление гаджет и обозначает даты, когда предполагается встреча;
    • участники отмечают в табличке время, когда они в эти дни свободны, и их выбор запоминается;
    • гаджет показывает, сколько участников могут быть в онлайне для каждого интервала времени;
    • все участники видят табличку в своём родном часовом поясе, но при желании могут переключиться на чужой, посмотреть «сколько это у него времени будет»;

    image
    Посмотреть в действии можно в этой волне
    URL гаджета для вставки в волны кнопкой «install gadget by URL» есть во вкладке «help».
    А в отдельной волне есть инсталятор с удобной кнопкой, чтоб не париться с URLами.


    Сам алгоритм весьма прост — для каждого выделенного участникам интервала ищутся пересечения со всеми остальными и считается количество таких пересечений. Тоесть порядка n*m для каждого обновления графика.
    (Я наивно полагал что нарисую гаджет в два присеста. Присестов, однако, получилось 80, где-то с дюжину сессий.)
    Попутно был нарисован jquery-ui виджетина для графика «свободного времени»,
    а также прототип объекта Date с возможностью выбора часового пояса.
    Всё это хостится на гуглокоде.

    Критика и пожелания как по функционалу так и по коду всячески приветствуются тут в комментах или в демо-волне.
    Поделиться публикацией
    Комментарии 27
      +1
      кстати, парюсь приделать индикатор текущего времени так, чтобы он был поверх всей таблички, а не только линейки с часами.
      буду благодарен если кто подскажет.
        0
        а если я хочу назначить на, скажем дату, которая будет через неделю, это вообще возможно?
          0
          да запросто.
          даты встречи кликаются и там выскакивает стандартный datepicker
            0
            Это только у организатора, вроде бы?
              +1
              да, и это серьезный недостаток (
                0
                А что так — недостаток? Имхо, все логично. Организатор мероприятия выставляет примерные границы, когда его следует проводить. Например, где-то с понедельника по среду. А участники уже показывают то время, когда они смогут принять участие.
                  0
                  А если организатор предлогает Завтра, а остальные хотят Послезавтра, им об этом придется в коментах писать, т.к. Послезавтра доступно только для автора.
                    0
                    он на то и организатор что ответственен за выбор дат.
                    даты можно поменять и потом, если народ так уж хочет послезавтра.
                      0
                      а если выбор организатора не категоричен, ему нужно заранее разброс предусмотреть (если он возможен, естественно). Для этого предется всех сначала опросить. Зачем тогда этот гаджет, если каждый будет свою дату писать в коменты?
                        0
                        Тогда пусть ставит большой диапазон — неделю, месяц…
                          0
                          ну гаджет как бы для выбора времени в пределах обозначенной даты а не для выбора самой даты.
                          если выбор организатора не категоричен — ничего не мешает выбрать там неделю или месяц, или целый год.

                          usecase: «давайте когда-нибудь встретимся в следующем году, уточните, в котором часу вам удобнее» :)
                            0
                            ну можно же расширить возможности гаджета:

                            Кто-то предлагает встречу, (онлайн или оффлайн — неважно), и вставляет гджет.
                            Все начинают клацать по клеточкам, и отсрочивать встречу пока не наберется достаточное количество совпадений. Благодаря реалтайму все будет происходить достаточно быстро.
                            А в случае единогласного решения (когда все согласны с конкретным временем), можно автоматом прекращать голосование, или как-то оповещать, что мол, договорились.
                              0
                              типа того, что я приглашаю на свой ДР в субботу, а народ выбирает в следующую пятницу? :)
                              я не совсем понимаю для какого случая использования нужно «голосование» по датам, и почему не подходит режим установить даты на неделю/месяц.
                              (ну, кроме того, что оно будет мелко смотреться и долго рисоваться), и зачем может понадобиться «заморозка» выбора времени/дат.

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

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

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

                                      а вот оповещать каким-то отличным от обновления блипа способом это надо уже робота прикручивать.
                                      «этим у нас трансагентство занимается» :)
                                        0
                                        робот — хорошо, но достаточно какой-нибудь подсветки, или надписи внутри гаджета.
                                          0
                                          ну это можно.
                                          изначально даже так и было.
                                          только вот вполне реально, что максимальное (100%) количество придётся на несколько интервалов, и как это наглядно изобразить, кроме как красненьким на цветной линейке — я слабо представляю.
                0
                Да. Я не на те кликал )

                А что за стрелочки?
                  0
                  Справа? Это указатели, у кого из участников тот часовой пояс, который указан справа вверху. Его, кстати, можно поменять — надо щелкнуть по надписи типа «GMT+5», появится выпадающее меню.
                  Полезно, если вы поехали например в другой город, где другое время.
                    0
                    щас нарисую хелп :)
                0
                Вот Макс скромничает, а между тем этот гаджет уже прошел боевое крещение. Мы с его помощью планировали совместное участие людей из Сиднея, Киева, Екатеринбурга, Новосибирска, Сан-Диего во время марафона с Ларсом Расмуссеном. Разница в часовых поясах участников была огромной — от -8 GMT до +8GMT, если правильно помню.

                И Ларс хорошо отозвался о гаджете (о Максе, кстати, тоже :).
                  0
                  -7 (тихоокеанское), +11 Сидней

                  хватит меня уже хвалить и пиарить всюду :)
                  и так уже чёрте где кругом засветился.
                  волно-джедай блин :)
                    0
                    7+11=18 часов разницы, т.е. еще больше, чем я написал.

                    p.s. Ну, один пиар все же был успешным для тебя, кажется. :)
                    И вообще, Волно-джедай, ты что — мести Палпатина боишься? Ладно, теперь буду ругать везде. :)
                  0
                  Прочитав заголовок, сразу подумал, что тяжелым было детство… =)
                    0
                    играть приходилась гаджетами в волне…

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое