Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwida

Riċentement aħna qal dwar il-programm ta' masters korporattiv ta' JetBrains u ITMO University "Software Development / Software Engineering". Nistiednu lil kull min hu interessat għal open day nhar it-Tnejn, 29 ta’ April. Aħna se ngħidulek dwar il-vantaġġi tal-programm tal-master tagħna, liema bonusijiet noffru lill-istudenti u dak li nitolbu bi tpattija. Barra minn hekk, żgur li se nwieġbu mistoqsijiet mill-mistednin tagħna.

Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwidaL-open day se ssir fl-uffiċċju tal-JetBrains fit-Times Business Centre, fejn jistudjaw l-istudenti tal-master tagħna. Jibda fis-17:00. Tista' ssib id-dettalji kollha u tirreġistra għall-avveniment fuq il-websajt mse.itmo.ru. Ejja u ma jiddispjaċikx!

Wieħed mill-komponenti ewlenin tal-programm huwa l-prattika. L-istudenti għandhom ħafna minnu: xogħol tad-dar ta’ kull ġimgħa, proġetti ta’ semestru u hackathons. Grazzi għal immersjoni kompleta f'metodoloġiji u teknoloġiji ta 'żvilupp moderni matul l-istudji tagħhom, il-gradwati jintegraw malajr fil-proċessi tax-xogħol ta' kumpaniji kbar tal-IT.

F'din il-post irridu nitkellmu f'aktar dettall dwar il-hackathons tad-DevDays, li jsiru kull sitt xhur. Ir-regoli huma sempliċi: timijiet ta’ 3-4 persuni jinġabru u għal tlett ijiem l-istudenti jagħtu l-ħajja lill-ideat tagħhom stess. X'jista' jiġi minn dan? Aqra l-ewwel parti ta’ stejjer dwar il-proġetti tal-hackathon ta’ dan is-semestru mill-istudenti nfushom :)

Djarju b'rakkomandazzjonijiet tal-films

Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwida

Awtur tal-idea
Ivan Ilchuk
Line-up
Ivan Ilchuk – parsing tal-plott tal-films, server
Vladislav Korablinov - żvilupp ta 'mudelli biex titqabbel il-prossimità ta' dħul fid-djarju u l-plott ta 'film
Dmitry Valchuk – UI
Nikita Vinokurov – UI, disinn

L-għan tal-proġett tagħna kien li nikteb applikazzjoni tad-desktop - djarju li jirrakkomanda films lill-utent ibbażat fuq l-entrati fiha.

Din l-idea ġietni meta kont fi triqti lejn l-università u naħseb dwar il-problemi tiegħi. "Tkun xi tkun il-problema li persuna tiffaċċja, xi kittieb klassiku diġà kiteb dwarha," ħsibt. "U peress li xi ħadd kitebha, dan ifisser li xi ħadd diġà ffilmjaha." Allura x-xewqa li tara film dwar persuna bl-istess turment mentali dehret b'mod naturali.

Ovvjament, hemm varjetà wiesgħa ta 'djarji separati u servizzi ta' rakkomandazzjoni separati (iżda ġeneralment ir-rakkomandazzjonijiet huma bbażati fuq dak li l-persuna għoġob qabel). Fil-prinċipju, dan il-proġett għandu xi ħaġa komuni mat-tiftix għal film minn punti ewlenin, iżda xorta waħda, l-ewwelnett, l-applikazzjoni tagħna tipprovdi l-funzjonalità ta 'djarju.

Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwidaKif implimentajna dan? Meta tagħfas il-buttuna maġika, id-djarju jibgħat dħul lis-server, fejn il-film jintgħażel abbażi tad-deskrizzjoni meħuda mill-Wikipedija. Il-frontend tagħna sar f'Electron (nużawh, mhux il-websajt, għaliex inizjalment iddeċidejna li naħżnu d-dejta tal-utent mhux fuq is-server, iżda lokalment fuq il-kompjuter), u s-server u s-sistema ta 'rakkomandazzjoni nnifisha saru f'Python: TFs kienu miksuba mid-deskrizzjonijiet -IDF vectors li ġew imqabbla għall-prossimità mal-vettur tad-dħul tad-djarju.

