Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoa

Duela gutxi dugu esan JetBrains eta ITMO Unibertsitateko β€œSoftware Garapena / Software Ingeniaritza” master korporatiboari buruz. Interesa duten guztiak apirilaren 29an, astelehena, ate irekien jardunaldi batera gonbidatzen ditugu. Gure master programaren abantailen berri emango dizugu, ikasleei zer hobari eskaintzen diegun eta trukean zer eskatzen diegun. Gainera, zalantzarik gabe, gure gonbidatuen galderei erantzungo diegu.

Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoaAte irekien jardunaldia Times Business Centerreko JetBrains bulegoan izango da, non gure masterreko ikasleek ikasten duten. 17:00etan hasiko da. Xehetasun guztiak ezagutu eta ekitaldirako izena eman dezakezu webgunean mse.itmo.ru. Zatoz eta ez zara damutuko!

Programaren osagai nagusietako bat praktika da. Ikasleek asko dute: asteko etxeko lanak, seihilekoko proiektuak eta hackathons. Ikasketetan zehar garapen modernoko metodologia eta teknologietan erabat murgiltzeari esker, lizentziatuak azkar integratzen dira informatika-enpresa handien lan-prozesuetan.

Post honetan zehatzago hitz egin nahi dugu DevDays hackathons-i buruz, sei hilean behin egiten direnak. Arauak sinpleak dira: 3-4 laguneko taldeak biltzen dira eta hiru egunez ikasleek euren ideiak biziarazten dituzte. Zer etor liteke honetatik? Irakurri seihileko honetako hackaton-proiektuei buruzko istorioen lehen zatia ikasleen eskutik :)

Filmen gomendioekin egunkaria

Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoa

Ideiaren egilea
Ivan Iltxuk
Hamaikakoa
Ivan Ilchuk – pelikularen argumentuaren analisia, zerbitzaria
Vladislav Korablinov - egunkariko sarrera baten hurbiltasuna eta film baten argumentua alderatzeko ereduak garatzea
Dmitry Valchuk - UI
Nikita Vinokurov – UI, diseinua

Gure proiektuaren helburua mahaigaineko aplikazio bat idaztea zen: erabiltzaileari filmak gomendatuko zizkion egunkari bat, bertan dauden sarreretan oinarrituta.

Ideia hau unibertsitatera bidean nengoela eta nire arazoetan pentsatzen nengoela etorri zitzaidan. "Pertsona batek jasaten duen arazoa edozein dela ere, idazle klasikoren batek dagoeneko idatzi du horri buruz", pentsatu nuen. "Eta norbaitek idatzi zuenez, esan nahi du norbaitek dagoeneko filmatu duela". Beraz, buruko oinaze bera duen pertsona bati buruzko film bat ikusteko gogoa modu naturalean agertu zen.

Jakina, hainbat egunkari bereizi eta gomendio zerbitzu bereiziak daude (baina normalean gomendioak lehenago pertsonari gustatzen zitzaionean oinarritzen dira). Printzipioz, proiektu honek badu zerbait komunean pelikula bat puntu gakoen arabera bilatzearekin, baina hala ere, lehenik eta behin, gure aplikazioak egunkari baten funtzionaltasuna eskaintzen du.

Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoaNola gauzatu dugu hau? Botoi magikoa sakatzen duzunean, egunkariak sarrera bat bidaltzen du zerbitzarira, non filma hautatzen baita Wikipediatik hartutako deskribapenaren arabera. Gure frontend-a Electron-en egin zen (guk erabiltzen dugu, ez webgunea, hasiera batean erabiltzaileen datuak ez zerbitzarian, lokalean ordenagailuan gordetzea erabaki genuelako), eta zerbitzaria eta gomendio sistema bera Python-en egin ziren: TFak ziren. deskribapenetatik lortutako -IDF bektoreak erkatu ziren egunkariko sarrera-bektorearekiko hurbiltasunagatik.

Taldekide batek ereduan bakarrik lan egin zuen, bestea frontend-ean lan egin zuen osorik (hasieran hirugarren kide batekin batera, gero probatzera pasatu zen). Wikipediatik eta zerbitzaritik zinema-trama analizatzen aritu nintzen.

Pausoz pauso emaitzara hurbildu ginen, hainbat arazo gaindituz, hasiera batean ereduak RAM asko behar zuelako, datuak zerbitzarira transferitzeko zailtasunarekin amaituz.

Orain, arratsalderako pelikula bat aurkitzeko, ez duzu esfortzu handirik behar: gure hiru eguneko lanaren emaitza mahaigaineko aplikazio bat eta zerbitzari bat da, zeina erabiltzaileak https bidez atzitzen duen, eta erantzun gisa 5 filmen aukeraketa bat jasotzen du. deskribapen labur bat eta kartel bat.

Proiektuari buruz ditudan inpresioak oso positiboak dira: lana liluragarria izan zen goizean goizetik gauera arte, eta ondoriozko aplikazioak aldian-aldian emaitza oso dibertigarriak sortzen ditu "Sleepless Night" estiloan, unibertsitateko lanei buruzko egunkariko sarrera edo pelikula batean. lehen eskola-egunari buruz, saileko lehen egunari buruzko ipuin baterako.

