Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomi

Laipe a so fun nipa eto titunto si ile-iṣẹ ti JetBrains ati Ile-ẹkọ giga ITMO “Idagbasoke Software / Imọ-ẹrọ sọfitiwia”. A pe gbogbo eniyan ti o nifẹ si ọjọ ṣiṣi ni Ọjọ Aarọ, Oṣu Kẹrin Ọjọ 29th. A yoo sọ fun ọ nipa awọn anfani ti eto oluwa wa, kini awọn ẹbun ti a fun awọn ọmọ ile-iwe ati ohun ti a beere ni ipadabọ. Ni afikun, a yoo dajudaju dahun awọn ibeere lati ọdọ awọn alejo wa.

Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomiỌjọ ṣiṣi yoo waye ni ọfiisi JetBrains ni Ile-iṣẹ Iṣowo Times, nibiti awọn ọmọ ile-iwe oluwa wa ti ṣe ikẹkọ. Bẹrẹ ni 17:00. O le wa gbogbo awọn alaye ati forukọsilẹ fun iṣẹlẹ lori oju opo wẹẹbu mse.itmo.ru. Wá ati awọn ti o yoo ko banuje o!

Ọkan ninu awọn ẹya akọkọ ti eto naa jẹ adaṣe. Awọn ọmọ ile-iwe ni pupọ: iṣẹ amurele ọsẹ, awọn iṣẹ igba ikawe ati awọn hackathons. Ṣeun lati pari immersion ni awọn ilana idagbasoke ode oni ati awọn imọ-ẹrọ lakoko awọn ẹkọ wọn, awọn ọmọ ile-iwe giga ni iyara ṣepọ sinu awọn ilana iṣẹ ti awọn ile-iṣẹ IT nla.

Ninu ifiweranṣẹ yii a fẹ lati sọrọ ni alaye diẹ sii nipa awọn hackathons DevDays, eyiti o waye ni gbogbo oṣu mẹfa. Awọn ofin jẹ rọrun: awọn ẹgbẹ ti awọn eniyan 3-4 pejọ ati fun ọjọ mẹta awọn ọmọ ile-iwe mu awọn ero ti ara wọn wa si aye. Kini o le wa ninu eyi? Ka apakan akọkọ ti awọn itan nipa awọn iṣẹ akanṣe hackathon igba ikawe yii lati ọdọ awọn ọmọ ile-iwe funrararẹ :)

Iwe ito iṣẹlẹ pẹlu awọn iṣeduro fiimu

Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomi

Onkọwe ti ero naa
Ivan Ilchuk
Ilana aṣẹ
Ivan Ilchuk - fiimu Idite parsing, olupin
Vladislav Korablinov - idagbasoke ti awọn awoṣe fun ifiwera isunmọtosi ti titẹsi iwe ito iṣẹlẹ ati idite ti fiimu kan
Dmitry Valchuk – UI
Nikita Vinokurov - UI, apẹrẹ

Ibi-afẹde ti iṣẹ akanṣe wa ni lati kọ ohun elo tabili tabili kan - iwe-akọọlẹ kan ti yoo ṣeduro awọn fiimu si olumulo ti o da lori awọn titẹ sii inu rẹ.

Ọ̀rọ̀ yìí wá bá mi nígbà tí mo ń lọ sí yunifásítì tí mo sì ń ronú nípa àwọn ìṣòro mi. "Iṣoro eyikeyi ti eniyan ba koju, diẹ ninu awọn onkọwe olokiki ti kọ tẹlẹ nipa rẹ,” Mo ro. “Ati pe lati igba ti ẹnikan ti kọwe rẹ, o tumọ si pe ẹnikan ti ya fiimu tẹlẹ.” Nitorinaa ifẹ lati wo fiimu kan nipa eniyan ti o ni ijiya ọpọlọ kanna farahan nipa ti ara.