Membru wieħed tat-tim ħadem biss fuq il-mudell, l-ieħor ħadem għal kollox fuq il-front-end (inizjalment flimkien ma 'membru terz, li aktar tard qalbu għall-ittestjar). Kont involut fl-analiżi tal-plots tal-films mill-Wikipedija u mis-server.

Pass pass sirna eqreb lejn ir-riżultat, u għelbu għadd ta 'problemi, ibda mill-fatt li l-mudell inizjalment kien jeħtieġ ħafna RAM, u jispiċċa bid-diffikultà li tittrasferixxi d-data lis-server.

Issa, biex issib film għal-lejla, m'għandekx bżonn ħafna sforz: ir-riżultat tax-xogħol tagħna ta 'tlett ijiem huwa applikazzjoni tad-desktop u server, li l-utent jaċċessahom permezz ta' https, li jirċievi bħala tweġiba għażla ta '5 films b' deskrizzjoni qasira u poster.

L-impressjonijiet tiegħi tal-proġett huma pożittivi ħafna: ix-xogħol kien captivating minn kmieni filgħodu sa tard bil-lejl, u l-applikazzjoni li tirriżulta perjodikament tipproduċi riżultati estremament umoristiċi fl-istil ta '"Lejl bla rqad" għal dħul ta' djarju dwar xogħol tad-dar fl-università jew film dwar l-ewwel jum tal-iskola għal storja dwar l-ewwel jum fid-dipartiment.

Jistgħu jinstabu links rilevanti, installaturi, eċċ hawn.

Ġeneratur tar-rotta

Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwidaAwtur tal-idea
Artemyeva Irina
Line-up
Artemyeva Irina – tim ewlieni, main loop
Gordeeva Lyudmila – mużika
Platonov Vladislav – rotot

Inħobb ħafna nimxi madwar il-belt: inħares lejn bini, nies, naħseb dwar l-istorja. Iżda, anke meta nibdel il-post tar-residenza tiegħi, illum jew għada niffaċċja l-problema li nagħżel rotta: lestejt dawk kollha li stajt naħseb fihom. Hekk ħarġet l-idea li tiġi awtomatizzata l-ġenerazzjoni tar-rotot: tindika l-punt tat-tluq u t-tul tar-rotta, u l-programm jagħtik għażla. Il-mixjiet jistgħu jkunu twal, għalhekk żvilupp loġiku tal-idea jidher li qed iżid l-abbiltà li tindika punti intermedji għal "waqfien", fejn jista 'jkollok snack u tistrieħ. Fergħa oħra ta 'żvilupp kienet il-mużika. Il-mixi bil-mużika huwa dejjem aktar divertenti, għalhekk ikun kbir li żżid il-ħila li tagħżel playlist ibbażata fuq rotta ġġenerata.

Ma kienx possibbli li jinstabu soluzzjonijiet bħal dawn fost l-applikazzjonijiet eżistenti. L-eqreb analogi huma kwalunkwe pjanifikaturi tar-rotot: Google Maps, 2GIS, eċċ.

Huwa l-aktar konvenjenti li jkollok applikazzjoni bħal din fuq it-telefon tiegħek, għalhekk l-użu ta 'Telegram kienet għażla tajba. Jippermettilek turi mapep u ddoqq mużika, u tista 'tikkontrolla dan kollu billi tikteb bot. Ix-xogħol ewlieni bil-mapep sar bl-użu tal-Google Map API. Python jagħmilha faċli li tgħaqqad iż-żewġ teknoloġiji.

Kien hemm tliet persuni fit-tim, għalhekk il-kompitu kien maqsum f'żewġ sub-tasks li ma jikkoinċidux (ħidma ma 'mapep u xogħol bil-mużika) sabiex il-guys ikunu jistgħu jaħdmu b'mod indipendenti, u ħadt fuqi nnifsi li ngħaqqad ir-riżultati.

Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwidaĦadd minna qatt ma ħadem mal-Google Map API jew bil-kitba tal-bots tat-Telegram, għalhekk il-problema ewlenija kienet l-ammont ta’ ħin allokat biex jiġi implimentat il-proġett: il-fehim ta’ xi ħaġa dejjem jieħu aktar ħin milli tagħmel xi ħaġa li taf sew. Kien diffiċli wkoll li tagħżel l-API tal-bot tat-Telegram: minħabba l-imblukkar, mhux kollha jaħdmu u kelli niġġieled biex nistabbilixxi kollox.

