<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Vojtěch Vondra</title>
	
	<link>http://www.ameeck.net</link>
	<description>postřehy ze světa PHP, použitelnosti a společnosti</description>
	<lastBuildDate>Thu, 09 Sep 2010 07:47:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/vvondra" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="vvondra" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Kontrola syntaxe PHP skriptů</title>
		<link>http://www.ameeck.net/programovani/kontrola-syntaxe-php-skriptu</link>
		<comments>http://www.ameeck.net/programovani/kontrola-syntaxe-php-skriptu#comments</comments>
		<pubDate>Thu, 09 Sep 2010 07:45:09 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=370</guid>
		<description><![CDATA[Na Albeři jsem před týdnem slyšel dobrou historku o tom, jak se muselo počítat s chybama v minulosti. Matfyzák si napsal program, poctivě naděrkoval a strčil do stroje. Po nějaké době chroustání doběhl o dvě patra výše pro výpis chyb a začal na novo. Pořádně si rozmyslel jestli for začne od nuly nebo od jedničky.

Sám [...]]]></description>
			<content:encoded><![CDATA[<p>Na Albeři jsem před týdnem slyšel dobrou historku o tom, jak se muselo počítat s chybama v minulosti. Matfyzák si napsal program, poctivě naděrkoval a strčil do stroje. Po nějaké době chroustání doběhl o dvě patra výše pro výpis chyb a začal na novo. Pořádně si rozmyslel jestli <strong>for</strong> začne od nuly nebo od jedničky.<br />
<span id="more-370"></span><br />
Sám procedurální části kódu v PHP často píšu tak, že si dám dohromady celý kód, a pokud nemám k dispozici IDE, které mi rovnou syntax errory zvýrazní, skript nechám běžet a zjistim, jestli v něm nejsou chyby. Samozřejmě má ten přístup své nevýhody: často mi unikne chybějící čárka či středník v knihovně, kterou nespouštím přímo, nebo prostě mi jeden nebo víc souborů uteče.</p>
<p>Standarní PHP CLI binárka má šikovný parametr -l (lint), který bere jako argument PHP soubor a vypíše, jestli v něm nění nějaký Parser error. Pro pohodlnost lze použít tento příkaz, který projede rekurzivně všechny soubory v současném adresáři a zkontroluje u nich syntaxi:</p>
<div class="wp_syntax">
<div class="code">
<pre>find -type f -name '*.php' -exec php -l {} \; | grep "Parse error"</pre>
</div>
</div>
<p>Výsledkem pak může být třeba:</p>
<div class="wp_syntax">
<div class="code">
<pre>vojta@vvondra-laptop:~/public_html$ sh syntax.sh
PHP Parse error:  syntax error, unexpected T_STRING in ./app/extensions.php on line 10
PHP Parse error:  syntax error, unexpected T_REQUIRE in ./app/bootstrap.php on line 14</pre>
</div>
</div>
<h3>Pomocník automatický</h3>
<p>Ještě šikovnější věc jsem ale viděl v našem repozitáři pro phpBB na GitHubu, <a href="http://github.com/phpbb/phpbb3/blob/develop-olympus/git-tools/hooks/pre-commit">pre-commit hook, který zabrání commitu</a>, pokud je v nějakém souboru syntax error.</p>
<p>To už je jen na vás, jak zpracujete.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/programovani/kontrola-syntaxe-php-skriptu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mýty o bezpečnosti phpBB</title>
		<link>http://www.ameeck.net/postrehy/myty-o-bezpecnosti-phpbb</link>
		<comments>http://www.ameeck.net/postrehy/myty-o-bezpecnosti-phpbb#comments</comments>
		<pubDate>Thu, 12 Aug 2010 10:05:04 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[Postřehy]]></category>
		<category><![CDATA[phpBB]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=361</guid>
		<description><![CDATA[Přes včerejší odkaz na Intervalu s názvem WordPress bezpečnější než phpBB, Joomla a Drupal jsem se dostal k Separatistovi a jeho článku, kde odkazuje na studii od společnosti Qualys.
Jejich přispěvatel totiž publikoval kratší studii o bezpečnosti aplikací, kde pomocí nástroje BlindElephant zjištoval procenta využívaných verzí aplikací a následně z nich vyvodil celkový podíl napadnutelných aplikací [...]]]></description>
			<content:encoded><![CDATA[<p>Přes včerejší odkaz na Intervalu s názvem <a href="http://interval.cz/clanky/wordpress-bezpecnejsi-nez-phpbb-joomla-a-drupal/">WordPress bezpečnější než phpBB, Joomla a Drupal</a> jsem se dostal k Separatistovi a jeho <a href="http://www.separatista.net/wordpress/zajimavosti/jednoducha-automaticka-aktualizace-vyrazne-napomaha-bezpecnosti-webu-pouzivajicich-wordpress/comment-page-1">článku</a>, kde odkazuje na studii od společnosti Qualys.</p>
<p>Jejich přispěvatel totiž publikoval kratší studii o bezpečnosti aplikací, kde pomocí nástroje BlindElephant zjištoval procenta využívaných verzí aplikací a následně z nich vyvodil celkový podíl napadnutelných aplikací oproti všem nainstalovaným.</p>
<p>U phpBB (a nejen u něj, Drupal nebo phpMyAdmin byly také neprávem označené jako nebezpečné) bohužel nedotáhl svoji rešerši příliš daleko a udělal několik klíčových chyb:<br />
<span id="more-361"></span></p>
<ul>
<li>V phpBB 3.0.7 se objevila středně závažná chyba, která mohla přes RSS odkrýt obsah některých jinak nepřístupných příspěvků. Do dvou týdnů byla publikovaná oprava a podíl webů využívajících tuto verzi je reálně v řádu promilí. Opravnou verzi 3.0.7-PL1 do přehledu nezahrnul i přes to, že už byla dlouhou dobu před publikováním studie vydaná.</li>
<li>Navíc poměrně neštastně označil všechny předcházející verze také jako nebezpečné, přestože u nich chyba vůbec neexistovala.</li>
<li>A na závěr míchá dohromady phpBB2 a phpBB3, které nemají společný jediný řádek kódu.</li>
</ul>
<p>phpBB má naopak velmi příznivý záznam o bezpečnostních chybách, Secunia za celou dobu existence phpBB3 zjistila 4 (čtyři!) chyby, z toho 3 málo závažné. Žádní z nich neměla za následek kompromitaci údajů nebo nabourání se do kteréhokoliv fóra. Přestože Qualys nakonec publikovala <a href="https://community.qualys.com/message/1273">opravnou zprávu</a>, souhrny z první již bohužel putují po internetu bez kontroly.<br />
<img src="http://secunia.com/advisories/graph/?type=cri&#038;period=all&#038;prod=17998" alt="Graf popisující počet chyb a jejich závažnost u phpBB3" /></p>
<p>Kontrolovat bezpečnosti webových aplikací a upozornit je na jejich chyby je určitě přínosné. Motat dohromady nesouvisející fakta, neověřit si své informace a publikovat je takto oficiálně už bohužel není. Nakonec srovnání výsledků před opravou a po opravě:<br />
<a href="http://www.ameeck.net/wp-content/uploads/2010/08/phpBB_bezpecnost.jpg"><img src="http://www.ameeck.net/wp-content/uploads/2010/08/phpBB_bezpecnost-300x224.jpg" alt="phpBB_bezpecnost" title="phpBB_bezpecnost" width="300" height="224" class="alignleft size-medium wp-image-363" /></a><br />
A přeci jenom ani po opravě se nedokázal vyhnout chybám. Předpokládá, že verze phpBB 2.0.x jsou zasaženou stejnou chybou, přitom mají úplně jiný kód.<br />
<a href="http://www.ameeck.net/wp-content/uploads/2010/08/Snímek-obrazovky.png"><img src="http://www.ameeck.net/wp-content/uploads/2010/08/Snímek-obrazovky-300x215.png" alt="Snímek obrazovky" title="Snímek obrazovky" width="300" height="215" class="alignleft size-medium wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/postrehy/myty-o-bezpecnosti-phpbb/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nezobrazují se JPEGy v IE a Chromu</title>
		<link>http://www.ameeck.net/programovani/nezobrazuji-se-jpegy-v-ie-a-chromu</link>
		<comments>http://www.ameeck.net/programovani/nezobrazuji-se-jpegy-v-ie-a-chromu#comments</comments>
		<pubDate>Thu, 12 Aug 2010 09:35:05 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=357</guid>
		<description><![CDATA[Na současném projektu jsme dokončili rozhraní pro správu bannerů a klient už nám po několika minutách volal s chybou, že se nahraný obrázek nezobrazí. Podíval jsem se na něj ve Firefoxu a v Opeře a vše v pořádku. Ptám se tedy na prohlížeč a zjištuji, že jde o IE8.
Po chvilce na Google jsem přišel na [...]]]></description>
			<content:encoded><![CDATA[<p>Na současném projektu jsme dokončili rozhraní pro správu bannerů a klient už nám po několika minutách volal s chybou, že se nahraný obrázek nezobrazí. Podíval jsem se na něj ve Firefoxu a v Opeře a vše v pořádku. Ptám se tedy na prohlížeč a zjištuji, že jde o IE8.</p>
<p>Po chvilce na Google jsem přišel na příčinu, která by mě rozhodně dříve nenapadla. Některé (třeba starší IE s tím nemají problém) verze Internet Exploreru a Chromu (snad i starší Firefox byl postižen) mají problém s <strong>renderováním JPEGů uložené s CMYK barvami</strong>.<br />
<span id="more-357"></span><br />
Řešení je snadné, pokud jde o designové prvky na webu, které máte pod palcem, a pokud máte po ruce Photoshop nebo GIMP. U obou shodně přejděte v menu na <em>Obrázek / Image > Režim / Mode</em> a zvolte RGB, GIMP dokonce nic jiného neumí.</p>
<p>Problém je, pokud to uživatelé nahrávají na web. Pak je potřeba obrázek načíst přes GD a znovu uložit. Nejnovější funkce imagecreatefromjpeg() a imagejpeg() to převedou do RGB. GD s CMYK pracovat neumí a nevýhoda tohoto řešení je ztráta kvality při změně barev.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #f9ba37;">$image</span> <span style="color: #fff;">=</span> <span style="color: #0099ff;">imagecreatefromjpeg</span><span style="color: #fff;">&#40;</span><span style="color: #99ff00;">'/cesta/k/souboru'</span><span style="color: #fff;">&#41;</span><span style="color: #fff;">;</span>
<span style="color: #0099ff;">imagejpeg</span><span style="color: #fff;">&#40;</span><span style="color: #f9ba37;">$image</span><span style="color: #fff;">,</span> <span style="color: #99ff00;">'/cesta/k/souboru'</span><span style="color: #fff;">&#41;</span><span style="color: #fff;">;</span></pre></div></div>

<p>Detekovat jestli je obrázek RGB nebo CMYK lze snadno s funkcí getimagesize()</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #f9ba37;">$info</span> <span style="color: #fff;">=</span> <span style="color: #0099ff;">getimagesize</span><span style="color: #fff;">&#40;</span><span style="color: #99ff00;">'/cesta/k/souboru'</span><span style="color: #fff;">&#41;</span><span style="color: #fff;">;</span>
<span style="color: #0099ff;">if</span> <span style="color: #fff;">&#40;</span><span style="color: #0099ff;">sizeof</span><span style="color: #fff;">&#91;</span><span style="color: #f9ba37;">$info</span><span style="color: #fff;">&#91;</span><span style="color: #99ff00;">'channels'</span><span style="color: #fff;">&#93;</span><span style="color: #fff;">&#41;</span> <span style="color: #fff;">==</span> <span style="color: #99ff00;">3</span><span style="color: #fff;">&#41;</span>
<span style="color: #fff;">&#123;</span>
    <span style="color: #0099ff;">echo</span> <span style="color: #99ff00;">'RGB!'</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span>
<span style="color: #0099ff;">else</span> <span style="color: #0099ff;">if</span> <span style="color: #fff;">&#40;</span><span style="color: #0099ff;">sizeof</span><span style="color: #fff;">&#40;</span><span style="color: #f9ba37;">$info</span><span style="color: #fff;">&#91;</span><span style="color: #99ff00;">'channels'</span><span style="color: #fff;">&#93;</span> <span style="color: #fff;">==</span> <span style="color: #99ff00;">4</span><span style="color: #fff;">&#41;</span><span style="color: #fff;">&#41;</span>
<span style="color: #fff;">&#123;</span>
    <span style="color: #0099ff;">echo</span> <span style="color: #99ff00;">'CMYK!'</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/programovani/nezobrazuji-se-jpegy-v-ie-a-chromu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tiskové styly v CSS</title>
		<link>http://www.ameeck.net/html/tiskove-styly-v-css</link>
		<comments>http://www.ameeck.net/html/tiskove-styly-v-css#comments</comments>
		<pubDate>Tue, 27 Apr 2010 19:05:36 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=333</guid>
		<description><![CDATA[V minulém článku jsem nakousl jednu drobnost, která se může hodit při vytváření tiskových stylů: vložení URL za odkaz při tisku. Nedalo mi to a ten stylopis, na kterém jsem pracoval, jsem dotáhnul až do konce. Své postřehy s tvorbou tiskových stylů si pro sebe i pro vás vypíšu přehledně tak, abych vytvořil checklist pro [...]]]></description>
			<content:encoded><![CDATA[<p>V minulém článku jsem nakousl jednu drobnost, která se může hodit při vytváření tiskových stylů: <a href="http://www.ameeck.net/postrehy/pridani-url-za-odkaz-v-tiskovem-stylu">vložení URL za odkaz při tisku</a>. Nedalo mi to a ten stylopis, na kterém jsem pracoval, jsem dotáhnul až do konce. Své postřehy s tvorbou tiskových stylů si pro sebe i pro vás vypíšu přehledně tak, abych vytvořil checklist pro tiskové styly, který by vám měl zajistit funkční a přístupné stránky k tisku.<br />
<span id="more-333"></span></p>
<h3>Zavedení tiskových stylů</h3>
<p>Jak? Jednoduše. Přidat vedle běžného stylu tiskový je otázka zkopírování link tagu a přidání atributu <em>media</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #99ccff;">link</span> <span style="color: #6699ff;">rel</span><span style="color: #66cc66;">=</span><span style="color: #99FF00;">&quot;stylesheet&quot;</span> <span style="color: #6699ff;">type</span><span style="color: #66cc66;">=</span><span style="color: #99FF00;">&quot;text/css&quot;</span> <span style="color: #6699ff;">media</span><span style="color: #66cc66;">=</span><span style="color: #99FF00;">&quot;print&quot;</span> <span style="color: #6699ff;">href</span><span style="color: #66cc66;">=</span><span style="color: #99FF00;">&quot;print.css&quot;</span>&gt;</span></pre></div></div>

<h3>Barvy a fonty</h3>
<p>Moje či vaše webové stránky mohou být černé či modré, červené nebo zelené. Pro papír je ale lepší se držet klasické bílo-černé kombinaci (konkrétně černý text, bílé pozadí).</p>
<p>Na papíru se čtou lépe serifové fonty než sansserifové a také neškodí vyresetovat velikost písma.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">body <span style="color: #fff;">&#123;</span>
  <span style="color: #0099FF;">background</span><span style="color: #fff;">:</span> <span style="color: orange;">#fff</span><span style="color: #fff;">;</span>
  <span style="color: #0099FF;">color</span><span style="color: #fff;">:</span> <span style="color: orange;">#000</span><span style="color: #fff;">;</span>
  <span style="color: #0099FF;">font-family</span><span style="color: #fff;">:</span> <span style="color: #0099FF;">serif</span><span style="color: #fff;">;</span>
  <span style="color: #0099FF;">font-size</span><span style="color: #fff;">:</span> <span style="color: #9f0;"><span style="color: #9f0;">100</span>%</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

<h3>Šířka obsahu</h3>
<p>U fixních layoutů máte obsahový div nastylovaný s pevnou šířkou v pixelech. Pixely jsou pro web super a vždy vám dají očekávaný výsledek, u papíru, pro kterého je stránka k tisku určena tomu tak ale není. Vždy je lepší odstranit horizontální dělení a nechat prohlížeč, aby text &#8220;rozlil do stránky&#8221; podle zvoleného zarovnání textu.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">body <span style="color: #fff;">&#123;</span>
  <span style="color: #0099FF;">width</span><span style="color: #fff;">:</span> <span style="color: #9f0;"><span style="color: #9f0;">100</span>%</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span>
<span style="color: orange;">#content</span><span style="color: #fff;">,</span> <span style="color: orange;">#obsah</span> <span style="color: #fff;">&#123;</span>
  <span style="color: #0099FF;">width</span><span style="color: #fff;">:</span> <span style="color: #0099FF;">auto</span><span style="color: #fff;">;</span>
  <span style="color: #0099FF;">float</span><span style="color: #fff;">:</span> <span style="color: #0099FF;">none</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

<p>Používejte width: auto; nebo šířku v procentech pro všechny blokové elementy s obsahem.</p>
<h3>Skrýt nepotřebný obsah</h3>
<p>Typická situace, kdy si uživatel bude tisknout vaší stránku je taková, kdy bude potřebovat její obsah, tedy text. Navigační prvky jako menu, patičku, do jisté míry hlavičku nebo třeba seznam odkazů můžete s klidem ze stránky vyhodit a nic se nestane. Naopak uživatel bude mít na papíře pouze ty informace, které potřebuje.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: orange;">#menu</span><span style="color: #fff;">,</span> <span style="color: orange;">#nav</span><span style="color: #fff;">,</span> <span style="color: orange;">#footer</span><span style="color: #fff;">,</span> <span style="color: orange;">#links</span> <span style="color: #fff;">&#123;</span>
  <span style="color: #0099FF;">display</span><span style="color: #fff;">:</span> <span style="color: #0099FF;">none</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

<h3>Odkazy</h3>
<p>O odkazech jsem mluvil již <a href="http://www.ameeck.net/postrehy/pridani-url-za-odkaz-v-tiskovem-stylu">v předchozím článku</a>.</p>
<h3>Print-only prvky</h3>
<p>Pro verzi stránky k tisku může být dobré přidat komentář, který počítá s tím, že ho uživatel bude číst na papíře. Může jít o zprávu typu &#8220;Toto je verze stránky pro tisk. Pro další odkazy a články navštivte nás na &#8230;.&#8221;, poděkování za přečtení článku nebo jen drobný easter-egg pro uživatele se zajímavou hláškou.</p>
<p>Jednoduše si na stránce vytvořte div s třídou <em>.print-only</em> a v tiskovém stylu jí nastavte <em>display: block;</em> a v normálním <em>display: none;</em></p>
<h3>(Ne)zalamování textu</h3>
<p>Pokud máte na stránce obsah, u kterého chcete, aby se zobrazoval na další stránce, opět pomůže CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: orange;">#comments</span> <span style="color: #fff;">&#123;</span>
  <span style="color: #0099FF;">page-break-before</span><span style="color: #fff;">:</span> <span style="color: #0099FF;">always</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

<p>Zde konkrétně pro sekci s komentáři. Uživatel si tak může vybrat, jestli si vytiskne pouze první stránky s textem a nebude se mu tam míchat sekce s komentářema, anebo jestli chce vytisknout úplně všechno. Pomocí zalomení mu zjednodušíte omezení rozsahu tisku.</p>
<p>Dejte si také pozor, abyste nevyresetovalo nezalamování po nadpisech. Ve výchozím <a href="http://www.w3.org/TR/CSS2/sample.html">ostylování HTML prvků</a> tato definice už je, umět jí definovat explicitně je ale plus pro každého kodéra:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"> h1<span style="color: #fff;">,</span> h2<span style="color: #fff;">,</span> h3<span style="color: #fff;">,</span> h4<span style="color: #fff;">,</span> h5<span style="color: #fff;">,</span> h6 
<span style="color: #fff;">&#123;</span>
  <span style="color: #0099FF;">page-break-after</span><span style="color: #fff;">:</span> <span style="color: #0099FF;">avoid</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

<p>Nestane se vám tak už, že by na konci jedné stránky byl nadpis a na začátku druhé první odstavec.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/html/tiskove-styly-v-css/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Přidání URL za odkaz v tiskovém stylu</title>
		<link>http://www.ameeck.net/postrehy/pridani-url-za-odkaz-v-tiskovem-stylu</link>
		<comments>http://www.ameeck.net/postrehy/pridani-url-za-odkaz-v-tiskovem-stylu#comments</comments>
		<pubDate>Mon, 26 Apr 2010 19:11:05 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Postřehy]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=330</guid>
		<description><![CDATA[Pokud si pro váš web připravujete tiskové styly (což byste rozhodně měli), může se vám hodit tato drobná finta:

a:after &#123;
  content: &#34; (&#34; attr&#40;href&#41; &#34;) &#34;;
  font-size: 90%;
&#125;

Nyní se za každým odkazem zobrazí v závorkach URL, kam odkaz vede. Pokud má někdo vytištěnou stránku, má jednoduchý způsob jak zjistit, co se skrývá pod [...]]]></description>
			<content:encoded><![CDATA[<p>Pokud si pro váš web připravujete tiskové styly (což byste rozhodně měli), může se vám hodit tato drobná finta:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">a<span style="color: #fff; font-weight: bold;">:after </span><span style="color: #fff;">&#123;</span>
  <span style="color: #0099FF;">content</span><span style="color: #fff;">:</span> <span style="color: #9f0;">&quot; (&quot;</span> attr<span style="color: #fff;">&#40;</span>href<span style="color: #fff;">&#41;</span> <span style="color: #9f0;">&quot;) &quot;</span><span style="color: #fff;">;</span>
  <span style="color: #0099FF;">font-size</span><span style="color: #fff;">:</span> <span style="color: #9f0;"><span style="color: #9f0;">90</span>%</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

<p>Nyní se za každým odkazem zobrazí v závorkach URL, kam odkaz vede. Pokud má někdo vytištěnou stránku, má jednoduchý způsob jak zjistit, co se skrývá pod jednotlivými odkazy. Je dobrý nápad tuto definici omezit pouze na obsahové části stránky, aby se nevložili URL odkazů, které nechcete (e.g. navigace).</p>
<p>Toto řešení funguje ve všech prohlížečích kromě IE 6 a IE 7 (osmá verze už :after selektor podporuje).<br />
<span id="more-330"></span><br />
Zapomněli jsme ale na jednu drobnost, a to pokud jsou odkazy relativní k doméně. Je dobrým nápadem pro takové odkazy předsadit URL, aby se v tiskové verzi zobrazila plnohodnotná adresa:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">a<span style="color: #fff;">&#91;</span>href<span style="color: #fff;">^=</span><span style="color: #9f0;">&quot;/&quot;</span><span style="color: #fff;">&#93;</span><span style="color: #fff; font-weight: bold;">:after </span><span style="color: #fff;">&#123;</span>
	<span style="color: #0099FF;">content</span><span style="color: #fff;">:</span> <span style="color: #9f0;">&quot; (http://www.ameeck.net&quot;</span> attr<span style="color: #fff;">&#40;</span>href<span style="color: #fff;">&#41;</span> <span style="color: #9f0;">&quot;) &quot;</span><span style="color: #fff;">;</span>
	<span style="color: #0099FF;">font-size</span><span style="color: #fff;">:</span> <span style="color: #9f0;"><span style="color: #9f0;">90</span>%</span><span style="color: #fff;">;</span>
<span style="color: #fff;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/postrehy/pridani-url-za-odkaz-v-tiskovem-stylu/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IDF2010 – moje postřehy</title>
		<link>http://www.ameeck.net/postrehy/idf2010-moje-postrehy</link>
		<comments>http://www.ameeck.net/postrehy/idf2010-moje-postrehy#comments</comments>
		<pubDate>Thu, 08 Apr 2010 13:29:06 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Postřehy]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=324</guid>
		<description><![CDATA[Přestože jsem včera stačil dorazit až na půlku přednášky Davida Grudla o webových aplikací, druhá část programu na mě stihla udělat docela dojem. Jednoznačně jsem byl potešený organizací, snad jedině clip-on mikrofony chyběly a brzdilo to některé přednášky. Skvělá byla i spontaneita přednášejících, např. u Jirky Knesla bylo rozhodně zajímavé koukat i na psání kódu [...]]]></description>
			<content:encoded><![CDATA[<p>Přestože jsem včera stačil dorazit až na půlku přednášky Davida Grudla o webových aplikací, druhá část programu na mě stihla udělat docela dojem. Jednoznačně jsem byl potešený organizací, snad jedině clip-on mikrofony chyběly a brzdilo to některé přednášky. Skvělá byla i spontaneita přednášejících, např. u Jirky Knesla bylo rozhodně zajímavé koukat i na psání kódu a přednášku to rozhodně nebrzdilo.</p>
<p>Většina prezentací by si zasloužila hodiny dvě. U Davida Grudla by mi přišla přednáška prázdná. Na to, jak vytvořit v Nette autocomplete by se mohl udělat stránkový tutorial. Chtělo by se to spíše zaměřit na konkrétnější a zajímavější věci.</p>
<p>Až na výjimky vypadali přednášející připraveně, někde mohl být projev plynulejší nebo přednáška mohla být lépe strukturovaná. Honza Král povídající o NoSQL by mohl začátek prezentace udělat přehlednější, byl určen lidem, co neznají základní pojmy u databází a právě pro ty to mohlo být špatně srozumitelné.</p>
<p>Je mi dost líto, že jsem nestihl přednášku D. Steigerwalda o objektech v JavaScriptu, ohlasy u oběda byly docela pozitivní. Pro mě nejpřínosnější byly příklady z praxe od Jirky Knesla, zvlášť co se komunikace týče. Zároveň mě přesvědčil, abych důkladněji se věnoval testům u svých aplikací.<br />
<img alt="" src="http://i.iinfo.cz/images/430/idf-2010-54.jpg" title="Já na IDF (ten blonďatý nahoře)" class="aligncenter" width="450" style="text-align:center;" /><br />
Celkově mi příšlo IDF jako výcuc, který mohl mít na třídenní přednáškovou konferenci se skvělým obsahem. Příště by to chtělo stejnou či lepší úroveň přednášejících, delší a hlubší příspěvky, klidně více specializované. Přednášky by měly konceptuálně navazovat, systém &#8220;od všecho trochu&#8221; mi přijde trochu nešťastný. Vyhozených (studentských) šest stovek to ale nebylo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/postrehy/idf2010-moje-postrehy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jeden den Ivana Děnisoviče – Alexandr Solženicyn</title>
		<link>http://www.ameeck.net/prave-ctu/jeden-den-ivana-denisovice-alexandr-solzenycin</link>
		<comments>http://www.ameeck.net/prave-ctu/jeden-den-ivana-denisovice-alexandr-solzenycin#comments</comments>
		<pubDate>Tue, 09 Mar 2010 21:53:17 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[Právě čtu]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=319</guid>
		<description><![CDATA[Poslední dobou čtu novější díla a autory, jedna z nich je klasické dílo od ruského autora Alexandra Solženycina. Solženycin je trochu netradiční autor, je známý svou tvorbou především z politických důvodů. Popisoval situaci v Sovětském svazu v padesátých letech i jindy a dlouho žil v emigraci. Další jeho známé dílo je Souostroví Gulag.
Netradiční je kvůli [...]]]></description>
			<content:encoded><![CDATA[<p>Poslední dobou čtu novější díla a autory, jedna z nich je klasické dílo od ruského autora Alexandra Solženycina. Solženycin je trochu netradiční autor, je známý svou tvorbou především z politických důvodů. Popisoval situaci v Sovětském svazu v padesátých letech i jindy a dlouho žil v emigraci. Další jeho známé dílo je Souostroví Gulag.</p>
<p>Netradiční je kvůli jeho stylu psání. Text není umělecký, jazykově bohatý nebo stylově vytříbřený. Je strohý, přesto živý, popisný a názorný. Jednoduše sděluje myšlenky svých hrdinů a přímo, bez popisů a zbytečných průtahů popisuje okolí, situace a děj.</p>
<p>Jeden den Ivana Děnisoviče vypráví o jedom dni politického věžně I. D. Šuchova. Je vězněn řadu let v pracovním táboře na Sibiři. Solženycin názorně ukazuje, jak vypadal život vězňu, v jakých podmínkách žili. Nezaujímá k tomu vlastní názor, je na čtenáři, aby si udělal svůj obraz z vylíčené situace.</p>
<p>Klíčovým prvkem knihy jsou <b>hodnoty</b>. Kniha končí jakoby dobře, I.D. se povede ten den spousta věcí (dostane dvě porce polévky, udělají více práce, neonemocní), při bližším pohledu na věc se ale odkrývá smutná skutečnost, kam podobná situace člověka dožene. V knize sám Šuchov zmiňuje, že už ani neví co by se svobodou dělal, že na ní nemá proč myslet, akorát by na to v táboře dojel. Všechny postavy jsou smířeny se svým osudem uržet se naživu uprostřed pustiny.</p>
<blockquote><p>Šuchov neměl ani špetičku tabáku a neměl ani vyhlídku, že by dnes nějaký sehnal dřív než večer. Proto byl při čekání tak napjatý a připadalo mu, že po tom konečku cigarety v tuhle chvíli touží snad víc než po samé svobodě.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/prave-ctu/jeden-den-ivana-denisovice-alexandr-solzenycin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nechci, aby za mě někdo rozhodoval</title>
		<link>http://www.ameeck.net/postrehy/nechci-aby-za-me-nekdo-rozhodoval</link>
		<comments>http://www.ameeck.net/postrehy/nechci-aby-za-me-nekdo-rozhodoval#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:51:50 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[Postřehy]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=302</guid>
		<description><![CDATA[Zdeněk Fojtík, místopředseda svazu odborářů služeb a dopravy, dnes na Aktuálně.cz odpovídal lidem, kteří se zcela rozumně ptali, proč by měli odnášet protesty odborářů oni, když se akorát chtějí dostat do práce.

Místo benefitů si sám naložím se svým platem
Místo hybridního systému odměn s benefity bych vždy preferoval stálý (či proměnný plat), který bych dostal celým [...]]]></description>
			<content:encoded><![CDATA[<p>Zdeněk Fojtík, místopředseda svazu odborářů služeb a dopravy, dnes na <a href="http://aktualne.centrum.cz/ekonomika/prace/clanek.phtml?id=661683&#038;online">Aktuálně.cz odpovídal lidem</a>, kteří se zcela rozumně ptali, proč by měli odnášet protesty odborářů oni, když se akorát chtějí dostat do práce.<br />
<span id="more-302"></span></p>
<h3>Místo benefitů si sám naložím se svým platem</h3>
<p>Místo hybridního systému odměn s benefity bych vždy preferoval stálý (či proměnný plat), který bych dostal celým obnosem, řádně zdanil a sám se rozhodl, jak ho použiju. Nejsme snad v Rusku, abychom dostávali stravenky, protože se nedají propít, umíme si sami zvolit naše potřeby, které nám nejvíce vyhovují. V menších firmách mohou některé benefity fungovat jako motivační a odměňovací program, který opravdu dá člověku benefit nad rámec jeho běžného platu, u velkých společností, které většinou zaštítují zrovna stávkující odbory, si ale berou peníze na benefity opět z položky platů v rozpočtu. </p>
<p>Souhlasím s několika mála prostředky, jako jsou příspěvky na penzi či na spoření, které budou jednou z věcí, která nás za 50 let zachrání od státního bankrotu, s režijkama nebo stravenkama už je to u mě bledší. Hra na panem et circences se dá chvíli hrát, rozhodně se mnoha lidem člověk zavděčí, z dlouhodobého hlediska je to ale naprostá šílenost.</p>
<h3>Stávkujeme i za ostatní zaměstnance</h3>
<p>Podle Fojtíka spustí &#8220;stávku se solidárnosti&#8221;. No to mě po&#8230;těš. Kdo se vás o to prosil? Jakým právem mluvíte za ostatní? Kdo vás k tomu zmocnil? Pokud někdo s vámi bude souhlasit, ať si se svými odbory taky táhne do ulic, neházejte ale špínu i na něj.</p>
<blockquote><p>Vzhledem k tomu, že se běžně ve svém životě potkávám se svými přáteli a známými, mohu Vám říci, že většina firem, ve kterých jsou zaměstnáni, jim benefity (stravování, lázně atd.) poskytuje.</p></blockquote>
<p>Někdo, kdo bere jako reprezentativní vzorek své známé a kamarády rozhodně ztrácí soudnost v projevu svých názorů. Ať si každý řiká co chce, některé si i rád poslechnu, jiné budu ignorovat, vydávat názor svůj za názor ostatních je ale nechutný.</p>
<h3>Stávka by neměla být &#8220;bežný postup&#8221;</h3>
<p>Stávka je poslední možnost, kterou odborobé svazy k vynucení svých požadavků mají. Jako taková by se měla používat s extrémní opatrností a mělo by se zvážit, jestli je opravdu nutná. </p>
<blockquote><p>Vážená paní, vážím si profese, ve které pracujete a chápu, že péče o zdraví a životy pacientů nedovolí stávku provést tak, aby ohrozila jejich životy (přestat pracovat), to však neznamená, že v jiných profesích právo zastavit práci zcela legálně lze, což je zcela běžný postup.</p></blockquote>
<p>V tomto tvrzení se Fojtík snaží naznačit, že je naprosto morální a v pořádku omezit možnost pohybu a práce ostatním lidem, protože jedna skupina obyvatel nesouhlasí s poměrně banální změnou v zákoně. Zákonné to možná je, přesto by se měl dvakrát zastavit než stávku nazve běžným postupem.</p>
<p>Nějak mě ta celá aféra rozhorčila, až jsem se panu Fojtíkovi rozhodl napsat mail, publikuju ho i zde:</p>
<blockquote><p>Dobrý den,</p>
<p>přečetl jsem si váš on-line rozhovor na serveru Aktuálně.cz: http://aktualne.centrum.cz/ekonomika/prace/clanek.phtml?id=661683&#038;online</p>
<p>Rád bych se vás zeptal na několik věcí, které se týkají odpovědí z rozhovoru.</p>
<p>Co mě nejvíce zarazilo je vaše přesvědčení, že zastupujete i zaměstnance z jiných sektorů. Co vás k takovému názoru vede? V rozhovoru jste se mnohokrát oháněl demokracií, vystupovat za ostatní občany bez jejich souhlasů mi přijde jako čin, který jde právě proti principům, které s sebou demokracie nese. Zapojit se do stávky je právo každého zaměstanance v odborech, ať tak ale učiní ze svého osobního rozhodnutí. Těmito lidmi pak můžete svůj záměr zaštiťovat, ostatními ne.</p>
<p>Druhá zásadní věc je význam stávky v občanském prostředí. Stávka je poslední možností odborů a zaměstnanců jak projevit svůj nesouhlas a vynutit si změnu v zákoně. Chápal bych rozhořčenost při případném radikálním rozhodnutí benefity odejmout (třeba i se zvýšením platu a ponechaní rozhodnutí jak naložit se svými prostředky lidem). Přes poměrně usilovné snažení jsem nikde nenašel pádnou argumentaci, která by přesvědčivě vylíčila, čím je současný spor tak zásadní pro zaměstnance. Zneužitím prostředku stávky se akorát znevažuje její síla a význam.</p>
<p>S pozdravem,</p>
<p>Vojtěch Vondra
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/postrehy/nechci-aby-za-me-nekdo-rozhodoval/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Írán: řešení hrozby</title>
		<link>http://www.ameeck.net/postrehy/iran-reseni-hrozby</link>
		<comments>http://www.ameeck.net/postrehy/iran-reseni-hrozby#comments</comments>
		<pubDate>Sat, 20 Feb 2010 20:11:27 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[Postřehy]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=297</guid>
		<description><![CDATA[Na seminární práci do školy jsem zpracoval dnešní situaci v Íránu, dávám svoji práci všanc i on-line pro zájemce.
Resumé
Írán je v dnešní mezinárodní situaci významným bodem konfliktu, který ovlivňuje všechny části světa. Dnešní mocnosti jsou bezradné, jak omezit další pokrok v íránském jaderném programu, který by mohl vést k sestrojení atomové bomby.
Uplatňovány jsou nejrůznější sankce [...]]]></description>
			<content:encoded><![CDATA[<p>Na seminární práci do školy jsem zpracoval dnešní situaci v Íránu, dávám svoji práci všanc i on-line pro zájemce.</p>
<h3>Resumé</h3>
<p>Írán je v dnešní mezinárodní situaci významným bodem konfliktu, který ovlivňuje všechny části světa. Dnešní mocnosti jsou bezradné, jak omezit další pokrok v íránském jaderném programu, který by mohl vést k sestrojení atomové bomby.</p>
<p>Uplatňovány jsou nejrůznější sankce a omezení, které ve všech případech nemají rozhodující význam. Navíc je tlak jednotlivých zemí nejednotný z důvodu ekonomických a politických zájmů zemí, které mají možnost se aktivně zapojit svoji vahou do mezinárodního dění.</p>
<p>Práce poskytuje shrnutí západních zájmů, potenciálních íránských hrozeb a současný přístup zainteresovaných stran.<br />
<span id="more-297"></span><br />
<object style="width:420px;height:297px" ><param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Fdark%2Flayout.xml&amp;showFlipBtn=true&amp;documentId=100221104054-dba5db646cd647a98288f6480125fa3c&amp;docName=iran__hrozby_a_jeji_reseni&amp;username=vvondra&amp;loadingInfoText=Iran%2C%20hrozby%20a%20jeji%20reseni&amp;et=1266749459185&amp;er=86" /><param name="allowfullscreen" value="true"/><param name="menu" value="false"/><embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" style="width:420px;height:297px" flashvars="mode=embed&amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Fdark%2Flayout.xml&amp;showFlipBtn=true&amp;documentId=100221104054-dba5db646cd647a98288f6480125fa3c&amp;docName=iran__hrozby_a_jeji_reseni&amp;username=vvondra&amp;loadingInfoText=Iran%2C%20hrozby%20a%20jeji%20reseni&amp;et=1266749459185&amp;er=86" /></object><br />
<a href='http://www.ameeck.net/wp-content/uploads/2010/02/seminar_mvz_iran.pdf'>Seminární práce v PDF</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/postrehy/iran-reseni-hrozby/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seznam CAPTCHA plug-in pro phpBB</title>
		<link>http://www.ameeck.net/programovani/seznam-captcha-plug-in-pro-phpbb</link>
		<comments>http://www.ameeck.net/programovani/seznam-captcha-plug-in-pro-phpbb#comments</comments>
		<pubDate>Thu, 04 Feb 2010 21:54:23 +0000</pubDate>
		<dc:creator>Vojtěch Vondra</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpBB]]></category>

		<guid isPermaLink="false">http://www.ameeck.net/?p=292</guid>
		<description><![CDATA[S vydáním phpBB 3.0.6 přibyla výrazná nová funkce, možnost vytvořit plug-iny pro alternativní CAPTCHA systémy. Kromě toho Seznam (tim myslím Seznam.cz) vydal už před delší dobou velmi jednoduché API pro čitelnou a použitelnou CAPTCHU. Já se rozhodl ty dvě věci spojit dohromady.

Naštěstí to moc práce není. Rozhraní pro implementaci plug-inu je pouze o využití několika [...]]]></description>
			<content:encoded><![CDATA[<p>S vydáním phpBB 3.0.6 přibyla výrazná nová funkce, možnost vytvořit plug-iny pro alternativní CAPTCHA systémy. Kromě toho Seznam (tim myslím Seznam.cz) vydal už před delší dobou velmi <a href="http://captcha-api.seznam.cz/">jednoduché API</a> pro čitelnou a použitelnou CAPTCHU. Já se rozhodl ty dvě věci spojit dohromady.<br />
<span id="more-292"></span><br />
Naštěstí to moc práce není. Rozhraní pro implementaci plug-inu je pouze o využití několika funkcí definovaných v abstraktní třídě captcha_abstract.php a přizpůsobit kód způsobu kontroly zadaného kódu.</p>
<p>Celý zdroj je k <a href="http://github.com/ameeck/Seznam-CAPTCHA-plug-in-for-phpBB">dispozici na GitHub</a> a je uveřejněný pod MIT licencí. Dejte si ale pozor na <a href="http://captcha-api.seznam.cz/agreement/">smluvní podmínky</a> od Seznamu, které například omezují použití CAPTCHY pro komerční účely. Na webu API najdete celé znění podmínek. Limity pro využití jsou nastaveny následovně: max. 500 dotazů za 10 sekund, nebo 1 000 dotazů za 60 sekund.</p>
<p>CAPTCHA nabízí i odkaz pro přehraní kódu zvukově, což je příjemné pro handicapované uživatele.</p>
<p><a href="http://github.com/ameeck/Seznam-CAPTCHA-plug-in-for-phpBB/downloads">Stáhnout Seznam CAPTCHA plug-in pro phpBB</a><br />
<a href="http://www.phpbb.cz/viewtopic.php?t=18565">Diskuze na phpBB.cz</a></p>
<p>Rozhodně bych uvítal minimálně slovenský překlad, pokud má někdo možnost i jiných, rozhodně dejte vědět.</p>
<p><a href="http://www.ameeck.net/wp-content/uploads/2010/02/register_captcha.png"><img src="http://www.ameeck.net/wp-content/uploads/2010/02/register_captcha-300x147.png" alt="register_captcha" title="register_captcha" width="300" height="147" class="alignleft size-medium wp-image-294" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ameeck.net/programovani/seznam-captcha-plug-in-pro-phpbb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
