Новый модуль — WWW::Ruler

Сегодня разместил на CPAN свой второй open source модуль — WWW::Ruler. Не буду описывать то, как с ним работать. Напишу лишь краткое его представление.

WWW::Ruler помогает легко формировать рулетку стиля Google (её функционирование) , а также помогает программисту получить нужные смещения для обрезания массива данных. То есть, мы указываем модулю размер всего массива, что мы имеем (например сколько всего товаров в категории), количество элементов на одной странице (категория разбита на страницы), желаемое количество кнопок «рулетки» и номер текущей страницы, для которой надо показать релетку. Модуль формирует массив элементов рулетки и вычисляет start & end позиции в массиве, которые можно использовать для вырезания данных из массива. Массив рулетки проходится обычным for оператором и отталкиваясь от значений, легко рисуются кнопки [<], [>], […] и [1], [2] и т.п..

Где взять:

CPANhttp://search.cpan.org/dist/WWW-Ruler/

GitHub репозитарий — https://github.com/Perlover/WWW-Ruler.git

CHI::Cascade — небольшое введение

Много месяцев у меня ушло на разработку этого модуля — CHI::Cascade. Теперь решил рассказать о нём здесь, в блоге, и о его концепции, чтобы те, кто испытывает в нём потребность, но ещё не знают о его существовании, подумали об его использовании. Итак, кэширование на основе зависимостей.

Концепция make

Вообщем, если вы программер, вам навярняка известна такая полезная утилита, как make. Вкратце — make получает файл с описаниями зависимостей и их командами, и выполняет только те команды shell, которые вычислены «для выполнения» на основе этих зависимостей. Это очень классная концепция, которую можно использовать как в программировании, так и для автоматизации работы в Unix. То есть, эта концепция зависимостей сводит к минимуму исполнение каких либо кодов/команд/скриптов для получения результата. Вообще, идеология «дерева» замечательная вещь, а если к этому приделать зависимости — что от чего зависит и как — то вообще это сила. Если что то мы изменили где-то в дереве, то перестраиваются те узлы, которые как либо зависимы, а остальное не трогается.

Концепция — кэш (cache)

Теперь о второй полезной вещи — кэше. Читать далее CHI::Cascade — небольшое введение

Несколько полезных jQuery модулей от Odyniec

Сегодня посмотрел страничку одного разработчика по ник — имени Odyniec. Очень понравились его разработки. Спешу поделиться с вами 🙂

  • imgAreaSelect — jQuery плугин для кропинга (cropping images) картинок (точнее, выделение области — кропинг делайте сами ;-)) — (пример)
  • imgZoom — Красивое листание картинок с анимацией, ротацией и приближением из далека (пример)
  • selectListмультивыборочный select лист, показывающий выбранные опции отдельно с возможностью легкого их удаления (пример)

Также, автор написал несколько полезных статей по CSS (как создать «деревья», «табы»)

Также, автор написал несколько модулей на perl для Dancer (его сайт также работает под Dancer): Dancer::Plugin::DebugToolbar, Dancer::Plugin::DirectoryView

Немного о супер направлениях в Web на Perl

Немогу не поделиться своими выводами об изучении нескольких новых технологий в Perl и в Web программировании. Немного предистории.

Я сам программирую динамические веб сайты (CGI) только на Perl. Никогда не использовал PHP. Это не только потому, что я фанат Perl, но и дань эффективности — под Perl много модулей, много возможностей, и при грамотном подходе сайты на Perl будут работать быстрее PHP — ведь Perl код после компиляции хранится в памяти в виде байт кода (типа «Пи кода» кода в Pascal). А если знаешь Perl, то и разработка может идти гораздо быстрее. Читать далее Немного о супер направлениях в Web на Perl

DOCTYPE & Images в таблицах — почему разваливается дизайн?

