Heading

Perex Html

Najvhodnejší software na editáciu videa (časť I.)
Tipy a triky
17.04.2019
Katarína Kučáková

Najvhodnejší software na editáciu videa (časť I.)

Vieme, že v ponuke dostupných softvérov je niekedy ťažké sa orientovať a vybrať si ten, ktorý bude našim potrebám vyhovovať najviac. Táto dilema neobchádza ani tému editovania videí. V článku ti preto predstavíme 3 programy, z ktorých si budeš vedieť vybrať aj ako odhodlaný začiatočník. Ktoré to sú?  Premiere Pro CC Premiere Pro z dielne Adobe je zrejme najpoužívanejším softwarom používaným pre strih a editáciu videí. Pod strechou Premiere Pro prešli také filmové blockbustery ako Deadpool, Avatar či Gone Girl. Je určený pre súčasných a budúcich profesionálov, náročných youtuberov a pod. To však nemusí odradiť ani neskúsených editorov. Ak si začiatočník, zrejme sa ti bude zdať používanie Premiere Pro dosť náročné, obrň sa však trpezlivosťou k prekonaniu ťažkých začiatkov a nebudeš sa ho chcieť vzdať. Možno ale predsa. Dôvodom je vyššia cena, software si totiž môžeš kúpiť len formou predplatného na časovo obmedzené obdobie, ako sme zvyknutí pri všetkým Adobe deťoch. V rámci ročného plánu si tak Premiere Pro zaobstaráš za 23.99 Eur/mesačne. Výhodou je neustála aktualizácia softwaru, pridrahé to však bude pre rekreačného užívateľa Premiere Pro.  A v čom je Premiere Pro tak výnimočný? Adobe Premiere Pro je dostupný vo verziách pre Windows a Mac OS X, obrovskou výhodou je jeho možné prepojenie s Adobe súrodencami, ktorými sú napríklad Photoshop, After Effects alebo Audition sound editor. Flexibilná timeline umožňuje prácu na rôznych elementoch videa, ako sú vrstvy, zvuk, text a obraz, čo oceníte pri komplexnejších alebo tímových projektoch.  Vďaka precíznemu color gradingu budeš vedieť priviesť svoje “surové” videá k životu použitím farieb, vrátane kalibrácie bielej farby a nastavenia jasu pre rôzne svetelné podmienky. Software navyše inteligentne analyzuje farby vybraných klipov a aplikuje na tie požadované. Potešia ťa nekonečné možnosti animácií, Premiere Pro nezabúda ani na kvalitné funkcie pre spracovanie zvuku.  Exportovanie súborov sa môže pri Premiere Pro javiť ako zdĺhavejšie, export videí však vieš prispôsobiť tomu, či je určený pre mobilné obrazovky, alebo plátna kín. Ak teda poznáš svojho diváka, budeš vedieť optimalizovať videá ako nikdy predtým. [Image] Adobe Premiere Rush Užívateľov sociálnych sietí určite nadchne nová aplikácia pre strih a úpravu videa,  ktorou je Adobe Premiere Rush. Táto appka výrazne uľahčuje prechod od snímania k editácii videí a ich zdieľanie na sociálnych sieťach. Videá v ňom upravíš jednoducho na akomkoľvek zariadení, svoj projekt môžeš napríklad začať strihať v mobile a dokončiť na počítači. Adobe Rush poskytuje základné možnosti pre úpravu zvuku a obrazu, náročným užívateľom však budú chýbať pokročilejšie funkcie. Napriek tomu sa jedná o revolučnú appku, v ktorej premeníš svoje amatérske videá na vizuálny a zvukový zážitok. A to kdekoľvek. Úžasný nástroj pre generáciu youtuberov, vloggerov alebo jednoducho ľudí, ktorí chcú urobiť pekné videá, ale nemajú čas učiť sa náročné editovacie programy. Všetky podstatné nástroje pre strih a editáciu videí totiž Adobe zabalil do jednej appky.  Keďže sa jedná produkt z rodiny Adobe, užívateľ musí počítať s predplatným. Mesačne ťa appka vyjde na 11,99 Eur, možnosťou je vyskúšať si bezplatne Premiere Rush CC Starter Plan s neobmedzenou funkčnosťou na neobmedzenom množstve projektov, exportovať ti však dovolí maximálne tri z nich. [Image] Final Cut Pro X Ďalším z kvalitných strihačských softwarov je Final Cut Pro. Ten je však dostupný len pre Mac zariadenia, čo okamžite eliminuje veľkú časť potenciálnych userov. Ak si ale používateľom jabĺčkového zariadenia, Final Cut Pro je tým ideálnym softwarom.  Jedná sa o rýchly (a zrejme aj najrýchlejší) a intuitívny software, ktorý bude vyhovovať všetkým tvojim editorským potrebám. Veľkou výhodou Final Cut je jednorazová platba za jeho užívanie, nemusíš tak platiť “výpalné” ako pri Adobe produktoch.  Užívateľské rozhranie Final Cut je nastavené spôsobom dávajúcim zmysel aj užívateľovi, ktorý softvér otvoril prvýkrát. Možnosti úprav sú v logickom poradí a konkrétny nástroj tak budeš vedieť nájsť bez toho, aby si zúrivo klikal na nesprávne nástroje v snahe nájsť ten požadovaný.  Vytvoríš v ňom i zložité animácie, zvukové a vizuálne efekty a ponúka ľahký prístup k pluginom. Na Final Cut budeš milovať jeho jednoduchý a prehľadný design a inovatívnu časovú os, ktorá zabezpečuje synchronizáciu medzi jednotlivými stopami. Silnou stránkou softwaru je úprava zvuku.  Pri importovaní súborov máš možnosť náhľadu videí, čím sa vyhneš zdĺhavému nahrávaniu súborov, ktoré vlastne ani nepotrebuješ. Bezproblémový je aj export a renderovanie, nahrávanie súborov napr. sociálne siete sa deje v reálnom čase, nemusíš tak čakať na exportovanie súboru, jeho uloženie do počítača a opätovné nahrávanie. [Image] Záver Tak ako určiť víťaza tohto battle? Univerzálna odpoveď neexistuje, závisieť to bude od tvojich editorských potrieb, skúseností, profesionálneho využitia a podobne. Všetky dôležité otázky sú zodpovedané, výber je teda len na tebe! Learn2Code má pre teba aj ponuku online kurzov k uvedeným editorom, aby si vedel z ktoréhokoľvek z nich vyťažiť maximum:  Ak chceš byť profi user, pre ktorého bude editovanie videí viac, než len hobby, klikni na:  https://skillmea.sk/kurzy/movie-maker-adobe-premiere-pro Ak vlastníš Mac a hľadáš kvalitný a cenovo dostupný editor,nájdeš sa tu:  https://skillmea.sk/kurzy/final-cut-pro-x Ak si vlogger,youtuber a chceš rýchly a jednoduchý editovací nástroj, toto je pre teba:  https://skillmea.sk/kurzy/adobe-premiere-rush V pokračovaní sa pozrieme na ďalšie z rady video editorov, ako sú Adobe After effects, DaVinci resolve, Sony Vegas a iné.. 
Java najnovšie verzie (Java 9): príkazový riadok JShell (2. časť)
Tipy a triky
21.03.2019
Skillmea

Java najnovšie verzie (Java 9): príkazový riadok JShell (2. časť)

