Vzdělávání

Sekce vzdělávání nabízí články o různých vzdělávacích programech, včetně front end developer kurzů a kurzů jako kurz Excel, které vám pomohou získat praktické dovednosti. Objevte nejlepší způsoby, jak se vzdělávat online a posunout své schopnosti na vyšší úroveň.

Frontend vs Backend vs Fullstack a jak se na to dívám já
Vzdělávání
20.08.2021
Jaroslav Beňo

Frontend vs Backend vs Fullstack a jak se na to dívám já

Při řešení a vývoji aplikací si umíme vývoj rozdělit na dvě hlavní části – front end a back end. Front end je v podstatě to co vidíš očima - to s čím se uživatel jako prvním setká (během vysoké školy mě pucoval jeden profesor, že člověk, co kliká naši aplikaci je uživatel a ne uživatel). Následně back end je vše vzadu, co běžný uživatel nevidí, co se děje na pozadí, většinou je to zpracování dat, komunikace s databází a podobně. Po internetu kolují desítky memes, ve kterých se tyto rozdíly mezi frontendem a backendem zobrazují. Prohlédni si pár z nich:[Image]Doufám, že máš teď tak hrubou představu o tom, co je frontend a co backend. Jak se nám snaží podsunout tyto meme obrázky, backend nemusí být a neměl by být ošklivý a špatně napsaný špagetový kód, právě naopak. Přestože backend uživatel nevidí, měl by fungovat parádně. Podívejme se nyní na to z pohledu reálné aplikace. Reálná aplikace Uvažuji nad webovou aplikací, která bude napojena na databázi. Jako první potřebuji znát, co se má v aplikaci dít, co má aplikace dělat, jaké jsou podmínky, co se má kdy zobrazovat a podobně. Pro tento úkol jsou vyhrazeni specialisté jako analytik, který analyzuje aplikaci z pohledu používání a takzvané business logiky. Tedy například bankovní aplikace má jinou business logiku a podobně aplikace pro správu uživatelů má jinou logiku. Potom nastoupí architekt, který řekne, v čem se bude programovat frontend, v čem back end a vše navrhne technicky. Následně přichází na scénu frontend programátor a backend programátor. Nebo stále více populární fullstack programátor. Role front end developeraFrontend developer má za úkol připravit obrazovky – UI – user interface podle požadavků. Například potřebuje zobrazit všechny transakce na bankovním účtu. Připraví si obrazovku. Použije HTML + CSS na vzhled stránky plus JavaScript na funkcionalitu. Použije nejčastěji jeden z populárních frameworků – podle zadání architekta – Angular, Vue, React. Kromě toho by frontend vývojáři měli ovládat frameworky jako Bootstrap, Foundation a další, které zajišťují skvěle vypadající obsah bez ohledu na zařízení, na kterém si daný obsah prohlížíte. Pokud potřebuje data, tak podá požadavek na backend programátora nebo analytik připraví úlohu pro back end programátora. Frontendista následně poté zobrazí data, která mu poskytl backend. “Frontend developer je zodpovědný za interiérový design domu, který postavil backend developer.” Role back end developeraBack end developer připraví databázi, připraví si kód pro získání dat z databáze a napojení dat do programu. Následně připraví službu na poskytnutí dat do okolního světa. Ne vše, co je v databázi chceme zobrazovat na obrazovce, jen to co je třeba. Služba bývá hlavně REST rozhraní (REST api), které vypadá jako klasická url adresa na webovou stránku, ale místo web stránky vrátí data v požadovaném tvaru. Například vrátí seznam bankovních transakcí daného uživatele ve tvaru JSON. Jako backendista bys měl znát jazyk SQL pro komunikaci s databází. Potom záleží v jakém jazyce je backend napsán – Java, C#, Python, Ruby a podobne. Potom každý jazyk má frameworky, které pomáhají při práci. Role full stack developeraIdeální kombinace je vědět jak front end, tak back end. Fullstack developer si připraví obrazovku a pokud potřebuje data, tak si je umí i sám připravit. Podle mého názoru je dobře vědět i frontu i backend, ale trpí tím hloubka znalostí problematiky. Dovednosti a znalosti fullstack developerů jsou potřebné ve všech fázích procesu webového vývoje, počínaje fází plánování projektu, správou databází, vytvářením uživatelských rozhraní až po strukturování údajů a řešení kritických potřeb. Fullstack vývojáři proto musí porozumět všem úrovním webových stránek a tomu, jak web funguje. Na závěr lze říci, že učení se více webových jazyků a technologií je pravděpodobně nejlepší cesta. Je však dobré mít na paměti tento přístup: osvojte si nejpoužívanější a nejpopulárnější technologie/jazyky, protože čím větší podporu pro svůj web/produkt/službu máte, tím lépe. Backend developer zná do hloubky problémy, které mohou vzniknout s databází, zná lépe všechny procesy na pozadí. Frontend developer ovládá lépe javascriptový framework, ví jak udělat věci efektivněji. Fullstack developer nemusí čekat, až mu připraví data na backendu a umí si vše lépe manažovat.
Data Science: kterým jazykem začít?
Vzdělávání
11.08.2021
Skillmea

Data Science: kterým jazykem začít?

