Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasya

Bag-o lang kami giingnan bahin sa programa sa corporate master sa JetBrains ug ITMO University "Software Development / Software Engineering". Among gidapit ang tanang interesado sa usa ka bukas nga adlaw sa Lunes, Abril 29. Isulti namon kanimo ang bahin sa mga bentaha sa programa sa among agalon, kung unsang mga bonus ang among gitanyag sa mga estudyante ug kung unsa ang among gipangayo nga balos. Dugang pa, tubagon gyud namo ang mga pangutana sa among mga bisita.

Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasyaAng bukas nga adlaw ipahigayon sa opisina sa JetBrains sa Times Business Center, diin nagtuon ang mga estudyante sa among agalon. Magsugod sa 17:00. Mahimo nimong mahibal-an ang tanan nga mga detalye ug magparehistro alang sa kalihokan sa website mse.itmo.ru. Dali ug dili ka magmahay!

Usa sa mga nag-unang bahin sa programa mao ang praktis. Daghan niini ang mga estudyante: senemanang homework, mga proyekto sa semester ug hackathon. Salamat sa pagkompleto sa pagpaunlod sa modernong mga pamaagi sa pag-uswag ug mga teknolohiya sa panahon sa ilang mga pagtuon, ang mga gradwado dali nga nag-integrate sa mga proseso sa trabaho sa dagkong mga kompanya sa IT.

Niini nga post gusto namong hisgutan ang mas detalyado bahin sa DevDays hackathons, nga mahitabo matag unom ka bulan. Ang mga lagda yano ra: ang mga grupo sa 3-4 nga mga tawo nagpundok ug sulod sa tulo ka adlaw ang mga estudyante nagdala sa ilang kaugalingong mga ideya sa kinabuhi. Unsa kaha ang mahitabo niini? Basaha ang unang bahin sa mga istorya bahin sa mga proyekto sa hackathon karong semester gikan sa mga estudyante mismo :)

Diary nga adunay mga rekomendasyon sa salida

Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasya

Awtor sa ideya
Ivan Ilchuk
Paglinya
Ivan Ilchuk – pag-parse sa laraw sa salida, server
Vladislav Korablinov – pagpalambo sa mga modelo alang sa pagtandi sa kaduol sa usa ka diary entry ug sa laraw sa usa ka pelikula
Dmitry Valchuk - UI
Nikita Vinokurov – UI, disenyo

Ang tumong sa among proyekto mao ang pagsulat og desktop application - usa ka diary nga magrekomendar og mga pelikula sa user base sa mga entry niini.

Kini nga ideya miabut kanako sa diha nga ako padulong sa unibersidad ug naghunahuna sa akong mga problema. "Bisan unsa nga problema nga giatubang sa usa ka tawo, ang pipila ka klasiko nga magsusulat nagsulat na bahin niini," naghunahuna ako. "Ug tungod kay adunay nagsulat niini, kini nagpasabut nga adunay usa nga naka-film na niini." Busa ang tinguha sa pagtan-aw sa usa ka salida mahitungod sa usa ka tawo nga adunay sama nga mental nga pagsakit nagpakita natural.

Dayag nga adunay daghang lainlain nga lahi nga mga talaarawan ug lahi nga serbisyo sa rekomendasyon (apan kasagaran ang mga rekomendasyon gibase sa kung unsa ang gusto sa tawo kaniadto). Sa prinsipyo, kini nga proyekto adunay usa ka butang nga managsama sa pagpangita alang sa usa ka sine pinaagi sa mga yawe nga punto, apan sa gihapon, una sa tanan, ang among aplikasyon naghatag sa pag-andar sa usa ka diary.

Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasyaGiunsa nato kini pagpatuman? Kung imong gipugos ang buton sa salamangka, ang diary nagpadala usa ka entry sa server, diin gipili ang pelikula base sa paghulagway nga gikuha gikan sa Wikipedia. Ang among frontend gihimo sa Electron (gigamit namo kini, dili ang website, tungod kay sa sinugdanan mihukom kami nga tipigan ang data sa user dili sa server, apan sa lokal sa kompyuter), ug ang server ug ang sistema sa rekomendasyon mismo gihimo sa Python: Ang mga TF kay nakuha gikan sa mga paghulagway -IDF vectors nga gitandi alang sa kaduol sa diary entry vector.