Java príkazový riadokJShell Command Line je nástroj, kde môžeme skúšať spúšťať kód bez toho, aby sme museli vytvoriť novú triedu s main metódou.[Image] JShell spustíme z bin adresára, kde máme nainštalovanú javu jdk vo verzii 9 a viac. Pri učení sa preferuje použiť verbose mód jshellu, čo nám poskytne čo najviac spätnej väzby pri práci s konzolou.  jshell –v  Ak si spustil jshell bez –v môžeš jshell vyponúť s príkazom /exit a potom spustiť znovu s –v nastavením. Teraz môžeš zadávať výrazy. Prvý spôsob je zadeklarovať premennú s hodnotou a následne hodnotu vypísať:[Image] Alebo môžeš rovno napísať výraz, ktorý sa vyhodnotí a výsledok sa zapíše do premennej, ktorá dostane poradové číslo. [Image] Je možné deklarovať metódy. Pri písaní príkazov, ak jshell zistí, že príkaz nie je ukončený, napríklad si napísal kučeravú zátvorku a stlačíš enter, tak sa vytvorí nový riadok na ktorého začiatku budú špeciálne znaky ...> čo znamená, že pokračuješ v písaní kódu a výraz sa ešte nevyhodnotí.[Image] Metódu potom voláš klasicky:[Image] Ak by si chcel prepísať metódu, respektíve čo robí vo vnútri, tak ju vieš napísať znovu a ona sa prepíše a platná bude posledná napísaná. Je možné aj prepísať typ premennej. Ak na začiatku bude x číslo, tak neskôr môže byť String. [Image] Pod výpismi máme vždy aj poznámky o tom, čo sa deje na pozadí. Napríklad, že premenná x bola nahradená za String.  Môžeš napísať metódu, ktorá vo vnútri používa premenné alebo metódy, ktoré ešte neboli zadefinované. Fungovať budú až keď všetko zadefinuješ.  Príkazom /list si zobrazíš kód, ktorý si napísal. Každý vstup má číslo, čo predstavuje id vstupu. Tieto id slúžia aj pri výnimkách. Napíšme si príkaz, ktorý spadne a vypíše sa výnimka.[Image] Po výpise /list zistíme čo znamenajú čísla vo výpise. Po prvé tam máme: at divide (#15:2), čo znamená, že chyba nastala na príkaze s id 15 a riadku 2 toho príkazu. Po druhé at (#16:1) je ďalšie miesto, kde sa metóda volala – klasický stack trace, ale s odkazom na /list výpis.[Image] Jshell ponúka aj možnosti na doplnenie, keď stlačíme tab. Ak do konzoly napíšem Sy a stlačím tab, tak mi ponúkne možnosti. Potom ak napíšem System. a stlačím tab, tak mám ďalšie možnosti vypísané. A tak ďalej.  [Image] Tu sa dostávame k tomu, že vieme používať klasické dostupné api. Ako napríklad String metódy. V konzole som napísal prázdny String bodku a stlačil tabulátor.  [Image] Ak niektoré triedy nie sú dostupné, tak ich vieme importnúť. Pri písaní vieme typu stlačíme Shift + Tab a potom písmeno i, ak chceme importnúť. Potom máme možnosť urobiť nič, alebo importnúť. [Image] Do shellu vieme písať aj shell špecifické prkazy. Stretli sme sa už s /list. Existujú aj ďalšie, napríklad /methods na výpis dostupných metód, /vars na výpis dostupných premenných, alebo /list –all na výpis všetkého aj importov aj chybne zadaných príkazov.  Všetko, čo sme napísali, úspešne si vieme uložiť do súboru pomocou príkazu /save nazovSuboru.txt. Tento súbor je uložený v priečinku bin, kde sme spustili jshell, ak nezadáme inak. Znovu vieme tento program otvoriť pomocou /open a názva súboru. Aj pri týchto príkazoch funguje dopĺňanie po stlačení tabulátoru.[Image] Je možné písať skratky príkazov, ak sú tie skratky unikátne. Jediný príkaz, ktorý začína na písmeno l je list, teda jemožné napísať /l. To isté platí aj pre príkazy pre /l ak dáme pomlčku a tab, tak dostanem možnosti. Príkaz, ktorý začína na a je len jeden tak môžem napísať /l –a namiesto /list –all.[Image] Tento príkaz som spustil nad čistou novou jshell, tak si môžeme pozrieť, čo je importnuté ako default.  Priblížili sme si základné možnosti nastavenia príkazového riadku JShell, je ich ale ďaleko viac. Ak máš záujem sa do tejto problematiky “zavŕtať” hlbšie, môžeš si pozrieť kompletný tutoriál. A napíš niečo do komentárov, poteším sa. Pýtaš sa “prečo Java”? Java je jeden z najpoužívanejších programovacích jazykov na svete. Ak sa o Javu zaujímaš (je jedno, či si začiatočník, alebo už programuješ), pripravili sme pre teba mnoho kurzov na https://skillmea.sk.
Rozhovor s lektorom kurzu online marketingu Liborom
Rozhovory
10.03.2019
Skillmea

Rozhovor s lektorom kurzu online marketingu Liborom

Ahoj Libor, vítam ťa u nás v Learn2Code. Si našim novým lektorom prezenčného kurzu online marketingu v Bratislave. Na začiatok sa nám trochu predstav. Kde teraz pracuješ? Predstav sa nám aj po pracovnej stránke.Momentálne pracujem v agentúre Invelity ako kampaňový stratég. Mojou úlohou je prinášať našim klientom hlbšiu, premyslenejšiu online stratégiu. Takáto stratégia obnáša analýzy súčasných stavov a naplánovanie potrebných procesov k naplneniu klientovej predstavy, ale aj kontrolu, či sa napĺňajú stanovené ciele. Taktiež je súčasťou mojej práce aj mentoring a dohľad nad prácou našich špecialistov jednotlivých odborov našej agentúry.  Okrem práce v agentúre som si našiel svoje miesto aj pred publikum a častokrát vystupujem na rôznych prednáškach či konferenciách alebo vediem rôzne odborné workshopy.[Libor v prostredí prednášok] Čo sa ti na tvojej práci páči najviac?Najviac ma teší to, že dokážem priniesť riešenie na problém našich klientov. Taktiež sa veľmi teším, ak aj naša práca prispeje k dosiahnutiu výsledkov. Okrem iného sa taktiež veľmi teším osobným kontaktom s klientmi, kde dokážeme priniesť efekt našej práce pre daný projekt niekoľkonásobne väčší, ako pri nepriamej komunikácií. Najväčšiu úchylku som si však našiel v tabuľkách, grafoch či metrikách, keď pri vyhodnocovaní výsledkov objavím zlepšenie :)[Libor s pracovným tímom Invelity] Si lektorom prezenčného kurzu Online marketing. Ako si sa k online marketingu dostal?Asi mi to nebudete veriť, no náhodne :D Viaže sa k tomuto veľmi vtipná príhoda. Všetko sa to začalo absolvovaním jazdy z môjho rodného Popradu do Bratislavy prostredníctvom niekdajšej platformy jazdomat. V tom čase ešte mne neznámy muž ma viezol do Bratislavy. Bol to majiteľ jednej slovenskej online marketingovej agentúry. Počas jazdy sme sa skvele porozprávali nielen o online marketingu, o ktorom som v tom čase ešte nevedel absolútne nič. Časom sa z tohto náhodného zoznámenia vyvinulo kamarátstvo, ktoré prerástlo až do ponuky práce. Pôvodne som mal nastúpiť na Account manager-a, no isté okolnosti ovplyvnili to, že sa v tom čase uvoľnilo miesto v tejto agentúre aj na pozíciu PPC špecialistu. Povedal som si, že nemám čo stratiť, a že to môže byť moja “životná šanca” naučiť sa čosi odborné a v pracovnom svete hodnotné. A tak sa začala moja etapa v online marketingu. A aké vyplýva z tohto ponaučenie? Nikdy nepodceňujte situáciu, môže sa z toho stať celoživotná záležitosť :) Čo všetko môže dať spomínaný kurz niekomu, kto sa rozhodne ho absolvovať?Cieľom tohto online marketingového kurzu bude v prvom rade získať prehľad o tom, z čoho pozostáva online marketing a takisto o získaní praktických zručností z jednotlivých oblastí. Našim cieľom bude okrem teoretických poznatkov pracovať predovšetkým s praxou. Účastníci si počas celého kurzu budú môcť naučené poznatky implementovať buď na svoj vlastný reálny alebo náš testovací projekt. Ako by si opísal PPC kampane na Slovensku? Je to rozdielne napríklad v porovnaní so zahraničím?Určite je to veľmi rozdielne. Rozdielnosť PPC kampaní odzrkadľuje okrem iného najmä nákupné správanie daného obyvateľstva. Dôležitou súčasťou myslenia marketérov je správne pochopiť toto nákupné správanie.  Musím však povedať, že ako slovenský trh, v rámci svetového sme na tom s poznatkami a krokmi, ktoré sa zavádzajú v praxi na tom veľmi vyspelo. Avšak na druhú stranu nás ako krajinu brzdí to, že sme v celosvetovom meradle veľmi maličká krajina a preto objem dát, ktoré sa dejú na internete, sú v porovnaní s online marketingovými veľmocami ako napríklad Veľká Británia alebo USA malé. To sa odzrkadľuje aj v tom, že novinky, ktoré prináša napríklad Google alebo Facebook, sa k nám dostávajú dosť oneskorene.  Sleduješ aj konkurenciu, aktuálne trendy, inovácie? Ako si na tom?Áno, sledujem. Online marketing ako taký je veľmi dynamické odvetvie podnikania. Nové trendy či inovácie prichádzajú do praxe takmer každý deň a preto je určite nevyhnutné sledovať aj situáciu v konkurenčnom boji. Ako agentúra, ale aj ja sa snažíme prinášať nové trendy a inovácie aj do našich prác.  Tejto dynamickosti odvetvia podnecujem aj manažment svojho pracovného času a preto takmer 20% svojho pracovného času venujem online vzdelávaniu, ale aj návšteve rôznych školení, workshopov, prednášok či konferencií.[Liborove záľuby vo voľnom čase] Dnes je dosť veľa pracovných ponúk v oblasti marketingu a pravdepodobne už každá firma potrebuje odborníka na PPC kampane, analytiku a sociálne médiá. Vnímaš to tak aj ty?Áno, vnímam to tak. Je to určitou reflexiou toho, ako rapídne sa doba digitalizuje. Dnes si veľa podnikateľských subjektov uvedomuje to, že celý biznis sa do veľkej miery odohráva alebo rozhoduje aj v online prostredí. Samozrejme, nedá sa to generalizovať, no väčšina odvetví sa v posledných rokoch značne digitalizovala. Tomuto spoločenskému efektu sa podriaďuje aj trh s pracovnými ponukami. Už takmer každá firma si uvedomuje to, že potrebuje mať vo svojom tíme odborníkov na online marketing, poprípade spolupracovať s agentúrami, ktoré takéto služby poskytujú.  Na druhej strane komunita PPCčkarov veľmi rýchlo rastie. Napríklad aj na Facebooku denne pribúdajú pracovné ponuky na rôzne online marketingové pozície. Je podľa teba dosť kvalifikovaných ľudí práve na tieto pozície?Osobne si myslím, že kvalifikovaných odborníkov je málo. Stále môžeme pozorovať situáciu, že ponuka voľných pracovných pozícií prevyšuje počet odborníkov, ktorí sú k dispozícií. Aké sú najčastejšie chyby pri práci PPC špecialistu?Mojou rukou už prešlo dosť veľa stážistov, ktorí sa snažili vypracovať na PPC špecialistu, preto môžem objektívne povedať, že za najväčšiu chybu považujem uspokojenie sa so získaním určitej úrovne poznatkov. Tým, že je online marketing veľmi dynamický, aj vzdelávanie musí pretrvávať neustále. Pozícia PPC špecialistu vás musí doslova baviť a musí sa stať vašou záľubou. [Liborove záľuby vo voľnom čase] Pýtajú sa ťa napríklad tvoji kamaráti na to, ako by si mali čo najefektívnejšie nastaviť svoje kampane? Dávaš im rady?Áno, veľmi často mávam takéto otázky :)  Ja sa snažím byť k môjmu okoliu kamarátov veľmi otvorený a snažím sa maximálne pomôcť všetkým, ktorí o ma o pomoc požiadajú.  Čo by si poradil všetkým, ktorí nemajú žiadne skúsenosti s online marketingom, ale chceli by nejako začať?Na úvod určite odporúčam začať s voľne dostupnými zdrojmi na internete s cieľom získania základného prehľadu o tom čo sa vlastne v online marketingu dá robiť a postupne sa začať orientovať na tú oblasť, ktorá vás bude baviť. Dnes je online marketing v odbornosti už tak ďaleko, že byť superhrdinom a ovládať všetky oblasti sa dá len veľmi ťažko. Čiže na úvod určite odporúčam začať s výberom oblasti, ktorej sa budete následne venovať. No a potom sa už len nevzdať. Na vlastnej koži som zistil, že naučiť sa konkrétne oblasť PPC si vyžadovalo dávku trpezlivosti, ale najmä vlastné presvedčenie o tom, že túto prácu chcem vykonávať. Veľmi mi pomohla socializácia sa do skupiny markeťákov, či už na rôznych konferenciách, kde som stretával nových ľudí, s ktorými som sa mohol porozprávať a získavať tak hodnotné skúsenosti, ale aj čítanie si článkov a sledovanie facebookových skupín. Libor, ešte nám prezraď tvoje plány do budúcnosti.V profesijnom živote plánujem do budúcnosti, aby sme sa ako agentúra Invelity rozširovali o nových veľkých klientov a o nových zamestnancov.  Netreba však zabúdať aj na osobný život, v ktorom plánujem čo-to pocestovať po svete s mojou priateľkou, ale aj užívať si naše rodné Slovensko. Veľkú záľubu som si našiel v zimných športoch, najmä v skialpinizme. Po dlhých náročných dňoch nepadne nič lepšie ako zobrať lyže, vypnúť zvonenie v mobile, nechať ležať notebook na stole a vybrať sa do tichých zasnežených hôr a užívať si pohodu a čerpať energiu do ďalšieho pracovného života. Ale najmä, užívať si život naplno s rodinou, priateľmi či blízkymi, ktorých mám rád. Máš na Libora nejaké otázky? Napíš ich smelo do komentára. Zaujala ťa Liborova cesta k online marketingu? Nechaj sa inšpirovať a začni sa vzdelávať. Prihlasovací formulár na prezenčný kurz online marketingu nájdeš na našej stránke. PRIHLASOVANIE BOLO UKONČENÉ. Ak si termín prešvihol, nevadí, pripravili sme pre teba aj mnoho online marketingových kurzov.
Môžeme sa dnes na hodine hrať? Od zákerného slniečka k programu Scratch
Vzdelávanie
27.02.2019
Skillmea

