RSS Записей | RSS Комментариев
Ядоблог - Stay upwind

Архив за февраля, 2011

NoSQL. PHP. Реализуем хитрый OR

февраля 24, 2011 | 5 Комментариев

Допустим у нас имеется коллекция сайтов, и, внутри этой коллекции хранятся данные о пользователях сайта, и их правах в этом сайте.Приведу один объект из коллекции, но их у нас много:

Задача: выбрать документы из данной коллекции, где определённый user_id находится или в первом уровне(является владельцем) или в коллекции пользователей этого сайта (является назначенным пользователем и его права определяются дополнительно).

В обычном sql у нас бы не было так вкусно расположенных данных, а было бы 2-3 таблицы связанные таблицами объединяющими их id (много ко многим) и решением было бы сделать крутой джойн или несколько запросов.

Решение в NoSQL (MongoDB, PHP):

//Подконнектимся
$this->connection = new Mongo('localhost:27017');
//Дёрним нужную базу
$this->db = $this->connection->mydb;
//Что будем искать
$user_id='fabe6e3dab8c63bb28a27b98c5c15554';
//Будем искать или сразу в первом уровне user_id или users.user_id.
//Немного непривычная форма формирования условия, но это адапрированный json, через массивы
//Примерно: or (_первое выражение_, _второе выражение_)
$data=array('$or'=>array(array('users.user_id'=>$user_id),array('user_id'=>$user_id)));
//Переберём их по-порядку, т.к. они объекты
$cursor=$this->db->sites->find($data);
$sites=array();
foreach ($cursor as $site)
{
//Сформируем массив таких сайтов удовлетворяющих условию
$sites[]=$site;
}

Согласитесь, красивое и удобное решение?=)

Обратите внимание, что документов в коллекции пользователей разные атрибуты.

Рождение чуда. NoSQL.

февраля 15, 2011 | Комментариев нет

Вчера заложил в руснете кирпич канал #NoSQL.

Предполагается тематическое общение. У данного типа СУБД большое будущее. Желающим разбираться/изучать — предлагаю присоединяться!

NoSQL IAD

Эпик фейл. Потеря данных в VirtualBox. Данные не сохранялись.

февраля 15, 2011 | Комментариев нет

Столкнулся недавно с проблемой в VirtualBox- выдёргиваешь USB девайс, на котором лежал образ диска, или падает сетка с образом на другом компе и:

1. виртуалка виснет намертво (не решено)

2. Все данные с результатом последних часов работы (с момента запуска виртуалки) — теряются. (решено)

решение как всегда простое — заходим в настройку виртуалки и убираем чекбокс нах!

24 способа достичь успеха

февраля 12, 2011 | 4 Комментариев

CodeIgniter + MongoBD

февраля 11, 2011 | Комментариев нет

Используем MongoDB с CodeIgniter.
Установка. Всё расписано хорошо тут: http://alexbilbie.blogs.lincoln.ac.uk/2010/04/09/mongodb-codeigniter-101-part-1/.
Если у вас Windows:
1. скачайте версию MongoDB для Windows с официального сайта
2. создайте «c:\data\db\» (там монго будет хранить все свои базы)
3. запустите в скачанном архиве mongod — демон монго. Если окошко продолжает висеть, то всё ок — СУБД монги работает.

Теперь настройте PHP:
1. нужно скачать библиотеку монго.
2. скопировать в папку ext и вставляйте в php.ini «extension=php_mongo.dll». В архиве будет много версий файла — смотрите readme и выбирайте нужный.
3. перезапустить апачу. Если апача стартанула, думаю всё хорошо.

Скачайте редактор(менеджер баз данных) для монго:
1. Мне нравится RockMongo — типа phpMyAdmin
2. программа с GUI для виндовс Database Master

Ну, уже хорошо. Можно работать.

Умная рекламная кампания

февраля 10, 2011 | Комментариев нет

В достаточно интересном формате предлагает осуществлять рекламную компанию миксмаркет. Они предлагают рекламодателям оплачивать не пресловутые клики, которые не обязательно принесут деньги, а допустим факт реальной регистрации клиента, покупки товара или оплаты первого месяца пользования услугой.

Пример:

Если у Вас сервис, ориентированный на реальную продажу товара или услуги, в принципе может получиться дешевле, чем раздавать деньги рефоводам. рефссылго.

Удачного дня!

IAD получил эпик фэйл

февраля 8, 2011 | 8 Комментариев

Правил конфиги нгинкса и обнаружил, что пропала вся статика напрочь, на всех доменах, кроме того, к которому подвязывал зону РФ.
Вроде обычный конфиг:

----вырезано----
     server
    {
        listen       айпишнег:80;
        server_name  site.ru www.site.ru мухрю.xn--p1ai;
 
        location /
        {
            client_max_body_size 8M;
            client_body_buffer_size 128k;
 
            proxy_pass http://айпишнег:81/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarder_for;
        }
        location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$
    	{
            root /var/www/site.ru/;
	}
    }
 
    server
    {
        listen       айпишнег:80;
#       server_name  .my;
 
        location /
        {
            client_max_body_size 8M;
            client_body_buffer_size 128k;
 
            proxy_pass http://апача:81/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarder_for;
        }
        location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$
    	{
            root /var/www/$host/;
		}
    }

но ошибка заключается в том, что если нгинкс не находит правило для полученного запроса, то передаёт запрос первому серверу!

Если в запросе нет заголовка «Host» или же в нём указано имя, неописанное ни в одном сервере, слушающем на адресе и порту, на которые пришёл запрос, то запрос будет обслужен сервером, у которого первым описаны эти адрес и порт.

Об этом нужно помнить.
Решение — поменять блоки server местами

VDS. Халява, только для русских!

февраля 6, 2011 | Комментариев нет

Есть уникальная возможность срубить бабла, сэкономив. Конечно если вы настоящий русский.

TinyVDS раздаёт скидку в 50% на первые 3 месяца юзания VDS.План действий:

1. регаемся тут: http://tinyvds.ru

2. смотрим цены (кликабельно):

3. офигеваем от текущих цен, какие они низкие

4. при создании VDS вводим промокод и получаем ацкую скидку в 50% на первые 3 месяца. Промокод: 3M50OFF

от себя скажу что пользуюсь услугами уже давненько:


службы мониторинга серверов

Отличительной особенностью тинивдс является то, что они дают в VDS все 4 ядра сервака. Сайты работают ацко быстро, даже вордпрессы.

VPS IAD

Джигурда, это просто агонь

февраля 4, 2011 | 2 Комментариев

Под столом, =)

Ядодень

февраля 4, 2011 | 2 Комментариев

Алярма трафег.
Фотки кликабельны.

Читать полностью »

© 2010 Ядоблог. Все права защишены.
Powered by Лаборатория Яда. Написать администратору