{"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\/lv\/blog\/news\/kodim-pitstsa","title":{"rendered":"Kodim\u2013pica","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Sveiki, Habr. M\u0113s spont\u0101ni r\u012bkoj\u0101m savu pirmo iek\u0161\u0113jo hakatonu. Nol\u0113mu padal\u012bties ar sav\u0101m s\u0101p\u0113m un secin\u0101jumiem par t\u0101 sagatavo\u0161anu divu ned\u0113\u013cu laik\u0101, k\u0101 ar\u012b ar projektiem, kas tapu\u0161i.<\/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>\u0160\u012b da\u013ca ir garlaic\u012bga tiem, kuri interes\u0113jas par m\u0101rketingu.<\/h2>\n<p>\nS\u0101ku ar mazu st\u0101stu. <\/p>\n<p>Apr\u012b\u013ca s\u0101kums. M\u016bsu biroj\u0101 notiek pirmais hakatons MskDotNet kopienai. C\u012b\u0146a par Tatu\u012bnu ir piln\u0101 spar\u0101, \u0161oreiz m\u016bsu galaktik\u0101. Sestdiena. 20 komandas. Pica. Viss ir \u013coti sirsn\u012bgi (<noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/album-125321990_262572840\">pier\u0101d\u012bjumi<\/a><\/noindex>). Inflatable R2-D2 uzmirdz z\u0101l\u0113. Komandas raksta vispareiz\u0101kos algoritmus, lai veiktu visb\u012bstam\u0101ko sacens\u012bbu kart\u0113. P\u0101rvietojam pirmaj\u0101s sacens\u012bb\u0101s startu. S\u012bkumi un kafija gl\u0101bj. M\u0113s ar organizatoriem gaid\u012bj\u0101m, ka sestdien daudzi dosies prom p\u0113c pusdien\u0101m. Bet n\u0113. 12 stundas kod\u0113\u0161anas ir aiz muguras. Fin\u0101ls. Kaut kas atsl\u0113dzas, kaut kas nepalai\u017eas. Bet visi ir laim\u012bgi. Uzvar m\u016bsu komanda. M\u0113s esam divtik laim\u012bgi. <\/p>\n<p>Dalos ar prieku Slack un man pr\u0101t\u0101 ien\u0101k ideja: \"J\u0101izveido savs hakatons.\" Rakstu m\u016bsu CTO Sasham. Klusums. <\/p>\n<p>R\u012bts. Dzeru kafiju biroj\u0101. Redzu, ka no aizmugures tuvojas Sashas. \"Liza, tas ta\u010du ir lieliski! Mums tie\u0161i 21. apr\u012bl\u012b ir svar\u012bga datums. Davai, dar\u012bsim!\" WTF!? Tik \u0101tri? Ko? Man j\u0101dodas uz Syktyvkar sta\u017e\u0113ties apr\u012b\u013ca vid\u016b. Bet kas ar to? Lai notiek.<\/p>\n<p>Atlicis 2 ned\u0113\u013cas. Es nekad neesmu bijusi hakatona vien\u012bg\u0101 organizatore. Lai ar\u012b iek\u0161\u0113j\u0101. Lasu rakstus par \u0161o t\u0113mu. \u0160ausmas. Nepiecie\u0161ami da\u017ei m\u0113ne\u0161i. Nepiecie\u0161ami da\u017ei cilv\u0113ki. J\u0101izdom\u0101 merch, balvas, nosac\u012bjumi, grafiks, j\u0101interes\u0113, j\u0101izprot m\u0113r\u0137is, bud\u017eeti. Varb\u016bt pat j\u0101izp\u0113ta dz\u012bves j\u0113ga. Es noteikti nenok\u013c\u016b\u0161u laikus. Un kam\u0113r tu las\u012bji un gatavojies, ned\u0113\u013ca jau ir pag\u0101jusi. Laiks aizmirst par rakstiem un s\u0101kt kaut ko dar\u012bt. <\/p>\n<p><b class=\"spoiler_title\">Uzman\u012bbu \u2014 m\u016bsu kontrolsaraksts iek\u0161\u0113j\u0101 hakatona r\u012bko\u0161anai 1 ned\u0113\u013cas laik\u0101<\/b><\/p>\n<ul>\n<li><b>Pl\u0101ns<\/b>: mier\u012bgi s\u0113dies un saraksti, kas ir j\u0101izdara hakatonam. <i>30 min\u016btes<\/i>.<\/li>\n<li><b>Uzdevums<\/b>: dal\u012bbnieki pa\u0161i pied\u0101v\u0101 un izv\u0113las projektus, kurus v\u0113las izveidot Google Sheets. <i>Fona uzdevums, 2 stundas<\/i>.<\/li>\n<li><b>Grafiks<\/b>: uz ce\u013cgaliem raksti \u012bsu laika sadal\u012bjumu, \u0146emot v\u0113r\u0101 3 p\u0101rtraukumus un fin\u0101lu. <i>20 min\u016btes<\/i>.<\/li>\n<li><b>Komandas<\/b>: public\u0113 pazi\u0146ojumu par hakatonu ar grafiku no CTO IT kan\u0101los Slack\/pasta\/utt. un izveido atsevi\u0161\u0137u kan\u0101lu hakatonam. Taj\u0101 visi sadal\u0101s komand\u0101s, bet neskaidri nodal\u012btie to izdar\u012bs pirmaj\u0101s 5 min\u016bt\u0113s hakatona. <i>Fona uzdevums, 2 stundas<\/i>.<\/li>\n<li><b>Bonusi<\/b>: izdom\u0101 merch ar diviem izstr\u0101d\u0101t\u0101jiem, nodod dizainerim z\u012bm\u0113\u0161anai, sa\u0146em gatavo. <i>Fona uzdevums, 3 dienas<\/i>.<\/li>\n<li><b>Hackatons<\/b>: ierodies biroj\u0101, koordin\u0113 visus s\u0101kum\u0101, darbojies sav\u0101s liet\u0101s, lasi Reddit, nopietn\u0101 veid\u0101 katr\u0101 p\u0101rtraukum\u0101 pazi\u0146o par svaigu picu, fotograf\u0113 saulrietu, pazi\u0146o par fin\u0101lu, kop\u012bgi balso un izv\u0113lies uzvar\u0113t\u0101ju. <i>1 diena<\/i>.<\/li>\n<li><b>Zvaigzn\u012btes simptom\u0101tika<\/b>: protams, tu past\u0101v\u012bgi dom\u0101 par to, lai viss notiktu labi. Protams, ne visi redz\u0113s tavu zi\u0146ojumu, un da\u017eiem lab\u0101k parun\u0101t kl\u0101tien\u0113. Protams, ja k\u0101ds tev pal\u012bdz\u0113s, viss k\u013c\u016bs divreiz vienk\u0101r\u0161\u0101k (man pal\u012bdz\u0113ja lielisk\u0101 Aljona).<\/li>\n<\/ul>\n<h2>Maz\u0101k garlaic\u012bg\u0101 da\u013ca par hackatona datumu<\/h2>\n<p>\nK\u0101p\u0113c 21. apr\u012blis? \u0160\u012b diena ir svar\u012bga mums. Tie\u0161i pirms gada, 21. apr\u012bl\u012b, m\u0113s sabruka zem slodzes pirmaj\u0101s br\u012bvdien\u0101s p\u0113c Feder\u0101l\u0101 Rekl\u0101mas Kampa\u0146as s\u0101kuma. N\u0101kamaj\u0101 dien\u0101, sv\u0113tdien\u0101, m\u016bsu komanda str\u0101d\u0101ja no 8 r\u012bt\u0101. Toreiz m\u0113s izveidoj\u0101m Trello d\u0113li sundayhackathon un aizs\u0101k\u0101m ned\u0113\u013cu mai\u0146u darb\u0101 pa 12 stund\u0101m dien\u0101. Situ\u0101cija bija tik kritiska, ka nebija laika pat \u0113st, un m\u016bs baroja citu komandu pui\u0161i.<\/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 \/>\nS\u012bk\u0101ku st\u0101stu var izlas\u012bt <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/story.php?story_fbid=10215961419809495&amp;id=1267477281\">Fjodora O\u010dinnikova lap\u0101<\/a><\/noindex> (m\u016bsu izpilddirektors). Kop\u0161 t\u0101 laika m\u0113s daudz ko main\u012bj\u0101m, bet \u0161o datumu noteikti neaizmirs\u012bsim.<\/p>\n<p>\u0160ogad m\u0113s nol\u0113m\u0101m, ka \u0161im notikumam j\u0101dod piemi\u0146as noz\u012bme un lab\u0101kaj\u0101s trad\u012bcij\u0101s r\u012bkoj\u0101m pirmo v\u0113stur\u0113 Dodo iek\u0161\u0113jo hackatonu, kur\u0161 ilga 10 stundas. <\/p>\n<h2>Visinteresant\u0101k\u0101 da\u013ca par hackatona projektiem<\/h2>\n<p>\n<i>Izskaidrojums: visus aprakstus rakst\u012bju\u0161i pa\u0161i pui\u0161i, t\u0101p\u0113c tekstu autor\u012bba nav mana.<\/i><\/p>\n<h4>O\u013cegs L\u0113rnings (ma\u0161\u012bnm\u0101c\u012bba)<\/h4>\n<p>\n<i>Dima Ko\u010dnevs, Sasha Andronovs (@alexandronov)<\/i><\/p>\n<p>V\u0113l\u0113j\u0101mies izveidot neirot\u012bklu, kas sp\u0113tu noteikt, kas ir pica fotoatt\u0113l\u0101 bez jebk\u0101d\u0101m zin\u0101\u0161an\u0101m. Beig\u0101s izveidoj\u0101m \u013coti vienk\u0101r\u0161u un rota\u013cu \u2013 t\u0101 atpaz\u012bst 10 picu veidus, apm\u0113ram saprat\u0101m, k\u0101 viss darbojas, cik iesp\u0113jams vien\u0101 dien\u0101 (~10 stundas).<\/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 \/>\n\u012apa\u0161i, m\u0113s saprat\u0101m, ka nozare ir sasniegusi l\u012bmeni, kad parasts izstr\u0101d\u0101t\u0101js var izmantot gatavas bibliot\u0113kas, izlas\u012bt dokument\u0101ciju un apm\u0101c\u012bt savu neirot\u012bklu bez dzi\u013c\u0101m priek\u0161zin\u0101\u0161an\u0101m. Un tas darbosies pietiekami labi, lai risin\u0101tu re\u0101las probl\u0113mas.<\/p>\n<p>R\u012bki, ko izmantoj\u0101m: <\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/imageai.readthedocs.io\/en\/latest\/index.html\">imageai<\/a><\/noindex> \u2014 \u0113rta un vienk\u0101r\u0161a bibliot\u0113ka ma\u0161\u012bnm\u0101c\u012b\u0161an\u0101s un datorredzes darbam.<\/li>\n<li>M\u0113s izm\u0113\u0123in\u0101j\u0101m divas mode\u013cus \u2013 ResNet50, Yolo.<\/li>\n<li>Kodu, saprotams, rakst\u012bj\u0101m Python valod\u0101.<\/li>\n<\/ul>\n<p>\nMums bija 11000 fotoatt\u0113lu, bet gandr\u012bz 3\/4 no tiem izr\u0101d\u012bj\u0101s neder\u012bgi, bet atliku\u0161ajos bija da\u017e\u0101di, nepiem\u0113roti skati. Galu gal\u0101 m\u0113s pa\u0146\u0113m\u0101m gatavu modeli (kas vienk\u0101r\u0161i prot atrast picu) un ar t\u0101 pal\u012bdz\u012bbu izsv\u0113rt visus atkritumus. Turkl\u0101t, fotogr\u0101fiju nosaukum\u0101 bija picu nosaukums \u2014 t\u0101 m\u0113s t\u0101s sak\u0101rtoj\u0101m map\u0113s, bet izr\u0101d\u012bj\u0101s, ka nosaukumi nesakr\u012bt ar realit\u0101ti, un bija j\u0101izt\u012bra ar rok\u0101m. Galu gal\u0101 palika apm\u0113ram 500-600 fotoatt\u0113lu; skaidrs, ka tas ir niec\u012bgs skaits, ta\u010du tom\u0113r t\u0101 bija pietiekami, lai at\u0161\u0137irtu 10 picas.<\/p>\n<p>Lai apm\u0101c\u012btu t\u012bklu, \u0146\u0113m\u0101m l\u0113t\u0101ko virtu\u0101lo ma\u0161\u012bnu Azure ar NVIDIA Tesla K80. Uz t\u0101s apm\u0101c\u012bj\u0101m 100 epohas, bet bija redzams, ka t\u012bkla p\u0101rsel\u0113\u0161ana notika jau p\u0113c 50 epoh\u0101m, jo datu kopums bija mazs.<\/p>\n<p>Princip\u0101 - visa probl\u0113ma ir labu datu tr\u016bkum\u0101.<\/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 \/>\nM\u0113s, iesp\u0113jams, nedaudz sajauc\u0101m terminus, bet j\u0101\u0146em v\u0113r\u0101, ka mums nav pieredzes darb\u0101 ar vis\u0101m \u0161\u012bm liet\u0101m.<\/p>\n<h4>GUI for NOOBS (konsoles r\u012bks picu pas\u016bt\u012b\u0161anai)<\/h4>\n<p>\n<i>Mi\u0161a Koma\u010devs (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/ceridan\/\" class=\"user_link\">Ceridan<\/a><\/noindex>), \u017denija Biki\u0146ins, \u017denija Vasi\u013cevs<\/i><\/p>\n<p>M\u0113s izveidoj\u0101m prototipu konsoles lietojumprogrammai geikiem, ar kuru var pas\u016bt\u012bt picu caur termin\u0101li vai komandrindu, vai pat iek\u013caut to izvieto\u0161anas proces\u0101, lai, veiksm\u012bgi veicot izlaidumu, pieg\u0101d\u0101tu picu biroj\u0101.<\/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 \/>\nDarbs tika sadal\u012bts vair\u0101k\u0101s da\u013c\u0101s: m\u0113s p\u0113tot, k\u0101 darbojas m\u016bsu API mobilaj\u0101m lietojumprogramm\u0101m, izstr\u0101d\u0101j\u0101m savu CLI ar <noindex><a rel=\"nofollow\" href=\"https:\/\/oclif.io\">oclif<\/a><\/noindex> un konfigur\u0113j\u0101m izveidot\u0101 pakotnes public\u0113\u0161anu. Ar p\u0113d\u0113jo uzdevumu tuv\u0101k\u0101 hakatona beig\u0101m saist\u012bj\u0101s da\u017eas nepat\u012bkamas min\u016btes. Mums viss str\u0101d\u0101ja lok\u0101li un pat vec\u0101s public\u0113t\u0101s pakotnes versijas darboj\u0101s, bet jaunas (kur\u0101s bija pievienotas vair\u0101k for\u0161as funkcijas un emocijz\u012bmes) atteic\u0101s darboties. M\u0113s pavad\u012bj\u0101m apm\u0113ram 40 min\u016btes, lai saprastu, kas notika, bet galu gal\u0101 viss ma\u0123iski pats darboj\u0101s).<\/p>\n<p>M\u016bsu maksim\u0101lais m\u0113r\u0137is hakaton\u0101 bija \u012bsts picu pas\u016bt\u012bjums biroj\u0101 caur m\u016bsu CLI. M\u0113s desmit reizes visu p\u0101rbaud\u012bj\u0101m test\u0113\u0161anas vid\u0113, bet man tom\u0113r tr\u012bc\u0113ja rokas, kad es ievad\u012bju komandas produkcij\u0101.<\/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 \/>\nK\u0101 rezult\u0101ts \u2014 m\u0113s tom\u0113r to izdar\u012bj\u0101m!<\/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>Antons Bru\u017emeljovs (autors), Vanja Zvereva, G\u013cebs Les\u0146ikovs (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/entropy\/\" class=\"user_link\">entropy<\/a><\/noindex>), Andrejs Sarafanovs<\/i><\/p>\n<p>M\u0113s \u0146\u0113m\u0101m ideju \"Kurjera lietotne\".<\/p>\n<p><b class=\"spoiler_title\">Iepriek\u0161\u0113j\u0101 st\u0101sta par sagatavo\u0161anos.<\/b>S\u0101kum\u0101 es padom\u0101ju, k\u0101das visp\u0101r funkcijas var\u0113tu b\u016bt lietotn\u0113? Apm\u0113ram \u0161\u0101ds funkcionalit\u0101tes saraksts rad\u0101s:<\/p>\n<ul>\n<li>Lietotne piesak\u0101s pie pieg\u0101des kases ar kodu.<\/li>\n<li>Lietotn\u0113 t\u016bl\u012bt redzami pieejamie pas\u016bt\u012bjumi, pas\u016bt\u012bjumi, kurus j\u0101\u0146em.<\/li>\n<li>Kurjers atz\u012bm\u0113 pas\u016bt\u012bjumu un \u0146em to ce\u013cojum\u0101.<\/li>\n<li>Vi\u0146am tiek par\u0101d\u012bts apr\u0113\u0137in\u0101tais laiks un vai vi\u0146\u0161 pasp\u0113s.<\/li>\n<li>Klientam tiek par\u0101d\u012bts, ka kurjers ir izbraucis.<\/li>\n<li>Klientam s\u0101k par\u0101d\u012bt kurjera punktu kart\u0113 un apr\u0113\u0137in\u0101to laiku.<\/li>\n<li>Kurjers var uzrakst\u012bt klientam \u010dat\u0101 no lietotnes.<\/li>\n<li>Klients var uzrakst\u012bt kurjeram \u010dat\u0101 no lietotnes.<\/li>\n<li>Piec\u0101m min\u016bt\u0113m pirms iera\u0161an\u0101s klientam n\u0101k zi\u0146a, ka kurjers tuvojas, esiet gatavi.<\/li>\n<li>Kurjers atz\u012bm\u0113 lietotn\u0113, ka vi\u0146\u0161 ir pien\u0101cis un gaida.<\/li>\n<li>Kurjers zvana no lietotnes ar vienu klik\u0161\u0137i un inform\u0113, ka (n\u0101k, ir pien\u0101cis utt.)<\/li>\n<li>Klients apstiprina pas\u016bt\u012bjumu un ievada PIN kodu no lietotnes vai SMS apstiprin\u0101juma. (k\u0101 paraksts) Lai kurjers nevar\u0113tu pabeigt pieg\u0101di iepriek\u0161, ja kav\u0113jas.<\/li>\n<li>Pas\u016bt\u012bjums tiek atz\u012bm\u0113ts sist\u0113m\u0101 k\u0101 pieg\u0101d\u0101ts.<\/li>\n<\/ul>\n<p>Plus p\u0101ris alternat\u012bvu scen\u0101riju:<\/p>\n<ul>\n<li>Kurjers var atz\u012bm\u0113t pas\u016bt\u012bjumu k\u0101 nepieg\u0101d\u0101tu un izv\u0113l\u0113ties iemeslu.<\/li>\n<li>Ja kurjers kav\u0113jas, vi\u0146\u0161 var ar vienu pogu izsniegt elektronisku sertifik\u0101tu caur SMS. Vai sertifik\u0101ts autom\u0101tiski tiek nos\u016bt\u012bts, ja tiek neiev\u0113rots pieg\u0101des laiks.<\/li>\n<\/ul>\n<p>\nSavuk\u0101rt \u0161\u012b projekta perspektivit\u0101te un nepiecie\u0161am\u012bba, protams, iedro\u0161in\u0101ja.<\/p>\n<p>N\u0101kamaj\u0101 dien\u0101 dev\u0101mies ar komandu pusdien\u0101s un apspried\u0101m, k\u0101 izskat\u012bsies minim\u0101lais lietotnes funkcionalit\u0101te. <\/p>\n<p>Galu gal\u0101 izveidoj\u0101s \u0161\u0101ds saraksts ar to, kas bija j\u0101pasp\u0113j uz kund\u012bbas pas\u0101kumu:<\/p>\n<ul>\n<li>Piesak\u0101s pie pieg\u0101des kases.<\/li>\n<li>Par\u0101d\u012bt pa\u0161reiz\u0113jo atra\u0161an\u0101s vietu.<\/li>\n<li>Nos\u016bt\u012bt datus uz \u0101r\u0113ju API (koordin\u0101tas, pa\u0146\u0113ma pas\u016bt\u012bjumu, pieg\u0101d\u0101ja pas\u016bt\u012bjumu).<\/li>\n<li>Sa\u0146emt datus no \u0101r\u0113j\u0101 API (pa\u0161reiz\u0113jie kurjera pas\u016bt\u012bjumi).<\/li>\n<li>Nos\u016bt\u012bt notikumu, ka pa\u0146\u0113m\u0101m pas\u016bt\u012bjumu pieg\u0101dei\/delivery.<\/li>\n<li>Par\u0101d\u012bt kurjera pa\u0161reiz\u0113jo atra\u0161an\u0101s vietu kart\u0113 m\u0101jaslap\u0101.<\/li>\n<\/ul>\n<p>\nGalvenais darbs, k\u0101 m\u0113s redz\u0113j\u0101m, bija j\u0101veic backend izveid\u0113, pa\u0161as lietotnes (p\u0113c diskusij\u0101m izv\u0113l\u0113j\u0101mies ReactNative lietotnes izstr\u0101dei, prec\u012bz\u0101k - apvalkam ap to - <noindex><a rel=\"nofollow\" href=\"https:\/\/expo.io\/\">expo.io<\/a><\/noindex>, \u013caujot visp\u0101r neizmantot nativ\u0101 koda rakst\u012b\u0161anu). Aizmugures pl\u0101n\u0101 s\u0101kotn\u0113ji bija cer\u012bbas uz Vani Zverevu, k\u0101 pieredz\u0113ju\u0161u darb\u0101 ar m\u016bsu pakalpojumu \u0161ablonu un k8s (k\u0101da darbs uz sevi vi\u0146\u0161 ar\u012b uz\u0146\u0113m\u0101s). ReactNative \u0146\u0113m\u0101m pam\u0113\u0123in\u0101t es un Andrejs Sarafanova.<\/p>\n<p>Es nol\u0113mu uzreiz izveidot darba repozitoriju pa\u0161am projektam. Pusnakt\u012b es sapratu, ka ReactNative slikti str\u0101d\u0101 ar \u0123eolok\u0101ciju fon\u0101, ja neizpl\u0101nou nativu kodu, nedaudz frust\u0113jos. P\u0113c tam atlaidos, kad sapratu, ka lasu dokument\u0101ciju nevis expo.io ietvaram, bet ReactNative. Gala rezult\u0101t\u0101 vakar\u0101 man jau bija skaidrs, k\u0101 ieg\u016bt ekspon\u0113to atra\u0161an\u0101s vietu un uzz\u012bm\u0113t atsevi\u0161\u0137as ekr\u0101nus (pieteik\u0161anai, pas\u016bt\u012bjuma att\u0113lo\u0161anai utt.).<\/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 \/>\nNo r\u012bta hakaton\u0101 pievilin\u0101j\u0101m Glebam pievienoties m\u016bsu perspekt\u012bvam projektam. \u0100tri uzrakst\u012bj\u0101m pl\u0101nu, kas j\u0101dara.<\/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 \/>\nM\u0113s pie\u013c\u0101v\u0101m k\u013c\u016bdu, m\u0113\u0123inot saska\u0146\u0101 ar projekta \u0161ablonu veidot sazi\u0146u nevis caur HTTP, bet caur GRPC, jo neviens nezin\u0101ja, k\u0101 izveidot GRPC klientu JavaScript. Gala rezult\u0101t\u0101, pavadot apm\u0113ram pusotru stundu, m\u0113s atteic\u0101mies no \u0161\u012bs idejas. T\u0101p\u0113c pui\u0161i uz aizmuguri ar\u012b s\u0101ka p\u0101rb\u016bv\u0113t gatavo serveri no GRPC uz WebApi. Pusstundas laik\u0101 m\u0113s beidzot var\u0113j\u0101m konfigur\u0113t lietojumprogrammas sazi\u0146u ar aizmuguri, ak vai. Bet taj\u0101 pa\u0161\u0101 laik\u0101 G\u013cebs gandr\u012bz pabeidza izvieto\u0161anu k8s un autom\u0101tisko izvieto\u0161anu p\u0113c ap\u0146em\u0161an\u0101s uz galveno.<\/p>\n<p>K\u0101 datu kr\u0101tuvi m\u0113s izv\u0113l\u0113j\u0101mies MySQL, lai nerisk\u0113tu vismaz ar datub\u0101zi (bija doma par 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 \/>\nRezult\u0101t\u0101: <\/p>\n<ul>\n<li>Ievies\u0101m kurjera pa\u0161reiz\u0113j\u0101 koordin\u0101tu saglab\u0101\u0161anu no lietojumprogrammas datu b\u0101z\u0113.<\/li>\n<li>Pievienoj\u0101m RabbitMQ un pierakst\u012bj\u0101mies uz zi\u0146ojumiem par pas\u016bt\u012bjuma sa\u0146em\u0161anu ar kurjera pal\u012bdz\u012bbu, lai t\u016bl\u012bt att\u0113lotu pas\u016bt\u012bjumu kurjeram programm\u0101.<\/li>\n<li>S\u0101k\u0101m saglab\u0101t datu b\u0101z\u0113 laiku par pas\u016bt\u012bjuma pieg\u0101di, p\u0113c tam, kad kurjers nospie\u017e pogu programm\u0101. Neizdev\u0101s pievienot zi\u0146ojuma nos\u016bt\u012b\u0161anu atpaka\u013c uz r\u012bci par to, ka pas\u016bt\u012bjums ir pieg\u0101d\u0101ts.<\/li>\n<li>Es izveidoju kartes att\u0113lo\u0161anu lap\u0101 currentorder m\u0101jaslap\u0101 ar kurjera pa\u0161reiz\u0113jo atra\u0161an\u0101s vietu. Tom\u0113r \u0161\u012b funkcionalit\u0101te palika nedaudz nepabeigta, jo vid\u0113 neizdev\u0101s konfigur\u0113t CORS, lai ieg\u016btu koordin\u0101tas no m\u016bsu jaun\u0101 pakalpojuma.<\/li>\n<\/ul>\n<p><\/p>\n<h4>M87<\/h4>\n<p>\n<i>Roma Bukins, Go\u0161a Polevijs (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/georgepolevoy\/\" class=\"user_link\">georgepolevoy<\/a><\/noindex>), Artyom Trofimushkin<\/i><\/p>\n<p>M\u0113s v\u0113l\u0113j\u0101mies izveidot OpenID Connect sniedz\u0113ju, jo \u0161obr\u012bd m\u0113s izmantojam m\u016bsu pa\u0161u izstr\u0101d\u0101to autentifik\u0101cijas protokolu, kas rada virkni gr\u016bt\u012bbu: piel\u0101gotas klientu bibliot\u0113kas, ne\u0113rta sadarb\u012bba ar \u0101r\u0113jiem partneriem, iesp\u0113jamas dro\u0161\u012bbas probl\u0113mas (galu gal\u0101 OAuth2.0 un OpenID Connect etalona izpild\u0113 uzskat\u0101mas par dro\u0161\u0101m, bet par m\u016bsu risin\u0101jumu \u2014 neesmu p\u0101rliecin\u0101ts).<\/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 \/>\nM\u0113s izveidoj\u0101m atsevi\u0161\u0137u pakalpojumu, kas emul\u0113 person\u0101lo datu glab\u0101\u0161anas pakalpojumu, lai izveidotu nelielu valsts neatkar\u012bgu autentifik\u0101cijas sniedz\u0113ja modeli, kas ieg\u016btu person\u012bgos datus no atsevi\u0161\u0137a pakalpojuma (tas n\u0101kotn\u0113 dotu iesp\u0113ju izmantot vienu pakalpojumu, ar kuru iesp\u0113jams pieteikties ar kontu jebkur\u0101 valst\u012b un vienlaikus iev\u0113rot GDPR un citus likumus). \u0160o da\u013cu m\u0113s izstr\u0101d\u0101j\u0101m, k\u0101 ar\u012b sniedz\u0113ju, un veiksm\u012bgi tos savienoj\u0101m sav\u0101 starp\u0101. T\u0101l\u0101k vajadz\u0113ja izveidot API, kas b\u016btu aizsarg\u0101ts ar sniedz\u0113ja izsniegtajiem \u017eetoniem, atbalst\u012btu to introspekciju caur sniedz\u0113ju un atdotu aizsarg\u0101tos datus, ja piepras\u012bjums atbilstu autoriz\u0101cijas politik\u0101m (p\u0101rbaud\u0101m, vai lietot\u0101js ir autentific\u0113ts p\u0113c Bearer sh\u0113mas, vai vi\u0146a \u017eeton\u0101 ir noteikts scope + vai pa\u0161am lietot\u0101jam ir at\u013cauja veikt \u0161o izsaukumu). \u0160\u012b da\u013ca ar\u012b bija pabeigta. P\u0113d\u0113jais komponents bija JavaScript klients, kuram tiktu izsniegts \u017eetons, ar kura pal\u012bdz\u012bbu tas izsauktos aizsarg\u0101to API. \u0160o da\u013cu m\u0113s nepasp\u0113j\u0101m izstr\u0101d\u0101t. T\u0101tad visa funkcion\u0101l\u0101 da\u013ca bija gatava, bet nebija izstr\u0101d\u0101ta priek\u0161\u0113j\u0101 da\u013ca, lai demonstr\u0113tu visas sist\u0113mas darb\u012bbu.<\/p>\n<h4>E-E-E (sp\u0113l\u012bte)<\/h4>\n<p>\n<i>Dima Afon\u010denko, Sa\u0161a Konovalovs<\/i><\/p>\n<p>M\u0113s izveidoj\u0101m mini-sp\u0113li uz Unity, kur akt\u012bv\u0101s rokas uzsita desi\u0146u uz pizzas. Ja tu nepareizi uzsiti desi\u0146u, ekr\u0101n\u0101 par\u0101d\u0101s skumja uzraksts \"Noraid\u012bts\", bet, ja visa desi\u0146a ir uzsista pareizi, tad par\u0101d\u0101s nejau\u0161s fakts par pizzu.<\/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 \/>\nV\u0113l\u0113j\u0101mies izveidot otro l\u012bmeni ar tom\u0101tu uzsist\u012b\u0161anu, bet nepasp\u0113j\u0101m.<\/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>\u012ass turpin\u0101jums: kur\u0161 uzvar\u0113ja?<\/h2>\n<p>\nPirms hackathon m\u0113s run\u0101j\u0101m ar pui\u0161iem un es jaut\u0101ju, k\u0101du balvu vi\u0146i v\u0113l\u0113tos sa\u0146emt, ja uzvar\u0113tu. Izr\u0101d\u012bj\u0101s, ka visv\u0113rt\u012bg\u0101k\u0101 balva b\u016btu \"ce\u013c\u0161 uz ra\u017eo\u0161anu\". <\/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 \/>\nT\u0101p\u0113c dr\u012bz gaidiet no mums sp\u0113les pazi\u0146ojumu ar roci\u0146\u0101m, kas uzdarbojas ar pepperoni uz picas.<\/p>\n<blockquote><p>K\u0101 var\u0113ja iev\u0113rot uzman\u012bgs las\u012bt\u0101js, uzvar\u0113ja komanda \u201eE-E-E (sp\u0113l\u012bte)\u201d. Apsveicam pui\u0161us!<\/p><\/blockquote>\n<p class=\"for_users_only_msg\">Tikai re\u0123istr\u0113tie lietot\u0101ji var piedal\u012bties aptauj\u0101. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Pieteikties<\/a><\/noindex>, l\u016bdzu.<\/p>\n<h2 class=\"default-block__polling-title\">Kurs projekts jums visvair\u0101k patika?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    O\u013cegs L\u0113rnings (ma\u0161\u012bnm\u0101c\u012bba)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    GUI ies\u0101c\u0113jiem<\/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>    Nobalsoju\u0161i 5 lietot\u0101ji. Attur\u0113ju\u0161ies 3 lietot\u0101ji.<br \/>\n<br \/>Avots: <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.5 - 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\/lv\/blog\/news\/kodim-pitstsa\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\/lv\/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\udd47Kod\u0113jam\u2013pica | ProHoster","description":"Sveiks, Habr! M\u0113s negaid\u012bti r\u012bkoj\u0101m pirmo iek\u0161\u0113jo hackathon.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/kodim-pitstsa","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/34626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=34626"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/34626\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/26093"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=34626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=34626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=34626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}