<?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"
	>

<channel>
	<title>Вовата, s. Hamaelleon ™ &#187; Web development</title>
	<atom:link href="http://www.vlkomarov.info/blog/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vlkomarov.info/blog</link>
	<description>Почти сериозен блог на една гола цица</description>
	<pubDate>Wed, 26 Nov 2008 19:51:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>It&#8217;s Show &#124;&#124; Race &#124;&#124; MicroTime</title>
		<link>http://www.vlkomarov.info/blog/2008/08/26/its-show-race-microtime/</link>
		<comments>http://www.vlkomarov.info/blog/2008/08/26/its-show-race-microtime/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 12:19:37 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Web development]]></category>

		<category><![CDATA[Excel]]></category>

		<category><![CDATA[export]]></category>

		<category><![CDATA[import]]></category>

		<category><![CDATA[microtime]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[race]]></category>

		<category><![CDATA[showtime]]></category>

		<category><![CDATA[XML]]></category>

		<category><![CDATA[бъзик]]></category>

		<category><![CDATA[експорт]]></category>

		<category><![CDATA[импорт]]></category>

		<category><![CDATA[почивка]]></category>

		<category><![CDATA[състезание]]></category>

		<category><![CDATA[улеснение]]></category>

		<category><![CDATA[функционалност]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=111</guid>
		<description><![CDATA[
Точно приключих с един експорт/импорт скрипт (export XLS - XML via PHP from MySQL Database / import Excel Spreadsheet as XLS - XML to MySQL DB) и съм почти доволен.. даже и работи  Остава и клиентите да го оценят. Ама като се замисли човек, ако имаме база данни с няколкостотин или хиляди продукта и [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/php-race.jpg" alt="Газ до ламарината :)" /></p>
<p>Точно приключих с един <strong>експорт/импорт скрипт</strong> (export XLS - XML via PHP from MySQL Database / import Excel Spreadsheet as XLS - XML to MySQL DB) и съм <em>почти</em> доволен.. даже и работи <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Остава и клиентите да го оценят. Ама като се замисли човек, ако имаме база данни с няколкостотин или хиляди продукта и се наложи да обновим ценовата листа, например, сещате ли се колко време ще е нужно за да се свърши това през админ панела, продукт по продукт, за всеки по няколко различни цени. Тегаво, a? Жестока досада! А така, експортваш шаблона (настоящата ценова листа), редактираш в Excel, каквото там е нужно, записваш като XML Spreadsheet, оп, качваш през админ панела файла и след <strong>няколко секунди</strong> цялата работа е свършена! Мммм, благинка. Та сега след като помогнахме на някой си някъде там да има повече време да се задява с колежките, да се позанимаем и ние с малко глупости. It&#8217;s showtime <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Оп, microtime(), обърках се <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-111"></span></p>
<p>Да ви преставя концепцията на състезанието:</p>
<p>Имаме две кучки бегачки, и двете са резачки (split). Задачата им ще е да отрежат главата на <em>мистър Файл</em> един милион пъти и да я върнат. Борим се за всяка милипунта, щот не можем да си позволим излишен разход на ценни милисекунди <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Първият състезател:</p>
<pre class="syntax-highlight:php">
function getExtByArrayMethod ($file, $allowableExtensions) {
$split = array_reverse(explode(&#039;.&#039;, $file));
if (in_array(strtolower($split[0]), $allowableExtensions)) {
return $ext = $split[0];
}
}
</pre>
<p>Той се състезава така: първо му го нацепва на <em>мистър Файл</em> по всяка негова чувствителна точка с explode(&#8217;.', $file), после го обръща у лево с array_reverse (виждате ли какви неща има в PHP-то!!!).  След това взема първото отсечено след обръщането, смалява го (strtolower) и проверява дали пасва на това, което търси (масив $allowableExtensions с разрешени файлови съкращения). Ако пасне го изплюва сдъвкано - и така един милион пъти <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Другата кучка:</p>
<pre class="syntax-highlight:php">
function getExtByStringMethod ($file, $allowableExtensions) {
$ext = strtolower(substr($file, strrpos($file, &#039;.&#039;) + 1));
if (in_array($ext, $allowableExtensions)) {
return $ext;
}
}
</pre>
<p>Туй говедо не ползва масиви, а третира <em>мистър Файл</em> като простоват низ (string). Първо нанюхва важната последна точка в низа чрез strrpos, и с 1 идея напред, с един удар реже остатъка. Смалява го, проверява дали пасва и ако да, го изплюва - и така един милион пъти.</p>
<p>Ето го семплото циклене:</p>
<pre class="syntax-highlight:php">
for ($i = 1; $i &lt; = ITR; $i++) {
getExtByArrayMethod(FILENAME, $allowableExtensions);
}
</pre>
<p>Тук имаме константи и един масив, които ще ползваме за състезанието:</p>
<pre class="syntax-highlight:php">
$allowableExtensions = array(&#039;avi&#039;, &#039;mpg&#039;, &#039;mp4&#039;,
&#039;mov&#039;, &#039;wmv&#039;, &#039;flv&#039;, &#039;mpeg&#039;, &#039;gp3&#039;,
&#039;vob&#039;, &#039;rm&#039;, &#039;txt&#039;, &#039;psd&#039;, &#039;exe&#039;);

define(&#039;FILENAME&#039;, &#039;video4560289703.public.gp3&#039;;);
define(&#039;ITR&#039;, 1000000);
</pre>
<p>Ползваме microtime() заедно с една полезна функцийка от php.net за превръщане на резултата в нещо лесно разбираемо и.. Старт! <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Begin getExtByArrayMethod: 1219751738.47<br />
End getExtByArrayMethod: 1219751748.79<br />
Result: <span style="color: #ff0000;">10.3256812096</p>
<p>Begin getExtByStringMethod: 1219751748.79<br />
End getExtByStringMethod: 1219751755.35<br />
Result: <span style="color: #ff0000;">6.55777096748</span></p>
<p>Както виждате при един милион итерации моята кучка бие тази на колегата с близо 4 секунди или цели 4000 милипунти, представяте ли си?! <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Колегата явно хич не го е*е за разхищаване на ценно процесорно време <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Извън кръга на майтапа и чуденката, работа с масиви или със стрингове за конкретното приложение.. нещо сериозно: никога не проверявайте при upload формуляр само за MIME Type на качваните файлове. Това е лесно заобиколимо препятствие и освен, ако не сте фенове да ви го хакват изотзаде, проверявайте винаги комбинирано и за MIME Type, и <em>за разширението на файла</em>, и за големината, и т.н., и т.н. Ама пак мое ви го хакнат, спасение няма <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>&#8212;</p>
<p>Ето го <a href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/race.php.txt" target="_blank">тестовият файл</a>, можете да пробвате..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/08/26/its-show-race-microtime/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP Security - преглед на печата</title>
		<link>http://www.vlkomarov.info/blog/2008/08/17/php-security-books-review/</link>
		<comments>http://www.vlkomarov.info/blog/2008/08/17/php-security-books-review/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 18:22:44 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[books]]></category>

		<category><![CDATA[Cross-Site Scripting]]></category>

		<category><![CDATA[file upload]]></category>

		<category><![CDATA[PHP5]]></category>

		<category><![CDATA[Remote Execution]]></category>

		<category><![CDATA[review]]></category>

		<category><![CDATA[SQL Injection]]></category>

		<category><![CDATA[XSS]]></category>

		<category><![CDATA[книги]]></category>

		<category><![CDATA[сигурност]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=101</guid>
		<description><![CDATA[И като продължение на темата от предишната публикация - сигурността при разработване на уеб приложения - кратък преглед на печата.

За съжаление, но и без да буди кой знае какво учудване, на български език за PHP Security има издадена само една книга: Essential PHP Security, Chris Shiflett, 2006. Българското издание е на издателска къща ЗеСТ Прес [...]]]></description>
			<content:encoded><![CDATA[<p>И като продължение на темата от предишната публикация - сигурността при разработване на уеб приложения - кратък преглед на печата.</p>
<p><a rel="lightbox[php-security-books]" href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/pro-php-security.jpg" title="Pro PHP Security"><img src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/pro-php-security-th.jpg" alt="Pro PHP Security" style="position: relative; float: right; margin-left: 15px;" /></a></p>
<p>За съжаление, но и без да буди кой знае какво учудване, на български език за PHP Security има издадена само една книга: <strong>Essential PHP Security, Chris Shiflett, 2006</strong>. Българското издание е на издателска къща ЗеСТ Прес от 2007, ISBN-13: 978-954-9341-20-1. Ако случайно все още не притежавате тези 120 страници в книжен формат, <a href="http://www.book.store.bg/c/p-p/m-514/id-17946/osnovi-na-php-sigurnostta-kris-shiflet.html" target="_blank">препоръчвам ви ги</a>. Книгата, макар и хубава, е прекалено малка и надали ще задоволи очакванията ви.. по-скоро е като вкусен залъгващ залък преди основното ястие.</p>
<p>Мисля, че сте попадали на поне една от тези три книги. Ако ли пък не, ето сега имате тази възможност:</p>
<p><strong>Pro PHP Security, Chris Snyder &amp; Michael Southwell, 2005</strong></p>
<p><span id="more-101"></span></p>
<p>ISBN (pbk): 1-59059-508-4<br />
Тези над 500 страници четиво определено си заслужават. Ето го съдържанието в кратък вариант:</p>
<p>PART 1 - The Importance of Security<br />
CHAPTER 1 Why Is Secure Programming a Concern?<br />
PART 2 - Maintaining a Secure Environment<br />
CHAPTER 2 Dealing with Shared Hosts<br />
CHAPTER 3 Maintaining Separate Development and Production Environments<br />
CHAPTER 4 Keeping Software Up to Date<br />
CHAPTER 5 Using Encryption I: Theory<br />
CHAPTER 6 Using Encryption II: Practice<br />
CHAPTER 7 Securing Network Connections I: SSL<br />
CHAPTER 8 Securing Network Connections II: SSH<br />
CHAPTER 9 Controlling Access I: Authentication<br />
CHAPTER 10 Controlling Access II: Permissions and Restrictions<br />
PART 3 - Practicing Secure PHP Programming<br />
CHAPTER 11 Validating User Input<br />
CHAPTER 12 Preventing SQL Injection<br />
CHAPTER 13 Preventing Cross-Site Scripting<br />
CHAPTER 14 Preventing Remote Execution<br />
CHAPTER 15 Enforcing Security for Temporary Files<br />
CHAPTER 16 Preventing Session Hijacking<br />
PART 4 - Practicing Secure Operations<br />
CHAPTER 17 Allowing Only Human Users<br />
CHAPTER 18 Verifying Your Users’ Identities<br />
CHAPTER 19 Using Roles to Authorize Actions<br />
CHAPTER 20 Adding Accountability to Track Your Users<br />
CHAPTER 21 Preventing Data Loss<br />
CHAPTER 22 Safely Executing System Commands<br />
CHAPTER 23 Handling Remote Procedure Calls Safely<br />
CHAPTER 24 Taking Advantage of Peer Review</p>
<p>Общо взето си има за всичко по-малко, обяснено с различни примери.</p>
<p><a rel="lightbox[php-security-books]" href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/guide-to-php-security.jpg" title="Guide To PHP Security"><img src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/guide-to-php-security-th.jpg" alt="Guide To PHP Security" style="position: relative; float: right; margin-left: 15px;" /></a></p>
<p>Една друга, заслущаваща внимание книга е <strong>Guide to PHP Security - A Step-by-step Guide to Writing Secure and Reliable PHP Applications, Ilia Alshanetsky, 2005</strong></p>
<p>ISBN 0-9738621-0-6<br />
И тази книга не е от вчера, което обаче не пречи написаното да е все още актуално. Покрива PHP5, както и предишната. И без това - както предполагам знаете - от 8 август е спряна поддръжката за PHP4, а и на хоризонта вече се задава PHP6. От съдържанието:</p>
<p>1 Input Validation<br />
2 Cross-Site Scripting Prevention<br />
3 SQL Injection<br />
4 Preventing Code Injection<br />
5 Command Injection<br />
6 Session Security<br />
7 Securing File Access<br />
8 Security through Obscurity<br />
9 Sandboxes and Tar Pits<br />
10 Securing Your Applications</p>
<p><a rel="lightbox[php-security-books]" href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/hacker-web-exploitation.jpg" title="Hacker Web Exploitation"><img src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/08/hacker-web-exploitation-th.jpg" alt="Hacker Web Exploitation" style="position: relative; float: right; margin-left: 15px;" /></a></p>
<p>И още една благинка, която съм засякал: <strong>Hacker Web Exploitation Uncovered, Marsel Nizamutdinov, 2005</strong></p>
<p>400 pages, ISBN:1931769494<br />
Тази още не съм я прегледал, но като гледам съдържанието мисля, че и тя покрива основни теми като XSS, SQL Injection, Remote File Inclusion, etc.</p>
<p>И още нещо за десерт. Ако имате в приложението си формуляр за upload на файлове, прочетете този документ (.pdf, 20 стр.). Сигурен съм, че ще ви е полезен, както беше и за мен <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> (<a href="http://www.net-security.org/dl/articles/php-file-upload.pdf" target="_blank">Secure File Upload In PHP Web Applications</a>)</p>
<p>Ами приятно четене и повечко спокойни нощи (след n на брой не толкова преди това).. Честно казано, колкото повече чета, толкова повече си мисля дали не е добре да се върнем 15 години назад към абсолютно статичен web модел <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/08/17/php-security-books-review/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mr GET Clean</title>
		<link>http://www.vlkomarov.info/blog/2008/08/17/mr-get-clean/</link>
		<comments>http://www.vlkomarov.info/blog/2008/08/17/mr-get-clean/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 15:07:05 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Web development]]></category>

		<category><![CDATA[GET]]></category>

		<category><![CDATA[SQL Injection]]></category>

		<category><![CDATA[XSS]]></category>

		<category><![CDATA[заявка]]></category>

		<category><![CDATA[проверка]]></category>

		<category><![CDATA[сигурност]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=86</guid>
		<description><![CDATA[Златни правила на уеб разработчика (web developers golden rulez):
1. Няма абсолютна и универсална защита, всичко подлежи на хакване!
2. Най-добре си го хаквай {скрипта} често, често сам и се.. оправяй.. сам, преди да те оправят други!
3. Грам никакво доверие на потребителя, т.е на каквото и да е идващо от GET, POST, COOKIE, SESSION, REQUEST (ако някой [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color: #ff9900;">Златни правила на уеб разработчика (web developers golden rulez):</span></strong></p>
<p><strong>1</strong>. Няма абсолютна и универсална защита, всичко подлежи на хакване!<br />
<strong>2</strong>. Най-добре си го хаквай {скрипта} често, често сам и се.. оправяй.. сам, преди да те оправят други!<br />
<strong>3</strong>. Грам никакво доверие на потребителя, т.е на каквото и да е идващо от GET, POST, COOKIE, SESSION, REQUEST (ако някой все още го ползва), HTTP Headers, etc.<br />
<strong>4</strong>. 13 проверки са по-добре от една или николко, но все пак не се знае дали са достатъчни..<br />
<strong>5</strong>. Ученето трябва да продължи!</p>
<p><span id="more-86"></span></p>
<p>Във връзка с една тема от миналата седмица в BGDev, ето един метод за почистване на GET заявки от излишни боклуци. </p>
<p>В заявката са допустими само параметри, дефинирани в масива $allowableParams и са забранени символите, посочени в другия conf масив: $forbiddenSymbols.</p>
<p>Разбира се, подобна реализация има своите ограничения (modRewrite, кирилица, search формуляри, събмитващи през GET и т.н.), така че в зависимост от приложението може да се променя съдържанието на масивите и изобщо цялата реализация на метода. Също така, при установяване на непозволени параметри или забранени символи (опити за XSS или SQL injection), освен логването на опита и редиректването към страница с &#8220;чиста&#8221; GET заявка, може да се добави и друга някаква функционалност: мейл до администратор, бан на потребител и т.н. </p>
<p>Така, ето как изглежда началото на една страница, която ще използва този клас:</p>
<pre class="syntax-highlight:php">
&lt; ?php
define(&#039;CLASSES_PATH&#039;, &quot;.&quot;);

$forbiddenSymbols	= array(&#039;&lt;&#039;, &#039;&gt;&#039;, &#039;(&#039;, &#039;)&#039;,
	&#039;..&#039;, &#039;%&#039;, &#039;*&#039;, &#039;+&#039;, &#039;!&#039;, &#039;@&#039;);
$allowableParams	= array(&#039;p&#039;, &#039;id&#039;);

if (isset($_SERVER[&#039;QUERY_STRING&#039;]) &amp;&amp;
	!еmрty($_SERVER[&#039;QUERY_STRING&#039;])) {

	require_once(CLASSES_PATH . &quot;/class.clean.php&quot;);
	$clean = new MrGETClean;

	$queryString = $clean-&gt;queryWalk($_SERVER[&#039;QUERY_STRING&#039;],
		$forbiddenSymbols,
		$allowableParams,
		$_SERVER[&#039;SCRIPT_NAME&#039;]);

	if ($queryString != $_SERVER[&#039;QUERY_STRING&#039;]) {
		$newURL = basename($_SERVER[&#039;SCRIPT_NAME&#039;]) .
			&#039;?&#039; . $queryString;
		header(&quot;location: &quot; . $newURL);
	}

}
</pre>
<p>Ето го и самия клас с основния метод <strong>queryWalk</strong>:</p>
<pre class="syntax-highlight:php">
&lt; ?php
define(&#039;LOG_PATH&#039;, &quot;log&quot;);

class MrGETClean {

function queryWalk($queryString,
	$forbiddenSymbols,
	$allowableParams,
	$scriptURL) {

	$flag = false;

	$queryFragments			= array();
	$queryArr				= array();
	$cleanedQueryFragments	= array();

	$queryFragments = explode(&quot;&amp;&quot;, $queryString);

	foreach ($queryFragments as $key =&gt; $value) {
		$queryArr[$key][&#039;p&#039;] =
			substr($value, 0, strpos($value, &#039;=&#039;));
		$queryArr[$key][&#039;v&#039;] =
			substr($value, strpos($value, &#039;=&#039;) + 1);
	}

	foreach ($queryArr as $key =&gt; $value) {
		if (!in_array($queryArr[$key][&#039;p&#039;],
				$allowableParams)) {
			$queryArr[$key] = null;
			$flag = true;
		}

		foreach ($forbiddenSymbols as $symbol) {
			if (stristr($queryArr[$key][&#039;v&#039;],
					$symbol)) {
				$queryArr[$key] = null;
				$flag = true;
			}
		}
	}		

	foreach ($queryArr as $key =&gt; $value) {
		if ($queryArr[$key][&#039;p&#039;] != null) {
			$cleanedQueryFragments[$key] =
				$queryArr[$key][&#039;p&#039;] . &quot;=&quot; .
				$queryArr[$key][&#039;v&#039;];
		}
	}

	if ($flag) {
		$this-&gt;MrGETCleanMakeLog($queryString,
			$scriptURL);
	}

	$queryString = implode(&quot;&amp;&quot;, $cleanedQueryFragments);

	return $queryString;

}
</pre>
<p>А това са методът, който генерира лог файла и този, който връща IP адреса на &#8220;атакуващия&#8221;:</p>
<pre class="syntax-highlight:php">
function MrGETCleanMakeLog($queryString, $scriptURL) {

	$date = date (&quot;d-m-Y @ H:i:s&quot;);
	$log = LOG_PATH . &quot;/log.txt&quot;;
	$handle = fopen($log,&quot;a+&quot; );
	fputs ($handle, &#039;Attack Date: &#039; . $date .
	&#039; | Attacker IP: &#039; . $this-&gt;getIP() .
	&#039; | Query: &#039; . htmlentities(urldecode($queryString)) .
	&#039; | Script: &#039; . $scriptURL . &quot;\r\n&quot;);
	fclose($handle);

}

function getIP() {

	$IP = &#039;&#039;;

	if (isset($_SERVER)) {
		if (isset($_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;])) {
			$IP = $_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;];
		}
		elseif (isset($_SERVER[&#039;HTTP_CLIENT_IP&#039;])) {
			$IP = $_SERVER[&#039;HTTP_CLIENT_IP&#039;];
		}
		else {
			$IP = $_SERVER[&#039;REMOTE_ADDR&#039;];
		}
	}
	else {
		if (getenv(&#039;HTTP_X_FORWARDED_FOR&#039;))	{
			$IP = getenv(&#039;HTTP_X_FORWARDED_FOR&#039;);
		}
		elseif (getenv(&#039;HTTP_CLIENT_IP&#039;)) {
			$IP = getenv( &#039;HTTP_CLIENT_IP&#039; );
		}
		else {
			$IP = getenv(&#039;REMOTE_ADDR&#039;);
		}
	}

	return $IP;

}
</pre>
<p>Файловете, които са ви нужни са примерният <a href="http://www.vlkomarov.info/projects/mr-get-clean/index.php.txt" target="_blank">index.php</a> и класът <a href="http://www.vlkomarov.info/projects/mr-get-clean/class.clean.php.txt" target="_blank">class.clean.php</a>. Демото можете да пробвате тук: <a href="http://www.vlkomarov.info/projects/mr-get-clean/index.php?p=7&#038;id=13" target="_blank">www.vlkomarov.info/projects/mr-get-clean</a> (Log: <a href="http://www.vlkomarov.info/projects/mr-get-clean/log/log.txt" target="_blank">log.txt</a>). </p>
<p>Променяйте съобразно вашите нужди и спецификата на приложението. </p>
<p>Линкването на това демо не е задължително, но ще съм ви благодарен, ако го правите <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/08/17/mr-get-clean/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flash, XML, PHP, CMS - основата</title>
		<link>http://www.vlkomarov.info/blog/2008/07/12/flash-xml-php-cms_basic/</link>
		<comments>http://www.vlkomarov.info/blog/2008/07/12/flash-xml-php-cms_basic/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 17:18:28 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Web development]]></category>

		<category><![CDATA[XML]]></category>

		<category><![CDATA[back-end]]></category>

		<category><![CDATA[CMS]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Xground]]></category>

		<category><![CDATA[xgroundmodels]]></category>

		<category><![CDATA[администрация]]></category>

		<category><![CDATA[базисни положения]]></category>

		<category><![CDATA[Ексграунд]]></category>

		<category><![CDATA[основа]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=83</guid>
		<description><![CDATA[
Абе просто съм се побъркал: вместо да ходя да.. разходя някоя подобна кака, аз седя отново зад компютъра (в събота) и работя. Мой ли проект? Ами не! Всъщност съм се закрастил яко с тази администрация на сайта на XGround Models.. ако беше &#8220;официално&#8221; поръчано щеше да ме домързи и да го работя вероятно в понеделник [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/07/lora-georgieva-xground.jpg" alt="Лора Георгиева - рекламно лица на XGround Models" /></p>
<p>Абе просто съм се побъркал: вместо да ходя да.. разходя някоя подобна кака, аз седя отново зад компютъра (в събота) и работя. Мой ли проект? Ами не! Всъщност съм се закрастил яко с тази администрация на сайта на XGround Models.. ако беше &#8220;официално&#8221; поръчано щеше да ме домързи и да го работя вероятно в понеделник към 4-5 сутринта.. ама не, като ми е интересно и си го човъркам по всяко време, без значение, че никой не го изисква..</p>
<p>Та, имаме <a href="http://www.xgroundmodels.com" target="_blank">Flash сайт</a>, който вече е изграден (т.е приемаме го за константа). Той използва семпли XML файлове като база данни. Задачата е да се напише back-end, чрез който да се редактират тези XML файлове, респективно да се променя обликът на front-end-a. <a href="http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/" target="_blank">В предишната публикация</a> споменах за тази задача.</p>
<p><span id="more-83"></span></p>
<p>Оставяме настрана файловите операции (имам предвид качване, преоразмеряване, рязане на снимки, създаване на thumbnail-и, etc.) настрана, не се занимаваме и с DTD на този етап. Ползваме DOM за парсване и създаване на XML-ите и това е всичко. Основата..</p>
<p>Ако имаме XML файл със структура и съдържание подобно на следното:</p>
<pre class="syntax-highlight:xml">&lt; ?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;models&gt;
&lt;model name=&quot;Флейта Тромпеткова&quot; age=&quot;23&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Блонди Свиркова&quot; age=&quot;19&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Ганка Заблейкова&quot; age=&quot;20&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Учтивост Лицемеркова&quot; age=&quot;18&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Съска Змейкова&quot; age=&quot;22&quot;
readonly=&quot;1&quot;/&gt;
&lt;/models&gt;
</pre>
<p>..то можем да извършваме базовите операции с помощта на методите от този примерен PHP клас. Тези операции са:<br />
- добавяне на нов елемент<br />
- редактиране на даден елемент<br />
- изтриване на елемент<br />
- пренареждане в произволен ред (не просто сортиране) на елементите</p>
<pre class="syntax-highlight:php">
&lt; ?php
class xmlLib {

// XML File Parse -&gt; PHP Array

function getXML($xmlFile) {
$xmlArr = array();
$c = 1;
$xml = new DomDocument(&#039;1.0&#039;, &#039;UTF-8&#039;);
$xml-&gt;load($xmlFile);
$root = $xml-&gt;documentElement;
$children = $root-&gt;childNodes;
foreach ($children as $element) {
if ($element-&gt;nodeType == XML_ELEMENT_NODE &amp;&amp;
$element-&gt;nodeName == &#039;model&#039;) {
$xmlArr[$c][&#039;name&#039;]	=
$element-&gt;getAttributeNode(&#039;name&#039;)-&gt;value;
$xmlArr[$c][&#039;age&#039;]	=
$element-&gt;getAttributeNode(&#039;age&#039;)-&gt;value;
$xmlArr[$c][&#039;readonly&#039;]	=
$element-&gt;getAttributeNode(&#039;readonly&#039;)-&gt;value;
$c++;
}
}
return $xmlArr;
}

// Add Entry

function addEntry($add, $xmlArr, $xmlFile) {
$p = sizeof($xmlArr) + 1;
$xmlArr[$p][&#039;name&#039;] = $add[&#039;name&#039;];
$xmlArr[$p][&#039;age&#039;] = $add[&#039;age&#039;];
$xmlArr[$p][&#039;readonly&#039;] = $add[&#039;readonly&#039;];
if ($this-&gt;saveXML($xmlFile, $xmlArr)) {
return true;
}
}

// Edit Entry

function editEntry($edit, $xmlArr, $xmlFile) {
$who = $edit[&#039;who&#039;];
foreach ($xmlArr as $key =&gt; $person) {
if ($xmlArr[$key][&#039;name&#039;] == $who &amp;&amp;
$xmlArr[$key][&#039;readonly&#039;] != &#039;1&#039;) {
$xmlArr[$key][&#039;name&#039;] = $edit[&#039;name&#039;];
$xmlArr[$key][&#039;age&#039;] = $edit[&#039;age&#039;];
}
}
if ($this-&gt;saveXML($xmlFile, $xmlArr)) {
return true;
}
}

// Remove Entry

function removeEntry($remove, $xmlArr, $xmlFile) {
$who = $remove[&#039;name&#039;];
foreach ($xmlArr as $key =&gt; $person) {
if ($xmlArr[$key][&#039;name&#039;] == $who &amp;&amp;
$xmlArr[$key][&#039;readonly&#039;] != &#039;1&#039;) {
$xmlArr[$key] = null;
}
}
if ($this-&gt;saveXML($xmlFile, $xmlArr)) {
return true;
}
}

// Set Entries Order

function setOrder($order, $xmlArr, $xmlFile) {
$tmp = array();
for ($i = 1; $i &lt; = sizeof($xmlArr); $i++) {
for ($j = 1; $j &lt;= sizeof($xmlArr); $j++) {
if ($order[$i - 1] == $xmlArr[$j][&#039;name&#039;]) {
$tmp[$i][&#039;name&#039;] = $xmlArr[$j][&#039;name&#039;];
$tmp[$i][&#039;age&#039;] = $xmlArr[$j][&#039;age&#039;];
$tmp[$i][&#039;readonly&#039;] =
$xmlArr[$j][&#039;readonly&#039;];
}
}
}
if ($this-&gt;saveXML($xmlFile, $tmp)) {
return true;
}
}

// Save PHP Array -&gt; XML File

function saveXML($xmlFile, $xmlArr) {
$xml = new DomDocument(&#039;1.0&#039;, &#039;UTF-8&#039;);
$xml-&gt;formatOutput = true;
$root = $xml-&gt;createElement(&#039;models&#039;);
$root = $xml-&gt;appendChild($root);
foreach ($xmlArr as $key =&gt; $person) {
if ($xmlArr[$key][&#039;name&#039;] != null) {
$model = $xml-&gt;createElement(&#039;model&#039;);
$model = $root-&gt;appendChild($model);
$name = $xml-&gt;createAttribute(&#039;name&#039;);
$name = $model-&gt;setAttribute(&#039;name&#039;,
$xmlArr[$key][&#039;name&#039;]);
$name = $model-&gt;appendChild($name);
$age = $xml-&gt;createAttribute(&#039;age&#039;);
$age = $model-&gt;setAttribute(&#039;age&#039;,
$xmlArr[$key][&#039;age&#039;]);
$age = $model-&gt;appendChild($age);
$readonly = $xml-&gt;createAttribute(&#039;readonly&#039;);
$readonly = $model-&gt;setAttribute(&#039;readonly&#039;,
$xmlArr[$key][&#039;readonly&#039;]);
$readonly = $model-&gt;appendChild($readonly);
}
}
if ($xml-&gt;save($xmlFile)) {
return true;
}
}
}
?&gt;
</pre>
<p>Кодът е семпъл и няма нужда от допълнителни коментари, старал съм се да пиша максимално чисто. Некондензиран и с допълнителни инденти го има и в <a href="http://www.vlkomarov.info/projects/xgroundmodels/cms/demo/index.php" target="_blank">демо страницата.</a></p>
<p><a href="http://www.vlkomarov.info/projects/xgroundmodels/cms/demo/index.php" target="_blank">Пробвайте демото</a> и си кажете мнението. Мързи ме да пиша повече. Точка.</p>
<p>Тъй като такива (изтрито) красавици като Лора надали се сещат за съществуването на моя милост мисля да отида да си купя един-два кроасана с шоколад и да се натъпча подобаващо.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/07/12/flash-xml-php-cms_basic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Е, как е?</title>
		<link>http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/</link>
		<comments>http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 10:17:55 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<category><![CDATA[Лично]]></category>

		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[Atom]]></category>

		<category><![CDATA[Atom Solutions]]></category>

		<category><![CDATA[back-end]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[web developer]]></category>

		<category><![CDATA[XHTML]]></category>

		<category><![CDATA[XML]]></category>

		<category><![CDATA[Атом]]></category>

		<category><![CDATA[нова]]></category>

		<category><![CDATA[ООП]]></category>

		<category><![CDATA[предизивикателство]]></category>

		<category><![CDATA[работа]]></category>

		<category><![CDATA[споделяне]]></category>

		<category><![CDATA[учене]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=81</guid>
		<description><![CDATA[
Е, как е? Справяш ли се с новата работа? Доволен ли си? Похвали се нещо..

Това бяха въпроси, които чувах постоянно през изминалия месец от приятели, които знаеха, че съм започнал нова работа.
Сега ще ви разкажа накратко.
Фирмата се казва Atom Solutions, www.atomsolutions.net. Офисът е в &#8220;центъра&#8221; на София.
Само няколко човека сме и няма нито една колежка..
Работа [...]]]></description>
			<content:encoded><![CDATA[<p><a title="XGround Models Back-End ScreenShot #050708" rel="lightbox" href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/07/ss-xground-photos-050708.jpg"><img style="border: 0;" src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/07/ss-xground-photos-050708-th.jpg" alt="XGround Models Back-End ScreenShot #050708" /></a></p>
<p>Е, как е? Справяш ли се с новата работа? Доволен ли си? Похвали се нещо..</p>
<p><span id="more-81"></span></p>
<p>Това бяха въпроси, които чувах постоянно през изминалия месец от приятели, които знаеха, че съм започнал <a href="http://www.vlkomarov.info/blog/2008/05/25/new_work/" target="_blank">нова работа</a>.</p>
<p>Сега ще ви разкажа накратко.</p>
<p>Фирмата се казва <a href="http://www.atomsolutions.net/" target="_blank">Atom Solutions, www.atomsolutions.net</a>. Офисът е в &#8220;центъра&#8221; на София.</p>
<p>Само няколко човека сме и няма нито една колежка..</p>
<p>Работа има доста. Първите две седмици беше тежко. В началото на втората седмица даже се чудех сутрините &#8220;да отида ли днес на работа или да си остана вкъщи&#8221; <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Абе беше си шаш и паника. Даже си направих комбинация от <a href="http://bach.vlkomarov.info" target="_blank">Бах есенции</a>, нещо, което не бях правил от две години, може би и повече (Орех, Бряст, Трепетлика, Кестенови пъпки, Лиственица)..</p>
<p>Има три неща, свързани с работата, които жестоко ме изнервят, но за съжаление и трите са неразделна част от нея и не може да мине без тях: 1. Мразя да работя в <em>крайни срокове</em>, особено пък в срокове &#8220;за вчера&#8221;, а в началото първите няколко задачи бяха точно такива и със сигурност ще има и още подобни. 2. Мразя да се чувствам <em>неспособен</em>, да нямам усещането, че ще се справя с поставената задача.. а в началото усещах прекалено осезателно колко много пропуски имам и колко неща не знам и не съм правил. 3. Клиентите, които <em>не са наясно</em> с ограниченията на web и искат от теб сайтът им примерно да пържи яйца на челна стойка, докато свири 349 симфония на Моцарт. Няма такава ли? Е, ти нали си уеб програмист, ще заложиш в сайта и възможност да композира гениални произведения, разбира се. Преекспонирам, но мисля, че схванахте идеята, нали? <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>В началото се борех със задачи от английски клиент.. това беше първата и част от втората седмица. Писах една търсачка, борих се с едни класове за mass mail.. в крайна сметка клиентът е останал доволен, а това е важното. А аз научих доста нови неща.</p>
<p>След това имаше някакъв сайт за ъпдейт, трябваше да свършим за два дена, направихме го (с клиента до мен, казващ ми това тук така, онова еди как си го искам) за един следобед. Пак доволен клиент.</p>
<p>На 11 юни ми възложиха един проект с &#8220;това е спешно.. ако можеш да го свършиш този уикенд.. и няма нищо сложно, само малко промени по CSS-а на сайта&#8221; <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Става дума за сайт, писан от румънски колеги, използващи <a title="Smarty Template Engine" href="http://www.smarty.net/" target="_blank">Smarty Template Engine</a>. Имах бегла представа за Smarty, но се наложи експресно да изчета <a title="Smarty Template Engine" href="http://www.smarty.net/manual/en/" target="_blank">цялата документация</a>, празнуването на рождения ми ден (13 юни) отиде по дяволите.. изискваните промени изобщо не бяха нито прости, нито само по CSS стиловете. В крайна сметка с множеството малки и по-големи промени по първоначалния шаблон, фиксове, добавен нов раздел и съответна функционалност в Admin Panel-а, че и преправянето след това и за гръцки колеги, работата по този сайт се проточи до 2 юли. Резултатът е <a href="http://www.mobilenews.bg" target="_blank">www.mobilenews.bg</a> и <a href="http://www.mobile-news.gr" target="_blank">www.mobile-news.gr</a> (сега забелязах нещо за фиксване в CSS-a, щото под IE 6 заглавната не изглежда точно така, както трябва да е). Трябва да добавя по някое време поддръжка на RSS и възможност за качване на видео в сайта. Също и търсачка за раздел Каталог. С две думи, ще има още работа..</p>
<p>Вярно, научих достатъчно за Smarty за да се справя по-уверено със следващата подобна задача, но това все пак е като да бършеш нечий чужд задник, не е много приятно занятие. Друго си е да си почнеш съответния проект от нулата, да си знаеш къде какво си писал в кода и кое как си реализирал.. да, пак ползваш опита на майсторите в бранша, като готови функции, класове, решения и т.н., но ти си този, който слага тухла след тухла в изцяло нов строеж, а не просто кръпки във вече съществуваща уеб сграда. Не знам, това ме влече повече.</p>
<p>Сега имам нова задача. Трябва да напиша администрация за <a title="Xground Models" href="http://www.xgroundmodels.com" target="_blank">сайта на Xground Models, www.xgroundmodels.com</a>. Сайтът е изцяло на Flash, организацията на информацията е посредством XML файлове. Моята задача е парсване на XML-ите (ползвам PHP DOM), актуализацията им и записването им вече обновени, както и работа с файлове (разбирай картинки). Интересно ми е.. щом вчера вместо да си почивам отделих три часа за човъркане в CSS-а и за работа с Photoshop-a.. в събота.. за служебна работа!? Или съм се сдухал, или просто наистина ми е интересно.</p>
<p>С две думи, работата е доста, учи се интензивно в движение, повечето неща, които правих този месец преди ги бях чел само на теория или пък имах предишни реализации в доста опростен вид.. с една идея съм напред с ООП.. и изобщо, ако така ще се чете и ще се учи следващите пет месеца, като ми мине изпитателния срок определено ще съм доста по-напред с материала, което може само да ме радва. И няма да има значение дали ще остана в същата фирма или ще се търси нова работа отново..</p>
<p>Това на първо място зависи от заплащането, естествено. Предишната работа, която напуснах беше ок, шефът ми беше пич, имах време да чета и да уча, но всеки месец, плащайки наема, сметките и подобни се оказвах още на 3-4 число с цял месец пред мен и празни джобове. Сори, ама така не се живее. Лоялността към фирмата я разбирам така: започваш на една заплата и на обичайния изпитателен срок, при мен в случая беше 6 месеца, и сега пак е така. Работиш, изпълняваш си съвестно задълженията, учиш (на предишната работа моментът с ученето беше изцяло лична инициатива, самата работа де факто не го изискваше) и като ти изтече изпитателния срок си вече с една или повече стъпки напред, нали? Означава, че си по-опитен и с повече знание, нали? Следователно би трябвало да си по-ценен кадър и съответно цената ти да е по-висока. И ако въпреки това (както за съжаление се случва в повечето фирми в БГ) няма промяна в заплащането или пък става дума за мизерно увеличение (както беше в по-по-предишната ми работа), и работата не ти предоставя кой знае какви перспективи за учене или професионално развитие, тогава какво? Разбира се, че напускаш при първа възможност заради по-добро предложение. (Е, аз продължавам засега работата с комиксите, но де факто съм напуснал.) Правилно ли разсъждавам?</p>
<p>В крайна сметка, не съм толкова млад вече, че да си позволя кибик на безперспективна работа само за да ми е по-лек живота.. вземаш си там някаква си заплатка и кюташ както намериш за добре, евентуално все още висейки на врата на мама и тати (познат ли ви е този сценарий).. нито пък съм все още на години, когато да се стремя да се установя някъде за постоянно и да храня напразни надежди за пенсия и лека старост. Сега му е времето за растеж (макар, че аз малко съм закъснял покрай отделените 6 години на медицината и още 3 за хомеопатията.. както и да е, те не се губят, за добро са..) и експериментиране, нали?</p>
<p>&#8212;</p>
<p>Има много за учене, има интересни задачи, заплащането за момента ме удовлетворява.. в крайна сметка този месец съм изкарал 245% повече от предишния, като само 1/9 от дохода за месеца е от частни проекти, няма от какво да се оплаквам.</p>
<p>&#8212;</p>
<p>О, btw, май скоро ще съм най-дъртия във фирмата.. това не знам дали да го коментирам..</p>
<p>&#8212;</p>
<p>Ами, това е засега <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ах тези програмисти</title>
		<link>http://www.vlkomarov.info/blog/2008/06/27/dev_humour/</link>
		<comments>http://www.vlkomarov.info/blog/2008/06/27/dev_humour/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 13:07:12 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<category><![CDATA[Смях]]></category>

		<category><![CDATA[виц]]></category>

		<category><![CDATA[изперкване]]></category>

		<category><![CDATA[програмист]]></category>

		<category><![CDATA[хумор]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=77</guid>
		<description><![CDATA[Това знаете ли го? То уж виц, ама.. позамислих се  
Диалог между програмист и жена му, вечер след работа..
Прибира се той:
- Gооd еvеning dеаr, I`m nоw lоggеd in.
Жена му:
- Купи ли хляб?
- Ваd соmmаnd оr filеnаmе.
- Нали те помолих сутринта!
- Еrrоnеоus sуntах. Аbоrt?
- Какво става с новия телевизор?
- Vаriаblе nоt fоund&#8230;
- В края на [...]]]></description>
			<content:encoded><![CDATA[<p>Това знаете ли го? То уж виц, ама.. позамислих се <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Диалог между програмист и жена му, вечер след работа..</strong></p>
<p><span style="color: #333399;"><em>Прибира се той:<br />
- Gооd еvеning dеаr, I`m nоw lоggеd in.</em></span></p>
<p><span style="color: #333399;"><em>Жена му:</em></span></p>
<p><span style="color: #333399;"><em>- Купи ли хляб?<br />
- Ваd соmmаnd оr filеnаmе.</em></span></p>
<p><span style="color: #333399;"><em>- Нали те помолих сутринта!<br />
- Еrrоnеоus sуntах. Аbоrt?</em></span></p>
<p><span style="color: #333399;"><em>- Какво става с новия телевизор?<br />
- Vаriаblе nоt fоund&#8230;</em></span></p>
<p><span style="color: #333399;"><em>- В края на краищата, дай ми кредитната си карта да отида до магазина!<br />
- Shаring Viоlаtiоn. Ассеss dеniеd&#8230;</em></span></p>
<p><span style="color: #333399;"><em>- Ти мен обичаш ли ме, или обичаш само компютрите, или издевателстваш над мен?<br />
- Тоо mаnу раrаmеtеrs&#8230;</em></span></p>
<p><span style="color: #333399;"><em>- Защо ли се омъжих за теб.<br />
- Dаtа tуре mismаtсh.</em></span></p>
<p><span style="color: #333399;"><em>- Направо си отвратителен..<br />
- It`s bу Dеfаult.</em></span></p>
<p><span style="color: #333399;"><em>- Какво става със заплатата ти?<br />
- Filе in usе&#8230; Тrу аftеr sоmе timе.</em></span></p>
<p><span style="color: #333399;"><em>- Аз на теб каква съм ти?<br />
- Unknоwn Virus!</em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/06/27/dev_humour/feed/</wfw:commentRss>
		</item>
		<item>
		<title>1001 лица</title>
		<link>http://www.vlkomarov.info/blog/2008/06/27/1001-faces/</link>
		<comments>http://www.vlkomarov.info/blog/2008/06/27/1001-faces/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 12:39:42 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[Photoshop]]></category>

		<category><![CDATA[Angelina Jolie]]></category>

		<category><![CDATA[Paris Hilton]]></category>

		<category><![CDATA[Rihanna]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[Анджелина Джоли]]></category>

		<category><![CDATA[Парис Хилтън]]></category>

		<category><![CDATA[показно]]></category>

		<category><![CDATA[примери]]></category>

		<category><![CDATA[Риана]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=76</guid>
		<description><![CDATA[Нямам вече почти никакво свободно време покрай новата работа, та затова е такова мълчание в блога.
Днес обаче - изненадващо и за мен самия - приключих с един проект часове преди deadline-а, та остана време за четене и ровене из нета. Единият дизайнер - колега във фирмата - ми показа едно клипче, става дума за Photoshop [...]]]></description>
			<content:encoded><![CDATA[<p>Нямам вече почти никакво свободно време покрай новата работа, та затова е такова мълчание в блога.</p>
<p>Днес обаче - изненадващо и за мен самия - приключих с един проект часове преди deadline-а, та остана време за четене и ровене из нета. Единият дизайнер - колега във фирмата - ми показа едно клипче, става дума за <strong>Photoshop Tutorial</strong>-и.. или по-точно как една снимка може да бъде значително променена с помощта на Photoshop (и подобни инструменти), направо да си е <em>друг</em> човек..</p>
<p>Прегледайте клипчетата, старал съм се да подбера по-кратки и достатъчно показателни.. пълно е в нета, не само в Тубата, с подобни примери.. и после, ако все още можете или искате.. вярвайте на лъскавите списания и прочие медийни манипулации. Красивите момичета не са там, те се разхождат по улиците всеки ден,  без да са звезди, без да са известни.. просто - слава Богу - чичо Фото<em>п</em>оп още не е стигнал дотам..</p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/-ALYSif4cZQ&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/-ALYSif4cZQ&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;"><strong>Angelina Jolie Face Change Complete Makeover Photoshop Tutorial</strong></p>
<p><span id="more-76"></span></p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/giygRpu8nzU&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/giygRpu8nzU&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;"><strong>Rihanna Fake</strong></p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/jEANZT4-l8w&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/jEANZT4-l8w&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;"><strong>Rihanna Makeover</strong></p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/LmZmyIdcCTU&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/LmZmyIdcCTU&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;"><strong>Paris Hilton Makeover</strong></p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/fRbXmzt310o&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/fRbXmzt310o&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;"><strong>Angelina Jolie Makeover (Photoshop CS3)</strong></p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/TjCSnDA-Dnw&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/TjCSnDA-Dnw&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;"><strong>Change A Face With Photoshop</strong></p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/PTfnU-_Sp4I&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/PTfnU-_Sp4I&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;">Basic Makeup And Lighting</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/06/27/1001-faces/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Хомеопатична Test Zone - анонс</title>
		<link>http://www.vlkomarov.info/blog/2008/05/28/homeopathy-test_zone-preview/</link>
		<comments>http://www.vlkomarov.info/blog/2008/05/28/homeopathy-test_zone-preview/#comments</comments>
		<pubDate>Wed, 28 May 2008 06:33:35 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<category><![CDATA[Хомеопатия]]></category>

		<category><![CDATA[Ignatia amara]]></category>

		<category><![CDATA[test]]></category>

		<category><![CDATA[zone]]></category>

		<category><![CDATA[Игнация]]></category>

		<category><![CDATA[класическа хомеопатия]]></category>

		<category><![CDATA[платени материали]]></category>

		<category><![CDATA[тест]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=66</guid>
		<description><![CDATA[
След като по-рано този месец писах за това в &#8220;Бг хомеопатични форуми&#8221; - втората част на публикацията и най-вече коментарите към нея - дойде време и за &#8220;официалния&#8221; анонс на услугата: Хомеопатична Test Zone (test &#124; 0000).

На адрес www.vlkomarov.info/homeopathy/test_zone има малък и семпъл сайт, който макар и Test Zone си е напълно функционален. (Отначало ще [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/05/test_zone_preview.gif" rel="lightbox" title="Хомеопатична Test Zone - скрийншот"><img src="http://www.vlkomarov.info/blog//wp-content/uploads/2008/05/test_zone_preview.gif" alt="Хомеопатична Test Zone - скрийншот" style="border: 0px;" /></a></p>
<p>След като по-рано този месец писах за това в &#8220;<a href="http://www.vlkomarov.info/blog/2008/05/10/bg-homeopathic-forums/" target="_blank">Бг хомеопатични форуми</a>&#8221; - втората част на публикацията и най-вече коментарите към нея - дойде време и за &#8220;официалния&#8221; анонс на услугата: <a href="http://www.vlkomarov.info/homeopathy/test_zone/" target="_blank">Хомеопатична Test Zone</a> (test | 0000).</p>
<p><span id="more-66"></span></p>
<p>На адрес <a href="http://www.vlkomarov.info/homeopathy/test_zone/" target="_blank" title="Хомеопатична Test Zone">www.vlkomarov.info/homeopathy/test_zone</a> има малък и семпъл сайт, който макар и Test Zone си е напълно функционален. (Отначало ще ви иска потребител и парола: използвайте <em>test</em> и <em>0000</em>.) (<strong>06.07.</strong>: Премахвам условието за въвеждане на потребител и парола (test | 0000) при влизане в сайта, остава само автентикацията за регистрираните потребители.)</p>
<p>Засега има само един материал и той е описание на един от най-често използваните полихрести - Ign, Ignatia amara, Игнация - по Уилям Бьорике (Boericke MM). Впоследствие ще се появят и други.</p>
<p>В самия сайт има раздел &#8220;Обяснения&#8221; - там всичко важно вече е записано, а ако имате и някакви други въпроси, можете да питате тук или да ми изпратите съобщение оттам.</p>
<p>След двете вечери (нощи) с киснене и яростно чукане на клавиатурата е време за малко почивка <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>P.S. Изнасянето в отделен сайт (временно) се наложи, тъй като новата завършена версия на сайта за класическа хомеопатия и Бах есенции ще е готова най-рано юли, или август дори..</p>
<p>P.S. 31.05: Вторият материал, който добавям е от Кент, Определение за лекар-хомеопат. Макар и писано преди век днес е все така актуален проблем, особено като се замисли човек що за &#8220;хомеопатия&#8221; се налага от Боарон в България и как определени среди се опитват да наложат - и законово - това да е единствената &#8220;хомеопатия&#8221;, практикувана у нас. Ето интрото, фрагмент от материала:</p>
<blockquote><p>[..] Виждали сме множество т.нар. лекари-хомеопати, и нито един от тях не е добавил знание за Materia Medica или за изкуството за назначаване на лекарствата към своето т.нар. общо познание за медицината.</p>
<p>В тази формулировка е удивителна точна тази и част, която не би позволила на никой да стане лекар-хомеопат.</p>
<p>Докато човек се придържа към традиционните глупости, пък дори и те да носят името съвременна медицина, той няма да успее да изучи истинското изкуство за лекуване в съоветствие със закона на подобието. [..]</p></blockquote>
<p>Това го казва именно <em>лекар</em>, който впоследствие става един от майсторите хомеопати..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/05/28/homeopathy-test_zone-preview/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hardcore &#8220;ГАЗ!&#8221; и нова работа</title>
		<link>http://www.vlkomarov.info/blog/2008/05/25/new_work/</link>
		<comments>http://www.vlkomarov.info/blog/2008/05/25/new_work/#comments</comments>
		<pubDate>Sun, 25 May 2008 11:39:58 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<category><![CDATA[Астрология]]></category>

		<category><![CDATA[Лично]]></category>

		<category><![CDATA[Музика]]></category>

		<category><![CDATA[Dune]]></category>

		<category><![CDATA[Hardcore]]></category>

		<category><![CDATA[газ]]></category>

		<category><![CDATA[нова работа]]></category>

		<category><![CDATA[новина]]></category>

		<category><![CDATA[телеграфно]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=60</guid>
		<description><![CDATA[
Dune - Hardcore Vibes
И така, от 1 юни (де факто, 2 юни) съм на ново работно място. Промяната - макар и да я очаквах - се случи доста изненадващо и бързо. Ето събитията в хронологичен ред:

Preload:
- Миналата година около рождения си ден (т.е преди почти година), преглеждайки Слънчевата революция и транзитите за следващата година, съм [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/oAlRtCyr0sQ&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;autoplay="></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/oAlRtCyr0sQ&amp;amp;rel=1&amp;amp;color1=d6d6d6&amp;amp;color2=f0f0f0&amp;amp;border=&amp;amp;fs=1&amp;amp;autoplay=" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355" ></embed><param name="wmode" value="transparent" /></object></span></p>
<p style="text-align: right;"><strong>Dune - Hardcore Vibes</strong></p>
<p>И така, от 1 юни (де факто, 2 юни) съм на ново работно място. Промяната - макар и да я очаквах - се случи доста изненадващо и бързо. Ето събитията в хронологичен ред:</p>
<p><span id="more-60"></span></p>
<p><em>Preload</em>:</p>
<p>- Миналата година около рождения си ден (т.е преди почти година), преглеждайки Слънчевата революция и транзитите за следващата година, съм си отбелязал, че от юни 2008 до март 2009 ще съм вътре в динамиката на <em>квадратурата между транзитния Уран и рожденото ми Слънце</em>. Квадратурата е напрегнат аспект, който принуждава към действия, т.е определено ще има събития, свързани с 1, 4, 5, 8 и 10 дом или преведено с ключови думи, най-общо: инициатива, дом, удоволствие, хоби, творчество, пари, смърт (метафорично) и започване на нещо ново, обществено положение, призвание.</p>
<p><span style="color: #888888;">(Точен падеж на първата квадратура от &#8220;примката&#8221;: <strong>1 юни 2008</strong>; в края на юни Уран е едва на 15&#8242; (1/4º) от градуса на точния падеж и тръгва ретроградно; R-квадратура: 22/23 юли 2008; последна квадратура: 9 март 2009.)</span></p>
<p>За астрологическата част обаче ще пиша отделно.. просто искам да ви покажа, че съм бил отрано наясно с тенденциите за периода, който тепърва започва.. и колко важно е да имаш правилната мотивация да посрещнеш <em>неизбежната</em> промяна и да се справиш с напрежението, което неименуемо съпътства подобни констелации.</p>
<blockquote><p>&#8220;Най-добрият начин да се справите с квадратурата при транзит или прогресия е да запретнете ръкави и <em>да предприемете</em> <strong>действието</strong>, подсказано от събитията.&#8221; (Бернадет Брейди, &#8220;Предсказателна астрология&#8221;)</p></blockquote>
<p><em>Напомняне</em>:</p>
<p>- Втората половина на януари бях при една жена, която ми гледа на кафе, сериозно гледане беше <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Имам някъде из телефона си един близо половинчасов разговор. Част от нещата, които ми каза са - според мен &#8220;стандартните&#8221; - предсказания за нова работа, нов дом и сватба. Тази година. За първото и второто (което на теория е логично следствие от нарасналия доход покрай новата работа) така или иначе знаех, че има заложени линии на развитие.. е, ако точно пък тази година се случи и третото.. не знам, направо сватба ще вдигна! Шегичка <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><em>Тази седмица</em>:</p>
<p>- Миналата неделя се завъртях пак покрай BGDev, докато се борех със създаването на собствена семпла CAPTCHA. Някъде около един след полунощ, в понеделник, реших, че трябва да приключа с работата и да си лягам. Обаче, викам си, я дай да видя какво ново във форума.. Минах и през обявите за работа, попаднах на някаква от преди 4 дена, ама предложението беше ок и в понеделник, в 1:08 съм писал кратичко писъмце до фирмата: &#8220;Здравейте! Видях ваша обява в BGDev. В сила ли е все още предложението?&#8221;.</p>
<p>Обявата:</p>
<p><a rel="lightbox" href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/05/jobs-notice.gif" target="_blank" title="Обявата от jobs.bg"><img style="border: 0px; border-color: #FFFFFF;" src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/05/jobs-notice-500x456.gif" alt="Обявата от jobs.bg" /></a></p>
<p>- Сутринта получих писмо от фирмата, че да, все още е в сила и да изпратя CV.</p>
<p>- Вовчо и CV?! Хаха, аз съм връзкар, бре <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Досега никога не съм започвал работа след проведено интервю, тази ще е първата. Винаги са ме вземали на работа след разговор с шефа, който е предварително подготвен от моя връзка в съответната фирма - е, връзкар ли съм? :)) А на интервюта съм ходил не на едно и две, и обикновено съм чувал нещо от рода на &#8220;Да, ще ви се обадим!&#8221;, след което, разбира се, никой не се обажда. Btw, не лъжете, ще ви станат къси краката (и трите) и ще ви пораснат носовете <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Кажете просто, че няма да я бъде тая и кандидатстващият да е наясно, че трябва да продължи жив и здрав по пътя си..</p>
<p>- На Вовчо обаче очевидно ще му се наложи да си напише CV все пак <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Ангажира се бързо <em>онлайн профи екип от 5 души</em> за създаване на CV-то и се почва едно: &#8220;Я виж тоя вариант?&#8221;, &#8220;Не, тук го напиши така и така!&#8221;, &#8220;Това го изтрий!&#8221; и т.н. За около час и нещо размени на .doc файла по системата <strong>5 x 5 via Skype</strong> се роди едно турбо CV в размер на цели 2 стр.! (Тези петимата ще получат медал, чаша студена вода и потупване по рамото на първа заплата!)</p>
<p>- Пратих CV-то по обед в понеделник. След няма и час получих запитване дали мога да отида на следващия ден на интервю. Мога ли?</p>
<p>- Вторник. Дори си измих зъбите, че се и обръснах, няма как.. не трябва да ги плаша хората още в началото, нали? Интервюто продължи около половин час. Казаха ми, &#8220;ще ви се обадим&#8221; :)) Кво значение има? Нали поне се сдобих с турбо мега натокано CV с цели 2 стр. размер! <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>- Сряда, 10:29. Писъмце. &#8220;Здравей, ще се радваме да станеш част от нашия екип! Можеш да започнеш подготовката по напускането. [..]&#8221; и т.н.</p>
<p>- Напускането отне 2 телефонни разговора по около минута всеки <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Не се наложи едномесечно предизвестие и т.н., щото е по взаимно съгласие. Така че на 1 юни съм свободен официално и мога да започна новата работа (това беше изискване от страна на новия ми работодател). Даже всъщност за събота и неделя ми остава като надомна работа пак да сглобявам комикси, т.е старата работа си продължава, само че в променени работно време, условия (у дома), заплащане  и договорни отношения. Всичко това е много хубаво и се случи така, щото шефът ми е пич! <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>А сега?</em></p>
<p>- И сега какво следва: един месец изпитателен срок и живот и здраве, после продължавам. Условията са ок, заплащането е добро, няма как да не съм доволен от създалата се ситуация, нали? Радвам ли се? Радвам се, естествено! След две години опити най-накрая отивам да работя <em>точно това, което ме влече</em> и то профи (не че аз съм профи, а ще имам възможност да работя в среда, която ще ми позволи да стана, хаха), няма как да не се радвам. И все пак, колегите астролози знаят, че квадратурата си е квадратура, че цикълът си е цикъл, а и едва сега започва.. и най-накрая, все пак това е УРАН! Това е <em>възможно най-непредвидимия и трудно предсказуемия астрологичен сигнификатор</em>. Събитията, които гръмовержецът Уран дава са винаги &#8220;<strong>като гръм от ясно небе</strong>”! Така че, ще поживеем, пък ще видим <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><em>Post Scriptum</em>:</p>
<p>- Работата като Freelancer несъмнено има много плюсове, обаче и работата във фирма, с екип - също. Хубаво е да се пробва и по двата начина. Ето някои от плюсовете, когато работиш във фирма:</p>
<p>- Работиш си като цяло по твоята част от проекта, при мен в случая, кодирането и &#8220;програмирането&#8221; на сайта. С неща, които не разбираш и не умееш в достатъчна степен общо взето не се занимаваш: при мен това е дизайнът, Flash, SEO и др. Докато, когато работиш като freelancer изграждането на сайта от нулата до края зависи единствено и само от теб..</p>
<p>- Не се занимаваш пряко с цени и клиенти. След един провален проект за тази година (при написан CMS и започнат сайт - и никакво заплащане) и един неплатен като хората.. не, мерси! По-добре във фирма..</p>
<p>- Заплащането ти е фиксирано и знаеш на какво разчиташ. А не, този месец имам поръчка, пък другия си свиркам (или правя свирки)..</p>
<p>- Работиш в екип! Писах наскоро за <a href="http://www.vlkomarov.info/blog/2008/05/14/office_boredom/" target="_blank">офисната скука</a>, нали? Като почнеш да си говориш сам и всяка втора дума ти е &#8220;мама ви да еба, майкрософтска&#8221; (това по повод на добре известния Microsoft Internet FUCKING Explorer 6, че и 7), няма как да не се запиташ: &#8220;абе нямам ли нужда от малко промяна?!&#8221;. Имам, разбира се. А колежки? Абе дали ще имам колежки на новото си работно място - как можах да пропусна да попитам, тц тц. Абе Анджито Джоли не и ли писна да го играе актриса?! Тъй като я гледам, става за бранша: добре е от дизайнерска гледна точка, изглежда добре семантично кодирана, функционална е, унаследяема, кво и е? Трябва да я питам <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ами, that&#8217;s all folks! Пръц!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/05/25/new_work/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SEO - аматьорската</title>
		<link>http://www.vlkomarov.info/blog/2008/05/24/seo-amateur/</link>
		<comments>http://www.vlkomarov.info/blog/2008/05/24/seo-amateur/#comments</comments>
		<pubDate>Sat, 24 May 2008 16:33:46 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<category><![CDATA[AdSense]]></category>

		<category><![CDATA[AdWords]]></category>

		<category><![CDATA[Analytics]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[SEO]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Webmasters]]></category>

		<category><![CDATA[Гугъл]]></category>

		<category><![CDATA[оптимизация]]></category>

		<category><![CDATA[реклама]]></category>

		<category><![CDATA[търсене]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=59</guid>
		<description><![CDATA[
Заглавието смятам е ясно - от SEO аз не разбирам (достатъчно). Просто ще споделя първите си стъпки, които направих в тази област вчера..

Най-накрая отново обърнах внимание на Google Webmasters Tools, оправих robots.txt, поправих една синтактична грешка в един от sitemap.xml-ите, позачетох се в документацията към инструмента.
Стана ми интересно и в един миг реших, абе я [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/05/adwords_homeopathy-240508.gif" alt="Google AdWords рекламна кампания на сайта - проба" /></p>
<p>Заглавието смятам е ясно - от SEO аз не разбирам (достатъчно). Просто ще споделя първите си стъпки, които направих в тази област вчера..</p>
<p><span id="more-59"></span></p>
<p>Най-накрая отново обърнах внимание на <strong>Google Webmasters Tools</strong>, оправих robots.txt, поправих една синтактична грешка в един от sitemap.xml-ите, позачетох се в документацията към инструмента.</p>
<p>Стана ми интересно и в един миг реших, абе я дай да видя какво е това <strong>Google Analytics</strong>. Досега не съм се занимавал сериозно с никой от инструментите, които ще спомена просто, защото не ми е било хипер наложително. Има си специалисти за всичко, аз предпочитам да се занимавам само с кодирането и по възможност колкото се може по-малко с други неща, свързани с web design/development-а. Е да, ама ако искам да си осъществя желанието новият сайт за класическа хомеопатия и Бах есенции да издуха и малкото конкуренция, която има, ще трябва да поработя по-сериозно и върху оптимизацията (SEO), и върху свързаното с нея..</p>
<p>Та регистрирах се, добавих необходимия код и днес проверявам с какви показатели стартирам: средно са преглеждани 6 страници на посещение и посетителите са били в сайта около 5:54 минути. Най-посещаван (разбираемо) е разделът за Бах есенциите, което ме навежда на мисълта, че правилно съм се ориентирал да започна в новия сайт първо с него.. Все още разглеждам, но на пръв прочит инструментът дава доста инфо - чак се чудя как досега не съм ползвал услугите на Google Analytics.</p>
<p>Логично, след като разгледах Analytics отидох да видя най-накрая как стоят нещата с <strong>Google AdWords</strong>. Регистрирах се, създадох си първата реклама, захраних сметката, определих месечния бюджет, нагласих цена/клик. После си направих списък с ключови думи и стартирах кампанията. Ама то било много интересно това <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Конкуренцията в тази ниша е нищожна, но може би ще расте с времето, та е хубаво да проверя как стоят нещата. Дори и сега,   с неоптимизиран сайт съм на първа страница за &#8220;<a href="http://www.google.bg/search?hl=bg&amp;q=%D0%BA%D0%BB%D0%B0%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0+%D1%85%D0%BE%D0%BC%D0%B5%D0%BE%D0%BF%D0%B0%D1%82%D0%B8%D1%8F&amp;btnG=Google+%D1%82%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5&amp;meta=" target="_blank">класическа хомеопатия</a>&#8221; и за &#8220;<a href="http://www.google.bg/search?hl=bg&amp;q=%D0%91%D0%B0%D1%85+%D0%B5%D1%81%D0%B5%D0%BD%D1%86%D0%B8%D0%B8&amp;btnG=%D0%A2%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5&amp;meta=" target="_blank">Бах есенции</a>&#8220;, така че за тях няма смисъл да играя с AdWords, но примерно за &#8220;<a href="http://www.google.bg/search?hl=bg&amp;q=%D1%85%D0%BE%D0%BC%D0%B5%D0%BE%D0%BF%D0%B0%D1%82%D0%B8%D1%8F&amp;btnG=%D0%A2%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5&amp;meta=" target="_blank">хомеопатия</a>&#8221; съм на 2 стр., а за &#8220;<a href="http://www.google.bg/search?hl=bg&amp;q=%D1%85%D0%BE%D0%BC%D0%B5%D0%BE%D0%BF%D0%B0%D1%82%D0%B8%D1%87%D0%BD%D0%BE+%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5&amp;btnG=%D0%A2%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5&amp;meta=" target="_blank">хомеопатично лечение</a>&#8220;, например, ще се конкурирам с реклама на медицинския център на д-р Емилова.</p>
<p><span style="color: #333399;">Искам повече конкуренция за да ми е по-забавно - моля, колегите хомеопати и цветотерапевти да започват <strong>веднага</strong> да рекламират! <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> Така, разбира се, вашите реклами ще се появяват в Google AdSense рекламните карета в моя сайт и при клик ще се наложи да ми плащате за това :))</span></p>
<p><span style="color: #008000;">Извън темата за първите стъпки в SEO и Google Tools, да ви споделя, не знам дали има нещо общо със Сколопендрата, с NLP-то, с това, че спрях да се разсейвам с въздишки по некви субекти от женски род.. но установявам колко надъхан, амбициозен, целенасочен и работоспособен мога да бъда, когато си създам правилната мотивация. Чак си се кефя и ще изтичам да се нацелувам <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Момент..</span></p>
<p>Ta за Google AdWords кампанията, сега е на пауза, но чака в засада и към юли или август като пусна новия сайт с обогатената функционалност ще я пробвам вече в реални условия. За единия час вчера и няколкото часа днес имам общо 536 импресии на рекламата (508 в съдържателната мрежа; 28 при търсене по ключови думи, 18 пъти от които са за &#8220;хомеопатия&#8221;), имам 1 клик от съдържателната мрежа и съм платил 0.05 лв. за него <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Средната ми позиция е 1.2 - 6.0 в съдържателната мрежа, т.е там ще трябва да се поработи.</p>
<p>Та, ако разбирате от SEO тази публикация ви е безполезна, естествено.. ако не разбирате пък съвсем изобщо не трябваше да я четете, щото тя не ви дава нищо смислено като информация.. хаха.. абе просто се забавлявам, това е <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Следващата публикация ще е за новата работа, която почвам от 1 юни (2 юни де факто). Ама за това по-скоро утре..</p>
<p>P.S. SEO = Search Engine Optimization - оптимизация [на сайта] за търсещите машини</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/05/24/seo-amateur/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
