суббота, 28 февраля 2009 г.

Quake aLive

После открытия всенародного тестирования QuakeLive beta, интерес к Quake снова заоблачный, чего стоят только очереди из нескольких десятков тысяч человек в прайм-тайм. Эти люди просто ждут своей очереди и завидуют черной завистью тем, кто сейчас прорвался в игру. Но завидовать тоже не стоит, очень сложно в прайм-тайм найти свободное место на каком-либо сервере, так что, даже подождав в очереди, скорее всего, придется подождать еще.
Что же это такое QuakeLive? Это старый добрый Quake III Arena, немного доработанный и улучшенный. Включивший в себя часть OSP/CPM, немного Team Arena и создавший в себе Community по образцу такового же в Steam от компании Valve.
Для тех, кто не знает, что такое Quake 3 или не помнит, что к чему расскажу коротко.
10 лет назад (в 1999) свет увидел первые тестовые версии Quake 3, так называемый Q3test. В них входило пара уровней, которые практически без изменений перекачевали в полную версию игры, и пару типов оружия, но это было достаточно.

Это и положило отсчет эпохе Quake 3. Игра сразу заполонила просторы сети, ибо аналогов тогда просто не было. Это был один из первых полностью сетевых шутеров. Выйдя в конце года, игра сразу покорила сердца игроков. Но Quake 3 был не идеален, и для серьезной игры нуждался в некоторых изменениях и дополнениях, из-за них сообщество разделялось как минимум два раза. Первый раз оно было разделено после выхода патча 1.21, в этом патче были сильно изменены баланс оружия, а именно его поражающая сила, и радиус разлета пуль огнестрельного оружия. После этого патча пули из автомата начали лететь в одну точку, что вызвало негодование некоторых фанатов игры, в том числе и автора этих строк. Вплоть до появления 30ых версий Quake 3, приходилось играть в 17 версию. После чего ID наконец выпустила патч, в котором радиус разлета пуль был средним относительно 17 и 21 версии. Это был правильный шаг, который смог удержать фанатов, в отличие от например компании Valve, которая изменив однажды (с выходом Counter-Strike 1.0 в оригинальной Half-Life была существенно изменена физика, а также радиусы поражения оружия) геймплей Half-Life не стала слушать старых игроков, которых было не так много, а вновь прибывшим было в большинстве своем наплевать. Так же поступили чуть раньше разработчики Counter-Strike (еще когда не были в Valve), которые в одночасье зарезали всю динамику игры, превратив его в однообразный, немного тактический шутер для «задротов».
Второй раз сообщество разделено было уже организаторами различных турниров, было создано две модификации для профессиональной игры – CPMA (Challenge ProMode Arena) и OSP (Orange Smooth Productions), они и разделили Quake 3 сообщество, на сообщества своих почитателей. Стоит отметить, что сторонников оригинальной игры можно было пересчитать буквально по пальцам, и необходимость модификаций практически никем не оспаривалась.



Quake III Arena был очень популярен среди игроков на протяжении многих лет. За это время его основной конкурент в сетевых шутерах - Unreal Tournament, успел несколько раз перевыпустится, и брал в первую очередь все большим количеством различных игровых режимов. В то время как Quake оставался Quake'ом, динамичным хардкорным шутером.
И вот в феврале 2009 года, начинается открытое бета-тестирование Quake Live. Это, как говорится, те же яйца, только в профиль, что нам на этот раз предлагает ID?
В настоящий момент поддерживаются только Windows XP и Vista (отлично работает и на Seven, в том числе 64 битном) из браузеров - IE и Firefox. Внешне игра почти не изменилась, вот, например, ниже, взятый с Gamespot, скрин-сравнение q3dm17

Видно лишь что часть элементов изменилось и сало больше напоминать Quake 4. Некоторые зоны тоже незначительно переделаны. Почти везде добавлено место для рекламы, оно и понятно. Теперь углубимся в недра игры.
QuakeLive устанавливается в следующие папки:

Windows XP
%appdata%\id Software\quakelive\home\baseq3

Windows Vista и выше
%userprofile%\AppData\LocalLow\id Software\quakelive\home\baseq3\

Туда можно скопировать свой конфиг, но нужно убедиться, что в нем нет ничего лишнего, так что я рекомендую все, что нужно вводить прямо в консоле игры, тогда эти изменения сохраняться на сервере. Консоль теперь вызывается Ctrl-Alt-~, все основные команды на месте.
Вторым новшеством и тоже не самым приятным является HUD-меню, оно не очень удобное. Благо его можно заменить. Для этого качаем любой сторонний хад (можно найти на форуме QuakeLive). Там есть очень неплохие варианты, если что можно по аналогии сделать и что-то свое.
После чего нужно выполнить две команды в консоле:
cg_hudfiles <ИМЯ>
loadhud