Môžeme sa dnes na hodine hrať? Od zákerného slniečka k programu Scratch

„Môžeme sa dnes na hodine hrať?“ To je otázka, s ktorou sa stretávam na hodinách počas krúžkov programovania.  Keď som začínal s učením, veľmi ma trápilo, aký postoj zaujať k žiakom. Predstavoval som si rôzne katastrofické scenáre, keď žiaci začnú robiť nezbedu od odvrávania až po demolovanie učebne.  Ako napomenúť deti?  Ako spacifikovať nezbedníkov?  Ako ich donútiť spolupracovať?  Ako sa odprezentovať, aby som nebol za hlupáka?  Ako im správne vysvetliť látku?  A to najdôležitejšie: Ako sa postaviť pred dav ľudí, ktorý vám v lepšom prípade venuje pozornosť, a byť schopný zo seba vysúkať zmysluplnú vetu? Začínal som so zákerným slniečkomNejaké skúsenosti som mal s doučovaním spolužiakov na vysokej škole. Pamätám si, ako sme trávili sobotné večery na Skype, kde sme sa snažili donútiť to zákerné slniečko, aby po spustení malo tvar ako na zadanom obrázku.  Neskôr som pomáhal spolužiakom pochopiť, čo sa deje s ich domácou úlohou.  Nakoniec som do nich tĺkol schopnosti ako si rozobrať zadanie, naplánovať postup, aby samostatne naprogramovali skúškový program.  Nedá mi nespomenúť, ako sa mi na strednej škole rozbil počítač a ja som maturitné otázky programoval s ceruzkou na papieri.  Čo ale stálo za tým, že som zvládol nakresliť slniečko a potom pripravoval spolužiakov na skúšku? Bol to ten skvelý pocit, že som v podstate z ničoho vytvoril funkčný program, hrateľnú hru, svet s vlastnými postavami. [Image] Trénujeme hlavu – každý po svojomPri programovaní si trénujeme to, čo máme v hlave. Musíme myslieť aj na to, že nie každý sa s tým ľahko popasuje. Už som počul aj sťažnosti od detí, aký je to útok na mozog. Deti radi trávia čas pri počítači. Nie každý sa však chce učiť zložité algoritmy. Je potrebné ich naučiť, že počítač nie je len na hranie. Je to aj nástroj, ktorý im umožňuje prejaviť sa. (To by sa ale mohli naučiť aj niektorí rodičia 😊.) Vedú k tomu viaceré cesty. Keď som prvýkrát otvoril prostredie Scratch, bol som nadšený. Prostredie mi ponúka všetko, čo potrebujem na vytvorenie vlastného sveta.  Tu máš, pohraj sa s tým, experimentuj, uvidíme, čo z toho vznikne.  Nepotrebuješ vedieť zložité informácie, čo sa za tým skrýva alebo prečo to tak funguje.  Prostredie ti napovie, toto s týmto sa dá spojiť, a vznikne tamto...  Scratch umožní používateľovi vytvoriť veľmi rýchlo jednoduchú hru. Postačí mi zopár klikov a už mi postavička pojedá jabĺčka a pripočítava skóre. Potom to už ide samé.[Image] Počítačové hry nie sú zloŽiaci sa tešia na hry, ktoré vytvoríme. A potom začínajú prichádzať otázky: „Kedy si naprogramujeme hru ako GTA V?“ Na to však musím odpovedať, že hru, ktorú vytváralo tisíc ľudí niekoľko rokov, si za jedno popoludnie v Scratchi nenaprogramujeme.  Keď si prejdeme základy, púšťame sa do skutočného programovania hier. Často sa pýtam detí na ich vlastné nápady, ktoré potom spolu realizujeme. Snažím sa tak v deťoch podporiť kreativitu. Chcem, aby rozmýšľali nad vlastnými schopnosťami a možnosťami prostredia Scratch.  Niekto môže namietať, že počítačové hry sú zlo, ktoré kazí dnešnú mládež. Ja však hovorím, že existujú hry, ktoré vedia deťom veľa priniesť: modelovanie v Minecrafte, manažment a plánovanie v Total War, simulácia života v Simse, budovanie svetov v Age of Empires.[Image] Autorom blogu je Ľuboš Jaroš Ľubošove vzdelávacie podklady ku Scratchu nájdete tu. Mgr. Ľuboš JAROŠ je absolvent magisterského stupňa štúdia učiteľstva matematiky a informatiky na FMFI UK (2015). Od začiatku vysokoškolského štúdia sa venoval didaktike programovania, či už v školských prácach alebo pri vedení krúžkov programovania pre žiakov 1. a 2. stupňa, v čom úspešne pokračuje doteraz. Vytvoril kompletné vzdelávacie podklady a videotutoriály pre programy Scratch Junior a Scratch Starter. Je autorom knihy Scratch Starter - Programovanie pre deti (2017). 3 roky na vyžiadanie vedie hodiny didaktiky pre učiteľov informatiky. Jeho obľúbeným pracovným nástrojom je programovacie prostredie pre deti s názvom Scratch.
5 spôsobov ako rozvíjať svoje dieťa a nezakazovať mu počítač
Vzdelávanie
18.02.2019
Skillmea

5 spôsobov ako rozvíjať svoje dieťa a nezakazovať mu počítač

Často dnes vidíme tristný obraz detí, ako v tmavom kútiku v žiari displeja svojho mobilu, tabletu alebo počítača presedia celé hodiny a bavia sa na príbehoch svojich reálnych či virtuálnych kamarátov vo fiktívnych svetoch. Až sa zdá, že počítačové hry a multimédiá sú pre deti príťažlivejšie než čokoľvek iné. Prečo sa to deje? Podľa vedeckých výskumov sme to my sami, kto vedome či nevedome už v útlom veku, učíme deti spracovávať informácie odlišným spôsobom ako celé generácie pred nami. Silné podnety a rýchle tempo vnemov z elektronických médií povzbudzujú v mozgu vylučovanie hormónu odmeny dopamínu, a tým ovplyvňujú jeho kognitívne funkcie. Človek má sklony tieto zážitky opakovať, vyhľadávať nové a silnejšie podnety, čím sa roztáča "dopamínová špirála". V súčasnosti sa s týmto problémom borí množstvo rodičov a vychovávateľov. Ak chceme, aby naše deti urobili aj niečo vo svoj prospech a svoju budúcnosť, potrebujeme tieto silné podnety najprv "prebiť", a tak si získať ich pozornosť. Potom by sme však mali postupne zjemňovať ,,nátlak” a cibriť výdrž a vnímavosť.  Ponúkam vám niekoľko inšpirácií, ktoré majú potenciál deti zaujať a zabaviť – bez toho aby prehlbovali svoju závislosť na médiách. Naopak, získajú radosť, zvýšia kontakt s rovesníkmi, vycibria si vnímavosť aj pohybové zručnosti. Efektívne tiež znížia závislosť na lacných náhradách zo sveta zábavného priemyslu. [Image] 1. Dajte krídla kreativiteDnes je trendom konzumácia obsahu. Podobne ako pri jedení aj tu to môžeme uchopiť z opačnej strany a "uvariť si" niečo vlastné. Vďaka všadeprítomným technológiám máme veľa možností.  Nakrútiť mobilom vlastný krátky hraný, animovaný, prírodopisný film či televíznu reportáž? Na spracovanie materiálu a tvorbu hudby môžeme využiť voľne dostupné aplikácie v online obchodoch. Podobne vieme vyrobiť hudbu (napr. Chrome Music Lab) a ako bonus aj plagát na premiéru (Office), prípadne aj s vlastnoručne kreslenou grafikou (napr. Photopea). Môžeme tiež natočiť aj veselé video (s pokazenými zábermi) o tom, ako to celé vznikalo. A máme ideálny príspevok do rodinnej videotéky! 2. StavebniceStavebnice sú ideálny prostriedok na konštruktívnu hru a experimenty. Sú navrhnuté tak, že rešpektujú intelektuálne a fyzické schopnosti detí v jednotlivých vekových kategóriách. Napríklad elektronická stavebnica Boffin, v ktorej si aj menšie deti bez potreby mobilu či počítača bezpečne postavia zábavné elektrické obvody.  Veľmi vhodné sú stavebnice Lego Technic s názornými ozubenými prevodmi a ďalšími súčiastkami, ktoré demonštrujú mechanické princípy.  Ak sa vám zdajú tieto stavebnice pridrahé, skúste niektorú z online Lego požičovní, ktoré sa začínajú vynárať aj u nás. Vrcholom tejto skupiny je robotická stavebnica Mindstorms, ktorá okrem lego dielikov obsahuje aj senzory a riadiacu jednotku. S použitím vhodného kurzu vovedie vás i vaše deti do sveta robotiky. [Image] 3. Výzva: Naučte ich programovaťVyššia úroveň používania digitálnych technológií je naučiť sa ich ovládnuť ich cez programovanie. Nie je až také náročné začať, ak viete, za ktorý koniec to chytiť. Deti na kurzoch a v letných denných táboroch, ktoré organizujeme v Learn2Code, nás presviedčajú o tom, že keď sú správne motivované a pod dohľadom skúseného inštruktora, základy programovania zvládne každé z nich. Mnoho vecí sa však dnešní tínedžeri učia z video návodov. A nie je to náhoda. Video návod môže do veľkej miery osobný sprievod inštruktora nahradiť. Prvé experimenty môžu začať v Scratchi, pokračovať vlastnými mobilnými appkami v AppInventore alebo grafickými skicami v javascriptovom prostredí P5.js. 4. Meranie síl s rovesníkmiAj na Slovensku existuje množstvo súťaží pre deti, v ktorých si môžu merať sily s rovesníkmi. Výnimka nie je ani informatika. Ak vášho potomka zaujímajú hry a programovanie, môže vyskúšať súťaž v tvorbe hier Galaxiáda. Jej druhý ročník práve prebieha. 5. Doprajte pohyb celému teluKaždé dieťa, či už programátorské alebo nie, uvíta chvíľu veselého pohybu! Neveríte? V sprievode zábavnej počítačovej hry Stepmania prekoná(te) detskú lenivosť. Princíp hry spočíva v tom, že dotykom nôh po podložke za sprievodu populárnej hudby "zostreľujete" rýchle ubiehajúce šípky. Stepmania je k dispozícií zadarmo. Jediné, čo k nej potrebujeme, sú ovládače Dance Pad, ktoré sa však dajú v domácich či zahraničných internetových obchodoch kúpiť už od 10 eur za kus. Hra obsahuje niekoľko herných režimov, dá sa hrať samostatne, ale zábavnejšia je vo dvojici (potrebujete dve podložky), či dokonca na turnaji. (Na ten si účastníci nosia svoje vlastné podložky.) Vďaka týmto aktivitám vy a vaše deti zažijete radosť a pocit zmysluplného využitia času a moderných technológií v prospech spolupatričnosti a vnímavosti. Zároveň povzbudíte ich zdravú sebadôveru a získavanie takých zručností, ktoré určite využijú v budúcnosti. Autorom článku je Marián Staňo Marián je absolvent učiteľstva matematiky a informatiky na FMFI UK (2001). Od začiatku štúdia sa venoval experimentálnemu vyučovaniu informatiky na ZŠ a neskôr v škole pre deti so všeobecným intelektovým nadaním (ZŠ Košická Bratislava, Škola pre mimoriadne nadané deti a gymnázium v Bratislave, Inštruktor Letného denného tábora FMFI UK). Má dvadsaťročnú prax vo vzdelávaní detí ako lektor a autor vzdelávacích materiálov. Má rovnako skúsenosť ako facilitátor arteterapeutických skupín dospelých a hľadá prieniky medzi animovanou tvorbou a technológiami.
Ako sa nepredávkovať návodmi
Tipy a triky
10.02.2019
Lubo Herkoo

