Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

Το VK έχει μια δροσερή παράδοση - ένα εσωτερικό hackathon, στο οποίο μπορούν να συμμετέχουν μόνο παιδιά από το VKontakte. Θα σας πω για το hackathon για λογαριασμό της ομάδας που πήρε την πρώτη θέση φέτος και πέθανε από την κούραση στο σύνολό του, αλλά κατάφερε να δοκιμάσει έναν ανιχνευτή κίνησης χορού για την κάμερα της ιστορίας.

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

Το όνομά μου Παύλος, ηγούμαι της κορυφαίας ερευνητικής ομάδας VKontakte και έχω μια θερμή στάση απέναντι στα hackathons: ως συμμετέχων (Junction ή πολλά deephacks) και πρόσφατα ως επιμελητής (VK hackathon ή υπόθεση VKontakte στο Junction - παρεμπιπτόντως, αυτή ήταν η πρώτη φορά Συμμετείχα εκεί ρωσική εταιρεία). Διεξάγουμε το VK Hackathon, ανοιχτό σε όλους, για τέταρτη χρονιά (την τελευταία φορά που ανεβήκαμε στο Γενικό Αρχηγείο του Ερμιτάζ) και σημαντικό μέρος της τεχνικής μας ομάδας συμμετείχε σε αυτό πριν ενταχθεί στο VK.

Ένα εσωτερικό hackathon επιτρέπει στην ίδια την ομάδα να πειραματιστεί πολύ με την πλατφόρμα, να δοκιμάσει διαφορετικές ιδέες και γενικά να διασκεδάσει. Μια σημαντική διαφορά είναι ότι οι λύσεις μπορούν να ενσωματωθούν πολύ περισσότερο στο VK, γεγονός που μας δίνει την ευκαιρία να επιτύχουμε ενδιαφέροντα πρωτότυπα.

Το hackathon πραγματοποιείται στο Singer House όλη την ημέρα - ακριβώς στα μέσα της εβδομάδας, το Αρχηγείο μετατρέπεται σε μεταμεσονύκτια κίνηση. Είναι αστείο να βλέπεις πώς οι καθαρίστριες κοιτάζουν έκπληκτοι το πρωί - ένα συνήθως άδειο γραφείο στις 6 το πρωί ξαφνικά αποδεικνύεται ότι είναι γεμάτο με δασύτριχους ανθρώπους που κινούνται σαν ζόμπι και φωνάζουν: «Απομένουν πέντε ώρες!» Ή όταν μπαίνεις στην κουζίνα στις τρεις το πρωί και μυρίζει σαν πανεπιστημιακούς κοιτώνες κατά τη διάρκεια των συνεδριών: ενεργειακά ποτά, πίτσα και πανικός. Αυτό, φυσικά, συμβαίνει σε μια συνηθισμένη μέρα, αλλά είναι σπάνιο σε τόσο μεγάλη κλίμακα.

Τρία προηγούμενα εσωτερικά hackathon πραγματοποιήθηκαν το καλοκαίρι. Το 2019, αποφασίσαμε να μην χάνουμε χρόνο σε μικροπράγματα και επίσης να διοργανώσουμε ένα χειμερινό hackathon - δύο hackathon είναι πολύ καλύτερα από ένα, γιατί αυτή είναι μια ωραία ευκαιρία να πειραματιστούμε και να εφαρμόσουμε μια ιδέα για την οποία δεν υπάρχει αρκετός χρόνος στον συνηθισμένο ρυθμό. Οι κανόνες έχουν επίσης αλλάξει: παλαιότερα μια ομάδα μπορούσε να έχει το πολύ τρία άτομα, αλλά φέτος είναι τέσσερα, αλλά ο ένας δεν γράφει κώδικα, αλλά ειδικεύεται σε κάτι άλλο. Ήταν δυνατό να προσκαλέσουμε σχεδιαστές, διαχειριστές προϊόντων, δοκιμαστές, εμπόρους και άλλα παιδιά στην ομάδα. Συνολικά 38 ομάδες συμμετείχαν σε αυτό το hackathon.