где <имя> это путь к конфигурационному файлу HUD, у меня это, например, ui/injx.cfg
Пользователям Firefox также стоит задуматься об использовании аддона Prism, это совместная разработка с google позволяет превратить определенный сайт в отдельное приложение, для Quake Live это именно то, что нужно. Ставим аддон переходим на QuakeLive.com и вызываем в меню tools файрфокса пункт «Convert website to application». Иконку могу презентовать или тут. И потом наслаждаемся QuakeLive всего за один клик, очень удобно.
Еще очень полезно видеть врага очень отчетливо. Для этого есть очень яркая моделька, в консоле надо ввести:
cg_ForceEnemyModel keel/bright
моделька не только хорошо видимая, но и отлично слышымая. Парвда на некоторых зонах все таки лучше использовать ен bright а blue или red модель.
Больше, в общем, то ничего не нужно, чтобы наслаждаться полноценным Quake3 в броузере. Много разных режимов, много серверов, много людей. Что еще нужно? Вперед! Встретимся в игре.

среда, 7 января 2009 г.

HTPC своими руками

Сегодня развелось столько форматов видео/аудио, что не возможно найти устройство, способное проигрывать их все. Не смотря на то, что некоторое время назад, на рынке стали появляться так называемые медиастанции, которые при должном умении и своевременном обновлении прошивки, могут воспроизводить большинство форматов, они, не секрет, далеки от идеала и не справляются со своей задачей. Поэтому опытные пользователи собирают так называемые HTPC (Home Theater PC), а менее опытные покупают их. Такое название они получили, потому что встраиваются в систему домашнего кинотеатра, подключаясь к ресиверу, тем самым становясь неотъемлемой частью домашнего кинотеатра.

Я человек не сильно обеспеченный и мой домашний кинотеатр состоит(теперь уже) из одного компьютера, без ресиверов и усилителей, по сути мне больше и не надо, чтобы смотреть фильмы. Компьютер в настоящее время способен заменить большинство компонентов кинотеатра, правда, не такой, какой я буду описывать далее. (Это конечно не является HTPC, это простой медиакомпьютер, но, чтобы не путать никого, я буду называть его HTPC, так как, в общем-то, не важно как его использую лично я.) Чем больше вы хотите от компьютера, тем больше он будет занимать места, это аксиома, и вряд ли это когда-нибудь изменится. Основной моей целью был компактный компьютер для просмотра фильмов в современных форматах, в том числе HDTV, то есть максимум возможностей за минимум размера, минимум денег, плюс не забываем об энергопотреблении и шуме, хотя с шумом, как показывает практика бороться очень сложно.

Итак, для нашего будущего компьютера нам понадобится выбрать следующие компоненты:
1. Корпус
2. Процессор
3. Материнская плата + оперативная память
4. Видеокарта
5. Жесткий диск + привод оптических дисков
6. Способ управления (в том числе ОС)
Эта последовательность очень важна, поэтому начнем идти прямо по пунктам.

Естественно, что HTPC в отличие от обычного компьютера будет на виду и станет частью интерьера, поэтому очень важно выбрать правильный корпус. Также от корпуса зависит и все остальное. Например, некоторые корпуса оборудуют пультами управления, и тогда решается проблема управления. От корпуса зависит и тип материнской платы, а значит и процессор. Также, компактные корпуса обычно снабжают слотами только для 2.5 дюймовых винчестеров, а некоторые из них либо не поддерживают вовсе возможность установки видеокарты, либо поддерживают только низкопрофильные модели. На все это лучше сразу обращать внимание, при покупке, этому стоит уделять внимание не меньше, чем внешнему виду. Сперва я пытался поискать счастья среди microITX корпусов, но найти их оказалось очень сложно, и для себя я выбрал miniATX корпус Tsunami, выполненный в desktop формате(правда можно ставить и как башню, при помощи подставки):



На самом деле он конечно выглядит не так эффектно как на этой профессиональной фотографии, но все равно он очень неплох, кроме того он обладает рядом положительных качеств:
Возможность установки полноформатной видеокарты размером в один слот, это одновременно и плюс и минус данного корпуса. Плюс потому что можно поставить производительную видеокарту, а минус, потому что делается это через специальный переходник, и это накладывает ограничение на материнские платы и расположение на ней слота PCI-E. Проблема оказалась решаема, и материнскую плату я быстро нашел. Правда, не стоит забывать о системе охлаждения процессора, в итоге я все таки промахнулся и не попал в специально отведенное отверстие для охлаждения (на фото его видно как крышку справа) и крышка эта просто отказалась цепляться. Пришлось просто положить её сверху корпуса, в общем-то, это совсем не заметно, а тот факт, что я промахнулся и с выбором кулера(он оказался слишком шумным), решит эту проблему выбором более тонкого кулера.

