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

Об автоматизации и великих сыщиках

АрхивМаковое поле (архив)
автор : Олег Свиргстин   24.10.2000

В операционную систему «Макинтош» включен целый ряд самостоятельных технологий, позволяющих значительно расширить функциональность системы. О двух из них – наш рассказ.

Встроенные технологии MacOS

Когда MacOS 7.5 немного зажилась на белом свете, ее стали упрекать в том, что она превратилась в несвязанный набор технологий. Доля правды в этом обвинении есть. MacOS представляет собой набор из десятков очень интересных технологий, про каждую из которых стоит написать отдельные статьи. Например, ATSUI 2.0 (работа с любыми двух- и однобайтовыми скриптами, включая Unicode), ColorSync 3.0 — система цветокоррекции, FontSync — технология, обеспечивающая соответствие шрифтов при переносе с машины на машину, поисковая система и другие. Многие технологии, рожденные в MacOS, перешагнули границы платформы и активно покоряют «чуждый мир». О паре культовых технологий — AppleScript и Sherlock — и пойдет речь ниже.

Дядь, проскриптуй яблочко!

Что такое AppleScript? В целом — это мощнейший язык описания действий системы, предназначенный для автоматизации управления компьютером и выполнения рутинных операций. Функциональных аналогов в среде Windows не имеет. Что он представляет собой технически?

Во-первых, это компилятор/транслятор и исполнитель «скриптов» (сценариев), которые позволяют автоматизировать всевозможные операции на вашем компьютере и даже через сеть за его пределами.

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

В-третьих, в своей работе AppleScript опирается на систему межпрограммных коммуникаций AppleEvents, которая позволяет обмениваться информацией и командами с прикладными программами. Фактически это универсальный процедурный язык для огромного количества программ (рис. 1).


Рисунок 1

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

AppleScript управляет программами с помощью наборов стандартных команд. Для программ, реализующих поддержку скриптования, существует подробный каталог команд, форматов и возможных аргументов. А помимо написания скриптов «ручками» или подгонки скриптов под свои нужды из гигантской существующей библиотеки, содержащей готовые примеры на все случаи жизни, можно просто заставить компьютер отслеживать выполняемые вами операции и автоматически генерировать код.

Таким образом, AppleScript является на сегодняшний день, пожалуй, наиболее мощным языком скриптования и управления системой, вдобавок абсолютно бесплатным! Между тем есть люди, уверенные, что никакого «языка управления заданиями» в MacOS не было и нет…

Вы не видели Ватсона?

Очень редко поисковая подсистема некоторой ОС превращается в отдельную технологию, а случаи, когда она удостаивается собственного имени, вообще можно пересчитать по пальцам. На память приходит лишь grep, но при всем своем великолепии grep всего лишь утилита. Sherlock же — полноценная поисковая система, позволяющая искать что угодно и как угодно.

Вот, к примеру, поиск файлов. Искать можно по множеству критериев одновременно, все более и более утончая поиск — если улов оказывается слишком большим и необозримым. Критерии могут включать и размер искомого файла (например, больше 56, но меньше 114 Кбайт), и тип, и все атрибуты файла, коих в MacOS значительно больше, чем в Windows. Критерий поиска можно сохранить и в дальнейшем повторять тот же самый поиск, а AppleScript позволяет управлять им на глубоком уровне, автоматизируя беспредельно сложные операции. Кроме того, Sherlock осуществляет и поиск по содержанию: файлы прокачиваются на предмет обнаружения в них искомой фразы или слова. Первая версия Sherlock просматривала только файлы типа 'TEXT', но теперь можно «обыскивать» почти все типы файлов. А поскольку он использует системный механизм интеллектуального выделения «главных моментов» из любого текста, то в состоянии самостоятельно сделать резюме (summarize file) из любого текстового или pdf-файла. В основе «поиска по содержанию» — две технологии, разрабатываемые на Apple давно и тщательно, — AIAT и Find By Content. Минус: для того чтобы поиск по содержанию стал эффективен, необходимо время от времени индексировать Sherlock. Индексация моего шестигигабайтного диска заняла несколько часов. Зато теперь поиск работает быстро и красиво (рис. 2).


Рисунок 2

Но что мы все о локальных дисках и о дисках, привязанных к нам через сеть, — мир нашего компьютера уже давно им самим не ограничивается. Интернет! Естественно, Sherlock ищет и в Интернете (рис. 3). Для чего использует поисковые серверы — InfoWeek, AltaVista и пр. С точки зрения простого пользователя, любой из наличных поисковых серверов можно исключить из поиска. Результаты поиска сортируются, например, по «релевантности» запросу. Sherlock размещает запрос на всех поисковых серверах, которые выбраны для работы, и, конечно, опции запроса можно сохранить и использовать повторно. Как это реализовано, ведь разные поисковые серверы требуют различных форматов запросов? Очень просто. При обращении к серверам запросы переводятся в соответствии с правилами, описанными в «штепселях» (plug-ins) Sherlock. Фактически штепсели представляют собой текстовые файлы, но тип файла у них 'issp', а текст пишется на ISIL = Internet Search Interface Language. Поскольку ответы серверов на запросы могут существенно различаться, то ISIL используется и для приведения их к примерно одной форме. Кстати, доступны штепсели и для российских поисковых машин.


Рисунок 3

Кроме того, Sherlock дает возможность искать товары в e-shops и даже… находить людей по номеру телефона! Правда, похоже, лишь за рубежом. И еще одно необычное применение Sherlock — обнаружение вирусов. Именно благодаря ему на «Маке» так мало троянцев, и все они не особо серьезные — их слишком просто найти. Достаточно лишь указать в критериях поиска, что нужно искать невидимые файлы…

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