Create IT Blog - odborné

 

 

Co nás ne/překvapilo na práci z domovahttps://www.create-it.cz/Blog/Stranky/homeoffice.aspxCo nás ne/překvapilo na práci z domova<p>Různých článků na téma jak nejlépe zvládat Home Office je na internetu spousta a asi pro vás nemáme žádný neotřelý tip, který jste nečetli jinde. Aneb jak říká náš grafik a webmaster Vítek, který pracuje z domova už 14 let, a tak se dá spolehnout na to, že o tom něco ví: základ je mít pevný režim a rozvrh. A to píší všude. Zajímalo nás ale, jak vnímají přesun na Home Office naši kolegové, a proto jsme si udělali malý průzkum, kterého se zúčastnilo 15 z nich. </p><p> Abyste rozuměli, v Cleverlance za normálního provozu pracují někteří z nás přímo na našich pobočkách, jiní jsou v kancelářích u klienta, část z nás za určitých podmínek funguje na Home Office, ale opravdu málokdo pracuje z domova stále. Takže v této formě je to pro nás jako pro firmu velká novinka. </p><h2> Vše funguje </h2><p> Můžete mít nastotisíckrát vše nastaveno a otestováno, ale teprve ostrý provoz ukáže, zda to skutečně běží, jak má. Kolegové si to uvědomují, a tak na otázku, co je příjemně překvapilo, nejčastěji odpovídali právě pochvalováním si, jak i na dálku fungujeme. Týmy jedou jako po másle, IT vše briskně zvládá a práce na projektech může pokračovat i na dálku. I zákazníci práci kompletně na dálku akceptovali a dokázali se rychle adaptovat - což je pro nás velmi důležité a opravdu to oceňujeme. Zajímavé je, že si to chválí nejen manažeři, ale i řadoví zaměstnanci. </p> <img src="/Blog/PublishingImages/Stranky/homeoffice/HO4.jpg" alt="Home Office v Cleverlance" /> <br> <h2> Dojíždění </h2><p> Někteří kolegové si až teď naplno uvědomili, kolik času stráví dojížděním. Většina se ho ráda zbavila. Ale jiní kolegové paradoxně na dojíždění vzpomínají s láskou. Některým chybí cesta do a z práce na kole, dalším se stýská po čase na čtení. Možná namítnete, že toho teď přeci mohou mít habaděj, ale kdo je teď doma s dětmi, ví své. No a samozřejmě pokud vaše cesta do práce vede třeba údolím Berounky, může vám chybět i sama o sobě. </p><h2> Čas s rodinou </h2><p> Snad nikdy v životě české děti netrávily tolik času se svými rodiči. A děti svých kolegů jsme dříve poznali jen při firemních rodinných akcích, ať už to bylo na prolézačkách v Mirákulu, při Beat Saber cupu nebo nad programováním ve Scratchi, zato nyní je známe jako vtipné vsuvky do různých videorozhovorů, v některých týmech patří k bontonu jít zamávat kolegům a kolegyním rodičů při každém standupu apod. </p> <table cellspacing="0" width="100%" class="ms-rteTable-default" style="text-align:center;border:medium hidden;"><tbody><tr><td class="ms-rteTable-default" style="width:50%;">​<a href="https://www.youtube.com/watch?v=Mh4f9AYRCZY" target="_blank"><img src="/Blog/PublishingImages/Stranky/homeoffice/on.jpg" alt="on.jpg" style="margin:5px;width:300px;height:180px;" /></a><br></td><td class="ms-rteTable-default" style="width:50%;">​<a href="https://www.youtube.com/watch?v=-Ojvk-4IcOE" target="_blank"><img src="/Blog/PublishingImages/Stranky/homeoffice/ona.jpg" alt="ona.jpg" style="margin:5px;width:300px;height:180px;" /></a><br></td></tr></tbody></table><h4 style="text-align:center;">A jak vypadá home office s dětmi u vás?<br></h4><p> Pro některé kolegy je provizorní kancelář mezi dětskou kuchyní a sbírkou Hot-Wheels spíš stresující, jiní si doma zavedli pravidla a dokáží koordinovat práci obou rodičů i vzdělávání dětí úplně v pohodě. Důležité je, když všichni vědí, co mají dělat. Sluchátka na uších například znamenají "nerušit". </p><h2> Stýská se nám </h2><p> S výjimkou několika málo ostřílených Home Office veteránů se ode všech kolegů ozývá, že se jim stýská po ostatních z týmu. Po společných obědech. Po deskovkách po práci. Po sdílení know-how v open space. Po společné ranní kávě. </p><p style="text-align:center;"> <img src="/Blog/PublishingImages/Stranky/homeoffice/homeoffice-.jpg" alt="" style="margin:5px;width:450px;" /> </p><p></p><p></p><h4 style="text-align:center;">Zuzce se stýská tak moc, že si svou kancelář doma vizualizovala. <br></h4><p> Zkrátka analyzovat, programovat, testovat i to celé řídit umíme z domova na jedničku. Ale socializovat se přes videokonference nás prostě neuspokojuje. Ovšem snažíme se - vedle pravidelných projektových schůzek se vyrojila řada dobrovolných audio- či video-konferenčních káviček, snídaní apod. </p><h2> Nové nástroje </h2><p> Nebyli bychom správná IT firma, kdybychom usilovně netestovali nové a potenciálně lepší nástroje pro práci na dálku. Skype a e-mail jsou sice základ, ale různé týmy objevují další kooperativní nástroje, protože jejich potřeby se projekt od projektu liší. Zoom, Slack a Teams patří k nejčastěji zmiňovaným. </p><h2> Umět přestat </h2><p> Důležitost pravidelného režimu, jak už bylo řečeno na začátku, objevujeme všichni. Většina lidí tím podporuje svou produktivitu, neméně důležité je ale i říct si, že máme padla. Protože od některých kolegů zaznívá, že z domova pracují mnohem více než dříve. </p><h2> S / V / N / K </h2><p> Tohle jsou zkratky našich hodnot a i když tu nepublikujeme celý text průzkumu (to by vás nebavilo, vyšlo to na 11 stránek), z výsledných odpovědí je znát, že ty hodnoty nejsou prázdná slova. Zkrátka umíme spolupracovat i ve ztížených podmínkách, vidíme výsledky, máme různé nápady, jak se s tou situací vypořádat a nezapomínáme spolu komunikovat! </p><p><br></p><p><em>Veronika Jandová</em><br></p>odborné;#
Jak vytvořit krátkou hru v Pythonuhttps://www.create-it.cz/Blog/Stranky/hra-v-pythonu.aspxJak vytvořit krátkou hru v Pythonu<p>Pokud jste se někdy chtěli naučit, jak se vlastně dělají hry, nebude k tomu snad vhodnější čas než po večerech, když se v období nynější pandemie stejně moc nikam nedá jít. V tomto článku se podíváme na to, jak v jazyce Python udělat malý klon legendární hry <a href="https://www.youtube.com/watch?v=MU4psw3ccUI" target="_blank">Space Invaders</a>. Postačí nám k tomu <a href="https://www.pygame.org/news">framework PyGame</a>, který zajistí vše od ovládání až po grafické objekty.<br></p><h2>Základní nastavení</h2><p>Nejprve vytvořím třídu Game, ze které budu ovládat celou hru. Pak inicializuji <em>pygame </em>instanci a pole pro alieny (nepřátele),<em> </em>nastavím velikost zobrazované plochy (na ní se budou vykreslovat herní objekty), rychlost překreslování na 60 snímků za sekundu a spustím herní "smyčku", ve které se průběžně budou kontrolovat vstupní klávesy, kliknutí myši a vykreslovat grafika.<br></p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/Picture%201.png" alt="" /> <br> </p><h2>Vytvoříme si nepřátele</h2><p>V klasické hře Space Invaders jsou hlavními nepřáteli alieni, které musí hráč všechny pobít. V této hře vytvořím jednoduchý objekt Alien, který použije souřadnice, barvu a velikost a vykreslí objekt ve formě čtverce na herní plochu. Objektu nastavím "klesání" o 5 % velikosti pixelu za jeden herní snímek. Instanci aliena pak vytvořím před herní smyčkou a v herní smyčce volám metodu <em>draw</em> pro vykreslení. <br></p><p>Poznámka: Část kódu se vkládá do již napsané sekce. Pro přesné umístění se můžete podívat do kompletního zdrojáku, který je nalinkovaný na konci článku.<br></p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/Picture%202.png" alt="" /> <br> </p> Po spuštění vypadá hra následovně, zatím jen s jedním Alienem - za chvíli jich vytvořím celé pole:  <div> <img src="file:///Users/veronikajandova/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image007.gif" alt="" /> <p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/1.gif" alt="1.gif" /><br></p><h2>Hlavní hrdina</h2><p>Hrdina, kterého ovládá hráč, je vytvořen obdobně jako Alien, pouze má jiné rozměry, pozici dole v centru herní plochy, jinou barvu a bude na něj napojeno ovládání klávesami.</p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/Picture%204.png" alt="" /> <br> </p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/2.gif" alt="2.gif" /> <br> <p> <br> </p><h2>A teď tomu dodáme šťávu!</h2><p>Nejprve přidám více nepřátel. Pro to postačí jednoduchý generátor Alienů, kterými zaplním horní polovinu plochy (<em>height/2</em>) a v herní smyčce vykreslím.</p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/Picture%206.png" alt="" /> <br> <br> </p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/3.gif" alt="3.gif" />Dále přidám hrdinovi nějaké útočné prostředky - tedy rakety. Objekt rakety má také vlastní třídu, která je skoro stejná jako Alien a Hero, jen má důležitou vlastnost - a totiž, že po herní ploše "letí" nahoru - a to rychlostí 2 pixely za snímek. Vykreslovací plocha je indexovaná od levého horního rohu (x=0, y=0), proto je nastavena <em>y</em> souřadnice do mínusu (hráč je na cca (x=300, y=380). V herní smyčce pak kontroluji, zda hráč stisknul mezerník a pokud ano, vytvořím raketu na pozici hrdiny.<img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/Picture%208.png" alt="" /><br></p><p>Střela po stisknutí mezerníku letí nahoru:</p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/4.gif" alt="4.gif" /> </p><p>Teď už jen stačí přidat kontrolu kolize rakety a aliena (v tom případě jsou alien i raketa zničeny). Otázkou je, zda bude kontrolovat alien, že do něj narazila raketa, nebo jestli raketa bude kontrolovat, zda narazila do aliena. Volím kontrolu z pozice aliena. Každý alien sleduje seznam raket a kontroluje, zda do něj nějaká nenarazila (dívá se na souřadnice x a y). Je to opravdu triviální a neoptimální kontrola, běžně se samozřejmě používají optimalizované přístupy jako kontrola pouze těch objektů v blízkosti atd.<br></p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/Picture%2010.png" alt="" /> <br> </p><p></p><div> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/5.gif" alt="5.gif" /> <br> </div> <img src="file:///Users/veronikajandova/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image019.gif" alt="" /> <p>Nakonec přidám pohyb hrdiny doleva a doprava, nastavím konečné podmínky pro výhru a prohru - když hráč všechny zničí vs. když alien přistane na zemi - a hra je hotova.</p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/Picture%2012.png" alt="" /> </p><p> </p><p> <img src="/Blog/PublishingImages/Stranky/hra-v-pythonu/6.gif" alt="6.gif" /> </p><h2>Závěrem</h2><p>Výsledná hra by se ještě dala okořenit efekty jako jsou zvuky, textury a hlavně "game feel" mechaniky, např. třepání obrazu při každém výstřelu, pozastavení hry na 50 ms při každém výbuchu pro umocnění dopadu rakety a jiné běžné používané efekty (více o game feel <a href="https://www.youtube.com/watch?v=Fy0aCDmgnxg">zde</a>). Kompletní kód hry jsem umístil na svůj <a href="https://github.com/janjilecek/pygame-invaders/blob/master/main.py">github</a>.</p><p>Framework PyGame, který jsme si zde ukázali je vhodný pro jednoduché projekty, ale pokud vás herní vývoj více zaujal, doporučuji "dospělé" herní frameworky jako Unity, používající jazyk C#; Game Maker Studio 2 používající jazyk GML; a nebo Unreal Engine 4, stojící na verzi jazyka C++. Nejvhodnější pro začátečníky je však Unity a GMS2. Přeji happy coding!</p><p> </p><p> <i>Jan Jileček</i></p><p> </p><p> </p><p> <br> </p></div>odborné;#vzdělávání;#
Základy Machine learningu v Pythonuhttps://www.create-it.cz/Blog/Stranky/python1.aspxZáklady Machine learningu v Pythonu<p>Machine learning (ML) neboli strojové učení je poslední dobou velmi používané slovní spojení, které v sobě obsahuje vše od zpracování dat až po neuronové sítě. V tomto článku vám představím základní terminologii a na krátkém příkladu ukážu klasifikaci filmových hodnocení a sentimentu v textu.</p><h2>Učení s učitelem a bez učitele</h2><p>Strojové učení se obecně dělí na dvě kategorie, a totiž na Supervised (s učitelem - systém se "učí" funkci z trénovacích dat) a Unsupervised (bez učitele - systém hledá zákonitosti v datech sám).<br></p><p>První kategorie je specifická tím, že vstupní data, která budeme analyzovat, mají dodatečné atributy, které data nějakým způsobem popisují. Příkladem mohou být údaje o teplotě ve městech za nějaký časový úsek, typickým příkladem v ML je však tzv. <a href="https://medium.com/syncedreview/mnist-reborn-restored-and-expanded-additional-50k-training-samples-70c6f8a9e9a9" target="_blank">MNIST dataset</a>. Je to sada psaných číslic, jejichž atributem je právě odpovídající číslo na obrázku.<br></p><p>S daty můžeme dále provádět tzv. klasifikaci, nebo regresi. Klasifikace slouží ke správnému zařazení datových vzorků bez atributů (tedy např. rozpoznání nově napsané číslice a její správné označení, nebo níže v návodu - rozpoznání pozitivního a negativního filmového hodnocení z textu). Regrese slouží k "předpovídání" dalších výsledků, používá se např. pro generování textu - lze tak vygenerovat celou <a href="https://twitter.com/botnikstudios/status/940627812259696643" target="_blank">novou kapitolu Harryho Pottera</a> na základě předchozích 7 knih.<br></p> <img src="/Blog/PublishingImages/Stranky/python1/dataset.png" alt="dataset.png" /> <p style="text-align:center;">Příklad vzorků z datové sady MNIST<br></p><p>Druhou kategorií je učení bez učitele. Používá se pro neoznačená data bez atributů, nejčastěji pro nalezení skrytých vzorců a spojení mezi datovými vzorky nebo pro jejich setřídění do skupin (tzv. clustering).<br></p> <img src="/Blog/PublishingImages/Stranky/python1/bezucitele.png" alt="bezucitele.png" /> <p style="text-align:center;">Učení bez učitele - <a href="https://en.wikipedia.org/wiki/Unsupervised_learning#/media/File:Kernel_Machine.svg">určení hranic mezi rozdílnými body</a>, clustering<br></p><h1>Datové sady, datasety</h1><p>Datová sada (pro učení s učitelem) se dělí na tři části - trénovací, testovací a validační. Trénovací sada obsahuje hlavní data, na kterých se ML bude učit "vzorce chování", konfigurace datových vzorků a určovat váhu jednotlivých rozhodnutí pro konečný výsledek klasifikace/regrese. Validační datová sada je pak část disjunktní s trénovací sadou, avšak ze stejné množiny dat, resp. z dat se stejnou distribucí pravděpodobnosti (jinými slovy: z jedné datové sady psaných číslic vezmu náhodně 70 % vzorků pro trénovací sadu a 30 % pro validační). Poslední částí je ta testovací, která používá podobná data s odlišnou distribucí pravděpodobnosti - v případě datové sady psaných číslic, kde trénovací a validační sada byla psaná mnou, trénovací sada by byla psaná někým jiným - pro výsledný klasifikátor tak mohu určit jeho přesnost správného určování nově napsaných číslic, a jako takový slouží tato přesnost jako hlavní metrika určující kvalitu natrénovaného modelu.<br></p><h1>A teď k praktickému příkladu</h1><p>Jako malý příklad zde uvádím klasifikátor filmových hodnocení. K tomu jsem nejprve získal textová data ze serveru imdb.com, a to hodnocení k novému filmu "1917". Ručně jsem zkopíroval 20 pozitivních hodnocení a 20 negativních hodnocení filmu (v reálném projektu by se samozřejmě použilo IMDB API pro hromadné stažení dat) do jednoduchého textového souboru - prvních 20 řádků pozitivní hodnocení, dalších 20 řádků negativní. Reálná data jsou formátována sofistikovaněji, např. v csv formátu a s explicitně uvedenými třídami, ale pro názornost to zde postačí.</p><p> <img src="/Blog/PublishingImages/Stranky/python1/prikladreview.png" alt="prikladreview.png" /><br></p><p style="text-align:left;">V Pythonu pak tento soubor "dataset.txt" načtu:<br></p><p style="text-align:left;"> <img src="/Blog/PublishingImages/Stranky/python1/nacistdataset.png" alt="nacistdataset.png" /> <br> </p><p>Nyní mám načtené všechny věty do pole hodnot. Dále text musím zpracovat, aby z něj mohl klasifikátor při tréninku úspěšně extrahovat smysluplné informace. Anglický text tedy zbavím apostrofů, znamének apod. a provedu lematizaci - tedy převedení slov do jejich kořenové podoby (movies -> movie, being -> be).<br></p> <img src="/Blog/PublishingImages/Stranky/python1/lematizace.png" alt="lematizace.png" /> <p>Takto zpracované věty teď musím nějakým způsobem převést do formátu zpracovatelného pomocí ML. Provedu proto vektorizaci slov - jejich převedení na číselnou hodnotu (tedy něco přibližně podobného získání počtu nejčastějších pozitivních slov, akorát s mnohem hlubším kontextem). K tomu použiji vektorizační metodu <a href="https://en.wikipedia.org/wiki/Bag-of-words_model" target="_blank">Bag of words</a>. Vektorizér nastavuji tak, aby bral pouze prvních 20 nejčastějších slov jako významných, používal ta slova, která se vyskytují alespoň dvakrát, a jsou nejvýše v 60 % hodnocení (jinak by ztratily svůj význam, kdyby byly používány všude). Navíc vyřazuji anglická "stop" slova, která nenesou žádný význam (and, the, ...).</p> <img src="/Blog/PublishingImages/Stranky/python1/transformace.png" alt="transformace.png" /> <p>Po této transformaci pomocí vektorizace jsou vstupní textová data s hodnoceními filmů reprezentována čísly (každý řádek je jedno celé souvětí/hodnocení):</p> <img src="/Blog/PublishingImages/Stranky/python1/matice.png" alt="matice.png" /> <p>A teď se můžeme vrhnout na samotný trénink klasifikátoru. Používám zde jednoduchý klasifikátor, <a href="https://cs.wikipedia.org/wiki/Algoritmus_k-nejbli%c5%be%c5%a1%c3%adch_soused%c5%af" target="_blank">K-nejbližších sousedů</a>, s K-okolím velikosti 5 (na složitější klasifikátory a jejich hlubší popis se podíváme v příštím článku). Trénovací data jsem rozdělil na trénovací a testovací (beru 30 % datové sady pro testování).<br></p> <img src="/Blog/PublishingImages/Stranky/python1/klasifikatory.png" alt="klasifikatory.png" /> <p>Nakonec probíhá tisk tzv. matice záměn, která ukazuje úspěšnost natrénovaného modelu klasifikátoru, výstupu klasifikace a hodnoty přesnosti našeho modelu.</p><p>Matice záměn ukazuje počet správně uhodnutých hodnocení na jedné diagonále a špatně uhodnutých na diagonále druhé - viz obrázek níže, tedy 2-7 je počet tzv. true positives a true negatives (tzn. správně uhodnutá hodnocení patřící do správné třídy a správně vyloučená hodnocení nepatřící do třídy) a 1-2 je počet false positives a false negatives, tyto chybné false hodnoty chceme udržet na minimu.</p><p>Bohužel zde používám jen extrémně malou datovou sadu, takže přesnost klasifikace je mizerná - jen 75 % hodnocení je zařazeno správně jako pozitivní nebo správně jako negativní, a to po úpravě parametrů pro lepší výsledek (v závislosti na parametrech klasifikátoru přesnost padala i na pouhých 35 %). Při zvětšení datové sady na několik tisíc hodnot a použití inteligentnějšího klasifikátoru by se přesnost značně zvýšila.</p> <img src="/Blog/PublishingImages/Stranky/python1/presnost.png" alt="presnost.png" /> <h1>Analýza sentimentu v textu<br></h1><p>Pro zajímavost ještě ukážu analýzu sentimentu z textových dat. Jedná se o NLP - Natural Language Processing (neplést s Neuro-linguistic programming), analýzu přirozeného jazyka, jejímž cílem je extrakce názorů a emočního zabarvení textu (datové sady bývají vzaty zejména z Twitteru). Sociální sítě jsou tedy přirozeně hlavním polem, kde se NLP využívá v praxi.<br></p><p>Pro příklad použiju VADER (Valence Aware Dictionary and sEntiment Reasoner) na jednom z filmových review. VADER dokáže analyzovat pozitivní nebo negativní sentiment v textu na základě předtrénovaného klasifikačního modelu (pro přesnější klasifikaci lze použít např. Google Cloud Natural Language API).</p> <img src="/Blog/PublishingImages/Stranky/python1/vader.png" alt="vader.png" /> <p>Výstup předchozích 3 řádků nám ukazuje ze 70 % neutrální sentiment a z 22 % pozitivní sentiment (jde o jedno z pozitivních hodnocení).</p><h1> <img src="/Blog/PublishingImages/Stranky/python1/sentiment.png" alt="sentiment.png" />Na závěr</h1><p>Pokud vás datová analýza a strojové učení zaujalo, můžete začít u mého příkladu, který jsem umístil ve svojí celkové podobě na <a href="https://github.com/janjilecek/ML_article" target="_blank">github</a>. Strojové učení má velkou škálu možných použití a nepřeberné množství algoritmů, kde se každý hodí pro jinou oblast. Na tyto algoritmy se podíváme příště, do té doby přeji happy machine learning!<br></p><p><em>Jan Jileček</em><br></p><p> <br> </p>odborné;#vzdělávání;#
Když bakalářka dává smyslhttps://www.create-it.cz/Blog/Stranky/bakalarka.aspxKdyž bakalářka dává smysl <p> <strong><em>Zásadní rozhodnutí je pro někoho otázkou vteřin, pro jiného představuje náročný rozhodovací proces. Vstupu do „velkého světa IT" dnešní doba fandí a podporuje ty, kteří v sobě odvahu najdou a zkusí to. Podobně to máme postavené i my v Cleverlance. </em></strong></p><p> <em>Ať už dostanete dobrou radu od rodičů nebo k rozhodnutí dospějete sami, je potřeba udělat první krok. A zároveň mít dobrou sebereflexi a zvolit správnou cestu rozvoje. Při své praxi se nám bohužel často stává, že jen zkušenosti nestačí a je nezbytné disponovat dalšími ingrediencemi - mít předpoklady, pevnou vůli a motivaci. Správný poměr všech uvedených přísad je klíčovým, pokud chcete úspěšně nastartovat svou pracovní cestu již během studia.</em></p><p> <em>Tato ideální kombinace nastala například u Pavla. Pavel studuje Fakultu informatiky a statistiky na VŠE, aktuálně již v magisterském programu se zaměřením na Informační systémy a technologie. Zajímá se hlavně o předměty business inteligence, ekonomie v účetnictví či programování. Před několika měsíci se na jedné z přednášek se od známého dozvěděl o možnosti zúčastnit se JAVA Clever Akademie. A to byl zjevně ten správný podnět.</em></p><p> <strong>Prošel jsi náročným výběrovým řízením a své místo v akademii sis zasloužil. Co vše ti program přinesl?</strong></p><p> Kromě dobré party lidí, kteří byli na stejné vlně jako já, s podobnou úrovní znalostí a zkušeností, jsem získal příležitost během akademie překlápět teorii rovnou do praxe, což se ve škole ne vždy zadaří. Naučil jsem se s programy pracovat efektivněji a znalosti aplikovat do skutečného prostředí projektu, kde všechny podmínky nejsou zdaleka ideální. Získal jsem praktické zkušenosti s programováním nejen v Javě, ale i v dalších programech - Spring, Maven, Hibernate, jak jednotlivé programy reálně fungují, jak nástroje správně využívat, ale taky jak ne. Ale abych jen nechválil (smích), jednodenní blok na Liferay bych třeba vynechal, reálně jej člověk využije jen na vybraném typu projektu.</p><p> <strong>Po absolvování akademie jsi dostal nabídku na pozici developera v interním vývojovém oddělení Application development.</strong><strong>  </strong> <strong>Jaké byly začátky?</strong></p><p> Znalosti z akademie se mi rozhodně v začátcích hodily. Musím přiznat, že to pro mě nebylo úplně jednoduché skloubit studium a práci na poloviční úvazek, ale na druhou stranu jsem věděl, že chci programovat a byla to pro mě skvělá příležitost. S dalšími dvěma kolegy, Bořkem a Honzou, tvoříme dobrý tým. Dokonce mi pomohli i s bakalářkou.</p><p> <strong>Jaké si měl téma bakalářky a jak jsi se k němu dostal?</strong></p><p> Byla to úplná náhoda, tehdy proběhl v Cleverlance interní email s nabídkou bakalářek/diplomek. A dávalo mi to smysl. Vybral jsem si téma z nabídky- „Analýza a implementace unifikovaného logovacího systému", zní to možná trochu suše, ale řešení, které se mi podařilo navrhnout, má reálnou možnost praktického využití na projektu - a to už je zajímavé. Zároveň mi to přišlo jako velká výhoda spojit psaní bakalářky s prací, vycházet z reálných věcí, které znám, ale hlavně mít u sebe schopného spolehlivého kolegu, s nímž mi diskuze a reálná oponentura dala opravdu hodně.</p><p> <strong>Můžeš nám blíže popsat, v čem tedy tvůj návrh spočívá a jaký byl výstup tvé bakalářské práce?</strong></p><p> Představte si nějaký systém, který když spadne, tak ideálně chcete mít informaci o všem, co se stalo, abyste mohli zjistit, proč se to stalo a chybu napravit. Právě tyhle informace lze uchovat prostřednictvím záznamů, tj. logů. To je ten jednodušší případ. Ale představte si, že systémů či aplikací máte vícero a teď vám spadnou všechny najednou. Aplikace běží na různých serverech, tím pádem záznamy o nich jsou uložené na různých místech, v různých formátech. A nyní to teprve začíná být zajímavé (smích). Musíte se dívat do neskutečně velkého množství složek, abyste zjistili, co se nepovedlo, a to je dost časově náročné.</p><p> <strong>Můžeš uvést příklad?</strong></p><p> Tak například systém nám vyhodí chybu: máme pomalé SMS zprávy. Pro nás to znamená, že musíme vyzkoumat, jak dlouho trvalo zprávu odeslat na našich i na klientských systémech, jinými slovy potřebujeme zjistit, za jak dlouho si tenhle konkrétní uživatel na tohle číslo dobil 100,-Kč kreditu.</p><p> <strong>A jaké řešení jsi navrhl, aby to vývojářům zjednodušilo práci?</strong></p><p> Vymyslet řešení znamenalo najít sadu nástrojů, které umožní dávat záznamy do jednoho místa tak, aby šlo v záznamech jednoduše vyhledávat. Využil jsem tedy částečně stávající řešení a ve spolupráci s Honzou, který mi dělal vedoucího práce, jsem toto řešení modifikoval a vylepšil (smích). Vedli jsme s Honzou dlouhé diskuse, zkoušeli různé varianty, jakou to má mít paměť, kolik to bude zpracovávat požadavků atd. Nakonec nám z toho vypadlo celkem zajímavé řešení, které nabízí kombinace nástrojů Elastic Search, Kibana a upravená verze Logback appenderu.</p><p> <strong>Jaké to je mít hotovou bakalářku? A co plánuješ teď?</strong></p><p> Upřímně jsem si oddechl, že už mám hotovo, i když na stupni vítězů s inženýrským titulem a červeným diplomem v ruce ještě nestojím (smích). Beru to tak, že první meta ve škole je za mnou, bakalářka úspěšně obhájena a v práci se účastním dalšího zajímavého projektu, takže se chci více věnovat koníčkům, na které nebylo teď moc prostoru. Plánuju se naučit nové recepty z vegetariánské kuchyně, abych udělal radost své přítelkyni, dostat se na in-liny a třeba si přečíst něco dalšího od Neila Tysona.</p><p> <strong>Pavle děkuji za rozhovor i za důvěru.</strong></p><p>Zdeňka Sacke<br></p><p> <br> </p>odborné;#vzdělávání;#projekty;#
Konference Fenomén 4.0 ve Zlíněhttps://www.create-it.cz/Blog/Stranky/Fenomen_4_0.aspxKonference Fenomén 4.0 ve Zlíně<p>​Už od roku 2015 s kolegy z oboru, jako je <a href="https://www.youtube.com/watch?v=9jmbIEyvsFQ" target="_blank">nestor Průmyslu 4.0 v ČR prof. Vladimír Mařík </a>a další, evangelizujeme odbornou i laickou veřejnost v oblasti digitální transformace a Průmyslu 4.0. V posledních letech ale mnoho příspěvků sklouzává k nudnému opakování zprofanovaných klišé a buzzwordů. Scénář je většinou zhruba stejný: 1. průmyslová revoluce, 2. průmyslová revoluce, 3. a pozor teď to přijde: 4. průmyslová revoluce! Disruptivní změna, jedeme v tom všichni, srovnání čipu mobilního telefonu a čipu Appola 1, Uber, AirBnB, a následuje vysvětlení, že pokud chcete být 4.0, musíte nutně investovat zaručeně pouze do… (dosaď produkt přednášejícího).</p><p>Rozhodli jsme se, že příspěvek Cleverlance na konferenci Fenomén 4.0 pojmeme trochu jinak. Společně s naším technologickým partnerem, společností PTC reprezentovanou Romanem Šedivým, jsme nahlédli do dnešních fabrik. V mnoha z nich jsou už vidět prvky digitalizace. Mají svá <a href="https://cs.wikipedia.org/wiki/Pl%c3%a1nov%c3%a1n%c3%ad_podnikov%c3%bdch_zdroj%c5%af" target="_blank">ERP</a> (byť to stále v některých firmách znamená Excel Resource Planning), někde už implementovali <a href="https://cs.wikipedia.org/wiki/V%c3%bdrobn%c3%ad_informa%c4%8dn%c3%ad_syst%c3%a9m" target="_blank">MES</a> systémy (byť nejpoužívanějším MES zůstává Microsoft Excel Sheet). Ale tyto systémy jsou vlastně obrovskými izolovanými datovými sily, v nichž bez užitku leží terabyty dat. <br></p><p>Posluchačům jsme proto živou praktickou ukázkou předvedli, jakým způsobem lze v rámci konceptu CleverIndustry implementovat digitální orchestrační platformu ThingWorx a proměnit tak suchá data v cenné analytické informace. Ty umožňují přejít<strong> </strong>k datovému řízení továrny, která tak maximalizuje vytížení výrobních kapacit a zároveň optimalizuje chod všech procesů ve výrobním závodě. A v neposlední řadě pomáhá dosahovat maximální kvality produkce.</p><p>Věděli jste například, že napojení jednoho stroje v rámci nástroje <a href="https://www.kepware.com/en-us/" target="_blank">PTC KEPWARE</a> zabere zhruba 50 vteřin? Po 50 vteřinách začínáte získávat data o jeho vytíženosti, počtu vyrobených kusů, nebo procesní data v rámci výrobního procesu. Ta jsou zase důležitá pro kvalitu výrobku. Jde například o teplotu, tlak, kroutící moment a další klíčové procesní hodnoty. Pokud má stroj v sobě zabudované PLC, jsme schopni ho připojit a to pomocí jakéhokoliv ze 174 protokolů, které na světě existují. KEPWARE totiž mluví plynule všemi těmito 174 „jazyky". I to jsme účastníkům konference ukázali v živé ukázce.<br></p><p style="text-align:center;"> <img src="/Blog/PublishingImages/Stranky/Fenomen_4_0/fenomen-3.jpg" alt="fenomen-3.jpg" style="width:400px;height:300px;" /> </p><p> </p><p>Velký ohlas měla i přednáška kolegy Mikuláše Müllera v rámci Smart stage. I když bylo po obědě, sál praskal ve švech. Mikyho příspěvek nesl jméno „Digitalizace měření a korekcí, aneb cesta k budoucnosti přesného obrábění" a zaměřil se na představení konkrétní implementace. Ta našemu zákazníkovi přináší hmatatelné výsledky a umožňuje mu dramatickým způsobem zvýšit kvalitu produkce a zároveň zkrátit čas potřebný na výrobu.<br></p><p>Čilý ruch pak mezi jednotlivými bloky přednášek panoval na našem stánku, který byl umístěn ve foyer.<br></p><p style="text-align:center;"> <img src="/Blog/PublishingImages/Stranky/Fenomen_4_0/fenomen-1.jpg" alt="fenomen-1.jpg" style="width:400px;" /> </p><p> </p><p>Třešničkou na dortu byla návštěva vily Tomáše Bati. V tomto inspirativním prostředí jsme měli možnost více než 2 hodiny čerpat inspiraci z fenoménu, jakým Tomáš Baťa byl. Z přednášky ředitele nadace Tomáše Bati, Pavla Veleva, si odnáším jedno: Je potřeba ještě hodně práce na digitální transformaci českého průmyslu. Pak se možná opět staneme špičkou v celosvětovém měřítku tak, jako tomu bylo na počátku 20. století.</p><p> <i>David Řehoř</i><br></p>odborné;#
Jak jsem ovládal hry vlastní myslíhttps://www.create-it.cz/Blog/Stranky/ovladani-her-mysli.aspxJak jsem ovládal hry vlastní myslí<h1></h1> <span style="text-align:justify;">Neuroinformatika je rozsáhlý obor zabývající se zpracováním dat z oblastí neurověd pomocí výpočetních nástrojů. Tyto nástroje jsou tzv. Brain-Computer Interfaces, jsou však velice drahé, ve vědeckých sférách se cena hardwaru pohybuje cenově mezi 20-50 tisíci dolary. Dobrou alternativou pro nadšence a experimentátory jsou proto nástroje na nižší úrovni - mají menší přesnost snímání, ale pro běžné experimenty postačí. Čtečku mozkových vln si tak můžete koupit i vy za cca 10-20 tisíc korun. Jednu z těchto čteček jsem osobně využil k ovládání her, jak jsem to udělal se dočtete dále.</span> <h2>Trocha teorie</h2><p>Nejprve si ale popíšeme pár důležitých pojmů. <em>Elektroencefalografie</em>, neboli EEG, je metoda pro zaznamenávání elektrické aktivity mozku skrz detekci povrchového napětí na pokožce hlavy, kam probíjí elektrické impulsy probíhající při přenášení informací mezi neurony v mozku. K získání elektrického výstupu jsou použity elektrody, které jsou umístěny na pokožku hlavy (v některých případech se používá vodivý gel, jelikož např. ženy mají menší vodivost kůže než muži). Tyto elektrody pak čtou mozkové impulsy ve formě signálu, který odpovídá části mozku, která jej vysílá.<br></p><p>BCI je zařízení, které nevyžaduje ovládání pomocí fyzické aktivity, ale spoléhá čistě na čtení mozkových vzruchů přes elektrody rozmístěné na hlavě.Toto zařízení lze pak použít pro ovládání široké škály dalšího hardware, jako jsou počítače,vozíky, robotické paže, pro implementaci robotického vidění atp. BCI zařízení jsou často používána pro výzkum, mapování, asistenci, augmentaci nebo opravu kognitivních nebo <a href="https://en.wikipedia.org/wiki/Motor_cortex">sensorimotorických</a> funkcí.<br></p><p>Elektrody jsou podle mezinárodně uznávaného "Systému 10-20" rozmístěny na odpovídající pozice na hlavě. Čísla 10 a 20 v názvu značí vzdálenost 10% a 20% od přední/zadní strany hlavy a levé/pravé strany hlavy. Každá pozice má přiřazenou jinou oblast mozkové kůry, pozice vpředu jsou tak zodpovědné za prefrontální kortex, vzadu zase za vizuální kortex.<br></p><p> <img src="/Blog/PublishingImages/Stranky/ovladani-her-mysli/pozice.png" alt="eeg.png" /> <br> </p><h4 style="text-align:center;"> zdroj: <a href="https://en.wikipedia.org/wiki/10%E2%80%9320_system_%28EEG%29#/media/File:21_electrodes_of_International_10-20_system_for_EEG.svg">https://en.wikipedia.org/wiki/10%E2%80%9320_system_(EEG)#/media/File:21_electrodes_of_International_10-20_system_for_EEG.svg</a><br></h4><p>Mozkové vlny mají různou frekvenci, na základě které můžeme přibližně určit, v jakém stavu se zkoumaný mozek nachází. Pokud jsou v mozku dominantní pomalé mozkové vlny, resp. vlny nízké frekvence, člověk se může cítit pomalý neb unavený. Naopak čím vyšší frekvence, tím je obecně člověk soustředěnější a ve střehu. Mozkové vlny se měří v Herzích (Hz). Většina mozkových vln se vyskytuje ve frekvenčním rozsahu od 0.5 do 100 Hz.</p><p>Každé vlnové spektrum je symptomem jiného stavu mozku a každá mozková oblast má jiné „rozpoložení" těchto vln.<br></p><p> <a href="https://www.youtube.com/watch?v=agV1B2l-QLw"> <img src="/Blog/PublishingImages/Stranky/ovladani-her-mysli/video_BCI.png" alt="video_BCI.png" /></a> <br></p><h4 style="text-align:center;">Podívejte se, jak detekce probíhá v praxi - zde je video o nástroji OpenBCI Ultracortex, který jsem použil pro vlastní výzkum.<br></h4><h2>Ovládání her</h2><p>Pro ovládání her jsem použil detekci úmyslu zvednout jednu z končetin. Tento "úmysl" lze detekovat v sensorimotorickém kortexu na frekvenci Mu rytmů. Sensorimotorický kortex je na vrcholu hlavy a signál jeho neuronů měří elektrody C1, Cz a C2 (obrázek výše). Díky tomuto kortexu můžeme pohybovat končetinami. Je zodpovědný za jemnou (prsty) i hrubou motoriku, a také za synchronizaci pohybu (chůze).<br></p><p>Na frekvenci 7.5-12.5 Hz lze detekovat už i jen samotný úmysl zvednout jednu z končetin. K ovládání her samozřejmě postačí i jednodušší detekce - např. v prefrontálním kortexu (za čelem, umožňuje plánovat, držet pozornost, rozhodovat se a dokončovat úlohy) lze snadno detekovat pokles napětí při zavření očí. Lze tak detekovat otevřené a zavřené oči pomocí EEG vln - ale mnohem snazší metoda by v tomto případě byla samozřejmě kamera s detektorem. Výstup pak stačí namapovat na herní příkazy.</p><p> <img src="/Blog/PublishingImages/Stranky/ovladani-her-mysli/graf.png" alt="graf.png" /><br></p><h4 style="text-align:center;">příklad poklesu napětí (mV) v mém mozku při zavření očí a krátké meditaci (10-65 sekund)<br></h4><p>Podobně tomu je i u detekce úmyslu zvednout končetinu. Samozřejmě, že to není snadný úkol. Musel jsem použít několik testovacích subjektů, u kterých jsem nasbíral potřebná data - nechal jsem je koukat na vcelku nudný program, prezentující jim příkazy jako "Mysli na to, jak zvedáš levou ruku" zároveň s vizuálním stimulusem v podobě GIF obrázků z filmů, vyobrazující daný pohyb. Nasbíral jsem tak data (signál, hodnoty mV), ve kterých jsem se snažil naleznout nějaký vzor, který by spolehlivě dokázal rozlišit mezi myšlením na zvednutí pravé ruky/levé ruky atp. K tomu jsem použil strojového učení - pro člověka je to na takovém množství zdánlivě náhodných dat nemožný úkol. Velkou roli hraje také mozkový šum, ruchy vyslané pohyby čelisti nebo těla uživatele a v mysli se odehrávající myšlenky, které mohou proces narušit. Při sbírání dat bylo nutné, aby byl uživatel v klidu a soustředěn.</p><p> </p><p>Na nasbíraná a předzpracovaná EEG data jsem použil klasifikační metody jako <a href="https://cs.wikipedia.org/wiki/Support_vector_machines">Support Vector Machines</a>, <a href="https://en.wikipedia.org/wiki/Gradient_boosting">Gradient Boosting</a> a <a href="https://cs.wikipedia.org/wiki/N%C3%A1hodn%C3%BD_les">Random Forests</a> (v oboru Data Science vcelku běžné metody - nejsou tak silné jako neuronové sítě, ty však při experimentech v jiných výzkumech ukazují podobnou úspěšnost při klasifikaci dat). Určil jsem tak, zda nositel myslí na pravou/levou nohu/ruku - tzn. může použít 4 příkazy nebo namapovat svoje myšlenky na klávesy ve hře.<br></p><p>Metoda je však velice nepřesná, díky již tak nízké přesnosti BCI zařízení. Použil jsem tedy další metodu, a to tzv. <strong>detekci soustředěné pozornosti.</strong></p><h2>Detekce soustředění</h2><p>U dětí s poškozeným prefrontálním kortexem se vyskytuje ADHD a jedna z alternativních léčebných terapií je tzv. neurofeedback - biofeedback terapie využívající BCI zařízení a vizuální hry. Uživatelův mozek se tak díky zpětné vazbě naučí, jak správně držet pozornost.<br></p><p>Pro neurofeedback se v prefrontálním kortexu detekuje poměr alfa (8-13 Hz) a beta vln (>13 Hz) - někdy se používá i poměr mezi alfa a theta (3.5 - 7.5 Hz) vlnami.<br></p><p>Tato detekce se řadí mezi ty snadnější, na vstupním signálu se provede frekvenční analýza a pokud poměr vln spadá pod nějakou hranici, člověk se pravděpodobně nesoustředí. Jinak se soustředí. Na základě toho jsem vytvořil jednoduchou hru, kde je cílem hráče zvednout sochu Buddhy vlastní soustředěnou pozornosti. Prezentoval jsem ji na ExcelFIT konferenci, kde si příchozí mohli vyzkoušet, jak dlouho vydrží. Nejdelší čas byl 38 sekund.<br></p><h4 style="text-align:center;"> <img src="/Blog/PublishingImages/Stranky/ovladani-her-mysli/budha.png" alt="budha.png" style="margin:5px;width:650px;" />Hra vytvořena v Unity - pojmenoval jsem ji NeuroBuddha</h4><p>Pokud vás ovládání počítače myslí zaujalo, budete potřebovat vhodný BCI hardware. Já použil OpenBCI Ultracortex IV, který není přiliš vhodný na běžné používání, např. pro analýzu statistik vlastní meditace - z elektrod, které jsou pevně zabodnuté do pokožky hlavy bolí po 30 minutách hlava.<br></p><p>Doporučuji proto alternativní (a pohodlnější) BCI nástroje jako jsou např. Neurosky MindWave, Muse, Emotiv EPOC nebo Neuroelectrics Enobio.<br></p><p> <i>Jan Jileček​</i><br></p>odborné;#vzdělávání;#
5 programovacích jazyků pro začátečníky https://www.create-it.cz/Blog/Stranky/5-jazyku-pro-2020.aspx5 programovacích jazyků pro začátečníky <p>Na sklonku roku si řada lidí dává předsevzetí a často mezi ně patří naučit se něco nového. Je i na vašem seznamu kolonka "naučit se programovat", ale nevíte, který programovací jazyk si vybrat a jak vlastně začít? Připravili jsme pro vás malý přehled pěti nejpoužívanějších jazyků na GitHubu včetně tipů, jak na to.<br></p><h1>Python</h1><p>Je obecně vnímán jako vstupní jazyk pro začátečníky, jelikož je rychlý, jednoduchý a má rozsáhlou komunitu vývojářů. Byl vytvořen s důrazem na čitelnost kódu, který se velice podobá angličtině (tedy vysokoúrovňový jazyk, je daleko od strojového kódu). Obsahuje velké množství knihoven, které slouží pro rozšíření funkcionality skriptů - protože se jedná o skriptovací jazyk, nejsou vytvářeny přímo spustitelné (tzv. kompilované) programy, ale skripty, které Python interpretuje. </p><p>V praxi se hodí například pro psaní skriptů pro urychlení repetitivní činnosti, ať už mezi vědci, výzkumníky nebo běžnými programátory. Využívá se hojně pro analýzu dat, zpracování obrazu, zvuku, jako webový backend (framework Django, Flask) a ve strojovém učení je jeho síla znatelná při rychlém návrhu a používání neuronových sítí, pro které existuje také mnoho Python frameworků (Caffe, TensorFlow, Keras). Pro oblasti, kde se musí dbát na bezpečnost (banky, letectví) se Python nehodí, pracují s ním zejména vědci a výzkumníci - využít se ale může takřka pro cokoliv, co vás napadne - od skriptů pro váš smart home, přes posílání stovek požadavků na server za účelem vyhrát nějakou soutěž, programování 2D her, až po detekci aut ve video stopě kamerového provozu v reálném čase. O novinkách (určených pro pokročilejší) v jeho poslední verzi se dočtete v článku "<a href="/Blog/Stranky/python-novinky.aspx">Novinky v Pythonu 3.8</a>".</p><p>Pokud chcete Python vyzkoušet, stačí si stáhnout jeho interpreter na oficiálním <a href="https://www.python.org/downloads/">webu</a> (který obsahuje rozsáhlou dokumentaci a návody), nebo můžete využít nesčetně kurzů na webech jako jsou Udemy a Coursera. Možností je také online interaktivní iPython - <a href="https://mybinder.org/v2/gh/ipython/ipython-in-depth/master?filepath=binder/Index.ipynb">Jupyter Notebook</a>. Malá zajímavost - tvůrce jazyka, Nizozemec Guido Van Rossum, pojmenoval jazyk podle britské skupiny komiků, Monty Python (Monty Pythonův létající cirkus). Ve srovnání s jinými jazyky pro mě i po letech Python zůstává nejzábavnějším jazykem.</p><img src="/Blog/PublishingImages/Stranky/5-jazyku-pro-2020/Python.png" alt="Python.png" style="margin:5px;width:650px;" /><br><h1>Javascript</h1><p>Javascript je programovací jazyk, který přidává interaktivitu webové stránce (například hry, reakce na stisknutá tlačítka, upozornění při špatně zadaných datech do formulářů, dynamické stylování a animace). Zajišťuje generování obsahu předtím, než je stránka vykreslena v prohlížeči, ale také pro dynamickou změnu obsahu stránky za běhu. Javascript má všestranné použití a je relativně přátelský pro začátečníky. Ve svojí původní podobě se ale dnes skoro nevyskytuje, v praxi ho nahradily nesčetné frameworky, které pro něj vývojáři po celém světě vytvořili. Mezi ty hlavní patří NodeJS, VueJS, ReactJS (vytvořen korporací Facebook) a podobné. </p><p>Rozšiřuje se i díky multiplatformním frameworkům jako je např. <a href="https://facebook.github.io/react-native/">ReactNative</a> - ten umožňuje psát aplikace za použití ReactJS, které budou vypadat stejně jak v prohlížeči, tak i jako aplikace na mobilu (Android, iOS). </p><p>Jeho hlavními výhodami je široká použitelnost, pravidelné aktualizace díky ECMA specifikaci a rychlost, jeho hlavní nevýhodou je zneužitelnost pro webové exploity.</p><p>Pokud ho chcete zkusit, zmáčkněte v prohlížeči F12, klikněte na kartu Console a zkuste napsat console.log ("Hello Javascript") a stiskněte Enter. První Javascript příkaz máte za sebou! Zbytek se naučíte v online <a href="https://javascript.info/">kurzech</a> a pro otestování, jak Javascript funguje v online formulářích poslouží tento interaktivní <a href="https://jsfiddle.net/surveyjs/khsf8rdg/">příklad</a>. Pokročilejší ReactJS se zase můžete naučit na Codeacademy.</p><p><img src="/Blog/PublishingImages/Stranky/5-jazyku-pro-2020/Javascript.png" alt="Javascript.png" style="margin:5px;width:650px;" /><br></p><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:40px;">Java</span><p>Java je tzv. univerzální programovací jazyk, je navržen pro co nejširší škálu využití, podobně jako Python nebo Javascript. Je multiplatformní a její kód se kompiluje do <a href="https://techterms.com/definition/bytecode">byte kódu</a>, který je spuštěn na Java Virtual Machine (JVM). Javu potkáte dnes hlavně v bankovnictví, pro stavbu podnikových aplikací, v mobilních aplikacích (Android, <a href="/Blog/Stranky/Kotlin1.aspx">Kotlin</a>) a při práci s velkými objemy dat. Banky mají Javu v oblibě kvůli její bezpečnosti a stabilitě, a to zejména ve verzi Java Enterprise Edition. Její bezpečnost a stabilita je ale vykoupena relativní paměťovou náročností a pomalostí. Osobně byla Java můj první jazyk na škole, napsal jsem v ní i první 2D hru (použil jsem framework LWJGL, ve kterém vývojář Notch vytvořil slavnou hru Minecraft), ale v praxi jsem ji shledal spíše nudnou - díky zaměření na podnikové aplikace a bankovní sektor se obvykle jedná o projekty orientované hlavně na vydělávání peněz a maximalizaci zisku. Takže pokud chcete programováním vydělat překvapivě vysoké částky, je Java ideální. Z mojí zkušenosti ale není Java pro lidi, kteří potřebují mít v práci jiný smysl, než jen peníze. Vždy samozřejmě záleží na typu projektu.</p><p>S Javou můžete začít stažením vývojového studia <a href="https://www.jetbrains.com/idea/">IntelliJ IDEA</a>, které se za vás postará o instalaci vývojového prostředí a balíků Java Development Kit a Java Runtime Environment.</p><p>Zajímavost - navzdory tomu, že v Javě byla napsána jedna z nejúspěšnějších her všech dob, Minecraft, není Java vhodná pro vývoj her (nedostatky výše). Herní vývojář Notch ji zvolil proto,  že ji slušně ovládal, ale nepovažoval se v té době za dobrého programátora, proto první verze hry nebyly příliš optimalizované pro plynulý běh.<br></p><p><img src="/Blog/PublishingImages/Stranky/5-jazyku-pro-2020/java.png" alt="java.png" style="margin:5px;width:650px;" /><br></p><h1>Go</h1><p>Go, také známý jako Golang je programovací jazyk vytvořený korporací Google. Poskytuje výbornou podporu pro vícejádrové aplikace a proto ho využívají zejména společnosti, které závisí na distribuovaných systémech (startupy v Silicon Valley). Jinými slovy: pokud se chystáte zapojit do startup kultury, Go je ten správný jazyk.</p><p>Je <a href="https://cs.wikipedia.org/wiki/Typov%C3%A1_kontrola">staticky typovaný</a> (stejně jako Java) a  tudíž je bezpečnější při vývoji a ne tak náchylný k bugům - ideální pro stavění Single Page Aplikací a programů pro vícejádrové procesory. Jedná se o relativně nový jazyk, proto zatím nepodporuje mnoho knihoven a je spíše jednostranný. Podobá se nízkoúrovňovému jazyku C. Hlavní předností jazyka Go je jeho vyjadřovací síla, čistota a efektivita. Začít můžete stažením <a href="https://golang.org/dl/">kompilátoru</a> jazyka a vyzkoušením návodů v dokumentaci.<br></p><p><img src="/Blog/PublishingImages/Stranky/5-jazyku-pro-2020/go.png" alt="go.png" style="margin:5px;width:650px;" /><br></p><h1>R</h1><p>R je jedním z nejčastěji používaných jazyků pro analýzu dat a strojové učení (ML). Součástí jazyka R je vynikající framework a vestavěné knihovny pro vývoj ML algoritmů. Hodí se také pro statistické výpočty, analýzy a pro tvorbu grafů. Ti, co hledají pozici jako datoví analytici, nešlápnou s jazykem R vedle.</p><p>Hlavní výhodou R je jeho schopnost běžet na různých operačních systémech, masivní komunita vývojářů, vysoká rozšiřitelnost a silná podpora dalších knihoven a balíků. Nevýhodou pak je jeho relativní nebezpečnost a špatná správa paměti. Jedná se o open-source, a kvalita některých balíků je podprůměrná. Začít s R můžete stažením vývojového studia <a href="https://rstudio.com/products/rstudio/download/">RStudio</a> a jako tutoriál poslouží skvělé <a href="https://www.youtube.com/watch?v=s3FozVfd7q4">video</a> od Dereka Banase.</p><p><img src="/Blog/PublishingImages/Stranky/5-jazyku-pro-2020/R.png" alt="R.png" style="margin:5px;width:650px;" /></p><p>Ať už si pro rok 2020 vyberete jakýkoliv jazyk, volte pečlivě podle oboru, do kterého se chcete dostat. Tyto jazyky již existují mnoho let a v praxi se stabilně používají. Každý rok se také řadí mezi nejpoužívanější jazyky, takže s nimi nešlápnete vedle. Závisí už jen na vás, jaké dílo s nimi vytvoříte a jakým projektům přispějete svojí kreativitou.</p><p><em>Jan Jileček </em></p>odborné;#vzdělávání;#
Novinky v Pythonu 3.8https://www.create-it.cz/Blog/Stranky/python-novinky.aspxNovinky v Pythonu 3.8<p>Nedávno spatřila světlo světa nová verze skriptovacího jazyka Python.<br></p><p><a href="https://cs.wikipedia.org/wiki/Python" target="_blank">Python</a> je interpretovaný objektově orientovaný jazyk, vhodný zejména pro skriptování a rapidní vývoj aplikací (RAD). V roce 2019 je nejžádanějším jazykem na trhu, přitom je díky svojí jednoduchosti také považován za jazyk pro začátečníky.</p><p>Má lehce čitelný kód (je navržen tak, aby byl co nejpodobnější přirozené angličtině), podporuje více programovacích paradigmatů, má robustní zásobu standardních knihoven a navíc je podpořen mnoha open-source frameworky a nástroji.</p><p>Pojďme se podívat na novinky, které programátorům usnadní a zpříjemní vývoj v jeho nejnovější verzi.<br></p><h2>Nový přiřazovací výraz := neboli mroží operátor</h2><p>Mroží operátor umožňuje zapsat výraz, který zároveň přiřadí do proměnné hodnotu (uvnitř výrazu). Tento zkrácený způsob zápisu nalezne uplatnění zejména v cyklech.<br></p><p> <img src="/Blog/PublishingImages/Stranky/python-novinky/readline.png" alt="readline.png" /> </p><div> <span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">Pouze poziční parametry (/)</span> <p>Nově lze použít speciální syntax (/) při definici argumentů metody. Pomáhá odlišit argumenty, které jsou pouze poziční a ty, které jsou pojmenované (na levé straně operátoru / jsou všechny argumenty použitelné pouze jako poziční). Tato novinka podpoří konzistenci jazyka a umožní robustnější API návrh.<br></p><p> <img src="/Blog/PublishingImages/Stranky/python-novinky/pow.png" alt="pow.png" /> </p><h2>Pro snadnější debugging nyní F-řetězce podporují =</h2><p>Pro ladění skriptů pomocí tisku proměnných se určitě najde nějaké využití mezi začátečníky a v logovacích výpisech. Ladění pomocí F-řetězců je teď usnadněno díky automatickému přiřazování formátovacích řetězců do výpisu podle jména proměnné.</p> <img src="/Blog/PublishingImages/Stranky/python-novinky/debug.png" alt="debug.png" /> <h2>Funkci reversed() lze aplikovat i na slovníky</h2><p>Python dokáže již od verze 3.7 udržovat pořadí, ve kterém byly přidány klíče do slovníku. Vestavěná funkce <em>reversed</em> nyní obrátí pořadí klíčů - stejně jako <em>OrderedDict</em>.</p><p> <img src="/Blog/PublishingImages/Stranky/python-novinky/datetime.png" alt="datetime.png" /> <br> </p> <span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">Dekorátor "final"</span> <p>Python nově podporuje klíčové slovo "final", které C++ a Java programátoři již dobře znají. Klíčové slovo final dokáže zamezit třídě, aby byla děděna. Proměnné jsou pak finální, nelze jim znovu přiřadit hodnotu a finální metody nelze překrýt.</p><p> <img src="/Blog/PublishingImages/Stranky/python-novinky/final.png" alt="final.png" /> <br> </p> <span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">Shrnutí</span> <p>V nové verzi Pythonu je značné množství novinek, které stojí za prozkoumání. Ty nejzásadnější jsme probrali, zbytek lze naleznout v <a href="https://docs.python.org/3/whatsnew/3.8.html">dokumentaci</a>. Upgrade na novou verzi je proveditelný bez potíží, takže hurá do experimentování!<br></p><p><i>Jan Jileček</i></p></div>odborné;#vzdělávání;#
UX in Action: The Best of WebExpo 2019https://www.create-it.cz/Blog/Stranky/Webexpo2019.aspxUX in Action: The Best of WebExpo 2019<p>Na konci září v Praze se konala významná evropská konference WebExpo 2019, nabízející aktuální žhavá témata ohledně webu pro vývojáře, designery i markeťáky. Pojďme se podívat, co zajímavého nabídla.</p><h2>Oobah Butler – Jak se prolhat k londýnské jedničce</h2><p>Známý britský publicista a filmový tvůrce Oobah Butler vyprávěl svůj příběh, kdy v roce 2017 založil fiktivní restauraci v Londýně. Vymyslel jí jméno "<em>The Shed at Dulwich</em>", zakoupil doménu a během pár dní vytvořil <a href="https://www.theshedatdulwich.com/" target="_blank">webové stránky</a> (stále fungují), pro které profesionálně nafotil neobvyklá jídla z takových přísad jako houbička na mytí nádobí, tableta do myčky, zrnka kávy nebo holicí pěna(!). Dále zakoupil telefon a restauraci zaregistroval na cestovatelské stránky <a href="https://www.tripadvisor.com/" target="_blank">www.tripadvisor.com</a>. Kamarádi a známí dávali této restauraci falešné recenze, neexistující restaurace začala být známá a lidé začali po nějaké době volat pro rezervaci stolu. Oobah se vždy jen omlouval, že mají bohužel plně obsazeno na několik týdnů dopředu. A tak se stalo, že za půl roku se restaurace, která reálně vůbec neexistovala, stala na webu TripAdvisor restaurací č. 1 v Londýně! Podrobnou reportáž najdete ve webovém magazínu <a href="https://www.vice.com/en_uk/article/434gqw/i-made-my-shed-the-top-rated-restaurant-on-tripadvisor" target="_blank">Vice</a> nebo v dokumentu na <a href="https://www.youtube.com/watch?v=bqPARIKHbN8" target="_blank">Youtube</a>.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Webexpo2019/Picture2.png" alt="Oobah Butler" />Příběh falešné restaurace šokoval svět a Oobah byl zván do rádií a televizních kanálů po celém světě na rozhovory. Evidentně ho to moc nebavilo a začal tam posílat tajně své kamarády. Vlastně začal sám sebe outsourcovat. A víte co? Vůbec se na to nepřišlo! A natočil o tom další <a href="https://www.youtube.com/watch?v=zMZ7BsoUAG8" target="_blank">dokument</a>. </p><p>Své vyprávění gradoval třetím, také <a href="https://www.youtube.com/watch?v=jolbYvAMorY" target="_blank">zfilmovaným příběhem</a>, kdy se rozhodl stát se světoznámým módní návrhářem. Když se procházel po trzích Londýna, zaujaly ho džíny falešné značky <em>GEORGIO PAVIANI</em>. Jakou světoznámou značku nám to jen připomíná?</p><p>Vytvořil webové stránky, nafotil prvotřídní modely oblečení (rozstříhané džíny z trhu) a nechal si udělat vizitky: "<em>GEORGIO PAVIANI - THE MARKET LEADER</em>". Následně si zařídil pozvánku na proslavený Fashion Week do Paříže, kam opravdu odcestoval. Tam Oobah "svou" značku propagoval, seznámil se s několika vlivnými influencery, kteří falešného návrháře a jeho výtvory vychválili na sociálních sítích. Ze značky <em>GEORGIO PAVIANI</em> se tak doslova přes noc stala světoznámá módní ikona a lidé začali do Londýna pro džínové ošacení létat. Nakonec Oobah vybudovaný brand předal původnímu majiteli, který má nyní na stránkách eshop a denně mu chodí objednávky na proslavené módní džíny.</p> <img src="/Blog/PublishingImages/Stranky/Webexpo2019/Picture3.png" alt="Oobah Butler" /> <p>Oobah Butler ve svých reportážích takto demonstroval, jak vzdálená je realita internetu a sociálních sítí od té skutečné reality. Pokud hledáme restaurace pouze podle počtu hvězdiček, můžeme být mnohdy dost zklamaní, protože nákup pozitivních recenzí je dnes na webu běžnou praxí.</p><h2>Petr Štědrý – Nedělejte persony</h2><p>V neobvyklé <a href="https://slideslive.com/38918907/dont-do-personas-start-with-understanding-people" target="_blank">prezentaci</a> nám Pavel Štědrý doporučil, abychom při výzkumu nevytvářeli persony. Metoda person spočívá v tom, že na základě výzkumu a pohovorů sestavíte imaginární profily typických uživatelů. Přirovnával tuto techniku ke kargo kultu, kdy domorodci na tichomořských ostrovech stavěli po válce z klacků a trávy letadla, protože chtěli přivolat zpět americké vojáky, od kterých dostávali jídlo a Coca Colu. Považovali je za božstvo. Vytvářet persony při výzkumu je v dnešní době prý také kult. Použití person je ale mnohdy neopodstatněné. </p><p> <img src="/Blog/PublishingImages/Stranky/Webexpo2019/Picture4.png" alt="nedelejte persony" /> </p><p>Mnohem důležitější než vytvářet persony, tedy kategorizovat typické uživatele, je poznat detailně jejich potřeby a proces, jak pracují a jak se chovají. Petr tedy doporučuje zaměřit se primárně na kontextové scénáře. A také provádět uživatelské testování, které zatáhne uživatele přímo do procesu návrhu. Analýzou výsledku testů lze pak přijít na slabá místa produktu, která je třeba vylepšit. S těmito argumenty nezbývá než souhlasit.</p><p>V rozporu s tímto tématem pak proběhla přednáška designerů společnosti <a href="https://global.flixbus.com/" target="_blank">Flixbus</a>, kteří představili případovou studii, kde popisovali design proces mobilního webu. Ti ve svém výzkumu naopak s personami pracovali. Výsledkem byl nový, rychlý a úspěšný web s promyšlenými funkčnostmi a UX. Prezentaci můžete <a href="https://slideslive.com/38918931/the-web-strikes-back-transforming-users-needs-into-a-highly-performant-mobile-web" target="_blank">shlédnout online</a>.<br></p><h2>Vitaly Friedman – Myslete na soukromí během designování </h2><p>Hvězdou konference byl bezesporu Vitaly Friedman, známý odborník v oblasti UX, autor několika knih a spoluzakladatel webového magazínu <a href="https://www.smashingmagazine.com/" target="_blank">smashingmagazine.com</a>. Vitaly měl na konferenci několik přednášek, <a href="https://slideslive.com/38919319/designing-anb-building-with-privacy-in-mind" target="_blank">v této konkrétní rozebíral bezpečnost osobních dat na internetu</a>. </p><p>Upozornil zde na velmi oblíbenou appku <a href="https://www.faceapp.com/" target="_blank">FaceApp</a>, která za pomocí umělé inteligence transformuje váš obličej na úsměv, dítě nebo dědečka. Pokud ji nainstalujete, musíte odsouhlasit podmínky pro používání, které pravděpodobně vůbec nebudete číst. Ale měli byste! Je tam uvedeno, že dáváte plné, placené a neodvolatelné právo společnosti na vaše fotky, které mohou být dále upraveny, šířeny a volně publikovány! Takže se klidně váš obličej může objevit v reklamě na viagru a vy s tím vůbec nic neuděláte! A to nechcete.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Webexpo2019/Picture5.png" alt="Privacy by Design" />Vitaly tímto příkladem upozornil, že zaškrtnutí „četl jsem a s podmínkami souhlasím" je největší lež na internetu. A nabádá s tímto současným problémem bojovat. První vlaštovkou jsou třeba stránky <a href="https://tosdr.org/" target="_blank">https://tosdr.org/</a>, kde jsou hodnoceny podmínky k odsouhlasení u známých internetových gigantů jako Google, Youtube, Twitter, Facebook, Wikipedia a další. Společnosti zde dostávají známku, jak široce své uživatele podvádí. A tito velcí hráči rozhodně nedopadli dobře!</p><p>Další doporučovanou aplikací je <a href="https://chrome.google.com/webstore/detail/ghostery-%e2%80%93-privacy-ad-blo/mlomiejdfkolichcflejclcbmpeaniij?hl=cs" target="_blank">Ghostery</a>. Jedná se o plugin do prohlížeče Chrome, který ochraňuje vaše soukromí a zabraňuje webům monitorovat vaše aktivity. Nebo další doplněk <a href="https://hellogoodbye.app/" target="_blank">Hellogoodbye</a>, který zabraňuje otvírání otravných oken pro chatování.</p><p>Během své přednášky shrnul typické chování aplikací a webů v roce 2019 a nastínil, jak jsou nebezpečné nebo otravné pro uživatele. A také jak se bránit.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Webexpo2019/Picture6.png" alt="user behavior 2019" /> <br> </p><p>Vitaly nakousl také žhavé téma ohledně GDPR a potvrzování cookies na webu. Uvedl odstrašující příklady, kdy musíte vše zaškrtnout. Uživatel tak nemá šanci se svobodně rozhodnout. A to je vyloženě proti pravidlům GDPR. Nastínil také budoucnost internetu, kdy bude nastavení pro cookies (a jednotlivé úrovně bezpečnosti) přímo v prohlížeči a weby tuto informaci budou jen přebírat a řídit se jimi. Také loboval za příjemnější a hlavně „upřímnější" UX při návrhu cookies souhlasů. Webové stránky a aplikace by se prostě měly chovat k uživatelům fér. <br></p><h2>Inna Kerzman – Jak získat srdce nových uživatelů</h2><p>Inna Kerzman je zkušená designérka z Izraele, specializující se na retenci zákazníků (udržení či zadržení odcházejících zákazníků). Ve své <a href="https://slideslive.com/38918906/how-to-win-the-hearts-of-your-new-users" target="_blank">prezentaci</a> představila konkrétní případy, kdy na webu získáte nové zákazníky, ale ti se už nikdy nevrátí. Ale proč?<br></p><p> <img src="/Blog/PublishingImages/Stranky/Webexpo2019/Picture7.png" alt="Inna Kerzman" />Krásným příkladem je online aplikace pro vytváření videa, kde na úvodní stránce je uvedeno: "Best online video maker. Free forever." Představte si, že věnujete svůj čas vytváření videa a v posledním kroku se překvapivě dozvíte, že uložit lze pouze 2-minutový vzorek v nízké kvalitě. A pokud chcete stáhnout plnohodnotné video, musíte zaplatit! Cítíte se podvedeni? No jasně! I když autor vyloženě nelže a můžete si video zdarma stáhnout, je vám k ničemu. A to je ten důvod, proč jsou zákazníci službou zklamáni a již nikdy nepřijdou. </p><p>První zkušenost zákazníka je nesmírně důležitá. Inna říká, že průměrně ztrácíme 85% zákazníků po prvním nákupu, kdy zákazník zboží (popř. službu) i samotný nákup vyhodnotí. A vidí zde velkou příležitost k vylepšení. Při výzkumu si proto musíme odpovědět na základní otázky:</p><ul><li>Kdo jsou naši zákazníci? </li><li>Jakou hodnotu očekávají?</li><li>O co jsme lepší než konkurence?</li></ul><p>Díky těmto odpovědím můžeme připravit správné služby a vytvořit u zákazníků pozitivní zkušenost. Ta je pro opakující se návštěvy základním předpokladem. Inna doporučuje se také ptát úspěšných zákazníků (např. emailem, anketa), jaké jsou jejich zkušenosti a tam se inspirovat. <br></p><h2>Vitaly Friedman – Vraťte webu zpět osobitost</h2><p>Tentokrát Vitaly Friedman vystoupil s prezentací, kde mluvil o kreativitě a UX na webu. Potvrdil základní pravidlo UX, že výsledný produkt by měl bavit a uživatel by si jej měl zapamatovat. A proto Vitaly ozvláštnil svou přednášku tím, že všichni účastníci našli pod židlí balónky. Pak 5 minut vysvětlovat, velmi vědecky za pomocí infografiky, jak je nafouknout. Na počítání do tří pak balonky všichni vyhodili do vzduchu. A v tom začala hrát hudba, blikat světla a byla tu … PÁÁÁRTYYY!!</p> <img src="/Blog/PublishingImages/Stranky/Webexpo2019/Picture8.png" alt="Personality on Web" /> <p>Jak to v sále vypadalo lze vidět na <a href="https://slideslive.com/38918862/bringing-personality-back-to-the-web" target="_blank">záznamu</a>, na tuto akci určitě nikdo nezapomene! Následně shrnul současné trendy na webu. Mluvil o extravagantních „<a href="https://cs.wikipedia.org/wiki/Dadaismus" target="_blank">dada</a>" stránkách, které se snaží zaujmout svou originalitou a hravostí. Nebo o webu <a href="https://mailchimp.com/" target="_blank">Mailchimp</a> pro emailové kampaně, který láká zákazníky zábavným dětským komiksem.</p><p>Dále zmínil techniku, kdy by se měl výsledný produkt odlišovat, někdy až provokovat. Jako příklad uvedl síť mexických restaurací <a href="https://tijuanaflats.com/" target="_blank">Tijuana Flats</a> v USA, které jsou vymalovány graffiti ve stylu zombie komiksu. A každých pár měsíců nechají majitelé restaurace komplet přemalovat a tím si zajišťují stálý nával hostů. Hovořil o stránkách ve stylu brutalismu, které nejsou příliš použitelné, ale šokují a pobaví. Příkladem jsou stránky <a href="https://www.ifmparis.fr/en/" target="_blank">Francouzského institutu v Paříži</a> a <a href="https://hansbrinker.com/" target="_blank">hostelu v Amsterdamu</a>. Nebo potvrzovací dialog věku na stránkách <a href="https://austinbeerworks.com/" target="_blank">pivovaru v Texasu</a>, který vás přemlouvá, že vám je 18 let.</p><p>Vitaly říká, že zpestřit UX nějakým neobvyklým a zábavným prvkem je dobré, ale web by měl být hlavně konzistentní. Pokud používáme například své ilustrace, měly by být na webu všude. Výhodné je také přebrat design jako součást své značky.</p><p>Další dobrou technikou, jak vytvářet pozitivní UX, je držet pozornost. Jako negativní příklad uvádí prvek CAPTCHA proti spamování. Uživateli údajně trvá průměrně 9,8 sekund, aby pro stroje šifrovaný nápis vyluštil! A 20% jich to vzdá po neúspěšných pokusech. Přitom sofistikovaní roboti s umělou inteligencí úspěšně vyřeší CAPTCHA v 99,8% případů. Vitaly proto nabádá tento mechanismus nepoužívat a zaměřit se na jiné techniky jako blokování IP adres (<a href="https://akismet.com/" target="_blank">Akismet</a>) nebo tzv. <a href="https://dev.to/felipperegazio/how-to-create-a-simple-honeypot-to-protect-your-web-forms-from-spammers--25n8" target="_blank">Honeypot</a>, kdy robotu předložíme falešný formulář.</p><p>Další nehezký prvek je ověřování emailu nebo hesla, kdy je uživatel nucen jej na formuláři znovu opsat. Bylo zjištěno, že 60% uživatelů tyto informace stejně kopíruje, Vitaly tak doporučuje se tomuto při registraci vyhnout. Naopak uživatel uvítá přehledné potvrzení, že akce (nákup, registrace) dopadla dobře. Na závěr zdůraznil, že vůbec přehledně naservírované informace na webu je jeho velká výhoda. A pokud je web něčím zajímavý, tedy zapamatovatelný, má nejlepší předpoklady být úspěšný.</p><p>Závěr konference pak ukončil Vitaly Friedman podepisováním své nové knihy.<br></p><p><i>Jan Čermák<br></i></p>odborné;#vzdělávání;#
Jak nastavit Google Analyticshttps://www.create-it.cz/Blog/Stranky/Jak-nastavit-Google-Analytics.aspxJak nastavit Google Analytics<p>Máte-li vlastní webové stránky, určitě vás zajímá, kolik uživatelů na ně chodí – z kterých zdrojů a co na nich dělají. Pomocí bezplatného nástroje Google Analytics můžete mít podrobný přehled. Naučte se zprovoznit základní měření Google Analytics pomocí nástroje Google Tag Manager.<br></p><h2>Proč je webová analytika důležitá?</h2><p>Webová analytika je proces sběru dat, jejich analýzy a vyhodnocení. Umožňuje vám rozklíčovat, jak se uživatelé na webu chovají a zda naplňují cíle, které chcete, aby naplňovali. Zároveň vám pomůže odhalit, které marketingové kampaně fungují, a které naopak ne.</p><p><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">Co vám Google Analytics od</span><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">halí:</span></p><p><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;"></span></p><ul><li>Počty zobrazení konkrétních stránek;<br></li><li>zdroje návštěvnosti;<br></li><li>chování uživatelů na stránkách (okamžitá míra opuštění, průměrný čas na stránce atd.);<br></li><li>informaci o uživatelích (věk, pohlaví, zařízení, nový vs. vracející se uživatel atd.);<br></li><li>transakce (prodané produkty, množství, tržby atd.);<br></li><li>Google Ads (náklady, prokliky, CPC, prodeje atd.);<br></li><li>další marketingové kampaně (návštěvy, prodeje);<br></li><li>události na webu (kliknutí na CTA, scrolling, přihlášení k newsletteru atd.).<br></li></ul><h1>Nastavení Google Analytics</h1><h2>Jak vytvořit účet v Google Analytics?</h2><p>V libovolném účtu <a href="https://analytics.google.com/analytics/web/" target="_blank">Google Analytics</a> klikněte na tlačítko Správce (ozubené kolečko vlevo dole) a následně na úrovni účtu klikněte na Vytvořit účet. Pokud nemáte ke svému gmailu připojen žádný účet Google Analytics, musíte se nejprve přihlásit.<br></p><p style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_1.png" alt="obrazek_1.png" style="margin:5px;width:400px;height:327px;" /><br></p><p>Vyplňte název účtu a vyberte, o jakou platformu se jedná (web, aplikace nebo Apps and web). V posledním kroku vyplňte název webové stránky, url, odvětví a časové pásmo.<br></p><p style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_2.png" alt="obrazek_2.png" style="margin:5px;width:400px;height:431px;" /><br></p><p>Po následném akceptování podmínek se vám zobrazí okno, ve kterém najdete číslo Google Analytics (tracking ID) a informace k implementaci. Google Analytics máte vytvořené a nyní je čas je implementovat na web pomocí nástroje <a href="https://tagmanager.google.com/" target="_blank">Google Tag Manager</a> (GTM).<br></p><p style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_3.png" alt="obrazek_3.png" style="margin:5px;width:650px;" /><br></p><div style="text-align:left;"><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">Jak vytvořit kontejner v Google Tag Manager?</span></div><div><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;"></span>Nejprve se svým gmailem přihlaste do <a href="https://tagmanager.google.com/" target="_blank">GTM</a> a klikněte v pravém horním menu na Create account. Vytvořte účet a v něm kontejner (který budete vkládat na svůj web). Opět vyberte, o jakou platformu se jedná.<br></div><div style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_4.png" alt="obrazek_4.png" style="margin:5px;width:400px;height:552px;" /><br></div><div>Po vytvoření GTM kontejneru se vám zobrazí skript, který je potřeba nainstalovat do hlavičky na všechny stránky vašeho webu. V ideálním případě přepošlete instrukce svému vývojáři nebo si přečtěte, jak na to, v <a href="https://developers.google.com/tag-manager/quickstart" target="_blank">příručce pro developery</a>.</div><div><div style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/Picture45.png" alt="Picture45.png" style="margin:5px;width:400px;height:268px;" /></div> <br><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">Jak nastavit zobrazení stránky pomocí Google Tag Manager?</span></div><div>Po instalaci GTM skriptu na váš web můžete vytvořit první značku (tag), která bude do vašeho Google Analytics účtu posílat statistiky o zobrazených stránkách. Klikněte na záložku Značky (Tags) – Nový (New). Značku si pojmenujte např. GA – Page view a jako typ značky vyberte Google Analytics: Universal Analytics.<br></div><div style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_5.png" alt="obrazek_5.png" style="margin:5px;width:400px;" /><br></div><div>Typ měření je pageview (zobrazení stránky) a nyní je potřeba nastavit Google Analytics ID. Klikněte na Nová proměnná (New Variable) a vložte ID ze svého účtu Google Analytics (číslo ve formátu UA-111111-1). U Cookie Domain nechte možnost auto a proměnnou pojmenujte např. Nastavení Google Analytics.<br></div><div style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_7.png" alt="obrazek_7.png" style="margin:5px;width:650px;height:436px;" /><br></div><div>Nyní už je potřeba nastavit pouze pravidlo pro spuštění značky. Chceme, aby Google Analytics měřily zobrazení všech stránek webu. Klikněte na tlačítko + a vyberte již přednastavenou možnost All Pages.<br></div><div><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_8.png" alt="obrazek_8.png" style="margin:5px;width:650px;" /><br></div><div><span style="color:#7d3cbe;font-family:source-sans-pro-light, open-sans, sans-serif;font-size:26px;">Kontrola nastavení</span><br></div><p>Máte hotovo, nyní je potřeba otestovat správnost nastavení. V pravém horním menu klikněte na tlačítko Náhled (Preview) a <a href="https://support.google.com/tagmanager/answer/6107056?hl=cs" target="_blank">Google Tag Manager se vám přepne do režimu náhledu</a>. Běžte na své webové stránky, aktualizujte je a v dolní části obrazovky se vám zobrazí okno konzole.<br></p><p><img src="/Blog/PublishingImages/Stranky/Jak-nastavit-Google-Analytics/obrazek_9.png" alt="obrazek_9.png" style="margin:0px;width:650px;" /><br></p><p>Na události Page View by se vám měla zobrazit značka GA – Page view, která do Google Analytics posílá informace o zobrazených stránkách. Pokud se tak stalo, máte vyhráno! Nyní už je potřeba kontejner pouze publikovat – bez toho se změny neuloží. Gratulujeme, můžete začít měřit.</p><div><i>Aneta Hejnová</i></div><div>Webová analytička</div><div> <p> <br> </p></div>odborné;#
Zabezpečte svoji domácí síť před crackeryhttps://www.create-it.cz/Blog/Stranky/wifi-security.aspxZabezpečte svoji domácí síť před crackery<p>​Když se hacker (resp. black hat hacker, správně cracker) dostane do nechráněné domácí sítě, může napáchat nemalé škody: krádež identity, využití vašich IoT zařízení pro botnet nebo odposlech provozu - to je jen pár možností, které mohou nastat v případě narušení nesprávně zabezpečené domácí sítě. Proto je důležité dodržovat základní bezpečnostní zásady při nastavování vaší domácí wi-fi sítě.<br></p><h2> Dobře zvažte název sítě</h2><p>Při vytváření nové wi-fi sítě je dobré zvolit název sítě (SSID) tak, aby o vás prozrazoval co nejméně informací. Názvy jako "Petřina wi-fi", "UPC4241282", "Winter is coming" nebo "TP-LINK_F166" vyzrazují informace, které mohou útočníci snadno zneužít ve svůj prospěch.</p><p>V případě sousedů lze využít informace veřejně dostupné z jejich profilu na facebooku, osobní stránky nebo jiných sociálních sítí ke snadnějšímu uhádnutí hesla (oblíbený film, jména domácích mazlíčků, jméno partnera, datum narození). </p><p>Už jen samotné zanechání původního jména sítě o vás vypovídá jistou neznalost a indikuje útočníkovi snadnou oběť, která bude pravděpodobně mít jednoduché heslo a router v původním nastavení (tzn. snadno odvoditelné přihlašovací údaje do admin sekce routeru), v "lepším" případě s neaktualizovaným firmwarem s neopravenými dírami.</p><p>WPA2 protokol (viz níže) <a href="https://www.youtube.com/watch?v=Ra0dGPYScLQ">používá název sítě</a> a délku tohoto řetězce při generování předsdíleného tajemství (pre-shared key, PMK), které je použito pro <a href="https://en.wikipedia.org/wiki/PBKDF2">další komunikaci</a>.</p><p> <strong>Čím unikátnější a delší název vaší domácí sítě, tím bezpečnější je</strong>. Pro krátká a běžná slova jsou již vygenerovány tzv. rainbow tabulky, které útočníkovi umožní prolomit heslo cca 200x rychleji.<br></p><p style="text-align:center;"><img src="/Blog/PublishingImages/Stranky/wifi-security/nazvy_wifi.png" alt="nazvy_wifi.png" style="margin:5px;width:300px;height:177px;" /><br></p><h2> Jak vytvořit bezpečné heslo</h2><p>Při volbě hesla se řiďte základními zásadami pro bezpečná hesla. Několik let jsem žil se studenty IT oboru "Bezpečnost informačních technologií", a i přesto bylo heslo našeho bytového routeru složeno ze dvou českých slov, psaných malými písmeny bez diakritiky - v případě WPA2 by stačila útočníkovi používajícímu slovníkový útok cca hodina (pokud by použil cloud computing možná i minuty), než by toto heslo zjistil a dostal se do naší sítě. Při stěhování do nového bytu jsme však heslo "vylepšili" - slova začínají velkými písmeny a na konci je číslo... to by crackerovi zabralo o pár hodin víc - proto je důležité si zvolit kvalitní heslo.</p><p> <strong>Nejsnadnější a zároveň nejbezpečnější je prostá věta</strong>. Cracker neočekává, že budou v hesle mezery, slangové výrazy a doufá, že neobsahuje diakritiku. Věta samotná dovolí, aby heslo bylo dlouhé a snadno zapamatovatelné - nikdo nechce používat heslo "<em>1@xKCHrrcca67</em>" - avšak heslo "<em>Budeš zmizelej nebo tě zmizím já</em>" je jednoduché, dlouhé a takřka neprolomitelné.<br></p><h2> Jak je to s těmi protokoly</h2><p>A teď trochu detailů k protokolům. Pokud vás nudí technické detaily, s klidem přeskočte detaily na shrnutí v poslední větě.</p><p>WEP (Wired Equivalent Privacy) je protokol pro šifrování komunikace (pomocí proudové šifry RC4). Za dobu jeho existence v něm byly nalezeny slabiny, které dnes může využít v podstatě kdokoliv se základními IT znalostmi. Hlavní slabinou je zejména velikost klíče - pouhých 40 bitů - a inicializační vektor, který je zasílán s každým paketem. Při tzv.<em> </em> <a href="https://www.vutbr.cz/www_base/zav_prace_soubor_verejne.php?file_id=88796"> <em>caffe latte</em></a> útoku stačí útočníkovi nasbírat několik desítek tisíc paketů, ze kterých potom na základě nasbíraných dat vypočítá původní klíč. Jelikož zahltí síť tzv. ARP floodem, nasbírat dostatek dat pro prolomení hesla mu nezabere déle než dopití jednoho "caffe latte". WEP šifrování je dnes proto naprosto nepoužitelné a nebezpečné - i můj technologicky nepříliš zdatný kamarád dokázal prolomit WEP wi-fi svého souseda během 2 hodin při následování  tutoriálů na youtube.</p><p>Poté, co byly zjištěny nedostatky ve WEP protokolu, se začal používat hotifx jménem WPA (Wi-Fi Protected Access). Používá předsdílený klíč a TKIP (Temporal Key Integrity Protocol) pro šifrování dat. Klíč byl oproti WEP rozšířen ze 40 na 128 bitů. V době zavedení WPA však nebyl ještě bezpečnostní standard 802.11i plně definován, proto se dnes používá verze WPA2, která již splňuje dané specifikace.</p><p>WPA2 byl uveden do praxe v roce 2004. Nejdůležitější změnou oproti předchozím protokolům je použití AES (Advanced Encryption Standard) pro šifrování. Cestou k jeho prolomení je získání tzv. <em>4-way handshaku</em>. Po dešifrování tajemství použitého během handshaku může útočník odposlouchávat i veškerou další komunikaci (v případě WPA2 však složitost prolomení hesla závisí na více faktorech, zejména na délce a složitosti hesla).</p><p>Nový standard WPA3 používá oproti předsdílenému tajemství novou metodu, SAE (Simultaneous Authentication of Equals), která zajišťuje, že se po síti nebude přenášet žádná část hesla nebo data, která by umožnila jeho výpočet. Po uvedení protokolu WPA3 byly nalezeny další zranitelnosti WPA2, <a href="https://wpa3.mathyvanhoef.com/">např. downgrade attack</a>.</p><p>WPA protokoly existují ve verzích Personal a Enterprise. V případě Personal jde o jednoduché zabezpečení heslem, v případě Enterprise je použita pokročilá autentizace, a to díky protokolům <a href="https://security.stackexchange.com/questions/35780/why-is-wpa-enterprise-more-secure-than-wpa2">EAP, EAP-MD5, LEAP, EAP-TLS nebo TTLS</a> v kombinaci s autentikačním serverem (RADIUS, TACACS+, Diameter).</p><p> <strong>Pro běžnou domácí síť tedy volte protokoly WPA2-Personal nebo WPA3-Personal.</strong></p><h2> Jak správně nastavit router</h2><p>Metody "zabezpečení" jako skrývání SSID nefungují, jelikož útočník má nástroje pro detekci probíhajícího provozu v éteru.</p><ol style="list-style-type:decimal;"><li>Firmware routeru udržujte aktualizovaný, výrobce často vydává opravy na <a href="https://wwws.nightwatchcybersecurity.com/2017/05/09/multiple-vulnerabilities-in-asus-routers/">kritické chyby</a>. Pokud nemáte důvod používat vzdálený login (který může útočník zneužít), zakažte ho. </li><li>Samozřejmostí je změna login údajů do administrační sekce routeru - pokud se útočník dostane do vaší sítě, může napáchat mnohem víc škody - může totiž odposlouchávat veškerou komunikaci všech klientů připojených k routeru (za použití vhodných metod). První věcí, kterou útočník v síti udělá, je totiž zjištění modelu routeru. Pak zkontroluje defaultní přihlašovací údaje a vyzkouší je - pokud je necháte nastaveny na původní - průšvih.</li><li>Dále - pokud má router povoleno <strong>WPS, </strong>zakažte jej. WPS se používá k jednoduchému přidávání nových mobilních zařízení do sítě, stačí stisknout WPS tlačítko na routeru. WPS zároveň používá tzv. WPS PIN, 8 místný PIN, který musí klient zadat, pokud chce připojit svoje zařízení - útok jménem <a href="https://security.stackexchange.com/questions/149178/what-is-pixie-dust-attack-on-router"> <em>Pixie Dust</em></a><em> </em>tohoto mechanismu zneužívá a umožňuje útočníkovi obejít zabezpečení wi-fi sítě (WPA2 atd.) a získat PSK přímo od routeru. Offline útok za použití nástrojů jako pixiewps zabere pouze několik desítek sekund.<br></li></ol><h2> Zkuste si hacknout vlastní síť</h2><p>Pokud si chcete vyzkoušet penetrační testování sítě, ideálními pomocníky jsou nástroje <a href="https://www.aircrack-ng.org/">aircrack-ng</a> a linuxové live distribuce pro pentestery, např. <a href="https://www.kali.org/">Kali Linux</a>. Můžete si tak sami otestovat sílu zabezpečení a zkusit prolomit ochranu svojí domácí sítě.<br></p><p><em>Jan Jileček</em><br></p>odborné;#hobby;#
Testovat je lidskéhttps://www.create-it.cz/Blog/Stranky/TDD2.aspxTestovat je lidské<p>Při troše štěstí byste mohli mít <a href="/Blog/Stranky/TDD.aspx" target="_blank">z minulého dílu</a> pocit, že test-driven development (TDD) není úplně špatný nápad; v ideálním případě ho v tuto chvíli už považujete za životní nutnost (podobně jako deodorant v open spacu nebo neomezenou konzumaci na firemním večírku), takže nebudu testovat (mrk mrk) vaši trpělivost dlouhým úvodem a rovnou půjdeme rozmetat některé testovací mýty.<br></p><h1>ěnčapo ej onhcešV<br></h1><h2>„U nás testy nepíšeme, protože nemáme čas."</h2><p>Totální evergreen, oblíbený zejména tam, kde se testy píší až po implementaci produkčního kódu. Ono vskutku moc nedává smysl stavět lešení až okolo dokončeného domu. Časová náročnost správně provedených testů je ovšem záporná, čili ve skutečnosti <strong>nemáte čas, protože nepíšete testy</strong>. Ano, naprosto vážně vám tu tvrdím, že napsat více kódu je rychlejší než napsat méně.</p><p>Produktivitu vývojáře samozřejmě nelze měřit jako počet úderů za minutu × 60 × 8. Troufám si tvrdit, že větší část z pracovní doby zaberou (kromě obligátního fotbálku a dohadování, kam na oběd) činnosti jako komunikace s kolegy, manažery a zákazníky, návrh struktury nové funkcionality, zkoumání dokumentace, psaní dokumentace, refactoring (doufejme) a debugging (bohužel). Testy za vás hovor se šéfem nebo zákazníkem nevyřídí, ale všechny ostatní uvedené věci dokážou řešit lépe!</p><p>Tak například design nové funkce: I jednoduchá featura je většinou tak implementačně složitá, že není možné ji pojmout celou předem. Takové pokusy v extrémním případě vedou k neblaze proslulé analysis paralysis, česky k tzv. záseku. Unit testy psané popředu přitom nabízí elegantní řešení: Začni z kteréhokoliv konce, zabývej se pouze izolovanými částmi a překvapivě kvalitní design se časem vyloupne téměř sám od sebe. </p><p>Nebo taková dokumentace - většinou přežívá předaleko od kódu, kterého se týká (ideálně za sedmero servery a sedmero přihlášeními v sedmém kruhu pek… ehm, firemní wiki), nikoho nebaví ji psát a už vůbec ne udržovat, takže časem začne lhát, tudíž jí lidé přestanou věřit a ve finále ji nikdo nečte. Testy jsou přitom nejlepší dokumentace, protože tahle forma je vždycky přesná (testy jsou spustitelný program), aktuální (protože jinak by ani nešly spustit) a jednoznačná (jako každý program).</p><p>Refactoring je vyloženě křiklavý případ: Pokud se přidržíme klasické definice, která zní, že refactoring je změna struktury programu, která nemění jeho externí chování, tak je jasné, že pro bezpečný (a zároveň i rychlý) refactoring potřebujeme záruku, že v jeho průběhu ono externí chování nezměníme (tj. nerozbijeme) - a tohle přesně zajistí automatizované testy s kvalitním pokrytím. Nebo z druhé strany: Pokud není možné v průběhu práce na projektu kdykoliv a neustále spolehlivě provádět drobné i větší refactoringy, časem se z něj stane zamotaná, nepřehledná hmota s neexistující architekturou, se kterou se nikdo nechce špinit - legacy kód jako vyšitý.</p><p>V tuhle chvíli je už asi i zřejmé, jak je to s debuggingem. Pokud máte sadu vhodně napsaných testů (izolovaných, dobře zacílených) s kvalitním pokrytím, počet okamžiků, kdy budete zírat do debuggeru, škrábat se na hlavě a nemít ani ponětí, jak ve vašem programu vznikl ten obří kouřící kráter, se začne blížit k nule. Váš debugger skončí zaprášený hluboko v menu vašeho IDE, ale v tomhle případě to není špatně.</p><p>Testy jsou kód, který se nikdy nedostane až ke koncovému uživateli. Někdo by tím pádem mohl naivně tvrdit, že jsou jaksi navíc nebo zbytné. Jak ale vidíme, testy zrychlují implementaci nových funkcí, udržují projekt v dobré kondici díky bezpečnému a rychlému refactoringu, slouží jako nejlepší možná dokumentace a téměř eliminují debugging. Tohle všechno znamená jediné - profit. Software je v mnoha ohledech zvláštní, občas paradoxní věc, a v tomto případě se nevyhnutelně dostáváme k závěru, který se vzpírá našim zkušenostem z „hmotného" světa: Vyrobit netriviální software s vysokou interní kvalitou je ve skutečnosti levnější.</p><h2>„Nepíšeme testy, protože X se často mění."</h2><p>V ideálním světě by neexistovali nerozhodní lidé, nejednoznačné požadavky a rozhraní s více než jednou verzí. Občas se ale prostě stane, že vnější faktory ovlivňující projekt jsou stabilní asi jako vládní koalice, to ale neznamená, že takový projekt nelze testovat!</p><p>Takže: <strong> Právě </strong> <strong>proto, že se X často mění, píšeme testy</strong>. Kolem onoho nestabilního, nepředvídatelného X, je třeba si postavit takovou hezkou vysokou zeď s dobře kontrolovaným místem pro průchod, protože DATA IS COMING (ano, Game of Thrones reference; pokud tohle čtete v roce 2020 nebo později, vůbec nevíte, o co jde). </p><p>Tohle vymezení pak umožní aplikaci rozdělit na dvě části, jednu menší, která se potýká s daty přicházejícími z divočiny (a tu důsledně otestovat; i když se bude často měnit, náklady na úpravy budou minimalizované), a na mnohem větší část, která bude stabilní (a i tu samozřejmě důsledně otestovat). Jak jsme si ukázali výše, důsledkem dobře aplikovaného TDD jsou kromě testů (no tohle!) právě i emergentní, překvapivě hezká rozhraní mezi částmi systému. Za zdí kromě zdivočelých HTTP requestů, nenormalizovaných databází a berserk byznysové logiky může být třeba i samotné UI. Hranice a testy na nich oceníte v každém případě.</p><h2>„Při velikosti našeho projektu nemá cenu psát testy."</h2><p>Je to takový argument žáby v hrnci, ve kterém se postupně zvyšuje teplota vody. Ve francouzské restauraci to možná funguje, při vývoji softwaru vám z toho bude akorát časem nevolno. Jak vůbec definovat „malý" projekt, který zatím nemá cenu testovat? </p><p>Počtem řádků kódu? Existuje bezpočet algoritmů, jejichž zápis je extrémně stručný, ale logika velmi složitá (ano, v takovém případě budou k nim příslušné testy výrazně delší než produkční kód - to je normální). </p><p>Nebo délkou vývoje? Kdy naposledy jste zažili projekt, který skončil tam, kde bylo původně naplánováno, nebo který se následně nerozvíjel nad původní záměr? </p><p>Co takhle podle počtu vývojářů? Nikdy není možné udržet v hlavě naráz celý projekt (tenhle okamžik přichází překvapivě rychle) a i v případě one man show je ve skutečnosti autorem projektu několik různých lidí: Libor právě teď, Libor včera, když došlo kafe, Libor ve čtvrtek ráno po nečekaném středečním večírku, Libor v pátek po obědě...</p><p>Další nebezpečí tohoto přístupu je v tom, že až (nikoliv když!) se projekt rozroste nad míru, kdy přestane být „malý" (ať už to znamená cokoliv), a autoři konečně dospějí do stavu neodvratné touhy po testech, je jednak problém testy dopsat zpětně do už existujícího kódu a druhak takové testy i produkční kód mají evidentně horší kvalitativní vlastnosti oproti variantě, kdy se testy píší dopředu.</p><p>Software je v mnoha ohledech zvláštní, občas paradoxní věc, a v tomto případě se nevyhnutelně dostáváme k závěru, který se vzpírá našim zkušenostem z „hmotného" světa: <strong>Na velikosti nezáleží</strong>.</p><h2>„Testy nepíšeme, protože blá blá."</h2><p>Za blá blá si dosaďte cokoliv z následujícího: „Protože je po nás nikdo nechce," „protože nebyly ve specifikaci," „protože nebyly ve sprintu," „protože management nechce" a tak dále a tak podobně. Minimálně unit testy jsou neoddělitelnou součástí konstrukce kvalitního (což jak už víme znamená levnějšího) softwaru, takže nemá význam je explicitně plánovat, protože se prostě píší neustále. Zároveň nikdy nesmíte prosit o povolení dělat svou práci pořádně, čímž se elegantně zbavujeme i manažerského faktoru.</p><p>Další oblíbené blá blá je „protože to není naše práce," resp. „protože máme testery." Toto je problém druhu a hierarchie testů. Testeři nemohou nahradit testy psané vývojáři (nebo dalšími profesemi) a naopak. Ve zdravém projektu je potřeba více druhů testů ve správném poměru a na to se už opravdu podíváme příště, slibuju!<br></p><p>No a pak tu máme poměrně fatalistické „protože v projektu žádné nebyly, když jsme k němu přišli." Tohle je nezáviděníhodná situace. Zpětné pokrytí rozměrného kódu je upřímně řečeno namáhavá, dlouhodobá práce, která vyžaduje speciální techniky. Je to vlastně klasický problém slepice vs. vejce s tím, že slepice i vejce pochází z pekla: Abychom mohli do legacy kódu přidat testy, je potřeba ho nejdřív refactorovat; abychom ho mohli bezpečně refactorovat, potřebujeme testy. Doplnění testů do takového projektu je ale taky bohužel jediná šance, jak s ním pohnout kupředu a nenechat ho zhroutit se pod vlastní vahou. </p><h1>To jsou paradoxy, pane Turing!</h1><p>Nejtěžší věcí na TDD není implementace testů, ale vůbec implementace změny myšlení v hlavách vývojářů a dalších zainteresovaných lidí. Principy, ale i efekty TDD jsou často neintuitivní, paradoxní a jdou kolikrát přímo proti zažité (a bohužel stále většinové) praxi, takže počáteční odpor, byť třeba i jen podvědomý, bývá silný. </p><p>Jedinou cestou, jak se ale dobrat všech benefitů, které správně prováděné TDD přináší, je vytrvat. TDD je jedna z věcí v životě, kterou je potřeba zažít na vlastní kůži. Na druhém břehu čeká elegantní, spolehlivý a levný software, na kterém je radost pracovat.<br></p><p> <i>Jiří Hutárek</i><br></p> <br>odborné;#vzdělávání;#
Novinka: sjednocení webové a mobilní analytikyhttps://www.create-it.cz/Blog/Stranky/sjednoceni-analytiky.aspxNovinka: sjednocení webové a mobilní analytiky<p> Koncem července komunita okolo Google Analytics oznámila zajímavou novinku pro všechny mobilní i webové analytiky: všechna data z webu i mobilní aplikace budou k dispozici v jednotném přehledu Google Analytics. To vše bude umožněno díky novému typu služby „App + Web“, která umožní analýzu dat napříč zařízeními jako nikdy před tím. Díky tomu nás čekají i další novinky v přístupu k datům. </p><p> Pokud analyzujete webová i aplikační data, museli jste je doposud sbírat a následně analyzovat samostatně v Google Analytics a Firebase (případně jiných systémech). Snem každého analytika je jednoduché propojení těchto dat. Jejich integrace vám tak přinese ucelenější pohled na zákazníkovu cestu a zlepší fungování celého marketingu. </p><p> <img src="https://storage.googleapis.com/gweb-uniblog-publish-prod/images/2019-07-31-2.max-1000x1000.png" alt="Onboarding" /> <br> </p><p>Při tvorbě nového účtu si můžete zvolit službu „App + Web“, která bude integrovat data z obou platforem. Uvidíte tak například, kolik uživatelů použilo nejprve vaši aplikaci a poté dokončilo objednávku na počítači. Z klasického přístupu k datům, kdy jsou data zkoumána z pohledu návštěvy a zobrazení stránky, Google Analytics přechází na metodu zkoumání pomocí události a parametru. To znamená, že se k událostem budou vázat různé proměnné, které poskytnou nové a více relevantní pohledy na data.<br></p><p> <img src="https://storage.googleapis.com/gweb-uniblog-publish-prod/images/2019-07-31-3.max-1000x1000.png" alt="User Overview" /> <br> </p><p>Nová funkce <a href="https://tgupta.net/analytics/new-web-and-app-properties-in-google-analytics/" target="_blank">enhanced measurement</a> vám ulehčí práci s implementací. Pouhým kliknutím bez nutnosti kódování můžete aktivovat některé z nejběžnějších událostí, jako je zobrazení stránky, rolování, vyhledávání na stránce atd. Do budoucna můžeme doufat, že se možnosti implementace touto cestou budou rozvíjet.<br></p><p> <img src="https://storage.googleapis.com/gweb-uniblog-publish-prod/images/Enhanced_measurement.max-1000x1000.png" alt="enhanced measurment" />Integrace mobilních a webových dat bude dostupná v beta verzi v následujících týdnech zatím jen pro účty Google Analytics 360. Pro detailnější přehled všech nových funkcionalit navštivte přímo <a href="https://www.blog.google/products/marketingplatform/analytics/new-way-unify-app-and-website-measurement-google-analytics/" target="_blank">blog Google</a>. Už teď je jasné, že tato nová funkce zpřesní vyhodnocování dat a pomůže zvýšit návratnost marketingu.<br></p><p> <i>Aneta Hejnová, Web Analyst</i></p><p> Zdroj obrázků: <a href="https://www.blog.google/products/marketingplatform/analytics/new-way-unify-app-and-website-measurement-google-analytics/">Google blog</a><br></p>odborné;#vzdělávání;#
Kreativní stáž v IT firmě? Jde to!https://www.create-it.cz/Blog/Stranky/kreativni-staz.aspxKreativní stáž v IT firmě? Jde to!<p>Cleverlance věří v kreativitu a podporuje její rozvoj. I to je důvod, proč do portfolia svých aktivit přidala i jednu novou, stáž pro studenty reklamní a umělecké tvorby v kreativní divizi <a href="http://www.qub.digital/en/intro/?utm_source=create_it&utm_medium=clanek&utm_campaign=staz_qub">QUB Digital</a>. QUB digital vytváří funkční design s využitím poznatků designu, UX a analytiky. Stážistky díky tomu měly příležitost zjistit, proč je i v kreativitě výhodné použít osvědčené postupy a techniky. Zkusily si rovnou své designy spojit s reálnými technologiemi.<br></p><p>Stáže pro kreativce v QUB Digital se účastnily Barbora a Veronika, studentky 2. ročníku Střední a Vyšší odborné školy reklamní a umělecké tvorby <a href="https://www.skolamichael.cz/cs/">Michael</a>. Během dvoutýdenní praxe měly za úkol vytvořit návrh mobilní aplikace na běhání. Dalším zadaným projektem bylo navrhnout originální potisk triček, připravit návrh e-shopu na jejich prodej a vytvořit strategii na jeho rozjezd.</p><p>QUB Digital ve své kreativní práci používá různé druhy metodik a postupů, s jejichž základy se měly možnost seznámit i stážistky. Jako první provedly průzkum trhu a díky němu zjistily, jaké podobné aplikace již existují a jaké konkrétní funkcionality konkurence používá. Naučily se efektivně používat rešerši a uvažovat nad tím, co a pro koho designují. Při samotné realizaci aplikace ji s námi průběžně konzultovaly. „Udělaly jsme několik návrhů, ale výsledek se nám pořád nelíbil. Dostaly jsme radu, ať vedle sebe poskládáme části běžeckých aplikací, které se nám líbí, a z mixu uděláme svůj vlastní návrh. A najednou to celé bylo super," hodnotí Bára přínos konzultací.<br></p><p> <img src="/Blog/PublishingImages/Stranky/kreativni-staz/Blog%20trička.png" alt="Blog trička.png" /> <br> </p><p>Kromě běžecké aplikace vytvářely i vlastní kolekci triček. Při tomhle projektu se naplno ukázala výhoda být jako kreativec součástí IT firmy: budoucí prodej své designové kolekce podpořily návrhem fashion e-shopu. Jeho realizace vyžaduje nejenom hezký design, ale promyšlení celého konceptu značky včetně fungování stránek.<br></p><p> <img src="/Blog/PublishingImages/Stranky/kreativni-staz/Blog.png" alt="Blog.png" /> <br> </p><p>Se stáží byly spokojené nejen studentky, ale i my v QUBu. Bylo zajímavé a inspirativní mít v kanceláři novou generaci designerů, předávat jim své znalosti, ale zároveň i čerpat podněty z jejich strany. Do budoucna určitě podobnou stáž zopakujeme.</p><p><i>Aneta Hejnová, QUB – Web analyst</i></p><p> <br> </p>odborné;#vzdělávání;#
Krev, pot a testyhttps://www.create-it.cz/Blog/Stranky/TDD.aspxKrev, pot a testy<p>Je to vždycky smutná situace: vaše kdysi oblíbená aplikace už rok nedostala pořádný update s novými užitečnými funkcemi, ačkoliv dříve bývala aktualizovaná i několikrát za měsíc. Kdysi bleskurychlá odezva jejích serverů nyní odpovídá spíše tempu astmatického lenochoda a stabilní je asi jako kurz Bitcoinu. Frustrace uživatelů (kteří ale mají naštěstí téměř vždycky možnost odejít ke konkurenci) ovšem není nic proti tomu, co se děje na druhé straně. </p><p>Software v tomto stádiu rozkladu má totiž velmi často jednoho společného jmenovatele: absenci testů.</p><h2> Zápisky z mrtvého domu</h2><p> Nikdo nechce pracovat na aplikaci, která se dostala do této fáze (i když všichni jsme to kdysi jednou zažili a kdo tvrdí, že ne, ten to dělá dodnes). Atmosféra v takovém týmu je tvořená smrtícím koktejlem lhostejnosti (těch, kterým už na výsledku přestalo záležet) a strachu (těch, kterým na něm ještě trochu záleží). Nejhorší druh strachu je přitom ten, kdy se všichni bojí sáhnout do kódu, aby se aplikace (většinou na překvapivém, nesouvisejícím místě) nerozbila—ale jak si to spolehlivě ověřit? Klasický manuální přístup „šťourání klackem do náhodných míst“ následovaný rádoby sebevědomým „jo, to je dobrý“ samozřejmě není spolehlivý a už vůbec ne škálovatelný, a z toho plyne jediná věc: <b>testování je nutné automatizovat!</b></p><p> Ono totiž ztratit kontrolu nad chováním bestie o mnoha stech tisíců řádků (kolikrát stačí i řádově míň!) postavené na ball-of-mud™ architektuře je příšerný, frustrující pocit. Zevnitř se tento zničující strach logicky projeví fatálním zpomalením výkonnosti týmu (kromě přidávání funkcí taková situace samozřejmě neumožňuje ani spolehlivý refactoring) a navenek postupným vymizením inovací a nestabilitou. Když už je situace opravdu hodně neúnosná (úroveň zoufalosti manažerů se vyrovná vývojářům), může se stát, že stakeholdeři svolí ke zdánlivě jedinému možnému řešení—tzv. „přepisu od nuly“.</p><p> Zní to lákavě: složíme slib čistoty, začneme úplně na zelené louce a už určitě neuděláme ty chyby, co minule. A vůbec, hlavní chyba byla použít monolitické neresponzivní převaděče spojitosti, do nové verze dáme mnohem lepší a tento týden zrovna nejpopulárnější framework pro cloudové funkcionálně-reaktivní agregované artisan minimicroservices on rails a všechno bude krásné a zalité sluncem.</p><p> Škoda, že právě automatizované testy součástí takového přepisu většinou nebývají. Pak to dopadá tak, že o dva roky později nyní již legendární verze 2 stále není vydaná (nebo vydaná je, má polovinu funkcí co verze 1, ale zhruba stejně bugů), zákazníci mezitím dávno odešli jinam a jediný měřitelný rozdíl je ve spotřebě psychofarmak napříč týmem. Jedná se o projev dobře známého „syndromu druhého systému” (v extrémních případech i třetího, čtvrtého...), čili tudy cesta nevede. <b>Hlavní změna se totiž musí odehrát v hlavách zúčastněných.</b></p><h2> Software musí být soft</h2><p> Testy jako ochrana proti regresi jsou samozřejmě skvělá věc, ale kupodivu to není jejich hlavní přínos. Ona totiž zdaleka nejúžasnější výhoda toho, co děláme, je nehmotná povaha našich výrobků. Nápověda je už v názvu: aby byl software pro naše zákazníky i uživatele skutečně přínosný, musí být jako plastelína (a ne jako ta ve školce, kdy vám po smíchání všech vždycky vyšla hnědošedá), ohebný, přizpůsobitelný, rychle a jednoduše tvarovatelný. Odlít si verzi 1.0 z betonu a opracovávat ji pak později výhradně sbíječkou postrádá finesu a nakonec i smysl.</p><p> Bohužel často nedostatečně akcentovaný, primárně byznysový požadavek na ohebnost a pružnost vede na technické úrovni k nutnosti umět dělat změny spolehlivě a rychle (potřeba je obojí). A tady je jádro pudla (on je to spíš pořádný vlkodav)—jak to tedy zařídit?</p><h2> We would like to teach you of our lord and savior TDD</h2><p> TDD, čili „test-driven development”, česky něco jako „to děláte dobře”. Způsob vývoje, který, pokud je správně používán, působí jako živá voda na všechny zúčastněné. Navzdory požehnanému věku této techniky (v měřítku IT času odpovídá zhruba příchodu Cyrila a Metoděje, náhoda?) ovšem kolem ní pořád panuje spousta mýtů, pochybností a nereálných představ. </p><p> S vědomím toho, že na lidi, kteří ortodoxní testování praktikují, je zvenčí občas pohlíženo jako na náboženské fanatiky (případně arogantní chytráky), se vám pokusím přiblížit některé ze zkušeností, které jsme za léta používání TDD nashromáždili, a jeho důsledky pro vývojáře, manažery, stakeholdery i uživatele. Upozornění předem: spousta z uvedených tvrzení bude na první pohled totálně postavených na hlavu a spoustu věcí je potřeba si zažít na vlastní kůži. Nicméně, pojďme začít nejčastěji pokládanou otázkou:</p><h2> Proč?</h2><p> „Proč bychom se měli zabývat nějakým TDD? Je to neznámá, poměrně radikální technika, nemáme na to čas, beztak to nikdo nepoužívá a tady Franta, co to jednou zkoušel, z toho dostal ošklivou vyrážku.” OK, pojďme hned zkraje zavrhnout všechny nefunkční důvody jako „přišel šéf a řekl, že to máme dělat”, „přišel klient a řekl, že to máme dělat”, „šéf zaplatil drahého konzultanta a ten přišel a řekl, že to máme dělat” a nejnebezpečnější ze všech, „protože to je správná věc” (aneb dláždění cesty do pekla).</p><p> Ty pravé důvody jsou mnohem přízemnější, ale zato upřímné, a proto efektivní: jsme líní (lenost je matka inovací) a chceme si usnadnit práci. Nechceme se v práci bát/chceme pracovat v klidu. Chceme dodávat rychleji bez obětování kvality, pořád stejným tempem. Chceme kdykoliv bez obav refaktorovat. Nechceme praktikovat programming by coincidence™ a nechceme každé dva roky přepisovat svůj systém od začátku. A taky chceme využívat všechny další benefity, které TDD přináší jakoby mimochodem… </p><p>Pro uživatele to znamená stabilní, správně fungující a rychlou aplikaci a pro stakeholdery spokojené uživatele. A ještě taková drobnost—tohle všechno razantně snižuje finanční i časové náklady na vývoj.</p><h2> Nechci slevu zadarmo</h2><p> To zní všechno báječně, ale zároveň se hned dostáváme k prvnímu kontroverznímu bodu: nemá cenu slibovat pečené holuby do ústních otvorů a zároveň neříct, že všechny uvedené výhody vám přinese pouze správně a důsledně aplikované TDD, zatímco špatně používané TDD skutečně může způsobit značné problémy. Správně aplikovat TDD je těžké, vyžaduje to na začátku velmi radikální změnu myšlení vývojového týmu a posléze dlouhodobé nabírání zkušeností, tudíž napoprvé se vám to pravděpodobně nepovede. To ovšem neznamená, že nemá význam se o to pokoušet! Taktéž udržet skutečně striktní disciplínu tváří v tvář deadlinům a zběsilým požadavkům z různých stran je občas těžké, ale naprosto zásadní je nepolevit.</p><p> A když už jsme v tom, pojďme si odbýt i tu druhou nepříjemnou zprávu: TDD je pro úspěch projektu podmínka nutná, nikoliv postačující. TDD je něco jako bezpečnostní pásy v autě—samospasitelné nejsou, ale jezdit bez nich je prostě nerozum. Stejně tak se může stát, že i projekt bez testů do jisté míry uspěje (když není tvárný kód, může být tvárná aspoň definice úspěchu), nebo že projekt s testy potopí jiné faktory, ale pokud lze něco udělat pro (v tomhle případě zásadní) zvýšení šancí na úspěch, je prostě hloupé a téměř až neprofesionální to vynechat.</p><h2> Zpátky ke kořenům</h2><p> Zajímavé je postavení TDD z hlediska historie dnes tolik populárních (tj. zmocnili se jich konzultanti a totálně vyrabovali původní principy) agilních metodik vývoje. </p><p> Spousta principů tzv. extrémního programování, dědečka všeho dnešního agilna, je dnes všeobecně přijímána—coding standard, kolektivní vlastnictví kódu, kontinuální integrace i deployment, refactoring, akceptační testy, scrum, párové programování… Jenom to TDD se pořád vidí poměrně málo—a je to škoda. Přitom jak říká jeden z otců XP, Kent Beck: „Pokud je nějaká technika, která je srdcem extrémního programování, je to unit testing.” A na ten i další druhy testů se prakticky podíváme příště.<br></p><p> <i>Jiří Hutárek</i> </p> odborné;#
Slovníček pro začínající testeryhttps://www.create-it.cz/Blog/Stranky/typy_testu.aspxSlovníček pro začínající testery<p>Ono se řekne, otestovat software. Ať už jste začínající tester, nebo stojíte na straně firmy, která si svou aplikaci chce nechat testovat, zjistíte, že vlastně existuje mnoho typů testů. Nejen že záleží jakou aplikaci, nebo její část testujeme, ale také v jaké fázi vývoje testujeme, nebo například kdo testuje. Pojďme si je odborně rozdělit a následně si projdeme "slovníček" jednotlivých testů. </p><h2> Podle znalosti kódu </h2><p> Při testování může být rozdíl, zda máme přístup ke zdrojovému kódu a orientujeme se v něm. Rozlišujeme proto testy na "White box", neboli bílou skříňku což znamená, že známe strukturu kódu a testy jsou napsány kódu "na míru". "Black box" je zase černá skříňka, kde na kód nevidíme a testujeme jen podle vstupů a výstupů aplikace. </p><h2> Podle způsobu realizace </h2><p> Jako první uvedu manuální testování, bez kterého by to prostě nešlo. Jde o testování, které provádí tester podle testovacích scénářů, neboli "testcase". Protipólem mu je dnes velmi populární a žádané automatizované testování. Testy píše tester, někdy i vývojář pomocí skriptovacího programovacího jazyku a ty se poté spouští na počítači. </p><h2> Podle fáze testování </h2><p> Testovat můžeme v různých fázích vývojového cyklu a tak testy dělíme na: </p><p></p><ul><li>Unit testy </li><li> Modul testy </li><li> Integrační testy </li><li> Funkční testy </li><li> Systémové testy </li><li> Akceptační testy</li></ul> <p></p><h2>Podle dimenzí kvality<br></h2><p> Pohledů na kvalitu je více, testujem tedy funkčnost, výkon, kompatibilitu, použitelnost, spolehlivost, bezpečnost, udržitelnost a jako poslední přenositelnost. </p><p> To by bylo vše k rozdělení a pojďme si některé názorné ukázky v krátkosti popsat. </p><h2> Integrační testy </h2><p> Integrační testy jdou na řadu jako první ze všech ostatních testů. Unit a modul testy mají na starosti programátoři. Napřed proběhnou <b>u</b><b>nit testy</b> - jedná se o ověření napsaného kódu a jeho funkčnosti - test jednotky (unity). </p><p> <b>Modul testy</b> nejsou moc odlišné od unit testů a jedná se zde o otestování komponenty (modulu) popř. otestování celé knihovny. Nutno podotknout, že unit i modul testy jsou zautomatizované, tedy netestuje je člověk, ale počítač. </p><p> Vnější<b> integrační testy</b> již provádí tester a jedná se test provolávání propojení jednotlivých aplikací / částí aplikace. Oprava nalezené chyby (bugu) v téhle testovací fázi vyjde nejlevněji, odchycení problému později už bývá náročnější a nákladnější. </p><h2> Funkční testy </h2><p> Funkční testy jsou oblastí, pod kterou spadají různé typy testů. Jako první bych zmínil <b></b><b>s</b><b>moke</b><b> testy</b>. Jedná se o rychlý a ne úplně detailní test. Cílem smoke testů je rychlé otestování hlavní funkcionality aplikace. Testy jsou většinou prováděny po nasazení finální verze aplikace na prostředí. Prostředí může být jak naše (testovací), tak produkční (u zákazníka). </p><p> Velmi důležité jsou<b> s</b><b>ystémové testy</b>, které se starají o správnou funkčnost aplikace jako celku. Správnou funkčností je zde myšleno plnění úlohy, pro kterou aplikace byla vyvinuta, ověřujeme, zda jsou v aplikaci ošetřeny všechny nestandardní situace, které mohou nastat. </p><h2> Bezpečnostní / Penetrační testy </h2><p> Bezpečnostní testy tvoří samostatnou kapitolu. Dokonce existují testeři, kteří se zaměřují jen na bezpečnost a pochopitelně i firmy, které hledají testery zabývající se touhle oblastí. Takový tester bezpečnosti se dá považovat za "hodného hackera". Ten "zlý" se snaží získat např. přihlašovací údaje do emailové schránky, bankovního účtu (tedy prolomit přihlášení), dostat se do vašeho soukromí (ovládat váš PC na dálku a tím získat veškerá data uložená na harddisku PC, dostat se do telefonu, udělat si z vašeho telefonu štěnici), nebo třeba soukromí klientů (odcizení informací o klientech bankovní společnosti). "Hodný hacker", neboli tester bezpečnosti provádí "Penetrační" testy, kterými odhalí chyby, které by mohl využít potencionální "zlý hacker". Konkrétně to jsou například testy infrastruktury, aplikací, bezdrátových sítí Wi-Fi nebo mobilních zařízení. </p><h2> Výkonnostní testy / Zátěžové testy </h2><p> Takové testy slouží k otestování počtu lidí, které daný software dokáže obsloužit. Značnou část výkonnostního testování tvoří průběžný monitoring testovaného softwaru. Slouží nám k tomu dnes už spousty nástrojů, sami si můžete vyzkoušet třeba JMeter, který je zdarma. Testy dělíme na několik typů a jako první z nich je p<b>erformance test</b>. V performance testech zjišťujeme jak se chová systém, který předem definovanou zátěží zatěžujeme. Další jsou <b>load</b> a <b>stress testy</b>. Jedná se o zatížení systému, kde zátěž narůstá až do té doby, kdy se zjistí limit při kterém systém překročí akceptovatelné požadavky. Soak test se stará o testy, které běží dlouhodobě, a jejich cílem je odhalit nedostatky testovaného systému, který je v neustálém provozu. </p><p> <i>Marcel Ondruška</i><br></p>odborné;#vzdělávání;#
5 nejlepších nootropik na zvýšení produktivity.https://www.create-it.cz/Blog/Stranky/produktivita.aspx5 nejlepších nootropik na zvýšení produktivity.<p>Znáte to - někdy se potřebujete soustředit, ale zrovna to nejde. Káva už nepomáhá. Existují ale i jiné legální možnosti, jak svůj mozek podpořit. </p><p> Pojďme se podívat na ty nejlepší a nejdostupnější nootropika, která lze použít na zlepšení mentálního stavu a soustředěné pozornosti. Nootropika, neboli léčiva, potravní doplňky nebo funkční potraviny zlepšující schopnosti lidského myšlení, působí hlavně díky modulaci funkce dopaminu v mozku - základy naleznete v <a href="/Blog/Stranky/kava.aspx" target="_blank">článku o kávě</a>. Následující látky jsou v mnoha směrech daleko účinnější než káva samotná a fungují dobře i ve vzájemných kombinacích, jsou proto ideálními kandidáty pro zlepšení pozornosti, kreativity a produktivity. </p><h2>Acetylcholin</h2><p>Možná jste o něm slyšeli v chemii na střední škole, ale jinak se o něm moc nemluví. Jedná se o relativně neznámý, ale velice důležitý neurotransmitter. Podporuje <a href="https://www.britannica.com/science/acetylcholine" target="_blank">pracovní paměť</a>, pozornost, verbální a logické schopnosti a kreativitu. Navíc zlepšuje svalovou paměť, koordinaci a mobilitu. Při narušení produkce acetylcholinu v mozku vznikají symptomy <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4787279/" target="_blank">Alzheimerovy choroby</a>, jeho významný efekt na paměťová centra a pozornost je proto zřejmý.</p><p>Acetylcholin je v těle <a href="https://lpi.oregonstate.edu/mic/other-nutrients/choline" target="_blank">vyráběn z cholinu</a>, který lze získat hlavně z buráků, vajec, masa, ryb, mléka a jogurtu. V případě bylinných doplňků stravy pak s acetylcholinem pomáhá <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5020397/" target="_blank">ašvaganda</a>, <a href="https://www.ncbi.nlm.nih.gov/pubmed/17969894" target="_blank">ginko biloba</a> a <a href="https://nootropicsexpert.com/gotu-kola/" target="_blank">gotu kola</a>. Také nikotin se váže na acetylcholinové <a href="https://science.howstuffworks.com/nicotine3.htm" target="_blank">receptory</a>, tudíž má zmíněné účinky i jakákoliv forma tabáku. <br></p><h2>Čaj Matcha / Káva s L-theaninem</h2><p>S čajem Matcha (Camellia sinensis) jste se určitě již setkali. Tento zelený čaj má narozdíl od běžně pěstovaného přibližně 5x vyšší obsah L-theaninu, a to díky způsobu pěstování, který se zaměřuje na maximalizaci této látky v listech. </p><p> <a href="https://examine.com/supplements/theanine/" target="_blank">L-theanin</a> chrání mozek před "mentální ránou", kterou způsobuje kofein. Běžně tento efekt můžete cítit přibližně hodinu po konzumaci kávy, která způsobí rapidní pokles krevního cukru. Matcha uvolňuje díky L-theaninu kofein pomaleji než káva, proto je tento pokles skoro neznatelný. L-theanin je také vhodný pro uvolnění a relaxaci.</p><p>Proto je vhodné používat L-theanin jako doplňek stravy při nadměrné konzumaci kávy. Matcha obsahuje vysoké množství anti-oxidantů, ochraňuje buňky jater a srdce, urychluje mozkové funkce, zakrývá signály hladu a preventivně působí i proti rakovině.<br></p><h2>Tyrosin</h2><p>Tyrosin, nebo také L-tyrosin v krevním oběhu dokáže proniknout skrz hematoencefalickou bariéru do mozku. Tam je z něj pak vyráběn dopamin, tedy nedůležitější neurotransmitter pro udržování soustředěné a zdravé mysli. Je využíván i pro produkci epinefrinu a norepinefrinu (možná je vám více povědomé jejich označení adrelanin a noradrenalin). Pokud má člověk dopamin v nerovnováze, může to souviset se symptomy schizofrenie v případě přemíry dopaminu a v případě extrémního nedostatku pak s Parkinsonovou chorobou. Při běžném deficitu dopaminu se vyskytují symptomy poruchy pozornosti a zapomnětlivost. </p><p>Pro správné využití tyrosinu v těle a jeho transformaci na dopamin je potřeba vitamín B6. Dobrým zdrojem vitamínu B6 jsou játra, vepřové maso, makrely, vejce, droždí, banány, brambory, zelí, špenát, kapusta, zelenina, avokádo, mrkev, ořechy, obiloviny a celozrnný chléb. Tyrosin samotný se <a href="https://www.myfooddata.com/articles/high-tyrosine-foods.php" target="_blank">vyskytuje</a> v hovězím a kuřecím mase, vejcích, sýrech (parmezán), sojových bobech, rybách a k dostání je i jako extrakt.<br></p><h2>Mitragynin</h2><p>Mitragynin je hlavní komponentou stromu Mitragyna speciosa, neboli <a href="http://www.emcdda.europa.eu/publications/drug-profiles/kratom">Kratomu</a>. Ten roste především v Indonésii a Thajsku. Jeho listy zvyšují motivaci k práci, rapidně zlepšují soustředěnou pozornost, potlačují pocity únavy a zlepšují funkci imunitního systému. Mitragynin potlačuje bolest a neklidnou mysl - podporuje tak kreativní flow. Kratom také uvolňuje zmíněný acetylcholin, a nejen to - také dopamin a serotonin, které jsou klíčové při dokončování úkolů a pro soustředěnou pozornost. Určité <a href="http://www.kratomy.cz/" target="_blank">odrůdy Kratomu</a> pak působí jako lék na depresivní stavy. V Česku je volně k dostání v botanických obchodech.<br></p><h2>Nikotin</h2><p>Nikotin je klasické nootropikum. Používal ho knižní hrdina Sherlock Holmes pro rychlejší uvažování a zvýšenou pozornost a Carl Jung nebo Sigmund Freud také znali jeho pozitivní účinky. V mnoha případech je nikotin používán jako forma sebe-medikace a působí také jako perfektní <a href="https://examine.com/supplements/nicotine/" target="_blank">kognitivní stimulant</a>. Nikotin se, stejně jako kofein, váže k adenosinovým receptorům, a tak zajišťuje oddálení únavy a spánku. Výzkumy také <a href="https://parkinsonsnewstoday.com/2018/11/28/smoking-linked-reduced-parkinsons-risk-but-carries-caveat/" target="_blank">prokazují</a>, že dlouhodobí kuřáci mají menší pravděpodobnost výskytu Parkinsonovy choroby, jelikož nikotin zvyšuje množství dopaminu v mozku. Lze ho používat v mnoha formách, nejenom ve zdraví velmi poškozujících cigaretách, ale i v nikotinových náplastích nebo žvýkacím tabáku (snus). Zářným příkladem je <a href="https://www.theguardian.com/commentisfree/2012/oct/29/sweden-smokers-option-snus" target="_blank">populace Švédska</a> - dosáhli zde na nejmenší výskyt nemocí a chorob způsobených tabákovými výrobky, a to hlavně kvůli přechodu z cigaret na snus.<br></p><p>Ať už si vyberete pro zlepšení svých kognitivních dovedností jakýkoliv doplňek, mějte na paměti, že jejich přehnané a chronické využívání s sebou může přinést negativní účinky. Stejně jako káva a kofein by mělý tyto látky být používány hlavně v případech zvýšených nároků na mentální výkonnost a v obdobích, kdy je nátlak a stres nevyhnutelný. Pro občasné zlepšení nálady a soustředění jsou však tato nootropika velice účinná.<br></p><p> <i>Jan Jileček </i><br> </p>odborné;#hobby;#vzdělávání;#
Analytika musí být součástí design procesuhttps://www.create-it.cz/Blog/Stranky/analytika.aspxAnalytika musí být součástí design procesu<p>Moderní firmy, které řeší svou webovou či mobilní aplikaci, už dávno nesledují jen funkční stránku. Že aplikace dělá, co má, by mělo být samozřejmostí, podstatné však je, jestli to dělá dobře. Tedy zda uživatel najde snadno co potřebuje (nebo co chcete vy, aby si myslel, že potřebuje) a zda bez jakýchkoliv zaškobrtnutí v aplikaci splní cíle, ve které doufáte. Aby to fungovalo, je třeba zahrnout analytiku do přípravné i realizační fáze projektu.<br></p><h2> Začněte analýzou</h2><p> Stanovení cílů by mělo být tím prvním, čím se budete zabývat. Tedy <strong>„Proč?“</strong> vlastně chcete nový web či aplikaci, co si od toho slibujete. Chcete víc zákazníků? Chcete prodat více vašeho zboží? Týká se to i aplikací pro interní účely – chcete, aby vaši obchodníci strávili méně času zjišťováním, který zákazník teď zrovna něco potřebuje? Chcete, aby se zaměstnanci nezdržovali zdlouhavým vyplňováním výkazů?</p><p> <b>Důležitá je analýza, jak ke zvoleným cílům dospět, případně co tomu brání. </b>Nechodí lidé na současný web, nebo se v něm ztrácí? Není třeba problém v nabízených produktech a jejich cenách? Oslovujete svým webem tu správnou cílovou skupinu? Jak je vůbec velká? Jak hledá produkty a služby, které nabízíte? Používají zákazníci spíše web anebo mobil? Jak se ke stejnému problému staví konkurence, kde jsou její slabé a silné stránky a jak jim můžete zákazníky přetáhnout?</p><p> Pravidelně se nám stává, že při takové analýze nalezneme problémy a příležitosti, o kterých klient ani netušil a jejichž vyřešení mu výrazně pomůže plnit jeho cíle. Bohužel ale klienti málokdy věnují péči analytice před samotnou realizací a následné změny pak projekt zbytečně prodlužují a <strong>prodražují</strong>.</p><h2> Nezapomeňte cíle a chování uživatelů vyhodnocovat</h2><p>Následně je potřeba plnění cílů kvalitně měřit a vyhodnocovat. U webů se k tomu účelu používá nejčastěji nástroj Google Analytics (pozor, u mobilních aplikací jeho podpora končí a přechází se na Google Firebase Analytics). Ten má sice mnoho webů nasazený, ale téměř nikdo nevyužívá jeho plných možnosti.</p><p> Schválně – dokážete říct, ve kterém kroku a poli objednávkového formuláře se vám ztrácí nejvíce zákazníků? Nebo která kategorie produktů má nejlepší konverzní poměr? Co uživatelé na vašem webu hledají a jak jsou s výsledkem spokojeni? Či na kolik vás vyšla každá objednávka po sečtení nákladů na reklamu na Facebook, AdWords, Sklik… a jaká byla marže? Které objednávky byly stornovány nebo reklamovány? Dokážete propojit objednávky z mobilní aplikace a webu s nákupy na prodejně? Dokážete testovat různé varianty stránek a říct, která lépe plní vaše cíle?</p><h2> Propojení analýzy, designu a vývoje</h2><p> Často když už se analytika řeší, nastupují bohužel analytici až po realizaci, navíc nejsou součástí realizačního týmu a neznají tak technické pozadí projektu. Vyřešení jejich požadavků je pak opět zdlouhavé a nákladné.<br></p><p> V Cleverlance a QUB nabízíme analytiku jako součást design procesu. Vstupy z úvodní analýzy pomáhají designérům připravit lepší strukturu webu, která bude více vyhovovat uživatelům a se kterou bude klient lépe plnit své cíle. V realizační fázi se pak zaměřujeme na to, abychom plnění těchto cílů dokázali co nejpřesněji měřit a klient mohl následně činit kvalifikovaná obchodní rozhodnutí na základě skutečných dat, nejen dojmů. Můžeme tento postup vřele doporučit i vám. Nebo vám s ním pomoci! </p><p> <i>Tomáš Kapler</i> </p>odborné;#vzdělávání;#
Proč konzultanti kupují kreativuhttps://www.create-it.cz/Blog/Stranky/Droga5.aspxProč konzultanti kupují kreativu<p>Na začátku dubna New York Times přinesly zprávu, že konzultační firma Accenture kupuje kreativní agenturu <a href="https://droga5.com/" target="_blank">Droga5</a>. Ta se se svými více jak 500 zaměstnanci stane součástí <a href="https://www.accenture.com/us-en/services/interactive-index" target="_blank">Accenture Interactive</a>.<br></p><p> Toto spojení je zajímavé hned ze dvou pohledů. Za prvé strategicky a konzultačně orientovaný byznys se propojuje s kreativně orientovaným byznysem. A za druhé, kreativita jako taktický nástroj se po éře konzultačních firem vrací masivně do hry. </p><p> Droga5 je v současnosti jednou z nejznámějších nezávislých reklamních agentur v USA. Tato společnost založená Davidem Drogou reprezentuje kreativitu ve své nejčistší podobě. Nyní se má prolnout s kulturou konzultačních a technologických firem. Tyto světy nemohou být vzdálenější. Jeden produkuje špičkové výstupy v podobě TV spotů a kampaní, ten druhý slajdy s výsledky výzkumů, které jsou dnes často doprovázeny technologickými řešeními. Party kreativců tak budou sedět kolem jednoho stolu s konzultanty a společně hledat, co je pro jejich klienta nejlepší. </p><p> Tohle propojení je rozhodně dobrou zprávou pro kreativce, kterým nestačí přijít s úspěšnou, nicméně stále jednorázovou reklamní kampaní, ale záleží jim na dodání dlouhodobého komplexního zákaznického prožitku. Stejný cíl mají poměrně dlouho i klienti snící o dodavateli, který je schopný propojit brand a technologii skrze všechny zákaznické <a href="https://en.wikipedia.org/wiki/Touchpoint" target="_blank">touchpointy</a>. Uvědomují si, že po dekádě soustředění se pouze na technologie a automatizaci procesů je to právě kreativita a její způsob komunikace směrem k zákazníkům, která vše oživuje a dává věcem smysl. </p><p> Jestli se způsoby přístupu k řešení potřeb klientů propojí ke společnému cíli, nebo zůstanou mentálně, a tedy i procesně odděleny, tak jak je tomu doteď, zůstává zatím velkou neznámou. Krok Accenture přesto není ojedinělý. Naopak, reflektuje trend rychle se měnícího konkurenčního prostředí. Propojení technologií, značky a kreativity, které v dávných dobách odstartoval Apple, se pomalu, ale jistě stává podmínkou přežití. Můžeme tak očekávat další akvizice kreativních týmů ze strany konzultačních a technologických společností. </p><p> <i>Michal Hořava<br></i></p>odborné;#
Káva jako nástroj pro zvýšení produktivityhttps://www.create-it.cz/Blog/Stranky/kava.aspxKáva jako nástroj pro zvýšení produktivity<p>Jedna káva po ránu, jedna káva po obědě a jedna káva za odměnu. Káva je nedílnou součástí života mnoha manažerů, analytiků a programátorů, o kterých se navíc říká, že transformují kávová zrna na kód. </p><p> Chtěli jste vždy vědět proč nás káva udržuje bdělými a zvyšuje naši pozornost? Tušíme, že je za tím kofein, jak ale doopravdy funguje? </p><h2> Trocha neurobiologie</h2><p> Kofein je stimulant hlavního nervového systému. Udržuje člověka vzhůru díky své schopnosti blokovat molekuly navozující pocit spánku - <a href="https://www.ncbi.nlm.nih.gov/pubmed/20164566" target="_blank">adenosin</a>. </p><p> Naše tělo potřebuje konstantní přísun energie, které se mu dostává díky rozkládání molekuly ATP. Ta při rozkladu uvolňuje adenosin. </p><p> Neurony v našem mozku mají receptory, ke kterým se molekula adenosinu dokáže dokonale navázat. Jakmile se molekula naváže, spustí se biochemická reakce, která zpomaluje uvolňování důležitých <a href="https://cs.wikipedia.org/wiki/Neurotransmiter" target="_blank">neurotransmiterů</a> - proto se pak člověk cítí ospalý nebo “jako ve smole”. </p><p> Kofein, přítomný v kávě, je naopak tzv. antagonista adenosinových receptorů. Dokáže se také navázat k adenosinovým receptorům, a blokuje tak přístup “pravého” adenosinu, který běžně spouští pocit ospalosti.</p><p> Kofein a adenosin mají podobnou molekulární strukturu, avšak kofein má tu výhodu, že po navázání se do adenosinového receptoru nespustí reakci ospalosti. Ve zkratce - adenosin uspává neurony, kdežto kofein blokuje tyto “uspávače”, a tak stimuluje mozek. V některých neuronech jsou adenosinové receptory vázané k dalším důležitým receptorům - zejména těm dopaminovým. Když se adenosin naváže k tomuto receptoru, zpomalí se i vázání dopaminu.</p><p> Dopamin je hlavní neurotransmiter zodpovědný za soustředěnou pozornost a “pocit odměny”. Uvolňuje se při dívání se na seriály, úspěšném dokončení obtížného projektu a nebo jiných stimulujících činnostech. Uvolňuje se hlavně při <a href="https://www.youtube.com/watch?v=8UsI9CXHm6o" target="_blank">očekávání odměny</a> a při objevení něčeho nového a zajímavého - je hlavním aktérem při závislostech na drogách. Příkladem z běžného života je např. Instagram nebo Facebook, kdy je při skrolování vytvořeno očekávání něčeho zajímavého a nového. Samotné očekávání již uvolňuje dopamin a dělá tak činnost prohlížení feedu stimulující a snadno návykovou.</p><p> Problém nastává při přehánění stimulujících činností. Mozek se adaptuje na zvýšený přísun dopaminu a vyžaduje ho stále více. Běžné fádní činnosti, jako učení se na zkoušku, práce na nezajímavém projektu nebo vyplňování daňového přiznání jsou pak téměř nemožné na splnění, jelikož nejsou pro mysl dostatečně stimulující. Nastává pak prokrastinace, kdy si mozek sám najde cokoliv stimulujícího.</p><p> Proto je káva tak skvělým nástrojem pro dočasné zvýšení produktivity, jelikož podporuje vázání dopaminu na dopaminové receptory. I běžně nudná činnost je pak o něco více stimulující. Pokud se káva použije jednou za čas, její účinky jsou extrémně silné. Při opakovaném použití se však mozek adaptuje na zvýšený dopamin (a kofein) a vzniká tak tolerance (mozek zvýší počet receptorů). </p><p> <img src="/Blog/PublishingImages/Stranky/kava/LR-2100.jpg" alt="káva v Cleverlance" /> <br> </p><h2> Alternativní pohled</h2><p> Pokud na moment zamíříme do<a href="https://www.databazeknih.cz/knihy/tao-zdraveho-stravovani-dietni-moudrost-podle-tradicni-cinske-mediciny-100505" target="_blank"> čínské medicíny</a>, káva je zde klasifikována jako “hořké, pálivé a teplé léčivo uvolňující povrch”. Léčiva uvolňující povrch jsou v zásadě diaforetika, potopudné prostředky. Působí tak, že přeměňují jin neboli esenci ledvin či, která je uvolněna a proudí vzhůru ven z organismu. Když tato či energie postupuje různými energetickými vrstvami z těla ven, zaplavuje orgány v těchto vrstvách jangovou či, takže člověk má pocit zvýšené energie. Navíc tato či procházející tělem vzhůru a ven stimuluje proudění veškeré tělesné či, uvolňuje zablokovanou či a spolu s ní aktivuje krev a tělní tekutiny. </p><h2>Jak je to s tou závislostí?</h2><p> Káva zvyšuje spalování tuku, urychluje peristaltiku a je močopudná, zvyšuje tak dehydrataci těla. <a href="https://www.amenclinics.com/blog/why-healthy-fats-are-important/" target="_blank">Mozek, který je ze 60% tvořen tukem</a>, však pro svoji činnost potřebuje jak tuk, tak vodu. Káva je tak při dlouhodobém používání nejen kontraproduktivní, ale také na ní vzniká závislost. Závislosti se však dá během pár dnů zbavit, škála symptomů při odvykání je od bolesti hlavy k pocitu chřipky. </p><p> Optimální množství kofeinu pro blokování adenosinu je pak <a href="https://drclydewilson.typepad.com/drclydewilson/2008/11/caffeine-reduces-attention-deficit-hyperactivity-disorder-adhd.html" target="_blank">1 mg kofeinu na 1 kg tělesné váhy</a> - 80 kg člověku tak stačí <a href="https://coffee.stackexchange.com/questions/79/how-can-i-figure-out-how-much-caffeine-is-in-my-cup" target="_blank">10 g zrnkové kávy</a>, což je jedno až dvě espressa (běžné espresso je ze 7g zrn = 64-70 mg kofeinu). Jakékoliv větší množství kofeinu nepřidává další výhody pro kognitivní schopnosti, naopak je maskuje. </p><p> Podle nové <a href="https://www.independent.co.uk/life-style/health-and-families/coffee-four-cups-day-heart-health-conditions-study-caffeine-effects-a8411231.html">studie</a> je však prospěšná i zdánlivá nadmíra kofeinu, a to pro srdce. Výzkumníci došli k závěru, že 4 šálky denně jsou optimální pro zlepšení funkce srdce a cév. Kofein totiž mobilizuje protein p27 do mitochondriálních buněk, které opravují a ochraňují srdeční buňky. Studie byla provedena na obézních a pre-diabetických myších.</p><p> Jednou z látek pro omezení negativních účinků kávy je L-theanin (výtažek ze zeleného čaje), o kterém si povíme v jednom z dalších článků ze seriálu o produktivitě. Prozatím udržte svoji závislost na kávě na uzdě a pro maximální zážitek a užitek ji raději pijte střídměji a v situacích, které to maximálně vyžadují.</p><p> <em>Jan Jileček</em> </p>odborné;#