Vzdelávanie

Sekcia vzdelávania ponúka články o rôznych vzdelávacích programoch, vrátane Data science kurzov a kurzov ako kurz Excel, ktoré vám pomôžu získať praktické zručnosti. Objavte najlepšie spôsoby, ako sa vzdelávať online a posunúť svoje schopnosti na vyššiu úroveň.

Frontend vs Backend vs Fullstack a ako sa na to pozerám ja
Vzdelávanie
20.08.2021
Jaroslav Beňo

Frontend vs Backend vs Fullstack a ako sa na to pozerám ja

Pri riešení a vývoji aplikácii si vieme vývoj rozdeliť na dve hlavné časti – front end a back end. Front end je v podstate to čo vidíš očami – to s čím sa používateľ ako prvým stretne (počas vysokej školy ma pucoval jeden profesor, že človek, čo kliká našu aplikáciu je používateľ a nie užívateľ). Následne back end je všetko vzadu, čo bežný používateľ nevidí, čo sa deje na pozadí, zväčša je to spracovanie dát, komunikácia s databázou a podobne.  Po internete kolujú desiatky memes, v ktorých sa tieto rozdiely medzi frontendom a backendom zobrazujú. Pozri si zopár z nich: [Image] Dúfam, že máš teraz akú takú hrubú predstavu o tom, čo je frontend a čo backend. Ako sa nám snažia podsunúť tieto meme obrázky, backend nemusí byť a nemal by byť škaredý a zle napísaný špagetový kód, práve naopak. Napriek tomu, že backend používateľ nevidí, mal by fungovať parádne. Pozrime sa teraz na to z pohľadu reálnej aplikácie.  Reálna aplikácia Uvažujem nad webovou aplikáciou, ktorá bude napojená na databázu. Ako prvé potrebujem poznať, čo sa má v aplikácii diať, čo má aplikácia robiť, aké sú podmienky, čo sa má kedy zobrazovať a tak podobne.   Na túto úlohu sú vyhradení špecialisti ako analytik, ktorý analyzuje aplikáciu z pohľadu používania a takzvanej business logiky. Teda napríklad banková aplikácia má inú business logiku a podobne aplikácia na správu používateľov má inú logiku. Potom nastúpi architekt, ktorý povie, v čom sa bude programovať frontend, v čom back end a všetko navrhne technicky.  Následne prichádza na scénu frontend programátor a backend programátor. Alebo čoraz viac populárny fullstack programátor.  Úloha front end developeraFrontend developer má za úlohu pripraviť obrazovky – UI – user interface podľa požiadaviek. Napríklad potrebuje zobraziť všetky transakcie na bankovom účte. Pripraví si obrazovku. Použije HTML + CSS na výzor stránky plus JavaScript na funkcionalitu. Použije najčastejšie jeden z populárnych frameworkov – podľa zadania architekta – Angular, Vue, React. Okrem toho by frontend vývojári mali ovládať frameworky ako Bootstrap, Foundation a ďalšie, ktoré zaistujú skvelo vyzerajúci obsah bez ohľadnu na zariadenie, na ktorom si daný obsah prezeráte. Ak potrebuje dáta, tak podá požiadavku na backend programátora alebo analytik pripraví úlohu pre back end programátora. Frontendista následne potom zobrazí dáta, ktoré mu poskytol backend.  “Frontend developer je zodpovedný za interiérový dizajn domu, ktorý postavil backend developer.” Úloha back end developeraBack end developer pripraví databázu, pripraví si kód na získanie dát z databázy a napojenie dát do programu. Následne pripraví službu na poskytnutie dát do okolitého sveta. Nie všetko, čo je v databáze chceme zobrazovať na obrazovke, len to čo je treba. Služba býva hlavne REST rozhranie (REST api), ktoré vyzerá ako klasická url adresa na webovú stránku, no namiesto web stránky vráti dáta v požadovanom tvare. Napríklad vráti zoznam bankových transakcií daného používateľa v tvare JSON.   Ako backendista by si mal poznať jazyk SQL na komunikáciu s databázou. Potom záleží v akom jazyku je backend napísaný – Java, C#, Python, Ruby a podobne. Potom každý jazyk má frameworky, ktoré pomáhajú pri práci.  Úloha full stack developeraIdeálna kombinácia je vedieť aj front end aj back end. Fullstack developer si pripraví obrazovku a ak potrebuje dáta, tak si ich vie aj sám pripraviť. Podľa môjho názoru je dobre vedieť aj front aj backend, ale trpí tým hĺbka znalostí problematiky.   Zručnosti a znalosti fullstack developerov sú potrebné vo všetkých fázach procesu webového vývoja, počnúc fázou plánovania projektu, správou databáz, vytváraním používateľských rozhraní až po štruktúrovanie údajov a riešenie kritických potrieb. Fullstack vývojári preto musia porozumieť všetkým úrovniam webových stránok a tomu, ako web funguje. Na záver možno povedať, že učenie sa viacerých webových jazykov a technológií je pravdepodobne najlepšia cesta. Je však dobré mať na pamäti tento prístup: osvojte si najpoužívanejšie a najpopulárnejšie technológie/jazyky, pretože čím väčšiu podporu pre svoj web/produkt/službu máte, tým lepšie. Backend developer pozná do hĺbky problémy, ktoré môžu vzniknúť s databázou, pozná lepšie všetky procesy na pozadí.  Frontend developer ovláda lepšie javascriptový framework, vie ako spraviť veci efektívnejšie. Fullstack developer nemusí čakať, kým mu pripravia dáta na backende a vie si všetko lepšie manažovať.
Data Science: ktorým jazykom začať?
Vzdelávanie
11.08.2021
Skillmea

Data Science: ktorým jazykom začať?

