Υπογραφή για την υποψηφιότητα του Ναβάλνι. Μια σάρωση του διαβατηρίου σας για κάθε υπογραφή. Συγχρονισμός με ηλεκτρονική βάση δεδομένων

Σπίτι

Αντιγράψτε το iframe Ο Ναβάλνι δεν ήταν εγγεγραμμένος, ο Σόμπτσακ συλλέγει υπογραφές και ο Βλαντιμίρ Πούτιν αγνοεί ακόμη και την ομάδα πρωτοβουλίας του. Μέχρι τις προεδρικές εκλογές στη Ρωσία υπάρχουνλιγότερο από τρεις

μήνες και είναι ήδη λίγο-πολύ ξεκάθαρο πώς θα είναι τα ψηφοδέλτια. 43 υποψήφιοι για την προεδρία. 18 υποψήφιοι κόμματος, 25αυτοπροτεινόμενοι υποψήφιοι

για την προεδρία και την απουσία του κύριου πολιτικού αντιπάλου του Βλαντιμίρ Πούτιν, του πολιτικού Αλεξέι Ναβάλνι. Ενδιάμεσα αποτελέσματα της αυξανόμενης ρωσικής πολιτικής εκστρατείας Νο1.

ΚΑΤΟΙΚΟΙ ΑΓΙΑΣ ΠΕΤΡΟΥΠΟΛΗΣ «Αν ο Ναβάλνι είχε γίνει δεκτός χθες,Θα τον ψήφιζα, αφού δεν του επιτρεπόταν, δεν ξέρω, ή θα πάω, αλλά τώρα

Πρέπει να αποφασίσω ποιον θέλω, αλλιώς δεν θα πάω».

«Θα ήταν ενδιαφέρον αν συμμετείχε, θα υπήρχε η ευκαιρία να δείξουμε στον Ζιρινόφσκι ότι ήρθε η ώρα να φύγει, γιατί ο Ναβάλνι είχε την ευκαιρία να γίνει δεύτερος».

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

Την προηγούμενη μέρα, η Ρωσική Κεντρική Εκλογική Επιτροπή αρνήθηκε επίσημα να εγγράψει τον Ναβάλνι ως υποψήφιο για την προεδρία. Σύμφωνα με την Κεντρική Εκλογική Επιτροπή, πολιτικός δεν έχει δικαίωμα να θέσει υποψηφιότητα λόγω του ποινικού του μητρώου στην υπόθεση Kirovles. Μετά την άρνηση της Κεντρικής Εκλογικής Επιτροπής, ο Ναβάλνι κάλεσε τους υποστηρικτές του να μποϊκοτάρουν τις εκλογές του Μαρτίου. «Η απόφαση της Κεντρικής Εκλογικής Επιτροπής να μην μου επιτρέψει να συμμετάσχω στις εκλογές θα αποκλείσει εκατομμύρια ανθρώπους από αυτές τις εκλογές, θα αποκλείσει εκατομμύρια ανθρώπους απόπολιτικό σύστημα

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

Με τη σειρά της, η παρουσιάστρια του Dozhd TV Ksenia Sobchak έλαβε εγγραφή. Προέρχεται από το κόμμα της Πολιτικής Πρωτοβουλίας, το οποίο δεν έχει έδρες στην Κρατική Δούμα και ως εκ τούτου πρέπει να συγκεντρώσει τουλάχιστον 100 χιλιάδες υπογραφές για την υποστήριξή του έως τις 7 Ιανουαρίου. Ο Σόμπτσακ έχει ήδη προσκαλέσει τον Ναβάλνι να είναι ο έμπιστός της.

Όσο για τον βασικό υποψήφιο και νυν πρόεδρο, ο Βλαντιμίρ Πούτιν δεν προσήλθε καν στη συνεδρίαση της ομάδας πρωτοβουλίας του. Ο γραμματέας Τύπου του Πούτιν Πεσκόφ αναφέρθηκε στο φορτωμένο πρόγραμμα του προέδρου και είπε ότι οι εκκλήσεις του Ναβάλνι για μποϊκοτάζ «πρέπει να μελετηθούν για συμμόρφωση με το νόμο».

Την ίδια στιγμή, οι ειδικοί δεν βλέπουν καμία πιθανότητα για ευρεία διαμαρτυρία, τα αποτελέσματα είναι προκαθορισμένα, λέει ο Alexander Konfisakhor.

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

Ο μπλόγκερ και επιχειρηματίας Pavel Grudinin είναι υποψήφιος για τις εκλογές στη Ρωσία από τους κομμουνιστές. Τα κόμματα LDPR και Yabloko αποφάσισαν να μην αλλάξουν άλογα στη διάβαση. Όμως, παρά τους σχεδόν πενήντα υποψηφίους για την προεδρία, ο Γάλλος Πρόεδρος, για παράδειγμα, έχει ήδη προγραμματίσει μια συνάντηση με τον Πούτιν, η οποία θα πραγματοποιηθεί μετά τις εκλογές που ανακοινώθηκαν για τις 18 Μαρτίου.

Καμπάνια +1. Συγκεντρώνουμε 1.000.000 υπογραφές

Προκειμένου να συγκεντρωθούν οι 300.000 υπογραφές που απαιτούνται για την ανάδειξη υποψηφίου προεδρικές εκλογέςτο 2018, μας πήρε 4 μήνες. Μας νέος στόχος- ένα εκατομμύριο και ξεκινάμε την καμπάνια "+1".

Σύμφωνα με τους νόμους της Ρωσικής Ομοσπονδίας, για να εγγραφεί ως υποψήφιος πρόεδρος, ο αιτών πρέπει να υποβάλει 300.000 επιβεβαιωμένες υπογραφές στην Κεντρική Εκλογική Επιτροπή, οι οποίες πρέπει να συγκεντρωθούν πολύ γρήγορα. βραχυπρόθεσμα. Μόνο 40 ημέρες διατίθενται για συλλογή, και στην περίπτωσή μας - ακόμη λιγότερες, επειδή αυτές οι 40 ημέρες πέφτουν διακοπές του νέου έτους. Στην πραγματικότητα, πρόκειται για ένα ακόμη τεχνητό εμπόδιο που δημιουργούν οι αρχές. Επιπλέον, οι υπογραφές πρέπει να συγκεντρωθούν σε 40 περιοχές της χώρας - όχι περισσότερες από 7.500 από κάθε θέμα της Ρωσικής Ομοσπονδίας.


