About

All articles, tagged with “rant”

Τα μαγικά λεωφορεία της Πάτρας

Η πόλη της Πάτρας και τα προάστια της έχουν την τύχη να απολαμβάνουν μία απο τις πιο εντυπωσιακές υποδομές μέσων μαζικής μεταφοράς. Όταν λέω, εντυπωσιακές δεν εννοώ όπως λέμε: “πωπω, εντυπωσιακή γυναίκα η Μαρία” αλλα πιό πολύ όπως λέμε: “Πωπωπω, εντυπωσιακή εικόνα καταστροφής απο τον τυφώνα Κατρίνα”.

Το πρώτο πράγμα που εντυπωσιάζει τον επίδοξο επιβάτη είναι η πληροφόρηση ώς προς τις στάσεις επιβίβασης. Είναι κοινά αποδεκτό οτι η πληροφορία είναι πλέον σημαντικός παράγοντας στα σύγχρονα πεδία μάχης, και , μα τον Τουτάτις, αυτή είναι μια μάχη που τα αστικά ΚΤΕΛ σκοπεύουν να την κερδίσουν… με αντίπαλο τον επιβάτη.
Ο μόνος τρόπος για να βρείς που έχει στάση είναι να γυρνάς τους δρόμους σαν άστεγος, ψάχνοντας για μια ανεξήγητα υψηλή συγκέντρωση όρθιου κόσμου στο πεζοδρόμιο. Ο χρυσός κανόνας είναι, οτι ψάχνουμε για ένα σημείο με απόκλιση 3-4 standard deviations πάνω απο το mean.

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

Έστω, όμως, οτι με πλάγιους τρόπους λαμβάνεις την κατάλληλη πληροφόρηση και καταφέρνεις να βρεις την στάση , αλλά και την ώρα. Όταν ως δια μαγείας φτάνει το λεωφορείο, θα εντυπωσιαστείς (βλέπε πρωτύτερο ορισμό του “εντυπωσιαστείς”) με τα Πατρινά υπερσύγχρονα κομψοτεχνήματα μηχανικής και τεχνολογίας. Το μόνο μειονέκτημα τους είναι πως επειδή κατασκευάστηκαν πριν την ανακάλυψη του πετρελαίου, καίνε βοθρολυμάτα . Σε περίπτωση που δεν υπάρχουν διαθέσιμα καύσιμα (πχ η κρίση χτύπησε και την τουαλέτα μας) υπάρχουν ειδικές καταπακτές κάτω απο τα καθίσματα που πέφτουν και βγάζουν τα πόδια τους οι επιβάτες σαν τους Flintstones. Μην ανησυχείτε αν δεν ξέρετε τι να κάνετε, ο οδηγός θα σας δείξει την διαδικασία ακριβώς όπως κάνουν οι αεροσυνοδοί στο αεροπλάνο.
Το να πεί κανείς οτι τα λεωφορεία είναι παλιά, είναι σαν να λέμε οτι το Big Bang είναι κάτι που “έγινε παλιά”. Δεν αποδίδει την έννοια στο πλήρες μεγαλείο της. Η επικρατέστερη, πάντως, θεωρία είναι οτι τα Πατρινά λεωφορεία δεν κατασκευάστηκαν απο τον άνθρωπο αλλά σχηματίστηκαν μόνα τους στο πέρασμα του χρόνου απο την φυσιολογική μεταβολή της ύλης σε μοριακό επίπεδο.

