Monthly Archives: July 2010

Хранение PHP сессий в memcached: испытание на production сервере

Сегодня на работе выкатили свежую версию проекта на production-сервер. Посмотрели, потестили под одним юзером, всё нормально. Но потом наштестировщик, обнаружил, что постоянно начали отваливаться сессии, часто происходила подмена сессий, т.е. когда человек логиниться, то в его сессии лежат данные другого пользователя, а именно того, кто залогинился ранее.

Eventr.com как смесь веб-технологий

Недавно состоялся запуск проекта Evantr.com. Коротко скажу, что по функционалу это социальный RSS-ридер, гибрид twitter и GoogleReader. Кстати, очень занятная получилась штука. Можно импортировать RSS к себе в ленту, добавлять в неё ленты друзей, и удобно читать всё это дело. Чем мне сразу понравился проект, так это тем, что разработчики не пытаются объять необъятное, а делают небольшой функционал, но зато на отлично. Из минусов я бы выделил то, что нельзя получить RSS-поток своей ленты.

PHP for Android

Анонсирован проект “PHP for Android” в рамках которого представлена система для выполнения на платформе Android приложений, написанных на языке PHP. В настоящий момент для телефонов на базе платформы Android подготовлен установочный APK-файл, интегрирующий поддержку PHP 5.3 в созданную разработчиками Google подсистему Android Scripting Environment (ASE). Исходные тексты разработки распространяются в рамках лицензии Apache.

PHP-скрипты могут выполняться в окружении Android из командной строки, функционировать как фоновые процессы или выступать в роли обычных GUI приложений.

Работа с MySQL кластером в Doctrine

В этой статье я хочу рассказать, как настроить Doctrine таким образом, чтобы использовать master-сервера для записи, а slave-сервера для чтения данных. Эта стратегия позволит добиться распределения нагрузки между серверами БД. Речь идет именно о нескольких серверах, на которых реплицируются базы, а не о ndbcluster, как некоторые могли бы подумать.

Итак, сначала мы должны сконфигурировать все дсотупные соединения в Doctrine.

Теперь, когда у нас есть один master-сервер, и 4 slave-сервера мы можем переписать классы Doctrine_Record и Doctrine_Query для добавления логики по разделению запросов для чтения и для записи.

Тормоза при коннектах к MySQL на другом сервере

У сайта вдруг начали появляться тормоза. Скрипт отарбатывал больше 10 секунд. Начали с коллегами копать и выяснили, что очень большое время занимает коннект к серверу БД. По 5 секунд на коннект, два коннекта = 10 секунд.

Оказывается, это виноват резолв имен. Чтобы решить проблему прописали хосты с которых идут коннекты в /etc/hosts сервера БД, и стали запускать mysqld с параметром –skip-name-resolve

После этого время работы сократилось на порядок.

Подробнее о резолве в MySQL можно прочитать здесь:

http://dev.mysql.com/doc/refman/5.0/en/dns.html

Восстановление с Acer eRecovery

Попал тут недавно ко мне ноутбук, на котором сломалась Ось . Ноутбук был Acer и была там волшебная Acer eRecovery. Я понадеялся на то, что быстренько восстановлю ось. Но не тут то было. По Alt+F10 я загрузился со скрытого раздела, и вроде бы процесс пошел. Восстановил Windows на раздел Acer, перезагрузился, и всё. Система не грузится. В результате долгих разборок выяснилось следующее.

  • Acer eRecovery восстанавливает систему строго на первый (ну на самом деле на второй после скрытого) раздел.

Английский язык интерфейса в NetBeans 6.8

Установил себе NetBeans 6.8 По -умолчанию она встала с русским языком. Ничего не понял, перевод – просто кошмар. Решил сменить язык. Казалось бы, зайди в настройки да и меняй, ан нет. Всё облазил ничего нет.

Полазил по сети, нашел всё-таки, как сменить язык. Для этого надо запустить NetBeans с параметром локали:

–locale en:US

Аналогично для других языков.