Výsledky vyhledávání

pro ”c++” jsme našli 1724 výsledků

Články (125)

Všechny články
EU Code Week: Evropský týden programování
Události
06.10.2019
Skillmea

EU Code Week: Evropský týden programování

Ve dnech 5.–20. října 2019 vrcholí sedmý ročník Evropského týdne programování, tzv. EU Code Week. Dobrovolníci z řad učitelů, institucí a nadšenců z více než 70 zemí se budou snažit prostřednictvím aktivit představit nové vzdělávací možnosti a materiály, aby tak zvýšily zájem o programování a zatraktivnily jeho výuku. Proč se zapojujeme i my?Hodiny informatiky na základních a středních školách jsou ne vždy vedeny zábavnou a poutavou formou. Jen si vzpomeň na ty své. Digitální gramotnost se však pro uplatnění na trhu práce stává klíčovou a o tom, jakou roli by měla hrát ve vzdělávání není třeba vést diskuse. Něco o tom víme iv Learn2Code, kde se nás denně obracejí lidé s otázkou, kde s programováním začít. Proto jsme se i my s podporou spoločnosti Google opět staly součástí iniciativy EU Code Week, abychom podpořili digitální vzdělávání na školách a pomohli dětem rozvíjet znalosti a dovednosti, které jim pomohou realizovat nápady a usnadní orientaci v digitálním světě. Pokud se v něm totiž budou správně orientovat již nyní, budou lépe připraveni využívat jeho přínosů a čelit jeho nástrahám.[Image] Tento rok sa s Learn2Code vydáváme na východ Slovenska do Košic a okolí, kde se prostřednictvím workshopů budou moci děti na více základních školách seznámit s programováním v prostředí Scratch, který se díky své jednoduchosti výborně hodí pro výuku programování, vytváření interaktivních her a animací. Kromě Scratchu máme pro děti připraveny i zážitkové hodiny s roboty Ozoboty a programování her v jazyce JavaScript pro pokročilejší. Letos jsme spojili síly is leadership programem Teach for Slovakia a některé ukázkové hodiny zorganizujeme na školách zapojených do TfS. Pokud chceš vědět, jak to na takovém našem workshopu vypadá, můžeš si prohlédnout tento sestřih z roku 2016. Jak se můžeš zapojit?Evropský týden programování je nezávislá iniciativa dobrovolníků s podporou Evropské komise, do které se může zapojit kdokoli, tedy i ty. Můžeš být učitel, vést programátorský kroužek nebo se zkrátka dobrovolně angažovat v digitálním vzdělávání. Stačí, když uspořádáš programátorskou aktivitu #CodeWeek a přidáš ji na mapu na stránce codeweek.eu. Na stránce navíc najdeš návod a propagační materiály, které ti s realizací pomohou. Pokud si na něco podobného netroufáš, můžeš tuto akci podpořit i použitím hashtagu #codeweek. 
EU CodeWeek 2017
Novinky
27.09.2017
Marián Kristeľ

EU CodeWeek 2017

Minulý rok se téměř milion účastníků zapojilo do některé z 23 000 akcí pořádaných v rámci kampaně EU CodeWeek 2016 . Akcie se konaly ve více než 50 zemích světa a tedy CodeWeek už není jen čistě evropskou záležitostí. [Image] Co je CodeWeek?CodeWeek je kampaň, jejímž cílem je popularizovat programování a digitální svět v EU a ve světě. Cílem této kampaně je ukázat, že programování není určeno pouze pro úzkou skupinu odborníků, ale pomocí něj lze realizovat vlastní nápady. CodeWeek slaví letos své páté narozeniny a školy, učitelé, programátoři, vzdělávací organizace připravují různé akce, kterými se snaží zpopularizovat programování. Jak se zapojit?Děti, mládež nebo i dospělí se mohou zúčastnit akcí zveřejněných na stránce codeweek.eu. Programátoři nebo vzdělávací organizace si mohou vytvořit vlastní veřejné akce a pozvat lidi, aby jim ukázali, jak programování vypadá v praxi. Učitelé a školy rovněž mohou zorganizovat různé mini kurzy nebo se s žáky zúčastnit programátorských akcí v jejich regionu.  Chceš se zapojit se svou akcí? Přidej jej na stránku  events.codeweek.eu . Zde si také umíš vyhledat seznam plánovaných akcí. Zatím jich tam není mnoho, ale určitě budou přibývat :) Proč začít s programováním?Způsob jakým pracujeme, ale také komunikujeme se vlivem rychle se vyvíjejících technologií mění. Nauč se programovat a zlepši svoji digitální gramotnost, přestaneš být konzumentem v digitálním světě, staneš se jeho tvůrcem. Zlepšíš i svůj přístup k řešení problémů, což jistě využiješ i v běžném životě. V neposlední řadě, tvé uplatnění na trhu práce rapidně zlepšíš. Máme zde i pár statistik: v současnosti se vyžadují alespoň nějaké IT dovednosti ve více než 90% pracovních pozic. Poptávka po IT odbornících roste ročně o více než 3%, avšak IT zaměřené školy nedokážou tuto poptávku pokrýt svými absolventy. Pokud nebude tento problém řešen, do roku 2020 bude v EU chybět více než 800 000 IT specialistů.  Learn2Code pořádalo EU Code Week workshopy i minulý rok, vypadalo to na nich přibližně takto: Co tedy udělat dál?Vytvoř vlastní event nebo se přidej do nějakého, který přibude na mapě. Pokud si neumíš poradit, kontaktuj nás a rádi ti pomůžeme s organizací :) Klidně followuj oficiální EU Code Week twitter profil ->  https://twitter.com/CodeWeekEU  a při sdílení na sociálních sítích používej hashtag #CodeEU. Pomůžeš tak šíření povědomí o akci.
Co bys měl vědět o Předplatném online kurzů pro rok 2018
Novinky
16.11.2017
Skillmea