Ta’ min isemmi separatament kif ġiet solvuta l-problema tal-ġenerazzjoni tar-rotot. Huwa faċli li tibni rotta bejn żewġ postijiet, imma x'tista' toffri lill-utent jekk ikun magħruf biss it-tul tar-rotta? Ħalli l-utent irid jimxi 10 kilometri. Punt jintgħażel f'direzzjoni arbitrarja, id-distanza li għaliha f'linja dritta hija ta '10 kilometri, u wara tinbena rotta għal dan il-punt tul toroq reali. X'aktarx mhux se jkun dritta, għalhekk se nqassruh għall-10 kilometri speċifikati. Hemm ħafna għażliet għal rotot bħal dawn - sirna ġeneratur tar-rotta reali!

Inizjalment, ridt nissegmenta l-mappa f'żoni li jikkorrispondu ma 'żoni ħodor: moll, btieħi, toroq, sabiex tikseb l-aktar rotta pjaċevoli għal mixja, u wkoll niġġenera mużika skont dawn iż-żoni. Iżda li tagħmel dan bl-użu tal-Google Map API irriżulta li kien diffiċli (ma kellniex ħin biex insolvu din il-problema). Madankollu, kien possibbli li tiġi implimentata l-kostruzzjoni ta 'rotta permezz ta' tipi speċifiċi ta 'postijiet (ħanut, park, librerija): jekk ir-rotta daret madwar il-postijiet speċifikati kollha, iżda d-distanza mixtieqa għadha ma ġietx ivvjaġġata, titlesta għal distanza speċifikata mill-utent f'direzzjoni każwali. Il-Google Map API jippermettilek ukoll tikkalkula l-ħin tal-ivvjaġġar stmat, li jgħinek tagħżel playlist eżattament għall-mixja kollha.

Bħala riżultat, irnexxielhom jagħmlu ġenerazzjoni rotot skont il-punt tat-tluq, id-distanza u l-punti intermedji; kollox kien ippreparat biex jikklassifika l-mużika skont it-taqsimiet tar-rotta, iżda minħabba nuqqas ta 'ħin, ġie deċiż li titħalla l-għażla li tagħżel playlist sempliċement bħala fergħa tal-UI addizzjonali. Għalhekk, l-utent seta' jagħżel b'mod indipendenti l-mużika biex jisimgħu.

Il-problema ewlenija bil-ħidma bil-mużika kienet ma tkunx taf minn fejn tikseb fajls mp3 mingħajr ma jeħtieġ li l-utent ikollu kont fuq kwalunkwe servizz. Ġie deċiż li titlob mużika mill-utent (modalità UserMusic). Dan joħloq problema ġdida: mhux kulħadd għandu l-abbiltà li jniżżel il-binarji. Soluzzjoni waħda hija li toħloq repożitorju bil-mużika mill-utenti (mod BotMusic) - minnha tista 'tiġġenera mużika irrispettivament mis-servizzi.

Għalkemm mhux perfett, lestejna l-kompitu: spiċċajna b'applikazzjoni li nixtieq nuża. B'mod ġenerali, dan huwa jibred ħafna: tlett ijiem ilu kellek biss idea u mhux ħsieb wieħed dwar kif eżattament timplimentaha, iżda issa hemm soluzzjoni ta 'ħidma. Dawn kienu tlett ijiem importanti ħafna għalija. M'għadniex nibża' noħroġ b'xi ħaġa li m'għandix biżżejjed għarfien biex nimplimenta, li nkun mexxej ta' tim kien oerhört interessanti, u sirt naf lill-ġuvini mill-isbaħ li ngħaqdu mat-tim tiegħi aħjar!

Demokrazija Likwida

Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwida

Awtur tal-idea
Stanislav Sychev
Line-up
Stanislav Sychev – mexxej tat-tim, database
Nikolay Izyumov – bot interface
Anton Ryabushev – backend