Estekak, instalatzaileak eta abar garrantzitsuak aurki daitezke Hemen.

Ibilbide-sorgailua

Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoaIdeiaren egilea
Artemieva Irina
Hamaikakoa
Artemyeva Irina – taldeko liderra, begizta nagusia
Gordeeva Lyudmila - musika
Platonov Vladislav – ibilbideak

Asko gustatzen zait hirian ibiltzea: eraikinei begira, jendeari, historiari buruz pentsatzea. Baina, bizilekuz aldatzean ere, goiz edo beranduago ibilbidea aukeratzeko arazoarekin nago: bururatzen zaizkidan guztiak osatu ditut. Horrela sortu zen ibilbideen sorrera automatizatzeko ideia: zuk ibilbidearen abiapuntua eta luzera adierazten dituzu, eta programak aukera ematen dizu. Ibilaldiak luzeak izan daitezke, beraz, ideiaren garapen logiko batek "geldialdi" baterako tarteko puntuak adierazteko gaitasuna gehitzen duela dirudi, bertan mokadu bat hartu eta atseden hartzeko. Garapenaren beste adar bat musika izan zen. Musikarekin ibiltzea beti da dibertigarriagoa, beraz, bikaina litzateke sortutako ibilbide batean oinarritutako erreprodukzio zerrenda bat hautatzeko aukera gehitzea.

Lehendik zeuden aplikazioen artean ezin izan zen horrelako irtenbiderik aurkitu. Analogiko hurbilenak edozein ibilbide planifikatzaileak dira: Google Maps, 2GIS, etab.

Erosoena da horrelako aplikazio bat telefonoan edukitzea, beraz, Telegram erabiltzea aukera ona zen. Mapak bistaratzeko eta musika erreproduzitzeko aukera ematen du, eta hori guztia kontrola dezakezu bot bat idatziz. Mapekin lan nagusia Google Map APIa erabiliz egin zen. Python-ek bi teknologiak konbinatzea errazten du.

Taldean hiru pertsona zeuden, beraz, zeregina gainjarri gabeko bi azpiatazatan banatu zen (mapak lantzea eta musikarekin lan egitea), mutilek modu independentean lan egin zezaten, eta nire ardura hartu nuen emaitzak uztartzea.

Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoaGutako inork ez zuen inoiz Google Map APIarekin edo Telegram bot-ekin idatzitako lan egin, beraz, arazo nagusia proiektua gauzatzeko esleitutako denbora zen: zerbait ulertzeak denbora gehiago behar du beti ondo ezagutzen duzun zerbait egiteak baino. Telegram bot APIa aukeratzea ere zaila izan zen: blokeoaren ondorioz, denek ez dute funtzionatzen eta dena konfiguratzeko borroka egin behar izan nuen.

Aipatzekoa da bereizita nola konpondu zen ibilbideak sortzearen arazoa. Erraza da bi kokapenen artean ibilbide bat eraikitzea, baina zer eskaini diezaiokezu erabiltzaileari ibilbidearen luzera bakarrik ezagutzen bada? Erabiltzaileak 10 kilometro oinez egin nahi dituela. Puntu bat norabide arbitrarioan hautatzen da, lerro zuzen batean 10 kilometrokoa den distantzia, eta ondoren puntu honetaraino bide bat eraikitzen da benetako errepideetan zehar. Ziurrenik ez da zuzena izango, beraz, zehaztutako 10 kilometroetara laburtuko dugu. Horrelako ibilbideetarako aukera asko daude - benetako ibilbide-sorgailu bat dugu!

Hasieran, mapa berdeei dagozkien eremuetan zatitu nahi nuen: lubetak, patioak, kaleak, ibilaldirako ibilbiderik atseginena lortzeko, eta eremu horien araberako musika ere sortzeko. Baina Google Map APIa erabiliz hori egitea zaila izan da (ez genuen arazo hau konpontzeko denborarik izan). Dena den, posible izan da ibilbide baten eraikuntza leku mota zehatzetan (denda, parkea, liburutegia) gauzatzea: ibilbidea zehaztutako leku guztiak inguratzen baditu, baina nahi den distantzia oraindik egin ez bada, erabiltzaileak zehaztutako distantzia ausazko norabidean. Google Map API-k ere bidaia-denbora kalkulatzeko aukera ematen du, eta horrek ibilaldi osorako erreprodukzio-zerrenda bat aukeratzen lagunduko dizu.

Baten ondorioz, belaunaldi bat egitea lortu zuen ibilbideak abiapuntu, distantzia eta tarteko puntuen arabera; dena prestatu zen musika ibilbidearen atalen arabera sailkatzeko, baina denbora faltagatik, erreprodukzio-zerrenda hautatzeko aukera IU adar osagarri gisa uztea erabaki zen. Horrela, erabiltzaileak modu independentean aukeratu ahal izan zuen entzuteko musika.

