Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

Ang VK ay may isang cool na tradisyon - isang panloob na hackathon, kung saan ang mga lalaki lamang mula sa VKontakte ay maaaring lumahok. Sasabihin ko sa iyo ang tungkol sa hackathon sa ngalan ng koponan na nauna sa taong ito at namatay sa pagod sa kabuuan nito, ngunit nagawang subukan ang isang dance movement detector para sa story camera.

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

Ang pangalan ko ay Paul, pinamunuan ko ang nangungunang koponan ng pananaliksik ng VKontakte at may mainit na saloobin sa mga hackathon: bilang isang kalahok (Junction o isang bilang ng mga deephacks) at kamakailan bilang isang curator (VK hackathon o VKontakte case sa Junction - nga pala, ito ang unang pagkakataon Lumahok ako doon sa kumpanyang Ruso). Isinasagawa namin ang VK Hackathon, bukas sa lahat, sa ika-apat na taon (ang huling beses na umakyat kami sa General Headquarters ng Hermitage), at isang makabuluhang bahagi ng aming technical team ang lumahok dito bago sumali sa VK.

Ang isang panloob na hackathon ay nagbibigay-daan sa mismong koponan na mag-eksperimento ng marami sa platform, subukan ang iba't ibang mga ideya at sa pangkalahatan ay magsaya. Ang isang mahalagang pagkakaiba ay ang mga solusyon ay maaaring higit na maisama sa VK, na nagbibigay sa amin ng pagkakataong makamit ang mga kawili-wiling prototype.

Ang hackathon ay nagaganap sa Singer House buong araw - sa kalagitnaan ng linggo, ang Headquarters ay nagiging midnight movement. Nakakatuwang panoorin kung paano nagulat ang mga naglilinis sa umaga - isang karaniwang walang laman na opisina tuwing 6 am ay biglang napuno ng mga mabahong tao na gumagalaw na parang mga zombie at sumisigaw: "Limang oras na lang!" O kapag pumasok ka sa kusina ng alas-tres ng umaga at parang mga dormitoryo ng unibersidad kapag may session: mga energy drink, pizza at panic. Siyempre, nangyayari ito sa isang ordinaryong araw, ngunit bihira ito sa napakalaking sukat.

Tatlong nakaraang panloob na hackathon ang naganap noong tag-araw. Noong 2019, nagpasya kaming huwag mag-aksaya ng oras sa mga bagay na walang kabuluhan at gaganapin din ang isang hackathon sa taglamig - ang dalawang hackathon ay mas mahusay kaysa sa isa, dahil ito ay isang cool na pagkakataon upang mag-eksperimento at magpatupad ng isang ideya kung saan walang sapat na oras sa karaniwang ritmo. Ang mga patakaran ay nagbago din: dati ang isang koponan ay maaaring magkaroon ng maximum na tatlong tao, ngunit sa taong ito mayroong apat, ngunit ang isa ay hindi nagsusulat ng code, ngunit dalubhasa sa ibang bagay. Posibleng mag-imbita ng mga designer, product manager, tester, marketer at iba pang lalaki sa team. May kabuuang 38 koponan ang lumahok sa hackathon na ito.

Dreamtim (mas tiyak, isa sa 38)

Nagkasundo kami Danei at sabay kaming naniwala Egor ΠΈ Tyoma Sumali sa koponan. Gaya ng inaasahan, ang mga modelo ang namamahala sa amin, si Egor ang namamahala sa iOS, si Tyoma ang namamahala sa produksyon at disenyo. Mobile development + disenyo + kaunting machine learning at backend ang susi sa tagumpay sa 2k19 hackathon.

Kahit sa taong ito, lumitaw ang isang dibisyon sa mga track, na wala pa noon: Media (kung saan kami nakilahok), Komunikasyon, Infrastruktura, Nilalaman at Libangan. Nagkaroon kami ng malalakas na katunggali. Halimbawa, patuloy kaming na-motivate ng senior designer ng VK Ilya, na pumasok sa aming silid at nagpakita ng mga prototype ng ideya ng kanyang koponan.

Idea

β€” Kumuha ako ng mga premyo sa halos lahat ng hackathon na nilahukan ko, at inaasahan ko rin ito mula sa panloob na hackathon ngayong taglamig. (Danya may tiwala sa sarili)

Ang aming (partikular na ideya ni Danina) ay sa simula ay ito: gusto naming tuklasin ang paksa ng pagbuo ng musika + magkaroon ng lahat sa device, kung hindi, ito ay magiging "masyadong backend". Nagsimula ang hackathon sa brainstorming - naisip namin kung ano ang maaari naming gawin. Ang pagbuo ng musika ay kawili-wili, ngunit gusto kong gawin itong nakadepende sa gumagamit. Ilang mga pindutan? Siguro gumuhit sa screen at bumuo ng musika batay dito? Kasabay nito, natutunan namin mula sa mga lalaki mula sa Music team kung paano magdagdag ng mga track na kailangan namin. Pero parang hindi pa rin tama. Ang mga kapitbahay na koponan ay masayang gumagawa ng isang bagay sa kanilang mga laptop at nagdulot ng pagkabigo.

