воскресенье, 28 сентября 2008 г.

Яндекс.Фотки для Фотоальбома Windows Live » v0.6

Найденные на фотографиях люди (новая возможность Фотоальбома Windows Live) автоматически помечаются на Яндекс.Фотках.

Яндекс.Фотки для Windows Live Photo Gallery

Ну вот, не прошло и недели, с тех пор как я писал о новой версии Windows Live Photo Gallery, а плагин для него уже готов.

Брать здесь – http://team23.ru/PhotoGallery.html. Функционально почти ничем не отличается от плагина для Picasa, кроме одной суперфичи. Плагин автоматом помечает найденных людей на фотках (новая функция Photo Gallery) на Яндекс.Фотках, в онлайне.

суббота, 27 сентября 2008 г.

Яндекс.Фотки для Фотоальбома Windows Live » v0.5

Бета версия с минимальными, но достаточными возможностями.

Яндекс.Фотки для Фотоальбома Windows Live

Плагин для программы Windows Live Photo Gallery для публикации фотографий на сервисе «Яндекс.Фотки».

вторник, 23 сентября 2008 г.

Windows Live (wave 3 beta)

Вышла очередная бета набора программ Windows Live от Майкрософт.

Из всего набора я пока пользовался только одной программой, Windows Live Writer. Но в свете последних изменений, очень интересно посмотреть на Windows Live Photo Gallery, но об этом ниже.

Windows Live Writer, он же WLW для краткости, очень удобный клиент для ведения блогов. Этот пост пишется в нем. Для одного из проектов (http://www.greece.ru) я сделал стандартный интерфейс формата XMLRPC – MetaWeblogApi. И через WLW отлично постятся статьи богато формленные в формате HTML – ни с каким онлайновым редактором, встроенным в админку, конечно не сравнится.

У клиента есть API расширения, к нему я написал плагин для вставки фотографий в посты с сервиса Яндекс.Фотки – “Яндекс.Фотки для WLW”. В последней бете, кстати, он продолжает отлично работать. Тогда же хотел написать плагин для Photo Gallery, по аналогии моего же плагина для Picasa “Яндекс.Фотки для Picasa”,  но тогда никакого API расширения у программы не было.

С выходом же новой версии Photo Gallery заявлено о появлении программного интерфейса для загрузки фото и видео. Бегло просмотрев его – нашел вполне юзабелным, надо все-таки сделать плагин.

Особенно интересна новая функция автоматического опознавания и пометки людей на фотографиях. Похожая функциональность также появилась в новой версии Picasa, но она работает только в вебе, PicasaWeb. Здесь же эта фича работает на клиенте, локальном компьютере. И информация о опознаных людях доступна плагинам расширения. Т.е. можно сделать попытку использовать эту информацию для пометки людей на Яндек.Фотках. Там есть такая функция, только работает вручную.

Да, еще оффтопик. :) Раз уж речь зашла о различных моих расширениях для Яндекс.Фоток – упомяну еще один сервис, “Яндекс.Фотки Архив”, для скачивания альбомов с онлайного сервиса себе на компьютер.

P.S. Как нибудь в будущем раскажу подробнее о реализации плагина для Picasa. Его особенность в том, что это онлайновый сервис, и написан он на новом фреймворке ASP.NET MVC.

понедельник, 22 сентября 2008 г.

Windows Live (wave 3 beta)

Вышла очередная бета набора программ Windows Live от Майкрософт.

Из всего набора я пока пользовался только одной программой, Windows Live Writer. Но в свете последних изменений, очень интересно посмотреть на Windows Live Photo Gallery, но об этом ниже.

Windows Live Writer, он же WLW для краткости, очень удобный клиент для ведения блогов. Этот пост пишется в нем. Для одного из проектов (http://www.greece.ru) я сделал стандартный интерфейс формата XMLRPC – MetaWeblogApi. И через WLW отлично постятся статьи богато формленные в формате HTML – ни с каким онлайновым редактором, встроенным в админку, конечно не сравнится.

У клиента есть API расширения, к нему я написал плагин для вставки фотографий в посты с сервиса Яндекс.Фотки – “Яндекс.Фотки для WLW”. В последней бете, кстати, он продолжает отлично работать. Тогда же хотел написать плагин для Photo Gallery, по аналогии моего же плагина для Picasa “Яндекс.Фотки для Picasa”,  но тогда никакого API расширения у программы не было.

С выходом же новой версии Photo Gallery заявлено о появлении программного интерфейса для загрузки фото и видео. Бегло просмотрев его – нашел вполне юзабелным, надо все-таки сделать плагин.

Особенно интересна новая функция автоматического опознавания и пометки людей на фотографиях. Похожая функциональность также появилась в новой версии Picasa, но она работает только в вебе, PicasaWeb. Здесь же эта фича работает на клиенте, локальном компьютере. И информация о опознаных людях доступна плагинам расширения. Т.е. можно сделать попытку использовать эту информацию для пометки людей на Яндек.Фотках. Там есть такая функция, только работает вручную.

Да, еще оффтопик. :) Раз уж речь зашла о различных моих расширениях для Яндекс.Фоток – упомяну еще один сервис, “Яндекс.Фотки Архив”, для скачивания альбомов с онлайного сервиса себе на компьютер.

P.S. Как нибудь в будущем раскажу подробнее о реализации плагина для Picasa. Его особенность в том, что это онлайновый сервис, и написан он на новом фреймворке ASP.NET MVC.

