info@tamiolakis.eu
Περί του συντάκτη

ή αλλοιώς "Παίζοντας με τους υπολογιστές"

Είμαι τεχνολόγος πολιτικός μηχανικός με ειδίκευση στα υδραυλικά έργα αστικών δικτύων. Από τη δεκαετία του '80 εργάζομαι στην ΔΕΥΑΗ (Δημοτική Επιχείρηση Υδρευσης Αποχέτευσης Ηρακλείου) στο τμήμα Μελετών - Κατασκευών & Επίβλεψης έργων.

Χωρίς να έχω ιδέα από γλώσσες υπολογιστών (οι γνώσεις της Fortran από τη σχολή ήταν μηδαμινές), άρχισα τον προγραμματισμό από ανάγκη, αφού δεν υπήρχαν την εποχή εκείνη στον ελληνικό χώρο προγράμματα να κάνεις εύκολα τη δουλειά σου. Θα μου μείνει αξέχαστη η πρώτη φορά που πήρα PC και όταν πάτησα το κουμπί να ανοίξει, είδα αυτό το "C:>" στη μαύρη οθόνη. Και τώρα τι κάνουμε? Πολύ γρήγορα όμως, μπήκα στο παιχνίδι και στο τέλος, εκτός των άλλων, ο προγραμματισμός εξελίχθηκε σε χόμπι.

Έφτιαξα το πρώτο μου πρόγραμμα ταχυμετρίας σε γλώσσα Basic, σε λειτουργικό DOS (δουλεύαμε πολύ διάφορες αποτυπώσεις με το ταχύμετρο της wild T16). Σχεδόν αμέσως μετά, το πέρασα ξανά, με καλύτερη κωδικοποίηση και user interface, στη περίφημη γλώσσα Turbo Pascal της Borland. Φυσικά, το πρόγραμμα έκανε μόνο υπολογισμούς και μια υποτυπώδη σχεδίαση, μόνο για οπτικό έλεγχο. Περίπτωση επεξεργασίας του σχεδίου δεν υπήρχε, αλλά δεν υπήρχαν ούτε και plotters, τουλάχιστον στην αρχή. Όλος ο σχεδιασμός, μετά από τους υπολογισμούς, γινόταν κλασσικά με το χέρι, βαθμομοιρογνωμόνιο, μολύβια, πενάκια και σχεδιαστήριο (οι νέοι μηχανικοί μάλλον δεν θα έχουν πιάσει ποτέ πενάκι, φαντάζομαι).

Σε Turbo Pascal, επίσης τότε, έφτιαξα και δύο προγράμματα συμπλήρωσης, διαλογής και εκτύπωσης δελτίων προ-πο και lotto (μόλις είχε βγει αυτό το νέο φρούτο). Τα χρησιμοποίησα όμως ελάχιστα, μια και δεν το είχα με τα τυχερά παιχνίδια.

Με το autocad άρχισα να ασχολούμαι στα τέλη της δεκαετίας του '80, όταν διαπίστωσα ότι είχε τη δυνατότητα προγραμματισμού, οπότε εκεί το interface σχεδίασης ήταν έτοιμο. Φυσικά, κάθε αρχή και δύσκολη, η lisp μου φαινόταν ακαταλαβίστικη, δεν έμοιαζε με τις υπόλοιπες γλώσσες, αλλά σιγά - σιγά τη συνήθισα, μέχρι που σήμερα, πολλές φορές, γράφω κώδικα σε άλλη γλώσσα και πληκτρολογώ λέξεις της χωρίς να το καταλάβω. Πρέπει να πω ότι, από την αρχή έμεινα έκπληκτος με τον τρόπο που οι προγραμματιστές είχαν αναπτύξει το autocad. Φαινόταν (και ήταν) ένα τέλειο πρόγραμμα. Και μιλάμε πάντα για την εποχή του DOS, δηλαδή για αρχαιοτάτους χρόνους. Θυμάμαι δε ότι, η καλύτερη έκδοση, ίσως ακόμη και από τις μεταγενέστερες πρώτες των windows, ήταν η R14.

Στην αρχή, ο κώδικας που έγραφα σε lisp ήταν υποτυπώδης, άλλα μια χαρά τα κατάφερνα να κάνω εργασίες που απαιτούσαν πολύ χρόνο, ή δεν υπήρχε τρόπος με μια απλή εντολή του autocad. Ας πούμε το πρώτο πράγμα που έκανα ήταν να εισάγω αρχεία συντεταγμένων ascii. Με τα χρόνια όμως, σιγά - σιγά μάθαινα τα αντικείμενα του, αποκτούσα περισσότερη γνώση της lisp και άρχισα να κάνω πιο περίπλοκα πράγματα. Τις λειτουργίες του layer manager τις είχα υλοποιήσει, σχεδόν όπως είναι σήμερα, πριν τις ενσωματώσουν στο autocad.

Ωστόσο, βέβαια, προγραμμάτιζα και σε άλλες γλώσσες (αν μάθεις μια, οι υπόλοιπες είναι πιο εύκολες). Ας πούμε, έκανα εκδόσεις υπολογισμού ανοικτών και κλειστών αγωγών σε visual basic, c++, μέχρι και assembly δοκίμασα, μόνο και μόνο για την εμπειρία, αλλά και για τη γνώση του πως λειτουργούν οι επεξεργαστές στους υπολογιστές. Η κατάληξη, στη συγκεκριμένη περίπτωση, ήταν το πρόγραμμα Pipes σε c++, που δημοσιεύω στον παρόντα ιστότοπο.

