Kodim-πίτσα

Γεια σου, Χαμπρ. Πραγματοποιήσαμε αυθόρμητα το πρώτο μας εσωτερικό hackathon. Αποφάσισα να μοιραστώ μαζί σας τους πόνους και τα συμπεράσματά μου για την προετοιμασία για αυτό σε 2 εβδομάδες, καθώς και τα έργα που αποδείχτηκαν.

Kodim-πίτσα

Το βαρετό μέρος για όσους ενδιαφέρονται για το μάρκετινγκ

Θα ξεκινήσω με μια μικρή ιστορία.

Αρχές Απριλίου. Το πρώτο MskDotNet Community hackathon πραγματοποιείται στο γραφείο μας. Η μάχη του Tatooine βρίσκεται σε πλήρη εξέλιξη στον γαλαξία μας αυτή τη φορά. Σάββατο. 20 ομάδες. Πίτσα. Όλα είναι πολύ ειλικρινή (αποδείξεις). Ένα φουσκωτό R2-D2 επιπλέει γύρω από την αίθουσα. Οι ομάδες γράφουν τους πιο σωστούς αλγόριθμους για να περάσουν τον πιο επικίνδυνο αγώνα στον χάρτη. Κινούμε την εκκίνηση των πρώτων αγώνων. Τα μπισκότα και ο καφές είναι σωτήρια. Οι διοργανωτές και εγώ περιμέναμε ότι πολλοί άνθρωποι θα έφευγαν μετά το μεσημεριανό γεύμα το Σάββατο. Αλλά όχι. 12 ώρες κωδικοποίησης πίσω. Ο τελικός. Κάτι πέφτει, κάτι δεν ξεκινά. Όλοι όμως είναι ευχαριστημένοι. Η ομάδα μας κερδίζει. Είμαστε διπλά χαρούμενοι.

Μοιράζομαι τη χαρά μου στο Slack και μου έρχεται η ιδέα: «Πρέπει να κάνουμε το δικό μας hackathon». Γράφω στο πρατήριο μας Sasha. Σιωπή.

Πρωί. Πίνω καφέ στο γραφείο. Βλέπω τη Σάσα να πλησιάζει από πίσω. «Λίζα, αυτό είναι υπέροχο! Έχουμε μια σημαντική ημερομηνία στις 21 Απριλίου. Ας το κάνουμε!" WTF!? Τόσο γρήγορα? ΕΝΑ? Τι? Πρέπει να πετάξω στο Syktyvkar για πρακτική στα μέσα Απριλίου. Και στο διάολο! Ας.

2 εβδομάδες έμειναν. Ποτέ δεν ήμουν ο μοναδικός διοργανωτής ενός hackathon. Ας είναι εσωτερικό. Διάβασα άρθρα για αυτό το θέμα. Σκληρός. Χρειάζονται αρκετοί μήνες. Χρειάζονται αρκετά άτομα. Πρέπει να σκεφτείτε τα εμπορεύματα, τα βραβεία, τις συνθήκες, το χρονοδιάγραμμα, τα ενδιαφέροντα, να κατανοήσετε τον στόχο, τους προϋπολογισμούς. Ή ίσως ακόμη και να καταλάβω το νόημα της ζωής. Σίγουρα δεν θα τα καταφέρω εγκαίρως. Κι ενώ διάβαζες και προετοιμαζόσουν, είχε ήδη περάσει μια εβδομάδα. Ήρθε η ώρα να ξεχάσετε τα άρθρα και να αρχίσετε να κάνετε κάτι.