I ty přemýšlíš o tom, že se naučíš data science, ale nevíš, kde začít? Dostáváme dotazy na to, s kterým data science jazykem začít jako s prvním. Proto jsme připravili tento blog, ve kterém ti shrnujeme nami navrhovaný postup učení se data science. V článku najdeš tipy na jazyky datové vědy od našich lektorů Mira Beku, který udělal populární online kurz Python Data Science a od Mareka Čecha, který vytvořil kurz se zaměřením na SQL dátovú analýzu. Věříme, že tento článek ti pomůže vybrat ten správný data science jazyk.[Image] Správný jazyk pro tvé Data Science cílePředtím, než si vybereš konkrétní jazyk, by sis měl(a) položit několik otázek a zodpovědět na ně. Jsou to zejména tyto: Na jakých projektech chceš pracovat? Jaká témata tě zajímají? Do kterých odvětví chceš jít? Odpovědi na tyto otázky ti pomohou určit jazyk, který se budeš muset naučit. Některá odvětví vyžadují znalost konkrétního jazyka, je to zejména z důvodu, že budeš pracovat s prověřenými modely daného odvětví, které jsou vytvořeny pomocí určitého jazyka. Dobrým postupem je i zeptat se datových vědců z odvětví, které tě zajímá, na jazyky, které používají a čím doporučují začít. Níže v článku najdeš několik facebookových a jiných skupin z regionu Slovenska a Česka, které ti doporučujeme. “TL;DR: Nejčastěji používané jazyky v datové vědě jsou Python, R a SQL. Toto jsou i námi doporučené jazyky, kterými začít, pokud máš v úmyslu stát se datovým vědcem. ” Při výběru jakéhokoli z data science jazyků však v podstatě neuděláš chybu, protože když se naučíš extrahovat poznatky a data pomocí jednoho jazyka, nebude pro tebe problém naučit se jiný jazyk. Všestranný datový vědec by měl být schopen „skákat“ mezi jazyky. Nejoblíbenější Data Science jazykyV tomto stručném přehledu ti představíme nejoblíbenější Data Science jazyky ak čemu slouží. Dobrou zprávou je, že Python, R i SQL mají rozsáhlé ekosystémy a komunity, takže tyto jazyky jsou vhodné pro téměř všechny úkoly datové vědy. Python Python je univerzální moderní programovací jazyk, umíš jím dělat weby i programovat roboty. Mezi programátory je oblíben pro svou stručnou a snadno čitelnou syntaxi. Dobře se tedy čte a lze se ho velmi rychle naučit – je tedy skvělou volbou pro výuku programování. Díky řadě výkonných knihoven a balíků může Python implementovat mnohé ze statistických modelů a výpočtů potřebných pro datovou vědu. Je to také jeden z nejlepších jazyků pro získávání (scraping) údajů z webu. Mnoho firem a organizací používá Python pro data science, protože jejich programátoři již používají Python i pro jiné účely. Python také používá intuitivní a jednoduchou syntaxi, takže je vhodný pro začátečníky k učení se důležitých všeobecných konceptů programování, jako jsou funkce. Mírnou nevýhodou Pythonu jako prvního jazyka pro data science je, že základní instalace Pythonu neobsahuje statistické funkce, takže si budeš muset stáhnout všechny potřebné balíčky, abys mohl začít s data science v Pythone. Když si ale všechno nastavíš, Python se dá snadno naučit. Pár zajímavých a doporučených balíčků pro Python: • Data manipulace: pandas a NumPy • Vizualizace: Matplotlib a seaborn • Testování hypotéz a modelování: SciPy, scikit-learn, statsmodels Lektor Miro Beka doporučuje i Jupyter notebook, který je podle něj "skvělý nástroj jak pracovat s Python data science, protože programátor umí přímo v něm vykonávat všechny funkce, zobrazovat grafy a obrázky, případně importovat stávající jupyter notebooky. Jelikož python nemá nativní IDE, kde by všechny tyto věci fungovaly out of the box, jupyter notebook slušně doplňuje Python prostředí o potřebné nástroje." Programovací jazyk R R je statistický programovací jazyk vytvořen pro analýzu dat, vizualizaci dat a datovou vědu. Dodává se s komplexním souborem vestavěných statistických funkcí a metod. R je dobrá volba, pokud jsi nováček v oblasti datové vědy, ale už máš základní znalosti o obecných konceptech programování. Datové struktury, typy proměnných a analytické nástroje v R jsou jednoduché a navrženy speciálně pro datovou vědu. Na začátku nemusíš být zaneprázdněn syntaxí nebo více různými knihovnami. Se základní instalací R budeš mít přístup k mnoha funkcím datové vědy, jako jsou lineární regrese nebo t-testy, a vytvářet pěknou grafiku a vizualizace. R se také dobře kombinuje s RStudio – integrovaným vývojovým prostředím (IDE) – které usnadňuje spuštění kódu R a kontrolu výstupu. Mezi několik užitečných balíčků, o kterých bys měl vědět při učení jazyka R, patří: • Sbírka data science balíčků: tidyverse • Data manipulace: dplyr (nachází se i v tidyversu) • Vizualizácia: ggplot2 (nachází se i v tidyversu) • Regrese: caret SQLSQL je jazyk, který umožňuje programátorům komunikovat s databázemi a spravovat údaje, které obsahují. Běžně se používá k dotazování a úpravě údajů uložených v relační databázi. Datoví vědci obvykle extrahují data z databáze pomocí jazyka SQL a poté je importují do R nebo Pythonu k analýze. Bez ohledu na to, jaký jazyk se pro analýzu dat naučíš, SQL je důležité naučit se, pokud chceš stahovat data z databází. Znalost jazyka SQL ti umožňuje pracovat s databázemi PostgreSQL, SQLite, MySQL a dalšími relačními databázemi. Syntaxe základních dotazů je v různých databázích podobná, takže SQL je pro tento účel univerzálním jazykem. Pokud se chceš dozvědět více o různých typech databází, podívej se na tento online kurz o MySQL a SQLite. Lektor Marek Čech mluví o SQL jako o vstupní bráně do oborů souvisejících se správou dat, ať už se jedná o data science, data analýzu nebo třeba business intelligence. Je nejen univerzálním jazykem pro komunikaci s databázemi a získávání dat z nich, ale nabízí také velké množství vestavěných funkcí, díky kterým je uživatel velmi rychle a snadno schopen provádět poměrně komplexní operace. „Začít svou cestu k práci s daty jazykem SQL bych právě proto doporučil i lidem, kteří nemají předchozí zkušenosti s programováním či „kódováním“. Člověk se tak naučí psát jednoduché i složité otázky, vytvářet databázová schémata, indexy či procedury, a obecně pochopí , jako tok dat a jejich čištění / transformace běžně probíhá." mluví dále Marek Čech. Jazyk SQL lze využít opravdu v jakémkoli oboru. Znát jej tedy znamená otevřené dveře do lokálních podniků i nadnárodních korporací snad ve všech odvětvích. A když se člověk rozhodne své znalosti rozšířit o další jazyky, bude se mu znalost SQL stále hodit při pátráních na zdrojová data a často i pro nejrůznější data analytické operace či poskytování dat "businessovým" uživatelům - tedy např. u vědy. Management firmy. Další data science jazykyV závislosti na tom, do jakého odvětví nakonec půjdeš, se možná budeš muset naučit konkrétní jazyk pro datovou vědu. V následujícím seznamu jazyků se dozvíš více o tom, k čemu se používají. C/C ++: C aj C ++ vyžadují silné znalosti základů programování a učení těchto jazyků může trvat déle. V kombinaci s Pythonem nebo R lze C/C++ použít pro rychlejší a efektivnější výpočty datasetů. JavaScript: JavaScript je super nástroj pro vývoj interaktivních data vizualizací na webu s knihovnami jako D3.js. JavaScript také podporuje knihovny strojního učení jako TensorFlow.js. MATLAB: Ideální pro pokročilé numerické výpočty a pro řešení složitých matematických a statistických problémů. MATLAB se v akademickém prostředí široce používá k vyučování matematiky, fyziky a inženýrství. Julia:Novější programovací jazyk navržený pro numerickou analýzu a výpočetní vědeckou analýzu. Je to užitečné pro aplikace ve fyzice, chemii, astronomii, strojírenství, bioinformatice a dalších oblastech. Scala: Výkonný jazyk, který dokáže zpracovat velké množství dat. Scala běží na Java Virutal Machine, což znamená, že se dobře integruje s programy napsanými v Javě. SAS: Vytvořen pro pokročilou analytiku, obchodní inteligenci a prediktivní analýzu. SAS se běžně používá ve zdravotnictví, bankovnictví a pojišťovnictví. Stata: Používá se v ekonomickém výzkumu, veřejné politice a sociálních vědách. Stata je navržena pro cokoli od jednoduché deskriptivní analýzy po komplexní statistické modelování. Další vzdělávání v data sciencePokud chceš být v kontaktu s lidmi z fachu, prohlédni si těchto pár užitečných odkazů. Toto jsou slovenské Facebook skupiny, které se zabývají datovou vědou: • PyData Slovakia & Bratislava 👉 https://www.facebook.com/groups/1813599648877946/ • R Slovakia 👉 https://www.facebook.com/groups/931707906955080/ Pycon konference v Bratislavě je organizována dobrovolníky a dobrovolnicemi z občanského sdružení SPy o.z. zaměřeného na šíření jazyka Python a dalších open sourcových technologií a myšlenek. Pycon má specializovaná část, která se jmenuje Edu Summit a je zaměřena na vyučování programování na základních a středních školách. Více info najdeš na webe Pyconu. Pythonu se věnuje i konference Python Day Bratislava. Je to československá konference, na které si poslechneš přednášky od předních českých a slovenských odborníků ze světa Pythonu. Ročník 2021 byl organizován online. Machine Learning Prague je největší evropská konference o Machine Learningu, AI a Deep Learningu. Ročník 2022 bude v březnu, více info na stránce konference.
Krátký úvod do SQL
Vzdělávání
25.06.2021
Skillmea

Krátký úvod do SQL

Úvod do databázyNa internetu, v mobilních aplikacích ve webových aplikacích potřebujeme data – informace. Tyto informace musí být někde uloženy. My si budeme povídat o SQL databázích. Jsou to systémy, které mají v sobě uložená data ve formě tabulek. Z těchto tabulek následně tato data čteme a zobrazujeme uživatelům. Podívejme se na příklad. Mějme databázi - informace o škole. V této databázi máme informace o třídách, učitelích nebo io žácích. Začněme s třídami. Jaké máme informace o třídě? Třída má název, kapacitu, číslo místnosti, označení zda je interaktivní a podobně. Tato označení by byla názvy sloupců v tabulce. Řádky v tabulce jsou následně reálná data. Název tabulky: Class[Image]V databázi budeme mít několik tabulek, dle požadavků. Můžeme mít všechno v jedné tabulce, ale jak to potom rozdělíme? Nad takovým uvažováním je třeba myslet dopředu. Analýza a návrh tabulek jde ruku v ruce s praxí. Neboj se toho, teď je zapotřebí hlavně, abys získal praxi a to jde ruku v ruce s chybami. Úvod do SQLV počítačovém světě máme několik typů databází. My si něco povíme o SQL tedy o Structured Query Language. V překladu něco jako strukturovaný poptávkový jazyk. Query tedy poptávka je příkaz - žádost - poptávka na databázi. Žádáme o vrácení dat, o úpravu dat, vložení nebo o smazání dat. Databáze je samostatný systém, který může být na tvém počítači nebo na vzdáleném počítači. Na tuto databázi pak zašleme poptávku. Poptávku pošleme formou SQL příkazů, které mají určitou strukturu. SQL syntaxSQL není case sensitive, tedy se nerozlišují velká a malá písmena. Přesto se příkazy píší zejména velkými písmeny. Příkazy umíme psát i na více řádků, ale musí být ukončeny středníkem. SELECT * FROM Class; Nebo:  SELECT * FROM Class;Samozřejmě smysl to dává jen je-li komplikovanější příkaz. Názvy sloupců a tabulek píšeme malými písmeny. Pokud je název složen z více slov, tak slova oddělíme znakem _ podtržník. Je to doporučený způsob pro lepší čitelnost. Názvy mohou obsahovat také čísla. Při vymýšlení názvů se pokus vyhnout množným číslům. Názvy mají být krátké a výstižné. Názvy nesmí být totožné s klíčovými slovy, jako je například slovo SELECT / select. DatabázeVytváření databázeDatabázi umíme vytvořit i pomocí příkazu pokud se napojíme na instalaci databázového systému, například MySQL. Příkaz by vypadal následovně: CREATE DATABASE Class; Nebo ji vytvoříme po připojení se na databázový systém z databázové aplikace. Těch je několik. MySQL workbench, DBiever nebo SQuirrel. I programovací vývojová prostředí se umí připojit na databázi jako například IntelliJ IDEA Ultimate edition. Všechny poskytují prostředí pro správu a prohlížení databází. Databázi umíme také smazat:  DROP DATABASE Class; Přejmenovat: RENAME DATABASE Class TO new_class_name; Vytváření tabulekTeď, když jsme vytvořili databázi, tak si můžeme vytvořit tabulky. Znovu umíme použít prostředí pro správu databází, ale my si ukážeme postup pomocí příkazu. Podívejme se na příklad: CREATE TABLE Class ( id int, name varchar(255), capacity int, room_number int, interactive boolean );Co jsme napsali? Na začátek máme příkaz CREATE TABLE Class, kde říkám, že chci vytvořit tabulku se jménem Class. Následně mezi závorky napíšeme seznam sloupců – tučným písmem naznačeno (id, name...). Vedle názvů sloupců máme specifické příkazy pro dané databázové systémy. Jedno je však společné – za názvem sloupce následuje typ údaje – musíme zaspecifikovat, zda je to číslo, zda je to text, jestli je to boolean a podobně. Specifikování datových typů se může lišit podle toho, jakou databázi používáme. Základní typy jsou podobné a některé stejné. Například text zaspecifikuji jako varchar – v závorce je délka počtu znaků, teď jsem řekl, že název může mít délku pouhých 255 znaků. Líbil se vám článek? V následujícím článku se podíváme na další SQL příkazy.
Izometrický design: 3D objekty zobrazené ve 2D prostoru
Vzdělávání
10.06.2021
Ľudovít Nastišin