Dreamtim (ακριβέστερα, ένα από τα 38)

Ήρθαμε σε συμφωνία με Δανέι και μαζί πείσαμε Έγκορ и Tyoma Μπες στην ομάδα. Όπως ήταν αναμενόμενο, τα μοντέλα ήταν υπεύθυνοι για εμάς, ο Egor ήταν υπεύθυνος για το iOS, ο Tyoma ήταν υπεύθυνος για την παραγωγή και το σχεδιασμό. Ανάπτυξη κινητών + σχεδίαση + λίγη μηχανική εκμάθηση και backend είναι το κλειδί της επιτυχίας στο hackathon 2k19.

Ακόμα και φέτος, εμφανίστηκε ένας διαχωρισμός σε κομμάτια, που δεν υπήρχε πριν: Μέσα (στα οποία συμμετείχαμε), Επικοινωνίες, Υποδομές, Περιεχόμενο και Ψυχαγωγία. Είχαμε ισχυρούς ανταγωνιστές. Για παράδειγμα, μας παρακινούσε συνεχώς ο ανώτερος σχεδιαστής της VK Ilya, ο οποίος μπήκε στο δωμάτιό μας και έδειξε πρωτότυπα της ιδέας της ομάδας του.

Ιδέα

— Πήρα βραβεία σε όλα σχεδόν τα hackathon που συμμετείχα και το ίδιο περίμενα από το εσωτερικό hackathon φέτος τον χειμώνα. (Δάνια ήταν σίγουρος για τον εαυτό του)

Η ιδέα μας (συγκεκριμένα της Danina) ήταν αρχικά η εξής: θέλαμε να εξερευνήσουμε το θέμα της παραγωγής μουσικής + να έχουμε τα πάντα στη συσκευή, διαφορετικά θα ήταν "πολύ backend". Το hackathon ξεκίνησε με καταιγισμό ιδεών - σκεφτήκαμε τι θα μπορούσαμε να καταλήξουμε. Η δημιουργία μουσικής είναι ενδιαφέρουσα, αλλά θέλω να την εξαρτήσω από τον χρήστη. Μερικά κουμπιά; Ίσως να ζωγραφίζεις στην οθόνη και να δημιουργείς μουσική βάσει αυτής; Παράλληλα, μάθαμε από τα παιδιά της ομάδας Μουσικής πώς να προσθέτουμε τα κομμάτια που χρειαζόμασταν. Αλλά και πάλι δεν φαινόταν πολύ σωστό. Οι γειτονικές ομάδες δούλευαν χαρούμενα πάνω σε κάτι στους φορητούς υπολογιστές τους και προκαλούσαν απογοήτευση.

— Κι αν αναγνωρίζεις κιθάρα αέρα, σαν να παίζεις κιθάρα και ανάλογα με αυτό παίζεις τον ήχο της κιθάρας; (Θέμα)

Λοταρία! Η ιδέα είναι μαχητική και έχουμε τη δύναμη να τακτοποιήσουμε τα πάντα με εξαιρετικό τρόπο. Για αναγνώριση κίνησης υπάρχει posenet, και είναι πολύ εντάξει (επίσης φιλική για κινητά). Ας υποκριθούμε!

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

Λύση

Οι κύριες εργασίες είναι να δημιουργήσετε ένα πλέγμα στη συσκευή (πρέπει να είναι πραγματικό) και να μάθετε να αναγνωρίζετε τις κινήσεις. Ο Egor άρχισε το porting, ο Tyoma άρχισε να σκέφτεται ποιες κινήσεις θα ήταν ενδιαφέρον να ενσωματωθούν (απλώς μια κιθάρα - βαρετό) και η Danya και εγώ αρχίσαμε να τις αναγνωρίζουμε. Αυτό όμως απαιτεί δεδομένα. Ποια είναι η διαφορά μεταξύ ενός PRO και ενός ερασιτέχνη; Το PRO έχει ένα σύμπλεγμα με GPU - αυτό είναι ένα πράγμα, δύο - το PRO θα συλλέγει δεδομένα για τον εαυτό του όταν τα χρειάζεται. Η Danya οργάνωσε ένα περίπτερο όπου καταγράφηκαν ακατέργαστα δεδομένα συντεταγμένων μιας αναγνωρισμένης φιγούρας από μια κάμερα και στη συνέχεια - χορός! Εκείνο το βράδυ μάθαμε να χορεύουμε με οδοντικό νήμα, skibidi и dudtsa.

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript
Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