Δείτε τη λίστα ελέγχου μας για τη διεξαγωγή ενός εσωτερικού hackathon σε 1 εβδομάδα

  • Σχέδιο: Κάθεσαι ήρεμα και γράφεις μια λίστα με το τι πρέπει να γίνει για το hackathon. 30 λεπτά.
  • Έργο: Οι συμμετέχοντες προτείνουν και επιλέγουν τα έργα που θέλουν να δημιουργήσουν στα Φύλλα Google. Εργασία φόντου, 2 ώρες.
  • Πρόγραμμα: στο γόνατο γράφετε μια σύντομη ανάλυση του χρόνου, λαμβάνοντας υπόψη 3 διαλείμματα και τον τελικό. 20 λεπτά.
  • Ομάδες: δημοσιεύστε ένα μήνυμα για το hackathon με πρόγραμμα από το πρατήριο σε κανάλια IT στο Slack/mail/κ.λπ. και δημιουργήστε ένα ξεχωριστό κανάλι για το hackathon. Σε αυτό, όλοι χωρίζονται σε ομάδες και όσοι είναι αναποφάσιστοι το κάνουν στα πρώτα 5 λεπτά του hackathon. Εργασία φόντου, 2 ώρες.
  • Ψωμάκια: βρίσκετε εμπορεύματα με δύο προγραμματιστές, τα δίνετε στον σχεδιαστή για απόδοση και τα λαμβάνετε έτοιμο. Εργασία φόντου, 3 ημέρες.
  • Hackathon: έρχεστε στο γραφείο, συντονίζετε τους πάντες στην αρχή, πηγαίνετε για τις δουλειές σας, διαβάζετε Reddit, ανακοινώνετε σημαντικό κάθε διάλειμμα για φρέσκια πίτσα, φωτογραφίζετε το ηλιοβασίλεμα, ανακοινώνετε τον τελικό, ψηφίζετε μαζί και επιλέγετε τον νικητή. 1 ημέρα.
  • Κάτω από τον αστερίσκο: Φυσικά και σκέφτεσαι συνεχώς να πάνε όλα καλά. Φυσικά, δεν θα δουν όλοι το μήνυμά σας και είναι καλύτερα να μιλήσετε με κάποιους αυτοπροσώπως. Βέβαια, αν σε βοηθήσει κάποιος, όλα θα γίνουν 2 φορές πιο εύκολα (με βοήθησε η υπέροχη Αλένα).

Το λιγότερο βαρετό κομμάτι για το ραντεβού του hackathon

Γιατί 21 Απριλίου; Αυτή η μέρα είναι σημαντική για εμάς. Ακριβώς πριν από ένα χρόνο, στις 21 Απριλίου, βρεθήκαμε στο φορτίο το πρώτο Σαββατοκύριακο μετά την έναρξη της Ομοσπονδιακής Διαφημιστικής Εκστρατείας. Την επόμενη μέρα, Κυριακή, η ομάδα μας ήταν στη δουλειά από τις 8 το πρωί. Στη συνέχεια δημιουργήσαμε έναν πίνακα sundayhackathon στο Trello και ξεκίνησε μια εβδομάδα με βάρδιες, 12 ώρες την ημέρα. Η κατάσταση ήταν τόσο κρίσιμη που δεν είχαμε χρόνο ούτε για φαγητό και μας ταΐζαν παιδιά από άλλες ομάδες.

Kodim-πίτσα

Μπορείτε να διαβάσετε μια πιο αναλυτική ιστορία στο Η σελίδα του Fyodor Ovchinnikov (Ο Διευθύνων Σύμβουλός μας). Από τότε, έχουμε αλλάξει πολύ, αλλά τώρα σίγουρα δεν θα ξεχάσουμε την ημερομηνία.

Φέτος, αποφασίσαμε ότι αυτό το γεγονός άξιζε να διαιωνιστεί στη μνήμη των μεταγενέστερων και, σύμφωνα με τις καλύτερες παραδόσεις, διοργανώσαμε το πρώτο εσωτερικό hackathon στην ιστορία του Dodo, το οποίο διήρκεσε 10 ώρες.

Το πιο βαρετό μέρος για τα έργα hackathon

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

Oleg Learning (μηχανική εκμάθηση)

Dima Kochnev, Sasha Andronov (@alexandronov)

Ήθελαν να φτιάξουν ένα νευρωνικό δίκτυο που θα καθόριζε τι είδους πίτσα είναι σε μια φωτογραφία χωρίς καμία γνώση. Ως αποτέλεσμα, φτιάξαμε μια πολύ απλή και παιχνιδιάρικη - αναγνωρίζει 10 πίτσες, καταλάβαμε χονδρικά πώς λειτουργούν όλα, όσο το δυνατόν περισσότερο σε μια μέρα (~10 ώρες).

Kodim-πίτσα

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

Εργαλεία που χρησιμοποιούνται:

  • imageai — μια βολική και απλή βιβλιοθήκη για εργασία με μηχανική μάθηση και όραση υπολογιστή.
  • Δοκιμάσαμε δύο μοντέλα - ResNet50, Yolo.
  • Ο κώδικας γράφτηκε, φυσικά, σε Python.