Co bys měl vědět o Předplatném online kurzů pro rok 2018

Předplatné Learn2Code online kurzů jsme letos trochu upravili a máš možnost si jej objednat nebo prodloužit za výhodných podmínek. Vždyť čti dál. Cenu ročního přístupu jsme snížili z 249 Eur na 199 Eur a kromě toho, pokud si předplatné objednáš například v listopadu, přístup získáš až do konce prosince 2018. Máš tak od nás další měsíc studia programování, online marketingu nebo designu grátis .  Co všechno u nás najdešJiž téměř 40 online kurzů můžeš studovat na Learn2Code platformě. Další kurzy budou neustále přibývat, zmíním jen ty nejzajímavější, na které se asi nejvíc těšíš: • Python pro začátečníky • Android Developer • JavaScript série • VBA programování • Adobe Illustrator • a mnoho dalších témat Toto vše máš za 199 Eur, což je přibližně 15 Eur na měsíc , pokud přičteme i prosinec 2017 jako bonusový měsíc, který dostáváš zdarma. A to se vyplatí, protože dostaneš desítky kurzů, stovky hodin videomateriálu, certifikáty o absolvování kurzů, podporu od lektorů v diskusích. Předplatné jako dárekNevíš, čím obdarovat sebe nebo své blízké na Vánoce? Máme pro tebe super tip - Learn2Code Předplatné :) Vzdělávání je ta nejlepší investice do budoucnosti pro tebe nebo tvé blízké. A proto nám napiš email a vystavíme ti dárkový poukaz.[Image] Garance včetně penězLearn2Code kurzy prošly stovky spokojených studentů, nekupuješ tedy kočku v pytli. Pokud sis přesto nejistý, jestli se ti bude online forma vzdělávání zamlouvat a zda ti bude vyhovovat, garantujeme ti vrácení peněz v ochranné lhůtě 14 dnů. V případě, že tedy nebudeš s našimi kurzy spokojen, vrátíme ti plnou částku zpět. O vrácení peněz nás požádej emailem do 14 dnů od tvé objednávky.[Image] Pojď do toho! Veškeré info a přihlašování do předplatného  najdeš na této stránce . Pokud máš nějaké dotazy nebo nejasnosti, napiš nám email nebo zavolej :) 
Java nejnovější verze – Java 9 moduly (1. část)
Vzdělávání
09.12.2018
Skillmea

Java nejnovější verze – Java 9 moduly (1. část)

Od verze 9 bude java vydávána v pravidelných intervalech. Nová java každých 6 měsíců. Takže můžeme očekávat novou funkčnost častěji, ale v menších dávkách. Nejpoužívanější Java dnes je java 8 – vydaná v roce 2014. Java 9 byla poprvé vydána v září 2017, později byly opraveny kritické chyby a lze říci, že taková lepší verze byla vydána v lednu 2018. Java 10 byla vydána v březnu 2018, Java 11 v září 2018. Takže rychlý posun ve verzích, ale ne drastický posun ve funkčnosti. Co je lepší? Najednou a mnohem nebo méně a postupně? Záleží na tom, co děláte. Pokud používáte mnoho rámců a knihoven třetích stran, může být vaše práce ovlivněna po zvýšení tohoto jevu. Prvním milníkem je java 11, která je označena jako LTS, tj. dlouhodobá podpora. Tato verze tohoto jevu bude opravena na dlouhou dobu a bude o ni postaráno v následujících letech. Co to znamená? Že společnosti s větší pravděpodobností přeskočí z jevu 8 dříve na jev 11, protože si budou jisty, že tato java bude v budoucnu opravena –, pokud bude nalezena kritická chyba. V tomto článku se zaměříme hlavně na seznam nových změn. Nebudeme se zabývat jednotlivými změnami podrobně. Budeme to udržovat i v budoucnu. InstalaceNejprve musíte stáhnout a nainstalovat nejnovější fenomén jdk. V době psaní to tak je Java 11. Nastavte proměnnou prostředí JAVA_HOME na nový jev – na kořen, nikoli do složky bin. Poté nastavte cestu k proměnné PATH pouze do složky koše nově nainstalovaného jevu. Spusťte příkazový řádek a zadejte příkaz: java – verze Pokud máte verzi, vše je v pořádku.[Image] Pokud dojde k chybě nebo se zobrazí starší verze, ujistěte se, že v PATH je cesta nového fenoménu nastavena na začátku. Je možné, že v PATH máte také nastaveno C: \ ProgramData \ Oracle \ Java \ javapath. Pokud ano, musí to být za cestou k nejnovějšímu jevu. ModulyV Javě 9 je nejpříznivější změnou projekt Jigsaw –, ale stačí, když si vzpomeneme, že se jedná o divizi modularity – velkého monolitu –, takže celá aplikace v jednom balení do menších buněk – moduly. Moduly pak řeknou, co publikují světu a co požadují pro svou správnou funkčnost. Každý modul obsahuje soubor modul-info.java a alespoň jeden balíček. Module-info.java obsahuje popis závislostí, které modul potřebuje. Každý modul je nezávislý v tom, že pokud obsahuje obrázky nebo konfigurační soubory, modul je spravuje sám. Vše v modulu je pro modul soukromé, pokud neřekneme jinak. Existují 4 typy modulů.Systémové moduly – Java SE a JDK moduly –, pokud si všimnete, jdk nainstalovaný pro novější jev postrádá složku jre. Nyní jsou jmody. Zde máme všechna výchozí nastavení poskytovaná moduly.[Image] Aplikační moduly jsou moduly, které chceme vytvořit, když se rozhodneme, že chceme moduly používat. Automatické moduly je vytvořen, když do modulu cesty přidáme soubory JAR. Název modulu je převzat z názvu souboru. Tyto automatické moduly mají plný přístup ke všem ostatním modulům načteným na cestě. Nepojmenovaný modul = pokud jsou některé třídy nebo soubory jar načteny na cestě –, tyto třídy a soubory jar jsou automaticky přidány do tohoto nejmenovaného modulu. Používá se pro zpětnou kompatibilitu s předchozím starším Javanese kódem. DistribuceModul by měl být zabalen jako jarní soubor – jeden jarní soubor by měl obsahovat maximálně jeden modul. Když provádíme projekt sestavení, musíme být opatrní, abychom každý modul v našem projektu zabalili jako samostatnou pružinu. Základní modulySlíbili jsme, že jdk má novou strukturu, která obsahuje jmoduly. Zde jsou základní moduly. Pokud zadáme příkaz, můžeme tyto moduly uvést pomocí příkazového řádku <b>java --list-modules</b>. [Image] Každý modul, který vytvoříme, použije implicitní modul java.base. Použití dalších modulů bude k dispozici po konfiguraci. Vytvoření moduluModul v podstatě vzniká, pokud definujeme soubor modul-info.java v kořenovém adresáři zdrojového kódu modulu. Tento okamžik pracuje se zdrojovým kódem jako s modulem. Moduly se navzájem nevidí – nemají přístup k sobě navzájem a ke třetímu atd. Podle toho, kolik modulů používáme. Pokud chcete použít něco zvenčí nebo chcete, aby byla viditelná vnitřek vašeho modulu nebo vnitřní čas vašeho modulu, musíte jej definovat. Pojďme mít projekt, ve kterém definujeme nový modul. V modulu máme složku src, do které vložíme veškerý zdrojový kód. Uvnitř definujeme balíček sk.jaro.demo a stále v něm vnější a vnitřní. Vytvoříme jednoduché třídy, které jen něco napíšou na konzoli.[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"); } } Tyto třídy se liší pouze v názvu a příkazu na konzole. Později nastavíme vnitřní, aby byl viditelný pouze v hlavním modulu. Později nastavíme externí, aby byl viditelný mimo hlavní modul. Vytvořte soubor modul-info.java v src tohoto modulu. Uvnitř souboru je syntaxe, kde klíčovým slovem je nejprve modul, pak název modulu – můžete také použít tečky, a pak jsou zde složené závorky: modul nasmodule { }. Chceme, aby byl externí balíček k dispozici pro další moduly –, které budou nastaveny pro export. module main { exports sk.jaro.demo.external; }Nyní vytvoříme nový modul ve stejném projektu s názvem utils. Uvnitř budeme mít jednu třídu, ve které se pokusíme použít třídu HelloMainModuleExternal z hlavního modulu.[Image] Module-info.java musí nyní obsahovat, že v tomto modulu požadujeme hlavní modul –, protože z tohoto modulu používáme funkčnost. module utils { requires main; } Nyní můžeme použít třídy, které byly exportovány z hlavního 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ávěrNakonec si s tím můžete hrát hned teď. Zkuste použít třídu, která není exportována z hlavního modulu. O modulech by bylo možné napsat a mluvit o nich, ale doufám, že pochopíte princip modularizace. Během studií na toto téma mám několik otázek, na které jsem dosud neodpověděl. Například: Maven s java modularizací? Rámce a modularizace? Pokud se vám tento článek líbil, napište něco do komentářů, budu šťastný. Zajímá vás Java? Vyzkoušejte jeden z kurzů na toto téma https://skillmea.sk. Pokud se o mně chcete dozvědět více, sledujte můj web www.jaroslavbeno.sk. jaro Zdrojové kódy ke stažení.
Co je nového v Bootstrap 5
Novinky
02.07.2020
Lubomir Herko

Co je nového v Bootstrap 5

Od poloviny června máme přístup k první alpha verzi Bootstrap 5. Kromě nové verze loga v sexy závorkách {B} se dočkáme i obrovského množství vylepšení na všech frontách. Už samotná dokumentace je ukázkou vylepšeného vzhledu a funkcionalit. Pokud se neumíš dočkat a chceš nový Bootstrap vyzkoušet ASAP, začni tady. Je to stále Alpha verze, nedoporučuji ji proto nasadit do žádného projektu. Než dostaneme první betaverzi, může projít změnami, které Ti vyrobí více práce než pomoci. Toto je "sestřih" nejvýraznějších změn, které jsme popsali přesně pro Tebe. Na míru. [Image] JavaScriptUž žádná podpora pro jQuery, i když..Pro některé killer feature, pro jiné nic podstatného. Nový Bootstrap 5 nebude již obsahovat jQuery jako jednu ze svých závislostí (i přesto, že jQuery „asi“ stále žije a v dubnu letošního roku jsme dostali novou verzi jQuery – 3.5). Víme to už dávno, už jsme se na to jen těšili. Ještě nemáme oficiální konečná čísla, ale očekáváme, že Bootstrap díky této zásadní změně ztratí jak na kilobajtech, tak na milisekundách. Pokud si rozumíme 😉 Pokud však stále jQuery ve svém projektu potřebuješ, Bootstrap o tom bude vědět a všechny komponenty přidá k modulům jQuery. V zásadě to znamená, že stále bude možné inicializovat například Tooltip komponent takovým (starým) způsobem (v případě, že Bootstrap detekuje přítomnost jQuery): $('[data-toggle="tooltip"]').tooltip(); Button pluginZměnami projde i state-management tlačítek. Ty využíváme například i jako indikátory ZAP/VYP při různých funkcionalitách našich aplikací. Ve starších verzích Bootstrap stav tlačítka řešil JavaScript. Bootstrap 5 se snaží state-management řešit v co nejvyšší míře dostupnými funkcionalitami a elementy HTML a CSS. Výsledkem tak je manažování stavu tlačítka pomocí checkbox a radio elementů. Naše ZAP/VYP tlačítka tak budou o něco spolehlivější mezi různými platformami. CSSCSS proměnnéS koncem podpory pro Internet Explorer přicházejí i nové možnosti. Jednou z nich jsou i CSS proměnné. Ty jsme spatřili již v předchozí verzi (root variables), avšak ne v takovém rozsahu jako ve verzi 5 – kde se css proměnné dostaly už i do jednotlivých komponent. Například do tabulek: .table { --bs-table-bg: #{$table-bg}; --bs-table-accent-bg: transparent; --bs-table-striped-color: #{$table-striped-color}; --bs-table-striped-bg: #{$table-striped-bg}; --bs-table-active-color: #{$table-active-color}; --bs-table-active-bg: #{$table-active-bg}; --bs-table-hover-color: #{$table-hover-color}; --bs-table-hover-bg: #{$table-hover-bg}; // Styles here... } Výhodou CSS proměnných je jejich používání bez nutnosti zkompilování SASS kódu do CSS. Takto bude možné hodnoty některých proměnných měnit v přímo Inspectoru prohlížeče, což urychlí práci například při prototypování. V Bootstrap 5 stále zůstane možnost definice proměnných v SASS (_variables.scss) souborech, tak, jak jsme to dělali dosud. Osobně bych neočekával kompletní přechod ze SASS proměnných do CSS proměnných. SASS má stále svou nenahraditelnou roli při vytváření proměnných pomocí mapování, proto očekávám, že budeme mít k dispozici kombinaci SASS proměnných s CSS proměnnými iv budoucnosti. Vylepšený gridZískáme nový grid-tier pro obrazovky o šířce větší než 1400px - .col-xxl-. Rovněž mezery mezi jednotlivými sloupci gridu budou nově "ohebnější". Získáme novou css utilitu g pro naše .row. S gutter hodnotami takto bude možné pracovat podobně jako s margin a padding hodnotami, na co jsme si již zvykli: .g-2 .gx-2 .gy-2 .g-lg-2 .g-0 FormulářeOd verze 4 jsme mohli ve svých aplikacích používat checkbox, radio a file elementy dvěma způsoby: 1. Buď jsme použili původní, systémový vzhled (poskytnutý browserem), 2. nebo jsme použili nový vzhled (custom-checkbox, custom-radio). Verze 5 bude obsahovat už jen nový vzhled těchto prvků. Formuláře tak budou vypadat rovněž v každém prohlížeči a operačním systému a přizpůsobení vzhledu těchto komponentů bude stejně jednodušší. Rovněž bude odstraněn i potřebný .form-group wrapper. Nové formuláře již budou obsahovat jen jednotlivé form elementy, bez tohoto DIV elementu. Hurá! Méně kódu! 🙂 <form> <div class="mb-3"> <label for="exampleInputPassword1" class="form-label">Password</label> <input type="password" class="form-control" id="exampleInputPassword1"> </div> ... </form> Wrapper bude potřebný pouze pro custom elementy (.form-select, .form-check, .form-file) a také .form-group. Utilities APIUtility jsou velmi užitečné CSS třídy, kterými obvykle měníme parametry rámování, barev, způsobů zobrazení, stínování a různých velikostí (width, height, padding, margin,...). V praxi se občas stává, že se nevejdeme do předdefinovaných utilit, které jsou součástí Bootstrap-u. Proto jsme někdy vytvářeli vlastní třídy. Například pokud nastavujeme šířku nějakého elementu, máme k dispozici takové css třídy: .w-25 /* 25% */ .w-50 /* 50% */ .w-75 /* 75% */ .w-100 /* 100% */ .w-auto /* auto */ Pokud jsme potřebovali 33% width, 90% width, nebo jiné hodnoty, vytvořili jsme vlastní CSS třídy, udělali override na $sizes mapu v nějakém vlastním souboru, nebo jsme nebodaj editovali přímo $sizes mapu v souboru proměnných _variables.scss. Ve verzi Bootstrap 5 máme k dispozici čistší a užitečnější SASS nástroj, jak modifikovat stávající, nebo přidat nové utility do našeho projektu, tématu nebo pluginu pro Bootstrap - utilities API: $utilities: map-merge( ( "width": ( property: width, class: w, values: ( 33: 33%, 90: 90% ) ), "input-padding": ( property: padding, class: ip, values: ( 0: 0, 1: .3rem, 2: .5rem, 3: .7rem, 4: .9rem, 5: 1rem, ) ) ), $utilities); Výsledkem takového kódu budou nové css třídy utilit: .w-33 /* nastaví width na 33% */ .w-99 /* nastaví width na 90% */ .ip-1 /* nastaví padding na .3rem */ .ip-2 /* nastaví padding na .5rem */ .ip-3 /* nastaví padding na .7rem */ .ip-4 /* nastaví padding na .9rem */ .ip-5 /* nastaví padding na 1rem */ Ostatní vylepšeníIkonyS alpha verzí Bootstrap 5 přichází také pátá alpha verze Bootstrap Icons. Je to sada více než 1000 ikon, které jsou nadesignovány tak, aby parádně ladily s Bootstrapem. Nifty funkcionalita je také SVG sprite, která nám umožňuje vytvořit vlastní mapu SVG ikon a efektně ji používat v projektu, aniž bychom kód špinili samotným SVG zdrojovým kódem. <svg class="bi" width="32" height="32" fill="currentColor"> <use xlink:href="bootstrap-icons.svg#heart-fill"/> </svg> Osobně jsem velkým fanouškem Fontawesome ikon, které obsahují kromě enormně většího množství ikon a jejich variant i velmi užitečné způsoby integrace do projektů. Fontawesome nejsou však dostupné zdarma, proto možná v dalším projektu i my v learn2code zvážíme integraci s Bootstrap ikonami. DokumentaceUž na první pohled je vidět, že dokumentace prošla změnami. Ty však nejsou jen vizuální, ale vylepšen je i samotný obsah. Orientace mezi sekcemi je díky novému postrannímu jménu rychlejší. Jednotlivé sekce obsahují také jakési "overview", které postupně přibývají do každé hlavní sekce dokumentace. I tyto změny urychlují navigaci v dokumentaci a hledání požadované informace je takto rychlejší. BarvyPřibyly také nové barevné odstíny a vylepšen bude také jejich kontrastní poměr. ZávěrTento text není a ani nechtěl být kompletním diffem verze 4 s novou verzí 5. Mnohem více novinek najdeš ve stále rostoucí dokumentaci k Bootstrap 5. Pokud jsem na něco důležitého zapomněl, klidně se ozvi v komentáři.
Lambda výrazy v Javě - část III.
Tipy a triky
03.10.2019
Skillmea

Lambda výrazy v Javě - část III.

Lambda a vnitřní anonymní třídyVelmi se nám žádá říci, že lambda výrazy jsou jen zkratky jak napsat vnitřní anonymní třídy. Ale pamatuj si, není tomu tak. Vypadá to podobně, ale lambda není implementace rozhraní. Lambda je sama osobě nezávislá jiná věc. Podívejme se na příklad. Namísto toho, abychom použili implementační třídu našeho rozhraní IHelloWord, vytvoříme si vnitřní anonymní třídu. IHelloWord helloWord3 = new IHelloWord() { @Override public void sayHello() { System.out.println("HelloWord impls inner anonymous class"); } };Všechny 3 možnosti, které mají jako návratovou hodnotu rozhraní IHelloWord můžeme podsunout do metody printHelloWord(IHelloWord helloWord). helloWord.printHelloWord(helloWord1); helloWord.printHelloWord(helloWord2); helloWord.printHelloWord(helloWord3); Jak to, jak to?Jak java ví, jaký má použít typ pro lamba výraz? Abychom tomu porozuměli, vytvoříme si novou třídu, kde budeme pracovat s lambda výrazem. Vytvořme si rozhraní, které bude mít jednu metodu, která bude vracet int a na vstupu bude také int. interface Nasob{ int nasob(int a); } Ako by vyerala implementácia tohto rozhrania? class NasobPiatimi implements Nasob{ public int nasob(int a){ return a*5; } }Nyní si navrhněme lambda výraz, který odpovídá dané metodě. Nepotřebujeme návratovou hodnotu int, neboť java umí na ni přijít sama a nepotřebujeme ani název metody a ani modifikátor přístupu public. Náš lambda výraz bude vypadat takto: (int a) -> a*5;Nyní použijte tento lambda výraz: public static void main(String[] args) { Nasob nasobPiatimi = (int a) -> a*5; System.out.println(nasobPiatimi.nasob(10)); }Na výstupu bude 50. V tomto příkladu se lambda tváří jako instance rozhraní Nasob. V předchozích příkladech, kdy jsme používali HelloWord, jsme takovou proměnnou vkládali jako parametr metody printHelloWord (HelloWord3 v IDEi). Namísto toho jsme mohli tuto lambdu vložit přímo do metody. helloWord.printHelloWord(() -> System.out.println("HelloWord impls lambda");); Java kompilátor vezme tento lambda výraz a podívá se kam jde. Jedná se o metody printHelloWord a podívá se, co akceptuje na vstupu. Akceptuje rozhraní HelloWord. Pokud lambda sedí s požadavkem, že dané rozhraní obsahuje jen jednu metodu a ta vrací void a na vstupu nemá žádný parametr, tak java řekne, že daná lambda je typu HelloWord. Toto se jmenuje Type inference. Java si sama zjistí typ. Teď, když víš jak java dokáže zjistit typy, vrátíme se k příkladu, který jsme začali psát v této kapitole. V našem příkladu umíme ještě více zkrátit zápis našeho lambda výrazu. Nasob nasobPiatimi = (int a) -> a*5; System.out.println(nasobPiatimi.nasob(10));Jelikož naše lamba jde do metody rozhraní, kterou známe interface Nasob{ int nasob(int a); } Tak vieme presne povedať aký typ má vstupný paramter metódy. Je to int. interface Nasob{ int nasob(int a); }Když to víme, tak nemusíme při psaní lambda výrazu znovu specifikovat typ vstupního parametru. Nasob nasobPiatimi = (a) -> a*5; A jelikož máme jen jeden parametr, nemusíme psát ani závorky. Násob napětí = a -> a*5; Už nebudeme nic mazat, neboť by nám už nic nezbylo 😃 Nyní můžeme napsat metodu, která bude na vstupu očekávat rozhraní Nasob a když ji použijeme, tak do ní vložíme na vstup náš lambda výraz. public static void printNasob(Nasob nasob){ System.out.println(nasob.nasob(10)); } public static void main(String[] args) { printNasob(a -> a*5); }V jevu mohli klidně vytvořit nový typ pro tyto lambda výrazy. Ale neudělali to a jedním z důvodů je i zpětná kompatibilita se starším kódem. Jak už víme, tak lambda výrazy můžeme použít všude tam, kde máme vyhovující rozhraní. Ve vnitřních anonymních třídách, v metodách kde je na vstupu interface a podobně. Příklad: HelloWord helloWord3 = new HelloWord() { @Override public void sayHello() { System.out.println("HelloWord impls inner anonymous class"); } }; HelloWord helloWord3 = () -> System.out.println("HelloWord impls inner anonymous class"); Při tomto musíme pamatovat, aby rozhraní byla jedno metodová nebo aby ostatní metody rozhraní byly default. A dané metody v rozhraních, aby se shodovaly s lambda výrazem. Takové rozhraní s jednou abstraktní metodou (metoda, která poskytuje popis ne implementaci) se nazývá Functional interface. Představ si, že používáš rozhraní, které má jen jednu metodu a používáš ho pro lambda výrazy. Nyní by někdo cizí přišel a do tohoto rozhraní by přidal další abstraktní metodu, přesněji její popis bez implementace. Takové rozhraní by již více nebylo functional interface a proto by se nemohlo použít pro lambda výraz a nastala by chyba - přestože rozhraní by bylo v pořádku. Třeba na to myslet a pokud chceme něco přidat do functional interfac, tak jen jako default metody. Abychom upozornili kohokoli, kdo by chtěl něco přidat do našeho rozhraní, tak máme možnost přidat anotaci @FunctionalInterface. K anotacím se ještě dostaneme, tak se nebojte. Nyní je důležité vědět, že je to pomůcka – tato pomůcka nám udělá to, že jakmile napíšeme další metodu do našeho rozhraní, tak nastane chyba. Danou anotaci nemusíme psát, ale je to super. @FunctionalInterface public interface HelloWord { void sayHello(); }Příklady na vyzkoušení: 1. vytvoř si seznam míst 2. setřiď seznam 3. napiš metodu, která vypíše vše ze seznamu míst 4. udělej si metodu, která vypíše jen ta města, která se skládají z jednoho slova nepoužívej při tom lambda výrazy Pokračování příště 👋 Články a online kurzy o Javě pro tebe připravuje Jaro Beňo.
Mario Šmýkal: Jak psát dobré články a texty? Dá se psaní naučit?
Rozhovory
30.12.2022
Tím Skillmea

Mario Šmýkal: Jak psát dobré články a texty? Dá se psaní naučit?

Mário Šmýkal se narodil v Prievidzi a vystudoval marketingovou komunikaci v Trnavě. Aktuálně pracuje v deníku SME, kde vede obsahové studio SME Creative, píše newsletter Škola nepsaní a v Prievidzi pořádá talkshow Takové ze života a běžecké akce Brose Night Run Prievidza.    V podcastu nám prozradil jak psát i jak nepsat, jaké jsou nejčastější chyby při psaní, jaké předpoklady má dobrý autor a uvedl i několik zajímavých pisatelských úspěchů.   Mário Šmýkal: Jak psát dobré články a texty? Dá se psaní naučit? ➡️ Co jsou podle tebe takové nejčastější chyby, které dělají autoři? To je velmi náročná otázka, neboť lze říci filozoficky i velmi prakticky. Kdybych měl mluvit prakticky tak: • nesprávně dlouhé věty  • nesprávně vyskládané věty  • nesprávné pořadí slov ve větách - to je velmi náročné • uspořádání informací v článku - nemůžeš začít nějakou těžkou nudou nebo historickým exkurzem, to jsou právě momenty, které se mohou objevit nejdříve ve 2/3 článku    Z filozofických věcí je asi nejdůležitější psát pro čtenáře a ne pro sebe. Ve většině případů autoři píší tak, aby se to líbilo jim.   Každý jeden článek, který píšu nebo edituji, čtu nahlas několikrát. Jakmile mě přestane bavit nebo v momentě, kdy uprchne moje pozornost, si to okamžitě vyznačím a zjišťuji, co se tam vlastně stalo. Snažím se pozorovat, proč mi tam ušla pozornost. Za normálních okolností by se nemělo stát, že by člověk nevydržel číst dostatečně poutavý text.   ➡️ Jaká je optimální délka standardního článku, který bys chtěl publikovat například do novin?   Závisí na formátu, například my máme: · nejkratší odrážkový text do 4000 znaků  · střední délka textu do 6000 znaků · nejdelší jsou kolem 9000 znaků   Napsat tak dlouhý článek, aby byl od začátku po konec dobrý, je dost náročné. Některá témata neodkomunikuješ rychle a krátce. Potřebuješ se do toho tématu ponořit jako do bahenní koupele, tak aby tě téma najednou obalilo a ty sis ho zapamatoval mnohem lépe, než kdybys o něm narychlo přečteš 5 vět.    ➡️ Informace je třeba prý prezentovat formou příběhů. Co ty o tom myslíš? Jaká je podle tebe nejzajímavější forma jak podat nějakou informaci?  Ano, příběh je jednoznačně důležitý. Dělám to od začátku a pravděpodobně to budu dělat navždy. Každý jeden z našich článků musí mít nějaký příběh a to je patrné i na číslech. Nejčtenější články, které máme, jako například o kuřatech v Kauflandu, dosáhly přes 200 000 přečtení. Když jsem šel psát reportáž o kuřatech v Kauflandu, až na místě jsem začal zjišťovat, jaká je to vlastně firma a jaké má zajímavé benefity pro zaměstnance. Když jsem o tomto napsal příběh a pouze mezi řádky zmínil kuřata, dosáhl článku výrazně lepších výsledků.   ➡️ Co by měl splňovat člověk, který chce psát články a dělat nativní obsah?V první řadě bychom měli být všímaví a citliví k věcem. Psaní se lze naučit, ale pouze někoho. Důležité je všímat si věcí, které jiní nevidí. Pouze 1 ze 100 lidí si všimne něčeho, co nikdo jiný když vejde do místnosti. Například, já jsem si všiml, že tramvaje v Bratislavě mají čísla 1, 3, 4, 7 a 9, což mě zaskočilo, protože číslo 4 je sudé, zatímco ostatní jsou liché. Toto je jen příklad, že nemusíte vědět odpověď na všechno, pokud se člověk naučí všímat věci, pak je snadné psát. Ale pokud si někdo nedokáže všímat věci, tak mu nic nepomůže. Ani vědět jak psát, protože bez schopnosti všímat si věcí, nikdy nebude moci napsat dobrý článek a bude klouzat pouze po povrchu.   V podcastu i na přednášce v Trnavě Mário vzpomínal, že psaní se lze naučit. Ale ne každého.   Inspiroval se citátem od Stephena Kinga: „I když je nemožné udělat ze špatného spisovatele schopného a stejně tak z dobrého spisovatele geniálního..."   .... je možné učinit ze schopného spisovatele dobrého. Je k tomu zapotřebí množství práce, nadšení pro věc a včasná pomoc. Tak jako zpěv nebo herectví nemůže dělat každý, stejně nemůže každý psát – nejlépe.   ➡️ Jak probíhá výběr nového kandidáta?  Tak v první řadě mě zajímá, co už napsal. Potom se pokaždé snažím vymyslet nějakou otázku nebo téma, které má kandidát zpracovat. Především se snažím objevit jeho všímavost. Je důležité umět si i domyslet (ne ve smyslu vymyslet něco vlastního). Uvedu na příkladu:    Na fotce jsou zimní běžecké závody. Tipněte si kdo vyhraje. [TIP: Všichni jsou navlečení, jen 2 mají kraťasy a krátké tričko.]⬇️ ⬇️ ⬇️ Určitě nevyhraje nikdo, kdo má dlouhý rukáv. Protože když běžíte rychle, tak vám bude vedro.  Čili při psaní je důležité umět si domyslet, pospojovat a přemýšlet v kontextu. Pro více Mariových zajímavých storiek si poslechněte Skillmea podcast: #9 Jak psát dobré články a texty? a pro hodnotné tipy pro psaní článků všemi deseti doporučujeme odběr newsletteru Škola nepsání.
Vývojářské a programátorské zkratky (část I.)
Vzdělávání
04.02.2023
Skillmea

Vývojářské a programátorské zkratky (část I.)

Zajímalo vás někdy, kdo je ten Jason, o kterém mluví všichni vývojáři. Ve skutečnosti je to JSON a je to zkratka JavaScript Object Notation a je to standardní formát souboru pro výměnu dat. Při práci s weby bez ohledu na to, zda jste vývojář, marketér, editor, SEO specialista nebo něco mezi tím, narazíte na řadu akronymů a zkratek. Seznámení se s nimi vám usnadní práci. Pojďme se spolu podívat na první čásť seznamu nejpoužívanějších zkratek akronymů ve vývoji softwaru. AJAXAJAX je zkratka pro asynchronní JavaScript a XML. Možná to nedává až takový smysl - ale ve skutečnosti jde o to, že když jste na nějaké webstránce a na něco kliknete, tak se daná stránka nenačte celá, ale do ní se přidá jen to, co potřebujete. Interakce s webem se tak výrazně zlepšuje. APIAPI je zkratka z Application Programming Interface. Umožňuje dvěma různým aplikacím „mluvit spolu“. Takže API je součástí serveru, který přijímá požadavky a posílá odpovědi jiným aplikacím. API funguje jako jakýsi prostředník mezi webem (respektive softwarem, který vyžaduje nějaké informace) a databází. API tedy figuruje na pomyšlené pozici číšníka, který v restauraci tlumočí přání zákazníka kuchaři. ASP.NETASP.NET je zkratka pro Active Server Pages a .Net odkazuje na framework .NET (dotNET). ASP.NET je open-source webový framework pro vytváření webových aplikací na rozhraní .NET. Je vytvořen společností Microsoft a umožňuje vývojářům vytvářet dynamické webové aplikace, webové stránky a podobně. ASP.NET se přesunulo na verzi ASP.NET Core, která je multiplatformová, ale ASP.NET je stále podporována a aktualizována od společnosti Microsoft. Existuje aj verzia ASP.NET Web Pages. BLOBBLOB je zkratka pro Binary Large Object. Jedná se o soubor binárních údajů uložených jako jedna entita v databázi. Používá se především při ukládání médií, jako jsou zvuk, obrázky a video. To se poněkud liší od jiných druhů databází, protože často ukládají řetězce nebo celá čísla. Protože objekty BLOB často ukládají obrovské soubory, budou samozřejmě vyžadovat i podstatně více místa. CDNCDN je zkratka pro Content Delivery Network. Jedná se o skupinu geograficky distribuovaných serverů, které spolupracují s cílem velmi rychle doručit obsah návštěvníkovi webové stránky nebo aplikace. Pomocí sítě CDN lze provádět rychlé přenosy daných aktiv k načtení obsahu webstránek včetně obrázků a videí. Většina velkých internetových služeb, jako jsou sociální média, streamovací služby, e-commerce weby, zpravodajské portály a podobně, využívají CDN sítě. CMSContent management system v překladu znamená systém pro management obsahu. Jedná se o software, aplikaci nebo program navržený pro snadnou tvorbu, upravování a editaci webového obsahu (text, video, obrázky, atd.). Nejpoužívanějším CMS systémem na světě je WordPress. CRUDCo znamená CRUD? Znamená to vytvořit (Create), přečíst (Read), aktualizovat (Update) a odstranit (Delete). Je to zkratka v rámci programování. Tyto čtyři funkce jsou potřebné pro operace prováděné na nějakém datovém úložišti. Každá ze čtyř funkcí je důležitá, pokud jde o interakce s databází. CSSCSS je zkratka pro Cascading Style Sheets, což je jazyk šablony stylů, který se používá k zobrazení toho, jak by měl vypadat HTML dokument. Spolu s HTML a JavaScriptem je CSS jedním ze základních kamenů webstránek. DNSZkratka DNS znamená Domain Name System. DNS je to, co umožňuje uživatelům zadat libovolnou URL adresu ve svém prohlížeči a najít požadovaný cíl – aniž by museli na serverech procházet podadresáři IP adres, aby našli webovou stránku. DNS můžeme označit jako telefonní seznam internetu. Na webovou stránku přistupujeme přes adresu (doménu) jako skillmea.sk nebo wikipedia.org. Počítače a webové prohlížeče však interagují prostřednictvím adres internetového protokolu (IP). Domain Name System (DNS) přeloží požadovanou doménu na IP adresu, kterou pak počítače a prohlížeče načtou. FTPFTP znamená File Transfer Protocol. Jedná se o komunikační systém, který umožňuje přenos souborů mezi počítači. Pokud je uživateli udělen přístup pomocí uživatelského jména a hesla, je možné přistupovat ke vzdálenému počítači v síti (nejčastěji k serveru zvanému FTP-host), kde pak může uživatel získávat nebo přijímat soubory. FTP připojení se často používá pro přístup k web serveru pro nahrávání nebo stahování souborů. GraphQLGraphQL je open-source datový dotazovací a manipulační jazyk původně vyvinutý a vydaný společností Facebook v roce 2012. GraphQL byl v roce 2015 uvolněn jako open source a nyní je řízen nadací GraphQL Foundation, aby se zajistilo, že jeho vývoj bude probíhat otevřeným a neutrálním způsobem . Umožňuje klientům definovat strukturu požadovaných dat a přesně stejná struktura dat je vrácena ze serveru. Klienti si mohou určit, jaké údaje jsou potřebné. Tím zabrání jak problémům nadměrného načítání, tak nedostatečného získávání dat. GUIGUI je zkratka pro grafické uživatelské rozhraní (Graphical User Interface). Je to systém interaktivních komponent, které jsou vizuálně prezentovány uživateli počítačového programu. Grafické uživatelské rozhraní zobrazuje objekty, které přenášejí informace a akce, které může uživatel provést. Mohou to být objekty, které mění velikost, barvu nebo viditelnost. Grafické uživatelské rozhraní často obsahuje objekty jako ikony, kurzory a tlačítka. Někdy jsou dokonce dále rozvíjeny zvukem, animacemi nebo stíny. První prototyp GUI vyvinuli ve firmě Xerox v roce 1979 a později Steve Jobs a Apple inženýři vyvinuli Lisa, první počítač s GUI dostupným pro veřejnost. HTMLHTML je zkratka pro jazyk Hypertext Markup Language a je standardním jazykem pro vývoj webstránek. S HTML jste se už tak či onak určitě setkali, jelikož všechny webové stránky na internetu jsou napsány pomocí HTML. Více si přečtěte v tomto článku. HTTPHTTP znamená Hypertext Transfer Protocol. Jedná se o protokol, přes který se do vašeho webového prohlížeče odesílají informace na webovou stránku, kterou si prohlížíte. Prohlížeč a webová stránka spolu komunikují prostřednictvím údajů, které se odesílají v čistém textu. Problém s obyčejným textem je v tom, že jej mohou přetínat a číst jiní. Proto byl protokol HTTP aktualizován na bezpečnější verzi s názvem HTTPS - Hypertext Transfer Protocol Secure. IDEIDE je zkratka pro integrované vývojové prostředí (Integrated Development Environment). Je to softwarový balíček, který používají vývojáři ve vývojovém prostředí a je navržen tak, aby maximalizoval produktivitu a efektivitu vývojáře. JSJS je zkratka pro JavaScript. Je to skriptovací jazyk, který se používá k vytváření a ovládání dynamického obsahu na webové stránce. To může zahrnovat vše, co se pohybuje na webové stránce, vše, co se obnovuje nebo jinak mění na obrazovce, bez jakéhokoli zásahu uživatele. Mohou to být šoupátka, carousely obrázků, návrhy automatického doplňování nebo jiné interaktivní prvky. JSONJSON znamená JavaScript Object Notation. Jedná se o standardní formát souboru pro výměnu dat. Pro ukládání a přenos datových objektů mezi webovými servery a aplikacemi používá text, který lidé dokáží přečíst a porozumět mu. Je to velmi běžně používaný datový formát. Jedná se o textovou reprezentaci strukturovaných údajů s páry klíč – hodnota a uspořádanými seznamy. MVCMVC je skrakta pro Model-View-Controller, což je návrhový vzor v rámci softwarového vývoje. Aplikace se navrhuje tak, že je rozdělena na 3 části: Model - View a Controller. Model je reprezentací vlastností objektu, tedy byznys logika. View je vizuálním zobrazením dat a Controller je spojivkem mezi jednotlivými Modely a View. ZávěřTolik zkratek na úvod by stačilo, pokračovat budeme dalšími zkratkami, jejichž význam vám jistě pomůže zorientovat se ve světě softwarového vývoje.