on problem solving

– Λογικά συμβαίνει αυτό και δεν παίζει

Πάνω στη δουλειά είμαι φωνακλάς. Τις περισσότερες φορές ίσως αδικαιολόγητα. Υπάρχει όμως ένα πράγμα για το οποίο φωνάζω συνέχεια:

– Μην κάνεις λογικές υποθέσεις!

Έχω παρατηρήσει πως στην διαδικασία επίλυσης προβλημάτων, όταν η πρόταση ξεκινάει με την λέξη “λογικά”, τότε από υπόθεση αυτόματα γίνεται απόδειξη με όλα τα διαθέσιμα στοιχεία να αγνοούνται και όλα τα ενδιάμεσα βήματα να παραλείπονται. Όταν όμως το guesstimation πέσει έξω (και είναι θέμα τεράστιας εμπειρίας να μην πέφτει κανείς έξω) αυτό σημαίνει πως πολύς χρόνος έχει περάσει χωρίς αποτέλεσμα.

Επειδή ονομάζουμε κάτι λογικό, δεν σημαίνει πως είναι κιόλας!

Αντιγράφω από το “Forensic Engineering Investigation“:

There should be a large foundation of evidence and facts at the bottom. These facts then form the basis for analysis according to proven scientific principles. The facts and analysis, taken together, support a small number of conclusions that form the apex of the pyramid.

Conclusions should be directly based on the facts and analysis, and not on other conclusions or hypotheses. If the facts are arranged logically and systematically, the conclusions should be almost self-evident. Conclusions based on other conclusions or hypotheses, that in turn are only based upon a few selected facts and very generalized principles, are a house of cards. When one point is proven wrong, the logical construct collapses.

Αποφύγετε να χρησιμοποιείτε τη λέξη “λογικά” όταν προσπαθείτε να βρείτε τι συμβαίνει:

– Λογικά συμβαίνει το Α επειδή έχω το Β

Προγραμματίζεται το μυαλό σε λανθασμένη πορεία. Αντί το Β να είναι πιθανό αίτιο, μετατρέπεται σε βεβαιότητα. Και αντί να ψάξει κανείς να βρει όλα τα πιθανά αίτια, προσπαθεί να αποδείξει πως το συγκεκριμένο Β προκαλεί το Α, ακόμα κι αν δεν το προκαλεί.

Update 2009/08/05: Έτυχε να διαβάσω το “Strong Inference” [pdf] το οποίο περιέχει αναφορές και από το “The Method of Multiple Working Hypotheses” του T. C. Chamberlin. Αντιγράφω σχετικά:

Chamberlin says our trouble is that when we make a single hypothesis, we become attached to it.

“The moment one has offered an original explanation for a phenomenon which seems satisfactory, that moment affection for his intellectual child springs into existence and as the explanation grows into a definite theory his parental affections cluster about his offspring and it grows more and more dear to him […] There springs up, also, an unconscious pressing of the theory to make it fit the facts to make them fit the theory.”

To avoid this grave danger, the method of multiple hypotheses is urged. It differs from the simple working hypothesis in that it distributes the effort and divides the affections.

Each hypothesis suggests its own criteria, its own means of proof, its own method of developing the truth, and if a group of hypotheses encompass the subject on all sides, the total outcome of means and of methods is full and rich.

Chamberlin thinks the method “leads to certain distinct habits of mind” and is of prime value in education. When faithfully followed for a sufficient time, it develops a mode of thought of its own kind which may be designated the habit of complex thought.

(previous)

Προς τα Δελτία Ειδήσεων

Ο ANT1 βάζει το Grey’s Anatomy κάθε μέρα στις 23:00. Δε χρειάζεται να κάνετε το ίδιο και εσείς. Σε λίγο θα μας δείξετε και εικόνα live από χειρουργική επέμβαση στον αστυνομικό.

On a side note, ας επαναλάβω λίγο τον εαυτό μου: Η πρόσφατη ενέργεια δείχνει πως οι (τηλε)δημοσιογράφοι συνεχίζουν να είναι φωτεινοί παντογνώστες. Οι ίδιοι άνθρωποι, στα ίδια παράθυρα, σχολιάζουν με την ίδια σιγουριά και authority από την παγκόσμια οικονομική κατάσταση, μέχρι τις ενέργειες, τη διάρθρωση και τη στελέχωση του Επαναστατικού Αγώνα.

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

twitter

Δεν είμαι fan του microblogging. Κυρίως γιατί δίνει την εντύπωση μιας ελεύθερης “χύμα” συζήτησης (που δεν κρατιούνται πρακτικά), ενώ δεν είναι έτσι: 10+ χρόνια με ενοχλούσε που άνθρωποι επέλεγαν να κρατάνε logs από τις συνομιλίες τους στο IRC. Τώρα στο twitter δεν χρειάζεται καν ατομική ενέργεια για αυτό.