Είχαμε 11000 φωτογραφίες, αλλά σχεδόν τα 3/4 από αυτές αποδείχτηκαν σκουπίδια και οι υπόλοιπες είχαν διαφορετικές, ακατάλληλες γωνίες. Ως αποτέλεσμα, πήραμε ένα έτοιμο μοντέλο (που απλά ξέρει να βρίσκει πίτσα) και με τη βοήθειά του χωρίσαμε τα σκουπίδια. Στη συνέχεια, ο τίτλος της φωτογραφίας περιελάμβανε το όνομα της πίτσας - έτσι την ταξινομήσαμε σε φακέλους, αλλά αποδείχθηκε ότι τα ονόματα δεν συμπίπτουν με την πραγματικότητα και έπρεπε να την καθαρίσουμε με τα χέρια μας. Στο τέλος, έμειναν περίπου 500-600 φωτογραφίες, είναι ξεκάθαρο ότι πρόκειται για ασήμαντο ποσό, αλλά παρόλα αυτά, αυτό ήταν αρκετό για να χωρίσει 10 πίτσες η μία από την άλλη.

Για να εκπαιδεύσουμε το δίκτυο, πήραμε τη φθηνότερη εικονική μηχανή στο Azure σε ένα NVIDIA Tesla K80. Εκπαιδεύτηκαν σε αυτό για 100 εποχές, αλλά ήταν σαφές ότι το δίκτυο ήταν υπερκορεσμένο μετά από 50 εποχές, λόγω του γεγονότος ότι υπήρχε ένα μικρό σύνολο δεδομένων.

Στην πραγματικότητα, το όλο πρόβλημα είναι η έλλειψη καλών δεδομένων.

Kodim-πίτσα

Μπορεί να έχουμε μπερδέψει λίγο τους όρους, αλλά πρέπει να λάβουμε υπόψη ότι δεν έχουμε καθόλου εμπειρία στη δουλειά με όλα αυτά τα θέματα.

GUI για NOOBS (κονσόλα για παραγγελία πίτσας)

Μίσα Κουμάτσεφ (Ceridan), Zhenya Bikkinin, Zhenya Vasiliev

Συγκεντρώσαμε ένα πρωτότυπο μιας εφαρμογής κονσόλας για geeks, χάρη στο οποίο μπορείτε να παραγγείλετε πίτσα μέσω του τερματικού ή της γραμμής εντολών ή ακόμα και να την ενσωματώσετε στη γραμμή ανάπτυξης και, μετά την επιτυχή κυκλοφορία, να παραδώσετε πίτσα στο γραφείο.

Kodim-πίτσα

Η εργασία χωρίστηκε σε πολλά μέρη: καταλάβαμε πώς λειτουργεί το API μας για εφαρμογές για κινητές συσκευές, συναρμολογήσαμε το δικό μας CLI χρησιμοποιώντας oclif και διαμορφώσαμε τη δημοσίευση του πακέτου που συλλέξαμε. Η τελευταία εργασία περιελάμβανε μερικά δυσάρεστα λεπτά προς το τέλος του hackathon. Τα πάντα λειτουργούσαν τοπικά για εμάς, και ακόμη και οι παλιές δημοσιευμένες εκδόσεις του πακέτου λειτούργησαν, αλλά οι νέες (που πρόσθεσαν πιο ωραία χαρακτηριστικά και emoticons) αρνήθηκαν να λειτουργήσουν. Ξοδέψαμε περίπου 40 λεπτά προσπαθώντας να καταλάβουμε τι πήγε στραβά, αλλά στο τέλος όλα λειτουργούσαν μαγικά από μόνα τους).

Το μέγιστο πρόγραμμα μας για το hackathon ήταν μια πραγματική παραγγελία πίτσας στο γραφείο μέσω του CLI μας. Τρέξαμε τα πάντα δεκάδες φορές στον πάγκο δοκιμών, αλλά τα χέρια μου έτρεμαν ακόμα όταν έβαλα εντολές στην παραγωγή.

Kodim-πίτσα

Ως αποτέλεσμα, επιτέλους τα καταφέραμε!

Kodim-πίτσα

CourierGo

Anton Bruzhmelev (συγγραφέας), Vanya Zverev, Gleb Lesnikov (εντροπία), Αντρέι Σαραφάνοφ

Πήραμε την ιδέα μιας "App for Courier".