Fi ħdan gruppi differenti, ħafna drabi jkun hemm bżonn li tittieħed deċiżjoni jew votazzjoni. Normalment f'każijiet bħal dawn jirrikorru għalihom demokrazija diretta, madankollu, meta l-grupp jikber, jistgħu jinqalgħu problemi. Pereżempju, persuna fi grupp tistaʼ ma tkunx trid twieġeb mistoqsijiet taʼ spiss jew twieġeb mistoqsijiet dwar ċerti suġġetti. Fi gruppi kbar, biex jevitaw problemi jirrikorru għalihom demokrazija rappreżentattiva, meta jintgħażel grupp separat ta’ “deputati” minn fost il-poplu kollu, li jeħles lill-bqija mill-piż tal-għażla. Iżda huwa pjuttost diffiċli li ssir tali deputat, u l-persuna li ssir waħda mhux bilfors tkun onesta u rispettabbli, kif deher lill-votanti.

Biex issolvi l-problemi taż-żewġ sistemi, Brian Ford ippropona l-kunċett demokrazija likwida. F'sistema bħal din, kulħadd huwa liberu li jagħżel ir-rwol ta 'utent regolari jew delegat, sempliċement billi jesprimi x-xewqa tiegħu. Kulħadd jista’ jivvota b’mod indipendenti jew jagħti vot lil delegat fuq kwistjoni waħda jew aktar. Delegat jista' wkoll jitfa' l-vot tiegħu. Barra minn hekk, jekk id-delegat ma jaqbilx aktar lill-votant, il-vot jista’ jiġi rtirat fi kwalunkwe ħin.

Eżempji tal-użu tad-demokrazija likwida jinsabu fil-politika, u ridna nimplimentaw idea simili għall-użu ta’ kuljum fi ħdan kull tip ta’ gruppi ta’ nies. Fil-hackathon DevDays li jmiss, iddeċidejna li niktbu Telegram bot għall-votazzjoni skont il-prinċipji tad-demokrazija likwida. Fl-istess ħin, ridt nevita problema komuni ma 'bots bħal dawn - imblukkar taċ-chat ġenerali b'messaġġi mill-bot. Is-soluzzjoni hija li ġġib kemm jista 'jkun funzjonalità f'konversazzjoni personali.

Hackathon DevDays'19 (parti 1): djarju b'rakkomandazzjonijiet, ġeneratur tar-rotta tal-mixi u demokrazija likwidaBiex noħolqu dan il-bot użajna API minn Telegram. Intgħażlet database PostgreSQL biex taħżen l-istorja tal-votazzjoni u d-delegazzjonijiet. Biex tikkomunika mal-bot, ġie installat server Flask. Għażilna dawn it-teknoloġiji għax... diġà kellna esperjenza ta’ interazzjoni magħhom matul l-istudji tal-masters tagħna. Ix-xogħol fuq it-tliet komponenti tal-proġett—id-database, is-server, u l-bot—tqassam b'suċċess fost il-membri tat-tim.

Naturalment, tlett ijiem huwa żmien qasir, għalhekk matul l-hackathon implimentajna l-idea sal-livell tal-prototip. Bħala riżultat, ħloqna bot li jikteb fuq iċ-chat ġenerali biss informazzjoni dwar il-ftuħ tal-votazzjoni u r-riżultati anonimi tiegħu. Il-kapaċità li tivvota u toħloq stħarriġ hija implimentata permezz ta 'korrispondenza personali mal-bot. Biex tivvota, daħħal kmand li juri lista ta’ kwistjonijiet li jeħtieġu attenzjoni diretta. Fil-korrispondenza personali, tista’ tara l-lista tad-delegati u l-voti preċedenti tagħhom, u tagħtihom ukoll il-vot tiegħek fuq wieħed mis-suġġetti.

Vidjow b'eżempju ta' xogħol.

Kien interessanti li naħdmu fuq il-proġett, bqajna l-università sa nofs il-lejl.Naħsbu li dan huwa mod tajjeb ħafna biex tieħu pawża mill-istudju, għalkemm huwa eżawrjenti ħafna. Kienet esperjenza pjaċevoli li taħdem f'tim magħqud mill-qrib.

PS. Ir-reġistrazzjoni għall-programmi tal-masters għas-sena akkademika li jmiss diġà hija miftuħa. Ingħaqad issa!

Sors: www.habr.com

Żid kumment