XHProf: профилирование PHP
Date April 27th, 2012 Author Vitaly Agapov
Если приходится иметь дело с web-приложениями, написанными на php, то надо быть готовым разбираться с тем, почему приложение работает медленно, откуда растут ноги у тормозов, почему растёт использование системных ресурсов при увеличении нагрузки и так далее. Тут очень пригодятся инструменты, позволяющие собрать кое-какую статистику о различных аспектах работы приложения.
Особую прелесть приобретает этот процесс, если ты не являешься автором приложения, и оно представляет для тебя просто большой закрытый чёрный ящик. Тогда профилирование приложения без тщательного исследования кода позволит проделать в чёрном ящике дырочку для нашего любопытного взгляда.
Tags: Drupal, Nginx, PHP
Категория:
Drupal, Nginx, PHP, Web-dev |
Нет комментариев »
Отправка сообщений в Jabber через web
Date April 17th, 2012 Author Vitaly Agapov
— Ну мало ли что про человека болтают!
Эта краткая заметка посвящена отправке сообщений по протоколу XMPP с помощью Perl. В данном случае это будет не простой Perl-скрипт, а cgi-сценарий под веб-сервером, хотя суть и не меняется. Фактически и не заметка это будет, а просто набор рабочего кода, который может пригодиться в будущем. Если пригодится кому-то кроме меня самого, то вообще прекрасно.
Tags: Perl, Web-dev, XMPP
Категория:
Perl, Web-dev |
Нет комментариев »
Drupal: остаёмся без Apache. Nginx + php_fpm
Date March 16th, 2012 Author Vitaly Agapov
Конечно, лучший индеец – это мёртвый индеец.
Связка вида Apache + nginx всегда была для меня чем-то самим собой разумеющимся. Nginx отлично раздаёт статику, но не имеет поддержки php, perl, ajp и ещё многого нужного. Так бы и продолжалось дальше, но в какой-то момент я всё таки решил выкинуть одно звено из этой цепочки. И слабым звеном был признан Apache, не столько потому, что для работы сайта на Drupal он оказался совсем необязательным, а скорее из желания поэкспериментировать.
Целью эксперимента при этом вовсе не является желание ускорить работу сайта. Это всё-таки не Perl, где при переходе на FastCGI появляется изрядная прибавка в скорости выполнения, щедро оплачиваемая необходимостью переписывать код для совместимости с FastCGI. Но зато мы должны получить большую нагрузоустойчивость и меньший расход оперативной памяти сервера.
Tags: Drupal, Nginx, PHP
Категория:
Drupal, Nginx, Web-dev |
2 Комментариев »
Замена свечей зажигания на Kia Sportage
Date February 21st, 2012 Author Vitaly Agapov
Сделал небольшую видеоинструкцию по замене свечей зажигания на Kia Sportage. Это оказалось чуть сложнее, чем на других машинах, с которыми я имел дело. Но, как говорится, глаза боятся, а руки делают.
Tags: Beyond IT, Sportage
Категория:
Beyond IT |
1 Комментарий »
Оквадрачивание всех картинок внутри директории
Date January 20th, 2012 Author Vitaly Agapov
Взгляни на его форму: квадрат, воплощение коварства!
Возникла необходимость сделать все изображения в одной директории квадратными, причём таким образом, чтобы не нарушить центровку изображений. В моём случае это была директория с файлами изображений Drupal, поэтому задача разбивается на две части. Первая часть – универсальная – как автоматически отредактировать все изображения. Вторая часть – для Drupal – как обновить данные о новых изображениях в базе данных.
Пользоваться будем нашим любимым Perl и его модулем для работы с библиотекой ImageMagick.
Tags: Drupal, Perl
Категория:
Drupal, Perl |
Нет комментариев »
Заметки о Drupal: Breadcrumbs
Date January 19th, 2012 Author Vitaly Agapov
Но вот и месяц взошел, и собрались они в путь-дорогу, а не могли отыскать ни одной крошки, потому что тысячи птиц, порхающих в лесу и в поле, давно уже те крошки поклевали.
Сегодняшняя коротенькая заметка касается кастомизации цепочки навигации в Drupal, то есть breadcrumbs. Дело в том, что Drupal всегда по умолчанию вставляет в начало цепочки ссылку на главную страницу, а в конец не вставляет ссылку на текущую ноду. Вполне вероятно, что это где-то можно настроить, но я не нашёл. Ещё более вероятно, что есть модуль, решающий эту проблему,но ставить лишний модуль для такой ерунды совсем не хочется.
Поэтому привожу здесь вот такой вот сниппет для template.php нашей темы.
Tags: Drupal
Категория:
Drupal |
Нет комментариев »
Drupal: ajax-автодополнение поиска
Date January 3rd, 2012 Author Vitaly Agapov
Правда иной раз гнётся, но никогда не ломается и всплывает поверх лжи, как масло — поверх воды.
Как-то раз я уже писал про Ajax-автозаполнение (Ajax-autosuggest) своими силами. Там в комментариях было много возмущения из-за того, что никак не была рассмотрена серверная часть решения. Причины, по которым я о ней не писал, ясны: это абсолютное разнообразие возможных серверных решений. Например, мой Perl’овый cgi-скрипт никак не прояснил бы ситуацию человеку, работающему с PHP. А пример с серверной частью в виде модуля для Drupal совсем не поможет адепту Joomla. Но теперь моя совесть будет совсем чиста, так как я всё-таки опишу, как самостоятельно и с наименьшими трудозатратами сделать автодополнение для стандартного поиска в Drupal 7.
Tags: Drupal, jQuery, PHP
Категория:
Drupal |
23 Комментариев »
Nginx: Проксирование cookies
Date November 17th, 2011 Author Vitaly Agapov
— Да, из настоящих.
— Я попробую его, если вы купите у меня скаутское печенье.
— А это печенье из настоящих скаутов?
При работе web-сервера в качестве фронтэнда к некоторому приложению может возникнуть необходимость изменять на лету содержимое Cookies, отдаваемых приложением пользователю. Это может быть название домена, путь к приложению… да всё, что угодно – ситуации бывают разные. Если мы используем Apache, то всё решается с помощью директив ProxyPassReverseCookieDomain и ProxyPassReverseCookiePath модуля mod_proxy. Если же судьба связала нас с nginx, то решение чуть менее простое. Но зато их как минимум несколько. Один из них – это модуль интерпретатора Lua, который кроме описанной задачи сможет решить нам ещё большое количество других.
Но начнём с самого начала.
Tags: Nginx
Категория:
Nginx |
Нет комментариев »
Настройка LDAP-клиента под Solaris
Date September 7th, 2011 Author Vitaly Agapov
Рассмотрим, как интегрировать Solaris с директорией каталогов. То есть настроим LDAP-клиента, который позволит нам производить авторизацию пользователей и создавать домашние директории для тех, кто логинится впервые. Всё это осуществляется с помощью модуля PAM_ldap, но с некоторыми особенностями, способными поставить в тупик человека, который уже настраивал LDAP-клиентов под Linux.
Итак, где-то уже стоит OpenLDAP-сервер. Мы знаем uid и пароль пользователя с доступом к нужным веткам каталога. Начнём.
Tags: LDAP, Solaris
Категория:
Solaris |
1 Комментарий »
По следам Зимней войны
Date September 4th, 2011 Author Vitaly Agapov
Велопоездка по линии Маннергейма.
Tags: Beyond IT
Категория:
Beyond IT |
Нет комментариев »