Πέφτοντας όμως πάνω σε αυτό το post για το twitter phising, είπα να γραφτώ για να παρακολουθήσω το φαινόμενο “από κοντά”, να δω πως είναι τα direct messages κ.λπ. Και επειδή μπήκα στο τραίνο αργά, τα adamo, postmaster και yiorgos ήταν ήδη πιασμένα, οπότε ξέμεινα από handles! Μια και εδώ και καιρό διατηρώ ένα mirror του HAKMEM στο HAKMEM.net, γεννηθήτω hakmem.

Hello Twitter world!

#define SYSTEM_ADMINISTRATOR

SysAdminDay.comΈχω περιγράψει μια διαδρομή που μπορεί να ακολουθήσει κανείς για να γίνει system administrator. Πολλές φορές όμως είναι πιο εύκολο να εξηγεί κανείς πως μπορεί να γίνει αυτό παρά να εξηγεί τι είναι. Στο Jargon File για παράδειγμα, ο system administrator ορίζεται ως:

admin: /ad·min΄/n.

Short for ‘administrator’; very commonly used in speech or on-line to refer to the systems person in charge on a computer. Common constructions on this include sysadmin and site admin (emphasizing the administrator’s role as a site contact for email and news) or newsadmin (focusing specifically on news). Compare postmaster, sysop, system mangler.

Αυτός ο ορισμός δεν είναι όμως αρκετός για να απαντήσει στον πατέρα μου την ερώτηση:

– Τελικά παιδί μου εσύ τι δουλειά κάνεις;

Για να φτάσει σε αυτή την ερώτηση έχουν προηγηθεί μια σειρά από άλλες. Η σειρά πάει κάπως έτσι:

– Δηλαδή εσύ γράφεις προγράμματα;
– Ναι, αλλά δεν είναι αυτή η δουλειά μου.
– Φτιάχνεις υπολογιστές;
(εννοεί με το κατσαβίδι και όλα)
– Ναι, αλλά δεν είναι αυτή η δουλειά μου.
– Ναι, αλλά τους διορθώνεις.
– Ναι, αλλά δεν είναι η δουλειά μου το service!
– Τελικά παιδί μου εσύ τι δουλειά κάνεις;

Ούτε μπορεί να απαντήσει στη γυναίκα μου την ερώτηση:

– Μα καλά εσύ γιατί δεν μπορείς να έχεις ένα κανονικό ωράριο;

Ούτε φυσικά μπορεί να απαντήσει στην παρατήρηση της ξαδέρφης μου:

– Μα γιατί έχεις το laptop μαζί σου Γιώργο στις διακοπές; Στο Δημόσιο δε δουλεύεις;0

Θα μπορούσα φυσικά να απαντάω “Είμαι πιανίστας σε μπουρδέλο“. Δε βοηθάει όμως.

Ο φίλος μου ο Σ. εξήγησε μια φορά στη γυναίκα μου:

– Πες πως είναι πυροσβέστης και στη βάρδιά του δεν έχει πιάσει καμιά φωτιά. Και μετά τη βάρδια πυροσβέστης είναι, οπότε εάν υπάρχει φωτιά και δεν υπάρχει άλλη βάρδια, αυτός πρέπει να τη σβήσει.

Για να εισπράξει την απάντηση:

– Φίλος του δεν είσαι;

Αφού οι παραπάνω προσπάθειες δεν έφεραν αποτέλεσμα, δοκίμασα να δω το πρόβλημα από μια άλλη γωνία:

Τι είναι σύστημα;

Στο “What is a Systems Approach?” περιέχονται μια σειρά από ορισμοί που απαντάνε στο ερώτημα “Τι είναι Σύστημα;”. Για την περίπτωσή μας ο συνδιασμός των παρακάτω δύο δείχνει αρκετός:

A system is a set of variables sufficiently isolated to stay discussable while we discuss it. — W. Ross Ashby.

και:

A system is a representation of an entity as a complex whole open to feedback from its environment.

Και πράγματι τα συστήματα που διαχειριζόματε (εμείς οι system administrators) έχουν πολλές μεταβλητές (εξαρτήσεις εάν θέλετε) και είναι πολύπλοκες οντότητες που αλληλεπιδρούν με το περιβάλλον στο οποίο εντάσσονται (για οποιοδήποτε ορισμό του περιβάλλοντος, π.χ. εταιρικό περιβάλλον και ανάγκες, το Internet, οι ίδιοι οι χρήστες του συστήματος, κ.ο.κ.).

