Στο σχετικό άρθρο του τεύχους 023 ολοκληρώσαμε την text-based εκδοχή της Enigma. Κατορθώσαμε να ανακαλύψουμε όλα τα μυστικά της κρυπτογράφησής της και να τα εξομοιώσουμε πλήρως στην αγαπημένη μας Python. Σημαντικοί μας σύμμαχοι υπήρξαν φυσικά οι διάφορες εκπληκτικές λειτουργίες της γλώσσας, όπως, π.χ., τα dictionaries.
Όμως μια text-based εκδοχή της Enigma είναι καλή όσο χρειάζεται για να ανιχνεύσουμε και να υλοποιήσουμε τη βασική λειτουργία της μηχανής. Εκτός από τους hard core UNIXάδες, όλοι οι υπόλοιποι περιμένουν περιβάλλον γραφικών για τα προγράμματα τους. Και βέβαια ξέρουμε ότι εσάς, τους φανατικούς FreeBSD users, δεν σας χαλάει το terminal και το text mode. Όπως και να ‘χει, όμως, δεν θέλουμε η Enigma μας να διαθέτει interface πιο δύσχρηστο κι από την original μηχανή των Γερμανικών υποβρυχίων!
Ένα θέμα που έχουμε να αντιμετωπίσουμε είναι η μετατροπή αυτού του text interface σε γραφικό. Τα προβλήματά μας είναι δύο.
Ποια βιβλιοθήκη θα χρησιμοποιήσουμε; Εδώ, επιλέξαμε το PyGame. Θα μπορούσαμε επίσης να χρησιμοποιήσουμε το wxPython, αλλά καθώς έχουμε μια κατά βάση γραφική αναπαράσταση της αρχικής Enigma, το PyGame βολεύει: Τελικά, όπως θα δείτε, θα σχεδιάζουμε γραμμές και κύκλους. Είναι παιχνίδι!
Μπορούμε άραγε να προσθέσουμε τις λειτουργίες γραφικών επηρεάζοντας όσο το δυνατό λιγότερο τον κώδικα που έχουμε ήδη γράψει; Δεν είναι καθόλου –μα, καθόλου– επιθυμητό να χρειαστεί να πειράξουμε οτιδήποτε έχει να κάνει με την κρυπτογράφηση/αποκρυπτογράφηση. Απλά, με κάποιον τρόπο, πρέπει να προσθέσουμε λειτουργικότητα στις κλάσεις μας, ώστε να μας παρουσιάζουν *και* γραφικά αυτό που κάνουν ήδη μια χαρά με το κείμενο.
Όπως θα δείτε, τα προβλήματα αυτά λύνονται. Το PyGame όμως δεν είναι φτιαγμένο για να δημιουργεί interfaces, τουλάχιστον όχι με την έννοια του wx. Δεν έχει λοιπόν κουμπάκια, πεδία εισαγωγής κειμένου (text boxes) και άλλα τέτοια καλούδια. Κι αν και το μισό γραφικό μας πρόγραμμα χρειάζεται την αμεσότητα σχεδίασης που μας παρέχει το PyGame, το άλλο μισό εκλιπαρεί για έτοιμα τέτοια controls. Τι κάνουμε σε αυτή την περίπτωση; Μα, φυσικά τα φτιάχνουμε!
Το μηνιαίο περιοδικό deltaHacker είναι πλέον ηλεκτρονικό! Μάθετε για τις νέες, απίστευτες τιμές και κάντε τώρα την παραγγελία σας συμπληρώνοντας τη σχετική φόρμα.
Η ενασχόληση μου με τους υπολογιστές ξεκίνησε το 1983 και το 1984 απέκτησα τον πρώτο μου ΤΙ-99/4Α. Ήταν η εποχή που χρήστης θεωρούνταν όποιος έγραφε δικά του προγράμματα - και αυτός ήταν ακριβώς ο λόγος που με τράβηξε στους υπολογιστές. Με τα χρόνια, τα μηχανήματα και τα προγράμματα άλλαζαν αλλά η διάθεση για πειραματισμό και εξερεύνηση παρέμεινε ίδια.
Το 1996 ασχολήθηκα για πρώτη φορά με Linux χωρίς όμως να επιμείνω ιδιαίτερα. Τις επόμενες χρονιές είχα εστιάσει περισσότερο σε Windows NT και servers. To 2005 ασχολήθηκα ξανά με το Linux και ψάχνοντας για το κάτι παραπάνω, θυμήθηκα το FreeBSD. Έκτοτε ασχολούμαι ενεργά με το FreeBSD και από το 2008 είμαι επίσημα FreeBSD doc committer. Συμμετέχω στη βελτίωση και συγγραφή του FreeBSD Handbook, έχω μεταφράσει το μεγαλύτερο μέρος του στα Ελληνικά και έχω συγγράψει πρωτότυπα άρθρα στα Αγγλικά. Παρουσιάζω το λειτουργικό και τις εργασίες μου σε εκδηλώσεις όπως τη FOSSCOMM αλλά και τοπικά. Είμαι επίσης δημιουργός μιας custom διανομής FreeBSD που παρέχει εναλλακτικά γραφικά περιβάλλοντα.
Πιστεύω ιδιαίτερα στην πληρότητα της τεκμηρίωσης και στη δυνατότητα του χρήστη να παρεμβαίνει και να πειράζει οτιδήποτε ώστε να το φέρει στα μέτρα του. Δεν με ενδιαφέρουν συνήθως οι εύκολες λύσεις αλλά οι έξυπνες. Χαρακτηριστικό motto μου άλλωστε είναι "Δούλεψε με την πρώτη; Τι δυστυχία! Και πως θα περάσουμε ένα ευχάριστο απόγευμα τώρα;"
Είμαι καθηγητής στη δευτεροβάθμια εκπαίδευση και τη δεδομένη στιγμή διδάσκω πληροφορική στο ΕΠΑΛ Κισάμου. Έχω γράψει ένα βοήθημα για το πανελλαδικό μάθημα των Δικτύων το οποίο διανέμεται δωρεάν στο Διαδίκτυο. Και φυσικά στο σχολείο μου υπάρχουν περισσότερα FreeBSD μηχανήματα από ότι Windows!
Για να επιζητείτε την ισχυρή κρυπτογράφηση των δεδομένων στους δίσκους δεν χρειάζεται να συνεργάζεστε με τον Snowden, ούτε να είστε μάχιμος αντιφρονών ενός καταπιεστικού καθεστώτος. Ευτυχώς, οι διαθέσιμες επιλογές για την υλοποίηση αξιόλογων μηχανισμών κρυπτογράφησης δεν ...read more...
Στο πρώτο μέρος της μίνι σειράς μας ασχοληθήκαμε με το πιο θεωρητικό τμήμα SQLite, της περίφημης αυτής RDBMS/βιβλιοθήκης. Στο παρόν άρθρο, η λογική σειρά των πραγμάτων μάς καλεί να εφαρμόσουμε όσα μάθαμε μέχρι στιγμής στην πράξη.