пятница, 20 мая 2011 г.

Node.JS: Учимся создавать маленький парсер шаблонов

Приветствую тебя, читатель. Ещё давеча я даже не знал о существовании Node.js, но зато успел увесисто поработать с JavaScript, после которого так не хочется писать на чём-либо другом. Многие, кто вник в JS и его дзен, что всё есьм — объект, в замыкания, анонимные функции, предпочитают работать только с ним. Однажды с товарищем обменивались мыслями о PHP, покритиковали скудные и неудобные возможности ООП, и я тут выдал: «вот бы вместо PHP на серверной стороне писать на JS», — на что получил мгновенный ответ: «nodejs тебе в руки». Не долго думая я начал рыть по wiki и другим ресурсам, далее в кротчайший срок я поднял Ubuntu Server на Virtual Box и поставил туда сам Node.js.

Сразу предупреждаю, что если вы не работали с JavaScript или просто скудно с ним знакомы, начните именно с него, иначе Node.js может показаться вам тёмным лесом. Хочу познакомить вас с языком сразу на практике, и так же показать идею по опять же практическому применению. Я приведу пример реализации маленького парсера шаблонов, всё это уложится в 2-а небольших файла, нарочито без излишеств, чтобы наглядно и прозрачно посмотреть «как это работает».

четверг, 5 мая 2011 г.

PHP: Класс ucResizeImg v2.0, универсальный алгоритм ресайза изображений

Первоначально приветствую вас и надеюсь вы не потратите время зря. Следующий модуль я создавал первоначально для себя, стараясь покрыть все возможные тривиальные (может некоторые и не совсем тривиальные) задачи, касательно резайзинга изображений на серверной стороне. Но также хочу поделиться со всеми своим трудом, поскольку прошлая версия этого модуля, намного менее совершенная, получила резонанс, и пришлась очень кстати многим. Это был файл, содержащий 2-е функции: http://dev.1c-bitrix.ru/community/webdev/user/25535/blog/1446/

По советам потребителей прошлой версии, я объединил эти 2-е функции в одну, если так можно сказать. Я создал класс, существенно расширив функционал и универсальность, также используя более дружелюбную параметризацию. 1С-Битрикс режим теперь включён внутрь класса, нужно только активировать его, в то время как в прошлой версии — это были два отдельных скрипта. Обо всех изменениях думаю рассказывать сейчас не стоит, ибо скорее всего вы видите этот модуль впервые, лучше я расскажу о каждой возможности отдельно. Да и по-моему эту версию и прошлую уже можно считать двумя разными не связанными между собой скриптами.

Возможности модуля:
  • Получение отрезайзеного изображения;
  • Поддержка форматов: JPEG, PNG, GIF (выходящий файл всегда JPEG);
  • Кеширование выходящих файлов;
  • Гибкая и универсальная параметризация;
  • Совместимость с 1С-Битрикс;
  • Возможность выдавать строгие размеры изображения;
  • Имеется режим отладки.