Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

VK are o tradiție grozavă - un hackathon intern, la care pot participa doar băieții de la VKontakte. Vă voi spune despre hackathon în numele echipei care a ocupat primul loc anul acesta și a murit de oboseală în întregime, dar a reușit să încerce un detector de mișcare de dans pentru camera de filmare.

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

numele meu Paul, Conduc echipa de cercetare de top VKontakte și am o atitudine caldă față de hackathoane: ca participant (Junction sau un număr de deephacks) și recent ca curator (VK hackathon sau cazul VKontakte la Junction - apropo, aceasta a fost prima dată Am participat acolo companie rusă). Desfășurăm Hackathonul VK, deschis tuturor, pentru al patrulea an (ultima dată când am urcat în Cartierul General al Schitului), și o parte semnificativă a echipei noastre tehnice a participat la el înainte de a se alătura VK.

Un hackathon intern permite echipei însăși să experimenteze mult cu platforma, să testeze diferite idei și, în general, să se distreze. O diferență importantă este că soluțiile pot fi mult mai integrate în VK, ceea ce ne oferă posibilitatea de a realiza prototipuri interesante.

Hackatonul are loc în Casa Cântărețului toată ziua - chiar în mijlocul săptămânii, Cartierul General se transformă într-o mișcare de la miezul nopții. Este amuzant să privești cum se uită surprinși în jur, dimineața, un birou de obicei gol, la ora 6 dimineața, se dovedește brusc a fi plin de oameni zguduiți care se mișcă ca niște zombi și strigă: „Au mai rămas cinci ore!” Sau când intri în bucătărie la trei dimineața și miroase a cămine universitare în timpul sesiunilor: băuturi energizante, pizza și panică. Acest lucru, desigur, se întâmplă într-o zi obișnuită, dar este rar la o scară atât de mare.

Trei hackathon-uri interne anterioare au avut loc în vară. În 2019, am decis să nu pierdem timpul cu fleacuri și să organizăm și un hackathon de iarnă - două hackathon-uri sunt mult mai bune decât unul, deoarece aceasta este o oportunitate grozavă de a experimenta și de a implementa o idee pentru care nu este suficient timp în ritmul obișnuit. S-au schimbat și regulile: anterior o echipă putea avea maximum trei oameni, dar anul acesta sunt patru, dar unul nu scrie cod, ci este specializat în altceva. A fost posibil să invităm în echipă designeri, manageri de produs, testeri, marketeri și alți bărbați. Un total de 38 de echipe au participat la acest hackathon.

Dreamtim (mai precis, unul din 38)

Am ajuns la o înțelegere cu Danei și împreună ne-am convins Egor и Tyoma intră în echipă. După cum era de așteptat, modelele s-au ocupat de noi, Egor a fost responsabil de iOS, Tyoma s-a ocupat de producție și design. Dezvoltarea mobilă + design + puțină învățare automată și backend sunt cheia succesului la hackatonul 2k19.

Chiar și anul acesta a apărut o împărțire în piese, care nu exista până acum: Media (la care am participat), Comunicații, Infrastructură, Conținut și Divertisment. Am avut concurenți puternici. De exemplu, am fost motivați în mod constant de designerul senior al VK Ilya, care a intrat în camera noastră și a arătat prototipuri ale ideii echipei sale.

Idee

— Am luat premii la aproape toate hackathoanele la care am participat și mă așteptam la același lucru de la hackatonul intern din această iarnă. (Danya era încrezător în sine)

Ideea noastră (în special a Daninei) a fost inițial aceasta: am vrut să explorăm subiectul generației de muzică + să avem totul pe dispozitiv, altfel ar fi „prea backend”. Hackathonul a început cu brainstorming - ne-am gândit la ce am putea veni. Generarea muzicii este interesantă, dar vreau să o fac dependentă de utilizator. Niște butoane? Poate desenați pe ecran și generați muzică pe baza ei? În același timp, am învățat de la băieții din echipa de muzică cum să adăugăm melodiile de care aveam nevoie. Dar tot nu părea tocmai corect. Echipele învecinate lucrau cu bucurie la ceva pe laptopurile lor și provoacă frustrare.

