Обзор гаджетов, Часть 2 (мои!)
Итак, продолжаю обзор. На очереди оказались мои гаджеты. Попробую их поподробнее описать. Что как и для чего создавалось. А то явно оценки раздаются на право и на лево без понятия и закачек.
Travian Gadget (Beta)
Платформы: Windows XP, Windows Vista
Мой первый пробный гаджет. Был написан для онлайн игры travian. Особенностью гаджета является обход непростой защиты игрового сайта, созданной специально для предотвращения написания ботов. Данный гаджет все же был легальным т.к. предполагал только отображение обзорной информации, а не автоматизацию действий игрока.
На вооружение были взяты непростые RegExp и многочисленные запросы XmlHttpRequest и преобразования XSLT.
К сожалению, гаджет не вышел пока из беты т.к. не все защиты были сломаны, а точнее сайт особым образом отслеживал сессии кукисами, что приводило к помехам пользования игрой в браузере при работе гаджета.
Возможно, все еще улучшу когда время появится.
Steam Gadget
Платформы: Windows XP, Windows Vista
Мой последний гаджет, но идет вторым т.к. тоже игровая тематика. Этот гаджет считаю самым сложным и весомым т.к. он прошел уже 6 версий с множеством тестирующих и множеством поправок и доработок.
Гаджет ориентирован на пользователей игрового движка Steam. Любители Half-Life, Conter-Strike и DOD наверняка с ним знакомы. Ну точнее лицензированная их часть ;) Steam является продуктом фирмы Valve, предназначенным для запуска, загрузки и поддержки разнообразных игр. Их действительно не только 3, а сотни и тысячи. Для сетевой игры они все используют унифицированный протокол или адоптированы под него. В комплекте идет и браузер игровых серверов, но он слегка тяжеловесен и менее удобен нежели гаджет.
Мой гаджет позволяет пользователям Steam видеть состояние любимых серверов из системы Steam на sidebar. Список серверов действительно вычитывается из самого Steam. Затем в соответствии с настройками гаджет опрашивает сервера и отображает информацию по ним. При клике сервер можео получить более детальную информацию по игре, список игроков и предпросмотр карты.
Окно свойств позволяет отфильтровать сервера по играм и статусу и задать другие настройки.
Кроме того, гаджет позволяет вызывать некоторые функции оригинального Steam такие, как оригинальный список серверов и друзей. А также позволяет на ходу вступить в игру нажав на кнопку "Connect".
В первый же день публикации на офф форуме, гаджет попал в обзор. Многие действительно пользуются этой штукой и находят её интересной. Одни из последних изменений уже делались по запросу пользователей и их отзывам.
Единственный мой гаджет, который выходит за рамки стандартного HTML+JS. Для опроса UDP портов пришлось применить модули на .net 2.0, но во избежание регистрации доп. компонентов и требования прав администратора, свои компоненты оформлены в виде исполняемых файлов, выдающих результаты в файлы в temp папке.
Гаджет использует много полезного кода для гаджетов:
- экономия процессорного времени (авто-обновление приостанавливается при ждущем режиме или при работе sreensaver'а и прочих режимах, когда sidebar не виден.)
- Гаджет имеет индикатор обновления, иконка вверху мигает зеленым при опросе серверов и краснеет при возможных ошибках.
- Размер гаджета автоматически меняется в зависимости от количества активных серверов в списке и их реальной высоте на экране.
- При работе с файлами используется отказоустойчивая асинхронная процедура доступа к файлу.
Для построения интерфейса активно используется XSLT. Код гаджета написан на managed c# с последующей конвертацией в JS благодаря технологии Script# от Nikhil Kothari. Это дает возможность быстро разрабатывать и поддерживать сложный код, автоматически получая все преимущества контролируемого кода.
Из технических деталей стоит еще отметить специальный сервис, добавленный в версии 1.6, который поставляет изображения предпросмотра карт для гаджета. Это позволило на порядок сократить размер гаджета и пополнять список доступных для предпросмотра карт без обновления гаджета.
По многочисленным просьбам гаджет также был специально отлажен для работы под WindowsXP (VAIO).
MyIP
Платформы: Windows XP, Windows Vista
Простенький, но удобный гаджет. Позволяет узнать свой внешний IP адрес (и домен) и скопировать его в буфер обмена.
Делал как минимум для себя. Иногда нужно такое.
Технически используется внешний сервис и результат выводиться на экран. Доменное имя в хинте. при наведении мыши появляются доп. кнопки "скопировать" и "обновить".
ОГО! статистика
Платформы: Windows XP, Windows Vista
Гаджет ориентирован на пользователей популярного интернет ОГО от укртелеком. Число таких пользователей не маленькое в каждом городе.
Гаджет работает автоматически без ввода паролей и отображает статистику использования трафика, основанную на измерениях самого провайдера.
Показывает статистику за последний доступный день и за весь месяц. Кликнув на месяце можно получить подробную статистику по дням. Довольно симпатичный и полезный гаджет, особенно для тех, кто пользуется не анлимитными пакетами.
Гаджет тоже делался для себя в течение нескольких часов. Плюс было несколько мелких улучшений позже.
QuickSMS
Платформы: Windows XP, Windows Vista
После публикования BestSoftService своего live гаджета с отправкой sms очень захотелось иметь подобную штуку на рабочем столе. Поскольку никто не спешил реализовывать, решил сделать сам. Основными изюминками гаджета являются направленность на удобный и быстрый доступ к написанию гаджета и возможность его улучшения без дополнительных апдейтов т.к. провайдеры часто меняют свои сервисы и нужно оперативно под них подстраиваться. Для этого было решено добавить адресную книгу, опцию повторной отправки текста предыдущего сообщения, а также реализация отправки смс на основе внешнего сервиса, реализующего всю логику по отправке сообщений на гейт с возможностью пополнения списка провайдеров.
При наборе номера, гаджет опрашивает сервис о возможности отправки сообщения на введенный номер и, если данный провайдер поддерживается сервисом, отображает название оператора. Проверка необходимости транслитерации и последующей разбивке длинных сообщений на части тоже осуществляется на стороне сервера и в зависимости от требований оператора.
Благодаря наличию внешнего сервиса также удалось избежать использования дополнительных компонентов ActiveX и обойтись стандартным JS, вследствие чего гаджет успешно работает на всех версиях операционных систем Vista и XP и не требует никаких дополнительных прав администратора.
Еще раз отмечу, что все гаджеты писались с применением Script# и минимальным использованием встраиваемых дополнительных компонентов. Вследствие чего пользователи получили максимальную совместимостью с операционными системами и открытый код гаджетов!
На этом обзор на сегодня закончу, т.к. остальные мои гаджеты в конкурс не отправлял. Опубликую позже, как и статью по их написанию с использованием Script# и адаптацией под XP.
Posted: Sunday, July 29, 2007 10:23 PM від demon_xxi