Ιστορικό για την προετοιμασία.Αρχικά, αναρωτήθηκα τι είδους δυνατότητες θα μπορούσε να έχει η εφαρμογή; Προέκυψε η ακόλουθη λίστα λειτουργιών:

  • Η εφαρμογή συνδέεται στο ταμείο παράδοσης χρησιμοποιώντας τον κωδικό.
  • Η εφαρμογή εμφανίζει αμέσως διαθέσιμες παραγγελίες και παραγγελίες που πρέπει να ληφθούν.
  • Ο κούριερ σημειώνει την παραγγελία και την παίρνει στο ταξίδι.
  • Του φαίνεται ο εκτιμώμενος χρόνος και αν είναι στην ώρα του ή όχι.
  • Δείχνει στον πελάτη ότι ο κούριερ έφυγε.
  • Ο πελάτης αρχίζει να εμφανίζεται το σημείο του courier στον χάρτη και ο εκτιμώμενος χρόνος.
  • Ο κούριερ μπορεί να γράψει στον πελάτη σε συνομιλία από την εφαρμογή.
  • Ο πελάτης μπορεί να γράψει στον courier μέσω chat από την εφαρμογή.
  • Πέντε λεπτά πριν την άφιξη, ο πελάτης λαμβάνει ένα μήνυμα ότι ο κούριερ είναι κοντά, να είστε προετοιμασμένοι.
  • Ο ταχυμεταφορέας σημειώνει στην αίτηση ότι έφτασε και περιμένει.
  • Ο κούριερ καλεί από την εφαρμογή με ένα κλικ και αναφέρει ότι (ανεβαίνει, έφτασε κ.λπ.)
  • Ο πελάτης αποδέχεται την παραγγελία και εισάγει κωδικό PIN από την εφαρμογή ή SMS για επιβεβαίωση παράδοσης (ως υπογραφή) Για να μην μπορεί ο ταχυμεταφορέας να ολοκληρώσει την παράδοση εκ των προτέρων εάν καθυστερήσει.
  • Η παραγγελία επισημαίνεται ως παραδοθείσα στο σύστημα.

Επιπλέον μερικά εναλλακτικά σενάρια:

  • Ο courier μπορεί να επισημάνει την παραγγελία ως μη παραδοθείσα και να επιλέξει την αιτία.
  • Εάν καθυστερήσετε, ο ταχυμεταφορέας μπορεί να εκδώσει ηλεκτρονικό πιστοποιητικό μέσω SMS με ένα κουμπί. Ή το πιστοποιητικό φτάνει αυτόματα εάν δεν τηρηθεί η προθεσμία παράδοσης.

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

Την επόμενη μέρα πήγαμε για μεσημεριανό γεύμα με την ομάδα και συζητήσαμε πώς θα ήταν η ελάχιστη λειτουργικότητα της εφαρμογής.

Ως αποτέλεσμα, σχηματίστηκε η ακόλουθη λίστα με το τι έπρεπε να γίνει στο hackathon:

  • Είσοδος στο ταμείο παράδοσης.
  • Εμφάνιση της τρέχουσας θέσης.
  • Αποστολή δεδομένων σε εξωτερικό API (συντεταγμένες, έλαβε την παραγγελία, παραδόθηκε η παραγγελία).
  • Λήψη δεδομένων από εξωτερικό API (τρέχουσες παραγγελίες courier).
  • Στείλτε ένα συμβάν που δηλώνει ότι έχετε λάβει την παραγγελία για παράδοση/παράδοση.
  • Εμφάνιση της τρέχουσας θέσης του courier στον χάρτη της ιστοσελίδας.

Η κύρια δουλειά, όπως φάνηκε, βρισκόταν στη δημιουργία του backend, της ίδιας της εφαρμογής (μετά από συζητήσεις, επιλέξαμε το ReactNative για να αναπτύξουμε την εφαρμογή, ή μάλλον το πλαίσιο για αυτήν - expo.io, το οποίο σας επιτρέπει να μην γράφετε καθόλου εγγενή κώδικα). Όσον αφορά το backend, αρχικά υπήρχε ελπίδα στον Vanya Zverev, καθώς ήταν έμπειρος στη συνεργασία με το πρότυπο υπηρεσίας και τα k8s (την οποία και ανέλαβε). Ο Andrey Sarafanov και εγώ πήραμε το ReactNative για μια περιστροφή.