Φωτογραφία: Evgeny Feldman

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

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

Αλεξέι Ναβάλνι


Φωτογραφία: Evgeny Feldman

Πιθανότατα, η CEC θα μελετήσει ιδιαίτερα προσεκτικά τις υπογραφές που υποβλήθηκαν από το αρχηγείο του Ναβάλνι - επομένως, πρέπει να ασφαλιστούμε όσο το δυνατόν περισσότερο και να συλλέξουμε πολύ περισσότερα από όσα ορίζει το πρωτόκολλο. Συλλέγουμε όχι μόνο διευθύνσεις email, αλλά και αριθμούς τηλεφώνου και σύντομα προφίλ όλων όσοι είναι έτοιμοι να υποστηρίξουν την υποψηφιότητα του Alexei Navalny. Αυτό γίνεται για να γνωρίζουμε ακριβώς σε ποιες περιοχές βρίσκονται οι υποστηρικτές μας και πόσοι είναι.

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

Αλεξέι Ναβάλνι


Ο επόμενος στόχος μας είναι ένα εκατομμύριο υπογραφές, που θα μας εγγυηθούν τις 300.000 που χρειαζόμαστε στο τέλος του χρόνου. Για να γίνει αυτό, ξεκινάμε μια καμπάνια «+1» και καλούμε όλους όσοι έχουν ήδη εγγραφεί στον ιστότοπο να πείσουν τουλάχιστον ένα ακόμη άτομο να εγγραφεί. Ή καλύτερα, δύο ή πέντε - και τότε το απαιτούμενο εκατομμύριο θα επιτευχθεί μέχρι το καλοκαίρι.

Τώρα χρειαζόμαστε πραγματικά τη βοήθειά σας. Αφιερώστε 10-15 λεπτά από το χρόνο σας και ενθαρρύνετε έναν από τους φίλους, τους συγγενείς ή τους συναδέλφους σας να υπογράψουν.


Φωτογραφία: Evgeny Feldman

Γράψτε ένα γράμμα ή ένα μήνυμα σε πολλούς φίλους σε ένα κοινωνικό δίκτυο:
"Γειά σου. Υπέγραψα για την ανάδειξη του Ναβάλνι ως υποψήφιου. Θα μπορούσατε να το προμηθευτείτε και εσείς; θα είναι σωστό"

Αλεξέι Ναβάλνι

Τα 385.531 άτομα που έχουν ήδη εγγραφεί είναι μια τρομερή δύναμη. Ας το αξιοποιήσουμε στο έπακρο. Εγγραφείτε στην καμπάνια "+1".

Αγία Πετρούπολη, Πεδίο του Άρη, 17 Δεκεμβρίου 2017: 1.797 άτομα ψήφισαν υπέρ του διορισμού του Ναβάλνι ως υποψήφιου Προέδρου της Ρωσικής Ομοσπονδίας στη βόρεια πρωτεύουσα Φωτογραφία: Twitter / @teamnavalny

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

Στο κέντρο του Champ de Mars, συγκεντρώθηκαν οι σταθεροί σύντροφοι όλων των ενεργειών της αντιπολίτευσης στην Αγία Πετρούπολη - χαρούμενοι Nodovites άνοιξαν τα μαύρα και πορτοκαλί ριγέ πανό τους και τα άναψαν μέσω ενισχυτών πατριωτικά τραγούδια. Στο βρυχηθμό του «Σήκω, τεράστια χώρα...», οι υποστηρικτές του Ναβάλνι συνέρρεαν στα τραπέζια που ήταν τοποθετημένα σε όλο το γήπεδο.

Παγωμένοι πολίτες συγκεντρώθηκαν κοντά στην Αιώνια Φλόγα και συζήτησαν τι συνέβαινε. Κάποιος έβγαλε μια εκτύπωση με τις προεκλογικές υποσχέσεις του Πούτιν το 2000 και διάβασε δυνατά σημεία για την απόσταση μεταξύ εξουσίας και επιχειρήσεων, για την ελευθερία του Τύπου... «Ξέχασε αυτό που υποσχέθηκε;» - η φωνή της αφελούς κοπέλας πνίγηκε κυριολεκτικά στο γενικό γέλιο.

«Για κάποιο λόγο δεν βλέπουμε συμβολαιογράφο εδώ! - σχολίασε έκπληκτος ο δημοσιογράφος NTεκδηλώσεις στο Champ de Mars Oleg Zatsepa, μέλος της εκλογικής επιτροπής της πόλης. «Οι διοργανωτές ισχυρίζονται ότι θα πραγματοποιήσει αργότερα τις ενέργειές του εκ των υστέρων, αλλά αυτό δεν είναι ακόμη γεγονός!»

«Ο συμβολαιογράφος μπορεί στη συνέχεια να εγκρίνει τους καταλόγους μέσω βίντεο», εξήγησε την κατάσταση ο Denis Mikhailov, επικεφαλής των κεντρικών γραφείων του Navalny στην Αγία Πετρούπολη. - Ο νόμος δεν απαιτεί να είναι παρών συμβολαιογράφος που μπορεί να πιστοποιήσει χρησιμοποιώντας το βίντεο πρωτοκόλλου που κάνουμε. Επίσης, θα επικυρώσουμε τα φύλλα εγγραφής και θα τα στείλουμε στην CEC. Και για να φέρεις έναν συμβολαιογράφο εδώ (χρειάζεσαι) ενάμιση εκατομμύριο (ρούβλια), δεν έχουμε τέτοια κεφάλαια».

Μέχρι το μεσημέρι, όταν ακούστηκε η βολή του κανονιού Φρούριο Πέτρου και ΠαύλουΥπήρχαν τόσοι πολλοί άνθρωποι που ήταν πρόθυμοι να υπογράψουν για τον Ναβάλνι που οι μεγάλες ουρές απλώνονταν στα τραπέζια με τα χαρτιά.

