Äskettäin me
Avointen ovien päivä pidetään JetBrainsin toimistolla Times Business Centerissä, jossa opiskelevat maisterimme. Alkaa klo 17. Voit tarkistaa kaikki tiedot ja ilmoittautua tapahtumaan verkkosivuilla
Yksi ohjelman pääkomponenteista on harjoittelu. Opiskelijoilla on sitä paljon: viikoittaisia läksyjä, lukukausiprojekteja ja hackathoneja. Täydellisen uppoamisen ansiosta nykyaikaisiin kehitysmenetelmiin ja teknologioihin opintojensa aikana valmistuneet integroituvat nopeasti suurten IT-yritysten työprosesseihin.
Tässä postauksessa haluamme puhua tarkemmin DevDays-hackathoneista, joita järjestetään kuuden kuukauden välein. Säännöt ovat yksinkertaiset: 3-4 hengen tiimit kokoontuvat ja kolmen päivän ajan opiskelijat toteuttavat omia ideoitaan. Mitä tästä mahtaa tulla? Lue ensimmäinen osa tarinoita tämän lukukauden hackathon-projekteista opiskelijoilta itseltään :)
Päiväkirja elokuvasuosituksista
Idean kirjoittaja
Ivan Iltšuk
Joukkueen kokoonpano
Ivan Ilchuk – elokuvan juonen jäsentäminen, palvelin
Vladislav Korablinov – mallien kehittäminen päiväkirjamerkinnän läheisyyden ja elokuvan juonen vertaamiseen
Dmitry Valchuk – käyttöliittymä
Nikita Vinokurov – käyttöliittymä, suunnittelu
Projektimme tavoitteena oli kirjoittaa työpöytäsovellus - päiväkirja, joka suosittelisi elokuvia käyttäjälle siinä olevien merkintöjen perusteella.
Tämä ajatus tuli minulle, kun olin matkalla yliopistoon ja mietin ongelmiani. "Mitä tahansa ongelmaa ihminen kohtaakin, joku klassikkokirjailija on jo kirjoittanut siitä", ajattelin. "Ja koska joku kirjoitti sen, se tarkoittaa, että joku on jo kuvannut sen." Joten halu katsoa elokuva henkilöstä, jolla on sama henkinen piina, ilmestyi luonnollisesti.
Erillisiä päiväkirjoja ja suosituspalveluita on tietysti monenlaisia (mutta yleensä suositukset perustuvat siihen, mistä henkilö on aiemmin pitänyt). Periaatteessa tällä projektilla on jotain yhteistä elokuvan etsimisen kanssa avainpisteiden perusteella, mutta ennen kaikkea sovelluksemme tarjoaa kuitenkin päiväkirjan toiminnallisuuden.
Miten toteutimme tämän? Kun painat taikapainiketta, päiväkirja lähettää merkinnän palvelimelle, jossa elokuva valitaan Wikipediasta otetun kuvauksen perusteella. Käyttöliittymämme tehtiin Electronilla (käytämme sitä, emme verkkosivustoa, koska päätimme alun perin tallentaa käyttäjätietoja ei palvelimelle, vaan paikallisesti tietokoneelle), ja palvelin ja itse suositusjärjestelmä tehtiin Pythonissa: TF:t olivat saatu kuvauksista -IDF-vektorit, joita verrattiin läheisyyden suhteen päiväkirjakirjoitusvektoriin.
Yksi tiimin jäsen työskenteli vain mallin parissa, toinen kokonaan käyttöliittymässä (alun perin yhdessä kolmannen jäsenen kanssa, joka myöhemmin siirtyi testaamaan). Olin mukana jäsentämässä elokuvajuttuja Wikipediasta ja palvelimelta.
Askel askeleelta pääsimme lähemmäksi tulosta, voittamalla useita ongelmia, alkaen siitä, että malli vaati alun perin paljon RAM-muistia, päättyen tietojen siirtämisen palvelimelle vaikeuteen.
Nyt illan elokuvan löytäminen ei vaadi paljoa vaivaa: kolmen päivän työmme tuloksena on työpöytäsovellus ja palvelin, joihin käyttäjä pääsee https:n kautta ja saa vastauksena valikoiman 5 elokuvaa lyhyt kuvaus ja juliste.
Minun vaikutelmani projektista ovat erittäin positiiviset: työ oli mukaansatempaavaa varhaisesta aamusta myöhään iltaan, ja tuloksena oleva sovellus tuottaa ajoittain erittäin hauskoja tuloksia "Uneton yö" tyyliin yliopiston kotitehtäviä tai elokuvaa varten. ensimmäisestä koulupäivästä tarinan ensimmäisestä päivästä osastolla.
Asiaankuuluvat linkit, asentajat jne. löytyvät
Reittigeneraattori
Idean kirjoittaja
Artemjeva Irina
Joukkueen kokoonpano
Artemjeva Irina – joukkueen johto, pääsilmukka
Gordeeva Ljudmila – musiikki
Platonov Vladislav – reitit
Tykkään kovasti kävellä kaupungissa: katsella rakennuksia, ihmisiä, ajatella historiaa. Mutta myös asuinpaikkaa vaihtaessani kohtaan ennemmin tai myöhemmin reitin valinnan ongelman: olen suorittanut kaikki, mitä olen ajatellut. Näin syntyi ajatus reittien luomisen automatisoinnista: ilmoitat lähtökohdan ja reitin pituuden, ja ohjelma antaa sinulle vaihtoehdon. Kävelymatkat voivat olla pitkiä, joten idean looginen kehitys näyttää lisäävän kyvyn osoittaa välipisteitä "pysähdystä", jossa voit syödä välipalaa ja levätä. Toinen kehityssuunta oli musiikki. Musiikin tahtiin käveleminen on aina hauskempaa, joten olisi hienoa lisätä mahdollisuus valita soittolista luodun reitin perusteella.
Tällaisia ratkaisuja ei ollut mahdollista löytää olemassa olevien sovellusten joukosta. Lähimmät analogit ovat kaikki reittisuunnittelijat: Google Maps, 2GIS jne.
On kätevintä, että puhelimessa on tällainen sovellus, joten Telegramin käyttö oli hyvä vaihtoehto. Sen avulla voit näyttää karttoja ja toistaa musiikkia, ja voit hallita kaikkea tätä kirjoittamalla botin. Pääasiallinen työ karttojen kanssa tehtiin Google Map API:lla. Pythonilla on helppo yhdistää molemmat tekniikat.
Ryhmässä oli kolme henkilöä, joten tehtävä jaettiin kahteen ei-päällekkäiseen osatehtävään (karttojen kanssa työskentely ja musiikin kanssa työskentely), jotta kaverit voisivat työskennellä itsenäisesti, ja otin tulokset yhdistämisen.
Kukaan meistä ei ollut koskaan työskennellyt Google Map API:n tai kirjoitettujen Telegram-bottien kanssa, joten suurin ongelma oli projektin toteuttamiseen varattu aika: jonkin asian ymmärtäminen vie aina enemmän aikaa kuin asian tekeminen, jonka osaat hyvin. Myös Telegram-botin API:n valitseminen oli vaikeaa: eston vuoksi ne eivät kaikki toimi ja minun piti ponnistella kaiken asettamisen kanssa.
On syytä mainita erikseen, kuinka reittien muodostusongelma ratkaistiin. Reitin rakentaminen kahden paikan välille on helppoa, mutta mitä voit tarjota käyttäjälle, jos vain reitin pituus on tiedossa? Anna käyttäjän haluta kävellä 10 kilometriä. Valitaan mielivaltaiseen suuntaan piste, johon suora etäisyys on 10 kilometriä, minkä jälkeen tähän pisteeseen rakennetaan reitti oikeita teitä pitkin. Todennäköisesti se ei ole suora, joten lyhennämme sitä määritettyyn 10 kilometriin. Tällaisille reiteille on paljon vaihtoehtoja - saimme oikean reittigeneraattorin!
Alunperin halusin jakaa kartan viheralueita vastaaviksi alueiksi: penkereille, pihoille, kaduille, jotta saadaan miellyttävin kävelyreitti ja myös musiikki syntyy näiden alueiden mukaisesti. Mutta tämän tekeminen Google Map API:n avulla osoittautui vaikeaksi (meillä ei ollut aikaa ratkaista tätä ongelmaa). Reitin rakentaminen oli kuitenkin mahdollista toteuttaa tietyntyyppisten paikkojen (kauppa, puisto, kirjasto) kautta: jos reitti kulki kaikki määritetyt paikat, mutta haluttua matkaa ei ole vielä kuljettu, se valmistuu käyttäjän määrittämä etäisyys satunnaisessa suunnassa. Google Map API antaa sinun myös laskea arvioidun matka-ajan, mikä auttaa sinua valitsemaan soittolistan tarkalleen koko kävelylle.
Tämän seurauksena
Suurin ongelma musiikin parissa työskennellessä oli se, että ei tiennyt mistä saada mp3-tiedostoja ilman, että käyttäjältä vaadittiin tiliä missään palvelussa. Päätettiin pyytää musiikkia käyttäjältä (UserMusic-tila). Tämä luo uuden ongelman: kaikilla ei ole mahdollisuutta ladata kappaleita. Yksi ratkaisu on luoda arkisto käyttäjien musiikista (BotMusic-tila) - siitä voit luoda musiikkia palveluista riippumatta.
Vaikka ei täydellinen, suoritimme tehtävän: päädyimme sovellukseen, jota haluaisin käyttää. Yleisesti ottaen tämä on erittäin siistiä: kolme päivää sitten sinulla oli vain idea etkä yhtään ajatusta siitä, kuinka se tarkalleen toteutetaan, mutta nyt on toimiva ratkaisu. Nämä olivat minulle erittäin tärkeitä kolme päivää. En enää pelkää keksiä jotain, jonka toteuttamiseen minulla ei ole tarpeeksi tietoa, tiiminvetäjänä toimiminen oli uskomattoman mielenkiintoista ja tutustuin ihaniin tyyppeihin, jotka liittyivät tiimiini paremmin!
Nestemäinen demokratia
Idean kirjoittaja
Stanislav Sychev
Joukkueen kokoonpano
Stanislav Sychev – tiiminvetäjä, tietokanta
Nikolay Izyumov – botin käyttöliittymä
Anton Ryabushev – taustaohjelma
Eri ryhmien sisällä on usein tarve tehdä päätös tai äänestää. Yleensä tällaisissa tapauksissa he turvautuvat
Molempien järjestelmien ongelmien ratkaisemiseksi Brian Ford ehdotti konseptia
Esimerkkejä nestemäisen demokratian käytöstä löytyy politiikasta, ja halusimme toteuttaa samanlaisen idean jokapäiväiseen käyttöön kaikenlaisissa ihmisryhmissä. Seuraavassa DevDays-hackathonissa päätimme kirjoittaa Telegram-botin äänestämistä varten nesteen demokratian periaatteiden mukaisesti. Samalla halusin välttää tällaisten botien yleisen ongelman - yleisen chatin tukkimisen botin viesteillä. Ratkaisu on tuoda mahdollisimman paljon toimintoja henkilökohtaiseen keskusteluun.
Käytimme tämän botin luomiseen
Kolme päivää on tietysti lyhyt aika, joten hackathonin aikana toteutimme idean prototyyppitasolle asti. Tämän seurauksena loimme botin, joka kirjoittaa yleiseen chattiin vain tiedot äänestyksen alkamisesta ja sen anonyymeistä tuloksista. Mahdollisuus äänestää ja luoda kysely toteutetaan henkilökohtaisella kirjeenvaihdolla botin kanssa. Äänestä antamalla komento, joka näyttää luettelon ongelmista, jotka vaativat suoraa huomiota. Henkilökohtaisessa kirjeenvaihdossa voit nähdä edustajaluettelon ja heidän aikaisemmat äänensä sekä antaa heille äänesi jostakin aiheesta.
Oli mielenkiintoista työskennellä projektin parissa, yövyimme yliopistolla puoleen yöhön asti, tämä on mielestämme hyvä tapa pitää tauko opiskelusta, vaikka se onkin erittäin uuvuttavaa. Oli mukava kokemus työskennellä tiiviissä tiimissä.
PS. Ilmoittautuminen seuraavan lukuvuoden maisteriohjelmiin on jo
Lähde: www.habr.com