Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

VK ha una bella tradizione: un hackathon interno a cui possono partecipare solo i ragazzi di VKontakte. Vi racconterò dell'hackathon a nome della squadra che quest'anno si è classificata prima ed è morta di fatica nella sua interezza, ma è riuscita a provare un rilevatore di movimento di danza per la story camera.

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

Mi chiamo Paul, guido il principale team di ricerca di VKontakte e ho un atteggiamento caloroso nei confronti degli hackathon: come partecipante (Junction o una serie di deephack) e recentemente come curatore (VK hackathon o caso VKontakte a Junction - a proposito, questa è stata la prima volta Ho partecipato alla compagnia russa). È il quarto anno che organizziamo il VK Hackathon, aperto a tutti (l'ultima volta che siamo saliti nel quartier generale dell'Hermitage), e una parte significativa del nostro team tecnico vi ha partecipato prima di unirsi a VK.

Un hackathon interno consente al team stesso di sperimentare molto con la piattaforma, testare idee diverse e in generale divertirsi. Una differenza importante è che le soluzioni possono essere molto più integrate in VK, il che ci dà l'opportunità di realizzare prototipi interessanti.

L'hackathon si svolge tutto il giorno nella Singer House, mentre nel bel mezzo della settimana il quartier generale si trasforma in un movimento di mezzanotte. È divertente osservare come gli addetti alle pulizie si guardano intorno sorpresi al mattino: un ufficio solitamente vuoto alle 6 del mattino si rivela improvvisamente pieno di persone irsute che si muovono come zombi e gridano: "Mancano cinque ore!" O quando entri in cucina alle tre del mattino e senti l'odore dei dormitori universitari durante le sessioni: bevande energetiche, pizza e panico. Questo, ovviamente, accade in un giorno qualunque, ma è raro su così vasta scala.

In estate si sono svolti tre precedenti hackathon interni. Nel 2019, abbiamo deciso di non perdere tempo in sciocchezze e di organizzare anche un hackathon invernale: due hackathon sono molto meglio di uno, perché questa è una bella opportunità per sperimentare e realizzare un'idea per la quale non c'è abbastanza tempo nel ritmo abituale. Sono cambiate anche le regole: prima un team poteva essere composto da un massimo di tre persone, quest'anno sono quattro, ma uno non scrive codice, ma si specializza in qualcos'altro. È stato possibile invitare designer, product manager, tester, esperti di marketing e altri ragazzi nel team. A questo hackathon hanno partecipato 38 squadre in totale.

Dreamtim (più precisamente, uno dei 38)

Abbiamo raggiunto un accordo con Danei e insieme ci siamo convinti Egor и Tyoma Unisciti alla squadra. Come previsto, i modelli erano responsabili di noi, Egor era responsabile di iOS, Tyoma era responsabile della produzione e del design. Sviluppo mobile + design + un po' di machine learning e backend sono la chiave del successo dell'hackathon 2k19.

Anche quest'anno è apparsa una divisione in percorsi, che prima non esisteva: Media (a cui abbiamo partecipato), Comunicazioni, Infrastrutture, Contenuti e Intrattenimento. Avevamo concorrenti potenti. Ad esempio, siamo stati costantemente motivati ​​dal progettista senior di VK Ilya, che è entrato nella nostra stanza e ha mostrato i prototipi dell'idea del suo team.

Idea

— Ho vinto premi in quasi tutti gli hackathon a cui ho partecipato e mi aspettavo lo stesso dall'hackathon interno di quest'inverno. (Danya era sicuro di sé)

La nostra idea (nello specifico di Danina) inizialmente era questa: volevamo esplorare il tema della generazione musicale + avere tutto sul dispositivo, altrimenti sarebbe “troppo backend”. L'hackathon è iniziato con un brainstorming: abbiamo pensato a cosa avremmo potuto inventare. Generare musica è interessante, ma voglio renderlo dipendente dall'utente. Alcuni pulsanti? Forse disegnare sullo schermo e generare musica basata su di esso? Allo stesso tempo, abbiamo imparato dai ragazzi del team Musica come aggiungere le tracce di cui avevamo bisogno. Ma ancora non sembrava del tutto giusto. I team vicini stavano lavorando allegramente su qualcosa sui loro laptop e causando frustrazione.

