Τεχνικό τεύχος του Mail.ru Group 2019

Τεχνικό τεύχος του Mail.ru Group 2019

Στα τέλη Μαΐου, οι απόφοιτοί μας από το Technopark (Bauman MSTU), το Technotrack (MIPT), το Technosphere (Κρατικό Πανεπιστήμιο Lomonosov Moscow) και το Technopolis (Peter the Great St. Petersburg Polytechnic University) υπερασπίστηκαν τα διπλωματικά τους έργα. Τρεις μήνες διατέθηκαν για εργασία και τα παιδιά επένδυσαν στο πνευματικό τέκνο τους τις γνώσεις και τις δεξιότητες που απέκτησαν μετά από δύο χρόνια σπουδών.

Συνολικά, υπήρξαν 13 έργα για την άμυνα, επιλύοντας διάφορα προβλήματα σε διαφορετικούς κλάδους. Για παράδειγμα:

  • αποθήκευση cloud με κρυπτογράφηση αρχείων.
  • πλατφόρμα για τη δημιουργία διαδραστικών βίντεο (με διαφορετικές καταλήξεις).
  • Έξυπνος πίνακας για παιχνίδι πραγματικού σκακιού μέσω του δικτύου.
  • αρχιτεκτονική για έξυπνη ανάκτηση ιατρικών ειδών.
  • Λογισμικό για τη διδασκαλία των βασικών αλγορίθμων σε παιδιά δημοτικού.

Καθώς και έργα από επιχειρηματικές μονάδες:

  • Σύστημα CRM για αγγελιοφόρο TamTam.
  • υπηρεσία web για αναζήτηση θεματικών φωτογραφιών στο χάρτη για το Odnoklassniki.
  • υπηρεσία γεωκωδικοποίησης διευθύνσεων για το MAPS.ME.

Σήμερα θα σας πούμε με περισσότερες λεπτομέρειες για πέντε έργα των αποφοίτων μας.

Έξυπνη αναζήτηση ιατρικών ειδών

Τεχνικό τεύχος του Mail.ru Group 2019

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

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

Τεχνικό τεύχος του Mail.ru Group 2019
Το SERP περιέχει μια ταξινομημένη λίστα εγγράφων με καθορισμένα τα θέματά τους και οι λέξεις και οι όροι που σχετίζονται με αυτά τα θέματα επισημαίνονται χρησιμοποιώντας πιθανοτική μοντελοποίηση θεμάτων. Ο χρήστης μπορεί να κάνει κλικ στους επισημασμένους όρους για να περιορίσει το ερώτημα αναζήτησης.

Τεχνικό τεύχος του Mail.ru Group 2019
Για να κάνουν γρήγορη αναζήτηση στην τεράστια βάση δεδομένων PubMed, οι συγγραφείς έγραψαν τη δική τους μηχανή αναζήτησης που μπορεί εύκολα να ενσωματωθεί σε οποιαδήποτε υποδομή.

Η αναζήτηση πραγματοποιείται σε τρία στάδια:

  1. Τα υποψήφια έγγραφα επιλέγονται χρησιμοποιώντας αντίστροφο ευρετήριο.
  2. Οι υποψήφιοι ταξινομούνται χρησιμοποιώντας τον αλγόριθμο BM25F, ο οποίος λαμβάνει υπόψη διάφορα πεδία σε έγγραφα κατά την αναζήτηση. Έτσι, οι λέξεις στον τίτλο έχουν μεγαλύτερη βαρύτητα από τις λέξεις στην περίληψη.
  3. Ένα σύστημα προσωρινής αποθήκευσης χρησιμοποιείται επίσης για την επιτάχυνση της επεξεργασίας συχνών αιτημάτων.

Τεχνικό τεύχος του Mail.ru Group 2019

Αρχιτεκτονική μικροϋπηρεσιών:

Τεχνικό τεύχος του Mail.ru Group 2019
Βασικά, τα δεδομένα δομημένου κειμένου μεταφέρονται μεταξύ των υπηρεσιών. Για υψηλές ταχύτητες μεταφοράς, χρησιμοποιείται το GRPC - ένα πλαίσιο για τη σύνδεση μονάδων σε μια αρχιτεκτονική microservice. Η σειριοποίηση δεδομένων χρησιμοποιείται επίσης χρησιμοποιώντας τη μορφή ανταλλαγής μηνυμάτων Protobuf.

Ποια στοιχεία περιλαμβάνει το σύστημα:

  • Διακομιστής για την επεξεργασία των εισερχόμενων αιτημάτων χρήστη στο Node.js.
  • Φόρτωση αιτημάτων εξισορρόπησης χρησιμοποιώντας τον διακομιστή μεσολάβησης nginx.
  • Ο διακομιστής Flask υλοποιεί το REST API και λαμβάνει αιτήματα που προωθούνται από το Node.js.
  • Όλα τα ακατέργαστα και επεξεργασμένα δεδομένα, καθώς και οι πληροφορίες ερωτημάτων, αποθηκεύονται στο MongoDB.
  • Όλα τα αιτήματα για σχετικά αποτελέσματα για θεματοποίηση εγγράφων πηγαίνουν στο RabbitMQ.