Сейчас все солидные фирмы производители выкладывают на сайт схемы своих корпусов и устройств, не трудно внимательно изучить устройство и посмотреть подходит ли та или иная модель материнской платы под модель корпуса. Это, разумеется, для тех, у кого нет возможности пойти и пощупать это все в магазине. Например, в нашем городе таких магазинов нет, думаю, так дела обстоят не только у нас. Для таких непроизводительных систем, выбор производителя материнской платы совершенно не важен, и можно смело брать любой бренд, главное чтобы были необходимые слоты.
Кроме этого в корпус устанавливается полноразмерный винчестер 3.5 дюйма, что тоже и плюс и минус, плюс в цене и объеме, а минус в шуме, 3.5 дюймовые винчестеры шумят и трещат намного больше своих ноутбучных коллег.

Что касается процессора, тот тут выбор очевиден и это Athlon x2 4850e. Во-первых это двуядерное решение, что для проигрывания видео в формате высокой четкости крайне необходимо, кроме того частота равна 2.5ггц, и самое главное рассеиваемая мощность всего 45 ватт, что является просто отличным показателем. Единственный минус этого процессора, это его не распространенность. Найти процессоры этой серии очень сложно, и я считаю, что мне ужасно повезло, это сделать. При выборе процессора всегда стоит обращать внимание на рассеиваемую мощность, это то, что будет требоваться от вашего кулера (чем меньше рассеиваемая мощность, тем обычно меньших размеров кулер можно цеплять, ибо что меньше потребляет - то меньше и тепла выделяет) и блока питания. Чем показатели потребления процессором ниже – тем лучше. В системе еще полно причиндалов, которые смогут воспользоваться освободившимися ваттами.

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

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

Один из самых важных пунктов в выборе комплектующих это видеокарта, все-таки основная функция HTPC - это отображение видео на экране телевизора. Тут стоит отметить, что согласно некоторым тестам для воспроизведения видео высокой четкости потребуется процессор 3ггц или двуядерный 2ггц. Но это ограничение довольно легко снимается системами аппаратного ускорением видео. Такие системы существуют у ATI это Avivo, у Nvidia – PureVideo. Стоит отметить также, что у Nvidia есть две технологии Pure Video и PureVideoHD. Первая из них предназначена только для mpeg2 формата, то есть с форматом высокой четкости она нам не поможет. Определить какие карты удовлетворяют требованиям очень просто - у ATI карты с Avivo имеют в своем названии HD, а у Nvidia PureVideo есть у всех карт, начиная с 8ой серии, тут стоит быть внимательным более ранние серии могут нести в себе только PureVideo, без HD.

Для вывода изображения на телевизор нам понадобится интерфейс HDMI, все современные телевизоры им оснащены, что нельзя сказать, к сожалению, о видеокартах. Но тут на помощь может прийти разъем DVI, который через переходник легко преобразуется в HDMI. DVI есть на всех современных видеокартах, так что проблем быть не должно. Но и тут есть ряд подводных камней. Во-первых, через переходник DVI-HDMI или через одноименный кабель очень сложно передавать звук, большинство драйверов блокирует эту функцию, и передача звука требует обильных плясок с бубном, различных для каждой видеокарты. Так что будьте готовы использовать звуковой кабель. Так как по нему будет передаваться аналоговый сигнал, то цена за более-менее длинный и качественный кабель (больше метра) будет довольно высока, в отличие от того же HDMI кабеля, который передает цифровой сигнал и до 7ми метров можно смело брать любой кабель, лишь бы он внешне внушал доверие. Вторым же камнем являются переходники ATI, они попросту не совместимы между сериями, так например переходник от 2ххх не подойдет к 3хххх и обратно. Если вы выбираете карту ATI, и в комплекте переходник не идет - будьте готовы к экспериментам.

