Create IT Blog - co se děje v Cleverlance

 

 

Praha byla centrem blockchainového multivesmíruhttps://create-it.cz/Blog/Stranky/Gateway-to-Cosmos.aspxPraha byla centrem blockchainového multivesmíru<p>​​Na pražské konferenci Gateway to Cosmos jsme byli svědky otevření dveří do blockchainového multivesmíru. Podobně jako v posledním marvelovském filmu s Doktorem Strangem, je Cosmos branou do paralelních světů, které mají schopnost navzájem spolu komunikovat. Těmito světy jsou blockchainy vzniklé právě z mateřského Cosmosu.</p><p>Nekompatibilita a přenos inforací mezi jednotlivými blockchainy je jedním z kritických míst, které vývojáři řeší. Blockchain 3.0, jak se Cosmos nazývá, umožňuje programátorům plynule budovat nové blockchainy bez nutnosti následné tvorby tzv. mostů mezi nimi. Cílem celého projektu je vytvoření internetu blockchainů – sítě blockchainů a aplikací na nich postavených schopných vzájemně komunikovat decentralizovaným způsobem.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Gateway-to-Cosmos/cosmos.jpg" alt="cosmos.jpg" data-themekey="#" style="max-width:690px;" /> <br> </p><h2>Napojení Cosmosu na da​lší blockchainy</h2><p> <strong></strong>Interoperabilita je pojem, který  v blockchainovém prostoru rezonuje již dlouhou dobu. Téměř každý den vznikají nové blockchainy nebo kopie těch starých a vzniká u nich dříve nebo později přirozená potřeba komunikovat s ostatními. I když funkce Cosmosu tento problém uvnitř svého ekosystému řeší, potřebuje pomoc s překladem do jiných jazyků a neměnným přenosem informací do jiných sítí.</p><p> <a href="https://axelar.network/">Axelar</a>, jeden z hlavních partnerů akce, představil, jak zajistit bezpečnou interakci s jakýmkoli aktivem, kteroukoliv decentralizovanou aplikací na jakémkoli blockchainu. Takže můžete poslat své NFT z Etherea do libovolného blockchainu Cosmos a naopak. Takto jsou přes axelar propojeny všechny hlavní blockchainy a v brzké době se chystá i přemostění s Bitcoinem.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Gateway-to-Cosmos/dao.jpg" alt="dao.jpg" data-themekey="#" style="max-width:690px;" /> <br> </p><h2>DAO jako středobod decentraliz​​ovaných projektů</h2><p> <strong></strong>Zajímavou myšlenkou je, že skutečně decentralizované řešení by mělo vždy začínat vznikem <a href="https://en.wikipedia.org/wiki/Decentralized_autonomous_organization">DAO</a> – decentralizované organizace vytvořené podle pravidel zakódovaných jako počítačový program (Wikipedie). Jake Hartnell, spoluzakladatel <a href="https://www.junonetwork.io/">Juno</a> a <a href="https://daodao.zone/">DAO DAO</a>, demonstroval na svých projektech, že za funkční organizací nemusí stát žádný konkrétní investor či <a href="https://en.wikipedia.org/wiki/Venture_capital">VC</a>. Jsou čistě postaveny a sponzorovány svou komunitou. Rizikem je, že programovatelná pravidla  na nichž tyto struktury stojí, stále nemají dostatek příkladů použití, jak to udělat správným způsobem. Na druhou stranu i zde může být rozmanitost, jak to vidíme na současné politické scéně. Juno tento problém řeší vytvářením podskupin - tzv. subDAO. To se dá připodobnit firemní struktuře, kde má každý subjekt svou odpovědnost (CoreDev DAO, Event DAO, Hack DAO). Díky tomu by specifická rozhodnutí v rámci organizace měla být vykonávána kvalifikovanou částí komunity.<br></p><p> <img src="/Blog/PublishingImages/Stranky/Gateway-to-Cosmos/smart-contract.jpg" alt="smart-contract.jpg" data-themekey="#" style="max-width:690px;" />Agoricu, blockchainu vycházejícího z Cosmos SDK, představil řešení, které by mohlo zvrátit celou hru. Smyslem není přesvědčit vývojáře, aby se učili nový programovací jazyk, jako je Solidity u Etherea. Jde o to jim umožnit stavět na tom, co již znají. Hovoříme o 10 milionech vývojářů, kteří získají možnost budování Smart kontraktů v JavaScriptu. Díky Agoricu se tak programování aplikací na blockchainu stane dostupné i “běžným lidem".</p><p>Souhrnným poselstvím konference bylo “It's time to build", tedy iniciovat vývojáře a týmy po celém světě, aby začali tvořit svá řešení v Cosmosu. Díky <a href="https://rbf.capital/">Rockaway blockchain fund</a>, který byl hlavním pořadatelem, se podařilo na jednom místě propojit zakladatele blockchainů, tvůrce nástrojů, programátory aplikací, investory a další entity tohoto ekosystému. Přednášky se prolínaly s hackathonem a workshopy a kdokoliv měl možnost získat odpovědi na své otázky hned na místě.</p><p>Misí <a href="https://cleverlance.com/blockchain42">Cleverlance Blockchain 42</a> týmu bylo prohloubit znalosti o Cosmosu, přidružených nástrojích a především pak získání nových zkušeností s Agoric blockchainem a dalšími Cosmos-chainy. Mise dopadla úspěšně a náš tým pokračuje dál. Plní se nám náš dětský sen stát se kosmonauty. Brzy se ohlásíme s dalšími novinkami z tohoto vesmíru.<br></p><p> <em>Filip Dítě</em></p><p><br></p><p><em></em><span style="color:#242424;font-family:-apple-system, system-ui, "segoe ui", "apple color emoji", "segoe ui emoji", "segoe ui web", sans-serif;font-size:14px;">Z​droj fotografií: </span><a aria-label="Link https://gateway.events/" title="https://gateway.events/" href="https://gateway.events/" rel="noopener noreferrer" target="_blank" tabindex="-1" style="box-sizing:border-box;outline-style:none;color:#4f52b2;text-decoration-line:none;font-family:-apple-system, system-ui, "segoe ui", "apple color emoji", "segoe ui emoji", "segoe ui web", sans-serif;font-size:14px;">https://gateway.events/</a>​​​<br></p>odborné;#vzdělávání;#
Typescript: typy pro manipulaci s řetězcihttps://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://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://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://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://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://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://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://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://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í;#