Ως βάση για την εγγραφή κινήσεων, χρησιμοποιήσαμε ένα φορητό υπολογιστή εργασίας, ο οποίος κατέγραψε για πρώτη φορά το πρόσωπο του Dani (δεν είχε γράψει ούτε μια γραμμή στο JS πριν) όταν είδε ένα άλλο ακατανόητο σφάλμα JS.

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

— Δεν καταλαβαίνω, έχω ένα σφάλμα επιπέδου: η εκτύπωση έχει εξαφανιστεί στην Python! (Δάνια)

Νυχτερινός χορός (κυριολεκτικά)

Γυρίσαμε πολλές ώρες συνεχούς κίνησης μπροστά στην κάμερα τη νύχτα. Το ηχογράφησαν οι ίδιοι, και επίσης έπιασαν τους προγραμματιστές που περιπλανήθηκαν στο πάτωμα και τους ΑΝΑΓΚΑΣΑΝ να ΧΟΡΕΥΟΥΝ. Πήραμε επτά διαφορετικούς συνδυασμούς - τώρα έπρεπε να μάθουμε να ξεχωρίζουμε μεταξύ τους.

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript
Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

«Έμπαινα κάθε τρεις ώρες για να ελέγξω αν τα παιδιά ήταν ζωντανά». Ο Πασάς φώναξε: "Έχουμε έναν άξονα!" - και η Ντάνια λύγισε με όλη του τη δύναμη. Τότε όλοι χόρεψαν τον σωλήνα. Όταν ο Daniil έμεινε από δύναμη, ο Πασάς άνοιξε το παράθυρο και είπε: «Παιδιά, πρέπει να φρεσκαριστούμε». (Madina)

Τα δεδομένα από το σχήμα υποβλήθηκαν σε προεπεξεργασία: τα πόδια πετάχτηκαν έξω, το κεφάλι υπολογίστηκε κατά μέσο όρο και μετατράπηκε σε πολικές συντεταγμένες σε σχέση με τον κορμό. Εκπαιδεύσαμε τον ανιχνευτή κίνησης χρησιμοποιώντας catboost - χρησιμοποιώντας ένα απόσπασμα τριών δευτερολέπτων της ροής δεδομένων από το μοντέλο. Μέχρι αυτό το βράδυ δεν είχαμε δουλέψει με τη βιβλιοθήκη - αποδείχθηκε ότι ήταν μάχη και μπορείτε να τη βάλετε στο iOS.

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

Δίδαξαν την ταξινόμηση πολλαπλών τάξεων, με τη μία τάξη να είναι όσο το δυνατόν πιο βαρετή - απλώς τριγυρνώντας μπροστά από την κάμερα. Το πιο δύσκολο πράγμα ήταν να καταγράψουμε την κίνηση «ροκ» - κουνήσαμε το κεφάλι μας τόσο ανιδιοτελώς που μετά από λίγο άρχισε να γυρίζει. Και έβγαλαν ένα χέρι με μια "κατσίκα", αν και αυτό ήταν άσκοπο - το posenet έχει μόνο ένα σημείο σε ολόκληρο το χέρι, δεν βλέπει δάχτυλα.

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

— Περίπου στις 3 τα ξημερώματα, ο Πασάς σκαρφάλωσε σε έναν υπνόσακο και κυκλοφορούσε αποκλειστικά σε αυτόν για μια ώρα, πηδώντας σαν πραγματικό καγκουρό. (Madina)