O han ni, ọpọlọpọ awọn iwe-akọọlẹ lọtọ ati awọn iṣẹ iṣeduro lọtọ (ṣugbọn nigbagbogbo awọn iṣeduro da lori ohun ti eniyan fẹran tẹlẹ). Ni opo, iṣẹ akanṣe yii ni nkan ti o wọpọ pẹlu wiwa fiimu nipasẹ awọn aaye pataki, ṣugbọn sibẹ, ni akọkọ, ohun elo wa n pese iṣẹ ṣiṣe ti iwe-kikọ kan.

Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomiBawo ni a ṣe ṣe eyi? Nigbati o ba tẹ bọtini idan, iwe-iranti naa firanṣẹ titẹsi si olupin, nibiti a ti yan fiimu naa da lori apejuwe ti o ya lati Wikipedia. A ṣe iwaju iwaju wa ni Electron (a lo, kii ṣe oju opo wẹẹbu, nitori a pinnu lakoko lati tọju data olumulo kii ṣe lori olupin, ṣugbọn ni agbegbe lori kọnputa), ati olupin ati eto iṣeduro funrararẹ ni a ṣe ni Python: TFs jẹ gba lati awọn apejuwe -IDF fekito ti a akawe fun isunmọtosi si awọn iwe-itumọ ti titẹsi fekito.

Ọmọ ẹgbẹ kan ṣiṣẹ nikan lori awoṣe, ekeji ṣiṣẹ patapata ni iwaju-ipari (ni ibẹrẹ papọ pẹlu ọmọ ẹgbẹ kẹta, ti o yipada nigbamii si idanwo). Mo ti ṣiṣẹ ni sisọ awọn igbero fiimu lati Wikipedia ati olupin naa.

Igbesẹ nipasẹ igbese a sunmọ abajade, bibori awọn iṣoro pupọ, bẹrẹ pẹlu otitọ pe awoṣe akọkọ nilo Ramu pupọ, ti o pari pẹlu iṣoro ti gbigbe data si olupin naa.

Bayi, lati wa fiimu kan fun irọlẹ, iwọ ko nilo igbiyanju pupọ: abajade ti iṣẹ ọjọ mẹta wa jẹ ohun elo tabili tabili ati olupin kan, eyiti olumulo wọle nipasẹ https, gbigba ni idahun yiyan ti awọn fiimu 5 pẹlu a finifini apejuwe ati panini.

Awọn iwunilori mi ti iṣẹ akanṣe jẹ rere pupọ: iṣẹ naa jẹ iyanilẹnu lati kutukutu owurọ titi di alẹ alẹ, ati pe ohun elo ti o yọrisi lorekore n ṣe awọn abajade ẹrinrin pupọ ni aṣa ti “Alẹ oorun” fun titẹsi iwe-kikọ nipa iṣẹ amurele ni ile-ẹkọ giga tabi fiimu kan. nipa ọjọ akọkọ ti ile-iwe fun itan kan nipa ọjọ akọkọ ni ẹka naa.

Awọn ọna asopọ ti o yẹ, awọn fifi sori ẹrọ, ati bẹbẹ lọ ni a le rii nibi.

Olupilẹṣẹ ọna

Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomiOnkọwe ti ero naa
Artemyeva Irina
Ilana aṣẹ
Artemyeva Irina - asiwaju egbe, akọkọ lupu
Gordeeva Lyudmila - orin
Platonov Vladislav - awọn ọna

Mo nifẹ pupọ lati rin ni ayika ilu: wiwo awọn ile, eniyan, ronu nipa itan-akọọlẹ. Ṣugbọn, paapaa nigba iyipada ibi ibugbe mi, laipẹ tabi nigbamii Mo dojukọ iṣoro ti yiyan ipa-ọna: Mo ti pari gbogbo eyi ti Mo le ronu. Eyi ni bii ero naa ṣe wa lati ṣe adaṣe iran ti awọn ipa-ọna: o tọka aaye ibẹrẹ ati ipari ti ipa-ọna, ati pe eto naa fun ọ ni aṣayan kan. Awọn irin-ajo le gun, nitorina idagbasoke imọran ti ero naa dabi pe o nfi agbara lati ṣe afihan awọn aaye agbedemeji fun "idaduro," nibi ti o ti le ni ipanu ati isinmi. Ẹka miiran ti idagbasoke jẹ orin. Rin si orin jẹ igbadun diẹ sii nigbagbogbo, nitorinaa yoo jẹ nla lati ṣafikun agbara lati yan atokọ orin kan ti o da lori ipa-ọna ti ipilẹṣẹ.

