Пусть Федот проявит прыть
И сумеет нам добыть
То, чего на белом свете
Вообще не может быть.
Л. Филатов.

Сказ про Федота-стрельца, удалого молодца
Бывает ли так, что вам нужна какая-нибудь простенькая утилита, но ничего подходящего найти не удается? Любите ли вы изменять интерфейс программ по своему вкусу? Хотите ли, чтобы ваш Рабочий стол отличался от других не только обоями, а чем-нибудь эдаким, чего ни у кого больше нет? Возникало ли у вас желание обратиться к скрытым в глубинах Mac OS X терминальным командам не из командной строки, а с помощью привычных кнопочек? Вряд ли найдется пользователь, который на все эти вопросы ответит категорическим «нет».

О чем-то подобном задумались однажды двое программистов — Эрло Роуз (Arlo Rose) и Перри Кларк (Perry Clarke). Им захотелось создать приложение, способное воплощать самые невероятные идеи пользователей: нечто, делающее что угодно и выглядящее как угодно. Немаловажным было и то, что реализовывать свои сокровенные мечты должны были сами пользователи, не обладая при этом глубокими познаниями в программировании, не изучая специфический язык или сложную среду проектирования и не тратя недели на написание кода...

Неужели можно выполнить все эти условия да к тому же в небольшой и не слишком требовательной к ресурсам программе? Роузу и Кларку это удалось! «Программа мечты» создана и за полгода успела обзавестись поклонниками во многих странах. Надеемся, она придется по вкусу и российским пользователям. Итак...

Что же такое Konfabulator?

Konfabulator — это своеобразный интерпретатор, служащий для запуска особых мини-программ — «виджетов»1. Эти программы имеют различный, зачастую неожиданный вид. Благодаря использованию преимуществ Quartz они способны сливаться с Рабочим столом и выглядеть, например, как надпись непосредственно на его фоне. А могут и, напротив, «плавать» поверх других окон. Функции виджетов тоже самые разнообразные. За счет открытого формата, простой и хорошо документированной технологии разработки созданием таких мини-программ занимается сейчас множество людей во всем мире.

В галерее на домашней странице Konfabulator представлено уже свыше трехсот виджетов, и их число постоянно растет.

Интерфейс программы очень прост. При запуске Konfabulator добавляет новое меню в виде двух шестеренок2 и внешне никак больше себя не проявляет. Меню содержит небольшое количество команд вполне очевидного назначения. Стоит, пожалуй, обратить внимание только на формирующийся «на лету» список запущенных виджетов (на рисунке это Calendar). Он не только позволяет обращаться к той или иной из этих программ. Если выбрать наименование виджета, удерживая клавишу

Замечу, что дать эти команды, а заодно посмотреть информацию о виджете и его авторе можно также из контекстного меню.

Рассмотрим некоторые примеры использования Konfabulator (часть представленных виджетов поставляется непосредственно с программой, другие можно загрузить с ее сайта).

Системные утилиты

Battery 1.0.1, разработчик Эрло Роуз. Простой, симпатичный и очень наглядный индикатор заряда аккумулятора вашего PowerBook или iBook. Электрическая энергия здесь изображается в виде цветной жидкости, постепенно наполняющей батарейку при подключенном электропитании и расходующейся после его отключения.

ClassicKiller, разработчик Роберт Ольсон (Robert Olsson). Виджет нужен каждому, кто регулярно пользуется «классическими» программами. Не секрет, что необходимая для их функционирования среда Classic отнимает существенные ресурсы системы, причем даже после завершения всех подобных приложений «классика» автоматически свою работу не прекращает. Приходится открывать «Пульты» (System Preferences) и только там отключать ее. Установив же ClassicKiller, то же самое можно будет делать простым щелчком на появившейся на столе картинке .

CPU Cat 1.0, разработчик Кристина Норман (Christina Norman). Программка, сочетающая приятное с полезным: симпатичный сытый добродушный кот, он же — индикатор загрузки процессора. Почему бы и не «поселить» его на своем Рабочем столе?

Disk Space 0.8, разработчик Рэд Беркхайзер (Radd Berkheiser). Какую информацию о своем компьютере вы хотели бы иметь под рукой в первую очередь? Если предстоит работа с большими объемами данных, несомненно, это сведения о наличии свободного дискового пространства. Отслеживать их поможет виджет Disk Space Рэда Беркхайзера. При этом на индикаторе можно увидеть не только графическое представление не занятой данными доли диска, измеряемой привычными мега- или гигабайтами, но и продолжительность видеозаписи (DV stream — для обработки в iMovie), которая там уместится.

Кроме выполнения своей основной задачи утилита показывает тип диска (CD, «винчестер» с интерфейсом ATA или SCSI, внешний накопитель, подключенный через USB или FireWare) и его файловую систему. Если нужно обратиться к файлу, находящемуся не на загрузочном диске, посредством Терминала или команды Go to folder в Finder, то Disk Space опять придет на помощь. Виджет подскажет, как выглядит путь к корневому каталогу данного носителя. Но и это еще не все. Программа Disk Space позволяет размонтировать любой диск (естественно, кроме системного) одним щелчком мыши.

