Архивы: по дате | по разделам | по авторам

Сага о найденных мегагерцах

Архив
автор : Илья Щуров Voyager   28.07.2003

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

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

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

Эта история могла бы называться «Палм для математика», но такой заголовок звучит банально, да и суть отражает не полностью. В общем, речь пойдет о программах под PalmOS, предположительно полезных тем, кто не испытывает страха перед числами, формулами, алгоритмами и прочими атрибутами технического мышления1. Полагаю, среди читателей «КТ» таких немало.

Читаем

Через некоторое время после покупки Палма человек принципиально меняется. Если раньше он не понимал, как с такого маленького экранчика вообще можно что-либо читать, то теперь информация откладывается в голове исключительно в цифровом виде. Знакомый порекомендовал книжку? «Найти в Интернете, скинуть на Палм, прочитать». Ее еще нет в Сети? «Купить, отсканировать, распознать, скинуть на Палм, прочитать».

Однако если с литературно-художественными произведениями все просто — там ничего кроме текста, как правило, и нет, то вот со всяческими «умными» статьями, с формулами и картинками, нужно повозиться. Научные материалы обычно встречаются в формате PostScript, то есть в виде растрово-векторной графики, и не подлежат конвертированию во что-либо «более текстовое». А значит, iSilo, Plucker и прочие текстовые читалки, увы, не помогут, так что придется искать ps/pdf-смотрелку для Палма.

Во время подобных поисков я и наткнулся на очередное чудо карманного формата. Называется оно RepliGo и состоит из двух модулей — просмотрщика, работающего на самом Палме, и конвертора, запускаемого на ПК (рис. 1). Признаюсь, после установки RepliGo я долго глядел на экран в недоумении: способ запихивания в него файлов оставался абсолютно непонятным. Нажать на кнопку Tutorial и прочитать инструкцию не позволяла элементарная юзерская гордость: ну какой же я компьютерщик, если не разберусь в программе «методом научного тыка»? Впрочем, после получаса упорного кликанья по всем доступным кнопкам гордость выкинула белый флаг и позволила заглянуть в справку. Одним глазком. Но этого хватило.

Гениальность этой софтины в том, что она устанавливается в систему как обычный принтер.
Театральная пауза.

Оценили? Если нет, объясняю: любой документ, который надо распечатать, теперь можно унести с собой. Это может быть вордовский текст с оформлением, html-страничка, электронная таблица, картинка, исходник программы с подсвеченным синтаксисом — в общем, все что угодно. Отправляем его на виртуальный принтер RepliGo, ждем преобразования и сжатия (благодаря оптимизации странички занимают в памяти относительно немного места, по крайней мере, по сравнению с картинками, скажем, в формате iSilo), потом кликаем на «Синхронизацию» — и файл готов к просмотру.

Впрочем, есть у такого подхода и минусы. Главный из них — размер Палмового экрана, который гораздо меньше, чем размер листа формата A4. Поэтому для чтения текста, распечатанного на всю страницу, приходится постоянно двигать картинку, ибо даже при минимальном увеличении (при котором еще что-то можно разобрать) строчки упорно вылезают за границу экрана2. Но разработчики умудрились найти выход. Если программа видит, что на странице есть текст, она позволяет его переформатировать так, чтобы он уместился по ширине. А если учесть, что на самом деле страница представляется в виде изображения и никакой текстовой информации не содержит, остается только снять шляпу перед авторами.

Впрочем, математические статьи, полученные компиляцией TEX-файлов, привести к читабельному виду не удается. Разработчики объясняют сей факт тем, что сложноформатированный текст (например, находящийся в таблице или содержащий формулы) при преобразовании может потерять большую часть своего информационного содержания.

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

Считаем

Страсть к калькуляторам у меня с детства. На столе с незапамятных времен стоит простенькая «Аврора»: в свободное время она работает часиками, но при необходимости может вспомнить четыре арифметических действия — большего, увы, не знает, несмотря на мои попытки десятилетней давности научить ее извлекать квадратные корни (с помощью ручки, бумажки и ряда Тейлора). Отдельного упоминания заслуживают программируемые машинки: начиная от старенькой «Электроники Б3-31» — маленькой, медленной, но знающей некое подобие ассемблера, до весьма продвинутой Casio CFX-9970G с ее символьными вычислениями, графическим экраном и Бейсик-подобным языком. Есть что-то изящное во всех этих небольших компьютерах, не обремененных интерфейсом и прочими излишествами и использующих свои процессоры строго по назначению — чтоб считать.


1 (назад)Большинство описанных программ можно найти на www.palmgear.com.
2 (назад) Это относится именно к текстам на странице А4. Обычные книги, формат которых близок к А5, с некоторым трудом, но все же помещаются на экране — по крайней мере, в hi-resolution.

Для Палма я нашел программный калькулятор, который вызывает у меня то же ощущение изящества, что и его прототипы. EasyCalc — калькулятор довольно строгий по дизайну (никаких украшений, все функционально, но удобно) и совершенно фантастический по возможностям (рис. 2). Комплексные числа и операции над матрицами, вплоть до решения систем линейных уравнений произвольного порядка, разноцветные графики в любых координатах (декартовых, полярных, параметрическое задание), множество специальных функций, численные методы (интегрирование, дифференцирование, нахождение корня и т. д.), работа в разных системах исчисления, возможность создания своих переменных и функций, история расчетов… Есть все, чего только неравнодушная к математике душа может пожелать. И даже больше: программа бесплатная и распространяется с открытыми исходниками, так что в комплект, помимо документации, входит средство против похудения кошелька (или, в нашем случае, поддержания совести в кристально чистом состоянии), а также возможность добавить какую-нибудь специфическую нереализованную функцию.