суббота, 20 сентября 2008 г.

app_offline.htm и статический контент

В ASP.NET 2.0 есть удобная фича, когда надо провести над сайтом массовые обновления. Чтобы пользователи не получали случайные ошибки, работу сайта можно временно приостановить, положив в корень приложения файл app_offline.htm. При этом пул приложения выключается (это фича также полезна если нам надо просто перегрузить сайт).

При наличии этого файла все запросы к сайту возвращают его содержимое с кодом 404 (чтобы поисковики не проиндексировали). Но вот засада – при обращение к статическим файлам – тоже возращается его содержимое! Т.е. не css внешний, ни картинки вставить в этот файл не получится.

Скорей всего, это происходит только с файлами ассоциированными для обработки ASP.NET. Но в встроенном веб-сервере Visual Studio Cassini и IIS 7.0 все файлы им обрабатываются! И выключить на уровне только папки со статическим содержимым модуль ASP.NET невозможно, только на уровне всего приложения. :(

UPDATE: Решил проблему несколько подругому :).

Так как с ASP.NET мы ничего сделать не можем, оффлайновый файл всегда на него влияет, нам нужен второй сайт, где ASP.NET нет. Но для этого не обязательно держать второй сервер с копией статических ресурсов. Можно завести второй сайт указывающий на ту же физическую директорию, где и основное приложение, и выключить для него ASP.NET.

Или же, что более элегантно, если все ресурсы хрянться в одной папке – создать второй сайт с корневой директорией именно в ней. Там не будет никакого asp_offline.htm файла – так что ASP.NET отключать не надо.

Конечно, чтобы обращаться к этому второму сайту – ему надо будет завести dns имя, что-нибудь типа static.example.com. И соответсвенно, прописать ссылки на необходимые статические ресурсы в файле app_offline.htm на этот домен.

Вот такое решение на практике. :)

app_offline.htm и статический контент

В ASP.NET 2.0 есть удобная фича, когда надо провести над сайтом массовые обновления. Чтобы пользователи не получали случайные ошибки, работу сайта можно временно приостановить, положив в корень приложения файл app_offline.htm. При этом пул приложения выключается (это фича также полезна если нам надо просто перегрузить сайт).

При наличии этого файла все запросы к сайту возвращают его содержимое с кодом 404 (чтобы поисковики не проиндексировали). Но вот засада – при обращение к статическим файлам – тоже возращается его содержимое! Т.е. не css внешний, ни картинки вставить в этот файл не получится.

Скорей всего, это происходит только с файлами ассоциированными для обработки ASP.NET. Но в встроенном веб-сервере Visual Studio Cassini и IIS 7.0 все файлы им обрабатываются! И выключить на уровне только папки со статическим содержимым модуль ASP.NET невозможно, только на уровне всего приложения. :(

UPDATE: Решил проблему несколько подругому :).

Так как с ASP.NET мы ничего сделать не можем, оффлайновый файл всегда на него влияет, нам нужен второй сайт, где ASP.NET нет. Но для этого не обязательно держать второй сервер с копией статических ресурсов. Можно завести второй сайт указывающий на ту же физическую директорию, где и основное приложение, и выключить для него ASP.NET.

Или же, что более элегантно, если все ресурсы хрянться в одной папке – создать второй сайт с корневой директорией именно в ней. Там не будет никакого asp_offline.htm файла – так что ASP.NET отключать не надо.

Конечно, чтобы обращаться к этому второму сайту – ему надо будет завести dns имя, что-нибудь типа static.example.com. И соответсвенно, прописать ссылки на необходимые статические ресурсы в файле app_offline.htm на этот домен.

Вот такое решение на практике. :)

четверг, 18 сентября 2008 г.

OpenSocial - авторизированные изменения на внешнем сервере

В OpenSocial (по крайней мере версии 0.7) есть возможность хранить пользовательские данные в самом контейнере. Мне необходимо также (или вместо) хранить эти данные на моем сервере.

В версии 0.8 возможно будут какая-то интеграция с OAuth, так как там появляется дополнительные интерфейсы, для работы по принципу REST с внешними серверами. Однако в версии 0.7 такого нет.

Очевидно, надо вывесить какой-то внешний интерфейс, при вызове которого (обязательно методом POST) можно записывать данные. Но надо как-то авторизовывать эти вызовы (подразумевается злоумышленник знает url этого интерфейса). Как-то надо ограничивать вызовы только с моего приложения.

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

Но тут возникает проблема, раз злоумышленник знает принцип работы интерфейса, он может зайти на страничку приложения в контейнере, узнать его ID - и подставлять при своих вызовах. Т.е. надо найти какой-то секретный ID, который нигде не показывается, а доступен только изнутри приложения.

Также, остается еще возможность перехвата трафика и выуживания оттуда ID - но этот вариант мы не рассматриваем как маловероятный, и решающийся с помощью SSL.

Any ideas or suggestions?

UPDATE: В OpenSocial 0.8 с этим все хорошо, смотрим использование параметра gadgets.io.AuthorizationType.SIGNED. Осталось узнать как с этим в 0.7 (вроде этот параметр есть) и даже если он есть, как с его поддержкой в наших отечественных социальных сетях (вернее, пока единственной сети поддерживающей OpenSocial – МойМир).

четверг, 11 сентября 2008 г.

Яндекс.Фотки для Picasa » Picasa 3 (beta)

Вышла бета следующей версии Picasa. Наш плагин замечательно с ней работает. :)