β€” Paano kung nakilala mo ang air guitar, na para kang tumutugtog ng gitara, at depende dito, tugtugin mo ang tunog ng gitara? (Tema)

Bingo! Ang ideya ay militante, at mayroon tayong kapangyarihan na ayusin ang lahat sa isang mahusay na paraan. Para sa motion recognition meron posenet, at napaka ok niya (mobile-friendly din). Magpanggap tayo!

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

desisyon

Ang mga pangunahing gawain ay upang lumikha ng isang grid sa device (ito ay dapat na totoo) at matutong makilala ang mga paggalaw. Nagsimulang mag-port si Egor, nagsimulang mag-isip si Tyoma tungkol sa kung anong mga paggalaw ang magiging interesante sa pagsasama (isang gitara lang - nakakainip), at nagsimula kaming makilala ni Danya. Ngunit ito ay nangangailangan ng data. Ano ang pagkakaiba sa pagitan ng isang PRO at isang baguhan? Ang PRO ay may isang kumpol na may GPU - iyon ay isang bagay, dalawa - ang PRO ay mangongolekta ng data para sa sarili nito kapag kailangan nito. Inayos ni Danya ang isang stand kung saan ang raw coordinate data ng isang kinikilalang figure ay naitala mula sa isang camera, at pagkatapos - sayawan! Noong gabing iyon natuto kaming sumayaw ng flossing, skibidi ΠΈ dudtsa.

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript
Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

Bilang paninindigan para sa pagre-record ng mga paggalaw, gumamit kami ng work laptop, na unang nag-record ng mukha ni Dani (hindi pa siya nakakasulat ng kahit isang linya sa JS dati) nang makakita siya ng isa pang hindi maintindihang error sa JS.

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

β€” Hindi ko maintindihan, mayroon akong level error: nawala ang print sa Python! (Danya)

Pagsasayaw sa gabi (literal)

Nag-film kami ng maraming oras ng tuluy-tuloy na paggalaw sa harap ng camera sa gabi. Sila mismo ang nag-record nito, at nahuli rin ang mga developer na gumala sa sahig at PINILIT silang SUMAYAW. Nakakuha kami ng pitong magkakaibang kumbinasyon - ngayon kailangan naming matutong makilala ang mga ito.

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript
Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

"Pumasok ako tuwing tatlong oras upang tingnan kung buhay ang mga lalaki." Sumigaw si Pasha: "May pivot kami!" - at buong lakas na pumikit si Danya. Pagkatapos ang lahat ay sumayaw ng pipe. Nang maubusan ng lakas si Daniil, binuksan ni Pasha ang bintana at sinabi: β€œGuys, we need to freshen up.” (Madina)

Ang data mula sa figure ay preprocessed: ang mga binti ay itinapon, ang ulo ay na-average, at na-convert sa polar coordinates na may kaugnayan sa katawan ng tao. Sinanay namin ang motion detector gamit ang catboost - gamit ang tatlong segundong sipi ng stream ng data mula sa modelo. Hanggang sa gabing ito ay hindi kami nagtrabaho sa library - ito ay naging isang labanan, at maaari mo itong ilagay sa iOS.

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

Nagturo sila ng multi-class classification, na ang isang klase ay kasing boring hangga't maaari - nakatambay lang sa harap ng camera. Ang pinakamahirap na bagay ay ang pag-record ng paggalaw ng "bato" - umiling kami nang walang pag-iimbot na pagkaraan ng ilang sandali ay nagsimula itong umikot. At inilabas nila ang isang kamay na may "kambing", kahit na ito ay walang kabuluhan - ang posenet ay may isang punto lamang sa buong kamay, hindi ito nakakakita ng mga daliri.

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

β€” Bandang alas-3 ng umaga, umakyat si Pasha sa isang sleeping bag at eksklusibong lumipat dito sa loob ng isang oras, tumatalon na parang isang tunay na kangaroo. (Madina)

Bandang alas-8 ng umaga, tinamaan kami ng isang maliit na krisis - lahat ay nasira at walang gumagana, ngunit ang lahat ay biglang nagsimulang gumana nang mag-isa. Ang pag-screw sa parehong mga modelo sa application ay naging pinakamalaking hamon - natapos ni Egor ang pagpupulong literal limang minuto bago ang deadline. Bigyan natin siya ng sahig:

β€” Pagkatapos naming mahanap ang ideya, ang lahat ay naging napakahusay at produktibo. Sinanay ng mga lalaki ang grid at sumayaw, at inilakip ko ang PoseNet sa story camera sa JavaScript nang direkta sa browser. Ang mga paunang pagsubok ay gumana nang maayos at nakakagulat na mabilis. Samakatuwid, nang sa umaga ay lumabas na ang WebGL sa WebView ay hindi inaasahang nag-crash kapag nagtatrabaho sa mga texture para sa ilang bagay na walang kapararakan at walang paraan upang makahanap ng solusyon, halos mawalan ako ng pag-asa. Ngunit huli na para sumuko: nasusunog kami sa ideya. Samakatuwid, sa huling lakas namin at sa huling lata ng red bull, nag-drag kami ng alternatibong modelo batay sa CoreML papunta sa iOS client on the go at nagsimulang subaybayan ang mga pose nang native - para ipadala ang mga ito sa modelo na may mga sayaw. at makakuha ng ilang resulta sa output. Sa esensya, inulit namin ang gawain nang paulit-ulit! Ang isa pang hamon ay ang pangalawang modelo, na biglang nagsimulang umasa ng higit sa isang libong argumento bilang input! Nakabuo ang Xcode ng isang interface para dito na magiging hindi makatotohanang gamitin nang direkta. Sa kabutihang palad, hindi ako binigo ng aking kaalaman sa Objective-C, at isang eleganteng solusyon ang natagpuan. (Yegor)

Pitching

Noong Biyernes, sa ganap na 14 p.m., nagkaroon ng deadline para mag-upload ng video tungkol sa proyektoβ€”ilang koponan ang hindi nakarating sa oras at na-disqualify. At noong 14:40 ay nagkaroon kami ng pitch sa mga track curator na may kaugnayan sa produkto. Mayroon kaming mga lalaki mula sa koponan ng Video at Musika, at tila nagustuhan nila ang lahat tungkol sa pitch. Nakuha namin ang pangalawang lugar sa aming track (gusto namin ang una, dahil mayroon kaming isang cool na proyekto!) at natapos sa finals (dalawang koponan mula sa aming track ang kwalipikado).

β€” Ngayong taon ako ang naging tagapangasiwa ng isang panloob na hackathon sa unang pagkakataon. Sasabihin ko nang may pagpigil: napakahirap suriin ang gawain. Ang antas ng lahat ng mga koponan nang walang pagbubukod ay hindi paniwalaan. Ang isang feature ay hindi lamang dapat maging advanced sa teknolohiya, hindi lamang "malapit sa produksyon," hindi lamang "potensyal na kapaki-pakinabang para sa aming mga produkto." Dapat matugunan ng nanalong proyekto ang lahat ng pamantayang ito nang sabay-sabay. Mukhang nagtagumpay ang mga lalaki. (Andrew)

Kami ay nagkaroon ng aming huling pitching sa 17:40 p.m. Sa oras na ito, kinakailangan na maghanda ng isa pang demo, sa pagkakataong ito para sa buong Koponan, at iba na ang hurado - ang direktor ng teknikal, direktor ng produkto at direktor ng marketing.

Alas singko ng gabi ay natapos na ang lahat - umuwi kami sa kama, walang alam tungkol sa mga resulta.

Ang mga resulta ay sa wakas

Ang mga resulta ay inihayag lamang noong Lunes. Una, iginawad nila ang mga nanalo sa mga track (hindi ang kaso namin - ipaalala ko sa iyo, pangalawa kami), pagkatapos ay bumoto ang mga pinuno ng madla (hindi kami), at pagkatapos ay ang pangatlo (at hindi rin kami ito), ang pangalawa (muli, hindi tayo) at, sa wakas, tayo.

Narito ang mga proyektong kailangan naming makipagkumpitensya:

2nd place - tumutugon na voice assistant;
Ika-3 lugar - timeline ng mga panloob na error;
Ang People's Choice Award ay isang paalala ng mga paparating na chat meeting.

β€” Ito ang pinakamahusay na hackathon na nilahukan ko. Mas marami ang biyahe kaysa sa Junction. (Danya)

β€” Talagang nasiyahan ako sa pakikipagtulungan sa mga kasamahan mula sa isang ganap na naiibang departamento - Hindi ko pa nahawakan ang machine learning noon, tila isang uri ng magic sa akin, ngunit ngayon ay hindi na ganoon. (Yegor)

β€” Napakagandang maging bahagi ng napakagandang koponan na may napakagandang proyekto. Sa isang araw nagawa kong maging isang designer, videographer, sound engineer, editor, musician at copywriter! Ako lang din ang nakakatulog. (Tema)

Buhay pagkatapos ng hackathon

Karamihan sa mga proyekto na binuo sa hackathon ay hindi nagagawa sa mga benta para sa iba't ibang mga kadahilanan: isang pagbabago ng focus, pagiging kumplikado ng pagpapatupad, isang bagay na hindi inaasahan sa pagpapatupad. Ang isang panloob na hackathon ay walang pagbubukod.

Gayunpaman, inilista namin ang mga proyekto na nakakita ng liwanag ng araw:

  • paborito ng lahat Vinci;
  • pagsusuri sa pagiging tugma ng user, na inilunsad noong Pebrero 14, 2018;
  • красивыС mga poster para sa maikling mga entry;
  • at ilang panloob na feature na ikalulugod naming pag-usapan, ngunit hindi namin magawa :)

Paano kami nanalo ng internal hackathon sa pamamagitan ng pag-aaral ng skibidi, flossing at javascript

Pinagmulan: www.habr.com

Magdagdag ng komento