Γύρω στις 8 π.μ. μας έπληξε μια μικρή κρίση - όλα είχαν σπάσει και τίποτα δεν λειτουργούσε, αλλά στη συνέχεια όλα άρχισαν ξαφνικά να λειτουργούν από μόνα τους. Το βίδωμα και των δύο μοντέλων στην εφαρμογή αποδείχθηκε ότι ήταν η μεγαλύτερη πρόκληση - ο Egor ολοκλήρωσε τη συναρμολόγηση κυριολεκτικά πέντε λεπτά πριν από τη λήξη της προθεσμίας. Ας του δώσουμε τον λόγο:

— Αφού βρήκαμε την ιδέα, όλα πήγαν πολύ καλά και παραγωγικά. Τα παιδιά εκπαίδευσαν το πλέγμα και χόρεψαν, και προσάρτησα το PoseNet στην κάμερα ιστορίας σε JavaScript απευθείας στο πρόγραμμα περιήγησης. Οι αρχικές δοκιμαστικές εκτελέσεις λειτούργησαν καλά και ήταν εκπληκτικά γρήγορες. Ως εκ τούτου, όταν το πρωί αποδείχθηκε ότι το WebGL στο WebView κατέρρευσε απροσδόκητα όταν εργαζόμουν με υφές για κάποιες ανοησίες και δεν υπήρχε τρόπος να βρω μια λύση, κόντεψα να απελπιστώ. Αλλά ήταν πολύ αργά για να τα παρατήσουμε: καιγόμασταν στην ιδέα. Επομένως, με τις τελευταίες δυνάμεις μας και με το τελευταίο κουτάκι red bull, σύραμε ένα εναλλακτικό μοντέλο βασισμένο στο CoreML στο πρόγραμμα-πελάτη iOS εν κινήσει και αρχίσαμε να παρακολουθούμε τις πόζες εγγενώς - για να τις στείλουμε στο μοντέλο με χορούς και λάβετε κάποιο αποτέλεσμα στην έξοδο. Στην ουσία επαναλάβαμε τη δουλειά από την αρχή! Μια άλλη πρόκληση ήταν το δεύτερο μοντέλο, το οποίο ξαφνικά άρχισε να περιμένει περισσότερα από χίλια επιχειρήματα ως είσοδο! Το Xcode δημιούργησε μια διεπαφή για αυτό που θα ήταν απλώς μη ρεαλιστικό να χρησιμοποιηθεί απευθείας. Ευτυχώς, οι γνώσεις μου για το Objective-C δεν με απογοήτευσαν και βρέθηκε μια κομψή λύση. (Yegor)

Pitching

Την Παρασκευή, στις 14 μ.μ., υπήρχε προθεσμία για τη μεταφόρτωση ενός βίντεο σχετικά με το έργο - αρκετές ομάδες δεν κατάφεραν να το φτάσουν εγκαίρως και αποκλείστηκαν. Και στις 14:40 είχαμε ένα pitch στους επιμελητές της πίστας σχετικά με το προϊόν. Είχαμε παιδιά από την ομάδα του Video and Music και φαινόταν να τους αρέσουν τα πάντα σχετικά με το γήπεδο. Πήραμε τη δεύτερη θέση στην πίστα μας (θέλαμε πρώτοι, γιατί έχουμε τόσο ωραίο έργο!) και καταλήξαμε στον τελικό (δύο ομάδες από την πίστα μας προκρίθηκαν).

— Φέτος ήμουν για πρώτη φορά επιμελητής εσωτερικού hackathon. Θα πω με αυτοσυγκράτηση: ήταν εξαιρετικά δύσκολο να αξιολογήσω το έργο. Το επίπεδο όλων των ομάδων ανεξαιρέτως ήταν πέρα ​​για πέρα ​​πιστευτό. Ένα χαρακτηριστικό δεν πρέπει να είναι απλώς τεχνολογικά προηγμένο, όχι απλώς «κοντά στην παραγωγή», όχι απλώς «δυνητικά χρήσιμο για τα προϊόντα μας». Το έργο που θα κερδίσει πρέπει να πληροί όλα αυτά τα κριτήρια ταυτόχρονα. Φαίνεται ότι τα παιδιά τα κατάφεραν. (Ανδρέας)