Ako sa nepredávkovať návodmi

Tak. Rozhodol si sa naučiť programovať (na Skillmea si správne!). Je jedno, či chceš byť Web Developer (FrontEnd, BackEnd), chceš sa vzdelávať v konkrétnom jazyku (PHP, JavaScript, Java, C#), alebo si sa ešte nerozhodol, a chceš sa len naučiť programovať. Aj keď kniha má svoje čaro, môžeš ju čítať aj elektronicky, s videom to však ide najrýchlejšie. Tvoji rodičia si pri pohľade na Teba možno myslia, že mrháš časom, Ty však vieš, že investuješ do seba. Správne! Nad kurzami môžeš stráviť dlhé hodiny. Niektoré z nich majú aj viac modulov. Každý má však aj svoj koniec. Zámer autora kurzu predsa nebol získať sledovanosť pre jeho videá, ale chcel ťa niečo naučiť. Možno si sa už ocitol v tom začarovanom kruhu, kedy po ukončení jedného kurzu hľadáš hneď ďalší, ktorý ťa posunie na vyššiu úroveň. A potom ďalší a ďalší.. Na vyššiu úroveň však už tutoriály a prepisovanie kódu z obrazovky nestačí. Ani jednoduché zadania lektorov z video kurzov nie sú postačujúce. Na vyššiu úroveň treba prax, treba tvoriť, pracovať na projektoch, vytvárať portfólio. [Ak sa chceš naozaj posunúť v programovaní vpred, pusti sa do zaujímavého projektu.] Portfólio programátoraV zaujímavom CV nemusí byť veľa projektov. Ten, kto ho bude čítať vie, či Tvoje portfólio obsahuje zaujímavé projekty, kde si sa stretol s nejakými výzvami. Pri absolvovaní kurzov si možno vytvoril jednoduchú aplikáciu na správu poznámok v Markdown formáte. Alebo sociálnu sieť, Twitter podľa tvojej chuti. Všetko sú to však projekty, ktoré každý pozná a vie, že nájdeš kopec zdrojov ako takúto aplikáciu napísať a tvorba takéhoto projektu bola len akýmsi light fitness pre tvoju hlavu. Najdôležitejšie na tom však je, že tie projekty nie sú tvoje. Tvoj projekt predsa začína prázdnym priečinkom, možno vytvorením index.html súboru, pokračuje nekonečným Google hľadaním riešení tvojich front-end alebo back-end problémov, implementáciami tvojich vylepšení, tvojich riešení, testov a refactoringu tvojho kódu. V repozitári vidieť, ako dlho si na projekte pracoval a ako sa projekt vyvíjal. [Pri práci na projektoch nestojíš na jednom mieste, ale tvoríš, učíš sa a rastieš.] Na čom teda začať makať?Každý programátor si dobré nápady na aplikácie chráni. Návšteva programátorského fóra s otázkou typu “Nemáte náhodou nápad na nejaký zaujímavý projekt?” bude skôr cieľom posmechu ako zdrojom nápadov pre tvoje projekty. Nezúfaj, mám pre Teba niekoľko rád ako svoj mozog nenechať oddychovať príliš dlho. Projekty som nevymyslel sám, väčšinou sú to projekty inšpirované existujúcimi aplikáciami, alebo všeobecne známe zadania. Pridal som k nim však aj odkazy na dokumentáciu, aby si netrávil čas hľadaním kde a ako začať. Niektoré projekty možno nekorešpondujú s tvojou ideovou predstavou a môžu byť menej zaujímavé, keď sa však rozhodneš na ňom pracovať získaš hneď niekoľko výhod: • Nestojíš na jednom mieste, ale tvoríš, učíš sa, rastieš, • stretávaš sa s problémami (ver mi, bude ich čím ďalej tým menej), na ktoré hľadáš riešenia, • objavuješ nové spôsoby riešenia problémov, tvoje staré riešenia už nestačia, alebo sú neefektívne. Level 1 - jednoduché projektyLunch picker • Takáto appka už existuje, ale urob vlastnú verziu. Podstata je, že vždy keď sa nevieš rozhodnúť, kam s kamošmi pôjdeš na pivo, nechaj to na výpočtovú silu. • Zadanie môže mať dve úrovne: Prvá úroveň je, že databázu miest na "zábavu" si vytvoríš sám a appka náhodne vyberie niektorú z nich. Druhá úroveň by bola, ak použiješ niektoré existujúce API (Google Reviews), ktoré ťa vie lokalizovať a databázu získaš odtiaľ. Collection tracker • Publikuj svoju zbierku "čohokoľvek" vo forme katalógu. Premysli štruktúru kažej položky, skús ich kategorizovať, implementovať vyhľadávanie. Jednoduchý projektík o niečom, čo ťa skutočne baví. • Zadanie môže mať dve úrovne: Prvá vo forme jednoduchej MVC aplikácie s Bootstrapom, napísaná v Laraveli alebo RubyOnRails. Väčší skiller si môže trúfnuť navrhnúť API a dizajn implementovať v niektorej JS library - VueJS, React.  Spoiler blocker pre clanky • Poznáš to - píšeš recenziu niektorého obľúbeného filmu alebo knihy a nechceš čitateľa tvojho textu nepríjemne prekvapiť vyzradením deja, alebo kľúčovej informácie. Podobne ako fungujú "Zobraziť viac" odkazy, môžeš takúto informáciu ukryť aj pod "Spoiler alert" odkaz. Spoiler v texte môžeš oddeliť pomocou data atribútu pre tvoj <p> element: <p data-spoiler="true">Spoiler text...</p>. • Zadanie môže mať dve úrovne: Prvá vo forme jednoduchého inline javascriptu, ktorý spustíš niekde na konci svojho textu pomocou <script> tagu. Druhá úroveň vo forme malej knižnice s využitím Module Pattern, ktorú môže použiť vo svojom Wordpresse ktokoľvek. Tax forecaster • Aj keď politici sa nás snažia presvedčiť, že si zaslúžime istoty, jedinou istotou v živote sú dane. Navrhni nejakú jednoduchú appku, ktorá bude zbierať sumy tvojich freelance faktúr na základe vzorca, ktorý zistíš online (a naučíš sa pritom aj prečo platíš toľko na daniach). • Zadanie môže mať dve úrovne: Prvá úroveň je samotný jednoduchý výpočet - zadáš číslo a dostaneš hodnotu, ktorú zaplatíš štátu. Druhou úrovňou môže byť databáza s históriou tvojich FA a implementácia grafov, kde môžeš s pomocou knižnice D3.js vykresliť pekné reporty, koľko si zarobil a ako sa tvoj zárobok vyvíjal. Ak ťa vystrašila dokumentácia D3.js, môžeš sa skúsiť pohrabať v knižniciach, ktoré používanie D3js zjednodušujú. FlashCard generator • Ak si v štádiu učenia sa (čo by si mal byť neustále) a snažíš sa zapamätať si niektoré dôležité informácie, koncepty alebo čokoľvek, osvedčená technika pamätania si vecí sú FlashCards. Navrhni appku, ktorá si z databázy, alebo JSON objektu vyberie pole dvojíc, kde prvým prvkom dvojice bude nejaký stručný popis a druhým prvkom bude informácia, ktorú si máš zapamätať. Tu je inšpirácia. • Zadanie môže mať dve úrovne: Prvou je implementácia, akú použili v ThoughtBot - teda informácia, ktorú sa snažíš naučiť sa len objaví pod heslom. Druhou úrovňou môže byť využitie CSS na zaujímavú animáciu, aby to vizuálne vypadalo ako ozajstné "otočenie karty". Level 2 - stredne náročné projektyBring your umbrella • Ak nestíhaš ráno sledovať počasie, automatizuj to. Napíš appku (najviac sa asi hodí mobilná appka, ale užitočná môže byť aj webová aplikácia), ktorá ťa lokalizuje a s využitím API ti pripomenie, aby si si nezabudol zobrať zo sebou dáždnik - v okolí tvojej lokality bude totiž pršať. Webová appka ti môže poslať e-mail notifikáciu. • Zadanie môže mať dve úrovne: Prvou môže byť aplikácia bez grafického rozhrania. Druhou môže byť plnohodnotná weather appka prispôsobená tvojim potrebám a grafickým nárokom. Music suggestion app • Spotify má tiež svoje API. To môžeš použiť na vytvorenie zoznamu skladieb, ktorý budeš tvoriť na základe počúvaných skladieb, ich žánru a iných dostupných dát. Takto získaš dáta o skladbe, ktorú používateľ práve počúva. Tu je dokumentácia, ako pracovať s playlistom. Expense tracker • Vo forme mobilnej appky alebo webovej aplikácie môžeš vytvoriť aj svoj tracker príjmov a výdavkov. Ich kategorizácia a kreslenie grafov by malo byť samozrejmosťou. Ak sa ti podarí vyriešiť problém manuálneho zadávania bločkov, daj mi vedieť - do takej aplikácie rád zainvestujem. V Datamolino už vedia ako na to. • Najväčšou challenge pri tomto projekte je asi UI/UX - aplikácia by sa mohla učiť moje zvyky a inteligentne mi podsúvať dáta (kategorizáciu, tagy) podľa histórie mojich nákupov pri vytváraní jednotlivých položiek. Na základe týchto tagov a kategórií mi oznámiť, kde by som mohol nabudúce ušetriť.  Downtime tracker • Ak máš obľúbený web, alebo plánuješ niekoľko svojich projektov, môžeš testovať, či náhodou tvoje aplikácie nemajú nejaký problém. Jednoduchým scriptom pristúpiš na URL svojej aplikácie a ak skript nevráti HTTP Response 200, tak ťa tracker notifikuje emailom, že sa niečo deje. • Zadanie môže mať dve úrovne: Prvou úrovňou môže byť notifikácia emailom. Druhou úrovňou môže byť notifikácia pomocou SMS brány (Twilio), alebo web hook do tvojho Slacku - ak používaš slack. Level 3 - náročnejšie projektySlack bot • Ak poznáš Slack a inšpiruje ťa automatizácia, programovanie botov je teraz in. Niektoré vývojárske tímy denne absolvujú "standup" - odpovedia na jednoduché otázky týkajúce sa aktuálneho projektu/zadania (na čom pracujú, v akom sú štádiu, či sa na niečom zdržali a podobne). S pomocou Slack API môžeš vytvoriť jednoduchého bota, ktorý kontaktuje vývojárov z tvojho teamu a opýta sa ich zopár otázok. Ich odpovede môžeš zozbierať a vyhodnotiť v jednej správe, ktorú odošleš do #dev kanála.  Microlearning app • Denne by si mal venovať nejaký čas svojmu vzdelávaniu - aby si ako programátor rástol. Ak sa účíš napríklad React, alebo VueJS - môžeš skúsiť použiť (alebo napísať vlastný) web scrapper a získať tak jednotlivé sekcie dokumentácie. Denne ti tvoja microlearning aplikácia môže poslať jednu sekciu/stránku z tejto dokumentácie e-mailom na štúdium. Web scraper • Nájdi svoj obľúbený e-shop a skús vytvoriť vlastnú databázu jeho produktov, kategórií spolu s obrázkami. Web scraping je zaujímavou a nie jednoduchou témou pre programátorov, pretože ku každému webu, ktorý chceme scrapovať musíme pristupovať individuálne. • Hint: Pred tým, ako sa pustíš do scrapovania niektorej domény, skontroluj v nazov-domeny.sk/robots.txt, či náhodou doména nemá blokovaných niektorých botov. Quiz Maker • Ak sa nudíš, môžeš prispieť aj k efektivite nášho školstva. Keď som učil ja, učitelia používali Hot Potatoes ako ich testovaciu platformu. Alebo vytlačené testy s kolonkami. Vstupom do tvojej quiz platformy môže byť JSON, ktorý bude obsahovať vhodne zvolenú štruktúru testovacích otázok, možných odpovedí a označenia správnej odpovede. • Zadanie môže mať tri úrovne: Prvou môže byť vygenerovanie testu z holého .json súboru. Druhou môže byť vytvorenie adminstračného rozhrania, kde si testujúci otázky a možné odpovede vykliká vo formulári. Treťou úrovňou môže byť implementácia rôzneho typu testovacej otázky (jedna správna odpoveď, viac správnych odpovedí, dopísanie správnej odpovede, zoradenie do správneho poradia, vytvorenie správnych párov, ...) Browser extension • Naštuduj si ako pracujú browser pluginy a zvýš svoju produktivitu blogovaním distraktorov. Inšpiráciou ti môže byť BlockSite - výborný extension na blokovanie stránok. • Blokovanie stránok však nemusí byť jediný tip na doplnok do prehliadača. Doplnky sú fajn na zvýšenie produktivity, teda rôzne poznámkové doplnky, časovače (pomodoro), vytvorenie snímky z aktuálnej stránky a všeličo možné. Programátorské výzvy - algoritmické úlohyAk nehľadáš nápad na projekt, ale radšej by si sa zdokonalil v riešení algoritmických úloh, mám tu niečo aj pre Teba: 1. Advent of code • Adventný kalendár programátora (každý rok obsahuje nové zadania). Obsahuje 25 zadaní orientovaných na precvičovanie algoritmického myslenia. Ideálne na raňajšie prebudenie mozgu, niektoré úlohy však môžu zabrať viac času. Súčasťou je aj leaderboard, tam sa ja radšej ale nepozerám. • Zadania môžeš riešiť v ktoromkoľvek jazyku 2. Project Euler • Podobne ako Advent of Code, aj toto je zbierka zadaní, ktoré sú však už len archívom. To však neznamená, že neobsahuje dostatok zadaní - je ich tam takmer 650. Pri každom zadaní je uvedený aj počet ľudí, ktorí zadanie vyriešili. • Zadania môžeš riešiť v ktoromkoľvek jazyku 3. Daily Coding Problem • Toto je mailinglist, ktorý ti každý deň pošle jeden programátorský problém, ktorý môžeš rozlúsknuť. Problémy z tejto banky pochádzajú z pracovných pohovorov vo firmách, ako sú Google, AirBnB, Facebook, Apple a rôzne iné. Ich obtiažnosť je preto niekedy dosť vysoká. Ak sa ale pripravuješ na pracovný pohovor, tieto úlohy ti môžu pomôcť. • Nevýhodou je, že k riešeniam sa dostaneš až ak si ich predplatíš. Aby sme to zhrnuli. Hodnota každého programátora sa ukrýva v jeho portfóliu. Sú to práve tvoje vlastné projekty, ktoré ťa budú reprezentovať na pohovore, ktoré ťa odlíšia od konkurencie. V článku sme ti poskytli tipy na zaujímavé projekty, ktoré obohatia tvoje CV, ale predovšetkým posunú ťa ďalej, postavia pred nové výzvy a prekážky. A to ako dobrý programátor určite potrebuješ.
Java persistence – JPA, Hibernate, ORM
Tipy a triky
05.02.2019
Skillmea

Java persistence – JPA, Hibernate, ORM

JPA je java persistence api špecifikácia. Na to, aby si mohol používať JPA v skutočnej aplikácii, potrebuješ implementáciu JPA. Buď použiješ servery, ktoré už ponúkajú implementáciu JPA, ako napríklad GlassFish, alebo použiješ implementáciu, ktorú ti poskytuje framework Hibernate alebo EclipseLink. Ak používame JPA štandardy, tak je v budúcnosti úplne jedno, akú implementáciu JPA budeme používať. Pri programovaní budeme používať JPA anotácie, ktoré pochádzajú z balíka javax.persistence. V budúcnosti môžeš nasadiť aplikáciu na GlassFish, ktorý pozná javax.persistence a vie s tým pracovať alebo na Tomcat s použitím Hibernate, ktorý tiež pozná javax.persistence a vie s tým pracovať.  Čo je Persistence?Ak vytvoríš hocijaký jednoduchý objekt, čo sa stane? Napríklad objekt Adresa? Vytvorí sa v halde – v pamäti. Objekt môže mať nasetované nejaké dáta – informácie. Ak sa ale stratí referencia v javovskom kóde na tento objekt v halde – tak sa zmaže.  Ak si chceme uchovať tieto informácie, tak ich môžeme uložiť do databázy a najlepšie, aby po vytiahnutí z databázy mali tieto dáta tú istú formu – teda formu objektu Adresa.  Tomuto sa hovorí, že persistujeme (uchováme stálosť) objekt do databázy. Akoby tento objekt existoval aj mimo java programu. Tento objekt sa uchová v úložisku a znovu sa vytvorí, ak bude treba.  Čo je ORM?Klasické databázy ako Oracle, MySql a podobne sú relačné databázy, ktoré majú dáta uložené vo forme tabuliek. V jave ukladáme dáta vo forme objektov, v databáze vo forme tabuliek. Ale čo majú podobné? V relačnej databáze máme stĺpce, ktoré majú názvy a v riadkoch máme hodnoty. Niečo ako klúč hodnota – to isté platí aj pre objekty v jave – tam máme názov premennej a hodnotu v nej uloženú.  Tu prichádza pod ruku ORM – teda object relational mapping. Je to niečo ako objektovo relačné mapovanie. My naše java objekty namapujeme na tabuľky relačnej databázy. Aby sme vedeli, že tento field v javovskom objekte patrí do tohto stĺpca.   Objekty v jave sú medzi sebou prepojené pomocou uloženia referencie na daný objekt. Napríklad človek má field Adresa, kde je uložená referencia na objekt Adresa.  Relačné tabuľky majú medzi sebou tiež väzby. Buď máme v tabuľke pre človeka stĺpec adresa, kde bude uložený identifikátor adresy a na základe tohto identifikátora nájdeme danú adresu. Alebo existuje špeciálna tabuľka, kde budú dva stĺpce jeden pre identifikátor adresy a druhý pre identifikátor človeka. My potom vieme nájsť, aké adresy má človek nastavené, alebo pre akého človeka je nastavená daná adresa.[Image] Problém s JDBC prístupom – výhoda ORMV kurze Java pre pokročilých, ak si tento kurz videl, sme si ukazovali prístup k databáze cez JDBC. Čo sme spravili? Otvorili sme konekciu na databázu, napísali sme sql príkaz, ktorý sme následne poslali do databázy na vykonanie. Databáza nám vrátila výsledok vo forme result setu.  Predstav si, že máš len 5 až 10 tabuliek. Nad každou tabuľkou máš napríklad 4 rôzne sql príkazy – to máme približne 20 – 40 sql príkazov. Ak sa ti stane, že musíš zmeniť databázu – napríklad zmeníš názov stĺpca v tabuľke? Čo musíš spraviť? Musíš prepísať názov tohto stĺpcu na xy miestach – na 20 až 40 miestach – a to sme len v malej aplikácii – čo ak by to bolo na 100 miestach?.  Bol by v tom neporiadok a mohli by nastať problémy.  Ak ale použijeme ORM, tak v jave pracujeme s naším kódom, tak ako bežne. Vytvoríme si objekty typu Clovek, nastavíme mu nejaké hodnoty. Ďalej si vytvoríme kolekciu Adries pre daného človeka. Nakoniec v ORM frameworku povieme len persistni mi tento objekt. ORM sa potom postará o všetko uloženie týchto objektov do databázy na základe mapovania, ktoré mu poskytneme.  Clovek clovek = new Clovek(); clovek.setMeno("Jaro"); clovek.setPriezvisko("Beno"); Adresa adresa1 = new Adresa(); adresa1.setUlica("Nejaka 5"); adresa1.setPSC("94404"); Adresa adresa2 = new Adresa(); adresa2 = new Adresa(); adresa2.setUlica("Nejaka 5"); adresa2.setPSC("94404"); List<Adresa> adresaList = Arrays.asList(adresa1, adresa2); clovek.setAdresaList(adresaList); orm.persist(clovek); Ak by sme nepoužili ORM, sami by sme museli napísať metódu, ktorá nám otvorí konekciu na databázu, museli by sme napísať INSERT SQL príkaz pre človeka a potom aj pre jeho adresy a museli by sme zabezpečiť, aby sme nastavili všade dáta tam kde majú byť a musíme sa postarať aj o prepojenia medzi týmito dvoma objektami.  Ak ale použijeme ORM, tak sa nemusíme starať o tento balast kódu, ale sústrediť sa najmä na to, čo predáva a to je business logika aplikácie.  Nevýhody JDBC prístupu sú teda, že máme príliš veľa SQL príkazov, veľmi veľa kópie kódu, ručne sa musíme postarať o nastavenie dát do správnych stĺpcov.  Výhodou ORM je, že nemusíme robiť tieto veci z predchádzajúcej vety. ORM nám umožní používať java objekty na reprezentáciu relačnej databázy. ORM sa nám postará aj o prepojenie závislostí. ORM spojí výhody relačnej databázy a objektového modelu v jave plus schová všetku komplexitu SQL príkazov.  Čo je Hibernate? Hibernate je ORM – object relational mapping framework, ktorý slúži na mapovanie java objektov na tabuľky relačných databáz.  Java programátori sú zvyknutí písať kód v objektoch, prečo teda potrebujú ďalší jazyk – sql – na získanie dát z databázy? Hibernate na pozadí sám vytvára sql príkazy nad databázou a preto nemusíme písať sql príkazy my.  Ak chceme uložiť mapu objektov, napríklad Cloveka, ktorý ma Adresu, alebo aj viac objektov typu Adries, tak nemusíme písať všetky sql príkazy. Stačí, ak zavoláme jednoduchú metódu na uloženie objektu do databázy a hibernate sa postará o zvyšok.  Hibernate je aj implementácia JPA. [Image] Čo je JPA?Skratka JPA je Java Persistence API. Čo to znamená? V jednoduchosti povedané – je to štandard. Trošku zložitejšie povedané – je to špecifikácia pre OR mapovanie a je súčasťou Java EE, ale môžeme ju používať aj v Java SE projektoch.  Niektoré servery poskytujú vlastnú implementáciu JPA a niektoré nie – v tom prípade použijeme napríklad Hibernate implementáciu.  Predstav si, že celý tvoj kód používa veci z JPA. Teraz je na tebe, kam nasadíš svoju aplikáciu. Ak ju nasadíš na Glassfish nemusíš prerábať svoj kód, ktorý používa JPA – Glassfish ho pozná. Ak svoju aplikáciu nasadíš na Tomcat, tak mu prihodíš Hibernate, ktorý tiež pozná JPA. Potom tvoj kód bude fungovať všade – lebo používa štandardy JPA.  Je možné aby sme používali len Hibernate – teda by sme nepoužívali nič zo štandardov. Žiadne anotácie z javax.persistence a podobne – to ale neodporúčam.  Pýtal som saNapadlo mi, že by nebolo od veci spýtať sa kolegov developerov, čo si myslia o JPA a Hibernate. Ak by si si chcel prečítať ich názory, nech sa páči – bez cenzúry, citujem:  Tak toto je náročná téma a navyše zložitá.  JPA resp. ORM všeobecne (a teda aj Hibernate) sú vždy zložitejšie, než si používatelia (t.j. vývojári) uvedomujú. Výsledkom sú často nenápadné chybičky, lazy load exceptions, ktoré vedú k anti-patternom ako je OSIV (open session in view) alebo k výkonovým problémom (n+1 problem).  Týchto problémov je typicky o to viacej, o čo zložitejšie je mapovanie – a pritom práve na riešenie zložitého mapovania bolo ORM vymyslené. Aby sme mohli namapovať doménu do DB. Na to, sa často používajú aj “mimojazykové” triky ako reflection na private polia, takže objekty sú implicitne zviazané s ORM riešením, aj keď napr. mapovanie je oddelené do XML namiesto anotácii, čo samo o sebe je tiež nepraktické.  Okrem toho majú obe hlavne implementácie dosť bugov na to, aby na ne človek narazil, aj keď postupuje v súlade so špecifikáciou – stačí len chcieť trosku viacej a na nejaký bug určite narazíte. Takže potom to je kľučkovanie medzi bugmi a často komplikovaná možnosť vymeniť ORM providera.  Čo sa mi na ORM páči je lepšie mapovanie typov, možnosť customizovať mapovanie a podobne. Preto používam JPA aj na jednoduché mapovačky namiesto JDBC.  Navyše s JPA používam rad Querydsl, ktoré je lepšie/intuitívnejšie, než JPA štandardné Criteria API.  Hibernate používam dlho ale pravdu povediac nikdy som sa veľmi nezamýšľal nad výhodami. Zatiaľ som nemal výraznejší problém, ktorý by som nevedel vyriešiť, prípadne nejako obísť.  Plusy:  - ľahko sa robí mapovanie do DB s anotáciami aj pre začiatočníka bez veľkých znalostí databázy, zároveň ale bez znalosti DB môže byť mapovanie neefektívne  - je open source, takže ak potrebujem, viem pozrieť zdrojáky ako funguje  Mínus:  - asociácia OneToOne fetch=lazy nefunguje  Na používaní Hibernate/JPA (celkovo ORM vrstve) sa mi páči:  A) Abstrakcia od fyzického dátového modelu. Vývoj nad doménovým/logickým (entitno-relačným dátovým modelom) - bližšie k biznis vrstve. Čiže zjednodušené práca s objektami namiesto tabuliek.  B) Možnosť využívať rôzne pokročilejšie techniky získavania dát (napr. Spring Data JPA, ale aj zjednodušujúce Hibernate Query by example)  C) Agnostické od konkrétnej databázovej technológie (Oracle, MySql, ...)  D) Cachovanie a optimalizácia (napr. lazy loading)     Nevýhody:  A) Niekedy náročný (až nemožný) performance tuning.  B) Pri niektorých technológiách pomalšia krivka učenia.  C) Aj napriek používaniu JPA/Hibernate, je takmer nevyhnutné, aby developer poznal aj (native) SQL jazyk a jeho použitie.  ZáverPodarilo sa ti nazrieť do problematiky objektovo relačného prístupu k databáze a pochopil si, čo to znamená. Ak sa však chceš dostať ešte o level ďalej, pripravili sme pre teba samostatný kurz Java persistence – JPA a Hibernate. Ak chceš ešte viac, tak klikaj:👍 Viac o mne: http://www.jaroslavbeno.sk/  👍 Kurzy (java, git, maven, bootstrap, Asp .Net,): Learn2Code moje kurzy 👍 Free kurzy: YouTube kanál JaroslavBeno
Je programátorská súťaž Galaxiáda útok na mozog?
Podujatia
31.01.2019
Skillmea

