Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şil

Di demên dawî de em vegotin li ser bernameya masterê ya pargîdanî ya JetBrains û Zanîngeha ITMO "Pêşvebirina Nermalavê / Endezyariya Nermalavê". Em her kesê eleqedar vedixwînin roja Duşemê, 29ê Avrêlê. Em ê li ser avantajên bernameya xweya masterê ji we re vebêjin, ka em çi bonusan pêşkêşî xwendekaran dikin û di berdêla de em çi daxwaz dikin. Wekî din, em ê bê guman bersiva pirsên mêvanên xwe bidin.

Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şilRoja vekirî dê li ofîsa JetBrains li Navenda Karsaziya Times, ku xwendekarên me yên masterê lê dixwînin, were lidarxistin. Saet 17:00 dest pê dike. Hûn dikarin hemî hûrguliyan fêr bibin û ji bo bûyerê li ser malperê qeyd bikin mse.itmo.ru. Werin û hûn ê poşman nebin!

Yek ji hêmanên sereke yên bernameyê pratîk e. Xwendekar gelek jê hene: karên malê yên heftane, projeyên semesterê û hackathon. Ji ber ku di dema xwendina xwe de di nav metodolojî û teknolojiyên pêşkeftina nûjen de bêkêmasî ye, mezûn zû di pêvajoyên xebatê yên pargîdaniyên mezin ên IT-ê de yek dibin.

Di vê postê de em dixwazin bi hûrgulî li ser hackathonên DevDays, ku her şeş mehan carekê pêk tên, biaxivin. Rêbaz hêsan in: ekîbên 3-4 kesan kom dibin û sê rojan xwendekar ramanên xwe tînin jiyanê. Dibe ku ji vê yekê çi derkeve? Beşa yekem a çîrokan li ser projeyên hackathonê yên vê semesterê ji xwendekaran bixwe bixwînin :)

Rojnivîsk bi pêşniyarên fîlimê

Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şil

Nivîskarê ramanê
Ivan Ilchuk
Berdewam dibe
Ivan Ilchuk - parsing komploya film, server
Vladislav Korablinov - pêşkeftina modelên ji bo berhevdana nêzîkbûna têketina rojnivîskê û nexşeya fîlimê
Dmitry Valchuk - UI
Nikita Vinokurov - UI, sêwirandin

Armanca projeya me ev bû ku em serîlêdanek sermaseyê binivîsin - rojnivîsek ku dê li gorî navnîşên tê de fîliman ji bikarhêner re pêşniyar bike.

Dema ku ez diçûm zanîngehê û li ser pirsgirêkên xwe difikirîm ev fikir ji min re hat. "Mirov bi çi pirsgirêkê re rû bi rû bimîne, hin nivîskarên klasîk berê li ser wê nivîsandiye," min fikir kir. "Û ji ber ku kesek ew nivîsand, ev tê vê wateyê ku kesek berê ew kişandiye." Ji ber vê yekê xwestina temaşekirina fîlmek li ser kesek bi heman êşa derûnî bi xwezayî xuya bû.

Eşkere ye, cûrbecûr rojnivîsên cihêreng û karûbarên pêşniyarên cihêreng hene (lê bi gelemperî pêşnîyar li ser bingeha tiştê ku kesê berê jê hez dikir têne çêkirin). Di prensîbê de, ev proje bi lêgerîna fîlimek ji hêla xalên sereke ve tiştek hevpar heye, lê dîsa jî, berî her tiştî, serîlêdana me fonksiyona rojnivîskê peyda dike.

Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şilMe ev yek çawa pêk anî? Dema ku hûn bişkojka sêrbazê pê bikin, rojnivîsk navnîşek ji serverê re dişîne, li wir fîlim li gorî danasîna ku ji Wîkîpediya hatî girtin tê hilbijartin. Eniya me di Elektronê de hate çêkirin (em wê bikar tînin, ne malperê, ji ber ku me di destpêkê de biryar da ku daneyên bikarhêner ne li serverê, lê li cîhê li ser komputerê hilînin), û server û pergala pêşniyarê bixwe di Python de hatine çêkirin: TF ji danasînên -Vektorên IDF yên ku ji bo nêzîkbûna vektora têketina rojnivîskê hatine berhev kirin hatine wergirtin.

