Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъ

Ба наздикй мо гуфт дар бораи барномаи магистрии корпоративии JetBrains ва Донишгоҳи ITMO «Ташаккули нармафзор / Муҳандисии нармафзор». Мо ҳама хоҳишмандонро ба рӯзи кушоди рӯзи душанбе, 29 апрел даъват мекунем. Мо ба шумо дар бораи бартариҳои барномаи магистрии худ нақл мекунем, ки мо ба донишҷӯён чӣ мукофотҳо пешниҳод мекунем ва дар иваз чӣ талаб мекунем. Илова бар ин, мо ба саволҳои меҳмонони худ ҳатман ҷавоб хоҳем дод.

Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъРӯзи дарҳои кушод дар офиси JetBrains дар Маркази тиҷоратии Times, ки дар он донишҷӯёни магистрҳои мо таҳсил мекунанд, баргузор мешавад. Оғоз соати 17:00. Шумо метавонед ҳама тафсилотро дар вебсайт пайдо кунед ва барои ширкат дар ин чорабинӣ сабти ном кунед mse.itmo.ru. Биёед ва пушаймон нахоҳед шуд!

Яке аз ҷузъҳои асосии барнома амалия мебошад. Донишҷӯён бисёр чизҳоро доранд: вазифаи хонагии ҳафта, лоиҳаҳои семестр ва ҳакатонҳо. Ба шарофати фарогирии пурра ба методология ва технологияҳои муосири рушд дар давоми таҳсил, хатмкунандагон ба равандҳои кории ширкатҳои бузурги ТИ зуд ворид мешаванд.

Дар ин мақола мо мехоҳем дар бораи хакатонҳои DevDays, ки ҳар шаш моҳ баргузор мешаванд, муфассалтар сӯҳбат кунем. Қоидаҳо оддӣ аст: дастаҳои 3-4 нафарӣ ҷамъ меоянд ва дар давоми се рӯз донишҷӯён идеяҳои худро ба ҳаёт меоранд. Аз ин чӣ рӯй дода метавонад? Қисми аввали ҳикояҳоро дар бораи лоиҳаҳои ҳакатонии ин семестр аз худи донишҷӯён хонед :)

Рӯзнома бо тавсияҳои филм

Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъ

Муаллиф фикри
Иван Илчук
Сафорои
Иван Илчук - таҳлили сюжети филм, сервер
Владислав Кораблинов - таҳияи моделҳо барои муқоисаи наздикии сабти рӯзнома ва сюжети филм
Дмитрий Вальчук - UI
Никита Винокуров – UI, дизайн

Ҳадафи лоиҳаи мо навиштани замимаи мизи корӣ - рӯзномае буд, ки дар асоси сабтҳои он ба корбар филмҳоро тавсия диҳад.

Ин ақида ба ман замоне пайдо шуд, ки дар роҳ ба донишгоҳ мерафтам ва дар бораи мушкилоти худ фикр мекардам. «Одам бо кадом мушкилоте, ки бо кадом мушкилие дучор мешавад, аллакай дар ин бора ягон нависандаи классик навиштааст», — фикр кардам. "Ва азбаски касе онро навишт, ин маънои онро дорад, ки касе онро аллакай сабт кардааст." Ҳамин тавр, хоҳиши тамошои филм дар бораи шахсе, ки бо ҳамон азоби рӯҳӣ гирифтор аст, табиист.

Аён аст, ки намудҳои гуногуни рӯзномаҳои алоҳида ва хидматҳои тавсияҳои алоҳида мавҷуданд (аммо одатан тавсияҳо ба он чизе ки шахс қаблан маъқул буд, асос ёфтааст). Аслан, ин лоиҳа бо ҷустуҷӯи филм аз рӯи нуктаҳои асосӣ чизи умумӣ дорад, аммо ба ҳар ҳол, пеш аз ҳама, барномаи мо вазифаи рӯзномаро таъмин мекунад.

Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъМо инро чй тавр ба амал овардем? Вақте, ки шумо тугмаи ҷодугарро пахш мекунед, рӯзнома воридотро ба сервер мефиристад, ки дар он филм дар асоси тавсифи аз Википедия гирифташуда интихоб карда мешавад. Пешниҳоди мо дар Electron сохта шудааст (мо онро истифода мебарем, на вебсайт, зеро мо дар аввал тасмим гирифтем, ки маълумоти корбарро на дар сервер, балки ба таври маҳаллӣ дар компютер нигоҳ дорем) ва худи сервер ва системаи тавсиявӣ дар Python сохта шудаанд: TF-ҳо буданд аз тавсифи векторҳои IDF, ки барои наздикӣ ба вектори сабти рӯзнома муқоиса карда шудаанд, ба даст оварда шудаанд.

