{"id":34626,"date":"2019-10-31T21:59:30","date_gmt":"2019-10-31T18:59:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kodim-pitstsa\/"},"modified":"2019-10-31T21:59:30","modified_gmt":"2019-10-31T18:59:30","slug":"kodim-pitstsa","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/news\/kodim-pitstsa","title":{"rendered":"K\u00f3doljunk\u2013pizza","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hell\u00f3, Habr. Spont\u00e1n m\u00f3don lebonyol\u00edtottuk az els\u0151 bels\u0151 hackathonunkat. \u00dagy d\u00f6nt\u00f6ttem, megosztom veletek a f\u00e1jdalmamat \u00e9s a k\u00f6vetkeztet\u00e9seimet a k\u00e9t hetes felk\u00e9sz\u00fcl\u00e9sr\u0151l, valamint az elk\u00e9sz\u00fclt projektekr\u0151l.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/938168da11e489bcf2112a11bc3f220e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Unalmas r\u00e9sz azoknak, akiket a marketing \u00e9rdekel<\/h2>\n<p>\nKis t\u00f6rt\u00e9nettel kezdem. <\/p>\n<p>\u00c1prilis eleje. Az irod\u00e1nkban zajlik az els\u0151 hackathon a MskDotNet K\u00f6z\u00f6ss\u00e9g szervez\u00e9s\u00e9ben. A csata Tatuin\u00e9rt \u00e9ppen folyik a mi galaxisunkban. Szombat. 20 csapat. Pizza. Minden nagyon bar\u00e1ti hangulat\u00fa (<noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/album-125321990_262572840\">bizony\u00edt\u00e9kok<\/a><\/noindex>). A felf\u00fajhat\u00f3 R2-D2 b\u00f3kl\u00e1szik a teremben. A csapatok a lehet\u0151 legjobb algoritmusokat \u00edrj\u00e1k, hogy megnyerj\u00e9k a legvesz\u00e9lyesebb versenyt a t\u00e9rk\u00e9pen. Elhalasztjuk az els\u0151 futamok kezd\u00e9s\u00e9t. A keksz \u00e9s a k\u00e1v\u00e9 ment meg minket. A szervez\u0151kkel azt v\u00e1rtuk, hogy szombaton sokan hazamennek d\u00e9l ut\u00e1n. De nem. 12 \u00f3ra k\u00f3dol\u00e1s m\u00f6g\u00f6tt\u00fcnk. A fin\u00e1l\u00e9. Valami elromlik, valami nem indul el. De mindenki boldog. A mi csapatunk nyer. K\u00e9t szerencs\u00e9nk van. <\/p>\n<p>Megosztom az \u00f6r\u00f6m\u00f6met a Slack-en, \u00e9s eszembe jut egy \u00f6tlet: \"Kellene csin\u00e1lnunk egy saj\u00e1t hackathont.\" \u00cdrok a CTO-nknak, Sash\u00e1nak. Csend. <\/p>\n<p>Reggel. K\u00e1v\u00e9t iszom az irod\u00e1ban. L\u00e1tom, hogy Sasha k\u00f6zeledik m\u00f6g\u00fclem. \"Lisa, ez nagyszer\u0171! \u00c1prilis 21-\u00e9n fontos id\u0151pontunk van. Csin\u00e1ljuk!\" WTF!? Ilyen gyorsan? Hogy? K\u00f6z\u00e9pen \u00e1prilisban utaznom kell Syktyvkarba egy gyakorlatra. De kit \u00e9rdekel! Menj\u00fcnk.<\/p>\n<p>K\u00e9t h\u00e9t van h\u00e1tra. Soha nem voltam egyed\u00fcli szervez\u0151je egy hackathonnak. Akkor se, ha bels\u0151. Olvasok cikkeket err\u0151l. Ciki. T\u00f6bb h\u00f3nap sz\u00fcks\u00e9ges. P\u00e1r ember kell. Ki kell tal\u00e1lni a merch-et, a d\u00edjakat, a k\u00f6r\u00fclm\u00e9nyeket, az \u00fctemtervet, \u00e9rdekl\u0151d\u00e9st kelteni, meg\u00e9rteni a c\u00e9lt, a k\u00f6lts\u00e9gvet\u00e9seket. Tal\u00e1n m\u00e9g az \u00e9let \u00e9rtelm\u00e9t is kider\u00edteni. Tuti, hogy nem fogok elk\u00e9sz\u00fclni. \u00c9s m\u00edg te olvast\u00e1l \u00e9s k\u00e9sz\u00fclt\u00e9l, m\u00e1r eltelt egy h\u00e9t. Itt az ideje, hogy feladj mindent, \u00e9s elkezdj valamit csin\u00e1lni. <\/p>\n<p><b class=\"spoiler_title\">Itt a checklist\u00fcnk bels\u0151 hackathon lebonyol\u00edt\u00e1s\u00e1hoz egy h\u00e9t alatt<\/b><\/p>\n<ul>\n<li><b>Terv<\/b>: nyugodtan le\u00fclsz, \u00e9s \u00edrsz egy list\u00e1t arr\u00f3l, hogy mit kell megtenni a hackathonhoz. <i>30 perc<\/i>.<\/li>\n<li><b>Feladat<\/b>: a r\u00e9sztvev\u0151k maguk javasolj\u00e1k \u00e9s v\u00e1lasztj\u00e1k ki a projekteket, amelyeket Google Sheets-ben szeretn\u00e9nek l\u00e9trehozni. <i>H\u00e1tt\u00e9rfeladat, 2 \u00f3ra<\/i>.<\/li>\n<li><b>\u00dctemterv<\/b>: id\u0151beoszt\u00e1st \u00edrsz \u00f6ssze a t\u00e9rdeden, figyelembe v\u00e9ve 3 sz\u00fcnetet \u00e9s a fin\u00e1l\u00e9t. <i>20 perc<\/i>.<\/li>\n<li><b>Csapatok<\/b>: k\u00f6zz\u00e9teszed a hackathonr\u00f3l sz\u00f3l\u00f3 \u00fczenetet a CTO id\u0151beoszt\u00e1s\u00e1val az IT-csatorn\u00e1kban Slack-en\/emailben\/egy\u00e9b helyeken, \u00e9s l\u00e9trehozol egy k\u00fcl\u00f6n csatorn\u00e1t a hackathonhoz. Ebben mindenki csapatokra oszlik, a hat\u00e1rozatlanok pedig az els\u0151 5 percben csin\u00e1lj\u00e1k meg ezt a hackathon alatt. <i>H\u00e1tt\u00e9rfeladat, 2 \u00f3ra<\/i>.<\/li>\n<li><b>Extras\u00e1gok<\/b>: K\u00e9t fejleszt\u0151vel merchandiset tal\u00e1lsz ki, \u00e1tadod a tervez\u0151nek, majd megkapod a k\u00e9sz v\u00e1ltozatot. <i>H\u00e1tt\u00e9rfeladat, 3 nap<\/i>.<\/li>\n<li><b>Hackathon<\/b>: Meg\u00e9rkezel az irod\u00e1ba, koordin\u00e1lod mindenki munk\u00e1j\u00e1t a kezdetekn\u00e9l, ut\u00e1na a saj\u00e1t dolgaiddal foglalkozol, olvasol Redditet, komoly arccal minden sz\u00fcnetben bejelented az \u00faj pizz\u00e1t, f\u00e9nyk\u00e9pezed a naplement\u00e9t, kihirdeted a d\u00f6nt\u0151t, k\u00f6z\u00f6sen szavaztok \u00e9s kiv\u00e1lasztj\u00e1tok a gy\u0151ztest. <i>1 nap<\/i>.<\/li>\n<li><b>Csillag alatt<\/b>: Term\u00e9szetesen folyamatosan azon j\u00e1r az eszed, hogy minden j\u00f3l siker\u00fclj\u00f6n. Term\u00e9szetesen nem mindenki l\u00e1tja az \u00fczenetedet, \u00e9s egyesekkel jobb szem\u00e9lyesen besz\u00e9lni. Term\u00e9szetesen, ha lenne valaki, aki seg\u00edt, minden k\u00e9tszer olyan egyszer\u0171 lenne (nekem csod\u00e1latos Al\u00e9na seg\u00edtett).<\/li>\n<\/ul>\n<h2>A hackathon d\u00e1tum\u00e1r\u00f3l a kev\u00e9sb\u00e9 unalmas r\u00e9sz<\/h2>\n<p>\nMi\u00e9rt \u00e1prilis 21.? Ez a nap fontos sz\u00e1munkra. Pont egy \u00e9vvel ezel\u0151tt, \u00e1prilis 21-\u00e9n terhel\u00e9s alatt \u00f6sszeomlottunk az els\u0151 h\u00e9tv\u00e9g\u00e9n a Sz\u00f6vets\u00e9gi Rekl\u00e1mkamp\u00e1ny kezdet\u00e9n. M\u00e1snap, vas\u00e1rnap, csapatunk reggel 8-t\u00f3l dolgozott. Akkor l\u00e9trehoztuk a Trello t\u00e1bl\u00e1t a sundayhackathon n\u00e9ven, \u00e9s megkezd\u0151d\u00f6tt a 12 \u00f3r\u00e1s v\u00e1ltott munk\u00e1k hete. A helyzet annyira kritikus volt, hogy m\u00e9g enni sem volt id\u0151nk, \u00e9s a t\u00f6bbi csapat fiataljai t\u00e1pl\u00e1ltak minket.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/9d611c134267d1377a95f21a57c69687.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nB\u0151vebb besz\u00e1mol\u00f3t olvashat az <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/story.php?story_fbid=10215961419809495&amp;id=1267477281\">Fjodor Ovcsinnyikov oldal\u00e1n<\/a><\/noindex> (a CEO-nk). Az\u00f3ta sok minden v\u00e1ltozott, de ezt a d\u00e1tumot biztosan nem felejtj\u00fck el.<\/p>\n<p>Id\u00e9n \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy ezt az esem\u00e9nyt meg kell \u00f6r\u00f6k\u00edteni az ut\u00f3kor sz\u00e1m\u00e1ra, \u00e9s a legjobb hagyom\u00e1nyok szerint megszervezt\u00fck a Dodo t\u00f6rt\u00e9net\u00e9nek els\u0151 bels\u0151 hackathonj\u00e1t, amely 10 \u00f3r\u00e1n \u00e1t tartott. <\/p>\n<h2>A hackathon projektek legizgalmasabb r\u00e9sze<\/h2>\n<p>\n<i>Megjegyz\u00e9s: Minden le\u00edr\u00e1st a fi\u00fak \u00edrtak, \u00edgy a sz\u00f6veg szerz\u0151je nem \u00e9n vagyok.<\/i><\/p>\n<h4>Oleg Learning (g\u00e9pi tanul\u00e1s)<\/h4>\n<p>\n<i>Dima Kocnev, Sasha Andronov (@alexandronov)<\/i><\/p>\n<p>Olyan neur\u00e1lis h\u00e1l\u00f3t akartunk l\u00e9trehozni, amely k\u00e9pes felismerni, hogy milyen pizza l\u00e1that\u00f3 a f\u00e9nyk\u00e9pen, b\u00e1rmif\u00e9le el\u0151zetes tud\u00e1s n\u00e9lk\u00fcl. V\u00e9g\u00fcl egy nagyon egyszer\u0171 \u00e9s j\u00e1t\u00e9kos verzi\u00f3t k\u00e9sz\u00edtett\u00fcnk \u2013 felismeri 10 fajt\u00e1t, k\u00f6r\u00fclbel\u00fcl meg\u00e9rtett\u00fck, hogyan m\u0171k\u00f6dik, amennyire lehets\u00e9ges egy nap alatt (~10 \u00f3r\u00e1ban).<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/361e89bc6084abdc0e3ac3fdfb7863d2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00fcl\u00f6n\u00f6sen azt \u00e9rtett\u00fck meg, hogy az ipar eljutott arra a szintre, amikor egy \u00e1tlagos fejleszt\u0151 k\u00e9pes k\u00e9sz k\u00f6nyvt\u00e1rakat ig\u00e9nybe venni, elolvasni a dokument\u00e1ci\u00f3t \u00e9s neur\u00e1lis h\u00e1l\u00f3t tan\u00edtani m\u00e9lyebb tud\u00e1s n\u00e9lk\u00fcl. \u00c9s el\u00e9g j\u00f3l m\u0171k\u00f6dik a val\u00f3s feladatok megold\u00e1s\u00e1ra.<\/p>\n<p>A haszn\u00e1lt eszk\u00f6z\u00f6k: <\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/imageai.readthedocs.io\/en\/latest\/index.html\">imageai<\/a><\/noindex> \u2014 k\u00e9nyelmes \u00e9s egyszer\u0171 k\u00f6nyvt\u00e1r a g\u00e9pi tanul\u00e1s \u00e9s a sz\u00e1m\u00edt\u00f3g\u00e9pes l\u00e1t\u00e1s ter\u00fclet\u00e9n.<\/li>\n<li>K\u00e9t modellt pr\u00f3b\u00e1ltunk ki \u2013 ResNet50, Yolo.<\/li>\n<li>A k\u00f3d term\u00e9szetesen Pythonban k\u00e9sz\u00fclt.<\/li>\n<\/ul>\n<p>\n11000 fot\u00f3nk volt, de ezek k\u00f6z\u00fcl majdnem 3\/4-\u00fck szem\u00e9tnek bizonyult, az elt\u0171nt k\u00e9pek k\u00fcl\u00f6nb\u00f6z\u0151, nem megfelel\u0151 sz\u00f6gekkel. V\u00e9g\u00fcl egy k\u00e9sz modellt haszn\u00e1ltunk (ami egyszer\u0171en csak k\u00e9pes pizz\u00e1t tal\u00e1lni), \u00e9s ennek seg\u00edts\u00e9g\u00e9vel v\u00e1logattuk ki a legrosszabbakat. Ezen k\u00edv\u00fcl a fot\u00f3k neve a pizza nev\u00e9t tartalmazta \u2013 \u00edgy rendszerezt\u00fck \u0151ket mapp\u00e1kba, de kider\u00fclt, hogy a nevek nem egyeztek a val\u00f3s\u00e1ggal, \u00e9s itt m\u00e1r k\u00e9zzel kellett tisztogatnunk. V\u00e9g\u00fcl k\u00f6r\u00fclbel\u00fcl 500-600 fot\u00f3 maradt, ami nyilv\u00e1nval\u00f3an eleny\u00e9sz\u0151 mennyis\u00e9g, de \u00edgy is elegend\u0151 volt ahhoz, hogy 10 pizz\u00e1t megk\u00fcl\u00f6nb\u00f6ztess\u00fcnk egym\u00e1st\u00f3l.<\/p>\n<p>A h\u00e1l\u00f3zat betan\u00edt\u00e1s\u00e1hoz a legolcs\u00f3bb virtu\u00e1lis g\u00e9pet haszn\u00e1ltuk az Azure-ban, NVIDIA Tesla K80-cal. Ezen 100 epiz\u00f3dban tan\u00edtottuk, de m\u00e1r 50 epiz\u00f3d ut\u00e1n l\u00e1that\u00f3 volt, hogy a h\u00e1l\u00f3zat tel\u00edt\u0151d\u00f6tt, mivel kicsi volt az adatb\u00e1zis.<\/p>\n<p>Val\u00f3j\u00e1ban az eg\u00e9sz probl\u00e9ma a j\u00f3 adatok hi\u00e1ny\u00e1ban rejlik.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/b89ba378674df1b3e899a93fc0fce86c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLehet, hogy kiss\u00e9 \u00f6sszezavartuk a kifejez\u00e9seket, de figyelembe kell venni, hogy nek\u00fcnk egy\u00e1ltal\u00e1n nincs tapasztalatunk ezekkel a dolgokkal kapcsolatban.<\/p>\n<h4>GUI for NOOBS (pizza rendel\u00e9s konzol alkalmaz\u00e1s)<\/h4>\n<p>\n<i>Misa Kumachyov (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/ceridan\/\" class=\"user_link\">Ceridan<\/a><\/noindex>), Zs\u00f3fia Bikkinin, Zs\u00f3fia Vasziljev<\/i><\/p>\n<p>\u00d6sszegy\u0171jt\u00f6tt\u00fcnk egy protot\u00edpus konzol alkalmaz\u00e1st geekek sz\u00e1m\u00e1ra, amellyel pizz\u00e1t rendelhet\u00fcnk a termin\u00e1lon vagy a parancssoron kereszt\u00fcl, s\u0151t be is \u00e9p\u00edthetj\u00fck a telep\u00edt\u00e9si folyamatba, \u00e9s sikeres kiad\u00e1s eset\u00e9n pizz\u00e1t sz\u00e1ll\u00edthatunk az irod\u00e1ba.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/14186ccb66d074923f89c1da47d594a1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA munka t\u00f6bb r\u00e9szre oszlott: foglalkoztunk azzal, hogy hogyan m\u0171k\u00f6dik az API-nk a mobilalkalmaz\u00e1sokhoz, \u00e9s \u00f6sszeraktuk a saj\u00e1t CLI-nket a <noindex><a rel=\"nofollow\" href=\"https:\/\/oclif.io\">oclif<\/a><\/noindex> seg\u00edts\u00e9g\u00e9vel, \u00e9s be\u00e1ll\u00edtottuk a saj\u00e1t csomagunk kiad\u00e1s\u00e1t. Az utols\u00f3 feladat n\u00e9h\u00e1ny kellemetlen percet okozott a hackathon v\u00e9g\u00e9n. Minden helyben m\u0171k\u00f6d\u00f6tt, s\u0151t a r\u00e9gi kiadott verzi\u00f3k is m\u0171k\u00f6dtek, de az \u00faj verzi\u00f3k (amelyek t\u00f6bb men\u0151 funkci\u00f3t \u00e9s emotikont tartalmaztak) nem m\u0171k\u00f6dtek. K\u00f6r\u00fclbel\u00fcl 40 percet t\u00f6lt\u00f6tt\u00fcnk el azzal, hogy kider\u00edts\u00fck, mi ment f\u00e9lre, de v\u00e9g\u00fcl minden var\u00e1zslatos m\u00f3don elkezdett m\u0171k\u00f6dni.<\/p>\n<p>A hackathon f\u0151 c\u00e9lja az volt, hogy val\u00f3di pizzarendel\u00e9st ind\u00edtsunk az irod\u00e1ban a CLI-nk seg\u00edts\u00e9g\u00e9vel. T\u00edz alkalommal futtattuk le mindent a tesztk\u00f6rnyezetben, de a kezemben m\u00e9g mindig remegett a kezem, amikor a termel\u00e9si parancsokat \u00edrtam be.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/5392e269446fcd09ceb9e16a8f9c4101.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA v\u00e9g\u00e9n \u2013 m\u00e9gis siker\u00fclt!<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/c966b190a6fe8a2f88a3973305cd03fb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>CourierGo<\/h4>\n<p>\n<i>Anton Bruzhmelov (szerz\u0151), Vanya Zverev, Gleb Lesnikov (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/entropy\/\" class=\"user_link\">entropy<\/a><\/noindex>), Andrey Sarafanov<\/i><\/p>\n<p>Elkaptuk az \u00f6tletet a \u201eFut\u00e1r alkalmaz\u00e1s\u201d-b\u00f3l.<\/p>\n<p><b class=\"spoiler_title\">El\u0151zm\u00e9nyek a felk\u00e9sz\u00fcl\u00e9sr\u0151l.<\/b>Kezdetben arra gondoltam, hogy milyen funkci\u00f3k lehetnek az alkalmaz\u00e1sban? K\u00f6r\u00fclbel\u00fcl egy ilyen funkci\u00f3lista alakult ki:<\/p>\n<ul>\n<li>Az alkalmaz\u00e1s bejelentkezik a kisz\u00e1ll\u00edt\u00f3i kassz\u00e1ba k\u00f3d seg\u00edts\u00e9g\u00e9vel.<\/li>\n<li>Az alkalmaz\u00e1sban azonnal l\u00e1that\u00f3k a rendelkez\u00e9sre \u00e1ll\u00f3 megrendel\u00e9sek, a felveend\u0151 megrendel\u00e9sek.<\/li>\n<li>A fut\u00e1r megjel\u00f6li a rendel\u00e9st \u00e9s \u00fatra kel.<\/li>\n<li>Megjelenik a becs\u00fclt \u00e9rkez\u00e9si id\u0151, \u00e9s elk\u00e9sz\u00fcl-e id\u0151ben.<\/li>\n<li>Az \u00fcgyf\u00e9l sz\u00e1m\u00e1ra l\u00e1that\u00f3, hogy a fut\u00e1r \u00faton van.<\/li>\n<li>Az \u00fcgyf\u00e9l sz\u00e1m\u00e1ra megjelenik a fut\u00e1r aktu\u00e1lis poz\u00edci\u00f3ja a t\u00e9rk\u00e9pen \u00e9s a becs\u00fclt id\u0151.<\/li>\n<li>A fut\u00e1r \u00edrhat az \u00fcgyf\u00e9lnek az alkalmaz\u00e1sb\u00f3l chat-en.<\/li>\n<li>Az \u00fcgyf\u00e9l \u00edrhat a fut\u00e1rnak az alkalmaz\u00e1sb\u00f3l chat-en.<\/li>\n<li>\u00d6t perccel az \u00e9rkez\u00e9s el\u0151tt az \u00fcgyf\u00e9l \u00fczenetet kap, hogy a fut\u00e1r k\u00f6zel van, k\u00e9sz\u00fclj\u00f6n!<\/li>\n<li>A fut\u00e1r megjel\u00f6li az alkalmaz\u00e1sban, hogy meg\u00e9rkezett \u00e9s v\u00e1r.<\/li>\n<li>A fut\u00e1r egy kattint\u00e1ssal h\u00edvhatja az alkalmaz\u00e1sb\u00f3l, \u00e9s jelzi, hogy (j\u00f6n fel, meg\u00e9rkezett stb.)<\/li>\n<li>Az \u00fcgyf\u00e9l elfogadja a rendel\u00e9st, \u00e9s be\u00edrja a PIN-k\u00f3dot az alkalmaz\u00e1sb\u00f3l vagy SMS-b\u0151l, hogy meger\u0151s\u00edtse a kisz\u00e1ll\u00edt\u00e1st. (mint egy al\u00e1\u00edr\u00e1s) Hogy a fut\u00e1r ne tudja el\u0151re befejezni a kisz\u00e1ll\u00edt\u00e1st, ha k\u00e9slekedik.<\/li>\n<li>A rendel\u00e9s a rendszerben kisz\u00e1ll\u00edtottnak sz\u00e1m\u00edt.<\/li>\n<\/ul>\n<p>Plusz n\u00e9h\u00e1ny alternat\u00edv forgat\u00f3k\u00f6nyv:<\/p>\n<ul>\n<li>A fut\u00e1r megjel\u00f6lheti a rendel\u00e9st nem kisz\u00e1ll\u00edtottnak, \u00e9s v\u00e1laszthatja az okot.<\/li>\n<li>A fut\u00e1r k\u00e9sleked\u00e9s eset\u00e9n egy gombnyom\u00e1ssal elektronikus tan\u00fas\u00edtv\u00e1nyt k\u00fcldhet SMS-ben. Vagy a tan\u00fas\u00edtv\u00e1ny automatikusan \u00e9rkezik a sz\u00e1ll\u00edt\u00e1si hat\u00e1rid\u0151 be nem tart\u00e1sa eset\u00e9n.<\/li>\n<\/ul>\n<p>\nA projekttel kapcsolatos perspekt\u00edva \u00e9s sz\u00fcks\u00e9gess\u00e9g \u00e9rz\u00e9se term\u00e9szetesen motiv\u00e1lt.<\/p>\n<p>M\u00e1snap elment\u00fcnk a csapattal eb\u00e9delni, \u00e9s megbesz\u00e9lt\u00fck, hogyan fog kin\u00e9zni az alkalmaz\u00e1s minim\u00e1lis funkcionalit\u00e1sa. <\/p>\n<p>V\u00e9g\u00fcl a k\u00f6vetkez\u0151 lista alakult ki arr\u00f3l, amit a hackathon sor\u00e1n el kellett v\u00e9gezn\u00fcnk:<\/p>\n<ul>\n<li>Bejelentkez\u00e9s a kisz\u00e1ll\u00edt\u00f3i kassz\u00e1ba.<\/li>\n<li>Jelenlegi helyzet megjelen\u00edt\u00e9se.<\/li>\n<li>Adatok k\u00fcld\u00e9se egy k\u00fcls\u0151 API-val (koordin\u00e1t\u00e1k, rendel\u00e9s felv\u00e9tele, rendel\u00e9s kisz\u00e1ll\u00edt\u00e1sa).<\/li>\n<li>Adatok fogad\u00e1sa egy k\u00fcls\u0151 API-b\u00f3l (fut\u00e1r aktu\u00e1lis rendel\u00e9sei).<\/li>\n<li>Esem\u00e9ny k\u00fcld\u00e9se arr\u00f3l, hogy a rendel\u00e9st felvett\u00e9k a kisz\u00e1ll\u00edt\u00e1sra\/kisz\u00e1ll\u00edtott\u00e1k.<\/li>\n<li>A fut\u00e1r aktu\u00e1lis helyzet\u00e9nek megjelen\u00edt\u00e9se a weboldalon a t\u00e9rk\u00e9pen.<\/li>\n<\/ul>\n<p>\nA f\u0151 munka, ahogy l\u00e1ttuk, a backend l\u00e9trehoz\u00e1sa volt, az alkalmaz\u00e1s\u00e9 (megbesz\u00e9l\u00e9sek ut\u00e1n a ReactNative-t v\u00e1lasztottuk az alkalmaz\u00e1s fejleszt\u00e9s\u00e9hez, pontosabban annak burkolat\u00e1t \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/expo.io\/\">expo.io<\/a><\/noindex>, amely lehet\u0151v\u00e9 teszi a nat\u00edv k\u00f3d teljes elker\u00fcl\u00e9s\u00e9t). A backend tervei k\u00f6z\u00f6tt kezdetben volt rem\u00e9ny Vanya Zverev-re, mint tapasztalt szakember\u00fcnkre a szolg\u00e1ltat\u00e1sunk sablonj\u00e1val \u00e9s a k8s-szel kapcsolatban (ezt a feladatot mag\u00e1ra is v\u00e1llalta). ReactNative-ot \u00e9n \u00e9s Andrey Sarafanov pr\u00f3b\u00e1lgattuk.<\/p>\n<p>\u00dagy d\u00f6nt\u00f6ttem, hogy r\u00f6gt\u00f6n l\u00e9trehozok egy m\u0171k\u00f6d\u0151 repozit\u00f3riumot a projekt sz\u00e1m\u00e1ra. \u00c9jf\u00e9l k\u00f6r\u00fcl \u00e9szrevettem, hogy a ReactNative-ban rosszul m\u0171k\u00f6dik a geolok\u00e1ci\u00f3 h\u00e1tt\u00e9rben, ha nem \u00edrok nat\u00edv k\u00f3dot, ami el\u00e9gg\u00e9 frusztr\u00e1lt. Azt\u00e1n megnyugodtam, amikor r\u00e1j\u00f6ttem, hogy nem az expo.io keretrendszer dokument\u00e1ci\u00f3j\u00e1t olvasom, hanem a ReactNative-\u00e9t. V\u00e9g\u00fcl est\u00e9re m\u00e1r vil\u00e1gos volt sz\u00e1momra, hogyan tudom az expo.io-ban lek\u00e9rni a jelenlegi helyzetemet \u00e9s k\u00fcl\u00f6n k\u00e9perny\u0151ket rajzolni (bejelentkez\u00e9shez, rendel\u00e9s megjelen\u00edt\u00e9s\u00e9hez stb.).<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/2412edc5937b44e141d719269565dfee.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nReggel a hackathonon Gleb-et bevont\u00e1k a szuper-prospekt\u00edv projektj\u00fckbe. Gyorsan \u00f6sszedobt\u00e1k a tervet arr\u00f3l, hogy mi sz\u00fcks\u00e9ges.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/4bc0ebef3ed6b661bd25ef75ac6d536d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHib\u00e1t k\u00f6vett\u00fcnk el, amikor a projekt sablonja szerint nem HTTP-n, hanem GRPC-n pr\u00f3b\u00e1ltunk kommunik\u00e1lni, mivel senki sem tudta \u00f6sszerakni a GRPC-klienst JavaScript-hez. Ennek eredm\u00e9nyek\u00e9nt k\u00f6r\u00fclbel\u00fcl m\u00e1sf\u00e9l \u00f3r\u00e1t elt\u00f6ltve v\u00e9g\u00fcl feladtuk ezt az \u00f6tletet. Emiatt a sr\u00e1cok a backend-en is elkezdt\u00e9k \u00e1tdolgozni a k\u00e9sz szervert GRPC-r\u0151l WebApi-ra. F\u00e9l \u00f3ra m\u00falva v\u00e9gre siker\u00fclt be\u00e1ll\u00edtanunk az alkalmaz\u00e1s kommunik\u00e1ci\u00f3j\u00e1t a backend-del, csod\u00e1k csod\u00e1j\u00e1ra. De ek\u00f6zben Gleb majdnem befejezte a telep\u00edt\u00e9st a k8s-ben, \u00e9s az automatikus telep\u00edt\u00e9st is be\u00e1ll\u00edtotta a mesterbe val\u00f3 elk\u00f6telez\u00e9s alapj\u00e1n. \ud83d\ude42<\/p>\n<p>T\u00e1rhelyk\u00e9nt a MySQL-t v\u00e1lasztottuk, hogy legal\u00e1bb a b\u00e1zissal ne kock\u00e1ztassunk (gondoltunk a CosmosDb-ra is).<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/2ae381b2006330915ae38d55f2ac08cd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00e9g\u00fcl: <\/p>\n<ul>\n<li>Megval\u00f3s\u00edtottuk a fut\u00e1r aktu\u00e1lis koordin\u00e1t\u00e1inak ment\u00e9s\u00e9t az alkalmaz\u00e1sb\u00f3l az adatb\u00e1zisba.<\/li>\n<li>Integr\u00e1ltuk a RabbitMQ-t, \u00e9s feliratkoztunk a fut\u00e1r \u00e1ltal a rendel\u00e9s \u00e1tv\u00e9tel\u00e9r\u0151l sz\u00f3l\u00f3 \u00fczenetekre, hogy azonnal megjelen\u00edthess\u00fck a rendel\u00e9st a fut\u00e1r alkalmaz\u00e1s\u00e1ban.<\/li>\n<li>Elkezdett az adatb\u00e1zisunkban t\u00e1rolni az aj\u00e1nlat id\u0151pontj\u00e1t, miut\u00e1n a fut\u00e1r megnyomta a gombot az alkalmaz\u00e1sban. Nem tudtuk id\u0151ben hozz\u00e1adni az esem\u00e9ny visszak\u00fcld\u00e9s\u00e9t a rabbit-nek azzal, hogy a rendel\u00e9s teljes\u00edtve lett.<\/li>\n<li>K\u00e9sz\u00edtettem egy t\u00e9rk\u00e9pmegjelen\u00edt\u00e9st a currentorder oldalon a weboldalon a fut\u00e1r aktu\u00e1lis helyzet\u00e9vel. De ez a funkci\u00f3 kiss\u00e9 hi\u00e1nyos maradt, mivel a k\u00f6rnyezetben nem siker\u00fclt be\u00e1ll\u00edtani a CORS-t az \u00faj szolg\u00e1ltat\u00e1sunkb\u00f3l sz\u00e1rmaz\u00f3 koordin\u00e1t\u00e1k lek\u00e9rdez\u00e9s\u00e9hez.<\/li>\n<\/ul>\n<p><\/p>\n<h4>M87<\/h4>\n<p>\n<i>Roma Bukin, Gosha Polevoy (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/georgepolevoy\/\" class=\"user_link\">georgepolevoy<\/a><\/noindex>), Artyom Trofimushkin<\/i><\/p>\n<p>Szerett\u00fck volna megval\u00f3s\u00edtani az OpenID Connect szolg\u00e1ltat\u00f3t, mivel jelenleg a saj\u00e1t fejleszt\u00e9s\u0171 hiteles\u00edt\u00e9si protokollunkat haszn\u00e1ljuk, ami sz\u00e1mos neh\u00e9zs\u00e9get okoz: testreszabott kliensk\u00f6nyvt\u00e1rak, k\u00e9nyelmetlen egy\u00fcttm\u0171k\u00f6d\u00e9s k\u00fcls\u0151 partnerekkel, esetleg biztons\u00e1gi probl\u00e9m\u00e1k (hiszen az OAuth2.0 \u00e9s az OpenID Connect referenciakivitelez\u00e9s\u00e9t biztons\u00e1gosnak lehet tekinteni, a saj\u00e1t megold\u00e1sunkkal viszont nem vagyok biztos).<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/b7247acfc91045f1040535d1f404c64a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00e9sz\u00edtett\u00fcnk egy k\u00fcl\u00f6n szolg\u00e1ltat\u00e1st, amely a szem\u00e9lyes adatok t\u00e1rol\u00e1s\u00e1nak szolg\u00e1ltat\u00e1s\u00e1t ut\u00e1nozza, hogy l\u00e9trehozzunk egy kicsi country-agnosztikus hiteles\u00edt\u00e9si szolg\u00e1ltat\u00f3t, amely k\u00fcl\u00f6n szolg\u00e1ltat\u00e1sb\u00f3l k\u00e9ri el a szem\u00e9lyes adatokat (ez a j\u00f6v\u0151ben lehet\u0151s\u00e9get adna arra, hogy egyetlen szolg\u00e1ltat\u00e1ssal lehetne bejelentkezni b\u00e1rmely orsz\u00e1gban, mik\u00f6zben megfelel a GDPR-nak \u00e9s m\u00e1s jogszab\u00e1lyoknak). Ezt a r\u00e9szt megval\u00f3s\u00edtottuk, ak\u00e1rcsak a szolg\u00e1ltat\u00f3t, \u00e9s sikeresen \u00f6sszekapcsoltuk \u0151ket. Ezut\u00e1n egy API-t kellett l\u00e9trehoznunk, amely tokenekkel v\u00e9dett, amelyeket a szolg\u00e1ltat\u00f3 ad, t\u00e1mogatni kellett azok introspekt\u00e1l\u00e1s\u00e1t a szolg\u00e1ltat\u00f3n kereszt\u00fcl, \u00e9s vissza kellett adni a v\u00e9dett adatokat, ha a k\u00e9r\u00e9s megfelelt a hozz\u00e1f\u00e9r\u00e9s-ellen\u0151rz\u00e9si politik\u00e1knak (ellen\u0151rizz\u00fck, hogy a felhaszn\u00e1l\u00f3 a Bearer s\u00e9m\u00e1k szerint hiteles\u00edtve van, a tokenj\u00e9ben van egy adott scope + a felhaszn\u00e1l\u00f3nak van enged\u00e9lye a h\u00edv\u00e1s v\u00e9grehajt\u00e1s\u00e1hoz). Ezt a r\u00e9szt is megval\u00f3s\u00edtottuk. Az utols\u00f3 komponens egy JavaScript kliens volt, amely egy tokenhez jutott, amellyel v\u00e9dett API-t h\u00edvhatott. Ezt a r\u00e9szt nem siker\u00fclt megval\u00f3s\u00edtanunk. Teh\u00e1t az \u00f6sszes funkcion\u00e1lis r\u00e9sz k\u00e9szen \u00e1llt, de a front-end r\u00e9sz nem volt k\u00e9sz a rendszer m\u0171k\u00f6d\u00e9s\u00e9nek bemutat\u00e1s\u00e1ra.<\/p>\n<h4>E-e-e (j\u00e1t\u00e9k)<\/h4>\n<p>\n<i>Dima Afonsenko, Sasha Konovalov<\/i><\/p>\n<p>K\u00e9sz\u00edtett\u00fcnk egy mini-j\u00e1t\u00e9kot a Junki-n, ahol f\u00fcrge kezek kolb\u00e1szt dobnak a pizz\u00e1ra. Ha hib\u00e1san dobtad a kolb\u00e1szt, a k\u00e9perny\u0151n megjelenik a szomor\u00fa felirat: \"Elutas\u00edtva\", m\u00edg ha a kolb\u00e1sz eg\u00e9sz\u00e9t helyesen dobtad, akkor egy v\u00e9letlenszer\u0171 t\u00e9ny jelenik meg a pizz\u00e1r\u00f3l.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/1c9daf62d4907f9a13de07ac0dd2a14e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSzerett\u00fck volna elk\u00e9sz\u00edteni a m\u00e1sodik szintet, ahol paradicsomot dobnak, de nem siker\u00fclt.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/e3d5028c8043ab1192bbb8cb31918def.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>R\u00f6vid k\u00f6vetkezm\u00e9ny: ki nyert?<\/h2>\n<p>\nA hackathon el\u0151tt besz\u00e9lgett\u00fcnk a fi\u00fakkal, \u00e9s megk\u00e9rdeztem, milyen d\u00edjat szeretn\u00e9nek kapni, ha nyernek. Kider\u00fclt, hogy a leg\u00e9rt\u00e9kesebb d\u00edj a \"jog a termel\u00e9sre\" lesz. <\/p>\n<p><img decoding=\"async\" alt=\"K\u00f3doljunk\u2013pizza\" src=\"\/wp-content\/uploads\/2019\/05\/814f28de3020cc16ce0108efdbbd963d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHamarosan v\u00e1rhat\u00f3 t\u0151l\u00fcnk egy bejelent\u00e9s a j\u00e1t\u00e9khoz, ami a pizz\u00e1ra dob\u00e1l\u00f3 p\u00e9ks\u00fctem\u00e9nyekkel foglalkozik.<\/p>\n<blockquote><p>Ahogy azt a figyelmes olvas\u00f3 \u00e9szlelhette, az \u201eE-E-E (a j\u00e1t\u00e9k)\u201d csapata nyert. Gratul\u00e1lunk a fiataloknak!<\/p><\/blockquote>\n<p class=\"for_users_only_msg\">Csak a regisztr\u00e1lt felhaszn\u00e1l\u00f3k vehetnek r\u00e9szt a szavaz\u00e1son. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">K\u00e9rem, jelentkezzen be.<\/a><\/noindex>, k\u00e9rem.<\/p>\n<h2 class=\"default-block__polling-title\">Melyik projekt tetszett a legjobban \u00f6nnek?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Oleg Learning (g\u00e9pi tanul\u00e1s)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    GUI kezd\u0151knek<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    CourierGo<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    M87<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    E-E-E<\/p>\n<\/li>\n<\/ul>\n<p>    5 felhaszn\u00e1l\u00f3 szavazott. 3 felhaszn\u00e1l\u00f3 tart\u00f3zkodott.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/449344\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u041c\u044b \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0445\u0430\u043a\u0430\u0442\u043e\u043d. \u0420\u0435\u0448\u0438\u043b\u0430 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0431\u043e\u043b\u044f\u043c\u0438 \u0438 \u0432\u044b\u0432\u043e\u0434\u0430\u043c\u0438 \u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043a \u043d\u0435\u043c\u0443 \u0437\u0430 2 \u043d\u0435\u0434\u0435\u043b\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c. \u0421\u043a\u0443\u0447\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433\u043e\u043c \u041d\u0430\u0447\u043d\u0443 \u0441 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041d\u0430\u0447\u0430\u043b\u043e \u0430\u043f\u0440\u0435\u043b\u044f. \u0412 \u043d\u0430\u0448\u0435\u043c \u0432 \u043e\u0444\u0438\u0441\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0445\u0430\u043a\u0430\u0442\u043e\u043d MskDotNet Community. \u0411\u0438\u0442\u0432\u0430 \u0437\u0430 \u0422\u0430\u0442\u0443\u0438\u043d \u0432 \u0440\u0430\u0437\u0433\u0430\u0440\u0435, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26093,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34626","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u041c\u044b \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0445\u0430\u043a\u0430\u0442\u043e\u043d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/news\/kodim-pitstsa\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043e\u0434\u0438\u043c\u2013\u043f\u0438\u0446\u0446\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u041c\u044b \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0445\u0430\u043a\u0430\u0442\u043e\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/news\/kodim-pitstsa\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:59:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:59:30+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47K\u00f3dol\u00e1s\u2013pizza | ProHoster","description":"Hell\u00f3, Habr. Spont\u00e1n megrendezt\u00fck az els\u0151 bels\u0151 hackathonunkat.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/news\/kodim-pitstsa","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043e\u0434\u0438\u043c\u2013\u043f\u0438\u0446\u0446\u0430 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u041c\u044b \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0445\u0430\u043a\u0430\u0442\u043e\u043d.","og:url":"https:\/\/prohoster.info\/hu\/blog\/news\/kodim-pitstsa","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:59:30+00:00","article:modified_time":"2019-10-31T18:59:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34626","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 19:59:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:17:24","updated":"2026-01-21 19:59:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/34626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=34626"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/34626\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/26093"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=34626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=34626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=34626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}