Ακούγοντας αυτά τα προβληματάκια θα σκεφτεί κανείς οτι τα αστικά ΚΤΕΛ δεν έχουν αρκετή χρηματοδότηση γιατί τα εισιτήρια θα πρέπει να είναι πολύ φτηνά. Τα εισιτήρια μας όμως είναι πανάκριβα. Δεν το έχω επιβεβαιώσει, αλλά είμαι σίγουρος οτι στην ιδια τιμή που μου κοστίζει να πάω απο το σπίτι μου στην Πλατεία Γεωργίου, θα μπορούσα να πάρω το αεροπλάνο και να κάνω μια εβδομάδα διακοπές στα νησιά Φίτζι, συνοδευόμενος απο δύο high class escorts , όλα πληρωμένα , προσφορά του εαυτού μου. Όπως είπα, δεν είναι τσεκαρισμένο μεν,αλλά δεν μπορεί να πέφτω και πολύ έξω.

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

Why PHP sucks.

Με αφορμή ένα facebook status message ενός φίλου (ναι, την μισεί και αυτός :p ), είπα να γράψω οτι είναι στραβό με την PHP κατα την γνώμη μου.

Εχουμε λοιπόν:

  1. Χιλιάδες functions στο default namespace.
    Είναι πραγματικά απίστευτο. Μέχρι πρόσφατα η PHP δεν υποστήριζε namespaces και υπάρχουν κυριολεκτικά χιλιάδες functions στο default namespace. Εντελώς απαράδεκτο.
  2. Unicode. Πού είναι? οεο!
    Έχουμε 2009 και η PHP δεν υποστηρίζει Unicode. Μοιάζει μα ανέκδοτο αλλά δεν είναι.
  3. Κανένα database abstraction.
    Πόσο δύσκολο είναι ένα καλύτερο API για database access που να μην είναι δεμένο σε μια συγκεκριμένη database? Υπάρχουν διάφορα modules/scripts κλπ για να το λύνουν αυτό , παρόλα αυτά πάρα πολλά project χρησιμοποιούν functions συγκεκριμένες σε μια μόνο database. Και δεν μιλάω για χρήση ORM. Απλά ένα DB API όπως της Python.
  4. Χάος με deprecated functions.
    Συχνά functions σπάνε την συμβατότητα, αλλάζουν όνομα και υπάρχουν διαφορετικές και ασύμβατες functions παράλληλα. Παράδειγμα: mysql_* με mysqli_* και mysql_escape_string vs mysql_real_escape_string.
  5. Δεν υπάρχουν στάνταρ στις functions.
    Η σειρά των παραμέτρων αλλάζει ανάμεσα σε string μεθόδους. Παράδειγμα
  6. Ασυνεπές περιβάλλον Με τα .ini αρχεία ο developer δεν μπορεί να γνωρίζει είναι διαθέσιμο και τι όχι.
    Επιπλέον, υπάρχουν functions όπως η money_format() που δεν είναι portable και χωρίς σημαντικό λόγο. Η money_format() δεν είναι fork() ή κάποιο system call δεμένο σε μια πλατφόρμα. Γιατί το υλοποίησαν με non-portable τρόπο?
  7. Βλαμμένες χακιές
    Πχ magic_quotes. Το magic quotes ήταν μια χαζή ιδέα γεμάτη προβλήματα. Η ιδέα εγκαταλείφθηκε αλλα άφησε τα απομεινάρια της. Ο developer δεν γνωρίζει αν είναι ενεργοποιημένα ή όχι, και πρέπει να ελέγχει με get_magic_quotes_gpc().
    Φυσικά έχουμε και το register_globals. Μια ακόμα βλαμμένη ιδέα που καταργήθηκε. Ήταν μια πηγή απο bugs και απο σοβαρά κενά ασφαλείας. Δείτε εδώ για περισσότερα.
  8. Δεν προάγει διαχωρισμό HTML , κώδικα και SQL.
    Υπάρχουν MVC frameworks αλλα η συντριπτική πλειοψηφία του PHP κώδικα είναι “όλα αχταρμάς”. Τα περισσότερα βιβλία και tutorial σε μαθαίνουν την λογική όλα μέσα. Για κάθε PHP project που είναι καλά σχεδιασμένο/γραμμένο υπάρχουν άλλα χίλια που θες να βγάλεις τα μάτια σου και να τα φάς.

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

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