Это будет краткий обзор моего исследования на тему DOCTYPE (подробнее о DOCTYPE я напишу как нибудь позднее) и поведения <IMG> элементов. Итак, если вы еще не знаете, а являетесь вебдизайнером или верстальщиком HTML страниц, вам надо знать, что лучше указывать тип документа для HTML диррективой DTD в начале любого HTML документа: <!DOCTYPE …>. Потому как иначе, ваша страница может выглядеть и работать не так, как вам хочется (например, без этого определения не работает CSS «position: fixed»). Я долго мучался с этим DOCTYPE, чтобы все работало так, как хотелось бы, и пришел к выводу, что лучше делать именно такое объявление типа: Читать далее DOCTYPE & Images в таблицах — почему разваливается дизайн?

На забудьте смыть за собой Roboform

Не перестаю удивлятся суппорту этого «замечательного продукта». Полгода они знали о баге, который вешает Firefox, я их постоянно пинал об этом, потом устал, и недавно они соизволили мне сообщить прерадостную новость, что его устранили. Для проверки предложили мне проверить на 7-ой версии (которая платная для тех, кто покупал 6-ую). Я сначался замялся делать это — все таки переполз на LastPass, купил там Premium account, а Roboform удалил. При этом, буквально до того, как они меня обрадовали, успел поставить сдуру 7-ую версию поверх шестой — начал тикать trial период. Потом ее снес. Сегодня все таки решил проверить устранение бага. Читать далее На забудьте смыть за собой Roboform

Web Search Pro и вставка терминов в URL поиска

Есть такой замечательный плагинчик под Firefox — Web Search Pro. Вкратце — это надстройка над всеми поисками, которыми вы захотите пользоваться. Разумеется, список составляется вами и вы сами определяете, какими поисковыми машинами (если точнее, всеми сайтами, где есть форма поиска, но для простоты далее — «поисковики») вы будете пользоваться. Одна из классных особенностей — определить список ваших поисковиков и засандалить их в «экранную сетку» — тогда, когда вы выделяете любое слово на вебстранице и начинаете его перетаскивать мышкой куда либо, появляется та самая «сетка», и вы то слово просто перетаскиваете на ту ячейку, где хотите искать — и поиск автоматом запускается. Но вообще-то, я не об этом (подробнее — см. на моем блоге) — это было вступление для тех, кто не знает этот плагин.

А теперь о главномкак вставить нужный термин (далее term) поиска в URL поисковой машины туда, где вам надо. Читать далее Web Search Pro и вставка терминов в URL поиска

Еще немного о Roboform и LastPass

Написал мне недавно суппорт, что они таки устранили баг, о котором я так долго писал! Надо же… Предложили мне протестировать новую версию (7.1.2). Но я так долго ждал (реально баг есть более года, но последний штурм на саппорт я осуществлял в августе 2010), что это мне надоело, терпеть, пока Firefox тормозит и зависает на сайтах с JavaScript, что удалил я этот косячный плагин, тем более, что 7-ая версия (в которой и устранен этот баг) для пользователей 6-ой версии снова стала платной (тут кстати, если помыслить, становится понятно, почему они так тянули с исправлением и исправили во вновь ставшей платной версии…). Теперь я перешел на LastPass Читать далее Еще немного о Roboform и LastPass

Отправка форм через Ctrl+Enter

Нашел и дописал чужой скриптик для Firefox, который делает следующее: когда вы на странице, где есть форма, нажимаете Ctrl+Enter, происходит автоматическая отправка данных на сервер, как если бы вы кликнули по кнопке «Отправить». Тем самым, вам не надо искать кнопку, чтобы отправить данные. Удобно для автоматизации 🙂 Почему я правил чужой скрипт? Подобных скриптов много, но почти все используют для отправки метод submit() в JavaScript. Этот метод производит отправку формы, но не отправляет имя и значение самой кнопки, которую мы нажимаем для отправки. А многие CGI скрипты могут использовать это для корректной работы. Читать далее Отправка форм через Ctrl+Enter

KIS 2011 и защита ваших персональных данных

Kaspersky Internet Security, или сокращенно, KIS, позволяет очень гибко выполнять настройки по защите ваших персональных данных. Возьмем, для примера, самую свежую версию — KIS 2011. В данной статье я расскажу основные принципы по защите ваших данных с помощью гибких настроек, выполненных самим пользователем. Стандартные настройки не позволяют гибко и надежно защищать ваши данные. Читать далее KIS 2011 и защита ваших персональных данных