Endamek tîmê tenê li ser modelê xebitî, yê din bi tevahî li pêş-endê xebitî (di destpêkê de bi endamek sêyemîn re, ku paşê veguherî ceribandinê). Ez bi parskirina planên fîlimê ji Wikipedia û serverê mijûl bûm.

Gav bi gav em nêzî encamê bûn, em ji gelek pirsgirêkan derbas bûn, bi vê yekê dest pê kir ku model di destpêkê de gelek RAM hewce dike, bi dijwariya veguhastina daneyan ji serverê re bi dawî bû.

Naha, ji bo dîtina fîlimek ji bo êvarê, ji we re zêde hewildan hewce nake: Encama xebata me ya sê-rojî serîlêdanek sermaseyê û serverek e, ku bikarhêner bi riya https-ê digihîje wan, di bersivê de bijarek ji 5 fîliman werdigire. raveyek kurt û posterek.

Nêrînên min ên projeyê pir erênî ne: kar ji serê sibê heya derengê şevê dîlgirtî bû, û serîlêdana encam bi awayekî periyodîk di şêwaza "Şeva Bêxew" de ji bo têketina rojnivîskê ya li ser karê malê li zanîngehê an fîlimek encamên pir xweş çêdike. di derbarê roja yekem a dibistanê de ji bo çîrokek li ser roja yekem li beşê.

Girêdanên têkildar, sazker, hwd têne dîtin vir.

jeneratorê rê

Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şilNivîskarê ramanê
Artemyeva Irina
Berdewam dibe
Artemyeva Irina - rêberê tîmê, lûleya sereke
Gordeeva Lyudmila - muzîk
Platonov Vladislav - rê

Ez pir hez dikim ku li dora bajêr bimeşim: li avahiyan, mirovan dinihêrim, li ser dîrokê difikirîm. Lê, dema ku cîhê rûniştina xwe diguherînim jî, zû an dereng ez bi pirsgirêka hilbijartina rêyek re rû bi rû dimînim: Min hemî yên ku ez dikarim bifikirim qedandim. Bi vî rengî fikir derket holê ku hilberîna rêgezan bixweber bike: hûn xala destpêkê û dirêjahiya rê destnîşan dikin, û bername vebijarkek dide we. Meş dikare dirêj be, ji ber vê yekê pêşkeftinek mentiqî ya ramanê xuya dike ku şiyana nîşankirina xalên navîn ji bo "rawestanek" zêde dike, li ku derê hûn dikarin xwarinek bixwin û bêhna xwe bidin. Şaxek din a pêşveçûnê muzîk bû. Meşa ber bi muzîkê ve her gav xweştir e, ji ber vê yekê ew ê pir baş be ku meriv jêhatîbûna bijartina lîstikek li ser bingeha rêgezek çêkirî zêde bike.

Di nav sepanên heyî de ne mimkûn bû ku çareseriyên weha bibînin. Analogên herî nêzîk her plansazên rêgezê ne: Google Maps, 2GIS, hwd.

Pir rehet e ku meriv serîlêdanek wusa li ser têlefona we hebe, ji ber vê yekê karanîna Telegram vebijarkek baş bû. Ew dihêle hûn nexşeyan nîşan bidin û muzîkê bilîzin, û hûn dikarin van hemîyan bi nivîsandina botekê kontrol bikin. Karê sereke bi nexşeyan re bi karanîna Google Map API-ê hate kirin. Python berhevkirina her du teknolojiyên hêsan dike.

Di tîmê de sê kes hebûn, ji ber vê yekê peywir li du binerxeyên ne-lihevhatî hate dabeş kirin (xebata bi nexşeyan û xebata bi muzîkê re) da ku xort karibin serbixwe bixebitin, û min hilda ser xwe ku ez encaman berhev bikim.

Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şilYek ji me çu carî bi API-ya Google Map-ê an bi botên Telegram-ê yên nivîskî re ne xebitî bû, ji ber vê yekê pirsgirêka sereke mîqdara dema ku ji bo bicihanîna projeyê hatî veqetandin bû: famkirina tiştek her gav ji kirina tiştek ku hûn baş dizanin bêtir wext digire. Hilbijartina bot API-ya Telegram-ê jî dijwar bû: ji ber astengkirinê, ne hemî ew dixebitin û ez neçar bûm ku ez têkoşîn bikim ku her tiştî saz bikim.