Ko ṣee ṣe lati wa iru awọn solusan laarin awọn ohun elo to wa tẹlẹ. Awọn analogues ti o sunmọ julọ jẹ awọn oluṣeto ipa ọna: Google Maps, 2GIS, ati bẹbẹ lọ.

O rọrun julọ lati ni iru ohun elo lori foonu rẹ, nitorinaa lilo Telegram jẹ aṣayan ti o dara. O gba ọ laaye lati ṣafihan awọn maapu ati mu orin ṣiṣẹ, ati pe o le ṣakoso gbogbo eyi nipa kikọ bot kan. Iṣẹ akọkọ pẹlu awọn maapu ni lilo Google Map API. Python jẹ ki o rọrun lati darapo awọn imọ-ẹrọ mejeeji.

Awọn eniyan mẹta wa ninu ẹgbẹ naa, nitorinaa ti pin iṣẹ naa si awọn iṣẹ-ṣiṣe meji ti kii ṣe agbekọja (ṣiṣẹ pẹlu awọn maapu ati ṣiṣẹ pẹlu orin) ki awọn eniyan le ṣiṣẹ ni ominira, ati pe Mo gba ara mi lati darapo awọn abajade.

Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomiKo si ọkan ninu wa ti o ti ṣiṣẹ pẹlu Google Map API tabi kọ awọn botilẹmu Telegram, nitorinaa iṣoro akọkọ ni iye akoko ti a pin lati ṣe iṣẹ akanṣe naa: agbọye ohun kan nigbagbogbo gba akoko diẹ sii ju ṣiṣe nkan ti o mọ daradara. O tun nira lati yan Telegram bot API: nitori idinamọ, kii ṣe gbogbo wọn ṣiṣẹ ati pe Mo ni lati tiraka lati ṣeto ohun gbogbo.

O tọ lati darukọ lọtọ bi a ti yanju iṣoro ti ipilẹṣẹ awọn ipa-ọna. O rọrun lati kọ ọna kan laarin awọn ipo meji, ṣugbọn kini o le fun olumulo ti o ba jẹ pe ipari ti ọna nikan ni a mọ? Jẹ ki olumulo fẹ lati rin awọn ibuso 10. A yan aaye kan ni itọsọna lainidii, ijinna si eyiti o wa ni laini taara jẹ awọn ibuso 10, lẹhin eyi ti a ṣe ipa ọna si aaye yii ni awọn ọna gidi. O ṣeese kii yoo ni taara, nitorinaa a yoo kuru si awọn ibuso 10 ti a sọ pato. Awọn aṣayan pupọ lo wa fun iru awọn ipa-ọna - a ni olupilẹṣẹ ipa-ọna gidi kan!

Ni ibẹrẹ, Mo fẹ lati pin maapu naa si awọn agbegbe ti o baamu si awọn agbegbe alawọ ewe: awọn embankments, awọn agbala, awọn opopona, lati le gba ipa ọna ti o dun julọ fun rin, ati tun ṣe agbejade orin ni ibamu pẹlu awọn agbegbe wọnyi. Ṣugbọn ṣiṣe eyi ni lilo Google Map API ti jade lati nira (a ko ni akoko lati yanju iṣoro yii). Bibẹẹkọ, o ṣee ṣe lati ṣe imuse ikole ti ipa-ọna nipasẹ awọn iru awọn ipo kan pato (itaja, o duro si ibikan, ile-ikawe): ti ipa-ọna naa ba lọ ni ayika gbogbo awọn aaye ti a sọ pato, ṣugbọn ijinna ti o fẹ ko ti rin irin-ajo, o ti pari si olumulo-pato ijinna ni a ID itọsọna. Google Map API tun gba ọ laaye lati ṣe iṣiro akoko irin-ajo ti a pinnu, eyiti o ṣe iranlọwọ fun ọ lati yan atokọ orin kan pato fun gbogbo rin.