Aj ty rozmýšľaš o tom, že sa naučíš data science, ale nevieš, kde začať? Dostávame otázky na to, s ktorým data science jazykom začať ako s prvým. Preto sme pripravili tento blog, v ktorom ti zosumarizujeme nami navrhovaný postup učenia sa data science. V článku nájdeš tipy na jazyky dátovej vedy od našich lektorov Mira Beku, ktorý spravil populárny online kurz Python Data Science a od Mareka Čecha, ktorý vytvoril kurz so zameraním na SQL dátovú analýzu. Veríme, že tento článok ti pomôže vybrať ten správny data science jazyk.[Image] Správny jazyk pre tvoje Data Science cielePredtým, ako si vyberieš konkrétny jazyk, by si si mal(a) položiť niekoľko otázok a zodpovedať na ne. Sú to najmä tieto: Na akých projektoch chceš pracovať? Aké témy ťa zaujímajú? Do ktorých odvetví chceš ísť? Odpovede na tieto otázky ti pomôžu určiť jazyk, ktorý sa budeš musieť naučiť. Niektoré odvetvia vyžadujú znalosť konkrétneho jazyka, je to najmä z dôvodu, že budeš pracovať s preverenými modelmi daného odvetvia, ktoré sú vytvorené pomocou určitého jazyka. Dobrým postupom je aj opýtať sa dátových vedcov z odvetvia, ktoré ťa zaujíma, na jazyky, ktoré používajú a čím odporúčajú začať. Nižšie v článku nájdeš niekoľko facebookových a iných skupín z regiónu Slovenska a Česka, ktoré ti odporúčame. “TL;DR: Najčastejšie používané jazyky v dátovej vede sú Python, R a SQL. Toto sú aj nami odporúčané jazyky, ktorými začať, pokiaľ máš v úmysle stať sa dátovým vedcom. ” Pri výbere akéhokoľvek z data science jazykov však v podstate neurobíš chybu, nakoľko keď sa naučíš extrahovať poznatky a dáta pomocou jedného jazyka, nebude pre teba problém naučiť sa iný jazyk. Všestranný dátový vedec by mal byť schopný "skákať" medzi jazykmi. Najobľúbenejšie Data Science jazykyV tomto stručnom prehľade ti predstavíme najobľúbenejšie Data Science jazyky a na čo slúžia. Dobrou správou je, že Python, R aj SQL majú rozsiahle ekosystémy a komunity, takže tieto jazyky sú vhodné pre takmer všetky úlohy dátovej vedy. Python Python je univerzálny moderný programovací jazyk, vieš ním robiť weby aj programovať robotov. Medzi programátormi je obľúbený pre svoju stručnú a ľahko čitateľnú syntax. Dobre sa teda číta a je možné sa ho veľmi rýchlo naučiť - je teda skvelou voľbou pre výučbu programovania. Vďaka množstvu výkonných knižníc a balíkov môže Python implementovať mnohé zo štatistických modelov a výpočtov potrebných pre dátovú vedu. Je to tiež jeden z najlepších jazykov na získavanie (scraping) údajov z webu. Veľa firiem a organizácií používa Python na data science, pretože ich programátori už používajú Python aj na iné účely. Python tiež používa intuitívnu a jednoduchú syntax, takže je vhodný pre začiatočníkov na učenie sa dôležitých všeobecných konceptov programovania, ako sú napr. funkcie. Miernou nevýhodou Pythonu ako prvého jazyka pre data science je, že základná inštalácia Pythonu neobsahuje štatistické funkcie, takže si budeš musieť stiahnuť všetky potrebné balíčky, aby si mohol začať s data science v Pythone. Keď si však všetko nastavíš, Python sa dá ľahko naučiť. Zopár zaujímavých a odporúčaných balíčkov pre Python: • Data manipulácia: pandas a NumPy • Vizualizácia: Matplotlib a seaborn • Testovanie hypotéz a modelovanie: SciPy, scikit-learn, statsmodels Lektor Miro Beka odporúča aj Jupyter notebook, ktorý je podľa neho "skvelý nástroj ako pracovať s Python datas cience, pretože programátor vie priamo v ňom vykonávať všetky funkcie, zobrazovať grafy a obrázky, prípadne importovať existujúce jupyter notebooky. Keďže python nemá natívne IDE, kde by všetky tieto veci fungovali out of the box, jupyter notebook slušne dopĺňa Python prostredie o potrebné nástroje." Programovací jazyk R R je štatistický programovací jazyk vytvorený pre analýzu údajov, vizualizáciu údajov a dátovú vedu. Dodáva sa s komplexným súborom vstavaných štatistických funkcií a metód. R je dobrá voľba, ak si nováčik v oblasti dátovej vedy, ale už máš základné znalosti o všeobecných konceptoch programovania. Dátové štruktúry, typy premenných a analytické nástroje v R sú jednoduché a navrhnuté špeciálne pre dátovú vedu. Na začiatku nemusíš byť zaneprázdnený syntaxou alebo viacerými rôznymi knižnicami. So základnou inštaláciou R budeš mať prístup k mnohým funkciám dátovej vedy, ako sú lineárne regresie alebo t-testy, a vytvárať peknú grafiku a vizualizácie. R sa tiež dobre kombinuje s RStudio - integrovaným vývojovým prostredím (IDE) - ktoré uľahčuje spustenie kódu R a kontrolu výstupu. Medzi niekoľko užitočných balíkov, o ktorých by si mal vedieť pri učení jazyka R, patria: • Zbierka data science balíčkov: tidyverse • Data manipulácia: dplyr (nachádza sa aj v tidyverse) • Vizualizácia: ggplot2 (nachádza sa aj v tidyverse) • Regresia: caret SQLSQL je jazyk, ktorý umožňuje programátorom komunikovať s databázami a spravovať údaje, ktoré obsahujú. Bežne sa používa na dopytovanie a úpravu údajov uložených v relačnej databáze. Dátoví vedci zvyčajne extrahujú údaje z databázy pomocou jazyka SQL a potom ich importujú do R alebo Pythonu na analýzu. Bez ohľadu na to, aký jazyk sa pre analýzu údajov naučíš, SQL je dôležité naučiť sa, ak chceš sťahovať údaje z databáz. Znalosť jazyka SQL ti umožňuje pracovať s databázami PostgreSQL, SQLite, MySQL a ďalšími relačnými databázami. Syntax základných dotazov je v rôznych databázach podobná, takže SQL je na tento účel univerzálnym jazykom. Ak sa chceš dozvedieť viac o rôznych typoch databáz, pozri si tento online kurz o MySQL a SQLite. Lektor Marek Čech hovorí o SQL ako o vstupnej bráne do odborov súvisiacich so správou dát, či už sa jedná o dáta science, dáta analýzu alebo napríklad business intelligence. Je nielen univerzálnym jazykom pre komunikáciu s databázami a získavanie dát z nich, ale ponúka aj veľké množstvo vstavaných funkcií, vďaka ktorým je používateľ veľmi rýchlo a jednoducho schopný robiť pomerne komplexné operácie. "Začať svoju cestu k práci s dátami jazykom SQL by som práve preto odporučil aj ľuďom, ktorí nemajú predchádzajúce skúsenosti s programovaním či "kódovaním". Človek sa tak naučia písať jednoduché aj zložité otázky, vytvárať databázové schémy, indexy či procedúry, a všeobecne pochopí, ako tok dát a ich čistenie / transformácie bežne prebieha." hovorí ďalej Marek Čech. Jazyk SQL je možné využiť naozaj v akomkoľvek odbore. Poznať ho teda znamená otvorené dvere do lokálnych podnikov i nadnárodných korporácií snáď vo všetkých odvetviach. A keď sa človek rozhodne svoje znalosti rozšíriť o ďalšie jazyky, bude sa mu znalosť SQL stále hodiť pri pátraniach na zdrojové dáta a často aj pre najrôznejšie dáta analytické operácie či poskytovanie dát "businessovým" používateľom - teda napr. Manažment firmy. Ďalšie data science jazykyV závislosti od toho, do akého odvetvia nakoniec pôjdeš, sa možno budeš musieť naučiť konkrétny jazyk pre dátovú vedu. V nasledujúcom zozname jazykov sa dozvieš viac o tom, na čo sa používajú. C/C ++: C aj C ++ vyžadujú silné znalosti základov programovania a učenie týchto jazykov môže trvať dlhšie. V kombinácii s Pythonom alebo R je možné C/C ++ použiť na rýchlejšie a efektívnejšie výpočty datasetov. JavaScript: JavaScript je super nástroj na vývoj interaktívnych data vizualizácií na webe s knižnicami ako D3.js. JavaScript tiež podporuje knižnice strojového učenia ako TensorFlow.js. MATLAB: Ideálny pre pokročilé numerické výpočty a na riešenie zložitých matematických a štatistických problémov. MATLAB sa v akademickom prostredí široko používa na vyučovanie matematiky, fyziky a inžinierstva. Julia: Novší programovací jazyk navrhnutý pre numerickú analýzu a výpočtovú vedeckú analýzu. Je to užitočné pre aplikácie vo fyzike, chémii, astronómii, strojárstve, bioinformatike a ďalších oblastiach. Scala: Výkonný jazyk, ktorý dokáže spracovať veľké množstvo údajov. Scala beží na Java Virutal Machine, čo znamená, že sa dobre integruje s programami napísanými v Jave. SAS: Vytvorený pre pokročilú analytiku, obchodnú inteligenciu a prediktívnu analýzu. SAS sa bežne používa v zdravotníctve, bankovníctve a poisťovníctve. Stata: Používa sa v ekonomickom výskume, verejnej politike a sociálnych vedách. Stata je navrhnutá pre čokoľvek od jednoduchej deskriptívnej analýzy po komplexné štatistické modelovanie. Ďalšie vzdelávanie v data sciencePokiaľ chceš byť v kontakte s ľuďmi z fachu, pozri si týchto zopár užitočných odkazov. Toto sú slovenské Facebook skupiny, ktoré sa zaoberajú dátovou vedou: • PyData Slovakia & Bratislava 👉 https://www.facebook.com/groups/1813599648877946/ • R Slovakia 👉 https://www.facebook.com/groups/931707906955080/ Pycon konferencia v Bratislave je organizovaná dobrovoľníkmi a dobrovoľníčkami z občianskeho združenia SPy o.z. zameraného na šírenie jazyka Python a ďalších open sourcových technológií a myšlienok. Pycon má špecializovaná časť, ktorá sa volá Edu Summit a je zameraná na vyučovanie programovania na základných a stredných školách. Viac info nájdeš na webe Pyconu. Pythonu sa venuje aj konferencia Python Day Bratislava. Je to československá konferencia, na ktorej si vypočuješ prednášky od popredných českých a slovenských odborníkov zo sveta Pythonu. Ročník 2021 bol organizovaný online. Machine Learning Prague je najväčšia európska konferencia o Machine Learningu, AI a Deep Learningu. Ročník 2022 bude v marci, viac info na stránke konferencie. 
Krátky úvod do SQL
Vzdelávanie
25.06.2021
Skillmea

Krátky úvod do SQL

