shopping therapy

Μερικές μέρες στη δουλειά είναι δύσκολες. Κάπως πρέπει να ξεδίνει κανείς. Π.χ. οι γυναίκες πάνε στην Ερμού. Εγώ από την άλλη μπαίνω σε βιβλιοπωλεία. Και το έχω “τάμα” όταν μπαίνω να μη βγω χωρίς βιβλίο. Με την Εστία απέναντι και την Πολιτεία στα 100 μέτρα οι επιλογές είναι πολλές. Λίγο καιρό πριν υπήρξε μια τέτοια δύσκολη μέρα. Για αλλαγή είπα να πάω στο άλλο κοντινό βιβλιοπωλείο.

– Βιβλία για Μαθηματικά έχετε;
– Βεβαίως! Στο υπόγειο.

Κατεβαίνω τις σκάλες και πέφτω φάτσα με το Introduction to Mathematical Logic. Καλή αρχή!

Έφυγα από εκεί με τα Combinatorial Optimization: Algorithms and Complexity, Flatland και Elementary Theory of Numbers ανά χείρας. Πέτυχα και δυο βιβλία για την Catastrophe theory. Δεν τα αγόρασα όμως γιατί θα ήταν πια υπερβολή*.

Ηρεμία mode ON. Μπορούσα να γυρίσω σπίτι χωρίς να κουβαλάω τα νεύρα της δουλειάς.


[*] – Μπορούμε να καταργήσουμε τον ύπνο χωρίς να χάσουμε τις ευεργετικές του ιδιότητες;

What you know about computing other people will learn

Κάποιες μέρες πριν ξεφύλλιζα την πρώτη έκδοση του “Structure and Interpretation of Computer Programs“, όπου ο Alan J. Perlis, πρώτος αποδέκτης του βραβείου Turing, πριν και από τον πρόλογο γράφει:

“I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don’t think we are. I think we’re responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don’t become missionaries. Don’t feel as if you’re Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don’t feel as if the key to successful computing is only in your hands. What’s in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.”

Δεν νομίζω πως έχω δει ποτέ μου καλύτερες συμβουλές για ένα System Administrator (μαθητευόμενο ή μη). Παρόλο που ο Perlis τις γράφει γενικά, είναι κάτι που ο τοπικός σας BOFH οφείλει να διαβάσει οπωσδήποτε*.

Πρέπει να σταματήσω να φωνάζω


[*] – Όπως και το SICP, αλλά αυτό είναι άλλο θέμα.

Turing

Όχι ο Alan M. Turing, αλλά το βιβλίο.

(Κάποια χρόνια πριν)

Τηλέμαχος: “Πάμε μια βόλτα; Παρουσιάζεται ένα βιβλίο του Παπαδημητρίου και θα μιλήσει και ο Knuth.”

Δεν βλέπεις τον Knuth κάθε μέρα…

Πίνακας ομιλητών στην παρουσίαση του βιβλίου
Σειρά ομιλίας Όνομα Χρόνος σε λεπτά
1 Αλόη Σιδέρη 15 λεπτά
2 Π. Σπυράκης 5 λεπτά
3 Μίμης Ανδρουλάκης 40 λεπτά
4 D. Knuth 1 λεπτό

Αγόρασα το βιβλίο. Το παράτησα στην τρίτη σελίδα (μπορεί και πιο πριν).

“Δεν είναι τόσο κακό. Καλό θα το έλεγα μάλλον.” μου είπε περισσότερες από μία φορά ο Σπύρος.

(Skip to present)

Φέτος του έδωσα ακόμα μία ευκαιρία. Το βιβλίο είναι μια ιστορία αγάπης. Στα ελληνικά η πρώτη έδοση κυκλοφόρησε με τον τίτλο “Το χαμόγελο του Τούρινγκ”, ενώ η δεύτερη σαν Τούρινγκ, μαθήματα αγάπης.

Οφείλω να ομολογήσω πως η ιστορία αγάπης με άφησε αδιάφορο. Αυτό όμως που βρήκα καταπληκτικό σε αυτό το βιβλίο (διάβασα την πρώτη έκδοση) είναι τα μαθήματα θεωρητικής πληροφορικής για αρχαρίους που παραδίσει ο Παπαδημητρίου μέσω του Turing. Όλα τα παραδείγματα που θα ήθελα να χρησιμοποιήσω για να εξηγήσω πράγματα για τα οποία με ρωτάει κόσμος που δεν είναι σχετικός με το αντικείμενο είναι εκεί. Και τον ευχαριστώ για αυτό. Ξέρω τι μπορώ να λέω και τι να προτείνω για διάβασμα για όποιον έχει όρεξη να ψάξει μόνος του0.

Για όσους ξέρουν λίγα πράγματα για τον Παπαδημητρίου (έστω και τα urban legends που κυκλοφορούσαν στο ΕΜΠ από όταν έφυγε1), το βιβλίο έχει αυτοβιογραφικά στοιχεία. Κυρίως όμως μέσα από την περσόνα του Turing (μας αυτοσυστήνεται σαν ένα εκπαιδευτικό πρόγραμμα) μας παραδίδει μαθήματα για τα Μαθηματικά, την Πληροφορική, τη Λογική, την Κρυπτογραφία, τη Θεωρία Παιγνίων, εκφράζει τον θαυμασμό του για το Δίκτυο2 όπου ανάμεσα στα άλλα γράφει:

“Μ’αρέσει ο τρόπος που η κοινή κουλτούρα αγνόησε τους καθαρολόγους και υιοθέτησε τον ίδιον όρο για την εκπληκτική φυσική δομή, καθώς και για την εφαρμογή που δικαίωσε και στήριξε την κατασκευή της.”

