Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræði

Nýlega við sagt um fyrirtækjameistaranám JetBrains og ITMO háskólans „hugbúnaðarþróun / hugbúnaðarverkfræði“. Hvetjum alla áhugasama á opinn dag mánudaginn 29. apríl. Við munum segja þér frá kostum meistaranámsins okkar, hvaða bónusa við bjóðum nemendum og hvað við krefjumst í staðinn. Að auki munum við örugglega svara spurningum gesta okkar.

Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræðiOpi dagurinn verður haldinn á skrifstofu JetBrains í Times Business Center þar sem meistaranemar okkar stunda nám. Hefst klukkan 17:00. Hægt er að kynna sér allar upplýsingar og skrá sig á viðburðinn á heimasíðunni mse.itmo.ru. Komdu og þú munt ekki sjá eftir því!

Einn af meginþáttum námsins er æfing. Nemendur hafa mikið af því: vikuleg heimaverkefni, misserisverkefni og hackathon. Þökk sé fullkominni niðurdýfingu í nútíma þróunaraðferðafræði og tækni meðan á námi stendur, aðlagast útskriftarnemar fljótt vinnuferlum stórra upplýsingatæknifyrirtækja.

Í þessari færslu viljum við tala nánar um DevDays hackathons, sem fara fram á sex mánaða fresti. Reglurnar eru einfaldar: 3-4 manna teymi safnast saman og í þrjá daga koma nemendur eigin hugmyndum í framkvæmd. Hvað gæti komið út úr þessu? Lestu fyrri hluta sagna um hackathon verkefnin á þessari önn frá nemendum sjálfum :)

Dagbók með ráðleggingum um kvikmyndir

Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræði

Höfundur hugmyndarinnar
Ivan Ilchuk
Uppröðun
Ivan Ilchuk – þáttun kvikmyndaþráðar, þjónn
Vladislav Korablinov - þróun líkana til að bera saman nálægð dagbókarfærslu og söguþræði kvikmyndar
Dmitry Valchuk - HÍ
Nikita Vinokurov – HÍ, hönnun

Markmið verkefnisins okkar var að skrifa skrifborðsforrit - dagbók sem myndi mæla með kvikmyndum fyrir notandann út frá færslunum í því.

Þessi hugmynd kviknaði þegar ég var á leið í háskóla og hugsaði um vandamálin mín. „Hvaða vandamál sem einstaklingur stendur frammi fyrir, hefur einhver klassískur rithöfundur þegar skrifað um það,“ hugsaði ég. „Og þar sem einhver skrifaði það þýðir það að einhver hefur þegar tekið það upp. Svo löngunin til að horfa á kvikmynd um manneskju með sömu andlegu kvalirnar birtist eðlilega.

Augljóslega er til mikið úrval af aðskildum dagbókum og aðskildum meðmælaþjónustu (en venjulega eru ráðleggingarnar byggðar á því sem viðkomandi líkaði áður). Í grundvallaratriðum á þetta verkefni eitthvað sameiginlegt með því að leita að kvikmynd eftir lykilatriðum, en samt, fyrst af öllu, býður forritið okkar upp á virkni dagbókar.

Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræðiHvernig framkvæmdum við þetta? Þegar ýtt er á töfrahnappinn sendir dagbókin færslu á netþjóninn þar sem myndin er valin út frá lýsingunni sem tekin er af Wikipedia. Framhliðin okkar var gerð í Electron (við notum það, ekki vefsíðuna, vegna þess að við ákváðum upphaflega að geyma notendagögn ekki á þjóninum, heldur á staðnum á tölvunni), og þjónninn og meðmælakerfið sjálft var gert í Python: TFs voru fengin úr lýsingunum -IDF vigurum sem bornir voru saman með tilliti til nálægðar við dagbókarfærsluferjuna.

Einn liðsmaður vann aðeins á líkaninu, hinn vann algjörlega á framhliðinni (upphaflega ásamt þriðja meðlimnum, sem síðar skipti yfir í prófun). Ég tók þátt í að greina kvikmyndasögur frá Wikipedia og þjóninum.

Skref fyrir skref komumst við nær niðurstöðunni, sigruðum við fjölda vandamála, sem byrjaði á því að líkanið þurfti upphaflega mikið af vinnsluminni og endaði með erfiðleikum við að flytja gögn á netþjóninn.

Núna, til að finna kvikmynd fyrir kvöldið, þarftu ekki mikla fyrirhöfn: Afrakstur þriggja daga vinnu okkar er skrifborðsforrit og netþjónn sem notandinn opnar í gegnum https og fær sem svar úrval af 5 kvikmyndum með stutt lýsing og veggspjald.

Hughrif mín af verkefninu eru mjög jákvæð: verkið var grípandi frá því snemma morguns til seint á kvöldin, og umsóknin sem útkomin skilar af og til einstaklega fyndnar niðurstöður í stíl við „Svefnlaus nótt“ fyrir dagbókarfærslu um heimanám í háskólanum eða kvikmynd um fyrsta skóladaginn fyrir frétt um fyrsta daginn á deildinni.