Izometrický design: 3D objekty zobrazené ve 2D prostoru

Ve své podstatě představuje izometrický design způsob, jakým zobrazujeme trojrozměrné objekty ve dvourozměrném prostoru. Izometrie však není totéž jako perspektiva, která je obvykle úzce spojena s realistickým uměním. Hlavním důvodem je to, že nemá žádný „mizející bod“ (vanishing point). Právě to umožňuje izometrickým tvarům zachovat si kompozici bez ohledu na to, kde člověk stojí nebo sedí při pozorování izometrického designu. Možná sis všiml izometrické reklamy, v digitálu nebo infografikách, či ve svých oblíbených videohrách a ilustracích. Izometrické umění dává designérům nečekaně široké spektrum možností. A protože je založeno na tvarech, izometrické kresby se vytvářejí překvapivě jednoduchým procesem. Je to také velká legrace! Většinou... Jak vytvářet izometrické designyDesign je izometrický pouze tehdy, kopíruje-li izometrickou mřížku. Tu tvoří vertikální čáry, které zůstávají při postupu svislé a všechny vodorovné čáry jsou skloněny o 30 stupňů. Toto se také nazývá pravidlem 120 stupňů. To říká, že úhel mezi osami X, Y a Z musí být celkem 120 stupňů. • Design se musí řídit izometrickou mřížkou • Design nemůže obsahovat sbíhající se čáry • Svislé čáry zůstávají svislé, zatímco vodorovné čáry mají 30 stupňový sklon • Osa X, Y a Z dohromady tvoří celkem až 120 stupňů[Image] Kdy použít izometrický designIzometrická projekce je pro designéry velmi užitečná – zejména architekty, průmyslové a interiérové ​​designéry, protože je ideální pro vizualizaci místností, produktů či infrastruktury. Je skvělým způsobem, jak rychle otestovat různé designérské nápady. Existuje spousta dalších situací, ve kterých je izometrická projekce užitečná. V systémech orientace například v muzeích nebo galeriích mohou izometrické nástěnné mapy ukázat návštěvníkům, kde se v budově nacházejí, co se děje jinde a jak se tam dostat. Některé z nejlepších infografik používají izometrickou projekci, která jim umožňuje zobrazit více informací, než by bylo možné na 2D výkresu. A dokonce i loga používají tento přístup k vytvoření efektu prostorového efektu.[Image] Isometric case study: Monument Valley Jelikož pohled v této hře má jediný bod, který se nikdy nepohybuje, objevily se zde zajímavé problémy týkající se manipulace perspektivy. I když se zdá, že stezka nebo most vede na první pohled do slepé uličky, rychlé otáčení mapy ukazuje cestu vedoucí na nové místo. Díky tomu je ve hře spousta hlavolamů, které se zdají buď nemožné nebo příliš jednoznačné. Ale ani jedno není pravda. Je to jen komplikovanější, než se na první pohled zdá. A aby tohoto efektu mohli dosáhnout, vše se muselo přesně seřadit v různých úhlech. Proto se vývojáři rozhodli položit hru do 30stupňové izometrické mřížky. To znamená, že každý úhel, který vidíte, je buď 30 stupňů, 120 stupňů nebo zcela svislý, což jsme si již vysvětlili výše. Izometrický design je skvělá technika pro oživení 2D flat designu. Přirozenou výhodou je, že grafiku pomocí izometrické projekce vnímáme jasněji a velmi dobře se v ní umíme orientovat. Izometrické vzory vytvářejí realitu, ve které můžeme vnímat věci takové, jaké jsou. Divné, ale funkční. A právě to z ní činí vynikající doplněk k alternativám designu, které už máš ve svém portfoliu.
Podmíněné formátování v Excelu
Vzdělávání
14.05.2021
Skillmea

Podmíněné formátování v Excelu

V tomto článku ti popíšeme, jak využívat podmíněné formátování v Excelu. Podmíněné formátování je dobré využívat tehdy, když potřebuješ změnit formát vybraných buněk, pokud jsou splněna jistá kritéria (podmínky). Formátovat lze více atributů, může to být barva, procenta, data a podobně. Co je to podmíněné formátování?Podmíněné formátování (nebo conditional formatting) je Excel nástroj, pomocí kterého můžeš nastavit automatické formátování buněk. Podmíněné formátování slouží k vyznačení údajů, které splňují nějakou tebou zadanou podmínku. Uvedu jeden příklad: máš databázi produktů (může jich být 100, 1000 nebo 10000) a chceš v této databázi vyznačit zelenou barvou pouze produkty, jejichž cena je nižší než 50 Eur. Nyní přichází na pomoc podmíněné formátování. Když si to rozbijeme na drobné, nejspíš: 1. Formát: vyznač zelenou barvou. 2. Podmínka: cena nižší než 50. Příklad podmíněného formátování přes "ROVNÁ SE"Mám Excel tabulku s údaji o zaměstnancích a oddělení, ve kterém pracují. Tabulku si můžeš stáhnout odsud, případně si použij jakýkoli vlastní Excel soubor. V mém souboru chci formátem barevně odlišit všechny zaměstnance, kteří pracují v oddělení HR.[Image] Jak budu postupovat?Nejprve si označím všechny buňky, které plánuji formátovat. Mohu to udělat potažením myší, nebo v případě většího počtu údajů použij klávesovou zkratku CTRL+SHIFT+⬇ (pro MacOS uživatele je to CMD+SHIFT+⬇). Následně na záložce DOMŮ (HOME) tvého Excelu vyhledej Podmíněné formátování (Conditional Formatting) a následně Pravidla zvýrazňování buněk (Highlight Cells Rules) a poté nástroj Rovná se (Equal to), viz obrázek níže.[Image] Nyní vepíšeš hodnotu HR do políčka, které jsem vyznačil barevně na obrázku níže a použiješ buď některý z přednastavených formátů, nebo si vytvoříš vlastní. Po odkliknutí se ti barevně odliší všechna pole obsahující HR. “Je dobré zmínit, že Excel nerozlišuje velká a malá písmena, takže kdyby do daného filtru vepíšeš i „hR“, „hr“ nebo „Hr“, tak Excel bude vědět, co od něj chceš. Pokud bys však už použil diakritiku, s tím si Excel neporadí.[Image]” Výsledek našeho podmíněného formátování bude tedy vypadat následovně:[Image] Zrušení podmíněného formátováníPro zrušení podmíněného formátování můžeš použít dva způsoby. Prvním z nich je vymazání podmíněného formátování jen pro tebou označené buňky nebo smažeš podmíněné formátování z celého Excel archu. Oba způsoby uděláš opět přes záložku Podmíněné formátování a Vymazat pravidla. Následně už jen zvolíš, jestli chceš smazat pravidlo z označených buněk nebo z celého archu.[Image] Podmíněné formátování můžeš využít i při práci s kontingenčními tabulkami, s grafy a pod. Práce s Excelem je díky podmíněnému formátování rychlejší a kvalitnější. Možností pro práci a filtrování díky podmíněnému formátování je mnoho, stačí si s touto možností jen pohrát. Vyzkoušej to sám i pro další možnosti podmíněného formátování - Větší a menší než; Mezi; Text obsahující; Vyskytující se datum a pod.
Agilní vývoj - úvod do problematiky
Vzdělávání
10.05.2021
Skillmea