Είναι προφανές πως διαφωνώ με αυτή τη θέση. Με εκπλήσσει που κάποιος που πρόλαβε το NCP και το Internet Flag Day3, που έχει αφιερώσει την (επαγγελματική) ζωή του στο να εκφράζει (και να λύνει) προβλήματα με φορμαλιστικό τρόπο, αποδέχεται αυτή τη σύγχιση4 που προκαλείται από την κατάχρηση του όρου “δίκτυο” (ιντερνέτ στα ελληνικά).

Τελικά, το βιβλίο με ενθουσίασε και ο λόγος που το έκανε αυτό είναι ότι αναπτύσσει μυθιστορηματικά τον πρόλογο του Computational Complexity. Θα ήθελα να το είχα διαβάσει στα αγγλικά. Στην ελληνική μετάφραση με ενοχλούσαν πάρα πολύ οι όροι καπνός (εννοεί firewall, αλλά στο αγγλικό κείμενο είναι smoke), κουρσάρος και κουρσάρικος κώδικας (runner5 και runner code στο πρωτότυπο). Βρήκα επίσης πολύ διασκεδαστικό το afterward του βιβλίου που παρουσιάζει μια ιδεατή συζήτηση στο USENET για το ίδιο το βιβλίο και τα λάθη(;)6 του.

Τέλος, ένα ερώτημα για όσους έχουν διαβάσει το βιβλίο: Πιστεύετε πως ο Turing είναι κάτι σαν τη Jane, ή ένα reverse Turing test;


[0] – Στη δεύτερη έκδοση ο Παπαδημητρίου γράφει πως “έκοψε” πολλά από τα μαθηματικά του βιβλίου για να μην είναι κουραστικό ακόμα και για τον πιο αποφασισμένο αναγνώστη. Ελπίζω να μην έκοψε πάρα πολλά.

[1] – Όπως π.χ. το γιατί έφυγε.

[2] – Για το οποίο γράφει χωρίς το όχημα του μυθιστορήματος στο Ισόβια στους χάκερ;

[3] – 1983/01/01

[4] – Τείνω να πιστεύω πως ο Παπαδημητρίου δεν έχει κάνει ποτέ user support, ούτε καν σε φιλικό / συγγενικό του πρόσωπο.

[5] – Από το dict.org βλέπει κανείς πως μια ερμηνεία του runner είναι smuggler. Ίσως ο Παπαδημητρίου με τον όρο runner να θέλει να χαρακτηρίσει κάποιον (τον Ian Frost στο βιβλίο) που είναι και hacker και cracker και samurai και dark-side hacker ταυτόχρονα;

[6] – Είναι μυθιστόρημα, δεν το ξεχνάμε αυτό.

Database Design

Χτες το πρωί στο γραφείο μου βρήκα το βιβλίο Database Design του Gio Wiederhold. Μου το άφησε ένας συνάδελφος που του είχα εξηγήσει ένα pet project που έχω στο μυαλό μου. Το βιβλίο είναι out of print και ο συνάδελφος το είχε βρει στα μεταχειρισμένα. Fear not! Η ACM έχει φροντίσει:

Gio Wiederhold: Database Design, 2nd Edition:

“Relevance

Although the first edition of this book appeared in 1977, and the second edition in 1983, there is still much relevant material here which does not appear in subsequent works. A small number of copies are still being sold every year by McGraw-Hill. Specifically, this book follows a bottom-up approach, starting with hardware and file parameters. These parameters are utilized throughout. It hence allows the reader to predict the performance of alternative designs for new databases and database systems with good — engineering precision — accuracy. The need for such analyses has diminished since most databases are now built on commercial database system software. Use of large packages allows few alternatives, little insight, but easier experimentation. This book has continued to serve the small market where performance is a concern, novel methods or large scale operations are envisaged, full-scale experiments are difficult, and simplistic assumptions will fail.”

Ευχαριστώ ΠΞ!

haskell and parallel programming

Ο Simon Peyton Jones γράφει ένα κεφάλαιο [PostScript document] για το βιβλίο Beautiful Code που γράφει ο Greg Wilson. Μια και δεν είμαι καλός γνώστης της Haskell, διάβασα το κείμενο διαγώνια. Εντυπωσιακή όμως ήταν η πρώτη παράγραφος:

“Intel tells us that the free lunch is over [7]. We can no longer expect our programs to go faster when we buy a next-generation processor. While that next-generation chip will have more CPUs, each individual CPU will be no faster than the previous year’s model. If we want our program to run faster, we must learn to write parallel programs [8].”

[7] – Your free lunch will soon be over
[8] – Software and the Concurrency Revolution

Έχω δύο βιβλία για τη Haskell στο σπίτι (τα οποία μαζεύουν σκόνη καιρό τώρα). Ελπίζω να (ξανα)ξεκινήσω αυτό του Hudak τον επόμενο μήνα. Επί τη ευκαιρία και ένα blog post που εξηγεί γιατί η Haskell είναι cool.

[via LtU]

Security Engineering – The Book

Security Engineering (A Guide to Building Dependable Distributed Systems) by Ross Anderson. Available for download:

“[…] This book grew out of the security engineering courses I teach at Cambridge University, but I have rewritten my notes to make them self-contained and added at least as much material again. It should be useful to the established professional security manager or consultant as a first-line reference; to the computer science professor doing research in cryptology; to the working police detective trying to figure out the latest computer scam; and to policy wonks struggling with the conflicts involved in regulating cryptography and anonymity. Above all, it is aimed at Dilbert. My main audience is the working programmer or engineer who is trying to design real systems that will keep on working despite the best efforts of customers, managers, and everybody else. […]”