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

<channel>
	<title>eKloe.com - Kubuntu User</title>
	<atom:link href="http://www.ekloe.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ekloe.com</link>
	<description></description>
	<pubDate>Thu, 24 Sep 2009 07:48:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Profesionální fotka zdarma</title>
		<link>http://www.ekloe.com/2009/08/profesionalni-fotka-zdarma/</link>
		<comments>http://www.ekloe.com/2009/08/profesionalni-fotka-zdarma/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 09:01:34 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.ekloe.com/?p=277</guid>
		<description><![CDATA[Fotobanka PixMac nyní nabízí 5 kreditů (tj. cca 5 USD) každému novému (i stávajícímu) členu na koupi profesionálních fotek. Pokud si koupíte profesionální fotku, dostanete oněch 5 kreditů. Zde se můžete zaregistrovat do . Při koupi však musíte uvést tento kód: PX58715 . Kód je platný do 20.11.2009
Nebo můžete nově využít při nákupu nový kód: [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Fotobanka PixMac</strong> nyní nabízí 5 kreditů (tj. cca 5 USD) každému novému (i stávajícímu) členu na koupi profesionálních fotek. Pokud si koupíte profesionální fotku, dostanete oněch 5 kreditů. Zde se můžete zaregistrovat do <a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=19" title="Odkaz mimo eKloe.com">PixMac</a>. Při koupi však musíte uvést tento kód: <strong>PX58715</strong> . Kód je platný do <strong>20.11.2009</strong></p>
<p>Nebo můžete nově využít při nákupu nový kód: <strong>PX108717</strong> platný do <strong>9.12.2009</strong>. Za něj dostanete 10 kreditů. Kódy je možno používat i v české verzi <a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=20" title="Odkaz mimo eKloe.com">PixMac</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/08/profesionalni-fotka-zdarma/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kde vzít fotky a grafiku pro webdesign zdarma</title>
		<link>http://www.ekloe.com/2009/08/kde-vzit-fotky-a-grafiku-pro-webdesign-zdarma/</link>
		<comments>http://www.ekloe.com/2009/08/kde-vzit-fotky-a-grafiku-pro-webdesign-zdarma/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 20:41:32 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.ekloe.com/?p=254</guid>
		<description><![CDATA[ Kvalitní fotky a materiály pro webdesign dnes není problém sehnat, zvlášť pokud máte dost peněz. Většinou je ale potřeba nějakou tu korunu ušetřit a i v tomto případě je mraky možností, kde kvalitní fotky a textury sehnat zdarma. Téměř každá fotobanka nabízí v různých intervalech (jedna týdně apod.) stažení profesionální fotky (i několik fotek) [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://www.ekloe.com/wp-content/uploads/photo.jpg" title="Fotograf" class="alignleft" width="200" height="300" /> Kvalitní fotky a materiály pro webdesign dnes není problém sehnat, zvlášť pokud máte dost peněz. Většinou je ale potřeba nějakou tu korunu ušetřit a i v tomto případě je mraky možností, kde kvalitní fotky a textury sehnat zdarma. Téměř každá fotobanka nabízí v různých intervalech (jedna týdně apod.) stažení profesionální fotky (i několik fotek) zdarma. Jedinou podmínkou je vždy registrace. Ta bývá zpravidla zcela zdarma.</p>
<p>Proč fotobanky nabízí fotky zdarma? Po registraci jste jejich potenciální zákazník. Nabízí vám fotky zdarma a VŽDY <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> nastane chvíle, kdy se Vám zrovna líbí a potřebujete některou komerční fotku pro Váš projekt či zakázku. Nezbývá nic jiného, než si ji koupit&#8230;</p>
<p>Při stahování fotky, kterou Vám někdo nabízí jen tak, si vždy pořádně pročťete na jaké účely ji můžete použít&#8230; I když je fotobanka třeba z Kanady, dá se lehce zjistit, ke byla fotka použita. A právě o této problematice je následující článek.</p>
<p><span id="more-254"></span></p>
<p><strong>Druhy licencí</strong><br />
Licencí je spousta, uvedu jen ty, pod kterými byvají uvolňovány fotky zdarma.</p>
<p><strong>Royalty Free</strong><br />
Většina fotek je vydávána pod touto licencí. Cena je paušální a s fotkou můžete disponovat většinou bez omezení. Hodně fotobank má ale svoje pravidla, kde použití upřesňuje. Obvykle, že nesmíte fotku dále prodávat, nebo ji umísťovat na internet v plném rozlišení apod. Nejčastější omezení, kde nesmíte fotku:</p>
<ul>
<li>dále prodávat nebo ji vložit do jiné fotobanky</li>
<li>umísťovat ji na internet v plném rozlišení</li>
<li>v neomezením počtu ji použít k tisku (do katalogu, knih, letáků, bilboardů apod.)</li>
<li>použít ji do loga nebo image firmy a posléze toho logo propagovat</li>
<li>nevydavat ji za vlastní dílo</li>
<li>nesdílet ji v peer-to-peer sítích, či jinak ji rozšiřovat</li>
<li>vkládat ji na reklamní předměty a ty v neomezeném počtu prodávat</li>
</ul>
<p>K tomu, abyste fotku mohli používat neomezeně slouží tzv. <strong>Extended license,</strong> neboli rozšířená licence. Buď může být fotka šířena zvlašť pod touto licencí, nebo je nádstavba Royalty Free licenci. V tom případě ke standardní ceně připočítána ještě další částka. V řádech od deseti do stovek dolarů nebo euro. Záleží v jak moc velkém neomezeném rozsahu ji chcete používat.</p>
<p>Fotky zdarma jsou také většinou šířeny pod licencí Royalty Free, jejich paušální cena je pak 0 a platí standardní licence a omezení fotobanky. Tyto fotky jsou zdarma vždy jen po nějakou dobu. Den, týden. Pak jsou opět zpoplatněny.</p>
<p><strong>Linkware licence</strong><br />
Fotky pod Linkware licencí smí být zpravidla používány pouze na internetu. Jedinou a stěžejní podmínkou této licence je, že musí být vždy a viditelně umístěn odkaz na zdroj fotky nebo umístěno logo fotobanky např. v patičce Vašeho webu. Tímto způsobem si fotobanka zvyšuje návštěvnost a hlavně zisk z placených fotek. Často jsou zdarma stále.</p>
<p><strong>Fotobanky</strong><br />
Zde můžete stahovat fotky zdarma. Pouze se musíte zaregistrovat:</p>
<ul>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=6" title="Odkaz mimo eKloe.com">stock.xchng</a></strong> - ke stažení více než 400 000 fotek. Kvalita fotek je podle mě průměrná. Musíte hledat, jinak skvělé místo pro fotky.</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=7" title="Odkaz mimo eKloe.com">iStockPhoto</a></strong> - každý týden jedna profesionální fotka. Kvalita fotek vynikající. Navíc je zde možno stahovat např. videa, ilustrace a zvuky zdarma. 1 kousek měsíčně.</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=20" title="Odkaz mimo eKloe.com">PixMac</a></strong> - přes 400 opravdu profesionálních fotek k okamžitému stažení. Web i v českém jazyce.</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=8" title="Odkaz mimo eKloe.com">Fotolia</a></strong> - každý den 15 fotek. Kvalita fotek průměrná až nadprůměrná. Každý den jsou jiné. Občas mi připadá, že to jsou fotky z dovolené <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=9" title="Odkaz mimo eKloe.com">ShutterStock</a></strong> - každý týden jedna fotka a vektorová ilustrace zdarma. Kvalita fotek vynikající.</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=18" title="Odkaz mimo eKloe.com">DreamsTime</a></strong> - stovky fotek ke stažení. Spíše průměrná až nadprůměrná kvalita.</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=17" title="Odkaz mimo eKloe.com">EveryStockPhoto</a></strong> - vyhledávač free fotek. Zde si většinou musíte zjistit nebo vyžádat svolení o použití fotky. Tahá fotky např. i z Flickr od běžných uživatelů. Moc nepoužívám.</li>
</ul>
<p>V mém případě je využítí fotek zdarma a kupovaných fotek cca 50 na 50. Vždycky mám představu jak by měl výsledek vypadat a někdy se nedá docílit bez finančních investic. Je lepší investovat více, aby byl i zákazník více spokojený a vše se Vám mnohonásobně vrátí&#8230;</p>
<p><strong>Textury</strong></p>
<ul>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=10" title="Odkaz mimo eKloe.com">DinPattern</a></strong> - textury na pozadí ke stažení. Skvěle navazují při <em>repeat</em>. Není nutná registrace. I pro komerční využití</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=11" title="Odkaz mimo eKloe.com">SquidFingers</a></strong> - standardní textury na pozadí</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=12" title="Odkaz mimo eKloe.com">TwitterPatterns</a></strong> - líbivé textury, ale pozor. Pouze pro pozadí určené pro Twitter</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=13" title="Odkaz mimo eKloe.com">Pattern8</a></strong> - skvělé opakující se textury i pro komerční využití zdarma</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=16" title="Odkaz mimo eKloe.com">BgPatterns</a></strong> - Generátor textur. Zvolíte znak, pozadí, vzorek, otočení a pak jen download a textura je doma <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p><strong>Ikonky</strong></p>
<ul>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=14" title="Odkaz mimo eKloe.com">FreeIcons</a></strong> - hodně ikonek zdarma ke stažení určených zejména pro WEB 2.0</li>
<li><strong><a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=15" title="Odkaz mimo eKloe.com">UserInterfaceIcons</a></strong> - 560 ikonek kancelářského zaměření (obálky, koš, hodiny, apod.). Glosy efekt. Různé velikosti od 24&#215;24px do 80&#215;80px</li>
</ul>
<p>Na závěr jednu důležitou věc. V úvodu jsem se zmínil, že lze jednoduše zjistit, kde je fotka či obrázek použit. Existuje indexovací nástroj, který místo stránek indexuje obrázky na internetu. Vložíte do něj obrázek, a vyhledávač Vám vyhodí stránky, kde je obrázek použit, nebo který obrázek se podobá tomu Vašemu. Jmenuje se <a href="http://tineye.com" class="external"><strong>tineye.com</strong></a>. Vyzkoušejte a budete překvapeni <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Můžete si i do FireFoxu nainstalovat plugin. Potom jen na kterékoliv stránce kliknete na obrázek a z menu vybere položku, která zjistí, kde všude na webu je stejný obrázek. Proto pečlivě studujte licenční podmínky, ke každé stahované fotce. Klidkně se i ptejne přímo podpory pro danou fotobanku. Raději mít jistotu <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/08/kde-vzit-fotky-a-grafiku-pro-webdesign-zdarma/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Přehrávání RMVB v Kubuntu</title>
		<link>http://www.ekloe.com/2009/07/prehravani-rmvb-v-kubuntu/</link>
		<comments>http://www.ekloe.com/2009/07/prehravani-rmvb-v-kubuntu/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 15:43:19 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[Kubuntu]]></category>

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

		<guid isPermaLink="false">http://www.ekloe.com/?p=243</guid>
		<description><![CDATA[Dnes jsem poprvé narazil na video formát RMVB (RealMedia Variable Bitrate). Chvíli mi trvalo než jsem našel ty správné kodeky, tak tady je malý návod.

Ze všeho nejdřív nainstalujte mPlayer z repozitáře, pokud nemáte.

sudo apt-get install mplayer libstdc++5

Z domovských stránek mPlayer stáhněte kodeky  pro Vaši mašinu. Pokud nevíte, zvolte Linux x86. Stažený archív rozbalte a [...]]]></description>
			<content:encoded><![CDATA[<p>Dnes jsem poprvé narazil na video formát RMVB (RealMedia Variable Bitrate). Chvíli mi trvalo než jsem našel ty správné kodeky, tak tady je malý návod.</p>
<p><span id="more-243"></span></p>
<p>Ze všeho nejdřív nainstalujte mPlayer z repozitáře, pokud nemáte.</p>

<div class="wp_syntax"><div class="code"><pre class="text text" style="font-family:monospace;">sudo apt-get install mplayer libstdc++5</pre></div></div>

<p>Z domovských stránek <strong>mPlayer</strong> stáhněte kodeky <a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=5" title="Odkaz mimo eKloe.com">Binary Codec Pack</a> pro Vaši mašinu. Pokud nevíte, zvolte <strong>Linux x86</strong>. Stažený archív rozbalte a obsah nakopírujte do <strong>/usr/lib/codecs</strong>.</p>
<p>Mohlo by vypadat následovně:</p>

<div class="wp_syntax"><div class="code"><pre class="text text" style="font-family:monospace;">sudo mkdir /usr/lib/codecs
sudo cp * /usr/lib/codecs</pre></div></div>

<p>Nyní je téměř vše nastaveno pro přehrávání *.rmvb. Po spuštění mPlayeru ještě budete muset nainstalovaný kodek zvolit v nastavení (Preferences). Záložka <strong>video</strong> kodek <strong>X11 ( XImage/Shm )</strong>.</p>
<p>Tento postup zprovozní fungování videa i v Kaffeine bez dalších nastavování.</p>
<p>Testováno pod Kubuntu 8.10, KDE 3.5.10 ENG</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/07/prehravani-rmvb-v-kubuntu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vložení Google Maps API na stránku</title>
		<link>http://www.ekloe.com/2009/06/vlozeni-google-map-api-na-stranku/</link>
		<comments>http://www.ekloe.com/2009/06/vlozeni-google-map-api-na-stranku/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 12:24:58 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

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

		<guid isPermaLink="false">http://www.ekloe.com/?p=228</guid>
		<description><![CDATA[Google Maps API je rozhraní, které Vám umožňuje zdarma jednoduché vložení mapy na web nebo do programů. Nedávno jsem tvořil web o Bed And Breakfast v Irsku a potřeboval jsem zobrazit umístění jednotlivých penzionů na mapě. Šáhl jsem po Google Maps API. Alternativou jsou mapy od seznamu nebo atlasu. Dnes pouze pro Evropu.
Následující skript umí [...]]]></description>
			<content:encoded><![CDATA[<p>Google Maps API je rozhraní, které Vám umožňuje zdarma jednoduché vložení mapy na web nebo do programů. Nedávno jsem tvořil web o Bed And Breakfast v Irsku a potřeboval jsem zobrazit umístění jednotlivých penzionů na mapě. Šáhl jsem po Google Maps API. Alternativou jsou mapy od seznamu nebo atlasu. Dnes pouze pro Evropu.</p>
<p>Následující skript umí zobrazit jedno umístění podle textové adresy pokud nemáte přesné umístění GPS souřadnic. Jelikož jsem měl v databázi (postgreSQL) cca 1500 adres bez GPS umístění, musel jsem si ukázkové skripty trochu poupravit.</p>
<p><span id="more-228"></span></p>
<p>V první řadě co musíte udělat, je si zaregistrovat svůj vlastní API KEY pro web, na kterém poběží ono zobrazování map. Registraci můžete provést <a href="http://code.google.com/apis/maps/signup.html" target="_blank" class="external">zde (Sign Up for the Google Maps API)</a>. Nezapomeňte, že musíte mít nejprve založen účet u Google (<a href="http://www.gmail.cz" target="_blank" class="external">čti gmail</a>).</p>
<p>Nejlépe do hlavičky domukentu vložte následující kód. Nahraje API rozhraní s Vašim vygenerovaným klíčem. Striktně nemusí být umístěno přímo v hlavičce.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">  <span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;sensor=true_or_false
    &amp;amp;key=VAS_VYGENEROVANY_API_KEY&quot;</span>
    type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Následující kód volá mapu až po načítání stránky. Může se stát, že google vypadne <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> a stránka se Vám nenačte a bude čekat na odezvu. Proto až nakonec.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">  <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
&nbsp;
    <span style="color: #000066;">onload</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        loadMap<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
    <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Funkce <strong>loadMap()</strong> načte samotnou mapu. Můžete ji mít uloženou kdekoli (externě v souboru, v knihovně) a pak ji pouze stačí zavolat.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">&nbsp;
    <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">'text/javascript'</span><span style="color: #339933;">&gt;</span>
&nbsp;
      google.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;maps&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;2&quot;</span><span style="color: #009900;">&#41;</span>;
      google.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;search&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
      <span style="color: #003366; font-weight: bold;">var</span> geo;
      <span style="color: #003366; font-weight: bold;">var</span> map;
&nbsp;
      <span style="color: #003366; font-weight: bold;">function</span> loadMap<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>GBrowserIsCompatible<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #006600; font-style: italic;">// muze se stat, ze google nenajde misto z textove adresy, ktere hledate</span>
          <span style="color: #006600; font-style: italic;">// proto pred zobrazenim hledaneho mista, zobraz nejake defaultni</span>
          <span style="color: #003366; font-weight: bold;">var</span> map <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> GMap2<span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;map&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>mapTypes<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>G_NORMAL_MAP<span style="color: #339933;">,</span>G_SATELLITE_MAP<span style="color: #339933;">,</span>G_HYBRID_MAP<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
          <span style="color: #006600; font-style: italic;">// momentalne nastaveny souradnice irska</span>
          map.<span style="color: #660066;">setCenter</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GLatLng<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">53.41291</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">8.24389</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">7</span><span style="color: #009900;">&#41;</span>;
&nbsp;
          <span style="color: #006600; font-style: italic;">// nastaveni ovladani</span>
          map.<span style="color: #660066;">addControl</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GLargeMapControl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
          <span style="color: #003366; font-weight: bold;">var</span> typeMap <span style="color: #339933;">=</span> map.<span style="color: #660066;">getMapTypes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
          <span style="color: #006600; font-style: italic;">// prepinani mezi typem mapy NORMAL/SATELIT/HYBRID</span>
          typeMap<span style="color: #009900;">&#91;</span>0<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">getName</span><span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;NORMAL&quot;</span>;<span style="color: #009900;">&#125;</span>
          typeMap<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">getName</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;SATELLITE&quot;</span>;<span style="color: #009900;">&#125;</span>
          typeMap<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">getName</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;HYBRID&quot;</span>;<span style="color: #009900;">&#125;</span>
          map.<span style="color: #660066;">addControl</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GMapTypeControl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
          map.<span style="color: #660066;">addControl</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GOverviewMapControl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>; 
          map.<span style="color: #660066;">addControl</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GScaleControl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
          geo <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> GClientGeocoder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
          <span style="color: #006600; font-style: italic;">// nastaveni textu, hledane adresy</span>
          <span style="color: #006600; font-style: italic;">// adresa pro vyhledani mista na mape, google radeji GPS souradnice ;-) pouzijeme textove vyhledavani</span>
          <span style="color: #006600; font-style: italic;">// osetrena data nacitam primo z databaze, mozno i parsovat z XML</span>
          <span style="color: #003366; font-weight: bold;">var</span> address<span style="color: #339933;">=</span><span style="color: #3366CC;">'&lt;?php echo $db_business_address.&quot;, Republic of Ireland&quot;; ?&gt;'</span>;
&nbsp;
          <span style="color: #006600; font-style: italic;">// adresa pro zobrazeni v bubline</span>
          <span style="color: #003366; font-weight: bold;">var</span> address2<span style="color: #339933;">=</span><span style="color: #3366CC;">'&lt;?php echo $db_business_name.&quot;&lt;br /&gt;&quot;.$db_business_address.&quot;&lt;br /&gt;Republic of Ireland&quot;; ?&gt;'</span>;
          geo.<span style="color: #660066;">getLatLng</span><span style="color: #009900;">&#40;</span>address<span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>punkt<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>punkt<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
              <span style="color: #006600; font-style: italic;">// nastaveni jak moc ma byt mapa priblizena</span>
              map.<span style="color: #660066;">setCenter</span><span style="color: #009900;">&#40;</span>punkt<span style="color: #339933;">,</span> <span style="color: #CC0000;">15</span><span style="color: #009900;">&#41;</span>;
&nbsp;
              <span style="color: #003366; font-weight: bold;">var</span> icon <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> GIcon<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
              <span style="color: #006600; font-style: italic;">// zobrazeni obrazku v miste, kde je hledane misto</span>
              icon.<span style="color: #660066;">image</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'http://bed-and-breakfast.ekloe.com/images/accept.png'</span>;
              icon.<span style="color: #660066;">shadow</span><span style="color: #339933;">=</span><span style="color: #3366CC;">''</span>;
&nbsp;
              <span style="color: #006600; font-style: italic;">// nastaveni vlastnosti obrazku (sirka, vyska v px)</span>
              icon.<span style="color: #660066;">iconSize</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> GSize<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">16</span><span style="color: #339933;">,</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span>;
              icon.<span style="color: #660066;">iconAnchor</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> GPoint<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">16</span><span style="color: #339933;">,</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span>;
              icon.<span style="color: #660066;">infoWindowAnchor</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> GPoint<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">16</span><span style="color: #339933;">,</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span>;
&nbsp;
              <span style="color: #006600; font-style: italic;">// zobrazeni nalezene adresy</span>
              <span style="color: #003366; font-weight: bold;">var</span> bubble <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> GMarker<span style="color: #009900;">&#40;</span>punkt<span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>icon<span style="color: #339933;">:</span> icon<span style="color: #339933;">,</span> title<span style="color: #339933;">:</span> address<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
              map.<span style="color: #660066;">addOverlay</span><span style="color: #009900;">&#40;</span>bubble<span style="color: #009900;">&#41;</span>;
&nbsp;
              <span style="color: #006600; font-style: italic;">// vepsani textu do bubliny</span>
              bubble.<span style="color: #660066;">openInfoWindowHtml</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;strong&gt;'</span> <span style="color: #339933;">+</span> address2 <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&lt;/strong&gt;'</span><span style="color: #009900;">&#41;</span>;
            <span style="color: #009900;">&#125;</span>
          <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
        <span style="color: #009900;">&#125;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #339933;">--&gt;</span>
    <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Na závěr umístěte následující DIV na místo, kde chcete, aby se mapa zobrazovala.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">  &lt;div id=&quot;map&quot; style=&quot;width: 280px; height: 450px&quot;&gt;&lt;/div&gt;
  &lt;div id=&quot;searchcontrol&quot;&gt;&lt;/div&gt;</pre></div></div>

<p>Ukázka použití na <a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=4" title="Odkaz mimo eKloe.com">bed-and-breakfast.ekloe.com</a>. Vždy si zaregistrujte API KEY na doménu, na které mapa bude bežet a tam testujte. Jinak Vám nebude fungovat. Zkoušel jsem rozchodit na localhost, ale chvíli fungovalo a chvíli ne&#8230;</p>
<p>Ještě je dobré podotknout, že se google nelíbí, pokud jsou mapy používány v částech stránek, kde je přístup pouze pod heslem. Administrátoři se údajně sem tam mrknou, jestli někdo neporušuje pravidla, a když se k mapě nedostanou, smažou Vám API KEY (mapa přestane fungovat) nebo přímo vloží Váš web na černou listunu (mapy Vám tam delší dobu nebudou fungovat).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/06/vlozeni-google-map-api-na-stranku/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ffmpeg: Úprava videa pro Samsung F480 tocco</title>
		<link>http://www.ekloe.com/2009/03/ffmpeg-uprava-videa-pro-samsung-f480-tocco/</link>
		<comments>http://www.ekloe.com/2009/03/ffmpeg-uprava-videa-pro-samsung-f480-tocco/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 19:49:17 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[Kubuntu]]></category>

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

		<category><![CDATA[Samsung F480 TOCCO]]></category>

		<guid isPermaLink="false">http://www.ekloe.com/?p=207</guid>
		<description><![CDATA[Cesta do práce mi trvá něco kolem hodiny jízdy autobusem. Zprůměrováno. Kdo zná dublinskou dopravu mi dá za pravdu, že hodina jízdy je v tom plepším případě (v závislosti na trafficu). Ráno půl hodiny do centra a večer hodina a půl zpět. Kromě listováním ve slovníku jsem začal sledovat seriály na svém &#8220;hloupém&#8221; Samsung F480 [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Ukázka převedeného videa pomocí ffmpeg" src="http://www.ekloe.com/wp-content/uploads/ffmpeg.jpg" title="Ukázka převedeného videa pomocí ffmpeg" class="alignleft" width="318" height="238" />Cesta do práce mi trvá něco kolem hodiny jízdy autobusem. Zprůměrováno. Kdo zná dublinskou dopravu mi dá za pravdu, že hodina jízdy je v tom plepším případě (v závislosti na trafficu). Ráno půl hodiny do centra a večer hodina a půl zpět. Kromě listováním ve slovníku jsem začal sledovat seriály na svém &#8220;hloupém&#8221; Samsung F480 TOCCO. Hloupý rozuměj, bez standardního OS (symbian apod.). Tady je pár řádků jak si upravit video konkrétně na tento telefon.</p>
<p><span id="more-207"></span></p>
<p><strong>Kompilování pomocí ffMpeg</strong></p>
<p>Ffmpeg je konzolový video konvertor. Dokáže převádět mezi mnoha video formáty. Pokud nemáte nainstalováno, má své balíčky v repozitářích Medibuntu. Běžně bych pro konverzi použil mencoder (konvertor součástí mPlayer), ale pomocí něho se mi nepodařilo &#8220;vyjímečně&#8221; dosáhnout použitelného výsledku. Pro přehrávání v TOCCO musí mít video stopa formát ffmpeg 4 a audio stopa AAC. Dá se použít i H.263 (3gp) ale výsledek je o něco horší. Rozlišení videa nesmí přesáhnout 320&#215;240px.</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">ffmpeg -i vstupni_video.avi -vcodec mpeg4 -s 320x176 -padtop 32 -padbottom 32 -acodec aac -y vystupni_video.mp4</pre></div></div>

<p><strong>-i</strong> vstupní video</p>
<p><strong>-vcodec</strong> definování výstupního video kodeku, použil jsem <strong>mpeg4</strong></p>
<p><strong>-s</strong> Rozlišení videa, musíte uvést textovou hodnotu ve fofmátu <strong>šířka X výška</strong> v pixelech. Ffmpeg narozdíl od mencoder bohužel zatím neumí dopočítat druhou stranu, takže musíme dopočítat. Víme, že video chceme mít veliké 320&#215;240px a výsledek po řevedení nechceme mít deformován, takže malý příklad jak dopočítat stranu:</p>
<p>Vstupní video máme veliké 640&#215;350px. Použijeme vzorec <strong>(vstupní_výška / vstupní_šířka) * výstupní_šířka</strong> a dostaneme <strong>výstupní_výšku</strong> videa. Tedy: <strong>(350/640)*320</strong>. Výsledné video bude mít rozlišení <strong>320&#215;176</strong>. Tuto hodnotu vložíme za <strong>-s</strong>. </p>
<p><strong>-padtop</strong> určení šířky horního černého pruhu do výsledné velikosti v pixelech. Pokud je šířka menší než chcete, jednoduše doplníte černé pruhy.</p>
<p><strong>-padbottom</strong> určení šířky spodního černého pruhu do výsledné velikosti v pixelech</p>
<p><strong>-acodec</strong> definování výstupního audio kodeku, použil jsem <strong>aac</strong></p>
<p><strong>-y</strong> výstupní video</p>
<p>Snažte se, aby výsledné video nebylo větší než 320&#215;240. Při kompilování jsem se nějak přepočítal a výsledek měl 320&#215;242px a tefon zahlásil neplatné rozlišení a video nepřehrál. Nevím, jestli záleží i na verzi firmware, testoval jsem na F480XXHF5. Zjistíte napsáním *#1234#</p>
<p>Převod videa o rozlišení 640&#215;350px ve formátu MPEG-4 v3 na video ffMpeg 4 na rozlišení 320&#215;240 bez titulků na postarší mašině ntb AcerTravelmate 4001 wlmi s procesorem Intel Pentium M715 na 1.5GHz a 1280MB DDR mi trvá cca 11 minut. Po zkonvertování má video cca 80MB z původních 344MB. Nakopírování videa do telefonu přes bluetooth trvá cca 40 minut.</p>
<p>Podle specifikace od Samsungu umí Tocco přehrávat video pouze při 15 fps. Takže komu záleží na velikosti videa, může ušetřit pár kB (Mb) ořezáním snímků, případně snížením bitrate. U ffmpeg je bitrate standardne 200. Moc se mi to nezdá, protože video s 30fps přehrává bez problémů, nesekaně. Nejspíš se týká 15fps při natáčení videa telefonem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/03/ffmpeg-uprava-videa-pro-samsung-f480-tocco/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gravatar, vlastní ikonka globálně</title>
		<link>http://www.ekloe.com/2009/02/gravatar-vlastni-ikonka-globalne/</link>
		<comments>http://www.ekloe.com/2009/02/gravatar-vlastni-ikonka-globalne/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 19:58:30 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

		<guid isPermaLink="false">http://www.ekloe.com/?p=183</guid>
		<description><![CDATA[Gravatar neboli Global Recognize Avatar. Slovo Avatar je známo především z icq, kde je tak pojmenována Vaše ikonka u přezdívky. Podle obrázku si Vás lidé také pamatují. Gravatar zajistí, aby i Vaše emailová schránka měla svoji tvář.
Narazil jsem na tuto službu docela náhodně, když jsem se snažil přiřadit ikonku ke svým komentářům zde na blogu [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Gravatar</strong> neboli <strong>G</strong>lobal <strong>R</strong>ecognize <strong>Avatar</strong>. Slovo <strong>Avatar</strong> je známo především z icq, kde je tak pojmenována Vaše ikonka u přezdívky. Podle obrázku si Vás lidé také pamatují. <a href="http://www.gravatar.com" target="_blank" rel='nofollow' class="external">Gravatar</a> zajistí, aby i Vaše emailová schránka měla svoji tvář.</p>
<p>Narazil jsem na tuto službu docela náhodně, když jsem se snažil přiřadit ikonku ke svým komentářům zde na blogu <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Stačí zaregistrovat Váš email na výše uvedené adrese a pomocí dvou kroků vložit obrázek, ze kterého se vytvoří ikonka. Překvapením bylo, že jsem na stránkách nikdy nebyl, a ještě před registrací byla moje emailová adresa, kterou používám při komentování předepsaná. Nezkoumal jsem do hloubky, ale nejspíš nějaký záznam cookies z některého komentáře. Po několika minutách po registraci se Vaše ikonka projeví všude, kde jste kdy komentovali. Samozřejmě na stránkách podporují Gravatary. Jak si ale takovou podporu vytvořit i na svých stránkách?</p>
<p><span id="more-183"></span></p>
<p><strong>Gravatar i na svých stránkách</strong><br />
Hned jsem zjišťovaj jak implementovat globální ikonky i na svůj web ke komentářům, nebo diskuzím, které nejsou poháněny žádným redakčním systémem. <a href="http://en.gravatar.com/site/implement" target="_blank" rel='nofollow' class="external">Zde najdete ukázky implementací</a> pro mnoho programovacích (skriptovacích) jazyků.</p>
<p>Php kód jsem si klasicky zabalil do třídy a uložil do souboru <strong>class.functions.php</strong>, který využívám ve všech příkladech zde na blogu:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff; font-style: italic;">/** Využití gravatarů na vlastních projektech
* http://www.ekloe.com
*/</span>
&nbsp;
&nbsp;
  <span style="color: #000000; font-weight: bold;">class</span> kloe_functions <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> get_gravatar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #339933;">,</span> <span style="color: #000088;">$default</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
      <span style="color: #000088;">$grav_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://www.gravatar.com/avatar.php?gravatar_id=&quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
      <span style="color: #0000ff;">&quot;&amp;default=&quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$default</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>
      <span style="color: #0000ff;">&quot;&amp;size=&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$size</span>;
&nbsp;
      <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;&lt;img src=<span style="color: #000099; font-weight: bold;">\&quot;</span>$grav_url<span style="color: #000099; font-weight: bold;">\&quot;</span> width=<span style="color: #000099; font-weight: bold;">\&quot;</span>$size<span style="color: #000099; font-weight: bold;">\&quot;</span> height=<span style="color: #000099; font-weight: bold;">\&quot;</span>$size<span style="color: #000099; font-weight: bold;">\&quot;</span> alt=<span style="color: #000099; font-weight: bold;">\&quot;</span>$email<span style="color: #000099; font-weight: bold;">\&quot;</span> /&gt;&quot;</span>;
    <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;"># end of class kloe_functions</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Do funkce vložíme email, cestu k defaultnímu obrázku a velikost obrázku. Uvnitř funkce se do načítací URL gravataru enkoduje vložený email pomocí funkce MD5 a cesta k defaultnímu obrázku. </p>
<p>Definované hodnoty uložte do souboru <strong>config.inc.php</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
  <span style="color: #666666; font-style: italic;">// === definovani defaultniho obrazku</span>
  <span style="color: #666666; font-style: italic;">// http://www.ekloe.com</span>
&nbsp;
  <span style="color: #990000;">define</span> <span style="color: #009900;">&#40;</span><span style="">'DEF_GRAV'</span><span style="color: #339933;">,</span> <span style="">'http://gravatar.ekloe.com/img/default_gravatar.jpg'</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #990000;">define</span> <span style="color: #009900;">&#40;</span><span style="">'SIZE_GRAV'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">40</span><span style="color: #009900;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p><strong>DEF_GRAV</strong> definuje umístění obrázku, který se zobrazí v případě, že vložená emailová adresa nemá ikonku.<br />
<strong>SIZE_GRAV</strong> definuje velikost obrázku. Standardně je 40 pixelů.</p>
<p><strong>Příklad použití</strong><br />
Pouhé zavolání funkce zajistí zobrazení Gravataru. Takhle můžete ve své diskuzi zobrazovat ikonky uživatelů i bez registrace a vkládání obrázků.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
  <span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;inc/config.inc.php&quot;</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;inc/class.kloe.php&quot;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
  <span style="color: #000088;">$kloe</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> kloe_functions<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
&lt;html&gt;
&nbsp;
&lt;head&gt;
  &lt;title&gt;Implementace Gravataru&lt;/title&gt;
  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
&lt;/head&gt;
&lt;body&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">echo</span> <span style="color: #000088;">$kloe</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_gravatar</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;email@vase_domena.cz&quot;</span><span style="color: #339933;">,</span> DEF_GRAV<span style="color: #339933;">,</span> SIZE_GRAV<span style="color: #009900;">&#41;</span>; <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>Funkci jsem již implementoval do svých knihoven a teď můžu uživatelům nabídnout, zda si ikonku uploadují sami, nebo si ji nechají načíst přes gravatar.com</p>
<p>Zdroj ke stažení ZDE: <a href="http://www.ekloe.com/wp-content/plugins/download-monitor/download.php?id=1" title="Odkaz mimo eKloe.com">Využití gravatarů na vlastních projektech</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/02/gravatar-vlastni-ikonka-globalne/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tipy nejen na sv. Valentýna</title>
		<link>http://www.ekloe.com/2009/02/svaty-valentyn-kam-se-podivas/</link>
		<comments>http://www.ekloe.com/2009/02/svaty-valentyn-kam-se-podivas/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 00:30:36 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[Ze života]]></category>

		<guid isPermaLink="false">http://www.ekloe.com/?p=169</guid>
		<description><![CDATA[Je opravdu nutné vyznávat lásku na povel? Po Americku: 3 &#8230; 2 &#8230; 1 &#8230; teď!  Zkuste překvapovat, ve chvíli, když to Vaše polovička vůbec nečeká. Bude se cítit mnohem výjimečněji.
Pro všechny, kteří hledají inspiraci přeji skvělého Valentýna!


Tipy na romantické pobyty:

http://www.vikendovepobyty.eu
http://www.romantickepobyty.cz
http://www.romantickevikendy.cz/vikendove-pobyty
http://www.romantickepobyty.sk

Tipy na nevšední romantické dárky:

http://www.sperky.cz
http://www.krasa.cz
http://www.hodinky.cz
http://www.dejtonej.cz/darky/romanticke-zazitky
http://www.adrenalinove-darky.cz/cs/romantika
http://www.darky-adrenalinove.cz/romanticke-darky
http://www.specialni-darky.cz/romanticke-zazitky

]]></description>
			<content:encoded><![CDATA[<p>Je opravdu nutné vyznávat lásku na povel? Po Americku: 3 &#8230; 2 &#8230; 1 &#8230; teď! <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Zkuste překvapovat, ve chvíli, když to Vaše polovička vůbec nečeká. Bude se cítit mnohem výjimečněji.</p>
<p>Pro všechny, kteří hledají inspiraci přeji skvělého Valentýna!</p>
<p><img alt="srdce v knize" src="http://www.ekloe.com/wp-content/uploads/srdce_v_knize.jpg" title="SRDCE V KNIZE" class="aligncenter" width="500" height="698" style="border: 1px solid #000000" /></p>
<p><span id="more-169"></span></p>
<p><strong>Tipy na romantické pobyty:</strong></p>
<ul>
<li><a href="http://www.vikendovepobyty.eu" target="_blank" rel='nofollow' class="external">http://www.vikendovepobyty.eu</a></li>
<li><a href="http://www.romantickepobyty.cz" target="_blank" rel='nofollow' class="external">http://www.romantickepobyty.cz</a></li>
<li><a href="http://www.romantickevikendy.cz/vikendove-pobyty" target="_blank" rel='nofollow' class="external">http://www.romantickevikendy.cz/vikendove-pobyty</a></li>
<li><a href="http://www.romantickepobyty.sk" target="_blank" rel='nofollow' class="external">http://www.romantickepobyty.sk</a></li>
</ul>
<p><strong>Tipy na nevšední romantické dárky:</strong></p>
<ul>
<li><a href='http://www.sperky.cz/?d=4959' class="external">http://www.sperky.cz</a></li>
<li><a href='http://www.krasa.cz/?d=4959' class="external">http://www.krasa.cz</a></li>
<li><a href='http://www.hodinky.cz/?d=4959' class="external">http://www.hodinky.cz</a></li>
<li><a href="http://www.dejtonej.cz/darky/romanticke-zazitky" target="_blank" rel='nofollow' class="external">http://www.dejtonej.cz/darky/romanticke-zazitky</a></li>
<li><a href="http://www.adrenalinove-darky.cz/cs/romantika" target="_blank" rel='nofollow' class="external">http://www.adrenalinove-darky.cz/cs/romantika</a></li>
<li><a href="http://www.darky-adrenalinove.cz/romanticke-darky" target="_blank" rel='nofollow' class="external">http://www.darky-adrenalinove.cz/romanticke-darky</a></li>
<li><a href="http://www.specialni-darky.cz/romanticke-zazitky/" target="_blank" rel='nofollow' class="external">http://www.specialni-darky.cz/romanticke-zazitky</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/02/svaty-valentyn-kam-se-podivas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bezpečnost. Pár fíglů proti SQL Injection</title>
		<link>http://www.ekloe.com/2009/02/bezpecnost-par-figlu-proti-sql-injection/</link>
		<comments>http://www.ekloe.com/2009/02/bezpecnost-par-figlu-proti-sql-injection/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 00:24:44 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

		<guid isPermaLink="false">http://www.ekloe.com/?p=120</guid>
		<description><![CDATA[SQL Injection je druh útoku, který hackeři používají hodně často k získávání citlivých údajů z Vaší databáze. Ať už to jsou přihlašovací jména a hesla, přístup k administrátorskému rozhraní nebo prostě jen k znehodnocení databáze (smazání některých částí apod.). Přitom stačí tak málo. Ošetřit vstupní hodnoty.
Rozhodl jsem se napsat pár řádků na tohle téma. Hodně [...]]]></description>
			<content:encoded><![CDATA[<p>SQL Injection je druh útoku, který hackeři používají hodně často k získávání citlivých údajů z Vaší databáze. Ať už to jsou přihlašovací jména a hesla, přístup k administrátorskému rozhraní nebo prostě jen k znehodnocení databáze (smazání některých částí apod.). Přitom stačí tak málo. Ošetřit vstupní hodnoty.</p>
<p>Rozhodl jsem se napsat pár řádků na tohle téma. Hodně lidí se mi ptalo na řešení různých situací, ale jakmile se jim podaří spíchnout (naprogramovat) skript, který chtěli, už se nezajímají jak je tento skript bezpečný. Vždy je potřeba řešení podle způsobu použití nějak zabalit.</p>
<p><span id="more-120"></span></p>
<p><strong>V čem je háček?</strong><br />
Dnes snad už každá webová aplikace, každé internetové stránky používají v jakékoliv míře databázi, ze které čerpají data (články, uživatele, &#8230;). Útočník využívá lennosti programátora a snaží se najít díru právě v těchto dotazích na databázi. Klasický dotaz lze ovlivnit vstupními hodnotami.</p>
<p>Pro příklad jednoduchý dotaz:</p>

<div class="wp_syntax"><div class="code"><pre class="sql sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> clanky <span style="color: #993333; font-weight: bold;">WHERE</span> id_clanek <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span></pre></div></div>

<p>Jednoduchý dotaz na databázi vybere z tabulky <em>clanky</em> článek s <em>ID 6</em>. Většina (začínajících) programátorů je spokojena, dosáhli čeho chtěli a už se nezajímají co dál. Pokud programátor nemá dostatek informací o SQL Injection ani nepřemýšlí jak dotaz ochránit. Byl jsem stejný <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>V tomto případě předpokládáme, že hodnotu id článku <strong>6</strong> jsme dostali např.<br />
z URL (http://www.vase-domena.cz/index.php?clanek=6).</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$id_clanku</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="">'clanek'</span><span style="color: #009900;">&#93;</span>;</pre></div></div>

<p>Pokud hodnotu před použitím neošetříme, útočník může udělat následující. K URL připíše:</p>
<p>http://www.vase-domena.cz/index.php?clanek=6 <strong>OR 1=1 &#045;&#045;</strong></p>
<p>a SQL dotaz se doplní do následující podoby:</p>

<div class="wp_syntax"><div class="code"><pre class="sql sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> clanky <span style="color: #993333; font-weight: bold;">WHERE</span> id_clanek <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #808080; font-style: italic;">--</span></pre></div></div>

<p>Jelikož <strong>1=1</strong> je vždy pravda, tento SQL dotaz ovlivní celou tabulku (vyhovují všechny řádky). Pokud by byl dotaz doplněn ještě o <strong>LIMIT</strong> nebo <strong>ORDER BY</strong>, dvě mínuska <strong>&#045;&#045;</strong> zajistí, aby zbytek dotazu byl brán jako komentář. V <strong>postgreSQL</strong> se komentuje právě pomocí <strong>&#045;&#045;</strong>.<br />
Jakmile tento dotaz projde a funguje, může útočník začít s útoky.</p>
<p><strong>Příklad útoku. </strong> Vloženou hodnotu doplníme o následující:</p>

<div class="wp_syntax"><div class="code"><pre class="sql sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> clanky <span style="color: #993333; font-weight: bold;">WHERE</span> id_clanek <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">6</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span>; <span style="color: #993333; font-weight: bold;">DROP</span> <span style="color: #993333; font-weight: bold;">TABLE</span> clanky; <span style="color: #808080; font-style: italic;">--</span></pre></div></div>

<p>A máme celou tabulku na onom světě.</p>
<p><strong>TIPy na obranu:</strong><br />
Vytvoříme si php třídu s funkcemi na ošetření vstupních hodnot, která by mohla vypadat následovně. Soubor pojmenuji <strong>class.functions.php</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> kloe_functions <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// fce zkontroluje vstupni hodnotu proti nebezpecnym znakum</span>
  <span style="color: #000000; font-weight: bold;">function</span> sqlCheck<span style="color: #009900;">&#40;</span><span style="color: #000088;">$test_str</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$test_str</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$test_str</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;x&quot;</span><span style="color: #009900;">&#41;</span>;
    <span style="color: #000088;">$test_str</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$test_str</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;+&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;x&quot;</span><span style="color: #009900;">&#41;</span>;
    <span style="color: #000088;">$test_str</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$test_str</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;--&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;x&quot;</span><span style="color: #009900;">&#41;</span>;
    <span style="color: #000088;">$test_str</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$test_str</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;&amp;&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;x&quot;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$test_str</span>;
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// funkce zjisti zda je cislo opravdu cislo</span>
  <span style="color: #666666; font-style: italic;">// 444 = true, 43 = true</span>
  <span style="color: #666666; font-style: italic;">// 44a = false, 4 4 = false</span>
  <span style="color: #000000; font-weight: bold;">function</span> is_number<span style="color: #009900;">&#40;</span><span style="color: #000088;">$number</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;">preg_match</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/^([0-9]+)$/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$number</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span>;
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color:#800080;">0</span>;
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// zjisti zda vlozene cislo je kladne cislo v danem rozsahu</span>
  <span style="color: #000000; font-weight: bold;">function</span> validate_number_range<span style="color: #009900;">&#40;</span><span style="color: #000088;">$number</span><span style="color: #339933;">,</span><span style="color: #000088;">$min</span><span style="color: #339933;">,</span><span style="color: #000088;">$max</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;">eregi</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;^[0-9]{&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$min</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$max</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;}$&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$number</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span>;
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color:#800080;">0</span>;
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;"># konec tridy kloe_functions</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Funkci <strong>sqlCheck()</strong> jsem zahrnul už v <a href="http://www.ekloe.com/2008/12/php-trida-pro-pripojeni-k-postgresql/" rel='nofollow'>php třídě pro připojení k postgreSQL</a>. Funkce zjistí, zda se v řetězci nenachází nebezpečné znaky. Pokud ano, nahradí je znakem <strong>x</strong>. Funkci používám při přihlašování uživatelů. Ověřuji vložené přihlašovací jméno i heslo.</p>
<p>Fce <strong>is_number()</strong> se může zdát zbytečná. Vždyť ke zjišťování, jestli je číslo číslem existuje implementovaná fce <strong>is_numeric()</strong>. Podle mě je <strong>is_numeric()</strong> nepoužitelná. Zkuste testovat hodnotu <strong>4e4</strong>, jestli je číslo <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> třeba pomocí:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$testovane_cislo</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;4e4&quot;</span>;
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_numeric</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$testovane_cislo</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;je cislo&quot;</span>;
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;NENI cislo&quot;</span>;
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Při programování zhruba víte, jaké hodnoty dostáváte, takže fce si upravte podle potřeby. Třeba fce <strong>validate_number_range()</strong> hlídá i rozsah čísla (můžete zabránit přetečení datového typu a opětovné vypsání chyby).</p>
<p><strong>Příklad použití:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
  <span style="color: #666666; font-style: italic;">// pripojeni pripravenych souboru</span>
  <span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;config.inc.php&quot;</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;class.connect.php&quot;</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;class.functions.php&quot;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
  <span style="color: #000088;">$kloe</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> kloe_functions<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> db<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">connect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&nbsp;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;cs&quot; lang=&quot;cs&quot;&gt;
&nbsp;
&lt;head&gt;
  &lt;title&gt;eKloe.com - fix sql injection&lt;/title&gt;
  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
  <span style="color: #000088;">$login_name</span> <span style="color: #339933;">=</span> <span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="">'login_name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #000088;">$login_passwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="">'login_passwd'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
  <span style="color: #000088;">$login_name</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$kloe</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">sqlCheck</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$login_name</span><span style="color: #009900;">&#41;</span>;
  <span style="color: #000088;">$login_passwd</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$kloe</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">sqlCheck</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$login_passwd</span><span style="color: #009900;">&#41;</span>;
&nbsp;
  <span style="color: #666666; font-style: italic;">// dale by nasledovalo zpracovani promennych</span>
  <span style="color: #666666; font-style: italic;">// .............</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// pokud bychom testovali promenou na cislo, priklad by vypadal nasledovne:</span>
&nbsp;
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$kloe</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">is_number</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="">'cislo'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;TESTOVANE CISLO JE OPRAVDU CISLO&quot;</span>;
    <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * FROM clanky WHERE (id_clanku = '&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="">'cislo'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;') LIMIT 1&quot;</span><span style="color: #009900;">&#41;</span>;
    <span style="color: #666666; font-style: italic;">// zde by mohlo byt zpracovani vypisu z databaze</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;TESTOVANE CISLO NENI CISLO&quot;</span>;
    <span style="color: #990000;">die</span>;
  <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
&lt;br /&gt;&lt;br /&gt;
&lt;form method=&quot;POST&quot; action=&quot;index.php&quot;&gt;
  Přihlašovací jméno: &lt;input type=&quot;text&quot; name=&quot;login_name&quot; maxlength=&quot;32&quot; /&gt;&amp;nbsp;&amp;nbsp;
  Heslo: &lt;input type=&quot;password&quot; name=&quot;login_passwd&quot; maxlength=&quot;32&quot; /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &lt;input type=&quot;submit&quot; value=&quot;přihlásit&quot; alt=&quot;Přihlásit&quot; /&gt;
&lt;/form&gt;
&nbsp;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p><strong>Pár rad na závěr:</strong></p>
<p>V první řadě nevypisujte všechny chybové hlášky uživatelům. Osvědčilo se mi uživatelům podšoupnout pouze chybovou hlášku, se kterou se spokojí (třeba: neočekávaná chyba, kontaktujte prosím webmastera <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) a skutečná errorová hláška se mi pošle na email a do logu. Hned vím, že je něco špatně a vím, kde a kdy.</p>
<p>V postgreSQL se mi velmi vyplatilo používat tzv. VIEWs (nadhledy nad tabulkami). Přímo v databázové vrstvě si můžete vytvořit náhled (jakýkoliv SELECT, JOIN, spožené výrazy, apod.). Tyto náhledy jsou pouze pro čtení a útočník tedy tabulku nemůže poškodit, pokud zná název. Můžete si například vytvořit VIEW uživatelů, ale podmínkou do nich nezapojit administrátorské účty a útočníkovi se v případě prolomení nezobrazí všechny záznamy.</p>
<p>Zvyknětě si v SQL dotazech každou podmínku za WHERE uzavírat do závorek, některým útočníkům to nemusí hned docvaknout. Viz.:</p>

<div class="wp_syntax"><div class="code"><pre class="sql sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> user <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #66cc66;">&#40;</span>id_user <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">4</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #808080; font-style: italic;">-- ) ORDER BY id_user LIMIT 1;</span></pre></div></div>

<p>Hesla v databázi (ani nikde jinde) neukládejte v původní podobě. Použijte v php hashovací funkce <a href="http://ie.php.net/manual/en/function.sha1.php" target="_blank" rel='nofollow' class="external">sha1</a> nebo <a href="http://ie.php.net/manual/en/function.md5.php" target="_blank" rel='nofollow' class="external">md5</a>. Útočníkům jde především o hesla a získání přístupů.</p>
<p><strong>Další zdroje:</strong></p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/SQL_injection" target="_blank" rel='nofollow' class="external">http://en.wikipedia.org/wiki/SQL_injection</a></li>
<li><a href="http://us2.php.net/security.database.sql-injection" target="_blank" rel='nofollow' class="external">http://us2.php.net/security.database.sql-injection</a></li>
<li><a href="http://www.securiteam.com/securityreviews/5DP0N1P76E.html" target="_blank" rel='nofollow' class="external">http://www.securiteam.com/securityreviews/5DP0N1P76E.html</a></li>
<li><a href="http://www.unixwiz.net/techtips/sql-injection.html" target="_blank" rel='nofollow' class="external">http://www.unixwiz.net/techtips/sql-injection.html</a></li>
<li><a href="http://www.tech-faq.com/sql-injection-attack.shtml" target="_blank" rel='nofollow' class="external">http://www.tech-faq.com/sql-injection-attack.shtml</a></li>
</ul>
<p>Článek neberte jako návod na útok (psal bych úplně jiným směrem), ale spíše jako prevenci. Popsané soubory <strong>class.connect.php</strong> a <strong>config.connect.php</strong> jsem popsal v článku <a href="http://www.ekloe.com/2008/12/php-trida-pro-pripojeni-k-postgresql/" rel='nofollow'>PHP třída pro připojení k postgreSQL</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/02/bezpecnost-par-figlu-proti-sql-injection/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress pluginy, bez kterých se neobejdu</title>
		<link>http://www.ekloe.com/2009/01/wordpress-pluginy-bez-kterych-se-neobejdu-1/</link>
		<comments>http://www.ekloe.com/2009/01/wordpress-pluginy-bez-kterych-se-neobejdu-1/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 11:24:25 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.ekloe.com/?p=127</guid>
		<description><![CDATA[Redakční systém WordPress jsem poprvé použil až tady na tomto blogu. Tedy zkušenosti s tímto systémem jsou cca dvouměsíční. Dřív jsem zkoumal Joomla, BB fóra a jiné. Musím říct, že WordPress je zatím podle mě s uživatelského hlediska a možností rozšíření nejlepší. Stoupá u mě na popularitě  Tady je seznam pár pluginů bez kterých [...]]]></description>
			<content:encoded><![CDATA[<p>Redakční systém <a href="http://www.wordpress.org" class="external">WordPress</a> jsem poprvé použil až tady na tomto blogu. Tedy zkušenosti s tímto systémem jsou cca dvouměsíční. Dřív jsem zkoumal Joomla, BB fóra a jiné. Musím říct, že WordPress je zatím podle mě s uživatelského hlediska a možností rozšíření nejlepší. Stoupá u mě na popularitě <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Tady je seznam pár pluginů bez kterých bych se už neobešel.<br />
<span id="more-127"></span><br />
<strong>Pluginy</strong> jsou rozšíření, která dávají redakčnímu systému mnoho funkcí navíc. Většinou tyto pluginy vytváří sami uživatelé podle svých představ a potřeb. Tím je WordPress možný použít téměř na cokoliv (zatím jsem nezkoumal možnosti využití pro e-shop).</p>
<p><strong>All in One SEO</strong><br />
Plugin automaticky optimalizuje SEO (Search Engine Optimization) Vašeho blogu. Výrazně posune výsledky ve vyhledávačích.<br />
Automaticky generuje META tagy<br />
Automaticky optimalizuje titulky stránek</p>
<p><a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/" class="external">Odkaz na stažení</a></p>
<p><strong>Google XML Sitemaps</strong><br />
Další nezbytná záležitost do SEO rodiny. Automaticky vygeneruje XML sitemaps Vašeho blogu. Jakmile vložíte další článek, sitemapa se automaticky aktualizuje. Můžete si nastavit co se má do sitemapy zahrnout.</p>
<p><a href="http://wordpress.org/extend/plugins/google-sitemap-generator/" class="external">Odkaz na stažení:</a></p>
<p><strong>WordPress stats</strong><br />
Pomůže Vám lehce sledovat traffic (návštěvnost) a nejvíce užitečné údaje. Jako je čtenost článků, nejúspěšnější den, odkud návštěvník přišel a jestli z blogu odešel přes některý uvedený odkaz. Nejvyhledávanější výrazy a pomocí kterých výrazů návštěvník našel Váš blog.</p>
<p>Pro tento tento plugin ale musíte mít svůj WordPress API klíč. Ten lze získat jedině registrací na <a href="http://www.wordpress.com" class="external">WordPress.com</a>. Po registraci Vám přijde API klíč v potvrzovací zprávě na email, nebo je přímo uveden v administraci WordPress.com</p>
<p><a href="http://wordpress.org/extend/plugins/stats/" class="external">Odkaz na stažení:</a></p>
<p><strong>Akismet</strong><br />
Tento plugin budete mít pravděpodobně nainstalován současně s Vašim blogem. Stačí jej jen aktivovat. Akismet hlídá komentáře od návštěvníků a snaží se vylučovat spamové zprávy. Podle mě funguje hodně dobře. K používání budete opět potřebovat WordPress.com API klíč. Akismet si i uchováva statistiku o spamech.</p>
<p><a href="http://wordpress.org/extend/plugins/akismet/" class="external">Odkaz na stažení:</a></p>
<p><strong>WP-Ban</strong><br />
Pokud Akismet opakovaně zachytává spamy z nějaké IP adresy, pomocí WP-Ban tuto adresu (i rozsahy IP adres) můžete zablokovat. WP-Ban banuje uživatele podle IP adres.</p>
<p><a href="http://wordpress.org/extend/plugins/wp-ban/" class="external">Odkaz na stažení:</a></p>
<p><strong>WP-Syntax</strong><br />
Hodně užitečný plugin zvlášť pro ty, kteří píší do článku části kódu. WP-Syntax umí zformátovat zdrojový kód do mnoha forem. Např.: php, JavaScript, Javu, c++, C#, bash, python, SQL a mnoho dalších. Ukázkou je i můj článek o <a href="http://www.ekloe.com/2008/12/upload-obrazku-specialne-pro-banany/">uploadování</a>.</p>
<p><a href="http://wordpress.org/extend/plugins/wp-syntax/" class="external">Odkaz na stažení:</a></p>
<p><strong>Dagon Design Sitemap Generator</strong><br />
DDS Generátor vygenereje mapu stránek. Viz.: tady na <a href="http://www.ekloe.com/mapa-stranek/">ekloe.com</a> <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Mapa stránek přímo na webu také zvyšuje úspěšnost ve vyhledávačích.</p>
<p><a href="http://wordpress.org/extend/plugins/sitemap-generator/" class="external">Odkaz na stažení:</a></p>
<p><strong>Similar Posts</strong><br />
Plugin pod každým článkem zobrazí odkazy na podobné články.</p>
<p><a href="http://wordpress.org/extend/plugins/similar-posts/" class="external">Odkaz na stažení:</a></p>
<p><strong>Sideblog Wordpress Plugin</strong><br />
SideBlog poslouží těm, kteří si chtějí na svém blogu psát krátké zprávy a jen je zobrazit v postranní liště. A případně tyto zprávičky vůbec nezahrnovat do hlavní části nebo RSS kanálu.</p>
<p><a href="http://wordpress.org/extend/plugins/sideblog/" class="external">Odkaz na stažení:</a></p>
<p><strong>Search Meter</strong><br />
Vytváří statistiku vyhledávání. Víte jaká klíčová slova uživatelé na stránkách vyhledávají. Která jsou nejvyhledávanější apod. Můžete se tak přizpůsobovat požadavkům uživatelů.</p>
<p><a href="http://wordpress.org/extend/plugins/search-meter/" class="external">Odkaz na stažení:</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/01/wordpress-pluginy-bez-kterych-se-neobejdu-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mamka i taťka používají Kubuntu</title>
		<link>http://www.ekloe.com/2009/01/tatka-i-mamka-pouzivaji-kubuntu/</link>
		<comments>http://www.ekloe.com/2009/01/tatka-i-mamka-pouzivaji-kubuntu/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 23:58:40 +0000</pubDate>
		<dc:creator>LucaS</dc:creator>
		
		<category><![CDATA[Ze života]]></category>

		<guid isPermaLink="false">http://www.ekloe.com/?p=106</guid>
		<description><![CDATA[Nadpis není ani trochu zavádějicí. Minulý rok jsem našim poskládal nový počítač k narozeninám, protože osm let (teď už devět) starý Intel Celeron A 333Ghz, 3,2 Gb HDD, 128 + 64 MB RAM odešel do věčných lovišť, jsem se rozhodl, že jim zkusím podstrčit místo Windows osvědčené Kubuntu. Myslím, že to byla konkrétně verze 7.04 [...]]]></description>
			<content:encoded><![CDATA[<p>Nadpis není ani trochu zavádějicí. Minulý rok jsem našim poskládal nový počítač k narozeninám, protože osm let (teď už devět) starý Intel Celeron A 333Ghz, 3,2 Gb HDD, 128 + 64 MB RAM odešel do věčných lovišť, jsem se rozhodl, že jim zkusím podstrčit místo Windows osvědčené Kubuntu. Myslím, že to byla konkrétně verze 7.04 nebo 6.10 s KDE 3.5.x.<br />
<span id="more-106"></span><br />
Co je to Ubuntu/Kubuntu (<a href="http://www.ubuntu.cz" rel='nofollow' class="external">oficiální text</a>): Ubuntu je operační systém na bázi Linuxu vhodný pro stolní počítače, notebooky i servery. Obsahuje programy pro všechny běžné činnosti na počítači - webový prohlížeč, software na tvorbu dokumentů, tabulek a prezentací, komunikačního klienta pro IM, hry a mnoho dalšího.</p>
<p><img src="http://www.ekloe.com/wp-content/uploads/desktop_thumb-300x225.png" alt="Plocha Kubuntu verze 4.1" title="Plocha Kubuntu verze 4.1" width="300" height="225" class="aligncenter size-medium wp-image-117" /></p>
<div align="center">Plocha Kubuntu s KDE 4.1 (zdroj: www.kubuntu.org)</div>
<p>Důvodů k přechodu jsem měl hned několik. Aby wokna alespoň pár měsíců vydržela relativně čistá a rychlá, používal jsem k ochraně NOD32 s kombinací firewallu ZoneAlarm. Kámen úrazu byl právě ZoneAlarm, který se až příliš často na něco ptal a naši ani netušili co po nich chce. Takže sázka do loterie ALLOW vs. DENY <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Uběhlo dalších pár měsíců a wokna potřebovala opět shodit. Už mě to ani nepřekvapovalo a vše jsem řešil přes zálohu pomocí Norton Ghosta. Obnova woken řádově v minutách, abych si ušetřil práci a čas. Naši používají počítač jen na internet, poštu, icq a skype&#8230; Sem tam nějaký dokument a vtipná videa z internetu. Taťka ještě sleduje přímé přenosy z N.A.S.A., když se něco děje (zatmění, starty raketoplánů)&#8230; Takže změna systému nebyl problém. Neviděl jsem žádné proti. Jen obrovskou výhodu. Žádné potíže se stabilitou a virů z internetu.</p>
<p>Dnes je tomu už více než rok. Naši si na systém zvykli (ze začátku trochu brblali), ale nakonec spokojenost. Přechod na jiný systém je podle mě jen strach z neznáma a odbočení ze zajetých kolejí. Za celý rok nebylo potřeba řešit žádný větší problém. Nepočítám problémy např. s otevřením některých PowerPointových prezentací, které v sobě obsahovaly video nebo některých dokumentů s koncovkou Docx, které OpenOffice ještě neuměl otevřít.<br />
Nebojím se říct, že pokud by se vývoj linuxových distribucí mnohem dřívě věnoval i desktopovým řešením, Microsoft by měl hodně těžké udržet si svoji pozici na prvních místech. To dokazuje i fakt, že linuxové (unixové) systémy byly hlavně určeny pro servery, a proto zejména webové servery běží hlavně na linuxu a mnohem nižší procento jsou wokna.</p>
<p>Při úvaze o přechodu na jiný systém si každý uživatel řekne, že na linuxu nefunguje hodně aplikací na které jsou zvyklí. Dnes už každý druhý program existuje pro více systémů (například skype, Adobe Reader a další), jiné mají zase velmi podobné alternativy, né-li lepší řešení. Další věc je, že většina software je pod záštitou licence GNU (velmi zjednodušeně řečeno zdarma). Tudíž ušetřeno hodně peněz. Když nepočítám licenci za windows, kolik z Vás každý rok platí za licenci na aktualizace pro antivirový program? <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> Jedna z dalších položek, která je pro Microsoft uživatele nezbytná. Microsoft má i svůj vlastní antivirový program, ale za bezpečnost, kterou byste měli dostat už jen koupením licence za windows si musíte ještě připlatit (<a href="http://onecare.live.com/standard/en-us/3/default.htm" rel='nofollow' class="external">Microsoft Live OneCare</a>). Lze využít on-line verzi zdarma pro uživatele Windows XP a betaverzi pro Visty.</p>
<p>Internetový prohlížeč naši používají klasicky <a href="http://www.mozilla-europe.org/cs/firefox/" rel='nofollow' class="external">Mozilla Firefox</a>. Náhradu za ICQ, které pro linux zatím neexistuje (díky bohu, doufám v pád icq protokolu a nastolení pořádku <a href="http://www.jabbim.cz" rel='nofollow' class="external">jabberu</a>) používají <a href="http://kopete.kde.org/screenshots.php" rel='nofollow' class="external">Kopete</a> (integrovaný kecálek v KDE). Pro <a href="http://www.skype.cz" rel='nofollow' class="external">Skype</a>, kterým komunikuji z Irska s našima náhradu potřebuje. K přehrávání videa <a href="http://www.mplayerhq.hu/design7/screen.html" rel='nofollow' class="external">mPlayer</a> a na kancelářské záležitosti <a href="http://www.openoffice.cz" rel='nofollow' class="external">OpenOffice</a>. Naši nejsou nároční uživatelé. Nic víc zatím nepotřebovali. Na všechno jsou alternativy. Jediné co mi teda chybí je verze pro linux Adobe Photoshop a Illustrator. Jako náhradu používám kvalitní <a href="http://www.gimp.org/screenshots/" rel='nofollow' class="external">GIMP</a>. Bohužel má úplně jinou logiku ovládání, a proto je trnem v oku mnoha lidí. Mě zcela určitě.</p>
<p>V linuxu obecně je skvěle řešen systém přidělování práv. Našim jsem vytvořil uživatele bez práv supervisora, a tak se nedostanou do systémových záležitostí. Systém zatím odolává nechtěným zkouškám odolnosti.</p>
<p>Další otázka. Jak je to s češtinou? Kubuntu je plně lokalizován do českého jazyka. Všechny programy, které jsou standardně součástí systému jsou plně v češtině (na výběr je velmi mnoho jazyků). Externí programy zpravidla bývají v angličtině. Jednu dobu měli naši skype v angličtině, než jsem narazil na českou verzi pro linux.</p>
<p>Závěrem bych chtěl říct, že linux není jen pro ajťáky <img src='http://www.ekloe.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> Mamka s taťkou jsou běžní uživatelé!</p>
<p>Jestli chcete linux vyzkoušet, rozhodně doporučuji z mnoha distribucí Kubuntu (Ubuntu). Je zdarma ke stažení z internetu nebo si můžete zdarma nechat poslat originální CD přímo domů. Když bydete chtít Kubuntu pouze vyzkoušet, v počítači nemusíte nic měnit. Systém lze spustit přímo z CD. Stačí jej vložit do počítače před nabootováním (nahráním) windows.</p>
<p>Stáhnout Kubuntu můžete <a href="http://www.kubuntu.org/getkubuntu/download" rel='nofollow' rel='nofollow' class="external">ZDE</a>. Objednat CD Kubuntu zdarma zase <a href="https://shipit.kubuntu.org/" rel='nofollow' rel='nofollow' class="external">tady</a> (eng).<br />
Stáhnout Ubuntu můžete <a href="http://www.ubuntu.cz/ziskejte/stahnout" rel='nofollow' rel='nofollow' class="external">ZDE</a>. Objednat CD Ubuntu zdarma zase <a href="http://www.ubuntu.cz/ziskejte/poslat" rel='nofollow' rel='nofollow' class="external">tady</a> (cz).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ekloe.com/2009/01/tatka-i-mamka-pouzivaji-kubuntu/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