Як узви даста танҳо дар модел кор мекард, дигараш пурра дар фронт кор мекард (аввал бо як узви сеюм, ки баъдтар ба озмоиш гузашт). Ман бо таҳлили сюжетҳои филм аз Википедия ва сервер машғул будам.

Қадам ба қадам мо ба натиҷа наздик шудем ва як қатор мушкилотро бартараф кардем, аз он ки модел дар аввал миқдори зиёди RAM талаб мекард ва бо мушкилии интиқоли маълумот ба сервер хотима ёфт.

Ҳоло, барои пайдо кардани филм барои шом, ба шумо саъю кӯшиши зиёд лозим нест: натиҷаи кори серӯзаи мо як барномаи мизи корӣ ва сервер мебошад, ки корбар тавассути https дастрасӣ пайдо мекунад ва дар посух интихоби 5 филмро бо тавсифи мухтасар ва плакат.

Таассуроти ман дар бораи лоиҳа хеле мусбӣ аст: кор аз субҳи барвақт то бевактии шаб ҷолиб буд ва аризаи натиҷавӣ давра ба давра натиҷаҳои хеле хандоварро дар услуби "Шаби бехоб" барои сабти рӯзнома дар бораи корҳои хонагӣ дар донишгоҳ ё филм ба вуҷуд меорад. дар бораи рузи аввали тахеил барои хикоя дар бораи рузи аввали дар кафедра.

Пайвандҳои дахлдор, насбкунандагон ва ғайраро пайдо кардан мумкин аст дар ин ҷо.

Генератори масир

Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъМуаллиф фикри
Артемьева Ирина
Сафорои
Артемьева Ирина — сардори бригада, дои асосй
Гордеева Людмила — мусикй
Платонов Владислав — маршрутхо

Ба ман сайру гашт дар атрофи шаҳр хеле маъқул аст: ба биноҳо, одамон нигоҳ кардан, дар бораи таърих фикр кардан. Аммо, хатто хангоми иваз кардани чои истикомат хам дер ё зуд бо масъалаи интихоби маршрут дучор меоям: хамаи он чиро, ки ба фикрам омада буд, анчом додам. Чунин аст идеяи автоматикунонии тавлиди хатсайрҳо пайдо шуд: шумо нуқтаи оғоз ва дарозии масирро нишон медиҳед ва барнома ба шумо имкон медиҳад. Сайру гаштҳо метавонанд тӯлонӣ бошанд, аз ин рӯ, рушди мантиқии идея ба назар чунин менамояд, ки қобилияти нишон додани нуқтаҳои мобайнӣ барои «ист» аст, ки дар он шумо метавонед хӯрокхӯрӣ ва истироҳат кунед. Сохаи дигари тараккиёт мусикй буд. Қадам ба назди мусиқӣ ҳамеша шавқовартар аст, аз ин рӯ илова кардани қобилияти интихоби рӯйхати навозиш дар асоси масири тавлидшуда хуб мебуд.

Дар байни замимахои мавчуда чунин роххоро ёфтан мум-кин набуд. Наздиктарин аналогҳо ҳама гуна банақшагирии масир мебошанд: Google Maps, 2GIS ва ғайра.

Дар телефони худ доштани чунин барнома қулайтар аст, аз ин рӯ истифодаи Telegram як варианти хуб буд. Он ба шумо имкон медиҳад, ки харитаҳоро намоиш диҳед ва мусиқӣ бозӣ кунед ва шумо метавонед ҳамаи инро тавассути навиштани бот идора кунед. Кори асосӣ бо харитаҳо бо истифода аз Google Map API анҷом дода шуд. Python якҷоя кардани ҳарду технологияро осон мекунад.

Дар даста се нафар буданд, бинобар ин, супориш ба ду зервазифаи такрорнашаванда (кор бо харита ва кор бо мусиқӣ) тақсим карда шуд, то бачаҳо мустақилона кор карда тавонанд ва ман ҷамъбасти натиҷаҳоро ба ӯҳда гирифтам.

Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъҲеҷ кадоме аз мо ҳеҷ гоҳ бо API-и Google Map ё ботҳои навишташудаи Telegram кор накарда будем, аз ин рӯ мушкили асосӣ миқдори вақти барои татбиқи лоиҳа ҷудошуда буд: фаҳмидани чизе ҳамеша аз иҷрои коре, ки шумо хуб медонед, вақти зиёдтарро мегирад. Интихоби API боти Telegram низ душвор буд: аз сабаби басташавӣ, на ҳама кор мекунанд ва ман маҷбур будам, ки ҳама чизро танзим кунам.

