<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ZEE.cz</title>
	<atom:link href="http://zee.cz/feed/" rel="self" type="application/rss+xml" />
	<link>http://zee.cz</link>
	<description>weblog o mých projektech</description>
	<lastBuildDate>Fri, 16 Dec 2011 16:48:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Automatická aktualizace WordPressu</title>
		<link>http://zee.cz/2011/08/automaticka-aktualizace-wordpressu/</link>
		<comments>http://zee.cz/2011/08/automaticka-aktualizace-wordpressu/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 10:20:11 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Skripty]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=411</guid>
		<description><![CDATA[Podle statistik rozšíření CMS na internetu z ledna tohoto roku využívá 15% všech webů WordPress. Kdyby tedy hacker objevil ve WordPressu bezpečnostní díru, mohl by teoreticky ovládnout až 15% Internetu. Spoustu lidí se o to již pokusilo a jistě nadále pokouší a komunita vývojářů chyby rychle odstraňuje. Nové verze vychází zhruba jednou za měsíc. Oprava [...]]]></description>
			<content:encoded><![CDATA[<p>Podle <a href="http://w3techs.com/technologies/overview/content_management/all">statistik rozšíření CMS na internetu</a> z ledna tohoto roku využívá 15% všech webů <a href="http://wordpress.org">WordPress</a>. Kdyby tedy hacker objevil ve WordPressu bezpečnostní díru, mohl by teoreticky ovládnout až 15% Internetu. Spoustu lidí se o to <a href="http://www.google.cz/search?q=wordpress+zeroday">již pokusilo</a> a jistě nadále pokouší a komunita vývojářů chyby rychle odstraňuje. Nové verze vychází zhruba jednou za měsíc. Oprava vám ale nepomůže, pokud jí nemáte nainstalovanou <img src='http://zee.cz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Je tedy nutné neustále aktualizovat.</p>
<p>WordPress se dá aktualizovat z administrace, proces ale potřebuje na stažení a rozbalení balíčku místo na disku, kterého se mi na freehostingu nedostává. Člověk se také musí přihlásit a zmáčknout tlačítko. Naštěstí to lze udělat i jinak. Stačí malý skript.</p>
<p>Můj skript stáhne poslední stabilní verze českého WordPressu a vašich pluginů, uloží je do lokálního repozitáře GITu a následně nahraje na FTP pouze ty soubory, které se změnily. K nahrání změněných souborů jsem využil skvělý skript <a href="https://github.com/ezyang/git-ftp">git-ftp.py</a>.</p>
<p>Aby <code>git-ftp.py</code> fungoval, vytvořte ve složce WordPressu soubor <code>.git/ftpdata</code> s následujícím obsahem a doplňte vaše údaje k FTP:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[master]
username=me
password=s00perP4zzw0rd
hostname=ftp.hostname.com
remotepath=/htdocs</pre></div></div>

<p>Připravte si adresář, do kterého se rozbalí WordPress. Já mám <code>WORKDIR</code> nastavenou na <code>/home/kuba/weby/oss/</code>, takže WordPress se rozbalí do <code>/home/kuba/weby/oss/wordpress</code>. Do proměnné <code>PLUGINY</code> uveďte názvy pluginů získané z adres URL jejich webů. Zde je celý skript (<a href="http://zee.cz/wp-content/uploads/wordpress-update.sh_.gz">stáhnout</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Automaticka aktualizace Wordpressu pres FTP</span>
<span style="color: #666666; font-style: italic;">#</span>
&nbsp;
<span style="color: #007800;">WORKDIR</span>=<span style="color: #ff0000;">&quot;/home/kuba/weby/oss/&quot;</span>
<span style="color: #007800;">TMPDIR</span>=<span style="color: #ff0000;">&quot;/tmp/wordpress-update/&quot;</span>
<span style="color: #007800;">PLUGINY</span>=<span style="color: #ff0000;">&quot;w3-total-cache wp-syntax simplemodal-contact-form-smcf lightbox-plus openid&quot;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> echoi <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;\e[1;36m&quot;</span><span style="color: #ff0000;">&quot;$1&quot;</span><span style="color: #ff0000;">&quot;\e[0m&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> stahnoutplugin <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #007800;">PLUGINSVN</span>=http:<span style="color: #000000; font-weight: bold;">//</span>plugins.svn.wordpress.org<span style="color: #000000; font-weight: bold;">/</span>
        <span style="color: #007800;">PLUGINDIR</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$TMPDIR</span>&quot;</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #ff0000;">&quot;$1&quot;</span>
        <span style="color: #007800;">stabilni_verze</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PLUGINSVN</span>&quot;</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #ff0000;">&quot;$1&quot;</span><span style="color: #000000; font-weight: bold;">/</span>tags <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tr</span> <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-V</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tail</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>
        echoi <span style="color: #ff0000;">&quot;Stahuji $1-<span style="color: #007800;">$stabilni_verze</span>&quot;</span>
        <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PLUGINDIR</span>&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PLUGINDIR</span>&quot;</span>
        <span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">co</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PLUGINSVN</span>&quot;</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #ff0000;">&quot;$1&quot;</span><span style="color: #000000; font-weight: bold;">/</span>tags<span style="color: #000000; font-weight: bold;">/</span><span style="color: #ff0000;">&quot;<span style="color: #007800;">$stabilni_verze</span>&quot;</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #660033;">-type</span> d <span style="color: #660033;">-name</span> .svn<span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$stabilni_verze</span>&quot;</span> <span style="color: #ff0000;">&quot;$1&quot;</span>
        <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$WORKDIR</span>&quot;</span><span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>wp-content<span style="color: #000000; font-weight: bold;">/</span>plugins
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$WORKDIR</span>&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> latest-cs_CZ.tar.gz
echoi <span style="color: #ff0000;">&quot;Stahuji aktualni wordpress&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>cs.wordpress.org<span style="color: #000000; font-weight: bold;">/</span>latest-cs_CZ.tar.gz
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> wordpress<span style="color: #000000; font-weight: bold;">/*</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> xvf latest-cs_CZ.tar.gz
<span style="color: #000000; font-weight: bold;">for</span> plugin <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$PLUGINY</span>; <span style="color: #000000; font-weight: bold;">do</span>
        stahnoutplugin <span style="color: #ff0000;">&quot;<span style="color: #007800;">$plugin</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$WORKDIR</span>&quot;</span><span style="color: #000000; font-weight: bold;">/</span>wordpress
echoi <span style="color: #ff0000;">&quot;Mazu zbytecnosti&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> wp-content<span style="color: #000000; font-weight: bold;">/</span>themes<span style="color: #000000; font-weight: bold;">/</span>twenty<span style="color: #000000; font-weight: bold;">*</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> wp-content<span style="color: #000000; font-weight: bold;">/</span>plugins<span style="color: #000000; font-weight: bold;">/*/</span>screenshot-<span style="color: #000000; font-weight: bold;">*</span>
<span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #660033;">-name</span> \<span style="color: #000000; font-weight: bold;">*</span>.txt <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">'{}'</span> \;
<span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #660033;">-name</span> \<span style="color: #000000; font-weight: bold;">*</span>.dev.\<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #ff0000;">'{}'</span> \;
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$TMPDIR</span>&quot;</span>
echoi <span style="color: #ff0000;">&quot;Commituji zmeny&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> add .
<span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-a</span>
echoi <span style="color: #ff0000;">&quot;Nahravam na vzdaleny server&quot;</span>
git-ftp.py</pre></div></div>

<p>O upozornění na nové verze WordPressu se stará moje RSS čtečka se <a href="http://cs.wordpress.org/feed/">speciálním kanálem</a>. Časem by se to celé ale klidně dalo spojit s Cronem a nemusel bych se starat vůbec o nic.</p>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2011/08/automaticka-aktualizace-wordpressu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ukládání coverů do ID3 tagu</title>
		<link>http://zee.cz/2011/05/ukladani-coveru-do-id3-tagu/</link>
		<comments>http://zee.cz/2011/05/ukladani-coveru-do-id3-tagu/#comments</comments>
		<pubDate>Mon, 09 May 2011 09:56:39 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Skripty]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cover]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=399</guid>
		<description><![CDATA[Od verze 2 tagu ID3 lze k souboru MP3 kromě tradičních metadat ukládat i obrázky. Těchto obrázků se využívá se například v iPodu, když se vám při přehrávání písničky zobrazuje cover alba. Hezké. Kvůli tomu jsem vylepšil svůj loňský skript na automatické stahování coverů alb, aby dokázal stažené covery automaticky uložit také do ID3 tagu. [...]]]></description>
			<content:encoded><![CDATA[<p>Od verze 2 tagu ID3 lze k souboru MP3 kromě tradičních metadat ukládat i obrázky. Těchto obrázků se využívá se například v iPodu, když se vám při přehrávání písničky zobrazuje cover alba. Hezké. Kvůli tomu jsem vylepšil svůj loňský skript na automatické stahování coverů alb, aby dokázal stažené covery automaticky uložit také do ID3 tagu.</p>
<p>K vlastnímu tagování používám program <a href="http://eyed3.nicfit.net/">eyeD3</a>. Seznam závislostí se tedy rozrostl na: <a href="http://id3lib.sourceforge.net/">id3lib</a>, <a href="http://eyed3.nicfit.net/">eyeD3</a>, <a href="http://www.imagemagick.org">ImageMagick</a>, <a href="http://www.ruby-lang.org/">Ruby</a>, <a href="http://curl.haxx.se/">cURL</a>.</p>
<p>Novou sadu skriptů stahujte zde: <a href="http://zee.cz/wp-content/uploads/musiccovers.20110509.tar.gz">musiccovers.20110509.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2011/05/ukladani-coveru-do-id3-tagu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ověření schématu databáze</title>
		<link>http://zee.cz/2010/10/overeni-schematu-databaze/</link>
		<comments>http://zee.cz/2010/10/overeni-schematu-databaze/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 22:55:04 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Skripty]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=349</guid>
		<description><![CDATA[Spravuji jistou webovou aplikaci pro nejmenovaného zákazníka. Nedávno se mi v souvislosti s tím stala nepříjemná událost. Při aktualizaci aplikace jsem zapomněl zkopírovat jednu tabulku do databáze. Funkci, která tabulku vyžadovala jsem neotestoval, takže o mnou způsobeném problém jsem se dozvěděl až po týdnu přímo od zákazníka. Řekl jsem si, že by bylo moc pěkné, [...]]]></description>
			<content:encoded><![CDATA[<p>Spravuji jistou webovou aplikaci pro nejmenovaného zákazníka. Nedávno se mi v souvislosti s tím stala nepříjemná událost. Při aktualizaci aplikace jsem zapomněl zkopírovat jednu tabulku do databáze. Funkci, která tabulku vyžadovala jsem neotestoval, takže o mnou způsobeném problém jsem se dozvěděl až po týdnu přímo od zákazníka.</p>
<p>Řekl jsem si, že by bylo moc pěkné, kdyby se mi v okamžiku deploymentu vygeneroval test, který by ověřoval, že databáze má předpokládanou strukturu. Tento test bych pak po aktualizaci aplikace mohl pustit na ostré databázi a ujistil by mě a že jsem na nic nezapomněl. Z mého snažení vyplynul Ruby skript generující PHP test.</p>
<p>Kód naleznete <a href="http://zee.cz/stuff/webmysqltest.rb">zde</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2010/10/overeni-schematu-databaze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloog.cz 2.0 &#8211; odhalení designu</title>
		<link>http://zee.cz/2010/10/bloog-cz-2-0-odhaleni-designu/</link>
		<comments>http://zee.cz/2010/10/bloog-cz-2-0-odhaleni-designu/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 21:04:22 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Bezprizorní]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=321</guid>
		<description><![CDATA[Už delší dobu chystám novou verzi blogportálu a teď se konečně schyluje k jejímu ostrému nasazení. Momentálně vychytávám poslední bugy, čili aktualizaci webu můžete očekávat přibližně za týden. Již nyní si ale můžete prohlédnout nový webdesign. Základní princip návrhu architektury procesoru říká: &#8222;Jednoduchosti pravidelnost&#8220;. Návrh procesoru sice zdánlivě nemá nic společného s webdesignem, faktem ale [...]]]></description>
			<content:encoded><![CDATA[<p>Už delší dobu chystám novou verzi <a href="http://bloog.cz">blogportálu</a> a teď se konečně schyluje k jejímu ostrému nasazení. Momentálně vychytávám poslední bugy, čili aktualizaci webu můžete očekávat přibližně za týden. Již nyní si ale můžete prohlédnout nový webdesign.</p>
<p>Základní princip návrhu architektury procesoru říká: &#8222;Jednoduchosti <img class="alignnone" title="ekvivalence" src="http://tex.beta.bloog.cz/?\Leftrightarrow" alt="" width="16" height="10" /> pravidelnost&#8220;. Návrh procesoru sice zdánlivě nemá nic společného s webdesignem, faktem ale zůstává, že se mi líbí jednoduché elegantní tvary. Zatímco design první verze působil nesourodě a zmateně, nový návrh je přehledný a pravidelný. Bezpochyby lépe vypadá horní část stránky, do které se mi povedlo zakomponovat Matesovo logo.</p>
<p>Však posu﻿ďte sami:</p>
<div id="attachment_324" class="wp-caption alignnone" style="width: 610px"><a href="http://zee.cz/wp-content/uploads/a.jpg" rel="lightbox[321]" title="Verze 1"><img class="size-full wp-image-324" title="Verze 1" src="http://zee.cz/wp-content/uploads/a.jpg" alt="Blogportál Bloog.cz verze 1.0alfa" width="600" height="305" /></a><p class="wp-caption-text">Verze 1.0alfa (2006)</p></div>
<div id="attachment_325" class="wp-caption alignnone" style="width: 610px"><a href="http://zee.cz/wp-content/uploads/b.jpg" rel="lightbox[321]" title="Verze 2.0"><img class="size-full wp-image-325" title="Verze 2.0" src="http://zee.cz/wp-content/uploads/b.jpg" alt="Verze 2.0" width="600" height="304" /></a><p class="wp-caption-text">Verze 2.0 (2010)</p></div>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2010/10/bloog-cz-2-0-odhaleni-designu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Covery alb</title>
		<link>http://zee.cz/2010/09/covery-alb/</link>
		<comments>http://zee.cz/2010/09/covery-alb/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 12:30:39 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Skripty]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cover]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=283</guid>
		<description><![CDATA[Potrpím si na detaily, proto je pro mě velice důležité mít ke všem písničkám příslušné covery alb. Tyto covery rád vidím jako náhledy složek při procházení ve správci souborů. Napsal jsem si tedy sadu skriptů Ve Windows se náhled složky uchovává v souboru folder.jpg. Na Freedesktopu pak podle specifikace Desktop Entry musí ve složce existovat [...]]]></description>
			<content:encoded><![CDATA[<p>Potrpím si na detaily, proto je pro mě velice důležité mít ke všem písničkám příslušné <a href="http://en.wikipedia.org/wiki/Album_cover">covery</a> alb. Tyto covery rád vidím jako náhledy složek při procházení ve správci souborů. Napsal jsem si tedy sadu skriptů <img src='http://zee.cz/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Ve Windows se náhled složky uchovává v souboru<em> folder.jpg</em>. Na <a href="http://www.freedesktop.org/">Freedesktopu</a> pak podle <a href="http://standards.freedesktop.org/desktop-entry-spec/latest/">specifikace Desktop Entry</a> musí ve složce existovat soubor<em> .directory</em>, ve kterém je definováno, který PNG obrázek použít jako náhled dané složky. Zvolil jsem si, že na Freedesktopu mám náhled vždy uložen ve skrytém souboru <em>.folder.png</em>.</p>
<p>Práci jsem rozdělil do tří skriptů:</p>
<ol>
<li><strong>Zjištění URL coveru</strong> podle jména umělce a názvu alba. Tento skript (<em>getcover.rb</em>) se připojuje k Last.fm API, které se stará o zbytek <img src='http://zee.cz/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Původně se jedná o dílo <a href="http://blog.sosedoff.com/2009/02/15/fetching-album-covers-from-lastfm-api/">Dana Sosedoffa</a>.</li>
<li><strong>Přejmenování obrázku</strong> na <em>folder.jpg</em> pro Windows Media Player, vytvoření obrázku <em>.folder.png</em> a souboru <em>.directory</em> pro Freedesktop. Skript (<em>mkfolderimg.sh</em>) lze využít také např. pro generování náhledů k fotoalbům.</li>
<li>Skript, který <strong>projde všechny alba</strong>, pro každé album umístí cover podle specifikací Freedesktopu nebo WMP a případně ho stáhne z internetu (<em>mkmusiccovers.sh</em>). Implementace nejdřív vyhledá všechny hudební soubory a sestaví seznam alb, jakožto kandidátů na vytvoření coveru. Poté prochází jednotlivá alba a pokouší se sestavit náhledy. Pokud ve složce alba není žádný obrázek, stáhne cover z URL získané pomocí 1. skriptu.</li>
</ol>
<p>Všechno pěkně zabalené si stáhněte zde: <em><a href="http://zee.cz/wp-content/uploads/musiccovers.20100913.tar.gz">musiccovers.20100913.tar.gz</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2010/09/covery-alb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Upozornění na nové maily</title>
		<link>http://zee.cz/2010/08/upozorneni-na-nove-maily/</link>
		<comments>http://zee.cz/2010/08/upozorneni-na-nove-maily/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 17:07:27 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Skripty]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=255</guid>
		<description><![CDATA[Používám Gmail již dlouhou dobu a štve mě, že neexistuje vhodný minimalistický program pro kontrolování příchozích emailů v KDE. Zkusil jsem KCheckGmail, ale nepodařilo se mi ho zprovoznit. Aplikace běží v systemtray, takže zabírá místo v paměti a pixely na ploše. Napsal jsem si tedy skript, který kontroluje příchozí emaily a zobrazuje malé okénko v [...]]]></description>
			<content:encoded><![CDATA[<p>Používám Gmail již dlouhou dobu a štve mě, že neexistuje vhodný minimalistický program pro kontrolování příchozích emailů v KDE. Zkusil jsem KCheckGmail, ale nepodařilo se mi ho zprovoznit. Aplikace běží v systemtray, takže zabírá místo v paměti a pixely na ploše.</p>
<p>Napsal jsem si tedy skript, který kontroluje příchozí emaily a zobrazuje malé okénko v případě nové nepřečtené zprávy. Použil jsem Ruby, protože v něm trochu umím, v kombinaci s Qt, mou oblíbenou grafickou knihovnou. Skript spouští démon Cron pravidelně každých 5 minut.</p>
<p>Prohlédněte si zdrojový kód: <a href="http://zee.cz/wp-content/uploads/checkgmail.rb">checkgmail.rb</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2010/08/upozorneni-na-nove-maily/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zvýšení produktivity vývoje webů</title>
		<link>http://zee.cz/2009/12/zvyseni-produktivity-vyvoje-webu/</link>
		<comments>http://zee.cz/2009/12/zvyseni-produktivity-vyvoje-webu/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 12:59:12 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Skripty]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=220</guid>
		<description><![CDATA[Při vývoji webů jsem vždy pracoval na adrese http://localhost/projekt. Naštvalo mě ale, že když web používá mod_rewrite, nemusí kvůli podadresáři fungovat přepisování URL správně. Začal jsem tedy vždycky linkovat projekt na adresu http://localhost. Když se k tomuto přidá fakt, že často potřebuji importovat databáze, neustále všechno zálohovat a exportovat, musím napsat spoustu příkazů, aniž cokoliv [...]]]></description>
			<content:encoded><![CDATA[<p>Při vývoji webů jsem vždy pracoval na adrese http://localhost/projekt. Naštvalo mě ale, že když web používá mod_rewrite, nemusí kvůli podadresáři fungovat přepisování URL správně. Začal jsem tedy vždycky linkovat projekt na adresu http://localhost. Když se k tomuto přidá fakt, že často potřebuji importovat databáze, neustále všechno zálohovat a exportovat, musím napsat spoustu příkazů, aniž cokoliv naprogramuji. Důležitý je také fakt, že nesmím nic zkazit. Rozhodl jsem se tedy, že rozšířím svůj starý skript rmbackups na export tar archivu webu a napíšu si sadu skriptů pro práci s weby. Vzor mám ve <a href="http://techbase.kde.org/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc">skriptech pro práci se zdrojovými soubory v KDE</a>.</p>
<p>Myslím, že se mi skripty docela povedly. Základní nastavení se provádí v hlavičce souboru. Práce s příkazy je jednoduchá:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># před začátkem práce pustím</span>
wds projekt
<span style="color: #666666; font-style: italic;"># případně pokud chci importovat databázi např. z ostrého serveru</span>
wds projekt <span style="color: #660033;">-db</span> import.sql
<span style="color: #666666; font-style: italic;"># potom, když chci zazálohovat aktuální stav projektu, pustím</span>
wdtag název_zálohy
<span style="color: #666666; font-style: italic;"># po ukončení práce na projektu program jednoduše</span>
<span style="color: #666666; font-style: italic;"># exportuji buď do tar.bz2 archivu</span>
wde <span style="color: #c20cb9; font-weight: bold;">tar</span>
<span style="color: #666666; font-style: italic;"># nebo když budu soubory uploadovat, chci</span>
<span style="color: #666666; font-style: italic;"># aby se mi zdrojové soubory nakopírovaly do nějaké dočasné složky</span>
wde files</pre></div></div>

<p>Použití je na vlastní nebezpečí. Skript obsahuje několik <code>rm -rf</code>, takže neodborný zásah může vést ke ztrátě Vašich dokumentů.</p>
<p><a href="http://zee.cz/stuff/webdevelopscript.sh">Stáhnout</a></p>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2009/12/zvyseni-produktivity-vyvoje-webu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nápady na vývoj Konqueroru</title>
		<link>http://zee.cz/2009/11/napady-konqueror/</link>
		<comments>http://zee.cz/2009/11/napady-konqueror/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 17:12:01 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Konqueror]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=216</guid>
		<description><![CDATA[Objevil jsem chybu v modulu kdewebkit, která způsobila pád konqueroru z flashplayeru. Bug to byl velice hnusný, protože nevracel žádný použitelný crashreport. Po víkendu bughuntingu jsem zjistil, že chybu způsobuje AdblocK, který zablokuje reklamu vkládanou youtubem do videí. Bug byl odhalen, ale než se tak stalo, nastavil jsem si vcelku pěkné prostředí pro vývoj KDE [...]]]></description>
			<content:encoded><![CDATA[<p>Objevil jsem chybu v modulu kdewebkit, která způsobila pád konqueroru z flashplayeru. Bug to byl velice hnusný, protože nevracel žádný použitelný crashreport. Po víkendu bughuntingu jsem zjistil, že chybu způsobuje AdblocK, který zablokuje reklamu vkládanou youtubem do videí.</p>
<p>Bug byl odhalen, ale než se tak stalo, nastavil jsem si vcelku pěkné prostředí pro vývoj KDE a zkompiloval SVN verzi jeho knihoven. Tak si říkám, že bych mohl taky něco naprogramovat.</p>
<p>Mám následující nápady:</p>
<ul>
<li>Fulltextové hledání v konqueror shortcuts history
<ul>
<li>když napíšu &#8222;seznam&#8220;, chci aby mi to našlo, že jsem hledal &#8222;g seznam&#8220; (nebo to může být jak v opeře -nenajde to g seznam, ale v historii prohlížení to najde googlesearch seznam)</li>
<li>když napíšu &#8222;g máš&#8220;, chci, aby mi to našlo &#8222;g ahoj jak se máš&#8220;</li>
<li>když napíšu &#8222;g seznam&#8220;, chci, aby mi to našlo, že jsem hledal &#8222;j seznam&#8220;</li>
</ul>
</li>
</ul>
<ul>
<li>FastDial pro konqueror? To bude asi složité.
<ul>
<li>využití webthumbnails z <a href="http://gitorious.org/project-silk/project-silk/trees/master/webthumbnails">project-silk</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2009/11/napady-konqueror/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ještě k Tele3</title>
		<link>http://zee.cz/2009/10/jeste-k-tele3/</link>
		<comments>http://zee.cz/2009/10/jeste-k-tele3/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 15:26:15 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Bezprizorní]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=213</guid>
		<description><![CDATA[Ukázalo se, že pánové z tele3 .cz nejsou ohledně databází tak oškliví, jak jsem popisoval v příšpěvku Trable s hostingem. Osobně mě kontaktovali a nabídli freehosting databáze. Za to jim děkuji.]]></description>
			<content:encoded><![CDATA[<p>Ukázalo se, že pánové z tele3 .cz nejsou ohledně databází tak oškliví, jak jsem popisoval v <a href="http://zee.cz/2009/09/trable-s-hostingem/">příšpěvku Trable s hostingem</a>. Osobně mě kontaktovali a nabídli freehosting databáze. Za to jim děkuji.</p>
]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2009/10/jeste-k-tele3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pacman da Pampuch</title>
		<link>http://zee.cz/2009/09/pacman-da-pampuch/</link>
		<comments>http://zee.cz/2009/09/pacman-da-pampuch/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 21:43:18 +0000</pubDate>
		<dc:creator>Jakub Horák</dc:creator>
				<category><![CDATA[Pacman]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://zee.cz/?p=196</guid>
		<description><![CDATA[Pacmana ovládáte šipkami. Cílem je získat co nejvyšší skóre, čehož lze dosáhnout jezením žlutých puntíků. Když sníte všechno jídlo, postupujete do dalšího levelu. Po mapě vás honí duchové, na které si musíte dávat pozor, protože máte jen 3 životy. Když Pacman sní modrý puntík, získá na 10 vteřin schopnost zabít příšery. Pokyny pro Windows Stáhněte [...]]]></description>
			<content:encoded><![CDATA[<p>Pacmana ovládáte šipkami. Cílem je získat co nejvyšší skóre, čehož lze dosáhnout jezením žlutých puntíků. Když sníte všechno jídlo, postupujete do dalšího levelu. Po mapě vás honí duchové, na které si musíte dávat pozor, protože máte jen 3 životy. Když Pacman sní modrý puntík, získá na 10 vteřin schopnost zabít příšery.</p>
<h2></h2>
<h2>Pokyny pro Windows</h2>
<ol>
<li>Stáhněte <a href="http://space.bloog.cz/pacman-pr1-bin.zip">zip soubor</a> (22.8MB)</li>
<li>Rozbalte</li>
<li>Pusťte pacman.exe</li>
</ol>
<h2>Pokyny pro Unix</h2>
<ol>
<li>Stáhněte <a href="http://space.bloog.cz/pacman-pr1-src.tar.gz">zdrojový kód</a> (2.5MB)</li>
<li>Zkompilujte, nainstalujte a spusťte pomocí příkazů:</li>
</ol>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ qmake
$ <span style="color: #c20cb9; font-weight: bold;">make</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span>
$ bin<span style="color: #000000; font-weight: bold;">/</span>pacman</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://zee.cz/2009/09/pacman-da-pampuch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (Feed is rejected)
Page Caching using disk: enhanced

Served from: zee.cz @ 2012-02-23 07:36:34 -->
