<?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>www4u.org &#187; Web development</title>
	<atom:link href="http://www4u.org/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www4u.org</link>
	<description>Блогът за Web 2.0, Web Development, Blogging, SEO и...каквото дойде :)</description>
	<lastBuildDate>Fri, 11 Sep 2009 15:26:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Премахване на дублирани редове от MySQL база данни</title>
		<link>http://www4u.org/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d1%83%d0%b1%d0%bb%d0%b8%d1%80%d0%b0%d0%bd%d0%b8-%d1%80%d0%b5%d0%b4%d0%be%d0%b2%d0%b5-%d0%be%d1%82-mysql-db/</link>
		<comments>http://www4u.org/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d1%83%d0%b1%d0%bb%d0%b8%d1%80%d0%b0%d0%bd%d0%b8-%d1%80%d0%b5%d0%b4%d0%be%d0%b2%d0%b5-%d0%be%d1%82-mysql-db/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 17:17:05 +0000</pubDate>
		<dc:creator>Кирил Владимиров - NetCutter</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[дублиране]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=224</guid>
		<description><![CDATA[Не ви ли се е случвало по погрешка да вкарате промишлени количества информация в дадена таблица, измежду която някои полета се дублират? Не, не съм се побъркал и не, не става въпрос за уникални записи в поле. Става въпрос за пълно съвпадение в съдържанието на две полета в два или повече различни записа. Веднага прилагам [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Не ви ли се е случвало по погрешка да вкарате промишлени количества информация в дадена таблица, измежду която някои полета се дублират? Не, не съм се побъркал и не, не става въпрос за уникални записи в поле. Става въпрос за пълно съвпадение в съдържанието на две полета в два или повече различни записа.</p>
<p style="text-align: justify;">Веднага прилагам прилагам пример. Решаваме(незнайно защо) да си правим база данни със всички квартали и градовете, в които се намират в България. Таблицата ни е с три полета: <strong>id</strong>, <strong>city</strong>, <strong>residential</strong>. Таблицата ни, най-просто може да бъде създадена така:</p>
<p><code>CREATE TABLE residentials (<br />
id int(10) NOT NULL auto_increment,<br />
city varchar(32),<br />
residential varchar(32),<br />
PRIMARY KEY (id)<br />
);</code></p>
<p style="text-align: justify;">Очевадно е, че няма как да сложим уникалност на нито едно от двете полета, поради простата причина, че квартали с името &#8220;Изток&#8221;, &#8220;Запад&#8221;, &#8220;Надежда&#8221;&#8230; има в почти всеки град. Но е лишено от всякаква логика да имаме два записа:</p>
<pre>+----+------------+-------------+
| id |    city    | residential |
+----+------------+-------------+
| 1  | Пазарджик  |   Запад     |
| 2  | Пазарджик  |   Запад     |
+---+-------------+-------------+</pre>
<p style="text-align: justify;">Ясно е, че трябва да се лишим с единия от записите. И ако говорим за сравнително голям обем от информация и респективно сравнително голям брой дублирани записи, то вместо да убиваме отговорника за съдържанието има едно по-интелигентно решение, за което научих от неволята <img src='http://www4u.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><code>ALTER IGNORE TABLE residentials ADD UNIQUE INDEX(city,residential);</code></p>
<p style="text-align: justify;">Това ни лишава от страшно много болежки, псувни, но за жалост не и от живота на отговорника за съдържанието <img src='http://www4u.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>П.П: Страшно много пъти ми е трябвало такова решение и всеки път го търся като в бездънна яма. Вече си го имам запазено <img src='http://www4u.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d1%83%d0%b1%d0%bb%d0%b8%d1%80%d0%b0%d0%bd%d0%b8-%d1%80%d0%b5%d0%b4%d0%be%d0%b2%d0%b5-%d0%be%d1%82-mysql-db/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Frameworks &#8211; анкета</title>
		<link>http://www4u.org/php-frameworks-%d0%b0%d0%bd%d0%ba%d0%b5%d1%82%d0%b0/</link>
		<comments>http://www4u.org/php-frameworks-%d0%b0%d0%bd%d0%ba%d0%b5%d1%82%d0%b0/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 19:52:24 +0000</pubDate>
		<dc:creator>Николай Йорданов</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=206</guid>
		<description><![CDATA[С Киро коментирахме кой framework как причинява болка на потребителите си. Затова следва един лаконичен въпрос, целящ единствено да покаже броя и вида на мазохистите, посещаващи този блог. Харесайте си един отговор, за статистиката:]]></description>
			<content:encoded><![CDATA[<p>С <a href="http://netcutter.org" target="_blank" class="liexternal">Киро</a> коментирахме кой framework как причинява болка на потребителите си. Затова следва един лаконичен въпрос, целящ единствено да покаже броя и вида на мазохистите, посещаващи този блог. Харесайте си <strike>един</strike> отговор, за статистиката:</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/php-frameworks-%d0%b0%d0%bd%d0%ba%d0%b5%d1%82%d0%b0/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Търсещи паяци &#8211; борба с арахнофобията</title>
		<link>http://www4u.org/%d1%82%d1%8a%d1%80%d1%81%d0%b5%d1%89%d0%b8-%d0%bf%d0%b0%d1%8f%d1%86%d0%b8-%d0%b1%d0%be%d1%80%d0%b1%d0%b0-%d1%81-%d0%b0%d1%80%d0%b0%d1%85%d0%bd%d0%be%d1%84%d0%be%d0%b1%d0%b8%d1%8f%d1%82%d0%b0/</link>
		<comments>http://www4u.org/%d1%82%d1%8a%d1%80%d1%81%d0%b5%d1%89%d0%b8-%d0%bf%d0%b0%d1%8f%d1%86%d0%b8-%d0%b1%d0%be%d1%80%d0%b1%d0%b0-%d1%81-%d0%b0%d1%80%d0%b0%d1%85%d0%bd%d0%be%d1%84%d0%be%d0%b1%d0%b8%d1%8f%d1%82%d0%b0/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 21:30:49 +0000</pubDate>
		<dc:creator>Николай Йорданов</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=173</guid>
		<description><![CDATA[Ако някога просто сте се чудили дали е трудно да се напише робот &#8211; не, не е. Трудната част идва, когато трябва да обработите събраната информация. И понеже сега са празници и мен, както обикновено, ме мързи &#8211; няма да се занимавам изобщо с обработване. Затова пък ще ви покажа как да напишете кратък скрипт, [...]]]></description>
			<content:encoded><![CDATA[<p>Ако някога просто сте се чудили дали е трудно да се напише <strong>робот</strong> &#8211; не, не е. Трудната част идва, когато трябва да обработите събраната информация. И понеже сега са празници и мен, както обикновено, ме мързи &#8211; няма да се занимавам изобщо с обработване. Затова пък ще ви покажа как да напишете кратък скрипт, който да се разходи из списък от сайтове. Простият ни паяк ще изрови <strong>всички</strong> линкове до някаква дълбочина. Естествено, това е възможно да бъде променено, според нуждите ни &#8211; филтриране на нежелани сайтове, избягване на повторения, преглеждане само на определени линкове (например rss емисии). Но ние ще предположим, че мрежата ни от линкове е <strong>&lt;внимание &#8211; математика&gt;</strong> дърво, в което всички върхове са &#8220;добри&#8221;, тоест са във вида &#8220;протокол://домейн/адрес&#8221; <strong>&lt;край на математиката&gt;</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> ?php
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Crawler <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$history</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$curl</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$depth</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$agent</span><span style="color: #339933;">,</span> <span style="color: #000088;">$links</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_depth</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$links</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$l</span><span style="color: #009900;">&#41;</span>
      <span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'url'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$l</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'depth'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span>
      <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>curl <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>curl<span style="color: #339933;">,</span> CURLOPT_USERAGENT<span style="color: #339933;">,</span> <span style="color: #000088;">$agent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>depth <span style="color: #339933;">=</span> <span style="color: #000088;">$_depth</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getContent<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// url на текущата страница</span>
    <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>curl<span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
    <span style="color: #666666; font-style: italic;">// спираме ехото и пазим резултата в низ</span>
    <span style="color: #990000;">curl_setopt</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>curl<span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">curl_exec</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>curl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> crawl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>  <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span>
          <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'deth'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>depth <span style="color: #009900;">&#41;</span>  <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000088;">$document</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>getContent<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$links</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>getSuccessors<span style="color: #009900;">&#40;</span><span style="color: #000088;">$document</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$links</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$l</span><span style="color: #009900;">&#41;</span>
	  <span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	      <span style="color: #0000ff;">'url'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$l</span><span style="color: #339933;">,</span>
	      <span style="color: #0000ff;">'depth'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'depth'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	  <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>history<span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #990000;">array_shift</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>path<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>history<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getSuccessors<span style="color: #009900;">&#40;</span><span style="color: #000088;">$document</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DOMDocument<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #339933;">@</span><span style="color: #000088;">$page</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>loadHTML<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$xpath</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DOMXPath<span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// вадим всички &lt;a&gt; тагове от документа</span>
    <span style="color: #000088;">$anchors</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xpath</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>evaluate<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;//a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// тук ще пазим линковете</span>
    <span style="color: #000088;">$hrefs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$anchors</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$a</span><span style="color: #009900;">&#41;</span>
      <span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hrefs</span><span style="color: #339933;">,</span> <span style="color: #000088;">$a</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>getAttribute<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'href'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$hrefs</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>  
&nbsp;
<span style="color: #000088;">$links</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://www4u.org&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$www4uCrawler</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Crawler<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;www4u crawler v.1.example&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$links</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$www4uLinks</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$www4uCrawler</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>crawl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">print_r</span> <span style="color: #000088;">$www4uLinks</span><span style="color: #339933;">;</span>
&nbsp;
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;&lt;/</span>a<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Това е видът на класа ни. Параметрите, които подаваме на <em><strong>__construct</strong></em> са съответно <strong>$agent</strong> &#8211; <em>User-agent</em>, с който ще се представяме, <strong>$links</strong> &#8211; неасоциативен масив, пълен с линкове (които на практика са низове) и <strong>$_depth</strong> &#8211; максимална дълбочина на ровене. Добре е да се отбележи, че в този си вид паякът не се съобразява с &lt;meta name=&#8221;robots&#8221; /&gt;, а се разхожда като слон в стъкларски магазин, без да гледа къде стъпва <img src='http://www4u.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Това, което правим е:</p>
<ol>
<li>да направим от всеки елемент на <strong>$links</strong> асоциативен масив (<strong>$path</strong>), като <em>url</em> е оригиналният елемент, а <em>depth</em> &#8211; текущата дълбочина</li>
<li>ако <strong>$path[0]['depth']</strong> е по-малко от максималната дълбочина (все още трябва да обхождаме) &#8211; добавяме в края на <strong>$path</strong> всички линкове от <strong>$path[0]['url']</strong>, добавяме <strong>$path[0]['url']</strong> към <strong>$history</strong> и изтриваме <strong>$path[0]</strong></li>
<li>когато count(<strong>$path</strong>) стане 0 &#8211; връщаме всички обходени линкове (<strong>$history</strong>)</li>
<li>показваме историята на обхождането</li>
</ol>
<p>И все пак &#8211; в общия случай този клас е неприложим. Написах го само, за да покажа някои основни идеи, без да го считам за нещо завършено. Не гарантирам, че при вас ще работи. Мислете какво ви трябва, не копирайте готов код.</p>
<p>&#8212;<br />
<strong>Забележка:</strong> за статията ви трябват <strong>php-xml</strong> и php версията на библиотеката <strong>cURL</strong> (или, за по-кратко &#8211; <strong>PHP 5.1 и нагоре</strong>). Ако намерите бъг, който държите да бъде поправен (вероятно ще има, не съм толкова велик, че да пиша bugless код без да съм тествал) &#8211; кажете и ще го оправя <img src='http://www4u.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/%d1%82%d1%8a%d1%80%d1%81%d0%b5%d1%89%d0%b8-%d0%bf%d0%b0%d1%8f%d1%86%d0%b8-%d0%b1%d0%be%d1%80%d0%b1%d0%b0-%d1%81-%d0%b0%d1%80%d0%b0%d1%85%d0%bd%d0%be%d1%84%d0%be%d0%b1%d0%b8%d1%8f%d1%82%d0%b0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Малко информация за meta name=&#8221;robots&#8221;</title>
		<link>http://www4u.org/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b7%d0%b0-meta-namerobots/</link>
		<comments>http://www4u.org/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b7%d0%b0-meta-namerobots/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 14:02:57 +0000</pubDate>
		<dc:creator>Кирил Владимиров - NetCutter</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=160</guid>
		<description><![CDATA[Вярвам, че всеки попаднал на тази страница си е имал работа с този мета таг. Въпреки широкото му разпространение обаче някои от най-известните търсачки дори не поддържат всичките възможности, предложени от W3C.  Синтаксисът е сравнително прост: &#60;meta name="robots" value="{зададена стойност}" /&#62; Стойностите, които могат да се дадат на robots meta таг: index &#8211; Позволява на [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Вярвам, че всеки попаднал на тази страница си е имал работа с този мета таг. Въпреки широкото му разпространение обаче някои от най-известните търсачки дори не поддържат всичките възможности, предложени от W3C.  Синтаксисът е сравнително прост:</p>
<p><strong><code>&lt;meta name="robots" value="{зададена стойност}" /&gt;</code></strong></p>
<h3>Стойностите, които могат да се дадат на robots meta таг:</h3>
<ul>
<li><strong>index</strong> &#8211; Позволява на търсещата машина да индексира цялата страница(зададена е по подразбиране)</li>
<li><strong>noindex</strong> &#8211; Забранява на паяка да индексира страницата ви(идеален за страници, които е по-добре да не попадат в резултатите на търсачката&#8230;)</li>
<li><strong>follow</strong> &#8211; Позволява на паяка да проследява всички линкове в страницата</li>
<li><strong>nofollow</strong> &#8211; Респективно &#8211; обратното. Забранява проследяването на линковете.(ако линквате към кофти места, продажба на линкове&#8230;)</li>
<li><strong>none</strong> &#8211; При поставяне на none като стойност, се подразбира: <strong>noindex, nofollow</strong> a.k.a Казвате на търсачката нито да индексира нито следва линковете из страничката ви</li>
<li><strong>noarchive &#8211; </strong>Забранява кеширането на страницата ви. По този начин търсачката няма да предоставя кеширани копия от преди X дни на вашата страница</li>
<li><strong>nocache</strong> &#8211; Изпълнява същата функция като noarchive, но за MSN/Live търсачката на MS.(Хъх..странно, Microsoft да не се съгласи с общоприет стандарт&#8230; <img src='http://www4u.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</li>
<li><strong>nosnippet &#8211; </strong>Забранява на търсещата машина да показва в резултатите си отделни части от текста в страницата ви и респективно забранява кеширането й.</li>
<li><strong>noodp</strong> &#8211; Забранява на търсещата машина да използва описанието за тази страница от DMOZ(a.k.a <abbr title="Open Directory Project">ODP</abbr>)</li>
<li><strong>noydir &#8211; </strong>Със същата функционалност като noodp, но за Yahoo! Directory</li>
</ul>
<h3>Информация за robots meta-таговете от самите търсачки:</h3>
<ul>
<li><a href="http://googlewebmastercentral.blogspot.com/2007/03/using-robots-meta-tag.html" target="_blank" class="liexternal">Google did a blogpost on the Google Webmaster Central Blog</a></li>
<li><a href="http://search.live.com/docs/siteowner.aspx?t=SEARCH_WEBMASTER_REF_RestrictAccessToSite.htm#C" target="_blank" class="liexternal">Live has a site owner help page for it</a></li>
<li><a href="http://help.yahoo.com/l/us/yahoo/search/" target="_blank" class="liexternal">You can search Yahoo!&#8217;s Webmaster resources</a></li>
<li><a href="http://about.ask.com/en/docs/about/webmasters.shtml" target="_blank" class="liexternal">Ask.com has some info about it in it&#8217;s Webmaster resource page</a></li>
</ul>
<p>И разбира се,<strong> <a href="http://www.robotstxt.org/" title="Robots.txt page" target="_blank" class="liexternal">официалната robots.txt</a></strong> страница <img src='http://www4u.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Подръжката на meta robots стойности от най-известните търсачки:</h3>
<table border="0" summary="Support for robots meta tags by the different search engines">
<tbody>
<tr>
<th id="robotsval" scope="col">Robots value</th>
<th id="google" scope="col">Google</th>
<th id="yahoo" scope="col">Yahoo!</th>
<th id="Live" scope="col">MSN / Live</th>
<th id="Ask" scope="col">Ask</th>
</tr>
<tr>
<td>index</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
</tr>
<tr>
<td>noindex</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
</tr>
<tr>
<td>none</td>
<td class="yes">Да</td>
<td class="doubt">Не е сигурно</td>
<td class="doubt">Не е сигурно</td>
<td class="yes">Да</td>
</tr>
<tr>
<td>follow</td>
<td class="yes">Да</td>
<td class="doubt">Не е сигурно</td>
<td class="doubt">Не е сигурно</td>
<td class="yes">Да</td>
</tr>
<tr>
<td>nofollow</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
</tr>
<tr>
<td>noarchive</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
</tr>
<tr>
<td>nosnippet</td>
<td class="yes">Да</td>
<td class="no">Не</td>
<td class="no">Не</td>
<td class="no">Не</td>
</tr>
<tr>
<td>noodp</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="yes">Да</td>
<td class="no">Не</td>
</tr>
<tr>
<td>noydir</td>
<td class="none">Не се използва</td>
<td class="yes">Да</td>
<td class="none">Не се използва</td>
<td class="none">Не се използва</td>
</tr>
</tbody>
</table>
<h3>Специално отношение към  отделни паяци</h3>
<p>Освен общи правила за всички роботи, можете да прилагате такива и персонално в robots.txt файла.  Имената на по-известните ботове:</p>
<ul>
<li><strong>Google</strong> &#8211; GOOGLEBOT</li>
<li><strong>Yahoo!</strong> &#8211; SLURP</li>
<li><strong>MSN/Live</strong> &#8211; MSNBOT</li>
<li><strong>Ask</strong> &#8211; TEOMA</li>
</ul>
<p>Еми това е <img src='http://www4u.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Надявам се ръководството да ви се е сторило полезно <img src='http://www4u.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Източник:  <a href="http://yoast.net" title="Yoast.net" target="_blank" class="liexternal"><strong>Yoast.net</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b7%d0%b0-meta-namerobots/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress permlink structure &amp; .htaccess</title>
		<link>http://www4u.org/wordpress-permlink-structure-and-htaccess/</link>
		<comments>http://www4u.org/wordpress-permlink-structure-and-htaccess/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 14:11:44 +0000</pubDate>
		<dc:creator>Краси</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[permlink structure]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=144</guid>
		<description><![CDATA[Няколко пъти отварям темата за permlink structure на WordPress и пак получих мейл относно съдържанието на .htaccess .htaccess трябва да съдържа: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] Ако някой има проблем със структурата може да се обърне към българските форуми за WordPress. Поздрави, Краси.]]></description>
			<content:encoded><![CDATA[<p>Няколко пъти отварям темата за <strong>permlink structure</strong> на <strong>WordPress</strong> и пак получих мейл относно съдържанието на <strong>.htaccess</strong></p>
<p><strong>.htaccess</strong> трябва да съдържа:</p>
<p><code><br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
</code></p>
<p>Ако някой има проблем със структурата може да се обърне към <a href="http://bg.forums.wordpress.org/" target="_blank" class="liexternal">българските форуми за WordPress</a>.</p>
<p>Поздрави, Краси.</p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/wordpress-permlink-structure-and-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO contest hack</title>
		<link>http://www4u.org/seo-contest-hack/</link>
		<comments>http://www4u.org/seo-contest-hack/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 12:08:33 +0000</pubDate>
		<dc:creator>Краси</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[tips & tricks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=135</guid>
		<description><![CDATA[В последните няколко години стана доста популярно т.нар. SEO състезание. Само по себе си SEO състезанието представлява съревнование между ентусиасти с цел техните сайтове да излязат на първо място в google (най-често) при търсене на дадена дума. За тази статия думата, която ще използваме е ytrewq (qwerty написано наопаки) и състезанието е организирано от компанията [...]]]></description>
			<content:encoded><![CDATA[<p>В последните няколко години стана доста популярно т.нар. SEO състезание. Само по себе си SEO състезанието представлява съревнование между ентусиасти с цел техните сайтове да излязат на първо място в google (най-често) при търсене на дадена дума. За тази статия думата, която ще използваме е <strong>ytrewq</strong> (qwerty написано наопаки) и състезанието е организирано от компанията OptimizeYourMind.</p>
<p>За да се обяви и организира едно такова състезание компанията OptimizeYourMind трябва да е заделила определена сума пари за награден фонд. Да речем, че е заделила 1750$, които ще разделят първите трима по резултат, съответно</p>
<p>1. 1000$<br />
2. 500$<br />
3. 250$</p>
<p>Самата обява за такъв конкурс се пуска седмица-две преди официалния старт. Много голям процент от хората, които поне малко отбират от Интернет ще са съгласни да се съревновават с оргомната конкуренция.</p>
<h3>Какво да използваме за състезанието</h3>
<p>Тук мнението е много субективно. Повечето хора предпочитат да използват <strong>open source</strong> системи за управление на съдържанието. Но все пак има и хора, които разчитат на чист xHTML и много препратки от сайтове/блогове на техни приятели/познати.</p>
<p>Ние ще заложим на блог системата <a href="http://wordpress.org" target="_blank" class="liexternal"><strong>WordPress</strong></a> по няколко причини:</p>
<ul>
<li>лесно се борави с нея</li>
<li>съдържанието се възприема по-приятелски в търсачките</li>
<li>има много &#8220;ефекти&#8221;, които ще ни помогнат</li>
</ul>
<p><strong>лесно се борави с нея</strong> &#8211; <a href="http://wordpress.org" target="_blank" class="liexternal">WordPress</a> е преведен на много езици и това позволява хора, които например нямат добри познания по английски език да боравят с нея. Много страни си имат и форуми за WordPress и хората могат да се обърнат винаги към тях за помощ</p>
<p><strong>съдържанието се възприема по-приятелски в търсачките</strong> &#8211; това ще е една от основните ни цели да използваме WordPress за това състезание. Дори си има опция дали сайта, който се задвижва от WordPress да се възприема по-добре в търсачките. Това ще улесни много нашата крайна цел &#8211; първо място при търсене на <strong>ytrewq</strong>.</p>
<p><strong>има много &#8220;ефекти&#8221;, които ще ни помогнат</strong> &#8211; в хранилището на WordPress има много плъгини, които помагат за SEO състезанието, в което ще участваме. Има плъгини, които дори оптимизират картинките. Шаренията от гледна точка на плъгини, които ще помогнат за това SEO състезание е много живописна.</p>
<h3>Не става само с ядене&#8230;</h3>
<p>Предполагам много от хората, които списват в блогове си имат сериозен опит и са човъркали WordPress из основи. Хрумват ми няколко начина да оптимизираме WordPress за оптимална производителност.</p>
<p><strong>Собствен домейн</strong> &#8211; в днешно време има хостинг провайдери, които предлагат хостинг+домейн име за буквално жълти стотинки. Ние теоретично ще закупим някой икономичен хостинг план и домейн име. Домейн името, за което ще проверим първо е разбира се <strong>ytrewq</strong>, като ще се надяваме да е свободно за регистрация в областта <strong>.org</strong> &#8211; домейните от тази област се възприемат по-човешки от търсачките. Я, свободно е! Е, след като се дадена поръчката за домейн име и хостинг, една банкова транзакция ни дели от заветната цел &#8211; SEO състезанието. След благополучно превеждане на необходимата сума на хостинг провайдера вече сме собственици на <strong>ytrewq.org</strong> и започваме важната работа.</p>
<p><strong>Вънешен вид</strong> &#8211; когато изготвяме концепция за списването на блог и използването на WordPress трябва да си представим и визуално крайният резултат от цялата работа, която ще свършим по време на състезанието.</p>
<p><strong>Концепция за съдържанието</strong> &#8211; съдържанието, което ще генерираме всъщност е безсмислено. Както и цялото състезание, но след като сме се хванали на хорото и сме дали пари &#8211; очакваме възвращаемост. Поради тази причина категориите може би не са чак толкова нужни. За това създаваме нова категория, която ще кръстим <strong>ytrewq</strong>. По подразбиране slug-ът на категорията си остава <strong>ytrewq</strong>. Него няма да го закачаме. От тук нататък &#8211; съдържанието, което ще генерираме отива в тази категория. Защо slug-ът има значение ще разберем по-надолу.</p>
<p><strong>Същинско съдържание</strong> &#8211; както вече казахме малко по-горе -&gt; какво точно ще списваме няма голямо значение. Важно е да знаем, че във всеки пост трябва да се съдържа думичката <strong>ytrewq</strong> поне веднъж. Нали целта ни е да заблудим алгоритъма на търсачките <img src='http://www4u.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Освен съдържанието обаче идва и един много интересен момент, който много от участващите в SEO състезание не забелязват и не обръщат внимание. Това е именно&#8230;</p>
<p><strong>структурата на URL на всеки постинг</strong>. За това ние ще използваме именно гъвкавата редакция на permlink structure на нашия WordPress. За целта отиваме в административния панел на WordPress -&gt; <strong>Settings</strong> -&gt; <strong>Permlinks</strong> и в полето <strong>Custom structure</strong> използваме един малък тарикатлък. В полето пишем:</p>
<blockquote><p>/ytrewq/%postname%.ytrewq</p></blockquote>
<p>По този начин Структурата <strong>Permanent link</strong> на всеки постинг ще изглежда така:</p>
<p><strong>http://ytrewq.org/ytrewq/postname.ytrewq</strong></p>
<p>За да бъде всичко тип-топ трябва да се грижим и всеки постинг да има определен и точен slug. Ще избягваме заглавията на постингите да са на кирилица.</p>
<p>Но за да работи всичко трябва да имаме един <strong>.htaccess</strong>, в който да пише:</p>
<blockquote><p>
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]</p></blockquote>
<p>Това е.</p>
<h3>Като за финал&#8230;</h3>
<p>До тук беше с оптимизацията на WordPress. Ако следвате съветите, в тази статия може би ще имате късмет в някое SEO състезание. От тук нататък остава да се опитвате ежедневно да генерирате съдържание, да правите впечатление на хора, които да поставят препратки към сайта, който използвате за SEO състезанието. Можете да се чувствате свободни да вземате идеи от тази статия. Надявам се да е била полезна и наистина да има ефект от нея.</p>
<p>P.S. <strong>не забравяйте, че примерите, които съм дал са използвани само и единствено в статията и всякакво съвпадение с реални домейни, SEO състезания и компании са напълно случайни</strong> <img src='http://www4u.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/seo-contest-hack/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Валиден embed код от YouTube</title>
		<link>http://www4u.org/valid-embed-youtube-code/</link>
		<comments>http://www4u.org/valid-embed-youtube-code/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 10:56:52 +0000</pubDate>
		<dc:creator>Кирил Владимиров - NetCutter</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[valid]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=66</guid>
		<description><![CDATA[След като преди няколко месеца(почти 7, ако не се лъжа) писах за валидация на embed кода от youtube. Тогава се домогнах до помощта на SWFObject, но както вероятно знаете, той не се поддържа от Internet Explorer, а вероятно на всички е известно, че IE се използва от най-много интернет потребители. Това как този браузър не [...]]]></description>
			<content:encoded><![CDATA[<p>След като преди няколко месеца(почти 7, ако не се лъжа) писах за валидация на embed кода от youtube. Тогава се домогнах до помощта на <a href="http://blog.deconcept.com/swfobject/" class="liexternal" title="SWFObject" target="_blank"><strong>SWFObject</strong></a>, но както вероятно знаете, той не се поддържа от Internet Explorer, а вероятно на всички е известно, че IE се използва от най-много интернет потребители.</p>
<p>Това как този браузър не спазва стандарти, има N-брой уязвимости и т.н. няма да го коментирам в тази статия. Отдавна е коментирано подобно нещо <img src='http://www4u.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Сега към новината.</p>
<p><a href="http://yovko.net/archives/1641" title="Йовко Ламбрев" target="_blank" class="liexternal"><strong>Йовко Ламбрев</strong></a> написа валиден код, с който да си импортвате youtube клипчетата, без това да ви разваля валидацията на страницата. Ако е валидна де. Аз лично държа на валидацията и трите блога, които поддържам са с валиден XHTML 1.0</p>
<p>Ако сега поискате embed код от youtube.com ще получите, код от такъв тип:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">object</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;425&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;344&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">param</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;movie&quot;</span> </span>
<span style="color: #009900;"><span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.youtube.com/v/E6dVfYGTyFw&amp;hl=en&amp;fs=1&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">param</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">param</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;allowFullScreen&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">param</span>&gt;</span>
<span style="color: #009900;">&lt;embed <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.youtube.com/v/E6dVfYGTyFw&amp;hl=en&amp;fs=1&quot;</span></span>
<span style="color: #009900;"><span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;application/x-shockwave-flash&quot;</span> allowfullscreen<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span> </span>
<span style="color: #009900;"><span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;425&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;344&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>embed&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">object</span>&gt;</span></pre></td></tr></table></div>

<p>Както вероятно знаете, той е НЕвалиден <img src='http://www4u.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ето и кодът написа от Йовко:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">object</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;application/x-shockwave-flash&quot;</span> </span>
<span style="color: #009900;"><span style="color: #000066;">data</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.youtube.com/v/E6dVfYGTyFw&amp;amp;hl=en&amp;amp;fs=1&quot;</span> </span>
<span style="color: #009900;"><span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:425px; height:344px;&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">param</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;movie&quot;</span> </span>
<span style="color: #009900;"><span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.youtube.com/v/E6dVfYGTyFw&amp;amp;hl=en&amp;amp;fs=1&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">object</span>&gt;</span></pre></td></tr></table></div>

<p>Прекалено съм сънен за да го изпробвам, но съм сигурен, че той го е тествал и под различни браузъри(грешка, която аз не направих в предишния пост за embed валидация на кода от youtube и останах адски озадачен от IE).</p>
<p>Е, това е&#8230;дерзайте <img src='http://www4u.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/valid-embed-youtube-code/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>scf4u &#8211; Оптимизирано вмъкване на изображения</title>
		<link>http://www4u.org/scf4u-images/</link>
		<comments>http://www4u.org/scf4u-images/#comments</comments>
		<pubDate>Sat, 17 May 2008 16:13:12 +0000</pubDate>
		<dc:creator>Кирил Владимиров - NetCutter</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[Разни]]></category>
		<category><![CDATA[scf4u]]></category>

		<guid isPermaLink="false">http://www4u.org/?p=50</guid>
		<description><![CDATA[От много време искам да напиша този пост. Все не стига или време, или желание. Е сега явно е ударил часът. Замисляли ли сте се, кои са основните  елементи в дадена страница? Това са текст, изображения и разбира се стиловите елементи. В тази статия, ще се спрем върху изображенията. Спирам се върху тях, защото това [...]]]></description>
			<content:encoded><![CDATA[<p>От много време искам да напиша този пост. Все не стига или време, или желание. Е сега явно е ударил часът. <strong>Замисляли ли сте се, кои са основните  елементи в дадена страница?</strong></p>
<p><strong>Това са текст, изображения и разбира се стиловите елементи.</strong> В тази статия, ще се спрем върху изображенията. Спирам се върху тях, защото това са и често най-грешно използваните елементи. Какво визирам под грешно? <strong>Колко от Вас, занимаващи се с изграждане на уеб страници, винаги указват размерите на дадено изображение?</strong></p>
<p>Повечето дизайнери/програмисти смятат, че ако то ще се използва в истинските му размери, т.е. няма да бъде преоразмерявано, няма нужда да му се укажат стойностите на широчина(width) и височина(height). <strong>И действително, дори да не ги укажете, всичко се визуализира нормално и Вие решавате &#8220;щом работи, няма нужда да се указват&#8221;. </strong>Е да, ама не.</p>
<p>При зареждането на страницата, ако не са указани размери на изображението, то <strong>браузърът по подразбиране задава размери 10&#215;10</strong> и поставя останалите елементи от страница, докато се зареди изображението. В не един и два случая обаче, размерите на изображението се оказват други, те се поправят, и елементите трябва да се пренаредят. <strong>Това бави зареждането на страницата, а ние далеч не желаем това.</strong></p>
<p>Ясно е, че е неудобно всеки път, да проверяваме какъв е размера на изображението, което включваме в дадена странца. <strong>Защо да не автоматизираме този процес? За целта написах един прост клас scf4u(SimpleClassFunctions4you), с две функции.</strong> Ще използвам този клас, като дописвам и други такива функции, които ще видите в следващите статии.</p>
<p>Сега към кода на първата функция:</p>
<p><span id="more-50"></span></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
	 * @desctiption: Simple php function that calculates image's 
	 * width and height. The first parameter is contains 
	 * Image File URL, the second is for image border, and the last 
	 * defines image's alt. 
	 * @based: Based on Hack #9 from PHP Hacks by Jack D(O'Reilly)
	 * @created: 17 May 2008
	 **/</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> img0<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$border</span><span style="color: #339933;">,</span> <span style="color: #000088;">$alt</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000088;">$clean</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$clean</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alt'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">htmlentities</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$alt</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">ENT_QUOTES</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'UTF-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">ctype_digit</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$border</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$clean</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'border'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$border</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$clean</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'border'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getimagesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;&lt;img src=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">{$file}</span><span style="color: #000099; font-weight: bold;">\&quot;</span> 
				style=<span style="color: #000099; font-weight: bold;">\&quot;</span> width: <span style="color: #006699; font-weight: bold;">{$width}</span>; height :<span style="color: #006699; font-weight: bold;">{$height}</span>;<span style="color: #000099; font-weight: bold;">\&quot;</span> 
				border=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">{$clean['border']}</span><span style="color: #000099; font-weight: bold;">\&quot;</span> 
				alt=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">{$clean['alt']}</span><span style="color: #000099; font-weight: bold;">\&quot;</span> 
		/&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>С простата функция img0() <strong>задавате пътя до изображенето, рамката, която искате да му приложите и разбира се описанието му(alt).</strong> Функцията, започва със създаването на празен масив, в който ще съхраняваме филтрираните данни. С помощта на htmlentities() заместваме всякакви символи, които биха могли да се изпълнят от браузъра с техните HTML заместители. Чрез getimagesize() се определят размерите на изображението и се описват в края на функцията.</p>
<p><strong>Разбира се, често ни се налага и да преоразмеряваме изображенията, които ще използваме в странциата си.</strong> Най-добре е това да се прави предварително, за да не се налага потребителският браузър да го прави, но все пак се налага понякога. <strong>Ето и функция, идентична като горепосочената, но с два параметъра за широчина(width) и височина(height):</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
	 * @desctiption: Simple php function. The first parameter is contains 
	 * Image File URL, the second is for image border, and the last 
	 * defines image's alt. 
	 * @based: Based on Hack #9 from PHP Hacks by Jack D(O'Reilly)
	 * @created: 17 May 2008
	 **/</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> img1<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$border</span><span style="color: #339933;">,</span> <span style="color: #000088;">$alt</span><span style="color: #339933;">,</span> <span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000088;">$clean</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$clean</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'alt'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">htmlentities</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$alt</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">ENT_QUOTES</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'UTF-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$nums</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">ctype_digit</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$border</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$num</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'border'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$border</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$num</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'border'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">ctype_digit</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$num</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'width'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$height</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$num</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'width'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">ctype_digit</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$height</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$num</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'height'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$height</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$num</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'height'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
		<span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getimagesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;&lt;img src=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">{$file}</span><span style="color: #000099; font-weight: bold;">\&quot;</span> 
&nbsp;
				style=<span style="color: #000099; font-weight: bold;">\&quot;</span> width: <span style="color: #006699; font-weight: bold;">{$num['width']}</span>; height :<span style="color: #006699; font-weight: bold;">{$num['height']}</span>;<span style="color: #000099; font-weight: bold;">\&quot;</span> 
				border=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">{$num['border']}</span><span style="color: #000099; font-weight: bold;">\&quot;</span> 
				alt=<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #006699; font-weight: bold;">{$clean['alt']}</span><span style="color: #000099; font-weight: bold;">\&quot;</span> 
		/&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Обединявам двете функции в един клас &#8211; scf4u(SimpleClassFunctions4you).</strong> Ще има следващи прости, но полезни функции, които ще дописвам в него. В следващата статия мисля, да засегна хеширането на стрингове, но приемам и идеи.</p>
<p><strong>Държа да отбележа, че идеята за тези функции, дойде от книгата </strong><strong><a href="http://netcutter.org/php-hacks-oreilly/" title="Директен линк към “PHP Хакове” - O’Reilly" rel="bookmark" target="_blank" class="liexternal">“PHP Хакове” &#8211; O’Reilly</a>.</strong> В книгата е указано, че при използване на съвсем малки части от кода, то те не претендират за собственост върху тях и дори не е задължително да бъдат указани като източник, <strong>все пак държа да го отбележа. </strong></p>
<p>Можете да свалите класа от тук:<br />
<a title="Download scf4u" href="http://www4u.org/wp-scf4u/scf4u.tar.bz2"><strong>[Download scf4u - tar.bz2 (11.4KB)]</strong><br />
</a><a href="http://www4u.org/wp-scf4u/scf4u.rar" title="Download scf4u" class="liinternal"><strong>[Download scf4u - rar        (12.5KB)]</strong></a></p>
<p><strong>Класът се разпространява под <a href="http://www.gnu.org/licenses/gpl-3.0.html" title="GNU General Public License v3" target="_blank" class="liexternal">GNU General Public License version 3</a> или по-нова</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/scf4u-images/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>По какво се познава добрия програмист?</title>
		<link>http://www4u.org/how-to-recognise-a-good-programmer/</link>
		<comments>http://www4u.org/how-to-recognise-a-good-programmer/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 21:35:14 +0000</pubDate>
		<dc:creator>Кирил Владимиров - NetCutter</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[CV]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[програмист]]></category>

		<guid isPermaLink="false">http://www4u.org/how-to-recognise-a-good-programmer/</guid>
		<description><![CDATA[Попадна ми един интересен пост на Inter-Sectionst. Доста е интересен и затова реших освен оригиналния линк към поста, да му направя кратко резюме. Още в началото се оспорва масовото мнение, че портфолиото не ти ли е пълно с проекти и нямаш ли красиво, препълнено с безмислици и локуми CV, не ставаш. И аз споделям идеята [...]]]></description>
			<content:encoded><![CDATA[<p>Попадна ми един интересен пост на <a href="http://www.inter-sections.net/" target="_blank" title="Inter Sections" class="liexternal">Inter-Sectionst</a>. Доста е интересен и затова реших освен <a href="http://www.inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer/" target="_blank" title="How to recognise a good programmer" class="liexternal">оригиналния линк към поста</a>, да му направя кратко резюме. Още в началото се оспорва масовото мнение, че портфолиото не ти ли е пълно с проекти и нямаш ли красиво, препълнено с безмислици и локуми CV, не ставаш. И аз споделям идеята на Даниел.</p>
<p>Сега към съществото на поста. Ето кои са 6-те основни качества, които се приема, че трябва да притежаваме, за да се наречем програмисти:</p>
<p><span id="more-30"></span></p>
<ol>
<li><strong>Увлечение, страст към коудването.</strong> Или иначе казано: Ако идеята ви е да бъдете програмист, само и единствено да печелите от него, без това да ви е заниманието през свободното време, без това да ви влече, то&#8230; откажете се. Програмирането, трябва просто да е в кръвта ви, да ви е интересно да го правите, а не да се явява просто една доадна работа, за която ни се плаща.</li>
<li><strong>Самоучение и желание за още знания.</strong> Ако смятате да научите нещо и след това, години наред, само да използвате тези знания, без да се стремите към нови, към усъвършенстването на старите и т.н., то станете чиновник. Това което научите днес, ще е недостатъчно утре и ще имате нужда от още.</li>
<li><strong>Интелигентност.</strong> Това е най-логичното. Тъй де, не е нужно просто да наизустяваш всичко като теле&#8230; Авторът твърди, че програмистите са измежду най-умните хора&#8230;това не го споделям, но все пак е ясно, че е нужно притежаниeто на интелигентност.</li>
<li><strong>&#8220;Скрит опит&#8221;.</strong> Преди да направим някакъв проект, с който се гордеем, със сигурност са нужни поне малко &#8220;дребни успехи&#8221;. Някое и друго драснато скриптче, дето се вика. Аз лично ако хвана да си давам дивотиите дето съм написал, било то за забавление, тренинг или чисто любопитство ще направя доста реда и бързо бързо ще ви накарам да затворите таба/прозореца на браузъра. И от статията ще цитирам дословно това: <em>&#8220;Has that ever appeared on my CV? Nope.&#8221;</em></li>
<li><strong>Познаване на разностранни технологии.</strong> Да, трябва да се интересувате и от други технологии, освен тези, които използвате. Не да си кажете &#8220;Бе това ще правя, другото не ме интересува&#8221;. Най-малкото което е, ако не ви е за цел да станете експерти в тази област, то поне да я познавате добре. Освен това да се интересувате от технологиите, близки до тези които използвате вие. Примерно, както е казал Даниел, почти всеки java програмист може да каже, че познава <em>“Java, J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell scripting”. </em>Доста трудно ще е да е специалист във всичките, но ако може да борави  с тях, дори само да редактира вече написани, това е един голям плюс за него.</li>
<li><strong>Чисто формалните квалификации. </strong>Ще дам възможно най-разбираемият пример: Вие сте java програмист(ах тази джава&#8230;само аз ли я ненавиждам, а даниел само за нея говори!?), владеете java програмирането перфектно, можете да работите там където желаете без да са ви нужни никакви сертификати. Да, ама не стои така и с работодателя. Той Ви вижда, че имате сертификат и си казва: &#8220;Бреей, този след като има сертификат си разбира от работата със сигурност и няма да има нужда да го обучаваме&#8221;. Даденото обучение може да не е нужно за никой от другите кандидати, но ако вие имате сертификат, това ви класира далеч по-напред от тях.</li>
</ol>
<p>Авторът е отбелязал, че не е нужно, човек да притежава всичките тези неща за да се нарече добър програмист, но както е казал мечо пух: &#8220;<strong>Колкото повече&#8230; толкова повече</strong>&#8220;. Бих искал да науча вашето мнение&#8230; особено на програмистите, които се мяркат в този блог.</p>
<p>Държа да отбележа:<br />
Статията която съм цитирал, <strong>НЕ</strong> е авторска! Не видях никъде да е лицензирано съдържанието в блога, но все пак държа да го отбележа. Този пост е просто кратко резюме на <strong>БЪЛГАРСКИ</strong> език, съдържащо лични мнения на автора, направено от мене &#8211; <a href="http://netcutter.www4u.org/" title="Личният блог на Кирил Владимиров" target="_blank" class="liexternal"><strong>Кирил Владимиров</strong></a> и собственост на <a href="http://www4u.org" title="Блогът за Web 2.0, Web Development, SEO…" class="liinternal"><strong>www4u</strong></a>, лицензирана под<strong> </strong>  <strong><a href="http://creativecommons.org/licenses/by-nc-sa/2.5/bg/" rel="license" target="_blank" class="liexternal">Creative Commons Attribution-Noncommercial-Share Alike 2.5 Bulgaria License</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/how-to-recognise-a-good-programmer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Как стои валидацията с повечето български web-dev сайтове?</title>
		<link>http://www4u.org/valid-bg-devs/</link>
		<comments>http://www4u.org/valid-bg-devs/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 19:26:00 +0000</pubDate>
		<dc:creator>Николай Йорданов</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www4u.org/valid-bg-devs/</guid>
		<description><![CDATA[Реших да направя един прост тест на тема валидация. Заблуденият екип на www4u й отдава голямо значение и ето как се ражда едно проучване. Лично аз останах доста учуден. Сайтове и блогове, с изключително полезно и качествено съдържание на тема web development и хората поддържащи такива местенца в родната ни мрежа, не винаги обръщат голямо [...]]]></description>
			<content:encoded><![CDATA[<p>Реших да направя един прост тест на тема валидация. Заблуденият екип на <strong>www4u</strong> й отдава голямо значение и ето как се ражда едно проучване. Лично аз останах доста учуден. Сайтове и блогове, с изключително полезно и качествено съдържание на тема <strong>web development</strong> и хората поддържащи такива местенца в родната ни мрежа, не винаги обръщат голямо внимание на валидния код.</p>
<p>Ето и къде какво казва <strong><a href="http://validator.w3c.org/" title="W3C Validator" target="_blank" class="liexternal">валидаторът на w3c</a></strong>:<br />
<em><a href="http://ayanev.com" target="_blank" class="liexternal">http://ayanev.com</a></em> <strong><font color="#ff0000">Failed validation, 368 Errors</font></strong><br />
<em><a href="http://devstorming.com" target="_blank" class="liexternal">http://devstorming.com</a></em> <strong><font color="#ff0000">Failed validation, 108 Errors</font></strong><br />
<em><a href="http://webmasterbg.com/seo/" target="_blank" class="liexternal">http://webmasterbg.com/seo/</a></em> <strong>  <font color="#339966">Passed validation,</font><font color="#ff9900"> 1 warning(s)</font></strong><br />
<em><a href="http://bgdev.org/" target="_blank" class="liexternal">http://bgdev.org/</a></em> <strong><font color="#ff0000">Failed validation, 18 Errors</font></strong><br />
<em><a href="http://www.ivostankov.net/" target="_blank" class="liexternal">http://www.ivostankov.net/</a></em> <strong><font color="#ff0000">Failed validation, 14 Errors</font></strong><br />
<em><a href="http://www.webmasterbg.org/" target="_blank" class="liexternal">http://www.webmasterbg.org/</a></em> <strong><font color="#ff0000">Failed validation, 1 Errors</font></strong><br />
<em><a href="http://web-tourist.net/" target="_blank" class="liexternal">http://web-tourist.net/</a></em> <strong><font color="#339966">Passed validation</font><font color="#ff9900">, 92 warning(s)</font></strong><br />
<em><a href="http://www4u.org" class="liinternal">http://www4u.org</a></em> <strong><font color="#339966">Passed validation</font></strong></p>
<p>Това е само началният вариант на списъка, той ще бъде разширяван все по-често и по-често. С най-добри чувства към всички горепосочените сайтове, аз и/или колегата сме чести посетители на повечето от тях.</p>
<p><strong>Бъдете 2.0… Валидирайте се!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www4u.org/valid-bg-devs/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
