Гарри Поттер и методы рационального мышления
На несколько дней завис читая "Гарри Поттер и методы рационального мышления" - этакий фанфик по произведениям Роулинг, однако, штука оказалась довольно забавной и в отличии от других фанфиков вещь по объему оказалась раза в два больше чем любой из оригинальых томов.
В произвдении обыгрывается версия мира Роулинг в которой тётя Питуния вышла замуж не за Вернона Дурсля, а за профессора Оксфорда а Гарри вырос не затюканным мальчиком а получил самое лучшее образование в лучших учебных заведениях Англии.
Сам Гарри получился довольно циничной сволочью, сразу раскусил все манипуляции преподававателей волшебной школы, которые Роулинг придумала только к пятом тому и затеял свою игру.
Вобщем мне понравилось, хотя я пока осилил только примерно половину. Чтиво не для всех, и автор честно об это предупреждает, но если вы осилите первые десять глав, то оторваться не сможете.
Вот ссылка на сайт русского перевода книги.
Кастомный php на сервере с Cpanel и WHM
Потребовалось обновить PHP на сервере с Cpanel и WHM. Делается это просто, но вот незадача, один из сайтов на сервере закодирован ionCube и максимальная версия PHP а которой он может работать 5.2.
Но мне кровь из носа нужна была версия 5.3. Однако, оказалось, что решить проблему не так уж и сложно, достаточно скомпилировать собственный cgi модуль php.
Указанная техника подойдет для пользователей shared хостингов где есть доступ к компилятору но нет рутовых прав, например это "официальный" способ для клентов masterhost.
Алгоритм получился следующий:
1. закачиваем на сайт скрипт с phpinfo(); и смотрим "configure command" секцию - это нужно чтобы не придумывать опции компиляции вручную - это долго и муторно. В моем случае получилось следующее:
'./configure' '--disable-fileinfo' '--disable-phar' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-sockets' '--enable-zip' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-bz2' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-sqlite=shared' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'
Выкусываем из этой строки '--with-apxs2=/usr/local/apache/bin/apxs' - это команда сборки php как модуля Apache - мы собираем CGI поэтому она нам не нужна.
заменяем '--prefix=/usr/local' на '--prefix=/home/username/php' - это путь по которому команда make install сложит готовые файлы, мы же не хотим устанавливать php глобально.
Возможно, вы захотите внести какие-либо еще изменения в команду конфигурации.
2. Скачиваем нужную версию php с http://www.php.net/downloads.php
3. Распаковывем и в папке с исходниками запускаем нашу команду конфигурации и сборки.
./configure ...[то что мы подготовили на шаге 1]
make
make install
4. Если все прошло успешно то в папке /home/username/php/bin появится файл php-cgi eго нужно скопировать в папку ~/public_html/cgi-bin/ с именем php: cp "~/php/bin/php-cgi ~/public-html/cgi-bin/php"
5. В .htaccess помещаем следуюшие строчки:
Action php-script /cgi-bin/php
AddHandler php-script .php
Вуаля, новая версия php установлена на сервер. Обратите внимание, все операции можно проделать без рутового доступа, что может пригодится пользователям shared хостингов которым не нравится невозможность вносить изменения в php.ini
php.ini я положил в /home/username/php/lib/php.ini, скопировал существующий из /usr/php/lib/php.ini и внес в него необходимые мне изменения.
Вобщем, все оказалось не так уж и страшно, спасибо masterhost за вот эту инструкцию.
Правосудие в Сочи
Прочитал незабавную историю. Становится реально страшно, в этой стране на месте этого человека может оказаться каждый.
10 правил дзен-программиста
На хабре хорошая статья про это, постепенно я и сам этому стал приходить, правда от противоположной мысли, мысли о том, что нужно одновременно делать несколько вещей - доходило до того, что любой код который я писал я писал для нескольких проектов одновременно а когда я спал, я во сне обдумывал очередную идею. Нельзя сказать, что я на сто процентов согласен с автором, но его идеи, безусловно интересные.