Usa ka miyembro sa team nagtrabaho lamang sa modelo, ang lain nagtrabaho sa tibuuk nga atubangan (sa sinugdan kauban ang usa ka ikatulo nga miyembro, nga sa ulahi mibalhin sa pagsulay). Nag-apil ko sa pag-parse sa mga laraw sa pelikula gikan sa Wikipedia ug sa server.

Lakang sa lakang nagkaduol kami sa resulta, pagbuntog sa daghang mga problema, sugod sa kamatuoran nga ang modelo sa sinugdanan nanginahanglan daghang RAM, nga natapos sa kalisud sa pagbalhin sa datos sa server.

Karon, aron makapangita usa ka sine alang sa gabii, wala ka magkinahanglan daghang paningkamot: ang sangputanan sa among tulo ka adlaw nga trabaho usa ka aplikasyon sa desktop ug usa ka server, nga gi-access sa gumagamit pinaagi sa https, nakadawat agig tubag sa usa ka pagpili sa 5 nga mga pelikula nga adunay usa ka mubo nga paghulagway ug usa ka poster.

Ang akong mga impresyon sa proyekto positibo kaayo: ang trabaho nakadani gikan sa sayo sa buntag hangtod sa lawom nga gabii, ug ang sangputanan nga aplikasyon matag karon ug unya nagpatunghag labi ka kataw-anan nga mga sangputanan sa istilo nga "Wala’y Pagkatulog nga Gabii" alang sa usa ka entry sa talaadlawan bahin sa homework sa unibersidad o usa ka pelikula. mahitungod sa unang adlaw sa eskwelahan alang sa usa ka istorya mahitungod sa unang adlaw sa departamento.

Makit-an ang mga may kalabotan nga link, installer, ug uban pa dinhi.

Generator sa ruta

Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasyaAwtor sa ideya
Artemyeva Irina
Paglinya
Artemyeva Irina – team lead, main loop
Gordeeva Lyudmila – musika
Platonov Vladislav – mga ruta

Ganahan kaayo ko nga maglakaw libot sa siyudad: pagtan-aw sa mga bilding, mga tawo, paghunahuna mahitungod sa kasaysayan. Apan, bisan sa pag-ilis sa akong pinuy-anan, sa madugay o sa madali ako nag-atubang sa problema sa pagpili sa usa ka ruta: Nakompleto nako ang tanan nga akong mahunahunaan. Ingon niini ang ideya nga mitungha aron awtomatiko ang paghimo sa mga ruta: gipakita nimo ang punto sa pagsugod ug gitas-on sa ruta, ug ang programa naghatag kanimo usa ka kapilian. Ang mga paglakaw mahimong taas, mao nga ang usa ka lohikal nga pag-uswag sa ideya daw nagdugang sa abilidad sa pagpaila sa intermediate nga mga punto alang sa usa ka "paghunong," diin mahimo ka nga mag-snack ug mopahulay. Ang laing sanga sa kalamboan mao ang musika. Ang paglakaw sa musika kanunay nga mas makalingaw, mao nga maayo nga idugang ang abilidad sa pagpili sa usa ka playlist base sa usa ka namugna nga ruta.

Dili posible nga makit-an ang ingon nga mga solusyon sa mga naglungtad nga aplikasyon. Ang labing duol nga mga analogue mao ang bisan unsang mga tigplano sa ruta: Google Maps, 2GIS, ug uban pa.

Labing sayon ​​​​nga adunay ingon nga aplikasyon sa imong telepono, mao nga ang paggamit sa Telegram usa ka maayong kapilian. Gitugotan ka niini nga magpakita og mga mapa ug magdula og musika, ug makontrol nimo kining tanan pinaagi sa pagsulat og bot. Ang panguna nga trabaho sa mga mapa gihimo gamit ang Google Map API. Gipasayon ​​sa Python ang paghiusa sa duha ka teknolohiya.

Adunay tulo ka mga tawo sa team, mao nga ang buluhaton gibahin ngadto sa duha ka non-overlapping subtasks (pagtrabaho uban sa mga mapa ug pagtrabaho uban sa musika) aron ang mga lalaki makahimo sa pagtrabaho nga independente, ug ako mikuha sa akong kaugalingon sa paghiusa sa mga resulta.

Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasyaWalay usa kanamo ang nakatrabaho sukad sa Google Map API o mga sinulat nga Telegram bots, mao nga ang nag-unang problema mao ang gidaghanon sa oras nga gigahin sa pagpatuman sa proyekto: ang pagsabut sa usa ka butang kanunay nagkinahanglan og mas daghang oras kaysa pagbuhat sa usa ka butang nga nahibal-an nimo pag-ayo. Lisud usab ang pagpili sa Telegram bot API: tungod sa pag-block, dili tanan sila nagtrabaho ug kinahanglan kong makigbisog aron ma-set up ang tanan.