Úvod do databázyNa internete, v mobilných aplikáciách vo webových aplikáciách potrebujeme dáta – informácie. Tieto informácie musia byť niekde uložené. My si budeme rozprávať o SQL databázach. Sú to systémy, ktoré majú v sebe uložené dáta vo forme tabuliek. Z týchto tabuliek následne tieto dáta čítame a zobrazujeme používateľom.  Pozrime sa na príklad. Majme databázu – informácie o škole. V tejto databáze máme informácie o triedach, učiteľoch alebo aj o žiakoch.  Začnime s triedami. Aké máme informácie o triede? Trieda má názov, kapacitu, číslo miestnosti, označenie či je interaktívna a podobne. Tieto označenia by boli názvy stĺpcov v tabuľke. Riadky v tabuľke sú následne reálne dáta.  Názov tabuľky: Class[Image] V databáze budeme mať viacero tabuliek, podľa požiadaviek. Môžeme mať všetko v jednej tabuľke, ale ako to potom rozdelíme? Nad takýmto uvažovaním treba myslieť dopredu. Analýza a návrh tabuliek ide ruka v ruke s praxou. Neboj sa toho, teraz je potrebné hlavne, aby si získal prax a to ide ruka v ruke s chybami.   Úvod do SQLV počítačovom svete máme viacero typov databáz. My si niečo povieme o SQL teda o Structured Query Language. V preklade niečo ako štruktúrovaný dopytový jazyk. Query teda dopyt je príkaz – žiadosť – dopyt na databázu. Žiadame o vrátenie dát, o úpravu dát, vloženie alebo o zmazanie dát.  Databáza je samostatný systém, ktorý môže byť na tvojom počítači alebo na vzdialenom počítači. Na túto databázu potom pošleme dopyt. Dopyt pošleme formou SQL príkazov, ktoré majú určitú štruktúru.  SQL syntaxSQL nie je case sensitive, teda sa nerozlišujú veľké a malé písmená. Napriek tomu sa príkazy píšu najmä veľkými písmenami. Príkazy vieme písať aj na viacero riadkov, ale musia byť ukončené bodkočiarkou. SELECT * FROM Class; Alebo:  SELECT * FROM Class;Samozrejme zmysel to dáva len ak je komplikovanejší príkaz.  Názvy stĺpcov a tabuliek píšeme malými písmenami. Ak je názov zložený z viacerých slov, tak slová oddelíme znakom _ podtržník. Je to odporúčaný spôsob pre lepšiu čitateľnosť. Názvy môžu obsahovať aj čísla. Pri vymýšľaní názvov sa pokús vyhnúť množným číslam. Názvy majú byť krátke a výstižné.  Názvy nesmú byť totožné s kľúčovými slovami, ako je napríklad slovo SELECT / select. DatabázaVytváranie databázyDatabázu vieme vytvoriť aj pomocou príkazu ak sa napojíme na inštaláciu databázového systému, napríklad MySQL.  Príkaz by vyzeral nasledovne:  CREATE DATABASE Class;  Alebo ju vytvoríme po pripojení sa na databázový systém z databázovej aplikácie. Tých je viacero. MySQL workbench, DBiever alebo SQuirrel. Aj programovacie vývojové prostredia sa vedia pripojiť na databázu ako napríklad IntelliJ IDEA Ultimate edition. Všetky poskytujú prostredie na správu a prezeranie databáz.  Databázu vieme aj zmazať: DROP DATABASE Class; Premenovať: RENAME DATABASE Class TO new_class_name;  Vytváranie tabuliekTeraz, keď sme vytvorili databázu, tak si môžeme vytvoriť tabuľky. Znovu vieme použiť prostredie na správu databáz, ale my si ukážeme postup pomocou príkazu. Pozrime sa na príklad: CREATE TABLE Class ( id int, name varchar(255), capacity int, room_number int, interactive boolean );Čo sme napísali? Na začiatok máme príkaz CREATE TABLE Class, kde vravím, že chcem vytvoriť tabuľku s menom Class. Následne medzi zátvorky napíšeme zoznam stĺpcov – tučným písmom naznačené (id, name ...). Vedľa názvov stĺpcov máme špecifické príkazy pre dané databázové systémy. Jedno je však spoločné – za názvom stĺpcu nasleduje typ údaju – musíme zašpecifikovať, či je to číslo, či je to text, či je to boolean a podobne.  Špecifikovanie dátových typov sa môže líšiť podľa toho, akú databázu používame. Základné typy sú podobné a niektoré rovnaké.  Napríklad text zašpecifikujem ako varchar – v zátvorke je dĺžka počtu znakov, teraz som povedal, že názov môže mať dĺžku len 255 znakov. Páčil sa vám článok? V nasledujúcom článku sa pozrieme na ďalšie SQL príkazy.
Izometrický dizajn: 3D objekty zobrazené v 2D priestore
Vzdelávanie
10.06.2021
Ľudovít Nastišin

Izometrický dizajn: 3D objekty zobrazené v 2D priestore

Vo svojej podstate predstavuje izometrický dizajn spôsob, akým zobrazujeme trojrozmerné objekty v dvojrozmernom priestore. Izometria však nie je to isté ako perspektíva, ktorá je zvyčajne úzko spojená s realistickým umením. Hlavným dôvodom je to, že nemá žiadny „miznúci bod“ (vanishing point). Práve to umožňuje izometrickým tvarom zachovať si kompozíciu bez ohľadu na to, kde človek stojí alebo sedí pri pozorovaní izometrického dizajnu. Možno si si všimol izometrické reklamy, v digitále alebo infografikách, či vo svojich obľúbených videohrách a ilustráciách. Izometrické umenie dáva dizajnérom nečakane široké spektrum možností. A pretože je založené na tvaroch, izometrické kresby sa vytvárajú prekvapivo jednoduchým procesom. Je to tiež veľká sranda! Väčšinou...  Ako vytvárať izometrické dizajny Dizajn je izometrický iba vtedy, ak kopíruje izometrickú mriežku. Tú tvoria vertikálne čiary, ktoré zostávajú pri postupe zvislé a všetky vodorovné čiary sú sklonené o 30 stupňov. Toto sa tiež nazýva pravidlom 120 stupňov. To hovorí, že uhol medzi osami X, Y a Z musí byť spolu 120 stupňov.  • Dizajn sa musí sa riadiť izometrickou mriežkou  • Dizajn nemôže obsahovať zbiehajúce sa čiary  • Zvislé čiary zostávajú zvislé, zatiaľ čo vodorovné čiary majú 30 stupňový sklon  • Os X, Y a Z spolu tvoria spolu až 120 stupňov[Image] Kedy použiť izometrický dizajn Izometrická projekcia je pre dizajnérov veľmi užitočná - najmä architektov, priemyselných a interiérových dizajnérov, pretože je ideálna na vizualizáciu miestností, produktov či infraštruktúry. Je skvelým spôsobom, ako rýchlo otestovať rôzne dizajnérske nápady.  Existuje množstvo ďalších situácií, v ktorých je izometrická projekcia užitočná. V systémoch orientácie napríklad v múzeách alebo galériách môžu izometrické nástenné mapy ukázať návštevníkom, kde sa v budove nachádzajú, čo sa deje inde a ako sa tam dostať.  Niektoré z najlepších infografík používajú izometrickú projekciu, ktorá im umožňuje zobraziť viac informácií, ako by bolo možné na 2D výkrese. A dokonca aj logá používajú tento prístup na vytvorenie efektu priestorového efektu.[Image] Isometric case study: Monument Valley Keďže pohľad v tejto hre má jediný bod, ktorý sa nikdy nepohybuje, objavili sa tu zaujímavé problémy týkajúce sa manipulácie perspektívy. Aj keď sa zdá, že chodník alebo most vedie na prvý pohľad do slepej uličky, rýchle otáčanie mapy ukazuje cestu vedúcu na nové miesto. Vďaka tomu je v hre veľa hlavolamov, ktoré sa zdajú buď nemožné alebo príliš jednoznačné. No ani jedno nie je pravda. Je to len komplikovanejšie, ako sa na prvý pohľad zdá.  A aby tento efekt mohli dosiahnuť, všetko sa muselo presne zoradiť v rôznych uhloch. Preto sa vývojári rozhodli položiť hru do 30-stupňovej izometrickej mriežky. To znamená, že každý uhol, ktorý vidíte, je buď 30 stupňov, 120 stupňov alebo úplne zvislý, čo sme si už vysvetlili vyššie. Izometrický dizajn je skvelá technika na oživenie 2D flat dizajnu. Prirodzenou výhodou je, že grafiku pomocou izometrickej projekcie vnímame jasnejšie a veľmi dobre sa v nej vieme orientovať. Izometrické vzory vytvárajú realitu, v ktorej môžeme vnímať veci také, aké sú. Divné, ale funkčné. A práve to z nej robí vynikajúci doplnok k alternatívam dizajnu, ktoré už máš vo svojom portfóliu.
Podmienené formátovanie v Exceli
Vzdelávanie
14.05.2021
Skillmea

Podmienené formátovanie v Exceli

V tomto článku ti popíšeme, ako využívať podmienené formátovanie v Exceli. Podmienené formátovanie je dobré využívať vtedy, keď potrebuješ zmeniť formát vybraných buniek, pokiaľ sú splnené isté kritériá (podmienky). Formátovať je možné viacero atribútov, môže to byť farba, percentá, dátumy a podobne. Čo je to podmienené formátovanie?Podmienené formátovanie (alebo conditional formatting) je Excel nástroj, pomocou ktorého môžeš nastaviť automatické formátovanie buniek. Podmienené formátovanie slúži na vyznačenie údajov, ktoré spĺňajú nejakú tebou zadanú podmienku. Uvediem jeden príklad: máš databázu produktov (môže ich byť 100, 1000 alebo 10000) a chceš v tejto databáze vyznačiť zelenou farbou len produkty, ktorých cena je nižšia ako 50 Eur. Teraz prichádza na pomoc podmienené formátovanie. Keď si to rozbijeme na drobné, najskôr: 1. Formát: vyznač zelenou farbou. 2. Podmienka: cena nižšia ako 50. Príklad podmieneného formátovania cez "ROVNÁ SA"Mám Excel tabuľku s údajmi o zamestnancoch a oddelení, v ktorom pracujú. Tabuľku si môžeš stiahnuť odtiaľto, prípadne si použi akýkoľvek vlastný Excel súbor. V mojom súbori chcem formátom farebne odlíšiť všetkých zamestnancov, ktorí pracujú v oddelení HR.[Image] Ako budem postupovať?Najskôr si označím všetky bunky, ktoré plánujem formátovať. Môžem to urobiť potiahnutím myškou, alebo v prípade väčšieho počtu údajov použi klávesovú skratku CTRL+SHIFT+⬇ (pre MacOS používateľov je to CMD+SHIFT+⬇). Následne na záložke DOMOV (HOME) tvojho Excelu vyhľadaj Podmienené formátovanie (Conditional Formatting) a následne Pravidlá zvýrazňovania buniek (Highlight Cells Rules) a potom nástroj Rovná sa (Equal to), vid obrázok nižšie.[Image] Teraz vpíšeš hodnotu HR do políčka, ktoré som vyznačil farebne na obrázku nižšie a použiješ buď niektorý z prednastavených formátov, alebo si vytvoríš vlastný. Po odkliknutí sa ti farebne odlíšia všetky polia obsahujúce HR. “Je dobré spomenúť, že Excel nerozlišuje veľké a malé písmená, takže keby do daného filtra vpíšeš aj "hR", "hr" alebo "Hr", tak Excel bude vedieť, čo od neho chceš. Pokiaľ by si však už použil diakritiku, s tým si Excel neporadí.[Image]” Výsledok nášho podmieneného formátovania bude teda vyzerať nasledovne:[Image] Zrušenie podmieneného formátovaniaNa zrušenie podmieneného formátovania môžeš použiť dva spôsoby. Prvým z nich je vymazanie podmieneného formátovania len pre tebou označené bunky alebo zmažeš podmienené formátovanie z celého Excel hárku. Obidva spôsoby spravíš opäť cez záložku Podmienené formátovanie a Vymazať pravidlá. Následne už len zvolíš, či chceš zmazať pravidlo z označených buniek alebo z celého Hárku.[Image] Podmienené formátovanie môžeš využiť aj pri práci s kontingenčnými tabuľkami, s grafmi a pod. Práca s Excelom je vďaka podmienenému formátovaniu rýchlejšia a kvalitnejšia. Možností na prácu a filtrovanie vďaka podmienenému formátovaniu je mnoho, stačí sa s touto možnosťou len pohrať. Vyskúšaj to sám aj pre ďalšie možnosti podmieneného formátovania - Väčší a menší ako; Medzi; Text obsahujúci; Vyskytujúci sa dátum a pod.
Agilný vývoj - úvod do problematiky
Vzdelávanie
10.05.2021
Skillmea

