Новый модуль — 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 — небольшое введение

Визуализация графиков на JavaScript

Сегодня решил немножко «пробить» вопрос визуализации на JavaScript разного рода графиков. Самые лучшие графики получаются средствами HTML5 и её расширением SVG. Также нашёл отличный пост про 20 библиотек визуализации. Вот ссылка на тот пост:

http://sixrevisions.com/javascript/20-fresh-javascript-data-visualization-libraries/

А также вот сам несколько демок разных библиотек. И всё это без всякого Flash, работает в Firefox! 🙂

http://www.highcharts.com/demo/
http://www.highcharts.com/stock/demo/

И ещё классную библиотечку нашёл сейчас — http://raphaeljs.com/ — там даже есть 3D шутер, типа Quake 🙂

Перед началом использования какой либо библиотеки обратите внимание на лицензии — тема новая, инструментов мало, и сильно коммерцианализирована. Многие разработчики дают free версии только как Demo. Простой пример такой библиотеки — http://wijmo.com/demos/

Несколько полезных 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

Firefox 5.* — обновлённые плагины…

Уже после написания этой заметки нашел более подходящий способ запуска несовместимых Add-ons — читайте здесь.

Вместе с Firefox 5 перестали работать некоторые мои любимые плагины. Я постарался оперативно обновить их и выложил у себя на блоге, так как авторы этих Add-ons не спешат их обновлять для Firefox 5.*. Я взял оригинальные версии и только подправил файлики install.rdf, где указал любую максимальную версию. Вот эти расширения (мои патченные файлы — внутри статеек):

  • Copy All Urls (копирует в буфер линки открытых табов, а также открывает табы с линками из буфера)
  • Copy Plain Text (копирование текста без аттрибутов форматирования, нужен для Auto Copy — очень хорошая «связка» плагинов для оптимизации работы с web страницами)

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