Алохида кайд кардан лозим аст, ки масъалаи сохтани маршрутхо чй тавр хал карда шудааст. Сохтани масир байни ду макон осон аст, аммо шумо ба корбар чӣ пешниҳод карда метавонед, агар танҳо дарозии масир маълум бошад? Бигзор корбар 10 километрро пиёда тай кардан мехоҳад. Нуқтае дар самти ихтиёрӣ интихоб карда мешавад, ки масофаи он дар хати рост 10 километрро ташкил медиҳад ва пас аз он ба ин нуқта бо роҳҳои воқеӣ маршрут сохта мешавад. Эҳтимол, он рост нахоҳад буд, бинобар ин мо онро то 10 километри муайяншуда кӯтоҳ мекунем. Имкониятҳои зиёде барои чунин хатсайрҳо мавҷуданд - мо генератори воқеии масир гирифтем!

Дар аввал ман мехостам, ки харитаро ба минтақаҳои мувофиқи минтақаҳои сабз: соҳилҳо, ҳавлиҳо, кӯчаҳо тақсим кунам, то масири гуворо барои сайру гашт ва инчунин мувофиқи ин минтақаҳо мусиқӣ тавлид кунам. Аммо иҷрои ин бо истифода аз Google Map API душвор буд (мо барои ҳалли ин мушкилот вақт надоштем). Бо вуҷуди ин, сохтани хатсайрро тавассути намудҳои мушаххаси ҷойгиршавӣ (мағоза, боғ, китобхона) амалӣ кардан мумкин буд: агар маршрут аз тамоми ҷойҳои муайяншуда гузашта бошад, аммо масофаи дилхоҳро тай накарда бошад, он ба анҷом мерасад. масофаи аз ҷониби корбар муайяншуда дар самти тасодуфӣ. Google Map API инчунин ба шумо имкон медиҳад, ки вақти тахминии сафарро ҳисоб кунед, ки ба шумо дар интихоби рӯйхати навозиш маҳз барои тамоми сайру гашт кӯмак мекунад.

Дар натиҷа, насл ба вучуд оварда тавонист хатсайрҳо аз рӯи нуқтаи оғоз, масофа ва мобайнӣ; Ҳама чиз барои тасниф кардани мусиқӣ аз рӯи қисматҳои масир омода карда шуд, аммо аз сабаби набудани вақт, қарор дода шуд, ки интихоби интихоби рӯйхати навозишро танҳо ҳамчун шохаи иловагии UI тарк кунад. Ҳамин тариқ, корбар тавонист мустақилона мусиқиро барои гӯш кардан интихоб кунад.

Мушкилоти асосӣ дар кор бо мусиқӣ надонистани он буд, ки файлҳои mp3-ро аз куҷо дастрас кардан мумкин аст, бидуни талаб кардани корбар дар ҳама гуна хидматҳо. Қарор дода шуд, ки мусиқӣ аз корбар дархост карда шавад (режими UserMusic). Ин як мушкилоти навро ба вуҷуд меорад: на ҳама қобилияти зеркашии трекҳоро доранд. Як роҳи ҳалли он эҷод кардани анбори мусиқии корбарон аст (режими BotMusic) - аз он шумо метавонед новобаста аз хидматҳо мусиқӣ эҷод кунед.

Гарчанде ки комил набошад ҳам, мо вазифаро иҷро кардем: мо бо як барномае ба анҷом расидем, ки ман мехоҳам онро истифода барам. Дар маҷмӯъ, ин хеле аҷиб аст: се рӯз пеш шумо танҳо як идея доштед ва дар бораи он ки чӣ тавр амалӣ кардани он ягон фикр надоштед, аммо ҳоло як роҳи ҳалли корӣ вуҷуд дорад. Инҳо барои ман се рӯзи хеле муҳим буданд.Ман дигар наметарсам, ки чизе пайдо кунам, ки барои амалӣ кардани он дониши кофӣ надорам, роҳбари даста будан бениҳоят ҷолиб буд ва ман бо бачаҳои олиҷанобе, ки ба дастаи ман ҳамроҳ шуданд, шинос шудам. беҳтар!

Демократияи моеъ

Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъ

Муаллиф фикри
Станислав Сычев
Сафорои
Станислав Сычев — сардори бригада, база
Николай Изюмов ​​- интерфейси бот
Антон Рябушев - пуштибон