Agilní vývoj - úvod do problematiky

Co je agilní vývoj? „Agilní metodiky pro řízení vývoje software jsou takové metodiky, které využívají agilního přístupu, tedy pružně reagují na změnu, průběžně rozvrhují práci v průběhu vývoje a ověřují výstupy s uživateli. Agilní metodiky obsahují základní principy, kterými by se měl úspěšný projekt vývoje software řídit. Proces vývoje je díky agilnímu přístupu postaven na týmové spolupráci, otevřené komunikaci týmu, zapojení zákazníka a celkové flexibilitě a otevřenosti změnám. Využití agilních metodik pro vývoj softwaru v praxi: Agilní přístup k vývoji se uplatňuje především u složitého, komplexního nebo inovačního softwaru, u kterého je velmi obtížné sepsat detailní požadavky na začátku projektu. Ty se postupně upřesňují nebo tvoří průběžně na základě zkušeností s prototypy z jednotlivých iterací vývoje na základě zpětné vazby od uživatelů. Agilní metodiky jsou zaměřeny na efektivnost práce, kvality výsledků a spokojenost uživatelů. Nesnaží se potlačovat změny oproti původnímu plánu, ale naopak je pro ně charakteristické upřesňování a přizpůsobování výsledného softwaru.“ (zdroj: managementmania.com) Následně když víme, že budeme používat agilní vývoj, potřebujeme nějaký tool – nástroj, kde budeme řídit úkoly. Jedním z nejznámějších nástrojů je Jira. Agilní přístupy a metodikyAgilních přístupů a metodik je mnoho. Záleží, co v projektu potřebujete. Nejznámější metodika je Srum. V Jiře si umíme zvolit zejména mezi Scrum a Kanban. Co vybrat? Záleží na projektu. Ve firmě budeš pravděpodobně používat Srum. Jaký je rozdíl? Kanban je o hlavně o vizualizaci práce. Kanban používá kolonky, které představují různá stádia vývoje. Vezmu si roli – je přidělena. Daný člověk na ní začne dělat - je v kolonce in progress (pracuje se na ní). Poté je úloha posunuta na test nebo dokončena. Kolonky si můžete přizpůsobit. Zde si o tom můžeš přečíst obšírněji. Scrum týmy pracují ve stanovených intervalech zvaných sprinty. Sprint je přibližně týden nebo dva. Během sprintu pracují lidé na úkolech, které jim byly přiděleny na začátku sprintu na takzvaném plánování sprintu. Srum vede jedna osoba a tou je takzvaný Srum master. Během Srum vedení týmu se cíle projektu upravují – sbírají se informace od klientů, od uživatelů a poté se aplikují změny. Tady si o tom můžeš přečíst obšírně. JiraJira je zdarma pro jednoduchý projekt a tím. Na této stránce si umíš založit svou Jiru. Jira je tool pro management úkolů a tyto úkoly musí být přiřazeny do projektů. Tedy jako první krok je vytvoření projektu. Jsi přihlášen v Jiře a v pravém horním rohu budeš mít tlačítko na vytvoření projektu.[Image] Vytvoríš si projekt:[Image] Jako Template je vybrán Kanban. Toto umíme změnit po stisku Change template. Co zvolíš je na tobě. Pojdu si ukázat Scrum. Vyberu Scrum a vytvořím projekt. Momentálně nemáme žádný sprint. Musíme jej vytvořit, abychom začali vývoj. Jdeme do Backlogu, což je místo, kde máme vytvořené úkoly.[Image] Bez úkolů nebude sprint. Vytvoř si úkoly. Máš na výběr několik míst, kde vytvořit úkoly, ale princip je stále tentýž – mít úkoly, na kterých se může pracovat.[Image] Když máme vytvořené úkoly, tak umíme spustit sprint.[Image][Image]  Vytvořil si sprint. Nyní je prázdný. S týmem se domluvíte, co se má udělat a dané úkoly se přetáhnou z backlogu do sprintu. Dohodli jsme se, že uděláme dva úkoly a jeden ponecháme v backlogu. Následně spustíme sprint.[Image] Při spuštění určíme, jak dlouho má sprint probíhat. Nyní je sprint aktivní a umíme si prohlédnout nástěnku sprintu. V této nástěnce vidíme, v jakém jsou úkoly stádiu.[Image] Samozřejmě nesmíš zapomenout daný úkol někomu přidělit. Otevřeš si úlohu a assigneš (přidělíš) ji někomu.[Image] Daný uživatel si umí vypsat jen jeho úkoly v daném sprintu.[Image] Autorem článku je Jaroslav Beňo.
O zlatém řezu a jeho aplikacích v designu
Vzdělávání
11.04.2021
Ľudovít Nastišin

O zlatém řezu a jeho aplikacích v designu

V designu jako takovém je velmi důležité, aby byl výsledek práce jasný a každý mu chápal. Ať už je to ve formě zalomení textu, oříznutí fotografie nebo navržení loga. Za tímto účelem se kromě jiných pomůcek často využívá i aplikace zlatého řezu, o kterém si nyní něco povíme. Z angl. „Golden ratio“ hovoříme o konkrétním matematickém poměru, který se velmi často vyskytuje iv přírodě a designové odvětví se jím inspiruje. Zlatý řez nám pomáhá dosáhnout co nejpřirozeněji působících proporcí, tvarů či struktury. “Zlatý řez vznikl již ve starověkém Řecku” Jedná se o velmi speciální číslo - 1,618. Vychází ze známé Fibonacciho posloupnosti a jeho aplikaci můžeme nalézt iv přírodě, například ve tvaru mořské mušle či ve formaci oblaků u hurikánů. Tato posloupnost je tvořena vždy částkou dvou předchozích čísel (0-1-1-2-3-5-8-13-21-...). A právě z této sekvence odvodili už ve starověkém Řecku zlatý řez (golden ratio), aby uměli lépe vyjádřit rozdíly mezi čísly sekvence. Jak používat zlatý řez v designuAplikace zlatého řezu do designérské profese vůbec není tak náročná, jak by se mohlo na první pohled zdát. Jeho využitím můžeme vytvářet například proporcionální layouty na web. Pokud chceme navrhnout web, který má vedle prostoru pro hlavní obsah i sidebar, tak právě s využitím zlatého řezu umíme stanovit jejich přesnou šířku. Pokud by se jednalo řekněme o prostor o šířce 960px, tak prostor pro hlavní obsah by měl mít šířku 593px (960px/1,618) a sidebar šířku 367px (593px/1,618). Samozřejmě, že v praxi do toho vstupuje několik dalších faktorů (např. padding), ale logiku tohoto poměru to deklaruje skvěle.[Image] A jelikož toto číslo vychází ze sekvence nekonečného množství čísel, tak jeho opakovaným aplikováním získáme různé velikosti (délky, šířky,...), se kterými můžeme v designu pracovat a vyskládat z nich funkční a intuitivní UI. Jak jsme si již říkali, zlatý řez lze aplikovat v podstatě na všechny oblasti designu či kreativy. Ukážeme si k tomu několik příkladů. Ořezávání obrázkůPokud se jedná pouze o ořez prázdného prostoru na kraji fotografie, věc je jednoznačná. Ale pokud je třeba oříznout i samotný obsah fotografie či obrázku, situace se mění. Výsledek musí zůstat vyvážený a ty nejdůležitější věci na obrázku by měly mít své místo. Právě s tím nám umí pomoci zlatý řez.[Image] (Zdroj: industrydev.com) Typografie a hierarchie Umíme si také pomoci při výběru správné kombinace velikosti použitých fontů. Takto bude mít název, podnázev a samotný text tu správnou velikost a hierarchie mezi nimi bude okamžitě jasná.[(Zdroj: Invisionapp)] UI Webdizajn Rozložení jednotlivých elementů a ploch na webu rozhoduje o tom, jak intuitivně se bude návštěvník webu cítit. A stejně tak, jestli se mu to bude líbit. Jak jsme již dříve psali v článku, například šířka jednotlivých sloupců je díky zlatému řezu jasně stanovena.[(Zdroj: Apiumhub)] LogoA posledním příkladem je využívání zlatého řezu při tvorbě loga. Tady to možná na první pohled není až tak očividné. No věřte, že zlatý řez se zde aplikuje velmi často ai ta nejznámější loga byla vytvořena právě s jeho pomocí.[(Zdroj: Twitter, NatGeo)]Někdy jej v logu najdete jednoduše (National Geographic logo), jindy je to trošku skryté (Twitter logo). Právě v tom druhém případě bylo logo vytvářeno za pomoci série kružnic s jasně danými velikostmi. Ty pomáhaly vytvářet všechny křivky a záhyby loga, dokud z něho nevzniklo ikonické logo, které působí přirozeně a hezky. A není to náhoda. Zlatý řez je není technika, je to spíše myšlenkový proces. Vědět ho aplikovat efektivně chce svůj čas. Určitě se však vyplatí pohrát si s ním a zkoušet podle něj vytvářet nějaké layouty či ořezávat důležité fotografie. Šikovnou pomůcku v podobě spirály zlatého řezu najdeš zde.
Studijní plán pro budoucího JavaScript programátora
Vzdělávání
26.03.2021
Skillmea