Παράδειγμα αποτελεσμάτων αναζήτησης:

Τεχνικό τεύχος του Mail.ru Group 2019

Τι σκοπεύουμε να κάνουμε στη συνέχεια:

  • Συστάσεις κατά τη σύνταξη αξιολογήσεων για ένα δεδομένο θέμα (προσδιορισμός σημαντικών θεμάτων σε ένα έγγραφο και αναζήτηση σε υποσύνολα εγγράφων).
  • Αναζήτηση αρχείων PDF.
  • Σημασιολογική κατάτμηση κειμένου.
  • Παρακολουθήστε θέματα και τάσεις με την πάροδο του χρόνου.

Ομάδα έργου: Fedor Petryaykin, Vladislav Dorozhinsky, Maxim Nakhodnov, Maxim Filin

Αποκλεισμός αρχείου καταγραφής

Τεχνικό τεύχος του Mail.ru Group 2019

Σήμερα, όταν διδάσκουν προγραμματισμό και επιστήμη των υπολογιστών, τα παιδιά της πρωτοβάθμιας σχολικής ηλικίας (τάξεις 5-7) αντιμετωπίζουν προβλήματα στην κατάκτηση της ύλης. Επιπλέον, εάν οι μαθητές θέλουν να ολοκληρώσουν εργασίες στο σπίτι, πρέπει να εγκαταστήσουν πρόσθετο λογισμικό στους υπολογιστές τους. Οι δάσκαλοι πρέπει να ελέγξουν έναν μεγάλο αριθμό παρόμοιων λύσεων σε προβλήματα, και στην περίπτωση της εξ αποστάσεως εκπαίδευσης, πρέπει επίσης να αναπτύξουν μια μεθοδολογία για τη λήψη εργασιών από τους μαθητές.

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

Πλατφόρμα Αποκλεισμός αρχείου καταγραφής σας επιτρέπει:

  1. Δημιουργία και επεξεργασία διαγραμμάτων ροής.
  2. Εκτελέστε τα δημιουργημένα διαγράμματα ροής και δείτε το αποτέλεσμα της δουλειάς τους (δεδομένα εξόδου).
  3. Αποθηκεύστε και φορτώστε δημιουργημένα έργα.
  4. Σχεδιάστε εικόνες ράστερ (δημιουργώντας μια εικόνα με βάση έναν αλγόριθμο που δημιουργήθηκε από το παιδί).
  5. Λάβετε πληροφορίες σχετικά με την πολυπλοκότητα του δημιουργημένου αλγόριθμου (με βάση τον αριθμό των πράξεων που εκτελούνται στον αλγόριθμο).

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

Πρόγραμμα επεξεργασίας αρχείων καταγραφής μπλοκ προγράμματος περιήγησης:

Τεχνικό τεύχος του Mail.ru Group 2019

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

Τεχνικό τεύχος του Mail.ru Group 2019

Η πλατφόρμα αποτελείται από μια εφαρμογή front-end στο Vue.js και μια εφαρμογή back-end στο Ruby on Rails. Η PostgreSQL χρησιμοποιείται ως βάση δεδομένων. Για να απλοποιηθεί η ανάπτυξη, όλα τα στοιχεία του συστήματος συσκευάζονται σε δοχεία Docker και συναρμολογούνται χρησιμοποιώντας το Docker Compose. Η έκδοση για υπολογιστές του Block Log βασίζεται στο πλαίσιο Electron. Το Webpack χρησιμοποιήθηκε για τη δημιουργία του κώδικα JavaScript.

Ομάδα έργου: Alexander Barulev, Maxim Kolotovkin, Kirill Kucherov.

Σύστημα CRM για αγγελιοφόρο TamTam

Τεχνικό τεύχος του Mail.ru Group 2019

Το CRM είναι ένα εργαλείο για άνετη αλληλεπίδραση μεταξύ επιχειρήσεων και χρηστών TamTam. Έχουν υλοποιηθεί οι ακόλουθες λειτουργίες:

  • Ένας κατασκευαστής bot που σας επιτρέπει να δημιουργείτε bots χωρίς δεξιότητες προγραμματισμού. Σε λίγα λεπτά μπορείτε να αποκτήσετε ένα πλήρως λειτουργικό bot που μπορεί όχι μόνο να εμφανίζει ορισμένες πληροφορίες στους χρήστες, αλλά και να συλλέγει δεδομένα, συμπεριλαμβανομένων. αρχεία που ο διαχειριστής μπορεί να δει αργότερα.
  • RSS. Μπορείτε εύκολα να συνδέσετε RSS σε οποιοδήποτε κανάλι.
  • Καθυστερημένη ανάρτηση. Σας επιτρέπει να στέλνετε και να διαγράφετε μηνύματα σε προκαθορισμένους χρόνους.