Дар доираи гурӯҳҳои гуногун, аксар вақт зарурати қабули қарор ё овоздиҳӣ вуҷуд дорад. Одатан дар чунин мавридҳо ба онҳо муроҷиат мекунанд демократияи бевоситаАммо, вақте ки гурӯҳ калон мешавад, мушкилот метавонад ба миён ояд. Масалан, шахсе дар гурӯҳ метавонад намехоҳад ба саволҳо аксар вақт ҷавоб диҳад ё ба саволҳо дар бораи баъзе мавзӯъҳо ҷавоб диҳад. Дар гурӯҳҳои калон, барои пешгирӣ кардани мушкилоте, ки онҳо ба онҳо муроҷиат мекунанд демократияи намояндагӣ, вакте ки аз байни хамаи одамон гурухи алохидаи «депутатхо» интихоб карда мешавад, ки бокимондаро аз бори интихоб озод мекунанд. Аммо чунин депутат шудан хеле душвор аст ва одаме, ки депутат мешавад, ба назари интихобкунан-дагон чунин менамуд, ки датман поквичдон ва обруманд нест.

Барои ҳалли мушкилоти ҳарду система, Брайан Форд консепсияро пешниҳод кард демократияи моеъ. Дар чунин система, ҳар кас озод аст, ки танҳо бо изҳори хоҳиши худ нақши корбари муқаррарӣ ё вакилро интихоб кунад. Ҳар як шахс метавонад мустақилона овоз диҳад ё ба вакил аз рӯи як ё якчанд масъала овоз диҳад. Вакил инчунин метавонад овоз диҳад. Илова бар ин, агар вакил дигар ба интихобкунанда мувофиқат накунад, овозро дар ҳар вақт бозхондан мумкин аст.

Намунаҳои истифодаи демократияи моеъ дар сиёсат пайдо мешаванд ва мо мехостем, ки як идеяи шабеҳро барои истифодаи ҳамарӯза дар доираи ҳама намудҳои гурӯҳҳои одамон амалӣ созем. Дар хакатони навбатии DevDays мо тасмим гирифтем, ки боти Telegram барои овоздиҳӣ тибқи принсипҳои демократияи моеъ нависем. Ҳамзамон, ман мехостам аз мушкилоти умумӣ бо чунин ботҳо канорагирӣ кунам - бастани сӯҳбати умумӣ бо паёмҳои бот. Ҳалли он аст, ки ба сӯҳбати шахсӣ ҳарчи бештар функсионалӣ ворид кунед.

Hackathon DevDays'19 (қисми 1): рӯзнома бо тавсияҳо, генератори масири пиёдагард ва демократияи моеъБарои сохтани ин бот мо истифода мебарем API аз Telegram. Барои нигоҳ доштани таърихи овоздиҳӣ ва ҳайатҳо пойгоҳи PostgreSQL интихоб карда шуд. Барои муошират бо бот сервери Flask насб карда шуд. Мо ин технологияҳоро интихоб кардем, зеро... мо аллакай дар давоми таҳсили магистрӣ бо онҳо таҷриба доштем. Кор дар се ҷузъи лоиҳа — базаи маълумотҳо, сервер ва бот дар байни аъзоёни даста бомуваффақият тақсим карда шуд.

Албатта, се рӯз як муддати кӯтоҳ аст, бинобар ин мо дар давоми ҳакатон идеяро то сатҳи прототип амалӣ кардем. Дар натиҷа, мо бот таъсис додем, ки ба чати умумӣ танҳо маълумот дар бораи ифтитоҳи овоздиҳӣ ва натиҷаҳои номаълуми онро менависад. Қобилияти овоздиҳӣ ва ташкили пурсиш тавассути мукотибаи шахсӣ бо бот амалӣ карда мешавад. Барои овоздиҳӣ фармонеро ворид кунед, ки рӯйхати масъалаҳоеро нишон медиҳад, ки таваҷҷӯҳи мустақимро талаб мекунанд. Дар мукотибаи шахсӣ шумо метавонед рӯйхати вакилон ва овозҳои қаблии онҳоро бинед, инчунин ба онҳо дар яке аз мавзӯъҳо овоз диҳед.

Видео бо намунаи кор.

Кор кардан дар лоида шавковар буд, мо то нисфи шаб дар университет мондем, Фикр мекунем, ки ин як василаи олиест барои танаффус аз хондан, гарчанде ки ин хеле хастакунанда аст. Ин як таҷрибаи гуворо буд, ки дар як дастаи муттаҳид кор кунам.

PS. Дохилшавӣ ба барномаҳои магистрӣ барои соли хониши оянда аллакай оғоз шудааст кушодан. Ҳоло ҳамроҳ шавед!

Манбаъ: www.habr.com

Илова Эзоҳ