Интернет

MultiSearch Widget, разработчик Джош Пайк (Josh Pike); Where Is It? 1.0, разработчик Эрло Роуз; Images Forever, разработчик Скотт Латейне (Scott Lahteine).

Вы часто пользуетесь поисковыми системами Интернета, не так ли? Недаром программисты создают средства, облегчающие работу с ними. Еще бы, ведь очень соблазнительно всегда иметь под рукой окошко, запрос из которого направится прямо на Google или AltaVista, Apple Support или Versiontracker. Среди подобных виджетов стоит отметить MultiSearch Widget и Where Is It. Первый, хотя «знает» не так уж много (всего пять) поисковых машин, способен находить не только тексты, но и изображения, MP3-файлы, видеоролики... Второй же привлекает очень приятным интерфейсом да и работает с одиннадцатью разными сайтами (причем их число без особого труда можно расширить).

Необычна программа Images Forever. По названию можно предположить, что она имеет отношение к поиску рисунков. И это действительно так: ведь Images Forever — интерфейс к Google Image Search, одному из лучших подобных сервисов в мире. Но основная прелесть этого виджета в том, что он способствует «нечаянным открытиям». Все время, пока вы находитесь в Интернете, через заданные интервалы в небольшом окошке на экране будут появляться новые картинки. Они соответствуют либо заданному, либо случайно выбранному слову3.

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

Stock Ticker 1.5, разработчики Эрло Роуз и Перри Кларк; The Weather 1.5, разработчик Эрло Роуз; VT, разработчик Скотт Борнз (Scott Borns); XHints, разработчик Джон Б. Хоппер IV (John B. Hopper IV).

Тех, чей компьютер имеет постоянное подключение к Интернету, несомненно, заинтересует возможность непрерывно получать самые свежие новости с разных сайтов.

Некоторых россиян могут привлечь и индексы крупнейших мировых бирж (Dow Jones, NASDAQ и др.), оперативно доставляемые на Рабочий стол виджетом Stock Ticker. Зато уж прогноз погоды, причем не только на завтра, но и на четыре дня вперед, вероятно, пригодится всем. Главное, чтобы ваш город был известен серверу http://www.weather.com, откуда берет прогноз The Weather.

Ну а любителям поэкспериментировать с новыми программами и поковыряться в недрах операционной системы наверняка понравятся еще два виджета — VT и XHints . Ведь теперь они не пропустят ни одной новинки на Versiontracker.com и ни одного секрета с MacOSXHints.com.

Вспомогательные программы

Calculator 1.0, разработчик Конни Свенссон (Conny Svensson). Это калькулятор, который всегда у вас на столе. Особенность программы в том, что для вычислений не требуется нажимать мышью на виртуальные кнопки. Пользователь вводит необходимое выражение в математической (или, скорее, «программистской») форме. Удобнее ли это? Решать вам.

Calendar 1.0.1, разработчик Эрло Роуз. Случалось ли вам, работая за компьютером, обсуждая что-либо с коллегой или клиентом, безуспешно искать срочно понадобившийся календарь? Такого больше никогда не произойдет, если воспользоваться этой маленькой программой Эрло Роуза. «Вечный» календарь станет постоянной принадлежностью вашего Рабочего стола.

iTunes Remote 1.0.1, разработчики Перри Кларк и Эрло Роуз; iTunes Bar 1.0, разработчик Дэниел Дикисон (Daniel Dickison); iTunes Companion 1.1, разработчик Кнут Август Джонсен (Knut August Johansen).

Судя по галерее виджетов на сайте Confabulator, чаще всего программистов на творчество вдохновляет iTunes. Каких только «дополнений» к этой программе вы не встретите!

Виджет iTunes Remote, как следует из его названия, выполнен в виде пульта дистанционного управления MP3-плеером, но не совсем обычного: справа из него выезжает информационная панель. Так что вы всегда можете посмотреть, что за звукозапись сейчас воспроизводится и сколько еще времени она будет проигрываться.

Вам кажется, что окно iTunes Remote, хоть и меньше, чем у iTunes, но все равно занимает слишком много места? Тогда стоит попробовать iTunes Bar. Информации и возможностей управления почти столько же, а на вид это полоска в несколько пикселов в нижней части экрана.

Виджет iTunes Companion не пытается заменить окно плеера, его задача иная. Вы, конечно, знаете, что iTunes может автоматически получать из базы данных, размещенной в Интернете, сведения о вставленном в компьютер аудиодиске: названия композиций, имена авторов и исполнителей и т. д. Но ведь найти в Интернете можно не только это! И Companion ищет на amazon.com рисунок обложки диска. Заметьте, загруженное изображение сохраняется на «винчестере» и в следующий раз при обращении к тому же CD соединение с Сетью уже не требуется. Кроме того, позволительно использовать и самостоятельно сканированные или полученные иным способом рисунки.

