Nedávno sme
Deň otvorených dverí sa bude konať v kancelárii JetBrains v Times Business Center, kde študujú naši študenti magisterského štúdia. Začína o 17:00. Všetky podrobnosti a registráciu na podujatie nájdete na webe
Jednou z hlavných zložiek programu je prax. Študenti toho majú veľa: týždenné domáce úlohy, semestrálne projekty a hackatóny. Vďaka úplnému ponoreniu sa do moderných vývojových metodík a technológií počas štúdia sa absolventi rýchlo začlenia do pracovných procesov veľkých IT spoločností.
V tomto príspevku chceme podrobnejšie hovoriť o hackathonoch DevDays, ktoré sa konajú každých šesť mesiacov. Pravidlá sú jednoduché: zhromaždia sa tímy 3-4 ľudí a počas troch dní študenti realizujú svoje nápady. Čo z toho môže vzísť? Prečítajte si prvú časť príbehov o tohtoročných hackathonových projektoch od samotných študentov :)
Denník s odporúčaniami filmov
Autor myšlienky
Ivan Ilčuk
Štruktúra príkazov
Ivan Ilchuk – parsovanie filmovej zápletky, server
Vladislav Korablinov – vývoj modelov na porovnanie blízkosti denníkového záznamu a deja filmu
Dmitrij Valchuk – UI
Nikita Vinokurov – UI, dizajn
Cieľom nášho projektu bolo napísať desktopovú aplikáciu – denník, ktorý by na základe záznamov v ňom používateľovi odporúčal filmy.
Táto myšlienka ma napadla, keď som bol na ceste na univerzitu a premýšľal o svojich problémoch. „Akýkoľvek problém, ktorému človek čelí, o tom už písal nejaký klasický spisovateľ,“ pomyslel som si. "A keďže to niekto napísal, znamená to, že to už niekto nakrútil." Túžba pozrieť si film o človeku s rovnakým duševným trápením sa teda objavila prirodzene.
Je zrejmé, že existuje široká škála samostatných denníkov a samostatných odporúčacích služieb (zvyčajne však odporúčania vychádzajú z toho, čo sa danej osobe predtým páčilo). V princípe má tento projekt niečo spoločné s vyhľadávaním filmu podľa kľúčových bodov, no predsa len naša aplikácia poskytuje predovšetkým funkcionalitu denníka.
Ako sme to zrealizovali? Keď stlačíte magické tlačidlo, denník odošle záznam na server, kde sa film vyberie na základe popisu prevzatého z Wikipédie. Náš frontend bol vytvorený v Electrone (používame ho, nie webovú stránku, pretože sme sa pôvodne rozhodli ukladať používateľské údaje nie na server, ale lokálne na počítači) a server a samotný systém odporúčaní boli vytvorené v Pythone: TF boli získané z opisov -IDF vektorov, ktoré boli porovnané na blízkosť k vektoru záznamu z denníka.
Jeden člen tímu pracoval iba na modeli, druhý pracoval výlučne na front-ende (spočiatku spolu s tretím členom, ktorý neskôr prešiel na testovanie). Zaoberal som sa analýzou filmových zápletiek z Wikipédie a servera.
Krok za krokom sme sa približovali k výsledku, prekonali sme množstvo problémov, počnúc tým, že model spočiatku vyžadoval veľa pamäte RAM, končiac ťažkosťami pri prenose dát na server.
Teraz, aby ste našli film na večer, nepotrebujete veľa úsilia: výsledkom našej trojdňovej práce je desktopová aplikácia a server, ku ktorému používateľ pristupuje cez https, pričom ako odpoveď dostane výber 5 filmov s stručný popis a plagát.
Moje dojmy z projektu sú veľmi pozitívne: práca bola podmanivá od skorého rána až do neskorej noci a výsledná aplikácia pravidelne prináša mimoriadne vtipné výsledky v štýle „Bezsenná noc“ pre denníkový záznam o domácich úlohách na univerzite alebo o filme. o prvom dni v škole na rozprávku o prvom dni na katedre.
Môžete nájsť príslušné odkazy, inštalačné programy atď
Generátor trasy
Autor myšlienky
Artemyeva Irina
Štruktúra príkazov
Artemyeva Irina – vedenie tímu, hlavná slučka
Gordeeva Lyudmila – hudba
Platonov Vladislav – cesty
Veľmi rád chodím po meste: pozerám sa na budovy, ľudí, premýšľam o histórii. Ale aj pri zmene bydliska skôr či neskôr stojím pred problémom vybrať si trasu: absolvoval som všetky, ktoré ma napadli. Takto vznikol nápad automatizovať generovanie trás: označíte začiatočný bod a dĺžku trasy a program vám dá možnosť. Prechádzky môžu byť dlhé, takže logickým vývojom myšlienky sa zdá byť pridaná možnosť označiť medziľahlé body pre „zastávku“, kde by ste sa mohli občerstviť a odpočívať. Ďalším vývojovým odvetvím bola hudba. Chôdza s hudbou je vždy zábavnejšia, takže by bolo skvelé pridať možnosť výberu zoznamu skladieb na základe vygenerovanej trasy.
Medzi existujúcimi aplikáciami nebolo možné nájsť takéto riešenia. Najbližšími analógmi sú akékoľvek plánovače trás: Mapy Google, 2GIS atď.
Najpohodlnejšie je mať takúto aplikáciu v telefóne, takže použitie telegramu bola dobrá voľba. Umožňuje vám zobrazovať mapy a prehrávať hudbu a toto všetko môžete ovládať napísaním bota. Hlavná práca s mapami bola vykonaná pomocou Google Map API. Python uľahčuje kombináciu oboch technológií.
V tíme boli traja ľudia, takže úloha bola rozdelená na dve neprekrývajúce sa čiastkové úlohy (práca s mapami a práca s hudbou), aby chalani mohli pracovať samostatne a ja som si zobral na starosť skĺbiť výsledky.
Nikto z nás nikdy nepracoval s Google Map API alebo nepísal telegramové roboty, takže hlavným problémom bolo množstvo času vyčleneného na implementáciu projektu: pochopiť niečo vždy zaberie viac času ako urobiť niečo, čo dobre poznáte. Bolo tiež ťažké vybrať si Telegram bot API: kvôli blokovaniu nie všetky fungujú a musel som sa snažiť všetko nastaviť.
Samostatne stojí za zmienku, ako bol vyriešený problém generovania trás. Je ľahké vytvoriť trasu medzi dvoma miestami, ale čo môžete používateľovi ponúknuť, ak je známa iba dĺžka trasy? Nech chce používateľ prejsť 10 kilometrov. Bod je vybraný v ľubovoľnom smere, vzdialenosť, do ktorej je priamka 10 kilometrov, po ktorej sa k tomuto bodu vytvorí trasa pozdĺž skutočných ciest. S najväčšou pravdepodobnosťou to nebude rovné, tak si to skrátime na určených 10 kilometrov. Existuje veľa možností pre takéto trasy - máme skutočný generátor trás!
Spočiatku som chcel rozdeliť mapu na oblasti zodpovedajúce zeleným plochám: nábrežia, nádvoria, ulice, aby som získal čo najpríjemnejšiu trasu na prechádzku a tiež generoval hudbu v súlade s týmito plochami. Ukázalo sa však, že je ťažké to urobiť pomocou rozhrania Google Map API (nemali sme čas vyriešiť tento problém). Bolo však možné realizovať výstavbu trasy cez špecifické typy lokalít (obchod, park, knižnica): ak trasa obišla všetky určené miesta, no požadovaná vzdialenosť ešte nebola prejdená, je dokončená do užívateľom špecifikovaná vzdialenosť v náhodnom smere. Google Map API vám tiež umožňuje vypočítať odhadovaný čas cesty, čo vám pomôže vybrať si playlist presne na celú prechádzku.
V dôsledku toho,
Hlavným problémom pri práci s hudbou bola nevedomosť, odkiaľ získať mp3 súbory bez toho, aby používateľ musel mať účet v akejkoľvek službe. Bolo rozhodnuté vyžiadať si hudbu od používateľa (režim UserMusic). To vytvára nový problém: nie každý má možnosť sťahovať skladby. Jedným z riešení je vytvorenie úložiska s hudbou od používateľov (režim BotMusic) – z neho môžete generovať hudbu bez ohľadu na služby.
Aj keď to nebolo dokonalé, úlohu sme splnili: skončili sme s aplikáciou, ktorú by som rád používal. Vo všeobecnosti je to veľmi cool: pred tromi dňami ste mali iba nápad a ani jednu myšlienku, ako ho presne implementovať, ale teraz existuje funkčné riešenie. Boli to pre mňa veľmi dôležité tri dni. Už sa nebojím prísť s niečím, na čo nemám dostatok vedomostí, byť vedúcim tímu bolo neskutočne zaujímavé a spoznal som úžasných chalanov, ktorí sa pridali k môjmu tímu lepšie!
Tekutá demokracia
Autor myšlienky
Stanislav Syčev
Štruktúra príkazov
Stanislav Sychev – vedenie tímu, databáza
Nikolay Izyumov – rozhranie robotov
Anton Ryabushev – backend
V rámci rôznych skupín je často potrebné rozhodnúť alebo hlasovať. Zvyčajne sa v takýchto prípadoch uchýlia
Na vyriešenie problémov oboch systémov navrhol koncept Brian Ford
Príklady využitia tekutej demokracie nájdeme v politike a my sme chceli podobný nápad implementovať na každodenné použitie v rámci všetkých skupín ľudí. Na ďalšom hackathone DevDays sme sa rozhodli napísať telegramového bota na hlasovanie podľa princípov tekutej demokracie. Zároveň som sa chcel vyhnúť bežnému problému s takýmito botmi – zanášaniu všeobecného chatu správami od bota. Riešením je vniesť do osobného rozhovoru čo najviac funkcií.
Na vytvorenie tohto robota sme použili
Samozrejme, tri dni sú krátka doba, a tak sme počas hackathonu zrealizovali nápad do prototypovej úrovne. Vďaka tomu sme vytvorili robota, ktorý do všeobecného chatu píše iba informácie o otvorení hlasovania a jeho anonymných výsledkoch. Možnosť hlasovať a vytvárať anketu sa realizuje prostredníctvom osobnej korešpondencie s robotom. Ak chcete hlasovať, zadajte príkaz, ktorý zobrazí zoznam problémov, ktoré si vyžadujú priamu pozornosť. V osobnej korešpondencii môžete vidieť zoznam delegátov a ich predchádzajúce hlasy a tiež im dať svoj hlas k jednej z tém.
Práca na projekte bola zaujímavá, na univerzite sme zostali do polnoci.Myslíme si, že je to skvelý spôsob, ako si oddýchnuť od štúdia, aj keď je to veľmi vyčerpávajúce. Bola to príjemná skúsenosť pracovať v úzkom kolektíve.
PS. Zápis na magisterské programy na budúci akademický rok už prebieha
Zdroj: www.habr.com