Правда, когда программе было предложено проиндексировать 100 тысяч документов, притом разных форматов, она стала давать сбои и за три попытки так и не справилась с задачей. Пару раз «падала», после чего начинала индексацию заново. Невыносимо медленно идет индексация PDF-файлов. Возможно, все дело в «баговости» PDF-конвертера, который у «Яндекса» свой. Хотя после индексации поиск по файлам этого типа вполне удовлетворительный. Что касается скорости индексации и поиска, то и тут накладка. Субъективно эта софтина работала медленнее Google и Copernic. Чего уж говорить о профессиональных системах вроде dtSearch или SearchInform. Впрочем, «Яндекс» по сути предназначен для домашнего использования, так что этой скорости вполне достаточно.
В общем и целом продукт пока сырой. Надеюсь, к официальному релизу эта утилита будет на равных конкурировать как с Google по удобству, простоте и стабильности, так и с серьезными программами по числу поддерживаемых форматов и функциональности.
Софтерра: Современная монадология
В те давние времена, когда перфосчитка перестала быть основным устройством ввода информации, а ее место заняла клавиатура, когда появились первые мониторы, а о «манипуляторе мышь» никто и слыхом не слыхивал, командная строка стала главным инструментом взаимодействия человека и компьютера. Шли годы, менялись процессоры, операционные системы и пользовательские интерфейсы. Командная строка, иначе называемая программной оболочкой (shell), тоже не пребывала в анабиозе, а развивалась и эволюционировала, и для серверных Unix-систем она по сей день остается самым естественным способом управления.
Опытный администратор Unix может выполнять многие действия в командной строке быстрее, чем с использованием самого удобного графического интерфейса. Дело в том, что в этой нелегкой работе ему помогает множество инструментов:
Собственно, сам shell. В простейшем случае оболочка, приняв строку от пользователя, находит в системе соответствующую программу, выполняет ее и выводит результат в виде обычного текста. Примерами для Unix являются bash, csh, tcsh, zsh, psh и т. д. Продвинутые оболочки облегчают ввод данных, предлагая выбор из ограниченного количества вариантов команд и их параметров.
Язык сценариев программной оболочки. Команды, которые пользователь вводит в командной строке, – это не просто названия программ, а прежде всего – управляющие конструкции языка программирования, оболочка же является его интерпретатором. Таким образом, в командной строке можно задать достаточно сложный сценарий (скрипт) с условными операторами, циклами, функциями и т. д.
Композиционная модель системы: большое количество слабо связанных друг с другом простых программ-утилит (awk, sed, grep, sort, …). Объединяя команды в цепочку (pipeline), можно реализовать весьма сложные процессы обработки данных и управления системой.
Клавиатура, с которой он давно сросся.
Повторяемые действия легко сохраняются в виде файлов, и через некоторое время администратор имеет в своем распоряжении библиотеку сценариев, которые позволяют ему мгновенно решать типовые задачи в достаточно сложной инфраструктуре.
До недавнего времени все это относилось в основном к Unix-системам. Ни для кого не секрет, что, несмотря на наличие некоторой командной строки в Windows, управлять продуктами Microsoft с ее помощью не слишком удобно. Графический интерфейс де-факто является стандартным средством управления в операционных системах Windows, и зачастую функции GUI не имеют аналогов командной строки, даже для серверных продуктов. И наоборот, функционал текстовых утилит не всегда реализован в GUI. Так было до появления проекта под кодовым названием Monad. О нем и пойдет речь в этой статье.
Вовсе не обязательно каждый раз открывать текст в редакторе Word, если нужно проверить правильность написания слов в нескольких десятках файлов. Достаточно скрипта, использующего программный интерфейс Microsoft Word, который отобразит все ошибки.
C:\ > echo «Mother washes winsodsdsd» > text.txt
C:\ > $wordApp = new-object –com Word.Application
C:\ > get-content (dir *.txt) | foreach { $_.Split(‘ ‘) } | where { !$wordApp.CheckSpelling($_) } | sort -Unique
winsodsdsd
C:\ >