Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
786 lines (403 sloc) 29.6 KB
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<head>
<meta charset="utf-8">
<title>Prskavčí blog</title>
<meta name="author" content="Ladislav Prskavec">
<meta name="description" content="Tato novinka je dostupná v poslední verzi Dockeru 17.05, musíte mít Edge edici a se zapnutými experimentálním funkcemi, ale objeví se to v další &hellip;">
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="http://blog.prskavec.net/">
<link href="/favicon.png" rel="icon">
<link href="/stylesheets/all.css?v=1412111641" media="screen, projection" rel="stylesheet" type="text/css">
<link href="/feed/index.html" rel="alternate" title="Prskavčí blog" type="application/atom+xml">
<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700' rel='stylesheet' type='text/css'>
<meta name="google-site-verification" content="mepQHhq6JPqzvIjErdB-A6hp3UKAYIlYHN7xPUL8JUM" />
</head>
<body >
<header role="banner"><hgroup>
</hgroup>
</header>
<nav role="navigation"><ul class="subscription" data-subscription="rss">
<li><a href="/feed/index.html" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
</ul>
<form action="http://google.com/search" method="get">
<fieldset role="search">
<input type="hidden" name="q" value="site:blog.prskavec.net" />
<input class="search" type="text" name="q" results="0" placeholder="Search"/>
</fieldset>
</form>
<ul class="main-navigation">
<li><a href="/">Blog</a></li>
<li><a href="/blog/archives">Archív</a></li>
<li><a href="/prednasky">Přednášky</a></li>
<li><a href="/skoleni-a-kurzy">Školení a kurzy</a></li>
<li><a href="/kontakt">Kontakt</a></li>
</ul>
</nav>
<div id="main">
<div id="content">
<div class="blog-index">
<article>
<header>
<h1 class="entry-title"><a href="/2017/04/docker-multi-stage-build/">Docker - multi stage build</a></h1>
<p class="meta">
<time datetime="2017-04-21T08:10:00-05:00" pubdate data-updated="true">21. 04. 2017</time>
</p>
</header>
<div class="entry-content"><p>Tato novinka je dostupná v poslední verzi Dockeru 17.05, musíte mít <a href="https://docs.docker.com/docker-for-mac/install/#download-docker-for-mac">Edge edici</a> a se zapnutými experimentálním funkcemi, ale objeví se to v další stabilní verzi. Je pro jistotu tady je výpis z mého <code>docker version</code>.</p>
<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ docker version
</span><span class='line'>Client:
</span><span class='line'> Version: 17.05.0-ce-rc1
</span><span class='line'> API version: 1.29
</span><span class='line'> Go version: go1.7.5
</span><span class='line'> Git commit: 2878a85
</span><span class='line'> Built: Tue Apr 11 20:55:05 2017
</span><span class='line'> OS/Arch: darwin/amd64
</span><span class='line'>
</span><span class='line'>Server:
</span><span class='line'> Version: 17.05.0-ce-rc1
</span><span class='line'> API version: 1.29 (minimum version 1.12)
</span><span class='line'> Go version: go1.7.5
</span><span class='line'> Git commit: 2878a85
</span><span class='line'> Built: Tue Apr 11 20:55:05 2017
</span><span class='line'> OS/Arch: linux/amd64
</span><span class='line'> Experimental: true</span></code></pre></td></tr></table></div></figure>
</div>
<footer>
<a rel="full-article" href="/2017/04/docker-multi-stage-build/">Dále &rarr;</a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/12/jenkins-declarative-pipelines/">Jenkins Declarative Pipelines</a></h1>
<p class="meta">
<time datetime="2016-12-20T16:52:00-06:00" pubdate data-updated="true">20. 12. 2016</time>
</p>
</header>
<div class="entry-content"><p>Dnes Jenkins <a href="https://jenkins.io/blog/2016/12/19/declarative-pipeline-beta/">zveřejnil betu</a> nového formátu pro popis Continues Delivery Pipelines.</p>
<p>Pipeline se serie kroků, které vám dovolí orchestovat práci, kterou potřebujete k buildu, testovaní a nasazení aplikace. Pipelines jsou definovány v souboru <code>Jenkinsfile</code> a je uložen v
kořenovém adresáři repozitáře projektu.</p>
</div>
<footer>
<a rel="full-article" href="/2016/12/jenkins-declarative-pipelines/">Dále &rarr;</a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/10/jenkins-2-dot-0-novinky-a-vylepseni-2-dot-cast/">Jenkins 2.0 - novinky a vylepšení - 2.část</a></h1>
<p class="meta">
<time datetime="2016-10-31T10:26:00-05:00" pubdate data-updated="true">31. 10. 2016</time>
</p>
</header>
<div class="entry-content"><p>V minulé části jsem probíral proč je důležité mít definice v souboru a proč potřebujeme Continues Delivery Pipelines.</p>
<p>V tomto příspěvku se budu věnovat dalším bodům:</p>
<ul>
<li>distributed job across multiple nodes</li>
<li>autoscaling on traffic with lowest possible price</li>
<li>solution for caching for installations</li>
<li>docker support</li>
<li>matrix builds</li>
</ul>
<p>V Jenkinsu je podpora pro distribuované agenty, dnes můžete mít jednotlivé stroje v AWS (pomocí ec2, ec2-fleet pluginů), OpenStack, Docker, Kubernetes apod.</p>
<p>Aby jste byli schopni dosáhnou kvalitního autoscalingu za velmi dobrou cenu dají se velmi dobře využít <a href="https://aws.amazon.com/ec2/spot/">spot instance</a> od AWS. Můžete ušetřit až 90% nákladů oproti normálním instancím.</p>
</div>
<footer>
<a rel="full-article" href="/2016/10/jenkins-2-dot-0-novinky-a-vylepseni-2-dot-cast/">Dále &rarr;</a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/10/jenkins-2-dot-0-novinky-a-vylepseni/">Jenkins 2.0 - novinky a vylepšení</a></h1>
<p class="meta">
<time datetime="2016-10-26T19:02:00-05:00" pubdate data-updated="true">26. 10. 2016</time>
</p>
</header>
<div class="entry-content"><p>Jenkins je nejznámější řešení na Continues Integration, který existuje už řadu let. Od září je venku konečně verze 2.x (aktuálně 2.19.1 LTS), která obsahuje několik zásadních novinek.</p>
<p>Jenkins používám řadu let a také ho <a href="/skoleni-a-kurzy/">školím ve firmách</a> co chtějí toto řešení nasadit. Před 2 lety jsem si řekl, že není Jenkins moc dobrá cesta. Žádné použitelné novinky se dlouho neobjevovali a vůbec se nezlepšovalo použití pro větší nasazení Jenkinusů ve firmách.</p>
</div>
<footer>
<a rel="full-article" href="/2016/10/jenkins-2-dot-0-novinky-a-vylepseni/">Dále &rarr;</a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/10/prednaska-o-sre-na-devops-meetupu/">Přednáška o SRE na DevOPS meetupu</a></h1>
<p class="meta">
<time datetime="2016-10-17T08:22:00-05:00" pubdate data-updated="true">17. 10. 2016</time>
</p>
</header>
<div class="entry-content"><p>O <a href="http://blog.prskavec.net/2016/03/co-to-je-sre/">SRE</a> ve startup budu mluvit 31. řijna na
<a href="https://www.meetup.com/Prague-DevOps-Meetup/events/233883552/">DevOps Meetupu</a>.</p>
<p>Pokud vás zajímá rozdíl mezi SRE a DevOps a o tom jak se liší SRE v Google, Facebooku, LinkendIn nebo Microsoftu a ve startatup jako je <a href="https://apiary.io">Apiary</a>, přijděte si o tom popovídat.</p>
</div>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/07/srecon-16-europe/">SREcon&#8217;16 Europe</a></h1>
<p class="meta">
<time datetime="2016-07-14T08:13:00-05:00" pubdate data-updated="true">14. 07. 2016</time>
</p>
</header>
<div class="entry-content"><p>Letošní <a href="https://www.usenix.org/conference/srecon16europe">SREcon</a> byl zase v Dublinu. Od 11.7. do 13.7. se zde setkali velcí hráči (Google, Facebook, Microsoft, Amazon) s těmi menšími a vyměňovali si spoustu zkušeností. Letos jsem se mohl poprvé zúčastnit. Nebyl jsem z ČR sám, zastoupení měli Avast, Seznam nebo Skype či Algolia. Dohromady asi 5 lidí.
Konference byla vyprodaná a hodně míst měli lidé z Googlu a pokud vás zajímalo jak se pracuje v Dublinském Googlu nebo Facebooku mohli jste si o tom s lidmi promluvit.
Celá konference byla ve 4 sálech a to jeden hlavní, který se po keynote rozdělil na dva a potom poslední dva byli hlavně pro workshopy a lighting talky.</p>
<h2>Co to SRE je?</h2>
<p>Pokud nevíte <a href="http://blog.prskavec.net/2016/03/co-to-je-sre/">co to je SRE</a>, tak kromě mého článku existuje skvělá kniha <a href="http://shop.oreilly.com/product/0636920041528.do">Site Reliability Engineering</a> od lidí z Googlu, kde se všechno detailně vysvětluje a skoro každý přenášející něco z knihy citoval. Je to taková bible SRE a vůbec první kniha zastřešujíc tento obor.</p>
</div>
<footer>
<a rel="full-article" href="/2016/07/srecon-16-europe/">Dále &rarr;</a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/06/serverless-jako-neco-vic-nez-docker/">Serverless jako něco víc než Docker</a></h1>
<p class="meta">
<time datetime="2016-06-06T13:50:00-05:00" pubdate data-updated="true">06. 06. 2016</time>
</p>
</header>
<div class="entry-content"><h2>Serverless</h2>
<p>Zkusím popsat co je to serverless trochu lidsky. Samotné bez serveru je asi moc široký pojem. Pokud se podíváte na <a href="https://github.com/anaibol/awesome-serverless">Awesome Serverless</a> najdete zde všechno možné od databází jako <a href="https://firebase.google.com/">Firebase</a>, <a href="http://hood.ie/">Hoodie</a>, které poskytují frontendovým aplikacím vše co potřebují k běhu, až k systémům, které vám umožňují více než stávající řešení na principu virtuálních serverů. O těch se <a href="https://twitter.com/search?q=%23serverless&amp;src=typd&amp;lang=en">hodně mluví</a> a nejstarší z nich je <a href="https://aws.amazon.com/lambda/details/">Amazon Web Service Lambda</a>.</p>
<p>AWS příšlo se základním systémem v roce <a href="https://aws.amazon.com/blogs/aws/run-code-cloud/">2014</a> a postupně to rozšiřovali, přidali v roce 2015 <a href="https://aws.amazon.com/blogs/aws/amazon-api-gateway-build-and-run-scalable-application-backends/">AWS Gateway</a> a dnes je systém celkem dobře použitelný a vzniklo i několik frameworků (<a href="http://serverless.com/">Serverless</a>, <a href="http://apex.run/">Apex</a> a <a href="http://thenewstack.io/amazon-debuts-flourish-runtime-application-model-serverless-computing/">Flourish</a>).</p>
<p>Amazon, ale není jediný kdo má podobný systém. Dnes je k dispozici těch systémů několik.</p>
<ul>
<li><a href="http://www.ibm.com/cloud-computing/bluemix/openwhisk/">IBM Bluemix OpenWhisk</a> (únor 2016, early access)</li>
<li><a href="https://cloud.google.com/functions/">Google Cloud Functions</a> (únor 2016, alfa)</li>
<li><a href="https://azure.microsoft.com/en-us/services/functions/">Microsoft Azure Functions</a> (březen 2016, in preview)</li>
</ul>
<p>Jak vidíte kromě AWS, ale jsou ostatní spíše na začátku, ale za pár let v tom bude dobrá konkurence. Zvláště je důležité dořešit věci o které se snaží frameworky a to zjednodušit vývojáři nastavení samotné infrastruktury, verzování aplikace a prostředí do kterých nasazujete.</p>
<h2>Proč by mě to mělo zajímat?</h2>
<p>Dnes se můžete na Lambdu koukat jako na něco co umí pustit kód v NodeJS, Pythonu nebo Javě. Ale hlavní síla je v kombinaci s dalšími AWS službami, ze kterých můžete vytvořit obří velmi dobře škálující aplikaci za velmi nízkých nákladů pro provoz resp. závislé na tom co opravdu aplikace dělá. Skoro zdarma dostanete neprodukční prostředí, které můžete mít stejné jako to produkční. Je potřeba samozřejmě aplikace navrhovat trochu jinak a ne pro každé použití je to správná cesta, ale na spoustu věcí to je zajímé.</p>
<p>Například si můžete udělat vlastní <a href="https://github.com/serverless/serverless-graphql-blog">GraphQL server</a> nebo <a href="https://aws.amazon.com/blogs/aws/new-slack-integration-blueprints-for-aws-lambda/">Slack bot</a>.</p>
<p>Před nedávnem se konala i <a href="http://serverlessconf.io/">specializovaná konference</a> na toto téma.</p>
<h2>PragueJS o Serverless</h2>
<p>Pokud vás to zaujalo, přijďte si poslechnout nejen moji přednášku o Serverless na meetup 30.6.2016 do kanceláří STRV. Registrace je na <a href="https://www.eventbrite.com/e/serverless-architecture-and-usage-tickets-25563194202?utm_source=prskavec-blog">eventbrite</a>.</p>
</div>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/03/co-to-je-sre/">Co to je SRE?</a></h1>
<p class="meta">
<time datetime="2016-03-10T08:45:00-06:00" pubdate data-updated="true">10. 03. 2016</time>
</p>
</header>
<div class="entry-content"><p>Včera jsem měl <a href="http://srazy.info/jak-nejlepe-nasadit-docker-kontejnery-do-cloudu/6197">přednášku v Brně o dockeru</a> a ptal jsem se lidí kolem na meetup a v hospodě potom zda znají Site Reliability Engineering (SRE) ze svého okolí. Tento koncept od Googlu rozšiřuje klasické pojetí DevOps a myslím, že je to jedna z nejlepších věcí co Google vymyslel.</p>
<p>Můžete to slyšet přímo od Bena Treynora. Poslechněte jeho skvělou přednášku <a href="https://www.usenix.org/conference/srecon14/technical-sessions/presentation/keys-sre">Keys to SRE z SRECon14</a>.</p>
</div>
<footer>
<a rel="full-article" href="/2016/03/co-to-je-sre/">Dále &rarr;</a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2016/02/suchy-docker/">Suchý docker</a></h1>
<p class="meta">
<time datetime="2016-02-05T09:20:00-06:00" pubdate data-updated="true">05. 02. 2016</time>
</p>
</header>
<div class="entry-content"><p><a href="http://suchejunor.cz/">Suchý únor</a> je skvělá akce a tak jsem říkal, zda s Dockerem nebudeme také na suchu. Našťěstí včera se situace změnila a vyšli nové verze Docker Engine, Docker Swarm and Docker Compose.</p>
<blockquote><p>Pokud budete upgradovat, buďte opatrní, nový formát image není zpětně kompatibilní.</p><footer><strong>Docker docs</strong> <cite><a href='https://docs.docker.com/engine/breaking_changes/'>docs.docker.com/engine/&hellip;</a></cite></footer></blockquote>
<p>V originálu si novinky můžete prostudovat na blogu Dockeru:</p>
<ul>
<li><a href="http://blog.docker.com/2016/02/docker-1-10/">Docker 1.10: New Compose file, improved security, networking and much more!</a></li>
<li><a href="http://blog.docker.com/2016/02/docker-engine-1-10-security/">Docker Engine 1.10 Security Improvements</a></li>
<li><a href="http://blog.docker.com/2016/02/compose-1-6/">Compose 1.6: New Compose file for defining networks and volumes</a></li>
</ul>
<p>pokud si chcete přečíst novinky v češtině pokračujte v mém článku.</p>
</div>
<footer>
<a rel="full-article" href="/2016/02/suchy-docker/">Dále &rarr;</a>
</footer>
</article>
<article>
<header>
<h1 class="entry-title"><a href="/2015/12/nastroje-co-pouzivam-pro-vyvoj-a-spravu/">Nástroje co používám pro vývoj a správu</a></h1>
<p class="meta">
<time datetime="2015-12-03T10:35:00-06:00" pubdate data-updated="true">03. 12. 2015</time>
</p>
</header>
<div class="entry-content"><p>Sublime Text, Terminal</p>
<h2>Sublime Text jako vývojové prostředí</h2>
<p><a href="http://www.sublimetext.com/">Sublime</a> používá dost lidí, u nás v Apiary je to rozdělné mezi Emacs, Vim, Sublime, Atom a Webstorm. Řekl bych, že Sublime je asi nejvíc používaný, ale to se také mění. Já ho preferuju hlavně pro jeho rychlost startu.</p>
<p><a href="/images/sublime.png"><img class="center" src="/images/sublime.png" alt="Sublime Text" /></a></p>
</div>
<footer>
<a rel="full-article" href="/2015/12/nastroje-co-pouzivam-pro-vyvoj-a-spravu/">Dále &rarr;</a>
</footer>
</article>
<div class="pagination">
<a class="prev" href="/page//page/2/">&larr; Older</a>
<a href="/blog/archives">Blog Archives</a>
</div>
</div>
<aside class="sidebar">
<section>
<ul id="recent_posts">
<li class="post">
<a href="http://blog.prskavec.net" alt="Home"><img class="icons" src="/images/Home.png" ></a>
<a href="http://blog.prskavec.net/archives/" alt="Archives"><img class="icons" src="/images/Calendar.png"></a>
<a href="mailto:ladislav@prskavec.net" alt="E-Mail"><img class="icons" src="/images/Envelope.png"></a>
<a href="http://blog.prskavec.net/atom.xml" alt="subscribe feed"><img class="icons" src="/images/rss_big.png"></a>
</li>
</ul>
</section>
<section>
<h1>Ladislav Prskavec</h1>
<p style="margin-top:6px;"><img src="/images/avatar.jpg" style="float:left; margin-right:10px;" width="100" height="115" /><a href="http://github.com/abtris/">Programátor</a>, otec, <a href="http://www.dzogchen.cz">buddhista</a>, milovník dobrého jídla, knih, nových technologí a hraček pro všechny s&nbsp;duší dítěte.
</p>
<br style="clear:left;"/>
</section>
<section>
<h1>Poslední příspěvky</h1>
<ul id="recent_posts">
<li class="post">
<a href="/2017/04/docker-multi-stage-build/">Docker - multi stage build</a>
</li>
<li class="post">
<a href="/2016/12/jenkins-declarative-pipelines/">Jenkins Declarative Pipelines</a>
</li>
<li class="post">
<a href="/2016/10/jenkins-2-dot-0-novinky-a-vylepseni-2-dot-cast/">Jenkins 2.0 - novinky a vylepšení - 2.část</a>
</li>
<li class="post">
<a href="/2016/10/jenkins-2-dot-0-novinky-a-vylepseni/">Jenkins 2.0 - novinky a vylepšení</a>
</li>
<li class="post">
<a href="/2016/10/prednaska-o-sre-na-devops-meetupu/">Přednáška o SRE na DevOPS meetupu</a>
</li>
<li class="post">
<a href="/2016/07/srecon-16-europe/">SREcon&#8217;16 Europe</a>
</li>
<li class="post">
<a href="/2016/06/serverless-jako-neco-vic-nez-docker/">Serverless jako něco víc než Docker</a>
</li>
<li class="post">
<a href="/2016/03/co-to-je-sre/">Co to je SRE?</a>
</li>
<li class="post">
<a href="/2016/02/suchy-docker/">Suchý docker</a>
</li>
<li class="post">
<a href="/2015/12/nastroje-co-pouzivam-pro-vyvoj-a-spravu/">Nástroje co používám pro vývoj a správu</a>
</li>
</ul>
</section>
<section>
<h1>Knihy</h1>
<p style="margin-top:6px; text-align:center"><a href="http://itunes.apple.com/cz/book/subversion/id498008712?mt=11" onClick="_gaq.push(['_trackEvent', 'link', 'itunes/subversion', 'svn-promo-sidebar-vpravo']);"><img src="http://a2.mzstatic.com/eu/r30/Publication/v4/eb/a3/38/eba33827-f23c-dc3d-d108-7ac062957177/cover225x225.jpeg" style="float:left; margin-right:10px; width:172px; height:225px;" /></a>
</p>
<br style="clear:left;"/>
</section>
<section class="googleplus">
<h1>
<a href="https://plus.google.com/+LadislavPrskavec?rel=author">
<img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32">
Google+
</a>
</h1>
</section>
<section>
<h1>GitHub</h1>
<iframe src="http://githubbadge.appspot.com/badge/abtris" style="border: 0;height: 142px;width: 200px;overflow: hidden;" frameBorder=0></iframe>
</section>
<section>
<h1>Twitter</h1>
<a class="twitter-timeline" width="250" height="500" href="https://twitter.com/abtris" data-widget-id="345276838232326144">Tweets by @abtris</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</section>
</aside>
</div>
</div>
<footer role="contentinfo"><p>
Copyright &copy; 2017 - Ladislav Prskavec -
<span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
</p>
</footer>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-79221-21']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script>
var _0x5d8e=["readyState","complete","name","get","getAll","gtm","indexOf",".send","event","send","social","body","getElementsByTagName","undefined","copy","Advanced tracking","Copy to clipboard","substring","trim","textContent","target","addEventListener","onscroll","document","documentElement","scrollHeight","offsetHeight","clientHeight","max","innerHeight","scrollTop","pageYOffset","Scroll","20%","40%","60%","80%","100%","pathname","location","[\\?&#]","=([^&#]*)","exec","edge.create","Facebook","Like","subscribe","Event","edge.remove","Unlike","message.send","Share","nodeName","IFRAME","src","url","Twitter","tweet","bind","events","ready","Time spent","15s","setTimeout","30s","45s","60s","75s","90s","105s","120s","length","","replace","round","img","Text length","Image count"];(function(){try{if(document[_0x5d8e[0]]===_0x5d8e[1]){mainAdvancedTracking()}else {var interval=setInterval(function(){if(document[_0x5d8e[0]]===_0x5d8e[1]){clearInterval(interval);mainAdvancedTracking()}},250)};function mainAdvancedTracking(){
var copyToClipboard = true;
var scrollTracking = true;
var textLength = true;
var imageCount = true;
var socialTracking = true;
var timeSpent = true;
var trackerName=ga[_0x5d8e[4]]()[0][_0x5d8e[3]](_0x5d8e[2]);var isGTMhere=false;if(trackerName[_0x5d8e[6]](_0x5d8e[5])> -1){isGTMhere=true};function sentEventToGA(eCat,eAct,eLab){if(isGTMhere){ga(trackerName+_0x5d8e[7],_0x5d8e[8],{eventCategory:eCat,eventAction:eAct,eventLabel:eLab,nonInteraction:1})}else {ga(_0x5d8e[9],_0x5d8e[8],eCat,eAct,eLab,{"nonInteraction":1})}}function sentSocialToGA(eCat,eAct,eLab){if(isGTMhere){ga(trackerName+_0x5d8e[7],_0x5d8e[10],{eventCategory:eCat,eventAction:eAct,eventLabel:eLab})}else {ga(_0x5d8e[9],{hitType:_0x5d8e[10],socialNetwork:eCat,socialAction:eAct,socialTarget:eLab})}}try{if(copyToClipboard){var hbody=document[_0x5d8e[12]](_0x5d8e[11])[0];if( typeof (hbody)!==_0x5d8e[13]){hbody[_0x5d8e[21]](_0x5d8e[14],function(evt){sentEventToGA(_0x5d8e[15],_0x5d8e[16],evt[_0x5d8e[20]][_0x5d8e[19]][_0x5d8e[18]]()[_0x5d8e[17]](0,100))})}}}catch(err){};try{if(scrollTracking){var flag20=true;var flag40=true;var flag60=true;var flag80=true;var flag100=true;window[_0x5d8e[22]]=function(e){var body=window[_0x5d8e[23]][_0x5d8e[11]],html=window[_0x5d8e[23]][_0x5d8e[24]];var delkaStranky=Math[_0x5d8e[28]](body[_0x5d8e[25]],body[_0x5d8e[26]],html[_0x5d8e[27]],html[_0x5d8e[25]],html[_0x5d8e[26]]);var velikostOkna=window[_0x5d8e[29]]||document[_0x5d8e[24]][_0x5d8e[27]]||document[_0x5d8e[11]][_0x5d8e[27]];var pozice=(window[_0x5d8e[23]][_0x5d8e[30]]||window[_0x5d8e[31]])+velikostOkna;if(pozice>0){var procenta=(pozice/delkaStranky)*100};if((flag20)&&(procenta>20)){sentEventToGA(_0x5d8e[15],_0x5d8e[32],_0x5d8e[33]);flag20=false};if((flag40)&&(procenta>40)){sentEventToGA(_0x5d8e[15],_0x5d8e[32],_0x5d8e[34]);flag40=false};if((flag60)&&(procenta>60)){sentEventToGA(_0x5d8e[15],_0x5d8e[32],_0x5d8e[35]);flag60=false};if((flag80)&&(procenta>80)){sentEventToGA(_0x5d8e[15],_0x5d8e[32],_0x5d8e[36]);flag80=false};if((flag100)&&(procenta>99)){sentEventToGA(_0x5d8e[15],_0x5d8e[32],_0x5d8e[37]);flag100=false}}}}catch(err){};try{if(socialTracking){var mpath=document[_0x5d8e[39]][_0x5d8e[38]];function extractParamFromUri(uri,paramName){if(!uri){return};var regex= new RegExp(_0x5d8e[40]+paramName+_0x5d8e[41]);var params=regex[_0x5d8e[42]](uri);if(params!=null){return unescape(params[1])};return}FB[_0x5d8e[47]][_0x5d8e[46]](_0x5d8e[43],function(targetUrl){sentSocialToGA(_0x5d8e[44],_0x5d8e[45],mpath)});FB[_0x5d8e[47]][_0x5d8e[46]](_0x5d8e[48],function(targetUrl){sentSocialToGA(_0x5d8e[44],_0x5d8e[49],mpath)});FB[_0x5d8e[47]][_0x5d8e[46]](_0x5d8e[50],function(targetUrl){sentSocialToGA(_0x5d8e[44],_0x5d8e[51],mpath)});function trackTwitter(intent_event){if(intent_event){var opt_pagePath;if(intent_event[_0x5d8e[20]]&&intent_event[_0x5d8e[20]][_0x5d8e[52]]==_0x5d8e[53]){opt_target=extractParamFromUri(intent_event[_0x5d8e[20]][_0x5d8e[54]],_0x5d8e[55])};sentEventToGA(_0x5d8e[56],_0x5d8e[51],mpath)}}twttr[_0x5d8e[60]](function(twttr){twttr[_0x5d8e[59]][_0x5d8e[58]](_0x5d8e[57],trackTwitter)})}}catch(err){};try{if(timeSpent){window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[62])},15000);window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[64])},30000);window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[65])},45000);window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[66])},60000);window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[67])},75000);window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[68])},90000);window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[69])},105000);window[_0x5d8e[63]](function(){sentEventToGA(_0x5d8e[15],_0x5d8e[61],_0x5d8e[70])},120000)}}catch(err){};try{var tLen=document[_0x5d8e[12]](_0x5d8e[11])[0][_0x5d8e[19]][_0x5d8e[18]]()[_0x5d8e[73]](/ /g,_0x5d8e[72])[_0x5d8e[73]](/(?:\r\n|\r|\n)/g,_0x5d8e[72])[_0x5d8e[71]];tLen=Math[_0x5d8e[74]](tLen/100)*100;var imgLen=document[_0x5d8e[12]](_0x5d8e[75])[_0x5d8e[71]];if(textLength){sentEventToGA(_0x5d8e[15],_0x5d8e[76],tLen)};if(imageCount){sentEventToGA(_0x5d8e[15],_0x5d8e[77],imgLen)}}catch(err){}}}catch(err){}})()
</script>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter21617953 = new Ya.Metrika({id:21617953,
webvisor:true,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true});
} catch(e) { }
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/21617953" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<script type="text/javascript">
var disqus_shortname = 'prskavecblog';
var disqus_script = 'count.js';
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/' + disqus_script;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}());
</script>
<script type="text/javascript">
(function(){
var twitterWidgets = document.createElement('script');
twitterWidgets.type = 'text/javascript';
twitterWidgets.async = true;
twitterWidgets.src = 'http://platform.twitter.com/widgets.js';
document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
})();
</script>
<script src="/javascripts/all.js?v=1412111651"></script>
</body>
</html>