Πώς μειώσαμε τον προγραμματισμό ταξιδιών μας μέχρι να μην χρειαστούν δεδομένα.

Παρουσιάζοντας τον ταχύτερο, μικρότερο, σχεδιασμό ταξιδιού 🗺

Σε έναν κόσμο με φουσκωμένες ιστοσελίδες και εφαρμογές για το κινητό τηλέφωνο, μπορεί να φανεί σαν οι μοναδικοί προγραμματιστές που ενδιαφέρονται για τη συμπίεση αρχείων είναι οι πλασματικές σε Silicon Valley ...

me: φόρτωση άρθρου 200 λέξεων με 500MB διαφημίσεων και javascript

... ευτυχώς, το γραφείο μας στη Transit είναι γεμάτο με συμπάθεια. Όπως ο CTO Guillaume και ο χάρτης του Θεού Αντόνιο, ο οποίος βοήθησε να φτιάξουν χαρακτηριστικά, όπως χρονοδιαγράμματα διαμετακόμισης, χάρτες, λίστες διακοπών κλπ., Διαθέσιμα εκτός σύνδεσης, με ταχύτητες φανταστικές, σε λιγότερα ΜΒ από δύο αμπέλια.

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

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

Τον ΚΟΤ, τον Χάρτη του Θεού και τον νέο King Compression King ™.

Πώς το κάναμε (βήμα 1)

Τα δεδομένα στατικής διαμετακόμισης (δηλ. Χρονοδιαγράμματα, λίστες αναστολής, χάρτες διαδρομών) παρέχουν το πρώτο εμπόδιο στην πρόσβαση χωρίς σύνδεση. Γιατί; Τα αρχεία είναι τεράστια! Οι οργανισμοί διαμετακόμισης χρησιμοποιούν ένα μορφότυπο δεδομένων που ονομάζεται GTFS, των οποίων τα αρχεία μπορούν να είναι 100MB +. Αυτά είναι πολλά δεδομένα - και μόνο για χρονοδιαγράμματα, λίστες αναστολής, χάρτες διαδρομών. Επιπλέον, είναι πολλά στοιχεία για να αναλύσετε κάθε φορά που χρειάζεται να υπολογίσετε ένα σχέδιο ταξιδιού.

Αλλά αυτά τα 100MB αρχεία έχουν πολλές απολύσεις. Με το σωστό μαθηματικό, μπορείτε να εξετάσετε τα πρότυπα στα χρονοδιαγράμματα διαμετακόμισης και να τα εκπροσωπήσετε με πιο αποδοτικούς τρόπους. Γιατί να αποθηκεύσετε ένα πρόγραμμα λεωφορείων ως "12:00 π.μ., 12:10 π.μ., 12:20 π.μ." αν μπορείτε να το αποθηκεύσετε ως "0:00, +10, +10", που παίρνει λιγότερους χαρακτήρες και επομένως λιγότερο χώρο;

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

Αποδεικνύεται ... πολύ.

Σταματήστε το πρόγραμμα κατά μήκος του ίδιου δρόμου: στο GTFS, το

Για να αποσυμπιέσει αυτές τις βελτιώσεις, ο Anton και ο Guillaume δημιούργησαν μια εσωτερική βιβλιοθήκη συμπίεσης που ονομάζεται bGTFS, όπου το "b" σημαίνει δυαδικό. Μπορεί να συρρικνώσει τα αρχεία δεδομένων διαμετακόμισης της πόλης σας από 30Χ έως 200Χ.

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

Γιατί η Transit αισθάνεται τόσο αναζωογονητικά γρήγορα.

Αφού δημιουργήσαμε το bGTFS, επεκτάσαμε το ρεπερτόριό μας για τα κόλπα συμπίεσης στους χάρτες: το bOSM είναι ο τρόπος συμπίεσης των δεδομένων Open Street Map. Μας επιτρέπει να παίρνουμε όλα τα σχετικά πράγματα που θέλουμε (δρόμοι, διασταυρώσεις, μονοπάτια, μονοπάτια ποδηλασίας) και χωρίζει τις πληροφορίες που δεν τις κάνουμε (όπως η "προσβασιμότητα αλόγων" ορισμένων δρόμων ... lol).

Από το wiki του OSM. Αλλά μας ενδιαφέρει τα άλογα; Χλιμίντρισμα….

Με το bOSM, αντιπροσωπεύουμε τον κόσμο σε ένα συμπιεσμένο πλέγμα 1024 x 1024 πλακιδίων κεραμιδιών για το οποίο χρειαζόμαστε ~ 9 πλακίδια ανά πόλη. Αλλά όπου ένας χάρτης OSM του πλανήτη θα χρειαζόταν ~ 44GB δεδομένων, ένας χάρτης bOSM χρειάζεται μόνο ~ 3,4GB - εκ των οποίων η πόλη σας είναι ένα teeny κλάσμα. Στο Μόντρεαλ, ένας χάρτης bOSM απαιτεί μόνο 10MB. Πολύ ωραία!

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

Βήμα 2: μετάβαση εκτός σύνδεσης (και απομάκρυνση του cloud ...)

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

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

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

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

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

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

Κάθε μεταφορά διέλευσης ??? Πάρα πολλά δεδομένα.

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

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

  • Έλαβε τα συμπιεσμένα δεδομένα bGTFS (transit) και bOSM (map).
  • Υπολόγισε τις μετακινήσεις + διανυκτέρευση μεταξύ οποιωνδήποτε δύο στάσεων (σε ακτίνα 1χλμ.) Και απορρίφθηκαν σε απόσταση άνω των 20 λεπτών με τα πόδια
  • Έχει αποθηκεύσει όλες αυτές τις "πιθανές μεταφορές" στη μνήμη, σε ένα μικροσκοπικό αρχείο.

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

20+ λεπτά με τα πόδια;!; ευχαριστώ u, όχι

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

Π.χ. "Θα με πάρει ο μετρό στο λεωφορείο 1:00 μ.μ. μου; Όχι ... αλλά μπορείτε να κάνετε τις 1:20 π.μ. "
Πριν: offline τι; Μετά: σχέδιο ταξιδιού μέχρι το περιεχόμενο της καρδιάς σας.

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

Και ενώ κανείς δεν προτιμά να ταξιδεύει χωρίς δεδομένα διαμετακόμισης σε πραγματικό χρόνο, κάνοντας περισσότερες λειτουργίες Transit διαθέσιμες εκτός σύνδεσης, εξασφαλίζουμε ότι περισσότεροι άνθρωποι μπορούν να φτάσουν εκεί που πρέπει να πάνε. Ακόμη και όταν το μετρό τους δεν έχει WiFi. Έχουν χτυπήσει το όριο δεδομένων τους. Ή ένα ICBM που χτυπάει κόκκινο-ζεστό σε όλη την ατμόσφαιρα χτυπά το δορυφορικό δορυφορικό τους δορυφόρο.

Ό, τι συμβαίνει, ο προγραμματιστής ταξιδιού μας θα λειτουργήσει τώρα το 100% του χρόνου ™ - εξασφαλίζοντας μια συνεπή εμπειρία, για όλους και για κάθε βόλτα.

Ποτέ δεν χρησιμοποίησε τη Transit; Σας έχουμε καλύψει: δωρεάν για iOS & Android
Να χρησιμοποιείτε πάντα το Transit; Ενημερώστε την εφαρμογή για να ξεκλειδώσετε τον νέο σας προγραμματιστή ταξιδιών εκτός σύνδεσης!