Neseniai mes
Atvirų durų diena vyks JetBrains biure Times verslo centre, kur mokosi mūsų magistrantai. Pradžia 17:00. Sužinoti visą informaciją ir užsiregistruoti į renginį galite svetainėje
Vienas iš pagrindinių programos komponentų yra praktika. Studentai to turi labai daug: savaitės namų darbų, semestro projektų ir hakatonų. Dėl visiško pasinėrimo į šiuolaikines plėtros metodikas ir technologijas studijų metu absolventai greitai integruojasi į didelių IT įmonių darbo procesus.
Šiame įraše norime plačiau pakalbėti apie DevDays hakatonus, vykstančius kas šešis mėnesius. Taisyklės paprastos: susirenka 3-4 žmonių komandos ir tris dienas studentai įgyvendina savo idėjas. Kas iš to gali išeiti? Pirmąją pasakojimų dalį apie šio semestro hakatono projektus skaitykite iš pačių studentų :)
Dienoraštis su filmų rekomendacijomis
Idėjos autorius
Ivanas Ilčiukas
Rikiuotė
Ivan Ilchuk – filmo siužeto analizavimas, serveris
Vladislavas Korablinovas – modelių, skirtų palyginti dienoraščio įrašo artumą ir filmo siužetą, kūrimas
Dmitrijus Valčukas – UI
Nikita Vinokurovas – UI, dizainas
Mūsų projekto tikslas buvo parašyti darbalaukio aplikaciją – dienoraštį, kuris pagal jame esančius įrašus rekomenduotų vartotojui filmus.
Ši idėja man kilo, kai ėjau į universitetą ir galvojau apie savo problemas. „Kad ir su kokia problema susidurtų žmogus, koks nors klasikinis rašytojas jau yra apie tai parašęs“, – pagalvojau. „Ir kadangi kažkas tai parašė, vadinasi, kažkas jau nufilmavo“. Taigi noras pažiūrėti filmą apie žmogų, turintį tokią pat psichikos kančią, atsirado natūraliai.
Akivaizdu, kad yra daugybė atskirų dienoraščių ir atskirų rekomendacijų paslaugų (tačiau dažniausiai rekomendacijos remiasi tuo, kas žmogui anksčiau patiko). Iš esmės šis projektas turi kažką bendro su filmo paieška pagal pagrindinius taškus, bet vis tiek, visų pirma, mūsų programa suteikia dienoraščio funkcionalumą.
Kaip mes tai įgyvendinome? Paspaudus stebuklingą mygtuką dienoraštis siunčia įrašą į serverį, kuriame pagal aprašymą, paimtą iš Vikipedijos, parenkamas filmas. Mūsų frontend buvo padaryta Electron (naudojame ją, o ne svetainę, nes iš pradžių nusprendėme saugoti vartotojo duomenis ne serveryje, o lokaliai kompiuteryje), o serveris ir pati rekomendacijų sistema – Python: TF buvo gauti iš aprašymų -IDF vektoriai, kurie buvo lyginami dėl artumo dienoraščio įrašo vektoriaus.
Vienas komandos narys dirbo tik prie modelio, kitas dirbo tik priekinėje dalyje (iš pradžių kartu su trečiuoju nariu, kuris vėliau perėjo prie testavimo). Aš užsiėmiau filmų siužetų analize iš Vikipedijos ir serverio.
Žingsnis po žingsnio priartėjome prie rezultato, įveikdami daugybę problemų, pradedant tuo, kad modeliui iš pradžių reikėjo daug RAM, baigiant duomenų perdavimo į serverį sunkumais.
Dabar, norint rasti filmą vakarui, jums nereikia daug pastangų: mūsų trijų dienų darbo rezultatas yra darbalaukio programa ir serveris, kurį vartotojas pasiekia per https, atsakydamas gaudamas 5 filmų pasirinkimą su trumpas aprašymas ir plakatas.
Mano įspūdžiai apie projektą labai teigiami: darbas žavėjo nuo ankstaus ryto iki vėlyvo vakaro, o gauta aplikacija periodiškai duoda itin juokingų „Bemiegės nakties“ stiliaus rezultatų dienoraščio įrašui apie namų darbus universitete ar filmui. apie pirmą dieną mokykloje pasakojimui apie pirmą dieną skyriuje.
Galima rasti atitinkamas nuorodas, montuotojus ir pan
Maršruto generatorius
Idėjos autorius
Artemjeva Irina
Rikiuotė
Artemjeva Irina – komandos lyderis, pagrindinė kilpa
Gordeeva Liudmila – muzika
Platonovas Vladislavas – maršrutai
Man labai patinka vaikščioti po miestą: žiūrėti į pastatus, žmones, galvoti apie istoriją. Bet, net ir keičiant gyvenamąją vietą, anksčiau ar vėliau susiduriu su maršruto pasirinkimo problema: įveikiau visus, kuriuos tik sugalvojau. Taip kilo mintis automatizuoti maršrutų generavimą: nurodote maršruto pradžios tašką ir ilgį, o programa suteikia galimybę. Pasivaikščiojimai gali būti ilgi, todėl atrodo, kad logiškai plėtojant idėją, atsiranda galimybė nurodyti tarpinius taškus „stotelėje“, kur galėtumėte užkąsti ir pailsėti. Kita raidos šaka buvo muzika. Vaikščioti pagal muziką visada smagiau, todėl būtų puiku pridėti galimybę pasirinkti grojaraštį pagal sugeneruotą maršrutą.
Tokių sprendimų tarp esamų programų rasti nepavyko. Artimiausi analogai yra bet kokie maršrutų planuotojai: Google Maps, 2GIS ir kt.
Patogiausia turėti tokią programą telefone, todėl naudoti Telegram buvo geras pasirinkimas. Tai leidžia rodyti žemėlapius ir leisti muziką, o visa tai galite valdyti rašydami robotą. Pagrindinis darbas su žemėlapiais buvo atliktas naudojant Google Map API. „Python“ leidžia lengvai derinti abi technologijas.
Komandoje buvo trys žmonės, todėl užduotis buvo suskirstyta į dvi nepersidengiančias papildomas užduotis (darbas su žemėlapiais ir darbas su muzika), kad vaikinai galėtų dirbti savarankiškai, o aš ėmiau derinti rezultatus.
Nė vienas iš mūsų niekada nebuvo dirbęs su Google Map API ar rašytais Telegram robotais, todėl pagrindinė problema buvo projektui įgyvendinti skirtas laikas: ką nors suprasti visada užtrunka ilgiau nei daryti tai, ką gerai išmanai. Taip pat buvo sunku pasirinkti „Telegram“ roboto API: dėl blokavimo ne visi jie veikia ir turėjau sunkiai viską nustatyti.
Atskirai verta paminėti, kaip buvo išspręsta maršrutų generavimo problema. Nesunku sukurti maršrutą tarp dviejų vietų, bet ką galite pasiūlyti vartotojui, jei žinomas tik maršruto ilgis? Leiskite vartotojui nueiti 10 kilometrų. Savavališka kryptimi pasirenkamas taškas, iki kurio atstumas tiesia linija yra 10 kilometrų, po kurio į šį tašką tiesiamas maršrutas tikrais keliais. Greičiausiai jis nebus tiesus, todėl sutrumpinsime iki nurodytų 10 kilometrų. Tokiems maršrutams yra daugybė variantų – gavome tikrą maršrutų generatorių!
Iš pradžių norėjau suskirstyti žemėlapį į želdynus atitinkančias zonas: krantines, kiemus, gatves, kad pasivaikščioti būtų kuo maloniau, o taip pat pagal šias zonas generuoti muziką. Tačiau tai padaryti naudojant „Google Map“ API pasirodė sudėtinga (neturėjome laiko išspręsti šios problemos). Tačiau buvo galima įgyvendinti maršrutą per tam tikro tipo vietas (parduotuvę, parką, biblioteką): jei maršrutas apėjo visas nurodytas vietas, bet norimas atstumas dar nenuvažiuotas, jis baigiamas iki vartotojo nurodytas atstumas atsitiktine kryptimi. „Google Map“ API taip pat leidžia apskaičiuoti numatomą kelionės laiką, o tai padeda pasirinkti grojaraštį tiksliai visam pasivaikščiojimui.
Kaip rezultatas,
Pagrindinė problema dirbant su muzika buvo nežinojimas, iš kur gauti mp3 failus, nereikalaujant, kad vartotojas turėtų paskyrą bet kurioje paslaugoje. Buvo nuspręsta paprašyti vartotojo muzikos (UserMusic režimas). Tai sukuria naują problemą: ne visi turi galimybę atsisiųsti takelius. Vienas iš sprendimų yra sukurti saugyklą su muzika iš vartotojų (BotMusic režimas) – iš jos galite generuoti muziką nepriklausomai nuo paslaugų.
Nors ir netobulai, užduotį atlikome: gavome aplikaciją, kurią norėčiau panaudoti. Apskritai tai labai šaunu: prieš tris dienas turėjai tik idėją, o ne minties, kaip tiksliai ją įgyvendinti, bet dabar yra veikiantis sprendimas. Šios trys dienos man buvo labai svarbios, nebebijau sugalvoti tai, ko įgyvendinti neturiu pakankamai žinių, būti komandos lyderiu buvo neįtikėtinai įdomu, ir aš susipažinau su nuostabiais vaikinais, kurie prisijungė prie mano komandos. geriau!
Skysta demokratija
Idėjos autorius
Stanislavas Sičevas
Rikiuotė
Stanislav Sychev – komandos vadovas, duomenų bazė
Nikolajus Izyumovas – boto sąsaja
Antonas Ryabushevas – backend
Įvairiose grupėse dažnai reikia priimti sprendimą arba balsuoti. Paprastai tokiais atvejais jie griebiasi
Kad išspręstų abiejų sistemų problemas, Brianas Fordas pasiūlė šią koncepciją
Likvidios demokratijos panaudojimo pavyzdžių galima rasti politikoje, ir mes norėjome įgyvendinti panašią idėją kasdieniam naudojimui įvairiose žmonių grupėse. Kitame DevDays hakatone nusprendėme parašyti Telegram botą, skirtą balsavimui pagal likvidžios demokratijos principus. Tuo pačiu norėjau išvengti su tokiais botais įprastos problemos – bendro pokalbio užkimšimo žinutėmis iš boto. Sprendimas – į asmeninį pokalbį įtraukti kuo daugiau funkcionalumo.
Norėdami sukurti šį robotą, naudojome
Žinoma, trys dienos yra trumpas laikas, todėl hakatono metu idėją įgyvendinome iki prototipo lygio. Dėl to sukūrėme robotą, kuris į bendrą pokalbį rašo tik informaciją apie balsavimo pradžią ir anoniminius jo rezultatus. Galimybė balsuoti ir sudaryti apklausą įgyvendinama per asmeninį susirašinėjimą su robotu. Norėdami balsuoti, įveskite komandą, kuri rodo problemų, į kurias reikia atkreipti dėmesį, sąrašą. Asmeniniame susirašinėjime galite pamatyti delegatų sąrašą ir ankstesnius jų balsus, taip pat suteikti jiems savo balsą viena iš temų.
Buvo įdomu dirbti su projektu, iki vidurnakčio išbuvome universitete. Manome, kad tai puikus būdas pailsėti nuo studijų, nors ir labai vargina. Tai buvo maloni patirtis dirbti glaudžioje komandoje.
PS. Jau vyksta registracija į kitų mokslo metų magistrantūros programas
Šaltinis: www.habr.com