Hêjayî gotinê ye ku çawa pirsgirêka hilberîna rêyan hate çareser kirin. Avakirina rêgezek di navbera du cihan de hêsan e, lê heke tenê dirêjahiya rêyê were zanîn hûn dikarin çi pêşkêşî bikarhêner bikin? Bila bikarhêner bixwaze 10 kîlometreyan bimeşe. Xalek di rêgezek kêfî de tê hilbijartin, dûrahiya ku di xetek rast de 10 kîlometre ye, piştî wê rêyek heya vê xalê li ser rêyên rastîn tê çêkirin. Bi îhtîmaleke mezin ew ê ne rasterast be, ji ber vê yekê em ê bi 10 kîlometreyên diyarkirî kurt bikin. Ji bo rêwiyên weha gelek vebijark hene - me jeneratorek rêgezek rastîn girt!

Di destpêkê de, min xwest ku nexşeyê li deverên ku bi qadên kesk re têkildar in dabeş bikim: embar, hewş, kolan, da ku rêça herî xweş a meşê bi dest bixim, û her weha li gorî van deveran muzîkê çêbikim. Lê kirina vê yekê bi karanîna API-ya Nexşeya Google-ê dijwar derket (wextê me tune ku em vê pirsgirêkê çareser bikin). Lêbelê, gengaz bû ku avakirina rêgezek bi cûreyên taybetî yên cîhan (dikan, park, pirtûkxane) were bicîh kirin: heke rê li dora hemî deverên diyarkirî geriya, lê dûrahiya ku tê xwestin hîn nehatibe rêve kirin, ew bi rê ve dibe. Dûrahiya ku ji hêla bikarhêner ve hatî destnîşankirin di rêgezek rasthatî de. Google Map API di heman demê de dihêle hûn dema rêwîtiyê ya texmînkirî hesab bikin, ku ji we re dibe alîkar ku hûn ji bo tevahiya meşê navnîşek lîstikê hilbijêrin.

Di encama vê çalakiyê, karî nifşek çêbike rêyên bi xala destpêkê, dûr û navber; her tişt amade bû ku muzîkê li gorî beşên rêgezê dabeş bike, lê ji ber kêmbûna demê, biryar hate girtin ku vebijarka hilbijartina lîsteyek lîstikê tenê wekî şaxek UI-ya zêde bihêle. Bi vî rengî, bikarhêner karîbû serbixwe muzîka ku lê guhdarî bike hilbijêrin.

Pirsgirêka sereke ya xebata bi muzîkê re ew bû ku nizanibû ku meriv pelên mp3 ji ku derê bigire bêyî ku bikarhêner li ser her karûbarek xwedan hesabek be. Biryar hat dayîn ku muzîkê ji bikarhêner bixwaze (moda UserMusic). Ev pirsgirêkek nû diafirîne: ne ku her kes xwedan şiyana dakêşana şopan e. Yek çareserî ev e ku meriv bi muzîka bikarhêneran re depoyek biafirîne (moda BotMusic) - ji wê derê hûn dikarin bêyî karûbaran muzîkê biafirînin.

Her çend ne bêkêmasî be jî, me peywir qedand: me bi serîlêdanek ku ez dixwazim bikar bînim qedandin. Bi gelemperî, ev pir xweş e: sê roj berê we tenê ramanek hebû û ne yek ramanek li ser ka meriv wê çawa tam bicîh bîne, lê naha çareseriyek xebatê heye. Ev sê roj ji bo min pir girîng bûn. Ez nema ditirsim ku ez tiştek bibînim ku têra min nezane ku ez bicîh bikim, pêşengiya tîmê pir balkêş bû, û min ew xortên hêja yên ku beşdarî tîmê min bûn nas kir. baştir!

Demokrasiya derewîn

Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şil

Nivîskarê ramanê
Stanislav Sychev
Berdewam dibe
Stanislav Sychev - serokê tîmê, databas
Nikolay Izyumov - pêwendiya botê
Anton Ryabushev - paşperdeya