Angayan nga hisgutan nga gilain kung giunsa nasulbad ang problema sa paghimo og mga ruta. Sayon ang paghimo og ruta tali sa duha ka lokasyon, apan unsa ang imong matanyag sa tiggamit kung nahibal-an ra ang gitas-on sa ruta? Tugoti ang tiggamit nga maglakaw 10 kilometros. Ang usa ka punto gipili sa usa ka arbitraryong direksyon, ang gilay-on diin sa usa ka tul-id nga linya mao ang 10 ka kilometro, pagkahuman ang usa ka ruta gitukod hangtod niini nga punto ubay sa tinuud nga mga dalan. Lagmit dili kini tul-id, mao nga ato kining mub-an sa gitakda nga 10 ka kilometro. Adunay daghang mga kapilian alang sa ingon nga mga ruta - nakakuha kami usa ka tinuud nga generator sa ruta!

Sa sinugdan, gusto nako nga bahinon ang mapa sa mga lugar nga katumbas sa berde nga mga lugar: mga embankment, mga sawang, mga kadalanan, aron makuha ang labing nindot nga ruta alang sa paglakaw, ug makamugna usab og musika uyon sa kini nga mga lugar. Apan ang pagbuhat niini gamit ang Google Map API nahimong lisud (wala kami'y panahon sa pagsulbad niini nga problema). Bisan pa, posible nga ipatuman ang pagtukod sa usa ka ruta pinaagi sa piho nga mga tipo sa mga lokasyon (tindahan, parke, librarya): kung ang ruta naglibot sa tanan nga gipiho nga mga lugar, apan ang gitinguha nga distansya wala pa mabiyahe, kini nahuman sa usa ka distansya nga gitakda sa user sa random nga direksyon. Gitugotan ka usab sa Google Map API sa pagkalkulo sa gibanabana nga oras sa pagbiyahe, nga makatabang kanimo sa pagpili sa usa ka playlist nga eksakto alang sa tibuuk nga paglakaw.

Ingon sa usa ka resulta, nakahimo sa paghimo sa usa ka henerasyon mga ruta pinaagi sa pagsugod nga punto, distansya ug tunga nga mga punto; giandam ang tanan sa pagklasipikar sa musika sumala sa mga seksyon sa ruta, apan tungod sa kakulang sa oras, nakahukom nga biyaan ang kapilian sa pagpili sa usa ka playlist ingon usa ka dugang nga sanga sa UI. Busa, ang user nakahimo sa independente nga pagpili sa musika nga paminawon.

Ang panguna nga problema sa pagtrabaho sa musika mao ang wala mahibal-an kung asa makuha ang mga mp3 file nga wala kinahanglana ang tiggamit nga adunay usa ka account sa bisan unsang serbisyo. Nakahukom nga mohangyo og musika gikan sa user (UserMusic mode). Naghimo kini usa ka bag-ong problema: dili tanan adunay katakus sa pag-download sa mga track. Ang usa ka solusyon mao ang paghimo og usa ka repository nga adunay musika gikan sa mga tiggamit (BotMusic mode) - gikan niini makahimo ka og musika bisan unsa pa ang mga serbisyo.

Bisag dili perpekto, nahuman namo ang buluhaton: nahuman namo ang usa ka aplikasyon nga gusto nakong gamiton. Sa kinatibuk-an, kini cool kaayo: tulo ka adlaw ang milabay ikaw adunay usa lamang ka ideya ug dili usa ka hunahuna kung giunsa kini ipatuman, apan karon adunay usa ka nagtrabaho nga solusyon. Importante kaayo kini nga tulo ka adlaw alang kanako. Wala na ako mahadlok nga maghimo ug butang nga wala koy igong kahibalo nga ipatuman, ang pagkahimong usa ka team lead makapainteres kaayo, ug akong nailhan ang talagsaong mga lalaki nga miapil sa akong team mas maayo!

Demokrasya sa Likido

Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasya

Awtor sa ideya
Stanislav Sychev
Paglinya
Stanislav Sychev - nanguna sa team, database
Nikolay Izyumov – bot interface
Anton Ryabushev – backend

Sulod sa lain-laing mga grupo, kanunay adunay panginahanglan sa paghimo og desisyon o pagboto. Kasagaran sa maong mga kaso sila modangop sa direkta nga demokrasya, bisan pa, kung ang grupo modako, ang mga problema mahimong motungha. Pananglitan, ang usa ka tawo sa usa ka grupo tingali dili gusto nga motubag kanunay sa mga pangutana o motubag sa mga pangutana bahin sa pipila nga mga hilisgutan. Sa dagkong mga grupo, aron malikayan ang mga problema nga ilang gamiton representante nga demokrasya, sa dihang ang usa ka linain nga grupo sa β€œmga tinugyanan” gipili gikan sa tanang katawhan, nga nagpagawas sa uban gikan sa palas-anon sa pagpili. Apan lisud kaayo nga mahimong usa ka representante, ug ang tawo nga mahimong usa dili kinahanglan nga matinud-anon ug respetado, ingon nga siya daw mga botante.

Aron masulbad ang mga problema sa duha ka sistema, gisugyot ni Brian Ford ang konsepto likido nga demokrasya. Sa ingon nga sistema, ang tanan gawasnon sa pagpili sa papel sa usa ka regular nga tiggamit o usa ka delegado, pinaagi lamang sa pagpahayag sa ilang gusto. Si bisan kinsa mahimong mobotar nga independente o mohatag ug boto sa usa ka delegado sa usa o daghan pang isyu. Ang usa ka delegado mahimo usab nga mobotar. Dugang pa, kung ang delegado dili na angayan sa botante, ang boto mahimong i-withdraw bisan unsang orasa.

Ang mga panig-ingnan sa paggamit sa likido nga demokrasya makita sa politika, ug gusto namon nga ipatuman ang parehas nga ideya alang sa adlaw-adlaw nga paggamit sa sulod sa tanan nga mga grupo sa mga tawo. Sa sunod nga DevDays hackathon, nakahukom kami sa pagsulat sa Telegram bot alang sa pagboto sumala sa mga prinsipyo sa likido nga demokrasya. Sa parehas nga oras, gusto nako nga likayan ang usa ka sagad nga problema sa ingon nga mga bot - pagbara sa kinatibuk-ang chat nga adunay mga mensahe gikan sa bot. Ang solusyon mao ang pagdala sa daghang gamit kutob sa mahimo sa usa ka personal nga panag-istoryahanay.

Hackathon DevDays'19 (bahin 1): usa ka diary nga adunay mga rekomendasyon, usa ka generator sa ruta sa paglakaw ug likido nga demokrasyaAron mahimo kini nga bot nga among gigamit API gikan sa Telegram. Usa ka PostgreSQL database ang gipili aron tipigan ang kasaysayan sa pagboto ug mga delegasyon. Aron makigkomunikar sa bot, usa ka Flask server ang gi-install. Gipili namo kini nga mga teknolohiya tungod kay... naa na miy kasinatian nga nakig-interact nila sa among master's studies. Pagtrabaho sa tulo ka mga sangkap sa proyektoβ€”ang database, ang server, ug ang botβ€”malampuson nga naapod-apod sa mga miyembro sa team.

Siyempre, ang tulo ka adlaw usa ka mubo nga panahon, mao nga sa panahon sa hackathon gipatuman namon ang ideya sa lebel sa prototype. Ingon usa ka sangputanan, naghimo kami usa ka bot nga nagsulat sa kinatibuk-ang chat lamang nga kasayuran bahin sa pag-abli sa pagboto ug ang wala mailhi nga mga sangputanan niini. Ang abilidad sa pagbotar ug paghimo og poll gipatuman pinaagi sa personal nga sulat sa bot. Sa pagbotar, pagsulod ug command nga nagpakita sa listahan sa mga isyu nga nagkinahanglan ug direktang pagtagad. Sa personal nga mga sulat, imong makita ang lista sa mga delegado ug ang ilang nangaging mga boto, ug ihatag usab kanila ang imong boto sa usa sa mga hilisgutan.

Video nga adunay usa ka pananglitan sa trabaho.

Makapaikag ang pagtrabaho sa proyekto, nagpabilin kami sa unibersidad hangtod sa tungang gabii. Naghunahuna kami nga kini usa ka maayong paagi aron makapahulay gikan sa pagtuon, bisan kung kini kapoy kaayo. Nindot kadto nga kasinatian nga nagtrabaho sa usa ka suod nga grupo.

PS. Ang pagpalista alang sa mga programa sa master alang sa sunod nga tuig sa akademiko na ablihan. Apil kanamo!

Tinubdan: www.habr.com

Idugang sa usa ka comment