Studijní plán pro budoucího JavaScript programátora

Lidé se nás často ptají, jak se stát frontend developerem, jaké technologie by měly ovládat, co všechno vědět, kde začít a jaká je správná posloupnost jednotlivých online kurzů. Na základě našich zkušeností, rad od lektorů jako Yablko a dalších, jsme v tomto článku dali dohromady studijní cestu příštího frontened developera. Frontend developer vs backend developer vs fullstack developerFrontend developer, frontenďák je člověk, který je zodpovědný za části webové aplikace nebo webové stránky, které uživatelé vidí a interagují s nimi. Backend developer je člověk, který má na starosti všechno to, co člověk nevidí – infrastruktura, datový model, databáze. No a pak je tady full-stack developer, který je směsí frontendu i backendu a zvládne celý proces návrhu webové aplikace od začátku do konce. Pomozme si tímto meme pro lepší vizualizaci:[Programátorské meme]V dnešní době se dost stírá hranice mezi frontendem a backendem. Je to kvůli tomu, že stále více úkolů, které spadají do oblasti backendu, mají na starosti frontend vývojáři. Frontend developer dělá zejména tyto úkoly: • rozhoduje o designu a struktuře webstránek, • vyvíjí funkce k dosažení dobré uživatelské zkušenosti (user experience), • dbá na responzivitu webové stránky, • optimalizuje webstránku pro rychlé načítání a škálovatelnost v budoucnosti, • volí správnou kombinaci webových technologií pro dosažení nejlepšího výsledku. Dovednosti front-end developeraDobrý frontenďák je k nezaplacení. Doslova. Při vývoji webstránek či aplikací je nesmírně důležitý a musí proto mít komplexní znalosti nejen z oblasti vývoje webu: • ovládat technologie jako HTML, CSS, JavaScript a další (čti dále v článku), • pokud umí pracovat s nějakým grafickým softwarem jako například. Photoshop, Sketch alebo Illustrator, je to veľké plus, • základní znalosti SEO, • dobré komunikační znalosti, neboť hodně komunikuje s kolegy (grafik, backend developer, projektový manažer, klient), • nezalekne se problémů a umí je řešit. Mzda frontend developeraPodle portálu platy.sk na Slovensku vydělává JavaScript developer (proč jsme vybrali právě pozici JavaScript developer se dozvíš níže v článku) od 1.300 Eur až po 2.900 Eur. Záleží na počtu let praxe, zkušeností, projektech na jakých jsi již pracoval a tak dále. Dobré JavaScript developery firmy stále hledají, takže když naskočíš na vlak frontend developmentu, o práci budeš mít postaráno.[Priemerný hrubý mesačný plat programátora na Slovensku]JavaScript je také extrémně populární, podle RedMonk rebríčka je JavaScript číslo 1 co se týče popularity na GitHube a Stack Overflow. Když pohledáš i otevřené pozice např. na Profesi, vyhodí ti to stovky pozic JavaScript či frontend programátora. A když si do svého LinkedIn profilu doplníš, že ovládáš JavaScript ak tomu nějaký JavaScript framework, inbox ti vybuchne od nabídek různých IT recruiterů. Pojď na to a viz návod, jak se stát frontend programátorem. Jak se stát frontend developerem?Nenech se odradit a jdi za svým cílem. V textu níže jsme vypíchli podle nás ty nejdůležitější technologie, které by si jako dobrý frontenďák měl ovládat. Pojďme na to. “TL;DR: HTML, CSS a JavaScript jsou zádovou kostí frontend developmentu. Frontend development kombinuje právě tyto tři technologie ak tomu JavaScriptové frameworky (nebo knihovny).” Krok číslo 1: HTML a CSSToto je úplně první téma, kterému by ses měl věnovat, pokud máš v plánu být frontend developerem. Je to alfa a omega celého frontend developmentu. HTML a CSS používají všechny weby, všechny webové aplikace. HTML a CSS tě zdarma naučí kurz Webrebel 1: HTML, CSS a JavaScript. Všechna videa o HTML a CSS jsou k dispozici zdarma, stačí se přihlásit do kurzu. V tomto kurzu se naučíš také důležité věci o tom, jak vůbec internet funguje, jak fungují prohlížeče, což je HTTP a HTTPS, DNS, JSON, XML a spousta dalších zkratek, kterým nyní možná nerozumíš, ale v procesu tvorby webstránek jsou to důležité znalosti . A když budeš u CSS, věnuj mu pořádně hodně času. Může se zdát, že je snadné pracovat s CSS, ale na jeho zvládnutí je zapotřebí mnoho času. Zkus se zeptat backend developera, proč není frontendistou? Šance, že ti odpoví, "Nebo nesnáším CSS" je dost vysoká. Sledovat videa nestačí a proto si určitě během jejich sledování dělej domácí úkoly, které v kurzu jsou. Udělej si své vlastní portfolio, nabídni se svým známým, že jim uděláš webstránku, dělej maličké projektíky jen tak pro své potěšení a takto se budeš zdokonalovat a chytíš psaní kódu za pačesy.[Ukážka HTML, CSS a Java Script | Zdroj: https://moz.com/blog/javascript-seo] Krok číslo 2: piš lépe CSSLepší CSS se naučíš psát například díky preprocesorom. Známými preprocesory jsou Sass, Less nebo Stylus. Preprocesor je program, který zpracuje kód v jednom formátu (např. Sass) a změní jej na kód v druhém formátu (CSS). Díky Sass umíš psát méně kódu a bude přehlednější. Když budeš dělat na webových projektech, je dobré ovládat i nějaký ten CSS framework. Největšími frajery na tomto poli jsou pravděpodobně Bootstrap a Foundation. Bootstrap je iniciativa Twitteru a zaslouží si velkou pochvalu za zavedení responzivního designu ve velkém měřítku. Byl to první framework, který podporoval filozofii 'mobile-first'. Pomocí Bootstrapu umíš relativně rychle vytvářet responzivní weby. Pokud je pro tebe Bootstrap zbytečně omezující v tom, jak tvůj design bude vypadat, vyzkoušej CSS framework Tailwind 2. Je pro lidi, kteří chtějí mít flexibilitu a tvořit vlastní design. Tailwind je intuitivní a moderní CSS framework, který se lze rychle naučit. Krok číslo 3: trošku přitopíme - JavaScriptJavaScript bude pro tebe jako frontend developera bezpochyby nejdůležitější dovedností. Jak se naučit JavaScript? Logická odpověď: začni základy. Nebuď povrchní, ale ani v úvodu nechoď do úplných detailů. Learning by doing je naše doporučení, když se učíš JavaScript: 1. Nauč se základy JavaScriptu, 2. Nauč se React, Vue alebo Angular, 3. Pochopíš, že nemáš dobré základy JavaScriptu, 4. Vrať se k bodu 1. a nauč se pořádně JavaScript. JavaScript je již několik let po sobě nejpopulárnějším programovacím jazykem, pozice vyžadující JavaScript přibývají jako houby po dešti. Když budeš vědět JavaScript, o robotu máš postaráno. Yablko připravil parádní kurz o moderním JavaSciptu. Tento kurz tě naučí psát moderní JavaScript, budeš vědět jeho syntaxi (ES6 a ES7), abys nepsal spaghetti code a pravidla jazyka. Kromě toho, zvládneš nástroje jako package managers (správa závislostí) npm a yarn, zkrotíš DOM, budeš umět používat nástroje jako Webpack a tak dále. V kurzu je téměř 23 hodin materiálu o moderním JavaScriptu, bude to fuška, ale výsledek bude stát za to. Krok číslo 4: vyber si svůj osud - Vue, React, AngularKdyž jsi zvládl předchozí tři kroky, jsi připraven naučit se pracovat s mocnými nástroji v podobě JavaScript frameworků nebo knihoven. Aktuálně v roce 2021 jsou nejvíce v kurzu Angular, React a Vue. Nemusíš vědět všechny, raději jeden a pořádně. Každá z těchto technologií má svá pro a proti a jsou určena ke komplexnímu vývoji frontendových webových aplikací. Tyto frameworky jsou si podobné a pokud se naučíš jeden, přejít na jiný framework není až tak náročné. Pojďme si nyní velmi stručně představit zmíněné tři frameworky. Angular je vyvíjen společností Google, poprvé byl vydán v roce 2010 a je postaven na TypeScriptu. Otcem Angularu je Slovák Miško Hevery. V roce 2016 byl představen výrazný update tohoto frameworku - Angular 2, v jehož rámci došlo ik vypuštění "JS" z názvu. Kromě Googlu samotného používají Angular weby jako PayPal, Upwork, Microsoft a další. React je vyvíjen dalším gigatnem - Facebookem, který jej mimo jiné používá v aplikacích Instagram či WhatsApp, na Reacte fičí i weby Netflixu či Uber. První release byl v roce 2013 a jedná se o JS knihovnu pro vytváření uživatelských rozhraní (UI). Vue je nejmladším JS frameworkem v tomto výběru. Vue za sebou sice nemá žádnou velkou firmu, ale také je používán velkými firmami. Alibaba, Behance nebo GitLab. S příchodem Vue 3 v září 2020 přešlo Vue na TypeScript.[JavaScript frameworks Angular, React, Vue] BONUSGitGit se používá ve většině vývojářských firem, čím dříve se naučíš s Gitem pracovat, tím lépe pro tebe. Git je verziovací systém, díky kterému se můžeš kdykoli vrátit k původní verzi svého kódu, sdílíš kód s kolegy spolupracovníky, pracuješ v týmu. Git ovládáš přes příkazový řádek nebo si nainstaluješ nějaké GUI pro Git. Git ti vlastně ukládá celou historii tvého projektu do repozitáře. Své repozitáře ukládáš na jakémsi hostingu – což může být GitHub, GitLab či Bitbucket. TestováníChceš-li být úplný král, svůj kód určitě i testuj. Vyhneš se tak mnohým problémům při vývoji. U JavaScriptu jsou nejpoužívanější knihovny pro testování Jest, Mocha, Chai. ZávěrNezapomínej, nemusíš dokonale ovládat vše z výše uvedeného. V tomto článku jsme se snažili přinést ti průřez technologií, které bys měl ovládat, pokud se chceš stát frontend programátorem. Mohlo by se zdát, že jich je příliš mnoho a bojíš se, že to nezvládneš. Pro dodání sebedůvěry si přečti tyto příběhy absolventů našich kurzů, kteří se rozhodli změnit kariéru. Nebo si prohlédni pár rozhovorů s absolventy na našem YouTube. Nikdy není pozdě začít s programováním. Když se rozhodneš pro vzdělávání formou online kurzů, nejdůležitější je vydržet. Držíme ti palce. Kódování zdar!
Kotlin Raw String
Vzdělávání
19.02.2021
Skillmea

Kotlin Raw String

String je základní datový typ v programovacích jazycích. Slouží k uchování textu. Pokud chceme napsat String tak text vložíme mezi dvojité uvozovky. val cesta = "cesta";Ve většině případů je to dostačující. Co když do textu chceme nastavit cestu na soubor jako text. C:\work\tools\__test Musíme ho vložit do proměnné typu String a všechna lomítka zdvojit - escapnout. val cesta = "C:\\work\\tools\\__test";Kotlin má také pomůcku a tou je Raw String. Pro napsání textu použiji třikrát dvojité uvozovky na začátku i na konci. val cestaRaw = """C:\work\tools\__test"""Raw String nám umožňuje zapsat String na více řádků bez nutnosti spojování pomocí +. Mám text, který chci napsat na více řádků. Co musím udělat, pokud to chci v jednom Stringu? Všechny části spojím pomocí + a přidám speciální značku pro nový řádek \n. val text = "1 639,33\n" + "6 540,03\n" + "8179,36\n" + "+2500,04"U Raw Stringu jen stisknu enter pro nový řádek a pokračuji v psaní. val textRaw = """1 639,33 6 540,03 8179,36 +2500,04"""Tento způsob ale není pěkně čitelný – veškerý text mám zasazený na levou stranu, neboť nechceme abychom tam dali např. taublátor – v původním textně nebyl. Co můžeme udělat je přidat nějaké speciální značku na začátek řádku, který chci odsadit a pak řeknu, že vše nalevo od značky spolu se značkou považuji jen za odsazení textu. Přidejte značku (hocijakou): val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04"""Nyní řekneme, že # je speciální značka pro odsazení. val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04""".trimMargin("#") A můžeme odsadit pro lepší čitelnost: val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04""".trimMargin("#")Nebo použijeme default znak oddělovače, což je pipe |. val textRaw = """1 639,33 |6 540,03 |8179,36 |+2500,04""".trimMargin()Nyní se tyto dva Stringy budou rovnat. println("${text == textRaw}") //truePoužití v reálné aplikaciUrčitě bys rád viděl příklad z reálné aplikace. Jedním z takových příkladů by bylo použití při psaní Android aplikace. Přesněji například při psaní příkazů pro poptávku na databázi v Room frameworku, který se používá pro zjednodušený přístup k databázím. V Room píšeme takzvané Dao třídy pro přístup k databázi. Vezměme si jeden příklad kde chci napsat SQL příkaz k vyjmutí filmů z databáze. @Query("SELECT id, movie_name, genres, directors year FROM MOVIES") suspend fun getAllMovies(): List<MovieShort>Příkaz bys rád napsal na více řádků, aby byl lépe čitelný. @Query("SELECT id, movie_name, genres, directors year " + "FROM MOVIES") suspend fun getAllMoviesInShortForm(): List<MovieShort>Nebo použiješ Raw String. @Query(""" SELECT id, movie_name, genres, directors year FROM MOVIES """)Určitě si umíš představit jak se ti zlepší čitelnost, budeš-li mít složitější select příkazy v kombinaci například s join.
Jak na vlastní Virtuální privátní server - část 1.
Vzdělávání
21.01.2021
Lubo Herkoo

Jak na vlastní Virtuální privátní server - část 1.

Každý týden jeden blog. Takové jsem si dal předsevzetí do nového roku. Hned první týden se to nepodařilo, ale co už 🤦🏻‍♂️ . V tomto textu (nebo seriálu?) budeme řešit tvůj vlastní Virtuální privátní server (VPS). Konkrétně: • zjistíme co to VPS vlastně je a jaké jsou výhody a případné nevýhody, • zkusíme analyzovat naše potřeby a vybrat vhodné parametry našeho serveru, • VPS koupíme, nastavíme, zajistíme a připravíme pro naši aplikaci, • z GitHub repozitáře nasadíme naši aplikaci do produkce pomocí GithubActions (CI), • koupíme doménu a nasadíme SSL certifikát pomocí letsencrypt. Je to hodně práce, pome na to.[Image] K čemu mi je vlastní server?Hned na začátku si to vyjasněme: VPS je pro většinu projektů zbytečný. Při dnešních možnostech, jak svou aplikaci umíme nasadit do produkce a zpřístupnit ji uživatelům na pár kliků, je často zbytečné řešit komplikované nastavování vlastního serveru. Hlavně údržba a řešení případných problémů nám může připomenout, jak špatně jsme se rozhodli. Přesto VPS má své místo a někdy se opravdu může hodit, například: • pokud máš linux v malíčku, nebo svůj VPS už máš (jsi zkušený/á), • pokud výkon sdíleného hostingu viditelně nestačí a už neumíš svou aplikaci dále optimalizovat, • pokud nepostačují dostupné technologie sdíleného hostingu (potřebuješ doinstalovat vlastní knihovny, tooly), • pokud má aplikace extrémní nároky na výkon procesoru, velikost paměti, nebo potřebuješ ukládat gigabajty/terabajty dat, • pokud jsou data, se kterými pracuješ příliš senzitivně na to, aby byla uložena na jednom místě spolu s daty jiných uživatelů sdíleného hostingu. Asi bychom našli i další případy, specifika, kdy se hodí VPS, tyto nám však prozatím postačí. Pokud tedy spadáš do některého z kritérií, čti dále. Jaký výkon serveru potřebuji?Brzdí. Než přistoupíme ke koupi serveru bychom měli vědět, jaké jsou naše požadavky. Alespoň přibližně. Potřebujeme spoustu jader procesoru? Nebo si vystačíme s jedním, případně dvěma jádry? Potřebujeme spoustu operační paměti, nebo terabajty dat na disku? To jsou těžké otázky, ale poradím ti: • Pokud aplikace neexistuje a chceš VPS jen vyzkoušet, zvol nejlevnější server jaký je v nabídce. Zda máš 1 procesor, nebo 32 procesorů - terminál reaguje vždy stejně rychle. • Pokud je aplikace nová a neznáš její nároky, začni raději s méně výkonným a levnějším serverem. Například CPU s jedním nebo dvěma jádry a 2G RAM. Většina providerů disponuje jednoduchým škálovacím nástrojem. Pokud se zvýší nároky, pohneš v administračním rozhraní nějakým sliderem a šup, máš o dvě jádra více, případně dvojnásobek RAM - do pár vteřin. • Pokud jsi narazil na limity sdíleného hostingu, pravděpodobně znáš důvod, proč chceš vyzkoušet VPS. Nejlepší pokud si komunikoval s podporou svého providera a potvrdili, že jsi narazil na limit jejich CPU, nebo RAM. Kde koupit server?Takže, pokud víme alespoň přibližně co chceme, udělejme průzkum. Osobně mám vyzkoušených těchto prodejců VPS: • Linode, DigitalOcean, Hetzner, WebSupport Ubuntu Server a terminál bude u každého prodejce stejný. Řídit se tedy můžeme podle následujících kritérií: 1. cena 2. ještě jednou cena 3. možnosti administračního rozhraní a případného navyšování výkonu do budoucnosti 4. lokalita datového centra (co nejblíže uživatelům) Moje zkušenost V poslední době to u mě osobně vyhrává Hetzner (hetzner.de). Frajeři mají vynikající ceny (vlastní server v době psaní tohoto textu umíš získat již za 3E/měsíc) a navyšování počtu CPU a RAM je řešeno jednoduchým sliderem v administračním rozhraní. Super věc 🎉. Datové centrum můžeš zvolit relativně blízko – Falkenstein, Nemecko. TIP: V levém horním rohu změníš jazyk webu z německého na anglický. 😎 Vytvoření účtu HetznerJak se už konečně tedy dostaneme k vlastnímu serveru? Takto: 1. Vytvoř si účet na hetzner.de (klik) 2. Klikni na linku, kterou ti Hetzner poslal na email zadaný při registraci 3. V sérii formulářů vyplň své iniciály (poslední formulář vyžaduje údaje o platbě, žádná platba předem však není nutná) 4. Po vyplnění a odeslání formulářů se implicitně zobrazí formulář - nastavení tvých iniciál. Vpravo nahoře klikej na čtverečky a vyber z nabídky možnost "Cloud": Pokud máš po absolvování předchozích kroků před sebou takovou obrazovku:[Konzole cloudu Hetzner.de. je vše v pořádku.] Můj server!Už jsme blízko. V seznamu projektů (předchozí obrázek) klikni na "Default" (tento název umíš změnit přes ikonu tří teček v pravém horním rohu karty produktu) a následně "Add server".[Vytvoření nového VPS.] Parametry serveruNyní zvolíme parametry serveru. V tomto případě zvolíme nejlevnější variantu, ale některé možnosti popíšeme blíže. Parametry serveru tedy nastavíme následovně: 1. Location (umístění datového centra): Falkenstein, protože je nejblíže Slovensku. 2. Image (operační systém): Ubuntu 20.04, protože s ním umím pracovat a také existuje obrovská komunita uživatelů Ubuntu serveru, což usnadní vyhledání návodů a řešení případných problémů. Se serverem Ubuntu bude dále pokračovat i tento tutoriál. 3. Type (typ serveru): Standardní, protože nám nevadí, že spolu s naším VPS budou na fyzickém serveru běžet i jiné virutální servery. Dedikovaný typ serveru je vhodný jen tehdy, potřebujeme-li opravdu velký výpočetní výkon pro naše použití. Z dalších možností typu serveru vyberme hned první s označením CX11 a tedy 1x VCPU, 2GB RAM, 20GB SSD v ceně €2.99 za měsíc. 4. Volume (externí disk): Nevytváříme externí disk. 1. TIP: Pokud vytvoříme VPS o velikosti SSD 20GB a potřebujeme více dat, nemusíme hned měnit velikost SSD na serveru, ale můžeme připojit k serveru externí disk. Má to jednu velkou výhodu a jednu menší. Velkou výhodou je, že v případě zvyšování výkonu (např. z 1CPU a 2GB RAM na 4CPU 8GB RAM) můžeme zvolit možnost, že nechceme navyšovat i velikost SSD – tedy SSD zůstane na hodnotě 20GB. Takové rozhodnutí nám v budoucnu umožní i krok zpět a tedy snížení počtu VCPU a RAM. Takto můžeme ušetřit nemálo finančních prostředků, pokud potřebujeme zvýšit výkon VPS jen dočasně, ne natrvalo (např. pokud je aplikace přetížena jen v období Vánoc). 5. Network (síť): Nevytváříme síť, protože nevytváříme skupinu serverů, které potřebujeme mít na jedné síti (např. pokud bychom potřebovali zvlášť VPS pro webserver a databázový server). 6. Additional features (další možnosti): V případě možnosti User data nespekulujeme (zatím). To se nám může hodit tehdy, chceme-li některé činnosti automatizovat, například automaticky přidat uživatele do systému, spustit různé skripty po instalaci a podobně. Backups jsou pravidelné zálohy, což je nutnost na produkčním serveru, kde běží ostrá aplikace. Tato služba je však zpoplatněna – 20% z ceny našeho serveru. Pokud tedy vytváříš produkční server, nafurt, tak doporučuji i se zálohami. Pokud jen testuješ, tak je to na tobě 😉 . 7. SSH Key (SSH klíč): Pokud máš zkušenosti s *nix systémy, možná máš vytvořený svůj id_rsa.pub klíč. Pokud ano, tady ho můžeš použít a tak se autentifikovat při připojování k serveru. V opačném případě (a to je náš případ) ti bude zasláno heslo k root uživateli na tvůj email. Tady tedy nespekulujeme a zatím nezaškrtneme tuto možnost. 1. TIP: Povolit vzdálený přístup pro root uživatele není bezpečné a používá se pouze pro prvotní nastavení serveru (první přihlášení do nového VPS). Jedním z prvních kroků po přihlášení se do nového VPS by mělo být vytvoření vlastního uživatele, který se bude přihlašovat pomocí klíče (ne hesla) a zakázání vzdáleného přístupu pro root uživatele. To bude také náš postup. 8. Name (Název): Toto je název serveru, který je zobrazen v administračním panelu hetzner, ale iv konzole po připojení k serveru přes SSH protokol. TIP: Vzpomeň si na nějaké názvy světů, postav z tvých oblíbených počítačových her, komiksů nebo filmů 😎 . Hodně čtení kvůli pár klikům. Nastavení serveru tedy může vypadat i takto:[Nastavenie parametrov VPS.] První SSH spojení Po potvrzení nastavení chvíli počkáme na spuštění nové instance našeho VPS. Zároveň nám Hetzner doručí email s informacemi o IP adrese, na kterou se budeme připojovat a heslem pro root uživatele. Tak zkontroluj email a pojď se přihlásit na server přes SSH. Jaký program použít k přihlášení přes SSH? Pro MacOS je to Terminal nebo iTerm. V případě linuxu (jakéhokoli) je to velmi podobné MacOS - tedy opět Terminal. Uživatelé Windows mohou použít pro SSH připojení program Putty, případně nainstalovat WSL doplněk a použít WSL terminal. Napiš nám pokud se setkáš s nějakým problémem, pořešíme. Z emailu jsem se dozvěděl, že IP mého serveru je 78.47.244.57 a heslo k uživateli root je ss3PgfWnHwxUhUaKEEr9 (ani nezkoušej, server v době čtení tohoto textu již nebude existovat).[Email s autorizáciou do nášho VPS.] TerminalPříkaz ssh, který použijeme v MacOS, Linux nebo WSL terminálu má následující syntax: ssh pouzivatel@ip_servera Tedy v našem případě: ssh root@78.47.244.57 Terminál si vyptá heslo, můžeme ho jen zkopírovat a přilepit. Při zadávání hesla do terminálu se nezobrazují žádné hvězdičky ani odezva. Proto jen potvrdíme příkaz klávesou Enter. Pokud se na server připojujeme poprvé, SSH se zeptá, zda chceme server uložit do seznamu SSH serverů. Napíšeme yes a spojení se v případě správného hesla úspěšně naváže:[Image] První připojení k serveru přes SSH. Při prvním přihlášení je nutné změnit heslo uživatele root. Zadáme staré heslo a vytvoříme nové. Hotovo. Náš nový VPS server Ubuntu 20.10 je vytvořen. Co dál?V další části blogu budeme pokračovat s nastavením našeho serveru: 1. vytvoříme si na lokálním počítači SSH klíč 2. vytvoříme na serveru vlastního uživatele a nastavíme přihlašování přes SSH klíč 3. zajistíme server pomocí firewallu, fail2ban a jiných nástrojů 4. nainstalujeme a spustíme webový server (nginx) 5. nainstalujeme a spustíme databázový server (postgresql, pokud budeš potřebovat tak i MySQL) 6. nainstalujeme závislosti (git, nodejs, ...) Ve třetí části budeme řešit deploy naší aplikace na VPS: 1. koupíme doménu a nasměrujeme ji na server 2. naklonujeme naši aplikaci na server, spustíme ji pod doménou a vytvoříme k ní službu (systemd service aby se automaticky spustila při případném restartu serveru) 3. pomocí certbot nastavíme doméně SSL certifikát a zpřístupníme aplikaci pod HTTPS 4. pomocí GithubActions nastavíme continous integration tak, aby se po push do main branche spustily automatizované testy a v případě bezchybnosti se aplikace rovnou nasadí do produkce Hodně roboty máme. Ale hodně se také naučíme. Čtvrtá část není.
Abstrakce a řazení v kolekcích v Javě
Vzdělávání
08.12.2020
Skillmea

Abstrakce a řazení v kolekcích v Javě

Pojďme si popovídat o abstraktních třídách v jevu (abstract class in java). Abstrakce slouží ke schování složitosti od uživatele a zobrazuje pouze relevantní informace. Abstraktní třídy a metody V našem příkladu víme, že všechna zvířata vydávají zvuk. Je to něco abstraktního – něco, co si umíme představit a v kódu to zapíšeme následovně. Upravme metodu ve třídě Animal. public abstract void makeNoise(); Dává to smysl, neboť Animal nepředstavuje určité specifické zvíře a tedy nevíme, jaký zvuk vydá, ale víme, že chceme aby všechno, co bude dědit od Animal, vydávalo zvuk. Pomocí public abstract jsem řekl, že tato metoda nemusí mít nitro – nemusí mít kód (implementaci). Pokud mám abstraktní metodu, tak i celá třída musí být abstract. public abstract class Animal{ public String name = "animal"; public abstract void makeNoise(); }Pokud je třída abstract, tak z ní nemůžu vyrobit objekt. Nač bych i dělal objekt Animal, nicméně je to jen abstrakce. Toto nebude fungovat: Animal animal = new Animal(); Pokud je Animal abstract a obsahuje abstract metodu, tak jsem řekl, že potomek musí napsat implementaci abstract metody nebo bude pak také abstract. Nám vyhovuje, aby Mamal byl také abstract. Tím pádem nemusíme vyrobit implementaci. Ze třídy Mamal smažeme makeNoise a označíme ji za abstract. public abstract class Mamal extends Animal { public String name = "mamal"; }Nyní třídy, které dědí od Mamal musí implementovat metodu makeNoise. Cat a Dog již danou metodu implementují, tedy nemusíme nic dělat. Ale Fox tuto metodu nemá a proto ji musíme implementovat. IntelliJ IDEA nám v tomto pomůže zkratkou. Stiskneme Alt+Insert a vybereme Implement Methods. public class Fox extends Mamal { @Override public void makeNoise() { System.out.println("Ring-ding-ding-ding-dingeringeding!"); } } Seřazování v kolekcíchPro seřazování použijeme již existující algoritmus ve třídě Collections.sort(l). Písmeno l v tomto případě bude Dopis. Pokud by tento List obsahoval sadu Stringů, byly by seřazeny abecende, pokud by obsahoval Datum tak budou seřazeny chronologicky. Jak je to možné? Je to proto, že tyto třídy implementují rozhraní Comparable. Pokud by ses snažil takto seřadit takové třídy, které neimplementují toto rozhraní, tak program vyhodí výjimku. Existuje ale možnost, že ve tvé třídě implementuješ toto rozhraní. Potom toto třídění je nyní považováno za přirozené. Příklad: Máme Osobu, která implementuje Comparable. Musíme implementovat metodu compareTo. public class Osoba implements Comparable<Osoba>{ private String meno; private String priezvisko; private int vek; public Osoba(String meno, String priezvisko, int vek) { this.meno = meno; this.priezvisko = priezvisko; this.vek = vek; } //get, set metódy vynechané pre čitatelnosť @Override public String toString() { return "Osoba{" + "meno='" + meno + '\'' + ", priezvisko='" + priezvisko + '\'' + ", vek=" + vek + '}'; } @Override public int compareTo(Osoba o) { int porovnaniePriezvisk = o.getPriezvisko().compareTo(this.getPriezvisko()); return porovnaniePriezvisk !=0 ? porovnaniePriezvisk : o.getMeno().compareTo(this.getMeno()); } } Co když chceš použít úplně jiné než přirozené třídění, chceš to třídit například podle věku. Nebo chceš třídit objekty, které neimplementují Comparable rozhraní? Tak si ho vyrobíš. K tomu použiješ rozhraní Comparator a poté ho požiješ Collections.sort(e, VEK_TŘÍDĚNÍ);. public class Sort { private static final Comparator<Osoba> VEK_TRIEDENIE = new Comparator<Osoba>() { @Override public int compare(Osoba o1, Osoba o2) { return Integer.compare(o1.getVek(), o2.getVek()); } };Vyzkoušíme si: public static void main(String[] args) { Osoba[] osobyArray = { new Osoba("Jaro", "Beno", 20), new Osoba("Peter", "Beno", 25), new Osoba("Karol", "Slepec", 18), new Osoba("Tomas", "Vlak", 22) }; List<Osoba> osoby = Arrays.asList(osobyArray); System.out.println(osoby); Collections.sort(osoby); System.out.println(osoby); Collections.sort(osoby, VEK_TRIEDENIE); System.out.println(osoby); } }V dalších blozích se podíváme na pár zajímavostí z Javy 13 a také se budeme věnovat i Kotlinu. Zůstaň nám věrný a uč se Javu 😊
Funkce VLOOKUP
Vzdělávání
16.11.2020
Skillmea

Funkce VLOOKUP

Funkce VLOOKUP se používá tehdy, když potřebujete najít údaje v tabulce nebo rozsahu podle řádku. Vyhledejte například cenu automobilové části podle čísla části nebo vyhledejte jméno zaměstnance na základě ID zaměstnance. Funkce VLOOKUP patří k nejpraktičtějším Excel funkcím. Funkce VLOOKUP znamená: = VLOOKUP (co chcete vyhledat, kde ho chcete vyhledat, číslo sloupce v rozsahu obsahujícím hodnotu, která se má vrátit, vraťte přibližnou nebo přesnou shodu – označenou jako 1/TRUE nebo 0/FALSe). Vysvětlíme si danou funkci na jednoduchém příkladu: • v databázi chceme přidat k ID klienta jeho příjmení a město, ze kterého pochází. • v jedné tabulce (v levé, viz obrázek níže) nám chybí určité údaje o klientech, konkrétně příjmení a město • ve druhé tabulce (v pravé, viz obrázek) máme údaje o klientech - jeho ID, příjmení a město, ze kterého pochází.[Image] Obě tabulky mají společný jeden identifikátor, a tedy ID_klient. Na základě této společné shody umíme pomocí funkce VLOOKUP vyhledat údaje z jedné tabulky a přiřadit je do druhé tabulky. Řešení: zadejme do buňky Příjmení funkci VLOOKUP a rozklikněme si ji. Argument funkce Vyhledávaná_hodnota je něco, co naše dvě tabulky spojuje, tedy ID_klient. Argument funkce Pole_tabulky jsou údaje z druhé tabulky, ze které čerpáme (tuto tabulku si nezapomeňte ve funkci ukotvit pomocí klávesy F4). Dalším argumentem fukce VLOOKUP je Číslo_indexu_sloupce, do kterého napíšeme číslo sloupce z naší druhé tabulky - hledáme Příjmení, co je druhý sloupec, tak napíšeme číslo 2. Poslední argument funkce je Vyhledávání rozsahu, která může být přibližná nebo přesná shoda; TRUE (1) nebo FALSE (0). V našem případě chceme přesnou shodu, tedy použijeme 0 – FALSE. Funkce bude zapsána následovně:[Image] A tady je výsledek, podle ID_klient se nám zobrazí v naší první tabulce příjmení zákazníků Rovněž můžeme postupovat iv případě, že chceme doplnit MĚSTO klienta do první tabulky.[Image] Krátké shrnutí k funkci VLOOKUP, obsahuje tyto 4 argumenty: 1. co hledám, 2. kde to hledám, 3. ve kterém sloupci je výsledek, 4. chci hledanou hodnotu přesně nebo přibližně? Pokud máš nějaké dotazy k této funkci, nebo je ti z článku něco nejasného, napiš otázku do komentáře.