Di nav komên cûda de, pir caran hewcedarî bi biryarek an dengdanê heye. Bi gelemperî di rewşên weha de ew serî li wan didin demokrasiya rasterastLêbelê, gava ku kom mezin dibe, pirsgirêk dikarin derkevin. Mînakî, kesek di komekê de dibe ku nexwaze pir caran bersiva pirsan bide an jî li ser hin mijaran bersiv bide. Di komên mezin de, ji bo ku ji pirsgirêkan dûr bisekinin, ew serî li wan didin demokrasiya temsîlî, dema ku komeke cuda ya "wekîl" ji nav hemû xelkê tê hilbijartin, yên ku yên mayî ji barê bijartinê azad dikin. Lê pir dijwar e ku meriv bibe wekîlek wusa, û kesê ku bibe yek, ne hewce ye ku wekî ku ji dengdêran re xuya bû rast û rêzdar be.

Ji bo çareserkirina pirsgirêkên herdu sîsteman, Brian Ford ev têgeh pêşniyar kir demokrasiya nerm. Di pergalek wusa de, her kes azad e ku rola bikarhênerek birêkûpêk an nûnerek hilbijêrin, bi tenê bi îfadekirina daxwaza xwe. Her kes dikare li ser yek an jî çend mijaran serbixwe deng bide yan jî deng bide nûnerekî. Delegeyek jî dikare dengê xwe bide. Wekî din, heke nûner êdî ne li gorî dengdêran be, dengdan dikare her gav were paşde xistin.

Nimûneyên bikaranîna demokrasiya şil di siyasetê de têne dîtin, û me xwest ku di nav her cûre komên mirovan de ramanek bi heman rengî ji bo karanîna rojane pêk bînin. Di hackathona DevDays ya paşîn de, me biryar da ku em botek Telegram-ê ji bo dengdanê li gorî prensîbên demokrasiya nerm binivîsin. Di heman demê de, min xwest ku ez ji pirsgirêkek hevpar a bi botên weha re dûr bixim - girtina sohbeta giştî bi peyamên ji botê re. Çareserî ev e ku meriv bi qasî ku pêkan karibe têxe nav danûstendinek kesane.

Hackathon DevDays'19 (beş 1): rojnivîsek bi pêşnîyaran, jeneratorek rêça meşê û demokrasiya şilJi bo afirandina vê botê me bikar anî API ji Telegram. Databasek PostgreSQL hate hilbijartin ku dîroka dengdanê û heyetan hilîne. Ji bo ku bi botê re têkilî daynin, serverek Flask hate saz kirin. Me van teknolojiyê hilbijart ji ber ku ... me jixwe di dema xwendina masterê de bi wan re xwedî ezmûn bû. Karê li ser sê beşên projeyê - databas, server, û bot - bi serfirazî di nav endamên tîmê de hate belav kirin.

Bê guman, sê roj demek kurt e, ji ber vê yekê di dema hackathon de me ev raman heya asta prototîpê pêk anî. Di encamê de, me botek çêkir ku ji sohbeta giştî re tenê agahdariya vekirina dengdanê û encamên wê yên nenas dinivîse. Qabiliyeta dengdanê û çêkirina anketekê bi riya peywendiya kesane ya bi botê re tê pêkanîn. Ji bo dengdanê, fermanek têkevin ku navnîşek mijarên ku bala rasterast hewce dike nîşan dide. Di pêwendiya kesane de, hûn dikarin navnîşa nûneran û dengên wan ên berê bibînin, û hem jî li ser yek ji mijaran dengê xwe bidin wan.

Vîdyoyek bi mînakek xebatê.

Karkirina li ser projeyê balkêş bû, em heta nîvê şevê li zanîngehê man, em difikirin ku ev rêyek pir xweş e ku meriv ji xwendinê veqetîne, her çend pir westiyayî be. Ew ezmûnek xweş bû ku di tîmek nêzîk de xebitî.

PS. Qeydkirina bernameyên masterê ji bo sala akademîk a din jixwe heye vekirî ye. Join now!

Çavkanî: www.habr.com

Add a comment