воскресенье, 22 января 2012 г.

Потеря сессии в IE

Пришлось столкнуться с идиотическим багом, портящим кровь. Информации по нему не так много, поэтому публикую на всякий случай.

Предыстория:
Руководитель проекта сообщил, что пользователь жалуется. Он логинится, передвигается по сайту и вдруг оказывается снова на странице авторизации. Проверили production-сервер и development . Никаких проблем не обнаружили. Но при добавлении очередной фичи , понадобилось проверить production-сервер в IE. И вот оно... Все как говорил пользователь, проходишь авторизацию, начинаешь бродить или даже просто делать refresh страницы - оказываешься на странице аутентификации, куда попадает только незалогиненный пользователь. Делаем вывод, куда-то потерялась сессия. Причем, проблема повторялась на всех доступных версиях IE.

Проверяю на development-сервере и на рабочей машине. Проблем нет. Значит дело 100% не в коде, нужно смотреть настройки сервера. Начинаю искать проблему. В основном попадается околотхенический бред. В конце концов натыкаюсь на то, что нужно.


http://swfupload.org/forum/generaldiscussion/1206

http://simply.com.au/blog/2009/11/flash-uploader-drops-the-session-in-internet-explorer/

Рецепт прост, меняем конфигурацию патча для php suhosin:

suhosin.session.cryptua = off
suhosin.session.encrypt = off

Если вы не имеете доступ к php.ini, вы можете внести эти изменения через .htaccess или в самом коде через ini_set


По умолчанию эти опции включены. То бишь, проблемы возникли именно из-за suhosin и его шифрования сессии на уровне движка php. К сожалению не нашел более полного описания этой проблемы и возникает она не со всеми версиями. На машине, где возникла проблема стоял suhosin patch 0.9.32.1 На моей рабочей машине 0.9.10, на ней никаких проблем не возникает.

понедельник, 30 мая 2011 г.

Cassandra Apache

С Cassandra фокусы не прошли, скорее всего придется устанавливать вручную. Пакет идущий из репозиториев (apache-cassandra) не работает.

Redis CentOS

Для установки Redis добавил на боевой сервер EPEL. После этого спокойно установил.

суббота, 23 октября 2010 г.

Как правильно перемещать новую ветку на удаленный git репозитиорий и с него

Чтобы закинуть новую ветку на удаленный репозиторий:

git push origin newbranch


Чтобы забрать ветку:

не забываем сделать 
git pull

а затем

git checkout -b newbranch origin/newbranch

понедельник, 24 мая 2010 г.

CentOS ImagMagick

Много раз я брался инсталлить на своем серваке ImageMagick. Делал это через yum и погружался в долгие чтения репортов о вылетающих ошибках. Пока наконец не наткнулся на волшебную заметку.

Installing ImageMagick on a centos vps

Unfortunately installing imagemagick can cause some issues

If you get the message "Error: Missing Dependency: udev >= 089-1 is needed by package hal"

DO NOT INSTALL UDEV, udev is known to cause problems with deleting entries in /dev, instead you can install from source yum install make

wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.4.0-9.tar.gz

tar xvfz ImageMagick-6.4.0-9.tar.gz

cd ImageMagick-6.4.0-9/

./configure && make && make install

М-да, сказал я себе, самый стабильный дистрибутив говоришь.... Хм. И заправив рубашку в трусы сел и проинсталли за 6 минут то, что не мог проинсталлить почти год.

Попутно при тесте выскочила ошибка

convert: error while loading shared libraries: libMagickCore.so.2: cannot open shared object file: No such file or directory

решил проблему добавив в /etc/profile

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH


понедельник, 29 марта 2010 г.

ZFConf 2010


Сегодня вернулся с конференции по Zend Framework из Питера, на которой был с Лёней Лукиным . О плюсах, на конференции присутствовал и делал доклад Александр Веремьев, одни из основных разработчиков фреймуорка. Хотя мы с Леней к стыду признаться, слегка не выспались (последствия подготовки в вагоне-ресторане Красной стрелы) и голос Саши немного убаюкивал, можно точно сказать, что Сашино участие и доклад о порядке добавления proposals удержали конференцию на уровне конференции.

Так же, на достаточно хорошем уровне прошел доклад Александра Махомета , создателя российского ресурса посвященного ZF. Доклад об оптимизации производительности Zend Framework. Посмешила школота с первых рядов натужно возмутившаяся некоторым выводам. "Как так, а великий Котеров говорил...". Кто он вам этот студибейкер? Дядя ваш? Ребят, мы программисты, а не члены политбюро. Тут авторитет данных выше любого человеческого авторитета. Человек предоставил вам конкретные данные, раскрыл условия, в которых они были получены. Вы не верите, организуйте свои исследования - опровергните. "А великий Котеров 10 000 лет назад писал..." , да поцелуйтесь вы со своим Котеровым. Дима. если ты это читаешь, извини :)


Местами мы с Леней расходимся в понравившихся докладах. Ему, например, понравился докладчик Е-штаба. Я же, хотя тема затронута важная, похвалить доклад не могу. Человек показал элементарное непонимание разницы между проблемами php и проблемами фреймуорка. Если человек плохо понимает элементарные моменты в php есть подозрение, что и в Python он тоже не преуспеет. Я работаю и с Django и ZF. У Python и PHP разные языковые парадигмы, ставить одному в укор какие-то моменты другого неуместно, тем более решать проблемы на уровне фреймуорка, а не языка. Чуть позже отпишусь по основным ошибкам "критики".


О смешном, список замечательных речевых оборотов:
фреймвёрк (германские корни видать),
мАйсикал (I want to ride my мАйсикал! Квины трепещите.),
пропосАлы (наверное это было своебразной подводкой к тому, что следующая конференция будет в Харькове)

З.Ы. Прошу рощения, впечатлений много, поэтому статью буду еще дописывать.

четверг, 14 января 2010 г.

Спагетти-код

 Большой комок грязи - это беспорядочно структурированные, растягивающиеся, неряшливы, джунгли спагетти-кода из клейкой ленты и проволки. Такие системы демонстрируют явные признаки нерегулируемого роста и неоднократного целесообразного ремонта. Информация распределяется между удаленными элементами системы беспорядочно, часто до такой степени, что почти вся важная информация становится глобальной или дублируется.

Общая структура системы, возможно, никогда не была четко определена.

Если бы это было так, возможно, оно стерлось до неузнаваемости. Программисты, обладающие хоть каплей архитектурного чутья, избегают этих болот. Только те, кто безразличен к архитектуре и, возможно, довольны инерцией повседневной рутинной работы по заделке дыр в этих разрушающихся плотинах, довольны работой с такими системами.


Брайан Фут и Джозеф Йодер, Большой шар грязи. Четвертая конференция по шаблонам языков программ (PLoP '97 / EuroPLoP '97) Монтичелло, Иллинойс, сентябрь 1997 г.

Linux: генерация рандомной строки для пароля

 cat /dev/urandom | tr -dc '[:alnum:]' | fold -w ${1:-20} | head -n 1