iXscreen ruler 0.3b, разработчик Pixelbu.de. Этот виджет заинтересует дизайнеров. Время от времени у каждого из них возникает потребность определить размер в пикселах того или иного элемента экранного изображения. Конечно, существует не один способ выполнить такое измерение. Но ведь не помешает и возможность просто «приложить» линейку к объекту?

Развлечения

Lum 1.0, разработчик Дэвид Хиксон ( David Hixon); Clarus the Dogcow 1.0, разработчик Sithious; Tux?n?Tosh 1.0, разработчик Бандар Хасан Раффа (Bandar Hassan Raffa).

Многим людям, проводящим за компьютером долгие часы, хочется сделать его более «одушевленным». Видимо, именно в этом причина появления на наших экранах разных кошечек, собачек, барашков... Не остались в стороне и разработчики виджетов.

Пусть у других бегают овечки, а у нас будет танцевать девушка. Например, Lum, попавшая в Macintosh из анимационного фильма Румико Текехаши (Rumiko Takahashi).

И конечно, не могли программисты обойти вниманием свои талисманы. Тут и знакомая всем пользователям Macintosh собакокорова Кларус, и знаменитый пингвиненок Тукс из мира Linux... Почему-то не попали пока в эту дружную компанию Демон BSD и уже совсем родной для Mac OS X утконос Гексли.

Fortune Cookie, разработчик Genshi Media Group. Щелкните по «волшебному» пирожку фортуны — и мудрая мысль на каждый день перед вами. По умолчанию это высказывания Конфуция. Не любите древнего китайского мыслителя или просто хотите чего-нибудь менее серьезного? Нет ничего проще: воспользуйтесь включенными в состав виджета диалогами Симпсонов либо подключите к Fortune Cookie свой собственный текстовый файл4.

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

Не написать ли нам виджет?

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

Теперь займемся самим виджетом. Создадим папку, внутри нее еще одну (назовем ее Contents), а в ней — третью (Resources). В папку Resources поместим наш рисунок. Осталось указать Konfabulator, где и как картинка должна быть показана. Для этого в любом текстовом редакторе напишем текст, приведенный в листинге 1, и сохраним получившийся файл в папке Contents, присвоив ему расширение kon. Внешнему каталогу дадим такое же (как и у текстового файла) имя, но с расширением widget. После этого папка превратится в «пакет», по двойному щелчку на котором виджет запустится и на экране появится картинка.

Кроме того, поскольку в исходный текст виджета включена строка on, будет открыто отладочное окно. По окончании разработки программы его можно отключить.

Многие из читателей этой статьи наверняка уже догадались, что здесь использован язык XML — ближайший родственник HTML, знакомого каждому, кто создал хотя бы одну веб-страницу. Вот тут-то и кроется один из секретов простоты написания виджетов. Сперва описывается окно программы. В нашем примере указаны только его размеры, а можно еще определить положение относительно стола и «слой» — окно способно «прилипать» к Рабочему столу либо, напротив, «плавать» над всеми остальными. Далее идут описания всех элементов интерфейса. В нашем случае он пока один — рисунок.

Дополним описание. Пусть на картинке появится надпись, причем непростая. С ней наш виджет «оживет». Итак, перед закрывающим тегом вставляем исходный текст из листинга 2.

Кроме уже знакомых тегов в этом фрагменте появляются два обработчика событий: «onMouseDown» и «onMouseUp». Они описывают, что должно происходить при нажатии и отпускании кнопки мыши на данном элементе. А используется в них опять же чрезвычайно известный и популярный язык JavaScript. Но даже не зная его, нетрудно сообразить, что при нажатии кнопки текст изменится, а при отпускании вернется в исходное состояние. При этом еще будет модифицироваться непрозрачность (opacity) картинки. Сперва рисунок с каждым щелчком будет становиться все бледнее, потом резко вернется в исходное состояние и все начнется сначала. Единственное пояснение: поскольку для XML знаки «<» и «>» являются признаками тегов, в условиях их заменяют на «<» и «>».

* * *

Как видите, все очень просто. А ведь авторы Konfabulator, надо заметить, еще и подготовили отличное справочное руководство. Если все же возникнут вопросы, их можно задать в одном из форумов на домашней странице программы (нужно, конечно, знать английский язык). Так что, если вы в душе творец, обязательно попробуйте Konfabulator5.

ОБ АВТОРЕ

Михаил Крекин — преподаватель информационных технологий школы № 415 г. Москвы, e-mail: mkrekin@krekin.mccme.ru.

1Английское слово widget — производное от widen (расширять) и gadget (приспособление, безделушка).

2Такое обозначение основано на игре слов: gear по-английски означает и «приспособление», и «шестеренчатая передача».

3Для тех, кто не боится премудростей подсистемы BSD: слова берутся из файлов, находящихся в каталоге /usr/share/dict.

4 Необходимо вызвать команду Show Package Contents, тексты находятся в папке Files внутри пакета.

5 Для корректного отображения кириллицы в окнах виджетов в системе первичным языком (System Preferences?International) должен быть выбран русский. Авторам программы эта проблема известна, в будущих версиях — а Konfabulator развивается очень быстро — она должна быть устранена.