Create IT Blog - co se děje v Cleverlance

 

 

Typescript: typy pro manipulaci s řetězcihttps://www.create-it.cz/Blog/Stranky/Type_script_3.aspxTypescript: typy pro manipulaci s řetězci<p>​Pojďme se tentokrát seznámit s vestavěnými typy, které nám usnadní práci s řetězci / proměnnými, a mohou být použity v šablonách (tzv. template string literals).<br></p><p> <b>Které typy to jsou?</b></p><ul><li>Uppercase<StringType> - transformuje vstupní řetězec do řetězce s pouze velkými písmeny</li><li>Lowercase<StringType>- transformuje vstupní řetězec do řetězce s pouze malými písmeny</li><li>Capitalize<StringType> - transformuje vstupní řetězec do řetězce s prvním znakem psaným velkým písmem</li><li>Uncapitalize<StringType> - transformuje vstupní řetězec do řetězce s prvním znakem psaným malým písmenem</li></ul><p>Každý z typů přijímá jeden parametr typu string. Pokud se pokusíme předat parametr jiného typu, pak dostaneme chybovou zprávu, upozorňující nás na porušení daného omezení.</p><p>Výše zmíněné typy jsou z výkonnostních důvodů poskytovány TypeScriptovým kompilátorem a nejsou definovány v TypeScriptovém .d.ts souboru. Implementace těchto typů využívá přímo JavaScriptové funkce pro manipulaci s řetězci a nebere v potaz locale běhového prostředí (je to soubor parametrů, které definují uživatelův jazyk, stát a jiné zvláštnosti, které se následně projeví v uživatelském rozhraní). Implementace v TypeScriptu 4.1 vypadá následovně:<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">function applyStringMapping(symbol: Symbol, str: string) { switch (intrinsicTypeKinds.get(symbol.escapedName as string)) { case IntrinsicTypeKind.Uppercase: return str.toUpperCase(); case IntrinsicTypeKind.Lowercase: return str.toLowerCase(); case IntrinsicTypeKind.Capitalize: return str.charAt(0).toUpperCase() + str.slice(1); case IntrinsicTypeKind.Uncapitalize: return str.charAt(0).toLowerCase() + str.slice(1); } return str; } </code></pre><p></p><h2> <strong>Uppercase<StringType></strong></h2><p>Transformuje vstupní řetězec do řetězce pouze s velkými písmeny.</p><p>Mějme typový alias PointsOfTheCompass, jehož definice je následující<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type PointsOfTheCompass = 'north' | 'west' | 'east' | 'south'</code></pre><p>Výsledkem následujícího př​​iřazení<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type Result = Uppercase<PointsOfTheCompass>;</code></pre><p>je typový alias se všemi položkami psanými velkými písmeny.​<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type Result = 'NORTH' | 'WEST' | 'EAST' | 'SOUTH'</code><br></pre><p></p><h2> <strong>Lowercase<StringType></strong></h2><p>Mějme typový alias PointsOfTheCompass, jehož definice je následující<br></p><span style="font-size:15px;"></span><pre><code class="language-typescript hljs">type PointsOfTheCompass = 'NORTH' | 'WEST' | 'EAST' | 'SOUTH'</code></pre><p></p><p>Výsledkem následujícího přiřazení<br></p><pre><code class="language-typescript hljs">type Result = Lowercase<PointsOfTheCompass>;</code><br></pre><p></p><p>je typový alias se všemi položkami psanými malými písmeny.<br></p><pre><code class="language-typescript hljs">​type Result = 'north' | 'west' | 'east' | 'south'</code><br></pre><p></p><h2> <strong>Capitalize<StringType></strong></h2><p>Mějme typový alias PointsOfTheCompass, jehož definice je následující<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type PointsOfTheCompass = 'north' | 'west' | 'east' | 'south'</code></pre><p>Výsledkem následujícího přiřazení<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type Result = Lowercase<PointsOfTheCompass>;</code></pre><p>je typový alias, kde každá položka má první písmeno psáno velkým písmenem<br></p><pre><code class="language-typescript hljs">type Result = 'North' | 'West' | 'East' | 'South'</code><br></pre><p></p><h2> <strong>Uncapitalize<StringType></strong></h2><p>Mějme typový alias PointsOfTheCompass, jehož definice je následující<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type PointsOfTheCompass = 'NORTH' | 'WEST' | 'EAST' | 'SOUTH'</code></pre><p>A výsledkem následujícího přiřazení<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type Result = Uncapitalize<PointsOfTheCompass>;</code></pre><p></p><p>je typový alias, kde každá položka má první písmeno psáno malým písmenem<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type Result = 'nORTH' | 'wEST' | 'eAST' | 'sOUTH'</code><br></pre><p></p><h2> <strong>Použití</strong></h2><p>Nejčastější použití nalezneme spolu s template literal type. Mějme typový alias Point, jehož definice je následující<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">interface Point {  <p> longitude: double; <span style="font-family:source-sans-pro, open-sans, sans-serif;"> </span></p><p> latitude: double;<span style="font-family:source-sans-pro, open-sans, sans-serif;"><br>}</span></p></code></pre><pre>Výsledkem následujícího přiřazení<br></pre><p></p><pre><br><code class="language-typescript hljs">type CapitalizedPoint = Capitalize<keyof Point>;</code></pre><p></p><p>pak je<span style="font-size:15px;"></span></p><pre><code class="language-typescript hljs">type CapitalizedPoint = 'Longitude' | 'Latitude'</code></pre><p>pokud náš příklad rozvineme dále a aplikujeme spolu s template literal type, pak můžeme například generovat další typ<br></p><pre> <code class="language-typescript hljs">type PointGetAccessoryNames = `get${Capitalize<keyof Point>}`;</code></pre><p></p><p>kde jako výsledek dostáváme<br></p><pre><code class="language-typescript hljs">type PointAccessoryNames = 'getLongitude' | 'getLatitude'</code></pre><p>pokud tento přístup následně nakombinujeme i s mapováním<br></p><pre><code class="language-typescript hljs">type PointAccessors = {  <p>​[K in keyof Point as `get${Capitalize<K>}`]: () => Point[K];<span style="font-family:source-sans-pro, open-sans, sans-serif;"><br>}</span></p></code></pre><p>pak dostaneme následující typový alias<br></p><pre><code class="language-typescript hljs">type PointAccessors = {    <p> getLongitude: () => number;   <span style="font-family:source-sans-pro, open-sans, sans-serif;"> </span></p><p> getLatitude: () => number;<br></p>}</code><p></p></pre><p></p><h2> <strong>Závěrem</strong></h2><p>Výše jsme představili typy, které můžeme použít pro manipulaci s řetězci a způsob, jakým je můžeme použít spolu s template string literals a jaké výhody nám to přináší. A na co se můžete těšit příště? </p><p>Typy, jako jsou Readonly<Type> ; Record<Keys, Type> ; Pick<Type, Keys> a Omit<Type, Keys><br></p><p><i>Václav Kandus​</i></p>odborné;#
Testing Clever Akademiehttps://www.create-it.cz/Blog/Stranky/testing-akademie.aspxTesting Clever Akademie<p style="display:none;">​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​Vstup s námi do světa IT a pojď se naučit testovat software!​ Naši průvodci tě provedou cestami a stezkami až na tvou pomyslnou K2 – získáš svou příležitost v jiném oboru, ve kterém zúročíš své analytické a kritické myšlení.</p> ​<div class="ms-rtestate-read ms-rte-wpbox"><div class="ms-rtestate-notify ms-rtestate-read 7011e392-79f3-4920-88bc-448b0e5808ac" id="div_7011e392-79f3-4920-88bc-448b0e5808ac" unselectable="on"></div><div id="vid_7011e392-79f3-4920-88bc-448b0e5808ac" unselectable="on" style="display:none;"></div></div><p>​​<br><br></p>vzdělávání;#
Vývoj multiplatformních mobilních a webových aplikacíhttps://www.create-it.cz/Blog/Stranky/Multiplatform.aspxVývoj multiplatformních mobilních a webových aplikací<p>​​​​​​Chcete vlastní mobilní aplikaci? Všem je jasné, že je třeba myslet jak na platformu Android tak i na iOS, nestačí jedna z nich. A často se neobejdeme ani bez webového rozhraní​. Ovšem prakticky od příchodu mobilních zařízení na trh se proslýchá, že vyvíjet separátně pro jednotlivé platformy je nákladné. Proto se různé společnosti pokoušely přinést alternativy v podobě multiplatformních řešení, ovšem žádné z nich se výrazněji neujalo. Měla svá úskalí, byla zbytečně složitá​ a firmu, která chce vyvíjet své mobilní aplikace flexibilně, drží v pomyslné "kleci" omezených možností. Proto je u B2C aplikací velmi často preferován nativní vývoj, protože nejsou omezeny UX, možnostmi animací a dalšími detaily, které jsou pro tuto cílovou skupinu velmi důležité.​</p><p>V posledních letech se však objevují podnikové mobilní aplikace, u nichž není prioritou dokonalé uživatelské rozhraní a design, ale funkčnost, užitečnost, a především rychlost dodání a flexibilita úprav. A právě tady se ukázal prostor pro používání vybraných technologií, které nabízejí multiplatformní využití. Samozřejmě za dodržení určitých pravidel.</p><p>V Cleverlance se nám osvědčily tři způsoby implementace. Když to velmi zjednodušíme, hned na začátku se musíme rozhodnout, jak robustní back-end s MOA (<a href="https://en.wikipedia.org/wiki/Microservices">Microservice Oriented Architecture</a>) je k dispozici, nebo zda ho budeme potřebovat vytvořit a dále pak, jestli aplikace nebude mít příliš mnoho business logiky, ale bude spíše jen prezentační vrstvou. V tomto případě je vhodné použít <a href="https://flutter.dev/">Flutter</a>. Pokud potřebujeme v aplikaci fronty pro synchronizaci, business logiku a zavádíme určitou komplexitu mimo formuláře, osvědčil se nám <a href="https://kotlinlang.org/docs/multiplatform.html">Kotlin Multiplatform</a>. Nebo je tu ještě třetí hráč = PWA (<a href="https://en.wikipedia.org/wiki/Progressive_web_application">Progressive Web Applications</a>), který využívá silný základ moderních prohlížečů.</p><h2>Fl​​​utter</h2><p><strong></strong>Flutter považujeme za skutečně mnohakanálovou zobrazovací vrstvu, která nám umožňuje vytvářet jak mobilní, tak i webové a desktopové aplikace. Jedná se o flexibilní řešení, se kterým lze efektivně navrhnout B2B, a za určitých podmínek i B2C aplikaci. Příkladem budiž mobilní aplikace pro společnost BMW. Jestliže ale nechcete řešit problémy, je lepší se spolehnout na back-end a nechat na něm veškeré „přemýšlení“.</p><h2>Kotlin Multipl​atform</h2><p><strong></strong>Další možností je multiplatformní jazyk Kotlin. Výhodou je, že programujete "nativní aplikaci" pro Android, jejíž část se použije i pro iOS. Většinou je řeč o business logice a integrační vrstvě, která nám později ve fázi QA ušetří spoustu času. Vizualizační vrstva se pro systémy iOS a Android programuje nativně, a tak je možné dosáhnout „look & feel“ vzhledu platformy a přepoužít „one code base“ pro uživatelsky neviditelné části aplikace. U některých projektů lze takto využít až 70-80 % kódu.</p><h2>P​​WA</h2><p><strong></strong>Progressive Web Applications patří k nejnovějším trendům v oblasti tvorby webových aplikací. Do jisté míry stírají hranice mezi webovou a nativní mobilní aplikací díky možnosti práce offline, přístupu k hardwaru zařízení a to včetně možnosti příjmu push notifikací. Kombinují tak v sobě to nejlepší z obou světů, omezují nás pouze limity internetového prohlížeče. Otevírá se tak pestrá škála funkcionalit, například již v základu může využívat fotoaparát nebo čtečku otisku prstu. Požadavek na použití hlubších funkcí zařízení lze efektivně vyřešit pomocí nativní „obálky“, která je zpřístupní. PWA aplikace lze umístit do všech běžných aplikačních obchodů (Google Play, Apple Store, Huawei AppGallery i Microsoft Store) a mohou běžet na zařízeních s OS Android, iOS i Windows.<br></p><h2>​Kde to funguje?<br></h2><p>Jako dodavatel chceme samozřejmě kromě standardních technologií vývoje nabízet i ty „nové“ a o to více nás těší, že za námi chodí i naši zákazníci, kteří už na začátku požadují Kotlin Multiplatform. Jako příklad můžeme uvést americkou společnost Globstar, pro kterou ve skupině Aricoma dodáváme mobilní aplikaci na konfiguraci a správu satelitních modemů pro připojení k internetu. Využití Kotlin Multiplatform se v tomto případě skutečně osvědčilo, protože se jednalo o aplikaci náročnou na integraci i přenos dat. Integrace navíc probíhá pomocí BLE (Bluetooth Low Energy), která dokáže obsluhovat desítky zařízení najednou a aktualizovat jim například firmware. Technologie přesvědčila jak zákazníka, tak nás jako dodavatele a při vývoji aplikace se tak podařilo vytvořit fungující pracovní partnerství.</p><p>Technologii PWA jsme úspěšně využili například v online samoobsluze pro zákazníky SAZKAmobilu. Její hlavní výhodou je extrémní zkrácení Time-To-Market (času potřebného pro uvedení nových funkcí „na trh“) a velká základna vývojářů, kteří tuto technologii ovládají. Kromě toho se PWA nejlépe uplatní tam, kde není velký důraz na využití komponent samotného zařízení, například v interních firemních aplikacích využívaných pracovníky v terénu či ve výrobě.</p><p>Pokud by vás zajímaly technické detaily, přečtěte si na našem blogu <strong>mobile it</strong> <a href="https://www.mobileit.cz/Blog/Pages/kotlin-multiplatform-first-year.aspx">tento</a> článek, ve kterém se také <a href="https://www.mobileit.cz/Blog/Pages/choosing-mobile-app-technology.aspx">dozvíte</a>, na co si při výběru technologie pro vývoj mobilní aplikace dát pozor.<br></p><p><br></p><p><em>Milan Mitošinka​</em><br></p>odborné;#projekty;#
5 kognitivních zkreslení při vývoji softwaru a jak se jim vyhnouthttps://www.create-it.cz/Blog/Stranky/kognitivni-zkresleni.aspx5 kognitivních zkreslení při vývoji softwaru a jak se jim vyhnout<p>​​​​Kognitivní zkreslení jsou naučená pravidla vnímání a chování. V podstatě jsou to mentální zkratky, které nevědomě používáme. Při práci nás tyto skryté předsudky mohou nemile překvapit, proto je nutné si uvědomovat, jak fungují, a vědomě jim předcházet. V tomto článku se podíváme na 5 hlavních zkreslení a na užitečné techniky, které lze použít pro jejich minimalizaci.<br></p><p><br></p><h2>Optimistické ​zkre​​​slení</h2><p>Optimistické zkreslení (nebo také zaujatost) je tendence k přehnané optimističnosti ohledně okolních událostí. V softwarovém světě se vyskytuje hlavně při odhadech náročnosti úkolů, kdy můžeme přeceňovat vlastní dovednosti.​<br></p><p>Běžně se může při poradě stát, že váš kolega prohlásí, že daný náhodný úkol zvládne lehce udělat a nezabere mu to skoro žádný čas. Přitom nemá žádnou předchozí znalost o úkolu a vše zakládá na přehnaném optimismu. Jak jste určitě ve světě software už viděli, tyto odhady se často ukážou jako těžce podceněné. A malou třešničkou na dortu je tzv. snadné-obtížné zkreslení, kdy lidé odhadují obtížné úkoly optimisticky a ty snadné zase pesimisticky.</p><p>​Tomuto kognitivnímu zkreslení se dá vyhnout pomocí těchto přímých otázek:<br></p><ol><li>Vidíš na úkolu něco, co by mohlo způsobit problémy?</li><li>Vidíš nějaký důvod, proč by tvoje řešení mohlo být nesprávné?</li><li>Zamyslel ses nad závislostmi, které budou ovlivněny změnou tohoto kódu? <br><br></li></ol><h2>Konfir​​mační zkreslení</h2><p>Konfirmační zkreslení je dalším dobře známým zkreslením. Značí, že máme tendenci věnovat pozornost pouze těm informacím, které potvrzují naše existující přesvědčení a názory a naopak ignorovat ty informace, které našim názorům protiřečí. V podstatě je to stejné jako mít hlavu v oblacích a utíkat před realitou. Bystrost našeho myšlení se pod vlivem tohoto zkreslení nijak nezlepšuje, právě naopak.</p><p>Řekněme, že jeden z programátorů v týmu pevně věří, že dědičnost byla vždy základem <a href="https://cs.wikipedia.org/wiki/OOP">OOP</a>. Jiný kolega předloží argument, že tomu tak není. Dědičnost nebyla přijata jen tak a je stále zdrojem debat. Aby první programátor dokázal svoji pravdu, vygooglí třeba “dědičnost základem OOP" a hned první výsledek mu potvrdí jeho názor. Avšak jeho kolega má pravdu. Ani Alan Key, jeden ze zakladatelů OOP,  nechtěl implementovat dědičnost v první verzi jazyku Smalltalk.</p><p>Konfirmačnímu zkreslení se dá vyhnout následujícími způsoby</p><ol><li>​Pokusit se nalézt problémy, které mohou vzniknout, a nehledat jen pozitivní případy. V případě příkladu s Googlem tedy hledat i opačný názor.</li><li>Hledat logické opodstatnění každého předsudku (a nejlépe i zjistit, že jde o předsudek) a hledat i případy, při kterých může být logicky neplatný.<br><br></li></ol><h2>Kot​vení</h2><p>Kotvení popisuje skutečnost, kdy je přirozenou lidskou tendencí spoléhat se při rozhodovacím procesu na jednu informaci či skutečnost, od níž jsou poté odvozována další rozhodnutí. Tato informace však mnohdy vůbec nemusí být relevantní a může náš úsudek ovlivňovat negativním způsobem.</p><p>Toto zkreslení se může vyskytnout např. v následující situaci. Scrum master se zeptá týmu při odhadu pracnosti: “Jak dlouho zabere tenhle task? 2 týdny?". Díky efektu kotvení pak nebude záležet, jak je ten úkol ve skutečnosti obtížný, většina týmu se shodne na 2 týdnech. Byli ovlivněni první informací, kterou obdrželi. Stejná technika se využívá i při pohovorech, kdy je pro uchazeče klíčové navrhnout platové ohodnocení jako první.</p><p>A jak se kotvení zbavit?</p><ol><li>Neptat se přímo na odhad, ale na úkol samotný: “Kolik toho zvládnete udělat za 2 týdny?"</li><li><a href="https://en.wikipedia.org/wiki/Planning_poker">Planning poker</a> - všechny názory jsou dány anonymně ve stejný moment. Je to skvělá technika při scrumových odhadech! ​<br><br></li></ol><h2>Stád​ový efekt</h2><p>Stádový efekt je jev, který jedince nutí jít s davem a spíše přistupovat na názory, které viděl u ostatních. Může také označovat oblibu módních trendů - stačí se podívat na dnešní instagramovou kulturu bezcharakterních lidí. Pokud je myšlenka sdílena většinou populace, nabývá na důvěryhodnosti nezávisle na pravdivosti. Sociální sítě jako Twitter a Reddit jsou na to také velice náchylné. Na Twitteru je to ještě podpořeno omezeným počtem znaků, který podporuje povrchní názory a myšlenky.<br></p><p>Z hlediska softwarového vývoje se podívejme opět na příklad s poradou. Charismatická team leaderka argumentuje, proč by celý tým měl přejít z REST API na GraphQL. V prezentaci demonstruje technické výhody nové technologie pro celou firmu. Kolegové také vypadají, že novou technologii chtějí. Bohužel jde o stádový efekt. Team leaderka ve skutečnosti jen způsobila rozruch okolo nové technologie, ale nedokázala hodnotu svého nápadu. Bude to zajímat zákazníka? Uvidí nějaký rozdíl při používání? Přinese to více času, zákazníků nebo peněz firmě? Když jde o novou technologii, jsou pochopitelně všichni nadšení.</p><p>Jak se zbavit tohoto kognitivního zkreslení? Těmito otázkami:</p><ol><li>Software vyvíjíme hlavně pro podporu firmy. Nemá smysl používat novou barevnou technologii, pokud nepřinese žádnou extra hodnotu<br></li><li>Jaká je hodnota toho nápadu?</li><li>Jak přinese nové zákazníky, čas nebo nějakou jinou výhodu?</li><li>Převažují výhody nad cenou implementace?<br><br></li></ol><h2>Atr​ibuční chyba</h2><p>Atribuční chyba je zkreslení procesů přisuzování. Projevuje se tím, že při vysvětlování chování ostatních lidí má člověk sklon nadsazovat charakterové vlastnosti člověka a podceňovat kontext jeho životní situace nebo náhodnosti okolního prostředí.</p><p>Pro poslední zkreslení tohoto článku už vylezeme ze zasedačky a raději si sedneme zpět k práci. Při programování si však všimnete ošklivého bloku kódu. Pomocí <em>git blame</em> zjistíte, kdo je jeho autorem. Je to Lukáš. Samozřejmě. Lukáš je neopatrný, nezodpovědný a impulsivní. Nepřemýšlí nad tím co dělá. Vy byste to udělali lépe!</p><p>Ale uklidníte se a pokračujete v implementaci svojí feature. Za chvíli však narazíte na další blok otřesného kódu. Zase Lukáš, to je jasné! Avšak <em>git blame</em> tentokrát řekne jiný příběh - autorem jste vy. Všemožné otázky najednou naplní vaši  mysl. Jsem špatný vývojář? Jsem jako Lukáš? Ale tyto pochyby ihned zahodíte a začnou přicházet výmluvy. Samozřejmě, že nejste špatný vývojář, byla zrovna deadline, nebylo dost času, měli jste zrovna rýmu, a psa jste měli u veterináře. To je ve zktrace atribuční chyba - podceňování kontextu životní situace při souzení jiných lidí.</p><p>Jak se vyhnout atribuční chybě?</p><ol><li>Obviňování autora nepomůže. Zkuste zjistit příčinu toho špatného kódu.</li><li>Má Lukáš málo zkušeností v tomto segmentu vědění o programovacím jazyku/projektu?</li><li>Byl zrovna pod stresem? Blížil se deadline? Byl přepracovaný? Byl víkendový crunch?</li></ol><h2> ​Pozvěte ďáblova advokáta<br></h2><p>A to tedy bylo​ 5 hlavních kognitivních zkreslení. Co jsme se naučili? Kognitivní zkreslení se stávají nám všem. Co proti tomu můžeme dělat je naučit se všímat si jich a umět se jim vyhnout. Nejčastější zkreslení v softwarovém vývoji jsou optimistické, konfirmační a kotvící. Také je velice častý stádový efekt a atribuční chyba. Na softwarové projekty mohou mít katastrofální vliv. Hlavní metodou vyhnutí je vždy pečlivé zamyšlení se ​nad problémem a hraní si na "ďáblova advokáta" při jeho analýze, tedy snaha hledat nejen pozitivní případy, ale i ty opačné a negativní. Pro více informací o kognitivních zkresleních v softwarovém vývoji doporučují tuto <a href="https://www.researchgate.net/publication/328410759_Cognitive_Biases_in_Software_Engineering_A_Systematic_Mapping_Study">stud​ii</a>, kterou jsem použil jako zdroj pro tento článek. Doufám, že jste si článek užili, a zase příště!<br></p><p><em>Jan Jileček</em><br></p><p><br><br></p>odborné;#vzdělávání;#
Nová divize Cleverlance zachraňuje celý svět před kritickým nedostatkem čipůhttps://www.create-it.cz/Blog/Stranky/Cleverlance-Microchips.aspxNová divize Cleverlance zachraňuje celý svět před kritickým nedostatkem čipů<p>​<strong>​Praha, 1. dubna - Technologická společnost Cleverlance se rozhodla zareagovat na dlouhotrvající celosvětový nedostatek čipů a učinila strategické investiční rozhodnutí: vybudovat vysoce specializovanou výrobní jednotku na produkci nedostatkových mikročipů s názvem Cleverlance Microchips. Nová divize se nachází přímo v nové pobočce Cleverlance v japonské Ósace. Již koncem tohoto roku firma počítá s dodáním vyšších stovek tisíc čipů pro sektory automotive, spotřební elektroniky a zdravotnictví, čímž chce zásadně změnit poměry na světovém trhu.​</strong></p><p>Tzv. "čipový hladomor" trápí světové trhy vinou koronavirové pandemie už přes rok. Česká technologická společnost Cleverlance se tuto situaci rozhodla radikálně řešit a spustila k prvnímu dubnu 2022 výrobu vlastních mikročipů. O tu se bude starat zcela nová technologická divize společnosti s názvem Cleverlance Microchips. Očekává se, že Cleverlance Microchips objemově již v polovině roku 2025 překročí současnou světovou produkci. Mezi prvními zákazníky jsou významné evropské a asijské automobilky, i výrobci elektroniky z celého světa. Vznik nové divize také  jednoznačně stojí za raketovým nárůstem odhadované hodnoty Cleverlance, která má na konci roku 2022 podle ekonomických predikcí atakovat hranici 10 miliard EUR.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Cleverlance-Microchips/microchips-6733-glow-chip.jpg" alt="Cleverlance Microchips" data-themekey="#" style="max-width:690px;" /> <br> </p><p> <em>„Jednalo se o logický krok v rámci naší celosvětové expanze,“ </em>vysvětluje <strong>Petr Štros, CEO a hlavní vizionář Cleverlance</strong>, <em>„díky výrobě mikročipů se nám otevírají nové trhy a vzhledem k naší schopnosti rychlé dodávky očekáváme nárůst obratu společnosti o 1 000 000 %. Naším cílem je do roku 2027 dodávat 75 % evropské spotřeby mikročipů a volné kapacity by měly pokrýt zhruba 48,5 % poptávky po mikročipech ve zbytku světa.“</em></p><p>Cleverlance Microchips startuje svou výrobu třemi základními řadami chipsetů určenými pro tři klíčová odvětví. Pro automobilový trh vyvinula řadu procesorů s označením Fast&Furious, pro trh spotřební elektroniky chipy s vlastenecky zaměřeným označením RUR a procesory pro zdravotnické přístroje s názvem Asklepios22.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Cleverlance-Microchips/microchips-6713-glow-chip.jpg" alt="Cleverlance MICROCHIPS" data-themekey="#" style="max-width:690px;" /> <br> </p><p><em><em style="text-align:justify;">„</em>​Po dlouhodobém globálním hladu po mikročipech se management společnosti Cleverlance rozhodl reagovat a z řad našich vysoce kvalifikovaných odborníků jsme sestavili tým, který se touto problematikou začal intenzivně zabývat. Po týdnech usilovné práce můžeme konečně s radostí konstatovat, že jsou po prvních testech Cleverlance Microchips připraveny k hromadné výrobě a následné distribuci výrobcům automobilů, spotřební elektroniky a zdravotnických přístrojů. O naše mikročipy projevili enormní zájem také výrobci očkovacích vakcín."</em> dodává <strong>ředitel dodávky produktů v Cleverlance Jiří Voldán.</strong></p><p>Díky zapojení nové technologie registruje Cleverlance pochopitelně i enormní zájem uchazečů o zaměstnání. <strong>HR ředitel Cleverlance Martin Paták</strong> komentuje situaci: <em>„Jenom díky digitalizaci HR systémů jsme schopni tento nápor ustát. Pokud by ty tisíce CV denně přicházely v papírově podobě, nestačili bychom rozšiřovat kanceláře. Někteří zájemci o zaměstnání jdou dokonce tak daleko, že se pokoušejí zvát naše recruiterky na schůzky po pracovní době a dosáhnout tím přednostního zacházení. Jsem ovšem rád, že mám profesionální tým, který podobným tlakům odolává.“</em></p><p style="text-align:center;"> <em><img src="/Blog/PublishingImages/Stranky/Cleverlance-Microchips/IMG_0456-japonska_pobocka.png" alt="Cleverlance Japan" data-themekey="#" style="max-width:690px;" /></em><em> ​Pobočka Cleverlance v Ósace</em><br></p><p> <span lang="cs" style="text-decoration:underline;"><strong>O společnosti Cleverlance:</strong></span></p><p>Společnost Cleverlance je přední český dodavatel IT služeb, informačních systémů, webových a mobilních aplikací včetně virtuální reality a matrixových realizací zejména v oblastech financí, telekomunikací, automotive a provozování galaktické satelitní sítě. Cleverlance vznikla v roce 2000 a dnes tvoří její tým přes 800 počítačovýc​h artistů, kteří jsou připraveni splnit v podstatě jakékoli požadavky… v oblasti zadání, analýzy, návrhu, vývoje a implementace softwarových aplikací, včetně projektového řízení, bezpečnosti, podpory či teleportačních přístrojů na zakázku.<br><br></p><p> <br> </p>hobby;#projekty;#
​​Ukraine Testing Academyhttps://www.create-it.cz/Blog/Stranky/TCA_UA.aspx​​Ukraine Testing Academy<p>​​​​​​​Text v češtině pro vaši informaci naleznete ​​ <a href="#cesky">ZDE​</a>. <br></p><h1 class="lang-UA">Увійдіть у світ ІТ ра​​​зом з нами навчившись тестувати програм​не за​безпечення​​!​<br></h1> ​ <p>Хвиля співчуття та благодійності щодо ситуації на Україні прокотилася усім суспільством Чехії.​ Разом з Cleverlance ми думали, як з нашого боку допомогти Українцям, крім грошей. Ми вирішили полегшити людям, які приїжджають із зони бойових дій, знайти шлях до нового майбутнього. Шлях до праці, яка принесе їм гідну професійну кар’єру в Чеській Республіці і яку вони також зможуть продовжити у рідній країні після повернення.</p><p>Протягом багатьох років Cleverlance допомагає людям Чеської Республіки увійти у світ ІТ, навіть, якщо до цього вони працювали в іншій сфері. Ми попросили наших колег з тестингу, які вільно володіють українською та російською мовами, дати своїм співвітчизникам базу у цій галузі. Тому спільно з ними ми організуємо Ukraine Testing Academy.</p><p>Ця навчальна програма триватиме 3 дні і є для учасників академії безкоштовною. Вона відбудеться з понеділка 2.5. до середи 4.5.2022 онлайн, завжди з 16:00 до 18:00. Завдяки цьому фактору ви легко поєднаєте навчання з доглядом за дітьми або поточною роботою. Ми не можемо обіцяти вам роботу над нашими проектами, але порадимо, як її знайти на чеському ринку праці.</p><p>Тож, як можна взяти участь у цьому заході?</p><p>Спочатку з’ясуйте, чи є у вас задатки тестера. Скільки помилок ви знайшли на цих квитках? </p><p> <img src="/Blog/PublishingImages/Stranky/TCA_UA/Shrnutí.svg" alt="Shrnutí.svg" data-themekey="#" /> <br> </p><p> <img src="/Blog/PublishingImages/Stranky/TCA_UA/Letenka%201.svg" alt="Letenka 1.svg" data-themekey="#" /> <br> </p><p> <img src="/Blog/PublishingImages/Stranky/TCA_UA/Letenka%202.svg" alt="Letenka 2.svg" data-themekey="#" /> <br> </p><p>​Надішліть своє рішення разом із резю​​ме Марії Павловій через <a href="https://www.cleverlance.com/cz/kariera/Stranky/Skoleni/ukraine-testing-academy.aspx" target="_blank">форму заявки на вебсайті Cleverlance</a>.<br></p><p>Марія зв’яжеться з вами, та інформує, чи прийняті ви до подальшої співбесіди, – і якщо так, то вас чекатиме спільна ро​​змова близько 30 хвилин. </p><p>Після виборчого процесу ви от​римаєте письмове запрошення на подію. Перед самим курсом ви та інші учасники, зустрінетесь на так званому семінарі, щоб перевірити якість вашого інтернет-з’єднання.</p>Навчання проходитиме онлайн, але ми всі обов’язково побачимось через камери.<br> <p>Ми познайомимо вас з основами тестингу програмного забезпечення, а також інструментами та технологіями, які використовуються при тестуванні. Ви дізнаєтеся, що таке тестовий анал​із і як підготувати тестовий сценарій. Це і є усе те, що повинен вміти кожен зацікавлений у вакансіях Junior Tester.</p> <br>Ми з нетерпінням чекаємо на вас у Cleverlance.​ <p id="cesky"></p> <br>​<br> <h1>Vstup s námi ​do světa IT a pojď se naučit testovat software!</h1>  <p></p><p> Napříč celým Českem se v důsledku války na Ukrajině vzedmula vlna charity. V Cleverlance jsme se zamysleli, jak můžeme pomoci i jinak než penězi. Rozhodli​​ jsme se lidem přicházejícím z válečné zóny na Ukrajině usnadnit cestu k nové budoucnosti. K práci, která jim přinese důstojné profesní uplatnění v České republice a kterou budou po návratu moci vykonávat také ve své rodné zemi.</p><p>Už řadu let v Cleverlance pomáháme v ČR zájemcům z jiných oborů vstoupit do světa IT. Požádali jsme své kolegy v testingu, kteří ovládají ukrajinštinu a ruštinu, aby umožnili svým krajanům získat vhled do tohoto oboru, a tak spo​​lečně organizujeme Ukraiina Testing Academy.</p><p>Tento vzdělávací program zabere 3 odpoledne a je pro účastníky akademie zdarma. Bude se konat od pondělí 2.5. do středy 4.5.2022 online vždy v čase ​​od 16:00 do 18:00 hod. Díky tomu se dá skloubit s péčí o děti nebo současným zaměstnáním.</p>Nedokážeme vám přislíbit práci na našich projektech, ale poradíme vám, jak najít uplatnění na českém pracovním trhu.<br> <br>A jak je možné se této akce zúčastnit?<p>Nejdříve zjistěte, zda máte p​​ředpoklady hledat chyby v aplikacích. Kolik chyb najdete na těchto letenkách?</p>  <p> <img src="/Blog/PublishingImages/Stranky/TCA_UA/Shrnutí.svg" alt="Shrnutí.svg" data-themekey="#" style="max-width:690px;" /> <br> </p><p> <img src="/Blog/PublishingImages/Stranky/TCA_UA/Letenka%201.svg" alt="Letenka 1.svg" data-themekey="#" style="max-width:690px;" /> <br> </p><p> <img src="/Blog/PublishingImages/Stranky/TCA_UA/Letenka%202.svg" alt="Letenka 2.svg" data-themekey="#" style="max-width:690px;" /> <br> </p><p>Své řešení se pošlete spolu se svým životopisem Marii Pavlove přes přihlašovací <a href="https://www.cleverlance.com/cz/kariera/Stranky/Skoleni/ukraine-testing-academy.aspx" target="_blank">formulář na webu Cleverlance​</a>.<br></p><p>Mariia vás bude kontaktovat s informací, zda postupujete do výběrového řízení - a pokud ano, zavolá vám a čeká vás společný asi 30 minutový​​ pohovor.</p><p>Když budete vybrán/a, dostanete písemnou pozvánku na akci. Před samotným kurzem se ještě s ostatními účastníky sejdete na tzv. secvič​​né, abychom si vzájemně ověřili kvalitu připojení na internet.</p>Výuka bude probíhat on-line, všichni se uvidíme na kameře.<br> <p>Seznámíme vás se zákl​​ady testování softwaru a v testingu používanými nástroji a technologiemi. Zjistíte, co je test analýza a naučíte se připravovat test scénáře. Tedy vše, co by zájemce o pracovní pozici Junior Tester měl umět.</p> <br>Těšíme se na vás v Cleverlance.<br> <p></p>vzdělávání;#
Typescript: Required<Type>https://www.create-it.cz/Blog/Stranky/Type_script_2.aspxTypescript: Required<Type><p>​​​​​​​V úvodním článku našeho seriálu o TypeScriptu <a href="/Blog/Stranky/Type_script_1.aspx" target="_blank">Efektivní TypeScript​​​​</a> jsme se zaměřili na generický transformační typ Partial. <br> Jeho opakem je Required​, ale stejně jako Partial je aplikován pouze na položky na nejvyšší úrovni.</p><p> Pojďme si dát tentokrát za cíl vytvoření nového typu z aktuálního tak, že nově vytvořený typ má veškeré položky povinné.<br></p><p> Mějme typový alias User, jehož definice je následující:<br></p><pre> <code class="language-typescript hljs">type User = { firstName?: string; lastName?: string; age?: number; } </code>​<br></pre><p></p><p> výsledkem následujícího přiřazení<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs"> type RequiredUser = Required<User>; </code></pre><p></p><p> je typový alias se všemi položkami povinnými.<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type User = { firstName: string; lastName: string; age: number; } </code></pre><p></p><p> Pro demonstraci toho, že Required označí jako povinné pouze položky na nejvyšší úrovni, si zadefinujme adresu jako<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type Address = { street?: string; city?: string; } </code></pre><p></p><p> a uživatele včetně adresy následovně:<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type User = { firstName?: string; lastName?: string; age?: number; address?: Address; } </code></pre><p></p><p> Výsledkem přiřazení​<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type RequiredUserNoDeep = Required<User>; </code></pre><p></p><p> pak je<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type User = { firstName: string; lastName: string; age: number; address: { street?: string; city?: string; } } </code></pre><p></p><p> Jinými slovy, adresa sama o sobě je povinná, jednotlivé její položky však nikoli.</p><p> Pro úplnost se ještě pojďme podívat na implementaci a trochu si ji v krátkosti rozebrat:<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type Required = { [P in keyof T]-?: T[P]; }; </code></pre><p></p><p> Implemetace výše mapuje každou položku původního typu dle daného předpisu. V našem případě je odstraněn z každého klíče původního typu Elvis operátor “?“ a z volitelné položky je učiněna položka povinná. </p><p> V porovnání s Partial, probíraném v předešlém článku, a jehož implementace vykonává pravý opak, každý klíč původního typu označuje jako volitelný.<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type Partial = { [P in keyof T]?: T[P]; }; </code></pre><p></p><p> Je dobré si pamatovat, že pokud použijeme typ Required v projektu, kde TypeScriptový překladač má nastavenu hodnotu strictNullChecks: true, pak aplikace typu Required neodstraní pouze nepovinnost dané položky, ale též undefined. Pojďme si to ukázat na příkladu, definujme uživatele následovně:<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type User = { firstName: string; lastName?: string; thirdName?: string | undefined; age: number; } </code></pre><p></p><p> a proveďme následující přiřazení:​<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type RequiredUser = Required<User>; </code></pre><p></p><p> pak výsledný alias vypadá takto:<span style="font-size:15px;"></span></p><pre> <code class="language-typescript hljs">type Required<User> = { firstName: string; lastName: string; thirdName: string; age: number; }</code></pre> jinými slovy, při použití původního typu User jsme byli schopni uložit hodno​tu undefined do proměnných lastName a thirdName<span style="font-size:15px;"></span> <pre> <code class="language-typescript hljs">let user: User = { firstName: 'Adam', lastName: undefined, thirdName: undefined, age: 30 } </code></pre><p> zatímco po aplikaci Required již hodnotu undefined vložit do proměnných lastName a thirdName není povoleno a následující kód skončí chybou. Ušetřete si práce a mějte toto chování na paměti.</p><p></p><pre> <code class="language-typescript hljs">​let user: Required<User​> = { firstName: 'Adam', lastName: undefined, thirdName: undefined, age: 30 } </code></pre><h2>​​​Závěrem</h2><p> Tentokrát jsme si ukázali, jak se standardně Required chová a také jsme se seznámili se situací, jak se jeho chování změní, když je parametr strictNullChecks nastaven na hodnotu true. Příště se zaměříme na Capitalize a Uncapitalize.<br></p><p> <i>Václav Kandus</i> </p>odborné;#vzdělávání;#
Novinky v Unreal Engine 5https://www.create-it.cz/Blog/Stranky/Unreal-engine-5.aspxNovinky v Unreal Engine 5<p>​​​Firma Epic Games se na herním trhu objevila v roce 1998 s legendární hrou <a href="https://en.wikipedia.org/wiki/Unreal_%281998_video_game%29" target="_blank">Unreal</a>. Od té doby se jejich <a href="https://en.wikipedia.org/wiki/Unreal_Engine" target="_blank">Unreal Engine</a> stal hlavním konkurentem <a href="https://en.wikipedia.org/wiki/Quake_engine" target="_blank">Quake</a> technologie ve světě FPS her. Pak přišel Unreal Engine 2, který se stal základem pro hru <a href="https://en.wikipedia.org/wiki/Unreal_Tournament_2004" target="_blank">Unreal Tournament 2004</a>. Dalším krokem pak byl v roce 2014 Unreal Engine 4 („UE4“), který tu s námi byl 7 produktivních let a během té doby se na scéně chlubil těmi nejlepšími nástroji pro herní vývojáře vůbec. UE4 se proslavil zejména svou rozsáhlou škálou nástrojů, které jsou zároveň jednoduché na používání. Jeho blueprint systém, který umožňuje grafické programování a tím ulehčuje práci umělcům a komunikaci programátorů se zbytkem týmu, je také ideálním nástrojem pro rychlé prototypování nápadů. UE4 se používá i ve filmovém průmyslu, jak lze vidět např. u seriálu Mandalorian. Byly zde použity CGI scenérie vytvořené UE4 a promítané na obří LED obrazovky, které byly synchronizované s kamerou a nahradily tak “klasické" zelené plátno.</p><p>Posledním evolučním krokem je Unreal Engine 5 („UE5“), který se naposledy ohlásil v prosinci svojí dechberoucí prezentací nového dema Matrix Awakens. O něm a o dalších pokročilých funkcích nového UE5 vám řeknu níže.​<br></p><h2>Jak revol​uční je Unreal Engine 5?</h2><p>V původním <a href="https://youtu.be/qC5KtatMcUw" target="_blank">dem​u</a> vydaném v květnu roku 2021 ukázal světu Unreal Engine svoje nové technologie, jmenovitě Lumen a Nanite. Lumen je nový plně dynamický systém globálního osvětlení a odrazů a Nanite je geometrický systém, který umožňuje vykreslovat extrémně detailní modely v reálném čase. Jednou z metod, kterou Nanite používá, je víceméně klasické LOD, Level of Detail - načítání  těch detailnějších modelů blíže kameře a těch horších daleko od kamery. Hlavním tahákem je zpracování milionů trojúhelníků na 3D meshi.</p><p style="text-align:center;"> <a href="https://youtu.be/xfpXN6mgfew?t=533" target="_blank"> <img src="/Blog/PublishingImages/Stranky/Unreal-engine-5/ue3.png" data-themekey="#" alt="unreal engine" style="max-width:400px;" /></a>  </p><p>Jak již bylo řečeno, <strong>Lumen</strong> je nový osvětlovací systém v UE5. Byl navržen pro next-gen konzole a dokáže vykreslovat diffusní (rozptýlené) odrazy s nekonečným počtem odražení a nepřímé spekulární (zrcadlové) odrazy v rozsáhlých prostředích, a to v měřítku milimetrů i kilometrů. Běžně se musí tzv. “zapékat" lightmap textury po každé změně statických světel ve scéně. S Lumenem tato nutnost odpadá, vše je řešeno automaticky a v reálném čase.<br></p><p>Lumen spoléhá na LOD v Nanite systému, protože vypočítává světla hlavně poblíž kamery a viditelného světa, pro optimální výkon. Lumen přímo nepotřebuje Nanite systém k činnosti, ale pokud je ve scéně komplexní geometrie s mnoho-polygonovými mesh objekty bez zapnutého Nanite, tak bude výpočet osvětlení značně zpomalený. To je obzvlášť znatelné u scén plných objektů bez nastaveného LOD. Jak celý osvětlovací systém vypadá v reálné scéně a v reálném čase se můžete kouknout na videu výše. Ložnice se po otevření okna přirozeně zaplaví světlem.<br></p><p style="text-align:center;"> <a href="https://www.youtube.com/watch?v=qC5KtatMcUw" target="_blank"> <img src="/Blog/PublishingImages/Stranky/Unreal-engine-5/ue2.png" data-themekey="#" alt="" style="max-width:400px;" /></a>  </p> ​ <p>Už od vzniku komerčního 3D herního vývoje byli vývojáři utlačováni a omezování počtem polygonů, které mohou vykreslit bez dopadu na výkon hry. Metody optimalizace počtu polygonů ve scéně zůstaly po řadu let v podstatě nezměněny - 3D modely se vymodelují v několika úrovních detailů, neboli LOD a detaily se simulují​ kombinací textur a shaderů (opět, blíž = detailnější).<br></p><p> <strong>Nanite </strong>v Unreal Engine 5 je schopný vykreslovat scény s miliardami trojúhelníků zdrojové geometrie. V podstatě to znamená, že engine má přístup ke geometrii v plném rozlišení a v reálném čase optimalizuje vykreslování na obrazovku.<br></p><p>Při použití klasických vykreslovacích technik by se hodil 3D model do scény a vykreslil by se každý jeho polygon, bez ohledu na to, zda je viditelný kamerou (každá herní scéna má hlavní kameru) a nebo jestli sdílí stejné pixely s jinými polygony. S Nanitem jsou všechny tyto věci zpracovány automaticky.<br></p><p style="text-align:center;"> <a href="https://youtu.be/WU0gvPcc3jQ" target="_blank"> <img src="/Blog/PublishingImages/Stranky/Unreal-engine-5/ue1.png" alt="ue1.png" data-themekey="#" style="max-width:400px;" />​</a>  </p><p>Na závěr bych ještě rád zmínil Matrix Awakens, poslední vydané demo prezentující novinky v Unreal Engine 5. Popravdě řečeno bylo dechberoucí, alespoň pro mě. Na začátku videa skoro nelze poznat, který Keanu Reeves je ten reálný, a kterého vytvořil počítač. Možná jen podle vrásek okolo očí. Vše je zásluhou Nanite a Lumen systémů, které dokáží zpracovat extrémní detaily a vypočítat realistické osvětlení. Potenciál, který má UE5 pro filmový a herní průmysl, je masivní. Už teď jsou ve vývoji hry využívající UE5, jako např. Stalker 2, takže se určitě máme na co těšit!<br></p><p> <i>Jan Jileček​</i><br></p><p> <br> </p>hobby;#
Jak pečujeme o své zdraví při sedavém povoláníhttps://www.create-it.cz/Blog/Stranky/office-fitness.aspxJak pečujeme o své zdraví při sedavém povolání<p>​​​​​Už druhým rokem si v Cleverlance každý pracovní den dopřáváme cvičení s <a href="https://officefitness.cz/">Office ​Fitness</a>. Lekce jsou nám skvělým pomocníkem při práci u počítače. Cvičení obvykle nezabere více než 5 minut, takže je možné se protáhnout třeba v pauze mezi meetingy. Velkou časovou úsporou je, že nemusíme nikam chodit. Stačí kliknout a pětiminutovka je připravena.<br></p><p>Na výběr přitom máme ze široké nabídky cvičení od správného nastavení pracovního místa, protažení zad, uvolnění očí, obličejové jógy, dechových cvičení na uvolnění stresu až po lekce pro řidiče. Velmi oblíbená je také jóga s Iris. Takové ranní jógové protažení udělá s celým dnem opravdové divy.<br></p><p> <img src="/Blog/PublishingImages/Stranky/office-fitness/OF-146.jpg" alt="office jóga" data-themekey="#" style="max-width:690px;" /> <br> </p><p>Vyzkoušeli jsme si, že když cvičíme pravidelně, stane se z toho příjemný návyk. Možná jste slyšeli, že návyky se vytvoří za minimálně 21 dní, ale v Office Fitness odhadují, že to <a href="https://officefitness.cz/magazin-obsah-2/" target="_blank">trvá déle</a>. Ovšem potom to stojí za to!</p><p>V minulém roce se koleg​ové kromě cvičení mohli zapojit i do několika soutěží. Jednou z výher byl například praktický podstavec pod monitor vlastnoručně vyrobený trenérem Jiřím Zadinou z Office Fitness. Jiní se podívali na prodloužené víkendy do hor nebo lázní anebo si užili online lekce obličejové jógy s lektorkou naživo. Letos chystáme další soutěž – tentokrát o mikiny Cleverlance, kolegové se brzy dozví pravidla a do hlasování o výherci chceme zapojit naše fanoušky na sociálních sítích.<br></p><p> <strong>Jaké výhody přináší cvičení <a href="https://www.linkedin.com/in/martinpatak/" target="_blank">Martinovi Patákovi</a>, který s Office Fitness cvičí od konce roku 2020, se dozvíte v krátkém rozhovoru.</strong></p><p> <strong><img src="/Blog/PublishingImages/Stranky/office-fitness/MaP-9313.jpg" alt="Martin Paták" data-themekey="#" style="max-width:690px;" /><br></strong></p><p> <strong>Jak často cvičíš s Office Fitness?​</strong></p><p>V poslední době moc ne, ale v minulém roce skoro pravidelně. Nejvíce v období lockdownů, kdy jsem se již od ranního připomenutí těšil na pár minut mezi online meetingy na cvičení.</p><p> <strong>Máš nějaký další rituál, který bys vyzdvihl?</strong></p><p>Ranní káva nebo čaj.<br></p><p> <strong>Vnímáš nějaké změny na svém těle po dobu, co cvičíš?</strong></p><p>Bolesti zad ze špatného sezení jsou pryč úplně, občasné bolení za krkem stále trvá …asi něco dělám špatně.<br></p><p> <strong>Která lekce ti nejvíce utkvěla v paměti?</strong></p><p>Jak si nastavit sedačku v autě. Sice se cvičením moc nesouvisí, ale pamatuji si ji, asi protože je úplně z jiného prostředí.<br></p><p> <strong>Jaké cvičení sis v programu nejvíce oblíbil?</strong></p><p>Všechna cvičení na uvolnění krku …“hlavu nakloníme k ramenu … a podíváme se dolů…“<br></p><p> <strong>Co ti pravidelné cvičení v práci nebo na Home Office přináší?</strong></p><p>Doma přestávku a protažení. Známe to všichni na Home Office člověk v podstatě celý den sedí na jednom místě. …V kanceláři alespoň pobíhá po patrech a odejde na oběd…</p><p> <strong>Co bys vzkázal svým kolegům, kteří ještě necvičí nebo cvičí nárazově?</strong></p><p>Pokud pracujete z domova je to skoro nutnost. V kancelářích je složitější najít si chvilku a hlavně místo …na tom už ale také pracujeme. <br></p><p>Zatímco v minulém roce mohli cvičit kolegové, kteří se do programu sami přihlásili, začátkem tohoto roku jsme cvičení zpřístupnili pro všechny v Cleverlance. Každý si tak může program s Office Fitness vyzkoušet a zjistit, jestli je cvičení pro něj to pravé. <br></p><p>Zaujalo vás cvičení? Pojďte si ho také vyzkoušet. Vaše pětiminutovka je připravena, užijte si ji. <br></p><p> <a href="https://youtu.be/BEA6XZSAdWE" target="_blank"> <img src="/Blog/PublishingImages/Stranky/office-fitness/OfficeFitness.jpg" alt="OfficeFitness" data-themekey="#" style="max-width:690px;" /></a>​<br></p><p> </p><p> <br> </p>hobby;#vzdělávání;#
Blokové programování pro dětihttps://www.create-it.cz/Blog/Stranky/blokove-programovani.aspxBlokové programování pro děti<p>​​Ruku na srdce, když dětem poprvé ukážete, jak vypadá váš kód, většinou je ta změť znaků​ moc nezaujme. Pokud jim vysvětlíte, že aby kód fungoval, je důležité dodržet syntax, možná je dokonce spíš odradíte. Programování je přitom ​váš svět a rádi byste ho nějak zprostředkovali svým ratolestem. Nevíte jak? Tento problém velice elegantně řeší blokové – nebo chcete-li vizuální - programování.<br></p><p>Připravené bloky, které reprezentují cykly, proměnné či další programovací prvky, se jednoduše skládají pomocí přetažení myší do výsledného programu, sestavují si ho v podstatě vizuálně, jako by dávaly dohromady kostky lega. Ty mají různé barvy, podle oblastí a struktury a aplikace dokonce i naznačí, pokud je nějaká kombinace kódu nevhodná, nebo někde něco chybí. Díky tomu děti pochopí logiku, s jakou je třeba program vystavět, co na čem závisí, sestavují příkazy za sebe - základní principy zvládnou i samy.<br></p><p> <img src="/Blog/PublishingImages/Stranky/blokove-programovani/blokove-programovani.png" alt="Blokové programování" data-themekey="#" style="max-width:690px;" />​ <br></p><p>Jak fungují logické operátory, proměnné a cykly už je náročnější na pochopení, učící křivku v tomto případě urychlí například výklad vyučujícího nebo rodiče, který umí programovat. Tahle hra s barevnými bloky kódu postupně děti vtahuje do kontextu a umožňuje jim pochopit ducha programování. Poté, co zvládnou strukturu, je už snazší začít se samotnou syntaxí.</p><h2>Scratch, Lego, Micr​​​​obit</h2><p>Asi nejznámější aplikací, která stojí na blokovém programování, je Scratch, ale možná jste viděli i programovací Lego roboty nebo slyšeli o projektu Microbit, se kterým přišla britská BBC.<br></p><p> <a href="https://scratch.mit.edu/">Scratch</a> je na světě již od roku 2003 a pochází z dílny <a href="https://cs.wikipedia.org/wiki/Massachusettsk%c3%bd_technologick%c3%bd_institut">MIT</a>. Děti se v něm učí používat programování řízené událostmi s různými aktivními objekty označovanými v angličtině jako „sprites“. Jedná se o jednoduché dvojrozměrné obrázky, ty lze importovat či přímo nakreslit v jednoduchém editoru, který je součástí Scratche. K těmto „sprites“ malý programátor posléze vybírá a přiřazuje příkazové bloky (je jich deset barevně odlišených druhů – podle funkce), které do sebe zapadají jako stavebnice. Výsledkem je animace nebo třeba hra, která funguje na základě logiky kódu malého programátora.</p><p>Velkou výhodou je, že pro Scratch existuje spousta tutoriálů a návodů. Po zvládnutí programování ve Scratchi uživatelé často přecházejí k programování v Pythonu. Kdy je vhodné začít se Scratchem? V zásadě od okamžiku, kdy jsou děti schopné číst s pochopením, tedy tak od 3. třídy ZŠ. Existuje dokonce <a href="http://ispython.com/wp/wp-content/uploads/2014/11/Asigsce16_titled.pdf">studie</a>, která Scratch potvrzuje jako vhodný jazyk pro úvodní kurz do programování na základních a středních školách. A v Cleverlance jsme si programování pro děti ve Scratchi v minulosti také s úspěchem vyzkoušeli.<br></p><p> <img src="/Blog/PublishingImages/Stranky/blokove-programovani/scratch.jpg" alt="scratch.jpg" data-themekey="#" style="max-width:690px;" /> <br> </p><p> <a href="https://www.lego.com/cs-cz/categories/coding-for-kids">Lego</a> si pro technicky zaměřené děti připravilo hned několik projektů, <a href="https://www.idnes.cz/technet/technika/lego-boost-stavebnice-kreativita-programovani-test-recenze.A191212_060224_tec_technika_pka">Lego Boost</a>, Lego Mindstorm a Lego Education, v závislosti na věkové kategorii a situaci. Výhodou je, že si děti ze stavebnice postaví trojrozměrný předmět, třeba robota, autíčko nebo nějaký stroj, který pak prostřednictvím blokového programování rozpohybují dle svých představ.<br></p><p>​<img src="/Blog/PublishingImages/Stranky/blokove-programovani/lego.png" alt="lego.png" data-themekey="#" style="max-width:690px;" /><br></p><p> <a href="https://microbit.org/get-started/bbc-microbit-in-school/">Microbit</a> v našich končinách není tak rozšířený, ale ve Velké Británii ho znají skoro všechny děti. Jedná se o projekt BBC, která přišla s myšlenkou jednoduchého mikropočítače, v podstatě takové programovatelné destičky s několika diodami a s USB rozhraním. Od roku 2015 jich ve školách ve Spojeném království bylo rozdáno přes milion kusů a <a href="https://www.youtube.com/watch?v=CejDBLkXZkc&t=542s">děti na něm píší své první jednoduché programy</a> v nativním prostředí <a href="https://makecode.microbit.org/">makecode</a>, lze ale použít i Scratch, Javascript či Micropython.</p><p> ​<img src="/Blog/PublishingImages/Stranky/blokove-programovani/Microbit.png" alt="Microbit.png" data-themekey="#" style="max-width:690px;" /><br><br></p><h2>HTML pro děti v Cleve​rlance</h2><p>​Ačkoli dnes existují WISIWYG editory, takže člověk nemusí znát všechny značky, nebo chcete-li tagy HTML, hodí se jeho základům alespoň trochu rozumět. Připravili jsme tedy v Cleverlance kurz HTML pro děti. Díky zde získaným základům jsou schopny stránku lépe vystavět a samy si udělat drobné úpravy, které jim out of the box aplikace neumožňují. Snáze také při inspekci kódu zjistí, kde je chyba a proč něco nefunguje.<br></p><p>V Cleverlance učí děti HTML Vítek Červinka, který​ pro tento účel upravil jednoduchou webovou aplikaci od <a href="https://codeddraig.github.io/ffau/">Ffau</a> postavenou na základě <a href="https://opensource.google/projects/blockly">knihovny od Googlu Blockly</a>. Najdete ji na adrese <a href="https://html.cleverlance.com/">https://html.cleverlance.com/</a> a můžete si sami vyzkoušet, jak takové blokové programování funguje. </p><p>​​<a href="https://www.cleverlance.com/cz/kariera/Stranky/Skoleni/HTML-pro-deti.aspx?utm_source=cit&utm_medium=blog&utm_campaign=html_deti" target="_blank"><img src="/Blog/PublishingImages/Stranky/blokove-programovani/html_deti.png" alt="html_deti.png" data-themekey="#" style="max-width:690px;" /></a><br>​<br></p><p>Vítka jsme se také zeptali na jeho postřehy z minulých kurzů (vedle HTML pro děti v Cleverlance také lektorsky vede kurz programování Microbitů a výuku programování na gymnáziu).<br></p><p> <strong>Která věc děti na kurzu programování nejvíc baví?</strong></p><p>Když se dostanou do fáze, kdy mohou samy ovlivnit, co kód udělá, například změnit vzhled. Obecně je baví něco tvořit a když dostanou samostatný úkol, užijí si vymýšlení cesty, jak dosáhnout kýženého výsledku, například podle vizuálního zadání.<br></p><p> <strong>Jaká věc byla pro děti nejtěžší?</strong></p><p>Postupně se logika kódu zesložiťuje a někdy se stane, že se v tom děti ztratí. A překvapivě je pro ně nejtěžší říct, že se ztratily – a to je například při on-line formě kurzu trošku náročnější na odhalení i pro mě jako lektora.</p><p> <strong>Co na kurzu nejvíc bavilo tebe?</strong></p><p>Nejvíc se mi líbí, když mají takový ten „aha“ efekt, když najednou pochopí logiku, když jim to zafunguje. Určitě je to nějaká chemická reakce v mozku, když překonáš problém, vyřešíš zadání. Já to ostatně sám mám dodnes. A u těch dětí to jde poznat a pak je to vnitřním motorem toho programování, je to taková odměna za vynaložené úsilí a pokud je adekvátní, tak se tomu pak věnují dál.</p><p> <strong>Má blokové programování i nějaké nevýhody?</strong></p><p>Možná je dobré zmínit, že složitější programy by se v tom dělaly už obtížně, protože by to bylo nepřehledné. Taky jsou jistým limitem nadefinované bloky, je tam jen omezený set příkazů. Ale to je vlastně také dobře, protože ve chvíli, kdy už to dětem nestačí, je čas začít programovat normálně.</p><p> <strong>Co chceš, aby si děti z tvých kurzů odnesly?</strong></p><p>Aby se naučily přemýšlet,​ jak se od nápadu či zadání postupnými kroky dostanou k jeho realizaci. Samozřejmě budu rád, když je programování zaujme a budou v něm pokračovat. Hlavní ideou kurzu ovšem je, aby pochopily principy. Nemusí hned být programátoři, ale je dobré tomu rozumět, ono se jim to jednou bude hodit, i když v budoucnu budou potřebovat připravit zadání pro někoho, kdo pro ně program vytvoří.</p><p>Díky blokovému programování může začít programovat opravdu každý a vyzkoušet si, jaké to je. Pokud se mu to zalíbí, může snadno navázat, možností je dnes hodně a rozhodně je to jedna z nejlepších investic do budoucnosti (dětí i vlastní).<br></p><p> <br> </p>hobby;#vzdělávání;#