«Μου φαίνεται ότι αν ο Ναβάλνι είχε επιτραπεί στην τηλεόραση έστω και για ένα μήνα, ο Πούτιν δεν θα μπορούσε να τον φτάσει. Γιατί δεν έχουμε εμπιστοσύνη στον πρόεδρο!».

«Υπάρχουν πολλοί ενήλικες εδώ, όχι μόνο νέοι, απλώς νέοι που είναι πιο ευκίνητοι», εξήγησε η 54χρονη Shahnaz τη συμμετοχή της στη δράση. - Λοιπόν, θα έρθει ο Πούτιν, άλλα 6 χρόνια - και τι θα γίνει μετά από αυτόν; Ο πρόεδρος που θα ακολουθήσει θα είναι άτυχος - όλα καταστρέφονται! Η κόρη μου σπουδάζει στο κολέγιο, λέει πώς κάνουν εκστρατεία εναντίον του Ναβάλνι στο κολέγιο, λέει - μαμά, ακόμα τα καταλαβαίνουμε όλα! Μου φαίνεται ότι αν ο Ναβάλνι είχε επιτραπεί στην τηλεόραση έστω και για ένα μήνα, ο Πούτιν δεν θα μπορούσε να τον προλάβει. Γιατί δεν έχουμε εμπιστοσύνη στον πρόεδρο!».

Όλοι όσοι εγγράφηκαν οργανώθηκαν σε 50 στήλες των περίπου 40 ατόμων η καθεμία και παρατάχθηκαν μπροστά από αναμνηστικό συγκρότημαγια την καταμέτρηση ψήφων.

«Κύριοι, σηκώστε τα χαρτιά σας, αν είστε υπέρ της ανάδειξης του Αλεξέι Ναβάλνι ως προεδρικού υποψηφίου!» - Ο Μιχαήλοφ απευθύνθηκε στο κοινό. Ένα δάσος από κόκκινα φύλλα πέταξε πάνω από το χωράφι. Υπάρχουν «κατά»; - Μία κόκκινη κάρτα εμφανίστηκε στα περίχωρα του πλήθους. «Αποχή;» 1.797 άτομα ψήφισαν για τον Ναβάλνι, ανέφερε αργότερα το Fontanka.ru.

«Λοιπόν, ο Ναβάλνι τηλεφώνησε απαιτούμενη ποσότηταψήφους!» - δήλωσε ο αρχηγός του αρχηγείου και έκλεισε τη συνάντηση. Η αστυνομία, η οποία είχε στριμωχτεί στις πλευρές του Champs de Mars σε όλη τη διάρκεια της διαδήλωσης, περιπλανήθηκε πίσω στα αυτοκίνητά της.

Αικατερινούπολη: Οι πληροφοριοδότες είναι εναντίον του Ναβάλνι, οι φοιτητές είναι υπέρ


Ekaterinburg, 24 Δεκεμβρίου 2017Φωτογραφία: Twitter / @teamnavalny_ekb

Ήδη μισή ώρα πριν από την έναρξη της συνάντησης, αρκετός κόσμος είχε συγκεντρωθεί στον χώρο κοντά στο μνημείο των ιδρυτών του Αικατερινούμπουργκ στο κέντρο της πόλης. Μεσήλικες, συνταξιούχοι, αλλά όλο και περισσότεροι νέοι ρέουν στον χώρο που περικλείεται από μικρούς φράχτες μέσω αστυνομικής έρευνας στην είσοδο. «Και αυτή τη φορά δεν υπάρχουν τόσοι πολλοί αστυνομικοί», σημειώνει ένας από τους παρόντες. - ΜΕΣΑ τελευταία φορά«Προφτάσαμε με πολύ περισσότερο κόσμο, αλλά εκατό άτομα συνολικά συμμετείχαν στο ράλι».

Πράγματι, υπάρχουν σχετικά λίγοι αξιωματικοί επιβολής του νόμου και είναι αρκετά φιλικοί. Το ίδιο και οι συμμετέχοντες στη συνάντηση. Μόνο ένας ηλικιωμένος, όταν κατά λάθος προσπαθούν να τον εξετάσουν ξανά, αρχίζει να βρίζει, να κουνάει τη γροθιά του στην αστυνομία και να ρωτά απειλητικά: «Τι; Θα θέλατε να αποκτήσετε ένα νέο σήμα;» Σύντομα η επαναστατική ζέση του άνδρα εξαφανίζεται στη φιλική ατμόσφαιρα της συνάντησης - πολλοί εδώ συναντήθηκαν με γνωστούς και φίλους, κάποιοι ήρθαν με την οικογένειά τους.

Μερικοί κάτοικοι του Αικατερινούμπουργκ δεν φοβήθηκαν να φέρουν τα παιδιά τους στη συνάντηση. Και αυτό μετά τον Οκτώβριο, όταν στο συλλαλητήριο για τον Ναβάλνι ήταν τρεις ντουζίνες. Ωστόσο, τότε η ενέργεια δεν εγκρίθηκε από τις αρχές, αλλά τώρα παρακολουθείται όχι μόνο από την αστυνομία, αλλά και από υπαλλήλους της Περιφερειακής Εκλογικής Επιτροπής του Σβερντλόφσκ. Μετρούν τις αφίξεις και αργότερα θα εξασφαλίσουν ότι η διαδικασία θα εξελιχθεί ομαλά.

«Στο Ρωσικό Κρατικό Πανεπιστήμιο Ψυχολογίας και Εκπαίδευσης, μια τελειόφοιτη φοιτήτρια συνέταξε μια λίστα με όλους τους φοιτητές που είναι για τον Ναβάλνι και την πήγε στο γραφείο του κοσμήτορα. Το πραγματικό 1937!»