Viðeigandi tengla, uppsetningarforrit osfrv hér.

Leiðarrafall

Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræðiHöfundur hugmyndarinnar
Artemyeva Irina
Uppröðun
Artemyeva Irina – liðsforysta, aðallykkja
Gordeeva Lyudmila - tónlist
Platonov Vladislav - leiðir

Mér finnst mjög gaman að ganga um borgina: skoða byggingar, fólk, hugsa um söguna. En jafnvel þegar ég breyti um búsetu, stend ég fyrr eða síðar frammi fyrir því vandamáli að velja leið: Ég hef lokið öllum þeim sem ég gæti hugsað mér. Þannig kviknaði hugmyndin um að gera sjálfvirka gerð leiða: þú gefur til kynna upphafsstað og lengd leiðarinnar og forritið gefur þér möguleika. Gönguferðir geta verið langar, svo rökrétt þróun hugmyndarinnar virðist vera að bæta við getu til að gefa til kynna millistig fyrir „stopp“ þar sem þú gætir fengið þér snarl og hvílt þig. Önnur grein þróunar var tónlist. Það er alltaf skemmtilegra að ganga til tónlistar, svo það væri frábært að bæta við möguleikanum á að velja lagalista sem byggir á myndinni leið.

Ekki var hægt að finna slíkar lausnir meðal fyrirliggjandi umsókna. Næstu hliðstæður eru allir leiðaskipuleggjendur: Google Maps, 2GIS osfrv.

Það er þægilegast að hafa slíkt forrit í símanum þínum, svo það var góður kostur að nota Telegram. Það gerir þér kleift að sýna kort og spila tónlist og þú getur stjórnað þessu öllu með því að skrifa bot. Aðalvinnan með kortin var unnin með Google Map API. Python gerir það auðvelt að sameina báðar tæknina.

Það voru þrír í teyminu þannig að verkefninu var skipt í tvö undirverkefni sem ekki skarast (vinna með kort og vinna með tónlist) svo strákarnir gætu unnið sjálfstætt og ég tók að mér að sameina niðurstöðurnar.

Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræðiEkkert okkar hafði nokkru sinni unnið með Google Map API eða skrifað Telegram vélmenni, þannig að aðalvandamálið var sá tími sem var úthlutað til að framkvæma verkefnið: að skilja eitthvað tekur alltaf lengri tíma en að gera eitthvað sem þú þekkir vel. Það var líka erfitt að velja Telegram bot API: vegna blokkunar virka þau ekki öll og ég þurfti að berjast við að setja allt upp.

Rétt er að nefna sérstaklega hvernig vandamálið við að búa til leiðir var leyst. Það er auðvelt að búa til leið á milli tveggja staða, en hvað geturðu boðið notandanum ef aðeins er vitað um lengd leiðarinnar? Leyfðu notandanum að vilja ganga 10 kílómetra. Punktur er valinn í handahófskennda átt, fjarlægðin til hans í beinni línu er 10 kílómetrar, eftir það er lögð leið að þessum stað eftir raunverulegum vegum. Líklegast verður það ekki beint þannig að við styttum það niður í tilgreinda 10 kílómetra. Það eru margir möguleikar fyrir slíkar leiðir - við fengum alvöru leiðarvél!

Upphaflega vildi ég skipta kortinu í svæði sem samsvara grænum svæðum: fyllingum, húsgörðum, götum, til að fá sem skemmtilegasta gönguleið, og einnig búa til tónlist í samræmi við þessi svæði. En að gera þetta með því að nota Google Map API reyndist erfitt (við höfðum ekki tíma til að leysa þetta vandamál). Hins vegar var hægt að útfæra gerð leiðar í gegnum ákveðnar tegundir staðsetningar (verslun, garður, bókasafn): ef leiðin lá um alla tilgreinda staði, en æskileg vegalengd hefur ekki verið farin, er henni lokið að a. notendatilgreind fjarlægð í handahófskennda átt. Google Map API gerir þér einnig kleift að reikna út áætlaðan ferðatíma, sem hjálpar þér að velja lagalista nákvæmlega fyrir alla gönguna.

Þar af leiðandi, tókst að búa til kynslóð leiðir eftir upphafsstað, fjarlægð og millipunktum; allt var undirbúið til að flokka tónlist eftir köflum á leiðinni en vegna tímaskorts var ákveðið að láta þann valmöguleika að velja lagalista einfaldlega sem auka HÍ útibú. Þannig gat notandinn sjálfstætt valið tónlistina til að hlusta á.

Helsta vandamálið við að vinna með tónlist var að vita ekki hvaðan á að fá mp3 skrár án þess að krefjast þess að notandinn hafi reikning á hvaða þjónustu sem er. Ákveðið var að óska ​​eftir tónlist frá notandanum (UserMusic mode). Þetta skapar nýtt vandamál: ekki allir hafa getu til að hlaða niður lögum. Ein lausn er að búa til geymslu með tónlist frá notendum (BotMusic mode) - úr henni er hægt að búa til tónlist óháð þjónustu.