Je programátorská súťaž Galaxiáda útok na mozog?

Žiaci základných škôl a prvého stupňa 8-ročných gymnázií si môžu zmerať sily na jednej z najatraktívnejších slovenských súťaží. Schopnosť vymýšľať algoritmy a naprogramovať počítačovú hru dá vášmu dieťaťu viac ako len nové zručnosti a vedomosti. ,,Programovanie zlepšuje kritické myslenie dieťaťa. Aj keď sa z neho v budúcnosti nestane IT odborník, zručnosti nadobudnuté programovaním využije v práci ako aj v praktickom živote,“ hovorí Marián Kristeľ z Learn2Code, spoluautor súťaže Galaxiáda. Galaxiáda sa skladá z dvoch kategóriíTvorba hier je súťaž v tvorbe počítačových hier, ktoré vytvorí žiak jednotlivo alebo v tíme. Táto kategória je určená pre žiakov 2. stupňa základných škôl a prvých 4 ročníkov 8-ročných gymnázií. Hry môžu byť vytvorené v ľubovoľnom vývojárskom prostredí ako Scratch, JavaScript, Unity3D, Game Maker, Python. Žiaci môžu svoju hru prihlásiť na webe do 14. apríla 2019, následne bude prebiehať verejné i odborné hlasovanie.[Image]  Kategória Programovanie v GalaxyCodr sa skladá z dvoch kôl. V prvom kole (ktoré sa uskutoční 20. marca 2019) budú žiaci súťažiť v desiatich programovacích úrovniach hry GalaxyCodr priamo na pôde vlastnej školy. Do druhého kola sa prebojuje dvadsať najlepších z celého Slovenska, ktorí najrýchlejšie vyriešia jednotlivé zadania.[Image]  Metodik a učiteľ Ľuboš Jaroš vidí prínos Galaxiády v tom, že súťaž nabáda deti, aby splnili nielen didaktické ciele, ale si aj vyskúšali riešiť nepovinné bonusové úrovne. Program Galaxycodr tak v prvom rade vzbudzuje v deťoch pocit, že sa ,,len“ hrajú hru. ,,Táto hra je útok na mozog, “ aj tak prejavili nadšenie deti, s ktorými sa GalaxyCodr venuje dlhodobejšie. ,,Oceňujú vizuálnu atraktívnosť prostredia a to, že samotné programovanie úloh je prezentované ako zábava,” pokračuje Jaroš.  Autori najlepších projektov a najrýchlejší riešitelia úloh v GalaxyCodr získajú digitálne vybavenie pre seba a pre školy a čaká na nich zaujímavý sprievodný program na slávnostnom vyhlásení výsledkov v máji v Žiline. Všetky ďalšie informácie nájdete na našom webe: www.galaxiada.sk
Manuálne vs. automatizované testovanie
Tipy a triky
25.01.2019
Skillmea