Αποφάσισα να προσπαθήσω να δημιουργήσω αμέσως ένα λειτουργικό αποθετήριο για το ίδιο το έργο. Στις 12 το βράδυ συνάντησα το γεγονός ότι η γεωγραφική τοποθεσία στο παρασκήνιο δεν λειτουργεί καλά στο ReactNative, αν δεν γράφεις εγγενή κώδικα, ήμουν λίγο απογοητευμένος. Μετά το άφησα όταν συνειδητοποίησα ότι διάβαζα την τεκμηρίωση όχι του πλαισίου expo.io, αλλά του ReactNative. Ως αποτέλεσμα, κατά τη διάρκεια της βραδιάς κατάλαβα ήδη πώς να αποκτήσω την τρέχουσα θέση στο expo.io και να σχεδιάσω ξεχωριστές οθόνες (για σύνδεση, εμφάνιση παραγγελιών κ.λπ.).

Kodim-πίτσα

Το πρωί στο hackathon, παρέσυραν τον Gleb στο σούπερ υποσχόμενο έργο τους. Γρήγορα κατέληξαν σε ένα σχέδιο για το τι έπρεπε να γίνει.

Kodim-πίτσα

Κάναμε λάθος όταν, σύμφωνα με το πρότυπο του έργου, προσπαθήσαμε να επικοινωνήσουμε όχι μέσω HTTP, αλλά μέσω GRPC, αφού κανείς δεν ήξερε πώς να δημιουργήσει έναν πελάτη GRPC για JavaScript. Στο τέλος, αφού ξοδέψαμε περίπου μιάμιση ώρα σε αυτό, εγκαταλείψαμε αυτήν την ιδέα. Εξαιτίας αυτού, οι τύποι στο back-end άρχισαν να ξαναφτιάχνουν τον τελικό διακομιστή από το GRPC στο WebApi. Μετά από μισή ώρα, επιτέλους μπορέσαμε να δημιουργήσουμε επικοινωνία μεταξύ της εφαρμογής και του backend, ιδού. Αλλά την ίδια στιγμή, ο Gleb σχεδόν τελείωνε την ανάπτυξη στα k8s και συν την αυτόματη ανάπτυξη ενός commit στον κύριο. 🙂

Επιλέξαμε τη MySQL ως αποθηκευτικό χώρο για να μην ρισκάρουμε τουλάχιστον με τη βάση δεδομένων (είχαμε σκέψεις για το CosmosDb).

Kodim-πίτσα

Εν περιλήψει:

  • Υλοποιήθηκε η αποθήκευση των τρεχουσών συντεταγμένων του courier από την εφαρμογή στη βάση δεδομένων.
  • Εγκαταστήσαμε το RabbitMQ και εγγραφήκαμε σε μηνύματα σχετικά με την παραλαβή μιας παραγγελίας από τον ταχυμεταφορέα, προκειμένου να εμφανιστεί αμέσως η παραγγελία από τον κούριερ στην εφαρμογή.
  • Ξεκινήσαμε να αποθηκεύουμε τον χρόνο παράδοσης της παραγγελίας στη βάση δεδομένων μας αφού ο κούριερ πάτησε ένα κουμπί στην εφαρμογή. Δεν είχαμε χρόνο να προσθέσουμε την αποστολή ενός συμβάντος πίσω στο rebbit ότι η παραγγελία παραδόθηκε.
  • Έκανα μια εμφάνιση χάρτη στη σελίδα τρέχουσας παραγγελίας στον ιστότοπο με την τρέχουσα θέση του courier. Αλλά αυτή η λειτουργία παρέμεινε λίγο ημιτελής, καθώς δεν ήταν δυνατή η διαμόρφωση των CORS στο περιβάλλον για να λαμβάνει συντεταγμένες από τη νέα μας υπηρεσία.

M87

Roma Bukin, Gosha Polevoy (georgepolevoy), Artyom Trofimushkin

Θέλαμε να εφαρμόσουμε έναν πάροχο OpenID Connect, καθώς αυτή τη στιγμή χρησιμοποιούμε ένα πρωτόκολλο ελέγχου ταυτότητας της δικής μας σχεδίασης και αυτό δημιουργεί μια σειρά από δυσκολίες: προσαρμοσμένες βιβλιοθήκες πελατών, άβολη εργασία από εξωτερικούς συνεργάτες, πιθανά προβλήματα ασφάλειας (εξάλλου , OAuth2.0 και OpenID Connect στην υλοποίηση αναφοράς μπορούν να θεωρηθούν ασφαλή, αλλά δεν είμαι σίγουρος για τη λύση μας).