Musikarekin lan egiteko arazo nagusia mp3 fitxategiak nondik atera ez jakitea zen, erabiltzaileari edozein zerbitzutan kontu bat edukitzea eskatu gabe. Erabiltzaileari musika eskatzea erabaki zen (UserMusic modua). Horrek arazo berri bat sortzen du: denek ez dute pistak deskargatzeko gaitasuna. Irtenbide bat erabiltzaileen musikarekin biltegi bat sortzea da (BotMusic modua) - bertatik musika sor dezakezu zerbitzuak edozein izanda ere.

Nahiz eta perfektua ez izan, zeregina bete dugu: nik erabili nahiko nukeen aplikazio batekin amaitu dugu. Oro har, oso polita da hau: duela hiru egun ideia bat besterik ez zenuen eta ez zenuten pentsatu zehatz-mehatz nola inplementatu, baina orain konponbide bat dago. Oso garrantzitsuak izan ziren hiru egun hauek niretzat. Jada ez dut beldurrik ez dudan zerbait gauzatzeko behar adinako ezagutzarik ateratzeari, taldeko liderra izatea izugarri interesgarria izan zen, eta nire taldean sartu ziren mutil zoragarriak ezagutu nituen. hobeto!

Demokrazia likidoa

Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoa

Ideiaren egilea
Stanislav Sychev
Hamaikakoa
Stanislav Sychev - taldeko burua, datu-basea
Nikolay Izyumov - bot interfazea
Anton Ryabushev - backend

Talde ezberdinen barruan, askotan, erabaki edo botoa hartu beharra dago. Normalean horrelakoetan jotzen dute demokrazia zuzena, ordea, taldea handitzen denean, arazoak sor daitezke. Adibidez, talde bateko pertsona batek ez du maiz erantzun nahi edo gai batzuei buruzko galderak ez erantzun nahi. Talde handietan, arazoak saihesteko demokrazia ordezkaria, pertsona guztien artean β€œdiputatu” talde bereizi bat aukeratzen denean, gainontzekoak aukeraren zamatik askatzen dituenean. Baina nahiko zaila da halako diputatu bihurtzea, eta bihurtzen den pertsona ez da zertan zintzoa eta errespetagarria izango, hautesleei iruditzen zitzaien bezala.

Bi sistemen arazoak konpontzeko, Brian Fordek kontzeptua proposatu zuen demokrazia likidoa. Sistema horretan, denek askatasun osoz aukeratzen dute ohiko erabiltzaile edo ordezkari baten rola, nahia adieraziz besterik gabe. Edonork modu independentean bozkatu dezake edo gai baten edo gehiagoren inguruan ordezkari bati botoa eman. Ordezkari batek bere botoa ere eman dezake. Gainera, ordezkaria boto-emaileari jada komeni ez bazaio, botoa edozein unetan kendu ahal izango da.

Demokrazia likidoaren erabileraren adibideak politikan aurkitzen dira, eta eguneroko erabilerarako antzeko ideia bat ezarri nahi izan dugu mota guztietako jende taldeen baitan. Hurrengo DevDays hackathonean, Telegram bot bat idaztea erabaki genuen demokrazia likidoaren printzipioen arabera bozkatzeko. Aldi berean, horrelako botekin ohiko arazo bat saihestu nahi nuen: txat orokorra bot-aren mezuekin bukatzea. Irtenbidea elkarrizketa pertsonal batean ahalik eta funtzionaltasun gehien ekartzea da.

Hackathon DevDays'19 (1. zatia): gomendioak dituen egunkaria, oinezko ibilbideen sortzailea eta demokrazia likidoaErabili genuen bot hau sortzeko Telegram-en APIa. PostgreSQL datu-base bat aukeratu zen bozketa eta ordezkaritzen historia gordetzeko. Botarekin komunikatzeko, Flask zerbitzari bat instalatu zen. Teknologia hauek aukeratu ditugulako... lehendik ere esperientzia genuen haiekin elkarreraginean gure master ikasketetan. Proiektuaren hiru osagaien lana β€”datu-basea, zerbitzaria eta bot-aβ€” arrakastaz banatu zen taldekideen artean.

Noski, hiru egun denbora laburra da, beraz, hackaton zehar ideia prototipo mailan ezarri genuen. Ondorioz, txat orokorrean bozketa irekitzeari eta bere emaitza anonimoei buruzko informazioa soilik idazten duen bot bat sortu dugu. Botoa emateko eta inkesta bat sortzeko gaitasuna bot-arekin korrespondentzia pertsonalaren bidez ezartzen da. Botoa emateko, idatzi arreta zuzena behar duten gaien zerrenda bistaratzen duen komando bat. Korrespondentzia pertsonalean, ordezkarien zerrenda eta haien aurreko botoak ikus ditzakezu, eta gairen bati buruzko botoa eman ere.

Bideoa lanaren adibide batekin.

Proiektua lantzea interesgarria izan zen, unibertsitatean egon ginen gauerdira arte.Ikasketetatik atseden hartzeko modu bikaina dela uste dugu, oso nekagarria den arren. Esperientzia atsegina izan zen talde hurbil batean lan egitea.

PS. Dagoeneko datorren ikasturterako masterretarako matrikula dago irekita dago. Batu zaitez!

Iturria: www.habr.com

Gehitu iruzkin berria