Οι άνθρωποι φτάνουν ακόμα. Ο φιλελεύθερος βουλευτής της πόλης Ντμίτρι Γκολόβιν, μέλος της δημόσιας επιτροπής παρακολούθησης της περιφέρειας Σβερντλόφσκ Βιάτσεσλαβ Μπασκόφ και ο «γκρίζος εξέχων» της αντιπολίτευσης των Ουραλίων, ο πολιτικός επιστήμονας Φιόντορ Κρασενίννικοφ, ήρθαν να υποστηρίξουν τον υποψήφιο τους. Οι εθελοντές μοιράζουν φύλλα εγγραφής, στα οποία πρέπει να υποδείξετε τα στοιχεία του διαβατηρίου σας και να υπογράψετε, καθώς και εντολές - κόκκινα ορθογώνια που απαιτούνται για την ψηφοφορία.

Κάτω από το μνημείο των ιδρυτών, ένας ηλικιωμένος αφηγείται σε δύο νέους μια διδακτική ιστορία για το πώς δύο μέρες πριν από τις εκλογές για τον δήμαρχο του Αικατερινούμπουργκ αποφάσισε να μην ψηφίσει τον Roizman, γιατί «δεν θα περάσει έτσι κι αλλιώς». Και όταν ο «υποψήφιος του λαού» και μαχητής κατά της διακίνησης ναρκωτικών κέρδισε απροσδόκητα για όλους, επανεξέτασε τη θέση του - και τώρα πιστεύει ότι ο Ναβάλνι έχει επίσης μια ευκαιρία. Σε απάντηση, οι φοιτητές μοιράζονται τη δική τους ιστορία: «Στο RSUPU μας, ένας τελειόφοιτος έφτιαξε μια λίστα με όλους τους φοιτητές που είναι για τον Ναβάλνι και την πήγε στο γραφείο του κοσμήτορα. Το πραγματικό 1937!»

Τέλος, συμπληρώνονται τα φύλλα και μοιράζονται οι εντολές. Για κάθε ενδεχόμενο, οι διοργανωτές έφεραν όχι 500, αλλά 1.000 κάρτες ψηφοφορίας - τις χώρισαν όλες, οπότε οι καθυστερημένοι έπρεπε να απομακρυνθούν. Υπάρχουν τέσσερα ερωτήματα στην ημερήσια διάταξη: πρέπει να θεωρήσουμε τη συνεδρίαση ανοιχτή, να ανακοινώσουμε τη δημιουργία μιας ομάδας πρωτοβουλίας για να προτείνουμε τον Ναβάλνι, να τον προτείνουμε, να κλείσουμε επιτέλους τη συνεδρίαση;

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

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


Βλαδιβοστόκ, 24 Δεκεμβρίου 2018 Φωτογραφία: 2018.navalny.com / Anton Lavrusyuk


Περμ, 24 Δεκεμβρίου 2018 Φωτογραφία: 2018.navalny.com / Valery Avramenko


Tyumen, 24 Δεκεμβρίου 2018 Φωτογραφία: 2018.navalny.com / Sergey Sysoev



Τσελιάμπινσκ, 24 Δεκεμβρίου 2018 Φωτογραφία: 2018.navalny.com / Andrey Abramov


Rostov-on-Don, 24 Δεκεμβρίου 2018 Φωτογραφία: 2018.navalny.com / Vladislav Kulchitsky


Βόλγκογκραντ, 24 Δεκεμβρίου 2018 Φωτογραφία: 2018.navalny.com / Alexey Kopaev

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

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

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

Ο κωδικός φύλλου αποτελείται από 6 χαρακτήρες. Μπορείτε να χρησιμοποιήσετε λατινικούς αριθμούς και γράμματα που έχουν γραφικά ανάλογα στα κυριλλικά (σε φόρμες μπορείτε να γράψετε σε οποιαδήποτε διάταξη). Για ευκολία, προσθέσαμε διαχωριστικά: 91−X7−BA.

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

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

... και αποφάσισε ότι τρεις κωδικοί θα ήταν αρκετοί για να επεξεργαστεί οποιοδήποτε ζωντανό φύλλο.

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

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

Sych: προετοιμασία για τη συλλογή υπογραφών

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

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

Σύνθεση Συχ

Backend με RESTful API: Python 3.6, aiohttp, aiohttp_admin, SQLAlchemy.
Βάσεις δεδομένων: PostgreSQL, Redis.
Δαίμονας ειδοποίησης.
Δαίμονας αναγνώρισης αριθμού διαβατηρίου.
Daemon για αναλυτικά στοιχεία κτιρίου.
Υπηρεσία για έλεγχο διαβατηρίου με τον αριθμό του.
Έκδοση σε κουτί του Kladr-API για εργασία με διευθύνσεις (PHP 5.6 + MongoDB).

Αποφασίσαμε να δημιουργήσουμε ένα ξεχωριστό backend για το Sych με ένα RESTful API επειδή σχεδιάζαμε να το ενσωματώσουμε με πολλές υπηρεσίες, συμπεριλαμβανομένου του ιστότοπου Navalny 20!8. Μια ξεχωριστή βάση δεδομένων PostgreSQL και το Redis χρησιμοποιήθηκαν ως αποθήκευση για την προσωρινή αποθήκευση. Για τη διαχείριση των χρηστών χρησιμοποιήθηκε η βιβλιοθήκη aiohttp_admin, την οποία τροποποιήσαμε για να ταιριάζει στις ανάγκες μας.

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

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

Εγγραφείτε για επαλήθευση

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

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

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

Ειδοποιήσεις

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

Στάλθηκαν ειδοποιήσεις SMS για να υπενθυμίσουν στους ανθρώπους το ραντεβού τρεις ώρες νωρίτερα και να τους ενημερώσουν ότι τα κεντρικά γραφεία ακύρωσαν το ραντεβού. Η ουρά ειδοποιήσεων έγινε σύμφωνα με την ίδια αρχή όπως στον ιστότοπο Navalny 20!8: πίνακες στη βάση δεδομένων με μηνύματα που στάλθηκαν σε ομάδες μέσω ταχυδρομικών πυλών και πυλών SMS.

Αναγνώριση δεδομένων διαβατηρίου

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

Analytics Sycha

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

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

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

