Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

VK memiliki tradisi keren - hackathon internal, yang hanya dapat diikuti oleh orang-orang dari VKontakte. Saya akan bercerita tentang hackathon atas nama tim yang menempati posisi pertama tahun ini dan meninggal karena kelelahan secara keseluruhan, namun berhasil mencoba pendeteksi gerakan tarian untuk kamera cerita.

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

Nama saya adalah Paul, Saya memimpin tim peneliti VKontakte teratas dan memiliki sikap hangat terhadap hackathon: sebagai peserta (Junction atau sejumlah deephacks) dan baru-baru ini sebagai kurator (VK hackathon atau kasus VKontakte di Junction - omong-omong, ini adalah pertama kalinya Saya berpartisipasi di sana perusahaan Rusia). Kami mengadakan VK Hackathon, terbuka untuk semua orang, untuk tahun keempat (terakhir kali kami naik ke Markas Besar Umum Hermitage), dan sebagian besar tim teknis kami berpartisipasi di dalamnya sebelum bergabung dengan VK.

Hackathon internal memungkinkan tim untuk banyak bereksperimen dengan platform, menguji berbagai ide, dan bersenang-senang secara umum. Perbedaan penting adalah bahwa solusi dapat lebih terintegrasi ke dalam VK, yang memberi kita peluang untuk mencapai prototipe yang menarik.

Hackathon berlangsung di Singer House sepanjang hari - tepat di tengah minggu, Markas Besar berubah menjadi gerakan tengah malam. Lucu sekali melihat petugas kebersihan melihat sekeliling dengan terkejut di pagi hari - kantor yang biasanya kosong pada jam 6 pagi tiba-tiba dipenuhi orang-orang berbulu lebat yang bergerak seperti zombie dan berteriak: "Lima jam lagi!" Atau ketika Anda masuk ke dapur pada pukul tiga pagi, dan selama sesi berlangsung, baunya seperti asrama universitas: minuman energi, pizza, dan kepanikan. Hal ini tentu saja terjadi pada hari-hari biasa, namun jarang terjadi dalam skala besar.

Tiga hackathon internal sebelumnya diadakan pada musim panas. Pada tahun 2019, kami memutuskan untuk tidak membuang waktu untuk hal-hal sepele dan juga mengadakan hackathon musim dingin - dua hackathon jauh lebih baik daripada satu, karena ini adalah kesempatan keren untuk bereksperimen dan mengimplementasikan ide yang tidak memiliki cukup waktu dalam ritme biasanya. Aturannya juga berubah: sebelumnya satu tim boleh beranggotakan maksimal tiga orang, tetapi tahun ini ada empat orang, tetapi satu tidak menulis kode, tetapi berspesialisasi dalam hal lain. Dimungkinkan untuk mengundang desainer, manajer produk, penguji, pemasar, dan orang lain ke dalam tim. Total ada 38 tim yang mengikuti hackathon ini.

Dreamtim (lebih tepatnya, salah satu dari 38)

Kami mencapai kesepakatan dengan Danei dan bersama-sama kami yakin Egor и Tyoma bergabung dengan tim. Seperti yang diharapkan, model bertanggung jawab atas kami, Egor bertanggung jawab atas iOS, Tyoma bertanggung jawab atas produksi dan desain. Pengembangan seluler + desain + sedikit pembelajaran mesin dan backend adalah kunci sukses di hackathon 2k19.

Bahkan tahun ini, muncul pembagian ke dalam jalur yang belum pernah ada sebelumnya: Media (di mana kami berpartisipasi), Komunikasi, Infrastruktur, Konten, dan Hiburan. Kami memiliki pesaing yang kuat. Misalnya, kami terus-menerus dimotivasi oleh desainer senior VK Ilya, yang datang ke ruangan kami dan menunjukkan prototipe ide timnya.

Ide

— Saya memenangkan hadiah di hampir semua hackathon yang saya ikuti, dan saya mengharapkan hal yang sama dari hackathon internal musim dingin ini. (Danya percaya diri pada dirinya sendiri)

Ide kami (khususnya Danina) awalnya adalah ini: kami ingin mengeksplorasi topik pembuatan musik + memiliki segalanya di perangkat, jika tidak maka akan menjadi “terlalu backend”. Hackathon dimulai dengan brainstorming - kami memikirkan apa yang bisa kami hasilkan. Menghasilkan musik itu menarik, tapi saya ingin membuatnya bergantung pada pengguna. Beberapa tombol? Mungkin menggambar di layar dan menghasilkan musik berdasarkan itu? Pada saat yang sama, kami belajar dari orang-orang di tim Musik cara menambahkan lagu yang kami perlukan. Tapi sepertinya masih kurang tepat. Tim tetangga dengan riang mengerjakan sesuatu di laptop mereka dan menyebabkan frustrasi.

