О магии имен
АрхивСегодня речь пойдет не просто о замечательной программе, но и о магии имен. Поначалу - традиционный follow-up.
Сегодня речь пойдет не просто о замечательной программе, но и о магии имен. Поначалу - традиционный follow-up.
То ли народ подобрел душой, то ли мне посчастливилось наступить на коллективную подагрическую мозоль (все сами настрадались!), но эссе про Интернет-магазин Wstore.ru сотоварищи вызвал ласковую бурю. В том смысле, что меня не стращали привлечь за базар, как это было в незапамятные времена по поводу статей о Фидо, а, напротив, ринулись писать письма о собственном пережитом опыте, который как две капли воды похож на мой собственный. Даже еще макабричней. Чего стоит попытка одного читателя приобрести в Wstore.ru фотоаппарат Nikon CoolPix 885! Товарищ сделал заказ 7 декабря (так что списать на новогоднюю суету ну никак не получается!) и ждет до сих пор (письмо от этого читателя я получил 17 января). Самое замечательное в этой истории, что последний раз «вэсторовцы» выходили на связь 12 декабря, чтобы сообщить о невозможности доставки в срок из-за «отсутствия свободных курьерских машин» и попросили подождать до завтра (13 декабря). А потом - с концами! Вот уж точно: обещанного три года ждут!
В том же контексте сайт Price.ru торжественно поблагодарил меня за проявленную бдительность, вручил орден имени Павлика Морозова и сообщил в письме, что все цены Wstore.ru на их сайте приведены в строгое соответствие с реальностью (что я не преминул проверить: таки да! - с неизбежной потерей верхнего места в списке лучших цен - по цифровым камерам Casio 3500, по крайней мере).
Однако «Новогодняя опупея имени Абдурахмана Котлера» отозвалась и самым невероятным образом. Во-первых, так. «Хочу попросить вас об одном одолжении: дело в том, что мой друг считает, что Абдурахман Котлер - реально существующая личность, типа Остапа Бендера. Я попытался ему доказать, что это, IMHO, намек на незабвенного классика маркетинговой писанины Филиппа Котлера. Если я прав, я был бы вам очень обязан, если вы ему напишете об этом (ну, и мне тоже, чтобы я знал). Тут не дело принципа: он мне обещал пиво или помощь в подготовке курсача по деталям машин, если я прав». Курсач и пиво - дело святое, поэтому подтверждаю, что речь шла о тошнотворных и столь же бесполезных творениях «доки-продавальщика».
Во-вторых, совсем уж удивительное. Спрашивают: «А что зайка ответил волку?» Даже и не знаю, как это транскрибировать в журнале, который читают дети. Когда волк поведал зайке об отсутствии гирьки и предложил ему насыпать соли на глаз, обиженный косой ответил: «Насыпь себе на… собака страшная!»
Ну а теперь поговорим о магии имен. Первое волшебное слово - «колгосп», что на литературном украинском языке означает «колхоз». Когда в очередной раз у меня зачесался Гондурас глобальной автоматизации, я так и подумал: «Хорошо бы найти программу, которая бы умела проделывать все возможные операции над HTML-файлами, но не над каждым в отдельности, как обычные редакторы, а колгоспом,то есть скопом!» Поясню, о чем речь. У меня скопились огромные массивы данных, которые хоть и хранятся в формате HTML, однако а) содержат чудовищный объем избыточной информации, б) напрочь лишены стилистического единства.
Дело в том, что документы в формате HTML в массе своей попадают на наш компьютер - вы угадали! - с Интернет-сайтов. А, как известно, сколько сайтов, столько и да Винчей. Поэтому странички перегружены баннерами, cgi-скриптами, линками, логотипами, джавой и прочей гадостью, которая иногда достигает 50% от объема полезной информации. Разумеется, всю эту творческую накипь хочется взять и срыть. При этом желательно, чтобы документы в базе выглядели одинаково, как солдатские затылки.
Надо сказать, что программы батч-обработки данных мне периодически встречались, однако их «батчевые» достоинства сводились на нет жалким набором функций: ну там теги удалить, изменить заливку фона со шрифтами, еще парочка телодвижений. Но вот настоящего колгоспа-миллионера, способного задушить по осени могучим урожаем всю Запорожскую область, все не попадалось.
И вот недавно, когда я глухой ночью ковырялся в безбрежных списках Депо Давида, меня сразила наповал одна никому неведомая программка. Сразила своим именем. Вот оно - второе волшебное слово - Hutmil! Мистическое сочетание полного благозвучия и полной бессмысленности: помесь барака с мельницей, зачатая орфографическими хулиганами из компании Triplehash (третье волшебное слово!). Этот «Тройной хаш» заставил меня - вегетарианца с пятнадцатилетним стажем - содрогнуться! Представьте себе: высоко в кавказских горах аксакал в бурке всю ночь напролет варит жемчужину похмельной кулинарии - студенистый хаш из парнокопытных ног, рубца и почечного сала. А тут в далеком Порту Елизаветы (Южная Африка) объявились буры-умельцы, замахнувшиеся на «ТРОЙНОЙ ХАШ»! Что же это, как не старший брат средневекового афродизиака из корня мандрагоры и спермы висельника?!
Короче, мое филологическое чутье не могло подвести: программа с таким названием, слепленная такими парнями, не может быть отстоем. Как же я был прав! Hutmil оказался настоящим батчевым колгоспом! Сначала мы подготавливаем массив для обработки (queue) из файлов HTML, XML, XHTML и простого текста. Потом начинаем варить «тройной хаш». Ингредиенты:
- перегонка ASCII в HTML и обратно;
- изменение расширений;
- изменение строчных букв в названиях файлов на заглавные и обратно;
- снижение и повышение уровня референций линков (в результате изменения структуры сайта часто приходится менять что-нибудь типа «style/style.css» на «…style/style.css»);
- удаление единичных тегов (разумеется, батчевое по всему подготовленному массиву!);
- детальная модификация тега BODY;
- детальная модификация метатегов;
- добавление стилевых линков (Stylesheet Links);
- настройка строки DOCTYPE;
- удаление комментариев;
- многострочный поиск и замена текста;
- кондициональная замена атрибутов и значений тегов;
- замена атрибутов WIDTH и HIGHT тега IMG;
- оригинальная технология IntelliReference для динамического поддержания референций линков в теге BODY и при добавлении стилей (Stylesheet Links);
- оригинальная технология директив (directives), создающая специальные комментарии для динамического удаления любого кода, расположенного в границах заданного региона (<!- JS-HUTMIL-REGION-START:RegionName ->… <!- JS-HUTMIL-REGION-END:RegionName ->).
Нехилый получился супец, я вам скажу, - трезвеешь на глазах! Как обычно, линки программ, помянутых в «Голубятне», вы найдете на internettrading.net/beritut.