<?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>Oduvan's Web Blog &#187; testing</title>
	<atom:link href="http://www.lyabah.com/index.php/tag/testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lyabah.com</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 16:48:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Доверяй но проверяй, разделяй и властвуй</title>
		<link>http://www.lyabah.com/index.php/2009/08/04/split-develop/</link>
		<comments>http://www.lyabah.com/index.php/2009/08/04/split-develop/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 09:38:05 +0000</pubDate>
		<dc:creator>Oduvan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[checking]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.lyabah.com/?p=499</guid>
		<description><![CDATA[Последнее время мучает одна идея. Мне как всегда кажется, что она реально не нова, и если это так, скажите мне, как это дело называется.
Если помните, я уже писал о тестировании наследниками. Теперь у меня родилась идея организации инлайн тестов, также намного своеобразным способом.
Что если проект разделить на 2, или создавать 2 его копии. Один будет [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lyabah.com/wp-content/uploads/2009/08/kombain.jpg"><img src="http://www.lyabah.com/wp-content/uploads/2009/08/kombain-300x228.jpg" alt="kombain" title="kombain" width="300" height="228" class="alignleft size-medium wp-image-501" /></a>Последнее время мучает одна идея. Мне как всегда кажется, что она реально не нова, и если это так, скажите мне, как это дело называется.</p>
<p>Если помните, я уже писал о <a href="http://www.lyabah.com/index.php/2009/04/15/%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8/">тестировании наследниками</a>. Теперь у меня родилась идея организации инлайн тестов, также намного своеобразным способом.</p>
<p>Что если проект разделить на 2, или создавать 2 его копии. Один будет для боевого сервера, а второй будет для сервера разработки. И проект для разработки будет отличатся от проекта для боевого только тем, что в него будут включены проверки входных данных для всех блоков программы ( или критичных, или точек взаимодействия модулей ), это бывает полезно, когда несколько человек работает на одним проекта и надо проверять, чтоб один разработки пользовался интерфейсом модуля другого разработчика правильно. Но все эти проверки не нужны на боевом, или не нужны с определенного времени. Т.е. чтоб от них можно было легко избавится и легко включить обратно.</p>
<p>Так. Надеюсь общую задачу я описал адекватно. Если нет, то возможно из решения вы поймете о чем речь.</p>
<p>Задача решается на python. </p>
<p>У python есть массив каталогов, в которых он ищет модуль, как только вы хотите его импортировать. И этот список каталогов можно расширять во время работы программы.</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">apend</span><span class="br0">&#40;</span><span class="st0">&#39;/home/oduvan/list_of_my_cool_modules&#39;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Python позволяет один и тот же модуль импортировать с разными именами. Т.е. в области видимости, в которую мы импортируем модуль — мы можем дать ему несколько различных имен.</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span> as new_sys</div>
</li>
</ol>
</div>
<p>И можно все имена из одного модуля импортировать в другой модуль.</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">from</span> <span class="kw3">sys</span> <span class="kw1">import</span> <span class="sy0">*</span></div>
</li>
</ol>
</div>
<p>Вот по сути и весь необходимый функционал от python, который необходим для реализации этой идеи. Т.е. предполагаю, что любой другой  язык с ООП, который имеет эти возможности может использовать эту идею.</p>
<p>Решение. </p>
<p>Модули для боевого сервера — будут включать в себя только функционал, т.е без каких либо проверок. А модули для деволова будут включать только проверки  и никакого функционала. В них будут собраны функции, которые будут проверять входных параметры одноименных функций из девелопа. При чем возможности проверок вообще ничем не ограничены.</p>
<p>Ниже приведена структура каталогов и файлов нашего проекта.</p>
<pre>
modules
	__init__.py
	develop
		__init__.py
		t1.py
	production
		__init__.py
		t1.py
		t2.py
run.py
</pre>
<p>В modules/production собраны все модули для боевого сервера<br />
В modules/develop модули с проверками данных<br />
run.py скрипт, в котором они будут использоваться.</p>
<p>Замете, что в папке modules тоже есть файл __init__.py, т.е. он также будет точкой отсчета для импорта.</p>
<p>В папке develop есть файл t1.py для тестирования такого же модуля из продакшена, или его части. А также мы видим, что модуль t2 остается без тестов. </p>
<p>( Автор просит прощения, за такие без звучные имена, с фантазией у него совсем все плохо )</p>
<p>Приведу пример модуля t1 из production</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">def</span> p_name<span class="br0">&#40;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#39;Production&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> just_in_prod<span class="br0">&#40;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#39;This just in prod&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> sum2<span class="br0">&#40;</span>a,b<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> a+b</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> A<span class="br0">&#40;</span><span class="kw2">object</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> b_prop<span class="br0">&#40;</span><span class="kw2">self</span>,b<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> b.<span class="me1">prop</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> B<span class="br0">&#40;</span><span class="kw2">object</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>,prop<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">prop</span> = prop</div>
</li>
</ol>
</div>
<p>функция p_name просто нужна для вывода имени модуля или репозитария, для нас она особой ценности не имеет.<br />
just_in_prod — тестироваться этой функции проводится не будет<br />
sum2 — складывает 2 числа. И мы хотим проверить, чтоб это на самом деле были 2 числа.<br />
Объект класс A имеет метод, который на вход получает один параметр — объект класса B, и возвращает его свойство. Класс B мы также тестировать не будем.</p>
<p>Как сами уже можете видеть, в модуле нет ни одного слово о тестах. Вы видите чистый функционал.</p>
<p>Теперь приведу вам пример модуля t1 из develop</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">from</span> production.<span class="me1">t1</span> <span class="kw1">import</span> <span class="sy0">*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> production.<span class="me1">t1</span> as P</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> p_name<span class="br0">&#40;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#39;Develop&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; P.<span class="me1">p_name</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> sum2<span class="br0">&#40;</span>a,b<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="kw1">not</span> <span class="kw2">isinstance</span><span class="br0">&#40;</span>a, <span class="br0">&#40;</span><span class="kw2">int</span>,<span class="kw2">float</span><span class="br0">&#41;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">ValueError</span><span class="br0">&#40;</span><span class="st0">&#39;a must be int or float&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="kw1">not</span> <span class="kw2">isinstance</span><span class="br0">&#40;</span>b, <span class="br0">&#40;</span><span class="kw2">int</span>,<span class="kw2">float</span><span class="br0">&#41;</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">ValueError</span><span class="br0">&#40;</span><span class="st0">&#39;a must be int or float&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> P.<span class="me1">sum2</span><span class="br0">&#40;</span>a,b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> A<span class="br0">&#40;</span>P.<span class="me1">A</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> b_prop<span class="br0">&#40;</span><span class="kw2">self</span>,b,<span class="sy0">*</span>args,<span class="sy0">**</span>kwargs<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw1">not</span> <span class="kw2">isinstance</span><span class="br0">&#40;</span>b, B<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">raise</span> <span class="kw2">ValueError</span><span class="br0">&#40;</span><span class="st0">&#39;first argument must be instance of B&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">super</span><span class="br0">&#40;</span>A,<span class="kw2">self</span><span class="br0">&#41;</span>.<span class="me1">b_prop</span><span class="br0">&#40;</span>b,<span class="sy0">*</span>args,<span class="sy0">**</span>kwargs<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Первые 2 строчки всегда должны быть в модуле тестирования.</p>
<p>Функция p_name будет чисто информативная ( мы на ней покажем вам порядок импортирования) , и безусловно тестирование без нее лучше обойтись.</p>
<p>Проверка для функции sum2 и проверка для свойства b_prop из класса A. </p>
<p>Ну и текст скрипта, который демонстрирует процесс работы и тестирования run.py. Предполагается, что у вас это и будет точкой отсчета для запуска. </p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/develop&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/production&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> t1,t2</div>
</li>
<li class="li1">
<div class="de1">t1.<span class="me1">p_name</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&#39;&#8212;&#39;</span></div>
</li>
<li class="li1">
<div class="de1">t1.<span class="me1">just_in_prod</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">t2.<span class="me1">in_only_production</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> <span class="st0">&#39;&#8212;&#39;</span></div>
</li>
<li class="li1">
<div class="de1">o_a = t1.<span class="me1">A</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">o_b = t1.<span class="me1">B</span><span class="br0">&#40;</span><span class="st0">&#39;it_s prop&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> o_a.<span class="me1">b_prop</span><span class="br0">&#40;</span>o_b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> t1.<span class="me1">sum2</span><span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">2</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">print</span> o_a.<span class="me1">b_prop</span><span class="br0">&#40;</span><span class="nu0">15</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>В этом скрипте важным является порядок добавления модулей в массив sys.path, ну и то, чтоб эти строчки были самые первые в вашем скрипте.</p>
<p>Вывод скрипта будет следующий </p>
<pre>
Develop
Production
---
This just in prod
Only in production
---
it_s prop
3
Traceback (most recent call last):
  File "run.py", line 18, in <module>
    print o_a.b_prop(15)
  File "modules/develop/t1.py", line 18, in b_prop
    raise ValueError('first argument must be instance of B')
ValueError: first argument must be instance of B
</pre>
<p>для боевого сервера он будет такой же, только в «шапке» скрипта будет не</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/develop&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules&#39;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/production&#39;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>а</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">sys</span>.<span class="me1">path</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&#39;modules/production&#39;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>В этом случае поменяется только текст ошибки</p>
<pre>
Production
---
This just in prod
Only in production
---
it_s prop
3
Traceback (most recent call last):
  File "run.py", line 18, in <module>
    print o_a.b_prop(15)
  File "modules/production/t1.py", line 12, in b_prop
    return b.prop
AttributeError: 'int' object has no attribute 'prop'
</pre>
<p>Я думаю люди, которые часами разбирались в мало понятных ошибках модулей — оценят идею.</p>
<p>Да, и еще одним плюсом является то, что вы можете делать легко несколько профилей тестирования и легко между ними переключатся, Добавив рядом с папкой develop, что нить типа develop_plusplus, или если вы хотите залить на продакшн тесты, но не хотите тестировать все, а только те чатити, которые подвержены изменения develop_light. </p>
<p>Я же планирую у себя это использовать для своего сокет сервера. У меня именно так разнесен скрипт run.pay от функциональных модулей. И думаю при запуске его добавить еще параметр -t которому можно будет передать имя профиля тестирования.</p>
<p><a href='http://www.lyabah.com/wp-content/uploads/2009/08/split_develop.tar.gz'>Файлы из примера split_develop.tar</a></p>
<p>Вот и все. Жду жесткую критику, предложения по улучшению.</p>
<p><strong>Спасибо, что дочитали до конца <img src='http://www.lyabah.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;t=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Facebook"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;source=Oduvan%27s+Web+Blog+&amp;summary=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="LinkedIn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;notes=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="del.icio.us"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="StumbleUpon"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;t=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="MySpace"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Reddit"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;bodytext=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="Digg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;annotation=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="Google Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F" title="Technorati"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="mailto:?subject=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;body=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F" title="email"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;partner=sociable" title="Print"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F" title="Sphinn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Mixx"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a  href="http://blogplay.com" title="Blogplay"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/blogplay.png" title="Blogplay" alt="Blogplay" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Linkter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Live"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;URL=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="MSN Reporter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;h=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="NewsVine"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.lyabah.com/index.php/feed/" title="RSS"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;t=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&opener=bm&amp;ei=UTF-8&amp;d=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1" title="Yahoo! Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;submitHeadline=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9&amp;submitSummary=%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%BC%D1%83%D1%87%D0%B0%D0%B5%D1%82%20%D0%BE%D0%B4%D0%BD%D0%B0%20%D0%B8%D0%B4%D0%B5%D1%8F.%20%D0%9C%D0%BD%D0%B5%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%20%D0%BA%D0%B0%D0%B6%D0%B5%D1%82%D1%81%D1%8F%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D0%B8%20%D0%B5%D1%81%D0%BB%D0%B8%20%D1%8D%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA%2C%20%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5%20%D0%BC%D0%BD%D0%B5%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F.%0D%0A%0D%0A%D0%95%D1&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://yigg.de/neu?exturl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F08%2F04%2Fsplit-develop%2F&amp;exttitle=%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%20%D0%BD%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B9%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%8F%D0%B9%20%D0%B8%20%D0%B2%D0%BB%D0%B0%D1%81%D1%82%D0%B2%D1%83%D0%B9" title="Yigg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lyabah.com/index.php/2009/08/04/split-develop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тестирование наследниками</title>
		<link>http://www.lyabah.com/index.php/2009/04/15/%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0%d1%81%d0%bb%d0%b5%d0%b4%d0%bd%d0%b8%d0%ba%d0%b0%d0%bc%d0%b8/</link>
		<comments>http://www.lyabah.com/index.php/2009/04/15/%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0%d1%81%d0%bb%d0%b5%d0%b4%d0%bd%d0%b8%d0%ba%d0%b0%d0%bc%d0%b8/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 11:10:05 +0000</pubDate>
		<dc:creator>Oduvan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[inlite]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.lyabah.com/?p=327</guid>
		<description><![CDATA[Коротенько изложу идею. И как всегда, уверен, что она не нова, т.к. ничего особенного в ней нет.
Итак. Тестирование. Для меня синоним закрепления функционала. И тесты я как правило пишу, когда у меня утряслась бизнес логика и архитектура проекта, и даже отчасти написана документация ( в тех местах, где было не лень). Когда у вас просто [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.lyabah.com/wp-content/uploads/2009/04/crashtestdummy.jpg" alt="crashtestdummy" title="crashtestdummy" width="232" height="174" class="alignleft size-full wp-image-328" />Коротенько изложу идею. И как всегда, уверен, что она не нова, т.к. ничего особенного в ней нет.</p>
<p>Итак. Тестирование. Для меня синоним закрепления функционала. И тесты я как правило пишу, когда у меня утряслась бизнес логика и архитектура проекта, и даже отчасти написана документация ( в тех местах, где было не лень). Когда у вас просто класс, который супирует 2 числа и выдает результат, то написать автоматические тесты &#8211; не проблема. У меня стала задача написание автоматических тестов для сетевого приложения.</p>
<p>Общая задача его сводится к следующему. К нему по очереди цепляются клиенты, оставляют какие то данные. Сервер обрабатывает и выдает инфу следующим клиентам. Это общая задача для любого сетевого приложения + есть игровой элемент, когда есть событие, которое может возникнуть с некой вероятностью. Как организовать тест. Первое, что пришло в голову — это тестируемые программы, которые подключаются к этому серваку, прогоняют функционал, проверяют ответы, выдают результат. Но можно проще. Тестируемое приложение имеет базовый класс. В котором создаётся объект сокет сервера и объект коннекта к бд. Мы создаем наследника от него, в котором переопределяем функции коннекта и обработки данных с сокет сервера, а функции эти просто сохраняют эти данные в отдельной переменной. Таким образом мы уже тестирует сам функционал, а не систему взаимодействия (которую изначально рассматриваем как черный ящик), и все тестирование по сути сводится к суммированию двух чисел. Кроме того — вы можете сразу выделить вероятностный функционал, например который генерит рандомное значение, и его также переопределить, чтоб данные не генерировались, а брались из заданного пула значений.</p>
<p>Как бонус, можно попробовать, создать отдельный наследник, в котором будут инлайн тесты самого приложения. Т.е. когда во время реальной работы приложения идет тестирование его промежуточных результатов, таким образом можно не напортачить в процессе самой разработки. </p>
<p>Вот и все.  Ваше мнение?</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;t=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="Facebook"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&amp;source=Oduvan%27s+Web+Blog+&amp;summary=%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%D0%BA%D0%BE%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D1%83%20%D0%B8%D0%B4%D0%B5%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%2C%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D1%82.%D0%BA.%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%BD%D0%B5%D0%B9%20%D0%BD%D0%B5%D1%82.%0D%0A%0D%0A%D0%98%D1%82%D0%B0%D0%BA.%20%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%94%D0%BB%D1%8F%20%D0%BC%D0%B5%D0%BD%D1%8F%20%D1%81%D0%B8%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%20%D0%B7%D0%B0%D0%BA%D1%80%D0%B5" title="LinkedIn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&amp;notes=%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%D0%BA%D0%BE%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D1%83%20%D0%B8%D0%B4%D0%B5%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%2C%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D1%82.%D0%BA.%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%BD%D0%B5%D0%B9%20%D0%BD%D0%B5%D1%82.%0D%0A%0D%0A%D0%98%D1%82%D0%B0%D0%BA.%20%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%94%D0%BB%D1%8F%20%D0%BC%D0%B5%D0%BD%D1%8F%20%D1%81%D0%B8%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%20%D0%B7%D0%B0%D0%BA%D1%80%D0%B5" title="del.icio.us"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="StumbleUpon"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;t=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="MySpace"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reddit.com/submit?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="Reddit"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&amp;bodytext=%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%D0%BA%D0%BE%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D1%83%20%D0%B8%D0%B4%D0%B5%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%2C%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D1%82.%D0%BA.%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%BD%D0%B5%D0%B9%20%D0%BD%D0%B5%D1%82.%0D%0A%0D%0A%D0%98%D1%82%D0%B0%D0%BA.%20%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%94%D0%BB%D1%8F%20%D0%BC%D0%B5%D0%BD%D1%8F%20%D1%81%D0%B8%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%20%D0%B7%D0%B0%D0%BA%D1%80%D0%B5" title="Digg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&amp;annotation=%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%D0%BA%D0%BE%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D1%83%20%D0%B8%D0%B4%D0%B5%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%2C%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D1%82.%D0%BA.%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%BD%D0%B5%D0%B9%20%D0%BD%D0%B5%D1%82.%0D%0A%0D%0A%D0%98%D1%82%D0%B0%D0%BA.%20%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%94%D0%BB%D1%8F%20%D0%BC%D0%B5%D0%BD%D1%8F%20%D1%81%D0%B8%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%20%D0%B7%D0%B0%D0%BA%D1%80%D0%B5" title="Google Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F" title="Technorati"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="mailto:?subject=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&amp;body=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F" title="email"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;partner=sociable" title="Print"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F" title="Sphinn"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="Mixx"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a  href="http://blogplay.com" title="Blogplay"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/blogplay.png" title="Blogplay" alt="Blogplay" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="Linkter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="Live"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://reporter.nl.msn.com/?fn=contribute&amp;Title=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&amp;URL=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%D0%BA%D0%BE%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D1%83%20%D0%B8%D0%B4%D0%B5%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%2C%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D1%82.%D0%BA.%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%BD%D0%B5%D0%B9%20%D0%BD%D0%B5%D1%82.%0D%0A%0D%0A%D0%98%D1%82%D0%B0%D0%BA.%20%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%94%D0%BB%D1%8F%20%D0%BC%D0%B5%D0%BD%D1%8F%20%D1%81%D0%B8%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%20%D0%B7%D0%B0%D0%BA%D1%80%D0%B5" title="MSN Reporter"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/msnreporter.png" title="MSN Reporter" alt="MSN Reporter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;h=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="NewsVine"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://www.lyabah.com/index.php/feed/" title="RSS"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;t=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&opener=bm&amp;ei=UTF-8&amp;d=%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%D0%BA%D0%BE%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D1%83%20%D0%B8%D0%B4%D0%B5%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%2C%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D1%82.%D0%BA.%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%BD%D0%B5%D0%B9%20%D0%BD%D0%B5%D1%82.%0D%0A%0D%0A%D0%98%D1%82%D0%B0%D0%BA.%20%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%94%D0%BB%D1%8F%20%D0%BC%D0%B5%D0%BD%D1%8F%20%D1%81%D0%B8%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%20%D0%B7%D0%B0%D0%BA%D1%80%D0%B5" title="Yahoo! Bookmarks"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;submitHeadline=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8&amp;submitSummary=%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%D0%BA%D0%BE%20%D0%B8%D0%B7%D0%BB%D0%BE%D0%B6%D1%83%20%D0%B8%D0%B4%D0%B5%D1%8E.%20%D0%98%20%D0%BA%D0%B0%D0%BA%20%D0%B2%D1%81%D0%B5%D0%B3%D0%B4%D0%B0%2C%20%D1%83%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%2C%20%D1%87%D1%82%D0%BE%20%D0%BE%D0%BD%D0%B0%20%D0%BD%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%B0%2C%20%D1%82.%D0%BA.%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%BD%D0%B5%D0%B9%20%D0%BD%D0%B5%D1%82.%0D%0A%0D%0A%D0%98%D1%82%D0%B0%D0%BA.%20%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%94%D0%BB%D1%8F%20%D0%BC%D0%B5%D0%BD%D1%8F%20%D1%81%D0%B8%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%20%D0%B7%D0%B0%D0%BA%D1%80%D0%B5&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  href="http://yigg.de/neu?exturl=http%3A%2F%2Fwww.lyabah.com%2Findex.php%2F2009%2F04%2F15%2F%25d1%2582%25d0%25b5%25d1%2581%25d1%2582%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b8%25d0%25b5-%25d0%25bd%25d0%25b0%25d1%2581%25d0%25bb%25d0%25b5%25d0%25b4%25d0%25bd%25d0%25b8%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8%2F&amp;exttitle=%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8" title="Yigg"><img src="http://www.lyabah.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lyabah.com/index.php/2009/04/15/%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0%d1%81%d0%bb%d0%b5%d0%b4%d0%bd%d0%b8%d0%ba%d0%b0%d0%bc%d0%b8/feed/</wfw:commentRss>
		<slash:comments>6</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! -->