Γλιτώσαμε τον περιφερειακό διευθυντή περιττές λεπτομέρειες και στην πρώτη οθόνη είδε μόνο τα πιο σημαντικά πράγματα για την ομάδα των κεντρικών γραφείων του: βασικούς δείκτες, βαθμολογίες και προβληματικά κεντρικά γραφεία (με ανησυχητικό κόκκινο χρώμα). Ταξινομήσαμε τα κεντρικά γραφεία ως "προβληματικά" με δείκτες N% κάτω από τον μέσο όρο, χρόνια υποφόρτωση (χρειάζονταν πρόσθετη ειδοποίηση) και υπερφορτωμένα με τον αριθμό των καταχωρίσεων (αυτό σήμαινε ότι δεν μπορούσαν να εγγραφούν όλοι οι χρήστες και έπρεπε να αυξηθεί ο αριθμός των χειριστών) .


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

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

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

Reaper 2018: σύστημα συλλογής υπογραφών

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

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

Διεπαφή χειριστή

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

1. Την ώρα των εκλογών πρέπει να είναι άνω των 18 ετών.
2. Εάν ο ψηφοφόρος είναι 20 ή 45 ετών, πρέπει να έχει νέο διαβατήριο.
3. Το διαβατήριο δεν πρέπει να βρίσκεται στον άκυρο κατάλογο.

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

Τώρα η βάση δεδομένων περιέχει περισσότερες από 110 εκατομμύρια εγγραφές (αριθμοί σειράς και διαβατηρίων). Για γρήγορη αναζήτηση με μια μικρή βάση δεδομένων και ευρετήρια, εφευρέθηκε το ακόλουθο σχήμα: δημιουργείται ένας πίνακας με ένα εκατομμύριο εγγραφές στη PostgreSQL, το κύριο κλειδί του οποίου είναι ο αριθμός διαβατηρίου (από 0 έως 999999) και το δεύτερο πεδίο περιέχει όλες τις σειρές άκυρα διαβατήρια για αυτόν τον αριθμό. Για να μειωθεί ο όγκος, οι σειρές μεταφράστηκαν σε δυαδική μορφή (δύο byte η καθεμία) και συμπιέστηκαν χρησιμοποιώντας zlib (απλώς ήθελα). Αρχικά, η βάση δεδομένων καταλαμβάνει περίπου 1 GB χωρίς ευρετήρια. Μετά την επεξεργασία, παίρνουμε 260 MB συμπεριλαμβανομένου του ευρετηρίου. Μία εγγραφή ελέγχεται κατά μέσο όρο σε 15 ms.

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

Το 0,88% των διαβατηρίων δεν ήταν κατάλληλα για εμάς, αφού ο πολίτης ήταν 20 ή 45 ετών, αλλά δεν είχε αντικαταστήσει ακόμη το διαβατήριό του. Και αυτό είναι άλλο ένα 18% του ορίου στις άκυρες υπογραφές.


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

Για υποδείξεις ονόματος, το API έχει μια μέθοδο που συγκρίνει την τιμή με μια μεγάλη λίστα και επιστρέφει τρεις πιθανές απαντήσεις:

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

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

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

Σάρωση εγγράφων

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


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

Η εικόνα λαμβάνεται στην πλευρά του πελάτη από το HTML 5 Canvas API και αποστέλλεται στον διακομιστή ως συμβολοσειρά base64 που περιέχει ένα JPEG. Από την άποψη του μπροστινού μέρους, οι σαρωτές μπορούν να λειτουργήσουν σε δύο λειτουργίες: κάμερα web USB και ροή βίντεο από υπολογιστή σε τοπικό υποδίκτυο. Το Owl λειτουργεί μόνο με κάμερες USB, ενώ το Reaper 2018 σάς επιτρέπει να κάνετε εναλλαγή μεταξύ των λειτουργιών. Ο ίδιος ο χειριστής επιλέγει ποιον σαρωτή θα χρησιμοποιήσει.

Παρουσιάστηκε ένα μικρό πρόβλημα με την επιλογή της ροής βίντεο γειτονικών υπολογιστών: τα τραπέζια και οι σαρωτές μπορούν να μετακινηθούν και οι χειριστές μπορούν να αλλάξουν θέσεις. Δεν ξέρουμε ποιος σαρωτής θα είναι δίπλα στον χειριστή την επόμενη φορά. Έπρεπε να κάνω ταξινόμηση μέσω του υποδικτύου της έδρας και να δώσω στον χειριστή την ευκαιρία να επιλέξει οποιονδήποτε από τους ζωντανούς σαρωτές. Αλλά αποδείχθηκε ότι ο διακομιστής εκπομπής βίντεο του σαρωτή, παρόλο που ορίζει τις σωστές κεφαλίδες CORS (Access-Control-Allow-Origin: *), δεν ανταποκρίνεται σε αιτήματα OPTIONS. Το πρόγραμμα περιήγησης απαγόρευε αιτήματα ajax σε γειτονικούς κεντρικούς υπολογιστές, γεγονός που καθιστούσε αδύνατη τη χρήση του κανονικού jQuery.ajax() για αναζήτηση. Τα αιτήματα JSONP επίσης δεν βοήθησαν, καθώς δεν μπορούσαν να ακυρωθούν μέσω προγραμματισμού και αρκετές δεκάδες αιτήματα σε εκκρεμότητα απέκλεισαν εντελώς τη σελίδα. Οι φωτογραφίες βοήθησαν στην επίλυση του προβλήματος. Προσθέσαμε ετικέτες στο DOM και τους εκχωρήσαμε το src της ροής βίντεο. Εάν η εικόνα άλλαζε μεγέθη ανάλογα με το μέγεθος της ροής, τότε η ροή θεωρήθηκε ζωντανή και εμφανιζόταν στον χειριστή.

Η εμφάνιση μιας ροής βίντεο σε ένα πρόγραμμα περιήγησης φορτώνει αισθητά τους μέτριους επεξεργαστές Raspberry Pi, επομένως έπρεπε να δημιουργήσουμε μια "προστασία οθόνης": μετά από 5 λεπτά αδράνειας, το πρόγραμμα περιήγησης διακόπτει την εκπομπή.

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

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

Επεξεργασία διεύθυνσης

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

Υπάρχει ένας μακρύς κατάλογος νομικών απαιτήσεων για τη διεύθυνση εγγραφής. Για παράδειγμα:

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

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