Είχαμε το τελευταίο μας παιχνίδι στις 17:40 μ.μ. Μέχρι εκείνη τη στιγμή, ήταν απαραίτητο να προετοιμαστεί ένα άλλο demo, αυτή τη φορά για ολόκληρη την ομάδα, και η κριτική επιτροπή ήταν διαφορετική - ο τεχνικός διευθυντής, ο διευθυντής προϊόντων και ο διευθυντής μάρκετινγκ.

Στις πέντε το βράδυ όλα είχαν τελειώσει - πήγαμε σπίτι για ύπνο, χωρίς να γνωρίζουμε τίποτα για τα αποτελέσματα.

Τα αποτελέσματα είναι τελικά

Τα αποτελέσματα ανακοινώθηκαν μόλις τη Δευτέρα. Πρώτα, βράβευσαν τους νικητές των κομματιών (όχι την περίπτωσή μας - να σας θυμίσω, ήμασταν δεύτεροι), μετά ψήφισαν οι ηγέτες του κοινού (όχι εμείς) και μετά το τρίτο (και αυτό δεν είμαστε εμείς), το δεύτερο (πάλι, όχι εμείς) και, τέλος, εμείς.

Εδώ είναι τα έργα με τα οποία έπρεπε να ανταγωνιστούμε:

2η θέση - ανταποκρινόμενος βοηθός φωνής.
3η θέση - χρονοδιάγραμμα εσωτερικών σφαλμάτων.
Το βραβείο People's Choice είναι μια υπενθύμιση των επερχόμενων συναντήσεων συνομιλίας.

— Αυτό είναι το καλύτερο hackathon στο οποίο έχω συμμετάσχει ποτέ. Υπήρχε πολύ περισσότερη κίνηση από ό,τι ακόμη και στο Junction. (Δάνια)

— Μου άρεσε πολύ να δουλεύω με συναδέλφους από ένα εντελώς διαφορετικό τμήμα - δεν είχα αγγίξει ποτέ τη μηχανική μάθηση πριν, μου φαινόταν σαν κάποιο είδος μαγείας, αλλά τώρα δεν είναι έτσι. (Yegor)

— Ήταν πολύ ωραίο να γίνω μέρος μιας τόσο cool ομάδας με ένα τόσο ωραίο έργο. Σε μια μέρα κατάφερα να γίνω σχεδιαστής, βιντεογράφος, ηχολήπτης, μοντέρ, μουσικός και κειμενογράφος! Ήμουν επίσης ο μόνος που κατάφερα να κοιμηθώ. (Θέμα)

Η ζωή μετά το hackathon

Τα περισσότερα έργα που αναπτύχθηκαν στα hackathons δεν φτάνουν στις πωλήσεις για διάφορους λόγους: αλλαγή εστίασης, πολυπλοκότητα υλοποίησης, κάτι απρόβλεπτο στην υλοποίηση. Ένα εσωτερικό hackathon δεν αποτελεί εξαίρεση.

Παρόλα αυτά, παραθέτουμε τα έργα που είδαν το φως της δημοσιότητας:

  • το αγαπημένο όλων Vinci;
  • έλεγχος συμβατότητας χρήστη, που κυκλοφόρησε στις 14 Φεβρουαρίου 2018.
  • красивые αφίσες για σύντομες συμμετοχές?
  • και μια σειρά από εσωτερικά χαρακτηριστικά για τα οποία θα χαρούμε να μιλήσουμε, αλλά δεν μπορούμε :)

Πώς κερδίσαμε ένα εσωτερικό hackathon μαθαίνοντας skibidi, flossing και javascript

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο