HWSW – Szeptemberi dupla – Android/Kotlin és full-stack JavaScript fejlesztői meetup

HWSW logó

HWSW logó2018. szeptember 11-én és 12-én délután a HWSW szervezésében a Szeptemberi dupla: Android/Kotlin és full-stack JavaScript fejlesztői meetup-okon vettem részt az AnKERT-ben.

Szeptemberi dupla - Android/Kotlin és full-stack JavaScript fejlesztői meetup

Kedd – Android/Kotlin fejlesztői meetup

Kedden az első előadó Ekler Péter volt, Android Pie újdonságai fejlesztői szemszögből című előadásával. Az általános újdonságokat követte néhány példa az energiafogyasztáshoz és testreszabáshoz kötődően: az Android rendszer:

  • úgy működjön, ahogyan a felhasználók jobban szeretnék használni – és persze ezáltal a Google még jobban megismerjen bennünket ;-),
  • alkalmazkodik a rendszer a mi életstílusunkhoz,
  • adaptívan korlátozni tudja a ritkán használt appoknál az akkumulátor-használatot (digitális jólét néven eladva),
  • adaptívan képes a fényerő beállítására (szürkeárnyalatos esti megjelenítés),
  • támogat új notification-öket (ez örökösen átalakul).

Elhangzó körkérdések voltak:

  • Mennyi ideig használunk egy-egy mobil alkalmazást?
  • Hány darab mobil alkalmazást használ a felhasználók többsége?
  • Ki találja hasznosnak a digitális jólét szolgáltatásokat?
  • Vajon mennyi változott (hány százalékot) az API 25-26-ra, 26-27-re, illetve 27-28-ra?

A válaszok érdekesnek, néha meglepőnek hatottak. Hasznos ötleteket kaptunk appok fejlesztéséhez, alkalmazkodva a felhasználói szokásokhoz.

A második előadás címe Kotlin 1.3 újdonságok volt, Balogh Tamás tartotta. Hasznos tippeket kaptunk a Kotlin konfigurációhoz, illetve függőségeinek megoldásához többféle fejlesztői eszközt érintve a gyakorló fejlesztő tapasztalataira építve. Újdonságok:

  • coroutine-ok experimental megjegyzéssel (működik, stabil, de egy későbbi új API verzióban fenntartott a jog, hogy megváltozhatnak és így törődni kell még velük),
  • előjel nélküli adattípusok példákkal (nem mintha ez lenne a legfontosabb, de néha kifejezetten hasznos lehet),
  • inline class-ok, intelligens bájtkód-beillesztésként magyarázható analógiával, mintegy kibővítve a korábbi inline function-ök lehetőségeit (nagyon tanulságos és eltalált volt a példaként bemutatott forráskód),
  • contract-ok (szerződés a fejlesztő és a fordító között).

A harmadik előadó Polacsek Attila volt és A pontonhíd az RxJava és a Data Binding között című bemutatójában körüljárta a reaktív UI-ban rendelkezésre álló adatkötés lehetőségeit, korlátjait, mindezt sok apró részletet is tartalmazó forráskód-részletekkel ismertetve.

Szeptemberi dupla - Android/Kotlin és full-stack JavaScript fejlesztői meetup

Szerda – Full stack JavaScript fejlesztői meetup

Szerdán négy előadást hallgattam meg a JavaScript nyelvhez kapcsolódóan. Az első előadó Szabolcsi-Tóth Szabolcs volt, aki a nyelv eredetét, fejlődését ismertette. A JavaScript nyelv az Európai Számítógépgyártók Szövetsége (ECMA) által felügyelt, ECMA-262 számon és ECMA Script néven gondozott szabvány (https://www.ecma-international.org/publications-and-standards/standards/ecma-262/) egyik implementációja. Elsősorban webes alkalmazások számára készült. Az ECMA évente jelentet meg új változatot a szabványból. A nyelv fejlesztése teljesen nyitott, bárki küldhet be ajánlást egy-egy új funkció beépítésére. A koordináció github-on (https://tc39.es/ecma262/) keresztül zajlik. Az ECMA-262 tagok döntésén múlik, hogy az egyes ajánlások közül mi kerül be ténylegesen a nyelvbe – szigorúan szabályozott lépések sorozatát követően.

A második előadó Czibik Péter volt, aki 4 év full stack fejlesztői tapasztalatait osztotta meg velünk. Elmondta, hogy mi a különbség egy specialista és a full stack fejlesztő között, milyen előnyökkel illetve hátrányokkal járnak az egyes szerepek. Megerősített minket abban a hitünkben, hogy bár mindenhez nem lehet egyszerre érteni, ennek ellenére lehetséges olyan szerteágazó tudásra szert tenni (itt az adatbázis-backend-frontend hármasra gondolok) ami hatékonyan használható a munkában. Tapasztalata szerint náluk a RisingStack nevű cégnél először specialistákat képeznek, és onnan indulhatnak el a munkatársak a full stack irányba. Ismeretes náluk, hogy a full stack-es kollégák közül ki melyik szakterülethez ért a leginkább és ezen információ birtokában hatékonyabban tudnak együtt dolgozni az egyes projektek kivitelezése közben.

A harmadik előadóként Séra Bálint következett. Ő egy saját tapasztalatát mutatta be: hogyan lehet egy frontend-es számára optimális sorrendben betölteni a weboldalon az egyes JavaScript modulokat a lehető leggyorsabban úgy, hogy ne kelljen a felhasználónak egy üresnek látszó weboldal előtt várakoznia. Saját kódpéldákon keresztül mutatta be azt a folyamatot, ahogyan a JavaScript nyelv fejlődésével párhuzamosan bővültek a programozó lehetőségei. Először csak statikusan lehetett felsorolni a modulokat az oldal kódjában, ezzel rögtön egy sorrendiséget is meghatározva. Később erre a feladatra különböző keretrendszerek készültek. Az ES6-os JavaScript verziótól kezdve pedig szabványos eszköz áll a fejlesztő rendelkezésére, az import formájában.

Utolsó előadóként Miklós Bertalant hallgattuk meg. Ő is a nyelv fejlődésére épített, de sokkal inkább a felhasználó által tapasztalt élmény szemszögéből megközelítve a fejlesztő lehetőségeit. A JavaScript nyelv irányába is régebb óta megvolt az az igény, hogy gazdag animációs lehetőségeket tudjon biztosítani, mint a mára már elavult Flash vagy Silverlight technológiák. Ahogy ezek a lehetőségek elkezdtek megjelenni a nyelvben, úgy kezdtek megszületni a különböző keretrendszerek is, mint például a React, az Angular vagy a Single-page alkalmazások. Szerinte a mai weboldalak a progresszív megközelítést kell, hogy használják, ami egy-egy keretrendszerrel való megoldások készítése helyett inkább sok-sok kicsi ötletre épít, figyelembe véve az adott projekt szükségleteit, és ennek megfelelően alkalmazva néhány – a tarsolyban lapuló – eszköz keverékét.

Néhány előadás prezentációja letölthető.

HWSW – Nyári napfordulós Android/Kotlin meetup

HWSW logó

HWSW logó2018. június 19-én délután a HWSW szervezésében a Kotlin programozási nyelvet bemutató meetup-on vettem részt az AnKERT-ben. Az előadások elsősorban a nyelvvel még csak ismerkedők számára szóltak, amolyan kedvcsinálóként lehet rájuk tekinteni.

HWSW : Nyári napfordulós Android/Kotlin meetup

Az első előadó Ekler Péter volt, aki összehasonlította a Java és a Kotlin nyelvet. Miben más az utóbbi, mivel ad többet, mint a Java? Azonnal feltűnő volt a forráskód tömörsége, egyszerűsége. Több esetben is előfordult, hogy nem kellett kiírni egy metódus visszatérési típusát, mert a fordító képes azt kitalálni. Új képességekről is szó esett, például a null érték elleni védekezésről, amelyet a Kotlin nyelv nullable és nem nullable típusokkal old meg. Ez a képesség például a C# nyelvben régóta jelen van. A null értékhez kapcsolódóan új operátorok is bekerültek a nyelvbe, amelyekkel így nagyon tömören és egyszerűen lehet elágazást megvalósítani null esetén. Megjelentek az extension method-ok a nyelvben, amivel egy meglévő osztályt úgy lehet további metódusokkal bővíteni, hogy nem kell azt leszármaztatni. Végül hasznos tippeket kaptunk a Kotlinban való programozás elkezdéséhez, illetve bevezetéséhez. Fontos megjegyezni, hogy egy Kotlin nyelvű program Java bájtkódra (is) fordul le, ezért teljesen illeszkedni tud egy már meglévő Java kódú projektbe. Ezért a tanulás elkezdhető kis modulok megírásán keresztül is.

A második előadó Varga Balázs volt, aki Kotlinos multiplatformos teszteléssel kapcsolatos tapasztalatait osztotta meg. Tőle megtudtuk, hogy a Kotlin számukra többek között azért hasznos, mert közös üzleti logika kódbázissal tudnak dolgozni akár a szerver oldalon, akár a kliens oldali mobilalkalmazásokon vagy JavaScript-et futtató böngészőben. Balázs mutatott egy esettanulmányt, ahol nehézséget okozott számukra, hogy hol válasszák szét a közös kódbázist a platformspecifikus részektől, mert a megvalósítás az Androidos kliensen működött, de az iOS-es kliensen viszont nem.

A harmadik előadó Braun Márton volt. Ő az Android KTX framework-öt mutatta be, ami egy kifejezetten Kotlin nyelven íródott, a nyelv képességeire támaszkodó eljárásgyűjtemény. Feladata, hogy az Androidban körülményesen használható API-kat könnyen kezelhetővé, kevesebb kóddal leírhatóvá tegye. Bár léteznek ehhez hasonló, mások által készített könyvtárak, de a KTX erejét az adja, hogy a Google cég 2017 óta hivatalosan támogatja a Kotlin nyelvet, és ezen belül a KTX könyvtárat is. Láthattunk néhány kódpéldát, ahol szemléletesen mutatta be Márton, mennyivel rövidebben lehet KTX framework-kel elérni ugyanazt az eredményt, mint nélküle.

Az utolsó előadó, Fuszenecker Zsolt egy hibás programsort hozott példaként, amely saját termékükbe került bele, és emiatt az Androidos felhasználóik egy elég kicsi, de mégis jelentős hányadánál nem tudott működni az új funkció, amit a kiadott frissítéssel építettek a programba. Elmondta, hogy nem volt könnyű megtalálni a hibát, mert csak az Android 6.01 verziónál és alatta jelentkezett. A kérdéses hiba egy lambda kifejezés bal oldalán álló két paraméter zárójelezésével oldódott meg, mert a kérdéses kódsort a fordító olyan API rendszerhívásra fordította le, ami csak Android 7.0-tól vált elérhetővé.

Két előadás megtekinthető, illetve a négy előadás prezentációja letölthető.

Multimédia az oktatásban 2018

NJSZT-MMO logó

NJSZT-MMO logóA Neumann János Számítógép-tudományi Társaság (NJSZT) „Multimédia az oktatásban” Szakosztály által – évente – szervezett XXIV. Multimédia az oktatásban című nemzetközi konferencia a Nemzeti Közszolgálati Egyetemen Államtudományi és Közigazgatási Karán került megrendezésre 2018. május 31. és június 2. között.

A konferencia célja

  • elősegítse az oktatás, a kutatás és a fejlesztés különböző területein dolgozó szakemberek tapasztalatcseréjét és találkozását,
  • bemutatkozási lehetőséget adjon az oktatóknak, kutatóknak és PhD hallgatóknak az új kutatási eredmények széleskörű szakmai megismertetésére és megvitatására előadások, kiállítások és kiadványok segítségével.

19 témakörben hirdették meg az előadóknak a jelentkezési lehetőséget, köztük néhány hozzánk kötődő

  • multimédia alkalmazása,
  • mLearning/eLearning és környezete,
  • felhőalapú szolgáltatások,
  • multimédiafejlesztések, eredmények, alkalmazások.

Letölthető a konferencia programja.

Részt vettünk a konferencián

Már többször is részt vettem előadóként ezen a konferencián szakmai előadással, magyar és/vagy angol nyelvű cikkel, poszterrel az oktatói csapat tagjaival együtt. Ezek a publikációs listámban megtalálhatók.

2018-ban előadást tartottam „Az XML feldolgozás lehetőségeinek összehasonlítása Java nyelven” címmel 25 percben, amely a konferencia „Multimédia és a tudományos kutatás összefonódása” című szekciójába került. Az előadás látványos, összefoglaló, rendszerező jellegű volt és a DOM, SAX, JAXP, JAXB, StAX, JAX-RPC, JAX-WS lehetőségeket/technológiákat/osztálykönyvtárakat érintette. Körülbelül 30-an voltak jelen a szekcióban. Hasznos és kellemes élmény volt találkozni sok-sok régi ismerőssel a konferencián.

Berecz Antónia kolléganő is tartott egy előadást az MMO 2018 konferencián „Oktatási stratégia megvalósítása e-learning modellosztályok segítségével” címmel. Ez az előadás a „Tanulási élmény a XXI. században / Multimédiafejlesztések, eredmények, alkalmazások bemutatása” című szekcióba került, amelynek Antónia szekcióelnöki feladatait is ellátta. Antónia korábbi szakdolgozó hallgatói közül négyen az MMO szakdolgozatversenyen I., II. és két III. helyezést értek el. Ehhez személyesen gratuláltam neki a konferenciát záró eseményén, de most írásban is kifejezem elismerésemet.

Az előadásom prezentációját ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

Az előadásom témája a Java EE szoftverfejlesztő tanfolyam 9-12. óra: XML feldolgozás és 13-16. óra: JSON feldolgozás alkalmaihoz kapcsolódik.

Digitális Témahét 2018

A Digitális Témahét 2016-ban indult országos rendezvénysorozat. Fő célja a digitális pedagógia módszertanának népszerűsítése és elterjesztése. A program fontos törekvése, hogy a digitáliskompetencia-fejlesztés az informatikán túl kiterjedjen más tantárgyakra is. A résztvevő pedagógusok és diákok változatos és kreatív iskolai projektek keretében fejleszthetik képességeiket technológiával támogatott tanulás során. A Digitális Témahét rendezvény minden meghirdetett programja ingyenes. A 2016/2017-es tanévben több mint ezer intézmény csatlakozott a programhoz, 7600 tanár és 129000 diák közel 3500 digitális projektet valósított meg. Miről szól egy digitális pedagógiai projekt? Projektpedagógiáról, csapatmunkáról, tantárgyak integrációjáról, kreatív alkotómunkáról, az önálló gondolkodás fejlesztéséről, IT eszközök helyes használatáról, digitális készségek fejlesztéséről, a lehetőségek kitágításáról.

A 2017/2018-as tanévben a rendezvény április 9-13. között valósult meg. Kiemelt témakörök/szempontok:

  • a multidiszciplináris megközelítés: a matematika, a természet- és mérnöki tudományok, valamint a művészet- és társadalomtudományok együttes megjelenítése;
  • a tanítás eszközkészletének és módszereinek megújítása;
  • a pedagógiai innováció, a digitális pedagógia ösztönzése;
  • az informatikai pályaorientáció.

Az it-tanfolyam.hu 2018-ban csatlakozott a rendezvénysorozathoz. Meghirdettünk öt programot a https://digitalistemahet.hu weblapon. A programjainkra 2018. április 13-án 18:00-21:00 óráig került sor. A részvétel ingyenes, de előzetes regisztrációhoz kötött volt.

Rendezvényünk plakátja

Köszönöm oktató kollégáimnak, hogy örömmel csatlakoztak szakmai előadással, interaktív pályaorientációs beszélgetéssel. Jól éreztük magunkat. A program szoros menetrendben zajlott. A szünetekben élénk szakmai párbeszéd alakult ki. Köszönjük a részvevő érdeklődőinknek, hogy eljöttek és aktívan közreműködtek. Jövőre is szívesen csatlakozunk a Digitális Témahét rendezvénysorozathoz.

HWSW – Merre tart a Java? Nyár végi Java fejlesztői meetup

HWSW logó

HWSW logó2017. augusztus 29-én délután a HWSW szervezésében a Merre tart a Java? Nyár végi Java fejlesztői meetup-on vettem részt az AnKERT-ben. Az előadások a szeptember 21-re időzített Java SE 9 várható újdonságai köré épültek.

Simon Géza (DPC Consulting) A Java 9 újdonságaiból szemezgetett. Egy kérdéssel indított: eltöri-e a Jigsaw a meglévő rendszereinket? (Spoiler: lehet.) A Jigsaw projekt a Java 9-től végre elérhető. Kitért a modulok definiálására. Mutatott példát adatbázis drivertől való függőség kezelésére szerviz definícióval. Kitért az rt.jar átalakításának koncepciójára – egyben a JDK és a JRE összefésülésére –, valamint az egységbezárás finomhangolására.

Gergely Pál Dávid (Doctusoft) Java alkalmazások a felhőben előadását a kontroll vs. munka egyensúlya, arányaival kezdte a privát felhő, IaaS, PaaS, FaaS, SaaS konfigurációs alkotóelemeinek (Functions, Data, Application, Runtime, Backend Code, OS, Virtualization, Server Machine, Storage, Networking) felelősségi körét áttekintve. Rendszerek kialakításának folyamatával folytatta, tág testre szabási lehetőségeket ismertetve. Mindent eldöntő kérdésnek szánta: de hát akkor miért nem FaaS még minden? Kaptunk rá hivatalos és gyakorlatias válaszokat is. A legacy rendszerek frissítéséhez kötődően megosztotta legfontosabb tapasztalatát: a technológiai előnyhöz célszerű üzleti előnyt is párosítani.

Faragó János (designhumanist) A Java jövője… nem is a Java? című előadása alatt nagyon kellett ügyféllel egyeztetnem telefonon, így ezt kihagytam. A kulcsszó a Kotlin volt. A prezentációkat a szervezők publikálták, így megtekinthető.

Pákozdi György (Green Fox Academy) JShell: a Java 9 REPL csodája című előadásában demózta a read-eval-print-loop technikát. A megközelítés inkább hibakezeléshez kötődött, de ez a „parancssor” végre beépült az ökoszisztémába, így rendelkezésre áll az azonnali végrehajtás és kiértékelés (eredmény visszaadás) a futtatókörnyezetben. Rövid áttekintést kaptunk arról is, hogyan működik, mit jelent a REPL más programozási nyelvekben.

Balogh Zsolt (Liferay) Patchelés Enterprise Java környezetben címmel összefoglalta az inkrementális javítási folyamatot és áttekintést adott arról, hogy egy elosztott rendszerben mindez miket érinthet, például alkalmazás-szerver, adatbázis, operációs rendszer, böngésző (asztali és mobil), DK, felhőszolgáltatás. Persze mindegyikből többféle is választható. Felsorolta egy patching toollal szemben megfogalmazható általános és egyben minimum követelményeket/elvárásokat. Megosztott néhány gyakorlati tapasztalatot is, főként az egyszerűsítést és az automatizálást érintve. Néhány tipikus rejtett problémát is megismerhettünk.

Fodor Bertalan (EPAM) Reaktív microservice-ek – a jövő Javával című előadásában hangsúlyozta, hogy az üzleti igények változásában beállt jelenlegi trend nem az, hogy a nagyobb hal megeszi a kisebbet, hanem az, hogy a gyorsabb hal eszi meg a lassabbat. Az architektúra fejlődése során a nyújtott/biztosított szolgáltatások egyre komplexebbek, állandóan növekszik a felhasználók száma, amihez természetesen folyamatosan növekvő erőforrásigény társul. Az alapvető elvárások kulcsszava a reaktivitás, 4 szempontban gondolkodva: reszponzív, reziliens, elasztikus, üzenetalapú.