— Bagaimana jika Anda mengenali gitar udara, seolah-olah Anda sedang bermain gitar, dan bergantung pada ini, memainkan suara gitar? (Tema)

Bingo! Idenya militan, dan kami memiliki kekuatan untuk mengatur segalanya dengan cara yang hebat. Untuk pengenalan gerakan ada posenet, dan dia sangat baik (juga ramah seluler). Ayo berpura-pura!

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

keputusan

Tugas utamanya adalah membuat grid pada perangkat (harus nyata) dan belajar mengenali gerakan. Egor mulai melakukan porting, Tyoma mulai memikirkan gerakan apa yang menarik untuk digabungkan (hanya gitar - membosankan), dan Danya serta saya mulai mengenalinya. Tapi ini membutuhkan data. Apa perbedaan antara PRO dan amatir? PRO memiliki cluster dengan GPU - itu satu, dua - PRO akan mengumpulkan data untuk dirinya sendiri saat dibutuhkan. Danya mengorganisir stand di mana data koordinat mentah dari sosok yang dikenali direkam dari kamera, dan kemudian - menari! Malam itu kami belajar menari flossing, skibidi и dudtsa.

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript
Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

Sebagai stand untuk merekam pergerakan, kami menggunakan laptop kantor, yang pertama kali merekam wajah Dani (dia belum pernah menulis satu baris pun di JS sebelumnya) ketika dia melihat kesalahan JS lainnya yang tidak dapat dipahami.

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

— Saya tidak mengerti, saya mengalami kesalahan level: cetakan telah hilang dengan Python! (Danya)

Tarian malam (secara harfiah)

Kami merekam gerakan terus-menerus selama berjam-jam di depan kamera pada malam hari. Mereka merekamnya sendiri, dan juga menangkap para pengembang yang berkeliaran di lantai dan MEMAKSA mereka untuk MENARI. Kami mendapat tujuh kombinasi berbeda - sekarang kami harus belajar membedakannya.

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript
Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

“Saya datang setiap tiga jam untuk memeriksa apakah orang-orang itu masih hidup.” Pasha berteriak: “Kami punya poros!” - dan Danya membungkuk dengan sekuat tenaga. Lalu semua orang menari serulingnya. Saat Daniil kehabisan tenaga, Pasha membuka jendela dan berkata: "Teman-teman, kita perlu menyegarkan diri." (Madinah)

Data dari gambar tersebut telah diproses sebelumnya: kaki dilempar keluar, kepala dirata-ratakan, dan diubah menjadi koordinat kutub relatif terhadap batang tubuh. Kami melatih pendeteksi gerakan menggunakan catboost - menggunakan kutipan aliran data tiga detik dari model. Hingga malam ini kami belum bekerja dengan perpustakaan tersebut - ternyata perpustakaan tersebut merupakan perpustakaan pertempuran, dan Anda dapat meletakkannya di iOS.

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

Mereka mengajarkan klasifikasi jamak, dengan satu kelas menjadi membosankan - hanya berkeliaran di depan kamera. Hal yang paling sulit adalah merekam gerakan "batu" - kami menggelengkan kepala tanpa pamrih sehingga setelah beberapa saat gerakan itu mulai berputar. Dan mereka mengulurkan tangan dengan "kambing", meskipun ini tidak ada gunanya - posenet hanya memiliki satu titik di seluruh tangan, tidak melihat jari.

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

— Sekitar jam 3 pagi, Pasha naik ke dalam kantong tidur dan bergerak secara eksklusif di dalamnya selama satu jam, melompat seperti kanguru sungguhan. (Madinah)

Sekitar jam 8 pagi kami dilanda krisis kecil - semuanya rusak dan tidak ada yang berfungsi, tetapi kemudian semuanya tiba-tiba mulai bekerja dengan sendirinya. Memasukkan kedua model ke dalam aplikasi ternyata menjadi tantangan terbesar - Egor menyelesaikan perakitan hanya lima menit sebelum batas waktu. Mari kita beri dia kesempatan:

— Setelah kami menemukan ide tersebut, semuanya berjalan dengan sangat baik dan produktif. Orang-orang melatih grid dan menari, dan saya melampirkan PoseNet ke kamera cerita dalam JavaScript langsung di browser. Uji coba awal berjalan dengan baik dan ternyata sangat cepat. Oleh karena itu, ketika di pagi hari ternyata WebGL di WebView tiba-tiba mogok saat bekerja dengan tekstur karena alasan yang tidak masuk akal dan tidak ada cara untuk menemukan solusi, saya hampir putus asa. Namun sudah terlambat untuk menyerah: kami terbakar oleh gagasan itu. Oleh karena itu, dengan kekuatan terakhir kami dan kaleng merah terakhir, kami menyeret model alternatif berdasarkan CoreML ke klien iOS saat bepergian dan mulai melacak pose secara asli - untuk kemudian mengirimkannya ke model dengan tarian dan mendapatkan beberapa hasil pada output. Intinya, kami mengulangi pekerjaan itu lagi! Tantangan lainnya adalah model kedua, yang tiba-tiba mengharapkan lebih dari seribu argumen sebagai masukan! Xcode menghasilkan antarmuka yang tidak realistis untuk digunakan secara langsung. Untungnya, pengetahuan saya tentang Objective-C tidak mengecewakan saya, dan solusi elegan pun ditemukan. (Yegor)

Anggukan

Pada hari Jumat, pukul 14, ada batas waktu untuk mengupload video tentang proyek tersebut—beberapa tim tidak datang tepat waktu dan didiskualifikasi. Dan pada pukul 14 kami melakukan pitch kepada kurator track terkait produk tersebut. Kami memiliki orang-orang dari tim Video dan Musik, dan mereka sepertinya menyukai segala hal tentang lapangan. Kami menempati posisi kedua di trek kami (kami ingin menjadi yang pertama, karena kami memiliki proyek yang keren!) dan berakhir di final (dua tim dari trek kami lolos).

— Tahun ini saya pertama kali menjadi kurator hackathon internal. Saya akan mengatakan dengan menahan diri: sangat sulit untuk mengevaluasi pekerjaan. Level semua tim tanpa kecuali sungguh di luar dugaan. Sebuah fitur tidak boleh hanya berteknologi maju, tidak hanya “mendekati produksi”, tidak hanya “berpotensi berguna untuk produk kami”. Proyek pemenang harus memenuhi semua kriteria ini secara bersamaan. Tampaknya mereka berhasil. (Andrew)

Kami melakukan lemparan terakhir pada pukul 17:40. Pada saat ini, demo lain perlu disiapkan, kali ini untuk seluruh Tim, dan jurinya berbeda - direktur teknis, direktur produk, dan direktur pemasaran.

Pada pukul lima sore semuanya berakhir - kami pulang tidur, tidak tahu apa pun tentang hasilnya.

Hasilnya akhirnya

Hasilnya baru diumumkan pada hari Senin. Pertama, mereka memberikan penghargaan kepada pemenang lagu (bukan kasus kami - izinkan saya mengingatkan Anda, kami berada di urutan kedua), kemudian para pemimpin penonton memilih (bukan kami), dan kemudian yang ketiga (dan ini juga bukan kami), the kedua (sekali lagi, bukan kita) dan, terakhir, kita.

Berikut adalah proyek-proyek yang harus kami lawan:

Juara 2 - asisten suara responsif;
Tempat ke-3 - garis waktu kesalahan internal;
People's Choice Award adalah pengingat akan pertemuan obrolan yang akan datang.

— Ini adalah hackathon terbaik yang pernah saya ikuti. Ada lebih banyak perjalanan daripada di Junction. (Danya)

— Saya sangat menikmati bekerja dengan kolega dari departemen yang sama sekali berbeda - Saya belum pernah menyentuh pembelajaran mesin sebelumnya, bagi saya ini tampak seperti keajaiban, tetapi sekarang tidak seperti itu. (Yegor)

— Sangat menyenangkan menjadi bagian dari tim keren dengan proyek keren. Dalam satu hari saya berhasil menjadi seorang desainer, videografer, sound engineer, editor, musisi dan copywriter! Saya juga satu-satunya yang berhasil tidur. (Tema)

Kehidupan setelah hackathon

Sebagian besar proyek yang dikembangkan di hackathon tidak berhasil dijual karena berbagai alasan: perubahan fokus, kompleksitas implementasi, sesuatu yang tidak terduga dalam implementasi. Tidak terkecuali hackathon internal.

Namun demikian, kami mencantumkan proyek-proyek yang berhasil:

  • favorit semua orang Vinci;
  • pemeriksaan kompatibilitas pengguna, yang diluncurkan pada 14 Februari 2018;
  • красивые poster untuk entri pendek;
  • dan sejumlah fitur internal yang dengan senang hati kami bicarakan, tetapi kami tidak bisa :)

Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

Sumber: www.habr.com

Tambah komentar