Η ομάδα συμμετείχε επίσης στη δοκιμή του Bot API, δημιουργώντας πολλά αυτογραφόμενα bot, όπως ένα bot για το Παγκόσμιο Κύπελλο Χόκεϊ 2019, ένα bot για εγγραφή/εξουσιοδότηση στην υπηρεσία μας και ένα bot για CI/CD.

Υποδομή λύσης:

  • Ο διακομιστής διαχείρισης περιέχει ένα σύστημα παρακολούθησης για κάθε διακομιστή και κάθε κοντέινερ Docker σε αυτόν, προκειμένου να εντοπίζει γρήγορα και εύκολα ένα πρόβλημα και να το λύνει, να προβάλλει διάφορες μετρήσεις και στατιστικά χρήσης. Υπάρχει επίσης σύστημα απομακρυσμένης διαχείρισης παραμέτρων της εφαρμογής μας.
  • Ο διακομιστής σταδιοποίησης περιέχει την τρέχουσα έκδοση της εφαρμογής μας, διαθέσιμη για γενική δοκιμή από την ομάδα ανάπτυξης.
  • Οι διακομιστές διαχείρισης και σταδιοποίησης είναι διαθέσιμοι μόνο μέσω VPN στους προγραμματιστές και ο διακομιστής παραγωγής περιέχει την έκδοση έκδοσης της εφαρμογής. Είναι απομονωμένο από τα χέρια των προγραμματιστών και είναι διαθέσιμο μόνο στον τελικό χρήστη.
  • Το σύστημα CI/CD υλοποιήθηκε χρησιμοποιώντας Github και Travis, ειδοποίηση χρησιμοποιώντας ένα προσαρμοσμένο bot στο TamTam.

Τεχνικό τεύχος του Mail.ru Group 2019

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

Τεχνικό τεύχος του Mail.ru Group 2019

Ομάδα έργου: Alexey Antufiev, Egor Gorbatov, Alexey Kotelevsky.

ForkMe

Τεχνικό τεύχος του Mail.ru Group 2019

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

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

Κατά την ανάπτυξη του έργου, τα παιδιά εμπνεύστηκαν από τη διαδραστική ταινία Bandersnatch από το Netflix, η οποία έλαβε πολλές προβολές και καλές κριτικές. Όταν γράφτηκε ήδη το MVP, εμφανίστηκαν νέα ότι το Youtube σχεδίαζε να ξεκινήσει μια πλατφόρμα για διαδραστικές σειρές, κάτι που επιβεβαιώνει για άλλη μια φορά τη δημοτικότητα αυτής της κατεύθυνσης.

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

Τεχνικό τεύχος του Mail.ru Group 2019

Στοίβα τεχνολογίας που χρησιμοποιήθηκε στο έργο:

Τεχνικό τεύχος του Mail.ru Group 2019

Πώς σχεδιάζεται η ανάπτυξη του έργου:

  • συλλογή στατιστικών στοιχείων και γραφημάτων σχετικά με τις μεταβάσεις σε βίντεο.
  • ειδοποιήσεις και προσωπικά μηνύματα για χρήστες του ιστότοπου·
  • εκδόσεις για Android και iOS.

Μετά από αυτό σκοπεύουμε να προσθέσουμε:

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

Ομάδα έργου: Maxim Morev (προγραμματιστής fullstack, εργάστηκε στην αρχιτεκτονική του έργου) και Roman Maslov (προγραμματιστής fullstack, εργάστηκε στο σχεδιασμό του έργου).

On-Line-On-Board

Τεχνικό τεύχος του Mail.ru Group 2019

Τεχνικό τεύχος του Mail.ru Group 2019

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

Όλοι αυτοί οι παράγοντες ώθησαν τους συγγραφείς στην ιδέα του έργου On-Line-On-Board, το οποίο αποτελείται από τρία μέρη: μια φυσική σκακιέρα, μια εφαρμογή επιφάνειας εργασίας και μια υπηρεσία web. Ο πίνακας είναι ένα κανονικό σκακιστικό πεδίο, το οποίο αναγνωρίζει τη θέση των κομματιών και, με τη βοήθεια μιας φωτεινής ένδειξης, υποδεικνύει τις κινήσεις του αντιπάλου. Η πλακέτα συνδέεται μέσω USB σε υπολογιστή και επικοινωνεί με την επιτραπέζια εφαρμογή. Στη λειτουργία προπόνησης (και για παιδιά), επισημαίνονται οι πιθανές κινήσεις σας.

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

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

Ομάδα έργου: Daniil Tuchin, Anton Dmitriev, Sasha Kuznetsov.

Μπορείτε να διαβάσετε περισσότερα για τα εκπαιδευτικά μας έργα στο αυτό το σύνδεσμο. Και να επισκέπτεστε το κανάλι πιο συχνά Technostream, νέα εκπαιδευτικά βίντεο σχετικά με τον προγραμματισμό, την ανάπτυξη και άλλους κλάδους εμφανίζονται τακτικά εκεί.

Πηγή: www.habr.com

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