Bajẹ isakoso lati ṣe iran awọn ipa-ọna nipasẹ aaye ibẹrẹ, ijinna ati awọn aaye agbedemeji; ohun gbogbo ti pese sile lati ṣe lẹtọ orin ni ibamu si awọn apakan ti ipa-ọna, ṣugbọn nitori aini akoko, o pinnu lati lọ kuro ni aṣayan ti yiyan akojọ orin ni irọrun bi ẹka UI afikun. Nitorinaa, olumulo naa ni anfani lati yan orin ni ominira lati tẹtisi.

Iṣoro akọkọ pẹlu ṣiṣẹ pẹlu orin ko mọ ibiti o ti gba awọn faili mp3 lati laisi nilo olumulo lati ni akọọlẹ kan lori iṣẹ eyikeyi. O ti pinnu lati beere orin lati ọdọ olumulo (Ipo UserMusic). Eyi ṣẹda iṣoro tuntun: kii ṣe gbogbo eniyan ni agbara lati ṣe igbasilẹ awọn orin. Ojutu kan ni lati ṣẹda ibi ipamọ pẹlu orin lati ọdọ awọn olumulo (Ipo BotMusic) - lati ọdọ rẹ o le ṣe ina orin laisi awọn iṣẹ.

Botilẹjẹpe ko pe, a pari iṣẹ-ṣiṣe: a pari pẹlu ohun elo kan ti Emi yoo fẹ lati lo. Ni gbogbogbo, eyi dara pupọ: ọjọ mẹta sẹyin o ni imọran nikan kii ṣe ero kan lori bii gangan lati ṣe imuse rẹ, ṣugbọn ni bayi ojutu iṣẹ kan wa. Iwọnyi ṣe pataki pupọ fun mi ni ọjọ mẹta, Emi ko bẹru lati wa pẹlu nkan ti Emi ko ni oye to lati ṣe, jijẹ aṣaaju ẹgbẹ jẹ ohun iyalẹnu, ati pe Mo mọ awọn eniyan iyanu ti wọn darapọ mọ ẹgbẹ mi. dara julọ!

Tiwantiwa tiwantiwa

Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomi

Onkọwe ti ero naa
Stanislav Sychev
Ilana aṣẹ
Stanislav Sychev - asiwaju egbe, database
Nikolay Izyumov – bot ni wiwo
Anton Ryabushev - backend

Laarin awọn ẹgbẹ oriṣiriṣi, iwulo nigbagbogbo wa lati ṣe ipinnu tabi dibo. Maa ni iru awọn igba miran ti won asegbeyin ti si tiwantiwa taara, sibẹsibẹ, nigbati ẹgbẹ ba tobi, awọn iṣoro le dide. Fun apẹẹrẹ, eniyan kan ninu ẹgbẹ le ma fẹ dahun awọn ibeere nigbagbogbo tabi dahun ibeere nipa awọn koko-ọrọ kan. Ni awọn ẹgbẹ nla, lati yago fun awọn iṣoro ti wọn lo si aṣoju tiwantiwa, nigbati a yan ẹgbẹ ti o yatọ si ti "awọn aṣoju" laarin gbogbo awọn eniyan, ti o yọ iyokù kuro ninu ẹrù ti o fẹ. Ṣugbọn o ṣoro pupọ lati di iru igbakeji bẹẹ, ati pe ẹni ti o di ọkan kii yoo jẹ oloootitọ ati ọlá, bi o ṣe dabi ẹnipe awọn oludibo.