Manuálne vs. automatizované testovanie

Rád si v detstve všetko rozoberal, špekuloval a škodoradosť hrala v divadle tvojich ranných emócií prím? Si tu správne. Pretože presne to sú hlavné črty testera. Len opatrne s tou škodoradosťou 😉 Manuálne testovanie nie je hanba!Neexistuje nič horšie, ako robiť stále to isté dookola. Našťastie, o tom manuálne testovanie nie je. Ale pekne postupne. Nepoznám krajší pocit v práci (okrem piatkového fajrontu) ako keď ja, človek, ktorý študoval dojivosť kráv a hektárový výnos pšenice, nachytá programátora s nejakou chybou. Manuálne testovanie znamená zobrať novú časť aplikácie, usúdiť či zodpovedá tomu, čo si zákazník želal a popri tom nachytať programátorov. Pri testovaní postupuj rovnako ako pri boji s mafiou. Najskôr ideš po veľkých rybách - chybách, ktoré spravia najviac škody, malé si nevšímaš alebo ich preskočíš, pretože nie je čas. Nech narobíš programátorom dosť roboty. Potom ideš po tých menších, dizajnových vychytávkach, pretože majú rovnakú váhu ako predvčerajšia instastory každej druhej makeup artistky . Vymýšľaš, čo si ešte nevymyslel a ideš po chodníčkoch aplikácie, kadiaľ by sa normálny používateľ nikdy nevydal. Ale Jožo Pročko hovoril 20 rokov dozadu, že nikdy nehovor nikdy. Ako tester to nehovor ani ty. Rozum maká zozačiatku viac ako ruky, a to je fajn. Fajn to byť prestane, keď sa karta obráti a nedajboh, aby si musel dvakrát robiť to isté. Alebo 3-krát. Alebo 4-krát. Alebo furt. Si odsúdený na večnosť regresne testovať celú aplikáciu. Pretože ak sa zmení kód, je potrebné to celé preklikať. A v tento moment mozog vypínaš a pracujú len ruky. Spomínaš si, keď ti ako malému povedali, že ak sa nebudeš učiť, budeš kopať kanále? Toto je to isté, akurát sedíš v bizniscentre s ďalšími korporátnymi kopačmi. Našťastie tú robotu môžeš prenechať počítaču, pretože na rad prichádza... Automatizované testovanie je programovanie!Nechaj zase mozog makať a ruky oddychovať. Automatizované testovanie je o tom, že ty naprogramuješ robota, aby chodil po určitej dráhe, cestičke v aplikácii a on to bude robiť vždy, keď mu prikážeš. Nepredstavuj si robota ako terminátora, ktorý za teba sedí v kancli. A ani takto to nevyzerá:[Image] Ty vidíš, že stránka sa otvorí, ale kliká po nej robot na pozadí, ktorého NIEKTO naprogramoval. A tým niekým si TY. Si programátor so všetkou tou pompou a slávou, píšeš kód napr. v JAVA a vyvíjaš si vlastnú aplikáciu, logiku, ktorá testuje softvér namiesto teba. Zo začiatku je to trošku ťažkopádne ako štartovanie V3S-ky, ale keď tú mašinu raz rozbehneš, práca ti neúmerne až zázračne klesá. A o tom je automatizované testovanie. Robotu, ktorá sa tebe nechce nenecháš na kolegu, ktorý sa vrátil z dovolenky. Ani ju nenaučíš masturbovať, aby sa spravila sama. (cit. Vtipnejší vyhráva 09/1994) Ale prenecháš ju počítaču. A on sa nepomýli, nevynadá ti, nezoberie sa o 16:00 domov a neochorie, keď polovica kancelárie zalieva zázvor vriacou vodou. Nevýhodou však je, že počítač vidí len toľko, koľko ho ty naučíš. Nie je inteligentný a nevidí veci v súvislostiach. Nevie si niečo všimnúť. Povieš mu slová František a Lászlo a on sa nezasmeje. Ani ty sa dúfam nesmeješ. A ešte si dávaj pozor, ako píšeš kód, aby si ho nemusel po sebe 30x opravovať, ak sa na stránke niečo zmení. Pretože to je tiež bolesť, neustále dohľadávať chyby v testoch. Poďme si porovnať manuál a automat. Výhody, nevýhody, kedy ktoré použiť.Manuálne testovanie+ hľadanie nových chýb v aplikácii, exploratory testing + objavenie dizajnových prešľapov + rýchla odpoveď na stav softvéru + improvizácia - nákladné - nevhodné na regresné testovanie - časovo náročné - nespoľahlivé (časový stres, prehliadneš chyby) - ako aplikácia rastie, rastú aj náklady na manuálne testovanie Automatizované testovanie+ regresné testovanie (pred vydaním do produkcie, po každej zmene) + rýchle + spoľahlivé + práca ti postupne ubúda - vyššie vstupné náklady (kým spustíš prvý test) - robot nové chyby nenájde - musíš vedieť programovať - údržba ZáverManuálne testovanie nemôže byť nahradené automatizovaným. Ak si manuálny tester, kľudne si vydýchni. A vydýchni si znovu, pretože ťa viem odbremeniť od tortúry, ktorú ti spôsobuje testovanie po každej jednej zmene. Naučím ťa programovať robota. Základy programovania a automatizovaného testovania ťa naučím v kurze s Batmanom: http://bit.ly/batmanKurz Ako písať efektívny kód, vedieť si postaviť Maven projekt, rozbehať jenkins, to ťa naučím v tomto kurze: http://bit.ly/jokerKurz A ako ten kód pekne zabaliť do jagavého pozlátka, aby mu každý rozumel ťa naučím v kurze s uhorkou: http://bit.ly/cucumberKurz Autorom blogu je Martin "Furby" Škarbala. Keď ťa zaujíma oblasť testovania softvéru, určite daj lajk na jeho Facebook stránku.
Pripravované online kurzy 1. kvartál 2019
Novinky
14.01.2019
Skillmea