Ακόμα καλύτερα το ίδιο άρθρο μιλάει για “organized complexity” που είναι το ίδιο με αυτό που γράφει ο Tom Limoncelli στο “Time Management for System Administrators“: “I am a system administrator! I manage chaos for a living!”

Στο ίδιο άρθρο όμως υπάρχει ένα διαμάντι:

The responsibility of the systems engineer was the choice of the “technical path” between theory and application in order to create new services; improve the quality of existing services; or lower their cost.

Με το παραπάνω φαίνεται να συμφωνεί και ο θεωρητικός του επαγγέλματος, ο Mark Burgess ο οποίος στο “Analytical Network and System Administration” γράφει:

System administration is about the design, running and maintenance of human-computer systems. Human-computer systems are ‘communities’ of people and machines that collaborate actively to execute a common task1.
:
System administration is primarily about the technological side of a system: the architecture, construction and optimization of the collaborating parts, but it also occasionally touches on softer factors such as user assistance (help desks), ethical considerations in deploying a system, and the larger implications of its design for others who come into contact with it. System administration deals first and foremost with the system as a whole

Όσο βατοί και βολικοί κι αν φαίνονται οι παραπάνω ορισμοί και περιγραφές, πάσχουν: Είναι απλοί και γίνονται κατανοητοί από ανθρώπους που ήδη ξέρουν τι είναι ένα σύστημα ή τι δουλειά κάνει ένας system administrator, αντιλλαμβάνονται τις απαιτήσεις και την πολυπλοκότητα. Έτσι το ερώτημα παραμένει:

– Εσύ παιδί μου, τι δουλειά κάνεις;

Τελικά ίσως το μόνο που να χρειάζεται είναι κάποιος που πιάνει το χέρι του να κάνει μια παραλλαγή αυτού του διαγράμματος:

small talk with a web designer

Γιατί όπως φαίνεται δεν είμαι ο μόνος που δεν μπορεί να απαντήσει απλά και περιεκτικά το ερώτημα.

#include <std/disclaimer.h>


[0]- Οφείλω να ομολογήσω πως η ξαδέρφη διαθέτει εν αγνοία της διορατικότητα μια και ο system administrator στο Δημόσιο κατατάσσεται διακριτά σε μία από δύο κατηγορίες, αυτή και αυτή.

[1] – Όσοι ασχολείστε με τη θεωρία των MIS καλό είναι να διαβάσετε το βιβλίο του Burgess. Αυτό περιέχει όλη την απαιτούμενη θεωρία για αυτό που θέλετε: να φτιάχνετε δηλαδή συστήματα που να δουλεύουν και να δουλεύουν σωστά και αποδοτικά. Όλα τα άλλα βιβλία (π.χ. Turban) είναι για να περνάτε τα μαθήματα. Είμαι ισοπεδωτικός, αλλά έχω τα χιλιόμετρα για να είμαι.

Returning to my roots

From my /boot/grub/menu.lst:

title        FreeBSD
root        (hd0,2,a)
kernel      /boot/loader

As a side note, if you want to install FreeBSD 7.0-RELEASE on a VirtualBox virtual machine, you have to use the Intel PRO/1000 MT Desktop network card instead of the default one (PCnet-FAST III). VirtualBox’s DHCP server does not seem to cooperate with FreeBSD and PCnet-FAST III.

“Δεν ξέρω”

Δεν είναι κακό να λέει κανείς “Δεν ξέρω πως γίνεται αυτό” ή “Είναι η πρώτη φορά που κάνω μια τέτοια μετάβαση, δεν το έχω ξανακάνει”. Δεν είναι ντροπή. Κακό είναι να μην το ξέρει ο απέναντι. Γιατί έτσι δεν θα είχαμε 4 ώρες downtime αντί για (λιγότερο από) μία, επειδή ο απέναντι υποθέτει πως ξέρεις πολύ καλά τι κάνεις και ψάχνει να βρει το πρόβλημα στη δικιά του υποδομή.

inbox2.eu – disposable e-mail addresses

Την πρώτη φορά που είδα να γίνεται λόγος για disposable e-mail addresses, ήταν μάλλον σε αυτό το post στο slashdot. Αμέσως σκέφτηκα πως θα ήταν ωραία ιδέα να φτιάξω ένα αντίστοιχο service. Το ξανασκέφτηκα πιο ζεστά όταν με ρώτησε ο zero2one.

– Γιατί να φτιάξει κανείς κάτι που έχει ήδη κάνει κάποιος άλλος;