Lati yanju awọn iṣoro ti awọn ọna ṣiṣe mejeeji, Brian Ford dabaa ero naa olomi ijoba tiwantiwa. Ninu iru eto bẹẹ, gbogbo eniyan ni ominira lati yan ipa ti olumulo deede tabi aṣoju, nirọrun nipa sisọ ifẹ wọn. Ẹnikẹni le dibo ni ominira tabi fun idibo si aṣoju lori ọkan tabi diẹ sii awọn ọran. Aṣoju tun le dibo rẹ. Pẹlupẹlu, ti aṣoju ko ba baamu fun oludibo, idibo le yọkuro nigbakugba.

Awọn apẹẹrẹ ti lilo ijọba tiwantiwa olomi ni a rii ninu iṣelu, ati pe a fẹ lati ṣe imuse iru imọran kan fun lilo lojoojumọ laarin gbogbo iru awọn ẹgbẹ eniyan. Ni atẹle DevDays hackathon, a pinnu lati kọ bot Telegram kan fun idibo ni ibamu si awọn ipilẹ ti ijọba tiwantiwa olomi. Ni akoko kanna, Mo fẹ lati yago fun iṣoro ti o wọpọ pẹlu iru awọn botilẹnti - pipade iwiregbe gbogbogbo pẹlu awọn ifiranṣẹ lati bot. Ojutu ni lati mu iṣẹ ṣiṣe lọpọlọpọ bi o ti ṣee ṣe sinu ibaraẹnisọrọ ti ara ẹni.

Hackathon DevDays'19 (apakan 1): iwe ito iṣẹlẹ pẹlu awọn iṣeduro, olupilẹṣẹ ipa ọna ati tiwantiwa olomiLati ṣẹda bot a lo API lati Telegram. A yan aaye data PostgreSQL lati tọju itan-akọọlẹ ti idibo ati awọn aṣoju. Lati ṣe ibasọrọ pẹlu bot, olupin Flask ti fi sori ẹrọ. A yan awọn imọ-ẹrọ wọnyi nitori… a ti ni iriri ni ibaraenisepo pẹlu wọn lakoko awọn ikẹkọ oluwa wa. Ṣiṣẹ lori awọn ẹya mẹta ti iṣẹ akanṣe-ipamọ data, olupin, ati bot-ni aṣeyọri pinpin laarin awọn ọmọ ẹgbẹ ẹgbẹ.

Nitoribẹẹ, ọjọ mẹta jẹ akoko kukuru, nitorinaa lakoko hackathon a ṣe imuse ero naa si ipele apẹrẹ. Bi abajade, a ṣẹda bot kan ti o kọwe si iwiregbe gbogbogbo nikan alaye nipa ṣiṣi ti idibo ati awọn abajade ailorukọ rẹ. Agbara lati dibo ati ṣẹda idibo kan ni imuse nipasẹ ifọrọranṣẹ ti ara ẹni pẹlu bot. Lati dibo, tẹ aṣẹ kan sii ti o ṣafihan atokọ ti awọn ọran ti o nilo akiyesi taara. Ninu ifọrọranṣẹ ti ara ẹni, o le wo atokọ ti awọn aṣoju ati awọn ibo iṣaaju wọn, ati tun fun wọn ni ibo rẹ lori ọkan ninu awọn akọle naa.

Fidio pẹlu apẹẹrẹ ti iṣẹ.

O jẹ igbadun lati ṣiṣẹ lori iṣẹ naa, a duro ni yunifasiti titi di ọganjọ alẹ. O jẹ iriri igbadun ti n ṣiṣẹ ni ẹgbẹ iṣọpọ kan.

PS. Iforukọsilẹ fun awọn eto oluwa fun ọdun ẹkọ ti nbọ ti wa tẹlẹ ṣii. Darapo mo wa!

Orisun: www.habr.com

Fi ọrọìwòye kun