Первоначально я выбрал карту ATI HD3450, подкупила меня низкая цена и тот факт, что Avivo хвалят больше чем PureVideoHD. Я никогда не доверял ATI, всегда помнил шутку с баша «ATI is like a bus. Big, red and has bad drivers», но понадеялся, что все это в прошлом. Я ошибся. Проблема драйверов ATI до сих пор жива. Карта попросту отказалась выводить изображение на телевизор в разрешениях отличных от 800х600, а тот факт, что при установки родных драйверов с диска разрешение можно было ставить любое, но не выше чем 800х600, говорит лишь о том, что проблема исключительно в драйверах и карте. Однако, стоит заметить, что на более дорогом телевизоре Sony все нормально показывалось, правда, с небольшим зеленым отливом. Так что можно лишь констатировать факт, что если вы используете бюджетный телевизор, то карта ATI вам, скорее всего, не подходит. Мой выбор пал на GeForce 8400GS, и я не промахнулся, карта сразу начала отображать все на экране, без плясок с бубном и каких бы то не было драйверов вообще.



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

Жесткий диск я выбирал совсем не долго, став жертвой рекламы, просто пошел и купил Western Digital, Green серии



Подкупило, как обычно, низкое энергопотребление. Цена также была совсем не высокой, так как особая производительность тоже мне не к чему, 5600-7200 оборотов мне вполне хватит. Объем же зависит от сугубо личных предпочтений, обычно стоит учитывать факт хранения на нем пары десятков фильмов DivX, десятка DVD и пару дисков BlueRay, так что 250гб минимально допустимый и достаточный объем. Кроме того покупка винчестера меньшего объема это совсем не выгодное вложение средств. Кроме винчестера можно купить и привод оптических дисков, тут тоже он абсолютно не важен, сейчас они все примерно одинакового качества.


Что касается операционной системы, то тут однозначно выбор за Windows Vista, производительность приложений с видео в нем ощутимо выше, чем в XP. Ну а те, кто хочет использовать Linux, столкнутся с проблемой кодеков. Под *nix системы довольно сложно найти достойный плеер, способный проиграть все. Под Windows таким плеером является KMPlayer. Этот корейский друг невероятно всеяден, кроме того он имеет в себе просто грандиозной количество настроек. Этот плеер все кодеки несет в себе и не требует установки сторонних кодеков, для просмотра обычного видео, что очень хорошо, ибо система не засоряется и дальнейшие проблемы как это обычно бывает при установке различных кодек паков сводятся к нулю. Кроме всего прочего нововведение одной из последних серий – Album Art - это именно то, что нужно для выбора фильмов при помощи пульта ДУ. KMPlayer также умеет подключать сторонние кодеки, что просто необходимо для активации аппаратного ускорения видео. Для этих целей необходимо будет установить PowerDVD или WinDVD, и из KMPlayer выбрать использование их кодеков для проигрывания x264 и AVC-1. А в настройках кодеков необходимо включить поддержку аппаратных средств.

Но это все внутри компьютера, а как же нам управлять всем этим добром? Тут многие поступают как с обычным компьютером, то есть кладут рядом клавиатуру, иногда мышь и радуются. На мой взгляд это не выход и портит все впечатление от работы устройства. Оптимальным было бы управление с пульта дистанционного управления. Некоторые корпуса оснащают пультами и приемниками и проблема решается сама собой. Можно также купить универсальные пульты от известных брендов. Но стоят они очень дорого да и гибкости софта не наблюдается. Я лично выбрал для себя тяжелый путь, а именно покупку ИК-приемника и настройку всего под себя. На сайте http://redray.ru/ можно купить ИК-приемник за более чем смешную цену, а пульт к нему подходит любой (либо можно купить сразу с пультом, но, на мой взгляд, всегда можно найти дома ненужный пульт), единственное, что нужно так это немного повозиться с настройкой клавиш.


Я выбрал для себя RadRay Standard с Com интерфейсом. Com интерфейс, потому что его можно подключить к материнской плате, не выводя провода наружу, что, согласитесь, удобно. В комплекте шла программа SlyControl, которая позволяет настроить практически любые действия по нажатия кнопок на пульте. Кроме того если активировать в SlyControl WinLirc сервер, то действия можно будет настраивать прямо в KMPlayer. Настроив все действия в KMPlayer, прямо в настройках горячих клавиш. Я настроил несколько клавиш в самом SlyControl, просто назначив на клавиши – клавиатурные сочетания. Стоит, однако, отметить что настройка в SlyControl дело нетривиальное, и требует определенных навыков, ибо вся настройка ведется путем исправления программных скриптов.

Если в двух словах описать настройку то это примерно так:
Сначала запускаем мастер настройки SlyControl и переходим в редактирование. Подносим пульт к приемнику и нажимаем на кнопку, после чего там где у меня на рисунке цифра 1 появится код клавиши, нажимаем несколько раз, чтобы убедиться, что код один и тот-же и нет ошибок.



После чего нажимаем кнопку «Добавить», которая находится рядом, и вводим имя кнопки. Когда закончим с кнопками, переходим собственно к скрипту.