Από τη σκοπιά του χρήστη αυτό είναι ένα σωστό ερώτημα. Για τον χρήστη το κέρδος από το να υπάρχουν πολλές υπηρεσίες αυτού του είδους, είναι πως σε φόρμες που κάποια από αυτές είναι αποκλεισμένη (πολλές online υπηρεσίες μεταπωλούν τα emails των χρηστών που έκαναν subscribe σε αυτές, άρα ενδιαφέρονται να είναι κανονικά emails και όχι προσωρινά) μπορεί να χρησιμοποιήσει κάποια άλλη.

Από τη σκοπιά του διαχειριστή: Για να δει πως γίνεται. Τέτοιες εφαρμογές δίνουν στον διαχειριστή πολύτιμη πληροφορία (log file analysis) και ένα περιβάλλον δοκιμών που ενώ είναι περιβάλλον “παραγωγής” δεν είναι κρίσιμη υποδομή. Έτσι π.χ. μπορεί κανείς να δοκιμάσει το MeTA1, να γράψει ένα LMTP delivery agent ή ακόμα και να δοκιμάσει το δικό του mailbox format (διαφορετικό από το παραδοσιακό mbox). Για τον postmaster που θέλει να πειραματιστεί οι δρόμοι είναι πολλοί.

Κάποιος λοιπόν που έχει μια σχετική εμπειρία με συστήματα διαχείρισης ηλεκτρονικής αλληλογραφίας, μπορεί να στήσει το backend μιας τέτοιας υποδομής αρκετά γρήγορα (1 ημέρα με “έτοιμο” open source software). Εκεί που μπορεί να έχει πρόβλημα είναι η παρουσίαση. Έτσι και η δικιά μου προσπάθεια σταμάτησε στο πως θα μπορεί ο χρήστης να δει τα email του μέσω ενός αξιοπρεπούς web interface. Αυτό με δεδομένο πως η κατασκευή user interfaces είναι κάτι εντελώς έξω από τα ενδιαφέροντά μου ήταν κάτι δύσκολο. Ο τρόπος που σερβίρει τα email στον χρήστη το spam.la με οδήγησε στο να σκεφτώ πως πειράζοντας λίγο το nullwebmail, το nocc ή το squirrelmail θα κατάφερνα κάτι. Αλλά τελικά δεν το προσπάθησα καν (φταίει αυτή μου η απέχθεια προς τα user interfaces). Ευτυχώς όμως έπεσα στο lifehacker πάνω στο GuerrillaMail του οποίου το script είναι διαθέσιμο προς πώληση σε όποιον θέλει να αναπτύξει αντίστοιχη υπηρεσία. €19 μετά γεννήθηκε το:

Αρχιτεκτονικά έχει κάποιες απαιτήσεις διαφορετικές από πράγματα που είχα στο μυαλό μου και δεν θα έβγαζα το service “στον αέρα” μέχρι να το φέρω στη μορφή που ήθελα. Μετά όμως από το “Employees Suck” και ένα πέρασμα από τους designated alpha και beta tester και μερικούς ακόμα φίλους, voila! Εάν αποκτήσει όγκο χρηστών θα προσπαθήσω να εφαρμόσω τα πράγματα που έχω στο μυαλό μου. Έτσι λοιπόν, η υπηρεσία είναι πλέον διαθέσιμη και ελπίζω να τη βρείτε και χρήσιμη.

Λίγα λόγια ακόμα για την υπηρεσία: Η υποτυπώδης μετάφραση στα Ελληνικά είναι δικιά μου. Το μηχάνημα που φιλοξενεί το inbox2.eu έχει στηθεί από spare parts αποσυρμένων μηχανημάτων. Επειδή πρόκειται για μια υπηρεσία που δεν εγγυάται καμία ιδιωτικότητα, τα data δεν είναι καν σε RAID partition, ούτε φυλάσσονται σε backup. Επίσης το μέγιστο μέγεθος για κάθε εισερχόμενο μήνυμα είναι 50KB. Ο εργοδότης μου δε φέρει καμία ευθύνη για την λειτουργία της υπηρεσίας.

Ένα feature που έχει η υπηρεσία αυτή τη στιγμή το οποίο δεν ξέρω εάν κάποια άλλη αντίστοιχη το έχει υλοποιημένο, είναι αυτό της σιωπηλής διαγραφής εισερχομένων μηνυμάτων. Έτσι ενώ ένα email προς τον adamo@inbox2.eu θα “ζήσει” στο σύστημα για 15 45 λεπτά, ένα email προς τον adamo.del@inbox2.eu θα διαγραφεί σιωπηλά (χωρίς μήνυμα λάθους προς τον αποστολέα ή άλλη απάντηση) και άμεσα.

Flames, ερωτήσεις και προτάσεις μπορείτε να μου στείλετε με τους συνήθεις τρόπους.

#include <std/disclaimer.h>