Agilný vývoj - úvod do problematiky

Čo je agilný vývoj? „Agilné metodiky pre riadenie vývoja software sú také metodiky, ktoré využívajú agilný prístup, teda pružne reagujú na zmenu, priebežne rozvrhujú prácu v priebehu vývoja a overujú výstupy s užívateľmi. Agilné metodiky obsahujú základné princípy, ktorými by sa mal úspešný projekt vývoja software riadiť. Proces vývoja je vďaka agilnému prístupu postavený na tímovej spolupráci, otvorenej komunikácii tímu, zapojenie zákazníka a celkovej flexibilite a otvorenosti zmenám. Využitie agilných metodík pre vývoj softvéru v praxi: Agilný prístup k vývoju sa uplatňuje predovšetkým u zložitého, komplexného alebo inovačného softvéru, u ktorého je veľmi ťažké spísať detailné požiadavky na začiatku projektu. Tie sa postupne upresňujú alebo tvorí priebežne na základe skúseností s prototypmi z jednotlivých iterácií vývoja na základe spätnej väzby od užívateľov. Agilné metodiky sú zamerané na efektívnosť práce, kvality výsledkov a spokojnosť užívateľov. Nesnaží sa potláčať zmeny oproti pôvodnému plánu, ale naopak je pre ne charakteristické upresňovanie a prispôsobovanie výsledného softvéru.“ (zdroj: managementmania.com) Následne keď vieme, že budeme používať agilný vývoj, potrebujeme nejaký tool – nástroj kde budeme riadiť úlohy. Jedným z najznámejších nájstrojov je Jira. Agilné prístupy a metodikyAgilných prístupov a metodík je veľa. Záleží, čo v projekte potrebujete. Najznámejšia metodika je Srum. V Jire si vieme zvoliť najmä medzi Scrum a Kanban. Čo vybrať? Záleží od projektu. Vo firme budeš pravdepodobne používať Srum. Aký je rozdiel? Kanban je o hlavne o vizualizácií práce. Kanban používa kolonky, ktoré predstavujú rôzne štádiá vývoja. Zoberiem si úlohu – je pridelená. Daný človek na nej začne robiť – je v kolonke in progress (pracuje sa na nej). Potom je úloha posunutá na test, alebo dokončená. Kolonky si môžete prispôsobiť. Tu si o tom vieš prečítať obšírnejšie. Scrum tímy pracujú v stanovených intervaloch nazývaných šprinty. Šprint je približne týždeň alebo dva. Počas šprintu pracujú ľudia na úlohách, ktoré im boli pridelené na začiatku šprintu na takzvanom plánovaní šprintu. Srum vedie jedna osoba a tou je takzvaný Srum master. Počas Srum vedenia týmu sa ciele projektu upravujú – zbierajú sa informácie od klientov, od používateľov a potom sa aplikujú zmeny. Tu si o tom vieš prečítať obšírne. JiraJira je zdarma pre jednoduchý projekt a tým. Na tejto stránke si vieš založiť svoju Jiru. Jira je tool na manažment úloh a tieto úlohy musia byť priradené do projektov. Teda ako prvý krok je vytvorenie projektu. Si prihlásený v Jire a v pravom hornom rohu budeš mať tlačidlo na vytvorenie projektu. [Image] Vytvoríš si projekt:[Image] Ako Template je vybratý Kanban. Toto vieme zmeniť po stlačení Change template. Čo zvolíš je na tebe. Poďem si ukázať Scrum. Vyberiem Scrum a vytvorím projekt.  Momentálne nemáme žiaden sprint. Musíme ho vytvoriť, aby sme začali vývoj. Ideme do Backlogu, čo je miesto kde máme vytvorené úlohy.[Image] Bez úloh nebude šprint. Vytvor si úlohy. Máš na výber viacero miest kde vytvoriť úlohy, ale princíp je stále ten istý – mať úlohy, na ktorých sa môže pracovať. [Image] Keď máme vytvorené úlohy, tak vieme spustiť šprint.[Image][Image]  Vytvoril si šprint. Teraz je prázdny. S týmom sa dohodnete, čo sa má spraviť a dané úlohy sa pretiahnu z backlogu do šprintu.  Dohodli sme sa, že spravíme dve úlohy a jednu ponecháme v backlogu. Následne spustíme šprint.[Image] Pri spustení určíme ako dlho má šprint prebiehať. Teraz je šprint aktívny a vieme si pozrieť nástenku šprintu. V tejto nástenke vidíme, v akom sú úlohy štádiu. [Image]  Samozrejme nesmieš zabudnúť danú úlohu niekomu prideliť. Otvoríš si úlohu a assigneš (pridelíš) ju niekomu.[Image] Daný používateľ si vie vypísať len jeho úlohy v danom šprinte.[Image] Autorom článku je Jaroslav Beňo.
O zlatom reze a jeho aplikáciách v dizajne
Vzdelávanie
11.04.2021
Ľudovít Nastišin

O zlatom reze a jeho aplikáciách v dizajne

V dizajne ako takom je veľmi dôležité, aby bol výsledok práce jasný a každý mu chápal. Či už je to vo forme zalomenia textu, orezania fotografie alebo navrhnutia loga. Za týmto účelom sa okrem iných pomôcok často využíva aj aplikácia zlatého rezu, o ktorom si teraz niečo povieme.  Z angl. „Golden ratio“  hovoríme o konkrétnom matematickom pomere, ktorý sa veľmi často vyskytuje aj v prírode a dizajnové odvetvie sa nim inšpiruje. Zlatý rez nám pomáha dosiahnuť čo najprirodzenejšie pôsobiace proporcie, tvary či štruktúry. “Zlatý rez vznikol už v starovekom Grécku” Ide o veľmi špeciálne číslo – 1,618. Vychádza zo známej Fibonacciho postupnosti a jeho aplikáciu môžeme nájsť aj v prírode, napríklad v tvare morskej mušle či vo formácii oblakov pri hurikánoch. Táto postupnosť  je tvorená vždy sumou dvoch predchádzajúcich čísel (0-1-1-2-3-5-8-13-21-...). A práve z tejto sekvencie odvodili už v starovekom Grécku zlatý rez (golden ratio), aby vedeli lepšie vyjadriť rozdiely medzi číslami sekvencie. Ako používať zlatý rez v dizajne  Aplikácie zlatého rezu do dizajnérskej profesie vôbec nie je tak náročná, ako by sa mohlo na prvý pohľad zdať. Jeho využitím môžeme vytvárať napríklad proporcionálne layouty na web. Ak chceme navrhnúť web, ktorý má vedľa priestoru pre hlavný obsah aj sidebar, tak práve s využitím zlatého rezu vieme stanoviť ich presnú šírku.  Ak by sa jednalo povedzme o priestor so šírkou 960px, tak priestor pre hlavný obsah by mal mať šírku 593px (960px / 1,618) a sidebar šírku 367px (593px / 1,618). Samozrejme, že v praxi do toho vstupuje viacero ďalších faktorov (napr. padding), no logiku tohto pomeru to deklaruje vynikajúco.[Image]A keďže toto číslo vychádza zo sekvencie nekonečného množstva čísel, tak jeho opakovaným aplikovaním získame rôzne veľkosti (dĺžky, šírky,...), s ktorými môžeme v dizajne pracovať a vyskladať z nich funkčné a intuitívne UI.   Ako sme si už hovorili, zlatý rez sa dá aplikovať v podstate na všetky oblasti dizajnu či kreatívy. Ukážeme si k tomu niekoľko príkladov. Orezávanie obrázkov  Ak ide iba o orez prázdneho priestoru na kraji fotografie, vec je jednoznačná. Ale ak treba orezať aj samotný obsah fotografie či obrázku, situácia sa mení. Výsledok musí ostať vyvážený a tie najdôležitejšie veci na obrázku by mali mať svoje miesto. Práve s tým nám vie pomôcť zlatý rez.[(Zdroj: industrydev.com)] Typografia a hierarchia  Vieme si tiež pomôcť pri výbere správnej kombinácie veľkosti použitých fontov. Takto bude mať názov, podnázov a samotný text tú správnu veľkosť a hierarchia medzi nimi bude okamžite jasná.[(Zdroj: Invisionapp)] UI Webdizajn  Rozloženie jednotlivých elementov a plôch na webe rozhoduje o tom, ako intuitívne sa bude návštevník webu cítiť. A rovnako aj, či sa mu to bude páčiť. Ako sme už skôr písali v článku, napríklad šírka jednotlivých stĺpcov je vďaka zlatému rezu jasne stanovená.[(Zdroj: Apiumhub)] LogoA posledným príkladom je využívanie zlatého rezu pri tvorbe loga. Tu to možno na prvý pohľad nie je až tak očividné. No verte, že zlatý rez sa tu aplikuje veľmi často a aj tie najznámejšie logá boli vytvorené práve s jeho pomocou.[(Zdroj: Twitter, NatGeo)]Niekedy ho v logu nájdete jednoducho (National Geographic logo), inokedy je to trošku skryté (Twitter logo). Práve v tom druhom prípade bolo logo vytvárané za pomoci série kružníc s jasne danými veľkosťami. Tie pomáhali vytvárať všetky krivky a záhyby loga, až kým z neho nevzniklo ikonické logo, ktoré pôsobí prirodzene a pekne. A nie je to náhoda. Zlatý rez je nie je technika, je to skôr myšlienkový proces. Vedieť ho aplikovať efektívne chce svoj čas. Určite sa však oplatí pohrať sa s ním a skúšať podľa neho vytvárať nejaké layouty či orezávať dôležité fotografie. Šikovnú pomôcku v podobe špirály zlatého rezu nájdeš tu.
Ako sa stať front end developerom. Plán pre budúceho JavaScript programátora
Vzdelávanie
26.03.2021
Skillmea