Pripravované online kurzy 1. kvartál 2019

V prvom kvartáli 2019 pre teba chystáme viacero nových online kurzov. V tomto blogposte predstavíme tie najdôležitejšie novinky, na ktoré sa určite môžeš tešiť. Chystáme niečo z programovania, dizajnu, ale aj strihu videa. Java pre junior programátorovZavŕšenie trilógie kurzov zameraných na Javu od lektora Jara Beňa. Po online kurze zadarmo Java pre začiatočníkov sme sa pozreli na zúbok Jave pre pokročilých a v tomto treťom Java kurze sa naučíš všetko potrebné, aby si mohol začať pracovať ako junior Java programátor.[Image] UI dizajn v SketchiV tomto kurze nadviažeme na kurz Dizajn pre obrazovky a budeme sa už detailnejšie venovať UI dizajnu v parádnej aplikácii Sketch. Zistíš, čo všetko v Sketchi vieš robiť, aké má výhody oproti konkurenčným produktom od Adobe, ako navrhneš vlastný web alebo aplikáciu a zistíš, ako efektívne pracovať v Sketchi.[Image] Linux pre začiatočníkov IIMôžeš sa tešiť aj na pokračovanie kurzu Linux pre začiatočníkov. Pokročilejšie techniky a práca v Linuxe už bude pre teba malina. Plánujeme pre teba nachystať aj ďalší kurz na tému Linux, konkrétne Scriptovanie v Linuxe.[Image] Spring a Spring BootCieľom týchto online kurzov je poskytnúť základný prehľad o možnostiach frameworku Spring, s dôrazom na vývoj webových a REST-ful aplikácií. Spring je rokmi odskúšaná a overená alternatíva k JEE. Poskytuje jednoduchý, ale flexibilný programovací model, ktorý umožňuje efektívne vyvýjať robustné aplikácie v Jave. Kurz je ideálnym štartom pre tých, ktorí chcú začať využívať Spring vo svojich projektoch. [Image] Adobe Premiere RushAdobe Premiere Rush je cross-device aplikácia, pomocou ktorej vieš editovať videá. Pomocou Adobe Rush vieš nahrávať videá, upravovať ich, upravovať ich farbu, nahrávať a upravovať zvuk, pridať animované titulky a publikovať na sociálnych sieťach. Okrem desktopovej verzie aplikácie je k dispozícii aj mobilná verzia, v kurze vysvetlíme oboje. [Image] Adobe After EffectsPre začiatočníkov chystáme online kurz zameraný na Adobe After Effects, v ktorom ťa naučíme efektívne pracovať. Osvojíš si prácu s používateľským prostredím a jeho nástrojmi, naučíš sa animovať text a pracovať s hudbou, ovládaním vrstiev a módami prelínania.[Image] Ak ťa zaujímajú nejaké otázky na dané kurzy, smelo ich napíš do komentára. Budeme vďační aj za tipy na kurzy, ktoré by si na Learn2Code chcel vidieť.  A pokiaľ chceš nejaký online kurz s nami vytvoriť, určite nás neváhaj kontaktovať. Tešíme sa na teba!
Success story: začínajúci frontenďák Milan
Success stories
21.12.2018
Skillmea

Success story: začínajúci frontenďák Milan

Milanovi učaroval frontend a išiel tvrdo za svojim cieľom. Makal na sebe, vzdelával sa, absolvoval viacero online kurzov. Išiel s kožou na trh a hľadal si prácu ako frontend programátor a aj sa mu to podarilo. Aktuálne zarezáva v digitálnej agentúre z Liptovského Mikuláša a robí to, čo ho baví. Prinášame ti rozhovor s Milanom a veríme, že jeho príbeh ťa inšpiruje. Čítaj ďalej. Ahoj Milan, začnime tvojou aktuálnou prácou. Čo presne robíš, aká je tvoja pozícia?Ahoj, tak že momentálne pracujem na pozícií Front-end developer vo firme Webidentity, ale pomaly sa snažím vnárať do Back-endu, a to tak, že nasadzujem šablóny do CMS systému drupal, alebo ak ide o eshopy, tak do systému Prestashop.[Image] Milan Blaško - začínajúci frontenďák Ako si sa k tejto pozícii dostal? Keďže pred letom som skončil v bývalej robote, pretože som sa chcel posunúť zase ďalej, našiel som si robotu v Bratislave. No na konci leta som objavil ponuku práce v skupine Webrebeli od firmy Webidentity. Okamžite sme sa kontaktovali a nakoniec som tam aj začal pracovať. Potešilo ma to hlavne preto, lebo som mohol ostať v Liptovskom Mikuláši. Máš nejaký vzor, ktorý ťa inšpiruje? Osobu, ktorá je pre teba motivátorom?Určite môžem povedať, že vážnejšie k tvorbe webových stránok ma doviedol Yablko so svojím kurzom Webrebel HTML/CSS. Ale tak isto je vzorom aj môj šéf Juraj, ktorý ovláda tvorbu a programovanie stránok na vysokej úrovni. Kde berieš inšpiráciu pre svoju prácu? Máš nejaké tipy a hacky, ktoré zaručene fungujú?Inšpiráciu beriem všade po internete alebo od svojich spolupracovníkov. Zaručené hacky nemám, pretože stále narážam na niečo nové, čiže nič konkrétne nemám. :D V tejto oblasti je potrebné sledovať aktuálne trendy, inovácie. Ako si na tom ty? Stíhaš to všetko popri práci?Musím povedať, že odkedy pracujem, tak už je toho času menej, teraz sa skôr učím konkrétne veci ktoré využívam, respektíve ak narazím na nejaký problém tak sa to snažím riešiť buď so šéfom alebo hľadám riešenia na internete. Určite sa v najbližšom čase chcem viac venovať kurzom JavaScriptu, hlavne novému kurzu VUE.js.[Image] Milan už pracoval na projektoch pre viacero zaujímavých klientov Čím všetkým si si musel prejsť, pokiaľ si sa vypracoval na túto pozíciu?Musím priznať, že na začiatku to nebolo vôbec jednoduché, keďže som sa programovať učil popri vysokej škole. Hlavný problém bol, že som si chcel začať privyrobiť popri škole a chcel som to riešiť diaľkovo, no Front-endistu bez relevantých referencií ťažko niekde príjmu, nie to formou home-office. Nakoniec v poslednom ročníku sa mi podarilo na živnosť nájsť si prácu pre jednu firmu z Prahy. Čo ťa najviac baví na tvojej práci? Máš nejaký obľúbený task, ktorý robíš najradšej?Najviac ma na tejto práci báví sloboda. Hlavne, že môžem robiť z domu, z chaty alebo v kancli. Toto bolo pre mňa vždy dôležité. Ale určite aj rôznorodosť práce. Naozaj, človek sa tu učí projekt za projektom a väčšinou vždy robí niečo nové, čiže tá práce nie je stále jednotvárna. Ale ináč vždy som mal rád čisto Front-end, čiže kódovanie šablón.[Image] Milan vo voľnom čase rád varí pivo Dnes je obrovský dopyt po programátoroch a dizajnéroch. Čo by si poradil všetkým, ktorí nemajú žiadne skúsenosti, ale chceli by nejako začať?Určite odporúčam začať s kurzami, tie dajú dobrý základ a uvedú do problematiky. Potom hlavne skúšať písať reálny kód. Veľakrát som niečomu nechápal, veľakrát som urobil robotu zle, hlavne na začiatku, ale človek sa učí na vlastných chybách a čím dlhšie človek niečo robí, tým viac získava skúseností. Poradil by som aj ľuďom, aby si, čo najskôr začali hľadať stáže alebo prácu, pretože človek sa programovať najviac naučí pri reálnej robote, hlavne tam má skúsenejších kolegov, ktorí určite vždy radi pomôžu a posunú ho o poriadny kus ďalej. Čo je podľa teba najväčšou výhodou práce v IT odvetví?Ako som spomenul vyššie, predovšetkým je to sloboda v práci a že vždy človek robí niečo nové. Mal si niekedy pocit, že to nezvládneš? Bolo obdobie, kedy si chcel skončiť a robiť niečo úplne iné?Áno, bolo to hlavne pri kurzoch, často som si myslel, že som asi naozaj hlúpy, že veľa vecí jednoducho nechápem. Veľakrát som to chcel vzdať. Aj začiatky v zamestnaní boli ťažké, tiež som robil chyby. Ale po čase sa človek z vlastných chýb učí. Čím viac som tvoril webstránky, tým viac som všetkému začal rozumieť. Je to vždy o tom, že človek sa nemôže hneď vzdať a musí stále skúšať a byť vytrvalý v tom, čo robí. Aké sú tvoje plány do budúcnosti?Myslím, že jediný plán je zdokonaľovať sa v tom, čo aktuálne robím. Určite sa chcem stať senior Front-end developerom. Všetko ostatné už ukáže čas, čize nič konrétne v pláne nemám :) Máš nejakú radu, ktorú by si chcel zdieľať so študentami, ktorí len začínajú s dizajnom, tvorbou web stránok a programovaním alebo so svojím vzdelávaním v IT oblasti?Určite pokračovať v tom, čo začali. Učiť sa postupne veci, najlepšie prejsť všetko od základov, krok za krokom, neučiť sa všetko naraz a hlavne nenechať sa odradiť neúspechom. Všetko má svoj čas. Veľakrát sa mi stalo, že som si povedal, že na toto ja hlavu nemám, neviem sa to naučiť. Začal som pracovať, pozeral som si riešenia na internete a čo raz viac sa mi to dostaválo do hlavy. Hlavné je zotrvať. Ak máš na Milana nejakú otázku, smelo ju napíš do komentára k článku. Ďalšie úspešné príbehý absolventov Learn2Code kurzov si prečítaj v ďalších článkoch na našom blogu.
Java najnovšie verzie – Java 9 moduly (1. časť)
Vzdelávanie
09.12.2018
Skillmea