— Cosa succede se riconosci la chitarra aerea, come se stessi suonando una chitarra e, a seconda di ciò, suoni il suono della chitarra? (Tema)

Bingo! L'idea è militante e abbiamo il potere di organizzare tutto in modo eccezionale. Per il riconoscimento del movimento c'è posenet, ed è molto ok (anche mobile-friendly). Facciamo finta!

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

Soluzione

I compiti principali sono creare una griglia sul dispositivo (deve essere reale) e imparare a riconoscere i movimenti. Egor ha iniziato a fare porting, Tyoma ha iniziato a pensare a quali movimenti sarebbe stato interessante incorporare (solo una chitarra - noiosa), e Danya e io abbiamo iniziato a riconoscerli. Ma questo richiede dati. Qual è la differenza tra un PRO e un dilettante? PRO ha un cluster con una GPU: una cosa, due: PRO raccoglierà i dati da solo quando ne avrà bisogno. Danya ha organizzato uno stand in cui i dati grezzi delle coordinate di una figura riconosciuta sono stati registrati da una telecamera e poi - ballando! Quella notte abbiamo imparato a ballare usando il filo interdentale, skibidi и dudtsa.

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript
Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

Come supporto per la registrazione dei movimenti, abbiamo utilizzato un laptop da lavoro, che per primo ha registrato il volto di Dani (non aveva scritto una sola riga in JS prima) quando ha visto un altro errore JS incomprensibile.

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

— Non capisco, ho un errore di livello: print è scomparsa in Python! (Danya)

Balli notturni (letteralmente)

Abbiamo filmato molte ore di movimento continuo davanti alla telecamera di notte. Lo hanno registrato loro stessi e hanno anche catturato gli sviluppatori che vagavano sulla pista e li hanno FORZATI a BALLARE. Abbiamo ottenuto sette combinazioni diverse: ora dovevamo imparare a distinguerle.

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript
Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

"Venivo ogni tre ore per controllare se i ragazzi erano vivi." Pasha gridò: "Abbiamo un perno!" - e Danya si fletté con tutte le sue forze. Poi tutti hanno ballato la pipa. Quando Daniil ha esaurito le forze, Pasha ha aperto la finestra e ha detto: "Ragazzi, dobbiamo rinfrescarci". (Madina)

I dati della figura sono stati preelaborati: le gambe sono state espulse, è stata calcolata la media della testa e convertita in coordinate polari rispetto al busto. Abbiamo addestrato il rilevatore di movimento utilizzando catboost, utilizzando un estratto di tre secondi del flusso di dati dal modello. Fino a stasera non avevamo lavorato con la libreria: si è rivelata essere una libreria da combattimento e puoi inserirla in iOS.

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

Hanno insegnato la classificazione multiclasse, con una classe più noiosa possibile, semplicemente restando in giro davanti alla telecamera. La cosa più difficile è stata registrare il movimento "rock": abbiamo scosso la testa in modo così altruista che dopo un po' ha iniziato a girare. E hanno allungato la mano con una "capra", anche se questo era inutile: posenet ha solo un punto su tutta la mano, non vede le dita.

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

— Verso le 3 del mattino Pasha si è infilato nel sacco a pelo e per un'ora si è mosso esclusivamente al suo interno, saltando come un vero canguro. (Madina)

Verso le 8 del mattino siamo stati colpiti da una piccola crisi: tutto era rotto e non funzionava nulla, ma poi all'improvviso tutto ha iniziato a funzionare da solo. Avvitare entrambi i modelli nell'applicazione si è rivelata la sfida più grande: Egor ha terminato l'assemblaggio letteralmente cinque minuti prima della scadenza. Diamogli la parola:

— Dopo aver trovato l’idea, tutto è andato molto bene e in modo produttivo. I ragazzi hanno allenato la griglia e hanno ballato, e ho collegato PoseNet alla story camera in JavaScript direttamente nel browser. I test iniziali hanno funzionato bene e sono stati sorprendentemente veloci. Pertanto, quando al mattino si è scoperto che WebGL in WebView si è bloccato inaspettatamente quando si lavorava con le trame per alcune sciocchezze e non c'era modo di trovare una soluzione, sono quasi caduto nella disperazione. Ma era troppo tardi per arrendersi: l’idea bruciava. Pertanto, con le ultime forze e con l'ultima lattina di Red Bull, abbiamo trascinato un modello alternativo basato su CoreML nel client iOS mentre eravamo in movimento e abbiamo iniziato a tracciare le pose in modo nativo, per poi inviarle al modello con le danze e ottieni qualche risultato in uscita. In sostanza, abbiamo ripetuto il lavoro tutto da capo! Un'altra sfida è stata il secondo modello, che improvvisamente ha iniziato ad aspettarsi più di mille argomenti in input! Xcode ha generato un'interfaccia che sarebbe semplicemente irrealistica da utilizzare direttamente. Fortunatamente, la mia conoscenza di Objective-C non mi ha deluso ed è stata trovata una soluzione elegante. (Egor)

Lancio

Venerdì, alle 14:14, c'era una scadenza per caricare un video sul progetto: diverse squadre non sono arrivate in tempo e sono state squalificate. E alle 40:XNUMX abbiamo avuto una presentazione ai curatori del brano relativa al prodotto. Avevamo ragazzi del team Video e Musica e sembrava che gli piacesse tutto del campo. Siamo arrivati ​​secondi nella nostra pista (volevamo primi, perché abbiamo un progetto davvero interessante!) e siamo finiti in finale (due squadre della nostra pista si sono qualificate).

— Quest'anno sono stato per la prima volta curatore di un hackathon interno. Dirò con moderazione: è stato estremamente difficile valutare il lavoro. Il livello di tutte le squadre, senza eccezioni, era incredibile. Una funzionalità non dovrebbe essere solo tecnologicamente avanzata, non solo “vicina alla produzione”, non solo “potenzialmente utile per i nostri prodotti”. Il progetto vincitore deve soddisfare tutti questi criteri contemporaneamente. Sembra che i ragazzi ci siano riusciti. (Andrew)

Abbiamo fatto il nostro lancio finale alle 17:40. A questo punto era necessario preparare un'altra demo, questa volta per l'intero team, e la giuria era diversa: il direttore tecnico, il direttore del prodotto e il direttore marketing.

Alle cinque di sera era tutto finito: tornavamo a casa a letto, senza sapere nulla dei risultati.

I risultati sono finalmente

I risultati sono stati annunciati solo lunedì. Innanzitutto, hanno premiato i vincitori dei brani (non è il nostro caso - lascia che te lo ricordi, eravamo secondi), poi hanno votato i leader del pubblico (non noi), e poi il terzo (e anche questo non siamo noi), il secondo (di nuovo, non noi) e, infine, noi.

Ecco i progetti con cui abbiamo dovuto competere:

2° posto: assistente vocale reattivo;
3° posto - cronologia degli errori interni;
Il People's Choice Award è un promemoria dei prossimi incontri in chat.

— Questo è il miglior hackathon a cui abbia mai partecipato. C'era molta più spinta che anche a Junction. (Danya)

— Mi è piaciuto molto lavorare con colleghi di un dipartimento completamente diverso: non avevo mai toccato l'apprendimento automatico prima, mi sembrava una sorta di magia, ma ora non è più così. (Egor)

— È stato fantastico entrare a far parte di un team così interessante con un progetto così interessante. In un giorno sono riuscito a diventare designer, videografo, tecnico del suono, montatore, musicista e copywriter! Sono stato anche l'unico che è riuscito a dormire. (Tema)

La vita dopo l'hackathon

La maggior parte dei progetti sviluppati negli hackathon non arrivano alle vendite per vari motivi: un cambio di focus, complessità di implementazione, qualcosa di imprevisto nell'implementazione. Un hackathon interno non fa eccezione.

Elenchiamo comunque i progetti che hanno visto la luce:

  • il preferito di tutti Vinci;
  • verifica compatibilità utente, lanciato il 14 febbraio 2018;
  • красивые manifesti per voci brevi;
  • e una serie di funzionalità interne di cui saremmo felici di parlare, ma non possiamo :)

Come abbiamo vinto un hackathon interno imparando skibidi, filo interdentale e javascript

Fonte: habr.com

Aggiungi un commento