Как бы трудна и сложна не была жизнь разработчика программного обеспечения, всегда найдутся инструменты, созданные для того, чтобы её облегчить. Давайте сейчас поговорим о некоторых из них - надеюсь, они окажутся вам полезными.
Perl Express
Я уже рассказывал о средах разработки для PHP, но ни разу - для такого замечательного языка, как Perl. Сейчас я хотел бы искупить эту свою оплошность рассказом о Perl Express. Как вы уже догадались, это среда разработки приложений на языке Perl. Найти её можно на официальном сайте, расположенном во Всемирной паутине по адресу www.perl-express.com. Размер дистрибутива - три с половиной мегабайта. Среда разработки совершенно бесплатна.
Нельзя сказать, чтобы Perl Express была выдающейся и революционной средой разработки. Хотя, конечно, она качественная и добротная (иначе вообще не имело бы смысла о ней рассказывать), но, в целом, достаточно стандартная. Обычный многодокументный интерфейс, редактор кода с подсветкой синтаксиса, возможность работы с текстами формата Windows и UNIX, можно при желании экспортировать текст программы в форматы RTF или HTML с сохранением выделения синтаксических конструкций.
Самая хорошая возможность среды - это отладка Perl-сценариев. Как правило, комбинированные среды разработки для web, этакие комбайны для PHP, HTML, Perl'а и JavaScript'а, редко умеют на достойном уровне работать со всеми языками. Поэтому встроенный в Perl Express полнофункциональный отладчик сразу придаёт этой среде особую ценность. Помимо отладки, можно выполнять одним нажатием кнопки проверку на верность синтаксиса программы.
Ещё среда разработки позволяет, не отвлекаясь от процесса написания кода, прямо из неё запустить серверы Apache и MySQL или поменять значения переменных среды а-ля REMOTE_ADDR или SERVER_NAME. Помимо MySQL, можно также работать с базами данных Microsoft Access, но это уже на любителя.
В целом, это, пожалуй, всё, что можно сказать про Perl Express. В меру удобная, качественная, довольно простая и с хорошим отладчиком. Планируете писать что-то на Perl'е, задумайтесь - может, подойдёт.
PatchFactory
Необходимость создавать новые версии программного обеспечения настолько очевидна, что нет смысла её обсуждать. Другое дело - как выпускать обновления таким образом, чтобы пользователи не разорились на интернете и продолжали пользоваться новыми версиями программы. Если продукт большой, не обойтись без сервис-паков и патчей. Патч - это специальная программа, которая изменяет содержимое какого-либо файла (в том числе и исполняемого) путём замены нескольких байт в нём на другие значения. Как вы сами понимаете, размер программы-патча будет однозначно меньше, чем размер полного дистрибутива новой версии обновлённой программы. Поэтому сейчас я расскажу об инструменте, который поможет легко и просто сделать любой патч.
Называется этот инструмент достаточно просто и без особых изысков: PatchFactory. Найти в интернете эту программу можно по адресу www.agensoft.com, размер дистрибутива - чуть больше трёх мегабайтов.
Программа позволяет создавать целое дерево версий, чтобы пользователь мог скачать патч, обновляющий его версию сразу до новейшей, а не последовательно патчить версию с 1.0 до 1.1, потом до 1.2 и так до 2.0. Как утверждают разработчики PatchFactory, в программе испульзуются уникальные алгоритмы, ищущие различия между файлами и позволяющие создавать патчи исключительно малого размера. При этом обновления-патчи могут выглядеть как установочная программа. В качестве основы используется InnoSetup, о котором я когда-то уже рассказывал в "Компьютерных вестях", так что размер установщика получается действительно небольшим. Хотя, конечно, можно найти и меньше, но тогда патч будет выглядеть менее представительно. Кроме того, плюс такого патча с инсталлятором в том, что при желании его можно деинсталлировать - например, если установка прошла не очень ровно или если новая версия конфликтует с другими программами, установленными у пользователя.
Естественно, число продуктов, как и число возможных версий, практически не ограничено. Патчи, создаваемые программой, совместимы со всеми системами линейки Windows, правда, пока не совсем ясно насчёт Windows Vista... Но, полагаю, разработчики в скором времени выпустят версию своего продукта и с поддержкой этой операционной системы.
mirkes.de Tiny Hexer
В жизни разработчика бывают моменты, когда ему нужен шестнадцатеричный редактор. Потому что работают программисты не только с текстовыми файлами, но и с бинарными, а для бинарных нужен и инструмент соответствующий. HEX-редакторов в мире не просто много, а очень много. Больше, пожалуй, только плееров и твикеров. Ну, может, ещё инсталляторов. Но HEX-редакторов всё равно отнюдь немало. Тем не менее, выбрать среди них по-настоящему достойный - задача не самая простая именно в силу огромного пространства для выбора. Тем не менее, я сейчас хочу рассказать о таком HEX-редакторе, который я сам использовал и, в случае возникновения такой необходимости в дальнейшем, буду использовать. Как вы, наверное, уже догадались, называется он mirkes.de Tiny Hexer. Официальный сайт продукта - странное дело! - такой: www.mirkes.de.
Запустив программу, мы видим перед собой классический HEX-редактор с многодокументным интерфейсом. Что удобно в этом самом интерфейсе - это вкладки, с помощью которых легко ориентироваться в документах. Группу открытых вкладок можно сохранить для того, чтобы потом при необходимости открыть все эти файлы вместе снова.
Редактировать можно не только файлы. В меню "File" есть команда "Open Disk", которая позволяет получить напрямую доступ к данным на логическом диске, включая не только файлы, но и загрузочный сектор, метаданные файловой системы и прочие невидимые невооружённым глазом вещи. Главное - этим делом не увлекаться, потому что, не будучи специалистом, можно наворотить такого, что потом целая команда профессионалов не разгребёт. Так что лучше этот пункт меню вообще не трогать.
Гораздо интереснее прикладному программисту (да и большинству системных тоже) следующий пункт меню - "Process". Совершенно аналогично работе с файлами и дисками можно работать с памятью любого запущенного в системе процесса. Для этого в указанном меню выбираем "Read process memory". Дальше всё очень просто: в появившемся окне выбираем процесс, далее смотрим список блоков памяти, которые имеются в адресном пространстве процесса. Выбрав блок памяти (имеется возможность предпросмотра его содержимого), жмём "ОК" и редактируем как нам надо. После редактирования память нужно записать обратно. Тогда вместо "Read process memory" используем пункт "Write process memory".
Любой открытый файл (а также процесс и диск) можно экспортировать как массив для C/C++ или Pascal в текстовый вид, RTF или HTML, а также можно преобразовать в различные бинарные стандарты (то есть изменяется порядок бит в байте): либо по стандарту Intel, либо по Motorola. Интересна также такая возможность, как статистика. В меню "File" выбираем команду "Statistics" и наблюдаем за эффектом от этого действия. А он состоит в том, что программа подсчитывает статистику использования значения каждого байта (можно также слова или двойные слова) и выводит график, отражающий эту статистику. Правда, не совсем понятно, зачем это надо... но вещь, тем не менее, любопытная.
Ещё программа умеет конвертировать тексты из одной кодировки в другую (это уже такая удобная дополнительная возможность), а также сравнивать файлы между собой. И делает это ничуть не хуже, чем специализированные утилиты а-ля Beyond Compare.
В меню "Tools" можно найти много интересных инструментов. Во-первых, это меню "Scripts", в котором есть различные скрипты, позволяющие менять размер файла, выполнять простое XOR-шифрование и многое другое. Как создать свой скрипт, не вполне понятно, но, наверное, такая возможность присутствует. Кроме этого, есть и другие инструменты: побитовый редактор байтов, калькулятор и т.д. и т.п. Есть возможность записи макросов (начинаем запись, нажимаем кнопки, заканчиваем запись - макрос готов!).
В общем и целом, как видите, довольно мощный HEX-редактор. Учитывая его бесплатность, это особенно замечательно. Так что если возникнет нужда в HEX-редакторе, то mirkes.de Tiny Hexer - вполне подходящий вариант.
Вадим СТАНКЕВИЧ
Горячие темы