Выбрать главу
Программное обеспечение

Его ассортимент выдержан в духе HP. Такие программы вы найдете фактически на любом коммуникаторе этого производителя[Тем не менее прочитанные обзоры убедили меня в том, что перечень приложений для HP iPAQ hw 6515 может варьироваться]: iPAQ Wireless, GSM/GPRS Settings Manager, HP Profiles, MMS Composer, iPAQ Backup и HP Image Zone. Названия, по-моему, объясняют и предназначение ПО. Прокомментирую лишь категорию беспроводных приложений. Доступ к утилите iPAQ Wireless открыт даже со стартового экрана. Через нее можно вызвать приложение для автоматической настройки параметров GPRS-соединения. У меня почему-то настраивались только параметры для выхода в Интернет; MMS и WAP оставались нетронутыми. Кстати, iPAQ Wireless не подозревает о существовании сети МегаФон, так что ее абонентам уготована ручная работа.

Список программ расширен за счет системы навигации GPS от компании TomTom, утилиты TodayPanel Lite, выводящей часть системных данных на экран Today, и половины от пакета ClearVue. Имеющаяся часть содержит приложения для просмотра файлов PDF и PowerPoint на карманных ПК. Продукт TomTom пригоден для эксплуатации на устройствах с квадратным экраном, однако не в России. Карт нет, хотя в обозримом будущем их появление ожидается. Отправляющиеся за рубеж или просто любопытствующие могут бесплатно загрузить с сайта разработчика одну карту региона Северной Америки или Западной Европы. В отряд навигационных приложений, работающих с дисплеями 240х240, в начале месяца влилась программа PocketGPS. Толк от нее будет лишь москвичам и жителям Подмосковья. Территории прочих субъектов Федерации соответствующим образом не задокументированы.

Резюме

HP iPAQ hw6515 весьма интересен. Нарекания вызывают размер и разрешение экрана, недостает Wi-Fi и ОС Windows Mobile 5.0. Первое непреодолимо, ввиду отсутствия поддержки квадратных дисплеев лучшего разрешения операционной системой Windows Mobile для Pocket PC. Два последних недостатка будут устранены в моделях серии hw67хх, которые должны поступить в продажу в первом квартале 2006 года. Устройства Hewlett-Packard дороги, альтернативы им нет. Впрочем, на фоне стоимости остальных WM-смартфонов цена выглядит обоснованной.

ТЕХНОЛОГИИ: Параллельное программирование

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

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

…традиционной ошибки приложения Windows, - моя программа, имитирующая сцену сражения, вылетела с очередным малоинформативным сообщением о несвоевременном обращении в оперативную память по адресу 0x85e54f29. «Когда же это, черт возьми, кончится?» - подумал я, со вздохом запуская отладчик…

Введение

Как вы уже догадались, эта статья - отнюдь не про войну. Просто мне не хотелось начинать описание технологий параллельного программирования со скучных векторов и систем массового обслуживания, встречающихся в наиболее распространенных параллельных приложениях - всяческих числодробилках типа графических пакетов или кодеров-декодеров и серверах, и я решил остановиться на другом «двигателе прогресса» - на компьютерных играх. С их помощью я попробую объяснить, что такое параллельное программирование, почему оно считается столь трудоемким, почему требует от программиста высокой квалификации и какие инструменты могут облегчить жизнь начинающего (и не только) «параллельного» разработчика. А модельной задачей нам послужит то самое сражение в безымянном городе, с которого начался наш рассказ.

Задача

Итак, допустим, что мы делаем стратегическую игрушку по мотивам Великой Отечественной войны. У нас есть игровое поле с разбросанными по нему неподвижными объектами, есть какое-то количество движущихся, умирающих и отстреливающихся объектов (юнитов), есть некий модуль искусственного интеллекта, заставляющий юниты охотиться друг на друга и не ломиться сквозь стену, выполняя приказ игрока, а аккуратно объезжать препятствия. Также у нас есть некий программный код - физический движок, обеспечивающий не только красивый и реалистичный разлет обломков юнитов после прямого попадания, но и более приземленные задачи вроде покачивания танка на ухабах, плавный разгон и торможение, модель оружия и повреждений и прочие «детали», придающие сцене естественность. И, конечно же, у нас есть графический движок, который отвечает за отображение творящегося на экране безобразия. Словом, есть все необходимое, и нам остается только собрать все это в единую программу.