<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>rvnikita blog &#187; coding</title>
	<atom:link href="http://rvnikita.ru/category/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://rvnikita.ru</link>
	<description>digital group head @ Ailove and the next president</description>
	<lastBuildDate>Thu, 29 Mar 2012 12:18:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Контроль времени загрузки сайта в Google Analytics</title>
		<link>http://rvnikita.ru/2011/10/kontrol-vremeni-zagruzki-sajta/</link>
		<comments>http://rvnikita.ru/2011/10/kontrol-vremeni-zagruzki-sajta/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 18:07:49 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google analytics]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=489</guid>
		<description><![CDATA[Время загрузки сайта влияет на различные показатели. Если сайт грузится очень долго показатель отказов будет высоким. Значение времени загрузки можно мерить различными способами: на сервере, проводить нагрузочные тестирования и т.д. В дополнение к всем этим инструментом можно воспользоваться возможностями Google Analytics. Для этого нужно расширить стандартный счетчик, добавив код подсчета времени загрузки. pageTracker._trackPageLoadTime(); Это позволит [...]]]></description>
			<content:encoded><![CDATA[<p>Время загрузки сайта влияет на различные показатели. Если сайт грузится очень долго показатель отказов будет высоким. Значение времени загрузки можно мерить различными способами: на сервере, проводить нагрузочные тестирования и т.д. </p>
<p>В дополнение к всем этим инструментом можно воспользоваться возможностями <a href="www.google.com/analytics/">Google Analytics</a>. Для этого нужно расширить стандартный счетчик, добавив код подсчета времени загрузки.</p>
<p><code>pageTracker._trackPageLoadTime();</code></p>
<p>Это позволит в последствии считать статистику по загрузке, с фильтрацией по URL, процентам отказов и т.д. Преимущество данного метода является то, что вся информация собирается на живых пользователях, по живым перемещениям по сайту. Минусом то, что отсчет начинается только с момента загрузки JS кода, т.е. скорость предварительной загрузки померить таким образом невозможно.</p>
<p>Пример отчета, который можно получить:</p>
<p><a href="http://rvnikita.ru/wp-content/uploads/2011/10/Screen-Shot-2011-10-19-at-9.54.44-PM.gif"><img src="http://rvnikita.ru/wp-content/uploads/2011/10/Screen-Shot-2011-10-19-at-9.54.44-PM.gif" alt="" title="Screen-Shot-2011-10-19-at-9.54.44-PM" width="500" height="194" class="aligncenter size-full wp-image-490" /></a></p>
<p>Подробнее про установку и возможности можно прочитать в <a href="http://analytics.blogspot.com/2011/05/measure-page-load-time-with-site-speed.html">статье</a> или <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html#_gat.GA_Tracker_._trackPageLoadTime">документации</a> Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2011/10/kontrol-vremeni-zagruzki-sajta/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Определение местоположения по Wifi и GSM</title>
		<link>http://rvnikita.ru/2011/02/opredelenie-mestopolozheniya-po-wifi-i-gsm/</link>
		<comments>http://rvnikita.ru/2011/02/opredelenie-mestopolozheniya-po-wifi-i-gsm/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 20:00:33 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[yandex]]></category>
		<category><![CDATA[яндекс]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=416</guid>
		<description><![CDATA[Компания Яндекс объявила об открытии нового API — Яндекс.Локатор, который позволяет определять местоположения пользователя по Wifi, GSM и IP адресу. Как это работает? Яндекс в своих сервисах определяет местоположение пользователя с помощью встроенных GPS датчиков и сопоставляет с данными Wifi и GSM обнаруженных вокруг. Далее с использованием триангуляции и др. алгоритмов сервис позволяет восстановить по [...]]]></description>
			<content:encoded><![CDATA[<p>Компания Яндекс <a href="http://clubs.ya.ru/company/replies.xml?item_no=34348">объявила</a> об открытии нового API — <a href="http://api.yandex.ru/locator/">Яндекс.Локатор</a>, который позволяет определять местоположения пользователя по Wifi, GSM и IP адресу.</p>
<p><strong>Как это работает?</strong><br />
Яндекс в своих сервисах определяет местоположение пользователя с помощью встроенных GPS датчиков и сопоставляет с данными Wifi и GSM обнаруженных вокруг. Далее с использованием триангуляции и др. алгоритмов сервис позволяет восстановить по Wifi и GSM местоположение с определенной точностью.<br />
Уникальность данного предложения в том, что Яндекс владеет очень большим количеством статистических данных, что позволяет выдавать актуальные данные. Т.к. известно, что идентификаторы GSM вышек достаточно часто меняются, Wifi появляются и пропадают и т.д. только создав целую сеть постоянно используемых сервисов Яндекс сможет поддерживать систему в актуальном состоянии, что недоступно ни одной небольшой компании собирающих данные в одиночку.</p>
<p><strong>Для чего это нужно?</strong><br />
В первую очередь это необходимо для мобильных приложений вроде Афиши или 4sq для того, чтобы выводить информацию актуальную местоположению пользователя.<br />
Однако это может пригодиться и в обычных вебпроектах, т.к. проект может вести себя по разному в зависимости от того где находится пользователь.<br />
Например:</p>
<ul>
<li>показывать разную рекламу для разных регионов</li>
<li>показывать различные данные привязанные к положению</li>
<li>подсказывать данные при регистрации и т.п.</li>
<li>соц. состовляющие (друзья рядом и т.д.)</li>
</ul>
<p>Раньше похожие базы IP соответствий были платными, сейчас, благодаря Яндекс, информация стала более актуальна и бесплатная.</p>
<p>Документация по внедрению API доступна по соотвутствующей <a href="http://api.yandex.ru/locator/doc/dg/concepts/about.xml">ссылке</a>.</p>
<p><a href="http://rvnikita.ru/wp-content/uploads/2011/02/3g_us_phone_diagram.gif"><img src="http://rvnikita.ru/wp-content/uploads/2011/02/3g_us_phone_diagram.gif" alt="" title="3g_us_phone_diagram" width="470" height="421" class="aligncenter size-full wp-image-418" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2011/02/opredelenie-mestopolozheniya-po-wifi-i-gsm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Бекап и восстановление OpenVZ серверов</title>
		<link>http://rvnikita.ru/2011/02/bekap-i-vosstanovlenie-openvz-serverov/</link>
		<comments>http://rvnikita.ru/2011/02/bekap-i-vosstanovlenie-openvz-serverov/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 13:15:44 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[openvz]]></category>
		<category><![CDATA[vzctl]]></category>
		<category><![CDATA[vzdump]]></category>
		<category><![CDATA[vzrestore]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=409</guid>
		<description><![CDATA[Данные нужно бекапить — это закон. Однако хотелось бы это делать так, чтобы к рабочему состоянию можно было вернуться за короткий период времени. Если вы бекапите всю БД + сохраняете архив с файлами сайта, то в случае уничтожения сервера вам сначала необходимо будет поднять новый сервер, настроить его, а затем разворачивать сайт. Если сайтов несколько [...]]]></description>
			<content:encoded><![CDATA[<p>Данные нужно бекапить — это закон. Однако хотелось бы это делать так, чтобы к рабочему состоянию можно было вернуться за короткий период времени.<br />
Если вы бекапите всю БД + сохраняете архив с файлами сайта, то в случае уничтожения сервера вам сначала необходимо будет поднять новый сервер, настроить его, а затем разворачивать сайт. Если сайтов несколько (в моем случае живет 10 сайтов), то процедуру развертывания придется проводить для каждого сайта отдельно. Итого на восстановление может уйти много времени. Гораздо эффективнее и проще настроить бекап всего сервера разом, что я и реализовал.<br />
Делается это с помощью технологии виртуализации OpenVZ.</p>
<p><a href="http://rvnikita.ru/wp-content/uploads/2011/02/backup.jpg"><img src="http://rvnikita.ru/wp-content/uploads/2011/02/backup.jpg" alt="" title="backup" width="400" height="237" class="aligncenter size-full wp-image-411" /></a><br />
<span id="more-409"></span><br />
<strong>Установка</strong><br />
Если кратко, то на основном сервере устанавливается OpenVZ, далее делается один единственный контейнер, который впоследствии и является сервером, на котором все живет и который отлично бекапится и восстанавливается. Ему отдаются все ресурсы железного сервера.<br />
Подробнее про данную технологию можно найти тут: <a href="http://wiki.openvz.org/">http://wiki.openvz.org/</a>. Она действительно очень мощная и простая. В плюсы также можно добавить безболезненную возможность добавить еще один виртуальный сервер параллельно. Главное не переборщить, т.к. ресурсы естественно ограничены.</p>
<p><strong>Бекап и восстановление</strong><br />
Используя технологию OpenVZ очень удобно пользоваться утилитой vzdump. Подробнее про установки и использование читаем <a href="http://wiki.openvz.org/Backup_of_a_running_container_with_vzdump">тут</a>. Утилита позволяет забекапить контейнер в один tgz архив, что примечательно без выключения сервера. По правде говоря есть 3 режима — отключение во время бекапа, suspend на маленький промежуток времени (существенно быстрее чем отключение), без отключения. Я пользуюсь вторым вариантом, т.к. это компромисс между временем отключки сервера и скоростью создания бекапа.<br />
С восстановлением также никаких проблем нет, делается все коммандой vzrestore.</p>
<p><strong>Автоматизация</strong><br />
По правде говоря именно из-за этого подпункта статья и писалась, т.к. все остальное без труда можно найти в интернете. Как известно я покупаю сервер у компании <a href="www.hetzner.de">Hetzner</a>. Недорогой немецкий провайдер, многие русские провайдеры по сути перепродают сервера данного провайдера.<br />
Я пользуюсь тарифом X2, увы на нем Hetzner не предоставляет FTP Backup, поэтому пришлось думать как и куда бекапить сервер, т.к. понятно, что бекап, который хранится на той же машине — чушь.<br />
Бекапить было принято на домашнюю машину, а как — выбирал из следующих вариантов: FTP, SSH (очень плохо работает на виндовой машине), скачивать со стороны домашней машины по HTTP.<br />
Пересмотрев все плюсы и минусы, а также попробовав несколько вариантов пришел к тому, что самый оптимальный — бекап со стороны сервера по FTP на домашнюю машину. Для этого со стороны домашней машины был поднят FTP с настройкой прав доступа, а со стороны сервера написан следующий BASH скрипт:<br />
<code><br />
#!/bin/bash</p>
<p>DUMPDIR={путь к папке дампов}<br />
cd {путь к папке на уровень выше папки дампов}</p>
<p>#backup 101 machine<br />
/usr/sbin/vzdump --compress --suspend {номер контенера} --dumpdir $DUMPDIR --stdexcludes  --bwlimit 0</p>
<p>#delete old files<br />
#find $DUMPDIR* -mtime +30 -exec rm {} \;</p>
<p>#write an FTP script<br />
echo "user {логин} {пароль}" >> temp_ftp_backup_file<br />
echo "put $DUMPDIR/vzdump-openvz-101-`date +%Y`_`date +%m`_`date +%d`-*.tgz vzdump-openvz-101-`date +%Y`_`date +%m`_`date +%d`.tgz" >> temp_ftp_backup_file<br />
echo "quit" >> temp_ftp_backup_file</p>
<p>#execute FTP<br />
ftp -n {IP адрес FTP сервера} {порт} < temp_ftp_backup_file</p>
<p>rm temp_ftp_backup_file<br />
</code></p>
<p>Надеюсь статья будет вам полезна. Если есть вопросы — welcome в комментарии. Желаю, чтобы бекапы вам никогда не понадобились <img src='http://rvnikita.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2011/02/bekap-i-vosstanovlenie-openvz-serverov/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Facebook Like, Twitter Share  и др. модули для блога</title>
		<link>http://rvnikita.ru/2011/01/facebook-like-twitter-share-i-dr-moduli-dlya-bloga/</link>
		<comments>http://rvnikita.ru/2011/01/facebook-like-twitter-share-i-dr-moduli-dlya-bloga/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 21:10:28 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[yandex]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=356</guid>
		<description><![CDATA[Социализация прочно вошла в нашу жизнь и сейчас зачастую трафик с социальных сетей догоняет и обгоняет трафик из поисковых систем. Найдя наконец пару часов решил привести блог в порядок, поправил свой wishlist, i am reading и добавил модули расшаривания в соц сети. Итак попорядку: Facebook Like button По сути состоит из двух частей: Like на [...]]]></description>
			<content:encoded><![CDATA[<p>Социализация прочно вошла в нашу жизнь и сейчас зачастую трафик с социальных сетей догоняет и обгоняет трафик из поисковых систем.<br />
Найдя наконец пару часов решил привести блог в порядок, поправил свой <a href="http://rvnikita.ru/wishlist/">wishlist</a>, <a href="http://rvnikita.ru/i-am-reading/">i am reading</a> и добавил модули расшаривания в соц сети.<br />
Итак попорядку:<br />
<strong>Facebook Like button</strong><br />
По сути состоит из двух частей:</p>
<ul>
<li>Like на конкретную страницу, который позволяет пользователям показывать интерес к данной странице и делить ей со своими друзьями.</li>
<li>Like на весь сайт, который дает пользователям высказывать любовь к сайту в целом на любой из страниц (у меня расположен в верхнем правом блоке).</li>
</ul>
<p>Оба элемента вставляются iframe или XFBML блоком со страницы <a href="http://developers.facebook.com/docs/reference/plugins/like">Facebook Like button</a>, где вы можете сгенерировать тебе блок с помощью формы. Единственным отличием второго варианта является необходимость явно указать url сайта.<br />
<strong>Twitter Share button</strong><br />
Тут все очень похоже, кнопка генерируется с помощью формы на странице <a href="http://twitter.com/about/resources/tweetbutton">Twitter Share button</a>. Никакой URL указывать не нужно, скрипт сам определяет на какой странице он расположен.<br />
<strong>Яндекс поделиться</strong><br />
Последним и достаточно быстрым способом создать Share модуль для сайта является сервис Яндекса «Блок поделиться». Аналогично с помощью форму генерируется блок на странице <a href="http://api.yandex.ru/share/">сайта</a> и вставляется на любой страницу в вашем проекте. Дешево и сердито.</p>
<p><a href="http://rvnikita.ru/wp-content/uploads/2011/01/media_httpfarm5static_fvFGb.jpg.scaled500.jpg"><img src="http://rvnikita.ru/wp-content/uploads/2011/01/media_httpfarm5static_fvFGb.jpg.scaled500.jpg" alt="" title="media_httpfarm5static_fvFGb.jpg.scaled500" width="500" height="333" class="aligncenter size-full wp-image-361" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2011/01/facebook-like-twitter-share-i-dr-moduli-dlya-bloga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Бесплатный DNS хостинг</title>
		<link>http://rvnikita.ru/2010/09/besplatnyj-dns-xosting/</link>
		<comments>http://rvnikita.ru/2010/09/besplatnyj-dns-xosting/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 21:51:15 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[yandex]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=328</guid>
		<description><![CDATA[После того, как я обнаружил, что мой хостер перепродает серверы немецкого датацентра было принято решение переехать туда самостоятельно. Благо в наш век спокойно можно все обсудить на английском и затем оплатить кредитной картой. Я существенно выиграл, теперь за железку я плачу 29+1 евро вместо 49. Единственный открытый вопрос — DNS хостинг с гибкой настройкой, т.к. [...]]]></description>
			<content:encoded><![CDATA[<p>После того, как я обнаружил, что мой хостер перепродает серверы немецкого датацентра было принято решение переехать туда самостоятельно. Благо в наш век спокойно можно все обсудить на английском и затем оплатить кредитной картой. Я существенно выиграл, теперь за железку я плачу 29+1 евро вместо 49. Единственный открытый вопрос — <strong>DNS хостинг</strong> с гибкой настройкой, т.к. почта летит напрямую в Google Apps аккаунт + календарь + docs. Я уже был готов заплатить по 31 рублю за домен своему регистратору, как обнаружил, что компания <a href="http://ya.ru">Yandex</a> предоставляет <strong>бесплатный DNS хостинг</strong> для всех желающих, при этом все настраивается очень легко и не нужно никаких дополнительных знаний.<br />
Подробнее можно узнать по ссылке <a href="http://pdd.yandex.ru">http://pdd.yandex.ru</a>.</p>
<p>P.S. Основной плюс заключается в авторитете компании, который дает гарантии в безопасности предоставлении домена.</p>
<p><a href="http://rvnikita.ru/wp-content/uploads/2010/09/dns3_0201.gif"><img src="http://rvnikita.ru/wp-content/uploads/2010/09/dns3_0201.gif" alt="" title="dns3_0201" width="503" height="303" class="aligncenter size-full wp-image-329" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2010/09/besplatnyj-dns-xosting/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Настройка redmine и svn на Debian 5.0</title>
		<link>http://rvnikita.ru/2010/03/nastrojka-redmine-i-svn-na-debian-5-0/</link>
		<comments>http://rvnikita.ru/2010/03/nastrojka-redmine-i-svn-na-debian-5-0/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 21:40:39 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[redmine]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=292</guid>
		<description><![CDATA[Пост скорее для себя, чтобы сохранить ссылки на ресурсы, по которым можно все востановить и настроить заново. Писать пост о том, как все это чудо настраивается нет ни сил, ни желания. Да и вознимают сомнения, что это возможно. Но вкрадце опишу откуда брал, с чем столкнулся. Основной и самый работающий вариант описан в pdf документе: [...]]]></description>
			<content:encoded><![CDATA[<p>Пост скорее для себя, чтобы сохранить ссылки на ресурсы, по которым можно все востановить и настроить заново. Писать пост о том, как все это чудо настраивается нет ни сил, ни желания. Да и вознимают сомнения, что это возможно. Но вкрадце опишу откуда брал, с чем столкнулся.</p>
<p>Основной и самый работающий вариант описан в pdf документе: <a href="http://www.redmine.org/attachments/2402/Redmine_Installation_on_Debian_v1.1.pdf">Redmine Installation on Debian</a><br />
Единственное, что не заработало &#8212; автоматом ставится passenger-2.2.10, а в описании используется passenger-2.2.1, поэтому вместо gem install passenger нужно писать gem install passenger -v=2.2.1</p>
<p>Далее было еще несколько различных багов, а также с добавление функционала SVN помогли следующие доки:<br />
<a href="http://www.redmine.org/wiki/1/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl">http://www.redmine.org/wiki/1/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl</a> (тут как привязать к redmine)<br />
<a href="http://www.debuntu.org/2006/05/20/54-how-to-subversion-svn-with-apache2-and-dav">http://www.debuntu.org/2006/05/20/54-how-to-subversion-svn-with-apache2-and-dav</a> (описание как поднять svn)<br />
<a href="http://www.redmine.org/boards/2/topics/6387">http://www.redmine.org/boards/2/topics/6387</a> (столкнулся с похожей проблемой при привязке)<br />
<a href="http://www.redmine.org/wiki/redmine/HowTo_to_handle_SVN_repositories_creation_and_access_control_with_Redmine">http://www.redmine.org/wiki/redmine/HowTo_to_handle_SVN_repositories_creation_and_access_control_with_Redmine</a> (тут описано как автоматически создавать репозитории при создании проекта)</p>
<p>В общем все, от себя добавлю, что после полноценной привязки чтобы репозиторий был недоступен без авторизации необходимо снять галку &#171;общедоступно&#187; в настройках проекта, а чтобы получить доступ к репозиторию под своей учеткой redmine необходимо добавить себя к проекту даже если вы администратор.</p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2010/03/nastrojka-redmine-i-svn-na-debian-5-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Создание подблога в WordPress</title>
		<link>http://rvnikita.ru/2010/02/sozdanie-podbloga-v-wordpress/</link>
		<comments>http://rvnikita.ru/2010/02/sozdanie-podbloga-v-wordpress/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 22:09:42 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=230</guid>
		<description><![CDATA[Сегодня захотел добавить фотографии с отпуска в блог, однако сразу стало понятно, что большинству подписчиков они попросту неинтересны. Поэтому появилась идея создать подблог в данном блоге, куда и писать все записи личного характера. Увы стандартный движок WordPress не умеет делать подблоги, поэтому пришлось дописывать функционал самому: Требования: записи из личного не должны попадать на главную [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня захотел добавить фотографии с отпуска в блог, однако сразу стало понятно, что большинству подписчиков они попросту неинтересны. Поэтому появилась идея создать подблог в данном блоге, куда и писать все записи личного характера. Увы стандартный движок WordPress не умеет делать подблоги, поэтому пришлось дописывать функционал самому:</p>
<p><strong>Требования</strong>:</p>
<ul>
<li>записи из личного не должны попадать на главную страницу</li>
<li>под записи из личного должна быть отдельная категория (подблог)</li>
<li>в новом подблоге должна быть своя RSS лента</li>
<li>в основной RSS ленте не должно быть записей из личного подблога</li>
</ul>
<p><strong>Решение:</strong></p>
<ol>
<li>Создаем рубрику, в моем случае рубрика <a href="http://rvnikita.ru/category/private/">личное</a> с urlname private</li>
<li>Узнаем ID новой категории, его можно подсматреть напрямую в БД или в админке при редактировании категории ссылка будет содержать данное число<a href="http://rvnikita.ru/wp-content/uploads/2010/02/category_id.jpg"><img src="http://rvnikita.ru/wp-content/uploads/2010/02/category_id.jpg" alt="" title="category_id" width="400" height="273" class="alignnone size-full wp-image-232" /></a>
</li>
<li>Редактируем файл functions.php темы, которую вы используете. Добавляем следующие строчки:<br />
<code><br />
function filter_subblog_entries($query)<br />
{<br />
    if (!$query->is_admin &#038;&#038;<br />
        (!isset($query->query_vars->category_name) || $query->query_vars->category_name != 'private')<br />
    ) //exclude private from main and not admin<br />
    {<br />
        $query->set('cat','-44');<br />
    }</p>
<p>    return $query;<br />
}<br />
add_filter('pre_get_posts','filter_subblog_entries');<br />
</code><br />
Вместо 44 подставляем число, полученное из третьего пункта, вместо private подставляем urlname нашей категории
</li>
</ol>
<p>Готово. Теперь главная страница и RSS лента не содержит сообщений из личного подблога, а в категории личного подблога и RSS содержатся только нужные нам посты.</p>
<p>P.S.<br />
Если вы используете widgets и там есть ссылки на RSS, то необходимо при просмотре подблога показывать другой вариант widget&#8217;a (с другой ссылкой на RSS) для этого идеально подходит плагин <a href="http://wordpress.org/extend/plugins/widget-logic/">Widget Logic</a>, который показывает виджеты в зависимости от логического условия.</p>
<p><a href="http://rvnikita.ru/wp-content/uploads/2010/02/private.jpg"><img src="http://rvnikita.ru/wp-content/uploads/2010/02/private.jpg" alt="" title="private" width="400" height="643" class="alignnone size-full wp-image-271" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2010/02/sozdanie-podbloga-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Генерация рыбы для баннеров</title>
		<link>http://rvnikita.ru/2010/02/generaciya-ryby-dlya-bannerov/</link>
		<comments>http://rvnikita.ru/2010/02/generaciya-ryby-dlya-bannerov/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 11:43:26 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=217</guid>
		<description><![CDATA[При разработке и тестировании веб проектов удобно забивать сайт рыбой &#8212; бессмысленным текстом, который показывает как будет отображаться информация. Чаще всего тексты генерируются на http://vesna.yandex.ru или http://www.lipsum.com/. На место баннеров генерируются заглушки с указанием размера. Для того, чтобы не терять время на их создание и облегчить труд вебразработчикам создали проект http://dummyimage.com. Он геренирует картинку по [...]]]></description>
			<content:encoded><![CDATA[<p>При разработке и тестировании веб проектов удобно забивать сайт рыбой &#8212; бессмысленным текстом, который показывает как будет отображаться информация.<br />
Чаще всего тексты генерируются на <a href="http://vesna.yandex.ru">http://vesna.yandex.ru</a> или <a href="http://www.lipsum.com/">http://www.lipsum.com/</a>.</p>
<p>На место баннеров генерируются заглушки с указанием размера. Для того, чтобы не терять время на их создание и облегчить труд вебразработчикам создали проект <a href="http://dummyimage.com">http://dummyimage.com</a>. Он геренирует картинку по размеру, переданную последним параметром.<br />
Например, по адресу <a href="http://dummyimage.com/468x60">http://dummyimage.com/468&#215;60</a> мы получаем вот такую картинку:</p>
<p><img src="http://dummyimage.com/468x60" /></p>
<p>а по адресу <a href="http://dummyimage.com/30x30">http://dummyimage.com/30&#215;30</a>, вот такую:</p>
<p><img src="http://dummyimage.com/30x30" /></p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2010/02/generaciya-ryby-dlya-bannerov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Просмотр сайта в различных браузерах</title>
		<link>http://rvnikita.ru/2010/01/prosmotr-sajta-v-razlichnyx-brauzerax/</link>
		<comments>http://rvnikita.ru/2010/01/prosmotr-sajta-v-razlichnyx-brauzerax/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 23:15:15 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[верстка]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=188</guid>
		<description><![CDATA[Все верстальщики держат семейство браузеров, для того, чтобы проверить, что сайт смотрится везде одинаково. Запускать отдельно каждый и просматривать неудобно и отнимает много времени. Быстрое решение — проект от Adobe Adobe browser lab. Вы просто выбираете список браузеров, вставляете ссылку и через некоторое время сравниваете результат в виде скриншотов. Замечательная возможность — наложение картинок друг [...]]]></description>
			<content:encoded><![CDATA[<p>Все верстальщики держат семейство браузеров, для того, чтобы проверить, что сайт смотрится везде одинаково.<br />
Запускать отдельно каждый и просматривать неудобно и отнимает много времени.<br />
Быстрое решение — проект от Adobe <a href="https://browserlab.adobe.com">Adobe browser lab</a>.<br />
Вы просто выбираете список браузеров, вставляете ссылку и через некоторое время сравниваете результат в виде скриншотов.</p>
<p>Замечательная возможность — наложение картинок друг на друга, для того, чтобы более точно понять где верстка едет.</p>
<p><img src="http://rvnikita.ru/wp-content/uploads/2010/01/adobe.png" alt="adobe" title="adobe" width="600" height="401" class="alignnone size-full wp-image-190" /></p>
<p><a href="https://browserlab.adobe.com">Adobe browser lab</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2010/01/prosmotr-sajta-v-razlichnyx-brauzerax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Интеграция сайта с Invision Power Board</title>
		<link>http://rvnikita.ru/2009/12/integraciya-sajta-s-invision-power-board/</link>
		<comments>http://rvnikita.ru/2009/12/integraciya-sajta-s-invision-power-board/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 22:54:06 +0000</pubDate>
		<dc:creator>rvnikita</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[Invision Power Board]]></category>
		<category><![CDATA[ipb]]></category>
		<category><![CDATA[ipbwi]]></category>

		<guid isPermaLink="false">http://rvnikita.ru/?p=149</guid>
		<description><![CDATA[Разрабатывая новую версию сайта http://beproplayer.ru столкнулись с необходимостью привязать пользователей сайта к пользователям форума. Необходима полная интеграция (добавление, удаление, редактирование и т.д.). С учетом того, что на сайте у пользователя есть очень много дополнительных свойств (анкета, принадлежность группе, биллинг, купленные пакеты и многое другое), решили закрыть все, что связано с пользователем на форуме (прячем регистрацию, [...]]]></description>
			<content:encoded><![CDATA[<p>Разрабатывая новую версию сайта <a href="http://beproplayer.ru">http://beproplayer.ru</a> столкнулись с необходимостью привязать пользователей сайта к пользователям форума.<br />
Необходима полная интеграция (добавление, удаление, редактирование и т.д.). С учетом того, что на сайте у пользователя есть очень много дополнительных свойств (анкета, принадлежность группе, биллинг, купленные пакеты и многое другое), решили закрыть все, что связано с пользователем на форуме (прячем регистрацию, удаление и т.д.) и реализовать все через сайт.<br />
Проект разрабатывается на фреймворке <a href="http://codeigniter.com/">Codeigniter</a>.<br />
Изучив готовые решения и опыт сообществ остановился на проекте <a href="http://ipbwi.com">IPWI</a> — Api для работы с <a href="http://www.invisionpower.com/">Invision Power Board</a>. Реализовано все достаточно удобно и красиво, и особо приятно наличие хорошей документации, доступной по адресу <a href="http://docs.ipbwi.com/">http://docs.ipbwi.com/</a>.<br />
Разработчикам, использующим <a href="http://codeigniter.com/">Codeigniter</a>, известно, что классы нужно использовать через <a href="http://codeigniter.com/user_guide/general/creating_libraries.html">библиотеки</a>.</p>
<p>Для этого, внедрим в движок Codeigniter класс IPWI.</p>
<ol>
<li><a href="http://pc-intern.com/projekte-5676.html">Скачиваем</a> последнюю версию IPWI</li>
<li>Копируем папку ipwi в папку system\application\libraries</li>
<li>Редактируем файл config.inc.php, там необходимо прописать адрес до форума, до нашего класса и адрес сайта</li>
<li>Переименовываем файл ipbwi.inc.php в ipbwi.php</li>
<li>В переименованном файле  ipbwi.php комментируем строчку $ipbwi = new ipbwi();</li>
<li>Готово.</li>
</ol>
<p>Теперь можно писать любую интеграцию с форумом. Например, чтобы при регистрации на сайте автоматически добавить пользователя на форуме нужно:<br />
<code><br />
$this->load->library('ipbwi/ipbwi'); //подключаем библиотеку<br />
$this->ipbwi->member->create($login, $password, $email); //регистрируем пользователя<br />
</code></p>
<p>Все интерфейсы достаточно подробно описаны в <a href="http://docs.ipbwi.com/">документации</a>.</p>
<p><img src="http://rvnikita.ru/wp-content/uploads/2009/12/logo_728x90.jpg" alt="logo_728x90" title="logo_728x90" width="400" height="49" class="alignnone size-full wp-image-151" /></p>
]]></content:encoded>
			<wfw:commentRss>http://rvnikita.ru/2009/12/integraciya-sajta-s-invision-power-board/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
