05 Апр

Переписал XTips.ru

Обновил свой давненький проект XTips.ru.
Переписал все с нуля, дизайн переделал полностью, оставив минимализм (спасибо, bootstrap).
Считаю, что регистрация на подобного рода сайтах не нужна по определению, поэтому ей даже не занимался, написав лишь свою небольшую библиотечку для авторизации через oauth твиттера.
После авторизации можно легко отправлять свои хаки и прочие советы, которые затем уйдут в премодерацию. которая обычно занимает считаные минуты.
Возможность оставлять комментарии к хакам тоже убрал, поскольку данная возможность успехом не пользовалась и на 1% (вполне ожидаемо, думаю).
Облако тегов сделал, выборку по тегам тоже, как и поиск по содержимому заголовков и самих текстов.

В итоге код получился примерно в 3 раза короче, а скорость работы в 4-5 раз быстрее (хотя на скорость и так никто не жаловался).
Любые идеи и предложения только приветствуются.

30 Мар

Установка PHP-5.2.17 в Debian Lenny/Squeeze

1. Добавляем в /etc/apt/sources.list следующие репозитории:

Squeeze :

    deb http://packages.dotdeb.org stable all
    deb-src http://packages.dotdeb.org stable all

Lenny :

    deb http://packages.dotdeb.org oldstable all
    deb-src http://packages.dotdeb.org oldstable all

2. Добавляем ключи:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -

И далее по учебнику:

apt-get update
apt-get install php5

Тем, кому необходима версия 5.3, можно добавить в /etc/apt/sources.list :

deb http://php53.dotdeb.org oldstable all
deb-src http://php53.dotdeb.org oldstable all

Конечно же, для пользователей Debian Squeeze это совершенно не нужно, поскольку php-5.3 входит по умолчанию в официальные репозитории.

11 Мар

Подсветка php-кода для домохозяек

Возможно, те тысячи плагинов, нацеленные на сабж, делают это и эффективнее, но есть способ, сделать все это более чем элементарно.
Допустим, есть у нас файлик test.php, в котором простой код одного метода из класса OpenID:

function HTML2OpenIDServer($content) {
                $get = array();
                preg_match_all('/]*rel="openid.server"[^>]*href="([^"]+)"[^>]*\/?>/i', $content, $matches1);
                preg_match_all('/]*href="([^"]+)"[^>]*rel="openid.server"[^>]*\/?>/i', $content, $matches2);
                $servers = array_merge($matches1[1], $matches2[1]);

                preg_match_all('/]*rel="openid.delegate"[^>]*href="([^"]+)"[^>]*\/?>/i', $content, $matches1);
                preg_match_all('/]*href="([^"]+)"[^>]*rel="openid.delegate"[^>]*\/?>/i', $content, $matches2);
                $delegates = array_merge($matches1[1], $matches2[1]);
                $ret = array($servers, $delegates);
                return $ret;
        }

Нам необходимо получить готовый html-код для вывода этого php-кода, причем с подсветкой.
Все окажется очень просто, если заглянуть в man php:

$ php -s test.php > test.html

В результате имеем в выводе (скриншот:)

html-код можете посомтреть здесь

15 Фев

Установка php-ffmpeg в CentOS

ffmpeg

Мануалов хватает по этой теме, но везде изобретают велосипеды — приходится править исходники, меняя все PIX_FMT_RGBA32 на PIX_FMT_RGB32 и т.п.
Пишу готовый способ из 2х команд. Проверил примерно на 30-ти серверах — все работает.

wget http://rpms.southbridge.ru/php-5.2/x86_64/php-ffmpeg-0.6.3-5.svn676.southbridge.x86_64.rpm
rpm -ihv php-ffmpeg-0.6.3-5.svn676.southbridge.x86_64.rpm

И далее релоадим httpd и проверяем php -m