Kohët e fundit ne
Dita e hapur do të mbahet në zyrën e JetBrains në Qendrën e Biznesit Times, ku studiojnë studentët tanë të masterit. Fillon në orën 17:00. Ju mund të mësoni të gjitha detajet dhe të regjistroheni për ngjarjen në faqen e internetit
Një nga komponentët kryesorë të programit është praktika. Studentët kanë shumë prej tyre: detyra shtëpie javore, projekte semestrale dhe hackathons. Falë zhytjes së plotë në metodologjitë dhe teknologjitë moderne të zhvillimit gjatë studimeve, të diplomuarit integrohen shpejt në proceset e punës të kompanive të mëdha të IT.
Në këtë postim duam të flasim më në detaje për hakatonët DevDays, të cilat zhvillohen çdo gjashtë muaj. Rregullat janë të thjeshta: mblidhen ekipe prej 3-4 personash dhe për tre ditë studentët sjellin në jetë idetë e tyre. Çfarë mund të vijë nga kjo? Lexoni pjesën e parë të tregimeve për projektet hackathon të këtij semestri nga vetë studentët :)
Ditari me rekomandime për filma
Autori i idesë
Ivan Ilchuk
Rreshtoj
Ivan Ilchuk – analiza e komplotit të filmit, server
Vladislav Korablinov - zhvillimi i modeleve për krahasimin e afërsisë së një shënimi ditar dhe komplotit të një filmi
Dmitry Valchuk - UI
Nikita Vinokurov – UI, dizajn
Qëllimi i projektit tonë ishte të shkruanim një aplikacion desktop - një ditar që do t'i rekomandonte filma përdoruesit bazuar në shënimet në të.
Kjo ide më lindi kur isha rrugës për në universitet dhe mendoja për problemet e mia. "Çfarëdo problemi që has një person, një shkrimtar klasik ka shkruar tashmë për të," mendova. “Dhe meqenëse dikush e ka shkruar, do të thotë se dikush e ka filmuar tashmë.” Kështu që dëshira për të parë një film për një person me të njëjtën mundim mendor u shfaq natyrshëm.
Natyrisht, ka një shumëllojshmëri të gjerë ditarësh të veçantë dhe shërbime të veçanta rekomandimi (por zakonisht rekomandimet bazohen në atë që personi i pëlqente më parë). Në parim, ky projekt ka diçka të përbashkët me kërkimin e një filmi sipas pikave kryesore, por megjithatë, para së gjithash, aplikacioni ynë ofron funksionalitetin e një ditari.
Si e zbatuam këtë? Kur shtypni butonin magjik, ditari dërgon një hyrje në server, ku filmi zgjidhet bazuar në përshkrimin e marrë nga Wikipedia. Frontend ynë u krijua në Electron (ne e përdorim atë, jo faqen e internetit, sepse fillimisht vendosëm të ruanim të dhënat e përdoruesit jo në server, por në nivel lokal në kompjuter), dhe vetë serveri dhe sistemi i rekomandimeve u krijuan në Python: TF-të ishin të marra nga përshkrimet -Vektorët IDF që u krahasuan për afërsinë me vektorin e hyrjes në ditar.
Një anëtar i ekipit ka punuar vetëm në model, tjetri ka punuar tërësisht në pjesën e përparme (fillimisht së bashku me një anëtar të tretë, i cili më vonë kaloi në testim). Unë isha i angazhuar në analizimin e komploteve filmike nga Wikipedia dhe serveri.
Hap pas hapi iu afruam rezultatit, duke kapërcyer një sërë problemesh, duke filluar nga fakti që modeli fillimisht kërkonte shumë RAM, duke përfunduar me vështirësinë e transferimit të të dhënave në server.
Tani, për të gjetur një film për mbrëmjen, nuk keni nevojë për shumë përpjekje: rezultati i punës sonë treditore është një aplikacion desktop dhe një server, të cilit përdoruesi i qaset përmes https, duke marrë si përgjigje një përzgjedhje prej 5 filmash me një përshkrim të shkurtër dhe një poster.
Përshtypjet e mia për projektin janë shumë pozitive: puna ishte magjepsëse nga mëngjesi herët deri në orët e vona të natës, dhe aplikacioni që rezulton prodhon periodikisht rezultate jashtëzakonisht qesharake në stilin e "Natës pa gjumë" për një shënim në ditar për detyrat e shtëpisë në universitet ose një film. për ditën e parë të shkollës për një histori për ditën e parë në departament.
Mund të gjenden lidhjet përkatëse, instaluesit, etj
Gjenerator i rrugës
Autori i idesë
Artemyeva Irina
Rreshtoj
Artemyeva Irina - drejtuesi i ekipit, cikli kryesor
Gordeeva Lyudmila - muzikë
Platonov Vladislav - rrugë
Më pëlqen shumë të eci nëpër qytet: të shikoj ndërtesa, njerëz, duke menduar për historinë. Por, edhe kur ndërroj vendbanimin, herët a vonë përballem me problemin e zgjedhjes së rrugës: i kam përfunduar të gjitha ato që mund të mendoja. Kështu lindi ideja për të automatizuar gjenerimin e rrugëve: ju tregoni pikën e fillimit dhe gjatësinë e itinerarit dhe programi ju jep një mundësi. Shëtitjet mund të jenë të gjata, kështu që një zhvillim logjik i idesë duket se po shton aftësinë për të treguar pikat e ndërmjetme për një "ndalim", ku mund të hani një meze të lehtë dhe të pushoni. Një degë tjetër e zhvillimit ishte muzika. Ecja në muzikë është gjithmonë më argëtuese, kështu që do të ishte mirë të shtoni aftësinë për të zgjedhur një listë dëgjimi bazuar në një rrugë të krijuar.
Nuk ishte e mundur të gjendeshin zgjidhje të tilla midis aplikacioneve ekzistuese. Analogët më të afërt janë çdo planifikues i rrugës: Google Maps, 2GIS, etj.
Është më e përshtatshme të kesh një aplikacion të tillë në telefonin tënd, kështu që përdorimi i Telegram ishte një opsion i mirë. Kjo ju lejon të shfaqni harta dhe të luani muzikë, dhe ju mund t'i kontrolloni të gjitha këto duke shkruar një bot. Puna kryesore me hartat është bërë duke përdorur Google Map API. Python e bën të lehtë kombinimin e të dyja teknologjive.
Ishin tre persona në ekip, kështu që detyra u nda në dy nëndetyra jo të mbivendosura (puna me harta dhe puna me muzikë) në mënyrë që djemtë të mund të punonin në mënyrë të pavarur, dhe unë mora përsipër të kombinoja rezultatet.
Asnjëri prej nesh nuk kishte punuar ndonjëherë me API-në e Google Map ose me bots të shkruar Telegram, kështu që problemi kryesor ishte sasia e kohës së caktuar për zbatimin e projektit: të kuptuarit e diçkaje kërkon gjithmonë më shumë kohë sesa të bësh diçka që e di mirë. Ishte gjithashtu e vështirë të zgjidhja API-në e bot-it të Telegram: për shkak të bllokimit, jo të gjithë funksionojnë dhe më duhej të luftoja për të vendosur gjithçka.
Vlen të përmendet veçmas se si u zgjidh problemi i gjenerimit të rrugëve. Është e lehtë të ndërtosh një itinerar midis dy vendndodhjeve, por çfarë mund t'i ofroni përdoruesit nëse dihet vetëm gjatësia e itinerarit? Lëreni përdoruesin të dëshirojë të ecë 10 kilometra. Një pikë zgjidhet në një drejtim arbitrar, distanca në të cilën në një vijë të drejtë është 10 kilometra, pas së cilës ndërtohet një rrugë deri në këtë pikë përgjatë rrugëve reale. Me shumë mundësi nuk do të jetë i drejtë, kështu që do ta shkurtojmë në 10 kilometrat e specifikuar. Ka shumë opsione për rrugë të tilla - ne kemi një gjenerator të vërtetë të rrugës!
Fillimisht doja ta segmentoja hartën në zona që korrespondojnë me sipërfaqet e gjelbra: argjinaturat, oborret, rrugët, në mënyrë që të merrja rrugën më të këndshme për shëtitje, si dhe të gjeneroja muzikë në përputhje me këto zona. Por bërja e kësaj duke përdorur Google Map API doli të ishte e vështirë (ne nuk kishim kohë për ta zgjidhur këtë problem). Sidoqoftë, ishte e mundur të zbatohej ndërtimi i një itinerari përmes llojeve të veçanta të vendndodhjeve (dyqani, parku, biblioteka): nëse itinerari kalonte nëpër të gjitha vendet e specifikuara, por distanca e dëshiruar ende nuk është udhëtuar, ajo përfundon në një distancën e specifikuar nga përdoruesi në një drejtim të rastësishëm. Google Map API ju lejon gjithashtu të llogaritni kohën e parashikuar të udhëtimit, e cila ju ndihmon të zgjidhni një listë dëgjimi saktësisht për të gjithë shëtitjen.
Si rezultat i kësaj,
Problemi kryesor me punën me muzikë ishte të mos dije se ku të merreshin skedarët mp3 pa kërkuar që përdoruesi të kishte një llogari në ndonjë shërbim. U vendos që të kërkohej muzikë nga përdoruesi (modaliteti UserMusic). Kjo krijon një problem të ri: jo të gjithë kanë aftësinë për të shkarkuar këngë. Një zgjidhje është krijimi i një depoje me muzikë nga përdoruesit (modaliteti BotMusic) - prej tij mund të gjeneroni muzikë pavarësisht nga shërbimet.
Edhe pse jo perfekte, ne e përfunduam detyrën: përfunduam me një aplikacion që do të doja ta përdorja. Në përgjithësi, kjo është shumë e lezetshme: tre ditë më parë kishit vetëm një ide dhe jo një mendim të vetëm se si ta zbatoni saktësisht, por tani ka një zgjidhje funksionale. Këto ishin tre ditë shumë të rëndësishme për mua. Nuk kam më frikë të dal me diçka që nuk kam njohuri të mjaftueshme për ta zbatuar, të qenit drejtues i ekipit ishte tepër interesant dhe njoha djemtë e mrekullueshëm që iu bashkuan ekipit tim më mirë!
Demokracia e lëngshme
Autori i idesë
Stanislav Sychev
Rreshtoj
Stanislav Sychev – drejtues i ekipit, baza e të dhënave
Nikolay Izyumov - ndërfaqe bot
Anton Ryabushev - backend
Brenda grupeve të ndryshme, shpesh lind nevoja për të marrë një vendim ose votim. Zakonisht në raste të tilla ata i drejtohen
Për të zgjidhur problemet e të dy sistemeve, Brian Ford propozoi konceptin
Shembuj të përdorimit të demokracisë likuide gjenden në politikë dhe ne donim të zbatonim një ide të ngjashme për përdorim të përditshëm brenda të gjitha llojeve të grupeve të njerëzve. Në hakatonin tjetër të DevDays, vendosëm të shkruajmë një bot Telegram për votim sipas parimeve të demokracisë likuide. Në të njëjtën kohë, doja të shmangja një problem të zakonshëm me robotë të tillë - bllokimi i bisedës së përgjithshme me mesazhe nga roboti. Zgjidhja është të sillni sa më shumë funksionalitet të jetë e mundur në një bisedë personale.
Për të krijuar këtë bot ne kemi përdorur
Natyrisht, tre ditë janë një kohë e shkurtër, kështu që gjatë hackathon-it ne e zbatuam idenë në nivelin prototip. Si rezultat, ne krijuam një bot që shkruan në bisedën e përgjithshme vetëm informacione për hapjen e votimit dhe rezultatet anonime të tij. Mundësia për të votuar dhe krijuar një sondazh zbatohet përmes korrespondencës personale me bot. Për të votuar, futni një komandë që shfaq një listë çështjesh që kërkojnë vëmendje të drejtpërdrejtë. Në korrespondencën personale, ju mund të shihni listën e delegatëve dhe votat e tyre të mëparshme, si dhe t'u jepni atyre votën tuaj për një nga temat.
Ishte interesante të punosh në projekt, qëndruam në universitet deri në mesnatë, mendojmë se kjo është një mënyrë e shkëlqyer për të marrë një pushim nga studimi, megjithëse është shumë rraskapitës. Ishte një përvojë e këndshme të punoja në një ekip të lidhur ngushtë.
PS. Regjistrimet për programet master për vitin e ardhshëm akademik janë tashmë
Burimi: www.habr.com