Java najnovšie verzie – Java 9 moduly (1. časť)

Od verzie 9 bude java vychádzať v pravidelných intervaloch. Každých 6 mesiacov nová java. Takže môžeme očakávať nové funkcionality častejšie, ale v menších dávkach. Najpoužívanejšia Java v súčasnosti je java 8 – vyšla v roku 2014. Java 9 prvýkrát vyšla v septembri 2017, neskôr boli opravené kritické chyby a dalo by sa povedať, že taká lepšia verzia vyšla v januári 2018. Java 10 vyšla v marci 2018, Java 11 v septembri 2018. Takže rýchly posun vo verziách, ale nie drastický posun vo funkcionalite.  Čo je lepšie? Naraz a veľa alebo menej a postupne? Záleží od toho, čo robíš. Ak používaš veľa frameworkov a knižníc tretích strán, tvoja práca po zvýšení javy môže byť ovplyvnená.  Prvým míľnikom je java 11, ktorá je označená ako LTS, teda long term support. Táto verzia javy bude dlhodobo opravovaná a bude o ňu postarané na najbližšie roky. Čo to znamená? Že je pravdepodobnejšie, že firmy poskočia z javy 8 skôr na javu 11, lebo budú mať istotu, že táto java bude v budúcnosti opravovaná – ak by sa našla nejaká kritická chyba.  V tomto článku sa zameriame hlavne na výpis zmien, čo je nové. Nebudeme sa zaoberať jednotlivými zmenami podrobne. To si necháme do budúcna.  InštaláciaNajprv si musíš stiahnuť a nainštalovať najnovšiu javu jdk. V čase písania článku je to Java 11. Nastav si premennú prostredia JAVA_HOME na novú javu – na root, nie na bin priečinok. Potom do PATH premennej nastav cestu práve na bin priečinok novo nainštalovanej javy.  Spusti príkazový riadok a zadaj príkaz: java – version  Ak sa ti objavila verzia, všetko je v poriadku. [Image] Ak je nejaká chyba, alebo ukazuje staršiu verziu, tak sa uisti, že v PATH je cesta bin novej javy nastavený na začiatku. Je možné, že v PATH máš nastavené aj C:\ProgramData\Oracle\Java\javapath. Ak áno, tak to musí byť až za cestou na najnovšiu javu.  ModulyV jave 9 je najskloňovanejšia zmena projekt Jigsaw – ale stačí, ak si zapamätáme, že ide o modularitu – rozdelenie veľkého monolitu – teda celá aplikácia v jednom balíčku na menšie celky – moduly. Moduly potom povedia, čo zverejňujú do sveta a čo požadujú pre svoju správnu funkcionalitu.  Každý modul obsahuje module-info.java súbor a aspoň jeden balík. Modul-info.java v sebe obsahuje popis závislostí, ktoré modul potrebuje. Každý modul je nezávislý v ponímaní, že ak obsahuje obrázky, alebo konfiguračné súbory, tak modul si ich manažuje sám. Všetko, čo je v module je privátne pre modul, ak nepovieme inak.  Existujú 4 typy modulov. System moduly – Java SE a JDK moduly – ak si všimneš, tak v nainštalovanom jdk pre novšiu javu chýba priečinok jre. Teraz tam je jmods. Tu máme umiestnené všetky už default poskytované moduly. [Image] Aplikačné moduly sú moduly, ktoré chceme vytvárať, keď sa rozhodneme, že chceme používať moduly.  Automatické moduly sa vytvoria, keď pridávame JAR súbory na path modulu. Názov modulu sa preberie z názvu jar súboru. Tieto automatické moduly majú plný prístup na čítanie do všetkých ostatných modulov načítaných na path.  Nepomenovaný modul = ak sa na path – nie na module path – načítajú nejaké triedy alebo jar súbory, tak tieto triedy a jar súbory sú automaticky pridané do tohto nepomenovaného modulu. Slúži na spätnú kompatibilitu s predchádzajúcim starším javovským kódom.  DistribúciaModul má byť zbalený ako jar súbor – jeden jar súbor má obsahovať max jeden modul. Keď robíme build projektu, musíme si dať pozor, aby sme zabalili každý modul v našom projekte ako samostatný jar.  Základné modulyVraveli sme si, že jdk má novú štruktúru, ktorá má v sebe jmodules. Tu sú základné moduly. Tieto moduly si vieme vypísať pomocou príkazového riadku ak zadáme príkaz <b>java --list-modules</b>. [Image] Každý modul, ktorý vytvoríme, bude používať implicitne java.base modul. Použitie iných modulov bude dostupné po konfigurácii.  Vytvorenie moduluModul v podstate vznikne, ak zadefinujeme v roote zdrojového kódu modulu súbor module-info.java.  Týmto momentom sa pracuje so zdrojovým kódom ako s modulom. Moduly sa navzájom nevidia – nemajú prístup jeden do druhého a do tretieho a tak ďalej. Podľa toho koľko modulov používame.  Ak chceš používať niečo z vonku, alebo chceš, aby vnútro tvojho modulu, alebo čas vnútra tvojho modulu bolo viditeľné, musíš to zadefinovať.  Majme projekt, do ktorého si zadefinujeme nový modul. V module máme src priečinok, do ktorého budeme dávať všetok zdrojový kód. Vo vnútri si zadefinujeme balíček sk.jaro.demo a v ňom ešte external a internal. Vytvoríme si jednoduché triedy, ktoré len niečo vypíšu na konzolu. [Image] package sk.jaro.demo.external; public class HelloMainModuleExternal { public void doAction() { System.out.println ("Hello main module HelloMainModuleExternal"); } }package sk.jaro.demo.internal; public class HelloMainModuleInternal { public void doAction() { System.out.println("Hello main module HelloMainModuleInternal"); } }Tieto triedy sú odlišné len v názve a výpise na konzolu. Internal si neskôr nastavíme, aby bola viditeľná len v module main. External si neskôr nastavíme, aby bola viditeľná aj mimo modulu main. V src tohto modulu si vytvor súbor module-info.java. Vnútro súboru má syntax, kde je najprv kľúčové slovo modul, potom názov modulu – vieš používať aj bodky a potom sú kučeravé zátvorky: modul nazovmodulu{ }. Chceme, aby balíček external bol dostupný aj pre iné moduly – musíme nastaviť aby sa exportoval. module main { exports sk.jaro.demo.external; }Teraz si vytvoríme nový modul v tom istom projekte s názvom utils. Vo vnútri budeme mať jednu triedu, v ktorej sa budeme snažiť použiť HelloMainModuleExternal triedu z modulu main. [Image] Module-info.java musí teraz obsahovať, že v tomto module vyžadujeme modul main – pretože používame funkcionalitu z tohto modulu.  module utils { requires main; }Teraz môžeme použiť triedy, ktoré boli exportnuté z main modulu:  package sk.jaro.demo; import sk.jaro.demo.external.HelloMainModuleExternal; public class UseSomethingFromMainModule { public static void main(String[] args) { HelloMainModuleExternal helloMainModuleExternal = new HelloMainModuleExternal(); helloMainModuleExternal.doAction(); } }ZáverNa záver by si sa mohol teraz s tým kúsok pohrať. Skús použiť triedu, ktorá nie je exportnutá z modulu main.  O moduloch by sa dalo písať a hovoriť viac, ale dúfam, že si porozumel princípu modularizácie. Mne v priebehu študovania tejto témy vybehlo pár otázok, na ktoré som si ešte neodpovedal. Napríklad: Maven s java modularizáciou? Frameworky a modularizácia?  Ak sa ti článok páčil, tak napíš niečo do komentárov, poteší ma to.  Zaujímaš sa o Javu? Skús jeden z kurzov na túto tému na https://skillmea.sk.  Ak sa chceš o mne dozvedieť viacej sleduj môj web www.jaroslavbeno.sk.  Jaro Zdrojové kódy na stiahnutie.