— Ce se întâmplă dacă recunoști chitara de aer, ca și cum ai cânta la chitară și, în funcție de asta, cânți sunetul chitarei? (Tema)

Bingo! Ideea este militantă și avem puterea de a aranja totul într-un mod grozav. Pentru recunoașterea mișcării există posenet, și este foarte ok (de asemenea, pentru mobil). Să ne prefacem!

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

decizie

Sarcinile principale sunt de a crea o grilă pe dispozitiv (trebuie să fie reală) și de a învăța să recunoașteți mișcările. Egor a început să facă portare, Tyoma a început să se gândească la ce mișcări ar fi interesant de incorporat (doar o chitară - plictisitor), iar eu și Danya am început să le recunoaștem. Dar asta necesită date. Care este diferența dintre un PRO și un amator? PRO are un cluster cu un GPU - acesta este un lucru, doi - PRO va colecta date pentru sine atunci când are nevoie de ele. Danya a organizat un stand unde datele de coordonate brute ale unei figuri recunoscute au fost înregistrate de la o cameră, apoi - dansând! În noaptea aceea am învățat să dansăm cu ata dentară, skibidi и dudtsa.

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript
Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

Ca suport pentru înregistrarea mișcărilor, am folosit un laptop de lucru, care a înregistrat mai întâi fața lui Dani (nu scrisese nici un rând în JS înainte) când a văzut o altă eroare JS de neînțeles.

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

— Nu înțeleg, am o eroare de nivel: print-ul a dispărut în Python! (Danya)

Dans de noapte (la propriu)

Am filmat multe ore de mișcare continuă în fața camerei noaptea. L-au înregistrat ei înșiși și i-au prins și pe dezvoltatorii care au rătăcit pe podea și i-au FORțat să danseze. Am primit șapte combinații diferite - acum trebuia să învățăm să facem distincția între ele.

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript
Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

„Am venit la fiecare trei ore să verific dacă băieții sunt în viață.” Pașa a strigat: „Avem un pivot!” - iar Danya s-a îndoit din toate puterile. Apoi toată lumea a dansat pipa. Când Daniil a rămas fără puteri, Pașa a deschis fereastra și a spus: „Băieți, trebuie să ne împrospătăm”. (Madina)

Datele din figură au fost preprocesate: picioarele au fost aruncate, capul a fost mediat și convertit în coordonatele polare în raport cu trunchiul. Am antrenat detectorul de mișcare folosind catboost - folosind un fragment de trei secunde din fluxul de date din model. Până în această noapte nu lucrasem cu biblioteca - s-a dovedit a fi una de luptă și o poți pune în iOS.

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

Au predat clasificarea în mai multe clase, o clasă fiind cât se poate de plictisitoare - doar stând în fața camerei. Cel mai dificil lucru a fost să înregistrăm mișcarea „rock” - ne-am clătinat din cap atât de altruist, încât după un timp a început să se învârtească. Și au întins o mână cu o „capră”, deși acest lucru a fost inutil - posenet are un singur punct pe toată mâna, nu vede degetele.

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

— Pe la 3 dimineața, Pașa s-a urcat într-un sac de dormit și s-a mișcat exclusiv în el timp de o oră, sărind ca un cangur adevărat. (Madina)

În jurul orei 8 am fost loviti de o mică criză - totul era stricat și nimic nu funcționa, dar apoi totul a început brusc să funcționeze de la sine. Înșurubarea ambelor modele în aplicație s-a dovedit a fi cea mai mare provocare - Egor a terminat asamblarea cu cinci minute înainte de termenul limită. Să-i dăm cuvântul:

— După ce am găsit ideea, totul a mers foarte bine și productiv. Băieții au antrenat grila și au dansat, iar eu am atașat PoseNet la camera de poveste în JavaScript direct în browser. Testele inițiale au funcționat bine și au fost surprinzător de rapide. Prin urmare, când dimineața s-a dovedit că WebGL în WebView s-a prăbușit în mod neașteptat când lucram cu texturi pentru niște prostii și nu a existat nicio modalitate de a găsi o soluție, aproape că am căzut în disperare. Dar era prea târziu să renunțăm: ardeam de idee. Prin urmare, cu ultimele puteri și cu ultima cutie de red bull, am târât un model alternativ bazat pe CoreML în clientul iOS din mers și am început să urmărim ipostaze în mod nativ - pentru a le trimite apoi modelului cu dansuri. și obțineți un rezultat la ieșire. În esență, am repetat munca din nou! O altă provocare a fost cel de-al doilea model, care a început brusc să se aștepte la mai mult de o mie de argumente ca intrare! Xcode a generat o interfață pentru acesta, care ar fi pur și simplu nerealist de utilizat direct. Din fericire, cunoștințele mele despre Objective-C nu m-au dezamăgit și s-a găsit o soluție elegantă. (Egor)

Cabrare

Vineri, la 14:14, a fost un termen limită pentru a încărca un videoclip despre proiect – mai multe echipe nu au ajuns la timp și au fost descalificate. Iar la 40:XNUMX am avut o prezentare la curatorii piesei legate de produs. Am avut băieți din echipa Video și Muzică și parcă le place totul despre teren. Am luat locul doi pe pista noastră (ne-am dorit primii, pentru că avem un proiect atât de tare!) și am ajuns în finală (două echipe de pe pista noastră s-au calificat).

— Anul acesta am fost pentru prima dată curatorul unui hackathon intern. Voi spune cu reținere: a fost extrem de greu de evaluat lucrarea. Nivelul tuturor echipelor fără excepție a fost de necrezut. O caracteristică nu ar trebui să fie doar avansată din punct de vedere tehnologic, nu doar „aproape de producție”, nu doar „potențial utilă pentru produsele noastre”. Proiectul câștigător trebuie să îndeplinească toate aceste criterii simultan. Se pare că băieții au reușit. (Andrew)

Am avut ultima lansare la 17:40. Până atunci, era necesar să se pregătească un alt demo, de data aceasta pentru întreaga echipă, iar juriul era diferit - directorul tehnic, directorul de produs și directorul de marketing.

La cinci seara totul s-a terminat - ne-am dus acasă la culcare, neștiind nimic despre rezultate.

Rezultatele sunt in sfarsit

Rezultatele au fost anunțate abia luni. În primul rând, ei au premiat câștigătorii pieselor (nu cazul nostru - permiteți-mi să vă reamintesc, am fost al doilea), apoi liderii audienței votează (nu noi), iar apoi al treilea (și nici acesta nu suntem noi), al doilea (din nou, nu noi) și, în sfârșit, noi.

Iată proiectele cu care a trebuit să concuram:

Locul 2 - asistent vocal receptiv;
Locul 3 - cronologia erorilor interne;
Premiul People's Choice este un memento al viitoarelor întâlniri prin chat.

— Acesta este cel mai bun hackathon la care am participat vreodată. Era mult mai mult cu mașina decât la Junction. (Danya)

— Mi-a plăcut foarte mult să lucrez cu colegi dintr-un departament complet diferit - nu m-am atins niciodată de învățarea automată înainte, mi s-a părut un fel de magie, dar acum nu mai este așa. (Egor)

— A fost foarte tare să faci parte dintr-o echipă atât de cool cu ​​un proiect atât de grozav. Într-o zi am reușit să fiu designer, videograf, inginer de sunet, editor, muzician și copywriter! Am fost și singurul care a reușit să doarmă. (Tema)

Viața după hackathon

Majoritatea proiectelor dezvoltate la hackathonuri nu ajung la vânzări din diverse motive: o schimbare de focus, complexitatea implementării, ceva neprevăzut în implementare. Un hackathon intern nu face excepție.

Cu toate acestea, enumerăm proiectele care au văzut lumina zilei:

Cum am câștigat un hackathon intern învățând skibidi, ață dentară și javascript

Sursa: www.habr.com

Adauga un comentariu