Κατά τη συλλογή υπογραφών στο Νοβοσιμπίρσκ, λόγω παραπόνων σχετικά με το πεδίο "διεύθυνση", περίπου το 3,5% των υπογραφών κηρύχθηκαν άκυρα. Και αυτό είναι το 70% του ορίου που τίθεται για τις υπογραφές για την ανάδειξη προεδρικού υποψηφίου.

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

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

Η βάση δεδομένων FIAS δεν διαθέτει ακόμη επαρκώς υψηλής ποιότητας και πλήρεις πληροφορίες για σπίτια και διαμερίσματα, επομένως σταματήσαμε στο επίπεδο του δρόμου. Σε αυτή τη μορφή, η βάση δεδομένων με όλες τις πρόσθετες κατασκευές ζυγίζει περίπου 2 GB και ζει αρκετά άνετα με τη μορφή PostgreSQL. Για εισαγωγή χρησιμοποιήθηκαν τροποποιημένα σενάρια από το αποθετήριο fias2pgsql.

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

Μετά από μια σειρά πειραμάτων, καταλήξαμε σε μια φόρμα με τρία πεδία:

Το θέμα της Ρωσικής Ομοσπονδίας - υπάρχει πάντα, αυτό είναι το πιο κατανοητό πεδίο.
- διεύθυνση σύμφωνα με το FIAS - ένα πεδίο με αυτόματη συμπλήρωση για τις διευθύνσεις μιας δεδομένης περιοχής εντός του FIAS.
- σπίτι/κτίριο/διαμέρισμα - μια γραμμή όπου τα δεδομένα αντιγράφονται ακριβώς σύμφωνα με τη μόνιμη σφραγίδα εγγραφής.

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

Μετά από πολλές τέτοιες επαναλήψεις, η βάση ήταν έτοιμη για χρήση.

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

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

Η λύση αποδείχθηκε βολική και γρήγορη. Ένα αίτημα προς το προτεινόμενο API ολοκληρώνεται σε 15–20 ms, το backend μπορεί εύκολα να χειριστεί 300 ταυτόχρονες συνδέσεις σε μια όχι και τόσο ισχυρή εικονική μηχανή.

Συμπλήρωση του φύλλου συνδρομής

Οι υπογραφές πρέπει να καταχωρούνται στα φύλλα του θέματος της Ρωσικής Ομοσπονδίας στην οποία ανήκει η μόνιμη διεύθυνση εγγραφής του πολίτη (ή σε ειδικά φύλλα χωρίς περιοχή, εάν δεν υπάρχει εγγραφή). Το Reaper λέει στον χειριστή ποιας περιοχής πρέπει να πάρει το φύλλο και δεν του επιτρέπει να υπογράψει στο φύλλο άλλης περιοχής.
Φανταστείτε ότι θέλετε να λύσετε ένα τέτοιο πρόβλημα χωρίς υπολογιστή, συλλέγοντας υπογραφές σε έναν σιδηροδρομικό σταθμό, όπου θα υπάρχουν πολλοί άνθρωποι από διαφορετικές περιοχές και δεν θα υπάρχει ντουλάπι αρχειοθέτησης με λευκά φύλλα ταξινομημένα ανά περιοχή. Στο ένα τρίτο περίπου των διαβατηρίων, η σφραγίδα εγγραφής δεν περιέχει το όνομα της περιοχής και οι τυχαίοι περαστικοί δεν γνωρίζουν τους κανόνες του παιχνιδιού και μπορούν εύκολα να μπερδέψουν κάτι. Αυτό φαίνεται να είναι πηγή μεγάλου αριθμού σφαλμάτων, κάτι που είναι απαράδεκτο υπό το νόμιμο όριο του 5%.

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

Έχουμε αναπτύξει σενάρια εργασίας χειριστή που μειώνουν την πιθανότητα τυπικά λάθη. Οι επιγραφές πιστοποίησης στα φύλλα της περιοχής «σπίτι» (περίπου το 80% των υπογραφών θα είναι από την περιοχή στην οποία βρίσκεται η έδρα) συμπληρώνονται από τον συλλέκτη εκ των προτέρων, σε ήρεμη ατμόσφαιρα. Για όλα τα μπλοκ φύλλα, το Reaper δείχνει ακριβώς πώς πρέπει να γεμιστούν.


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

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

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

Έλεγχος υπογραφών, εργασία με φύλλα στα κεντρικά

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

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


Όλα τα ονόματα και άλλες πληροφορίες στην εικόνα είναι εικονικά

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

Τα emoticons και η νευροφυσιολογία της ευτυχίας

Για να επιλέξουμε γρήγορα και με ακρίβεια την κατάσταση της γραμμής που ελέγχεται, χρησιμοποιήσαμε κουμπιά με τη μορφή emoticon. Υπάρχουν βαθιές νευροφυσιολογικές αιτίες για αυτό. Το οπτικό σύστημα του εγκεφάλου έχει αρχαίους, χαμηλού επιπέδου μηχανισμούς που ανταποκρίνονται σε ορισμένες εικόνες. Το οπτικό σύστημα ανταποκρίνεται πιο γρήγορα σε ευθύγραμμα τμήματα διαφορετικών προσανατολισμών, αφού οι γραμμές ανιχνεύονται εύκολα από τον πρωτεύοντα οπτικό φλοιό. Στον δευτερογενή οπτικό φλοιό, απλό γεωμετρικά σχήματα(πρέπει να το μάθετε αυτό) και το σχήμα του προσώπου. Επιπλέον, δεν αναγνωρίζεται μόνο το πρόσωπο, αλλά οι βασικές εκφράσεις του προσώπου. Δηλαδή emoticons. Όπως και η αναγνώριση ευθειών, είναι μια έμφυτη ικανότητα. Χάρη σε αυτό το σύστημα χαμηλού επιπέδου, τα emoticon αναγνωρίζονται πολύ πιο γρήγορα και με μεγαλύτερη ακρίβεια από το κείμενο.


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

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

Αποστολή φύλλων

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