Στην αρχή της δεκαετίας '90, μετέφερα την εφαρμογή ταχυμετρίας στο autocad και αμέσως μετά, έφτιαξα την πρώτη έκδοση μιας εφαρμογής που μπορούσε να δημιουργήσει και να σχεδιάσει εύκολα μηκοτομές. Η εφαρμογή αυτή στη συνέχεια εξελίχθηκε, έγινε αρκετά λειτουργική και κατέληξε στην Amiko (η ονομασία της προήλθε από τις λέξεις auto και μηκοτομή).

Το 2000 προέκυψε η ανάγκη υπολογισμών ολοκληρωμένων δικτύων αποχέτευσης (όμβρια και ακάθαρτα). Το να δημιουργήσω σε lisp μια εφαρμογή που θα αναγνώριζε αγωγούς στο σχέδιο και τη σχετική τους διασύνδεση, ήταν για μένα ένα απαιτητικό project, γιατί αφ' ενός έπρεπε να βρώ τους τρόπους διασύνδεσης των αντικειμένων (δεν είχα μέχρι τότε τέτοια γνώση) και αφ' ετέρου έπρεπε να βγαίνει και δουλειά. Βρέθηκαν όμως οι λύσεις, έστω και αν δεν ήταν οι βέλτιστες στην αρχή, δημιουργήθηκε η εφαρμογή, πήρε και την ονομασία "Μινώταυρος" (Minotaurus), τιμής ένεκεν των Μινωιτών που είχαν συστήματα αποχέτευσης τόσες χιλιάδες χρόνια πριν και την χρησιμοποιώ ακόμη και σήμερα, όταν χρειάζεται να σχεδιαστούν νέα δίκτυα ομβρίων ή ακαθάρτων.

Προχωρώντας έψαχνα όλο και πιο βαθειά τον τρόπο που χειρίζεται τα αντικείμενα το autocad. Ωστόσο, είχαμε περάσει πια στην εποχή της Google, οπότε η πληροφορία ήταν πιο προσιτή. Όταν πάλι προέκυψε η ανάγκη ("το αγώι ξυπνά τον αγωγιάτη"), έχοντας και την εμπειρία του Minotaurus, έκανα μια νέα πιο ολοκληρωμένη, σε σχέση με τον τελικό χρήστη, εφαρμογή σχεδίασης δικτύων αποχέτευσης, που χωρίς να περιέχει υπολογισμούς, μπορούσε να κάνει πολύ εύκολα προμετρήσεις (ή επιμετρήσεις), μηκοτομές αγωγών, επί πλέον όμως να δίνονται σε κάθε αντικείμενο (αγωγοί, φρεάτια κ.λ.π.) πληροφοριακά στοιχεία, κάτι που είναι χρήσιμο στην εξαγωγή του δικτύου σε GIS και γενικά η σχεδίαση και διαχείριση των δικτύων να είναι μια εύκολη υπόθεση. Την ονόμασα "Μίνωα" (Minoas) για τον ίδιο λόγο όπως και την "Minotaurus". Σήμερα χρησιμοποιείται από όλους τους εργολάβους που δραστηριοποιούνται στο Ηράκλειο. Εννοείται ότι, όπως και εδώ, την έχω διαθέσει ελεύθερα, οπότε αφού κάνουν εύκολα και γρήγορα τη δουλειά τους γιατί να μην την χρησιμοποιούν? Το κύριο βεβαίως αποτέλεσμα είναι η ενιαία δημιουργία σχεδίων, με όλα τα πλεονεκτήματα που προκύπτουν απ' αυτό.

Η επόμενη ανάγκη αφορούσε τα δίκτυα ύδρευσης. Γι' αυτό το θέμα δημιουργήθηκε η εφαρμογή "Fontana". Όπως και η "Minoas" σχεδιάζει, διαχειρίζεται και εισάγει πληροφοριακά στοιχεία στο δίκτυο, χρήσιμα για εξαγωγή κατόπιν σε GIS. Επί πλέον μπορεί να παράξει, ή να διαβάσει, αρχεία του προγράμματος EPAnet για υδραυλικούς υπολογισμούς. Και αυτή επίσης η εφαρμογή έχει διατεθεί ελεύθερα για ενιαία δημιουργία σχεδίων.

Πέρα των όσων αναφέρθηκαν μέχρι τώρα, δεν έπαψα ποτέ να προγραμματίζω και σε άλλες γλώσσες (κυρίως c++) πράγματα που χρειαζόμουν, όπως π.χ. το πρόγραμμα GNotes που δημοσιεύω εδώ, το πρόγραμμα Physiotime για φυσικοθεραπευτές (σε συνεργασία με την κόρη μου), ένα πρόγραμμα εύκολης δημιουργίας αρχείων .mnu για το autocad, ένα πρόγραμμα σε γλώσσα Python για επεξεργασία pdf αρχείων, μερικές χρήσιμες ρουτίνες επίσης σε Python στο QGIS, κάποιες εφαρμογές σε γλώσσα Java όταν πρωτοκυκλοφόρησαν τα smart phones, και όπως είναι φυσικό, αμέτρητες μικρές ρουτίνες lisp για το autocad. Αν κάνω τρία και πλέον κλικ για μια ενέργεια, σκέφτομαι αμέσως τη δημιουργία διαδικασίας γι' αυτό το σκοπό. Το αστείο σε αυτή την ιστορία είναι ότι, κάμποσες φορές, αφού έκανα μια ρουτίνα, διαπίστωνα ότι υπήρχε τέτοια εντολή στο autocad. Αλλά είναι αδύνατον να ξέρεις όλες τις εντολές του.

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

Εν κατακλείδι, το παιχνίδι με τους υπολογιστές και τον προγραμματισμό, μετά από τόσα χρόνια, συνεχίζεται ακόμη (κυρίως στην autolisp).

Επικοινωνία: info@tamiolakis.eu