KMPlayer = Group( Enabled ){
ShiftLeft = Hook( "REMOTE", "SHIFTLEFT", Enabled, Break ){
Break( ShiftLeft <> 0 )
Keyboard( "PRESS", "Shift+Left" )
}


Теперь объясню, что это значит. Этот пример вешает обработчик на кнопку на пульте, которую я назвал SHIFTLEFT, при нажатии на эту кнопку эмулируется нажатие SHIFT-Left на клавиатуре.

Сначала надо создать группу, группа в скрипте это некоторая область, которая активна или не активна в зависимости от определенных условий. Например, так можно делать чтобы одни и те же кнопки на пульте в разных приложениях вели себя по-разному. В данном случае наша группа называется KMPlayer и эта группа всегда активна, об этом говорит слово Enabled в скобках.
Внутри группы мы описываем наши обработчики. Вешаем так называемый хук (захват) на кнопку SHIFTLEFT. В рамках одной группы может быть сколько угодно хуков. В скобках указывается первое слово это ключевое, «REMOTE» означает, что кнопка с пульта ДУ. А далее идет название кнопки. Внутри идет сначала проверка сколько раз мы нажали кнопку, и, чтобы не было цирка, не обрабатываем, если нажато более одного раза (ключевое слово Break и условие в скобках). Ну а далее уже просто шлем, что на клавиатуре нажато сочетание Shift-Left. Как видите, все довольно просто, если хотеть немного. Если потребуется сложная логика, то придется повозиться. Кое какое описание написания скриптов есть на официальном сайте SlyControl.
Согласитесь, что когда такая страшная коробка лежит рядом с вашим моднейшим корпусом, это выглядит немного не стильно. Поэтому я в корпусе аккуратно просверлил дырочку размером под глазок приемника, а сам приемник разобрал.



После чего просто поместил приемник в корпус на двусторонний скотч.


Вобщем то на этом мои работы над созданием HTPC была завершены. Последним штрихом стало подключение Wi-FI адаптера через USB, чтобы можно было закидывать фильмы по сети с основного компьютера. И настроить его чтобы он автоматически подключался к моей домашней Wi-Fi сети. И я смог наслаждаться фильмами на большом экране.

воскресенье, 20 июля 2008 г.

Синхронизация календарей. Google Calendar и SyncML.

Давным-давно телефон использовался исключительно как средство связи. Многие наверное уже и представить себе не могут такое. Те, кто не понимает, может смело проследить как пользуются их телефонами мамы и бабушки. Сейчас телефон это и ICQ, и почтовый клиент и все что угодно, например, особо продвинутые телефоны оснащаются открывалкой для бутылок и расческой. Функциональность каждого телефона сильно отличается, но 95% телефонов выпущенных за последние 3 года имеют в себе календарь.
Использовать календарь можно по-разному. Первые используют его как будильник, другие используют по прямому назначению, создавая задачи и строя планы, остальные не используют вообще. Рано или поздно перед любым человеком, использующим календарь, становится несколько вопросов:
1) Как перенести данные на новый телефон?
2) Как использовать календарь на компьютере?

Первый вопрос достаточно интересный, так как очень мало календарей на телефонах умеет делать экспорт данных, как впрочем и импорт. Для синхронизации был придуман специальный протокол syncML, этот протокол является разновидностью XML, и достаточно прост в реализации, кого интересуют технический подробности, можете найти его описание, в интернете, это сделать не сложно - протокол открытый. С точки зрения пользователя, этот протокол позволяет синхронизировать контакты, задачи, календарь, заметки и вообще все, что угодно, лишь бы это поддерживал сервер и телефон. Тут тоже на телефон ложится ограничение - он должен поддерживать связь с интернетом по протоколу GPRS, EDGE или еще какому. Особо страдающие паранойей могут утешиться и возможность не просто подключения к интернету, но и с использованием безопасных соединений таких как HTTPS с использованием SSL. Если ваш телефон умеет все это, то все, что вам нужно это найти подходящий сервис в интернете, благо доступно их предостаточно. Некоторые очень даже симпатичны и построены по подобию социальных сетей, где можно обмениваться контактами, картинками, смотреть где кто из друзей сейчас находится и тому подобные вещи. Большинство же несет в себе исключительно деловую функцию и решают обе изложенные выше проблемы. Во первых позволяют синхронизировать данные, и предоставляют к ним доступ со своего сайта, иногда удобно, иногда не очень. Некоторые за дополнительную плату, могут предоставить уведомления и напоминания, что тоже удобно, если ваш календарь открыт для начальника и он поставил вам туда задачу или назначил совещание. Я перепробовал несколько таких сервисов, и могу сказать, что большинство из них удобны и предоставляют все основные функции. Пользовался я исключительно бесплатными сервисами, есть и платные, но за деньги они предлагают, лишь дополнительные услуги или убирают наложенные ограничения. Справедливости ради можно сказать, что часто существуют бесплатные аналоги этих услуг или их можно сделать самому, но для этого требуются определенные навыки. А многие из услуг просто узкоспециализированные, и большинству, в том числе и мне, не очень нужные.
Пробуя разные сервисы я искал одно, как синхронизировать это не только с телефоном, но и с чем нибудь другим, что можно использовать для своих целей. Не секрет, что использовать календарь на странице сайта, не очень удобно, требуется доступ в интернет, а хочется делать это offline, при помощи какого-либо софта. Софта для календарей существует великое множество, сейчас их начали встраивать в операционные системы, потому дело это достаточно востребованное. Так, например, в Mac OS X существует iCal, в Windows Vista тоже добавили Windows Calendar, тогда как раньше люди использовали для этих целей Microsoft Outlook или какие нибудь сторонние средства. Описывать множество этих программ не вижу смысла, кому интересно почитает обзоры или сравнит сам, скажу лишь, что для себя я выбрал Mozilla Sunbird:


Продукт этот во первых полностью бесплатный, кросс платформенный (хотя мне это не очень то и надо), и я уважаю все, что делает Mozilla, да к тому же существует разновидность, которая встраивается в используемый мною почтовый клиент Mozilla Thunderbird в виде аддона, называется аддон - Lightning, и представляет собой тот же Sunbird, но встроенный в Thunderbird, чтобы не вводить путаницы дальше я буду писать только Sunbird. Сразу скажу, что для целей этой статьи нам понадобится еще аддон для Sunbird под названием Provider for Google Calendar, который позволяет синхронизировать календарь в программе с online-календарем на сайте Google. Думаю для большинства программ-календарей есть такое расширение или такая функция встроена в саму программу. Так что можно использовать любую другую программу, я же, повторюсь, буду использовать Sunbird.
У нас есть два варианта построения модели компьютер-клиент - мобильный телефон, оба они подразумевают доступ с нескольких компьютеров, это действительно необходимо, например, один компьютер дома, а второй на работе, или один это рабочий компьютер, второй - ноутбук.
Первый вариант подразумевает, что компьютер будет связываться с syncML сервисом и с сервисом Google. Это также подразумевает, что достаточно использовать всего один компьютер с доступом к syncML и остальные только к Google Calendar.

Второй же подразумевает, что компьютеры умеют работать только с сервисом Google.