Διαθέτει λειτουργία που σας επιτρέπει να σαρώνετε γρήγορα τους κωδικούς εκατοντάδων φύλλων και αναφορών, εάν προσπαθήσουν να στείλουν ένα φύλλο κατά λάθος, ενώ δεν έχουν ακόμη περάσει όλα τα στάδια επεξεργασίας στα κεντρικά γραφεία. Χρειάζονται 1-2 δευτερόλεπτα για τη σάρωση ενός φύλλου.

Μετά τη σάρωση, τα φύλλα συσκευάζονται και αποστέλλονται στη Μόσχα.

Λεπτομέρειες φόρμας

Όλα τα δεδομένα διαβατηρίου εισάγονται και εμφανίζονται με γραμματοσειρά monospace Source Code Pro Regular. Σε αυτό, το μηδέν διακρίνεται εύκολα από το γράμμα "O" και τα σύμβολα είναι αρκετά παρόμοια με αυτά που χρησιμοποιούνται συνήθως στα σύγχρονα διαβατήρια.

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

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

Logistics και φυσική αποθήκευση φύλλων

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

Μερικά στοιχεία για τη φυσική της διαδικασίας

Πρέπει να υποβάλουμε 315 χιλιάδες υπογραφές. Για να γίνει αυτό, λαμβάνοντας υπόψη τις περιφερειακές ποσοστώσεις και τα περιθώρια για διάφορα λάθη, είναι απαραίτητο να συλλεχθούν και να επεξεργαστούν περίπου 1 εκατομμύριο υπογραφές. Μπορεί να υπάρχουν το πολύ πέντε υπογραφές σε κάθε φύλλο, αλλά στην πραγματικότητα θα υπάρχουν κάπου 3-4. Αυτό μας δίνει, χοντρικά, 300 χιλιάδες φύλλα.

Ένα φύλλο χαρτιού Α4 έχει επιφάνεια 1/16 m².
Η πυκνότητα του κανονικού χαρτιού γραφείου είναι 80 g/m², κάθε φύλλο ζυγίζει 5 g.
Το ύψος μιας συσκευασίας 500 φύλλων είναι 4,5 cm για λευκά φύλλα, περισσότερο από 6 cm για γεμισμένα φύλλα.

Αποδεικνύεται ότι όλα τα συλλεγμένα φύλλα θα ζυγίζουν 1,5 τόνους και διπλωμένα σε μία δέσμη θα έχουν ύψος περίπου 36 μέτρα.

Πώς να αποθηκεύσετε όλα αυτά;

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

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

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

Για γρήγορη πρόσβαση, εφευρέθηκε ένα σύστημα για την ευρετηρίαση της φυσικής βάσης δεδομένων των φύλλων. Το ευρετήριο αποτελείται από διάφορα επίπεδα: έδρα (κουτί), κουτί, φάκελος. Η διεύθυνση του φακέλου στο αρχείο μοιάζει με αυτό: 77−1−15. Κάθε φάκελος περιέχει 25 φύλλα (χωρίς ιδιαίτερη σειρά).


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

Παραλαβή και ταξινόμηση φύλλων

Όλα τα φύλλα που φτάνουν από τις περιοχές σαρώνονται από έναν αυτόματο σαρωτή διπλής όψης (ήταν ήδη στο γραφείο, επομένως δεν χρειάστηκε να το συναρμολογήσουμε μόνοι μας από τα LEGO και το Arduino). Αυτή η συσκευή μπορεί να ανεβάσει το αποτέλεσμα στον διακομιστή μέσω SFTP. Εκεί, οι σαρώσεις εκτελούνται μέσω ενός σεναρίου python που αναζητά κωδικούς QR σε τυπικά σημεία, τους αναγνωρίζει και συνδέει τις σαρώσεις με μια κοινή βάση δεδομένων. Το σενάριο επεξεργάζεται αξιόπιστα ακόμη και τσαλακωμένα φύλλα.

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

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

Backend

Το Reaper 2018 κατασκευάζεται στο Django με πρότυπο κινητήρα και ORM. Η PostgreSQL χρησιμοποιείται ως βάση δεδομένων. Τα τμήματα εξυπηρέτησης του συστήματος - FIAS, επαλήθευση διαβατηρίου, εργασία με δεδομένα προεγγραφής - τοποθετούνται σε ξεχωριστές ενότητες (django app) με τις δικές τους βάσεις δεδομένων.

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

Το διάγραμμα κατάστασης μοιάζει κάπως έτσι:

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

Δοκιμές

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

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

Η συλλογή των υπογραφών είναι πολύ περιορισμένη χρονικά και σημαντικό μέρος αυτού του χρόνου πέφτει αυτή τη φορά στις γιορτές της Πρωτοχρονιάς. Περιμέναμε ότι ο φόρτος στα κεντρικά γραφεία και στο σύστημα συλλογής θα ήταν ανομοιόμορφος. Ήταν σημαντικό το σύστημα να χειρίζεται εύκολα οποιαδήποτε ρεαλιστική ροή υπογραφών. Σε ώρες αιχμής αναμένονταν έως και 10 χιλιάδες υπογραφές ανά ώρα. Για έναν κανονικό ιστότοπο, αυτό δεν φαίνεται σοβαρό, αλλά στην περίπτωσή μας, αυτή η σειρά "επισκεπτών" μπορεί να δημιουργήσει μεγάλο φόρτο στον διακομιστή. Δεν είναι μόνο επισκέψεις ή εγγραφές: η απόκτηση κάθε υπογραφής περιλαμβάνει περίπου 50 αιτήματα στον διακομιστή και επεξεργασία πολλών εικόνων υψηλής ανάλυσης.

Η δοκιμή φορτίου πραγματοποιήθηκε με χρήση Locust. Αυτό είναι ένα απλό εργαλείο που διατίθεται μέσω του PyPI. Τα σενάρια περιγράφονται στον κώδικα Python, όπως και οι δοκιμές μονάδων στο Django:

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

Η ανάπτυξη του έργου οργανώνεται με τον ίδιο τρόπο όπως και για τον ιστότοπο Navalny 20!8.
Οι εφαρμογές Ιστού Reaper είναι προσβάσιμες μόνο μέσω του δικτύου VPN της έδρας.

Παρακολούθηση

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

Το Zabbix παρακολουθεί την κατάσταση όλων των εικονικών μηχανών σε ένα έργο.

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