Программируем

Большие программы для Палма обычно пишутся и компилируются на ПК, однако существует целый класс инструментов для так называемой onboard-разработки. Это редакторы, компиляторы и интерпретаторы, позволяющие программировать на Палме без всяких дополнительных компьютеров. Вот она — реальная мобильность!

Инструменты бывают разными. Любителям языка Си (к коим я себя отношу), а также всем Истинным Программистам (которым я не являюсь) должен понравится OnBoardC (рис. 3). Это самый настоящий Си-компилятор, создающий программы маленькие и быстрые, а главное, не зависящие от каких-либо runtime-библиотек, то есть полноценные и самостоятельные (то, что называется standalone). К нему также прилагается SrcEdit — довольно удобный, хотя и не совсем безглючный программерский редактор. Еще можно скачать RsrcEdit — редактор ресурсов, позволяющий создавать и менять интерфейс приложений: работать с формами, всевозможными кнопочками и менюшками в почти визуальном режиме (рис. 4).

С одной стороны, процесс разработки привычен, а с другой — имеет свои нюансы. Стандарт ANSI C, хоть и поддерживается, но не до конца. В частности, неполно реализована работа с плавающей точкой, иногда приходится отлавливать ошибки в совершенно неожиданных местах, что не очень приятно при написании именно математических программ. Впрочем, к этому можно приспособиться. К PalmAPI тоже надо привыкать, а лучше — почитать документацию (www.palmos.com/dev/support/docs). В общем и целом необходимость реализовывать многое «руками» и внимательно следить за тем, что делает программа (в случае возникновения каких-то проблем легко получить сообщение «Segmentation fault» с недвусмысленным предложением перезагрузиться), компенсируется свободой, широкими возможностями и эффективностью.

При работе с OnBoardC одиночество вам не грозит. Группа пользователей-разработчиков организовала сайт groups.yahoo.com/group/onboardc, на котором можно найти англоязычную конференцию, множество файлов с примерами программ, документацию по PalmOS-программированию и вообще много полезных вещей. Например, там я обнаружил файл highdensity.h, который позволяет писать программы, работающие в режиме высокого разрешения3. Да и просто пообщаться с единомышленниками бывает приятно. К тому же и сам проект OnBoardC развивается на принципах OpenSource. Так что плюсов гораздо больше, чем минусов.

Но если все-таки мысль о написании программ на Си вселяет в вас ужас, а скорость, переносимость и компактность программ не принципиальны, советую обратить внимание на Plua (рис. 5). Сия разработка является Палмовой версией интерпретатора языка Lua (www.lua.org), который на первый взгляд представляет собой гремучую смесь Бейсика, Паскаля, Перла и, возможно, чего-то еще. На самом деле, у Lua есть своя философия, но мы в нее углубляться не будем. Программировать на нем довольно просто, по сравнению с Си — даже очень просто. Создание интерфейса не выглядит подвигом, достойным упоминания в древнегреческих мифах; числовые переменные автоматически конвертируются в строковые и обратно; о том, что какая-нибудь ячейка памяти будет ошибочно освобождена в самый неподходящий момент, думать не приходится. Плюс ко всему — поддерживается объектно-ориентированное программирование, есть такая удобная структура, как ассоциативный массив, а также много других вкусностей и полезностей.

Увы, за все приходится платить. Как обычно и бывает в программировании, за удобство приходится платить скоростью работы кода, а здесь — еще и необходимостью таскать вместе со своей программой runtime-библиотеку, фактически выполняющую функцию интерпретатора4. Так что публично распространять собственные произведения получится вряд ли, а вот сделать что-нибудь для себя — вполне реально.

Теперь вы знаете, что где бы вы ни были — в отпуске на берегу моря или в полярной экспедиции, в пещере или на вершине Эвереста, — если вам вдруг понадобится вспомнить доказательство Великой теоремы Ферма, нарисовать пятимерный куб или исследовать поведение системы дифференциальных уравнений, вы сможете это сделать без особых проблем. Был бы Палм под рукой — а остальное приложится.

Переводим

Русский язык, к сожалению, не является международным, так что многие сведения доступны исключительно на английском — особенно это касается научных статей вообще и математических в частности. Здесь не помешает хороший словарь. Признаться, хороших математических словарей я в цифровом виде не встречал. Похоже, их в природе (или, по крайней мере, в Сети) не бывает. Но есть, например, небольшой English-Russian Mathematic dictionary для системы SlovoEd, который можно взять по адресу www. penreader.com/PalmOS/SlovoEd/SlovoEd_Russian-English_Download_area_for_SlovoEd.html. В нем около шести тысяч терминов — не так чтобы много, но все-таки лучше, чем ничего. На той же странице есть и другие научно-технические словари, которые могут оказаться полезными.


3 (назад) Правда, для его включения пришлось немножко почитать документацию по пятой PalmOS.
4 (назад) Платить деньгами никто не просит: Plua, находясь на стадии бета-тестировании, пока бесплатна.

© ООО "Компьютерра-Онлайн", 1997-2021
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.