Ako sa stať front end developerom. Plán pre budúceho JavaScript programátora

Ľudia sa nás často pýtajú, ako sa stať frontend developerom, aké technológie by mali ovládať, čo všetko vedieť, kde začať a aká je správna postupnosť jednotlivých online kurzov. Na základe našich skúseností, rád od lektorov ako Yablko a ďalších, sme v tomto článku dali dokopy študijnú cestu budúceho frontend developera. Kurzy cez úrad práce alebo špecializované IT online kurzy môžu byť vynikajúcim odrazovým mostíkom. Frontend developer vs backend developer vs fullstack developerFrontend developer je človek, ktorý je zodpovedný za časti webovej aplikácie alebo webstránky, ktoré používatelia vidia a interagujú s nimi. Backend developer rieši všetko na pozadí – infraštruktúru, dátový model, databázy. Potom je tu fullstack developer, ktorý zvláda frontend aj backend a pokrýva celý proces návrhu webovej aplikácie. Na lepšiu predstavu sa môžeme pozrieť na programátorské meme.[Programátorské meme] Dnes sa hranica medzi frontendom a backendom stále viac stiera, čo znamená, že veľa úloh spadajúcich do backendu môže preberať front end developer. Preto je dôležité vedieť nielen základy, ale mať širší pohľad na technológie a funkcie. Úlohy frontend developeraFrontend developer sa venuje najmä týmto oblastiam: • rozhoduje o dizajne a štruktúre webstránok, • vyvíja funkcie na dosiahnutie vynikajúcej používateľskej skúsenosti, • dbá na responzivitu webstránky, • optimalizuje web pre rýchle načítanie a škálovateľnosť, • volí kombinácie technológií pre dosiahnutie najlepšieho výsledku. Zručnosti front-end developeraDobrý front end developer musí mať komplexné znalosti v oblasti vývoja webu. Mal by ovládať technológie ako HTML, CSS, JavaScript a ďalšie nástroje (čítaj ďalej v článku). Grafické zručnosti, ako práca s Photoshopom, Sketchom alebo Illustratorom, sú veľkým plusom. Základné znalosti SEO sú užitočné pri optimalizácii webstránok, a tiež dobré komunikačné schopnosti, pretože vývojári často spolupracujú s grafikmi, backend developermi, projektovými manažérmi či klientmi. Ak sa chceš naučiť viac o jednotlivých technológiách, web developer kurz je skvelou príležitosťou, ako naštartovať kariéru. Mzda frontend developeraPodľa portálu platy.sk na Slovensku zarába JavaScript programátor (prečo je táto pozícia vyhľadávaná, sa dozvieš nižšie) od 1.300 Eur do 2.900 Eur v závislosti od skúseností a praxe. Dobrí JavaScript programátori sú na trhu stále žiadaní, čo znamená, že ak sa rozhodneš stať frontend developerom, práca ťa určite neminie.[Mzda Front-end developera.] JavaScript je nesmierne populárny. Podľa rebríčka RedMonk je JavaScript na GitHube a Stack Overflow technológia číslo jedna. Ak na Profesii vyhľadáš pozície pre JavaScript alebo frontend programátorov, nájdeš stovky možností. A ak na LinkedIn uvedieš, že zvládaš JavaScript spolu s niektorým JavaScript frameworkom, môžeš očakávať správy od IT recruiterov. Tak sa pusť do toho a zisti ako sa stať programátorom s pomocou našich rád a kurzov cez úrad práce alebo iných IT kurzov. Ako sa stať frontend developerom?Nenechaj sa odradiť a choď za svojim cieľom. V texte nižšie sme vypichli podľa nás tie najdôležitejšie technológie, ktoré by si ako dobrý frontenďák mal ovládať. Poďme na to. “TL;DR: HTML, CSS a JavaScript sú chrbtovou kosťou frontend developmentu. Frontend development kombinuje práve tieto tri technológie a k tomu JavaScriptové frameworky (alebo knižnice).” Krok číslo 1: HTML a CSSToto je úplne prvá téma, ktorej by si sa mal venovať, pokiaľ máš v pláne byť frontend developerom. Je to alfa a omega celého frontend developmentu. HTML a CSS používajú všetky weby, všetky webové aplikácie. HTML a CSS ťa zadarmo naučí kurz Webrebel 1: HTML, CSS a JavaScript. Všetky videá o HTML a CSS sú k dispozícii zadarmo, stačí sa prihlásiť do kurzu. V tomto kurze sa naučíš aj dôležité veci o tom, ako vôbec internet funguje, ako fungujú prehliadače, čo je HTTP a HTTPS, DNS, JSON, XML a kopec ďalších skratiek, ktorým teraz možno nerozumieš, ale v procese tvorby webstránok sú to dôležité znalosti. A keď budeš pri CSS, venuj mu poriadne veľa času. Môže sa zdať, že je ľahké pracovať s CSS, ale na jeho zvládnutie je potrebného veľa času. Skús sa opýtať backend developera, prečo nie je frontendistom? Šanca, že ti odpovie, "Lebo neznášam CSS" je dosť vysoká. Sledovať videá nestačí a preto si určite počas ich sledovania rob domáce úlohy, ktoré v kurze sú. Urob si svoje vlastné portfólio, ponúkni sa svojim známym, že im spravíš webstránku, rob maličké projektíky len tak pre svoje potešenie a takto sa budeš zdokonaľovať a chytíš písanie kódu za pačesy.Ukážka HTML, CSS, JavaScript |Zdroj: https://moz.com/blog/javascript-seo [Ukážka HTML, CSS, JavaScript |Zdroj: https://moz.com/blog/javascript-seo] Krok číslo 2: píš lepšie CSSLepšie CSS sa naučíš písať napríklad vďaka preprocesorom. Známymi preprocesormi sú Sass, Less alebo Stylus. Preprocesor je program, ktorý spracuje kód v jednom formáte (napr. Sass) a zmení ho na kód v druhom formáte (CSS). Vďaka Sass vieš písať menej kódu a bude prehľadnejší.  Keď budeš robiť na webových projektoch, je dobré ovládať aj nejaký ten CSS framework. Najväčšími frajermi na tomto poli sú pravdepodobne Bootstrap a Foundation. Bootstrap je iniciatíva Twitteru a zaslúži si veľkú pochvalu za zavedenie responzívneho dizajnu vo veľkom meradle. Bol to prvý framework, ktorý podporoval filozofiu 'mobile-first'. Pomocou Bootstrapu vieš relatívne rýchlo vytvárať responzívne weby.  Ak je pre teba Bootstrap zbytočne obmedzujúci v tom, ako tvoj dizajn bude vyzerať, vyskúšaj CSS framework Tailwind 2. Je pre ľudí, ktorí chcú mať flexibilitu a tvoriť vlastný dizajn. Tailwind je intuitívny a moderný CSS framework, ktorý sa dá rýchlo naučiť. Krok číslo 3: trošku prikúrime - JavaScriptJavaScript bude pre teba ako frontend developera bezpochyby najdôležitejšou zručnosťou. Ako sa naučiť JavaScript? Logická odpoveď: začni základmi. Nebuď povrchný, ale ani v úvode nechoď do úplných detailov. Learning by doing je naše odporúčanie, keď sa učíš JavaScript: 1. Nauč sa základy JavaScriptu, 2. Nauč sa React, Vue alebo Angular, 3. Pochopíš, že nemáš dobré základy JavaScriptu, 4. Vráť sa k bodu 1. a nauč sa poriadne JavaScript. JavaScript je už niekoľko rokov po sebe najpopulárnejším programovacím jazykom, pozície vyžadujúce JavaScript pribúdajú ako huby po daždi. Keď budeš vedieť JavaScript, o robotu máš postarané. Yablko pripravil parádny kurz o modernom JavaScipte. Tento kurz ťa naučí písať moderný JavaScript, budeš vedieť jeho syntax (ES6 a ES7), aby si nepísal spaghetti code a pravidlá jazyka. Okrem toho, zvládneš nástroje ako package managers (správa závislostí) npm a yarn, skrotíš DOM, budeš vedieť používať nástroje ako Webpack a tak ďalej. V kurze je takmer 23 hodín materiálu o modernom JavaScripte, bude to fuška, ale výsledok bude stáť za to. Krok číslo 4: vyber si svoj osud - Vue, React, AngularKeď si zvládol predchádzajúce tri kroky, si pripravný naučiť sa pracovať s mocnými nástrojmi v podobe JavaScript frameworkov alebo knižníc. Aktuálne v roku 2021 sú najviac v kurze Angular, React a Vue. Nemusíš vedieť všetky, radšej jeden a poriadne. Každá z týchto technológií má svoje pre a proti a sú určené na komplexný vývoj frontendových webových aplikácií. Tieto frameworky sú si podobné a pokiaľ sa naučíš jeden, prejsť na iný framework nie je až také náročné. Poďme si teraz veľmi stručne predstaviť spomínané tri frameworky. Angular je vývíjaný spoločnosťou Google, prvýkrát bol vydaný v roku 2010 a je postavený na TypeScripte. Otcom Angularu je Slovák Miško Hevery. V roku 2016 bol predstavený výrazný update tohto frameworku - Angular 2, v rámci ktorého došlo aj k vypusteniu "JS" z názvu. Okrem Googlu samotného používajú Angular weby ako PayPal, Upwork, Microsoft a ďalšie. React je vyvíjaný ďalším gigatnom - Facebookom, ktorý ho okrem iného používa v aplikáciách Instagram či WhatsApp, na Reacte fičia aj weby Netflixu či Uber. Prvý release bol v roku 2013 a ide o JS knižnicu pre vytváranie používateľských rozhraní (UI).  Vue je najmladším JS frameworkom v tomto výbere. Vue za sebou síce nemá žiadnu veľkú firmu, ale tiež je používaný veľkými firmami, napr. Alibaba, Behance alebo GitLab. S príchodom Vue 3 v septembri 2020 prešlo Vue na TypeScript.JavaScript frameworks Angular, React, Vue. [JavaScript frameworks Angular, React, Vue]BONUSGitGit sa používa vo väčšine vývojárskych firiem, čím skôr sa naučíš s Gitom pracovať, tým lepšie pre teba. Git je verziovací systém, vďaka ktorému sa môžeš kedykoľvek vrátiť k pôvodnej verzii svojho kódu, zdieľaš kód s kolegami spolupracovníkmi, pracuješ v tíme. Git ovládaš cez príkazový riadok alebo si nainštaluješ nejaké GUI pre Git. Git ti vlastne ukladá celú históriu tvojho projektu do repozitára. Svoje repozitáre ukladáš na akomsi hostingu - čo môže byť GitHub, GitLab či Bitbucket. TestovanieAk chceš byť úplný kráľ, svoj kód určite aj testuj. Vyhneš sa tak mnohým problémom pri vývoji. Pri JavaScripte sú najpoužívanejšie knižnice pre testovanie Jest, Mocha, Chai. ZáverNezabúdaj, nemusíš dokonale ovládať všetko z vyššie uvedeného. V tomto článku sme sa snažili priniesť ti prierez technológií, ktoré by si mal ovládať, pokiaľ sa chceš stať frontend programátorom. Mohlo by sa zdať, že ich je priveľa a bojíš sa, že to nezvládneš. Pre dodanie sebadôvery si prečítaj tieto príbehy absolventov našich kurzov, ktorí sa rozhodli zmeniť kariéru. Alebo si pozri zopár rozhovorov s absolventami na našom YouTube. Nikdy nie je neskoro začať s programovaním. Keď sa rozhodneš pre vzdelávanie formou online kurzov, najdôležitejšie je vydržať. Držíme ti palce. Kódovaniu zdar!
Kotlin Raw String
Vzdelávanie
19.02.2021
Skillmea