Το Sentry περιέχει όλα τα σφάλματα από εφαρμογές και frontends. Οι διεπαφές τοποθετούνται σε έναν ξεχωριστό «οργανισμό» για να μην αλλοιωθούν τα στατιστικά στοιχεία για σφάλματα υποστήριξης. Ένα εύχρηστο πράγμα, αλλά ήταν αρκετά δύσκολο να λειτουργήσει ο Sentry υπό το φόρτο μας.

Χήνα

Πρόκειται για λειτουργική παρακολούθηση, κάπως παρόμοια με το uptime.com, μόνο σπιτική. Το backend είναι χτισμένο πάνω στο django, οι ουρές γίνονται σε σέλινο με ένα backend σε redis.

Οι τομείς έργου προστίθενται στο Goose. Για κάθε τομέα, υποδεικνύονται οι διευθύνσεις που πρέπει να παρακολουθούνται, το διάστημα σάρωσης και ο τύπος σάρωσης. Μπορείτε να ελέγξετε το πιστοποιητικό, το περιεχόμενο, τις κεφαλίδες HTTP, τις ανακατευθύνσεις και άλλα χρήσιμα πράγματα.

Αν κάτι πάει στραβά, ο Gus μπορεί να στείλει γράμματα και SMS ή να τηλεφωνήσει στη μέση της νύχτας και να εξηγήσει την κατάσταση με ανθρώπινη φωνή (η υπηρεσία Twillio χρησιμοποιείται για κλήσεις και σύνθεση ομιλίας).

Στη διεπαφή ιστού μπορείτε πάντα να δείτε ποιοι τομείς έχουν σφάλματα και πώς λειτουργεί η ουρά ελέγχου. Γίνονται 20-25 έλεγχοι κάθε λεπτό.

Προσθήκη ετικετών

Ο λειτουργός, απογοητευμένος από τον blogger, μίλησε για τη δύσκολη κατάσταση στα κεντρικά. Στα κεντρικά του bloggerΑλεξέι Ναβάλνι , ο οποίος συνεχίζει να συγκεντρώνει κεφάλαια για την προεδρική εκστρατεία, παρά την απαγόρευση και τις εξηγήσεις της CECΣυνταγματικό Δικαστήριο , πάλι σύγχυση. Ένας πρόσφατος λειτουργός του FBK και ακτιβιστής ανθρωπίνων δικαιωμάτων γράφει στη σελίδα του στο Facebook για την κρίση διαχείρισης στις τάξεις διαμαρτυρίαςΒιτάλι Σερκουάνοφ

. Ο Σερουκάνοφ εξήγησε την αποχώρησή του από την ομάδα του Ναβάλνι ως «ανάγκη για αυτοσεβασμό». Σύμφωνα με τον Vitaly Serkuanov, τα κεντρικά γραφεία του Navalny δεν είναι σε θέση να ικανοποιήσουν τα αιτήματα των χορηγών κεφαλαίων και να δημοσιεύσουν στατιστικά στοιχεία για τις υπογραφές που συγκεντρώθηκαν στις περιφέρειες. Ο λόγος για τον ακτιβιστή είναι προφανής: ο μπλόγκερ δεν έχει 250 χιλιάδες ψήφους για να οριστεί, αλλά η απόκτηση του απαιτούμενου αριθμού υποστηρικτών πριν από τη λήξη της προθεσμίας θα είναι αδύνατο. Η προθεσμία υποβολής εγγράφων στην ΚΕΚ για εγγραφή λήγει στις 31 Ιανουαρίου 2018 και ώρα 18:00. Γι' αυτό, όπως σημειώνει ο Σερουκάνοφ, η ομάδα του Ναβάλνι αλλάζει τακτική σύμφωνα με την αρχήΝικολό Μακιαβέλι

«Ο σκοπός αγιάζει τα μέσα». Οι μη εξουσιοδοτημένες συγκεντρώσεις στις 24 Δεκεμβρίου σχεδιάζονται ως ένα δύσκολο στάδιο για τη μετάβαση από την αποτυχία της εκστρατείας στο στάδιο ενός μελλοντικού μποϊκοτάζ των εκλογών.

«Ο Βόλκοφ (ο αρχηγός του επιτελείου του Ναβάλνι) δεν σκέφτηκε τίποτα νέο εκτός από το να αποφύγει να απαντήσει σε ερωτήσεις σχετικά με τους λόγους αποτυχίας της εκστρατείας, κυρίως τακτικής, μέσα από μια θάλασσα κρατήσεων, συλλήψεων και αρνητικής δημοσιότητας. Προκαλέστε τη συμπάθεια των μαζών, αντεπιτεθείτε με διοικητικές συλλήψεις, ενώ οι απλοί συμμετέχοντες θα λάβουν ποινικές ποινές», γράφει ο Σερουκάνοφ. Δικηγόρος Ilya Craft , ο οποίος διεξήγαγε ανεξάρτητη έρευνα για τις δραστηριότητες της FBK, σε σχόλιοΠρακτορείο Ειδήσεων «Πολιτική Σήμερα»

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

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

«Πραγματικά δεν υπάρχει υποστήριξη. Αυτή η κατάσταση δείχνει ότι δεν μπορούν να οργανώσουν βασική εργασία, γιατί αυτοί οι άνθρωποι δεν έχουν εργαστεί ποτέ πουθενά ή δεν έχουν κερδίσει χρήματα από έντιμη εργασία. Ούτε ο Βολκόφ ούτε ο Ναβάλνι. Γι' αυτό έλκονται ο ένας για τον άλλον. Αν είχαν απαιτούμενο επίπεδουποστήριξη, τότε οι άνθρωποι ξεχύνονταν χωρίς να σταματήσουν. Μαζέψαμε αυτές τις υπογραφές ακόμα κι αν ο Βολκόφ και ο Ναβάλνι ήταν εντελώς άταλαντοι, αλλά αφού είναι και αυτοί χωρίς ταλέντο και δεν υπάρχει επίπεδο υποστήριξης, τότε παίρνουμε αυτό που παίρνουμε», σχολίασε ο Ρέμεσλο.



Τι άλλο να διαβάσετε