Þó að það hafi ekki verið fullkomið, kláruðum við verkefnið: við enduðum með forrit sem ég myndi vilja nota. Almennt séð er þetta mjög flott: fyrir þremur dögum hafðirðu aðeins hugmynd og ekki eina hugmynd um hvernig ætti að útfæra hana nákvæmlega, en nú er komin vinnandi lausn. Þetta voru mjög mikilvægir þrír dagar fyrir mig. Ég er ekki lengur hræddur við að koma með eitthvað sem ég hef ekki nægilega þekkingu til að framkvæma, það að vera liðsstjóri var ótrúlega áhugavert og ég kynntist frábæru strákunum sem bættust í liðið mitt. betra!

Lauslegt lýðræði

Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræði

Höfundur hugmyndarinnar
Stanislav Sychev
Uppröðun
Stanislav Sychev – liðsstjóri, gagnagrunnur
Nikolay Izyumov – botnviðmót
Anton Ryabushev – bakhlið

Innan ólíkra hópa þarf oft að taka ákvörðun eða kjósa. Venjulega í slíkum tilfellum grípa þeir til beint lýðræðiHins vegar geta vandamál komið upp þegar hópurinn verður stór. Til dæmis gæti einstaklingur í hópi ekki viljað svara spurningum oft eða svara spurningum um ákveðin efni. Í stórum hópum, til að forðast vandamál sem þeir grípa til fulltrúalýðræði, þegar sérstakur hópur „fulltrúa“ er valinn úr hópi alls fólksins, sem losar hina undan valinu. En það er ansi erfitt að verða slíkur varaþingmaður og sá sem verður það þarf ekki endilega að vera heiðarlegur og virðulegur eins og hann sýndist kjósendum.

Til að leysa vandamál beggja kerfanna lagði Brian Ford fram hugmyndina fljótandi lýðræði. Í slíku kerfi er öllum frjálst að velja hlutverk venjulegs notanda eða fulltrúa, einfaldlega með því að láta í ljós ósk sína. Hver sem er getur kosið sjálfstætt eða greitt fulltrúa atkvæði um eitt eða fleiri mál. Fulltrúi getur einnig greitt atkvæði sínu. Ennfremur, ef fulltrúi hentar kjósandanum ekki lengur, er hægt að draga atkvæði til baka hvenær sem er.

Dæmi um notkun fljótandi lýðræðis er að finna í stjórnmálum og við vildum útfæra svipaða hugmynd til daglegra nota innan hvers kyns hópa fólks. Á næsta DevDays hackathon ákváðum við að skrifa Telegram bot til að kjósa samkvæmt meginreglum fljótandi lýðræðis. Á sama tíma vildi ég forðast algengt vandamál með slíka vélmenni - að stífla almenna spjallið með skilaboðum frá vélmenni. Lausnin er að koma sem mestri virkni inn í persónulegt samtal.

Hackathon DevDays'19 (hluti 1): dagbók með ráðleggingum, gönguleiðaframleiðanda og fljótandi lýðræðiTil að búa til þennan botn notuðum við API frá Telegram. PostgreSQL gagnagrunnur var valinn til að geyma sögu atkvæðagreiðslu og sendinefnda. Til að hafa samskipti við botmanninn var Flask þjónn settur upp. Við völdum þessa tækni vegna þess að... við höfðum þegar reynslu af samskiptum við þá meðan á meistaranámi okkar stóð. Vinnu við þrjá þætti verkefnisins - gagnagrunninum, þjóninum og botni - var dreift með góðum árangri meðal teymismeðlima.

Auðvitað eru þrír dagar stuttur tími, svo á meðan á hakkaþoninu stóð útfærðum við hugmyndina á frumgerðina. Fyrir vikið bjuggum við til vélmenni sem skrifar á almenna spjallið aðeins upplýsingar um opnun atkvæðagreiðslu og nafnlausar niðurstöður hennar. Hæfni til að kjósa og búa til skoðanakönnun er útfærð með persónulegum bréfaskiptum við lánmanninn. Til að kjósa skaltu slá inn skipun sem sýnir lista yfir málefni sem krefjast beinna athygli. Í persónulegum bréfaskiptum geturðu séð lista yfir fulltrúa og fyrri atkvæði þeirra og einnig gefið þeim atkvæði þitt um eitt af efnisatriðum.

Myndband með dæmi um vinnu.

Það var áhugavert að vinna verkefnið, við vorum í háskólanum til miðnættis.Við teljum að þetta sé frábær leið til að taka frí frá námi þó það sé mjög þreytandi. Það var ánægjuleg reynsla að vinna í samhentu teymi.

PS. Nú þegar er innritun í meistaranám fyrir næsta skólaár opinn... Gakktu til liðs við okkur!

Heimild: www.habr.com

Bæta við athugasemd