Kotlin Raw String

String je základný dátový typ v programovacích jazykoch. Slúži na uchovanie textu. Ak chceme napísať String tak text vložíme medzi dvojité úvodzovky.  val cesta = "cesta";Vo väčšine prípadov je to dostačujúce. Čo ak do textu chceme nastaviť cestu na súbor ako text. C:\work\tools\__test Musíme ho vložiť do premennej typu String a všetky lomítka zdvojiť - escapnúť.  val cesta = "C:\\work\\tools\\__test";Kotlin má aj pomôcku a tou je Raw String. Na napísanie textu použijem trikrát dvojité úvodzovky na začiatku aj na konci. val cestaRaw = """C:\work\tools\__test"""Raw String nám umožňuje zapísať String na viac riadkov bez nutnosti spájania pomocou +.  Mám text, ktorý chcem napísať na viac riadkov. Čo musím spraviť ak to chcem v jednom Stringu? Všetky časti spojím pomocou + a pridám špeciálnu značku pre nový riadok \n. val text = "1 639,33\n" + "6 540,03\n" + "8179,36\n" + "+2500,04"Pri Raw Stringu len stlačím enter pre nový riadok a pokračujem v písaní. val textRaw = """1 639,33 6 540,03 8179,36 +2500,04"""Tento spôsob ale nie je pekne čitateľný – všetok text mám zasadený na ľavú stranu, lebo nechceme aby sme tam dali napr. taublátor – v pôvodnom textne nebol.  Čo môžeme spraviť je pridať nejaké špeciálnu značku na začiatok riadku, ktorý chcem odsadiť a potom poviem, že všetko na ľavo od značky spolu so značkou považujem len za odsadenie textu. Pridajme značku (hocijakú): val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04"""Teraz povieme, že # je špeciálna značka pre odsadenie. val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04""".trimMargin("#") A môžeme odsadiť pre lepšiu čitateľnosť: val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04""".trimMargin("#")Alebo použijeme default znak oddeľovača, čo je pipe |. val textRaw = """1 639,33 |6 540,03 |8179,36 |+2500,04""".trimMargin()Teraz sa tieto dva Stringy budú rovnať. println("${text == textRaw}") //truePoužitie v reálnej aplikácii Určite by si rád videl príklad z reálnej aplikácie. Jedným z takýchto príkladov by bolo použitie pri písaní Android aplikácie. Presnejšie napríklad pri písaní príkazov pre dopyt na databázu v Room frameworku, ktorý sa používa na zjednodušený prístup k databázam. V Room píšeme takzvané Dao triedy na prístup k databáze. Vezmime si jeden príklad kde chcem napsíať SQL príkaz na vybratie filmov z databázy. @Query("SELECT id, movie_name, genres, directors year FROM MOVIES") suspend fun getAllMovies(): List<MovieShort>Príkaz by si rád napísal na viacero riadkov aby bol lepšie čitateľný. @Query("SELECT id, movie_name, genres, directors year " + "FROM MOVIES") suspend fun getAllMoviesInShortForm(): List<MovieShort>Alebo použiješ Raw String. @Query(""" SELECT id, movie_name, genres, directors year FROM MOVIES """)Určite si vieš predstaviť ako sa ti zlepší čitateľnosť, ak budeš mať zložitejšie select príkazy v kombinácii napríklad s join.
Ako na vlastný Virtuálny privátny server - časť 1.
Vzdelávanie
21.01.2021
Lubo Herkoo

Ako na vlastný Virtuálny privátny server - časť 1.

Každý týždeň jeden blog. Také som si dal predsavzatie do nového roka. Hneď prvý týždeň sa to nepodarilo, ale čo už 🤦🏻‍♂️ . V tomto texte (alebo seriáli?) budeme riešiť tvoj vlastný Virtuálny privátny server (VPS). Konkrétne: • zistíme čo to VPS vlastne je a aké sú výhody a prípadné nevýhody, • skúsime analyzovať naše potreby a vybrať vhodné parametre nášho servera, • VPS kúpime, nastavíme, zabezpečíme a pripravíme pre našu aplikáciu, • z GitHub repozitára nasadíme našu aplikáciu do produkcie pomocou GithubActions (CI), • kúpime doménu a nasadíme SSL certifikát pomocou letsencrypt. Je to veľa práce, pome na to.[Image] Načo mi je vlastný server?Hneď na začiatku si to vyjasnime: VPS je pre väčšinu projektov zbytočný. Pri dnešných možnostiach, ako svoju aplikáciu vieme nasadiť do produkcie a sprístupniť ju používateľom na pár klikov je často zbytočné riešiť komplikované nastavovanie vlastného servera. Hlavne údržba a riešenie prípadných problémov nám môže pripomenúť, ako zle sme sa rozhodli. Napriek tomu VPS má svoje miesto a niekedy sa naozaj môže hodiť, napríklad: • ak máš linux v malíčku, alebo svoj VPS už máš (si skúsený/á), • ak výkon zdieľaného hostingu viditeľne nestačí a už nevieš svoju aplikáciu ďalej optimalizovať, • ak nepostačujú dostupné technológie zdieľaného hostingu (potrebuješ doinštalovať vlastné knižnice, tooly), • ak má aplikácia extrémne nároky na výkon procesora, veľkosť pamäte, alebo potrebuješ ukladať gigabajty/terabajty dát, • ak sú dáta, s ktorými pracuješ príliž senzitívne na to, aby boli uložené na jednom mieste spolu s dátami iných používateľov zdieľaného hostingu. Asi by sme našli aj dalšie prípady, špecifiká, kedy sa hodí VPS, tieto nám však nateraz postačia. Ak teda spadáš do niektorého z kritérií, čítaj ďalej. Aký výkon servera potrebujem?Brzdi. Predtým, ako pristúpime ku kúpe servera by sme mali vedieť, aké sú naše požiadavky. Aspoň približne. Potrebujeme veľa jadier procesora? Alebo si vystačíme s jedným, prípadne dvoma jadrami? Potrebujeme veľa operačnej pamäte, alebo terabajty dát na disku? To sú ťažké otázky, ale poradím ti: • Ak aplikácia neexistuje a chceš VPS len vyskúšať, zvoľ najlacnejší server aký je v ponuke. Či máš 1 procesor, alebo 32 procesorov - terminál reaguje vždy rovnako rýchlo. • Ak je aplikácia nová a nepoznáš jej nároky, začni radšej s menej výkonným a lacnejším serverom. Napríklad CPU s jedným, alebo dvoma jadrami a 2G RAM. Väčšina providerov disponuje jednoduchým škálovacím nástrojom. Ak sa zvýšia nároky, pohneš v administračnom rozhraní nejakým sliderom a šup, máš o dve jadrá viac, prípadne dvojnásobok RAM - do pár sekúnd. • Ak si narazil na limity zdieľaného hostingu, pravdepodobne poznáš dôvod, prečo chceš vyskúšať VPS. Najlepšie ak si komunikoval s podporou svojho providera a potvrdili, že si narazil na limit ich CPU, alebo RAM. Kde kúpiť server?Takže, ak vieme aspoň približne čo chceme, urobme prieskum. Osobne mám vyskúšaných týchto predajcov VPS: • Linode, DigitalOcean, Hetzner, WebSupport Ubuntu Server a terminál bude u každého predajcu rovnaký. Riadiť sa teda môžeme podľa nasledovných kritérií: 1. cena 2. ešte raz cena 3. možnosti administračného rozhrania a prípadného navyšovania výkonu do budúcnosti 4. lokalita dátového centra (čo najbližšie k používateľom) Moja skúsenosťV poslednej dobe to u mňa osobne vyhráva Hetzner (hetzner.de). Frajeri majú vynikajúce ceny (vlastný server v čase písania tohoto textu vieš získať už za 3E/mesiac) a navyšovanie počtu CPU a RAM je riešené jednoduchým sliderom v administračnom rozhraní. Super vec 🎉. Dátové centrum môžeš zvoliť relatívne blízko - Falkenstein, Nemecko. TIP: V ľavom hornom rohu zmeníš jazyk webu z nemeckého na anglický. 😎 Vytvorenie konta HetznerAko sa už konečne teda dostaneme k vlastnému serveru? Takto: 1. Vytvor si konto na hetzner.de (klik) 2. Klikni na linku, ktorú ti Hetzner poslal na email zadaný pri registrácii 3. V sérii formulárov vyplň svoje iniciály (posledný formulár vyžaduje údaje o platbe, žiadna platba vopred však nie je potrebná) 4. Po vyplnení a odoslaní formulárov sa implicitne zobrazí formulár - nastavenia tvojich iniciál. Vpravo hore klikaj na štvorčeky a vyber z ponuky možnosť "Cloud": Ak máš po absolvovaní predchádzajúcich krokov pred sebou takúto obrazovku:[Image] Konzola cloudu Hetzner.de. je všetko v poriadku. Môj server!Už sme blízko. V zozname projektov (predchádzajúci obrázok) klikni na "Default" (tento názov vieš zmeniť cez ikonu troch bodiek v pravom hornom rohu karty produktu) a následne "Add server".[Image] Vytvorenie nového VPS. Parametre serveraTeraz zvolíme parametre servera. V tomto prípade zvolíme najlacnejší variant, ale niektoré možnosti popíšeme bližšie. Parametre servera teda nastavíme nasledovne: 1. Location (umiestnenie dátového centra): Falkenstein, pretože je najbližšie k Slovensku. 2. Image (operačný systém): Ubuntu 20.04, pretože s ním viem pracovať a tiež existuje obrovská komunita používateľov Ubuntu servera, čo uľahčí vyhľadanie návodov a riešení prípadných problémov. So serverom Ubuntu bude ďalej pokračovať aj tento tutoriál. 3. Type (typ servera): Štandardný, pretože nám nevadí, že spolu s našim VPS budú na fyzickom serveri bežať aj iné virutálne servery. Dedikovaný typ servera je vhodný len vtedy, ak potrebujeme naozaj veľký výpočtový výkon pre naše použitie. Z ďalších možností typu servera vyberme hneď prvý s označením CX11 a teda 1x VCPU, 2GB RAM, 20GB SSD v cene €2.99 za mesiac. 4. Volume (externý disk): Nevytvárame externý disk.  • TIP: Ak vytvoríme VPS s veľkosťou SSD 20GB a potrebujeme viac dát, nemusíme hneď meniť veľkosť SSD na serveri, ale môžeme pripojiť k serveru externý disk. Má to jednu veľkú výhodu a jednu menšiu. Veľkou výhodou je, že v prípade zvyšovania výkonu (napr. z 1CPU a 2GB RAM na 4CPU 8GB RAM) môžeme zvoliť možnosť, že nechceme navyšovať aj veľkosť SSD - teda SSD ostane na hodnote 20GB. Takéto rozhodnute nám v budúcnosti umožní aj krok späť a teda zníženie počtu VCPU a RAM. Takto môžeme ušetriť nemálo finančných prostriedkov, ak potrebujeme zvýšiť výkon VPS len dočasne, nie natrvalo (napr. ak je aplikácia preťažená len v období Vianoc). 5. Network (sieť): Nevytvárame sieť, pretože nevytvárame skupinu serverov, ktoré potrebujeme mať na jednej sieti (napr. ak by sme potrebovali zvlášť VPS pre webserver a databázový server). 6. Additional features (ďalšie možnosti): V prípade možnosti User data nešpekulujeme (zatiaľ). To sa nám môže hodiť vtedy, ak chceme niektoré činnosti automatizovať, napríklad automaticky pridať používateľov do systému, spustiť rôzne skripty po inštalácii a podobne. Backups sú pravidelné zálohy, čo je nutnosť na produkčnom serveri, kde beží ostrá aplikácia. Táto služba je však spoplatnená - 20% z ceny nášho servera. Ak teda vytváraš produkčný server, nafurt, tak odporúčam aj so zálohami. Ak len testuješ, tak je to na tebe 😉 . 7. SSH Key (SSH kľúč): Ak máš skúsenosti s *nix systémami, možno máš vytvorený svoj id_rsa.pub kľúč. Ak áno, tu ho môžeš použiť a tak sa autentifikovať pri pripájaní k serveru. V opačnom prípade (a to je náš prípad) ti bude zaslané heslo k root použivateľovi na tvoj email. Tu teda nešpekulujeme a zatiaľ nezaškrtneme túto možnosť.  • TIP: Povoliť vzdialený prístup pre root používateľa nie je bezpečné a používa sa len pre prvotné nastavenie servera (prvé prihlásenie do nového VPS). Jedným z prvých krokov po prihlásení sa do nového VPS by malo byť vytvorenie vlastného používateľa, ktorý sa bude prihlasovať pomocou kľúča (nie hesla) a zakázanie vzdialeného prístupu pre root používateľa. To bude aj náš postup. 8. Name (Názov): Toto je názov servera, ktorý je zobrazený v administračnom paneli hetzner, ale aj v konzole po pripojení k serveru cez SSH protokol.  • TIP: Spomeň si na nejaké názvy svetov, postáv z tvojich obľúbených počítačových hier, komixov alebo filmov 😎 . Veľa čítania kôli pár klikom. Nastavenie servera teda môže vyzerať aj takto:[Image] Nastavenie parametrov VPS. Prvé SSH spojenie Po potvrdení nastavení chvíľu počkáme na spustenie novej inštancie nášho VPS. Zároveň nám Hetzner doručí email s informáciami o IP adrese, na ktorú sa budeme pripájať a heslom pre root používateľa. Tak skontroluj email a poď sa prihlásiť na server cez SSH. Aký program použiť na prihlásenie cez SSH? Pre MacOS je to Terminal, alebo iTerm. V prípade linuxu (akéhokoľvek) je to veľmi podobné MacOS - čiže opäť Terminal. Používatelia Windows môžu použiť na SSH pripojenie program Putty, prípadne nainštalovať WSL doplnok a použiť WSL terminal. Napíš do komentára ak sa stretneš s nejakým problémom, poriešime. Z emailu som sa dozvedel, ze IP môjho servera je 78.47.244.57 a heslo k používateľovi root je ss3PgfWnHwxUhUaKEEr9 (ani neskúšaj, server v dobe čítania tohto textu už nebude existovať).[Image] Email s autorizáciou do nášho VPS. TerminalPríkaz ssh, ktorý použijeme v MacOS, Linux alebo WSL termináli má nasledovný syntax: ssh pouzivatel@ip_servera Teda v našom prípade: ssh root@78.47.244.57 Terminál si vypýta heslo, môžeme ho len skopírovať a prilepiť. Pri zadávaní hesla do terminálu sa nezobrazujú žiadne hviezdičky ani odozva. Preto len potvrdíme príkaz klávesou Enter. Ak sa na server pripájame prvýkrát, SSH sa opýta, či chceme server uložiť do zoznamu SSH serverov. Napíšeme yes a spojenie sa v prípade správneho hesla úspešne nadviaže:[Image] Prvé pripojenie k serveru cez SSH. Pri prvom prihlásení je nutné zmeniť heslo používateľa root. Zadáme staré heslo a vytvoríme nové. Hotovo. Náš nový VPS server Ubuntu 20.10 je vytvorený. Čo ďalej?V ďalšej časti blogu budeme pokračovať s nastavením nášho servera: 1. vytvoríme si na lokálnom počítači SSH kľúč 2. vytvoríme na serveri vlastného používateľa a nastavíme prihlasovanie cez SSH kľúč 3. zabezpečíme server pomocou firewallu, fail2ban a iných nástrojov 4. nainštalujeme a spustíme webový server (nginx) 5. nainštalujeme a spustíme databázový server (postgresql, ak budeš potrebovať tak aj MySQL) 6. nainštalujeme závislosti (git, nodejs, ...) V tretej časti budeme riešiť deploy našej aplikácie na VPS: 1. kúpime doménu a nasmerujeme ju na server 2. naklonujeme našu aplikáciu na server, spustíme ju pod doménou a vytvoríme k nej službu (systemd service aby sa automaticky spustila pri prípadnom reštarte servera) 3. pomocou certbot nastavíme doméne SSL certifikát a sprístupníme aplikáciu pod HTTPS 4. pomocou GithubActions nastavime continous integration tak, aby sa po push do main branche spustili automatizovane testy a v pripade bezchybnosti sa aplikacia rovno nasadi do produkcie Veľa roboty máme. Ale veľa sa aj naučíme. Štvrtá časť nie je.
Abstrakcia a zoraďovanie v kolekciách v Jave
Vzdelávanie
08.12.2020
Skillmea

Abstrakcia a zoraďovanie v kolekciách v Jave

Poďme sa porozprávať o abstraktných triedach v jave (abstract class in java). Abstrakcia slúži na schovanie zložitosti od používateľa a zobrazuje len relevantné informácie. Abstraktné triedy a metódy  V našom príklade vieme, že všetky zvieratá vydávajú zvuk. Je to niečo abstraktné – niečo, čo si vieme predstaviť a v kóde to zapíšeme nasledovne. Upravme metódu v triede Animal. public abstract void makeNoise(); Dáva to zmysel, lebo Animal nepredstavuje určité špecifické zviera a teda nevieme, aký zvuk vydá, ale vieme, že chceme aby všetko, čo bude dediť od Animal, vydávalo zvuk. Pomocou public abstract som povedal, že táto metóda nemusí mať vnútro – nemusí mať kód (implementáciu). Ak mám abstraktnú metódu, tak aj celá trieda musí byť abstract. public abstract class Animal{ public String name = "animal"; public abstract void makeNoise(); }Ak je trieda abstract, tak z nej nemôžem vyrobiť objekt. Načo by som aj robil objekt Animal, však je to len abstrakcia. Toto nebude fungovať: Animal animal = new Animal(); Ak je Animal abstract a obsahuje abstract metódu, tak som povedal, že potomk musí napísať implementáciu abstract metódy alebo bude potom tiež abstract.  Nám vyhovuje, aby Mamal bol tiež abstract. Tým pádom nemusíme vyrobiť implemntáciu. Z triedy Mamal zmažeme makeNoise a označíme ju za abstract. public abstract class Mamal extends Animal { public String name = "mamal"; }Teraz triedy, ktoré dedia od Mamal musia implementovať metódu makeNoise. Cat a Dog už danú metódu implementujú, teda nemusíme nič robiť. Ale Fox túto metódu nemá a preto ju musíme implementovať. IntelliJ IDEA nám v tomto pomôže skratkou. Stlačíme Alt + Insert a vyberieme Implement Methods. public class Fox extends Mamal { @Override public void makeNoise() { System.out.println("Ring-ding-ding-ding-dingeringeding!"); } } Zoraďovanie v kolekciáchPre zoraďovanie použijeme už existujúci algoritmus v triede Collections.sort(l). Písmeno l v tomto prípade bude List. Ak by tento List obsahoval sadu Stringov, boli by zoradené abecende, ak by obsahoval Dátum tak budú zoradene chronologicky. Ako je to možné? Je to preto, lebo tieto triedy implementujú rozhranie Comparable. Ak by si sa snažil takto zoradiť také triedy, ktoré neimplementujú toto rozhranie, tak program vyhodí výnimku.  Existuje ale možnosť, že v tvojej triede implementuješ toto rozhranie. Potom toto triedenie je teraz považované za prirodzené. Príklad: Máme Osobu, ktorá implementuje Comparable. Musíme implementovať metódu 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()); } } Čo ak chceš použiť úplne iné ako prirodzené triedenie, chceš to triediť napríklad podľa veku. Alebo chceš triediť objekty, ktoré neimplementujú Comparable rozhranie? Tak si ho vyrobíš. Na to použiješ rozhranie Comparator a potom ho požiješ Collections.sort(e, VEK_TRIEDENIE);. 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()); } };Vyskúšame 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 ďalších blogoch sa pozrieme na zopár zaujímavostí z Javy 13 a takisto sa budeme venovať aj Kotlinu. Ostaň nám verný a uč sa Javu 😊
Funkcie VLOOKUP
Vzdelávanie
16.11.2020
Skillmea

Funkcie VLOOKUP

Funkcia VLOOKUP sa používa vtedy, keď potrebujete nájsť údaje v tabuľke alebo rozsahu podľa riadka. Vyhľadajte napríklad cenu automobilovej časti podľa čísla časti alebo vyhľadajte meno zamestnanca na základe ID zamestnanca. Funkcia VLOOKUP patrí k najpraktickejším Excel funkciám. Funkcia VLOOKUP znamená: = VLOOKUP (čo chcete vyhľadať, kde ho chcete vyhľadať, číslo stĺpca v rozsahu obsahujúcom hodnotu, ktorá sa má vrátiť, vráťte približnú alebo presnú zhodu – označenú ako 1/TRUE alebo 0/FALSe). Vysvetlime si danú funkciu na jednoduchom príklade: • v databáze chceme pridať k ID klienta jeho priezvisko a mesto, z ktorého pochádza. • v jednej tabuľke (v ľavej, viď obrázok nižšie) nám chýbajú určité údaje o klientoch, konkrétne priezvisko a mesto • v druhej tabuľke (v pravej, viď obrázok) máme údaje o klientoch - jeho ID, priezvisko a mesto, z ktorého pochádza.[Image] Obidve tabuľky majú spoločný jeden identifikátor, a teda ID_klient. Na základe tejto spoločnej zhody vieme pomocou funkcie VLOOKUP vyhľadať údaje z jednej tabuľky a priradiť ich do druhej tabuľky. Riešenie: zadajme do bunky Priezvisko funkciu VLOOKUP a rozkliknime si ju. Argument funkcie Vyhľadávaná_hodnota je niečo, čo naše dve tabuľky spája, teda ID_klient. Argument funkcie Pole_tabuľky sú údaje z druhej tabuľky, z ktorej čerpáme (túto tabuľku si nezabudnite vo funkcii ukotviť pomocou klávesy F4). Ďalším argumentom fukcie VLOOKUP je Číslo_indexu_stĺpca, do ktorého napíšeme číslo stĺpca z našej druhej tabuľky - hľadáme Priezvisko, čo je druhý stĺpec, tak napíšeme číslo 2. Posledný argument funkcie je Vyhľadávanie rozsahu, ktorá môže byť približná alebo presná zhoda; TRUE (1) alebo FALSE (0). V našom prípade chceme presnú zhodu, teda použijeme 0 - FALSE. Funkcia bude zapísaná nasledovne:[Image] A tu je výsledok, podľa ID_klient sa nám zobrazia v našej prvej tabuľke priezviská zákazníkov Rovnako môžeme postupovať aj v prípade, že chceme doplniť MESTO klienta do prvej tabuľky.[Image] Krátke zhrnutie k funkcii VLOOKUP, obsahuje tieto 4 argumenty: 1. čo hľadám, 2. kde to hľadám, 3. v ktorom stĺpci je výsledok, 4. chcem hľadanú hodnotu presne alebo približne? Pokiaľ máš nejaké otázky k tejto funkcii, alebo je ti z článku niečo nejasné, napíš otázku do komentára.