Первый вариант в реализации достаточно сложен, по крайней мере тем, что необходимо искать софт и устанавливать на каждый компьютер, тогда как второй вариант, с виду проще, но накладывает ограничения на сервис syncML, который должен уметь синхронизироваться с Google Calendar. Скажу сразу первый вариант, хоть мне и получилось реализовать, но это было ужасно: даты плыли, события дублировались многократно. Все из-за того, что слишком много параллельных синхронизаций, тогда как второй вариант являет собой синхронизацию последовательную, что более надежно. Но это, конечно не значит что первый вариант построить нельзя, просто сделать это мне оказалось сложно, и я сделал все по второй моделе и далее я буду описывать как построить именно её.
Итак мы уже имеем на компьютере программу, умеющую работать с Google Calendar. Теперь нам необходимо найти сервис, который будет синхронизировать с ним syncML сервер. Богатые люди могут воспользоваться собственно гугловским сервисом синхронизации Goosync, стоит это добро около 30 фунтов в год. Что по понятным причинам, не дало повода протестировать сервис. (Думаю большинство деловых людей растраты в 30 фунтов в год не напрягут, и дальше они могут не читать. А вот тем, кто привык экономить или по просту не имеет такого количества лишних средств, придется все таки дочитать до конца.) Можно воспользоваться другим каким-нибудь сервисом, который может выгружать календарь, например стандартный сервис от мегафона Prosync, думаю у других операторов тоже есть подобные сервисы, просто у меня именно этот оператор, делать там выгрузку руками, и руками же загружать в гуглокалендаре, что, согласитесь, несколько накладно.
Был найден проект ScheduleWorld, который позволяет делать это автоматически, а именно синхронизировать календарь с Google. Он кстати предоставляет и расширение для Thunderbird, которое позволяет синхронизироваться напрямую, по нашей первой модели. Как все настраивается опишу поподробнее и по пунктам, но перед тем как что-то делать на телефоне или в календаре, лучше всего сделать бэкап ценной информации, такой как контакты и записи календаря, помните, что все делается на свой страх и риск, итак:
1. Регистрируемся на сайте ScheduleWorld.
2. Настраиваем свой телефон для работы с этим сервисом (в preferences есть значения для настройки). Для большего понимания что и как делать, я бы порекомендовал сначала зарегистрироваться на каком-нибудь русскоязычном сервисе, с целью ознакомления как что работает и как что настраивать. Это дало бы большой прогресс в понимании того, что происходит.
3. Создаем новый календарь в Google Calendar.
4. В настройках (все те же preferences) сайта ScheduleWorld есть пункты, там где Single User / Hosted Domains, вводим наши данные, и жмем Find Calendars. После чего в списке выбираем наш календарь, который будет использоваться для синхронизации. Ниже в настройках есть пункты, которые позволяют настроить модель синхронизации, а также включить автоматическую синхронизацию. Нас интересует двунаправленная модель, то есть мы сможем влиять на календарь как с телефона так и наоборот. Автоматическую синхронизацию тоже лучше включить.
5. Настраиваем Sunbird для работы с гугл. Для этого надо там где список календарей, нажать правой кнопкой и выбрать "Создать календарь" (New Calendar). После чего следовать мастеру настройки, не забыв указать, что календарь находится в сети. Адрес календаря в google можно найти в настройках календаря (управление календарями - "имя вашего календаря" - данные календаря), там будет зеленая иконка с надписью ICAL, её адрес и есть адрес календаря.
6. НЕОБХОДИМО ОБЯЗАТЕЛЬНО УБЕДИТЬСЯ, ЧТО ВСЕ КАЛЕНДАРИ(Google, ScheduleWorld и на телефоне) НАСТРОЕНЫ В ОДНОЙ TIMEZONE (временной зоне), иначе события будут дублироваться, даты поплывут, и можно ожидать вообще чего угодно.
7. Вызываем синхронизацию на телефоне.
8. Вызываем синхронизацию с Google в Sunbird (перегрузить удаленные календари или Reload remove calendars). Если после этого календарь остался пуст, не пугайтесь, ниже я объясню почему это возможно.
Данная схема показывает как надо действовать если основной ваш календарь находится на телефоне, если ваш основной календарь находится на компьютере или на каком-то другом сервере, то сделайте выгрузку в формате, который поймет гуглокалендарь и загрузить в него все данные, или сделайте с ним синхронизацию (если есть такая возможность, а обычно гуглокалендарь умеет загружать в себя удаленные календари). После чего нужно зайти в режиме Day View в ScheduleWorld и вызвать там Google Sync (есть в меню там где переключаются виды календаря (месяц/неделя/день)), и только затем вызвать синхронизацию с телефоном. Эта схема должна сработать, хотя я её и не тестировал.
Пришло время рассказать, что удалось понять опытным путем эксплуатирования сервиса. А именно то как это работает:

Цифрами на схеме обозначены номера действий. То есть сначала на каждом этапе идет выгрузка и только потом загрузка. Так по крайней мере было на момент написания этой статьи, эта схема, возможно, не совсем верная и, может быть, её исправят. В чем её неверность? А в том, что по такой схеме, если мы что-то изменим в телефоне, то на компьютере мы это получим только при следующей синхронизации. Но зато, если что то изменить на компьютере, то на телефон это придет при первой же синхронизации. Вызвано это тем, что сервис сначала синхронизируется с Google и только потом с телефоном. Такая схема снижает нагрузку на сервер синхронизации, так как ему не надо анализировать ничего, а просто передавать данные, иначе бы ему пришлось смотреть что пришло от гугла и что с телефона и выдавать только отличия, а так этим занимается телефон и гугл, соответственно. Проще говоря в данном случае главным звеном является Google Calendar.
Если знать эти особенности, то можно легко этим управлять, например если что-то очень важное, можно синхронизироваться и два раза. Если нет желания синхронизироваться два раза можно зайти на ScheduleWorld и нажать google sync в режиме Day view.
Телефон и компьютер как видно нужно соеденять не только, чтобы закинуть новую мелодию или картинку, и делать это не обязательно через шнур или какое то беспроводное средство. Можно связать телефон с компьютером для выполнения важных задач, даже если компьютер находится на другом континенте. Что, скажем прямо, замечательно и очень востребовано.

воскресенье, 29 июня 2008 г.

PSP программирование для чайников

Когда программисту в руки попадает какой-нибудь интересный гаджет, будь-то игровая приставка или телефон, первое что он хочет сделать, это попробовать что-нибудь этак попрограммировать для него. Наверняка, не все так делают, но я точно один из тех, кто так думает. Ну а дальше все зависит от того насколько человек ленив по своей природе, и насколько доступно SDK.
Когда мне в руки попала PSP, я тоже загорелся, чего нить написать, SDK можно было скачать, правда не официальное и ставилось оно мягко говоря накладно. Но я таки поборол лень и несколько попыток установить его сделал, но все они не увенчались успехом, все это никак не хотело становиться, то tollchain не установится, то еще что-то не скачается вообще... В итоге я поставил на этой идее большущий такой крест.
Но недавно я случайно снова наткнулся на статью о программировании под PSP и снова загорелся с мыслью "а вдруг!" я снова начал попытки собрать SDK.
SDK предназначено для Linux или BSD, я так и не понял, и поэтому собрать его не так то просто на другой платформе, учитывая значния на уровне чайника этих самых платформ. Для Windows мне понадобилось качать Cygwin, это такой проект, который позволяет запускать нативный софт от Linux, очень удобно кстати, и что удивительно работает. По мере моих попыток мне пришлось скачать и Fink, Fink это аналогичный проект но для Mac OS. На Mac OS не смотря на всю близость этой оси к *nix мне так и не удалось поставить SDK, причин тому было две, во первых систему там ставил не я и пароль от root мне не известен, а переставлять как водится лень, а во вторых интернет туда идет через прокси, а прокси и основной компонент toolchain и fink - subversion не очень то просто правильно научить дружить с прокси. Так или иначе, в итоге пришлось пробовать ставить на домашнюю Windows Vista x64.
Стоит заметить, что большинство доступных мне мануалов по установке SDK под Cygwin мне ничем не помогли, помог один, очень краткий он гласил примерно следующее: "поставте все из папки develop и wget из папки web". Мне помог только этот вариант, и я был несказанно рад, когда увидел что psp-tollchain наконец-то зашевелился. Устанавливать остальные части вроде usblink и сам toolchain лучше все таки с SVN, который находится на сайте ps2dev.org, там можно найти и кучу хороших туториалов, в том числе как работать с графикой, ну а я же уже доволен увидев надпись на экране:


Впрочем вводом make в баше cygwin я не стал ограничиваться мне нужна была полноценная среда. В некоторых туториалах мне советовали Eclipse, её то я и скачал, и сильно пожалел, ибо более кривой вещи сложно найти, она не давала себя даже настроить, ибо во вкладках пропадали пункты меню и разные инструменты управления, в результате чего с Eclipse мы попрощались сославшись на кривость Java Machine... Поставил в итоге известную в определенных кругах Code::Blocks и не пожалел ни разу, отличная IDE, все что нужно все есть, заточено под gcc и дебаггер gdb, но позволяет себя настроить куда более гибко, что я и сделал. следую мануалам, я настроил так чтобы программа сразу запускалась на psp, когда я жму Build в Code::Blocks, для этого понадобился psplink и pspusblink, как их настроить описано очень много где поэтому я не будут на этом останавливаться, скажу лишь, что доступны 64битные драйверы лишь для windows xp x64, а следовательно они не подписаны должным образом и Vista их ставить отказывается. Поставить их все же можно, для этого надо при запуске Windows нажимать F8 (по типу как зайти в Safe Mode), в открывшемся меню будет пункт, позволяющий отключить требование подписей драйверов для будущего сеанса, не очень удобно, что для сеанса, но работает.
Я оказался очень доволен, что смог что то написать для PSP, но не собираюсь на этом останавливаться, я обязательно добирусь до истины! и напишу еще что-нибудь, хочу написать свой любимый арканоид, опыт есть, арканоид я писал на практике, когда учился на первом курсе, поэтому будет не так сложно, да и идеи уже роятся в голове. так что продолжение обязательно последует ;)

понедельник, 23 июня 2008 г.

Про двойную жизнь

Тяжело вести двойную жизнь, два блога наверное не менее тяжело. Особенно когда нужно в одном писать что-то серьезное и профессиональное, а в другом можно дурачиться, писать про жизнь и наболевшее. Это все очень тяжело, но я попробую.
С сегодняшнего дня я обязуюсь активно писать в этом блоге, писать буду про свою работу в частности про то, что нового я узнаю в процессе и про свои хобби, обычно правда я все бросаю на пол дороги, потому что меня мало кто поддерживает, но может быть я научусь доводить дела до конца.
Этот блог является серьезной веткой в моем блоговедение и зеркалом для N1PhANtoM.LiveJournal.com
, где я позволяю себе в основном дурачиться, но обязательно буду там постить ссылки на этот блог, когда пишу сюда.
Кстати из жж сюда можно постить коменты напрямую с жжшных аккаунтов, что удобно.

вторник, 13 мая 2008 г.

Начнем, пожалуй

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