Программируем на КПК: обзор программ
14.08.08Мой Компьютер, №9, 25.02.2008
Зачем писать программы на КПК, если это можно делать с большим успехом на настольном компьютере или ноутбуке? Очень просто: хороший ноутбук дорого стоит и по карману далеко не всем (почему нет смысла покупать плохой, думаю, и так ясно — вспомним хотя бы английскую пословицу: «Мы не настолько богаты, чтобы покупать дешевые вещи»). Остается десктоп — он стоит куда дешевле ноутбука той же конфигурации. Но он лишает нас мобильности. Свободы перемещения, другими словами. Той самой свободы, которая является одной из основных идей, провозглашаемых платформой Pocket PC и ради которой мы готовы жертвовать производительностью — основной характеристикой компьютера. Так почему бы не использовать мобильность в программировании? Это первая и основная причина, почему написание программ на PDA имеет смысл.
Практически этот смысл выглядит, например, как написание домашней работы по информатике в автобусе по дороге в школу. Или воплощение внезапно озарившей голову идеи, как можно улучшить qsort, прямо в вагоне метро. Можно придумать сколько угодно примеров, но все они демонстрируют одно: возможность не отрываться от любимого дела из-за перемещений в пространстве. Вторая причина — удовольствие, получаемое от программирования, усиливается по мере увеличения сложности задачи (да-да, я не говорил, что все будет просто :)). Третья причина… да попросту нужно же чем-то занять время! Я, например, не могу долго читать, играть, смотреть видео на покете. Во-первых, глаза утомляются от длительного неморгания, во-вторых, просто надоедает. Тогда на помощь приходят ОНИ. Нет, не героические стоматологи из рекламы, а средства программирования на PDA, описанные ниже. Ну и, конечно же, запуск программы на наладоннике — прекрасная возможность поупражняться в шаманстве с использованием ямайского бубна (необходимого атрибута при программировании на PGCC, к примеру; а уж про ARMASM я вообще молчу — он без бубна в руках даже не скачивается).
Кстати, если вы напишете хотя бы по helloworld’у в каждом из средств разработки, означенном ниже, то получите два сертификата: «Шаман-2008» и «Мазохист года» :).
Теперь, когда вы всей душой прониклись идеей необходимости программирования на КПК, можно продолжать.
Небольшой глоссарий
КПК aka карманник aka карманец — карманный персональный компьютер. Небольшой девайс, оснащенный, как правило, 64 или 128 Мб оперативной памяти, процессором Intel XScale с частотой до 624 МГц и сенсорным дисплеем с диагональю 3–3.5 дюйма. Управляется операционной системой Windows Mobile (программирование под которую, точнее, на которой и рассматривается в этой статье), PalmOS или (редко, но бывает), а также специальными сборками Linux под ARM-архитектуру (наиболее известная и популярная — FamiliarLinux).
PDA — Pocket Digital Assistant. Синоним КПК.
Windows Mobile — компактная операционная система на базе Windows CE, установлена на многие КПК, коммуникаторы и смартфоны.
PalmOS (в январе 2007 года переименована в GarnetOS) — операционная система для наладонных компьютеров и коммуникаторов от компании Palm, Inc. Конкурент Windows Mobile.
ARM-архитектура — архитектура 32-разрядных RISC-процессоров, специально ориентированная на использование в мобильных устройствах. Наиболее популярное на данный момент в Pocket PC семейство процессоров Intel Xscale основано на доработанной архитектуре ARM9.
RISC (англ. Reduced Instruction Set Computing) — вычисления с сокращенным набором команд. Это философия проектирования процессоров, которая во главу угла ставит следующий принцип: более компактные и простые инструкции выполняются быстрее. Простая архитектура позволяет как удешевить процессор, так и поднять тактовую частоту.
Pocket PC aka PPC aka покет — 1) стандарт от Microsoft, устанавливающий ряд требований к мобильному устройству, среди которых работа под управлением операционной системы на базе Windows CE, архитектура процессора — ARM, MIPS или SH3, наличие сенсорного экрана; 2) устройство, соответствующее этому стандарту.
ББ — «Большой Брат», на сленге владельцев мобильных устройств — настольный компьютер.
Runtime aka рантайм — тут: библиотека, необходимая для выполнения программы, написанной с помощью некоторых средств разработок. К примеру, NSBasic.
Microsoft .NET — программная технология для создания как обычных программ, так и web-приложений (в качестве платформы для разработок впервые предложена фирмой Microsoft). Для выполнения программ использует свой компонент .NET Framework, которым является неким подобием рантаймов, только более сложно устроенным.
TkInter — библиотека базовых элементов графического интерфейса, поставляемая вместе с Питоном.
Helloworld — программа, с помощью которой, как правило, знакомят новичков с языком программирования, и с которой начинается почти любой самоучитель по оным. Не делает ничего, кроме вывода надписи «Hello, world!».
Скрипты
nScriptm
Страница программы: http://s-k.al.ru/nscript.html.
Оригинальная версия особого интереса не представляет, для наших шаловливых ручек больше подойдет модифицированная от S-K, называющаяся nScriptm. Синтаксис похож на С, но намного проще. Среди основных функций: работа с переменными (поддерживаются два типа: целое и строка), арифметические операции (в том числе и с плавающей точкой), 18 тригонометрических функций, разбор и другие операции со строками, массивы, условия, циклы из С, создание функций, доступ к функциям и переменным из другого скрипта, операции с системным временем и датой, проигрывание звуковых файлов, выведение сообщений и стандартных диалогов открытия/сохранения/выбора папки, отключение питания, работа с файловой системой, работа с реестром, работа с хешами, преобразование строк из одной кодировки в другую, работы с базами данных, управление окнами, эмуляция нажатий стилусом, запуск программ, работа с сокетами, работа с буфером обмена и еще некоторые вещи.
Распространяется совершенно бесплатно.
Не знаю как модифицированная версия, а исходная доступна в исходниках. Вместе с интерпретатором поставляется хороший мануал на русском и английском языках, а также довольно много (20–25) примеров.
Обратите внимание, что автор программы честно предупреждает: «Скачивая программу, вы берете на себя всю возможную ответственность за последствия ее применения!»
MortScript
Страница программы: http://www.hpc.ru/soft/software.phtml?id=7813
(Скриншота нет по причине полного отсутствия интерфейса 🙂 )
Возможности MortScript несколько менее обширны — запуск, активация, минимизация, завершение и прерывание программ, функции ожидания, таймер, ожидание события, эмуляция нажатий кнопок или виртуальной клавиатуры, эмуляция нажатий стилусом.
Файловые операции — копирование, перемещение, удаление, работа с директориями, чтение и запись реестра.
Условия, циклы, подпрограммы и функции, системные настройки — громкость, яркость экрана и т.п., переменные и выражения.
Лично мне понравился больше, чем nScriptm — в силу большей простоты в использовании и, как мне показалось, большей скорости работы. Также абсолютно бесплатен и поставляется с мануалом на английском и немецком языках (впрочем, автор «не откажется от маленькой (или большой :)) премии»).
SymbolicTools PocketConsole
Распространяется в комплекте с Pocket C# и PGCC, без них его ставить практически нет смысла. Если все же хотите поэкспериментировать, сначала установите Microsoft CMD с http://www.hpc.ru/soft/download.phtml?id=20087, а потом уже и PocketConsole с http://wiki.pocketz.ru/wiki/PocketConsole.
Командная строка (аналог cmd.exe из настольной Винды), понимает скрипты с расширением .bat, имеющие синтаксическое сходство с настоящими batch-файлами.
В принципе, полноценным аналогом и/или заменителем nScriptm’a или mortscripta она быть не может, но необходима для работы консольных приложений, написанных, например, в Pocket C# или PGCC.
PythonCE
Скачать: http://sourceforge.net/project/showfiles.php?group_id=104228
Примеры кода (на английском языке):
http://aspn.activestate.com/ASPN/Python/Cookbook
Туториал (также англоязычный): http://docs.python.org/tut/tut.html
Итак, многими любимый и жалуемый Питон прополз и на КПК. Немного о самом языке. Он портирован на многие платформы, в том числе Windows (настольный и CE), все варианты Unix, MacOS, MacOS X, OS/2, PalmOS, Symbian. Более того, существуют специальные версии Питона, обеспечивающие его интеграцию с виртуальной машиной Java и платформой .NET. Язык поддерживает концепцию объектно-ориентированного программирования, имеет очень строгий синтаксис (впрочем, последствиями этой строгости являются внятность и читабельность кода). Его используют такие организации, как Google и NASA. Развивается он давно — появился в 1990 году, с тех пор для него выпущено много различных библиотек.
Лично у меня отношения с этим языком не сложились, поэтому сил и особого желания разбираться в его реализации на PPC не было, к тому же в то время я «баловался» с Pocket C#, в котором не надо особо париться по поводу поиска документации на TkInter и т.п. Вывод: ИМХО, не очень — из-за моей нелюбви к языку и слабоватого быстродействия, но уверен, ярые фанаты «летно-цирковых» экспериментов оценят этот порт по достоинству.
Не скрипты
PocketDOS + TurboPascal (и не только).
Официальный сайт программы PocketDOS http://www.pocketdos.com (возьмите там плагины и файл, необходимый для поддержки русских шрифтов в DOS-приложениях).
Эта связка — мое любимое средство программирования на Pocket PC. К тому же бесплатное: разработчики PocketDOS, очевидно, очень добрые люди, и единственное ограничение в триал-версии — приходится каждые 5 минут рассматривать 30-секундную заставку с логотипом программы.
Поскольку пишу я в CEdit’e и компилирую консольным tpc, меня это почти не напрягает, тем более что эмулятор действительно хорош. Подключив плагин для эмуляции 486DX (по умолчанию — 286), можно даже играться в старые DOS’овские игрушки типа UFO, Dune 2, Civilization. Вывод: однозначно, must have. На закуску: загляните на vetusware.com/
tree.php, там куча старого софта, в том числе Turbo C++, различные версии Винды, много Бейсиков, игрушек разных и т.п.
Pocket C#
(См. статью Lenivetc’a «Плюсы для карманника» в номере 42 (369) от 19.10.2005.)
Скачать: http://www.hpc.ru/soft/software.phtml?id=7541, в комплекте компилятор + IDE.
По моему мнению, самая юзабельная штука из не-скриптов. Требует Compact Framework 1.0 SP3!
С# — язык сам по себе язык довольно-таки простой для освоения. Pascal, конечно, «человечнее», но его на покете не будет, увы, никогда (имеется в виду компилятор или интерпретатор, работающий непосредственно под Windows Mobile; запуск же, к примеру, TurboPascal возможен и сейчас с помощью эмулятора MS DOS’a). По крайней мере, пока его не оптимизируют под ARM-архитектуру и не разберутся с лицензиями :).
Но вернемся к нашим баранам. Как уже было сказано, данное средство (имеется в виду компилятор C#, а не IDE) довольно-таки удобно в использовании. IDE имеет редактор с подсветкой синтаксиса, представление файлов проекта в виде дерева, да и багов замечено при работе почти не было (исключения — невозможность, или, скорее, очень редкая возможность запуска программ из самой IDE, а также неудобства при редактировании текста во встроенном редакторе). Но при всех своих достоинствах этот инструмент мне не понравился.
Не по-человечески как-то оно устроено, так что для редактирования исходников я юзал CEdit (см. конец статьи). Кстати, маленький хинт: если вы не хотите компилировать программу из IDE, то установите компилятор ПОСЛЕ установки IDE (или вообще ее не устанавливайте). Тогда в реестре пропишется ассоциация файлов проекта С# (.csant) с компилятором, а не с IDE, и вы сможете компилировать программу по одному клику на файл проекта в вашем файл-менеджере.
PocketGCC
Скачать: http://www.hpc.ru/soft/software.phtml?id=5600
Скриншота нет, т.к. состоит из нескольких консольных приложений.
Как бы это странно ни звучало — компилятор С++, работающий прямо на наладоннике (почему-то вспоминается фраза «Я простой бывший Великий Инквизитор» из «Понедельник начинается в субботу» Стругацких — столь же жуткие вещи произносятся столь же обыденным тоном :)). А теперь по теме.
Этот продукт является в некоторой мере противоположностью PC#. В последнем легкость программирования сопоставима с Delphi’йской, но скорость выполнения программы достаточно низкая, по причине использования .NET Framework’a. Тут же, наоборот, программа, по сравнению с C#, просто летает, но IDE нету, и все приходится делать самому — и файлики разные ручками создавать, и компилятор с нужными ключиками запускать. Впрочем, где наша не пропадала, так что как минимум, повозиться с PGCC стоит. В качестве оффтопа: загляните на http://forum.pocketz.ru/index.php?showtopic=2222. Там GCC, запускающийся на ББ, но компилирующий под PPC. Гораздо юзабельнее и полезнее.
PPL (Pocket Programming Language)
Pocket Programming Language (PPL) — это обьектно-ориентированный язык программирования, позволяющий разрабатывать программное обеспечение для смартфонов и КПК на базе Windows Mobile. Профессиональные разработчики и любители смогут использовать этот продукт для создания мобильного ПО почти любой степени сложности, вплоть до игр и приложений с графическим интерфейсом.
В версии 1.30 разработчики обещают более производительный загрузчик откомпилированных файлов (.PPC), потребляющий минимум ресурсов памяти, доработанный интерфейс для работы с графикой GameAPI, поддержку формата PNG, поддержку СУБД SQLite 3 и звуковых библиотек FMOD и BASS, новую библиотеку Phone API Library для предоставления доступа к уникальным функциям смартфонов, усовершенствованные механизмы управления ресурсами памяти.
Начиная с ранних версий, есть визуальный редактор форм. Я тестировал версию 1.03, неизвестно откуда взявшуюся в файловых закромах моего винчестера, т.к. в данное время сайт разработчика лежит, и насладиться прелестями 1.30 я не смог. Вывод — действительно, неплохо. ИМХО, почти must have.
PocketZeus
Скачать: http://www.hpc.ru/soft/software.phtml?id=13289.
Синтаксис языка похож на Basic. Среди возможностей — работа с графикой, звуковыми эффектами, математические функции, операции с файлами, неплохие инструменты для дебага программ. На сайте разработчика доступно некоторое количество библиотек и подсказки. Хотя на hpc.ru и написано, что программа бесплатная, имеется в виду урезанная версия (Lite).
Полная же (с возможностью создания exe-шников и другими вкусными функциями, увы, недоступными в урезанной, распространяемой как freeware) стоит $34.98. Если вы готовы выложить такую сумму за вышеописанный функционал — пожалуйте на http://www.krmicros.com, официальный сайт разработчика. Лично у меня после тестирования lite-версии желания платить не возникло — все-таки не хватает прозрачности и удобства в использовании.
Вход в уголок маньяка
(Содержание его, ИМХО, мало поможет в работе — так, чисто для удовлетворения теоретического интересу.)
vkACL.ewe
Скачать: http://www.hpc.ru/soft/data/15442/vkACLp.zip
Примечание: сначала надо установить Ewe JVM — это программа-интерпретатор языка Java.
Среда разработки программ на языке ACL — Advanced Command Language. Вместе с интерпретатором поставляются мануалы, содержащие описание возможностей среды и команд языка на английском и русском языках, а также набор готовых программ. Возможности языка включают операции с файлами, графикой, вычисления и многое другое, причем все программируется очень просто. Есть много готовых модулей, в том числе научной графики. Простые операции могут быть выполнены очень быстро в режиме командной строки. А теперь, так сказать, недокументированные возможности :). Данный интерпретатор можно без преувеличения назвать выдающимся тормозом современности. На моей машинке (iPAQ hx2750, 624-МГц процессор, 128 Мб RAM) скорость выполнения программ была сопоставима со скоростью передвижения хромой улитки, так что, ИМХО, — не юзабельно абсолютно.
И для супер-мега извращенцев — Ассемблер на покете! Да, это не шутка и не кошмарный сон Фредди Крюгера :). Встречайте — MSARMASM. (Не MARASM :), хотя ход мыслей верный.)
Неплохая статья на эту тему находится по адресу http://wasm.ru/article.php?article=pocketpc.
Глубину и изощренность извращения подчеркивает и гармонично дополняет качество документации, поставляемой вместе с Ассемблером. Кое-что можно найти в MSDN, кое-что есть в документации к eVC.
В общем, если вам еще хочется иметь это чудо, прошу: http://wasm.ru/pub/11/files/asm_ce.zip (все необходимые файлы выдраны из настольной eVC). Однако Минздрав предупреждает об опасности данного программного продукта для вашего мозга :).
Выход из уголка маньяка
З.Ы. Из редакторов, что я видел под Pocket PC, мне наиболее понравился CEdit. Официальный сайт разработчика: http://www.logicalsky.com.
Довольно удобен в использовании, есть подсветка синтаксиса C#, C++, Java, HTML, XML, PHP и т.д. Поддерживает подключение внешнего компилятора. Одним (двумя) словами — must have для истинного врага своего здоровья, программирующего на КПК :).
З.З.Ы. Если заинтересовались сабжем, читайте http://forum.pocketz.ru/index.php?showtopic=19552, узнаете много интересного, в том числе и о том, что в статью не вошло (по разным причинам — к примеру, такие интересные проекты как Prolog, Perl для Pocket PC, OnBoardC просто умерли; NSBasic я не счел нужным рассматривать, так как объем рантаймов, необходимых для выполнения, и глубина задач, на которые он рассчитан, несоизмеримы).
З.З.З.Ы. Все эксперименты вы проделываете на свой страх и риск. Никакой ответственности за ваши действия я не несу. Впрочем, моему зверьку никакого вреда вышеупомянутые программные продукты не причинили :).
mydoom
Web-droid редактор
вологість:
тиск:
вітер:
Наушники Sony WH-1000XM5: звук вне времени
Полноразмерные ,наушники Sony WH-1000XM5 уже достаточно долго присутствуют на рынке, но шума, простите, наделали не так много. Разберемся почему, ведь еще несколько лет назад серия Sony WH-1000XM была одной из самых популярных.
Китай готовит кибератаки на инфраструктуру США
война Китай США хакерФедеральное Бюро Расследований США (ФБР) предупреждает о возможных кибератак на инфраструктуру США со стороны Китая.
TikTok в США запретили на законодательном уровне
блокировка закон социальные сети СШАЕсли ByteDance не сможет продать TikTok, магазины приложений в США будут обязаны удалить его, а интернет-хостинги не смогут предоставлять услуги, связанные с распространением TikTok в США