Η τακτοποίηση που θα εξαφάνιζε 180 διευθύνσεις
Δύο μέρες του Αυγούστου έχουν δεκατρία και επτά άρθρα. Κάθε άλλη μέρα του μήνα έχει τρία. Η εξομάλυνσή τους μοιάζει με δουλειά πέντε λεπτών, και θα είχε βγάλει εκτός λειτουργίας 180 διευθύνσεις που λειτουργούν κανονικά.
Τι κάνει μια μελλοντική ημερομηνία
Ο προγραμματισμός εδώ είναι μία συνθήκη στο ερώτημα προς τη βάση: ένα άρθρο ανακτάται μόνο αν έχει περάσει η ώρα δημοσίευσής του. Αυτό κάνει δυνατή μια ουρά αναμονής, και σημαίνει επίσης ότι ένα άρθρο που μεταφέρεται στο μέλλον παύει να υπάρχει. Η δική του διεύθυνση απαντά 404, φεύγει από τη λίστα, φεύγει από τον χάρτη ιστότοπου. Και τα τρία συμφωνούν μεταξύ τους, που είναι ο σωστός σχεδιασμός και ακριβώς το πρόβλημα.
Κάθε άρθρο βρίσκεται σε δώδεκα διευθύνσεις: έντεκα γλωσσικές διαδρομές και μία που κάνει διαπραγμάτευση. Δεκαπέντε άρθρα μεταφερμένα προς τα εμπρός σημαίνουν 180 διευθύνσεις που απαντούν 404 μέχρι να έρθει η νέα τους ημερομηνία.
Ποιοι θα το είχαν προσέξει
Το αρχείο καταγραφής το απαντά με ακρίβεια. Από τα είκοσι άρθρα, τα δεκαπέντε είχαν ήδη ανακτηθεί από ανιχνευτές — από 21 έως 38 ανακτήσεις το καθένα, από τις οποίες έως πέντε του Googlebot και έως δώδεκα του bingbot. Αυτές είναι σελίδες που βρίσκονται κάπου σε κάποιο ευρετήριο. Το να γίνουν σφάλματα για αρκετές μέρες δεν είναι τακτοποίηση, είναι απόσυρση και επανυποβολή.
Τα υπόλοιπα πέντε δεν είχαν ανακτηθεί ποτέ από τίποτα. Η μετακίνησή τους δεν κοστίζει απολύτως τίποτα, και αυτό είναι το χρήσιμο μισό της μέτρησης: δεν είναι ότι ο προγραμματισμός είναι επικίνδυνος, είναι ότι δεν κοστίζει τίποτα μόνο όσο κανείς δεν έχει κοιτάξει ακόμη.
Το άλλο μισό της απάντησης
Τέσσερα από αυτά τα πέντε δεν μπορούσαν επίσης να μετακινηθούν, για έναν λόγο που δεν έχει καμία σχέση με τους ανιχνευτές. Γράφουν σήμερα, και χθες, και προχθές — δεκατρείς τέτοιες εκφράσεις συνολικά. Ένα άρθρο με ημερομηνία τρεις μέρες αργότερα που γράφει «χθες» είναι απλώς λάθος, σε έντεκα γλώσσες ταυτόχρονα.
Η εναλλακτική στη μετακίνηση προς τα εμπρός είναι η μετακίνηση προς τα πίσω, και αυτή είναι χειρότερη: αυτά τα άρθρα γράφτηκαν τις μέρες που φέρουν. Αν τους δίναμε προγενέστερη ημερομηνία για να φαίνεται ένα ημερολόγιο ομοιόμορφο, θα ήταν ένα μικρό ψέμα προς τον αναγνώστη μόνο και μόνο για να ικανοποιηθεί ένα διάγραμμα.
Τι κάναμε αντί γι' αυτό
Τίποτα στο παρελθόν, και ένα εργαλείο για το μέλλον. Τα νέα άρθρα παίρνουν πλέον την επόμενη ελεύθερη θέση σε ένα πλέγμα τριών την ημέρα, και το εργαλείο αρνείται να μετακινήσει ένα άρθρο που έχει ήδη δημοσιευτεί, εκτός αν του ζητηθεί δύο φορές — και πριν το κάνει, τυπώνει τον αριθμό των διευθύνσεων που θα έσβηναν.
Οι ανομοιόμορφες μέρες μένουν ανομοιόμορφες. Είναι αυτό που συνέβη.
Τι γενικεύεται
Το κόστος μιας αλλαγής δεν βρίσκεται στην αλλαγή, βρίσκεται σε ό,τι έχει ήδη συμβεί σε αυτό που αλλάζει. Μια ημερομηνία δημοσίευσης είναι ένας αριθμός σε μια στήλη μέχρι τη στιγμή που κάποιος θα ανακτήσει τη σελίδα στην οποία ανήκει, και από εκεί και πέρα είναι μια υπόσχεση.
Και τα δύο μισά βρίσκονταν στο ίδιο αρχείο καταγραφής, και κανένα δεν βρισκόταν στον κώδικα.