Kodim-πίτσα

Δημιουργήσαμε μια ξεχωριστή υπηρεσία που προσομοιώνει μια υπηρεσία για την αποθήκευση προσωπικών δεδομένων, προκειμένου να δημιουργήσουμε ένα μικρό μοντέλο Country-Agnostic ενός παρόχου ελέγχου ταυτότητας που θα πήγαινε σε μια ξεχωριστή υπηρεσία για προσωπικά δεδομένα (αυτό θα επέτρεπε στο μέλλον να υπάρχει μια υπηρεσία με που θα μπορούσε κανείς να συνδεθεί με εγγραφή λογαριασμού σε οποιαδήποτε χώρα και ταυτόχρονα να συμμορφώνεται με τον GDPR και άλλους ομοσπονδιακούς νόμους). Κάναμε αυτό το μέρος, όπως και ο πάροχος, και τα συνδέσαμε με επιτυχία μεταξύ τους. Στη συνέχεια, ήταν απαραίτητο να δημιουργηθεί ένα API που θα προστατεύεται από διακριτικά που εκδίδονται από τον πάροχο, θα υποστηρίζει την ενδοσκόπησή τους μέσω του παρόχου και θα επιστρέφει προστατευμένα δεδομένα εάν το αίτημα πληρούσε τις πολιτικές εξουσιοδότησης (ελέγξουμε ότι ο χρήστης έχει πιστοποιηθεί σύμφωνα με το σχήμα Bearer , το διακριτικό του περιέχει ένα συγκεκριμένο εύρος + y Ο ίδιος ο χρήστης έχει άδεια που επιτρέπει την πραγματοποίηση της κλήσης). Ολοκληρώθηκε και αυτό το κομμάτι. Το τελευταίο στοιχείο ήταν ένας πελάτης JavaScript, στον οποίο θα δοθεί ένα διακριτικό, με τη βοήθεια του οποίου θα καλούσε ένα προστατευμένο API. Δεν είχαμε χρόνο να κάνουμε αυτό το κομμάτι. Δηλαδή, ολόκληρο το λειτουργικό μέρος ήταν έτοιμο, αλλά το μπροστινό μέρος δεν ήταν έτοιμο να επιδείξει τη λειτουργικότητα ολόκληρου του συστήματος.

E-E-E (παιχνίδι)

Dima Afonchenko, Sasha Konovalov

Φτιάξαμε ένα μίνι-παιχνίδι στο yunka όπου τα ζωηρά χέρια ρίχνουν λουκάνικο στην πίτσα. Αν βάλετε το λουκάνικο λάθος, εμφανίζεται ένα θλιβερό μήνυμα "Απορρίφθηκε" στην οθόνη και εάν όλα τα λουκάνικα φορέθηκαν σωστά, εμφανίζεται ένα τυχαίο γεγονός για την πίτσα.

Kodim-πίτσα

Θέλαμε να κάνουμε ένα δεύτερο επίπεδο με το να πετάμε ντομάτες, αλλά δεν είχαμε χρόνο.

Kodim-πίτσα

Σύντομη συνέχεια: ποιος κέρδισε;

Πριν από το hackathon, μιλήσαμε με τα παιδιά και ρώτησα τι έπαθλο θα ήθελαν να λάβουν αν κερδίσουν. Αποδείχθηκε ότι το πολυτιμότερο έπαθλο θα ήταν «ο δρόμος προς το φαγητό».

Kodim-πίτσα

Επομένως, περιμένετε να ανακοινώσουμε σύντομα ένα παιχνίδι με χέρια που βάζουν πιπεριές στην πίτσα.

Όπως θα μπορούσε να έχει παρατηρήσει ένας προσεκτικός αναγνώστης, η ομάδα «E-E-E (παιχνίδι)» κέρδισε. Συγχαρητήρια παιδιά!

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

Ποιο έργο σας άρεσε περισσότερο;

  • Oleg Learning (μηχανική εκμάθηση)

  • GUI για NOOBS

  • CourierGo

  • M87

  • Ε-Ε-Ε

Ψήφισαν 5 χρήστες. 3 χρήστες απείχαν.

Πηγή: www.habr.com

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