{"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\/sq\/blog\/novosti-interneta\/kodim-pitstsa","title":{"rendered":"Kodim\u2013pica","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje, Habr. Ne spontaneisht organizuam hackathonin e par\u00eb t\u00eb brendsh\u00ebm. Vendosa t\u00eb ndaj me ju shqet\u00ebsimet dhe p\u00ebrfundimet e mia rreth p\u00ebrgatitjeve p\u00ebr t\u00eb, p\u00ebr dy jav\u00eb, si dhe projektet q\u00eb rezultuan.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" 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>Pjesa e m\u00ebrzitshme p\u00ebr ata q\u00eb jan\u00eb t\u00eb interesuar n\u00eb marketing.<\/h2>\n<p>\nDo ta filloj me nj\u00eb histori t\u00eb vog\u00ebl. <\/p>\n<p>Fillimi i prillit. N\u00eb zyr\u00ebn ton\u00eb po zhvillohet hackathoni i par\u00eb i Komunitetit MskDotNet. Lufta p\u00ebr Tatuin \u00ebsht\u00eb n\u00eb kulmin e saj, k\u00ebsaj rradhe n\u00eb galaksin\u00eb ton\u00eb. E shtun\u00eb. 20 ekipe. Pizza. T\u00eb gjith\u00eb s\u00eb bashku (<noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/album-125321990_262572840\">prova<\/a><\/noindex>). R2-D2 i fryr\u00eb l\u00ebviz n\u00eb sall\u00eb. Ekipet po shkruajn\u00eb algoritmet m\u00eb t\u00eb mira p\u00ebr t\u00eb kaluar gar\u00ebn m\u00eb t\u00eb rrezikshme n\u00eb hart\u00eb. Po e shtyjm\u00eb nisjen e gara t\u00eb para. Biskotat dhe kafeja na shp\u00ebtojn\u00eb. Ne, si organizator\u00eb, prisnim se shum\u00eb do t\u00eb iknin pasdite. Por jo. 12 or\u00eb kodim t\u00eb kaluar. Finalja. Disa gj\u00ebra d\u00ebshtojn\u00eb, disa nuk startojn\u00eb. Por t\u00eb gjith\u00eb jan\u00eb t\u00eb lumtur. Ekipi yn\u00eb fiton. Ne jemi dyfish t\u00eb lumtur. <\/p>\n<p>Po ndaj g\u00ebzimin n\u00eb Slack dhe m\u00eb vjen nj\u00eb ide n\u00eb kok\u00eb: \u00abDuhet t\u00eb b\u00ebjm\u00eb hackathonin ton\u00eb\u00bb. I shkruaj CTO-s\u00eb son\u00eb Sasha. Heshtje. <\/p>\n<p>M\u00ebngjesi. Pij kafe n\u00eb zyr\u00eb. Pash\u00eb Sash\u00ebn q\u00eb afrohej pas shpine. \"Liza, kjo \u00ebsht\u00eb shk\u00eblqyer! 21 prilli \u00ebsht\u00eb nj\u00eb dat\u00eb e r\u00ebnd\u00ebsishme p\u00ebr ne. Le t\u00eb veprojm\u00eb!\" \u00c7far\u00eb!? Nj\u00eb shpejt\u00ebsi kaq e madhe? \u00c7far\u00eb? Duhet t\u00eb fluturoj p\u00ebr n\u00eb Syktyvkar p\u00ebr nj\u00eb praktik\u00eb n\u00eb mes t\u00eb prillit. Po, dhe \u00e7far\u00eb! Le t\u00eb shkojm\u00eb.<\/p>\n<p>Mbeten 2 jav\u00eb. Nuk kam qen\u00eb kurr\u00eb organizatore e vetme p\u00ebr nj\u00eb hackathon. Edhe pse t\u00eb brendsh\u00ebm. Po lexoj artikuj mbi k\u00ebt\u00eb tem\u00eb. E tmerrshme. Duhet disa muaj. Duhet disa njer\u00ebz. Duhet t\u00eb mendoj p\u00ebr merchandise, \u00e7mime, kushte, orar, t\u00eb t\u00ebrheq interesin, t\u00eb kuptoj q\u00ebllimin, buxhetet. Ndoshta madje t\u00eb merrem me kuptimin e jet\u00ebs. Padyshim q\u00eb nuk do t'i arrij dot. Dhe nd\u00ebrsa ti lexoje dhe p\u00ebrgatiteshe, tashm\u00eb kaloi nj\u00eb jav\u00eb. Koha m\u00eb e mir\u00eb p\u00ebr t\u00eb l\u00ebn\u00eb pas artikujt dhe p\u00ebr t\u00eb filluar di\u00e7ka. <\/p>\n<p><b class=\"spoiler_title\">K\u00ebtu \u00ebsht\u00eb lista jon\u00eb kontrolli p\u00ebr organizimin e nj\u00eb hackathoni t\u00eb brendsh\u00ebm brenda 1 jave.<\/b><\/p>\n<ul>\n<li><b>Plani<\/b>: ulesh n\u00eb qet\u00ebsi dhe shkruan nj\u00eb list\u00eb t\u00eb atyre q\u00eb duhet t\u00eb b\u00ebhen p\u00ebr hackathon. <i>30 minuta<\/i>.<\/li>\n<li><b>Detyra<\/b>: pjes\u00ebmarr\u00ebsit propozojn\u00eb dhe zgjedhin vet\u00eb projektet q\u00eb duan t\u00eb krijojn\u00eb n\u00eb Google Sheets. <i>Detyr\u00eb n\u00eb background, 2 or\u00eb<\/i>.<\/li>\n<li><b>Orari<\/b>: shkruan shpejt nj\u00eb p\u00ebrmbledhje t\u00eb shkurt\u00ebr t\u00eb orarit duke marr\u00eb parasysh 3 pushime dhe fina. <i>20 minuta<\/i>.<\/li>\n<li><b>Ekipet<\/b>: publikoni nj\u00eb mesazh p\u00ebr hackathon-in me orarin nga CTO n\u00eb kanalet IT n\u00eb Slack\/email\/etc dhe krijon nj\u00eb kanal t\u00eb ve\u00e7ant\u00eb p\u00ebr hackathon-in. N\u00eb t\u00eb, t\u00eb gjith\u00eb ndahen n\u00eb grupe, nd\u00ebrsa ata q\u00eb nuk jan\u00eb vendosur e b\u00ebjn\u00eb k\u00ebt\u00eb gjat\u00eb 5 minutave t\u00eb para t\u00eb hackathon-it. <i>Detyr\u00eb n\u00eb background, 2 or\u00eb<\/i>.<\/li>\n<li><b>Buxhetet<\/b>: krijon merchandise me dy zhvillues, ia jep dizajnerit p\u00ebr dizajnim, merr materialin e gatsh\u00ebm. <i>Detyr\u00eb sfondi, 3 dit\u00eb<\/i>.<\/li>\n<li><b>Hackathon<\/b>: vjen n\u00eb zyr\u00eb, koordinon t\u00eb gjith\u00eb n\u00eb fillim, merret me gj\u00ebrat e tua, lexon Reddit, me nj\u00eb pamje t\u00eb r\u00ebnd\u00ebsishme njofton \u00e7do pauz\u00eb p\u00ebr pizz\u00ebn e re, fotografin\u00eb e per\u00ebndimit, shpall finalen, votojm\u00eb s\u00eb bashku dhe zgjedhim fituesin. <i>1 dit\u00eb<\/i>.<\/li>\n<li><b>N\u00ebn yll<\/b>: sigurisht, ti vazhdimisht mendon p\u00ebr t\u00eb siguruar q\u00eb gjith\u00e7ka t\u00eb shkoj\u00eb mir\u00eb. Sigurisht, jo t\u00eb gjith\u00eb do ta shohin mesazhin t\u00ebnd dhe me disa \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb flas\u00ebsh personalisht. Sigurisht, n\u00ebse dikush t\u00eb ndihmon, gjith\u00e7ka b\u00ebhet dyfish m\u00eb e leht\u00eb (m\u00eb ndihmoi e mrekullueshme Aljona).<\/li>\n<\/ul>\n<h2>Nj\u00eb pjes\u00eb m\u00eb pak e m\u00ebrzitshme rreth dat\u00ebs s\u00eb hackathon-it<\/h2>\n<p>\nPse 21 prilli? Ky dit\u00eb \u00ebsht\u00eb e r\u00ebnd\u00ebsishme p\u00ebr ne. Pik\u00ebrisht nj\u00eb vit m\u00eb par\u00eb, m\u00eb 21 prill p\u00ebrballuam nj\u00eb ngarkes\u00eb gjat\u00eb fundjav\u00ebs s\u00eb par\u00eb pas fillimit t\u00eb Kampanj\u00ebs Federale Reklamuese. T\u00eb nes\u00ebrmen, n\u00eb t\u00eb diel, ekipi yn\u00eb ishte n\u00eb pun\u00eb q\u00eb nga ora 8 e m\u00ebngjesit. At\u00ebher\u00eb krijuam nj\u00eb bord n\u00eb Trello t\u00eb quajtur sundayhackathon dhe filloi nj\u00eb jav\u00eb pune me turne 12-or\u00ebshe n\u00eb dit\u00eb. Situata ishte kaq kritike, saq\u00eb nuk kishim koh\u00eb as t\u00eb hanim dhe na ndihmonin djemt\u00eb nga ekipet e tjera.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/9d611c134267d1377a95f21a57c69687.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNj\u00eb rr\u00ebfim m\u00eb t\u00eb detajuar mund ta lexoni n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/story.php?story_fbid=10215961419809495&amp;id=1267477281\">faqen e F\u00ebdor Ov\u00e7innikovit<\/a><\/noindex> (CEO yn\u00eb). Q\u00eb at\u00ebher\u00eb, kemi b\u00ebr\u00eb shum\u00eb ndryshime, por k\u00ebt\u00eb dat\u00eb tani me siguri nuk do ta harrojm\u00eb.<\/p>\n<p>T\u00eb k\u00ebtij viti vendos\u00ebm q\u00eb kjo ngjarje meriton t\u00eb p\u00ebrkujtoset dhe, n\u00eb traditat m\u00eb t\u00eb mira, organizuam hackathonin e par\u00eb t\u00eb brendsh\u00ebm n\u00eb historin\u00eb e Dodo, i cili zgjati 10 or\u00eb. <\/p>\n<h2>Pjesa m\u00eb interesante rreth projekteve t\u00eb hackathonit<\/h2>\n<p>\n<i>Disklaimer: t\u00eb gjitha p\u00ebrshkrimet jan\u00eb shkruar nga djemt\u00eb vet\u00eb, k\u00ebshtu q\u00eb autori i tekstit nuk jam un\u00eb.<\/i><\/p>\n<h4>Oleg L\u00ebrning (makin\u00eb m\u00ebsimi)<\/h4>\n<p>\n<i>Dima Kochnev, Sasha Andronov (@alexandronov)<\/i><\/p>\n<p>Desh\u00ebm q\u00eb t\u00eb krijonim nj\u00eb rrjet nervor q\u00eb do t\u00eb p\u00ebrcaktonte se \u00e7far\u00eb pizze \u00ebsht\u00eb n\u00eb nj\u00eb fotografi pa ndonj\u00eb njohuri t\u00eb m\u00ebparshme. N\u00eb fund, b\u00ebm\u00eb nj\u00eb model shum\u00eb t\u00eb thjesht\u00eb dhe jugu\u00e7 - ai njeh 10 lloje pizze, p\u00ebrfundimisht m\u00ebsuam se si funksionon gjith\u00e7ka, sa \u00ebsht\u00eb e mundur p\u00ebr nj\u00eb dit\u00eb (~10 or\u00eb).<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/361e89bc6084abdc0e3ac3fdfb7863d2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb ve\u00e7anti, kuptuam se industria ka arritur n\u00eb nj\u00eb nivel ku nj\u00eb zhvillues i zakonsh\u00ebm mund t\u00eb marr\u00eb biblioteka t\u00eb gatshme, t\u00eb lexoj\u00eb dokumentacionin dhe t\u00eb trajnoj\u00eb rrjetin e tij nervor pa njohuri t\u00eb thella n\u00eb l\u00ebnd\u00eb. Ai do t\u00eb funksionoj\u00eb mjaft mir\u00eb p\u00ebr t\u00eb zgjidhur probleme reale.<\/p>\n<p>Mjetet q\u00eb p\u00ebrdor\u00ebm: <\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/imageai.readthedocs.io\/en\/latest\/index.html\">imageai<\/a><\/noindex> \u2014 nj\u00eb bibliotek\u00eb e leht\u00eb dhe e thjesht\u00eb p\u00ebr t\u00eb punuar me m\u00ebsimin makina dhe shikimin kompjuterik.<\/li>\n<li>Provuan dy modele \u2013 ResNet50, Yolo.<\/li>\n<li>Kodi u shkrua, natyrisht, n\u00eb Python.<\/li>\n<\/ul>\n<p>\nI kishim 11000 foto, por pothuaj 3\/4 e tyre ishin plehra, nd\u00ebrsa n\u00eb t\u00eb mbetura kishte pamje t\u00eb ndryshme dhe t\u00eb pap\u00ebrshtatshme. N\u00eb p\u00ebrfundim, mor\u00ebm nj\u00eb model t\u00eb gatsh\u00ebm (i cili thjesht di t\u00eb gjej\u00eb pica) dhe me t\u00eb ndar\u00ebm pjes\u00ebn m\u00eb t\u00eb keqe. Pastaj, n\u00eb emrin e fotos ishte emri i pic\u00ebs \u2014 k\u00ebshtu q\u00eb i vendos\u00ebm n\u00eb dosje, por doli se emrat nuk p\u00ebrputheshin me realitetin dhe aty na duhej t\u00eb pastronim me dor\u00eb. N\u00eb fund mbet\u00ebn rreth 500-600 foto, e qart\u00eb se kjo \u00ebsht\u00eb nj\u00eb sasi e vog\u00ebl, por megjithat\u00eb, kjo ishte e mjaftueshme p\u00ebr t\u00eb ndar\u00eb 10 pica nga nj\u00ebra-tjetra.<\/p>\n<p>P\u00ebr t\u00eb trajnuar rrjetin mor\u00ebm makin\u00ebn m\u00eb t\u00eb lir\u00eb virtuale n\u00eb Azure me NVIDIA Tesla K80. Ajo u p\u00ebrdor p\u00ebr t\u00eb m\u00ebsuar p\u00ebr 100 epoka, por ishte e dukshme se rrjeti ishte mbip\u00ebrk\u00ebqyer pas 50 epokave, p\u00ebr shkak t\u00eb madh\u00ebsis\u00eb s\u00eb vog\u00ebl t\u00eb t\u00eb dh\u00ebnave.<\/p>\n<p>N\u00eb thelb\u2014k\u00ebtu q\u00ebndron e gjith\u00eb problemi q\u00ebndron n\u00eb munges\u00ebn e t\u00eb dh\u00ebnave t\u00eb mira.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/b89ba378674df1b3e899a93fc0fce86c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNdoshta kemi ngat\u00ebrruar paksa terma, por duhet t\u00eb merret parasysh se ne n\u00eb p\u00ebrgjith\u00ebsi nuk kemi p\u00ebrvoj\u00eb n\u00eb pun\u00ebn me gjith\u00eb k\u00ebto \u00e7\u00ebshtje.<\/p>\n<h4>GUI p\u00ebr NOOBS (konsola p\u00ebr porosin\u00eb e pic\u00ebs)<\/h4>\n<p>\n<i>Misha Kumachev (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/ceridan\/\" class=\"user_link\">Ceridan<\/a><\/noindex>), Zhenya Bikkinin, Zhenya Vasiliev<\/i><\/p>\n<p>Kemi mbledhur nj\u00eb prototip aplikacioni shum\u00ebplatform\u00eb p\u00ebr geek-at, q\u00eb mund\u00ebson porositjen e pizz\u00ebs n\u00ebp\u00ebrmjet terminalit ose komand\u00ebs, madje edhe ta integrosh n\u00eb pipeline-in e vendosjes dhe t\u00eb sjell\u00ebsh pizz\u00ebn n\u00eb zyr\u00eb pas nj\u00eb publikimi t\u00eb suksessh\u00ebm.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/14186ccb66d074923f89c1da47d594a1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPuna u ndan n\u00eb disa pjes\u00eb: kuptuam si funksionon API-ja jon\u00eb p\u00ebr aplikacionet mobile, nd\u00ebrtuam CLI-n\u00eb ton\u00eb me ndihm\u00ebn e <noindex><a rel=\"nofollow\" href=\"https:\/\/oclif.io\">oclif<\/a><\/noindex> dhe konfigurua publikimi i paket\u00ebs q\u00eb nd\u00ebrtuam. Me detyr\u00ebn e fundit u lidh\u00ebn disa minuta t\u00eb pak\u00ebndshme n\u00eb fund t\u00eb hackathon-it. Gjith\u00e7ka punonte lokal dhe madje ishim t\u00eb sigurt q\u00eb versionet e vjetra t\u00eb paket\u00ebs ishin t\u00eb publikuara, por ato t\u00eb reja (ku ishin shtuar m\u00eb shum\u00eb karakteristika t\u00eb shk\u00eblqyera dhe emoji) refuzonin t\u00eb funksiononin. Kemi shpenzuar rreth 40 minuta p\u00ebr t\u00eb kuptuar se \u00e7far\u00eb kishte shkuar keq, por n\u00eb fund gjith\u00e7ka funksionoi magjikisht vet\u00eb).<\/p>\n<p>Objektivi yn\u00eb maksimal p\u00ebr hackathon ishte nj\u00eb porosi e v\u00ebrtet\u00eb pizze n\u00eb zyr\u00eb p\u00ebrmes CLI-s\u00eb ton\u00eb. E kontrolluam dhjet\u00eb her\u00eb n\u00eb skenarin testues, por prap\u00eb kisha duar t\u00eb dridhura kur shkruaja komandat n\u00eb prodhim.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/5392e269446fcd09ceb9e16a8f9c4101.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi p\u00ebrfundim \u2013 e b\u00ebm\u00eb k\u00ebt\u00eb!<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" 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 Bru\u017emel\u00ebv (autori), 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>Mori iden\u00eb \"Aplikacioni p\u00ebr kurierin.\"<\/p>\n<p><b class=\"spoiler_title\">Historia p\u00ebrgatitore.<\/b>Fillimisht, mendoja cfar\u00eb ve\u00e7orash mund t\u00eb ket\u00eb aplikacioni? K\u00ebshtu lindi nj\u00eb list\u00eb e till\u00eb funksionalitetesh:<\/p>\n<ul>\n<li>Aplikacioni identifikohet n\u00eb kas\u00ebn e shp\u00ebrndarjes me nj\u00eb kod.<\/li>\n<li>N\u00eb aplikacion, porosit\u00eb e disponueshme dhe ato q\u00eb duhen marr\u00eb shihen menj\u00ebher\u00eb.<\/li>\n<li>Kurier\u00ebt e sh\u00ebnojn\u00eb porosin\u00eb dhe e marrin me vete.<\/li>\n<li>Atij i tregohen koha e llogaritur dhe n\u00ebse arrin apo jo.<\/li>\n<li>Klienti sheh q\u00eb kurieri ka nisa.<\/li>\n<li>Klienti fillon t\u00eb shikoj\u00eb pik\u00ebn e kurierit n\u00eb hart\u00eb dhe koh\u00ebn e llogaritur.<\/li>\n<li>Kurier\u00ebt mund t\u00eb shkruajn\u00eb n\u00eb chat me klientin nga aplikacioni.<\/li>\n<li>Klient\u00ebt mund t\u00eb shkruajn\u00eb n\u00eb chat me kurierin nga aplikacioni.<\/li>\n<li>Pes\u00eb minuta para mb\u00ebrritjes, klienti merr nj\u00eb mesazh q\u00eb kurieri \u00ebsht\u00eb af\u00ebr, pra b\u00ebhu gati.<\/li>\n<li>Kurier\u00ebt sh\u00ebnojn\u00eb n\u00eb aplikacion se kan\u00eb mb\u00ebrritur dhe presin.<\/li>\n<li>Kurier\u00ebt telefonojn\u00eb nga aplikacioni me nj\u00eb klik dhe njoftojn\u00eb se (ngjiten, kan\u00eb arritur, etj.)<\/li>\n<li>Klienti pranon porosin\u00eb dhe fut kodin PIN nga aplikacioni ose SMS p\u00ebr t\u00eb konfirmuar dor\u00ebzimin. (si nj\u00eb n\u00ebnshkrim) N\u00eb m\u00ebnyr\u00eb q\u00eb kurieri t\u00eb mos mund t\u00eb p\u00ebrfundoj\u00eb dor\u00ebzimin m\u00eb her\u00ebt, n\u00ebse vonohet.<\/li>\n<li>Porosia sh\u00ebnohet n\u00eb sistem si e dor\u00ebzuar.<\/li>\n<\/ul>\n<p>P\u00ebrve\u00e7 disa skenar\u00ebve alternativ\u00eb:<\/p>\n<ul>\n<li>Kurieri mund t\u00eb sh\u00ebnoj\u00eb porosin\u00eb si t\u00eb pap\u00ebrfunduar dhe t\u00eb zgjedh\u00eb arsyen.<\/li>\n<li>Kurieri, n\u00eb rast vonese, mund t\u00eb l\u00ebshoj\u00eb nj\u00eb certificat elektronike p\u00ebrmes SMS me nj\u00eb d\u00fcshku. Ose certifikata vjen automatikisht n\u00eb rast t\u00eb mosrespektimit t\u00eb afatit t\u00eb dor\u00ebzimit.<\/li>\n<\/ul>\n<p>\nNdjenja e perspektiv\u00ebs dhe e nevoj\u00ebs p\u00ebr k\u00ebt\u00eb projekt, sigurisht q\u00eb jepte energji.<\/p>\n<p>T\u00eb nes\u00ebrmen shkuam me ekipin p\u00ebr drek\u00eb dhe diskutuam se si do t\u00eb dukej funksionaliteti minimal i aplikacionit. <\/p>\n<p>Si rezultat, u krijua lista e m\u00ebposhtme p\u00ebr at\u00eb q\u00eb duhej t\u00eb p\u00ebrfundonim n\u00eb hackathon:<\/p>\n<ul>\n<li>Hyrja n\u00eb kas\u00ebn e dor\u00ebzimit.<\/li>\n<li>T\u00eb shfaqet pozita aktuale.<\/li>\n<li>T\u00eb d\u00ebrgojn\u00eb t\u00eb dh\u00ebnat n\u00eb API-n\u00eb e jashtme (koho, mori porosin\u00eb, dor\u00ebzoi porosin\u00eb).<\/li>\n<li>T\u00eb marrin t\u00eb dh\u00ebna nga API-ja e jashtme (porosit\u00eb aktuale t\u00eb kurierit).<\/li>\n<li>T\u00eb d\u00ebrgojn\u00eb nj\u00eb ngjarje q\u00eb tregon se ka marr\u00eb porosin\u00eb p\u00ebr dor\u00ebzim\/dor\u00ebzoi.<\/li>\n<li>T\u00eb shfaqet pozita aktuale e kurierit n\u00eb hart\u00eb n\u00eb faqe.<\/li>\n<\/ul>\n<p>\nPuna kryesore, si\u00e7 dukej, duhej t\u00eb p\u00ebrqendrohej n\u00eb krijimin e backend-it, t\u00eb aplikacionit (pas diskutimeve u zgjodh ReactNative p\u00ebr zhvillimin e aplikacionit, m\u00eb sakt\u00eb lidhja mbi t\u00eb \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/expo.io\/\">expo.io<\/a><\/noindex>, e cila lejon q\u00eb nuk nevojitet t\u00eb shkruash kod natyror. N\u00eb planin e backend-it, fillimisht kishte shpresa n\u00eb Vanya Zverev, si nj\u00eb ekspert n\u00eb pun\u00ebn me shablonin ton\u00eb t\u00eb sh\u00ebrbimit dhe k8s (pun\u00ebt q\u00eb ai mori p\u00ebrsip\u00ebr). Un\u00eb dhe Andrei Sarafanov provuam t'i luajm\u00eb ReactNative.<\/p>\n<p>Vendosa t\u00eb provoj t\u00eb krijoj menj\u00ebher\u00eb nj\u00eb depo funksionuese p\u00ebr projektin. N\u00eb 12 t\u00eb nat\u00ebs, u ndesha me faktin se gjeolokacioni n\u00eb ReactNative punon keq n\u00eb sfond, n\u00ebse nuk shkruan kod natyror, u ndjeva disi i frustruar. M\u00eb pas, m\u00eb kaloi kur e kuptova se po lexoj dokumentacionin e framework-ut expo.io, jo at\u00eb t\u00eb ReactNative. N\u00eb fund t\u00eb mbr\u00ebmjes, m\u00eb kishte b\u00ebr\u00eb t\u00eb qart\u00eb se si t\u00eb merrja pozitat aktuale n\u00eb expo.io dhe si t\u00eb dizajnoja ekrane t\u00eb ve\u00e7anta (p\u00ebr identifikimin, shfaqjen e porosis\u00eb etj.).<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/2412edc5937b44e141d719269565dfee.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb m\u00ebngjes, n\u00eb hackathon, e t\u00ebrhoqa Glebin n\u00eb projektin ton\u00eb me perspektiva t\u00eb m\u00ebdha. Shkurtimisht, hartuam nj\u00eb plan p\u00ebr at\u00eb q\u00eb duhej t\u00eb b\u00ebnim.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/4bc0ebef3ed6b661bd25ef75ac6d536d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nB\u00ebm\u00eb nj\u00eb gabim kur p\u00ebrpiqeshim t\u00eb komunikonim jo p\u00ebrmes HTTP, por p\u00ebrmes GRPC, pasi askush nuk dinte t\u00eb nd\u00ebrtonte nj\u00eb klient GRPC p\u00ebr JavaScript. N\u00eb fund, pasi shpenzuam rreth nj\u00eb or\u00eb e gjysm\u00eb, e braktis\u00ebm k\u00ebt\u00eb ide. P\u00ebr k\u00ebt\u00eb arsyen, djemt\u00eb filluan t\u00eb ripunonin serverin e gatsh\u00ebm nga GRPC n\u00eb WebApi n\u00eb backend. Pas gjysm\u00eb ore, p\u00ebrfundimisht arrit\u00ebm t\u00eb vendosnim komunikimin midis aplikacionit dhe backend-it, si nj\u00eb mrekulli. Por n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, Gleb ishte pothuajse duke e p\u00ebrfunduar deploy-in n\u00eb k8s dhe gjithashtu automatikun e deploy-it me commit n\u00eb master. \ud83d\ude42<\/p>\n<p>Si depo, zgjodh\u00ebm MySQL p\u00ebr t\u00eb mos rrezikuar t\u00eb pakt\u00ebn me baz\u00ebn (kishim mendime p\u00ebr CosmosDb).<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/2ae381b2006330915ae38d55f2ac08cd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi p\u00ebrfundim: <\/p>\n<ul>\n<li>Implementuam ruajtjen e koordinatave aktuale t\u00eb kurierit nga aplikacioni n\u00eb baz\u00eb.<\/li>\n<li>E lidh\u00ebm RabbitMQ dhe u abonuar n\u00eb mesazhet e kurierit p\u00ebr marrjen e porosis\u00eb, q\u00eb t\u00eb tregohej menj\u00ebher\u00eb porosia te kurieri n\u00eb aplikacion.<\/li>\n<li>Filluam t\u00eb ruajm\u00eb n\u00eb baz\u00eb koh\u00ebn e dor\u00ebzimit t\u00eb porosis\u00eb, pasi kurieri shtypte butonin n\u00eb aplikacion. Nuk arrit\u00ebm t\u00eb p\u00ebrfshijm\u00eb d\u00ebrgimin e ngjarjes p\u00ebrs\u00ebri n\u00eb Rabbit p\u00ebr at\u00eb q\u00eb porosia ishte dor\u00ebzuar.<\/li>\n<li>Kam b\u00ebra nj\u00eb shfaqje t\u00eb hart\u00ebs n\u00eb faqen currentorder n\u00eb sit me pozicionin aktual t\u00eb kurierit. Por ky funksionalitet mbeti paksa i pap\u00ebrfunduar, pasi n\u00eb mjedis nuk arrit\u00ebm t\u00eb konfigurojm\u00eb CORS p\u00ebr t\u00eb marr\u00eb koordinatat nga sh\u00ebrbimi yn\u00eb t\u00eb ri.<\/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>Ne d\u00ebshironim t\u00eb realizonim nj\u00eb ofrues t\u00eb OpenID Connect, pasi aktualisht p\u00ebrdorim nj\u00eb protokoll autentikimi t\u00eb krijuar nga ne, dhe kjo krijon disa v\u00ebshtir\u00ebsi: biblioteka t\u00eb personalizuara t\u00eb klient\u00ebve, pun\u00eb e pap\u00ebrshtatshme nga partner\u00ebt e jashtme, ndoshta probleme me sigurin\u00eb (pavar\u00ebsisht se OAuth2.0 dhe OpenID Connect n\u00eb implementimin e tyre referues mund t\u00eb konsiderohen t\u00eb sigurta, p\u00ebr zgjidhjen ton\u00eb \u2014 nuk jam i sigurt).<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/b7247acfc91045f1040535d1f404c64a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNe kemi krijuar nj\u00eb sh\u00ebrbim t\u00eb ve\u00e7ant\u00eb q\u00eb emulon sh\u00ebrbimin e ruajtjes s\u00eb t\u00eb dh\u00ebnave personale, p\u00ebr t\u00eb krijuar nj\u00eb model t\u00eb vog\u00ebl t\u00eb ofruesit t\u00eb autentikimit Country-Agnostic, i cili do t\u00eb k\u00ebrkonte t\u00eb dh\u00ebnat personale nga nj\u00eb sh\u00ebrbim t\u00eb ve\u00e7ant\u00eb (kjo n\u00eb perspektiv\u00eb do t\u00eb ofronte mund\u00ebsin\u00eb p\u00ebr t\u00eb pasur nj\u00eb sh\u00ebrbim me t\u00eb cilin mund t\u00eb identifikoheshin me llogari n\u00eb \u00e7do vend dhe n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb p\u00ebrputheshin me GDPR dhe legjislacionin p\u00ebrkat\u00ebs). Kjo pjes\u00eb e kemi realizuar, si dhe ofruesin, dhe i kemi lidhur me sukses me nj\u00ebri-tjetrin. M\u00eb pas duhej t\u00eb krijonim nj\u00eb API, i cili do t\u00eb ishte i mbrojtur me tokene q\u00eb jep ofruesi, t\u00eb mb\u00ebshtes\u00eb introspeksionin e tyre p\u00ebrmes ofruesit dhe t\u00eb jap\u00eb t\u00eb dh\u00ebna t\u00eb mbrojtura, n\u00ebse k\u00ebrkesa p\u00ebrputhej me politikat e autorizimit (kontrollojm\u00eb q\u00eb p\u00ebrdoruesi t\u00eb jet\u00eb autentikuar sipas skem\u00ebs Bearer, se n\u00eb token e tij p\u00ebrmban nj\u00eb scope t\u00eb caktuar + q\u00eb vet\u00eb p\u00ebrdoruesi ka nj\u00eb leje q\u00eb lejon kryerjen e thirrjes). Kjo pjes\u00eb gjithashtu \u00ebsht\u00eb realizuar. Komponenti p\u00ebrfundimtar ishte klienti JavaScript, i cili do t\u00eb merrte nj\u00eb token, me t\u00eb cilin do t\u00eb th\u00ebrriste API-n\u00eb e mbrojtur. Kjo pjes\u00eb nuk arrit\u00ebm ta p\u00ebrfundojm\u00eb. Pra, ishte p\u00ebrfunduar e gjith\u00eb pjesa funksionale, por nuk ishte p\u00ebrfunduar pjesa front-end p\u00ebr t\u00eb demonstruar funksionalitetin e gjith\u00eb sistemit.<\/p>\n<h4>E-E-E (loj\u00eb)<\/h4>\n<p>\n<i>Dima Afonchenko, Sasha Konovalov<\/i><\/p>\n<p>Krijuam nj\u00eb mini-loj\u00eb n\u00eb jun\u00eb ku duar t\u00eb shpejta hedhin sallam n\u00eb pizz\u00eb. N\u00eb rast se e hedh keq sallamin, n\u00eb ekran shfaqet nj\u00eb mesazh i trishtuar 'E refuzuar', nd\u00ebrsa n\u00ebse gjith\u00e7ka \u00ebsht\u00eb hedhur si\u00e7 duhet, shfaqet nj\u00eb fakt rast\u00ebsor rreth pizz\u00ebs.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/1c9daf62d4907f9a13de07ac0dd2a14e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDesh\u00ebm t\u00eb b\u00ebnim nj\u00eb nivel t\u00eb dyt\u00eb me hedhjen e domateve, por nuk pat\u00ebm koh\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/e3d5028c8043ab1192bbb8cb31918def.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Nj\u00eb vazhdim i shkurt\u00ebr: kush fitoi?<\/h2>\n<p>\nPara hackathon-it, biseduam me djemt\u00eb dhe pyeta se \u00e7far\u00eb \u00e7mimi do t\u00eb d\u00ebshironin t\u00eb merrnin n\u00ebse do t\u00eb fitonin. Duke u treguar, \u00e7mimi m\u00eb i \u00e7muar do t\u00eb ishte 'shkaku p\u00ebr n\u00eb prodhim'. <\/p>\n<p><img decoding=\"async\" alt=\"Kodim\u2013pica\" src=\"\/wp-content\/uploads\/2019\/05\/814f28de3020cc16ce0108efdbbd963d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrandaj, s\u00eb shpejti prisni nga ne nj\u00eb njoftim p\u00ebr loj\u00ebn me duar q\u00eb hedhin peperoni n\u00eb pizz\u00eb.<\/p>\n<blockquote><p>Si\u00e7 mund ta ket\u00eb v\u00ebrejtur nj\u00eb lexues i v\u00ebmendsh\u00ebm, ekipi 'E-E-E (loj\u00eb)' fitoi. Urime djemve!<\/p><\/blockquote>\n<p class=\"for_users_only_msg\">Vet\u00ebm p\u00ebrdoruesit e regjistruar mund t\u00eb marrin pjes\u00eb n\u00eb anket\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Hyni<\/a><\/noindex>, ju lutemi.<\/p>\n<h2 class=\"default-block__polling-title\">Cili projekt ju p\u00eblqeu m\u00eb shum\u00eb?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Oleg L\u00ebrning (makin\u00eb m\u00ebsimi)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    GUI p\u00ebr NOOBS<\/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 p\u00ebrdorues votuan. 3 p\u00ebrdorues abstenuan.<br \/>\n<br \/>Burimi: <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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - 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. \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,\" \/>\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\/sq\/blog\/novosti-interneta\/kodim-pitstsa\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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. \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,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/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\udd47Kodim\u2013pizza | ProHoster","description":"P\u00ebrsh\u00ebndetje, Habr. Ne spontanisht organizuam hackathon-in ton\u00eb t\u00eb par\u00eb t\u00eb brendsh\u00ebm. Vendosa t\u00eb ndaj me ju shqet\u00ebsimet dhe p\u00ebrfundimet e mia lidhur me p\u00ebrgatitjen p\u00ebr t\u00eb n\u00eb dy jav\u00ebt e fundit, si dhe me projektet q\u00eb u zhvilluan. Pjesa e m\u00ebrzitshme p\u00ebr ata q\u00eb jan\u00eb t\u00eb interesuar n\u00eb marketing. T\u00eb filloj me nj\u00eb histori t\u00eb vog\u00ebl. Fillimi i prillit. N\u00eb zyr\u00ebn ton\u00eb po zhvillohet hackathoni i par\u00eb t\u00eb komunitetit MskDotNet. Beteja p\u00ebr Tatuin \u00ebsht\u00eb n\u00eb kulmin e saj,","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/kodim-pitstsa","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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. \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,","og:url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/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\/sq\/wp-json\/wp\/v2\/posts\/34626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=34626"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/34626\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/26093"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=34626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=34626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=34626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}